gnu: libpeas: Update to 1.24.1.
[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>
44a06c94 3;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 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>
aa51d92c 42;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
ad6e168b 43;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
93beace0 44;;; Copyright © 2019 David Wilson <david@daviwil.com>
4e868d22 45;;; Copyright © 2019 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 web)
169 #:use-module (gnu packages webkit)
170 #:use-module (gnu packages xdisorg)
171 #:use-module (gnu packages xiph)
172 #:use-module (gnu packages xml)
d633f2f6 173 #:use-module (gnu packages xorg)
b29909b4 174 #:use-module (gnu packages xorg)
a76d0f03 175 #:use-module (gnu artwork)
8f523eb9 176 #:use-module (guix build-system cargo)
b29909b4
TGR
177 #:use-module (guix build-system cmake)
178 #:use-module (guix build-system glib-or-gtk)
179 #:use-module (guix build-system gnu)
180 #:use-module (guix build-system meson)
08be02be 181 #:use-module (guix build-system python)
b29909b4
TGR
182 #:use-module (guix build-system trivial)
183 #:use-module (guix download)
184 #:use-module (guix git-download)
185 #:use-module ((guix licenses) #:prefix license:)
186 #:use-module (guix packages)
187 #:use-module (guix utils)
a76d0f03 188 #:use-module (guix gexp)
8f523eb9
EF
189 #:use-module (guix monads)
190 #:use-module (guix store)
4e3fdeb7 191 #:use-module (ice-9 match)
c024ae36 192 #:use-module (srfi srfi-1))
85f5dc19
AE
193
194(define-public brasero
195 (package
196 (name "brasero")
e2bf423a 197 (version "3.12.2")
85f5dc19
AE
198 (source (origin
199 (method url-fetch)
d1df7554 200 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 201 (version-major+minor version) "/"
d1df7554 202 "brasero-" version ".tar.xz"))
85f5dc19
AE
203 (sha256
204 (base32
e2bf423a 205 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 206 (build-system glib-or-gtk-build-system)
e8627cd9
DH
207 (arguments
208 `(#:configure-flags (list
209 (string-append "--with-girdir="
210 (assoc-ref %outputs "out")
211 "/share/gir-1.0")
212 (string-append "--with-typelibdir="
213 (assoc-ref %outputs "out")
ce426deb
TD
214 "/lib/girepository-1.0"))
215 #:phases
216 (modify-phases %standard-phases
217 (add-before 'configure 'embed-growisofs
218 (lambda* (#:key inputs #:allow-other-keys)
219 (substitute* "plugins/growisofs/burn-growisofs.c"
220 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 221 #t)))))
85f5dc19
AE
222 (propagated-inputs
223 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
224 (native-inputs
225 `(("intltool" ,intltool)
ba549e17 226 ("itstool" ,itstool)
426adbe8 227 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 228 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 229 ("pkg-config" ,pkg-config)))
85f5dc19 230 (inputs
ce426deb
TD
231 `(("dvd+rw-tools" ,dvd+rw-tools)
232 ("glib" ,glib)
85f5dc19
AE
233 ("gnome-doc-utils" ,gnome-doc-utils)
234 ("gstreamer" ,gstreamer)
235 ("gst-plugins-base" ,gst-plugins-base)
236 ("gtk+" ,gtk+)
85f5dc19
AE
237 ("libcanberra" ,libcanberra)
238 ("libice" ,libice)
239 ("libnotify" ,libnotify)
240 ("libsm" ,libsm)
e8627cd9 241 ("libxml2" ,libxml2)
e8627cd9 242 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 243 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
244 (synopsis "CD/DVD burning tool for Gnome")
245 (description "Brasero is an application to burn CD/DVD for the Gnome
246Desktop. It is designed to be as simple as possible and has some unique
247features to enable users to create their discs easily and quickly.")
1dd26275 248 (license license:gpl2+)))
995b7261 249
29ae18db
RG
250(define-public gnome-color-manager
251 (package
252 (name "gnome-color-manager")
253 (version "3.32.0")
254 (source (origin
255 (method url-fetch)
256 (uri (string-append "mirror://gnome/sources/" name "/"
257 (version-major+minor version) "/"
258 name "-" version ".tar.xz"))
259 (sha256
260 (base32
261 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
262 (build-system meson-build-system)
263 (arguments
264 `(#:glib-or-gtk? #t
265 #:phases
266 (modify-phases %standard-phases
267 (add-before
268 'check 'pre-check
269 (lambda _
270 ;; Tests require a running X server.
271 (system "Xvfb :1 &")
272 (setenv "DISPLAY" ":1")
273 #t)))))
274 (native-inputs
275 `(("desktop-file-utils" ,desktop-file-utils)
276 ("gettext" ,gettext-minimal)
277 ("glib:bin" ,glib "bin")
278 ("gtk+:bin" ,gtk+ "bin")
279 ("itstool" ,itstool)
280 ("pkg-config" ,pkg-config)
281 ("xorg-server" ,xorg-server-for-tests)))
282 (inputs
283 `(("adwaita-icon-theme" ,adwaita-icon-theme)
284 ("appstream-glib" ,appstream-glib)
285 ("colord-gtk" ,colord-gtk)
286 ("exiv2" ,exiv2)
287 ("gnome-desktop" ,gnome-desktop)
288 ("libcanberra" ,libcanberra)
289 ("libexif" ,libexif)
290 ("libtiff" ,libtiff)
291 ("libxrandr" ,libxrandr)
292 ("libxtst" ,libxtst)
293 ("libxxf86vm" ,libxxf86vm)
294 ("vte" ,vte)
295 ("xorgproto" ,xorgproto)))
296 (synopsis "Color profile manager for the GNOME desktop")
297 (description "GNOME Color Manager is a session framework that makes
298it easy to manage, install and generate color profiles
299in the GNOME desktop.")
300 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 301 (license license:gpl2+)))
29ae18db 302
e05471a1
RG
303(define-public gnome-online-miners
304 (package
305 (name "gnome-online-miners")
306 (version "3.30.0")
307 (source (origin
308 (method url-fetch)
309 (uri (string-append "mirror://gnome/sources/" name "/"
310 (version-major+minor version) "/"
311 name "-" version ".tar.xz"))
312 (sha256
313 (base32
314 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
315 (build-system glib-or-gtk-build-system)
316 (native-inputs
317 `(("gettext" ,gettext-minimal)
318 ("glib:bin" ,glib "bin")
29ae18db 319 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
320 ("gtk+:bin" ,gtk+ "bin")
321 ("pkg-config" ,pkg-config)))
322 (inputs
323 `(("gnome-online-accounts" ,gnome-online-accounts)
324 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
325 ("grilo" ,grilo)
326 ("libgdata" ,libgdata)
327 ("libgfbgraph" ,gfbgraph)
328 ("libzapojit" ,libzapojit)
329 ("rest" ,rest)
330 ("tracker" ,tracker)))
331 (synopsis "Web Crawlers for GNOME")
332 (description "GNOME Online Miners provides a set of crawlers that
333go through your online content and index them locally in Tracker.
334It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
335 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 336 (license license:gpl2+)))
e05471a1 337
e2aed29c
RG
338(define-public gssdp
339 (package
340 (name "gssdp")
341 (version "1.2.2")
342 (source (origin
343 (method url-fetch)
344 (uri (string-append "mirror://gnome/sources/" name "/"
345 (version-major+minor version) "/"
346 name "-" version ".tar.xz"))
347 (sha256
348 (base32
349 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
350 (build-system meson-build-system)
351 (native-inputs
352 `(("gettext" ,gettext-minimal)
353 ("glib:bin" ,glib "bin")
354 ("gobject-introspection" ,gobject-introspection)
355 ("gtk-doc" ,gtk-doc)
356 ("pkg-config" ,pkg-config)
357 ("vala" ,vala)))
358 (inputs
359 `(("gtk+" ,gtk+)
360 ("libsoup" ,libsoup)))
361 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
362Protocol} for GNOME")
363 (description "This package provides a library to handle resource discovery
364and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
365a debugging tool, @command{gssdp-device-sniffer}.")
366 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
367 (license license:lgpl2.0+)))
368
291a85b2
RG
369(define-public gupnp
370 (package
371 (name "gupnp")
372 (version "1.2.2")
373 (source (origin
374 (method url-fetch)
375 (uri (string-append "mirror://gnome/sources/" name "/"
376 (version-major+minor version) "/"
377 name "-" version ".tar.xz"))
378 (sha256
379 (base32
380 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
381 (build-system meson-build-system)
382 (native-inputs
383 `(("gettext" ,gettext-minimal)
384 ("glib:bin" ,glib "bin")
385 ("gobject-introspection" ,gobject-introspection)
386 ("gtk-doc" ,gtk-doc)
387 ("pkg-config" ,pkg-config)
388 ("vala" ,vala)))
389 (inputs
390 `(("gssdp" ,gssdp)
391 ("gtk+" ,gtk+)
392 ("libsoup" ,libsoup)))
393 (synopsis "PnP API for GNOME")
394 (description "This package provides GUPnP, an object-oriented framework
395for creating UPnP devices and control points, written in C using
396@code{GObject} and @code{libsoup}.")
397 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
398 (license license:lgpl2.0+)))
399
747d7fe4
RG
400(define-public gupnp-dlna
401 (package
402 (name "gupnp-dlna")
403 (version "0.10.5")
404 (source (origin
405 (method url-fetch)
406 (uri (string-append "mirror://gnome/sources/" name "/"
407 (version-major+minor version) "/"
408 name "-" version ".tar.xz"))
409 (sha256
410 (base32
411 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
412 (build-system gnu-build-system)
413 (native-inputs
414 `(("gettext" ,gettext-minimal)
415 ("glib:bin" ,glib "bin")
416 ("gobject-introspection" ,gobject-introspection)
417 ("gtk-doc" ,gtk-doc)
418 ("libxml" ,libxml2)
419 ("pkg-config" ,pkg-config)
420 ("vala" ,vala)))
421 (inputs
422 `(("gstreamer" ,gstreamer)
423 ("gupnp" ,gupnp)))
424 (propagated-inputs
425 `(("gst-plugins-base" ,gst-plugins-base)
426 ("gst-plugins-good" ,gst-plugins-good)))
427 (synopsis "GUPnP DLNA for GNOME")
428 (description "This package provides a small utility library to
429support DLNA-related tasks such as media profile guessing, transcoding to a
430given profile, etc. DLNA is a subset of UPnP A/V.")
431 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
432 (license license:lgpl2.0+)))
433
1b4cb628
RG
434(define-public gupnp-av
435 (package
436 (name "gupnp-av")
437 (version "0.12.11")
438 (source (origin
439 (method url-fetch)
440 (uri (string-append "mirror://gnome/sources/" name "/"
441 (version-major+minor version) "/"
442 name "-" version ".tar.xz"))
443 (sha256
444 (base32
445 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
446 (build-system gnu-build-system)
447 (native-inputs
448 `(("gettext" ,gettext-minimal)
449 ("glib:bin" ,glib "bin")
450 ("gobject-introspection" ,gobject-introspection)
451 ("gtk-doc" ,gtk-doc)
452 ("libxml" ,libxml2)
453 ("pkg-config" ,pkg-config)))
454 (inputs
455 `(("gtk+" ,gtk+)
456 ("gupnp" ,gupnp)))
457 (synopsis "GUPnP A/V for GNOME")
458 (description "This package provides a small library for handling
459and implementation of UPnP A/V profiles.")
460 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
461 (license license:lgpl2.0+)))
462
02ebbca8
RG
463(define-public libmediaart
464 (package
465 (name "libmediaart")
466 (version "1.9.4")
467 (source (origin
468 (method url-fetch)
469 (uri (string-append "mirror://gnome/sources/" name "/"
470 (version-major+minor version) "/"
471 name "-" version ".tar.xz"))
472 (sha256
473 (base32
474 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
475 (build-system gnu-build-system)
476 (native-inputs
477 `(("glib:bin" ,glib "bin")
478 ("pkg-config" ,pkg-config)))
479 (inputs
480 `(("gdk-pixbuf" ,gdk-pixbuf)
481 ("gettext" ,gettext-minimal)
482 ("gobject-introspection" ,gobject-introspection)
483 ("gtk+:doc", gtk+ "doc")
484 ("vala" ,vala)))
485 (synopsis "Media art library for the GNOME desktop")
486 (description
487 "The libmediaart library is the foundation for media art caching,
488extraction, and lookup for applications on the desktop.")
489 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
490 (license license:lgpl2.1+)))
491
a26680eb
RG
492(define-public gnome-initial-setup
493 (package
494 (name "gnome-initial-setup")
495 (version "3.32.1")
496 (source (origin
497 (method url-fetch)
498 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
499 (version-major+minor version)
500 "/gnome-initial-setup-" version ".tar.xz"))
501 (sha256
502 (base32
503 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
504 (build-system meson-build-system)
505 (arguments
a65cc579
DM
506 '(#:configure-flags '(;; Enable camera support for user selfie.
507 "-Dcheese=auto"
508 "-Dsystemd=false")))
a26680eb
RG
509 (native-inputs
510 `(("gettext" ,gettext-minimal)
511 ("glib:bin" ,glib "bin")
512 ("gobject-introspection" ,gobject-introspection)
513 ("gtk+:bin" ,gtk+ "bin")
514 ("pkg-config" ,pkg-config)))
515 (inputs
516 `(("accountsservice" ,accountsservice)
517 ;("adwaita-icon-theme" ,adwaita-icon-theme)
518 ("gdm" ,gdm)
519 ("geoclue" ,geoclue)
520 ("gnome-desktop" ,gnome-desktop)
521 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
522 ("gnome-online-accounts" ,gnome-online-accounts)
523 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
524 ("gstreamer" ,gstreamer)
525 ("ibus" ,ibus)
526 ("json-glib" ,json-glib)
527 ("krb5" ,mit-krb5)
528 ("libgweather" ,libgweather)
529 ("libsecret" ,libsecret)
530 ("network-manager" ,network-manager)
531 ("network-manager-applet" ,network-manager-applet)
532 ("packagekit" ,packagekit)
533 ("polkit" ,polkit)
534 ("pwquality" ,libpwquality)
535 ("rest" ,rest)
536 ("upower" ,upower)
537 ("webkitgtk" ,webkitgtk)))
538 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
539 (description "This package provides a set-up wizard when a
540user logs into GNOME for the first time. It typically provides a
541tour of all gnome components and allows the user to set them up.")
a26680eb
RG
542 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
543 (license license:gpl2)))
544
b5f01392
RG
545(define-public gnome-user-share
546 (package
547 (name "gnome-user-share")
548 (version "3.33.1")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
557 (build-system meson-build-system)
558 (arguments
559 `(#:glib-or-gtk? #t
560 #:configure-flags
561 `("-Dsystemd=false"
562 ;; Enable nautilus extension for file sharing.
563 "-Dnautilus_extension=true")))
564 (native-inputs
565 `(("gettext" ,gettext-minimal)
566 ("glib:bin" ,glib "bin")
567 ("gobject-introspection" ,gobject-introspection)
568 ("gtk+:bin" ,gtk+ "bin")
569 ("pkg-config" ,pkg-config)
570 ("yelp-tools" ,yelp-tools)))
571 (inputs
572 `(("glib" ,glib)
573 ("gnome-bluetooth" ,gnome-bluetooth)
574 ("gtk+" ,gtk+)
575 ("libcanberra" ,libcanberra)
576 ("libnotify" ,libnotify)
577 ("nautilus" ,nautilus))) ; For nautilus extension.
578 (synopsis "File sharing for GNOME desktop")
579 (description "GNOME User Share is a small package that binds together
580various free software projects to bring easy to use user-level file
581sharing to the masses.")
582 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 583 (license license:gpl2+)))
b5f01392 584
04b201bb
RG
585(define-public sushi
586 (package
587 (name "sushi")
588 (version "3.32.1")
589 (source (origin
590 (method url-fetch)
591 (uri (string-append "mirror://gnome/sources/" name "/"
592 (version-major+minor version) "/"
593 name "-" version ".tar.xz"))
594 (sha256
595 (base32
596 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
597 (build-system meson-build-system)
598 (arguments
599 `(#:glib-or-gtk? #t
600 #:phases
601 (modify-phases %standard-phases
602 (add-after 'glib-or-gtk-wrap 'wrap-typelib
603 (lambda* (#:key outputs #:allow-other-keys)
604 (let ((prog (string-append (assoc-ref outputs "out")
605 "/bin/sushi")))
606 ;; Put existing typelibs before sushi's deps, so as to correctly
607 ;; infer gdk-pixbuf
608 (wrap-program prog
609 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
610 #t))))))
611 (native-inputs
612 `(("glib:bin" ,glib "bin")
613 ("gettext" ,gettext-minimal)
614 ("gobject-introspection" ,gobject-introspection)
615 ("pkg-config" ,pkg-config)))
616 (inputs
617 `(("clutter" ,clutter)
618 ("clutter-gst" ,clutter-gst)
619 ("clutter-gtk" ,clutter-gtk)
620 ("evince" ,evince) ; For file previewing.
621 ("freetype" ,freetype)
622 ("gdk-pixbuf" ,gdk-pixbuf)
623 ("gjs" ,gjs)
624 ("gst-plugins-base" ,gst-plugins-base)
625 ("gstreamer" ,gstreamer)
626 ("gtksourceview" ,gtksourceview-3)
627 ("harfbuzz" ,harfbuzz)
628 ("libepoxy" ,libepoxy)
629 ("libmusicbrainz" ,libmusicbrainz)
630 ("libxml2" ,libxml2)
631 ("neon" ,neon)
632 ("webkitgtk" ,webkitgtk)))
633 (synopsis "File previewer for the GNOME desktop")
634 (description "Sushi is a DBus-activated service that allows applications to
635preview files on the GNOME desktop.")
636 (home-page "https://gitlab.gnome.org/GNOME/sushi")
637 (license license:gpl2+)))
638
89af0902
RG
639(define-public rygel
640 (package
641 (name "rygel")
642 (version "0.38.3")
643 (source (origin
644 (method url-fetch)
645 (uri (string-append "mirror://gnome/sources/" name "/"
646 (version-major+minor version) "/"
647 name "-" version ".tar.xz"))
648 (sha256
649 (base32
650 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
651 (build-system gnu-build-system)
652 (native-inputs
653 `(("gettext" ,gettext-minimal)
654 ("gobject-introspection" ,gobject-introspection)
655 ("gtk-doc" ,gtk-doc)
656 ("pkg-config" ,pkg-config)
657 ("vala" ,vala)))
658 (inputs
659 `(("gdk-pixbuf" ,gdk-pixbuf)
660 ("gssdp" ,gssdp)
661 ("gstreamer" ,gstreamer)
662 ("gst-plugins-base" ,gst-plugins-base)
663 ("gtk+" ,gtk+)
664 ("gupnp" ,gupnp)
665 ("gupnp-av" ,gupnp-av)
666 ("gupnp-dlna" ,gupnp-dlna)
667 ("libgee" ,libgee)
668 ("libmediaart" ,libmediaart)
669 ("libsoup" ,libsoup)
670 ("libxslt" ,libxslt)
671 ("libunistring" ,libunistring)
672 ("tracker" ,tracker)))
673 (synopsis "Share audio, video, and pictures with other devices")
674 (description
675 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
676MediaRenderer}) for GNOME that allows you to easily share audio, video, and
677pictures, and to control a media player on your home network.
678
679Rygel achieves interoperability with other devices by trying to conform to the
680strict requirements of DLNA and by converting media on-the-fly to formats that
681client devices can handle.")
682 (home-page "https://wiki.gnome.org/Projects/Rygel")
683 (license (list
684 ;; For logo (data/icons/*).
685 license:cc-by-sa3.0
686 ;; For all others.
687 license:lgpl2.1+))))
688
47e87093
RG
689(define-public libnma
690 (package
691 (name "libnma")
692 (version "1.8.26")
693 (source (origin
694 (method url-fetch)
695 (uri (string-append "mirror://gnome/sources/" name "/"
696 (version-major+minor version) "/"
697 name "-" version ".tar.xz"))
698 (sha256
699 (base32
700 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
701 (build-system meson-build-system)
702 (arguments
703 `(#:glib-or-gtk? #t))
704 (native-inputs
705 `(("gettext" ,gettext-minimal)
706 ("glib:bin" ,glib "bin")
707 ("gtk-doc" ,gtk-doc)
708 ("gobject-introspection" ,gobject-introspection)
709 ("pkg-config" ,pkg-config)))
710 (inputs
711 `(("adwaita-icon-theme" ,adwaita-icon-theme)
712 ("gcr" ,gcr)
713 ("gtk+" ,gtk+)
714 ("iso-codes" ,iso-codes)
715 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
716 ("network-manager" ,network-manager)))
717 (synopsis "Network Manager's applet library")
718 (description "Libnma is an applet library for Network Manager. It was
719initially part of network-manager-applet and has now become a separate
720project.")
721 (home-page "https://gitlab.gnome.org/GNOME/libnma")
722
723 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
724 ;; "LGPL-2.1+".
725 (license license:gpl2+)))
726
30416265
RG
727(define-public gnome-menus
728 (package
729 (name "gnome-menus")
730 (version "3.32.0")
731 (source (origin
732 (method url-fetch)
733 (uri (string-append "mirror://gnome/sources/gnome-menus/"
734 (version-major+minor version) "/"
735 name "-" version ".tar.xz"))
736 (sha256
737 (base32
738 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
739 (build-system gnu-build-system)
740 (native-inputs
741 `(("gettext" ,gettext-minimal)
742 ("glib" ,glib)
743 ("pkg-config" ,pkg-config)))
744 (synopsis "Menu support for GNOME desktop")
745 (description "GNOME Menus contains the libgnome-menu library, the layout
746configuration files for the GNOME menu, as well as a simple menu editor.")
747 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 748 (license license:lgpl2.0+)))
30416265 749
d61a894b
CB
750(define-public deja-dup
751 (package
752 (name "deja-dup")
753 (version "34.3")
754 (source (origin
755 (method url-fetch)
756 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
757 (sha256
758 (base32
759 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
760 (patches
761 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
762 (build-system glib-or-gtk-build-system)
763 (arguments
764 `(#:modules ((guix build gnu-build-system)
765 ((guix build cmake-build-system) #:prefix cmake:)
766 (guix build glib-or-gtk-build-system)
767 (guix build utils))
768 #:imported-modules (,@%glib-or-gtk-build-system-modules
769 (guix build cmake-build-system))
770 #:test-target "test"
771 #:configure-flags (list (string-append
772 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
773 (string-append
774 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
775 #:phases
776 (modify-phases %standard-phases
777 (add-after 'unpack 'patch-lockfile-deletion
778 (lambda rest
779 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
780 (("/bin/rm")
781 (which "rm")))))
782 (replace 'configure
783 (assoc-ref cmake:%standard-phases 'configure))
784 (delete 'check) ;; Fails due to issues with DBus
785 (add-after 'install 'wrap-deja-dup
786 (lambda* (#:key inputs outputs #:allow-other-keys)
787 (let ((python (assoc-ref inputs "python"))
788 (python-path (getenv "PYTHONPATH"))
789 (duplicity (assoc-ref inputs "duplicity"))
790 (out (assoc-ref outputs "out")))
791 (for-each
792 (lambda (program)
793 (wrap-program program
794 `("PATH" ":" prefix (,(string-append python "/bin")
795 ,(string-append duplicity "/bin"))))
796 (wrap-program program
797 `("PYTHONPATH" ":" prefix (,python-path))))
798
799 (find-files (string-append out "/bin")))
800 #t))))))
801 (inputs
802 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
803 ("gobject-introspection" ,gobject-introspection)
804 ("duplicity" ,duplicity)
61506fe5 805 ("python" ,python-2)
d61a894b
CB
806 ("python-pygobject" ,python2-pygobject)
807 ("gtk+" ,gtk+)
808 ("libnotify" ,libnotify)
809 ("libpeas" ,libpeas)
810 ("libsecret" ,libsecret)
811 ("packagekit" ,packagekit)))
812 (native-inputs
813 `(("pkg-config" ,pkg-config)
814 ("vala" ,vala)
815 ("gettext" ,gettext-minimal)
816 ("itstool" ,itstool)
817 ("intltool" ,intltool)
c69959f0 818 ("cmake" ,cmake-minimal)))
d61a894b
CB
819 (home-page "https://launchpad.net/deja-dup")
820 (synopsis "Simple backup tool, for regular encrypted backups")
821 (description
822 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
823uses duplicity as the backend, which supports incremental backups and storage
824either on a local, or remote machine via a number of methods.")
825 (license license:gpl3+)))
826
823b77fb
RG
827(define-public gnome-user-docs
828 (package
829 (name "gnome-user-docs")
830 (version "3.32.3")
831 (source
832 (origin
833 (method url-fetch)
834 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
835 (version-major+minor version)
836 "/gnome-user-docs-" version ".tar.xz"))
837 (sha256
838 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
839 (build-system gnu-build-system)
840 (native-inputs
841 `(("gettext" ,gettext-minimal)
842 ("itstool" ,itstool)
843 ("pkg-config" ,pkg-config)
844 ("xmllint" ,libxml2)))
845 (synopsis "User documentation for the GNOME desktop")
846 (description
847 "The GNOME User Documentation explains how to use the GNOME desktop and its
848components. It covers usage and setup of the core GNOME programs by end-users
849and system administrators.")
850 (home-page "https://live.gnome.org/DocumentationProject")
851 (license license:cc-by3.0)))
852
be93299d
RG
853(define-public gnome-getting-started-docs
854 (package
855 (name "gnome-getting-started-docs")
856 (version "3.32.2")
857 (source
858 (origin
859 (method url-fetch)
860 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
861 (version-major+minor version)
862 "/gnome-getting-started-docs-" version ".tar.xz"))
863 (sha256
864 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
865 (build-system gnu-build-system)
866 (native-inputs
867 `(("gettext" ,gettext-minimal)
868 ("itstool" ,itstool)
869 ("pkg-config" ,pkg-config)
870 ("xmllint" ,libxml2)))
871 (synopsis "Help to get new users started with the GNOME desktop")
872 (description
873 "The GNOME Getting Started Documentation contains GNOME's intuitive
874\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
875
876It is normally used together with @command{gnome-initial-setup}, but is also
877useful as a tutorial and users' guide for new or less experienced users.")
878 (home-page "https://live.gnome.org/DocumentationProject")
879 (license license:cc-by-sa3.0)))
880
a56be436
RJ
881(define-public dia
882 ;; This version from GNOME's repository includes fixes for compiling with
883 ;; recent versions of the build tools. The latest activity on the
884 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
885 ;; fixes in 2016.
886 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
887 (package
888 (name "dia")
914c8cdf 889 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
890 (source (origin
891 (method git-fetch)
892 (uri (git-reference
914c8cdf 893 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 894 (commit commit)))
914c8cdf 895 (file-name (git-file-name name version))
a56be436
RJ
896 (sha256
897 (base32
898 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
899 (build-system gnu-build-system)
900 (inputs
a315afa3 901 `(("freetype" ,freetype)
a56be436
RJ
902 ("gdk-pixbuf" ,gdk-pixbuf)
903 ("gtk+" ,gtk+-2)
a315afa3 904 ("libart-lgpl" ,libart-lgpl)
a56be436 905 ("libxml2" ,libxml2)
a315afa3 906 ("pango" ,pango)))
a56be436 907 (native-inputs
a315afa3 908 `(("autoconf" ,autoconf)
a56be436 909 ("automake" ,automake)
a315afa3
EF
910 ("intltool" ,intltool)
911 ("glib" ,glib "bin")
a56be436
RJ
912 ("libtool" ,libtool)
913 ("perl" ,perl)
a315afa3 914 ("pkg-config" ,pkg-config)
a56be436
RJ
915 ("python-wrapper" ,python-wrapper)))
916 (arguments
917 `(#:phases
918 (modify-phases %standard-phases
4b3e91de 919 (add-before 'bootstrap 'dont-configure-during-bootstrap
a56be436 920 (lambda _
4b3e91de
EF
921 (setenv "NOCONFIGURE" "true")
922 #t)))))
a56be436
RJ
923 (home-page "https://wiki.gnome.org/Apps/Dia")
924 (synopsis "Diagram creation for GNOME")
925 (description "Dia can be used to draw different types of diagrams, and
926includes support for UML static structure diagrams (class diagrams), entity
927relationship modeling, and network diagrams. The program supports various file
928formats like PNG, SVG, PDF and EPS.")
929 (license license:gpl2+))))
930
d0b19e44
RW
931;; This is the unstable release, but it is required for the current stable
932;; release of gvfs (1.38.1).
adc5cb1b
KK
933(define-public libgdata
934 (package
935 (name "libgdata")
d0b19e44 936 (version "0.17.9")
adc5cb1b
KK
937 (source (origin
938 (method url-fetch)
939 (uri (string-append "mirror://gnome/sources/" name "/"
940 (version-major+minor version) "/"
941 name "-" version ".tar.xz"))
942 (sha256
943 (base32
d0b19e44 944 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
945 (build-system gnu-build-system)
946 (arguments
947 '(#:phases
948 (modify-phases %standard-phases
448052b7
TGR
949 (add-before 'check 'disable-failing-tests
950 (lambda _
951 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
952 ;; They have been removed in libgdata 0.17.6, so just do the same.
953 (substitute* "gdata/tests/Makefile"
954 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
955 #t)))))
956 (native-inputs
957 `(("glib:bin" ,glib "bin")
958 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
959 ("intltool" ,intltool)
960 ("pkg-config" ,pkg-config)
961 ("uhttpmock" ,uhttpmock)))
962 (inputs
963 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 964 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
965 (propagated-inputs
966 `(("gcr" ,gcr)
d0b19e44 967 ("glib" ,glib)
14c297fd 968 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 969 ("json-glib" ,json-glib)
adc5cb1b 970 ("liboauth" ,liboauth)
d0b19e44 971 ("libsoup" ,libsoup)
adc5cb1b
KK
972 ("libxml2" ,libxml2)))
973 (home-page "https://wiki.gnome.org/Projects/libgdata")
974 (synopsis "Library for accessing online service APIs")
975 (description
976 "libgdata is a GLib-based library for accessing online service APIs using
977the GData protocol — most notably, Google's services. It provides APIs to
978access the common Google services, and has full asynchronous support.")
979 (license license:lgpl2.1+)))
980
94e10cf4
KK
981(define-public libgxps
982 (package
983 (name "libgxps")
66470a5a 984 (version "0.3.1")
94e10cf4
KK
985 (source (origin
986 (method url-fetch)
7f10628c 987 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
988 (version-major+minor version) "/"
989 name "-" version ".tar.xz"))
990 (sha256
991 (base32
66470a5a 992 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 993 (build-system meson-build-system)
94e10cf4
KK
994 (native-inputs
995 `(("gobject-introspection" ,gobject-introspection)
996 ("pkg-config" ,pkg-config)))
997 (inputs
c8d62d93 998 `(("gtk+" ,gtk+)
b6b3e512 999 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1000 ("lcms" ,lcms)
0a6e9e13 1001 ("libtiff" ,libtiff)))
c8d62d93
MB
1002 (propagated-inputs
1003 ;; In Requires of libgxps.pc.
1004 `(("cairo" ,cairo)
1005 ("glib" ,glib)
1006 ("libarchive" ,libarchive)))
94e10cf4
KK
1007 (home-page "https://wiki.gnome.org/Projects/libgxps")
1008 (synopsis "GObject-based library for handling and rendering XPS documents")
1009 (description
1010 "libgxps is a GObject-based library for handling and rendering XPS
1011documents. This package also contains binaries that can convert XPS documents
1012to other formats.")
1013 (license license:lgpl2.1+)))
1014
4e09f57a
RG
1015(define-public gnome-characters
1016 (package
1017 (name "gnome-characters")
1018 (version "3.30.0")
1019 (source
1020 (origin
1021 (method url-fetch)
1022 (uri (string-append "mirror://gnome/sources/"
1023 "gnome-characters/" (version-major+minor version)
1024 "/gnome-characters-" version ".tar.xz"))
1025 (sha256
1026 (base32
1027 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1028 (build-system meson-build-system)
5757c641 1029 (arguments
1030 `(#:glib-or-gtk? #t
1031 #:phases (modify-phases %standard-phases
1032 (add-after 'install 'wrap
1033 (lambda* (#:key outputs #:allow-other-keys)
1034 ;; GNOME Characters needs Typelib files from GTK and
1035 ;; gnome-desktop.
1036 (wrap-program (string-append (assoc-ref outputs "out")
1037 "/bin/gnome-characters")
1038 `("GI_TYPELIB_PATH" ":" prefix
1039 (,(getenv "GI_TYPELIB_PATH"))))
1040 #t)))))
4e09f57a
RG
1041 (native-inputs
1042 `(("gettext" ,gettext-minimal)
1043 ("glib:bin" ,glib "bin")
1044 ("gtk+:bin" ,gtk+ "bin")
1045 ("pkg-config" ,pkg-config)
1046 ("python" ,python-minimal)))
1047 (inputs
1048 `(("gjs" ,gjs)
1049 ("gtk+" ,gtk+)
5757c641 1050 ("libunistring" ,libunistring)
1051 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1052 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1053 (synopsis "Find and insert unusual characters")
1054 (description "Characters is a simple utility application to find
1055and insert unusual characters. It allows you to quickly find the
1056character you are looking for by searching for keywords.")
1057 (license license:bsd-3)))
1058
7aab13f1
ML
1059(define-public gnome-common
1060 (package
1061 (name "gnome-common")
af83490d 1062 (version "3.18.0")
7aab13f1
ML
1063 (source
1064 (origin
1065 (method url-fetch)
1066 (uri (string-append "mirror://gnome/sources/" name "/"
1067 (version-major+minor version) "/"
1068 name "-" version ".tar.xz"))
1069 (sha256
1070 (base32
af83490d 1071 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1072 (build-system gnu-build-system)
1073 (home-page "https://www.gnome.org/")
1074 (synopsis "Bootstrap GNOME modules built from Git")
1075 (description "gnome-common contains various files needed to bootstrap
1076GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1077can be used to configure a source directory checked out from Git and some
1078commonly used macros.")
1079 (license license:gpl2+)))
1080
4e868d22
RG
1081(define-public gnome-contacts
1082 (package
1083 (name "gnome-contacts")
6a6138b2 1084 (version "3.32.1")
4e868d22
RG
1085 (source (origin
1086 (method url-fetch)
1087 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1088 (version-major+minor version) "/"
1089 name "-" version ".tar.xz"))
1090 (sha256
1091 (base32
6a6138b2 1092 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
1093 (build-system meson-build-system)
1094 (arguments
1095 `(#:phases
1096 (modify-phases %standard-phases
1097 (add-after 'unpack 'generate-vapis
1098 (lambda* (#:key inputs #:allow-other-keys)
1099 ;; To generate goa's missing .vapi file
1100 (define goa
1101 (assoc-ref inputs "gnome-online-accounts:lib"))
1102
1103 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1104 "--library=goa-1.0"
1105 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1106 #t)))))
1107 (native-inputs
1108 `(("glib:bin" ,glib "bin")
1109 ("gtk+:bin" ,gtk+ "bin")
1110 ("pkg-config" ,pkg-config)))
1111 (inputs
1112 `(("cheese" ,cheese)
1113 ("docbook-xml" ,docbook-xml)
1114 ("dockbook-xsl" ,docbook-xsl)
1115 ("evolution-data-server" ,evolution-data-server)
1116 ("gettext" ,gettext-minimal)
1117 ("gnome-desktop" ,gnome-desktop)
1118 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1119 ("gobject-introspection" ,gobject-introspection)
1120 ("gst-plugins-base" ,gst-plugins-base)
1121 ("gtk+" ,gtk+)
1122 ("libgee" ,libgee)
1123 ("libxslt" ,libxslt)
1124 ("telepathy-glib" ,telepathy-glib)
1125 ("vala" ,vala)))
1126 (propagated-inputs
1127 `(("folks", folks)
1128 ("telepathy-mission-control" ,telepathy-mission-control)))
1129 (synopsis "GNOME's integrated address book")
1130 (description
1131 "GNOME Contacts organizes your contact information from online and
1132offline sources, providing a centralized place for managing your contacts.")
1133 (home-page "https://wiki.gnome.org/Apps/Contacts")
1134 (license license:gpl2+)))
1135
9cc98f8a
CR
1136(define-public gnome-desktop
1137 (package
1138 (name "gnome-desktop")
e8a26caa 1139 (version "3.32.2")
9cc98f8a
CR
1140 (source
1141 (origin
1142 (method url-fetch)
b38e45d8
EB
1143 (uri (string-append "mirror://gnome/sources/" name "/"
1144 (version-major+minor version) "/"
9cc98f8a
CR
1145 name "-" version ".tar.xz"))
1146 (sha256
1147 (base32
e8a26caa
KK
1148 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1149 (build-system meson-build-system)
a0fe7c06
CB
1150 (arguments
1151 '(#:phases
1152 (modify-phases %standard-phases
1153 (add-before 'configure 'patch-path
1154 (lambda* (#:key inputs #:allow-other-keys)
1155 (let ((libc (assoc-ref inputs "libc")))
1156 (substitute* "libgnome-desktop/gnome-languages.c"
1157 (("\"locale\"")
1158 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1159 #t)))
1160 (add-before 'check 'pre-check
1161 (lambda* (#:key inputs #:allow-other-keys)
1162 ;; Tests require a running X server and locales.
1163 (system "Xvfb :1 &")
1164 (setenv "DISPLAY" ":1")
1165 (setenv "GUIX_LOCPATH"
1166 (string-append (assoc-ref inputs "glibc-locales")
1167 "/lib/locale"))
1168 #t)))))
9cc98f8a 1169 (native-inputs
e8a26caa
KK
1170 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1171 ("glibc-locales" ,glibc-locales) ; for tests
1172 ("gobject-introspection" ,gobject-introspection)
a8340482 1173 ("itstool" ,itstool)
bcb354ad
SB
1174 ("intltool" ,intltool)
1175 ("pkg-config" ,pkg-config)
e8a26caa
KK
1176 ("xmllint" ,libxml2)
1177 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1178 (propagated-inputs
1179 ;; Required by gnome-desktop-3.0.pc.
1180 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1181 ("gtk+" ,gtk+)
9cc98f8a 1182 ("iso-codes" ,iso-codes)
9863ce20 1183 ("libseccomp" ,libseccomp)
9cc98f8a 1184 ("libx11" ,libx11)
e8a26caa
KK
1185 ("xkeyboard-config" ,xkeyboard-config)))
1186 (inputs
1187 `(("gdk-pixbuf" ,gdk-pixbuf)
1188 ("glib" ,glib)
9cc98f8a
CR
1189 ("libxext" ,libxext)
1190 ("libxkbfile" ,libxkbfile)
e8a26caa 1191 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1192 (home-page "https://www.gnome.org/")
1193 (synopsis
35b9e423 1194 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1195 (description
1196 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1197on the desktop, but that cannot live in the platform for various reasons.
1198There is no API or ABI guarantee, although we are doing our best to provide
1199stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1200
1201The gnome-about program helps find which version of GNOME is installed.")
1202 ; Some bits under the LGPL.
1dd26275 1203 (license license:gpl2+)))
9cc98f8a 1204
995b7261
AE
1205(define-public gnome-doc-utils
1206 (package
1207 (name "gnome-doc-utils")
1208 (version "0.20.10")
1209 (source
1210 (origin
1211 (method url-fetch)
b38e45d8
EB
1212 (uri (string-append "mirror://gnome/sources/" name "/"
1213 (version-major+minor version) "/"
995b7261
AE
1214 name "-" version ".tar.xz"))
1215 (sha256
1216 (base32
1217 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1218 (build-system gnu-build-system)
c4c4cc05 1219 (native-inputs
995b7261 1220 `(("intltool" ,intltool)
b4ce6300 1221 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1222 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1223 ("libxml2" ,libxml2)
1224 ("libxslt" ,libxslt)
1225 ("pkg-config" ,pkg-config)
1226 ("python-2" ,python-2)))
995b7261
AE
1227 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1228 (synopsis
1229 "Documentation utilities for the Gnome project")
1230 (description
1231 "Gnome-doc-utils is a collection of documentation utilities for the
1232Gnome project. It includes xml2po tool which makes it easier to translate
1233and keep up to date translations of documentation.")
1dd26275 1234 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1235
6c4f7022
DC
1236(define-public gnome-disk-utility
1237 (package
1238 (name "gnome-disk-utility")
e106d0a6 1239 (version "3.32.1")
6c4f7022
DC
1240 (source (origin
1241 (method url-fetch)
1242 (uri (string-append "mirror://gnome/sources/" name "/"
1243 (version-major+minor version) "/"
1244 name "-" version ".tar.xz"))
1245 (sha256
1246 (base32
e106d0a6 1247 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 1248 (build-system meson-build-system)
321c73c3
EF
1249 (arguments
1250 '(#:phases
1251 (modify-phases %standard-phases
1252 (add-after 'unpack 'skip-gtk-update-icon-cache
1253 ;; Don't create 'icon-theme.cache'.
1254 (lambda _
1255 (substitute* "meson_post_install.py"
1256 (("gtk-update-icon-cache") "true"))
1257 #t)))))
6c4f7022
DC
1258 (native-inputs
1259 `(("glib:bin" ,glib "bin")
1260 ("intltool" ,intltool)
1261 ("pkg-config" ,pkg-config)
1262 ("docbook-xml" ,docbook-xml)
1263 ("docbook-xsl" ,docbook-xsl)
1264 ("libxml2" ,libxml2)
1265 ("libxslt" ,libxslt)))
1266 (inputs
1267 `(("glib" ,glib)
1268 ("appstream-glib" ,appstream-glib)
1269 ("gnome-settings-daemon" ,gnome-settings-daemon)
1270 ("gtk+" ,gtk+)
1271 ("libcanberra" ,libcanberra)
1272 ("libdvdread" ,libdvdread)
1273 ("libnotify" ,libnotify)
1274 ("libpwquality" ,libpwquality)
1275 ("libsecret" ,libsecret)
1276 ("udisks" ,udisks)))
1277 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1278 (synopsis "Disk management utility for GNOME")
1279 (description "Disk management utility for GNOME.")
1280 (license license:gpl2+)))
1281
3d217317
RG
1282(define-public gnome-font-viewer
1283 (package
1284 (name "gnome-font-viewer")
1285 (version "3.30.0")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1289 (version-major+minor version)
1290 "/gnome-font-viewer-" version ".tar.xz"))
1291 (sha256
1292 (base32
1293 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1294 (build-system meson-build-system)
1295 (arguments
1296 '(#:phases
1297 (modify-phases %standard-phases
1298 (add-after 'unpack 'patch-post-install-script
1299 (lambda _
1300 (substitute* "meson-postinstall.sh"
1301 (("update-desktop-database") (which "true")))
1302 #t)))))
1303 (native-inputs
1304 `(("gettext" ,gettext-minimal)
1305 ("glib:bin" ,glib "bin")
1306 ("pkg-config" ,pkg-config)))
1307 (inputs
1308 `(("glib" ,glib)
1309 ("gnome-desktop" ,gnome-desktop)
1310 ("gtk+" ,gtk+)))
1311 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1312 (synopsis "GNOME Fonts")
1313 (description "Application to show you the fonts installed on your computer
1314for your use as thumbnails. Selecting any thumbnails shows the full view of how
1315the font would look under various sizes.")
1316 (license license:gpl2+)))
1317
8ff49011
RW
1318(define-public gcr
1319 (package
1320 (name "gcr")
bea6b829 1321 (version "3.28.1")
8ff49011 1322 (source (origin
0daf0efb
RW
1323 (method url-fetch)
1324 (uri (string-append "mirror://gnome/sources/" name "/"
1325 (version-major+minor version) "/"
1326 name "-" version ".tar.xz"))
1327 (sha256
1328 (base32
bea6b829 1329 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
03ecf85a
MB
1330 (patches
1331 (list
1332 ;; This patch solves an ordering issue that showed up when
1333 ;; running the test suite against newer Glib 2.60. See
1334 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1335 (origin
1336 (method url-fetch)
1337 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1338 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1339 (file-name "gcr-hashtable-ordering.patch")
1340 (sha256
1341 (base32
1342 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
8ff49011
RW
1343 (build-system gnu-build-system)
1344 (arguments
0daf0efb
RW
1345 '(#:phases
1346 (modify-phases %standard-phases
1347 ;; These fail because /var/lib/dbus/machine-id is not present in the
1348 ;; build environment.
1349 (add-after 'unpack 'disable-failing-tests
1350 (lambda _
1351 (substitute* "gcr/test-system-prompt.c"
1352 (("g_test_add") "//")
1353 (("return.*") "return 0;"))
1354 #t))
1355 (add-before 'check 'pre-check
1356 (lambda _
1357 ;; Some tests expect to write to $HOME.
1358 (setenv "HOME" "/tmp")
1359 #t)))))
8ff49011
RW
1360 (inputs
1361 `(("dbus" ,dbus)
0daf0efb 1362 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1363 ("libgcrypt" ,libgcrypt)))
1364 (native-inputs
0daf0efb 1365 `(("python" ,python-2) ;for tests
8ff49011
RW
1366 ("pkg-config" ,pkg-config)
1367 ("glib" ,glib "bin")
2af4f5b0
SB
1368 ("gobject-introspection" ,gobject-introspection)
1369 ("intltool" ,intltool)
0daf0efb 1370 ("libxml2" ,libxml2)
bea6b829 1371 ("vala" ,vala)
2af4f5b0 1372 ("xsltproc" ,libxslt)))
8ff49011
RW
1373 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1374 (propagated-inputs
1375 `(("p11-kit" ,p11-kit)
1376 ("glib" ,glib)
1377 ("gtk+" ,gtk+)))
f032d0be 1378 (home-page "https://www.gnome.org")
8ff49011
RW
1379 (synopsis "Libraries for displaying certificates and accessing key stores")
1380 (description
1381 "The GCR package contains libraries used for displaying certificates and
1382accessing key stores. It also provides the viewer for crypto files on the
1383GNOME Desktop.")
1384 (license license:lgpl2.1+)))
1385
c1354b90
LC
1386(define-public libgnome-keyring
1387 (package
1388 (name "libgnome-keyring")
5e8aec2c 1389 (version "3.12.0")
c1354b90
LC
1390 (source (origin
1391 (method url-fetch)
b38e45d8
EB
1392 (uri (string-append "mirror://gnome/sources/" name "/"
1393 (version-major+minor version) "/"
1394 name "-" version ".tar.xz"))
c1354b90
LC
1395 (sha256
1396 (base32
5e8aec2c 1397 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1398 (build-system gnu-build-system)
c1354b90 1399 (inputs
c4c4cc05 1400 `(("libgcrypt" ,libgcrypt)
c1354b90 1401 ("dbus" ,dbus)))
c4c4cc05
JD
1402 (native-inputs
1403 `(("pkg-config" ,pkg-config)
426adbe8 1404 ("glib" ,glib "bin")
c4c4cc05 1405 ("intltool" ,intltool)))
c1354b90
LC
1406 (propagated-inputs
1407 ;; Referred to in .h files and .pc.
1408 `(("glib" ,glib)))
f032d0be 1409 (home-page "https://www.gnome.org")
c1354b90
LC
1410 (synopsis "Accessing passwords from the GNOME keyring")
1411 (description
1412 "Client library to access passwords from the GNOME keyring.")
1413
1414 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1415 (license license:lgpl2.0+)))
c1354b90 1416
e99a3d6f
RW
1417(define-public gnome-keyring
1418 (package
1419 (name "gnome-keyring")
ab35cc6e 1420 (version "3.28.2")
e99a3d6f
RW
1421 (source (origin
1422 (method url-fetch)
1423 (uri (string-append "mirror://gnome/sources/" name "/"
1424 (version-major+minor version) "/"
1425 name "-" version ".tar.xz"))
1426 (sha256
1427 (base32
ab35cc6e 1428 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
1429 (build-system gnu-build-system)
1430 (arguments
1431 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1432 ;not exist
1433 #:configure-flags
1434 (list
1435 (string-append "--with-pkcs11-config="
1436 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1437 (string-append "--with-pkcs11-modules="
1438 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1439 #:phases
1440 (modify-phases %standard-phases
ab35cc6e
RW
1441 (add-after 'unpack 'fix-/bin/sh-reference
1442 (lambda _
1443 (substitute* "po/Makefile.in.in"
1444 (("/bin/sh") (which "sh")))
1445 #t))
5120f24f
RW
1446 (add-after 'unpack 'fix-docbook
1447 (lambda* (#:key inputs #:allow-other-keys)
1448 (substitute* "docs/Makefile.am"
1449 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1450 (string-append (assoc-ref inputs "docbook-xsl")
1451 "/xml/xsl/docbook-xsl-"
1452 ,(package-version docbook-xsl)
1453 "/manpages/docbook.xsl")))
1454 (setenv "XML_CATALOG_FILES"
1455 (string-append (assoc-ref inputs "docbook-xml")
1456 "/xml/dtd/docbook/catalog.xml"))
1457 ;; Rerun the whole thing to avoid version mismatch ("This is
1458 ;; Automake 1.15.1, but the definition used by this
1459 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1460 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1461 (invoke "autoconf")
1462 (invoke "aclocal")
1463 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1464 (inputs
1465 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1466 ("linux-pam" ,linux-pam)
ab35cc6e 1467 ("openssh" ,openssh)
e99a3d6f
RW
1468 ("dbus" ,dbus)
1469 ("gcr" ,gcr)))
1470 (native-inputs
1471 `(("pkg-config" ,pkg-config)
1472 ("glib" ,glib "bin")
5120f24f 1473 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1474 ("python" ,python-2) ;for tests
1475 ("intltool" ,intltool)
1476 ("autoconf" ,autoconf)
1477 ("automake" ,automake)
1478 ("libxslt" ,libxslt) ;for documentation
1479 ("docbook-xml" ,docbook-xml-4.2)
1480 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1481 (home-page "https://www.gnome.org")
e99a3d6f
RW
1482 (synopsis "Daemon to store passwords and encryption keys")
1483 (description
1484 "gnome-keyring is a program that keeps passwords and other secrets for
1485users. It is run as a daemon in the session, similar to ssh-agent, and other
1486applications locate it via an environment variable or D-Bus.
1487
1488The program can manage several keyrings, each with its own master password,
1489and there is also a session keyring which is never stored to disk, but
1490forgotten when the session ends.")
1491 (license license:lgpl2.1+)))
1492
c1354b90
LC
1493(define-public evince
1494 (package
1495 (name "evince")
936d5642 1496 (version "3.34.2")
c1354b90
LC
1497 (source (origin
1498 (method url-fetch)
ac631328 1499 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1500 (version-major+minor version) "/"
ac631328 1501 "evince-" version ".tar.xz"))
c1354b90
LC
1502 (sha256
1503 (base32
936d5642 1504 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1505 (build-system glib-or-gtk-build-system)
c1354b90 1506 (arguments
169b8f77 1507 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1508 #:phases
1509 (modify-phases %standard-phases
1510 (add-before 'install 'skip-gtk-update-icon-cache
1511 ;; Don't create 'icon-theme.cache'.
1512 (lambda _
1513 (substitute* "data/Makefile"
1514 (("gtk-update-icon-cache") "true"))
1515 #t)))))
c1354b90 1516 (inputs
9a096881
KK
1517 `(("libarchive" ,libarchive)
1518 ("libgxps" ,libgxps)
1519 ("libspectre" ,libspectre)
c769cf9f 1520 ("djvulibre" ,djvulibre)
c1354b90
LC
1521 ("ghostscript" ,ghostscript)
1522 ("poppler" ,poppler)
c769cf9f
SB
1523 ("libtiff" ,libtiff)
1524 ;; TODO:
c769cf9f
SB
1525 ;; Build libkpathsea as a shared library for DVI support.
1526 ;; ("libkpathsea" ,texlive-bin)
1527 ("gnome-desktop" ,gnome-desktop)
c1354b90 1528 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1529 ("gspell" ,gspell)
c1354b90 1530 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1531 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1532 ("gdk-pixbuf" ,gdk-pixbuf)
1533 ("atk" ,atk)
1534 ("pango" ,pango)
1535 ("gtk+" ,gtk+)
1536 ("glib" ,glib)
1537 ("libxml2" ,libxml2)
c1354b90
LC
1538 ("libsm" ,libsm)
1539 ("libice" ,libice)
96e42467 1540 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1541 ("dconf" ,dconf)
1542 ("libcanberra" ,libcanberra)
c769cf9f 1543 ("libsecret" ,libsecret)
a271096b 1544
c1354b90
LC
1545 ;; For tests.
1546 ("dogtail" ,python2-dogtail)))
96e42467 1547 (native-inputs
bcb354ad
SB
1548 `(("itstool" ,itstool)
1549 ("intltool" ,intltool)
426adbe8 1550 ("glib" ,glib "bin")
169b8f77 1551 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1552 ("pkg-config" ,pkg-config)
1553 ("xmllint" ,libxml2)))
c1354b90 1554 (home-page
f032d0be 1555 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1556 (synopsis "GNOME's document viewer")
1557 (description
1558 "Evince is a document viewer for multiple document formats. It
1559currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1560of Evince is to replace the multiple document viewers that exist
96e42467 1561on the GNOME Desktop with a single simple application.")
1dd26275 1562 (license license:gpl2+)))
c1354b90 1563
22e32e69
AE
1564(define-public gsettings-desktop-schemas
1565 (package
1566 (name "gsettings-desktop-schemas")
c900dabd 1567 (version "3.32.0")
22e32e69
AE
1568 (source
1569 (origin
1570 (method url-fetch)
1571 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1572 (version-major+minor version) "/"
22e32e69
AE
1573 name "-" version ".tar.xz"))
1574 (sha256
1575 (base32
c900dabd
KK
1576 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1577 (build-system meson-build-system)
65209ffa
LC
1578 (arguments
1579 '(#:phases (modify-phases %standard-phases
1580 (add-after 'unpack 'set-adwaita-theme-file-name
1581 (lambda* (#:key inputs #:allow-other-keys)
1582 ;; Provide the correct file name of the default GNOME
1583 ;; background, 'adwaita-timed.xml'.
1584 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1585 (substitute* (find-files "schemas"
1586 "\\.gschema\\.xml\\.in$")
1587 (("@datadir@/backgrounds/gnome")
1588 (string-append theme "/share/backgrounds/gnome")))
1589 #t))))))
22e32e69 1590 (inputs
65209ffa
LC
1591 `(("glib" ,glib)
1592 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1593 (native-inputs
1594 `(("intltool" ,intltool)
426adbe8 1595 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1596 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1597 ("pkg-config" ,pkg-config)))
1598 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1599 (synopsis
1600 "GNOME settings for various desktop components")
1601 (description
1602 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1603for settings shared by various components of the GNOME desktop.")
1dd26275 1604 (license license:lgpl2.1+)))
22e32e69 1605
27477d2d
AE
1606(define-public icon-naming-utils
1607 (package
1608 (name "icon-naming-utils")
1609 (version "0.8.90")
1610 (source
1611 (origin
1612 (method url-fetch)
5cc3096c 1613 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1614 version ".tar.bz2"))
1615 (sha256
1616 (base32
1617 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1618 (build-system gnu-build-system)
1619 (inputs
1620 `(("perl" ,perl)
1621 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1622 (arguments
1623 '(#:phases
dc1d3cde
KK
1624 (modify-phases %standard-phases
1625 (add-after 'install 'set-load-paths
1626 ;; Tell 'icon-name-mapping' where XML::Simple is.
1627 (lambda* (#:key outputs #:allow-other-keys)
1628 (let* ((out (assoc-ref outputs "out"))
1629 (prog (string-append out "/libexec/icon-name-mapping")))
1630 (wrap-program
1631 prog
1632 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1633 #t)))))
27477d2d
AE
1634 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1635 (synopsis
1636 "Utility to implement the Freedesktop Icon Naming Specification")
1637 (description
1638 "To help with the transition to the Freedesktop Icon Naming
1639Specification, the icon naming utility maps the icon names used by the
1640GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1641 (license license:lgpl2.1+)))
27477d2d 1642
7d3f3651
AE
1643(define-public gnome-icon-theme
1644 (package
1645 (name "gnome-icon-theme")
b32f58dd 1646 (version "3.12.0")
7d3f3651
AE
1647 (source
1648 (origin
1649 (method url-fetch)
1650 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1651 (version-major+minor version) "/"
7d3f3651
AE
1652 name "-" version ".tar.xz"))
1653 (sha256
1654 (base32
b32f58dd 1655 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1656 (build-system gnu-build-system)
5613c27d
SB
1657 (arguments
1658 '(#:configure-flags
1659 ;; Don't create 'icon-theme.cache'.
1660 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1661 (true (string-append coreutils "/bin/true")))
1662 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1663 (native-inputs
5613c27d 1664 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1665 ("intltool" ,intltool)
1666 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1667 (home-page "https://wiki.gnome.org/Personalization")
1668 (synopsis "GNOME icon theme")
1669 (description "Icons for the GNOME desktop.")
1dd26275 1670 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1671
14eeefa2
SB
1672;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1673(define-public adwaita-icon-theme
1674 (package (inherit gnome-icon-theme)
1675 (name "adwaita-icon-theme")
9be59d7f 1676 (version "3.32.0")
14eeefa2
SB
1677 (source (origin
1678 (method url-fetch)
1679 (uri (string-append "mirror://gnome/sources/" name "/"
1680 (version-major+minor version) "/"
1681 name "-" version ".tar.xz"))
1682 (sha256
1683 (base32
9be59d7f 1684 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1685 (native-inputs
1686 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1687
ae792dba
RW
1688(define-public tango-icon-theme
1689 (package
1690 (name "tango-icon-theme")
1691 (version "0.8.90")
1692 (source (origin
1693 (method url-fetch)
1694 (uri (string-append "http://tango.freedesktop.org/releases/"
1695 "tango-icon-theme-" version ".tar.bz2"))
1696 (sha256
1697 (base32
1698 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1699 (build-system gnu-build-system)
1700 (native-inputs
1701 `(("icon-naming-utils" ,icon-naming-utils)
1702 ("intltool" ,intltool)
1703 ("imagemagick" ,imagemagick)
1704 ("pkg-config" ,pkg-config)))
1705 (home-page "http://tango-project.org/")
1706 (synopsis "Tango icon theme")
1707 (description "This is an icon theme that follows the Tango visual
1708guidelines.")
1709 (license license:public-domain)))
1710
9167f8e6
LC
1711(define-public shared-mime-info
1712 (package
1713 (name "shared-mime-info")
18138ab9 1714 (version "1.10")
9167f8e6
LC
1715 (source (origin
1716 (method url-fetch)
5cc3096c 1717 (uri (string-append "https://freedesktop.org/~hadess/"
b38e45d8 1718 "shared-mime-info-" version ".tar.xz"))
9167f8e6
LC
1719 (sha256
1720 (base32
18138ab9 1721 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
9167f8e6
LC
1722 (build-system gnu-build-system)
1723 (arguments
1724 ;; The build system appears not to be parallel-safe.
1725 '(#:parallel-build? #f))
1726 (inputs
1727 `(("glib" ,glib)
c4c4cc05 1728 ("libxml2" ,libxml2)))
9167f8e6 1729 (native-inputs
c4c4cc05
JD
1730 `(("intltool" ,intltool)
1731 ("pkg-config" ,pkg-config)))
57e7d748 1732 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1733 (synopsis "Database of common MIME types")
1734 (description
1735 "The shared-mime-info package contains the core database of common types
1736and the update-mime-database command used to extend it. It requires glib2 to
1737be installed for building the update command. Additionally, it uses intltool
1738for translations, though this is only a dependency for the maintainers. This
1739database is translated at Transifex.")
1dd26275 1740 (license license:gpl2+)))
9167f8e6 1741
dd1fcddc
CB
1742(define-public system-config-printer
1743 (package
1744 (name "system-config-printer")
fa01e10d 1745 (version "1.5.12")
a5643044
TGR
1746 (source
1747 (origin
1748 (method url-fetch)
1749 (uri (string-append
1750 "https://github.com/OpenPrinting/system-config-printer/releases/"
1751 "download/" version
1752 "/system-config-printer-" version ".tar.xz"))
1753 (sha256
fa01e10d 1754 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1755 (build-system glib-or-gtk-build-system)
1756 (arguments
1757 `(#:imported-modules ((guix build python-build-system)
1758 ,@%glib-or-gtk-build-system-modules)
1759 #:phases
1760 (modify-phases %standard-phases
1761 (add-after 'unpack 'patch-Makefile.am
1762 (lambda _
1763 ;; The Makefile generates some scripts, so set a valid shebang
1764 (substitute* "Makefile.am"
1765 (("/bin/bash") (which "bash")))
1766 (delete-file "configure")
1767 #t))
1768 (add-after 'unpack 'patch-docbook-xml
1769 (lambda* (#:key inputs #:allow-other-keys)
1770 ;; Modify the man XML otherwise xmlto tries to access the network
1771 (substitute* "man/system-config-printer.xml"
1772 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1773 (string-append (assoc-ref inputs "docbook-xml")
1774 "/xml/dtd/docbook/")))
1775 #t))
1776 (add-after 'install 'wrap-for-python
1777 (@@ (guix build python-build-system) wrap))
1778 (add-after 'install 'wrap
1779 (lambda* (#:key outputs #:allow-other-keys)
1780 (let ((out (assoc-ref outputs "out"))
1781 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1782 (for-each
1783 (lambda (program)
1784 (wrap-program program
1785 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1786 (map (lambda (name)
1787 (string-append out "/bin/" name))
1788 '("system-config-printer"
1789 "system-config-printer-applet"
1790 "install-printerdriver"
1791 "scp-dbus-service"))))
1792 #t)))))
1793 (inputs
1794 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1795 ("gobject-introspection" ,gobject-introspection)
1796 ("python" ,python)
1797 ("cups" ,cups)
1798 ("python-dbus" ,python-dbus)
1799 ("python-pygobject" ,python-pygobject)
1800 ("python-pycups" ,python-pycups)
1801 ("python-requests" ,python-requests)
1802 ("python-pycairo" ,python-pycairo)
1803 ("libnotify" ,libnotify)
1804 ("packagekit" ,packagekit)))
1805 (native-inputs
1806 `(("pkg-config" ,pkg-config)
1807 ("desktop-file-utils" ,desktop-file-utils)
1808 ("glib" ,glib)
1809 ("autoconf" ,autoconf)
1810 ("automake" ,automake)
1811 ("intltool" ,intltool)
1812 ("xmlto" ,xmlto)
1813 ("docbook-xml" ,docbook-xml-4.1.2)
1814 ("docbook-xsl" ,docbook-xsl)
1815 ("libxml2" ,libxml2)))
1816 (home-page "https://github.com/zdohnal/system-config-printer")
1817 (synopsis "CUPS administration tool")
1818 (description
1819 "system-config-printer is a CUPS administration tool. It's written in
1820Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1821configuring CUPS.")
1822 (license license:gpl2+)))
1823
bef4dd92
AE
1824(define-public hicolor-icon-theme
1825 (package
1826 (name "hicolor-icon-theme")
851cb6dd 1827 (version "0.17")
bef4dd92
AE
1828 (source
1829 (origin
1830 (method url-fetch)
5cc3096c 1831 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1832 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1833 (sha256
1834 (base32
851cb6dd 1835 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1836 (build-system gnu-build-system)
1837 (arguments
1838 `(#:tests? #f)) ; no check target
57e7d748 1839 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1840 (synopsis
1841 "Freedesktop icon theme")
1842 (description
1843 "Freedesktop icon theme.")
1dd26275 1844 (license license:gpl2)))
bef4dd92 1845
d9c1a22b
AE
1846(define-public libnotify
1847 (package
1848 (name "libnotify")
195bfa68 1849 (version "0.7.7")
d9c1a22b
AE
1850 (source
1851 (origin
1852 (method url-fetch)
1853 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1854 (version-major+minor version) "/"
d9c1a22b
AE
1855 name "-" version ".tar.xz"))
1856 (sha256
1857 (base32
195bfa68 1858 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1859 (build-system gnu-build-system)
6acf6cec
MB
1860 (arguments
1861 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1862 (propagated-inputs
1863 `(;; In Requires of libnotify.pc.
1864 ("gdk-pixbuf" ,gdk-pixbuf)
1865 ("glib" ,glib)))
d9c1a22b 1866 (inputs
7ef08efa 1867 `(("gtk+" ,gtk+)
c4c4cc05
JD
1868 ("libpng" ,libpng)))
1869 (native-inputs
426adbe8 1870 `(("pkg-config" ,pkg-config)
277a7d82
JN
1871 ("glib" ,glib "bin")
1872 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1873 (home-page "https://developer-next.gnome.org/libnotify/")
1874 (synopsis
1875 "GNOME desktop notification library")
1876 (description
1877 "Libnotify is a library that sends desktop notifications to a
35b9e423 1878notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1879notifications can be used to inform the user about an event or display
1880some form of information without getting in the user's way.")
1dd26275 1881 (license license:lgpl2.1+)))
7a8605ce
CR
1882
1883(define-public libpeas
1884 (package
1885 (name "libpeas")
f2d56e39 1886 (version "1.24.1")
7a8605ce
CR
1887 (source
1888 (origin
1889 (method url-fetch)
1890 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1891 (version-major+minor version) "/"
7a8605ce
CR
1892 name "-" version ".tar.xz"))
1893 (sha256
1894 (base32
f2d56e39
MB
1895 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1896 (build-system meson-build-system)
1897 (arguments
1898 '(#:phases
1899 (modify-phases %standard-phases
1900 (add-before 'check 'start-xserver
1901 (lambda* (#:key inputs #:allow-other-keys)
1902 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1903 (disp ":1"))
1904 (setenv "DISPLAY" disp)
1905 ;; Tests require a running X server.
1906 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1907 #t))))))
7a8605ce 1908 (inputs
2ed6522a
SB
1909 `(("gtk+" ,gtk+)
1910 ("glade" ,glade3)
2ed6522a
SB
1911 ("python" ,python)
1912 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1913 (native-inputs
1914 `(("pkg-config" ,pkg-config)
f2d56e39 1915 ("gettext" ,gettext-minimal)
93622993 1916 ("glib:bin" ,glib "bin")
141aed80 1917 ("gobject-introspection" ,gobject-introspection)
f2d56e39 1918 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
1919 (propagated-inputs
1920 ;; The .pc file "Requires" gobject-introspection.
1921 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1922 (home-page "https://wiki.gnome.org/Libpeas")
1923 (synopsis "GObject plugin system")
1924 (description
d1e4ad1b
TGR
1925 "Libpeas is a gobject-based plugin engine, targeted at giving every
1926application the chance to assume its own extensibility. It also has a set of
1927features including, but not limited to: multiple extension points; on-demand
1928(lazy) programming language support for C, Python and JS; simplicity of the
1929API.")
1dd26275 1930 (license license:lgpl2.0+)))
ed19903d
JD
1931
1932(define-public gtkglext
1933 (package
1934 (name "gtkglext")
1935 (version "1.2.0")
1936 (source (origin
1937 (method url-fetch)
0f971a04 1938 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1939 version "/gtkglext-" version ".tar.gz"))
1940 (sha256
1941 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1942 (patches (search-patches
1943 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1944 (build-system gnu-build-system)
14e2f61a
RW
1945 (arguments
1946 `(#:phases
1947 (modify-phases %standard-phases
1948 ;; Fix a collision between a local variable and a definition from
1949 ;; glibc's string.h.
1950 (add-after 'unpack 'fix-collision
1951 (lambda _
1952 (substitute* "gdk/gdkglshapes.c"
1953 ((" index") " triangle_index"))
1954 #t)))))
ed19903d
JD
1955 (inputs `(("gtk+" ,gtk+-2)
1956 ("mesa" ,mesa)
cc8b02f4 1957 ("glu" ,glu)
ed19903d
JD
1958 ("libx11" ,libx11)
1959 ("libxt" ,libxt)))
426adbe8
LC
1960 (native-inputs `(("pkg-config" ,pkg-config)
1961 ("glib" ,glib "bin")))
a83b6a06 1962 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1963 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1964 (synopsis "OpenGL extension to GTK+")
35b9e423 1965 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1966additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1967API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 1968 (license license:lgpl2.1+)))
3600420e
JD
1969
1970(define-public glade3
1971 (package
1972 (name "glade")
c6571adb 1973 (version "3.22.1")
b38e45d8
EB
1974 (source (origin
1975 (method url-fetch)
1976 (uri (string-append "mirror://gnome/sources/" name "/"
1977 (version-major+minor version) "/"
f5ca44b8 1978 name "-" version ".tar.xz"))
3600420e 1979 (sha256
f714d9fe 1980 (base32
c6571adb 1981 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 1982 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
1983 (arguments
1984 `(#:tests? #f ; needs X, GL, and software rendering
1985 #:phases
1986 (modify-phases %standard-phases
1987 (add-before 'configure 'fix-docbook
1988 (lambda* (#:key inputs #:allow-other-keys)
1989 (substitute* "man/Makefile.in"
1990 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1991 (string-append (assoc-ref inputs "docbook-xsl")
1992 "/xml/xsl/docbook-xsl-"
1993 ,(package-version docbook-xsl)
1994 "/manpages/docbook.xsl")))
1995 #t)))))
3600420e 1996 (inputs
f5ca44b8 1997 `(("gtk+" ,gtk+)
3600420e
JD
1998 ("libxml2" ,libxml2)))
1999 (native-inputs
2000 `(("intltool" ,intltool)
f5ca44b8
RW
2001 ("itstool" ,itstool)
2002 ("libxslt" ,libxslt) ;for xsltproc
2003 ("docbook-xml" ,docbook-xml-4.2)
2004 ("docbook-xsl" ,docbook-xsl)
2005 ("python" ,python-2)
3600420e
JD
2006 ("pkg-config" ,pkg-config)))
2007 (home-page "https://glade.gnome.org")
2008 (synopsis "GTK+ rapid application development tool")
2009 (description "Glade is a rapid application development (RAD) tool to
2010enable quick & easy development of user interfaces for the GTK+ toolkit and
2011the GNOME desktop environment.")
1dd26275
LC
2012 (license license:lgpl2.0+)))
2013
2014(define-public libcroco
2015 (package
2016 (name "libcroco")
8bdacad2 2017 (version "0.6.13")
1dd26275
LC
2018 (source (origin
2019 (method url-fetch)
b38e45d8
EB
2020 (uri (string-append "mirror://gnome/sources/" name "/"
2021 (version-major+minor version) "/"
2022 name "-" version ".tar.xz"))
1dd26275
LC
2023 (sha256
2024 (base32
8bdacad2 2025 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2026 (build-system gnu-build-system)
2027 (native-inputs
2028 `(("pkg-config" ,pkg-config)))
2029 (inputs
2030 `(("glib" ,glib)
2031 ("libxml2" ,libxml2)
2032 ("zlib" ,zlib)))
2033 (home-page "https://github.com/GNOME/libcroco")
2034 (synopsis "CSS2 parsing and manipulation library")
2035 (description
2036 "Libcroco is a standalone CSS2 parsing and manipulation library.
2037The parser provides a low level event driven SAC-like API and a CSS object
2038model like API. Libcroco provides a CSS2 selection engine and an experimental
2039XML/CSS rendering engine.")
2040
2041 ;; LGPLv2.1-only.
2042 (license license:lgpl2.1)))
25178594
LC
2043
2044(define-public libgsf
2045 (package
2046 (name "libgsf")
8d1644a1 2047 (version "1.14.46")
25178594
LC
2048 (source (origin
2049 (method url-fetch)
b38e45d8
EB
2050 (uri (string-append "mirror://gnome/sources/" name "/"
2051 (version-major+minor version) "/"
2052 name "-" version ".tar.xz"))
25178594
LC
2053 (sha256
2054 (base32
8d1644a1 2055 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
2056 (build-system gnu-build-system)
2057 (native-inputs
2058 `(("intltool" ,intltool)
2059 ("pkg-config" ,pkg-config)))
2060 (inputs
2061 `(("python" ,python)
2062 ("zlib" ,zlib)
2063 ("bzip2" ,bzip2)))
2064 (propagated-inputs
2065 `(("gdk-pixbuf" ,gdk-pixbuf)
2066 ("glib" ,glib)
2067 ("libxml2" ,libxml2)))
f032d0be 2068 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2069 (synopsis "GNOME's Structured File Library")
2070 (description
2071 "Libgsf aims to provide an efficient extensible I/O abstraction for
2072dealing with different structured file formats.")
2073
2074 ;; LGPLv2.1-only.
2075 (license license:lgpl2.1)))
63016e7c
LC
2076
2077(define-public librsvg
f67417a1
MB
2078 (package
2079 (name "librsvg")
2080 (version "2.40.20")
2081 (source (origin
2082 (method url-fetch)
2083 (uri (string-append "mirror://gnome/sources/" name "/"
2084 (version-major+minor version) "/"
2085 name "-" version ".tar.xz"))
2086 (sha256
2087 (base32
2088 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2089 (build-system gnu-build-system)
2090 (arguments
2091 `(#:configure-flags
2092 (list "--disable-static"
2093 "--enable-vala") ; needed for e.g. gnome-mines
2094 #:phases
2095 (modify-phases %standard-phases
2096 (add-before 'configure 'pre-configure
2097 (lambda* (#:key inputs #:allow-other-keys)
2098 (substitute* "gdk-pixbuf-loader/Makefile.in"
2099 ;; By default the gdk-pixbuf loader is installed under
2100 ;; gdk-pixbuf's prefix. Work around that.
2101 (("gdk_pixbuf_moduledir = .*$")
2102 (string-append "gdk_pixbuf_moduledir = "
2103 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2104 "loaders\n"))
2105 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2106 (("gdk_pixbuf_cache_file = .*$")
2107 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2108 #t))
2109 (add-before 'check 'remove-failing-tests
2110 (lambda _
2111 (with-directory-excursion "tests/fixtures/reftests"
2112 (for-each delete-file
2113 '(;; This test fails on i686:
2114 "svg1.1/masking-path-04-b.svg"
2115 ;; This test fails on armhf:
2116 "svg1.1/masking-mask-01-b.svg"
2117 ;; This test fails on aarch64:
2118 "bugs/777834-empty-text-children.svg")))
2119 #t)))))
2120 (native-inputs
2121 `(("pkg-config" ,pkg-config)
2122 ("vala" ,vala)
2123 ("glib" ,glib "bin") ; glib-mkenums, etc.
2124 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2125 (inputs
2126 `(("pango" ,pango)
2127 ("libcroco" ,libcroco)
2128 ("bzip2" ,bzip2)
2129 ("libgsf" ,libgsf)
2130 ("libxml2" ,libxml2)))
2131 (propagated-inputs
2132 ;; librsvg-2.0.pc refers to all of that.
2133 `(("cairo" ,cairo)
2134 ("gdk-pixbuf" ,gdk-pixbuf)
2135 ("glib" ,glib)))
2136 (home-page "https://wiki.gnome.org/LibRsvg")
2137 (synopsis "Render SVG files using Cairo")
2138 (description
2139 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2140library.")
2141 (license license:lgpl2.0+)))
2142
8f523eb9
EF
2143(define* (computed-origin-method gexp-promise hash-algo hash
2144 #:optional (name "source")
2145 #:key (system (%current-system))
2146 (guile (default-guile)))
2147 "Return a derivation that executes the G-expression that results
2148from forcing GEXP-PROMISE."
2149 (mlet %store-monad ((guile (package->derivation guile system)))
2150 (gexp->derivation (or name "computed-origin")
2151 (force gexp-promise)
2152 #:graft? #f ;nothing to graft
2153 #:system system
2154 #:guile-for-build guile)))
2155
2156(define librsvg-next-source
2157 (let* ((version "2.46.3")
2158 (upstream-source (origin
2159 (method url-fetch)
2160 (uri (string-append "mirror://gnome/sources/librsvg/"
2161 (version-major+minor version) "/"
2162 "librsvg-" version ".tar.xz"))
2163 (sha256
2164 (base32
2165 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
2166 (origin
2167 (method computed-origin-method)
2168 (file-name (string-append "librsvg-" version ".tar.xz"))
2169 (sha256 #f)
2170 (uri
2171 (delay
2172 (with-imported-modules '((guix build utils))
2173 #~(begin
2174 (use-modules (guix build utils))
2175 (set-path-environment-variable
2176 "PATH" '("bin")
2177 (list "/tmp"
2178 #+(canonical-package xz)
2179 #+(canonical-package gzip)
2180 #+(canonical-package tar)))
2181 (invoke "tar" "xvf" #+upstream-source)
2182 (with-directory-excursion (string-append "librsvg-" #$version)
2183 (for-each
2184 (lambda (crate)
2185 (delete-file-recursively (string-append "vendor/" (car crate)))
2186 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
e19cb895 2187 '(;("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
8f523eb9 2188;; alga 0.9
e19cb895
EF
2189 ("approx" . #+(package-source rust-approx-0.3))
2190 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
8f523eb9
EF
2191 ("atty" . #+(package-source rust-atty-0.2))
2192 ("autocfg" . #+(package-source rust-autocfg-0.1))
2193 ("bitflags" . #+(package-source rust-bitflags-1))
2194;; block 0.1
e19cb895
EF
2195 ("bstr" . #+(package-source rust-bstr-0.2))
2196 ("byteorder" . #+(package-source rust-byteorder-1.3))
8f523eb9
EF
2197;; cairo-rs 0.7
2198;; cairo-sys-rs 0.9
e19cb895 2199 ("cast" . #+(package-source rust-cast-0.2))
8f523eb9
EF
2200 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2201 ("clap" . #+(package-source rust-clap-2))
e19cb895
EF
2202 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2203 ("criterion" . #+(package-source rust-criterion-0.2))
2204 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
2205 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
2206 ;("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.7))
2207 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.1))
2208 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.6))
8f523eb9
EF
2209;; cssparser 0.25
2210;; cssparser-macros 0.3
e19cb895
EF
2211 ("csv" . #+(package-source rust-csv-1.1))
2212 ("csv-core" . #+(package-source rust-csv-core-0.1))
8f523eb9
EF
2213;; data-url 0.1
2214;; downcast-rs 1.0
2215 ("dtoa" . #+(package-source rust-dtoa-0.4))
2216;; dtoa-short 0.3
e19cb895
EF
2217 ("either" . #+(package-source rust-either-1.5))
2218 ("encoding" . #+(package-source rust-encoding-0.2))
2219 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2220 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2221 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2222 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2223 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2224 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
8f523eb9
EF
2225;; float-cmp 0.5
2226;; fragile 0.3
e19cb895
EF
2227 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2228 ("futf" . #+(package-source rust-futf-0.1))
8f523eb9
EF
2229;; gdk-pixbuf 0.7
2230;; gdk-pixbuf-sys 0.9
e19cb895 2231 ("generic-array" . #+(package-source rust-generic-array-0.12))
8f523eb9
EF
2232;; gio 0.7
2233;; gio-sys 0.9
2234;; glib 0.8
2235;; glib-sys 0.9
2236;; gobject-sys 0.9
2237;; idna 0.2
e19cb895 2238 ("itertools" . #+(package-source rust-itertools-0.8))
8f523eb9 2239 ("itoa" . #+(package-source rust-itoa-0.4))
e19cb895 2240 ("language-tags" . #+(package-source rust-language-tags-0.2))
8f523eb9
EF
2241 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
2242 ("libc" . #+(package-source rust-libc-0.2))
2243;; libm 0.1
2244;; locale_config 0.3
2245 ("log" . #+(package-source rust-log-0.4))
e19cb895 2246 ("mac" . #+(package-source rust-mac-0.1))
8f523eb9
EF
2247;; malloc_buf 0.0
2248;; markup5ever 0.9
e19cb895 2249 ("matches" . #+(package-source rust-matches-0.1))
8f523eb9 2250;; matrixmultiply 0.2
e19cb895 2251 ;("memchr" . #+(package-source rust-memchr-2.2))
8f523eb9
EF
2252;; memoffset 0.5
2253;; nalgebra 0.18
e19cb895 2254 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
8f523eb9 2255 ("nodrop" . #+(package-source rust-nodrop-0.1))
e19cb895 2256 ("num-complex" . #+(package-source rust-num-complex-0.2))
8f523eb9
EF
2257 ("num-integer" . #+(package-source rust-num-integer-0.1))
2258;; num-rational 0.2
2259 ("num-traits" . #+(package-source rust-num-traits-0.2))
2260 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
2261;; objc 0.2
2262;; objc-foundation 0.1
2263;; objc_id 0.1
2264;; pango 0.7
2265;; pango-sys 0.9
2266;; pangocairo 0.8
2267;; pangocairo-sys 0.10
2268 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
e19cb895
EF
2269 ("phf" . #+(package-source rust-phf-0.7))
2270 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2271 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2272 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2273 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2274 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
8f523eb9
EF
2275 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2276;; procedural-masquerade 0.1
2277 ("quote" . #+(package-source rust-quote-1.0))
e19cb895 2278 ("rand" . #+(package-source rust-rand-0.6))
8f523eb9
EF
2279 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2280 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2281 ("rand_core" . #+(package-source rust-rand-core-0.4))
2282 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2283 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2284 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2285 ("rand_os" . #+(package-source rust-rand-os-0.1))
2286 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2287 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
2288;; rand_xoshiro 0.1
e19cb895 2289;; rawpointer 0.2
8f523eb9
EF
2290;; rayon 1.2
2291;; rayon-core 1.6
2292;; rctree 0.3
2293 ("rdrand" . #+(package-source rust-rdrand-0.4))
2294;; regex 1.3
e19cb895 2295 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
8f523eb9 2296 ;("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
e19cb895 2297 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
8f523eb9
EF
2298 ("ryu" . #+(package-source rust-ryu-1.0))
2299 ("same-file" . #+(package-source rust-same-file-1.0))
2300 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
e19cb895
EF
2301 ("semver" . #+(package-source rust-semver-0.9))
2302 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
8f523eb9
EF
2303 ("serde" . #+(package-source rust-serde-1.0))
2304 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2305 ("serde_json" . #+(package-source rust-serde-json-1.0))
e19cb895
EF
2306 ("siphasher" . #+(package-source rust-siphasher-0.2))
2307 ("smallvec" . #+(package-source rust-smallvec-0.6))
2308 ("string_cache" . #+(package-source rust-string-cache-0.7))
2309 ;("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
2310 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
8f523eb9 2311 ("syn" . #+(package-source rust-syn-1.0))
e19cb895 2312 ("tendril" . #+(package-source rust-tendril-0.4))
8f523eb9 2313 ("textwrap" . #+(package-source rust-textwrap-0.11))
e19cb895
EF
2314 ("thread_local" . #+(package-source rust-thread-local-0.3))
2315 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2316 ("typenum" . #+(package-source rust-typenum-1.10))
2317 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2318 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
8f523eb9
EF
2319 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2320 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
2321;; url 2.1
e19cb895 2322 ("utf-8" . #+(package-source rust-utf-8-0.7))
8f523eb9
EF
2323 ("walkdir" . #+(package-source rust-walkdir-2.2))
2324 ("winapi" . #+(package-source rust-winapi-0.3))
e19cb895 2325 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
8f523eb9 2326 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
e19cb895 2327 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
8f523eb9
EF
2328;; xml-rs 0.8
2329 )))
2330 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2331 (force-output)
2332 (invoke "tar" "cfa" #$output
2333 ;; Avoid non-determinism in the archive. We set the
2334 ;; mtime of files in the archive to early 1980 because
2335 ;; the build process fails if the mtime of source
2336 ;; files is pre-1980, due to the creation of zip
2337 ;; archives.
2338 "--mtime=@315619200" ; 1980-01-02 UTC
2339 "--owner=root:0"
2340 "--group=root:0"
2341 "--sort=name"
2342 (string-append "librsvg-" #$version))
2343 #t)))))))
2344
f67417a1 2345(define-public librsvg-next
63016e7c
LC
2346 (package
2347 (name "librsvg")
cf9dad6c 2348 (version "2.46.3")
8f523eb9 2349 (source librsvg-next-source)
63016e7c
LC
2350 (build-system gnu-build-system)
2351 (arguments
d953418a
RW
2352 `(#:configure-flags
2353 (list "--disable-static"
2354 "--enable-vala") ; needed for e.g. gnome-mines
7e0f4cb1 2355 #:make-flags '("CC=gcc")
8f523eb9 2356 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
ec47c07d 2357 #:phases
b6239e45 2358 (modify-phases %standard-phases
8f523eb9 2359 (add-after 'configure 'patch-cargo-checksums
ec47c07d 2360 (lambda _
8f523eb9
EF
2361 (use-modules (guix build cargo-utils))
2362 (substitute* "librsvg/Cargo.toml"
2363 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
b665a246 2364 (generate-all-checksums "vendor")
8f523eb9
EF
2365 (delete-file "Cargo.lock")
2366 (invoke "cargo" "generate-lockfile")))
b6239e45
EF
2367 (add-before 'configure 'pre-configure
2368 (lambda* (#:key inputs #:allow-other-keys)
2369 (substitute* "gdk-pixbuf-loader/Makefile.in"
2370 ;; By default the gdk-pixbuf loader is installed under
2371 ;; gdk-pixbuf's prefix. Work around that.
2372 (("gdk_pixbuf_moduledir = .*$")
2373 (string-append "gdk_pixbuf_moduledir = "
2374 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2375 "loaders\n"))
2376 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2377 (("gdk_pixbuf_cache_file = .*$")
2378 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2379 #t))
ec47c07d 2380 (add-before 'check 'remove-failing-tests
b6239e45 2381 (lambda _
64a153bd
MW
2382 (with-directory-excursion "tests/fixtures/reftests"
2383 (for-each delete-file
ec47c07d
MB
2384 '(;; The images produced by these tests differ slightly
2385 ;; from their reference counterparts due to differences
2386 ;; in the build environment (missing fonts, etc). See
2387 ;; <tests/README.md> for details.
2388 ;; These fail on x86_64.
2389 "svg1.1/coords-viewattr-02-b.svg"
2390 "svg1.1/filters-composite-04-f.svg"
2391 "svg1.1/filters-image-01-b.svg"
2392 "svg1.1/filters-conv-02-f.svg"
2393 "svg1.1/filters-conv-04-f.svg"
2394 ;; This test fails on i686:
64a153bd 2395 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2396 ;; This test fails on armhf:
2397 "svg1.1/masking-mask-01-b.svg"
64a153bd 2398 ;; This test fails on aarch64:
ec47c07d 2399 "bugs/777834-empty-text-children.svg")))
b6239e45 2400 #t)))))
63016e7c
LC
2401 (native-inputs
2402 `(("pkg-config" ,pkg-config)
64855281
MB
2403 ;; This is the minimum supported Rust version in Librsvg 2.46.
2404 ("rust" ,rust-1.34)
2405 ("cargo" ,rust-1.34 "cargo")
d953418a 2406 ("vala" ,vala)
44add1ce 2407 ("glib" ,glib "bin") ; glib-mkenums, etc.
63016e7c
LC
2408 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2409 (inputs
2410 `(("pango" ,pango)
2411 ("libcroco" ,libcroco)
2412 ("bzip2" ,bzip2)
2413 ("libgsf" ,libgsf)
2414 ("libxml2" ,libxml2)))
2415 (propagated-inputs
2416 ;; librsvg-2.0.pc refers to all of that.
2417 `(("cairo" ,cairo)
2418 ("gdk-pixbuf" ,gdk-pixbuf)
2419 ("glib" ,glib)))
2420 (home-page "https://wiki.gnome.org/LibRsvg")
2421 (synopsis "Render SVG files using Cairo")
2422 (description
35b9e423 2423 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
63016e7c 2424library.")
cf9dad6c 2425 (license license:lgpl2.1+)))
5698b8b8
JD
2426
2427(define-public libidl
2428 (package
2429 (name "libidl")
2430 (version "0.8.14")
2431 (source (origin
2432 (method url-fetch)
80a06e62
EF
2433 (uri (string-append "mirror://gnome/sources/libIDL/"
2434 (version-major+minor version) "/"
2435 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2436 (sha256
2437 (base32
2438 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2439 (build-system gnu-build-system)
2440 (inputs `(("glib" ,glib)))
2441 (native-inputs
2442 `(("pkg-config" ,pkg-config)
b3546174 2443 ("flex" ,flex)
5698b8b8
JD
2444 ("bison" ,bison)))
2445 (home-page "http://freecode.com/projects/libidl")
2446 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2447 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2448Definition Language (idl) files, which is a specification for defining
2449portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2450GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2451functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2452 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2453 (license license:lgpl2.0+)))
2454
2455
2456(define-public orbit2
2457 (package
2458 (name "orbit2")
2459 (version "2.14.19")
2460 (source (origin
2461 (method url-fetch)
2e6ecc5c 2462 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2463 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2464 (version-major+minor version) "/"
2465 upstream-name "-" version ".tar.bz2")))
5698b8b8 2466 (sha256
a124bbd2
SB
2467 (base32
2468 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2469 (build-system gnu-build-system)
2470 (arguments
a124bbd2 2471 `(#:configure-flags
8aad2e32
LC
2472 '(;; We don't need static libraries, plus they don't build reproducibly
2473 ;; (non-deterministic ordering of .o files in the archive.)
2474 "--disable-static"
2475
2476 ;; The programmer kindly gives us a hook to turn off deprecation
2477 ;; warnings ...
2478 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2479 ;; ... which they then completly ignore !!
2480 #:phases
dc1d3cde
KK
2481 (modify-phases %standard-phases
2482 (add-before 'configure 'ignore-deprecations
2483 (lambda _
2484 (substitute* "linc2/src/Makefile.in"
2485 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2486 #t)))))
5698b8b8
JD
2487 (inputs `(("glib" ,glib)
2488 ("libidl" ,libidl)))
2489 (native-inputs
2490 `(("pkg-config" ,pkg-config)))
2491 (home-page "https://projects.gnome.org/orbit2/")
2492 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2493 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2494featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2495 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2496 ;; a version. SOME of the code files have licence notices for GPLv2+.
2497 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2498 (license license:gpl2+)
2499 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2500
2501
2502(define-public libbonobo
2503 (package
2504 (name "libbonobo")
2505 (version "2.32.1")
2506 (source (origin
2507 (method url-fetch)
5becd025 2508 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2509 (version-major+minor version)
5becd025 2510 "/" name "-" version ".tar.bz2"))
5698b8b8 2511 (sha256
f1fc45a9 2512 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2513 (patches (search-patches
2514 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2515 (build-system gnu-build-system)
2516 (arguments
2517 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2518 `(#:configure-flags
2519 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2520 ;; ... which they then completly ignore !!
2521 #:phases
dc1d3cde
KK
2522 (modify-phases %standard-phases
2523 (add-before 'configure 'ignore-deprecations
2524 (lambda _
2525 (substitute* "activation-server/Makefile.in"
2526 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2527 #t)))
2528
2529 ;; There's apparently a race condition between the server stub
2530 ;; generation and linking of the example under 'samples/echo' that can
2531 ;; lead do undefined references when building in parallel, as reported
2532 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2533 ;; Thus, disable parallel builds.
2534 #:parallel-build? #f))
5698b8b8
JD
2535 (inputs `(("popt" ,popt)
2536 ("libxml2" ,libxml2)))
2537 ;; The following are Required by the .pc file
44add1ce 2538 (propagated-inputs
5698b8b8
JD
2539 `(("glib" ,glib)
2540 ("orbit2" ,orbit2)))
2541 (native-inputs
2542 `(("intltool" ,intltool)
2543 ("pkg-config" ,pkg-config)
221ed17a 2544 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2545 ("flex" ,flex)
2546 ("bison" ,bison)))
2547 (home-page "https://developer.gnome.org/libbonobo/")
2548 (synopsis "Framework for creating reusable components for use in GNOME applications")
2549 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2550use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2551 ;; Licence not explicitly stated. Source files contain no licence notices.
2552 ;; Tarball contains text of both GPLv2 and LGPLv2
2553 ;; GPLv2 covers both conditions
2554 (license license:gpl2+)))
2555
2556
2557(define-public gconf
2558 (package
2559 (name "gconf")
2560 (version "3.2.6")
2561 (source (origin
2562 (method url-fetch)
a124bbd2
SB
2563 (uri
2564 (let ((upstream-name "GConf"))
2565 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2566 (version-major+minor version) "/"
2567 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2568 (sha256
2569 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2570 (build-system gnu-build-system)
2e88d113 2571 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2572 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2573 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2574 ("orbit2" ,orbit2)))
5698b8b8
JD
2575 (native-inputs
2576 `(("intltool" ,intltool)
221ed17a 2577 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2578 ("pkg-config" ,pkg-config)))
2579 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2580 (synopsis "Store application preferences")
2581 (description "Gconf is a system for storing application preferences. It
2582is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2583 (license license:lgpl2.0+)
2584 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2585
2586
2587(define-public gnome-mime-data
2588 (package
2589 (name "gnome-mime-data")
2590 (version "2.18.0")
2591 (source (origin
2592 (method url-fetch)
b38e45d8
EB
2593 (uri (string-append "mirror://gnome/sources/" name "/"
2594 (version-major+minor version) "/"
2595 name "-" version ".tar.bz2"))
5698b8b8
JD
2596 (sha256
2597 (base32
2598 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2599 (build-system gnu-build-system)
2600 (native-inputs
2601 `(("perl" ,perl)
2602 ("intltool" ,intltool)))
3e6add96
LC
2603 (arguments
2604 '(#:phases (modify-phases %standard-phases
2605 (add-after 'configure 'use-our-intltool
2606 (lambda _
2607 ;; Do not use the bundled intltool commands, which lack
2608 ;; the "dotless @INC" fixes of our 'intltool' package.
2609 (substitute* (find-files "." "^Makefile$")
2610 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2611 (string-append "INTLTOOL_" tool " = intltool-"
2612 (string-downcase tool) "\n")))
2613 #t)))))
f032d0be 2614 (home-page "https://www.gnome.org")
35b9e423 2615 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2616 (description "GNOME Mime Data is a module which contains the base MIME
2617and Application database for GNOME. The data stored by this module is
2618designed to be accessed through the MIME functions in GnomeVFS.")
2619 (license license:gpl2+)))
2620
2621
2622(define-public gnome-vfs
2623 (package
2624 (name "gnome-vfs")
2625 (version "2.24.4")
2626 (source (origin
2627 (method url-fetch)
b38e45d8
EB
2628 (uri (string-append "mirror://gnome/sources/" name "/"
2629 (version-major+minor version) "/"
2630 name "-" version ".tar.bz2"))
5698b8b8 2631 (sha256
9e12bc34
MW
2632 (base32
2633 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2634 (build-system gnu-build-system)
2635 (arguments
db5127d8 2636 `(#:phases
dc1d3cde
KK
2637 (modify-phases %standard-phases
2638 (add-before 'configure 'ignore-deprecations
2639 (lambda _
2640 (substitute* '("libgnomevfs/Makefile.in"
2641 "daemon/Makefile.in")
2642 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2643 #t))
2644 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2645 (lambda _
2646 (substitute* "test/test-async-cancel.c"
2647 (("EXIT_FAILURE") "77"))
2648 #t)))))
2e6ecc5c 2649 (inputs `(("libxml2" ,libxml2)
5698b8b8 2650 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2651 ("gconf" ,gconf)
2652 ("gnome-mime-data" ,gnome-mime-data)
2653 ("zlib" ,zlib)))
2654 (native-inputs
221ed17a
EB
2655 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2656 ("intltool" ,intltool)
5698b8b8
JD
2657 ("pkg-config" ,pkg-config)))
2658 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2659 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2660 (description
2661 "GnomeVFS is the core library used to access files and folders in GNOME
2662applications. It provides a file system abstraction which allows applications
2663to access local and remote files with a single consistent API.")
5698b8b8
JD
2664 (license license:lgpl2.0+)))
2665
2666
2667
2668(define-public libgnome
2669 (package
2670 (name "libgnome")
2671 (version "2.32.1")
2672 (source (origin
2673 (method url-fetch)
b38e45d8
EB
2674 (uri (string-append "mirror://gnome/sources/" name "/"
2675 (version-major+minor version) "/"
2676 name "-" version ".tar.bz2"))
5698b8b8
JD
2677 (sha256
2678 (base32
17c3eea7
LC
2679 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2680 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2681 (build-system gnu-build-system)
2682 (arguments
2683 `(#:phases
dc1d3cde
KK
2684 (modify-phases %standard-phases
2685 (add-before 'configure 'enable-deprecated
2686 (lambda _
2687 (substitute* "libgnome/Makefile.in"
2688 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2689 #t)))))
25338e9f 2690 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2691 (native-inputs
221ed17a
EB
2692 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2693 ("intltool" ,intltool)
5698b8b8
JD
2694 ("pkg-config" ,pkg-config)))
2695 ;; The following are listed as Required in the .pc file
2696 ;; (except for libcanberra -- which seems to be oversight on the part
2697 ;; of the upstream developers -- anything that links against libgnome,
2698 ;; must also link against libcanberra
2699 (propagated-inputs
2700 `(("libcanberra" ,libcanberra)
2701 ("libbonobo" ,libbonobo)
2702 ("gconf" ,gconf)
a640d3d5
LC
2703 ("gnome-vfs" ,gnome-vfs)
2704 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2705 (home-page "https://developer.gnome.org/libgnome/")
2706 (synopsis "Useful routines for building applications")
2707 (description "The libgnome library provides a number of useful routines
2708for building modern applications, including session management, activation of
2709files and URIs, and displaying help.")
2710 (license license:lgpl2.0+)))
2711
2712
2713(define-public libart-lgpl
2714 (package
2715 (name "libart-lgpl")
76c9b6aa 2716 (version "2.3.21")
5698b8b8
JD
2717 (source (origin
2718 (method url-fetch)
2719 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2720 (string-append "mirror://gnome/sources/" upstream-name "/"
2721 (version-major+minor version) "/"
2722 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2723 (sha256
2724 (base32
76c9b6aa 2725 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2726 (build-system gnu-build-system)
2727 (native-inputs
2728 `(("pkg-config" ,pkg-config)))
2729 (home-page "https://people.gnome.org/~mathieu/libart")
2730 (synopsis "2D drawing library")
2e6ecc5c 2731 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2732high-quality vector-based 2D library with antialiasing and alpha composition.")
2733 (license license:lgpl2.0+)))
2734
2735
2736
2737(define-public libgnomecanvas
2738 (package
2739 (name "libgnomecanvas")
2740 (version "2.30.3")
2741 (source (origin
2742 (method url-fetch)
b38e45d8
EB
2743 (uri (string-append "mirror://gnome/sources/" name "/"
2744 (version-major+minor version) "/"
2745 name "-" version ".tar.gz"))
5698b8b8
JD
2746 (sha256
2747 (base32
2748 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2749 (build-system gnu-build-system)
2750 ;; Mentioned as Required in the .pc file
2751 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2752 ("gtk+" ,gtk+-2)))
2753 (native-inputs
2754 `(("intltool" ,intltool)
221ed17a 2755 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2756 ("pkg-config" ,pkg-config)))
2757 (home-page "https://developer.gnome.org/libgnomecanvas/")
2758 (synopsis "Flexible widget for creating interactive structured graphics")
2759 (description "The GnomeCanvas widget provides a flexible widget for
2760creating interactive structured graphics.")
2761 (license license:lgpl2.0+)))
2762
eadc734e
RW
2763(define-public libgnomecanvasmm
2764 (package
2765 (name "libgnomecanvasmm")
2766 (version "2.26.0")
2767 (source (origin
2768 (method url-fetch)
2769 (uri (string-append "mirror://gnome/sources/" name "/"
2770 (version-major+minor version) "/"
2771 name "-" version ".tar.bz2"))
2772 (sha256
2773 (base32
2774 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2775 (build-system gnu-build-system)
2776 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2777 (native-inputs
2778 `(("gtkmm-2" ,gtkmm-2)
2779 ("pkg-config" ,pkg-config)))
8e933cb3 2780 (home-page "https://gtkmm.org")
eadc734e
RW
2781 (synopsis "C++ bindings to the GNOME Canvas library")
2782 (description "C++ bindings to the GNOME Canvas library.")
2783 (license license:lgpl2.0+)))
2784
5698b8b8
JD
2785(define-public libgnomeui
2786 (package
2787 (name "libgnomeui")
2788 (version "2.24.5")
2789 (source (origin
2790 (method url-fetch)
b38e45d8
EB
2791 (uri (string-append "mirror://gnome/sources/" name "/"
2792 (version-major+minor version) "/"
2793 name "-" version ".tar.bz2"))
8fa1872a 2794 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2795 (sha256
2796 (base32
2797 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2798 (build-system gnu-build-system)
2799 ;; Mentioned as Required in the .pc file
0a38a497
AE
2800 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2801 ("libgnome" ,libgnome)
2802 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2803 ("libgnome-keyring" ,libgnome-keyring)))
0a38a497 2804 (inputs `(("libjpeg" ,libjpeg)
5698b8b8
JD
2805 ("popt" ,popt)
2806 ("libbonobo" ,libbonobo)
2807 ("libxml2" ,libxml2)
2808 ("libglade" ,libglade)))
2809 (native-inputs
221ed17a
EB
2810 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2811 ("intltool" ,intltool)
5698b8b8
JD
2812 ("pkg-config" ,pkg-config)))
2813 (home-page "https://developer.gnome.org/libgnomeui/")
2814 (synopsis "Additional widgets for applications")
35b9e423 2815 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2816applications. Many of the widgets from libgnomeui have already been
2817ported to GTK+.")
5698b8b8
JD
2818 (license license:lgpl2.0+)))
2819
2820(define-public libglade
2821 (package
2822 (name "libglade")
2823 (version "2.6.4")
2824 (source (origin
2825 (method url-fetch)
b38e45d8
EB
2826 (uri (string-append "mirror://gnome/sources/" name "/"
2827 (version-major+minor version) "/"
2828 name "-" version ".tar.bz2"))
5698b8b8
JD
2829 (sha256
2830 (base32
2831 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2832 (build-system gnu-build-system)
2833 (inputs
92dcc23d
AE
2834 `(("python" ,python))) ;; needed for the optional libglade-convert program
2835 (propagated-inputs
5698b8b8 2836 `(("gtk+-2" ,gtk+-2)
92dcc23d 2837 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2838 (native-inputs
2839 `(("pkg-config" ,pkg-config)))
2840 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2841 (synopsis "Load glade interfaces and access the glade built widgets")
2842 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2843graphical interfaces described in glade files and for accessing the
2844widgets built in the loading process.")
2845 (license license:gpl2+))) ; This is correct. GPL not LGPL
2846
2847(define-public libgnomeprint
eb497b66
LC
2848 ;; This library has been deprecated since 2006; see
2849 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2850 (package
2851 (name "libgnomeprint")
d19db454 2852 (version "2.18.8")
5698b8b8
JD
2853 (source (origin
2854 (method url-fetch)
b38e45d8
EB
2855 (uri (string-append "mirror://gnome/sources/" name "/"
2856 (version-major+minor version) "/"
2857 name "-" version ".tar.bz2"))
5698b8b8
JD
2858 (sha256
2859 (base32
d19db454 2860 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2861 (build-system gnu-build-system)
2862 (inputs
2863 `(("popt" ,popt)
2864 ("libart-lgpl" ,libart-lgpl)
2865 ("gtk+" ,gtk+-2)
44add1ce 2866 ("libxml2" ,libxml2)))
5698b8b8
JD
2867 (native-inputs
2868 `(("intltool" ,intltool)
221ed17a 2869 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2870 ("pkg-config" ,pkg-config)))
2871 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2872 (synopsis "Printing framework for GNOME")
eb497b66
LC
2873 (description
2874 "GNOME-print was a printing framework for GNOME. It has been deprecated
2875since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2876 (license license:lgpl2.0+)))
2877
2878
2879(define-public libgnomeprintui
eb497b66 2880 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2881 (package
2882 (name "libgnomeprintui")
36053d7f 2883 (version "2.18.6")
5698b8b8
JD
2884 (source (origin
2885 (method url-fetch)
b38e45d8
EB
2886 (uri (string-append "mirror://gnome/sources/" name "/"
2887 (version-major+minor version) "/"
2888 name "-" version ".tar.bz2"))
5698b8b8
JD
2889 (sha256
2890 (base32
36053d7f 2891 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2892 (build-system gnu-build-system)
2893 ;; Mentioned as Required in the .pc file
2894 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2895 (inputs `(("gtk+" ,gtk+-2)
2896 ("glib" ,glib)
2897 ("gnome-icon-theme" ,gnome-icon-theme)
2898 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2899 ("libxml2" ,libxml2)))
5698b8b8
JD
2900 (native-inputs
2901 `(("intltool" ,intltool)
2902 ("pkg-config" ,pkg-config)))
2903 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2904 (synopsis "Printing framework for GNOME")
eb497b66 2905 (description (package-description libgnomeprint))
5698b8b8
JD
2906 (license license:lgpl2.0+)))
2907
5698b8b8
JD
2908(define-public libbonoboui
2909 (package
2910 (name "libbonoboui")
2911 (version "2.24.5")
2912 (source (origin
2913 (method url-fetch)
b38e45d8
EB
2914 (uri (string-append "mirror://gnome/sources/" name "/"
2915 (version-major+minor version) "/"
2916 name "-" version ".tar.bz2"))
5698b8b8
JD
2917 (sha256
2918 (base32
2919 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2920 (build-system gnu-build-system)
2921 (arguments
2922 `(#:phases
dc1d3cde
KK
2923 (modify-phases %standard-phases
2924 (add-before 'check 'start-xserver
2925 (lambda* (#:key inputs #:allow-other-keys)
2926 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2927 (disp ":1"))
2928
2929 (setenv "HOME" (getcwd))
2930 (setenv "DISPLAY" disp)
2931 ;; There must be a running X server and make check doesn't start one.
2932 ;; Therefore we must do it.
2933 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2934 ;; Mentioned as Required by the .pc file
2935 (propagated-inputs `(("libxml2" ,libxml2)))
2936 (inputs
2937 `(("popt" ,popt)
2938 ("pangox-compat" ,pangox-compat)
2939 ("libgnome" ,libgnome)
2940 ("libgnomecanvas" ,libgnomecanvas)
2941 ("libglade" ,libglade)))
2942 (native-inputs
221ed17a
EB
2943 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2944 ("intltool" ,intltool)
ff337525 2945 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2946 ("pkg-config" ,pkg-config)))
2947 (home-page "https://developer.gnome.org/libbonoboui/")
2948 (synopsis "Some user interface controls using Bonobo")
2949 (description "The Bonobo UI library provides a number of user interface
2950controls using the Bonobo component framework.")
2951 (license license:lgpl2.0+)))
2952
fecbf86e
SB
2953(define-public libwnck
2954 (package
2955 (name "libwnck")
d3b40696 2956 (version "3.32.0")
fecbf86e
SB
2957 (source (origin
2958 (method url-fetch)
2959 (uri (string-append "mirror://gnome/sources/" name "/"
2960 (version-major+minor version) "/"
2961 name "-" version ".tar.xz"))
2962 (sha256
ad9b8987 2963 (base32
d3b40696
KK
2964 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2965 (build-system meson-build-system)
fecbf86e
SB
2966 (native-inputs
2967 `(("pkg-config" ,pkg-config)
d3b40696
KK
2968 ("glib" ,glib "bin") ; for glib-mkenums
2969 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2970 ("intltool" ,intltool)))
2971 (propagated-inputs
427476d5
SB
2972 `(("gtk+" ,gtk+)
2973 ("libxres" ,libxres)
2974 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2975 (home-page "https://developer.gnome.org/libwnck/")
2976 (synopsis "Window Navigator Construction Kit")
2977 (description
2978 "Libwnck is the Window Navigator Construction Kit, a library for use in
2979writing pagers, tasklists, and more generally applications that are dealing
2980with window management. It tries hard to respect the Extended Window Manager
2981Hints specification (EWMH).")
2982 (license license:lgpl2.0+)))
2983
2984;; stable version for gtk2, required by xfwm4.
dbb7a081 2985(define-public libwnck-2
fecbf86e
SB
2986 (package (inherit libwnck)
2987 (name "libwnck")
2988 (version "2.30.7")
2989 (source (origin
2990 (method url-fetch)
2991 (uri (string-append "mirror://gnome/sources/" name "/"
2992 (version-major+minor version) "/"
2993 name "-" version ".tar.xz"))
2994 (sha256
2995 (base32
2996 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2997 (build-system gnu-build-system)
2998 (native-inputs
2999 `(("pkg-config" ,pkg-config)
3000 ("intltool" ,intltool)))
fecbf86e 3001 (propagated-inputs
427476d5
SB
3002 `(("gtk+" ,gtk+-2)
3003 ("libxres" ,libxres)
3004 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3005
3006(define-public goffice
3007 (package
3008 (name "goffice")
09abffcc 3009 (version "0.10.46")
b804c61e
JD
3010 (source (origin
3011 (method url-fetch)
16243f0b 3012 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3013 (version-major+minor version) "/"
16243f0b 3014 "goffice-" version ".tar.xz"))
b804c61e 3015 (sha256
09abffcc 3016 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3017 (build-system gnu-build-system)
72a06d3e 3018 (outputs '("out"
355420c6 3019 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3020 (arguments
3021 '(#:configure-flags (list (string-append "--with-html-dir="
3022 (assoc-ref %outputs "doc")
3023 "/share/gtk-doc/html"))))
b804c61e
JD
3024 (inputs
3025 `(("gtk+" ,gtk+)
3026 ("libgsf" ,libgsf)
3027 ("librsvg" ,librsvg)
3028 ("libxslt" ,libxslt)
3029 ("libxml2" ,libxml2)))
3030 (native-inputs
3031 `(("intltool" ,intltool)
f280cdb1 3032 ("glib" ,glib "bin")
b804c61e
JD
3033 ("pkg-config" ,pkg-config)))
3034 (home-page "https://developer.gnome.org/goffice/")
3035 (synopsis "Document-centric objects and utilities")
3036 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3037 (license
b804c61e
JD
3038 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3039 ;; Note: NOT LGPL
3040 (list license:gpl2 license:gpl3))))
3041
c024ae36
RW
3042(define-public goffice-0.8
3043 (package (inherit goffice)
3044 (version "0.8.17")
3045 (source (origin
3046 (method url-fetch)
3047 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3048 (version-major+minor version) "/"
3049 (package-name goffice) "-" version ".tar.xz"))
3050 (sha256
3051 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3052 (arguments
3053 `(#:phases
dc1d3cde
KK
3054 (modify-phases %standard-phases
3055 (add-after 'unpack 'fix-pcre-check
3056 (lambda _
3057 ;; Only glib.h can be included directly. See
3058 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3059 (substitute* "configure"
3060 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3061
3062 ,@(package-arguments goffice)))
c024ae36
RW
3063 (propagated-inputs
3064 ;; libgoffice-0.8.pc mentions libgsf-1
3065 `(("libgsf" ,libgsf)))
3066 (inputs
3067 `(("gtk" ,gtk+-2)
3068 ,@(alist-delete "gtk" (package-inputs goffice))))))
3069
b804c61e
JD
3070(define-public gnumeric
3071 (package
3072 (name "gnumeric")
f0517b5d 3073 (version "1.12.46")
b804c61e
JD
3074 (source (origin
3075 (method url-fetch)
b7fd0217 3076 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3077 (version-major+minor version) "/"
b7fd0217 3078 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3079 (sha256
3080 (base32
f0517b5d 3081 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3082 (build-system glib-or-gtk-build-system)
b804c61e
JD
3083 (arguments
3084 `(;; The gnumeric developers don't worry much about failing tests.
3085 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3086 #:tests? #f
b804c61e 3087 #:phases
7bcbd40d
EF
3088 (modify-phases %standard-phases
3089 (add-before
3090 'configure 'pre-conf
3091 (lambda* (#:key outputs #:allow-other-keys)
3092 ;; Make install tries to write into the directory of goffice
3093 ;; I am informed that this only affects the possibility to embed a
3094 ;; spreadsheet inside an Abiword document. So presumably when we
3095 ;; package Abiword we'll have to refer it to this directory.
3096 (substitute* "configure"
3097 (("^GOFFICE_PLUGINS_DIR=.*")
3098 (string-append "GOFFICE_PLUGINS_DIR="
3099 (assoc-ref outputs "out")
3100 "/goffice/plugins"))))))))
b804c61e
JD
3101 (inputs
3102 `(("glib" ,glib)
3103 ("gtk+" ,gtk+)
3104 ("goffice" ,goffice)
3105 ("libgsf" ,libgsf)
7bcbd40d 3106 ("librsvg" ,librsvg)
b804c61e 3107 ("libxml2" ,libxml2)
7bcbd40d 3108 ("libxslt" ,libxslt)
2e4c5457 3109 ("python" ,python-2)
6983ba56 3110 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3111 ("zlib" ,zlib)))
3112 (native-inputs
6983ba56 3113 `(("bison" ,bison)
1ed398d1 3114 ("docbook-xml" ,docbook-xml)
6983ba56 3115 ("intltool" ,intltool)
3a2efbc8 3116 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
b9663471 3117 ("glib:bin" ,glib "bin")
b804c61e
JD
3118 ("pkg-config" ,pkg-config)))
3119 (home-page "http://www.gnumeric.org")
66672a45
LC
3120 (synopsis "Spreadsheet application")
3121 (description
3122 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3123interoperable with other spreadsheet applications. It has a vast array of
3124features beyond typical spreadsheet functionality, such as support for linear
3125and non-linear solvers, statistical analysis, and telecommunication
3126engineering.")
3127 (license
b804c61e
JD
3128 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3129 (list license:gpl2 license:gpl3))))
6f885c05
FB
3130
3131(define-public gnome-themes-standard
3132 (package
3133 (name "gnome-themes-standard")
0b7b8fb0 3134 (version "3.22.3")
6f885c05
FB
3135 (source
3136 (origin
3137 (method url-fetch)
2e6ecc5c 3138 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3139 (version-major+minor version) "/" name "-"
3140 version ".tar.xz"))
3141 (sha256
3142 (base32
0b7b8fb0 3143 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3144 (build-system gnu-build-system)
8ac70c7f
SB
3145 (arguments
3146 '(#:configure-flags
3147 ;; Don't create 'icon-theme.cache'.
3148 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3149 (true (string-append coreutils "/bin/true")))
3150 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3151 (inputs
3152 `(("gtk+" ,gtk+)
3153 ("gtk+-2" ,gtk+-2)
3154 ("librsvg" ,librsvg)
3155 ("libxml2" ,libxml2)
3156 ("glib" ,glib)))
3157 (native-inputs
3158 `(("intltool" ,intltool)
3159 ("glib:bin" ,glib "bin")
3160 ("pkg-config" ,pkg-config)))
6f885c05
FB
3161 (home-page "https://launchpad.net/gnome-themes-standard")
3162 (synopsis "Default GNOME 3 themes")
3163 (description
3164 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3165 (license license:lgpl2.1+)))
5a659a48 3166
df90c701
RW
3167(define-public seahorse
3168 (package
3169 (name "seahorse")
bcea3c11 3170 (version "3.32.2")
df90c701
RW
3171 (source
3172 (origin
3173 (method url-fetch)
3174 (uri (string-append "mirror://gnome/sources/" name "/"
3175 (version-major+minor version) "/" name "-"
3176 version ".tar.xz"))
3177 (sha256
3178 (base32
bcea3c11 3179 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
3180 (patches (search-patches
3181 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3182 (build-system meson-build-system)
3183 (arguments
bcea3c11
KK
3184 '(#:glib-or-gtk? #t
3185 #:phases
af561664
MÁAV
3186 (modify-phases %standard-phases
3187 (add-after 'unpack 'skip-gtk-update-icon-cache
3188 ;; Don't create 'icon-theme.cache'.
3189 (lambda _
3190 (substitute* "build-aux/meson_post_install.py"
3191 (("gtk-update-icon-cache") "true"))
3192 #t)))))
df90c701
RW
3193 (inputs
3194 `(("gtk+" ,gtk+)
3195 ("gcr" ,gcr)
34b979b9 3196 ("gnupg" ,gnupg)
df90c701 3197 ("gpgme" ,gpgme)
34b979b9 3198 ("openldap" ,openldap)
4a1bf090 3199 ("openssh" ,openssh)
af561664 3200 ("avahi" ,avahi)
bcea3c11 3201 ("libpwquality" ,libpwquality)
34b979b9
EF
3202 ("libsecret" ,libsecret)
3203 ("libsoup" ,libsoup)))
df90c701 3204 (native-inputs
af561664 3205 `(("gettext" ,gettext-minimal)
df90c701
RW
3206 ("glib:bin" ,glib "bin")
3207 ("itstool" ,itstool)
bcb354ad 3208 ("pkg-config" ,pkg-config)
af561664 3209 ("vala" ,vala)
bcb354ad 3210 ("xmllint" ,libxml2)))
bcea3c11 3211 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3212 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3213 (description
3214 "Seahorse is a GNOME application for managing encryption keys and
3215passwords in the GNOME keyring.")
3216 (license license:gpl2+)))
3217
5a659a48
SB
3218(define-public vala
3219 (package
3220 (name "vala")
2d6872f6 3221 (version "0.44.5")
5a659a48
SB
3222 (source (origin
3223 (method url-fetch)
3224 (uri (string-append "mirror://gnome/sources/" name "/"
3225 (version-major+minor version) "/"
3226 name "-" version ".tar.xz"))
3227 (sha256
3228 (base32
2d6872f6 3229 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
5a659a48 3230 (build-system gnu-build-system)
1ea90625
SB
3231 (arguments
3232 '(#:phases
3233 (modify-phases %standard-phases
f4925a4f 3234 (add-before 'check 'pre-check
1ea90625
SB
3235 (lambda _
3236 (setenv "CC" "gcc")
8839b6be
RW
3237 (substitute* "valadoc/tests/testrunner.sh"
3238 (("export PKG_CONFIG_PATH=" m)
3239 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3240 ;; For missing '/etc/machine-id'.
3241 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3242 #t)))))
5a659a48
SB
3243 (native-inputs
3244 `(("pkg-config" ,pkg-config)
3245 ("flex" ,flex)
3246 ("bison" ,bison)
3247 ("xsltproc" ,libxslt)
3248 ("dbus" ,dbus) ; for dbus tests
3249 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3250 (inputs
3251 `(("graphviz" ,graphviz)))
5a659a48 3252 (propagated-inputs
8839b6be 3253 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3254 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3255 (synopsis "Compiler for the GObject type system")
3256 (description
3257 "Vala is a programming language that aims to bring modern programming
3258language features to GNOME developers without imposing any additional runtime
3259requirements and without using a different ABI compared to applications and
3260libraries written in C.")
3261 (license license:lgpl2.1+)))
ea57378f
SB
3262
3263(define-public vte
3264 (package
3265 (name "vte")
68c47474 3266 (version "0.58.3")
ea57378f
SB
3267 (source (origin
3268 (method url-fetch)
ac87ffb8 3269 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3270 (version-major+minor version) "/"
ac87ffb8 3271 "vte-" version ".tar.xz"))
ea57378f
SB
3272 (sha256
3273 (base32
68c47474
TGR
3274 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3275 (build-system meson-build-system)
ea57378f
SB
3276 (native-inputs
3277 `(("pkg-config" ,pkg-config)
3278 ("intltool" ,intltool)
3279 ("vala" ,vala)
3280 ("gobject-introspection" ,gobject-introspection)
68c47474 3281 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3282 ("gperf" ,gperf)
ea57378f
SB
3283 ("xmllint" ,libxml2)))
3284 (propagated-inputs
68c47474
TGR
3285 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3286 ("gnutls" ,gnutls) ; ditto
3287 ("pcre2" ,pcre2))) ; ditto
f032d0be 3288 (home-page "https://www.gnome.org/")
ea57378f
SB
3289 (synopsis "Virtual Terminal Emulator")
3290 (description
3291 "VTE is a library (libvte) implementing a terminal emulator widget for
3292GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3293gnome-terminal, but can also be used to embed a console/terminal in games,
3294editors, IDEs, etc.")
3295 (license license:lgpl2.1+)))
3296
c44fb4df
MO
3297(define-public vte-ng
3298 (package
3299 (inherit vte)
3300 (name "vte-ng")
24f4fcbe 3301 (version "0.58.2.a")
afd90f8d 3302 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3303 (source (origin
3304 (method git-fetch)
3305 (uri (git-reference (url home-page) (commit version)))
3306 (file-name (git-file-name name version))
3307 (sha256
3308 (base32
24f4fcbe
MB
3309 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3310 (build-system meson-build-system)
c44fb4df
MO
3311 (native-inputs
3312 `(("gtk-doc" ,gtk-doc)
c44fb4df 3313 ,@(package-native-inputs vte)))
c44fb4df 3314 (arguments
24f4fcbe 3315 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3316 (synopsis "Enhanced VTE terminal widget")
3317 (description
3318 "VTE is a library (libvte) implementing a terminal emulator widget for
3319GTK+, this fork provides additional functions exposed for keyboard text
3320selection and URL hints.")))
3321
2776d72c
EF
3322;; provides vte 2.90, required for some terminal emulators
3323;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3324;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3325;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3326;; pantheon-terminal, roxterm are not currently packaged
3327(define-public vte-0.36
3328 (package (inherit vte)
3329 (name "vte")
3330 (version "0.36.5")
3331 (source (origin
3332 (method url-fetch)
3333 (uri (string-append "mirror://gnome/sources/" name "/"
3334 (version-major+minor version) "/"
3335 name "-" version ".tar.xz"))
3336 (sha256
3337 (base32
3338 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3339 (propagated-inputs
3340 `(("gtk" ,gtk+)
3341 ("ncurses" ,ncurses)))))
3342
ea57378f
SB
3343;; stable version for gtk2, required by xfce4-terminal.
3344(define-public vte/gtk+-2
3345 (package (inherit vte)
3346 (name "vte")
3347 (version "0.28.2")
3348 (source (origin
3349 (method url-fetch)
3350 (uri (string-append "mirror://gnome/sources/" name "/"
3351 (version-major+minor version) "/"
3352 name "-" version ".tar.xz"))
3353 (sha256
3354 (base32
7d48938a
EF
3355 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3356 (patches (search-patches
3357 "vte-CVE-2012-2738-pt1.patch"
3358 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3359 (build-system gnu-build-system)
ea57378f
SB
3360 (arguments
3361 '(#:configure-flags '("--disable-python")))
3362 (native-inputs
3363 `(("pkg-config" ,pkg-config)
3364 ("intltool" ,intltool)
3365 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3366 (propagated-inputs
3367 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3368 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3369
cce0da5e
TD
3370(define-public vinagre
3371 (package
3372 (name "vinagre")
3373 (version "3.22.0")
3374 (source (origin
3375 (method url-fetch)
3376 (uri (string-append "mirror://gnome/sources/" name "/"
3377 (version-major+minor version) "/"
3378 name "-" version ".tar.xz"))
684f97f8
EF
3379 (patches (search-patches "vinagre-newer-freerdp.patch"
3380 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3381 (sha256
3382 (base32
3383 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3384 (build-system glib-or-gtk-build-system)
684f97f8 3385 (arguments
7f486d25
MC
3386 ;; Disable -Werror and such, to avoid build failures on compilation
3387 ;; warnings.
3388 '(#:configure-flags '("--enable-compile-warnings=minimum")
3389 #:phases
684f97f8 3390 (modify-phases %standard-phases
1839768c
EF
3391 (add-before 'install 'skip-gtk-update-icon-cache
3392 (lambda _
3393 ;; Don't create 'icon-theme.cache'
3394 (substitute* (find-files "." "^Makefile$")
3395 (("gtk-update-icon-cache") (which "true")))
3396 #t))
684f97f8
EF
3397 (add-after 'unpack 'patch-configure
3398 (lambda _
3399 (substitute* "configure"
3400 (("freerdp") "freerdp2"))
3401 #t)))))
cce0da5e
TD
3402 (native-inputs
3403 `(("pkg-config" ,pkg-config)
3404 ("intltool" ,intltool)
3405 ("itstool" ,itstool)
1839768c 3406 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3407 (inputs
3408 `(("libxml2" ,libxml2)
3409 ("gtk-vnc" ,gtk-vnc)
3410 ("gnome-keyring" ,gnome-keyring)
3411 ("libsecret" ,libsecret)
3412 ("freerdp" ,freerdp)
3413 ("spice" ,spice)
3414 ("spice-gtk" ,spice-gtk)
3415 ("telepathy-glib" ,telepathy-glib)
3416 ("vte" ,vte)))
cce0da5e
TD
3417 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3418 (synopsis "Remote desktop viewer for GNOME")
3419 (description "Vinagre is a remote display client supporting the VNC, SPICE
3420and RDP protocols.")
3421 (license license:gpl3+)))
3422
b47e1b20
FB
3423(define-public dconf
3424 (package
3425 (name "dconf")
1e33331c 3426 (version "0.32.0")
b47e1b20
FB
3427 (source (origin
3428 (method url-fetch)
3429 (uri (string-append
2e6ecc5c 3430 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3431 (version-major+minor version) "/"
3432 name "-" version ".tar.xz"))
3433 (sha256
f05c809f 3434 (base32
1e33331c 3435 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 3436 (build-system meson-build-system)
bc036f4c
MB
3437 (propagated-inputs
3438 ;; In Requires of dconf.pc.
3439 `(("glib" ,glib)))
b47e1b20
FB
3440 (inputs
3441 `(("gtk+" ,gtk+)
bc036f4c 3442 ("dbus" ,dbus)))
b47e1b20 3443 (native-inputs
1e33331c
MB
3444 `(("bash-completion" ,bash-completion)
3445 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3446 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3447 ("docbook-xml" ,docbook-xml-4.2)
3448 ("docbook-xsl" ,docbook-xsl)
35fa923d 3449 ("glib:bin" ,glib "bin")
03676d6f 3450 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3451 ("pkg-config" ,pkg-config)
3452 ("vala" ,vala)))
b47e1b20
FB
3453 (arguments
3454 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3455 ; or /etc/machine-id.
35fa923d
MB
3456 #:glib-or-gtk? #t
3457 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3458 (home-page "https://developer.gnome.org/dconf")
3459 (synopsis "Low-level GNOME configuration system")
3460 (description "Dconf is a low-level configuration system. Its main purpose
3461is to provide a backend to GSettings on platforms that don't already have
3462configuration storage systems.")
e20e6b40 3463 (license license:lgpl2.1+)))
109da1c0
AE
3464
3465(define-public json-glib
3466 (package
3467 (name "json-glib")
4115e8ea 3468 (version "1.4.4")
109da1c0
AE
3469 (source (origin
3470 (method url-fetch)
3471 (uri (string-append "mirror://gnome/sources/" name "/"
3472 (version-major+minor version) "/"
3473 name "-" version ".tar.xz"))
3474 (sha256
3475 (base32
4115e8ea 3476 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3477 (build-system meson-build-system)
109da1c0 3478 (native-inputs
98afa184
MB
3479 `(("gettext" ,gettext-minimal)
3480 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3481 ("gobject-introspection" ,gobject-introspection)
3482 ("pkg-config" ,pkg-config)))
3483 (propagated-inputs
88c6b580 3484 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3485 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3486 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3487 (description
3488 "JSON-GLib is a C library based on GLib providing serialization and
3489deserialization support for the JavaScript Object Notation (JSON) format
3490described by RFC 4627. It provides parser and generator GObject classes and
3491various wrappers for the complex data types employed by JSON, such as arrays
3492and objects.")
109da1c0 3493 (license license:lgpl2.1+)))
6f96a359
SB
3494
3495(define-public libxklavier
3496 (package
3497 (name "libxklavier")
5f39050b 3498 (version "5.4")
6f96a359 3499 (source (origin
5f39050b 3500 ;; Note: There's no tarball at ftp.gnome.org for this version.
3501 (method git-fetch)
3502 (uri (git-reference
3503 (url "https://anongit.freedesktop.org/git/libxklavier")
3504 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3505 (sha256
3506 (base32
5f39050b 3507 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3508 (file-name (git-file-name name version))))
6f96a359
SB
3509 (build-system gnu-build-system)
3510 (arguments
5f39050b 3511 '(#:phases
3512 (modify-phases %standard-phases
3513 (add-after 'unpack 'no-configure
3514 (lambda* _
3515 (setenv "NOCONFIGURE" "1")
3516 #t)))
3517 #:configure-flags
6f96a359
SB
3518 (list (string-append "--with-xkb-base="
3519 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3520 "/share/X11/xkb")
3521 "--disable-xmodmap-support")))
6f96a359
SB
3522 (native-inputs
3523 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3524 ("gobject-introspection" ,gobject-introspection)
5f39050b 3525 ("pkg-config" ,pkg-config)
3526 ("gtk-doc" ,gtk-doc)
3527 ("intltool" ,intltool)
3528 ("which" ,which)
3529 ("autoconf" ,autoconf)
3530 ("automake" ,automake)
3531 ("libtool" ,libtool)))
6f96a359
SB
3532 (propagated-inputs
3533 ;; Required by libxklavier.pc.
3534 `(("glib" ,glib)
3535 ("libxml2" ,libxml2)))
3536 (inputs
3537 `(("iso-codes" ,iso-codes)
3538 ("libxi" ,libxi)
3539 ("libxkbfile" ,libxkbfile)
3540 ("xkbcomp" ,xkbcomp)
3541 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3542 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3543 (synopsis "High-level API for X Keyboard Extension")
3544 (description
3545 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3546Extension known as XKB. This library is intended to support XFree86 and other
3547commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3548indicators etc).")
3549 (license license:lgpl2.0+)))
619936a4
LC
3550
3551(define-public python2-rsvg
3552 ;; XXX: This is actually a subset of gnome-python-desktop.
3553 (package
3554 (name "python2-rsvg")
3555 (version "2.32.0")
3556 (source
3557 (origin
3558 (method url-fetch)
3559 (uri (string-append
3560 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3561 version ".tar.bz2"))
3562 (sha256
3563 (base32
3564 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3565 (build-system gnu-build-system)
3566 (native-inputs
3567 `(("pkg-config" ,pkg-config)))
3568 (inputs
3569 `(("python" ,python-2)
3570 ("python2-pygtk" ,python2-pygtk)
3571 ("librsvg" ,librsvg)))
f032d0be 3572 (home-page "https://www.gnome.org")
619936a4
LC
3573 (synopsis "Python bindings to librsvg")
3574 (description
3ad75446 3575 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3576library.")
3577
3578 ;; This is the license of the rsvg bindings. The license of each module
3579 ;; of gnome-python-desktop is given in 'COPYING'.
3580 (license license:lgpl2.1+)))
a31a6d22 3581
f2ca414a
SB
3582(define-public glib-networking
3583 (package
3584 (name "glib-networking")
0d75c64d 3585 (version "2.60.3")
f2ca414a
SB
3586 (source (origin
3587 (method url-fetch)
3588 (uri (string-append "mirror://gnome/sources/glib-networking/"
3589 (version-major+minor version) "/"
fb8fe1e8 3590 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3591 (sha256
3592 (base32
0d75c64d 3593 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3594 (build-system meson-build-system)
f2ca414a 3595 (arguments
0d75c64d 3596 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3597 (native-inputs
3598 `(("pkg-config" ,pkg-config)
3599 ("intltool" ,intltool)))
3600 (inputs
3601 `(("glib" ,glib)
3602 ("gnutls" ,gnutls)
4b8f1313 3603 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3604 (home-page "https://www.gnome.org")
f2ca414a
SB
3605 (synopsis "Network-related GIO modules")
3606 (description
3607 "This package contains various network related extensions for the GIO
3608library.")
3609 (license license:lgpl2.0+)))
3610
ca649680 3611(define-public rest
4510b2da 3612 (package
ca649680 3613 (name "rest")
a4194d16 3614 (version "0.8.1")
4510b2da
SB
3615 (source (origin
3616 (method url-fetch)
3617 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3618 (version-major+minor version) "/"
3619 name "-" version ".tar.xz"))
4510b2da
SB
3620 (sha256
3621 (base32
a4194d16 3622 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3623 (build-system gnu-build-system)
3624 (arguments
3625 '(#:tests? #f ; tests require internet connection
3626 #:configure-flags
3627 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3628 (native-inputs
3629 `(("glib-mkenums" ,glib "bin")
3630 ("gobject-introspection" ,gobject-introspection)
3631 ("pkg-config" ,pkg-config)))
3632 (propagated-inputs
3633 ;; rest-0.7.pc refers to all these.
3634 `(("glib" ,glib)
3635 ("libsoup" ,libsoup)
3636 ("libxml2" ,libxml2)))
24d6cc1d 3637 (home-page "https://www.gtk.org/")
4510b2da
SB
3638 (synopsis "RESTful web api query library")
3639 (description
3640 "This library was designed to make it easier to access web services that
3641claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3642libxml to ease remote use of the RESTful API.")
3643 (license license:lgpl2.1+)))
3644
6e1bb642
SB
3645(define-public libsoup
3646 (package
3647 (name "libsoup")
9ae87870 3648 (version "2.68.3")
6e1bb642
SB
3649 (source (origin
3650 (method url-fetch)
3651 (uri (string-append "mirror://gnome/sources/libsoup/"
3652 (version-major+minor version) "/"
c1b79b36 3653 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3654 (sha256
3655 (base32
9ae87870 3656 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
eccaa8bf 3657 (build-system meson-build-system)
6e1bb642
SB
3658 (outputs '("out" "doc"))
3659 (arguments
2deb146f 3660 `(#:modules ((guix build utils)
eccaa8bf 3661 (guix build meson-build-system)
2deb146f
LC
3662 (ice-9 popen))
3663
f8026a79 3664 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3665 #:phases
3666 (modify-phases %standard-phases
eccaa8bf 3667 (add-after 'unpack 'adjust-tests
26c228f9 3668 (lambda _
eccaa8bf
MB
3669 ;; This test fails due to missing /etc/nsswitch.conf
3670 ;; in the build environment.
26c228f9
LC
3671 (substitute* "tests/socket-test.c"
3672 ((".*/sockets/unconnected.*") ""))
2deb146f 3673
f8026a79
MB
3674 ;; These fail because "subdomain.localhost" does not resolve in
3675 ;; the build environment.
3676 (substitute* "tests/hsts-test.c"
3677 ((".*/hsts/basic.*") "")
3678 ((".*/hsts/subdomains.*") "")
3679 ((".*/hsts/superdomain.*") "")
3680 ((".*/hsts/utf8-address.*") ""))
3681 (substitute* "tests/hsts-db-test.c"
3682 ((".*/hsts-db/subdomains.*") ""))
3683
2deb146f
LC
3684 ;; Generate a self-signed certificate that has "localhost" as its
3685 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3686 ;; 3.5.12, tests such as "ssl-tests" fail:
3687 ;;
3688 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3689 ;;
3690 ;; 'certtool' is interactive so we have to pipe it the answers.
3691 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3692 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3693 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3694 (for-each (lambda (line)
3695 (display line pipe)
3696 (newline pipe))
3697 '("" ;Common name
3698 "" ;UID
3699 "Guix" ;Organizational unit name
3700 "GNU" ;Organization name
3701 "" ;Locality name
3702 "" ;State or province
3703 "" ;Country
3704 "" ;subject's domain component (DC)
3705 "" ;E-mail
3706 "" ;serial number
3707 "-1" ;expiration time
3708 "N" ;belong to authority?
3709 "N" ;web client certificate?
3710 "N" ;IPsec IKE?
3711 "Y" ;web server certificate?
3712 "localhost" ;dnsName of subject
3713 "" ;dnsName of subject (end)
3714 "" ;URI of subject
3715 "127.0.0.1" ;IP address of subject
3716 "" ;signing?
06f5bc4e
MB
3717 "" ;encryption (RSA)?
3718 "" ;data encryption?
2deb146f
LC
3719 "" ;sign OCSP requests?
3720 "" ;sign code?
3721 "" ;time stamping?
3722 "" ;email protection?
3723 "" ;URI of the CRL distribution point
3724 "y" ;above info OK?
3725 ))
3726 (close-pipe pipe))
26c228f9 3727 #t))
eccaa8bf
MB
3728 (add-after 'install 'move-doc
3729 (lambda* (#:key outputs #:allow-other-keys)
3730 (let ((out (assoc-ref outputs "out"))
3731 (doc (assoc-ref outputs "doc")))
3732 (mkdir-p (string-append doc "/share"))
3733 (copy-recursively (string-append out "/share/gtk-doc")
3734 (string-append doc "/share/gtk-doc"))
3735 (delete-file-recursively (string-append out "/share/gtk-doc"))
3736 #t))))))
6e1bb642 3737 (native-inputs
26c228f9 3738 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3739 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3740 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3741 ("intltool" ,intltool)
3742 ("pkg-config" ,pkg-config)
3743 ("python" ,python-wrapper)
fd730590 3744 ("vala" ,vala)
6e1bb642
SB
3745 ;; These are needed for the tests.
3746 ;; FIXME: Add PHP once available.
3747 ("curl" ,curl)
2deb146f 3748 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3749 ("httpd" ,httpd)))
3750 (propagated-inputs
3751 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3752 `(("brotli" ,google-brotli)
3753 ("glib" ,glib)
249846bf 3754 ("libpsl" ,libpsl)
eccaa8bf 3755 ("libxml2" ,libxml2)
f8026a79
MB
3756 ("sqlite" ,sqlite)
3757 ("zlib" ,zlib)))
eccaa8bf
MB
3758 (inputs
3759 `(("glib-networking" ,glib-networking)
3760 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3761 (home-page "https://live.gnome.org/LibSoup/")
3762 (synopsis "GLib-based HTTP Library")
3763 (description
3764 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3765and the GLib main loop, to integrate well with GNOME applications.")
3766 (license license:lgpl2.0+)))
3767
bba229a3
SB
3768(define-public libsecret
3769 (package
3770 (name "libsecret")
b243d2f7 3771 (version "0.19.1")
bba229a3
SB
3772 (source (origin
3773 (method url-fetch)
3774 (uri (string-append
896dcbc7
EF
3775 "mirror://gnome/sources/libsecret/"
3776 (version-major+minor version) "/"
0ada4e29 3777 "libsecret-" version ".tar.xz"))
bba229a3
SB
3778 (sha256
3779 (base32
b243d2f7 3780 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
bba229a3
SB
3781 (build-system gnu-build-system)
3782 (outputs '("out" "doc"))
3783 (arguments
3784 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3785 #:configure-flags
3786 (list (string-append "--with-html-dir="
3787 (assoc-ref %outputs "doc")
3788 "/share/gtk-doc/html"))))
3789 (native-inputs
c06ef010
MB
3790 `(("gettext" ,gettext-minimal)
3791 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3792 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3793 ("pkg-config" ,pkg-config)
3794 ("vala" ,vala)
3795 ("xsltproc" ,libxslt)))
3796 ;; These are needed for the tests.
3797 ;; FIXME: Add gjs once available.
3798 ;("dbus" ,dbus)
3799 ;("python2" ,python-2)
3800 ;("python2-dbus" ,python2-dbus)
3801 ;("python2-pygobject" ,python2-pygobject)
3802 ;("python2-pygobject-2" ,python2-pygobject-2)))
3803 (propagated-inputs
3804 `(("glib" ,glib))) ; required by libsecret-1.pc
3805 (inputs
3806 `(("docbook-xsl" ,docbook-xsl)
3807 ("libgcrypt" ,libgcrypt)
3808 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3809 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3810 (synopsis "GObject bindings for \"Secret Service\" API")
3811 (description
3812 "Libsecret is a GObject based library for storing and retrieving passwords
3813and other secrets. It communicates with the \"Secret Service\" using DBus.")
3814 (license license:lgpl2.1+)))
3815
b6821ee0 3816(define-public five-or-more
3817 (package
3818 (name "five-or-more")
d9795e93 3819 (version "3.32.0")
b6821ee0 3820 (source
3821 (origin
3822 (method url-fetch)
3823 (uri (string-append "mirror://gnome/sources/" name "/"
3824 (version-major+minor version) "/"
3825 name "-" version ".tar.xz"))
3826 (sha256
3827 (base32
d9795e93
KK
3828 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3829 (build-system meson-build-system)
3830 (arguments
3831 '(#:glib-or-gtk? #t
3832 #:phases
3833 (modify-phases %standard-phases
3834 (add-after 'unpack 'skip-gtk-update-icon-cache
3835 (lambda _
3836 (substitute* "meson_post_install.py"
3837 (("gtk-update-icon-cache") (which "true")))
3838 #t)))))
b6821ee0 3839 (native-inputs
3840 `(("pkg-config" ,pkg-config)
d9795e93 3841 ("appstream-glib" ,appstream-glib)
b6821ee0 3842 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3843 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3844 ("intltool" ,intltool)
3845 ("itstool" ,itstool)
d9795e93 3846 ("vala" ,vala)
b6821ee0 3847 ("xmllint" ,libxml2)))
3848 (inputs
3849 `(("gtk+" ,gtk+)
d9795e93 3850 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3851 ("librsvg" ,librsvg)))
3852 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3853 (synopsis "Logic puzzle game")
3854 (description "Five or More is a game where you try to align
3855 five or more objects of the same color and shape causing them to disappear.
3856 On every turn more objects will appear, until the board is full.
3857 Try to last as long as possible.")
3858 (license license:gpl2+)))
3859
a31a6d22
SB
3860(define-public gnome-mines
3861 (package
3862 (name "gnome-mines")
2d817e41 3863 (version "3.32.2")
a31a6d22
SB
3864 (source
3865 (origin
3866 (method url-fetch)
3867 (uri (string-append "mirror://gnome/sources/" name "/"
3868 (version-major+minor version) "/"
3869 name "-" version ".tar.xz"))
3870 (sha256
3871 (base32
2d817e41 3872 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3873 (build-system meson-build-system)
a31a6d22 3874 (arguments
2d817e41
KK
3875 '(#:glib-or-gtk? #t
3876 #:phases
a31a6d22 3877 (modify-phases %standard-phases
2d817e41
KK
3878 (add-after 'unpack 'skip-gtk-update-icon-cache
3879 (lambda _
3880 (substitute* "build-aux/meson_post_install.py"
3881 (("gtk-update-icon-cache") (which "true")))
3882 #t)))))
a31a6d22 3883 (native-inputs
8c0fab36
RW
3884 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3885 ("pkg-config" ,pkg-config)
a31a6d22
SB
3886 ("desktop-file-utils" ,desktop-file-utils)
3887 ("intltool" ,intltool)
bcb354ad 3888 ("itstool" ,itstool)
8c0fab36
RW
3889 ("vala" ,vala)
3890 ("yelp" ,yelp)
3891 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3892 (inputs
3893 `(("gtk+" ,gtk+)
73992962 3894 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3895 ("librsvg" ,librsvg)))
3896 (home-page "https://wiki.gnome.org/Apps/Mines")
3897 (synopsis "Minesweeper game")
3898 (description
3899 "Mines (previously gnomine) is a puzzle game where you locate mines
3900floating in an ocean using only your brain and a little bit of luck.")
3901 (license license:gpl2+)))
88f70665 3902
dfc407f3
KY
3903(define-public gnome-sudoku
3904 (package
3905 (name "gnome-sudoku")
7dc728c4 3906 (version "3.32.0")
dfc407f3
KY
3907 (source
3908 (origin
3909 (method url-fetch)
3910 (uri (string-append "mirror://gnome/sources/" name "/"
3911 (version-major+minor version) "/"
3912 name "-" version ".tar.xz"))
3913 (sha256
3914 (base32
7dc728c4
KK
3915 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3916 (build-system meson-build-system)
3917 (arguments
3918 '(#:glib-or-gtk? #t
3919 #:phases
3920 (modify-phases %standard-phases
3921 (add-after 'unpack 'skip-gtk-update-icon-cache
3922 (lambda _
3923 (substitute* "build-aux/post_install.py"
3924 (("gtk-update-icon-cache") (which "true")))
3925 #t)))))
dfc407f3
KY
3926 (native-inputs
3927 `(("pkg-config" ,pkg-config)
3928 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3929 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3930 ("intltool" ,intltool)
3931 ("itstool" ,itstool)
7dc728c4 3932 ("vala" ,vala)
dfc407f3
KY
3933 ("xmllint" ,libxml2)))
3934 (inputs
3935 `(("gtk+" ,gtk+)
3936 ("json-glib" ,json-glib)
3937 ("libgee" ,libgee)
3938 ("librsvg" ,librsvg)
3939 ("qqwing" ,qqwing)))
3940 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3941 (synopsis "Japanese logic game")
3942 (description
3943 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3944GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3945possible while still providing features that make playing difficult Sudoku
3946more fun.")
3947 (license license:gpl2+)))
3948
88f70665
AW
3949(define-public gnome-terminal
3950 (package
3951 (name "gnome-terminal")
7dee3942 3952 (version "3.32.2")
88f70665
AW
3953 (source
3954 (origin
3955 (method url-fetch)
3956 (uri (string-append "mirror://gnome/sources/" name "/"
3957 (version-major+minor version) "/"
3958 name "-" version ".tar.xz"))
3959 (sha256
3960 (base32
7dee3942 3961 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3962 (build-system glib-or-gtk-build-system)
3963 (arguments
3964 '(#:configure-flags
3965 (list "--disable-migration" "--disable-search-provider"
3966 "--without-nautilus-extension")
3967 #:phases
3968 (modify-phases %standard-phases
3a4de6b2 3969 (add-before 'configure 'patch-/bin/true
88f70665
AW
3970 (lambda _
3971 (substitute* "configure"
3972 (("/bin/true") (which "true"))))))))
3973 (native-inputs
3974 `(("pkg-config" ,pkg-config)
3975 ("desktop-file-utils" ,desktop-file-utils)
3976 ("intltool" ,intltool)
bcb354ad
SB
3977 ("itstool" ,itstool)
3978 ("xmllint" ,libxml2)))
68702167
MW
3979 (propagated-inputs
3980 `(("dconf" ,dconf)))
88f70665
AW
3981 (inputs
3982 `(("gtk+" ,gtk+)
3983 ("vte" ,vte)
3984 ("gnutls" ,gnutls)
88f70665
AW
3985 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3986 ("util-linux" ,util-linux)
3987 ("vala" ,vala)))
3988 (home-page "https://wiki.gnome.org/Apps/Terminal")
3989 (synopsis "Terminal emulator")
3990 (description
3991 "GNOME Terminal is a terminal emulator application for accessing a
3992UNIX shell environment which can be used to run programs available on
3993your system.
3994
3995It supports several profiles, multiple tabs and implements several
3996keyboard shortcuts.")
3997 (license license:gpl3+)))
75016d07
AW
3998
3999(define-public colord
4000 (package
4001 (name "colord")
f98be942 4002 (version "1.4.4")
75016d07
AW
4003 (source
4004 (origin
4005 (method url-fetch)
5cc3096c 4006 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4007 "colord-" version ".tar.xz"))
75016d07 4008 (sha256
f98be942 4009 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4010 (build-system meson-build-system)
75016d07 4011 (arguments
a68544a8
RW
4012 '(;; FIXME: One test fails:
4013 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4014 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4015 ;; application/x-zerosize
75016d07 4016 #:tests? #f
a68544a8
RW
4017 #:glib-or-gtk? #t
4018 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4019 ;; No dep on systemd.
a68544a8 4020 "-Dsystemd=false"
75016d07
AW
4021 ;; Wants to install to global completion dir;
4022 ;; punt.
a68544a8 4023 "-Dbash_completion=false"
a68544a8
RW
4024 "-Ddaemon_user=colord"
4025 "-Dsane=true"
dac26e22 4026 "-Dvapi=true"
6f20e2dc 4027 ;; Requires spotread.
a68544a8 4028 "-Dargyllcms_sensor=false"
6f20e2dc 4029 ;; TODO: Requires docbook2x.
a68544a8 4030 "-Dman=false")
75016d07
AW
4031 #:phases
4032 (modify-phases %standard-phases
a68544a8
RW
4033 (add-before 'configure 'patch-build-system
4034 (lambda* (#:key outputs #:allow-other-keys)
4035 (substitute* "rules/meson.build"
4036 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4037 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4038 #t))
4039 (add-before 'configure 'set-sqlite3-file-name
4040 (lambda* (#:key inputs #:allow-other-keys)
4041 ;; "colormgr dump" works by invoking the "sqlite3" command.
4042 ;; Record its absolute file name.
4043 (let ((sqlite (assoc-ref inputs "sqlite")))
4044 (substitute* "client/cd-util.c"
4045 (("\"sqlite3\"")
4046 (string-append "\"" sqlite "/bin/sqlite3\"")))
4047 #t))))))
75016d07 4048 (native-inputs
6f20e2dc 4049 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4050 ("gettext" ,gettext-minimal)
75016d07 4051 ("gobject-introspection" ,gobject-introspection)
a68544a8 4052 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4053 ("pkg-config" ,pkg-config)
4054 ("vala" ,vala)))
65cb2d61
SB
4055 (propagated-inputs
4056 ;; colord.pc refers to all these.
4057 `(("glib" ,glib)
6f20e2dc
TGR
4058 ("lcms" ,lcms)
4059 ("udev" ,eudev)))
75016d07 4060 (inputs
65cb2d61 4061 `(("dbus-glib" ,dbus-glib)
a68544a8 4062 ("gusb" ,gusb)
80c7dd1a 4063 ("libgudev" ,libgudev)
75016d07 4064 ("libusb" ,libusb)
75016d07 4065 ("polkit" ,polkit)
a68544a8 4066 ("python" ,python-wrapper)
6f20e2dc 4067 ("sqlite" ,sqlite)
4c928743 4068 ("sane-backends" ,sane-backends)))
57e7d748 4069 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4070 (synopsis "Color management service")
4071 (description "Colord is a system service that makes it easy to manage,
4072install and generate color profiles to accurately color manage input and
4073output devices.")
4074 (license license:gpl2+)))
7b2abd00
AW
4075
4076(define-public geoclue
4077 (package
4078 (name "geoclue")
b433c7b3 4079 (version "2.4.8")
7b2abd00
AW
4080 (source
4081 (origin
4082 (method url-fetch)
5cc3096c 4083 (uri (string-append "https://www.freedesktop.org/software/" name
7b2abd00
AW
4084 "/releases/" (version-major+minor version) "/"
4085 name "-" version ".tar.xz"))
4086 (sha256
4087 (base32
b433c7b3 4088 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
fc1adab1 4089 (patches (search-patches "geoclue-config.patch"))))
7b2abd00
AW
4090 (build-system glib-or-gtk-build-system)
4091 (arguments
4092 '(;; The tests want to run the system bus.
4093 #:tests? #f
4094 #:configure-flags (list ;; Disable bits requiring ModemManager.
4095 "--disable-3g-source"
4096 "--disable-cdma-source"
4097 "--disable-modem-gps-source"
4098 "--with-dbus-service-user=geoclue")
4099 #:phases
4100 (modify-phases %standard-phases
3a4de6b2 4101 (add-before 'configure 'patch-/bin/true
7b2abd00
AW
4102 (lambda _
4103 (substitute* "configure"
e3eb53e7
MW
4104 (("/bin/true") (which "true")))
4105 #t)))))
7b2abd00
AW
4106 (native-inputs
4107 `(("pkg-config" ,pkg-config)
758798a9 4108 ("gobject-introspection" ,gobject-introspection)
7b2abd00
AW
4109 ("intltool" ,intltool)))
4110 (inputs
54e911bc
SB
4111 `(("avahi" ,avahi)
4112 ("glib" ,glib)
7b2abd00
AW
4113 ("json-glib" ,json-glib)
4114 ("libsoup" ,libsoup)))
99adfd7d 4115 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
7b2abd00
AW
4116 (synopsis "Geolocation service")
4117 (description "Geoclue is a D-Bus service that provides location
4118information. The primary goal of the Geoclue project is to make creating
4119location-aware applications as simple as possible, while the secondary goal is
4120to ensure that no application can access location information without explicit
e881752c 4121permission from user.")
7b2abd00 4122 (license license:gpl2+)))
2bfe7437
AW
4123
4124(define-public geocode-glib
4125 (package
4126 (name "geocode-glib")
65de725f 4127 (version "3.26.1")
2bfe7437
AW
4128 (source (origin
4129 (method url-fetch)
4130 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4131 (version-major+minor version) "/"
d485cdc0 4132 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4133 (sha256
4134 (base32
65de725f 4135 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4136 (build-system meson-build-system)
2bfe7437 4137 (arguments
a7dd0c02
RW
4138 `(#:phases
4139 (modify-phases %standard-phases
4140 ;; The tests require a bunch of locales.
4141 (add-before 'check 'set-locales
4142 (lambda* (#:key inputs #:allow-other-keys)
4143 (setenv "GUIX_LOCPATH"
4144 (string-append (assoc-ref inputs "glibc-locales")
4145 "/lib/locale"))
4146 #t)))))
2bfe7437
AW
4147 (native-inputs
4148 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4149 ("glibc-locales" ,glibc-locales) ; for tests
4150 ("gettext" ,gettext-minimal)
2bfe7437 4151 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4152 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4153 ("pkg-config" ,pkg-config)
4154 ("json-glib" ,json-glib)))
4155 (propagated-inputs
4156 ;; geocode-glib-1.0.pc refers to GIO.
4157 `(("glib" ,glib)))
4158 (inputs
4159 `(("libsoup" ,libsoup)))
4160 (home-page "https://github.com/GNOME/geocode-glib/")
4161 (synopsis "Geocoding and reverse-geocoding library")
4162 (description
4163 "geocode-glib is a convenience library for geocoding (finding longitude,
4164and latitude from an address) and reverse geocoding (finding an address from
4165coordinates) using the Nominatim service. geocode-glib caches requests for
4166faster results and to avoid unnecessary server load.")
4167 (license license:lgpl2.0+)))
a1d5bb0e
AW
4168
4169(define-public upower
4170 (package
4171 (name "upower")
df45af90 4172 (version "0.99.11")
a1d5bb0e
AW
4173 (source (origin
4174 (method url-fetch)
df45af90 4175 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4176 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4177 (sha256
4178 (base32
df45af90 4179 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
fc1adab1 4180 (patches (search-patches "upower-builddir.patch"))))
a1d5bb0e
AW
4181 (build-system glib-or-gtk-build-system)
4182 (arguments
4183 '( ;; The tests want to contact the system bus, which can't be done in the
4184 ;; build environment. The integration test can run, but the last of
4185 ;; the up-self-tests doesn't. Disable tests for now.
4186 #:tests? #f
4187 #:configure-flags (list "--localstatedir=/var"
4188 (string-append "--with-udevrulesdir="
4189 (assoc-ref %outputs "out")
9ec54965 4190 "/lib/udev/rules.d"))))
a1d5bb0e 4191 (native-inputs
ebeabe2d
SB
4192 `(("gobject-introspection" ,gobject-introspection)
4193 ("pkg-config" ,pkg-config)
a1d5bb0e 4194 ("intltool" ,intltool)
55409295
LC
4195 ("python" ,python)
4196
4197 ;; For man pages.
4198 ("libxslt" ,libxslt) ;for 'xsltproc'
4199 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4200 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4201 (inputs
ea226291
SB
4202 `(("dbus-glib" ,dbus-glib)
4203 ("libgudev" ,libgudev)
a1d5bb0e 4204 ("libusb" ,libusb)))
d7a503fc
MB
4205 (propagated-inputs
4206 ;; In Requires of upower-glib.pc.
4207 `(("glib" ,glib)))
57e7d748 4208 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4209 (synopsis "System daemon for managing power devices")
4210 (description
4211 "UPower is an abstraction for enumerating power devices,
4212listening to device events and querying history and statistics. Any
4213application or service on the system can access the org.freedesktop.UPower
4214service via the system message bus.")
4215 (license license:gpl2+)))
6a180f6f
AW
4216
4217(define-public libgweather
4218 (package
4219 (name "libgweather")
794ce8ea 4220 (version "3.28.3")
6a180f6f
AW
4221 (source (origin
4222 (method url-fetch)
4223 (uri (string-append "mirror://gnome/sources/" name "/"
4224 (version-major+minor version) "/"
4225 name "-" version ".tar.xz"))
4226 (sha256
4227 (base32
794ce8ea 4228 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 4229 (build-system meson-build-system)
6a180f6f 4230 (arguments
cf6cbc34
RW
4231 `(#:tests? #f ; one of two tests requires network access
4232 #:configure-flags
4233 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4234 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4235 "/share/zoneinfo"))))
6a180f6f
AW
4236 (native-inputs
4237 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4238 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4239 ("pkg-config" ,pkg-config)
1d3fcf94 4240 ("vala" ,vala)
6a180f6f
AW
4241 ("intltool" ,intltool)))
4242 (propagated-inputs
4243 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4244 ;; libsoup.
4245 `(("gtk+" ,gtk+)
4246 ("gdk-pixbuf" ,gdk-pixbuf)
4247 ("libxml2" ,libxml2)
cf6cbc34 4248 ("libsoup" ,libsoup)
6a180f6f 4249 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4250 (inputs
4251 `(("tzdata" ,tzdata)))
6a180f6f
AW
4252 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4253 (synopsis "Location, time zone, and weather library for GNOME")
4254 (description
4255 "libgweather is a library to access weather information from online
4256services for numerous locations.")
4257 (license license:gpl2+)))
23a22af6
AW
4258
4259(define-public gnome-settings-daemon
4260 (package
4261 (name "gnome-settings-daemon")
4be0719f 4262 (version "3.32.1")
23a22af6
AW
4263 (source
4264 (origin
4265 (method url-fetch)
4266 (uri (string-append "mirror://gnome/sources/" name "/"
4267 (version-major+minor version) "/"
4268 name "-" version ".tar.xz"))
4269 (sha256
4270 (base32
4be0719f 4271 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 4272 (build-system meson-build-system)
23a22af6 4273 (arguments
e644f9fa
RW
4274 `(#:glib-or-gtk? #t
4275 #:configure-flags
4276 (list (string-append "-Dudev_dir="
4277 (assoc-ref %outputs "out")
4d0e085b
RW
4278 "/lib/udev/rules.d/")
4279 ;; Otherwise, the RUNPATH will lack the final path component.
4280 (string-append "-Dc_link_args=-Wl,-rpath="
4281 (assoc-ref %outputs "out")
4282 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4283 ;; Color management test can't reach the colord system service.
23a22af6
AW
4284 #:tests? #f))
4285 (native-inputs
e644f9fa
RW
4286 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4287 ("pkg-config" ,pkg-config)
23a22af6
AW
4288 ("intltool" ,intltool)
4289 ("xsltproc" ,libxslt)
4290 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4291 ("docbook-xml" ,docbook-xml-4.2)
4292 ("docbook-xsl" ,docbook-xsl)))
4293 (inputs
e644f9fa
RW
4294 `(("alsa-lib" ,alsa-lib)
4295 ("colord" ,colord)
ea226291 4296 ("libgudev" ,libgudev)
23a22af6
AW
4297 ("upower" ,upower)
4298 ("polkit" ,polkit)
4299 ("pulseaudio" ,pulseaudio)
4300 ("libcanberra" ,libcanberra)
4301 ("libx11" ,libx11)
4302 ("libxtst" ,libxtst)
4303 ("lcms" ,lcms)
4304 ("libnotify" ,libnotify)
4305 ("geoclue" ,geoclue)
4306 ("geocode-glib" ,geocode-glib)
4307 ("libgweather" ,libgweather)
4308 ("gnome-desktop" ,gnome-desktop)
4309 ("nss" ,nss)
4310 ("cups" ,cups)
ec2b1921
AW
4311 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4312 ("libwacom" ,libwacom)
4313 ("librsvg" ,librsvg)
eee7878f 4314 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4315 ("wayland" ,wayland)
eee7878f 4316 ("network-manager" ,network-manager)))
f032d0be 4317 (home-page "https://www.gnome.org")
23a22af6
AW
4318 (synopsis "GNOME settings daemon")
4319 (description
4320 "This package contains the daemon responsible for setting the various
4321parameters of a GNOME session and the applications that run under it. It
4322handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4323settings, themes, mouse settings, and startup of other daemons.")
4324 (license license:gpl2+)))
1e7464a9
DH
4325
4326(define-public totem-pl-parser
4327 (package
4328 (name "totem-pl-parser")
77425f04 4329 (version "3.26.3")
1e7464a9
DH
4330 (source (origin
4331 (method url-fetch)
e980cbe9
MW
4332 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4333 (version-major+minor version) "/"
1e7464a9
DH
4334 "totem-pl-parser-" version ".tar.xz"))
4335 (sha256
4336 (base32
77425f04 4337 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4338 (build-system meson-build-system)
1e7464a9
DH
4339 (arguments
4340 ;; FIXME: Tests require gvfs.
4341 `(#:tests? #f))
4342 (native-inputs
4343 `(("intltool" ,intltool)
4344 ("glib" ,glib "bin")
4d6d8281 4345 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4346 ("pkg-config" ,pkg-config)))
22a6ad6a 4347 (propagated-inputs
1e7464a9
DH
4348 `(("glib" ,glib)
4349 ("gmime" ,gmime)
1e9b19dd
RW
4350 ("libarchive" ,libarchive)
4351 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4352 ("libxml2" ,libxml2)))
4353 (inputs
0a6e9e13 4354 `(("libsoup" ,libsoup)))
1e7464a9
DH
4355 (home-page "https://projects.gnome.org/totem")
4356 (synopsis "Library to parse and save media playlists for GNOME")
4357 (description "Totem-pl-parser is a GObjects-based library to parse and save
4358playlists in a variety of formats.")
4359 (license license:lgpl2.0+)))
4360
6b888eff
SB
4361(define-public aisleriot
4362 (package
4363 (name "aisleriot")
36ed9b46 4364 (version "3.22.9")
6b888eff
SB
4365 (source (origin
4366 (method url-fetch)
e43f622a 4367 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4368 (version-major+minor version) "/"
e43f622a 4369 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4370 (sha256
4371 (base32
36ed9b46 4372 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4373 (build-system glib-or-gtk-build-system)
4374 (arguments
4375 '(#:configure-flags
4376 '("--with-platform=gtk-only"
4377 "--with-card-theme-formats=svg")))
4378 (native-inputs
4379 `(("desktop-file-utils" ,desktop-file-utils)
4380 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4381 ("intltool" ,intltool)
4382 ("itstool" ,itstool)
4383 ("pkg-config" ,pkg-config)
4384 ("xmllint" ,libxml2)))
4385 (inputs
4386 `(("gtk+" ,gtk+)
226e57d6 4387 ("guile" ,guile-2.2)
6b888eff
SB
4388 ("libcanberra" ,libcanberra)
4389 ("librsvg" ,librsvg)))
4390 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4391 (synopsis "Solitaire card games")
4392 (description
4393 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4394which are easy to play with the aid of a mouse.")
4395 (license license:gpl3+)))
4a79e256 4396
f828d05b
KK
4397(define-public amtk
4398 (package
4399 (name "amtk")
09c4e43f 4400 (version "5.0.1")
f828d05b
KK
4401 (source (origin
4402 (method url-fetch)
bf92ba6b 4403 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4404 (version-major+minor version) "/"
bf92ba6b 4405 "amtk-" version ".tar.xz"))
f828d05b
KK
4406 (sha256
4407 (base32
09c4e43f 4408 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
f828d05b
KK
4409 (build-system gnu-build-system)
4410 (arguments
4411 '(#:configure-flags '("--enable-gtk-doc")))
4412 (native-inputs
4413 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4414 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4415 ("gtk-doc" ,gtk-doc)
4416 ("pkg-config" ,pkg-config)))
4417 (inputs
4418 `(("glib" ,glib)
4419 ("gtk+" ,gtk+)))
4420 (home-page "https://wiki.gnome.org/Projects/Amtk")
4421 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4422 (description
4423 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4424It is a basic GtkUIManager replacement based on GAction. It is suitable for
4425both a traditional UI or a modern UI with a GtkHeaderBar.")
4426 (license license:lgpl2.1+)))
4427
4a79e256
SB
4428(define-public devhelp
4429 (package
4430 (name "devhelp")
20db7a3d 4431 (version "3.32.0")
4a79e256
SB
4432 (source (origin
4433 (method url-fetch)
4434 (uri (string-append "mirror://gnome/sources/" name "/"
4435 (version-major+minor version) "/"
4436 name "-" version ".tar.xz"))
4437 (sha256
4438 (base32
20db7a3d 4439 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 4440 (build-system meson-build-system)
35407f94 4441 (arguments
20db7a3d
KK
4442 '(#:glib-or-gtk? #t
4443 #:phases
35407f94
EF
4444 (modify-phases %standard-phases
4445 (add-after 'unpack 'skip-gtk-update-icon-cache
4446 ;; Don't create 'icon-theme.cache'.
4447 (lambda _
4448 (substitute* "meson_post_install.py"
4449 (("gtk-update-icon-cache") "true"))
4450 #t)))))
4a79e256
SB
4451 (native-inputs
4452 `(("intltool" ,intltool)
5dd12afc 4453 ("itstool" ,itstool)
11d28bd9
KK
4454 ("gobject-introspection" ,gobject-introspection)
4455 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4456 ("pkg-config" ,pkg-config)))
4457 (inputs
11d28bd9
KK
4458 `(("amtk" ,amtk)
4459 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4460 ("webkitgtk" ,webkitgtk)))
4461 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4462 (synopsis "API documentation browser for GNOME")
4463 (description
4464 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4465natively with GTK-Doc (the API reference system developed for GTK+ and used
4466throughout GNOME for API documentation).")
4467 (license license:gpl2+)))
ba421ab7
MW
4468
4469(define-public cogl
4470 (package
4471 (name "cogl")
54c69ae1 4472 (version "1.22.4")
ba421ab7
MW
4473 (source
4474 (origin
4475 (method url-fetch)
5754f0cf 4476 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4477 (version-major+minor version) "/"
5754f0cf 4478 "cogl-" version ".tar.xz"))
ba421ab7 4479 (sha256
54c69ae1 4480 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
4481 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4482 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4483 (build-system gnu-build-system)
4484 (native-inputs
4485 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4486 ("gobject-introspection" ,gobject-introspection)
4487 ;;("xorg-server" ,xorg-server) ; for the test suite
4488 ("pkg-config" ,pkg-config)))
4489 (propagated-inputs
4490 `(("glib" ,glib)
4491 ("gdk-pixbuf" ,gdk-pixbuf)
4492 ("libx11" ,libx11)
4493 ("libxext" ,libxext)
4494 ("libxfixes" ,libxfixes)
4495 ("libxdamage" ,libxdamage)
4496 ("libxcomposite" ,libxcomposite)
4497 ("libxrandr" ,libxrandr)))
4498 (inputs
4499 `(("mesa" ,mesa)
4500 ("cairo" ,cairo)
4501 ("pango" ,pango)
4502 ("gstreamer" ,gstreamer)
31860852
KK
4503 ("gst-plugins-base" ,gst-plugins-base)
4504 ("wayland" ,wayland)))
ba421ab7
MW
4505 (arguments
4506 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4507 "--enable-wayland-egl-platform"
4508 "--enable-wayland-egl-server"
4509
ba421ab7
MW
4510 ;; Arrange to pass an absolute file name to
4511 ;; dlopen for libGL.so.
4512 (string-append "--with-gl-libname="
4513 (assoc-ref %build-inputs "mesa")
4514 "/lib/libGL.so"))
4515 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4516 ;; _FontTransOpen: Unable to Parse address
4517 ;; ${prefix}/share/fonts/X11/misc/
4518 #:tests? #f
4519 #; #:phases
4520 #;
4521 (modify-phases %standard-phases
4522 (add-before 'check 'start-xorg-server
4523 (lambda* (#:key inputs #:allow-other-keys)
4524 ;; The test suite requires a running X server.
4525 (system (format #f "~a/bin/Xvfb :1 &"
4526 (assoc-ref inputs "xorg-server")))
4527 (setenv "DISPLAY" ":1")
4528 #t)))))
4529 (home-page "http://www.cogl3d.org")
4530 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4531 (description
4532 "Cogl is a small library for using 3D graphics hardware to draw pretty
4533pictures. The API departs from the flat state machine style of OpenGL and is
4534designed to make it easy to write orthogonal components that can render
4535without stepping on each others toes.")
4536 (license (list license:expat ; most of the code
4537 license:bsd-3 ; cogl/cogl-point-in-poly.c
4538 license:sgifreeb2.0 ; cogl-path/tesselator/
4539 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4540
4541(define-public clutter
4542 (package
4543 (name "clutter")
6a88e4ee 4544 (version "1.26.2")
fb182b8a
MW
4545 (source
4546 (origin
4547 (method url-fetch)
4548 (uri (string-append "mirror://gnome/sources/" name "/"
4549 (version-major+minor version) "/"
4550 name "-" version ".tar.xz"))
4551 (sha256
4552 (base32
6a88e4ee 4553 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4554 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4555 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4556 (build-system gnu-build-system)
600233bd
LC
4557 (outputs '("out"
4558 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4559 (native-inputs
4560 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4561 ("gobject-introspection" ,gobject-introspection)
4562 ("pkg-config" ,pkg-config)
4563 ("xsltproc" ,libxslt)))
4564 (propagated-inputs
4565 `(("cogl" ,cogl)
4566 ("cairo" ,cairo)
4567 ("atk" ,atk)
4568 ("gtk+" ,gtk+)
4569 ("json-glib" ,json-glib)
4570 ("glib" ,glib)
4571 ("libxcomposite" ,libxcomposite)
4572 ("libxdamage" ,libxdamage)
4573 ("libxext" ,libxext)
4574 ("xinput" ,xinput)))
4575 (inputs
4576 `(("libxkbcommon" ,libxkbcommon)
4577 ("udev" ,eudev)))
4578 (arguments
600233bd
LC
4579 `(#:configure-flags (list "--enable-x11-backend=yes"
4580
4581 ;; This produces share/doc/{clutter,cally}.
4582 (string-append "--with-html-dir="
4583 (assoc-ref %outputs "doc")
4584 "/share/doc"))
fb182b8a
MW
4585 ;; XXX FIXME: Get test suite working. It would probably fail in the
4586 ;; same way the cogl tests fail, since clutter is based on cogl.
4587 #:tests? #f))
4588 (home-page "http://www.clutter-project.org")
476af713 4589 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4590 (description
476af713 4591 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4592creating fast, mainly 2D single window applications such as media box UIs,
4593presentations, kiosk style applications and so on.")
4594 (license license:lgpl2.0+)))
bf7f17ba
MW
4595
4596(define-public clutter-gtk
4597 (package
4598 (name "clutter-gtk")
5d1a3219 4599 (version "1.8.4")
bf7f17ba
MW
4600 (source
4601 (origin
4602 (method url-fetch)
4603 (uri (string-append "mirror://gnome/sources/" name "/"
4604 (version-major+minor version) "/"
4605 name "-" version ".tar.xz"))
4606 (sha256
4607 (base32
5d1a3219 4608 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4609 (build-system gnu-build-system)
4610 (native-inputs
4611 `(("pkg-config" ,pkg-config)
4612 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4613 (propagated-inputs
4614 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4615 `(("clutter" ,clutter)
4616 ("gtk+" ,gtk+)))
4617 (home-page "http://www.clutter-project.org")
476af713 4618 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4619 (description
476af713 4620 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4621creating fast, mainly 2D single window applications such as media box UIs,
4622presentations, kiosk style applications and so on.")
4623 (license license:lgpl2.0+)))
86d6a893
MW
4624
4625(define-public clutter-gst
4626 (package
4627 (name "clutter-gst")
ba07ac19 4628 (version "3.0.27")
86d6a893
MW
4629 (source
4630 (origin
4631 (method url-fetch)
f010f89b 4632 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4633 (version-major+minor version) "/"
f010f89b 4634 "clutter-gst-" version ".tar.xz"))
86d6a893 4635 (sha256
ba07ac19 4636 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4637 (build-system gnu-build-system)
4638 (native-inputs
ba07ac19 4639 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4640 ("pkg-config" ,pkg-config)
4641 ("gobject-introspection" ,gobject-introspection)))
4642 (inputs
4643 `(("clutter" ,clutter)
4644 ("gstreamer" ,gstreamer)
4645 ("gst-plugins-base" ,gst-plugins-base)))
4646 (home-page "http://www.clutter-project.org")
4647 (synopsis "Integration library for using GStreamer with Clutter")
4648 (description
4649 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4650It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4651implements the ClutterGstPlayer interface using playbin. Clutter is an
4652OpenGL-based interactive canvas library.")
86d6a893 4653 (license license:lgpl2.0+)))
607a04ae 4654
30dc88d9
LC
4655(define-public libchamplain
4656 (package
4657 (name "libchamplain")
5564b2c5 4658 (version "0.12.16")
30dc88d9
LC
4659 (source (origin
4660 (method url-fetch)
4661 (uri (string-append
4662 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4663 version ".tar.xz"))
4664 (sha256
4665 (base32
5564b2c5 4666 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4667 (build-system gnu-build-system)
f7c6833f
LF
4668 (arguments '(#:configure-flags '("--enable-vala")))
4669 (native-inputs
4670 `(("gobject-introspection" ,gobject-introspection)
4671 ("pkg-config" ,pkg-config)
4672 ("vala" ,vala)))
30dc88d9
LC
4673 (propagated-inputs
4674 `(("libsoup" ,libsoup)
4675 ("sqlite" ,sqlite)
4676 ("clutter" ,clutter)
4677 ("clutter-gtk" ,clutter-gtk)
4678 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4679 ("cairo" ,cairo)
4680 ("gtk+3" ,gtk+)
4681 ("glib" ,glib)))
f032d0be 4682 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4683 (synopsis "C library providing a ClutterActor to display maps")
4684 (description
4685 "libchamplain is a C library providing a ClutterActor to display maps.
4686It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4687and Perl bindings are also available. It supports numerous free map sources
4688such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4689 (license license:lgpl2.1+)))
4690
607a04ae
MW
4691(define-public gom
4692 (package
4693 (name "gom")
0510440b 4694 (version "0.3.2")
607a04ae
MW
4695 (source
4696 (origin
4697 (method url-fetch)
6c8a0b6f 4698 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4699 (version-major+minor version) "/"
6c8a0b6f 4700 "gom-" version ".tar.xz"))
607a04ae
MW
4701 (sha256
4702 (base32
0510440b 4703 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4704 (build-system gnu-build-system)
4705 (native-inputs
4706 `(("intltool" ,intltool)
4707 ("pkg-config" ,pkg-config)
4708 ("gobject-introspection" ,gobject-introspection)))
4709 (inputs
4710 `(("glib" ,glib)
4711 ("gdk-pixbuf" ,gdk-pixbuf)
4712 ("sqlite" ,sqlite)))
4713 ;; XXX TODO: Figure out how to run the test suite.
4714 (arguments `(#:tests? #f))
4715 (home-page "https://wiki.gnome.org/Projects/Gom")
4716 (synopsis "Object mapper from GObjects to SQLite")
4717 (description
4718 "Gom provides an object mapper from GObjects to SQLite. It helps you
4719write applications that need to store structured data as well as make complex
4720queries upon that data.")
4721 (license license:lgpl2.1+)))
b7a3cf11 4722
865aacc9 4723(define-public libgnome-games-support
f09520db 4724 (package
865aacc9 4725 (name "libgnome-games-support")
4c6d15cf 4726 (version "1.4.4")
f09520db
SB
4727 (source (origin
4728 (method url-fetch)
2d8dca9d 4729 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4730 (version-major+minor version) "/"
2d8dca9d 4731 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4732 (sha256
4733 (base32
4c6d15cf 4734 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4735 (build-system gnu-build-system)
4736 (arguments
4737 '(#:phases
4738 (modify-phases %standard-phases
4739 (add-before 'check 'pre-check
4740 (lambda _
865aacc9 4741 ;; Tests require a writable HOME.
f09520db
SB
4742 (setenv "HOME" (getcwd))
4743 #t)))))
4744 (native-inputs
4745 `(("intltool" ,intltool)
4746 ("pkg-config" ,pkg-config)
4747 ("vala" ,vala)))
4748 (propagated-inputs
865aacc9 4749 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4750 `(("gtk+" ,gtk+)
4751 ("libgee" ,libgee)))
4752 (home-page "https://www.gnome.org/")
4753 (synopsis "Useful functionality shared among GNOME games")
4754 (description
865aacc9 4755 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4756GNOME Games, but it may be used by others.")
4757 (license license:lgpl3+)))
4758
b7a3cf11
SB
4759(define-public gnome-klotski
4760 (package
4761 (name "gnome-klotski")
c1e419c4 4762 (version "3.32.0")
b7a3cf11
SB
4763 (source (origin
4764 (method url-fetch)
4765 (uri (string-append "mirror://gnome/sources/" name "/"
4766 (version-major+minor version) "/"
4767 name "-" version ".tar.xz"))
4768 (sha256
4769 (base32
c1e419c4
KK
4770 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4771 (build-system meson-build-system)
4772 (arguments
4773 '(#:glib-or-gtk? #t
4774 #:phases
4775 (modify-phases %standard-phases
4776 (add-after 'unpack 'skip-gtk-update-icon-cache
4777 ;; Don't create 'icon-theme.cache'.
4778 (lambda _
4779 (substitute* "build-aux/meson_post_install.py"
4780 (("gtk-update-icon-cache") (which "true")))
4781 #t)))))
b7a3cf11
SB
4782 (native-inputs
4783 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4784 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4785 ("intltool" ,intltool)
4786 ("itstool" ,itstool)
bcb354ad 4787 ("pkg-config" ,pkg-config)
c1e419c4 4788 ("vala" ,vala)
bcb354ad 4789 ("xmllint" ,libxml2)))
b7a3cf11
SB
4790 (inputs
4791 `(("gtk+" ,gtk+)
f4eae76f 4792 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4793 ("librsvg" ,librsvg)))
4794 (home-page "https://wiki.gnome.org/Apps/Klotski")
4795 (synopsis "Sliding block puzzles")
4796 (description
4797 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4798the patterned block to the area bordered by green markers. To do so, you will
4799need to slide other blocks out of the way. Complete each puzzle in as few moves
4800as possible!")
4801 (license license:gpl2+)))
8d4791bf
MW
4802
4803(define-public grilo
4804 (package
4805 (name "grilo")
a865e938 4806 (version "0.3.10")
8d4791bf
MW
4807 (source
4808 (origin
4809 (method url-fetch)
4810 (uri (string-append "mirror://gnome/sources/" name "/"
4811 (version-major+minor version) "/"
4812 name "-" version ".tar.xz"))
4813 (sha256
4814 (base32
a865e938 4815 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4816 (build-system meson-build-system)
8d4791bf
MW
4817 (native-inputs
4818 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4819 ("intltool" ,intltool)
4820 ("pkg-config" ,pkg-config)
d48d4c98
KK
4821 ("gobject-introspection" ,gobject-introspection)
4822 ("gtk-doc" ,gtk-doc)
4823 ("vala" ,vala)))
8d4791bf 4824 (inputs
6d7273a0
KK
4825 `(("cyrus-sasl" ,cyrus-sasl)
4826 ("glib" ,glib)
8d4791bf
MW
4827 ("gtk+" ,gtk+)
4828 ("libxml2" ,libxml2)
6d7273a0 4829 ("liboauth" ,liboauth)
8d4791bf
MW
4830 ("libsoup" ,libsoup)
4831 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4832 (native-search-paths
4833 (list (search-path-specification
4834 (variable "GRL_PLUGIN_PATH")
4835 (files (list (string-append "lib/grilo-"
4836 (version-major+minor version)))))))
d48d4c98 4837 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4838 (synopsis "Framework for discovering and browsing media")
4839 (description
4840 "Grilo is a framework focused on making media discovery and browsing easy
4841for application developers.")
4842 (license license:lgpl2.1+)))
7b212526
MW
4843
4844(define-public grilo-plugins
4845 (package
4846 (name "grilo-plugins")
281f6b3a 4847 (version "0.3.10")
7b212526
MW
4848 (source
4849 (origin
4850 (method url-fetch)
4851 (uri (string-append "mirror://gnome/sources/" name "/"
4852 (version-major+minor version) "/"
4853 name "-" version ".tar.xz"))
4854 (sha256
4855 (base32
281f6b3a
RG
4856 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4857 (build-system meson-build-system)
7b212526 4858 (native-inputs
281f6b3a
RG
4859 `(("gettext" ,gettext-minimal)
4860 ("glib:bin" ,glib "bin")
4861 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4862 ("itstool" ,itstool)
4863 ("pkg-config" ,pkg-config)))
281f6b3a 4864 ;; TODO: ahavi, gstreamer
7b212526
MW
4865 (inputs
4866 `(("grilo" ,grilo)
281f6b3a
RG
4867 ;("gmime" ,gmime) ; unused
4868 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4869 ("gom" ,gom)
281f6b3a
RG
4870 ;("gssdp" ,gssdp) ; unused
4871 ;("gupnp" ,gupnp) ; unused
4872 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4873 ("json-glib" ,json-glib)
4874 ("avahi" ,avahi)
281f6b3a
RG
4875 ("libgdata" ,libgdata)
4876 ("libmediaart" ,libmediaart)
4877 ;("librest" ,rest) ; unused
7b212526 4878 ("libsoup" ,libsoup)
281f6b3a
RG
4879 ("totam-pl-parser" ,totem-pl-parser)
4880 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4881 (arguments
281f6b3a
RG
4882 `(#:glib-or-gtk? #t
4883 ;;Disable lua-factory as it needs missing dependencies
4884 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4885 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4886 (synopsis "Plugins for the Grilo media discovery library")
4887 (description
4888 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4889for application developers. This package provides plugins for common media
4890discovery protocols.")
7b212526 4891 (license license:lgpl2.1+)))
4e3fc547
MW
4892
4893(define-public totem
4894 (package
4895 (name "totem")
995ef5ea 4896 (version "3.32.1")
4e3fc547
MW
4897 (source
4898 (origin
4899 (method url-fetch)
4900 (uri (string-append "mirror://gnome/sources/" name "/"
4901 (version-major+minor version) "/"
4902 name "-" version ".tar.xz"))
4903 (sha256
4904 (base32
995ef5ea 4905 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4906 (build-system meson-build-system)
4e3fc547
MW
4907 (native-inputs
4908 `(("pkg-config" ,pkg-config)
4909 ("desktop-file-utils" ,desktop-file-utils)
4910 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4911 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4912 ("intltool" ,intltool)
bcb354ad 4913 ("itstool" ,itstool)
995ef5ea
KK
4914 ("xmllint" ,libxml2)
4915 ("python-pylint" ,python-pylint)
4916 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4917 (propagated-inputs
4918 `(("dconf" ,dconf)))
4919 (inputs
4920 `(("gtk+" ,gtk+)
4921 ("gdk-pixbuf" ,gdk-pixbuf)
4922 ("atk" ,atk)
4923 ("cairo" ,cairo)
4924 ("dbus-glib" ,dbus-glib)
4925 ("clutter" ,clutter)
4926 ("clutter-gtk" ,clutter-gtk)
4927 ("clutter-gst" ,clutter-gst)
6a6db57f 4928 ("xorgproto" ,xorgproto)
4e3fc547
MW
4929 ("libxxf86vm" ,libxxf86vm)
4930 ("libxtst" ,libxtst)
4931 ("libxrandr" ,libxrandr)
4932 ("libxml2" ,libxml2)
4933 ("libsoup" ,libsoup)
4934 ("libpeas" ,libpeas)
4935 ("librsvg" ,librsvg)
4936 ("lirc" ,lirc)
4937 ("gnome-desktop" ,gnome-desktop)
4938 ("gstreamer" ,gstreamer)
4939 ("gst-plugins-base" ,gst-plugins-base)
4940 ("gst-plugins-good" ,gst-plugins-good)
4941 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4942 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4943 ("python" ,python)
995ef5ea 4944 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4945 ("totem-pl-parser" ,totem-pl-parser)
4946 ("grilo" ,grilo)
4947 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4948 ("vala" ,vala)))
4949 (arguments
7ad81b8b
LC
4950 `(#:glib-or-gtk? #t
4951
4952 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4953 ;; all that.
7ad81b8b 4954 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4955
4956 ;; Do not build .a files for the plugins, it's
4957 ;; completely useless. This saves 2 MiB.
7ad81b8b 4958 "--default-library" "shared")
ec5c24f9 4959 #:phases
4e3fc547 4960 (modify-phases %standard-phases
d51b19ad
EF
4961 (add-after 'unpack 'skip-gtk-update-icon-cache
4962 ;; Don't create 'icon-theme.cache'.
4963 (lambda _
4964 (substitute* "meson_post_install.py"
4965 (("gtk-update-icon-cache") "true"))
4966 #t))
6368eb39
DM
4967 (add-before
4968 'install 'disable-cache-generation
4969 (lambda _
4970 (setenv "DESTDIR" "/")
4971 #t))
995ef5ea
KK
4972 (add-before
4973 'check 'pre-check
4974 (lambda _
4975 ;; Tests require a running X server.
4976 (system "Xvfb :1 &")
4977 (setenv "DISPLAY" ":1")
4978 #t))
4e3fc547
MW
4979 (add-after
4980 'install 'wrap-totem
4981 (lambda* (#:key inputs outputs #:allow-other-keys)
4982 (let ((out (assoc-ref outputs "out"))
4983 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4984 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4985 (wrap-program (string-append out "/bin/totem")
4986 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4987 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4988 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4989 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4990 #t)))))
4991 (home-page "https://wiki.gnome.org/Apps/Videos")
4992 (synopsis "Simple media player for GNOME based on GStreamer")
4993 (description "Totem is a simple yet featureful media player for GNOME
4994which can read a large number of file formats.")
4995 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4996 ;; to be used and distributed together with GStreamer and Totem. See
4997 ;; file://COPYING in the source distribution for details.
4998 (license license:gpl2+)))
f0afb0c8
DH
4999
5000(define-public rhythmbox
5001 (package
5002 (name "rhythmbox")
8190e1ed 5003 (version "3.4.3")
f0afb0c8
DH
5004 (source (origin
5005 (method url-fetch)
5006 (uri (string-append "mirror://gnome/sources/" name "/"
5007 (version-major+minor version) "/"
5008 name "-" version ".tar.xz"))
5009 (sha256
5010 (base32
8190e1ed 5011 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
f0afb0c8
DH
5012 (build-system glib-or-gtk-build-system)
5013 (arguments
5014 `(#:configure-flags
5015 (list "--enable-lirc"
5016 "--enable-python"
5017 "--enable-vala"
5018 "--with-brasero"
5019 "--with-gudev"
5020 "--with-libsecret")
5021 #:phases
5022 (modify-phases %standard-phases
5023 (add-after
5024 'install 'wrap-rhythmbox
5025 (lambda* (#:key inputs outputs #:allow-other-keys)
5026 (let ((out (assoc-ref outputs "out"))
5027 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5028 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5029 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5030 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5031 (wrap-program (string-append out "/bin/rhythmbox")
5032 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5033 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5034 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5035 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5036 #t)))))
5037 (propagated-inputs
5038 `(("dconf" ,dconf)))
5039 (native-inputs
bcb354ad
SB
5040 `(("itstool" ,itstool)
5041 ("intltool" ,intltool)
f0afb0c8
DH
5042 ("glib" ,glib "bin")
5043 ("gobject-introspection" ,gobject-introspection)
5044 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5045 ("pkg-config" ,pkg-config)
5046 ("xmllint" ,libxml2)))
f0afb0c8
DH
5047 (inputs
5048 `(("json-glib" ,json-glib)
5049 ("tdb" ,tdb)
5050 ("gnome-desktop" ,gnome-desktop)
5051 ("python" ,python)
5052 ("python-pygobject" ,python2-pygobject)
5053 ("vala" ,vala)
5054 ("gmime" ,gmime)
f0afb0c8
DH
5055 ("adwaita-icon-theme" ,adwaita-icon-theme)
5056 ("grilo" ,grilo)
5057 ("grilo-plugins" ,grilo-plugins)
5058 ("gstreamer" ,gstreamer)
5059 ("gst-plugins-base" ,gst-plugins-base)
5060 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5061 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5062 ("libgudev" ,libgudev)
f0afb0c8
DH
5063 ;;("libmtp" ,libmtp) FIXME: Not detected
5064 ("libsecret" ,libsecret)
5065 ("libsoup" ,libsoup)
5066 ("libnotify" ,libnotify)
5067 ("libpeas" ,libpeas)
5068 ("lirc" ,lirc)
5069 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5070 ;;("clutter" ,clutter)
5071 ;;("clutter-gtk" ,clutter-gtk)
5072 ;;("clutter-gst" ,clutter-gst)
5073 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5074 ("atk" ,atk)
5075 ("pango" ,pango)
5076 ("gtk+" ,gtk+)
5077 ;; TODO:
5078 ;; * libgpod
5079 ;; * mx
f0afb0c8
DH
5080 ("brasero" ,brasero)))
5081 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5082 (synopsis "Music player for GNOME")
5083 (description "Rhythmbox is a music playing application for GNOME. It
5084supports playlists, song ratings, and any codecs installed through gstreamer.")
5085 (license license:gpl2+)))
f70d8383
DH
5086
5087(define-public eog
5088 (package
5089 (name "eog")
b0f24a82 5090 (version "3.32.2")
f70d8383
DH
5091 (source (origin
5092 (method url-fetch)
5093 (uri (string-append "mirror://gnome/sources/" name "/"
5094 (version-major+minor version) "/"
5095 name "-" version ".tar.xz"))
5096 (sha256
5097 (base32
b0f24a82 5098 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 5099 (build-system meson-build-system)
f70d8383 5100 (arguments
34c44a34
RW
5101 `(#:configure-flags
5102 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5103 (list (string-append "-Dc_link_args=-Wl,-rpath="
5104 (assoc-ref %outputs "out") "/lib/eog"))
5105 #:phases
f70d8383 5106 (modify-phases %standard-phases
7a034665
EF
5107 (add-after 'unpack 'skip-gtk-update-icon-cache
5108 ;; Don't create 'icon-theme.cache'.
5109 (lambda _
5110 (substitute* "meson_post_install.py"
5111 (("gtk-update-icon-cache") "true"))
5112 #t))
61fb581f
RW
5113 (add-after 'install 'wrap-eog
5114 (lambda* (#:key outputs #:allow-other-keys)
5115 (let ((out (assoc-ref outputs "out"))
5116 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5117 (wrap-program (string-append out "/bin/eog")
5118 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5119 #t)))))
f70d8383
DH
5120 (propagated-inputs
5121 `(("dconf" ,dconf)))
5122 (native-inputs
5123 `(("intltool" ,intltool)
b3546174 5124 ("itstool" ,itstool)
f70d8383
DH
5125 ("glib" ,glib "bin")
5126 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5127 ("pkg-config" ,pkg-config)
5128 ("xmllint" ,libxml2)))
f70d8383
DH
5129 (inputs
5130 `(("gnome-desktop" ,gnome-desktop)
5131 ("shared-mime-info" ,shared-mime-info)
5132 ("adwaita-icon-theme" ,adwaita-icon-theme)
5133 ("exempi" ,exempi)
5134 ("lcms" ,lcms)
5135 ("libexif" ,libexif)
5136 ("libpeas" ,libpeas)
5137 ("libjpeg" ,libjpeg)
5138 ("librsvg" ,librsvg)
5139 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5140 ("gtk+" ,gtk+)))
5141 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5142 (synopsis "GNOME image viewer")
5143 (description "Eye of GNOME is the GNOME image viewer. It
5144supports image conversion, rotation, and slideshows.")
5145 (license license:gpl2+)))
41af5e7b 5146
0c3f8cb8
LC
5147(define-public eog-plugins
5148 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5149 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5150 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5151 ;; 'XDG_DATA_DIRS' appropriately set.
5152 (package
5153 (name "eog-plugins")
54b74cc6 5154 (version "3.26.4")
0c3f8cb8
LC
5155 (source (origin
5156 (method url-fetch)
f3b88ed2 5157 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5158 (version-major+minor version) "/"
f3b88ed2 5159 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5160 (sha256
5161 (base32
54b74cc6 5162 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5163 (build-system gnu-build-system)
5164 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5165 (synopsis "Extensions for the Eye of GNOME image viewer")
5166 (native-inputs
5167 `(("pkg-config" ,pkg-config)
5168 ("gettext" ,gnu-gettext)))
5169 (inputs
5170 `(("eog" ,eog)
5171 ("glib" ,glib)
5172 ("gtk+" ,gtk+)
5173 ("libpeas" ,libpeas)
5174 ("libexif" ,libexif)
5175 ("libchamplain" ,libchamplain)))
5176 (description
5177 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5178notably:
5179
5180@itemize
5181@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5182@item @dfn{Map}, which displays a map of where the picture was taken on the
5183side panel;
5184@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5185@end itemize\n")
5186
5187 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5188 ;; long suspicious byte stream that goes to a
5189 ;; ".gresource.eog_postasa_plugin" ELF section.
5190 (license license:gpl2+)))
5191
41af5e7b
SB
5192(define-public libgudev
5193 (package
5194 (name "libgudev")
b78f5118 5195 (version "232")
41af5e7b
SB
5196 (source (origin
5197 (method url-fetch)
5198 (uri (string-append "mirror://gnome/sources/" name "/"
5199 version "/" name "-" version ".tar.xz"))
5200 (sha256
5201 (base32
b78f5118 5202 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5203 (build-system gnu-build-system)
b78f5118
RW
5204 (arguments
5205 '(#:configure-flags
5206 ;; umockdev depends on libgudev.
5207 (list "--disable-umockdev")))
41af5e7b
SB
5208 (native-inputs
5209 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5210 ("gobject-introspection" ,gobject-introspection)
5211 ("pkg-config" ,pkg-config)))
5212 (propagated-inputs
5213 `(("glib" ,glib))) ; required by gudev-1.0.pc
5214 (inputs
5215 `(("udev" ,eudev)))
5216 (home-page "https://wiki.gnome.org/Projects/libgudev")
5217 (synopsis "GObject bindings for libudev")
5218 (description
5219 "This library provides GObject bindings for libudev. It was originally
5220part of udev-extras, then udev, then systemd. It's now a project on its own.")
5221 (license license:lgpl2.1+)))
3dc8828f
SB
5222
5223(define-public gvfs
5224 (package
5225 (name "gvfs")
12fe4846 5226 (version "1.40.1")
3dc8828f
SB
5227 (source (origin
5228 (method url-fetch)
1d68eb32 5229 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5230 (version-major+minor version) "/"
1d68eb32 5231 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5232 (sha256
5233 (base32
12fe4846 5234 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5235 (build-system meson-build-system)
3dc8828f 5236 (arguments
e762d943
RW
5237 '(#:glib-or-gtk? #t
5238 #:configure-flags
5239 (list "-Dsystemduserunitdir=no"
5240 "-Dtmpfilesdir=no"
5241 ;; Otherwise, the RUNPATH will lack the final path component.
5242 (string-append "-Dc_link_args=-Wl,-rpath="
5243 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5244 (native-inputs
5245 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5246 ("gettext" ,gettext-minimal)
5247 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5248 ("pkg-config" ,pkg-config)
5249 ("xsltproc" ,libxslt)))
5250 (inputs
5251 `(("avahi" ,avahi)
5252 ("docbook-xml" ,docbook-xml-4.2)
5253 ("docbook-xsl" ,docbook-xsl)
5254 ("dbus" ,dbus)
e762d943 5255 ("elogind" ,elogind)
3dc8828f 5256 ("fuse" ,fuse)
24a78aa6 5257 ("gcr" ,gcr)
3dc8828f 5258 ("glib" ,glib)
e762d943 5259 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5260 ("libarchive" ,libarchive)
5261 ("libbluray" ,libbluray)
8852ca24 5262 ("libcap" ,libcap)
3dc8828f
SB
5263 ("libcdio-paranoia" ,libcdio-paranoia)
5264 ("libgcrypt" ,libgcrypt)
e762d943 5265 ("libgdata" ,libgdata)
3dc8828f
SB
5266 ("libgphoto2" ,libgphoto2)
5267 ("libgudev" ,libgudev)
0ab9f949 5268 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5269 ("libmtp" ,libmtp)
e762d943 5270 ("libnfs" ,libnfs)
3dc8828f
SB
5271 ("libsecret" ,libsecret)
5272 ("libsmbclient" ,samba)
5273 ("libsoup" ,libsoup)
5274 ("libxml2" ,libxml2)
e762d943 5275 ("openssh" ,openssh)
8852ca24 5276 ("polkit" ,polkit)
3dc8828f
SB
5277 ("udisks" ,udisks)))
5278 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5279 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5280 (description
8f65585b 5281 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5282abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5283to all applications using the GIO API. It also supports exposing the GVFS
5284mounts to non-GIO applications using FUSE.
5285
5286GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5287DAV, and others.")
5288 (license license:lgpl2.0+)))
7c88b6bd
AW
5289
5290(define-public gusb
5291 (package
5292 (name "gusb")
536b3274 5293 (version "0.3.0")
7c88b6bd 5294 (source (origin
bbfb36f9
EF
5295 (method git-fetch)
5296 (uri (git-reference
5297 (url "https://github.com/hughsie/libgusb.git")
5298 (commit version)))
5299 (file-name (git-file-name name version))
7c88b6bd
AW
5300 (sha256
5301 (base32
bbfb36f9 5302 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5303 (build-system meson-build-system)
7c88b6bd 5304 (native-inputs
536b3274 5305 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5306 ("pkg-config" ,pkg-config)
5307 ("vala" ,vala)
7c88b6bd
AW
5308 ("gtk-doc" ,gtk-doc)))
5309 (propagated-inputs
5310 ;; Both of these are required by gusb.pc.
5311 `(("glib" ,glib)
5312 ("libusb" ,libusb)))
5313 (arguments
536b3274 5314 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5315 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5316 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5317 (description
5318 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5319asynchronous control, bulk and interrupt transfers with proper cancellation
5320and integration into a mainloop. This makes it easy to integrate low level
5321USB transfers with your high-level application or system daemon.")
5322 (license license:lgpl2.1+)))
0abe1d86
AW
5323
5324(define-public simple-scan
5325 (package
5326 (name "simple-scan")
4afb7dd9 5327 (version "3.34.2")
d9f6d587
TGR
5328 (source
5329 (origin
5330 (method url-fetch)
5331 (uri (string-append "mirror://gnome/sources/simple-scan/"
5332 (version-major+minor version) "/"
5333 "simple-scan-" version ".tar.xz"))
5334 (sha256
4afb7dd9 5335 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
d9f6d587
TGR
5336 (build-system meson-build-system)
5337 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5338 (arguments
5339 '(#:glib-or-gtk? #t))
0abe1d86
AW
5340 (inputs
5341 `(("gtk" ,gtk+)
5342 ("zlib" ,zlib)
5343 ("cairo" ,cairo)
c501f592 5344 ("colord" ,colord)
0abe1d86
AW
5345 ("gdk-pixbuf" ,gdk-pixbuf)
5346 ("gusb" ,gusb)
4c928743 5347 ("libsane" ,sane-backends)))
0abe1d86 5348 (native-inputs
b94a6ca0 5349 `(("gettext" ,gettext-minimal)
0abe1d86 5350 ("itstool" ,itstool)
c501f592 5351 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5352 ("pkg-config" ,pkg-config)
bcb354ad
SB
5353 ("vala" ,vala)
5354 ("xmllint" ,libxml2)))
dff0eedb 5355 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5356 (synopsis "Document and image scanner")
d9f6d587
TGR
5357 (description
5358 "Document Scanner is an easy-to-use application that lets you connect your
5359scanner and quickly capture images and documents in an appropriate format. It
5360supports any scanner for which a suitable SANE driver is available, which is
5361almost all of them.")
0abe1d86 5362 (license license:gpl3+)))
7549f984 5363
ab466d79
RW
5364(define-public eolie
5365 (package
5366 (name "eolie")
fa8ef3ed 5367 (version "0.9.63")
ab466d79
RW
5368 (source (origin
5369 (method url-fetch)
00014781 5370 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 5371 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 5372 "eolie-" version ".tar.xz"))
ab466d79
RW
5373 (sha256
5374 (base32
fa8ef3ed 5375 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 5376 (build-system meson-build-system)
ab466d79 5377 (arguments
00014781
RW
5378 `(#:glib-or-gtk? #t
5379 #:phases
ab466d79 5380 (modify-phases %standard-phases
f0c68100
EF
5381 (add-after 'unpack 'skip-gtk-update-icon-cache
5382 ;; Don't create 'icon-theme.cache'.
5383 (lambda _
5384 (substitute* "meson_post_install.py"
5385 (("gtk-update-icon-cache") "true"))
5386 #t))
ab466d79
RW
5387 (add-after 'wrap 'wrap-more
5388 (lambda* (#:key inputs outputs #:allow-other-keys)
5389 (let* ((out (assoc-ref outputs "out"))
5390 ;; These libraries must be on LD_LIBRARY_PATH.
5391 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5392 "atk" "gtk+" "gsettings-desktop-schemas"
5393 "gobject-introspection"))
5394 (path (string-join
5395 (map (lambda (lib)
5396 (string-append (assoc-ref inputs lib) "/lib"))
5397 libs)
5398 ":")))
5399 (wrap-program (string-append out "/bin/eolie")
5400 `("LD_LIBRARY_PATH" ":" prefix (,path))
5401 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5402 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5403 #t)))))
5404 (native-inputs
f85ca6ed 5405 `(("intltool" ,intltool)
ab466d79 5406 ("itstool" ,itstool)
d95f1041 5407 ("pkg-config" ,pkg-config)
d95f1041 5408 ("python" ,python)
f0c68100 5409 ("glib:bin" ,glib "bin")))
ab466d79
RW
5410 (inputs
5411 `(("gobject-introspection" ,gobject-introspection)
5412 ("glib-networking" ,glib-networking)
5413 ("cairo" ,cairo)
5414 ("gtk+" ,gtk+)
5415 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5416 ("python" ,python-wrapper)
d72f76df 5417 ("python-dateutil" ,python-dateutil)
00014781 5418 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5419 ("python-pygobject" ,python-pygobject)
5420 ("python-pycairo" ,python-pycairo)
00014781 5421 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5422 ("libsecret" ,libsecret)
5423 ("gtkspell3" ,gtkspell3)
5424 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5425 ("webkitgtk" ,webkitgtk)))
166b2c97 5426 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5427 (synopsis "Web browser for GNOME")
5428 (description
5429 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5430a secret password store, an adblocker, and a modern UI.")
5431 (license license:gpl3+)))
5432
7549f984
SB
5433(define-public epiphany
5434 (package
5435 (name "epiphany")
60680365 5436 (version "3.32.5")
7549f984
SB
5437 (source (origin
5438 (method url-fetch)
dd3266ec 5439 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5440 (version-major+minor version) "/"
dd3266ec 5441 "epiphany-" version ".tar.xz"))
7549f984
SB
5442 (sha256
5443 (base32
60680365 5444 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
5445
5446 (build-system meson-build-system)
7549f984
SB
5447 (arguments
5448 ;; FIXME: tests run under Xvfb, but fail with:
5449 ;; /src/bookmarks/ephy-bookmarks/create:
5450 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5451 ;; subsystem
5452 ;; FAIL
6f48d9db 5453 '(#:tests? #f
e19f9c24 5454 #:glib-or-gtk? #t
bb7ff88f
EF
5455 #:phases
5456 (modify-phases %standard-phases
5457 (add-after 'unpack 'skip-gtk-update-icon-cache
5458 ;; Don't create 'icon-theme.cache'.
5459 (lambda _
5460 (substitute* "post_install.py"
5461 (("gtk-update-icon-cache") "true"))
5462 #t)))
e19f9c24
LF
5463 #:configure-flags
5464 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5465 (list (string-append "-Dc_link_args=-Wl,-rpath="
5466 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5467 (propagated-inputs
5468 `(("dconf" ,dconf)))
7549f984 5469 (native-inputs
fc5c5b92
R
5470 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5471 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5472 ("intltool" ,intltool)
7549f984 5473 ("itstool" ,itstool)
bcb354ad
SB
5474 ("pkg-config" ,pkg-config)
5475 ("xmllint" ,libxml2)))
7549f984
SB
5476 (inputs
5477 `(("avahi" ,avahi)
5478 ("gcr" ,gcr)
fc5c5b92 5479 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5480 ("glib-networking" ,glib-networking)
5481 ("gnome-desktop" ,gnome-desktop)
5482 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5483 ("json-glib" ,json-glib)
7549f984 5484 ("iso-codes" ,iso-codes)
8748e29c 5485 ("libdazzle" ,libdazzle)
7549f984
SB
5486 ("libnotify" ,libnotify)
5487 ("libsecret" ,libsecret)
7549f984 5488 ("libxslt" ,libxslt)
fc5c5b92 5489 ("nettle" ,nettle) ; for hogweed
7549f984 5490 ("sqlite" ,sqlite)
f85ca6ed 5491 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5492 (home-page "https://wiki.gnome.org/Apps/Web")
5493 (synopsis "GNOME web browser")
5494 (description
5495 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5496principles are simplicity and standards compliance.")
5497 (license license:gpl2+)))
a3856b2c
SB
5498
5499(define-public d-feet
5500 (package
5501 (name "d-feet")
458e9221 5502 (version "0.3.14")
a3856b2c
SB
5503 (source (origin
5504 (method url-fetch)
5505 (uri (string-append "mirror://gnome/sources/" name "/"
5506 (version-major+minor version) "/"
5507 name "-" version ".tar.xz"))
5508 (sha256
5509 (base32
458e9221 5510 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5511 (build-system glib-or-gtk-build-system)
5512 (arguments
5513 '(#:out-of-source? #f ; tests need to run in the source directory.
5514 #:phases
5515 (modify-phases %standard-phases
5516 (add-before
5517 'check 'pre-check
86aff791 5518 (lambda _
a3856b2c
SB
5519 ;; The test suite requires a running X server.
5520 (system "Xvfb :1 &")
5521 (setenv "DISPLAY" ":1")
5522 ;; Don't fail on missing '/etc/machine-id'.
5523 (setenv "DBUS_FATAL_WARNINGS" "0")
5524 ;; tests.py and window.py don't meet E402:
5525 ;; E402 module level import not at top of file
5526 (substitute* "src/tests/Makefile"
86aff791
MW
5527 (("--ignore=E123") "--ignore=E123,E402"))
5528 #t))
a3856b2c
SB
5529 (add-after
5530 'install 'wrap-program
5531 (lambda* (#:key outputs #:allow-other-keys)
5532 (let ((prog (string-append (assoc-ref outputs "out")
5533 "/bin/d-feet")))
5534 (wrap-program prog
5535 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5536 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5537 #t))))))
a3856b2c
SB
5538 (native-inputs
5539 `(("intltool" ,intltool)
5540 ("itstool" ,itstool)
5541 ("pkg-config" ,pkg-config)
5542 ("python-pep8" ,python-pep8)
5543 ("xmllint" ,libxml2)
ff337525 5544 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5545 (inputs
5546 `(("gobject-introspection" ,gobject-introspection)
5547 ("gtk+" ,gtk+)
5548 ("python" ,python-wrapper)
458e9221 5549 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5550 ("python-pygobject" ,python-pygobject)))
5551 (home-page "https://wiki.gnome.org/Apps/DFeet")
5552 (synopsis "D-Bus debugger")
5553 (description
5554 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5555of running programs and invoke methods on those interfaces.")
5556 (license license:gpl2+)))
c3b97bd9
SB
5557
5558(define-public yelp-xsl
5559 (package
5560 (name "yelp-xsl")
b3640e79 5561 (version "3.32.1")
c3b97bd9
SB
5562 (source (origin
5563 (method url-fetch)
5564 (uri (string-append "mirror://gnome/sources/" name "/"
5565 (version-major+minor version) "/"
5566 name "-" version ".tar.xz"))
5567 (sha256
5568 (base32
b3640e79 5569 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
c3b97bd9
SB
5570 (build-system gnu-build-system)
5571 (native-inputs
5572 `(("intltool" ,intltool)
5573 ("itstool" ,itstool)
5574 ("xmllint" ,libxml2)))
5575 (home-page "https://wiki.gnome.org/Apps/Yelp")
5576 (synopsis "XSL stylesheets for Yelp")
5577 (description
5578 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5579to format Docbook and Mallard documents.")
5580 (license license:gpl2+)))
de3d612a
SB
5581
5582(define-public yelp
5583 (package
5584 (name "yelp")
1f1b6d60 5585 (version "3.32.2")
de3d612a
SB
5586 (source (origin
5587 (method url-fetch)
5588 (uri (string-append "mirror://gnome/sources/" name "/"
5589 (version-major+minor version) "/"
5590 name "-" version ".tar.xz"))
5591 (sha256
5592 (base32
1f1b6d60 5593 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5594 (build-system glib-or-gtk-build-system)
5595 (native-inputs
5596 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5597 ("intltool" ,intltool)
5598 ("itstool" ,itstool)
5599 ("pkg-config" ,pkg-config)))
5600 (propagated-inputs
5601 `(("dconf" ,dconf)))
5602 (inputs
ad1b7d8b
SB
5603 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5604 ("libxslt" ,libxslt)
de3d612a 5605 ("sqlite" ,sqlite)
4c28ca1d
SB
5606 ("webkitgtk" ,webkitgtk)
5607 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5608 (home-page "https://wiki.gnome.org/Apps/Yelp")
5609 (synopsis "GNOME help browser")
5610 (description
5611 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5612man, info, and HTML documents. It can locate documents according to the
5613freedesktop.org help system specification.")
5614 (license license:gpl2+)))
122d0d10
SB
5615
5616(define-public yelp-tools
5617 (package
5618 (name "yelp-tools")
2089bca5 5619 (version "3.28.0")
122d0d10
SB
5620 (source (origin
5621 (method url-fetch)
5622 (uri (string-append "mirror://gnome/sources/" name "/"
5623 (version-major+minor version) "/"
5624 name "-" version ".tar.xz"))
5625 (sha256
5626 (base32
2089bca5 5627 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
5628 (build-system gnu-build-system)
5629 (native-inputs
5630 `(("pkg-config" ,pkg-config)))
5631 (propagated-inputs
5632 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5633 `(("itstool" ,itstool)
5634 ("xmllint" ,libxml2)
5635 ("xsltproc" ,libxslt)))
5636 (inputs
5637 `(("yelp-xsl" ,yelp-xsl)))
5638 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5639 (synopsis "Yelp documentation tools")
5640 (description
5641 "Yelp-tools is a collection of scripts and build utilities to help create,
5642manage, and publish documentation for Yelp and the web. Most of the heavy
5643lifting is done by packages like yelp-xsl and itstool. This package just
5644wraps things up in a developer-friendly way.")
5645 (license license:gpl2+)))
af8f9f23 5646
4ed041d9
MB
5647(define-public yelp-tools/fixed
5648 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5649 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5650 ;; the next rebuild cycle.
5651 (hidden-package
5652 (package/inherit
5653 yelp-tools
5654 (propagated-inputs
5655 `(("itstool" ,itstool/fixed)
5656 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5657
af8f9f23
RW
5658(define-public libgee
5659 (package
5660 (name "libgee")
4c2c5ae6 5661 (version "0.20.2")
af8f9f23
RW
5662 (source (origin
5663 (method url-fetch)
84a1b007 5664 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5665 (version-major+minor version) "/"
84a1b007 5666 "libgee-" version ".tar.xz"))
af8f9f23
RW
5667 (sha256
5668 (base32
4c2c5ae6 5669 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
af8f9f23
RW
5670 (build-system gnu-build-system)
5671 (arguments
5672 `(#:phases
5673 (modify-phases %standard-phases
5674 (add-after 'unpack 'fix-introspection-install-dir
5675 (lambda* (#:key outputs #:allow-other-keys)
5676 (let ((out (assoc-ref outputs "out")))
5677 (substitute* "gee/Makefile.in"
5678 (("@INTROSPECTION_GIRDIR@")
5679 (string-append out "/share/gir-1.0/"))
5680 (("@INTROSPECTION_TYPELIBDIR@")
5681 (string-append out "/lib/girepository-1.0/")))))))))
5682 (native-inputs
5683 `(("glib" ,glib "bin")
5684 ("pkg-config" ,pkg-config)))
5685 (inputs
5686 `(("glib" ,glib)
5687 ("gobject-introspection" ,gobject-introspection)))
5688 (home-page "https://wiki.gnome.org/Projects/Libgee")
5689 (synopsis "GObject collection library")
5690 (description
5691 "Libgee is a utility library providing GObject-based interfaces and
5692classes for commonly used data structures.")
5693 (license license:lgpl2.1+)))
b0f9c4b8
RW
5694
5695(define-public gexiv2
5696 (package
5697 (name "gexiv2")
b1a8b408 5698 (version "0.12.0")
b0f9c4b8
RW
5699 (source (origin
5700 (method url-fetch)
5701 (uri (string-append "mirror://gnome/sources/" name "/"
5702 (version-major+minor version) "/"
5703 name "-" version ".tar.xz"))
5704 (sha256
5705 (base32
b1a8b408 5706 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5707 (build-system meson-build-system)
b0f9c4b8 5708 (native-inputs
b1a8b408
KK
5709 `(("gcr" ,gcr)
5710 ("glib" ,glib "bin")
5711 ("pkg-config" ,pkg-config)
5712 ("vala" ,vala)))
b0f9c4b8
RW
5713 (propagated-inputs
5714 ;; Listed in "Requires" section of gexiv2.pc
5715 `(("exiv2" ,exiv2)))
5716 (inputs
5717 `(("glib" ,glib)
5718 ("gobject-introspection" ,gobject-introspection)))
5719 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5720 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5721 (description
5722 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5723allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5724metadata in photo and video files of various formats.")
5725 (license license:gpl2+)))
fed5a689
RW
5726
5727(define-public shotwell
5728 (package
5729 (name "shotwell")
a1c6fb52 5730 (version "0.30.7")
fed5a689
RW
5731 (source (origin
5732 (method url-fetch)
5497d682 5733 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5734 (version-major+minor version) "/"
5497d682 5735 "shotwell-" version ".tar.xz"))
fed5a689
RW
5736 (sha256
5737 (base32
a1c6fb52 5738 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
3b79afa6
KK
5739 (build-system meson-build-system)
5740 (arguments
5a0beca3
EF
5741 '(#:glib-or-gtk? #t
5742 #:phases
5743 (modify-phases %standard-phases
5744 (add-after 'unpack 'skip-gtk-update-icon-cache
5745 (lambda _
5746 (substitute* "build-aux/meson/postinstall.py"
5747 (("gtk-update-icon-cache") (which "true"))
5748 (("update-desktop-database") (which "true")))
5749 #t)))))
735b8db6
TGR
5750 (propagated-inputs
5751 `(("dconf" ,dconf)))
fed5a689 5752 (native-inputs
5a0beca3
EF
5753 `(("gettext" ,gettext-minimal)
5754 ("glib:bin" ,glib "bin")
735b8db6 5755 ("itstool" ,itstool)
3b79afa6 5756 ("pkg-config" ,pkg-config)
735b8db6 5757 ("vala" ,vala)))
fed5a689 5758 (inputs
5a0beca3
EF
5759 `(("gcr" ,gcr)
5760 ("gexiv2" ,gexiv2)
fed5a689 5761 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5762 ("gstreamer" ,gstreamer)
5763 ("json-glib" ,json-glib)
dfb0323d 5764 ("libgdata" ,libgdata)
fed5a689 5765 ("libgee" ,libgee)
5a0beca3
EF
5766 ("libgphoto2" ,libgphoto2)
5767 ("libgudev" ,libgudev)
fed5a689 5768 ("libraw" ,libraw)
fed5a689
RW
5769 ("libsoup" ,libsoup)
5770 ("libxml2" ,libxml2)
5a0beca3
EF
5771 ("sqlite" ,sqlite)
5772 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5773 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5774 (synopsis "Photo manager for GNOME 3")
5775 (description
5776 "Shotwell is a digital photo manager designed for the GNOME desktop
5777environment. It allows you to import photos from disk or camera, organize
5778them by keywords and events, view them in full-window or fullscreen mode, and
5779share them with others via social networking and more.")
5780 (license license:lgpl2.1+)))
293ff8b2
DT
5781
5782(define-public file-roller
5783 (package
5784 (name "file-roller")
dcae4270 5785 (version "3.32.3")
293ff8b2
DT
5786 (source (origin
5787 (method url-fetch)
f89a27c6 5788 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5789 (version-major+minor version) "/"
f89a27c6 5790 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5791 (sha256
5792 (base32
dcae4270 5793 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5794 (build-system meson-build-system)
293ff8b2 5795 (native-inputs
0a500745
RW
5796 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5797 ("intltool" ,intltool)
4c96e5d1 5798 ("itstool" ,itstool)
0a500745
RW
5799 ("pkg-config" ,pkg-config)
5800 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5801 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5802 ;; TODO: Add libnautilus.
5803 (inputs
5804 `(("gtk+" ,gtk+)
5805 ("gdk-pixbuf" ,gdk-pixbuf)
5806 ("json-glib" ,json-glib)
5807 ("libarchive" ,libarchive)
5808 ("libnotify" ,libnotify)
4c96e5d1 5809 ("nettle" ,nettle)
293ff8b2
DT
5810 ("libxml2" ,libxml2)))
5811 (synopsis "Graphical archive manager for GNOME")
5812 (description "File Roller is an archive manager for the GNOME desktop
5813environment that allows users to view, unpack, and create compressed archives
5814such as gzip tarballs.")
5815 (home-page "http://fileroller.sourceforge.net/")
5816 (license license:gpl2+)))
7ce49365
SB
5817
5818(define-public gnome-session
5819 (package
5820 (name "gnome-session")
1fc2ec79 5821 (version "3.32.0")
7ce49365
SB
5822 (source (origin
5823 (method url-fetch)
5824 (uri (string-append "mirror://gnome/sources/" name "/"
5825 (version-major+minor version) "/"
5826 name "-" version ".tar.xz"))
5827 (sha256
5828 (base32
1fc2ec79 5829 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5830 (arguments
df278071
RW
5831 '(#:glib-or-gtk? #t
5832 #:phases
2914af3c
AW
5833 (modify-phases %standard-phases
5834 (add-before 'configure 'pre-configure
5835 (lambda* (#:key outputs #:allow-other-keys)
5836 ;; Use elogind instead of systemd.
df278071
RW
5837 (substitute* "meson.build"
5838 (("libsystemd-login") "libelogind")
5839 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5840 (substitute* "gnome-session/gsm-systemd.c"
5841 (("#include <systemd/sd-login.h>")
5842 "#include <elogind/sd-login.h>"))
df278071 5843 ;; Remove uses of the systemd daemon.
803ab416
SB
5844 (substitute* "gnome-session/gsm-autostart-app.c"
5845 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5846 #t))
5847 (add-after 'install 'wrap-gnome-session
5848 (lambda* (#:key inputs outputs #:allow-other-keys)
5849 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5850 (let ((glib (assoc-ref inputs "glib:bin"))
5851 (out (assoc-ref outputs "out")))
5852 (wrap-program (string-append out "/bin/gnome-session")
5853 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5854 #t))))
6cbc8d57 5855
2914af3c 5856 #:configure-flags
df278071
RW
5857 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5858 "-Dman=false" ; FIXME: disabled because of docbook validation error
5859 "-Dsystemd_journal=false")))
5860 (build-system meson-build-system)
7ce49365
SB
5861 (native-inputs
5862 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5863 ("pkg-config" ,pkg-config)
5864 ("intltool" ,intltool)
df278071
RW
5865 ("xsltproc" ,libxslt)
5866 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5867 ("docbook-xsl" ,docbook-xsl)
5868 ("docbook-xml" ,docbook-xml)
5869 ("xmlto" ,xmlto)))
7ce49365 5870 (inputs
2914af3c
AW
5871 `(("elogind" ,elogind)
5872 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5873 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5874 ("gtk+" ,gtk+)
5875 ("json-glib" ,json-glib)
5876 ("libsm" ,libsm)
5877 ("libxcomposite" ,libxcomposite)
5878 ("libxtst" ,libxtst)
5879 ("mesa" ,mesa)
5880 ("upower" ,upower)
5881 ("xtrans" ,xtrans)))
5882 (synopsis "Session manager for GNOME")
5883 (description
5884 "This package contains the GNOME session manager, as well as a
5885configuration program to choose applications starting on login.")
5886 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5887 (license license:gpl2+)))
f47ba77e
SB
5888
5889(define-public gjs
5890 (package
5891 (name "gjs")
d054fbf5 5892 (version "1.56.2")
f47ba77e
SB
5893 (source (origin
5894 (method url-fetch)
5895 (uri (string-append "mirror://gnome/sources/" name "/"
5896 (version-major+minor version) "/"
5897 name "-" version ".tar.xz"))
5898 (sha256
5899 (base32
d054fbf5 5900 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5901 (build-system gnu-build-system)
5902 (arguments
5903 '(#:phases
5904 (modify-phases %standard-phases
5905 (add-before
5906 'check 'pre-check
5907 (lambda _
fc119619
MW
5908 ;; The test suite requires a running X server.
5909 (system "Xvfb :1 &")
5910 (setenv "DISPLAY" ":1")
5911
f47ba77e
SB
5912 ;; For the missing /etc/machine-id.
5913 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5914
144f94d0
KK
5915 ;; Our mozjs-38 package does not compile the required Intl API
5916 ;; support for these failing tests.
5917 (substitute* "installed-tests/js/testLocale.js"
5918 ((".*toBeDefined.*") "")
5919 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5920 (substitute* "installed-tests/scripts/testCommandLine.sh"
5921 (("Valentín") "")
5922 (("☭") ""))
f47ba77e
SB
5923 #t)))))
5924 (native-inputs
8a831c6f 5925 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5926 ("pkg-config" ,pkg-config)
5927 ("xmllint" ,libxml2)
5928 ;; For testing
5929 ("dbus-launch" ,dbus)
5930 ("uuidgen" ,util-linux)
ebebee94 5931 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5932 (propagated-inputs
5933 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5934 `(("cairo" ,cairo)
5935 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5936 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5937 (inputs
5938 `(("gtk+" ,gtk+)
5939 ("readline" ,readline)))
5940 (synopsis "Javascript bindings for GNOME")
f032d0be 5941 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5942 (description
5943 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5944javascript engine and the GObject introspection framework.")
5945 (license license:gpl2+)))
329d731b
DH
5946
5947(define-public gedit
5948 (package
5949 (name "gedit")
480c9226 5950 (version "3.32.2")
329d731b
DH
5951 (source (origin
5952 (method url-fetch)
5953 (uri (string-append "mirror://gnome/sources/" name "/"
5954 (version-major+minor version) "/"
5955 name "-" version ".tar.xz"))
5956 (sha256
5957 (base32
480c9226
KK
5958 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5959 (build-system meson-build-system)
329d731b 5960 (arguments
480c9226
KK
5961 `(#:glib-or-gtk? #t
5962 #:configure-flags
5963 ;; Otherwise, the RUNPATH will lack the final path component.
5964 (list (string-append "-Dc_link_args=-Wl,-rpath="
5965 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5966
5967 ;; XXX: Generated .h files are sometimes used before being built.
5968 #:parallel-build? #f
5969
480c9226 5970 #:phases
329d731b 5971 (modify-phases %standard-phases
480c9226
KK
5972 (add-after 'unpack 'skip-gtk-update-icon-cache
5973 ;; Don't create 'icon-theme.cache'.
5974 (lambda _
5975 (substitute* "build-aux/meson/post_install.py"
5976 (("gtk-update-icon-cache") (which "true")))
5977 #t))
5978 (add-after 'unpack 'patch-libgd-fetch
5979 (lambda* (#:key inputs #:allow-other-keys)
5980 (let ((libgd (assoc-ref inputs "libgd")))
5981 ;; Calling git is unnecessary because libgd is fetched as a
5982 ;; native input to this package.
5983 (substitute* "meson.build"
5984 ((".*git.*") ""))
5985 (copy-recursively libgd "subprojects/libgd")
5986 #t)))
5987 (add-after 'install 'wrap-gedit
5988 (lambda* (#:key inputs outputs #:allow-other-keys)
5989 (let ((out (assoc-ref outputs "out"))
5990 (gtksourceview (assoc-ref inputs "gtksourceview"))
5991 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5992 (python-path (getenv "PYTHONPATH")))
5993 (wrap-program (string-append out "/bin/gedit")
5994 ;; For plugins.
5995 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5996 `("PYTHONPATH" ":" prefix (,python-path))
5997 ;; For language-specs.
5998 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5999 "/share")))))
6000 #t)))))
329d731b
DH
6001 (propagated-inputs
6002 `(("dconf" ,dconf)))
6003 (native-inputs
480c9226
KK
6004 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6005 ("intltool" ,intltool)
b3546174 6006 ("itstool" ,itstool)
480c9226 6007 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6008 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6009 ("libgd"
6010 ,(origin
6011 (method git-fetch)
6012 (uri (git-reference
6013 (url "https://gitlab.gnome.org/GNOME/libgd")
6014 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6015 (file-name (git-file-name "libgd" version))
6016 (sha256
6017 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6018 ("pkg-config" ,pkg-config)))
6019 (inputs
6020 `(("glib" ,glib)
0d2df50c 6021 ("gspell" ,gspell)
329d731b 6022 ("gtk+" ,gtk+)
480c9226 6023 ("gtksourceview" ,gtksourceview)
329d731b
DH
6024 ("libpeas" ,libpeas)
6025 ("libxml2" ,libxml2)
329d731b
DH
6026 ("iso-codes" ,iso-codes)
6027 ("python-pygobject" ,python-pygobject)
6028 ("python" ,python)
6029 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6030 ("libx11" ,libx11)
6031 ("vala" ,vala)
6032 ("adwaita-icon-theme" ,adwaita-icon-theme)
6033 ("libsoup" ,libsoup)
6034 ("gnome-desktop" ,gnome-desktop)))
6035 (home-page "https://wiki.gnome.org/Apps/Gedit")
6036 (synopsis "GNOME text editor")
6037 (description "While aiming at simplicity and ease of use, gedit is a
6038powerful general purpose text editor.")
6039 (license license:gpl2+)))
b7179363
SB
6040
6041(define-public zenity
6042 (package
6043 (name "zenity")
4f581bd0 6044 (version "3.32.0")
b7179363
SB
6045 (source (origin
6046 (method url-fetch)
5958df04 6047 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6048 (version-major+minor version) "/"
5958df04 6049 "zenity-" version ".tar.xz"))
b7179363
SB
6050 (sha256
6051 (base32
4f581bd0 6052 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6053 (build-system gnu-build-system)
6054 (native-inputs
b94a6ca0 6055 `(("gettext" ,gettext-minimal)
b7179363
SB
6056 ("itstool" ,itstool)
6057 ("pkg-config" ,pkg-config)))
6058 (inputs
6059 `(("libnotify" ,libnotify)
6060 ("webkitgtk" ,webkitgtk)))
6061 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6062 (home-page "https://www.gnome.org")
b7179363
SB
6063 (description
6064 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6065to display dialog boxes from the commandline and shell scripts.")
6066 (license license:lgpl2.0+)))
60c3627c
SB
6067
6068(define-public mutter
6069 (package
6070 (name "mutter")
edf43f68 6071 (version "3.32.2")
60c3627c 6072 (source (origin
86c44e72
KK
6073 (method url-fetch)
6074 (uri (string-append "mirror://gnome/sources/" name "/"
6075 (version-major+minor version) "/"
6076 name "-" version ".tar.xz"))
60c3627c
SB
6077 (sha256
6078 (base32
edf43f68 6079 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
6080 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6081 ;; versions of cogl and clutter. As a result, many of the inputs,
6082 ;; propagated-inputs, and configure flags used in cogl and clutter are
6083 ;; needed here as well.
edf43f68 6084 (build-system meson-build-system)
60c3627c 6085 (arguments
edf43f68
KK
6086 '(;; XXX: All mutter tests fail with the following error:
6087 ;; Settings schema 'org.gnome.mutter' is not installed
6088 #:tests? #f
6089 #:glib-or-gtk? #t
6090 #:configure-flags
6091 ;; Otherwise, the RUNPATH will lack the final path component.
6092 (list (string-append "-Dc_link_args=-Wl,-rpath="
6093 (assoc-ref %outputs "out") "/lib:"
6094 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
6095
6096 ;; The following flags are needed for the bundled clutter
edf43f68 6097 (string-append "-Dxwayland_path="
d633f2f6
RH
6098 (assoc-ref %build-inputs "xorg-server-xwayland")
6099 "/bin/Xwayland")
6100
a88d5a0c 6101 ;; the remaining flags are needed for the bundled cogl
edf43f68 6102 (string-append "-Dopengl_libname="
a88d5a0c 6103 (assoc-ref %build-inputs "mesa")
f23052a6
DC
6104 "/lib/libGL.so"))
6105 #:phases
6106 (modify-phases %standard-phases
edf43f68
KK
6107 (add-after 'unpack 'disable-werror
6108 (lambda _
6109 ;; XXX: build fails with [-Werror]:
6110 ;; backends/meta-cursor-renderer.c:112:5: error:
6111 ;; implicit declaration of function ?roundf?
6112 (substitute* "meson.build"
6113 (("'-Werror=.*',") ""))
6114 #t))
86c44e72
KK
6115 ;; Replace references to systemd libraries to elogind references.
6116 (add-before 'configure 'use-elogind
6117 (lambda _
edf43f68 6118 (substitute* (list "meson.build"
86c44e72
KK
6119 "src/backends/native/meta-launcher.c"
6120 "src/core/main.c")
6121 (("systemd") "elogind"))
6122 #t)))))
60c3627c
SB
6123 (native-inputs
6124 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6125 ("gobject-introspection" ,gobject-introspection)
6126 ("intltool" ,intltool)
f23052a6 6127 ("pkg-config" ,pkg-config)
edf43f68 6128 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6129 ;; For git build
6130 ("autoconf" ,autoconf)
6131 ("automake" ,automake)
6132 ("libtool" ,libtool)))
60c3627c 6133 (propagated-inputs
a88d5a0c
MW
6134 `(;; libmutter.pc refers to these:
6135 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6136 ("gtk+" ,gtk+)
6137 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6138 ("atk" ,atk)
6139 ("cairo" ,cairo)
6140 ("gdk-pixbuf" ,gdk-pixbuf)
6141 ("glib" ,glib)
a88d5a0c
MW
6142 ("json-glib" ,json-glib)
6143 ("libinput" ,libinput)
6144 ("libx11" ,libx11)
6145 ("libxcomposite" ,libxcomposite)
6146 ("libxdamage" ,libxdamage)
6147 ("libxext" ,libxext)
6148 ("libxfixes" ,libxfixes)
6149 ("libxkbcommon" ,libxkbcommon)
6150 ("libxrandr" ,libxrandr)
6151 ("mesa" ,mesa)
6152 ("pango" ,pango)
6153 ("udev" ,eudev)
a88d5a0c 6154 ("xinput" ,xinput)))
60c3627c 6155 (inputs
86c44e72
KK
6156 `(("elogind" ,elogind)
6157 ("gnome-desktop" ,gnome-desktop)
edf43f68 6158 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6159 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6160 ("libgudev" ,libgudev)
60c3627c
SB
6161 ("libice" ,libice)
6162 ("libsm" ,libsm)
edf43f68 6163 ("libwacom" ,libwacom)
60c3627c 6164 ("libxkbfile" ,libxkbfile)
a88d5a0c 6165 ("libxrandr" ,libxrandr)
86c44e72 6166 ("libxtst" ,libxtst)
edf43f68 6167 ("pipewire" ,pipewire)
60c3627c
SB
6168 ("startup-notification" ,startup-notification)
6169 ("upower-glib" ,upower)
6170 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6171 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6172 ("zenity" ,zenity)))
6173 (synopsis "Window and compositing manager")
f032d0be 6174 (home-page "https://www.gnome.org")
60c3627c
SB
6175 (description
6176 "Mutter is a window and compositing manager that displays and manages your
6177desktop via OpenGL. Mutter combines a sophisticated display engine using the
6178Clutter toolkit with solid window-management logic inherited from the Metacity
6179window manager.")
86c44e72 6180 (license license:gpl2+)))
685cee87
SB
6181
6182(define-public gnome-online-accounts
6183 (package
6184 (name "gnome-online-accounts")
aa200347 6185 (version "3.32.1")
685cee87
SB
6186 (source (origin
6187 (method url-fetch)
6188 (uri (string-append "mirror://gnome/sources/" name "/"
6189 (version-major+minor version) "/"
6190 name "-" version ".tar.xz"))
6191 (sha256
6192 (base32
aa200347 6193 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 6194 (outputs '("out" "lib"))
685cee87 6195 (build-system glib-or-gtk-build-system)
14c297fd
TS
6196 (arguments
6197 `(#:configure-flags
6198 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6199 #:phases
6200 (modify-phases %standard-phases
6201 (add-before 'configure 'patch-libgoa-output
6202 (lambda* (#:key outputs #:allow-other-keys)
6203 (let ((lib (assoc-ref outputs "lib")))
6204 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6205 (("@prefix@") lib)
6206 (("@exec_prefix@") lib)
6207 (("@libdir@") (string-append lib "/lib"))
6208 (("@includedir@") (string-append lib "/include"))
6209 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6210 ;; Make sure gobject-introspection knows about the output
6211 ;; too (see <https://bugs.gnu.org/36535>).
6212 (setenv "outputs" "out lib")
14c297fd 6213 #t))))))
685cee87
SB
6214 (native-inputs
6215 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6216 ("gobject-introspection" ,gobject-introspection)
6217 ("intltool" ,intltool)
6218 ("pkg-config" ,pkg-config)
ebb2873d 6219 ("vala" ,vala)
685cee87
SB
6220 ("xsltproc" ,libxslt)))
6221 (propagated-inputs
6222 `(("glib" ,glib) ; required by goa-1.0.pc
6223 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6224 (inputs
6225 `(("docbook-xsl" ,docbook-xsl)
6226 ("json-glib" ,json-glib)
6227 ("libsecret" ,libsecret)
6228 ("rest" ,rest)
685cee87
SB
6229 ("webkitgtk" ,webkitgtk)))
6230 (synopsis "Single sign-on framework for GNOME")
6231 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6232 (description
6233 "GNOME Online Accounts provides interfaces so that applications and
6234libraries in GNOME can access the user's online accounts. It has providers for
6235Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6236Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6237 (license license:lgpl2.0+)))
df217748
SB
6238
6239(define-public evolution-data-server
6240 (package
6241 (name "evolution-data-server")
2196a8d4 6242 (version "3.32.4")
df217748
SB
6243 (source (origin
6244 (method url-fetch)
6245 (uri (string-append "mirror://gnome/sources/" name "/"
6246 (version-major+minor version) "/"
6247 name "-" version ".tar.xz"))
e1f174ae 6248 (patches (search-patches "evolution-data-server-locales.patch"))
df217748
SB
6249 (sha256
6250 (base32
2196a8d4 6251 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 6252 (build-system cmake-build-system)
df217748 6253 (arguments
b468eedc
RW
6254 '(#:configure-flags
6255 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6256 (runpaths (map (lambda (s)
6257 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6258 '("addressbook-backends" "calendar-backends"
6259 "camel-providers" "credential-modules"
6260 "registry-modules"))))
6261 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6262 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6263 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6264 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6265 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6266 (string-append lib "/evolution-data-server;")
6267 (string-join runpaths ";"))
6268 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6269 #:phases
6270 (modify-phases %standard-phases
b468eedc
RW
6271 (add-after 'unpack 'disable-failing-tests
6272 (lambda _
6273 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6274 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6275 (delete-file-recursively "tests/book-migration")
6276 (substitute* "tests/CMakeLists.txt"
6277 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
6278 ;; tests/libebook/client/test-book-client-view-operations:8077):
6279 ;; e-data-server-WARNING **:
6280 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6281 ;; runtime check failed:
6282 ;; (!g_main_context_pending (closure->main_context))
6283 (substitute* "tests/libebook/client/CMakeLists.txt"
6284 (("test-book-client-view-operations") ""))
b468eedc 6285 #t))
743aebd7 6286 (add-after 'unpack 'patch-paths
df217748 6287 (lambda _
b468eedc
RW
6288 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6289 "tests/libedata-book/data-test-utils.c"
6290 "tests/libedata-book/test-book-cache-utils.c"
6291 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6292 (("/bin/rm") (which "rm")))
ac033c7b
MB
6293 #t))
6294 (add-before 'configure 'dont-override-rpath
6295 (lambda _
6296 (substitute* "CMakeLists.txt"
6297 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6298 ;; Remove it so the configure flag is respected.
6299 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6300 #t)))))
df217748
SB
6301 (native-inputs
6302 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6303 ("gobject-introspection" ,gobject-introspection)
6304 ("gperf" ,gperf)
6305 ("intltool" ,intltool)
6306 ("pkg-config" ,pkg-config)
a73c1cf8 6307 ("vala" ,vala)
743aebd7 6308 ("python" ,python-wrapper)))
df217748
SB
6309 (propagated-inputs
6310 ;; These are all in the Requires field of .pc files.
6311 `(("gtk+" ,gtk+)
6312 ("libical" ,libical)
6313 ("libsecret" ,libsecret)
6314 ("libsoup" ,libsoup)
6315 ("nss" ,nss)
6316 ("sqlite" ,sqlite)))
6317 (inputs
6318 `(("bdb" ,bdb)
6319 ("gcr" ,gcr)
14c297fd 6320 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6321 ("json-glib" ,json-glib)
b468eedc 6322 ("libcanberra" ,libcanberra)
743aebd7
MB
6323 ("libgweather" ,libgweather)
6324 ("mit-krb5" ,mit-krb5)
891199c6
MW
6325 ("openldap" ,openldap)
6326 ("webkitgtk" ,webkitgtk)))
df217748
SB
6327 (synopsis "Store address books and calendars")
6328 (home-page "https://wiki.gnome.org/Apps/Evolution")
6329 (description
6330 "This package provides a unified backend for programs that work with
6331contacts, tasks, and calendar information. It was originally developed for
6332Evolution (hence the name), but is now used by other packages as well.")
6333 (license license:lgpl2.0)))
bd7dfafa
SB
6334
6335(define-public caribou
6336 (package
6337 (name "caribou")
fe964bb5 6338 (version "0.4.21")
bd7dfafa
SB
6339 (source (origin
6340 (method url-fetch)
6341 (uri (string-append "mirror://gnome/sources/" name "/"
6342 (version-major+minor version) "/"
6343 name "-" version ".tar.xz"))
6344 (sha256
6345 (base32
fe964bb5 6346 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6347 (build-system glib-or-gtk-build-system)
6348 (arguments
6349 '(#:phases
6350 (modify-phases %standard-phases
6351 (add-before
6352 'build 'pre-build
6353 (lambda* (#:key outputs #:allow-other-keys)
6354 (let ((out (assoc-ref outputs "out")))
6355 ;; Use absolute shared library path in Caribou-1.0.typelib.
6356 (substitute* "libcaribou/Makefile"
6357 (("--shared-library=libcaribou.so")
6358 (string-append "--shared-library="
6359 out "/lib/libcaribou.so")))
6360 #t)))
6361 (add-after 'install 'wrap-programs
6362 (lambda* (#:key outputs #:allow-other-keys)
6363 (let* ((out (assoc-ref outputs "out"))
6364 (python-path (getenv "PYTHONPATH"))
6365 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6366 (for-each
6367 (lambda (prog)
6368 (wrap-program prog
6369 `("PYTHONPATH" ":" prefix (,python-path))
6370 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6371 (list (string-append out "/bin/caribou-preferences")
6372 (string-append out "/libexec/antler-keyboard"))))
6373 #t)))))
6374 (native-inputs
6375 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6376 ("gobject-introspection" ,gobject-introspection)
6377 ("intltool" ,intltool)
6378 ("pkg-config" ,pkg-config)
6379 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
6380 ("vala" ,vala)
6381 ("xsltproc" ,libxslt)))
6382 (propagated-inputs
6383 ;; caribou-1.0.pc refers to all these.
6384 `(("libgee" ,libgee)
6385 ("libxklavier" ,libxklavier)
6386 ("libxtst" ,libxtst)
6387 ("gtk+" ,gtk+)))
6388 (inputs
6389 `(("clutter" ,clutter)
6390 ("dconf" ,dconf)
6391 ("gtk+-2" ,gtk+-2)
6392 ("python-pygobject" ,python2-pygobject)))
6393 (synopsis "Text entry and UI navigation application")
6394 (home-page "https://wiki.gnome.org/Projects/Caribou")
6395 (description
6396 "Caribou is an input assistive technology intended for switch and pointer
6397users.")
6398 (license license:lgpl2.1)))
ba5dd105 6399
ba5dd105
SB
6400(define-public network-manager
6401 (package
6402 (name "network-manager")
6425d87a 6403 (version "1.18.4")
ba5dd105
SB
6404 (source (origin
6405 (method url-fetch)
6406 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6407 (version-major+minor version) "/"
6408 "NetworkManager-" version ".tar.xz"))
7d1861e2 6409 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6410 (sha256
6411 (base32
6425d87a 6412 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 6413 (modules '((guix build utils)))
fd070f35 6414 (snippet
02710a9b
RW
6415 '(begin
6416 (substitute* "src/devices/wwan/nm-modem-manager.c"
6417 (("systemd") "elogind"))
6418 #t))))
ba5dd105
SB
6419 (build-system gnu-build-system)
6420 (outputs '("out"
6421 "doc")) ; 8 MiB of gtk-doc HTML
6422 (arguments
6423 '(#:configure-flags
6424 (let ((out (assoc-ref %outputs "out"))
6425 (doc (assoc-ref %outputs "doc"))
6426 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6427 "/sbin/dhclient")))
02710a9b
RW
6428 (list "--with-libnm-glib" ; needed by network-manager-applet
6429 "--with-systemd-journal=no"
6430 "--with-session-tracking=elogind"
6431 "--with-suspend-resume=elogind"
fd070f35
CM
6432 "--with-consolekit=no"
6433 "--with-crypto=gnutls"
ba5dd105
SB
6434 "--disable-config-plugin-ibft"
6435 "--sysconfdir=/etc"
6436 "--localstatedir=/var"
6437 (string-append "--with-udev-dir="
6438 out "/lib/udev")
6439 (string-append "--with-dbus-sys-dir="
6440 out "/etc/dbus-1/system.d")
6441 (string-append "--with-html-dir="
6442 doc "/share/gtk-doc/html")
6443 (string-append "--with-dhclient=" dhclient)))
6444 #:phases
6445 (modify-phases %standard-phases
02710a9b
RW
6446 ;; This bare "ls" invocation breaks some tests.
6447 (add-after 'unpack 'patch-ls-invocation
6448 (lambda _
6449 (substitute* "build-aux/ltmain.sh"
6450 (("`ls -")
6451 (string-append "`" (which "ls") " -")))
6452 #t))
b4f59d87
AW
6453 (add-before 'configure 'pre-configure
6454 (lambda _
6455 ;; These tests try to test aspects of network-manager's
6456 ;; functionality within restricted containers, but they don't
6457 ;; cope with being already in the Guix build jail as that jail
6458 ;; lacks some features that they would like to proxy over (like
6459 ;; a /sys mount).
d04687dc
HG
6460 (substitute* '("Makefile.in")
6461 (("src/platform/tests/test-address-linux") " ")
6462 (("src/platform/tests/test-cleanup-linux") " ")
6463 (("src/platform/tests/test-link-linux") " ")
6464 (("src/platform/tests/test-route-linux") " ")
02710a9b 6465 (("src/devices/tests/test-acd") "")
d04687dc
HG
6466 (("src/devices/tests/test-arping") " ")
6467 (("src/devices/tests/test-lldp") " ")
6468 (("src/tests/test-route-manager-linux") " "))
b4f59d87 6469 #t))
45f80fce
RW
6470 (add-after 'unpack 'delete-failing-tests
6471 (lambda _
02710a9b 6472 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
6473 ;; ERROR:libnm-core/tests/test-general.c:5842:
6474 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6475 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6476 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6477 ;; ERROR:libnm-core/tests/test-setting.c:907:
6478 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
6479 (substitute* "Makefile.in"
6480 (("libnm-core/tests/test-general") " ")
6481 (("libnm-core/tests/test-keyfile") " ")
02710a9b 6482 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 6483 #t))
ba5dd105
SB
6484 (add-before 'check 'pre-check
6485 (lambda _
6486 ;; For the missing /etc/machine-id.
6487 (setenv "DBUS_FATAL_WARNINGS" "0")
6488 #t))
6489 (replace 'install
6490 (lambda _
45f80fce
RW
6491 (invoke "make"
6492 "sysconfdir=/tmp"
6493 "rundir=/tmp"
6494 "statedir=/tmp"
6495 "nmstatedir=/tmp/nm"
6496 "install")
6497 #t)))))
b93502d6
DC
6498 (propagated-inputs
6499 `(("glib" ,glib)))
ba5dd105
SB
6500 (native-inputs
6501 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6502 ("gobject-introspection" ,gobject-introspection)
d04687dc 6503 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6504 ("intltool" ,intltool)
d04687dc
HG
6505 ("libxslt" ,libxslt)
6506 ("libxml2" ,libxml2)
ba5dd105
SB
6507 ("pkg-config" ,pkg-config)
6508 ;; For testing.
6509 ("python" ,python-wrapper)
6510 ("python-dbus" ,python-dbus)
6511 ("python-pygobject" ,python-pygobject)))
6512 (inputs
02710a9b
RW
6513 `(("coreutils" ,coreutils) ; for ls
6514 ("curl" ,curl)
856ca567
KK
6515 ("cyrus-sasl" ,cyrus-sasl)
6516 ("dbus-glib" ,dbus-glib)
ba5dd105 6517 ("dnsmasq" ,dnsmasq)
856ca567 6518 ("eudev" ,eudev)
ba5dd105
SB
6519 ("gnutls" ,gnutls)
6520 ("iptables" ,iptables)
6521 ("isc-dhcp" ,isc-dhcp)
d04687dc 6522 ("jansson" ,jansson)
ba5dd105
SB
6523 ("libgcrypt" ,libgcrypt)
6524 ("libgudev" ,libgudev)
6525 ("libndp" ,libndp)
6526 ("libnl" ,libnl)
6527 ("libsoup" ,libsoup)
142bdcbc 6528 ("modem-manager" ,modem-manager)
c27e02bf 6529 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6530 ("polkit" ,polkit)
6531 ("ppp" ,ppp)
6532 ("readline" ,readline)
fd070f35
CM
6533 ("util-linux" ,util-linux)
6534 ("elogind" ,elogind)))
ba5dd105 6535 (synopsis "Network connection manager")
f032d0be 6536 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6537 (description
6538 "NetworkManager is a system network service that manages your network
6539devices and connections, attempting to keep active network connectivity when
6540available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6541devices, and provides VPN integration with a variety of different VPN
6542services.")
29d2f451
LC
6543 (license license:gpl2+)
6544 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6545
f2b96b3a
LC
6546(define-public network-manager-openvpn
6547 (package
6548 (name "network-manager-openvpn")
be1c4b07 6549 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6550 (version "1.8.10")
f2b96b3a
LC
6551 (source (origin
6552 (method url-fetch)
6553 (uri (string-append
6554 "mirror://gnome/sources/NetworkManager-openvpn/"
6555 (version-major+minor version)
6556 "/NetworkManager-openvpn-" version ".tar.xz"))
6557 (sha256
6558 (base32
7d87eede 6559 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6560 (build-system gnu-build-system)
6561 (arguments
633422b0
JL
6562 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6563 #:phases
6564 (modify-phases %standard-phases
6565 (add-after 'configure 'patch-path
6566 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6567 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6568 "/sbin/openvpn"))
6569 (modprobe (string-append (assoc-ref inputs "kmod")
6570 "/bin/modprobe"))
6571 (pretty-ovpn (string-append "\"" ovpn "\"")))
6572 (for-each
6573 (lambda (file)
6574 (substitute* file
6575 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6576 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6577 (("\"/sbin/openvpn\"") pretty-ovpn)
6578 (("/sbin/modprobe") modprobe)))
6579 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6580 #t)))))
f2b96b3a
LC
6581 (native-inputs
6582 `(("pkg-config" ,pkg-config)
6583 ("intltool" ,intltool)))
6584 (inputs
6585 `(("gtk+" ,gtk+)
633422b0 6586 ("kmod" ,kmod)
f2b96b3a
LC
6587 ("openvpn" ,openvpn)
6588 ("network-manager" ,network-manager)
6589 ("network-manager-applet" ,network-manager-applet) ;for libnma
6590 ("libsecret" ,libsecret)))
6591 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6592 (synopsis "OpenVPN plug-in for NetworkManager")
6593 (description
6594 "This extension of NetworkManager allows it to take care of connections
6595to virtual private networks (VPNs) via OpenVPN.")
6596 (license license:gpl2+)
6597 (properties `((upstream-name . "NetworkManager-openvpn")))))
6598
d376129f
JL
6599(define-public network-manager-vpnc
6600 (package
6601 (name "network-manager-vpnc")
6602 (version "1.2.6")
6603 (source (origin
6604 (method url-fetch)
6605 (uri (string-append
6606 "mirror://gnome/sources/NetworkManager-vpnc/"
6607 (version-major+minor version)
6608 "/NetworkManager-vpnc-" version ".tar.xz"))
6609 (sha256
6610 (base32
6611 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6612 (build-system gnu-build-system)
6613 (arguments
6614 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6615 #:phases
6616 (modify-phases %standard-phases
6617 (add-after 'configure 'patch-path
6618 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6619 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6620 "/sbin/vpnc"))
6621 (modprobe (string-append (assoc-ref inputs "kmod")
6622 "/bin/modprobe"))
6623 (pretty-ovpn (string-append "\"" vpnc "\"")))
6624 (substitute* "src/nm-vpnc-service.c"
6625 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6626 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6627 (("\"/sbin/vpnc\"") pretty-ovpn)
6628 (("/sbin/modprobe") modprobe)))
6629 #t)))))
6630 (native-inputs
6631 `(("pkg-config" ,pkg-config)
6632 ("intltool" ,intltool)))
6633 (inputs
6634 `(("gtk+" ,gtk+)
6635 ("kmod" ,kmod)
6636 ("vpnc" ,vpnc)
6637 ("network-manager" ,network-manager)
6638 ("network-manager-applet" ,network-manager-applet) ;for libnma
6639 ("libsecret" ,libsecret)))
6640 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6641 (synopsis "VPNC plug-in for NetworkManager")
6642 (description
6643 "Support for configuring virtual private networks based on VPNC.
6644Compatible with Cisco VPN concentrators configured to use IPsec.")
6645 (license license:gpl2+)
6646 (properties `((upstream-name . "NetworkManager-vpnc")))))
6647
8378c87a
EF
6648(define-public network-manager-openconnect
6649 (package
6650 (name "network-manager-openconnect")
6651 (version "1.2.6")
6652 (source (origin
6653 (method url-fetch)
6654 (uri (string-append
6655 "mirror://gnome/sources/NetworkManager-openconnect/"
6656 (version-major+minor version)
6657 "/NetworkManager-openconnect-" version ".tar.xz"))
6658 (sha256
6659 (base32
6660 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6661 (build-system gnu-build-system)
6662 (arguments
6663 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6664 #:phases
6665 (modify-phases %standard-phases
6666 (add-after 'configure 'patch-path
6667 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6668 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6669 "/sbin/openconnect"))
6670 (modprobe (string-append (assoc-ref inputs "kmod")
6671 "/bin/modprobe"))
6672 (pretty-ovpn (string-append "\"" openconnect "\"")))
6673 (substitute* "src/nm-openconnect-service.c"
6674 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6675 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6676 (("/sbin/modprobe") modprobe)))
6677 #t)))))
6678 (native-inputs
6679 `(("intltool" ,intltool)
6680 ("network-manager-applet" ,network-manager-applet) ;for libnma
6681 ("pkg-config" ,pkg-config)))
6682 (inputs
6683 `(("gcr" ,gcr)
6684 ("gtk+" ,gtk+)
6685 ("kmod" ,kmod)
6686 ("libsecret" ,libsecret)
6687 ("libxml2" ,libxml2)
6688 ("network-manager" ,network-manager)
6689 ("openconnect" ,openconnect)))
6690 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6691 (synopsis "OpenConnect plug-in for NetworkManager")
6692 (description
6693 "This extension of NetworkManager allows it to take care of connections
6694to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6695Cisco's AnyConnect SSL VPN.")
6696 (license license:gpl2+)
e52b9534
LC
6697 (properties `((upstream-name . "NetworkManager-openconnect")
6698
6699 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6700 ;; file refers to account "nm-openconnect". Specify it here
6701 ;; so that 'network-manager-service-type' creates it.
6702 (user-accounts . ("nm-openconnect"))))))
8378c87a 6703
e5e1df4d
DC
6704(define-public mobile-broadband-provider-info
6705 (package
6706 (name "mobile-broadband-provider-info")
310c89e3 6707 (version "20190116")
e5e1df4d
DC
6708 (source (origin
6709 (method url-fetch)
6710 (uri (string-append
6711 "mirror://gnome/sources/"
6712 "mobile-broadband-provider-info/" version "/"
6713 "mobile-broadband-provider-info-" version ".tar.xz"))
6714 (sha256
6715 (base32
310c89e3 6716 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6717 (build-system gnu-build-system)
6718 (arguments
310c89e3 6719 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6720 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6721 (synopsis "Database of broadband connection configuration")
6722 (description "Database of broadband connection configuration.")
6723 (license license:public-domain)))
6724
4d62a9d3
SB
6725(define-public network-manager-applet
6726 (package
6727 (name "network-manager-applet")
8fc3a337 6728 (version "1.8.24")
4d62a9d3
SB
6729 (source (origin
6730 (method url-fetch)
3df63444 6731 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6732 (version-major+minor version) "/"
3df63444 6733 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6734 (sha256
6735 (base32
8fc3a337 6736 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6737 (build-system meson-build-system)
6738 (arguments
be1c4b07
TGR
6739 '(#:configure-flags
6740 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6741 (list "-Dlibnm_gtk=true")
6742 #:glib-or-gtk? #t))
4d62a9d3
SB
6743 (native-inputs
6744 `(("intltool" ,intltool)
cd7f718e 6745 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6746 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6747 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6748 ("pkg-config" ,pkg-config)))
6749 (propagated-inputs
6750 ;; libnm-gtk.pc refers to all these.
6751 `(("dbus-glib" ,dbus-glib)
6752 ("gtk+" ,gtk+)
6753 ("network-manager" ,network-manager)))
6754 (inputs
cd7f718e
RW
6755 `(("gcr" ,gcr)
6756 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6757 ("libgudev" ,libgudev)
6758 ("libnotify" ,libnotify)
2116bfb3 6759 ("libsecret" ,libsecret)
240cee8a
KK
6760 ("libselinux" ,libselinux)
6761 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6762 ("modem-manager" ,modem-manager)
6763 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6764 (synopsis "Applet for managing network connections")
f032d0be 6765 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6766 (description
6767 "This package contains a systray applet for NetworkManager. It displays
6768the available networks and allows users to easily switch between them.")
6769 (license license:gpl2+)))
56196594
RW
6770
6771(define-public libxml++
6772 (package
6773 (name "libxml++")
8344a85e 6774 (version "3.0.1")
56196594
RW
6775 (source (origin
6776 (method url-fetch)
6777 (uri (string-append "mirror://gnome/sources/" name "/"
6778 (version-major+minor version) "/"
6779 name "-" version ".tar.xz"))
6780 (sha256
6781 (base32
8344a85e 6782 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6783 (build-system gnu-build-system)
6784 ;; libxml++-3.0.pc refers to all these.
6785 (propagated-inputs
6786 `(("libxml2" ,libxml2)
6787 ("glibmm" ,glibmm)))
6788 (native-inputs
6789 `(("perl" ,perl)
6790 ("pkg-config" ,pkg-config)))
6791 (home-page "http://libxmlplusplus.sourceforge.net/")
6792 (synopsis "C++ wrapper for XML parser library libxml2")
6793 (description
6794 "This package provides a C++ wrapper for the XML parser library
6795libxml2.")
6796 (license license:lgpl2.1+)))
df12f04a 6797
b61d9627
AW
6798(define-public libxml++-2
6799 (package
6800 (inherit libxml++)
6801 (name "libxml++")
6802 (version "2.40.1")
6803 (source (origin
6804 (method url-fetch)
6805 (uri (string-append "mirror://gnome/sources/" name "/"
6806 (version-major+minor version) "/"
6807 name "-" version ".tar.xz"))
6808 (sha256
6809 (base32
6810 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6811
df12f04a
SB
6812(define-public gdm
6813 (package
6814 (name "gdm")
bcca95dc 6815 (version "3.32.0")
df12f04a
SB
6816 (source (origin
6817 (method url-fetch)
6818 (uri (string-append "mirror://gnome/sources/" name "/"
6819 (version-major+minor version) "/"
6820 name "-" version ".tar.xz"))
6821 (sha256
6822 (base32
bcca95dc 6823 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6824 (build-system glib-or-gtk-build-system)
df12f04a
SB
6825 (arguments
6826 '(#:configure-flags
af37e6bb 6827 `("--without-plymouth"
957dbc0a 6828 "--disable-systemd-journal"
51bc8357
TS
6829
6830 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6831 ;; instead of having to replace it (i.e., stopping the mingetty
6832 ;; service for TTY 1 before starting GDM).
6833 "--with-initial-vt=7"
6834
89c86562
TS
6835 ;; Use '/etc/environment' for locale settings instead of the
6836 ;; systemd-specific '/etc/locale.conf'.
6837 "--with-lang-file=/etc/environment"
6838
b74ef0ba
RW
6839 ,(string-append "--with-udevdir="
6840 (assoc-ref %outputs "out") "/lib/udev")
6841
af37e6bb
AW
6842 "--localstatedir=/var"
6843 ,(string-append "--with-default-path="
6844 (string-join '("/run/setuid-programs"
6845 "/run/current-system/profile/bin"
6846 "/run/current-system/profile/sbin")
957dbc0a
AW
6847 ":"))
6848 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6849 ;; XDG_DATA_DIRS so that it finds its schemas.
6850 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6851 #:phases
6852 (modify-phases %standard-phases
6853 (add-before
6854 'configure 'pre-configure
e8c6e771 6855 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6856 ;; We don't have <systemd/sd-daemon.h>.
6857 (substitute* '("common/gdm-log.c"
6858 "daemon/gdm-server.c"
6859 "daemon/gdm-session-worker.c"
6860 "daemon/gdm-session-worker-job.c")
6861 (("#include <systemd/sd-daemon\\.h>") ""))
6862 ;; Use elogind for sd-login.
6863 (substitute* '("common/gdm-common.c"
6864 "daemon/gdm-manager.c"
6865 "libgdm/gdm-user-switching.c")
6866 (("#include <systemd/sd-login\\.h>")
6867 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6868 ;; Check for elogind.
6869 (substitute* '("configure")
6870 (("libsystemd")
6871 "libelogind"))
af37e6bb
AW
6872 ;; Look for system-installed sessions in
6873 ;; /run/current-system/profile/share.
6874 (substitute* '("libgdm/gdm-sessions.c"
6875 "daemon/gdm-session.c"
6876 "daemon/gdm-display.c"
6877 "daemon/gdm-launch-environment.c")
6878 (("DATADIR \"/x")
6879 "\"/run/current-system/profile/share/x")
6880 (("DATADIR \"/wayland")
6881 "\"/run/current-system/profile/share/wayland")
6882 (("DATADIR \"/gnome")
6883 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6884 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6885 "GDM_DBUS_DAEMON"
c9ff92b5 6886 "GDM_X_SERVER"
41fa9f18 6887 "GDM_X_SESSION"
c9ff92b5
TS
6888 ;; XXX: Remove this once GNOME Shell is
6889 ;; a dependency of GDM.
6890 "XDG_DATA_DIRS")))
6891 (substitute* "daemon/gdm-session.c"
6892 (("set_up_session_environment \\(self\\);")
6893 (apply string-append
6894 "set_up_session_environment (self);\n"
6895 (map (lambda (name)
6896 (string-append
6897 "gdm_session_set_environment_variable "
6898 "(self, \"" name "\","
6899 "g_getenv (\"" name "\"));\n"))
6900 propagate)))))
a430a350
TS
6901 ;; Find the configuration file using an environment variable.
6902 (substitute* '("common/gdm-settings.c")
e0e6756f 6903 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6904 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6905 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6906 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6907 ;; Use service-supplied path to X.
6908 (substitute* '("daemon/gdm-server.c")
6909 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6910 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6911 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6912 (("\"dbus-daemon\"")
6913 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6914 (("X_SERVER")
41fa9f18
TS
6915 "g_getenv (\"GDM_X_SERVER\")")
6916 (("GDMCONFDIR \"/Xsession\"")
6917 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6918 ;; Use an absolute path for GNOME Session.
6919 (substitute* "daemon/gdm-launch-environment.c"
6920 (("\"gnome-session\"")
6921 (string-append "\"" (assoc-ref inputs "gnome-session")
6922 "/bin/gnome-session\"")))
e8c6e771
TS
6923 ;; Do not automatically select the placeholder session.
6924 (substitute* "daemon/gdm-session.c"
6925 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6926 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6927 "(g_strcmp0(search_dirs[i], \""
6928 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6929 "\") == 0 && "
6930 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6931 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6932 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6933 #t))
8caa4589
TS
6934 ;; GDM requires that there be at least one desktop entry
6935 ;; file. This phase installs a hidden one that simply
6936 ;; fails. This enables users to use GDM with a
6937 ;; '~/.xsession' script with no other desktop entry files.
6938 ;; See <https://bugs.gnu.org/35068>.
6939 (add-after 'install 'install-placeholder-desktop-entry
6940 (lambda* (#:key inputs outputs #:allow-other-keys)
6941 (let* ((out (assoc-ref outputs "out"))
6942 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6943 (fail (string-append sessions "/fail.desktop")))
6944 (mkdir-p sessions)
6945 (with-output-to-file fail
6946 (lambda ()
6947 (for-each
6948 display
6949 '("[Desktop Entry]\n"
6950 "Encoding=UTF-8\n"
6951 "Type=Application\n"
6952 "Name=Fail\n"
6953 "Comment=This session fails immediately.\n"
6954 "NoDisplay=true\n"
6955 "Exec=false\n"))))
6956 #t)))
69544798
TS
6957 ;; GDM needs GNOME Session to run these applications. We link
6958 ;; their autostart files in `share/gdm/greeter/autostart'
6959 ;; because GDM explicitly tells GNOME Session to look there.
6960 ;;
6961 ;; XXX: GNOME Shell should be linked here too, but currently
6962 ;; GNOME Shell depends on GDM.
6963 (add-after 'install 'link-autostart-files
6964 (lambda* (#:key inputs outputs #:allow-other-keys)
6965 (let* ((out (assoc-ref outputs "out"))
6966 (autostart (string-append out "/share/gdm/"
6967 "greeter/autostart"))
6968 (settings (assoc-ref inputs "gnome-settings-daemon")))
6969 (mkdir-p autostart)
6970 (with-directory-excursion autostart
6971 (for-each (lambda (desktop)
6972 (symlink desktop (basename desktop)))
6973 (find-files (string-append settings "/etc/xdg"))))
6974 #t))))))
df12f04a
SB
6975 (native-inputs
6976 `(("dconf" ,dconf)
6977 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6978 ("gobject-introspection" ,gobject-introspection)
6979 ("intltool" ,intltool)
6980 ("itstool" ,itstool)
6981 ("pkg-config" ,pkg-config)
6982 ("xmllint" ,libxml2)))
6983 (inputs
6984 `(("accountsservice" ,accountsservice)
6985 ("check" ,check) ; for testing
6986 ("elogind" ,elogind)
def6d6b6 6987 ("gnome-session" ,gnome-session)
69544798 6988 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6989 ("gtk+" ,gtk+)
6990 ("iso-codes" ,iso-codes)
6991 ("libcanberra" ,libcanberra)
6992 ("linux-pam" ,linux-pam)))
6993 (synopsis "Display manager for GNOME")
f032d0be 6994 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6995 (description
6996 "GNOME Display Manager is a system service that is responsible for
6997providing graphical log-ins and managing local and remote displays.")
6998 (license license:gpl2+)))
8e1dd04f
SB
6999
7000(define-public libgtop
7001 (package
7002 (name "libgtop")
015fc036 7003 (version "2.40.0")
8e1dd04f
SB
7004 (source (origin
7005 (method url-fetch)
59487fc2 7006 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7007 (version-major+minor version) "/"
59487fc2 7008 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7009 (sha256
7010 (base32
015fc036 7011 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7012 (build-system gnu-build-system)
7013 (native-inputs
7014 `(("gobject-introspection" ,gobject-introspection)
7015 ("intltool" ,intltool)
7016 ("perl" ,perl)
7017 ("pkg-config" ,pkg-config)))
7018 (propagated-inputs
7019 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7020 (synopsis "Portable system access library")
7021 (home-page "https://www.gnome.org/")
7022 (description
7023 "LibGTop is a library to get system specific data such as CPU and memory
7024usage and information about running processes.")
7025 (license license:gpl2+)))
b96c4260
SB
7026
7027(define-public gnome-bluetooth
7028 (package
7029 (name "gnome-bluetooth")
723afae6 7030 (version "3.32.1")
b96c4260
SB
7031 (source (origin
7032 (method url-fetch)
7033 (uri (string-append "mirror://gnome/sources/" name "/"
7034 (version-major+minor version) "/"
7035 name "-" version ".tar.xz"))
7036 (sha256
7037 (base32
723afae6 7038 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 7039 (build-system meson-build-system)
b96c4260
SB
7040 (native-inputs
7041 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7042 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7043 ("gobject-introspection" ,gobject-introspection)
7044 ("intltool" ,intltool)
7045 ("pkg-config" ,pkg-config)
7046 ("xmllint" ,libxml2)))
7047 (propagated-inputs
7048 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7049 `(("glib" ,glib)
7050 ("gtk+" ,gtk+)))
b96c4260 7051 (inputs
723afae6
KK
7052 `(("eudev" ,eudev)
7053 ("libcanberra" ,libcanberra)
b96c4260
SB
7054 ("libnotify" ,libnotify)))
7055 (synopsis "GNOME Bluetooth subsystem")
7056 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7057 (description
7058 "This package contains tools for managing and manipulating Bluetooth
7059devices using the GNOME desktop.")
7060 (license license:lgpl2.1+)))
b645146f
SB
7061
7062(define-public gnome-control-center
7063 (package
7064 (name "gnome-control-center")
a6938bac 7065 (version "3.32.2")
b645146f
SB
7066 (source (origin
7067 (method url-fetch)
7068 (uri (string-append "mirror://gnome/sources/" name "/"
7069 (version-major+minor version) "/"
7070 name "-" version ".tar.xz"))
7071 (sha256
7072 (base32
a6938bac 7073 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 7074 (build-system meson-build-system)
b645146f 7075 (arguments
59dac026
RW
7076 '(#:glib-or-gtk? #t
7077 #:configure-flags
64c70430
KK
7078 (list "-Dcheese=false"
7079 (string-append "-Dgnome_session_libexecdir="
7080 (assoc-ref %build-inputs "gnome-session")
7081 "/libexec"))
59dac026 7082 #:phases
b645146f
SB
7083 (modify-phases %standard-phases
7084 (add-before 'configure 'patch-paths
7085 (lambda* (#:key inputs #:allow-other-keys)
7086 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7087 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7088 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7089 (nm-applet (assoc-ref inputs "network-manager-applet"))
7090 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7091 (substitute* "panels/datetime/tz.h"
7092 (("/usr/share/zoneinfo/zone.tab")
7093 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7094 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7095 (("/usr/share/locale")
7096 (string-append libc "/share/locale")))
1df38cfc
LC
7097 (substitute* "panels/region/cc-region-panel.c"
7098 (("\"gkbd-keyboard-display")
7099 (string-append "\"" libgnomekbd
7100 "/bin/gkbd-keyboard-display")))
341225ac
LC
7101 (substitute* '("panels/network/net-device-wifi.c"
7102 "panels/network/net-device.c"
7103 "panels/network/connection-editor/net-connection-editor.c")
7104 (("\"nm-connection-editor")
7105 (string-append "\"" nm-applet
7106 "/bin/nm-connection-editor")))
1acd107c
FP
7107 (substitute* '("panels/user-accounts/run-passwd.c")
7108 (("/usr/bin/passwd")
7109 "/run/setuid-programs/passwd"))
64c70430
KK
7110 (substitute* "panels/info/cc-info-overview-panel.c"
7111 (("DATADIR \"/gnome/gnome-version.xml\"")
7112 (string-append "\"" gnome-desktop
7113 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
7114 #t))))))
7115 (native-inputs
7116 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 7117 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
7118 ("intltool" ,intltool)
7119 ("pkg-config" ,pkg-config)
a6938bac
KK
7120 ("xsltproc" ,libxslt)
7121 ;; For tests
7122 ("hicolor-icon-theme" ,hicolor-icon-theme)
7123 ("python-dbusmock" ,python-dbusmock)
7124 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7125 (inputs
7126 `(("accountsservice" ,accountsservice)
7127 ("clutter-gtk" ,clutter-gtk)
7128 ("colord-gtk" ,colord-gtk)
7129 ("cups" ,cups)
7130 ("dconf" ,dconf)
7131 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7132 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7133 ("gnome-bluetooth" ,gnome-bluetooth)
7134 ("gnome-desktop" ,gnome-desktop)
7135 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7136 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7137 ("gnome-session" ,gnome-session)
b645146f
SB
7138 ("gnome-settings-daemon" ,gnome-settings-daemon)
7139 ("grilo" ,grilo)
a6938bac 7140 ("gsound" ,gsound)
b645146f
SB
7141 ("ibus" ,ibus)
7142 ("libcanberra" ,libcanberra)
1df38cfc 7143 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7144 ("libgudev" ,libgudev)
7145 ("libgtop" ,libgtop)
7146 ("libpwquality" ,libpwquality)
982c0b36 7147 ("libsecret" ,libsecret)
b645146f
SB
7148 ("libsoup" ,libsoup)
7149 ("libxml2" ,libxml2)
7150 ("libwacom" ,libwacom)
7151 ("mesa" ,mesa)
7152 ("mit-krb5" ,mit-krb5)
7153 ("modem-manager" ,modem-manager)
7154 ("network-manager-applet" ,network-manager-applet)
7155 ("polkit" ,polkit)
7156 ("pulseaudio" ,pulseaudio)
7157 ("smbclient" ,samba)
7158 ("tzdata" ,tzdata)
982c0b36 7159 ("udisks" ,udisks)
b645146f
SB
7160 ("upower" ,upower)))
7161 (synopsis "Utilities to configure the GNOME desktop")
7162 (home-page "https://www.gnome.org/")
7163 (description
7164 "This package contains configuration applets for the GNOME desktop,
7165allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7166properties, sound setup, desktop theme and background, user interface
7167properties, screen resolution, and other GNOME parameters.")
7168 (license license:gpl2+)))
a4df5756
SB
7169
7170(define-public gnome-shell
7171 (package
7172 (name "gnome-shell")
d5e615ca 7173 (version "3.32.2")
a4df5756
SB
7174 (source (origin
7175 (method url-fetch)
7176 (uri (string-append "mirror://gnome/sources/" name "/"
7177 (version-major+minor version) "/"
7178 name "-" version ".tar.xz"))
7179 (sha256
7180 (base32
d5e615ca 7181 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
7182 (patches (search-patches "gnome-shell-theme.patch"))
7183 (modules '((guix build utils)))
7184 (snippet
7185 #~(begin
a76d0f03
LC
7186 ;; Copy images for use on the GDM log-in screen.
7187 (copy-file #$(file-append %artwork-repository
7188 "/slim/0.x/background.png")
7189 "data/theme/guix-background.png")
45fef894
LC
7190 (copy-file #$(file-append %artwork-repository
7191 "/logo/Guix-horizontal-white.svg")
7192 "data/theme/guix-logo.svg")
a76d0f03 7193 #t))))
2b0c755d 7194 (build-system meson-build-system)
a4df5756 7195 (arguments
08185081
MB
7196 `(#:glib-or-gtk? #t
7197 #:disallowed-references ((,glib "bin")
11e1df56
LC
7198 ,inkscape ,libxslt
7199 ,ruby-sass)
2b0c755d
RW
7200 #:configure-flags
7201 (list "-Dsystemd=false"
7202 ;; Otherwise, the RUNPATH will lack the final path component.
7203 (string-append "-Dc_link_args=-Wl,-rpath="
7204 (assoc-ref %outputs "out")
7205 "/lib/gnome-shell"))
11e1df56 7206
08185081 7207 #:modules ((guix build meson-build-system)
11e1df56
LC
7208 (guix build utils)
7209 (srfi srfi-1))
7210
2b0c755d 7211 #:phases
a4df5756 7212 (modify-phases %standard-phases
2b0c755d 7213 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7214 (lambda* (#:key outputs #:allow-other-keys)
7215 (let* ((out (assoc-ref outputs "out"))
7216 (keysdir (string-append
7217 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7218 (substitute* "meson.build"
7219 (("keysdir =.*")
7220 (string-append "keysdir = '" keysdir "'\n")))
7221 #t)))
ebfe259f
MB
7222 (add-before 'configure 'convert-logo-to-png
7223 (lambda* (#:key inputs #:allow-other-keys)
7224 ;; Convert the logo from SVG to PNG.
7225 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7226 "data/theme/guix-logo.svg")))
ba00235a 7227 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7228 (lambda* (#:key inputs #:allow-other-keys)
7229 (substitute* "js/misc/ibusManager.js"
7230 (("'ibus-daemon'")
7231 (string-append "'" (assoc-ref inputs "ibus")
7232 "/bin/ibus-daemon'")))
d6fda4d3
LC
7233 (substitute* "js/ui/status/keyboard.js"
7234 (("'gkbd-keyboard-display'")
7235 (string-append "'" (assoc-ref inputs "libgnomekbd")
7236 "/bin/gkbd-keyboard-display'")))
2472cdec 7237 #t))
2b0c755d
RW
7238 (add-before 'check 'pre-check
7239 (lambda* (#:key inputs #:allow-other-keys)
7240 ;; Tests require a running X server.
7241 (system "Xvfb :1 &")
7242 (setenv "DISPLAY" ":1")
7243 #t))
7244 (add-after 'install 'wrap-programs
7245 (lambda* (#:key inputs outputs #:allow-other-keys)
7246 (let ((out (assoc-ref outputs "out"))
7247 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7248 (python-path (getenv "PYTHONPATH")))
7249 (wrap-program (string-append out "/bin/gnome-shell")
7250 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7251 ;; FIXME: gnome-shell loads these libraries with unqualified
7252 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7253 ;; alternative might be to patch gnome-shell.
7254 `("LD_LIBRARY_PATH" ":" prefix
7255 ,(map (lambda (pkg)
7256 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7257 '("gdk-pixbuf"
7258 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7259 (for-each
7260 (lambda (prog)
7261 (wrap-program (string-append out "/bin/" prog)
7262 `("PYTHONPATH" ":" prefix (,python-path))
7263 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7264 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7265 #t)))
11e1df56
LC
7266 (replace 'glib-or-gtk-wrap
7267 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7268 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7269 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7270 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7271 ;; phase. Fix that since we don't need these.
7272 (wrap #:inputs (fold alist-delete inputs
7273 '("inkscape" "intltool" "glib:bin"))
7274 #:outputs outputs)))))))
a4df5756
SB
7275 (native-inputs
7276 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7277 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7278 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7279 ("inkscape" ,inkscape)
a4df5756
SB
7280 ("intltool" ,intltool)
7281 ("pkg-config" ,pkg-config)
7282 ("python" ,python)
2b0c755d
RW
7283 ("ruby-sass" ,ruby-sass)
7284 ("sassc" ,sassc)
a76d0f03 7285 ("xsltproc" ,libxslt)
2b0c755d 7286 ;; For tests
0b4504f6 7287 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7288 (inputs
7289 `(("accountsservice" ,accountsservice)
7290 ("caribou" ,caribou)
7291 ("docbook-xsl" ,docbook-xsl)
7292 ("evolution-data-server" ,evolution-data-server)
7293 ("gcr" ,gcr)
7294 ("gdm" ,gdm)
c5db31d4 7295 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
7296 ("gjs" ,gjs)
7297 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7298 ("gnome-desktop" ,gnome-desktop)
7299 ("gnome-settings-daemon" ,gnome-settings-daemon)
7300 ("gst-plugins-base" ,gst-plugins-base)
7301 ("ibus" ,ibus)
7302 ("libcanberra" ,libcanberra)
7303 ("libcroco" ,libcroco)
d6fda4d3 7304 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7305 ("libgweather" ,libgweather)
7306 ("libsoup" ,libsoup)
7307 ("mesa-headers" ,mesa-headers)
7308 ("mutter" ,mutter)
7309 ("network-manager-applet" ,network-manager-applet)
7310 ("polkit" ,polkit)
7311 ("pulseaudio" ,pulseaudio)
7312 ("python-pygobject" ,python-pygobject)
7313 ("startup-notification" ,startup-notification)
7314 ("telepathy-logger" ,telepathy-logger)
7315 ("upower" ,upower)
30e760f0
MB
7316 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7317 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7318 ("librsvg" ,librsvg)
2b0c755d 7319 ("geoclue" ,geoclue)))
a4df5756
SB
7320 (synopsis "Desktop shell for GNOME")
7321 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7322 (description
7323 "GNOME Shell provides core user interface functions for the GNOME desktop,
7324like switching to windows and launching applications.")
7325 (license license:gpl2+)))
c3f29bc9
RS
7326
7327(define-public gtk-vnc
7328 (package
7329 (name "gtk-vnc")
965ff023 7330 (version "0.9.0")
c3f29bc9
RS
7331 (source
7332 (origin
7333 (method url-fetch)
7334 (uri (string-append "mirror://gnome/sources/" name "/"
7335 (version-major+minor version) "/"
7336 name "-" version ".tar.xz"))
7337 (sha256
7338 (base32
965ff023 7339 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7340 (build-system gnu-build-system)
7341 (arguments
7342 '(#:configure-flags '("--with-gtk=3.0")))
7343 (propagated-inputs
7344 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7345 (inputs
7346 `(("cyrus-sasl" ,cyrus-sasl)
7347 ("gnutls" ,gnutls)
7348 ("libgcrypt" ,libgcrypt)
7349 ("pulseaudio" ,pulseaudio)))
7350 (native-inputs
7351 `(("glib:bin" ,glib "bin")
7352 ("gobject-introspection" ,gobject-introspection)
7353 ("intltool" ,intltool)
7354 ("pkg-config" ,pkg-config)
2f17e939 7355 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7356 ("vala" ,vala)))
7357 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7358 (synopsis "VNC viewer widget for GTK+")
7359 (description
7360 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7361applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7362GTK-VNC implements client side RFB protocol and authentication extensions such
7363as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7364 (license license:lgpl2.1+)))
8b877545 7365
dc69fe18
MW
7366(define-public gnome-autoar
7367 (package
7368 (name "gnome-autoar")
c7da8510 7369 (version "0.2.3")
dc69fe18
MW
7370 (source (origin
7371 (method url-fetch)
7372 (uri (string-append "mirror://gnome/sources/" name "/"
7373 (version-major+minor version) "/"
7374 name "-" version ".tar.xz"))
7375 (sha256
7376 (base32
c7da8510 7377 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
7378 (build-system glib-or-gtk-build-system)
7379 (native-inputs
7380 `(("gnome-common" ,gnome-common)
7381 ("gobject-introspection" ,gobject-introspection)
7382 ("pkg-config" ,pkg-config)))
7383 (propagated-inputs
7384 `(("libarchive" ,libarchive))) ; XXX document why
7385 (inputs
0a6e9e13 7386 `(("gtk+" ,gtk+)))
dc69fe18
MW
7387 (synopsis "Archives integration support for GNOME")
7388 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7389 (description
7390 "GNOME Autoar is a library which makes creating and extracting archives
7391easy, safe, and automatic.")
7392 (license license:lgpl2.1+)))
7393
b64e217f
MW
7394(define-public tracker
7395 (package
7396 (name "tracker")
5ada561c 7397 (version "2.2.2")
b64e217f
MW
7398 (source (origin
7399 (method url-fetch)
b5b0fd23 7400 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7401 (version-major+minor version) "/"
b5b0fd23 7402 "tracker-" version ".tar.xz"))
b64e217f
MW
7403 (sha256
7404 (base32
5ada561c
KK
7405 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7406 (build-system meson-build-system)
c8bdf589 7407 (arguments
5ada561c
KK
7408 `(#:glib-or-gtk? #t
7409 #:configure-flags
7410 ;; Otherwise, the RUNPATH will lack the final path component.
7411 (list (string-append "-Dc_link_args=-Wl,-rpath="
7412 (assoc-ref %outputs "out") "/lib:"
7413 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7414 #:phases
c8bdf589
RW
7415 (modify-phases %standard-phases
7416 (add-after 'unpack 'disable-broken-tests
7417 (lambda _
c8bdf589
RW
7418 ;; These fail because the SPARQL backend could not be loaded.
7419 ;; That's because /etc/machine-id is missing, but
7420 ;; DBUS_FATAL_WARNINGS does not help here.
5ada561c
KK
7421 (substitute* "tests/libtracker-sparql/meson.build"
7422 (("'sparql',") ""))
7423 (substitute* "tests/tracker-steroids/meson.build"
7424 (("test\\(.*") ""))
c8bdf589
RW
7425 #t))
7426 ;; Two tests fail if LANG is not set.
7427 (add-before 'check 'pre-check
7428 (lambda _
7429 (setenv "LANG" "en_US.UTF-8")
7430 ;; For the missing /etc/machine-id.
7431 (setenv "DBUS_FATAL_WARNINGS" "0")
7432 #t)))))
b64e217f 7433 (native-inputs
5ada561c
KK
7434 `(("glib:bin" ,glib "bin")
7435 ("gnome-common" ,gnome-common)
b64e217f 7436 ("gobject-introspection" ,gobject-introspection)
5ada561c 7437 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7438 ("intltool" ,intltool)
7439 ("pkg-config" ,pkg-config)
7440 ("vala" ,vala)))
7441 (inputs
7442 `(("gtk+" ,gtk+)
7443 ("dbus" ,dbus)
44ed6284 7444 ("sqlite" ,sqlite)
c8bdf589 7445 ("python" ,python)
b64e217f 7446 ("poppler" ,poppler)
b64e217f
MW
7447 ("libpng" ,libpng)
7448 ("libtiff" ,libtiff)
b64e217f 7449 ("zlib" ,zlib)
b64e217f 7450 ("libxml2" ,libxml2)
b64e217f 7451 ("libunistring" ,libunistring)
0ef48cd9 7452 ("json-glib" ,json-glib)
b64e217f 7453 ("openjpeg" ,openjpeg-1)
b64e217f 7454 ("libseccomp" ,libseccomp)
0ef48cd9 7455 ("libsoup" ,libsoup)
5ada561c
KK
7456 ("libuuid" ,util-linux)
7457 ("network-manager" ,network-manager)))
b64e217f
MW
7458 (synopsis "Metadata database, indexer and search tool")
7459 (home-page "https://wiki.gnome.org/Projects/Tracker")
7460 (description
7461 "Tracker is an advanced framework for first class objects with associated
7462metadata and tags. It provides a one stop solution for all metadata, tags,
7463shared object databases, search tools and indexing.")
7464 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7465 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7466 (license (list license:gpl2+
7467 license:lgpl2.1+
7468 license:lgpl2.0+))))
7469
03be9874
KK
7470(define-public tracker-miners
7471 (package
7472 (name "tracker-miners")
7473 (version "2.2.2")
7474 (source (origin
7475 (method url-fetch)
7476 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7477 (version-major+minor version)
7478 "/tracker-miners-" version ".tar.xz"))
7479 (sha256
7480 (base32
7481 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7482 (build-system meson-build-system)
7483 (arguments
7484 `(#:glib-or-gtk? #t
7485 #:configure-flags
7486 (list "-Dminer_rss=false" ; libgrss is required.
7487 ;; Ensure the RUNPATH contains all installed library locations.
7488 (string-append "-Dc_link_args=-Wl,-rpath="
7489 (assoc-ref %outputs "out")
7490 "/lib/tracker-miners-2.0")
7491 ;; TODO: Enable functional tests. Currently, the following error
7492 ;; appears:
7493 ;; Exception: The functional tests require DConf to be the default
7494 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7495 "-Dfunctional_tests=false")))
7496 (native-inputs
7497 `(("dbus" ,dbus)
7498 ("intltool" ,intltool)
7499 ("glib:bin" ,glib "bin")
7500 ("gobject-introspection" ,gobject-introspection)
7501 ("pkg-config" ,pkg-config)
7502 ("python-pygobject" ,python-pygobject)))
7503 (inputs
7504 `(("exempi" ,exempi)
7505 ("ffmpeg" ,ffmpeg)
7506 ("flac" ,flac)
7507 ("giflib" ,giflib)
7508 ("glib" ,glib)
7509 ("gstreamer" ,gstreamer)
7510 ("icu4c" ,icu4c)
7511 ("libcue" ,libcue)
7512 ("libexif" ,libexif)
7513 ("libgsf" ,libgsf)
7514 ("libgxps" ,libgxps)
7515 ("libiptcdata" ,libiptcdata)
7516 ("libjpeg" ,libjpeg)
7517 ("libosinfo" ,libosinfo)
7518 ("libpng" ,libpng)
7519 ("libseccomp" ,libseccomp)
7520 ("libtiff" ,libtiff)
7521 ("libvorbis" ,libvorbis)
7522 ("libxml2" ,libxml2)
7523 ("poppler" ,poppler)
7524 ("taglib" ,taglib)
7525 ("totem-pl-parser" ,totem-pl-parser)
7526 ("tracker" ,tracker)
7527 ("upower" ,upower)
7528 ("zlib" ,zlib)))
7529 (synopsis "Metadata database, indexer and search tool")
7530 (home-page "https://wiki.gnome.org/Projects/Tracker")
7531 (description
7532 "Tracker is an advanced framework for first class objects with associated
7533metadata and tags. It provides a one stop solution for all metadata, tags,
7534shared object databases, search tools and indexing.")
7535 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7536 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7537 (license (list license:gpl2+
7538 license:lgpl2.1+
7539 license:lgpl2.0+))))
7540
8b877545
RS
7541(define-public nautilus
7542 (package
7543 (name "nautilus")
d682c599 7544 (version "3.32.3")
8b877545
RS
7545 (source (origin
7546 (method url-fetch)
7547 (uri (string-append "mirror://gnome/sources/" name "/"
7548 (version-major+minor version) "/"
7549 name "-" version ".tar.xz"))
7550 (sha256
7551 (base32
d682c599 7552 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7553 (build-system meson-build-system)
8b877545 7554 (arguments
35e2d0cf 7555 '(#:glib-or-gtk? #t
8b877545
RS
7556 ;; XXX: FAIL: check-nautilus
7557 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7558 #:tests? #f))
7559 (native-inputs
35e2d0cf
R
7560 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7561 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7562 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7563 ("gobject-introspection" ,gobject-introspection)
7564 ("intltool" ,intltool)
7565 ("pkg-config" ,pkg-config)))
8b877545 7566 (inputs
8b877545 7567 `(("dconf" ,dconf)
caf6c363 7568 ("gexiv2" ,gexiv2)
dd05e731 7569 ("gvfs" ,gvfs)
8b877545
RS
7570 ("exempi" ,exempi)
7571 ("gnome-desktop" ,gnome-desktop)
09d88905 7572 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7573 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7574 ("libseccomp" ,libseccomp)
35e2d0cf 7575 ("libselinux" ,libselinux)
09d88905 7576 ("tracker" ,tracker)
3cafb9d4 7577 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7578 ;; XXX: gtk+ is required by libnautilus-extension.pc
7579 ;;
7580 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7581 ;; package. See:
7582 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7583 ("gtk+" ,gtk+)
8b877545
RS
7584 ("libexif" ,libexif)
7585 ("libxml2" ,libxml2)))
7586 (synopsis "File manager for GNOME")
7587 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7588 (description
7589 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7590design and behaviour, giving the user a simple way to navigate and manage its
7591files.")
7592 (license license:gpl2+)))
3c697ffd
JR
7593
7594(define-public baobab
7595 (package
7596 (name "baobab")
e0c5f20c 7597 (version "3.32.0")
3c697ffd
JR
7598 (source (origin
7599 (method url-fetch)
7600 (uri (string-append
7601 "mirror://gnome/sources/" name "/"
7602 (version-major+minor version) "/"
7603 name "-" version ".tar.xz"))
7604 (sha256
7605 (base32
e0c5f20c 7606 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7607 (build-system meson-build-system)
7608 (arguments
7609 '(#:glib-or-gtk? #t))
3c697ffd
JR
7610 (native-inputs
7611 `(("intltool" ,intltool)
7612 ("pkg-config" ,pkg-config)
d233d373
RJ
7613 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7614 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7615 ("itstool" ,itstool)
7616 ("xmllint" ,libxml2)
7617 ("glib" ,glib "bin")
7618 ("vala" ,vala)))
7619 (inputs
7620 `(("gtk+" ,gtk+)))
7621 (synopsis "Disk usage analyzer for GNOME")
7622 (description
7623 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7624usage in the GNOME desktop environment. It can easily scan device volumes or
7625a specific user-requested directory branch (local or remote). Once the scan
7626is complete it provides a graphical representation of each selected folder.")
7627 (home-page "https://wiki.gnome.org/Apps/Baobab")
7628 (license license:gpl2+)))
dc050251 7629
fdba447c
RS
7630(define-public gnome-backgrounds
7631 (package
7632 (name "gnome-backgrounds")
e04e8a8c 7633 (version "3.32.0")
fdba447c
RS
7634 (source
7635 (origin
7636 (method url-fetch)
7637 (uri (string-append "mirror://gnome/sources/" name "/"
7638 (version-major+minor version) "/"
7639 name "-" version ".tar.xz"))
7640 (sha256
7641 (base32
e04e8a8c 7642 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7643 (build-system meson-build-system)
fdba447c
RS
7644 (native-inputs
7645 `(("intltool" ,intltool)))
e04e8a8c 7646 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7647 (synopsis "Background images for the GNOME desktop")
7648 (description
7649 "GNOME backgrounds package contains a collection of graphics files which
7650can be used as backgrounds in the GNOME Desktop environment. Additionally,
7651the package creates the proper framework and directory structure so that you
7652can add your own files to the collection.")
7653 (license (list license:gpl2+
7654 license:cc-by2.0
7655 license:cc-by-sa2.0
7656 license:cc-by-sa3.0))))
7657
b784b1a9
RS
7658(define-public gnome-screenshot
7659 (package
7660 (name "gnome-screenshot")
6acf4033 7661 (version "3.32.0")
b784b1a9
RS
7662 (source
7663 (origin
7664 (method url-fetch)
7665 (uri (string-append "mirror://gnome/sources/" name "/"
7666 (version-major+minor version) "/"
7667 name "-" version ".tar.xz"))
7668 (sha256
7669 (base32
6acf4033 7670 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7671 (build-system meson-build-system)
b784b1a9
RS
7672 (native-inputs
7673 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7674 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7675 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7676 ("intltool" ,intltool)
8356aefa 7677 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7678 ("pkg-config" ,pkg-config)))
7679 (inputs
7680 `(("gtk+" ,gtk+)
7681 ("libcanberra" ,libcanberra)
7682 ("libx11" ,libx11)
7683 ("libxext" ,libxext)))
676e7cb4 7684 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7685 (synopsis "Take pictures of your screen")
7686 (description
7687 "GNOME Screenshot is a utility used for taking screenshots of the entire
7688screen, a window or a user defined area of the screen, with optional
7689beautifying border effects.")
7690 (license license:gpl2+)))
7691
66d59111
RS
7692(define-public dconf-editor
7693 (package
7694 (name "dconf-editor")
66261451 7695 (version "3.32.0")
66d59111
RS
7696 (source
7697 (origin
7698 (method url-fetch)
7699 (uri (string-append "mirror://gnome/sources/" name "/"
7700 (version-major+minor version) "/"
7701 name "-" version ".tar.xz"))
7702 (sha256
7703 (base32
66261451 7704 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7705 (build-system meson-build-system)
86f2124b
LC
7706 (arguments
7707 '(#:phases (modify-phases %standard-phases
7708 (add-before 'configure 'set-glib-minimum-version
7709 (lambda _
7710 ;; Change the minimum required GLib version so that
7711 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7712 ;; do that, it complains that "55" is not an even
7713 ;; number. See <https://bugs.gnu.org/37503>.
7714 (substitute* "editor/meson.build"
7715 (("2\\.55\\.1") "2.60.0"))
7716 #t)))))
66d59111
RS
7717 (native-inputs
7718 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7719 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7720 ("intltool" ,intltool)
294ff39d
RW
7721 ("pkg-config" ,pkg-config)
7722 ("vala" ,vala)))
66d59111
RS
7723 (inputs
7724 `(("dconf" ,dconf)
7725 ("gtk+" ,gtk+)
7726 ("libxml2" ,libxml2)))
7727 (home-page "https://git.gnome.org/browse/dconf-editor")
7728 (synopsis "Graphical editor for GNOME's dconf configuration system")
7729 (description
7730 "Dconf-editor is a graphical tool for browsing and editing the dconf
7731configuration system for GNOME. It allows users to configure desktop
7732software that do not provide their own configuration interface.")
7733 (license license:lgpl2.1+)))
7734
96d36f38
AW
7735(define-public gnome-default-applications
7736 (package
7737 (name "gnome-default-applications")
7738 (version "0")
7739 (build-system trivial-build-system)
7740 (source #f)
7741 (propagated-inputs
8ad4f0aa
LC
7742 `(("nautilus" ,nautilus)
7743 ("evince" ,evince)))
96d36f38
AW
7744 (arguments
7745 `(#:modules ((guix build utils))
7746 #:builder
7747 (begin
7748 (use-modules (guix build utils))
7749 (let* ((out (assoc-ref %outputs "out"))
7750 (apps (string-append out "/share/applications")))
7751 (mkdir-p apps)
7752 (call-with-output-file (string-append apps "/defaults.list")
7753 (lambda (port)
7754 (format port "[Default Applications]\n")
8ad4f0aa
LC
7755 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7756 (format port "application/pdf=evince.desktop\n")
7757 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7758 #t))))
7759 (synopsis "Default MIME type associations for the GNOME desktop")
7760 (description
7761 "Given many installed packages which might handle a given MIME type, a
7762user running the GNOME desktop probably has some preferences: for example,
7763that folders be opened by default by the Nautilus file manager, not the Baobab
7764disk usage analyzer. This package establishes that set of default MIME type
7765associations for GNOME.")
7766 (license license:gpl3+)
7767 (home-page #f)))
7768
3f1ed953
RG
7769(define-public libgovirt
7770 (package
7771 (name "libgovirt")
7772 (version "0.3.6")
7773 (source (origin
7774 (method url-fetch)
7775 (uri (string-append "mirror://gnome/sources/" name "/"
7776 (version-major+minor version) "/"
7777 name "-" version ".tar.xz"))
7778 (sha256
7779 (base32
7780 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7781 (build-system glib-or-gtk-build-system)
7782 (native-inputs
7783 `(("gettext" ,gettext-minimal)
7784 ("glib:bin" ,glib "bin")
7785 ("gobject-introspection" ,gobject-introspection)
7786 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7787 ("gtk+:bin" ,gtk+ "bin")
7788 ("pkg-config" ,pkg-config)))
7789 (inputs
7790 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7791 ("librest" ,rest)))
7792 (synopsis "GoVirt Library")
7793 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7794 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7795 (license license:gpl2+)))
7796
8672e5e9
RG
7797(define-public gnome-weather
7798 (package
7799 (name "gnome-weather")
7800 (version "3.34.0")
7801 (source (origin
7802 (method url-fetch)
7803 (uri (string-append "mirror://gnome/sources/" name "/"
7804 (version-major+minor version) "/"
7805 name "-" version ".tar.xz"))
7806 (sha256
7807 (base32
7808 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7809 (build-system meson-build-system)
7810 (native-inputs
7811 `(("gettext" ,gettext-minimal)
7812 ("glib:bin" ,glib "bin")
7813 ("gobject-introspection" ,gobject-introspection)
7814 ("gtk+:bin" ,gtk+ "bin")
7815 ("pkg-config" ,pkg-config)))
7816 (inputs
7817 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7818 ("appstream-glib" ,appstream-glib)
7819 ("geoclue" ,geoclue)
7820 ("gdk-pixbuf" ,gdk-pixbuf)
7821 ("gjs" ,gjs)
7822 ("gnome-desktop" ,gnome-desktop)
7823 ("libgweather" ,libgweather)))
7824 (synopsis "Weather monitoring for GNOME desktop")
7825 (description "GNOME Weather is a small application that allows you to
7826monitor the current weather conditions for your city, or anywhere in the
7827world.")
7828 (home-page "https://wiki.gnome.org/Apps/Weather")
7829 (license license:gpl2+)))
7830
dc050251
SB
7831(define-public gnome
7832 (package
7833 (name "gnome")
7834 (version (package-version gnome-shell))
7835 (source #f)
7836 (build-system trivial-build-system)
e3cfef22 7837 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7838 (propagated-inputs
8d8c6bff 7839 ;; TODO: Add or remove packages according to:
a8cda7f5 7840 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7841 `(
8d8c6bff 7842 ;; GNOME-Core-OS-Services
7922b6f7 7843 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7844 ("network-manager" ,network-manager)
7845 ("packagekit" ,packagekit)
7846 ("upower" ,upower)
7847 ;; GNOME-Core-Shell
7848 ("adwaita-icon-theme" ,adwaita-icon-theme)
7849 ("gdm" ,gdm)
7850 ("glib-networking" ,glib-networking)
7851 ("gnome-backgrounds" ,gnome-backgrounds)
7852 ("gnome-bluetooth" ,gnome-bluetooth)
7853 ("gnome-control-center" ,gnome-control-center)
7854 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7855 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8d8c6bff 7856 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7857 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7858 ("gnome-session" ,gnome-session)
7859 ("gnome-settings-daemon" ,gnome-settings-daemon)
7860 ("gnome-shell-extensions" ,gnome-shell-extensions)
7861 ("gnome-shell" ,gnome-shell)
7862 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7863 ("gnome-user-docs" ,gnome-user-docs)
a8cda7f5 7864 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7865 ("gvfs" ,gvfs)
7866 ("mutter" ,mutter)
7867 ("orca" ,orca)
7868 ;; GNOME-Core-Utilities
7869 ("baobab" ,baobab)
7870 ("cheese" ,cheese)
7871 ("eog" ,eog)
7872 ("epiphany" ,epiphany)
7873 ("evince" ,evince)
7874 ("file-roller" ,file-roller)
7875 ("gedit" ,gedit)
7876 ("gnome-calculator" ,gnome-calculator)
7877 ("gnome-calendar" ,gnome-calendar)
7878 ("gnome-characters" ,gnome-characters)
7879 ("gnome-clocks" ,gnome-clocks)
7880 ("gnome-contacts" ,gnome-contacts)
7881 ("gnome-disk-utility" ,gnome-disk-utility)
7882 ("gnome-font-viewer" ,gnome-font-viewer)
7883 ("gnome-maps" ,gnome-maps)
7884 ("gnome-screenshot" ,gnome-screenshot)
7885 ("gnome-system-monitor" ,gnome-system-monitor)
7886 ("gnome-terminal" ,gnome-terminal)
7887 ("nautilus" ,nautilus)
7888 ("simple-scan" ,simple-scan)
7889 ("totem" ,totem)
7922b6f7
RG
7890 ("yelp" ,yelp)
7891 ;; Others
7892 ("hicolor-icon-theme" ,hicolor-icon-theme)
7893 ("gnome-online-accounts" ,gnome-online-accounts)))
fe4e698d 7894 (synopsis "The GNU desktop environment")
dc050251
SB
7895 (home-page "https://www.gnome.org/")
7896 (description
fe4e698d
LC
7897 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7898applications for browsing the web, editing text and images, creating
7899documents and diagrams, playing media, scanning, and much more.")
dc050251 7900 (license license:gpl2+)))
4a526711
DT
7901
7902(define-public byzanz
7903 ;; The last stable release of Byzanz was in 2011, but there have been many
7904 ;; useful commits made to the Byzanz repository since then that it would be
7905 ;; silly to use such an old release.
7906 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7907 (package
7908 (name "byzanz")
7909 (version (string-append "0.2-1." (string-take commit 7)))
7910 (source (origin
7911 (method git-fetch)
7912 (uri (git-reference
5f13bf09 7913 (url "https://git.gnome.org/browse/byzanz")
4a526711 7914 (commit commit)))
5a6527e4 7915 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7916 (sha256
7917 (base32
7918 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7919 (build-system glib-or-gtk-build-system)
7920 (arguments
7921 '(#:phases
7922 (modify-phases %standard-phases
189be331 7923 (replace 'bootstrap
4a526711
DT
7924 (lambda _
7925 ;; The build system cleverly detects that we're not building from
7926 ;; a release tarball and turns on -Werror for GCC.
7927 ;; Unsurprisingly, there is a warning during compilation that
7928 ;; causes the build to fail unnecessarily, so we remove the flag.
7929 (substitute* '("configure.ac")
7930 (("-Werror") ""))
7931 ;; The autogen.sh script in gnome-common will run ./configure
7932 ;; by default, which is problematic because source shebangs
7933 ;; have not yet been patched.
7934 (setenv "NOCONFIGURE" "t")
7935 (zero? (system* "sh" "autogen.sh")))))))
7936 (native-inputs
7937 `(("autoconf" ,autoconf)
7938 ("automake" ,automake)
7939 ("gnome-common" ,gnome-common)
7940 ("intltool" ,intltool)
7941 ("libtool" ,libtool)
7942 ("pkg-config" ,pkg-config)
7943 ("which" ,which)))
7944 (inputs
7945 `(("glib" ,glib)
7946 ("gstreamer" ,gstreamer)
7947 ("gst-plugins-base" ,gst-plugins-base)
7948 ("gtk+" ,gtk+)))
7949 (synopsis "Desktop recording program")
7950 (description "Byzanz is a simple desktop recording program with a
7951command-line interface. It can record part or all of an X display for a
7952specified duration and save it as a GIF encoded animated image file.")
7953 (home-page "https://git.gnome.org/browse/byzanz")
7954 (license license:gpl2+))))
3a9a4c51 7955
0ec171ec
MS
7956(define-public gsound
7957 (package
7958 (name "gsound")
7959 (version "1.0.2")
7960 (source (origin
7961 (method url-fetch)
7962 (uri (string-append "mirror://gnome/sources/" name "/"
7963 (version-major+minor version) "/"
7964 name "-" version ".tar.xz"))
7965 (sha256
7966 (base32
7967 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7968 (build-system glib-or-gtk-build-system)
7969 (native-inputs
7970 `(("pkg-config" ,pkg-config)
7971 ("gobject-introspection" ,gobject-introspection)
7972 ("vala" ,vala)))
7973 (inputs
7974 `(("glib" ,glib)
7975 ("libcanberra" ,libcanberra)))
7976 (home-page "https://wiki.gnome.org/Projects/GSound")
7977 (synopsis "GObject wrapper for libcanberra")
7978 (description
7979 "GSound is a small library for playing system sounds. It's designed to be
7980used via GObject Introspection, and is a thin wrapper around the libcanberra C
7981library.")
7982 (license license:lgpl2.1+)))
7983
3a9a4c51
RS
7984(define-public libzapojit
7985 (package
7986 (name "libzapojit")
7987 (version "0.0.3")
7988 (source (origin
7989 (method url-fetch)
7990 (uri (string-append "mirror://gnome/sources/" name "/"
7991 (version-major+minor version) "/"
7992 name "-" version ".tar.xz"))
7993 (sha256
7994 (base32
7995 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7996 (build-system gnu-build-system)
7997 (native-inputs
7998 `(("gobject-introspection" ,gobject-introspection)
7999 ("intltool" ,intltool)
8000 ("pkg-config" ,pkg-config)))
8001 (inputs
14c297fd 8002 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8003 ("json-glib" ,json-glib)
8004 ("rest" ,rest)))
8005 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8006 (synopsis "Library for accessing SkyDrive and Hotmail")
8007 (description
8008 "Libzapojit is a GLib-based library for accessing online service APIs of
8009Microsoft SkyDrive and Hotmail, using their REST protocols.")
8010 (license license:lgpl2.1+)))
9365ee1c 8011
60e2a9ae
MS
8012(define-public gnome-clocks
8013 (package
8014 (name "gnome-clocks")
c76d0dbc 8015 (version "3.32.0")
60e2a9ae
MS
8016 (source (origin
8017 (method url-fetch)
8018 (uri (string-append "mirror://gnome/sources/" name "/"
8019 (version-major+minor version) "/"
8020 name "-" version ".tar.xz"))
8021 (sha256
8022 (base32
c76d0dbc 8023 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
8024 (build-system meson-build-system)
8025 (arguments
8026 '(#:glib-or-gtk? #t))
8027 (native-inputs
8028 `(("vala" ,vala)
8029 ("pkg-config" ,pkg-config)
8030 ("glib" ,glib "bin") ; for glib-compile-resources
8031 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8032 ("desktop-file-utils" ,desktop-file-utils)
8033 ("gettext" ,gettext-minimal)
8034 ("itstool" ,itstool)))
8035 (inputs
8036 `(("glib" ,glib)
8037 ("gtk+" ,gtk+)
8038 ("gsound" ,gsound)
8039 ("geoclue" ,geoclue)
8040 ("geocode-glib" ,geocode-glib)
8041 ("libgweather" ,libgweather)
8042 ("gnome-desktop" ,gnome-desktop)))
8043 (home-page "https://wiki.gnome.org/Apps/Clocks")
8044 (synopsis "GNOME's clock application")
8045 (description
8046 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8047desktop. It supports world clock, stop watch, alarms, and count down timer.")
8048 (license license:gpl3+)))
8049
3c474897
KY
8050(define-public gnome-calendar
8051 (package
8052 (name "gnome-calendar")
339b59bf 8053 (version "3.32.2")
3c474897
KY
8054 (source (origin
8055 (method url-fetch)
8056 (uri (string-append "mirror://gnome/sources/" name "/"
8057 (version-major+minor version) "/"
8058 name "-" version ".tar.xz"))
8059 (sha256
8060 (base32
339b59bf 8061 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
8062 (build-system meson-build-system)
8063 (arguments
8064 '(#:glib-or-gtk? #t
8065 ;; gnome-calendar has to be installed before the tests can be run
8066 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8067 #:tests? #f))
3c474897 8068 (native-inputs
a49d3e37
MS
8069 `(("gettext" ,gettext-minimal)
8070 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8071 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
8072 ("pkg-config" ,pkg-config)))
8073 (inputs
a49d3e37 8074 `(("evolution-data-server" ,evolution-data-server)
14c297fd 8075 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8076 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8077 ("libdazzle" ,libdazzle)
b63c06f1 8078 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8079 ("libgweather" ,libgweather)
8080 ("geoclue" ,geoclue)))
3c474897
KY
8081 (home-page "https://wiki.gnome.org/Apps/Calendar")
8082 (synopsis "GNOME's calendar application")
8083 (description
8084 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8085desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8086 (license license:gpl3+)))
8087
57b14665
MS
8088(define-public gnome-todo
8089 (package
8090 (name "gnome-todo")
9f3c6c88 8091 (version "3.28.1")
57b14665
MS
8092 (source (origin
8093 (method url-fetch)
8094 (uri (string-append "mirror://gnome/sources/" name "/"
8095 (version-major+minor version) "/"
8096 name "-" version ".tar.xz"))
8097 (sha256
8098 (base32
9f3c6c88 8099 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
8100 (build-system meson-build-system)
8101 (arguments
8102 '(#:glib-or-gtk? #t
8103 #:phases (modify-phases %standard-phases
8104 (add-after
8105 'install 'wrap-gnome-todo
8106 (lambda* (#:key inputs outputs #:allow-other-keys)
8107 (let ((out (assoc-ref outputs "out"))
8108 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8109 (python-path (getenv "PYTHONPATH")))
8110 (wrap-program (string-append out "/bin/gnome-todo")
8111 ;; XXX: gi plugins are broken.
8112 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8113 ;; For plugins.
8114 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8115 `("PYTHONPATH" ":" prefix (,python-path))))
8116 #t)))))
8117 (native-inputs
8118 `(("gettext" ,gettext-minimal)
8119 ("gobject-introspection" ,gobject-introspection)
8120 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8121 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8122 ("pkg-config" ,pkg-config)))
8123 (inputs
8124 `(("rest" ,rest) ; For Todoist plugin
8125 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8126 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8127 ("libical" ,libical)
8128 ("libpeas" ,libpeas)
8129 ("python-pygobject" ,python-pygobject)
8130 ("evolution-data-server" ,evolution-data-server)
14c297fd 8131 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8132 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8133 (home-page "https://wiki.gnome.org/Apps/Todo")
8134 (synopsis "GNOME's ToDo Application")
8135 (description
8136 "GNOME To Do is a simplistic personal task manager designed to perfectly
8137fit the GNOME desktop.")
8138 (license license:gpl3+)))
8139
ab179eaf
SB
8140(define-public gnome-dictionary
8141 (package
8142 (name "gnome-dictionary")
cf81ddef 8143 (version "3.26.1")
ab179eaf
SB
8144 (source (origin
8145 (method url-fetch)
8146 (uri (string-append "mirror://gnome/sources/" name "/"
8147 (version-major+minor version) "/"
8148 name "-" version ".tar.xz"))
8149 (sha256
8150 (base32
cf81ddef
LC
8151 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8152 (build-system meson-build-system)
2776b5d5
MB
8153 (arguments '(#:glib-or-gtk? #t
8154 #:phases (modify-phases %standard-phases
8155 (add-after 'unpack 'patch-install-script
8156 (lambda _
8157 ;; This script attempts to compile glib schemas
8158 ;; and create an empty MIME database. We do
8159 ;; that elsewhere, so prevent it from running.
8160 (substitute* "build-aux/post-install.sh"
8161 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8162 #t)))))
ab179eaf
SB
8163 (native-inputs
8164 `(("glib:bin" ,glib "bin")
8165 ("gobject-introspection" ,gobject-introspection)
8166 ("intltool" ,intltool)
8167 ("itstool" ,itstool)
8168 ("pkg-config" ,pkg-config)
8169 ("xmllint" ,libxml2)))
8170 (inputs
8171 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8172 ("gtk+" ,gtk+)))
8173 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8174 (synopsis "Look up words in dictionary sources")
8175 (description
8176 "GNOME Dictionary can look for the definition or translation of a word in
8177existing databases over the internet.")
8178 (license license:gpl3+)))
8179
d13f3a03 8180(define-public gnome-tweaks
9365ee1c 8181 (package
d13f3a03 8182 (name "gnome-tweaks")
652af676 8183 (version "3.32.0")
9365ee1c
JN
8184 (source (origin
8185 (method url-fetch)
d13f3a03 8186 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8187 (version-major+minor version) "/"
d13f3a03
RW
8188 "gnome-tweaks-" version ".tar.xz"))
8189 (patches
8190 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8191 (sha256
8192 (base32
652af676 8193 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 8194 (build-system meson-build-system)
9365ee1c 8195 (arguments
d13f3a03
RW
8196 `(#:glib-or-gtk? #t
8197 #:configure-flags '("-Dlocalstatedir=/tmp"
8198 "-Dsysconfdir=/tmp")
9365ee1c 8199 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8200 ,@%meson-build-system-modules)
8201 #:phases
8202 (modify-phases %standard-phases
8203 (add-after 'install 'wrap
8204 (@@ (guix build python-build-system) wrap))
8205 (add-after 'wrap 'wrap-gi-typelib
8206 (lambda* (#:key inputs outputs #:allow-other-keys)
8207 (let ((out (assoc-ref outputs "out"))
8208 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8209 (wrap-program (string-append out "/bin/gnome-tweaks")
8210 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8211 #t)))))
9365ee1c 8212 (native-inputs
c7fc414e
RH
8213 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8214 ("intltool" ,intltool)
9365ee1c
JN
8215 ("pkg-config" ,pkg-config)))
8216 (inputs
c7fc414e
RH
8217 `(("gnome-desktop" ,gnome-desktop)
8218 ("gtk+" ,gtk+)
9365ee1c
JN
8219 ("gobject-introspection" ,gobject-introspection)
8220 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
8221 ("libnotify" ,libnotify)
8222 ("libsoup" ,libsoup)
8223 ("nautilus" ,nautilus)
8224 ("python" ,python)
8225 ("python-pygobject" ,python-pygobject)))
9365ee1c 8226 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8227 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8228 (description
d13f3a03 8229 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8230GNOME 3. This includes things like the fonts used in user interface elements,
8231alternative user interface themes, changes in window management behavior,
8232GNOME Shell appearance and extension, etc.")
8233 (license license:gpl3+)))
813f814a 8234
d13f3a03
RW
8235;; This package has been renamed by upstream.
8236(define-public gnome-tweak-tool
8237 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8238
32ac717c
DT
8239(define-public gnome-shell-extensions
8240 (package
8241 (name "gnome-shell-extensions")
ae4c05e0 8242 (version "3.32.1")
32ac717c
DT
8243 (source (origin
8244 (method url-fetch)
8245 (uri (string-append "mirror://gnome/sources/" name "/"
8246 (version-major+minor version) "/"
8247 name "-" version ".tar.xz"))
8248 (sha256
8249 (base32
ae4c05e0 8250 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 8251 (build-system meson-build-system)
32ac717c 8252 (arguments
100f625b 8253 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8254 (native-inputs
c9ea8873
LP
8255 `(("glib:bin" ,glib "bin")
8256 ("intltool" ,intltool)
32ac717c
DT
8257 ("pkg-config" ,pkg-config)))
8258 (propagated-inputs
c9ea8873 8259 `(("glib" ,glib)))
32ac717c
DT
8260 (synopsis "Extensions for GNOME Shell")
8261 (description "GNOME Shell extensions modify and extend GNOME Shell
8262functionality and behavior.")
8263 (home-page "https://extensions.gnome.org/")
8264 (license license:gpl3+)))
8265
813f814a
DT
8266(define-public arc-theme
8267 (package
8268 (name "arc-theme")
37781323 8269 (version "20190917")
813f814a 8270 (source (origin
a18f8eaf
BH
8271 (method git-fetch)
8272 (uri (git-reference
8273 (url "https://github.com/NicoHood/arc-theme.git")
8274 (commit version)))
8275 (file-name (git-file-name name version))
813f814a
DT
8276 (sha256
8277 (base32
37781323 8278 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8279 (build-system gnu-build-system)
d88884fa
EF
8280 (arguments
8281 '(#:phases
8282 (modify-phases %standard-phases
8283 ;; autogen.sh calls configure at the end of the script.
8284 (replace 'bootstrap
8285 (lambda _ (invoke "autoreconf" "-vfi"))))))
813f814a
DT
8286 (native-inputs
8287 `(("autoconf" ,autoconf)
8288 ("automake" ,automake)
a18f8eaf
BH
8289 ("glib" ,glib "bin") ; for glib-compile-resources
8290 ("gnome-shell" ,gnome-shell)
8291 ("gtk+" ,gtk+)
8292 ("inkscape" ,inkscape)
8293 ("optipng" ,optipng)
8294 ("pkg-config" ,pkg-config)
8295 ("sassc" ,sassc)))
813f814a
DT
8296 (synopsis "A flat GTK+ theme with transparent elements")
8297 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
82982, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8299like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8300 (home-page "https://github.com/horst3180/arc-theme")
8301 ;; No "or later" language found.
a18f8eaf 8302 (license license:gpl3+)))
9987c57c 8303
d935e6a1 8304(define-public faba-icon-theme
9987c57c 8305 (package
d935e6a1 8306 (name "faba-icon-theme")
2eee7ee3 8307 (version "4.3")
d935e6a1
BT
8308 (source
8309 (origin
757e4027
TGR
8310 (method git-fetch)
8311 (uri (git-reference
8312 (url "https://github.com/snwh/faba-icon-theme.git")
8313 (commit (string-append "v" version))))
8314 (file-name (git-file-name name version))
d935e6a1 8315 (sha256
757e4027 8316 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8317 (build-system meson-build-system)
9987c57c 8318 (arguments
82da291a 8319 `(#:phases
9987c57c 8320 (modify-phases %standard-phases
82da291a 8321 (add-before 'configure 'disable-post-install
9987c57c 8322 (lambda _
82da291a
JL
8323 (substitute* "meson.build"
8324 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8325 (native-inputs
8326 `(("autoconf" ,autoconf)
8327 ("automake" ,automake)))
d935e6a1
BT
8328 (synopsis "Faba icon theme")
8329 (description
8330 "Faba is a minimal icon set used as a basis for other themes such as
8331Moka")
8332 (home-page "https://snwh.org/moka")
8333 (license (list license:lgpl3+
8334 license:cc-by-sa4.0))))
8335
9987c57c
DT
8336(define-public moka-icon-theme
8337 (package
8b0e4177 8338 (inherit faba-icon-theme)
9987c57c 8339 (name "moka-icon-theme")
105a3625 8340 (version "5.4.0")
8c3f2170
TGR
8341 (source
8342 (origin
8343 (method git-fetch)
8344 (uri (git-reference
8345 (url "https://github.com/snwh/moka-icon-theme.git")
8346 (commit (string-append "v" version))))
8347 (file-name (git-file-name name version))
8348 (sha256
8349 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8350 (propagated-inputs
8351 ;; Moka is based on Faba by using it as a fallback icon set instead of
8352 ;; bundling it, so we need to add it as a propagated input.
8353 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8354 (synopsis "Moka icon theme")
8355 (description "Moka is a stylized desktop icon set, designed to be clear,
8356simple and consistent.")
fedde43b
BT
8357 (license (list license:gpl3+
8358 license:cc-by-sa4.0))))
6fd8f8d6
DT
8359
8360(define-public arc-icon-theme
8361 (package
8362 (name "arc-icon-theme")
c4180240 8363 (version "20161122")
bbf66cbf
TGR
8364 (source
8365 (origin
8366 (method git-fetch)
8367 (uri (git-reference
8368 (url "https://github.com/horst3180/arc-icon-theme.git")
8369 (commit version)))
8370 (file-name (git-file-name name version))
8371 (sha256
8372 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8373 (build-system gnu-build-system)
9e1ede95
JL
8374 (arguments
8375 `(#:phases
8376 (modify-phases %standard-phases
8377 (add-after 'unpack 'disable-configure-during-bootstrap
8378 (lambda _
8379 (substitute* "autogen.sh"
8380 (("^\"\\$srcdir/configure\".*") ""))
8381 #t)))))
6fd8f8d6
DT
8382 (native-inputs
8383 `(("autoconf" ,autoconf)
8384 ("automake" ,automake)))
8385 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8386 (propagated-inputs
8387 `(("moka-icon-theme" ,moka-icon-theme)))
8388 (synopsis "Arc icon theme")
8389 (description "The Arc icon theme provides a set of icons matching the
8390style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8391the Moka icon theme.")
8392 (home-page "https://github.com/horst3180/arc-icon-theme")
8393 (license license:gpl3+)))
6064a4e8
LF
8394
8395(define-public folks
8396 (package
8397 (name "folks")
d23495fa 8398 (version "0.11.4")
6064a4e8
LF
8399 (source (origin
8400 (method url-fetch)
8401 (uri (string-append
e5f4796e 8402 "mirror://gnome/sources/folks/"
6064a4e8 8403 (version-major+minor version) "/"
e5f4796e 8404 "folks-" version ".tar.xz"))
6064a4e8
LF
8405 (sha256
8406 (base32
d23495fa 8407 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
8408 (build-system glib-or-gtk-build-system)
8409 (inputs
8410 `(("bdb" ,bdb)
8411 ("dbus-glib" ,dbus-glib)
8412 ("evolution-data-server" ,evolution-data-server)
8413 ("glib" ,glib)
8414 ("libgee" ,libgee)
8415 ("telepathy-glib" ,telepathy-glib)))
8416 (native-inputs
8417 `(("gobject-introspection" ,gobject-introspection)
8418 ("intltool" ,intltool)
8419 ("pkg-config" ,pkg-config)
8420 ("vala" ,vala)))
8421 (synopsis "Library to aggregate data about people")
8422 (description "Libfolks is a library that aggregates information about people
8423from multiple sources (e.g., Telepathy connection managers for IM contacts,
8424Evolution Data Server for local contacts, libsocialweb for web service contacts,
8425etc.) to create metacontacts. It's written in Vala, which generates C code when
8426compiled.")
8427 (home-page "https://wiki.gnome.org/Projects/Folks")
8428 (license license:lgpl2.1+)))
01ea778f
LF
8429
8430(define-public gfbgraph
8431 (package
8432 (name "gfbgraph")
8433 (version "0.2.3")
8434 (source (origin
8435 (method url-fetch)
8436 (uri (string-append
237d4cf7 8437 "mirror://gnome/sources/gfbgraph/"
01ea778f 8438 (version-major+minor version) "/"
237d4cf7 8439 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8440 (sha256
8441 (base32
8442 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8443 (build-system glib-or-gtk-build-system)
8444 (arguments
8445 `(#:tests? #f ; Tests appear to require the network.
8446 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8447 #:configure-flags '("--disable-gtk-doc"
8448 "--disable-static"
8449 "--enable-introspection")))
8450 (native-inputs
8451 `(("pkg-config" ,pkg-config)
8452 ("gobject-introspection" ,gobject-introspection)))
8453 (inputs
8454 `(("json-glib" ,json-glib)
14c297fd 8455 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8456 ("rest" ,rest)))
8457 (synopsis "GLib/GObject wrapper for the Facebook API")
8458 (description "This library allows you to use the Facebook API from
8459GLib/GObject code.")
8460 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8461 (license license:lgpl2.1+)))
3920868c 8462
8463(define-public libgnomekbd
8464 (package
8465 (name "libgnomekbd")
70f2b0f9 8466 (version "3.26.1")
3920868c 8467 (source (origin
8468 (method url-fetch)
d47fa82d 8469 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8470 (version-major+minor version) "/"
d47fa82d 8471 "libgnomekbd-" version ".tar.xz"))
3920868c 8472 (sha256
8473 (base32
70f2b0f9 8474 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8475 (build-system gnu-build-system)
8476 (native-inputs
8477 `(("pkg-config" ,pkg-config)
8478 ("glib" ,glib "bin")
8479 ("intltool" ,intltool)))
8480 (propagated-inputs
8481 ;; Referred to in .h files and .pc.
8482 `(("glib" ,glib)
8483 ("gtk+" ,gtk+)
8484 ("libxklavier" ,libxklavier)))
8485 (home-page "https://www.gnome.org")
8486 (synopsis "GNOME keyboard configuration library")
8487 (description
8488 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8489environment, which can notably display keyboard layouts.")
8490 (license license:lgpl2.0+)))
85327d0d 8491
8492;;; This package is no longer maintained:
8493;;; https://wiki.gnome.org/Attic/LibUnique
8494;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8495;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8496(define-public libunique
8497 (package
8498 (name "libunique")
8499 (version "3.0.2")
8500 (source (origin
8501 (method url-fetch)
8502 (uri (string-append "mirror://gnome/sources/" name "/"
8503 (version-major+minor version) "/"
8504 name "-" version ".tar.xz"))
8505 (sha256
8506 (base32
8507 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8508 (build-system glib-or-gtk-build-system)
8509 (arguments
8510 `(#:configure-flags '("--disable-static"
8511 "--disable-dbus" ; use gdbus
8512 "--enable-introspection")))
8513 (native-inputs
8514 `(("pkg-config" ,pkg-config)
8515 ("gobject-introspection" ,gobject-introspection)
8516 ("glib:bin" ,glib "bin")
8517 ("gtk-doc" ,gtk-doc)))
8518 (propagated-inputs
8519 ;; Referred to in .h files and .pc.
8520 `(("gtk+" ,gtk+)))
8521 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8522 (synopsis "Library for writing single instance applications")
8523 (description
8524 "Libunique is a library for writing single instance applications. If you
8525launch a single instance application twice, the second instance will either just
8526quit or will send a message to the running instance. Libunique makes it easy to
8527write this kind of application, by providing a base class, taking care of all
8528the IPC machinery needed to send messages to a running instance, and also
8529handling the startup notification side.")
8530 (license license:lgpl2.1+)))
54021cd8
RS
8531
8532(define-public gnome-calculator
8533 (package
8534 (name "gnome-calculator")
07ace641 8535 (version "3.32.2")
54021cd8
RS
8536 (source
8537 (origin
8538 (method url-fetch)
8539 (uri (string-append "mirror://gnome/sources/" name "/"
8540 (version-major+minor version) "/"
8541 name "-" version ".tar.xz"))
8542 (sha256
8543 (base32
07ace641 8544 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
2d475910
RW
8545 (build-system meson-build-system)
8546 (arguments '(#:glib-or-gtk? #t))
54021cd8
RS
8547 (native-inputs
8548 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8549 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8
RS
8550 ("intltool" ,intltool)
8551 ("itstool" ,itstool)
2d475910 8552 ("vala" ,vala)
54021cd8
RS
8553 ("pkg-config" ,pkg-config)))
8554 (inputs
112e9083 8555 `(("glib" ,glib)
07ace641 8556 ("gtksourceview" ,gtksourceview)
54021cd8 8557 ("libsoup" ,libsoup)
112e9083 8558 ("libxml2" ,libxml2)
2c2da7ec 8559 ("mpc" ,mpc)
54021cd8
RS
8560 ("mpfr" ,mpfr)))
8561 (home-page "https://wiki.gnome.org/Apps/Calculator")
8562 (synopsis "Desktop calculator")
8563 (description
8564 "Calculator is an application that solves mathematical equations and
8565is suitable as a default application in a Desktop environment.")
8566 (license license:gpl3)))
0bd69759
RS
8567
8568(define-public xpad
8569 (package
8570 (name "xpad")
c85626bb 8571 (version "5.1.0")
0bd69759
RS
8572 (source
8573 (origin
8574 (method url-fetch)
08fda9c6
R
8575 (uri (string-append "https://launchpad.net/xpad/trunk/"
8576 version "/+download/"
0bd69759
RS
8577 name "-" version ".tar.bz2"))
8578 (sha256
8579 (base32
c85626bb 8580 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8581 (build-system gnu-build-system)
8582 (native-inputs
08fda9c6
R
8583 `(("autoconf" ,autoconf)
8584 ("automake" ,automake)
8585 ("gtk+:bin" ,gtk+ "bin")
8586 ("intltool" ,intltool)
0bd69759
RS
8587 ("pkg-config" ,pkg-config)))
8588 (inputs
c72647fb 8589 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8590 ("libsm" ,libsm)))
8591 (home-page "https://wiki.gnome.org/Apps/Xpad")
8592 (synopsis "Virtual sticky note")
8593 (description
8594 "Xpad is a sticky note that strives to be simple, fault tolerant,
8595and customizable. Xpad consists of independent pad windows, each is
8596basically a text box in which notes can be written.")
8597 (license license:gpl3+)))
3ad7dce1
RS
8598
8599(define-public gucharmap
c60063ea
RW
8600 (let ((unicode-files
8601 '(("Blocks.txt"
1f8b5515 8602 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8603 ("DerivedAge.txt"
1f8b5515 8604 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8605 ("NamesList.txt"
1f8b5515 8606 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8607 ("Scripts.txt"
1f8b5515 8608 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8609 ("UnicodeData.txt"
1f8b5515 8610 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8611 ("Unihan.zip"
1f8b5515 8612 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8613 (package
8614 (name "gucharmap")
1f8b5515 8615 (version "12.0.1")
c60063ea
RW
8616 (source
8617 (origin
8618 (method url-fetch)
8619 (uri (string-append "mirror://gnome/sources/" name "/"
8620 (version-major+minor version) "/"
8621 name "-" version ".tar.xz"))
8622 (sha256
8623 (base32
1f8b5515 8624 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8625 (build-system glib-or-gtk-build-system)
8626 (arguments
8627 `(#:modules ((ice-9 match)
8628 (guix build glib-or-gtk-build-system)
8629 (guix build utils))
8630 #:configure-flags
8631 (list "--with-unicode-data=../unicode-data")
8632 #:phases
8633 (modify-phases %standard-phases
8634 (add-after 'unpack 'prepare-unicode-data
8635 (lambda* (#:key inputs #:allow-other-keys)
8636 (mkdir-p "../unicode-data")
8637 (with-directory-excursion "../unicode-data"
8638 (for-each (match-lambda
8639 ((file _)
8640 (install-file (assoc-ref inputs file) ".")))
8641 ',unicode-files))
8642 #t)))))
8643 (native-inputs
8644 `(("desktop-file-utils" ,desktop-file-utils)
8645 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8646 ("gobject-introspection" ,gobject-introspection)
8647 ("intltool" ,intltool)
8648 ("itstool" ,itstool)
8649 ("pkg-config" ,pkg-config)
8650 ,@(map (match-lambda
8651 ((file hash)
8652 `(,file
8653 ,(origin
8654 (method url-fetch)
8655 (uri (string-append
1f8b5515 8656 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8657 file))
8658 (sha256 (base32 hash))))))
8659 unicode-files)
8660 ("unzip" ,unzip)))
8661 (inputs
8662 `(("gtk+" ,gtk+)
8663 ("xmllint" ,libxml2)))
8664 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8665 (synopsis "Unicode character picker and font browser")
8666 (description
8667 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8668characters and categories for the installed fonts, and to examine their
8669detailed properties. It is an easy way to find the character you might
8670only know by its Unicode name or code point.")
c60063ea 8671 (license license:gpl3+))))
04ce840a
RS
8672
8673(define-public bluefish
8674 (package
8675 (name "bluefish")
ea8afaf3 8676 (version "2.2.10")
04ce840a
RS
8677 (source
8678 (origin
8679 (method url-fetch)
8680 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8681 name "-" version ".tar.gz"))
8682 (sha256
8683 (base32
ea8afaf3 8684 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
04ce840a
RS
8685 (build-system gnu-build-system)
8686 (native-inputs
8687 `(("desktop-file-utils" ,desktop-file-utils)
8688 ("intltool" ,intltool)
8689 ("pkg-config" ,pkg-config)))
8690 (inputs
8691 `(("enchant" ,enchant)
8692 ("gtk+" ,gtk+)
8693 ("python" ,python-2)
8694 ("xmllint" ,libxml2)
8695 ("gucharmap" ,gucharmap)))
8696 (home-page "http://bluefish.openoffice.nl")
8697 (synopsis "Web development studio")
8698 (description
8699 "Bluefish is an editor targeted towards programmers and web developers,
8700with many options to write web sites, scripts and other code.
8701Bluefish supports many programming and markup languages.")
8702 (license license:gpl3+)))
1f6a73ee
RS
8703
8704(define-public gnome-system-monitor
8705 (package
8706 (name "gnome-system-monitor")
083cffaf 8707 (version "3.32.1")
1f6a73ee
RS
8708 (source
8709 (origin
8710 (method url-fetch)
8711 (uri (string-append "mirror://gnome/sources/" name "/"
8712 (version-major+minor version) "/"
8713 name "-" version ".tar.xz"))
8714 (sha256
8715 (base32
083cffaf 8716 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8717 (build-system meson-build-system)
8718 (arguments
8719 '(#:glib-or-gtk? #t
8720 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8721 (native-inputs
8722 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8723 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8724 ("intltool" ,intltool)
8725 ("itstool" ,itstool)
8726 ("libgtop" ,libgtop)
4985d9aa 8727 ("polkit" ,polkit)
1f6a73ee
RS
8728 ("pkg-config" ,pkg-config)))
8729 (inputs
8730 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8731 ("gtk+" ,gtk+)
8732 ("gtkmm" ,gtkmm)
8733 ("librsvg" ,librsvg)
4985d9aa
RW
8734 ("libxml2" ,libxml2)
8735 ("libwnck" ,libwnck)))
1f6a73ee
RS
8736 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8737 (synopsis "Process viewer and system resource monitor for GNOME")
8738 (description
8739 "GNOME System Monitor is a GNOME process viewer and system monitor with
8740an attractive, easy-to-use interface. It has features, such as a tree view
8741for process dependencies, icons for processes, the ability to hide processes,
8742graphical time histories of CPU/memory/swap usage and the ability to
8743kill/reinice processes.")
8744 (license license:gpl2+)))
3e00ac47
SB
8745
8746(define-public python-pyatspi
8747 (package
8748 (name "python-pyatspi")
4f937a32 8749 (version "2.34.0")
3e00ac47
SB
8750 (source (origin
8751 (method url-fetch)
8752 (uri (string-append
8753 "mirror://gnome/sources/pyatspi/"
8754 (version-major+minor version)
8755 "/pyatspi-" version ".tar.xz"))
8756 (sha256
8757 (base32
4f937a32 8758 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8759 (build-system gnu-build-system)
b95af3f6
JL
8760 (arguments
8761 `(#:phases
8762 (modify-phases %standard-phases
8763 (add-before 'build 'fix-atk-load
8764 (lambda _
8765 (substitute* "pyatspi/__init__.py"
8766 (("from gi.repository import Atspi")
8767 "gi.require_version('Gtk', '3.0')
8768from gi.repository import Gtk
8769from gi.repository import Atspi"))
8770 #t)))))
3e00ac47
SB
8771 (native-inputs
8772 `(("pkg-config" ,pkg-config)))
8773 (inputs
8774 `(("python" ,python)
8775 ("python-pygobject" ,python-pygobject)))
8776 (synopsis "Python client bindings for D-Bus AT-SPI")
8777 (home-page "https://wiki.linuxfoundation.org/accessibility\
8778/atk/at-spi/at-spi_on_d-bus")
8779 (description
8780 "This package includes a python client library for the AT-SPI D-Bus
8781accessibility infrastructure.")
8782 (license license:lgpl2.0)
8783 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8784
8785(define-public orca
8786 (package
8787 (name "orca")
089e8585 8788 (version "3.32.0")
53201c0d
SB
8789 (source (origin
8790 (method url-fetch)
8791 (uri (string-append
8792 "mirror://gnome/sources/" name "/"
8793 (version-major+minor version) "/"
8794 name "-" version ".tar.xz"))
8795 (sha256
8796 (base32
089e8585 8797 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8798 (build-system glib-or-gtk-build-system)
8799 (arguments
8800 '(#:phases
8801 (modify-phases %standard-phases
8802 (add-before 'configure 'qualify-xkbcomp
8803 (lambda* (#:key inputs #:allow-other-keys)
8804 (let ((xkbcomp (string-append
8805 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8806 (substitute* "src/orca/orca.py"
8807 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8808 #t))
8809 (add-after 'install 'wrap-orca
8810 (lambda* (#:key outputs #:allow-other-keys)
8811 (let* ((out (assoc-ref outputs "out"))
8812 (prog (string-append out "/bin/orca")))
8813 (wrap-program prog
8814 `("GI_TYPELIB_PATH" ":" prefix
8815 (,(getenv "GI_TYPELIB_PATH")))
8816 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8817 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8818 `("PYTHONPATH" ":" prefix
8819 (,(getenv "PYTHONPATH")))))
8820 #t)))))
8821 (native-inputs
8822 `(("intltool" ,intltool)
8823 ("itstool" ,itstool)
8824 ("pkg-config" ,pkg-config)
8825 ("xmllint" ,libxml2)))
8826 (inputs
8827 `(("at-spi2-atk" ,at-spi2-atk)
8828 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8829 ("gstreamer" ,gstreamer)
8830 ("gst-plugins-base" ,gst-plugins-base)
8831 ("gst-plugins-good" ,gst-plugins-good)
8832 ("gtk+" ,gtk+)
8833 ("python" ,python)
8834 ("python-pygobject" ,python-pygobject)
8835 ("python-pyatspi" ,python-pyatspi)
8836 ("python-speechd" ,speech-dispatcher)
8837 ("xkbcomp" ,xkbcomp)))
8838 (synopsis
8839 "Screen reader for individuals who are blind or visually impaired")
8840 (home-page "https://wiki.gnome.org/Projects/Orca")
8841 (description
8842 "Orca is a screen reader that provides access to the graphical desktop
8843via speech and refreshable braille. Orca works with applications and toolkits
8844that support the Assistive Technology Service Provider Interface (AT-SPI).")
8845 (license license:lgpl2.1+)))
411ba511
LC
8846
8847(define-public gspell
8848 (package
8849 (name "gspell")
7a6bbe9b 8850 (version "1.8.2")
411ba511
LC
8851 (source (origin
8852 (method url-fetch)
8853 (uri (string-append "mirror://gnome/sources/" name "/"
8854 (version-major+minor version) "/"
8855 name "-" version ".tar.xz"))
8856 (sha256
8857 (base32
7a6bbe9b 8858 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8859 (patches (search-patches "gspell-dash-test.patch"))))
8860 (build-system glib-or-gtk-build-system)
8861 (arguments
8862 '(#:phases
8863 (modify-phases %standard-phases
8864 (add-before 'check 'pre-check
8865 (lambda* (#:key inputs #:allow-other-keys)
8866 ;; Tests require a running X server.
8867 (system "Xvfb :1 &")
8868 (setenv "DISPLAY" ":1")
8869
8870 ;; For the missing /etc/machine-id.
8871 (setenv "DBUS_FATAL_WARNINGS" "0")
8872
8873 ;; Allow Enchant and its Aspell backend to find the en_US
8874 ;; dictionary.
8875 (setenv "ASPELL_DICT_DIR"
8876 (string-append (assoc-ref inputs "aspell-dict-en")
8877 "/lib/aspell"))
8878 #t)))))
8879 (inputs
eccd35be 8880 `(("gtk+" ,gtk+)
a801ae4c
TGR
8881 ("glib" ,glib)
8882 ("iso-codes" ,iso-codes)))
411ba511
LC
8883 (native-inputs
8884 `(("glib" ,glib "bin")
26ba3f07 8885 ("gobject-introspection" ,gobject-introspection)
411ba511
LC
8886 ("pkg-config" ,pkg-config)
8887 ("xmllint" ,libxml2)
8888
8889 ;; For tests.
a801ae4c 8890 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8891 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8892 (propagated-inputs
9b1bb757 8893 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8894 (home-page "https://wiki.gnome.org/Projects/gspell")
8895 (synopsis "GNOME's alternative spell checker")
8896 (description
8897 "gspell provides a flexible API to add spell-checking to a GTK+
8898application. It provides a GObject API, spell-checking to text entries and
8899text views, and buttons to choose the language.")
8900 (license license:gpl2+)))
d1d739fa
CM
8901
8902(define-public gnome-planner
8903 (package
8904 (name "gnome-planner")
8905 (version "0.14.6")
8906 (source (origin
8907 (method url-fetch)
8908 (uri (string-append "mirror://gnome/sources/planner/"
8909 (version-major+minor version) "/planner-"
8910 version ".tar.xz"))
8911 (sha256
8912 (base32
8913 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8914 (build-system glib-or-gtk-build-system)
8915 (arguments
8916 ;; Disable the Python bindings because the Planner program functions
8917 ;; without them, and (as of 2017-06-13) we have not packaged all of
8918 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8919 `(#:configure-flags
8920 (list "--disable-python"
8921 ,@(if (string=? "aarch64-linux" (%current-system))
8922 '("--build=aarch64-unknown-linux-gnu")
8923 '()))))
d1d739fa
CM
8924 (inputs
8925 `(("libgnomecanvas" ,libgnomecanvas)
8926 ("libgnomeui" ,libgnomeui)
8927 ("libglade" ,libglade)
8928 ("gnome-vfs" ,gnome-vfs)
8929 ("gconf" ,gconf)
8930 ("libxml2" ,libxml2)
8931 ("libxslt" ,libxslt)
8932 ("gtk+" ,gtk+)
8933 ("glib" ,glib)))
8934 (native-inputs
8935 `(("intltool" ,intltool)
8936 ("scrollkeeper" ,scrollkeeper)
8937 ("pkg-config" ,pkg-config)))
8938 (home-page "https://wiki.gnome.org/Apps/Planner")
8939 (synopsis "Project management software for the GNOME desktop")
8940 (description
8941 "GNOME Planner is a project management tool based on the Work Breakdown
8942Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8943the resources, tasks, and constraints that you define, Planner generates
8944various views into a project. For example, Planner can show a Gantt chart of
8945the project. It can show a detailed summary of tasks including their
8946duration, cost, and current progress. It can also show a report of resource
8947utilization that highlights under-utilized and over-utilized resources. These
8948views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8949 (license license:gpl2+)))
64fce637
RS
8950
8951(define-public lollypop
8952 (package
8953 (name "lollypop")
ca32627a 8954 (version "1.2.7")
64fce637
RS
8955 (source
8956 (origin
8957 (method url-fetch)
b98eace8 8958 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 8959 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 8960 "lollypop-" version ".tar.xz"))
64fce637 8961 (sha256
ca32627a 8962 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 8963 (build-system meson-build-system)
64fce637
RS
8964 (arguments
8965 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
8966 ,@%meson-build-system-modules)
8967 #:glib-or-gtk? #t
5fc9b6c1
EF
8968 #:tests? #f ; no test suite
8969 #:phases
8970 (modify-phases %standard-phases
5fc9b6c1
EF
8971 (add-after 'install 'wrap-program
8972 (lambda* (#:key outputs #:allow-other-keys)
8973 (let ((out (assoc-ref outputs "out"))
8974 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8975 (wrap-program (string-append out "/bin/lollypop")
8976 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8977 #t))
8ac8b3b3
TGR
8978 (add-after 'install 'wrap-python
8979 (@@ (guix build python-build-system) wrap))
8980 (add-after 'install 'wrap-glib-or-gtk
8981 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
8982 (native-inputs
8983 `(("intltool" ,intltool)
8984 ("itstool" ,itstool)
aa498fc0
TD
8985 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8986 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
8987 ("pkg-config" ,pkg-config)))
8988 (inputs
8989 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 8990 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 8991 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
8992 ("libnotify" ,libnotify)
8993 ("libsecret" ,libsecret)
8994 ("libsoup" ,libsoup)
8995 ("python" ,python)
8996 ("python-beautifulsoup4" ,python-beautifulsoup4)
8997 ("python-gst" ,python-gst)
d029afdd 8998 ("python-pil" ,python-pillow)
64fce637 8999 ("python-pycairo" ,python-pycairo)
7460f346 9000 ("python-pygobject" ,python-pygobject-3.34)
64fce637
RS
9001 ("python-pylast" ,python-pylast)
9002 ("totem-pl-parser" ,totem-pl-parser)
9003 ("webkitgtk" ,webkitgtk)))
9004 (propagated-inputs
9005 `(;; gst-plugins-base is required to start Lollypop,
9006 ;; the others are required to play streaming.
64fce637
RS
9007 ("gst-plugins-good" ,gst-plugins-good)
9008 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9009 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9010 (synopsis "GNOME music playing application")
9011 (description
9012 "Lollypop is a music player designed to play well with GNOME desktop.
9013Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9014from artists and tracks from the web. It also fetches cover artworks
9015automatically and it can stream songs from online music services and charts.")
9016 (license license:gpl3+)))
d831d49d
AW
9017
9018(define-public gnome-video-effects
9019 (package
9020 (name "gnome-video-effects")
9021 (version "0.4.3")
9022 (source (origin
9023 (method url-fetch)
9024 (uri (string-append "mirror://gnome/sources/" name "/"
9025 (version-major+minor version) "/" name "-"
9026 version ".tar.xz"))
9027 (sha256
9028 (base32
9029 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9030 (build-system glib-or-gtk-build-system)
9031 (arguments
9032 `(#:out-of-source? #f))
9033 (native-inputs
9034 `(("glib:bin" ,glib "bin")
9035 ("intltool" ,intltool)
9036 ("gettext" ,gettext-minimal)
9037 ("pkg-config" ,pkg-config)))
9038 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9039 (synopsis "Video effects for Cheese and other GNOME applications")
9040 (description
9041 "A collection of GStreamer video filters and effects to be used in
9042photo-booth-like software, such as Cheese.")
9043 (license license:gpl2+)))
3511c780
AW
9044
9045(define-public cheese
9046 (package
9047 (name "cheese")
dd33b337 9048 (version "3.32.1")
3511c780
AW
9049 (source (origin
9050 (method url-fetch)
9051 (uri (string-append "mirror://gnome/sources/" name "/"
9052 (version-major+minor version) "/" name "-"
9053 version ".tar.xz"))
9054 (sha256
9055 (base32
dd33b337 9056 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
9057 (arguments
9058 ;; Tests require GDK.
9059 `(#:tests? #f
9060 #:phases
9061 (modify-phases %standard-phases
9062 (add-before 'install 'skip-gtk-update-icon-cache
9063 (lambda _
9064 ;; Don't create 'icon-theme.cache'
9065 (substitute* "Makefile"
9066 (("gtk-update-icon-cache") (which "true")))
9067 #t))
9068 (add-after 'install 'wrap-cheese
9069 (lambda* (#:key inputs outputs #:allow-other-keys)
9070 (let ((out (assoc-ref outputs "out"))
9071 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9072 (wrap-program (string-append out "/bin/cheese")
9073 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9074 #t)))))
9075 (build-system glib-or-gtk-build-system)
9076 (native-inputs
9077 `(("glib:bin" ,glib "bin")
9078 ("intltool" ,intltool)
9079 ("itstool" ,itstool)
9080 ("libxml2" ,libxml2)
9081 ("pkg-config" ,pkg-config)
9082 ("vala" ,vala)))
9083 (propagated-inputs
6a19f03e
RW
9084 `(("gnome-video-effects" ,gnome-video-effects)
9085 ("clutter" ,clutter)
3511c780
AW
9086 ("clutter-gst" ,clutter-gst)
9087 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9088 ("libcanberra" ,libcanberra)
3511c780
AW
9089 ("gdk-pixbuf" ,gdk-pixbuf)
9090 ("glib" ,glib)
6a19f03e
RW
9091 ("gstreamer" ,gstreamer)))
9092 (inputs
9093 `(("gnome-desktop" ,gnome-desktop)
3511c780 9094 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9095 ("gst-plugins-base" ,gst-plugins-base)
9096 ("gst-plugins-bad" ,gst-plugins-bad)
9097 ("gtk+" ,gtk+)
3511c780
AW
9098 ("libx11" ,libx11)
9099 ("libxtst" ,libxtst)))
9100 (home-page "https://wiki.gnome.org/Apps/Cheese")
9101 (synopsis "Webcam photo booth software for GNOME")
9102 (description
9103 "Cheese uses your webcam to take photos and videos. Cheese can also
9104apply fancy special effects and lets you share the fun with others.")
9105 (license license:gpl2+)))
3c5dbd2b 9106
9107(define-public sound-juicer
9108 (package
9109 (name "sound-juicer")
9110 (version "3.24.0")
9111 (source
9112 (origin
9113 (method url-fetch)
9114 (uri (string-append "mirror://gnome/sources/" name "/"
9115 (version-major+minor version) "/"
9116 name "-" version ".tar.xz"))
9117 (sha256
9118 (base32
9119 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9120 (build-system glib-or-gtk-build-system)
9121 (native-inputs
9122 `(("desktop-file-utils" ,desktop-file-utils)
9123 ("intltool" ,intltool)
9124 ("itstool" ,itstool)
9125 ("pkg-config" ,pkg-config)
9126 ("xmllint" ,libxml2)))
9127 (inputs
9128 `(("gtk+" ,gtk+)
9129 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9130 ("gstreamer" ,gstreamer)
9131 ("gst-plugins-base" ,gst-plugins-base)
9132 ("gst-plugins-good" ,gst-plugins-good)
9133 ("iso-codes" ,iso-codes)
9134 ("libbrasero-media3" ,brasero)
9135 ("libcanberra" ,libcanberra)
9136 ("libdiscid" ,libdiscid)
9137 ("libmusicbrainz" ,libmusicbrainz)
9138 ("neon" ,neon)))
9139 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9140 (synopsis "Audio music cd ripper")
9141 (description "Sound Juicer extracts audio from compact discs and convert it
9142into audio files that a personal computer or digital audio player can play.
9143It supports ripping to any audio codec supported by a GStreamer plugin, such as
9144mp3, Ogg Vorbis and FLAC")
9145 (license license:gpl2+)))
4e3fdeb7 9146
0d3f1708
CB
9147(define-public soundconverter
9148 (package
9149 (name "soundconverter")
fa75a213 9150 (version "3.0.1")
0d3f1708
CB
9151 (source
9152 (origin
9153 (method url-fetch)
9154 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9155 version "/+download/"
9156 "soundconverter-" version ".tar.xz"))
9157
9158 (sha256
fa75a213 9159 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
9160 (patches
9161 (search-patches
9162 "soundconverter-remove-gconf-dependency.patch"))))
9163 (build-system glib-or-gtk-build-system)
9164 (arguments
9165 `(#:imported-modules ((guix build python-build-system)
9166 (guix build glib-or-gtk-build-system)
9167 ,@%gnu-build-system-modules)
9168
9169 #:modules ((guix build glib-or-gtk-build-system)
9170 (guix build utils)
9171 ((guix build gnu-build-system) #:prefix gnu:)
9172 ((guix build python-build-system) #:prefix python:))
9173
9174 #:phases
9175 (modify-phases %standard-phases
0d3f1708
CB
9176 (add-after 'install 'wrap-soundconverter-for-python
9177 (assoc-ref python:%standard-phases 'wrap))
9178 (add-after 'install 'wrap-soundconverter
9179 (lambda* (#:key inputs outputs #:allow-other-keys)
9180 (let ((out (assoc-ref outputs "out"))
9181 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9182 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9183 (wrap-program (string-append out "/bin/soundconverter")
9184 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9185 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9186 #t)))))
9187 (native-inputs
9188 `(("intltool" ,intltool)
9189 ("pkg-config" ,pkg-config)
9190 ("glib:bin" ,glib "bin")))
9191 (inputs
9192 `(("gtk+" ,gtk+)
9193 ("python" ,python)
9194 ("python-pygobject" ,python-pygobject)
9195 ("gstreamer" ,gstreamer)
9196 ("gst-plugins-base" ,gst-plugins-base)))
9197 (home-page "http://soundconverter.org/")
9198 (synopsis "Convert between audio formats with a graphical interface")
9199 (description
9200 "SoundConverter supports converting between many audio formats including
9201Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9202configurable file renaming. ")
9203 (license license:gpl3)))
9204
4e3fdeb7 9205(define-public workrave
89f2d736
TGR
9206 (package
9207 (name "workrave")
aa51d92c 9208 (version "1.10.34")
89f2d736
TGR
9209 (source
9210 (origin
9211 (method git-fetch)
9212 (uri (git-reference
9213 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9214 (commit (string-append "v" (string-map
9215 (match-lambda (#\. #\_) (chr chr))
9216 version)))))
89f2d736
TGR
9217 (file-name (git-file-name name version))
9218 (sha256
aa51d92c 9219 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
89f2d736 9220 (build-system glib-or-gtk-build-system)
d1c96847
MC
9221 (inputs `(("glib" ,glib)
9222 ("gtk+" ,gtk+)
9223 ("gdk-pixbuf" ,gdk-pixbuf)
9224 ("gtkmm" ,gtkmm)
9225 ("glibmm" ,glibmm)
9226 ("libx11" ,libx11)
9227 ("libxtst" ,libxtst)
9228 ("dconf" ,dconf)
9229 ("libice" ,libice)
9230 ("libsm" ,libsm)
9231 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9232 (native-inputs `(("boost" ,boost)
89f2d736
TGR
9233 ("pkg-config" ,pkg-config)
9234 ("gettext" ,gnu-gettext)
9235 ("autoconf" ,autoconf)
9236 ("autoconf-archive" , autoconf-archive)
9237 ("automake" ,automake)
9238 ("libtool" ,libtool)
9239 ("intltool" ,intltool)
89f2d736 9240 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9241 ("python3" ,python-3)
9242 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9243 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9244 (description
9245 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9246repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9247micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9248 (home-page "http://www.workrave.org")
9249 (license license:gpl3+)))
312afa7d
LC
9250
9251(define-public ghex
9252 (package
9253 (name "ghex")
3748992a 9254 (version "3.18.4")
312afa7d
LC
9255 (source (origin
9256 (method url-fetch)
2fbab848 9257 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9258 (version-major+minor version) "/"
2fbab848 9259 "ghex-" version ".tar.xz"))
312afa7d
LC
9260 (sha256
9261 (base32
3748992a
KK
9262 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9263 (build-system meson-build-system)
9264 (arguments
9265 '(#:glib-or-gtk? #t
9266 #:phases
9267 (modify-phases %standard-phases
9268 (add-after 'unpack 'skip-gtk-update-icon-cache
9269 ;; Don't create 'icon-theme.cache'.
9270 (lambda _
9271 (substitute* "meson_post_install.py"
9272 (("gtk-update-icon-cache") (which "true")))
9273 #t)))))
312afa7d
LC
9274 (native-inputs
9275 `(("pkg-config" ,pkg-config)
3748992a 9276 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9277 ("gnome-common" ,gnome-common)
9278 ("which" ,which)
9279 ("intltool" ,intltool)
9280 ("yelp-tools" ,yelp-tools)
2fbab848 9281 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9282 (inputs
9283 `(("atk" ,atk)
9284 ("gtk" ,gtk+)))
9285 (synopsis "GNOME hexadecimal editor")
9286 (description "The GHex program can view and edit files in two ways:
9287hexadecimal or ASCII. It is useful for editing binary files in general.")
9288 (home-page "https://wiki.gnome.org/Apps/Ghex")
9289 (license license:gpl2)))
4b2ed6c2
RW
9290
9291(define-public libdazzle
9292 (package
9293 (name "libdazzle")
64fa66ba 9294 (version "3.33.90")
4b2ed6c2
RW
9295 (source (origin
9296 (method url-fetch)
687b4909 9297 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9298 (version-major+minor version) "/"
687b4909 9299 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9300 (sha256
9301 (base32
64fa66ba 9302 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
9303 (build-system meson-build-system)
9304 (arguments
9305 `(#:phases
9306 (modify-phases %standard-phases
4b2ed6c2
RW
9307 (add-before 'check 'pre-check
9308 (lambda _
9309 ;; Tests require a running X server.
9310 (system "Xvfb :1 &")
9311 (setenv "DISPLAY" ":1")
9312 #t)))))
9313 (native-inputs
687b4909 9314 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9315 ("pkg-config" ,pkg-config)
687b4909 9316 ;; For tests.
ff337525 9317 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9318 (inputs
9319 `(("glib" ,glib)
9320 ("gobject-introspection" ,gobject-introspection)
9321 ("gtk+" ,gtk+)
9322 ("vala" ,vala)))
9323 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9324 (synopsis "Companion library to GObject and Gtk+")
9325 (description "The libdazzle library is a companion library to GObject and
9326Gtk+. It provides various features that the authors wish were in the
9327underlying library but cannot for various reasons. In most cases, they are
9328wildly out of scope for those libraries. In other cases, they are not quite
9329generic enough to work for everyone.")
9330 (license license:gpl3+)))
7d3bb433
RW
9331
9332(define-public evolution
9333 (package
9334 (name "evolution")
06141f83 9335 (version "3.32.4")
7d3bb433
RW
9336 (source (origin
9337 (method url-fetch)
9338 (uri (string-append "mirror://gnome/sources/evolution/"
9339 (version-major+minor version) "/"
9340 "evolution-" version ".tar.xz"))
9341 (sha256
9342 (base32
06141f83 9343 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
9344 (build-system cmake-build-system)
9345 (arguments
5229bea1
KK
9346 `(#:imported-modules (,@%cmake-build-system-modules
9347 (guix build glib-or-gtk-build-system))
9348 #:modules ((guix build cmake-build-system)
9349 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9350 (guix build utils))
9351 #:configure-flags
7d3bb433 9352 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9353 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9354 ; in four years and cannot be built.
5229bea1
KK
9355 #:phases
9356 (modify-phases %standard-phases
9357 ;; The build system attempts to install user interface modules to the
9358 ;; output directory of the "evolution-data-server" package. This
9359 ;; change redirects that change.
9360 (add-after 'unpack 'patch-ui-module-dir
9361 (lambda* (#:key outputs #:allow-other-keys)
9362 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9363 (("\\$\\{edsuimoduledir\\}")
9364 (string-append (assoc-ref outputs "out")
9365 "/lib/evolution-data-server/ui-modules")))
9366 #t))
9367 (add-after 'install 'glib-or-gtk-compile-schemas
9368 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9369 (add-after 'install 'glib-or-gtk-wrap
9370 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9371 (native-inputs
ad6e168b 9372 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9373 ("pkg-config" ,pkg-config)
9374 ("intltool" ,intltool)
9375 ("itstool" ,itstool)))
9376 (inputs
9377 `(("enchant" ,enchant)
9378 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9379 ("gcr" ,gcr)
ad6e168b 9380 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9381 ("gnome-autoar" ,gnome-autoar)
9382 ("gnome-desktop" ,gnome-desktop)
9383 ("gtkspell3" ,gtkspell3)
9384 ("highlight" ,highlight)
9385 ("libcanberra" ,libcanberra)
b63c06f1 9386 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
9387 ("libgweather" ,libgweather)
9388 ("libnotify" ,libnotify)
9389 ("libsoup" ,libsoup)
9390 ("nss" ,nss)
9391 ("openldap" ,openldap)
9392 ("webkitgtk" ,webkitgtk)
9393 ("ytnef" ,ytnef)))
9394 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9395 (synopsis "Manage your email, contacts and schedule")
9396 (description "Evolution is a personal information management application
9397that provides integrated mail, calendaring and address book
9398functionality.")
9399 ;; See COPYING for details.
23dbe621 9400 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9401 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9402 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9403
9404(define-public gthumb
9405 (package
9406 (name "gthumb")
8280676b 9407 (version "3.8.2")
169d63f5
AT
9408 (source (origin
9409 (method url-fetch)
9410 (uri (string-append "mirror://gnome/sources/gthumb/"
9411 (version-major+minor version) "/"
9412 "gthumb-" version ".tar.xz"))
9413 (sha256
9414 (base32
8280676b 9415 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9416 (build-system meson-build-system)
9417 (arguments
9418 `(#:glib-or-gtk? #t
9419 #:configure-flags
9420 ;; Ensure the RUNPATH contains all installed library locations.
9421 (list (string-append "-Dc_link_args=-Wl,-rpath="
9422 (assoc-ref %outputs "out")
9423 "/lib/gthumb/extensions")
9424 (string-append "-Dcpp_link_args=-Wl,-rpath="
9425 (assoc-ref %outputs "out")
9426 "/lib/gthumb/extensions"))))
9427 (native-inputs
9428 `(("pkg-config" ,pkg-config)
9429 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9430 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9431 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9432 ("intltool" ,intltool)
9433 ("itstool" ,itstool)))
9434 (inputs
9435 `(("exiv2" ,exiv2)
9436 ("gtk" ,gtk+)
9437 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9438 ("gstreamer" ,gstreamer)
9439 ("clutter" ,clutter)
9440 ("clutter-gst" ,clutter-gst)
9441 ("clutter-gtk" ,clutter-gtk)
9442 ("libjpeg" ,libjpeg)
9443 ("libtiff" ,libtiff)
9444 ("libraw" ,libraw)))
9445 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9446 (synopsis "GNOME image viewer and browser")
9447 (description "GThumb is an image viewer, browser, organizer, editor and
9448advanced image management tool")
9449 (license license:gpl2+)))
08be02be
AT
9450
9451(define-public terminator
9452 (package
9453 (name "terminator")
9454 (version "1.91")
9455 (source (origin
9456 (method url-fetch)
9457 (uri (string-append "https://launchpad.net/" name "/"
9458 "gtk3/" version "/" "+download/"
9459 name "-" version ".tar.gz"))
9460 (sha256
9461 (base32
9462 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9463 (build-system python-build-system)
9464 (native-inputs
9465 `(("intltool" ,intltool)
9466 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9467 ("gettext" ,gettext-minimal)
9468 ("pkg-config" ,pkg-config)))
9469 (inputs
9470 `(("cairo" ,cairo)
9471 ("gobject-introspection" ,gobject-introspection)
96681d4b 9472 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9473 ("python2-pycairo" ,python2-pycairo)
9474 ("python2-pygobject" ,python2-pygobject)
9475 ("python2-psutil" ,python2-psutil)
9476 ("vte" ,vte)))
9477 (arguments
96681d4b
TGR
9478 `(#:python ,python-2 ; Python 3 isn't supported
9479 #:imported-modules ((guix build glib-or-gtk-build-system)
9480 ,@%python-build-system-modules)
9481 #:modules ((guix build python-build-system)
9482 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9483 (guix build utils))
08be02be
AT
9484 #:phases
9485 (modify-phases %standard-phases
9486 (add-after
9487 'install 'wrap-program
9488 (lambda* (#:key outputs #:allow-other-keys)
9489 (let ((prog (string-append (assoc-ref outputs "out")
9490 "/bin/terminator")))
9491 (wrap-program prog
9492 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9493 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9494 #t)))
9495 (add-after 'wrap-program 'glib-or-gtk-wrap
9496 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9497 (home-page "https://gnometerminator.blogspot.com/")
9498 (synopsis "Store and run multiple GNOME terminals in one window")
9499 (description
9500 "Terminator allows you to run multiple GNOME terminals in a grid and
9501+tabs, and it supports drag and drop re-ordering of terminals.")
9502 (license license:gpl2)))
213315d4
JF
9503
9504(define-public libhandy
9505 (package
9506 (name "libhandy")
f6501b9f 9507 (version "0.0.12")
213315d4
JF
9508 (source
9509 (origin
9510 (method git-fetch)
9511 (uri (git-reference
9512 (url "https://source.puri.sm/Librem5/libhandy")
9513 (commit (string-append "v" version))))
9514 (file-name (git-file-name name version))
9515 (sha256
f6501b9f 9516 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9517 (build-system meson-build-system)
9518 (arguments
9519 `(#:configure-flags
9520 '("-Dglade_catalog=disabled"
9521 "-Dgtk_doc=true")
9522 #:phases
9523 (modify-phases %standard-phases
213315d4
JF
9524 (add-before 'check 'pre-check
9525 (lambda _
9526 ;; Tests require a running X server.
9527 (system "Xvfb :1 &")
9528 (setenv "DISPLAY" ":1")
9529 #t)))))
9530 (inputs
9531 `(("gtk+" ,gtk+)))
9532 (native-inputs
9533 `(("glib:bin" ,glib "bin")
9534 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9535 ("vala" ,vala)
9536 ("gtk-doc" ,gtk-doc)
9537 ("pkg-config" ,pkg-config)
9538 ("gettext" ,gettext-minimal)
d41ee146
TGR
9539
9540 ;; Test suite dependencies.
ff337525 9541 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9542 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9543 (home-page "https://source.puri.sm/Librem5/libhandy")
9544 (synopsis "Library full of GTK+ widgets for mobile phones")
9545 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9546interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9547for usage on small and big screens.")
213315d4 9548 (license license:lgpl2.1+)))
a830d14d
GL
9549
9550(define-public libgit2-glib
9551 (package
9552 (name "libgit2-glib")
9553 (version "0.28.0.1")
9554 (source (origin
9555 (method url-fetch)
9556 (uri (string-append "mirror://gnome/sources/" name "/"
9557 (version-major+minor version) "/"
9558 name "-" version ".tar.xz"))
9559 (sha256
9560 (base32
9561 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9562 (build-system meson-build-system)
9563 (native-inputs
9564 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9565 ("gobject-introspection" ,gobject-introspection)
9566 ("intltool" ,intltool)
9567 ("libssh2" ,libssh2)
9568 ("pkg-config" ,pkg-config)
9569 ("python-pygobject" ,python-pygobject)
9570 ("python-wrapper" ,python-wrapper)
9571 ("vala" ,vala)))
9572 (inputs
9573 `(("glib" ,glib)
9574 ("libgit2" ,libgit2)))
9575 (synopsis "GLib wrapper around the libgit2 Git access library")
9576 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9577access library. It only implements the core plumbing functions, not really the
9578higher level porcelain stuff.")
9579 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9580 (license license:gpl2+)))
93beace0 9581
08db81c9
LP
9582(define-public gitg
9583 (package
9584 (name "gitg")
9585 (version "3.32.1")
9586 (source (origin
9587 (method url-fetch)
9588 (uri (string-append "mirror://gnome/sources/" name "/"
9589 (version-major+minor version) "/"
9590 name "-" version ".tar.xz"))
9591 (sha256
9592 (base32
9593 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9594 (build-system meson-build-system)
9595 (arguments
9596 `(#:glib-or-gtk? #t
9597 #:phases
9598 (modify-phases %standard-phases
9599 (add-after 'unpack 'disable-post-install-partially
9600 (lambda _
9601 (substitute* "meson_post_install.py"
9602 (("'python'") ; there are no python sources to compile
9603 (string-append "'" (which "true") "'"))
9604 (("gtk-update-icon-cache") (which "true")))
9605 #t))
9606 (add-after 'unpack 'fix-test-sources
9607 (lambda _
9608 (substitute* "tests/libgitg/test-commit.vala"
9609 (("/bin/bash") (which "bash")))
9610 #t))
9611 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9612 (lambda* (#:key outputs #:allow-other-keys)
9613 (let ((prog (string-append (assoc-ref outputs "out")
9614 "/bin/gitg")))
9615 (wrap-program prog
9616 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9617 #t))))))
9618 (inputs
9619 `(("glib" ,glib)
9620 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9621 ("gtk+" ,gtk+)
9622 ("gtkspell3" ,gtkspell3)
9623 ("gtksourceview" ,gtksourceview-3)
9624 ("json-glib" ,json-glib)
9625 ("libdazzle" ,libdazzle)
9626 ("libgee" ,libgee)
9627 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9628 ("libgit2-glib" ,libgit2-glib)
9629 ("libpeas" ,libpeas)
9630 ("libsecret" ,libsecret)
9631 ("libsoup" ,libsoup)
9632 ("libxml2" ,libxml2)))
9633 (native-inputs
9634 `(("glib:bin" ,glib "bin")
9635 ("gtk+:bin" ,gtk+ "bin")
9636 ("gobject-introspection" ,gobject-introspection)
9637 ("intltool" ,intltool)
9638 ("pkg-config" ,pkg-config)
9639 ("vala" ,vala)))
9640 (synopsis "Graphical user interface for git")
9641 (description
9642 "gitg is a graphical user interface for git. It aims at being a small,
9643fast and convenient tool to visualize the history of git repositories.
9644Besides visualization, gitg also provides several utilities to manage your
9645repository and commit your work.")
9646 (home-page "https://wiki.gnome.org/Apps/Gitg")
9647 (license license:gpl2+)))
9648
1e600ed0
RW
9649(define-public gamin
9650 (package
9651 (name "gamin")
9652 (version "0.1.10")
9653 (source (origin
9654 (method url-fetch)
9655 (uri (string-append "mirror://gnome/sources/" name "/"
9656 (version-major+minor version) "/"
9657 name "-" version ".tar.bz2"))
9658 (sha256
9659 (base32
9660 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9661 (build-system gnu-build-system)
9662 (arguments
9663 `(#:phases
9664 (modify-phases %standard-phases
9665 (add-after 'unpack 'remove-deprecated-macro
9666 (lambda _
9667 (substitute* '("server/gam_node.c"
9668 "server/gam_subscription.h"
9669 "server/gam_node.h"
9670 "server/gam_subscription.c")
9671 (("G_CONST_RETURN") "const"))
9672 #t)))))
9673 (inputs
9674 `(("glib" ,glib)))
9675 (native-inputs
9676 `(("intltool" ,intltool)
9677 ("pkg-config" ,pkg-config)))
9678 (home-page "https://people.gnome.org/~veillard/gamin/")
9679 (synopsis "File alteration monitor")
9680 (description
9681 "Gamin is a file and directory monitoring system defined to be a subset
9682of the FAM (File Alteration Monitor) system. This is a service provided by a
9683library which allows to detect when a file or a directory has been modified.")
9684 (license license:gpl2+)))
9685
93beace0
DW
9686(define-public gnome-mahjongg
9687 (package
9688 (name "gnome-mahjongg")
9689 (version "3.35.1")
9690 (source (origin
9691 (method git-fetch)
9692 (uri (git-reference
9693 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9694 (commit version)))
9695 (file-name (git-file-name name version))
9696 (sha256
9697 (base32
9698 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9699 (build-system meson-build-system)
9700 (arguments
9701 `(#:glib-or-gtk? #t))
9702 (native-inputs
9703 `(("appstream-glib" ,appstream-glib)
9704 ("gettext" ,gettext-minimal)
9705 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9706 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9707 ("itstool" ,itstool)
9708 ("pkg-config" ,pkg-config)
9709 ("vala" ,vala)))
9710 (propagated-inputs
9711 `(("dconf" ,dconf)))
9712 (inputs
9713 `(("glib" ,glib)
9714 ("gtk+" ,gtk+)
9715 ("librsvg" ,librsvg)))
9716 (synopsis "Mahjongg tile-matching game")
9717 (description "GNOME Mahjongg is a game based on the classic Chinese
9718tile-matching game Mahjong. It features multiple board layouts, tile themes,
9719and a high score table.")
9720 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9721 (license license:gpl2+)))
f825476c 9722
76ea7632
RG
9723(define-public gnome-themes-extra
9724 (package
9725 (name "gnome-themes-extra")
9726 (version "3.28")
9727 (source
9728 (origin
9729 (method url-fetch)
9730 (uri (string-append "mirror://gnome/sources/" name "/"
9731 (version-major+minor version) "/" name "-"
9732 version ".tar.xz"))
9733 (sha256
9734 (base32
9735 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9736 (build-system gnu-build-system)
885424bf
RG
9737 (arguments
9738 '(#:configure-flags
9739 ;; Don't create 'icon-theme.cache'.
9740 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9741 (true (string-append coreutils "/bin/true")))
9742 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9743 (native-inputs
9744 `(("glib:bin" ,glib "bin")
9745 ("intltool" ,intltool)
9746 ("pkg-config" ,pkg-config)))
9747 (inputs
9748 `(("glib" ,glib)
9749 ("gtk+" ,gtk+)
9750 ("gtk+-2" ,gtk+-2)
9751 ("librsvg" ,librsvg)
9752 ("libxml2" ,libxml2)))
9753 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9754 (synopsis "GNOME Extra Themes")
9755 (description "This package provides themes and related elements that don't
9756really fit in other upstream packages. It offers legacy support for GTK+ 2
9757versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9758index files needed for Adwaita to be used outside of GNOME.")
9759 (license license:lgpl2.1+)))
9760
f825476c
LP
9761(define-public polari
9762 (package
9763 (name "polari")
9764 (version "3.32.2")
9765 (source (origin
9766 (method url-fetch)
9767 (uri (string-append "mirror://gnome/sources/polari/"
9768 (version-major+minor version)
9769 "/polari-" version ".tar.xz"))
9770 (sha256
9771 (base32
9772 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9773 (build-system meson-build-system)
9774 (arguments
9775 `(#:glib-or-gtk? #t
9776 #:phases
9777 (modify-phases %standard-phases
9778 (add-after 'unpack 'skip-gtk-update-icon-cache
9779 (lambda _
9780 (substitute* "meson/meson-postinstall.sh"
9781 (("gtk-update-icon-cache") (which "true")))
9782 #t))
9783 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9784 (lambda* (#:key outputs #:allow-other-keys)
9785 (let ((prog (string-append (assoc-ref outputs "out")
9786 "/bin/polari")))
9787 (wrap-program prog
9788 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9789 #t))))))
9790 (inputs
9791 `(("glib" ,glib)
9792 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9793 ("gspell" ,gspell)
9794 ("gtk+" ,gtk+)
9795 ("gjs" ,gjs)
9796 ("libsecret" ,libsecret)
9797 ("libsoup" ,libsoup)
9798 ("telepathy-glib" ,telepathy-glib)
9799 ("telepathy-logger" ,telepathy-logger)))
9800 (native-inputs
9801 `(("glib:bin" ,glib "bin")
9802 ("gobject-introspection" ,gobject-introspection)
9803 ("intltool" ,intltool)
9804 ("pkg-config" ,pkg-config)
9805 ("yelp-tools" ,yelp-tools)))
9806 (propagated-inputs
9807 `(("telepathy-idle" ,telepathy-idle)
9808 ("telepathy-mission-control" ,telepathy-mission-control)))
9809 (synopsis "Simple IRC Client")
9810 (description
9811 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9812integrate seamlessly with the GNOME desktop.")
9813 (home-page "https://wiki.gnome.org/Apps/Polari")
9814 (license license:gpl2+)))