gnu: Remove duplicate module imports from (gnu packages gnome).
[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 webkit)
169 #:use-module (gnu packages xdisorg)
170 #:use-module (gnu packages xiph)
171 #:use-module (gnu packages xml)
d633f2f6 172 #:use-module (gnu packages xorg)
a76d0f03 173 #:use-module (gnu artwork)
8f523eb9 174 #:use-module (guix build-system cargo)
b29909b4
TGR
175 #:use-module (guix build-system cmake)
176 #:use-module (guix build-system glib-or-gtk)
177 #:use-module (guix build-system gnu)
178 #:use-module (guix build-system meson)
08be02be 179 #:use-module (guix build-system python)
b29909b4
TGR
180 #:use-module (guix build-system trivial)
181 #:use-module (guix download)
182 #:use-module (guix git-download)
183 #:use-module ((guix licenses) #:prefix license:)
184 #:use-module (guix packages)
185 #:use-module (guix utils)
a76d0f03 186 #:use-module (guix gexp)
8f523eb9
EF
187 #:use-module (guix monads)
188 #:use-module (guix store)
4e3fdeb7 189 #:use-module (ice-9 match)
c024ae36 190 #:use-module (srfi srfi-1))
85f5dc19
AE
191
192(define-public brasero
193 (package
194 (name "brasero")
e2bf423a 195 (version "3.12.2")
85f5dc19
AE
196 (source (origin
197 (method url-fetch)
d1df7554 198 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 199 (version-major+minor version) "/"
d1df7554 200 "brasero-" version ".tar.xz"))
85f5dc19
AE
201 (sha256
202 (base32
e2bf423a 203 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 204 (build-system glib-or-gtk-build-system)
e8627cd9
DH
205 (arguments
206 `(#:configure-flags (list
207 (string-append "--with-girdir="
208 (assoc-ref %outputs "out")
209 "/share/gir-1.0")
210 (string-append "--with-typelibdir="
211 (assoc-ref %outputs "out")
ce426deb
TD
212 "/lib/girepository-1.0"))
213 #:phases
214 (modify-phases %standard-phases
215 (add-before 'configure 'embed-growisofs
216 (lambda* (#:key inputs #:allow-other-keys)
217 (substitute* "plugins/growisofs/burn-growisofs.c"
218 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 219 #t)))))
85f5dc19
AE
220 (propagated-inputs
221 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
222 (native-inputs
223 `(("intltool" ,intltool)
ba549e17 224 ("itstool" ,itstool)
426adbe8 225 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 226 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 227 ("pkg-config" ,pkg-config)))
85f5dc19 228 (inputs
ce426deb
TD
229 `(("dvd+rw-tools" ,dvd+rw-tools)
230 ("glib" ,glib)
85f5dc19
AE
231 ("gnome-doc-utils" ,gnome-doc-utils)
232 ("gstreamer" ,gstreamer)
233 ("gst-plugins-base" ,gst-plugins-base)
234 ("gtk+" ,gtk+)
85f5dc19
AE
235 ("libcanberra" ,libcanberra)
236 ("libice" ,libice)
237 ("libnotify" ,libnotify)
238 ("libsm" ,libsm)
e8627cd9 239 ("libxml2" ,libxml2)
e8627cd9 240 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 241 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
242 (synopsis "CD/DVD burning tool for Gnome")
243 (description "Brasero is an application to burn CD/DVD for the Gnome
244Desktop. It is designed to be as simple as possible and has some unique
245features to enable users to create their discs easily and quickly.")
1dd26275 246 (license license:gpl2+)))
995b7261 247
29ae18db
RG
248(define-public gnome-color-manager
249 (package
250 (name "gnome-color-manager")
251 (version "3.32.0")
252 (source (origin
253 (method url-fetch)
254 (uri (string-append "mirror://gnome/sources/" name "/"
255 (version-major+minor version) "/"
256 name "-" version ".tar.xz"))
257 (sha256
258 (base32
259 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
260 (build-system meson-build-system)
261 (arguments
262 `(#:glib-or-gtk? #t
263 #:phases
264 (modify-phases %standard-phases
265 (add-before
266 'check 'pre-check
267 (lambda _
268 ;; Tests require a running X server.
269 (system "Xvfb :1 &")
270 (setenv "DISPLAY" ":1")
271 #t)))))
272 (native-inputs
273 `(("desktop-file-utils" ,desktop-file-utils)
274 ("gettext" ,gettext-minimal)
275 ("glib:bin" ,glib "bin")
276 ("gtk+:bin" ,gtk+ "bin")
277 ("itstool" ,itstool)
278 ("pkg-config" ,pkg-config)
279 ("xorg-server" ,xorg-server-for-tests)))
280 (inputs
281 `(("adwaita-icon-theme" ,adwaita-icon-theme)
282 ("appstream-glib" ,appstream-glib)
283 ("colord-gtk" ,colord-gtk)
284 ("exiv2" ,exiv2)
285 ("gnome-desktop" ,gnome-desktop)
286 ("libcanberra" ,libcanberra)
287 ("libexif" ,libexif)
288 ("libtiff" ,libtiff)
289 ("libxrandr" ,libxrandr)
290 ("libxtst" ,libxtst)
291 ("libxxf86vm" ,libxxf86vm)
292 ("vte" ,vte)
293 ("xorgproto" ,xorgproto)))
294 (synopsis "Color profile manager for the GNOME desktop")
295 (description "GNOME Color Manager is a session framework that makes
296it easy to manage, install and generate color profiles
297in the GNOME desktop.")
298 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 299 (license license:gpl2+)))
29ae18db 300
e05471a1
RG
301(define-public gnome-online-miners
302 (package
303 (name "gnome-online-miners")
304 (version "3.30.0")
305 (source (origin
306 (method url-fetch)
307 (uri (string-append "mirror://gnome/sources/" name "/"
308 (version-major+minor version) "/"
309 name "-" version ".tar.xz"))
310 (sha256
311 (base32
312 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
313 (build-system glib-or-gtk-build-system)
314 (native-inputs
315 `(("gettext" ,gettext-minimal)
316 ("glib:bin" ,glib "bin")
29ae18db 317 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
318 ("gtk+:bin" ,gtk+ "bin")
319 ("pkg-config" ,pkg-config)))
320 (inputs
321 `(("gnome-online-accounts" ,gnome-online-accounts)
322 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
323 ("grilo" ,grilo)
324 ("libgdata" ,libgdata)
325 ("libgfbgraph" ,gfbgraph)
326 ("libzapojit" ,libzapojit)
327 ("rest" ,rest)
328 ("tracker" ,tracker)))
329 (synopsis "Web Crawlers for GNOME")
330 (description "GNOME Online Miners provides a set of crawlers that
331go through your online content and index them locally in Tracker.
332It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
333 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 334 (license license:gpl2+)))
e05471a1 335
e2aed29c
RG
336(define-public gssdp
337 (package
338 (name "gssdp")
339 (version "1.2.2")
340 (source (origin
341 (method url-fetch)
342 (uri (string-append "mirror://gnome/sources/" name "/"
343 (version-major+minor version) "/"
344 name "-" version ".tar.xz"))
345 (sha256
346 (base32
347 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
348 (build-system meson-build-system)
349 (native-inputs
350 `(("gettext" ,gettext-minimal)
351 ("glib:bin" ,glib "bin")
352 ("gobject-introspection" ,gobject-introspection)
353 ("gtk-doc" ,gtk-doc)
354 ("pkg-config" ,pkg-config)
355 ("vala" ,vala)))
356 (inputs
357 `(("gtk+" ,gtk+)
358 ("libsoup" ,libsoup)))
359 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
360Protocol} for GNOME")
361 (description "This package provides a library to handle resource discovery
362and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
363a debugging tool, @command{gssdp-device-sniffer}.")
364 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
365 (license license:lgpl2.0+)))
366
291a85b2
RG
367(define-public gupnp
368 (package
369 (name "gupnp")
370 (version "1.2.2")
371 (source (origin
372 (method url-fetch)
373 (uri (string-append "mirror://gnome/sources/" name "/"
374 (version-major+minor version) "/"
375 name "-" version ".tar.xz"))
376 (sha256
377 (base32
378 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
379 (build-system meson-build-system)
380 (native-inputs
381 `(("gettext" ,gettext-minimal)
382 ("glib:bin" ,glib "bin")
383 ("gobject-introspection" ,gobject-introspection)
384 ("gtk-doc" ,gtk-doc)
385 ("pkg-config" ,pkg-config)
386 ("vala" ,vala)))
387 (inputs
388 `(("gssdp" ,gssdp)
389 ("gtk+" ,gtk+)
390 ("libsoup" ,libsoup)))
391 (synopsis "PnP API for GNOME")
392 (description "This package provides GUPnP, an object-oriented framework
393for creating UPnP devices and control points, written in C using
394@code{GObject} and @code{libsoup}.")
395 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
396 (license license:lgpl2.0+)))
397
747d7fe4
RG
398(define-public gupnp-dlna
399 (package
400 (name "gupnp-dlna")
401 (version "0.10.5")
402 (source (origin
403 (method url-fetch)
404 (uri (string-append "mirror://gnome/sources/" name "/"
405 (version-major+minor version) "/"
406 name "-" version ".tar.xz"))
407 (sha256
408 (base32
409 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
410 (build-system gnu-build-system)
411 (native-inputs
412 `(("gettext" ,gettext-minimal)
413 ("glib:bin" ,glib "bin")
414 ("gobject-introspection" ,gobject-introspection)
415 ("gtk-doc" ,gtk-doc)
416 ("libxml" ,libxml2)
417 ("pkg-config" ,pkg-config)
418 ("vala" ,vala)))
419 (inputs
420 `(("gstreamer" ,gstreamer)
421 ("gupnp" ,gupnp)))
422 (propagated-inputs
423 `(("gst-plugins-base" ,gst-plugins-base)
424 ("gst-plugins-good" ,gst-plugins-good)))
425 (synopsis "GUPnP DLNA for GNOME")
426 (description "This package provides a small utility library to
427support DLNA-related tasks such as media profile guessing, transcoding to a
428given profile, etc. DLNA is a subset of UPnP A/V.")
429 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
430 (license license:lgpl2.0+)))
431
1b4cb628
RG
432(define-public gupnp-av
433 (package
434 (name "gupnp-av")
435 (version "0.12.11")
436 (source (origin
437 (method url-fetch)
438 (uri (string-append "mirror://gnome/sources/" name "/"
439 (version-major+minor version) "/"
440 name "-" version ".tar.xz"))
441 (sha256
442 (base32
443 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
444 (build-system gnu-build-system)
445 (native-inputs
446 `(("gettext" ,gettext-minimal)
447 ("glib:bin" ,glib "bin")
448 ("gobject-introspection" ,gobject-introspection)
449 ("gtk-doc" ,gtk-doc)
450 ("libxml" ,libxml2)
451 ("pkg-config" ,pkg-config)))
452 (inputs
453 `(("gtk+" ,gtk+)
454 ("gupnp" ,gupnp)))
455 (synopsis "GUPnP A/V for GNOME")
456 (description "This package provides a small library for handling
457and implementation of UPnP A/V profiles.")
458 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
459 (license license:lgpl2.0+)))
460
02ebbca8
RG
461(define-public libmediaart
462 (package
463 (name "libmediaart")
464 (version "1.9.4")
465 (source (origin
466 (method url-fetch)
467 (uri (string-append "mirror://gnome/sources/" name "/"
468 (version-major+minor version) "/"
469 name "-" version ".tar.xz"))
470 (sha256
471 (base32
472 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
473 (build-system gnu-build-system)
474 (native-inputs
475 `(("glib:bin" ,glib "bin")
476 ("pkg-config" ,pkg-config)))
477 (inputs
478 `(("gdk-pixbuf" ,gdk-pixbuf)
479 ("gettext" ,gettext-minimal)
480 ("gobject-introspection" ,gobject-introspection)
481 ("gtk+:doc", gtk+ "doc")
482 ("vala" ,vala)))
483 (synopsis "Media art library for the GNOME desktop")
484 (description
485 "The libmediaart library is the foundation for media art caching,
486extraction, and lookup for applications on the desktop.")
487 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
488 (license license:lgpl2.1+)))
489
a26680eb
RG
490(define-public gnome-initial-setup
491 (package
492 (name "gnome-initial-setup")
493 (version "3.32.1")
494 (source (origin
495 (method url-fetch)
496 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
497 (version-major+minor version)
498 "/gnome-initial-setup-" version ".tar.xz"))
499 (sha256
500 (base32
501 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
502 (build-system meson-build-system)
503 (arguments
a65cc579
DM
504 '(#:configure-flags '(;; Enable camera support for user selfie.
505 "-Dcheese=auto"
506 "-Dsystemd=false")))
a26680eb
RG
507 (native-inputs
508 `(("gettext" ,gettext-minimal)
509 ("glib:bin" ,glib "bin")
510 ("gobject-introspection" ,gobject-introspection)
511 ("gtk+:bin" ,gtk+ "bin")
512 ("pkg-config" ,pkg-config)))
513 (inputs
514 `(("accountsservice" ,accountsservice)
515 ;("adwaita-icon-theme" ,adwaita-icon-theme)
516 ("gdm" ,gdm)
517 ("geoclue" ,geoclue)
518 ("gnome-desktop" ,gnome-desktop)
519 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
520 ("gnome-online-accounts" ,gnome-online-accounts)
521 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
522 ("gstreamer" ,gstreamer)
523 ("ibus" ,ibus)
524 ("json-glib" ,json-glib)
525 ("krb5" ,mit-krb5)
526 ("libgweather" ,libgweather)
527 ("libsecret" ,libsecret)
528 ("network-manager" ,network-manager)
529 ("network-manager-applet" ,network-manager-applet)
530 ("packagekit" ,packagekit)
531 ("polkit" ,polkit)
532 ("pwquality" ,libpwquality)
533 ("rest" ,rest)
534 ("upower" ,upower)
535 ("webkitgtk" ,webkitgtk)))
536 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
537 (description "This package provides a set-up wizard when a
538user logs into GNOME for the first time. It typically provides a
539tour of all gnome components and allows the user to set them up.")
a26680eb
RG
540 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
541 (license license:gpl2)))
542
b5f01392
RG
543(define-public gnome-user-share
544 (package
545 (name "gnome-user-share")
546 (version "3.33.1")
547 (source (origin
548 (method url-fetch)
549 (uri (string-append "mirror://gnome/sources/" name "/"
550 (version-major+minor version) "/"
551 name "-" version ".tar.xz"))
552 (sha256
553 (base32
554 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
555 (build-system meson-build-system)
556 (arguments
557 `(#:glib-or-gtk? #t
558 #:configure-flags
559 `("-Dsystemd=false"
560 ;; Enable nautilus extension for file sharing.
561 "-Dnautilus_extension=true")))
562 (native-inputs
563 `(("gettext" ,gettext-minimal)
564 ("glib:bin" ,glib "bin")
565 ("gobject-introspection" ,gobject-introspection)
566 ("gtk+:bin" ,gtk+ "bin")
567 ("pkg-config" ,pkg-config)
568 ("yelp-tools" ,yelp-tools)))
569 (inputs
570 `(("glib" ,glib)
571 ("gnome-bluetooth" ,gnome-bluetooth)
572 ("gtk+" ,gtk+)
573 ("libcanberra" ,libcanberra)
574 ("libnotify" ,libnotify)
575 ("nautilus" ,nautilus))) ; For nautilus extension.
576 (synopsis "File sharing for GNOME desktop")
577 (description "GNOME User Share is a small package that binds together
578various free software projects to bring easy to use user-level file
579sharing to the masses.")
580 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 581 (license license:gpl2+)))
b5f01392 582
04b201bb
RG
583(define-public sushi
584 (package
585 (name "sushi")
586 (version "3.32.1")
587 (source (origin
588 (method url-fetch)
589 (uri (string-append "mirror://gnome/sources/" name "/"
590 (version-major+minor version) "/"
591 name "-" version ".tar.xz"))
592 (sha256
593 (base32
594 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
595 (build-system meson-build-system)
596 (arguments
597 `(#:glib-or-gtk? #t
598 #:phases
599 (modify-phases %standard-phases
600 (add-after 'glib-or-gtk-wrap 'wrap-typelib
601 (lambda* (#:key outputs #:allow-other-keys)
602 (let ((prog (string-append (assoc-ref outputs "out")
603 "/bin/sushi")))
604 ;; Put existing typelibs before sushi's deps, so as to correctly
605 ;; infer gdk-pixbuf
606 (wrap-program prog
607 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
608 #t))))))
609 (native-inputs
610 `(("glib:bin" ,glib "bin")
611 ("gettext" ,gettext-minimal)
612 ("gobject-introspection" ,gobject-introspection)
613 ("pkg-config" ,pkg-config)))
614 (inputs
615 `(("clutter" ,clutter)
616 ("clutter-gst" ,clutter-gst)
617 ("clutter-gtk" ,clutter-gtk)
618 ("evince" ,evince) ; For file previewing.
619 ("freetype" ,freetype)
620 ("gdk-pixbuf" ,gdk-pixbuf)
621 ("gjs" ,gjs)
622 ("gst-plugins-base" ,gst-plugins-base)
623 ("gstreamer" ,gstreamer)
624 ("gtksourceview" ,gtksourceview-3)
625 ("harfbuzz" ,harfbuzz)
626 ("libepoxy" ,libepoxy)
627 ("libmusicbrainz" ,libmusicbrainz)
628 ("libxml2" ,libxml2)
629 ("neon" ,neon)
630 ("webkitgtk" ,webkitgtk)))
631 (synopsis "File previewer for the GNOME desktop")
632 (description "Sushi is a DBus-activated service that allows applications to
633preview files on the GNOME desktop.")
634 (home-page "https://gitlab.gnome.org/GNOME/sushi")
635 (license license:gpl2+)))
636
89af0902
RG
637(define-public rygel
638 (package
639 (name "rygel")
640 (version "0.38.3")
641 (source (origin
642 (method url-fetch)
643 (uri (string-append "mirror://gnome/sources/" name "/"
644 (version-major+minor version) "/"
645 name "-" version ".tar.xz"))
646 (sha256
647 (base32
648 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
649 (build-system gnu-build-system)
650 (native-inputs
651 `(("gettext" ,gettext-minimal)
652 ("gobject-introspection" ,gobject-introspection)
653 ("gtk-doc" ,gtk-doc)
654 ("pkg-config" ,pkg-config)
655 ("vala" ,vala)))
656 (inputs
657 `(("gdk-pixbuf" ,gdk-pixbuf)
658 ("gssdp" ,gssdp)
659 ("gstreamer" ,gstreamer)
660 ("gst-plugins-base" ,gst-plugins-base)
661 ("gtk+" ,gtk+)
662 ("gupnp" ,gupnp)
663 ("gupnp-av" ,gupnp-av)
664 ("gupnp-dlna" ,gupnp-dlna)
665 ("libgee" ,libgee)
666 ("libmediaart" ,libmediaart)
667 ("libsoup" ,libsoup)
668 ("libxslt" ,libxslt)
669 ("libunistring" ,libunistring)
670 ("tracker" ,tracker)))
671 (synopsis "Share audio, video, and pictures with other devices")
672 (description
673 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
674MediaRenderer}) for GNOME that allows you to easily share audio, video, and
675pictures, and to control a media player on your home network.
676
677Rygel achieves interoperability with other devices by trying to conform to the
678strict requirements of DLNA and by converting media on-the-fly to formats that
679client devices can handle.")
680 (home-page "https://wiki.gnome.org/Projects/Rygel")
681 (license (list
682 ;; For logo (data/icons/*).
683 license:cc-by-sa3.0
684 ;; For all others.
685 license:lgpl2.1+))))
686
47e87093
RG
687(define-public libnma
688 (package
689 (name "libnma")
690 (version "1.8.26")
691 (source (origin
692 (method url-fetch)
693 (uri (string-append "mirror://gnome/sources/" name "/"
694 (version-major+minor version) "/"
695 name "-" version ".tar.xz"))
696 (sha256
697 (base32
698 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
699 (build-system meson-build-system)
700 (arguments
701 `(#:glib-or-gtk? #t))
702 (native-inputs
703 `(("gettext" ,gettext-minimal)
704 ("glib:bin" ,glib "bin")
705 ("gtk-doc" ,gtk-doc)
706 ("gobject-introspection" ,gobject-introspection)
707 ("pkg-config" ,pkg-config)))
708 (inputs
709 `(("adwaita-icon-theme" ,adwaita-icon-theme)
710 ("gcr" ,gcr)
711 ("gtk+" ,gtk+)
712 ("iso-codes" ,iso-codes)
713 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
714 ("network-manager" ,network-manager)))
715 (synopsis "Network Manager's applet library")
716 (description "Libnma is an applet library for Network Manager. It was
717initially part of network-manager-applet and has now become a separate
718project.")
719 (home-page "https://gitlab.gnome.org/GNOME/libnma")
720
721 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
722 ;; "LGPL-2.1+".
723 (license license:gpl2+)))
724
30416265
RG
725(define-public gnome-menus
726 (package
727 (name "gnome-menus")
728 (version "3.32.0")
729 (source (origin
730 (method url-fetch)
731 (uri (string-append "mirror://gnome/sources/gnome-menus/"
732 (version-major+minor version) "/"
733 name "-" version ".tar.xz"))
734 (sha256
735 (base32
736 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
737 (build-system gnu-build-system)
738 (native-inputs
739 `(("gettext" ,gettext-minimal)
740 ("glib" ,glib)
741 ("pkg-config" ,pkg-config)))
742 (synopsis "Menu support for GNOME desktop")
743 (description "GNOME Menus contains the libgnome-menu library, the layout
744configuration files for the GNOME menu, as well as a simple menu editor.")
745 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 746 (license license:lgpl2.0+)))
30416265 747
d61a894b
CB
748(define-public deja-dup
749 (package
750 (name "deja-dup")
751 (version "34.3")
752 (source (origin
753 (method url-fetch)
754 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
755 (sha256
756 (base32
757 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
758 (patches
759 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
760 (build-system glib-or-gtk-build-system)
761 (arguments
762 `(#:modules ((guix build gnu-build-system)
763 ((guix build cmake-build-system) #:prefix cmake:)
764 (guix build glib-or-gtk-build-system)
765 (guix build utils))
766 #:imported-modules (,@%glib-or-gtk-build-system-modules
767 (guix build cmake-build-system))
768 #:test-target "test"
769 #:configure-flags (list (string-append
770 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
771 (string-append
772 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
773 #:phases
774 (modify-phases %standard-phases
775 (add-after 'unpack 'patch-lockfile-deletion
776 (lambda rest
777 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
778 (("/bin/rm")
779 (which "rm")))))
780 (replace 'configure
781 (assoc-ref cmake:%standard-phases 'configure))
782 (delete 'check) ;; Fails due to issues with DBus
783 (add-after 'install 'wrap-deja-dup
784 (lambda* (#:key inputs outputs #:allow-other-keys)
785 (let ((python (assoc-ref inputs "python"))
786 (python-path (getenv "PYTHONPATH"))
787 (duplicity (assoc-ref inputs "duplicity"))
788 (out (assoc-ref outputs "out")))
789 (for-each
790 (lambda (program)
791 (wrap-program program
792 `("PATH" ":" prefix (,(string-append python "/bin")
793 ,(string-append duplicity "/bin"))))
794 (wrap-program program
795 `("PYTHONPATH" ":" prefix (,python-path))))
796
797 (find-files (string-append out "/bin")))
798 #t))))))
799 (inputs
800 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
801 ("gobject-introspection" ,gobject-introspection)
802 ("duplicity" ,duplicity)
61506fe5 803 ("python" ,python-2)
d61a894b
CB
804 ("python-pygobject" ,python2-pygobject)
805 ("gtk+" ,gtk+)
806 ("libnotify" ,libnotify)
807 ("libpeas" ,libpeas)
808 ("libsecret" ,libsecret)
809 ("packagekit" ,packagekit)))
810 (native-inputs
811 `(("pkg-config" ,pkg-config)
812 ("vala" ,vala)
813 ("gettext" ,gettext-minimal)
814 ("itstool" ,itstool)
815 ("intltool" ,intltool)
c69959f0 816 ("cmake" ,cmake-minimal)))
d61a894b
CB
817 (home-page "https://launchpad.net/deja-dup")
818 (synopsis "Simple backup tool, for regular encrypted backups")
819 (description
820 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
821uses duplicity as the backend, which supports incremental backups and storage
822either on a local, or remote machine via a number of methods.")
823 (license license:gpl3+)))
824
823b77fb
RG
825(define-public gnome-user-docs
826 (package
827 (name "gnome-user-docs")
828 (version "3.32.3")
829 (source
830 (origin
831 (method url-fetch)
832 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
833 (version-major+minor version)
834 "/gnome-user-docs-" version ".tar.xz"))
835 (sha256
836 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
837 (build-system gnu-build-system)
838 (native-inputs
839 `(("gettext" ,gettext-minimal)
840 ("itstool" ,itstool)
841 ("pkg-config" ,pkg-config)
842 ("xmllint" ,libxml2)))
843 (synopsis "User documentation for the GNOME desktop")
844 (description
845 "The GNOME User Documentation explains how to use the GNOME desktop and its
846components. It covers usage and setup of the core GNOME programs by end-users
847and system administrators.")
848 (home-page "https://live.gnome.org/DocumentationProject")
849 (license license:cc-by3.0)))
850
be93299d
RG
851(define-public gnome-getting-started-docs
852 (package
853 (name "gnome-getting-started-docs")
854 (version "3.32.2")
855 (source
856 (origin
857 (method url-fetch)
858 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
859 (version-major+minor version)
860 "/gnome-getting-started-docs-" version ".tar.xz"))
861 (sha256
862 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
863 (build-system gnu-build-system)
864 (native-inputs
865 `(("gettext" ,gettext-minimal)
866 ("itstool" ,itstool)
867 ("pkg-config" ,pkg-config)
868 ("xmllint" ,libxml2)))
869 (synopsis "Help to get new users started with the GNOME desktop")
870 (description
871 "The GNOME Getting Started Documentation contains GNOME's intuitive
872\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
873
874It is normally used together with @command{gnome-initial-setup}, but is also
875useful as a tutorial and users' guide for new or less experienced users.")
876 (home-page "https://live.gnome.org/DocumentationProject")
877 (license license:cc-by-sa3.0)))
878
a56be436
RJ
879(define-public dia
880 ;; This version from GNOME's repository includes fixes for compiling with
881 ;; recent versions of the build tools. The latest activity on the
882 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
883 ;; fixes in 2016.
884 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
885 (package
886 (name "dia")
914c8cdf 887 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
888 (source (origin
889 (method git-fetch)
890 (uri (git-reference
914c8cdf 891 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 892 (commit commit)))
914c8cdf 893 (file-name (git-file-name name version))
a56be436
RJ
894 (sha256
895 (base32
896 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
897 (build-system gnu-build-system)
898 (inputs
a315afa3 899 `(("freetype" ,freetype)
a56be436
RJ
900 ("gdk-pixbuf" ,gdk-pixbuf)
901 ("gtk+" ,gtk+-2)
a315afa3 902 ("libart-lgpl" ,libart-lgpl)
a56be436 903 ("libxml2" ,libxml2)
a315afa3 904 ("pango" ,pango)))
a56be436 905 (native-inputs
a315afa3 906 `(("autoconf" ,autoconf)
a56be436 907 ("automake" ,automake)
a315afa3
EF
908 ("intltool" ,intltool)
909 ("glib" ,glib "bin")
a56be436
RJ
910 ("libtool" ,libtool)
911 ("perl" ,perl)
a315afa3 912 ("pkg-config" ,pkg-config)
a56be436
RJ
913 ("python-wrapper" ,python-wrapper)))
914 (arguments
915 `(#:phases
916 (modify-phases %standard-phases
4b3e91de 917 (add-before 'bootstrap 'dont-configure-during-bootstrap
a56be436 918 (lambda _
4b3e91de
EF
919 (setenv "NOCONFIGURE" "true")
920 #t)))))
a56be436
RJ
921 (home-page "https://wiki.gnome.org/Apps/Dia")
922 (synopsis "Diagram creation for GNOME")
923 (description "Dia can be used to draw different types of diagrams, and
924includes support for UML static structure diagrams (class diagrams), entity
925relationship modeling, and network diagrams. The program supports various file
926formats like PNG, SVG, PDF and EPS.")
927 (license license:gpl2+))))
928
d0b19e44
RW
929;; This is the unstable release, but it is required for the current stable
930;; release of gvfs (1.38.1).
adc5cb1b
KK
931(define-public libgdata
932 (package
933 (name "libgdata")
d0b19e44 934 (version "0.17.9")
adc5cb1b
KK
935 (source (origin
936 (method url-fetch)
937 (uri (string-append "mirror://gnome/sources/" name "/"
938 (version-major+minor version) "/"
939 name "-" version ".tar.xz"))
940 (sha256
941 (base32
d0b19e44 942 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
943 (build-system gnu-build-system)
944 (arguments
945 '(#:phases
946 (modify-phases %standard-phases
448052b7
TGR
947 (add-before 'check 'disable-failing-tests
948 (lambda _
949 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
950 ;; They have been removed in libgdata 0.17.6, so just do the same.
951 (substitute* "gdata/tests/Makefile"
952 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
953 #t)))))
954 (native-inputs
955 `(("glib:bin" ,glib "bin")
956 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
957 ("intltool" ,intltool)
958 ("pkg-config" ,pkg-config)
959 ("uhttpmock" ,uhttpmock)))
960 (inputs
961 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 962 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
963 (propagated-inputs
964 `(("gcr" ,gcr)
d0b19e44 965 ("glib" ,glib)
14c297fd 966 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 967 ("json-glib" ,json-glib)
adc5cb1b 968 ("liboauth" ,liboauth)
d0b19e44 969 ("libsoup" ,libsoup)
adc5cb1b
KK
970 ("libxml2" ,libxml2)))
971 (home-page "https://wiki.gnome.org/Projects/libgdata")
972 (synopsis "Library for accessing online service APIs")
973 (description
974 "libgdata is a GLib-based library for accessing online service APIs using
975the GData protocol — most notably, Google's services. It provides APIs to
976access the common Google services, and has full asynchronous support.")
977 (license license:lgpl2.1+)))
978
94e10cf4
KK
979(define-public libgxps
980 (package
981 (name "libgxps")
66470a5a 982 (version "0.3.1")
94e10cf4
KK
983 (source (origin
984 (method url-fetch)
7f10628c 985 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
986 (version-major+minor version) "/"
987 name "-" version ".tar.xz"))
988 (sha256
989 (base32
66470a5a 990 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 991 (build-system meson-build-system)
94e10cf4
KK
992 (native-inputs
993 `(("gobject-introspection" ,gobject-introspection)
994 ("pkg-config" ,pkg-config)))
995 (inputs
c8d62d93 996 `(("gtk+" ,gtk+)
b6b3e512 997 ("libjpeg" ,libjpeg-turbo)
94e10cf4 998 ("lcms" ,lcms)
0a6e9e13 999 ("libtiff" ,libtiff)))
c8d62d93
MB
1000 (propagated-inputs
1001 ;; In Requires of libgxps.pc.
1002 `(("cairo" ,cairo)
1003 ("glib" ,glib)
1004 ("libarchive" ,libarchive)))
94e10cf4
KK
1005 (home-page "https://wiki.gnome.org/Projects/libgxps")
1006 (synopsis "GObject-based library for handling and rendering XPS documents")
1007 (description
1008 "libgxps is a GObject-based library for handling and rendering XPS
1009documents. This package also contains binaries that can convert XPS documents
1010to other formats.")
1011 (license license:lgpl2.1+)))
1012
4e09f57a
RG
1013(define-public gnome-characters
1014 (package
1015 (name "gnome-characters")
1016 (version "3.30.0")
1017 (source
1018 (origin
1019 (method url-fetch)
1020 (uri (string-append "mirror://gnome/sources/"
1021 "gnome-characters/" (version-major+minor version)
1022 "/gnome-characters-" version ".tar.xz"))
1023 (sha256
1024 (base32
1025 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1026 (build-system meson-build-system)
5757c641 1027 (arguments
1028 `(#:glib-or-gtk? #t
1029 #:phases (modify-phases %standard-phases
1030 (add-after 'install 'wrap
1031 (lambda* (#:key outputs #:allow-other-keys)
1032 ;; GNOME Characters needs Typelib files from GTK and
1033 ;; gnome-desktop.
1034 (wrap-program (string-append (assoc-ref outputs "out")
1035 "/bin/gnome-characters")
1036 `("GI_TYPELIB_PATH" ":" prefix
1037 (,(getenv "GI_TYPELIB_PATH"))))
1038 #t)))))
4e09f57a
RG
1039 (native-inputs
1040 `(("gettext" ,gettext-minimal)
1041 ("glib:bin" ,glib "bin")
1042 ("gtk+:bin" ,gtk+ "bin")
1043 ("pkg-config" ,pkg-config)
1044 ("python" ,python-minimal)))
1045 (inputs
1046 `(("gjs" ,gjs)
1047 ("gtk+" ,gtk+)
5757c641 1048 ("libunistring" ,libunistring)
1049 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1050 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1051 (synopsis "Find and insert unusual characters")
1052 (description "Characters is a simple utility application to find
1053and insert unusual characters. It allows you to quickly find the
1054character you are looking for by searching for keywords.")
1055 (license license:bsd-3)))
1056
7aab13f1
ML
1057(define-public gnome-common
1058 (package
1059 (name "gnome-common")
af83490d 1060 (version "3.18.0")
7aab13f1
ML
1061 (source
1062 (origin
1063 (method url-fetch)
1064 (uri (string-append "mirror://gnome/sources/" name "/"
1065 (version-major+minor version) "/"
1066 name "-" version ".tar.xz"))
1067 (sha256
1068 (base32
af83490d 1069 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1070 (build-system gnu-build-system)
1071 (home-page "https://www.gnome.org/")
1072 (synopsis "Bootstrap GNOME modules built from Git")
1073 (description "gnome-common contains various files needed to bootstrap
1074GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1075can be used to configure a source directory checked out from Git and some
1076commonly used macros.")
1077 (license license:gpl2+)))
1078
4e868d22
RG
1079(define-public gnome-contacts
1080 (package
1081 (name "gnome-contacts")
6a6138b2 1082 (version "3.32.1")
4e868d22
RG
1083 (source (origin
1084 (method url-fetch)
1085 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1086 (version-major+minor version) "/"
1087 name "-" version ".tar.xz"))
1088 (sha256
1089 (base32
6a6138b2 1090 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
1091 (build-system meson-build-system)
1092 (arguments
1093 `(#:phases
1094 (modify-phases %standard-phases
1095 (add-after 'unpack 'generate-vapis
1096 (lambda* (#:key inputs #:allow-other-keys)
1097 ;; To generate goa's missing .vapi file
1098 (define goa
1099 (assoc-ref inputs "gnome-online-accounts:lib"))
1100
1101 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1102 "--library=goa-1.0"
1103 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1104 #t)))))
1105 (native-inputs
1106 `(("glib:bin" ,glib "bin")
1107 ("gtk+:bin" ,gtk+ "bin")
1108 ("pkg-config" ,pkg-config)))
1109 (inputs
1110 `(("cheese" ,cheese)
1111 ("docbook-xml" ,docbook-xml)
1112 ("dockbook-xsl" ,docbook-xsl)
1113 ("evolution-data-server" ,evolution-data-server)
1114 ("gettext" ,gettext-minimal)
1115 ("gnome-desktop" ,gnome-desktop)
1116 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1117 ("gobject-introspection" ,gobject-introspection)
1118 ("gst-plugins-base" ,gst-plugins-base)
1119 ("gtk+" ,gtk+)
1120 ("libgee" ,libgee)
1121 ("libxslt" ,libxslt)
1122 ("telepathy-glib" ,telepathy-glib)
1123 ("vala" ,vala)))
1124 (propagated-inputs
1125 `(("folks", folks)
1126 ("telepathy-mission-control" ,telepathy-mission-control)))
1127 (synopsis "GNOME's integrated address book")
1128 (description
1129 "GNOME Contacts organizes your contact information from online and
1130offline sources, providing a centralized place for managing your contacts.")
1131 (home-page "https://wiki.gnome.org/Apps/Contacts")
1132 (license license:gpl2+)))
1133
9cc98f8a
CR
1134(define-public gnome-desktop
1135 (package
1136 (name "gnome-desktop")
e8a26caa 1137 (version "3.32.2")
9cc98f8a
CR
1138 (source
1139 (origin
1140 (method url-fetch)
b38e45d8
EB
1141 (uri (string-append "mirror://gnome/sources/" name "/"
1142 (version-major+minor version) "/"
9cc98f8a
CR
1143 name "-" version ".tar.xz"))
1144 (sha256
1145 (base32
e8a26caa
KK
1146 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1147 (build-system meson-build-system)
a0fe7c06
CB
1148 (arguments
1149 '(#:phases
1150 (modify-phases %standard-phases
1151 (add-before 'configure 'patch-path
1152 (lambda* (#:key inputs #:allow-other-keys)
1153 (let ((libc (assoc-ref inputs "libc")))
1154 (substitute* "libgnome-desktop/gnome-languages.c"
1155 (("\"locale\"")
1156 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1157 #t)))
1158 (add-before 'check 'pre-check
1159 (lambda* (#:key inputs #:allow-other-keys)
1160 ;; Tests require a running X server and locales.
1161 (system "Xvfb :1 &")
1162 (setenv "DISPLAY" ":1")
1163 (setenv "GUIX_LOCPATH"
1164 (string-append (assoc-ref inputs "glibc-locales")
1165 "/lib/locale"))
1166 #t)))))
9cc98f8a 1167 (native-inputs
e8a26caa
KK
1168 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1169 ("glibc-locales" ,glibc-locales) ; for tests
1170 ("gobject-introspection" ,gobject-introspection)
a8340482 1171 ("itstool" ,itstool)
bcb354ad
SB
1172 ("intltool" ,intltool)
1173 ("pkg-config" ,pkg-config)
e8a26caa
KK
1174 ("xmllint" ,libxml2)
1175 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1176 (propagated-inputs
1177 ;; Required by gnome-desktop-3.0.pc.
1178 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1179 ("gtk+" ,gtk+)
9cc98f8a 1180 ("iso-codes" ,iso-codes)
9863ce20 1181 ("libseccomp" ,libseccomp)
9cc98f8a 1182 ("libx11" ,libx11)
e8a26caa
KK
1183 ("xkeyboard-config" ,xkeyboard-config)))
1184 (inputs
1185 `(("gdk-pixbuf" ,gdk-pixbuf)
1186 ("glib" ,glib)
9cc98f8a
CR
1187 ("libxext" ,libxext)
1188 ("libxkbfile" ,libxkbfile)
e8a26caa 1189 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1190 (home-page "https://www.gnome.org/")
1191 (synopsis
35b9e423 1192 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1193 (description
1194 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1195on the desktop, but that cannot live in the platform for various reasons.
1196There is no API or ABI guarantee, although we are doing our best to provide
1197stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1198
1199The gnome-about program helps find which version of GNOME is installed.")
1200 ; Some bits under the LGPL.
1dd26275 1201 (license license:gpl2+)))
9cc98f8a 1202
995b7261
AE
1203(define-public gnome-doc-utils
1204 (package
1205 (name "gnome-doc-utils")
1206 (version "0.20.10")
1207 (source
1208 (origin
1209 (method url-fetch)
b38e45d8
EB
1210 (uri (string-append "mirror://gnome/sources/" name "/"
1211 (version-major+minor version) "/"
995b7261
AE
1212 name "-" version ".tar.xz"))
1213 (sha256
1214 (base32
1215 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1216 (build-system gnu-build-system)
c4c4cc05 1217 (native-inputs
995b7261 1218 `(("intltool" ,intltool)
b4ce6300 1219 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1220 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1221 ("libxml2" ,libxml2)
1222 ("libxslt" ,libxslt)
1223 ("pkg-config" ,pkg-config)
1224 ("python-2" ,python-2)))
995b7261
AE
1225 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1226 (synopsis
1227 "Documentation utilities for the Gnome project")
1228 (description
1229 "Gnome-doc-utils is a collection of documentation utilities for the
1230Gnome project. It includes xml2po tool which makes it easier to translate
1231and keep up to date translations of documentation.")
1dd26275 1232 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1233
6c4f7022
DC
1234(define-public gnome-disk-utility
1235 (package
1236 (name "gnome-disk-utility")
e106d0a6 1237 (version "3.32.1")
6c4f7022
DC
1238 (source (origin
1239 (method url-fetch)
1240 (uri (string-append "mirror://gnome/sources/" name "/"
1241 (version-major+minor version) "/"
1242 name "-" version ".tar.xz"))
1243 (sha256
1244 (base32
e106d0a6 1245 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 1246 (build-system meson-build-system)
321c73c3
EF
1247 (arguments
1248 '(#:phases
1249 (modify-phases %standard-phases
1250 (add-after 'unpack 'skip-gtk-update-icon-cache
1251 ;; Don't create 'icon-theme.cache'.
1252 (lambda _
1253 (substitute* "meson_post_install.py"
1254 (("gtk-update-icon-cache") "true"))
1255 #t)))))
6c4f7022
DC
1256 (native-inputs
1257 `(("glib:bin" ,glib "bin")
1258 ("intltool" ,intltool)
1259 ("pkg-config" ,pkg-config)
1260 ("docbook-xml" ,docbook-xml)
1261 ("docbook-xsl" ,docbook-xsl)
1262 ("libxml2" ,libxml2)
1263 ("libxslt" ,libxslt)))
1264 (inputs
1265 `(("glib" ,glib)
1266 ("appstream-glib" ,appstream-glib)
1267 ("gnome-settings-daemon" ,gnome-settings-daemon)
1268 ("gtk+" ,gtk+)
1269 ("libcanberra" ,libcanberra)
1270 ("libdvdread" ,libdvdread)
1271 ("libnotify" ,libnotify)
1272 ("libpwquality" ,libpwquality)
1273 ("libsecret" ,libsecret)
1274 ("udisks" ,udisks)))
1275 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1276 (synopsis "Disk management utility for GNOME")
1277 (description "Disk management utility for GNOME.")
1278 (license license:gpl2+)))
1279
3d217317
RG
1280(define-public gnome-font-viewer
1281 (package
1282 (name "gnome-font-viewer")
1283 (version "3.30.0")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1287 (version-major+minor version)
1288 "/gnome-font-viewer-" version ".tar.xz"))
1289 (sha256
1290 (base32
1291 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1292 (build-system meson-build-system)
1293 (arguments
1294 '(#:phases
1295 (modify-phases %standard-phases
1296 (add-after 'unpack 'patch-post-install-script
1297 (lambda _
1298 (substitute* "meson-postinstall.sh"
1299 (("update-desktop-database") (which "true")))
1300 #t)))))
1301 (native-inputs
1302 `(("gettext" ,gettext-minimal)
1303 ("glib:bin" ,glib "bin")
1304 ("pkg-config" ,pkg-config)))
1305 (inputs
1306 `(("glib" ,glib)
1307 ("gnome-desktop" ,gnome-desktop)
1308 ("gtk+" ,gtk+)))
1309 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1310 (synopsis "GNOME Fonts")
1311 (description "Application to show you the fonts installed on your computer
1312for your use as thumbnails. Selecting any thumbnails shows the full view of how
1313the font would look under various sizes.")
1314 (license license:gpl2+)))
1315
8ff49011
RW
1316(define-public gcr
1317 (package
1318 (name "gcr")
bea6b829 1319 (version "3.28.1")
8ff49011 1320 (source (origin
0daf0efb
RW
1321 (method url-fetch)
1322 (uri (string-append "mirror://gnome/sources/" name "/"
1323 (version-major+minor version) "/"
1324 name "-" version ".tar.xz"))
1325 (sha256
1326 (base32
bea6b829 1327 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
03ecf85a
MB
1328 (patches
1329 (list
1330 ;; This patch solves an ordering issue that showed up when
1331 ;; running the test suite against newer Glib 2.60. See
1332 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1333 (origin
1334 (method url-fetch)
1335 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1336 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1337 (file-name "gcr-hashtable-ordering.patch")
1338 (sha256
1339 (base32
1340 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
8ff49011
RW
1341 (build-system gnu-build-system)
1342 (arguments
0daf0efb
RW
1343 '(#:phases
1344 (modify-phases %standard-phases
1345 ;; These fail because /var/lib/dbus/machine-id is not present in the
1346 ;; build environment.
1347 (add-after 'unpack 'disable-failing-tests
1348 (lambda _
1349 (substitute* "gcr/test-system-prompt.c"
1350 (("g_test_add") "//")
1351 (("return.*") "return 0;"))
1352 #t))
1353 (add-before 'check 'pre-check
1354 (lambda _
1355 ;; Some tests expect to write to $HOME.
1356 (setenv "HOME" "/tmp")
1357 #t)))))
8ff49011
RW
1358 (inputs
1359 `(("dbus" ,dbus)
0daf0efb 1360 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1361 ("libgcrypt" ,libgcrypt)))
1362 (native-inputs
0daf0efb 1363 `(("python" ,python-2) ;for tests
8ff49011
RW
1364 ("pkg-config" ,pkg-config)
1365 ("glib" ,glib "bin")
2af4f5b0
SB
1366 ("gobject-introspection" ,gobject-introspection)
1367 ("intltool" ,intltool)
0daf0efb 1368 ("libxml2" ,libxml2)
bea6b829 1369 ("vala" ,vala)
2af4f5b0 1370 ("xsltproc" ,libxslt)))
8ff49011
RW
1371 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1372 (propagated-inputs
1373 `(("p11-kit" ,p11-kit)
1374 ("glib" ,glib)
1375 ("gtk+" ,gtk+)))
f032d0be 1376 (home-page "https://www.gnome.org")
8ff49011
RW
1377 (synopsis "Libraries for displaying certificates and accessing key stores")
1378 (description
1379 "The GCR package contains libraries used for displaying certificates and
1380accessing key stores. It also provides the viewer for crypto files on the
1381GNOME Desktop.")
1382 (license license:lgpl2.1+)))
1383
c1354b90
LC
1384(define-public libgnome-keyring
1385 (package
1386 (name "libgnome-keyring")
5e8aec2c 1387 (version "3.12.0")
c1354b90
LC
1388 (source (origin
1389 (method url-fetch)
b38e45d8
EB
1390 (uri (string-append "mirror://gnome/sources/" name "/"
1391 (version-major+minor version) "/"
1392 name "-" version ".tar.xz"))
c1354b90
LC
1393 (sha256
1394 (base32
5e8aec2c 1395 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1396 (build-system gnu-build-system)
c1354b90 1397 (inputs
c4c4cc05 1398 `(("libgcrypt" ,libgcrypt)
c1354b90 1399 ("dbus" ,dbus)))
c4c4cc05
JD
1400 (native-inputs
1401 `(("pkg-config" ,pkg-config)
426adbe8 1402 ("glib" ,glib "bin")
c4c4cc05 1403 ("intltool" ,intltool)))
c1354b90
LC
1404 (propagated-inputs
1405 ;; Referred to in .h files and .pc.
1406 `(("glib" ,glib)))
f032d0be 1407 (home-page "https://www.gnome.org")
c1354b90
LC
1408 (synopsis "Accessing passwords from the GNOME keyring")
1409 (description
1410 "Client library to access passwords from the GNOME keyring.")
1411
1412 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1413 (license license:lgpl2.0+)))
c1354b90 1414
e99a3d6f
RW
1415(define-public gnome-keyring
1416 (package
1417 (name "gnome-keyring")
ab35cc6e 1418 (version "3.28.2")
e99a3d6f
RW
1419 (source (origin
1420 (method url-fetch)
1421 (uri (string-append "mirror://gnome/sources/" name "/"
1422 (version-major+minor version) "/"
1423 name "-" version ".tar.xz"))
1424 (sha256
1425 (base32
ab35cc6e 1426 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
1427 (build-system gnu-build-system)
1428 (arguments
1429 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1430 ;not exist
1431 #:configure-flags
1432 (list
1433 (string-append "--with-pkcs11-config="
1434 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1435 (string-append "--with-pkcs11-modules="
1436 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1437 #:phases
1438 (modify-phases %standard-phases
ab35cc6e
RW
1439 (add-after 'unpack 'fix-/bin/sh-reference
1440 (lambda _
1441 (substitute* "po/Makefile.in.in"
1442 (("/bin/sh") (which "sh")))
1443 #t))
5120f24f
RW
1444 (add-after 'unpack 'fix-docbook
1445 (lambda* (#:key inputs #:allow-other-keys)
1446 (substitute* "docs/Makefile.am"
1447 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1448 (string-append (assoc-ref inputs "docbook-xsl")
1449 "/xml/xsl/docbook-xsl-"
1450 ,(package-version docbook-xsl)
1451 "/manpages/docbook.xsl")))
1452 (setenv "XML_CATALOG_FILES"
1453 (string-append (assoc-ref inputs "docbook-xml")
1454 "/xml/dtd/docbook/catalog.xml"))
1455 ;; Rerun the whole thing to avoid version mismatch ("This is
1456 ;; Automake 1.15.1, but the definition used by this
1457 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1458 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1459 (invoke "autoconf")
1460 (invoke "aclocal")
1461 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1462 (inputs
1463 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1464 ("linux-pam" ,linux-pam)
ab35cc6e 1465 ("openssh" ,openssh)
e99a3d6f
RW
1466 ("dbus" ,dbus)
1467 ("gcr" ,gcr)))
1468 (native-inputs
1469 `(("pkg-config" ,pkg-config)
1470 ("glib" ,glib "bin")
5120f24f 1471 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1472 ("python" ,python-2) ;for tests
1473 ("intltool" ,intltool)
1474 ("autoconf" ,autoconf)
1475 ("automake" ,automake)
1476 ("libxslt" ,libxslt) ;for documentation
1477 ("docbook-xml" ,docbook-xml-4.2)
1478 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1479 (home-page "https://www.gnome.org")
e99a3d6f
RW
1480 (synopsis "Daemon to store passwords and encryption keys")
1481 (description
1482 "gnome-keyring is a program that keeps passwords and other secrets for
1483users. It is run as a daemon in the session, similar to ssh-agent, and other
1484applications locate it via an environment variable or D-Bus.
1485
1486The program can manage several keyrings, each with its own master password,
1487and there is also a session keyring which is never stored to disk, but
1488forgotten when the session ends.")
1489 (license license:lgpl2.1+)))
1490
c1354b90
LC
1491(define-public evince
1492 (package
1493 (name "evince")
936d5642 1494 (version "3.34.2")
c1354b90
LC
1495 (source (origin
1496 (method url-fetch)
ac631328 1497 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1498 (version-major+minor version) "/"
ac631328 1499 "evince-" version ".tar.xz"))
c1354b90
LC
1500 (sha256
1501 (base32
936d5642 1502 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1503 (build-system glib-or-gtk-build-system)
c1354b90 1504 (arguments
169b8f77 1505 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1506 #:phases
1507 (modify-phases %standard-phases
1508 (add-before 'install 'skip-gtk-update-icon-cache
1509 ;; Don't create 'icon-theme.cache'.
1510 (lambda _
1511 (substitute* "data/Makefile"
1512 (("gtk-update-icon-cache") "true"))
1513 #t)))))
c1354b90 1514 (inputs
9a096881
KK
1515 `(("libarchive" ,libarchive)
1516 ("libgxps" ,libgxps)
1517 ("libspectre" ,libspectre)
c769cf9f 1518 ("djvulibre" ,djvulibre)
c1354b90
LC
1519 ("ghostscript" ,ghostscript)
1520 ("poppler" ,poppler)
c769cf9f
SB
1521 ("libtiff" ,libtiff)
1522 ;; TODO:
c769cf9f
SB
1523 ;; Build libkpathsea as a shared library for DVI support.
1524 ;; ("libkpathsea" ,texlive-bin)
1525 ("gnome-desktop" ,gnome-desktop)
c1354b90 1526 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1527 ("gspell" ,gspell)
c1354b90 1528 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1529 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1530 ("gdk-pixbuf" ,gdk-pixbuf)
1531 ("atk" ,atk)
1532 ("pango" ,pango)
1533 ("gtk+" ,gtk+)
1534 ("glib" ,glib)
1535 ("libxml2" ,libxml2)
c1354b90
LC
1536 ("libsm" ,libsm)
1537 ("libice" ,libice)
96e42467 1538 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1539 ("dconf" ,dconf)
1540 ("libcanberra" ,libcanberra)
c769cf9f 1541 ("libsecret" ,libsecret)
a271096b 1542
c1354b90
LC
1543 ;; For tests.
1544 ("dogtail" ,python2-dogtail)))
96e42467 1545 (native-inputs
bcb354ad
SB
1546 `(("itstool" ,itstool)
1547 ("intltool" ,intltool)
426adbe8 1548 ("glib" ,glib "bin")
169b8f77 1549 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1550 ("pkg-config" ,pkg-config)
1551 ("xmllint" ,libxml2)))
c1354b90 1552 (home-page
f032d0be 1553 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1554 (synopsis "GNOME's document viewer")
1555 (description
1556 "Evince is a document viewer for multiple document formats. It
1557currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1558of Evince is to replace the multiple document viewers that exist
96e42467 1559on the GNOME Desktop with a single simple application.")
1dd26275 1560 (license license:gpl2+)))
c1354b90 1561
22e32e69
AE
1562(define-public gsettings-desktop-schemas
1563 (package
1564 (name "gsettings-desktop-schemas")
c900dabd 1565 (version "3.32.0")
22e32e69
AE
1566 (source
1567 (origin
1568 (method url-fetch)
1569 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1570 (version-major+minor version) "/"
22e32e69
AE
1571 name "-" version ".tar.xz"))
1572 (sha256
1573 (base32
c900dabd
KK
1574 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1575 (build-system meson-build-system)
65209ffa
LC
1576 (arguments
1577 '(#:phases (modify-phases %standard-phases
1578 (add-after 'unpack 'set-adwaita-theme-file-name
1579 (lambda* (#:key inputs #:allow-other-keys)
1580 ;; Provide the correct file name of the default GNOME
1581 ;; background, 'adwaita-timed.xml'.
1582 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1583 (substitute* (find-files "schemas"
1584 "\\.gschema\\.xml\\.in$")
1585 (("@datadir@/backgrounds/gnome")
1586 (string-append theme "/share/backgrounds/gnome")))
1587 #t))))))
22e32e69 1588 (inputs
65209ffa
LC
1589 `(("glib" ,glib)
1590 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1591 (native-inputs
1592 `(("intltool" ,intltool)
426adbe8 1593 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1594 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1595 ("pkg-config" ,pkg-config)))
1596 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1597 (synopsis
1598 "GNOME settings for various desktop components")
1599 (description
1600 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1601for settings shared by various components of the GNOME desktop.")
1dd26275 1602 (license license:lgpl2.1+)))
22e32e69 1603
27477d2d
AE
1604(define-public icon-naming-utils
1605 (package
1606 (name "icon-naming-utils")
1607 (version "0.8.90")
1608 (source
1609 (origin
1610 (method url-fetch)
5cc3096c 1611 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1612 version ".tar.bz2"))
1613 (sha256
1614 (base32
1615 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1616 (build-system gnu-build-system)
1617 (inputs
1618 `(("perl" ,perl)
1619 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1620 (arguments
1621 '(#:phases
dc1d3cde
KK
1622 (modify-phases %standard-phases
1623 (add-after 'install 'set-load-paths
1624 ;; Tell 'icon-name-mapping' where XML::Simple is.
1625 (lambda* (#:key outputs #:allow-other-keys)
1626 (let* ((out (assoc-ref outputs "out"))
1627 (prog (string-append out "/libexec/icon-name-mapping")))
1628 (wrap-program
1629 prog
1630 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1631 #t)))))
27477d2d
AE
1632 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1633 (synopsis
1634 "Utility to implement the Freedesktop Icon Naming Specification")
1635 (description
1636 "To help with the transition to the Freedesktop Icon Naming
1637Specification, the icon naming utility maps the icon names used by the
1638GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1639 (license license:lgpl2.1+)))
27477d2d 1640
7d3f3651
AE
1641(define-public gnome-icon-theme
1642 (package
1643 (name "gnome-icon-theme")
b32f58dd 1644 (version "3.12.0")
7d3f3651
AE
1645 (source
1646 (origin
1647 (method url-fetch)
1648 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1649 (version-major+minor version) "/"
7d3f3651
AE
1650 name "-" version ".tar.xz"))
1651 (sha256
1652 (base32
b32f58dd 1653 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1654 (build-system gnu-build-system)
5613c27d
SB
1655 (arguments
1656 '(#:configure-flags
1657 ;; Don't create 'icon-theme.cache'.
1658 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1659 (true (string-append coreutils "/bin/true")))
1660 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1661 (native-inputs
5613c27d 1662 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1663 ("intltool" ,intltool)
1664 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1665 (home-page "https://wiki.gnome.org/Personalization")
1666 (synopsis "GNOME icon theme")
1667 (description "Icons for the GNOME desktop.")
1dd26275 1668 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1669
14eeefa2
SB
1670;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1671(define-public adwaita-icon-theme
1672 (package (inherit gnome-icon-theme)
1673 (name "adwaita-icon-theme")
9be59d7f 1674 (version "3.32.0")
14eeefa2
SB
1675 (source (origin
1676 (method url-fetch)
1677 (uri (string-append "mirror://gnome/sources/" name "/"
1678 (version-major+minor version) "/"
1679 name "-" version ".tar.xz"))
1680 (sha256
1681 (base32
9be59d7f 1682 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1683 (native-inputs
1684 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1685
ae792dba
RW
1686(define-public tango-icon-theme
1687 (package
1688 (name "tango-icon-theme")
1689 (version "0.8.90")
1690 (source (origin
1691 (method url-fetch)
1692 (uri (string-append "http://tango.freedesktop.org/releases/"
1693 "tango-icon-theme-" version ".tar.bz2"))
1694 (sha256
1695 (base32
1696 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1697 (build-system gnu-build-system)
1698 (native-inputs
1699 `(("icon-naming-utils" ,icon-naming-utils)
1700 ("intltool" ,intltool)
1701 ("imagemagick" ,imagemagick)
1702 ("pkg-config" ,pkg-config)))
1703 (home-page "http://tango-project.org/")
1704 (synopsis "Tango icon theme")
1705 (description "This is an icon theme that follows the Tango visual
1706guidelines.")
1707 (license license:public-domain)))
1708
9167f8e6
LC
1709(define-public shared-mime-info
1710 (package
1711 (name "shared-mime-info")
18138ab9 1712 (version "1.10")
9167f8e6
LC
1713 (source (origin
1714 (method url-fetch)
5cc3096c 1715 (uri (string-append "https://freedesktop.org/~hadess/"
b38e45d8 1716 "shared-mime-info-" version ".tar.xz"))
9167f8e6
LC
1717 (sha256
1718 (base32
18138ab9 1719 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
9167f8e6
LC
1720 (build-system gnu-build-system)
1721 (arguments
1722 ;; The build system appears not to be parallel-safe.
1723 '(#:parallel-build? #f))
1724 (inputs
1725 `(("glib" ,glib)
c4c4cc05 1726 ("libxml2" ,libxml2)))
9167f8e6 1727 (native-inputs
c4c4cc05
JD
1728 `(("intltool" ,intltool)
1729 ("pkg-config" ,pkg-config)))
57e7d748 1730 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1731 (synopsis "Database of common MIME types")
1732 (description
1733 "The shared-mime-info package contains the core database of common types
1734and the update-mime-database command used to extend it. It requires glib2 to
1735be installed for building the update command. Additionally, it uses intltool
1736for translations, though this is only a dependency for the maintainers. This
1737database is translated at Transifex.")
1dd26275 1738 (license license:gpl2+)))
9167f8e6 1739
dd1fcddc
CB
1740(define-public system-config-printer
1741 (package
1742 (name "system-config-printer")
fa01e10d 1743 (version "1.5.12")
a5643044
TGR
1744 (source
1745 (origin
1746 (method url-fetch)
1747 (uri (string-append
1748 "https://github.com/OpenPrinting/system-config-printer/releases/"
1749 "download/" version
1750 "/system-config-printer-" version ".tar.xz"))
1751 (sha256
fa01e10d 1752 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1753 (build-system glib-or-gtk-build-system)
1754 (arguments
1755 `(#:imported-modules ((guix build python-build-system)
1756 ,@%glib-or-gtk-build-system-modules)
1757 #:phases
1758 (modify-phases %standard-phases
1759 (add-after 'unpack 'patch-Makefile.am
1760 (lambda _
1761 ;; The Makefile generates some scripts, so set a valid shebang
1762 (substitute* "Makefile.am"
1763 (("/bin/bash") (which "bash")))
1764 (delete-file "configure")
1765 #t))
1766 (add-after 'unpack 'patch-docbook-xml
1767 (lambda* (#:key inputs #:allow-other-keys)
1768 ;; Modify the man XML otherwise xmlto tries to access the network
1769 (substitute* "man/system-config-printer.xml"
1770 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1771 (string-append (assoc-ref inputs "docbook-xml")
1772 "/xml/dtd/docbook/")))
1773 #t))
1774 (add-after 'install 'wrap-for-python
1775 (@@ (guix build python-build-system) wrap))
1776 (add-after 'install 'wrap
1777 (lambda* (#:key outputs #:allow-other-keys)
1778 (let ((out (assoc-ref outputs "out"))
1779 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1780 (for-each
1781 (lambda (program)
1782 (wrap-program program
1783 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1784 (map (lambda (name)
1785 (string-append out "/bin/" name))
1786 '("system-config-printer"
1787 "system-config-printer-applet"
1788 "install-printerdriver"
1789 "scp-dbus-service"))))
1790 #t)))))
1791 (inputs
1792 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1793 ("gobject-introspection" ,gobject-introspection)
1794 ("python" ,python)
1795 ("cups" ,cups)
1796 ("python-dbus" ,python-dbus)
1797 ("python-pygobject" ,python-pygobject)
1798 ("python-pycups" ,python-pycups)
1799 ("python-requests" ,python-requests)
1800 ("python-pycairo" ,python-pycairo)
1801 ("libnotify" ,libnotify)
1802 ("packagekit" ,packagekit)))
1803 (native-inputs
1804 `(("pkg-config" ,pkg-config)
1805 ("desktop-file-utils" ,desktop-file-utils)
1806 ("glib" ,glib)
1807 ("autoconf" ,autoconf)
1808 ("automake" ,automake)
1809 ("intltool" ,intltool)
1810 ("xmlto" ,xmlto)
1811 ("docbook-xml" ,docbook-xml-4.1.2)
1812 ("docbook-xsl" ,docbook-xsl)
1813 ("libxml2" ,libxml2)))
1814 (home-page "https://github.com/zdohnal/system-config-printer")
1815 (synopsis "CUPS administration tool")
1816 (description
1817 "system-config-printer is a CUPS administration tool. It's written in
1818Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1819configuring CUPS.")
1820 (license license:gpl2+)))
1821
bef4dd92
AE
1822(define-public hicolor-icon-theme
1823 (package
1824 (name "hicolor-icon-theme")
851cb6dd 1825 (version "0.17")
bef4dd92
AE
1826 (source
1827 (origin
1828 (method url-fetch)
5cc3096c 1829 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1830 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1831 (sha256
1832 (base32
851cb6dd 1833 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1834 (build-system gnu-build-system)
1835 (arguments
1836 `(#:tests? #f)) ; no check target
57e7d748 1837 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1838 (synopsis
1839 "Freedesktop icon theme")
1840 (description
1841 "Freedesktop icon theme.")
1dd26275 1842 (license license:gpl2)))
bef4dd92 1843
d9c1a22b
AE
1844(define-public libnotify
1845 (package
1846 (name "libnotify")
195bfa68 1847 (version "0.7.7")
d9c1a22b
AE
1848 (source
1849 (origin
1850 (method url-fetch)
1851 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1852 (version-major+minor version) "/"
d9c1a22b
AE
1853 name "-" version ".tar.xz"))
1854 (sha256
1855 (base32
195bfa68 1856 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1857 (build-system gnu-build-system)
6acf6cec
MB
1858 (arguments
1859 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1860 (propagated-inputs
1861 `(;; In Requires of libnotify.pc.
1862 ("gdk-pixbuf" ,gdk-pixbuf)
1863 ("glib" ,glib)))
d9c1a22b 1864 (inputs
7ef08efa 1865 `(("gtk+" ,gtk+)
c4c4cc05
JD
1866 ("libpng" ,libpng)))
1867 (native-inputs
426adbe8 1868 `(("pkg-config" ,pkg-config)
277a7d82
JN
1869 ("glib" ,glib "bin")
1870 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1871 (home-page "https://developer-next.gnome.org/libnotify/")
1872 (synopsis
1873 "GNOME desktop notification library")
1874 (description
1875 "Libnotify is a library that sends desktop notifications to a
35b9e423 1876notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1877notifications can be used to inform the user about an event or display
1878some form of information without getting in the user's way.")
1dd26275 1879 (license license:lgpl2.1+)))
7a8605ce
CR
1880
1881(define-public libpeas
1882 (package
1883 (name "libpeas")
f2d56e39 1884 (version "1.24.1")
7a8605ce
CR
1885 (source
1886 (origin
1887 (method url-fetch)
1888 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1889 (version-major+minor version) "/"
7a8605ce
CR
1890 name "-" version ".tar.xz"))
1891 (sha256
1892 (base32
f2d56e39
MB
1893 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1894 (build-system meson-build-system)
1895 (arguments
1896 '(#:phases
1897 (modify-phases %standard-phases
1898 (add-before 'check 'start-xserver
1899 (lambda* (#:key inputs #:allow-other-keys)
1900 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1901 (disp ":1"))
1902 (setenv "DISPLAY" disp)
1903 ;; Tests require a running X server.
1904 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1905 #t))))))
7a8605ce 1906 (inputs
2ed6522a
SB
1907 `(("gtk+" ,gtk+)
1908 ("glade" ,glade3)
2ed6522a
SB
1909 ("python" ,python)
1910 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1911 (native-inputs
1912 `(("pkg-config" ,pkg-config)
f2d56e39 1913 ("gettext" ,gettext-minimal)
93622993 1914 ("glib:bin" ,glib "bin")
141aed80 1915 ("gobject-introspection" ,gobject-introspection)
f2d56e39 1916 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
1917 (propagated-inputs
1918 ;; The .pc file "Requires" gobject-introspection.
1919 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1920 (home-page "https://wiki.gnome.org/Libpeas")
1921 (synopsis "GObject plugin system")
1922 (description
d1e4ad1b
TGR
1923 "Libpeas is a gobject-based plugin engine, targeted at giving every
1924application the chance to assume its own extensibility. It also has a set of
1925features including, but not limited to: multiple extension points; on-demand
1926(lazy) programming language support for C, Python and JS; simplicity of the
1927API.")
1dd26275 1928 (license license:lgpl2.0+)))
ed19903d
JD
1929
1930(define-public gtkglext
1931 (package
1932 (name "gtkglext")
1933 (version "1.2.0")
1934 (source (origin
1935 (method url-fetch)
0f971a04 1936 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1937 version "/gtkglext-" version ".tar.gz"))
1938 (sha256
1939 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1940 (patches (search-patches
1941 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1942 (build-system gnu-build-system)
14e2f61a
RW
1943 (arguments
1944 `(#:phases
1945 (modify-phases %standard-phases
1946 ;; Fix a collision between a local variable and a definition from
1947 ;; glibc's string.h.
1948 (add-after 'unpack 'fix-collision
1949 (lambda _
1950 (substitute* "gdk/gdkglshapes.c"
1951 ((" index") " triangle_index"))
1952 #t)))))
ed19903d
JD
1953 (inputs `(("gtk+" ,gtk+-2)
1954 ("mesa" ,mesa)
cc8b02f4 1955 ("glu" ,glu)
ed19903d
JD
1956 ("libx11" ,libx11)
1957 ("libxt" ,libxt)))
426adbe8
LC
1958 (native-inputs `(("pkg-config" ,pkg-config)
1959 ("glib" ,glib "bin")))
a83b6a06 1960 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1961 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1962 (synopsis "OpenGL extension to GTK+")
35b9e423 1963 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1964additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1965API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 1966 (license license:lgpl2.1+)))
3600420e
JD
1967
1968(define-public glade3
1969 (package
1970 (name "glade")
c6571adb 1971 (version "3.22.1")
b38e45d8
EB
1972 (source (origin
1973 (method url-fetch)
1974 (uri (string-append "mirror://gnome/sources/" name "/"
1975 (version-major+minor version) "/"
f5ca44b8 1976 name "-" version ".tar.xz"))
3600420e 1977 (sha256
f714d9fe 1978 (base32
c6571adb 1979 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 1980 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
1981 (arguments
1982 `(#:tests? #f ; needs X, GL, and software rendering
1983 #:phases
1984 (modify-phases %standard-phases
1985 (add-before 'configure 'fix-docbook
1986 (lambda* (#:key inputs #:allow-other-keys)
1987 (substitute* "man/Makefile.in"
1988 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1989 (string-append (assoc-ref inputs "docbook-xsl")
1990 "/xml/xsl/docbook-xsl-"
1991 ,(package-version docbook-xsl)
1992 "/manpages/docbook.xsl")))
1993 #t)))))
3600420e 1994 (inputs
f5ca44b8 1995 `(("gtk+" ,gtk+)
3600420e
JD
1996 ("libxml2" ,libxml2)))
1997 (native-inputs
1998 `(("intltool" ,intltool)
f5ca44b8
RW
1999 ("itstool" ,itstool)
2000 ("libxslt" ,libxslt) ;for xsltproc
2001 ("docbook-xml" ,docbook-xml-4.2)
2002 ("docbook-xsl" ,docbook-xsl)
2003 ("python" ,python-2)
3600420e
JD
2004 ("pkg-config" ,pkg-config)))
2005 (home-page "https://glade.gnome.org")
2006 (synopsis "GTK+ rapid application development tool")
2007 (description "Glade is a rapid application development (RAD) tool to
2008enable quick & easy development of user interfaces for the GTK+ toolkit and
2009the GNOME desktop environment.")
1dd26275
LC
2010 (license license:lgpl2.0+)))
2011
2012(define-public libcroco
2013 (package
2014 (name "libcroco")
8bdacad2 2015 (version "0.6.13")
1dd26275
LC
2016 (source (origin
2017 (method url-fetch)
b38e45d8
EB
2018 (uri (string-append "mirror://gnome/sources/" name "/"
2019 (version-major+minor version) "/"
2020 name "-" version ".tar.xz"))
1dd26275
LC
2021 (sha256
2022 (base32
8bdacad2 2023 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2024 (build-system gnu-build-system)
2025 (native-inputs
2026 `(("pkg-config" ,pkg-config)))
2027 (inputs
2028 `(("glib" ,glib)
2029 ("libxml2" ,libxml2)
2030 ("zlib" ,zlib)))
2031 (home-page "https://github.com/GNOME/libcroco")
2032 (synopsis "CSS2 parsing and manipulation library")
2033 (description
2034 "Libcroco is a standalone CSS2 parsing and manipulation library.
2035The parser provides a low level event driven SAC-like API and a CSS object
2036model like API. Libcroco provides a CSS2 selection engine and an experimental
2037XML/CSS rendering engine.")
2038
2039 ;; LGPLv2.1-only.
2040 (license license:lgpl2.1)))
25178594
LC
2041
2042(define-public libgsf
2043 (package
2044 (name "libgsf")
8d1644a1 2045 (version "1.14.46")
25178594
LC
2046 (source (origin
2047 (method url-fetch)
b38e45d8
EB
2048 (uri (string-append "mirror://gnome/sources/" name "/"
2049 (version-major+minor version) "/"
2050 name "-" version ".tar.xz"))
25178594
LC
2051 (sha256
2052 (base32
8d1644a1 2053 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
2054 (build-system gnu-build-system)
2055 (native-inputs
2056 `(("intltool" ,intltool)
2057 ("pkg-config" ,pkg-config)))
2058 (inputs
2059 `(("python" ,python)
2060 ("zlib" ,zlib)
2061 ("bzip2" ,bzip2)))
2062 (propagated-inputs
2063 `(("gdk-pixbuf" ,gdk-pixbuf)
2064 ("glib" ,glib)
2065 ("libxml2" ,libxml2)))
f032d0be 2066 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2067 (synopsis "GNOME's Structured File Library")
2068 (description
2069 "Libgsf aims to provide an efficient extensible I/O abstraction for
2070dealing with different structured file formats.")
2071
2072 ;; LGPLv2.1-only.
2073 (license license:lgpl2.1)))
63016e7c
LC
2074
2075(define-public librsvg
f67417a1
MB
2076 (package
2077 (name "librsvg")
2078 (version "2.40.20")
2079 (source (origin
2080 (method url-fetch)
2081 (uri (string-append "mirror://gnome/sources/" name "/"
2082 (version-major+minor version) "/"
2083 name "-" version ".tar.xz"))
2084 (sha256
2085 (base32
2086 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2087 (build-system gnu-build-system)
2088 (arguments
2089 `(#:configure-flags
2090 (list "--disable-static"
2091 "--enable-vala") ; needed for e.g. gnome-mines
2092 #:phases
2093 (modify-phases %standard-phases
2094 (add-before 'configure 'pre-configure
2095 (lambda* (#:key inputs #:allow-other-keys)
2096 (substitute* "gdk-pixbuf-loader/Makefile.in"
2097 ;; By default the gdk-pixbuf loader is installed under
2098 ;; gdk-pixbuf's prefix. Work around that.
2099 (("gdk_pixbuf_moduledir = .*$")
2100 (string-append "gdk_pixbuf_moduledir = "
2101 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2102 "loaders\n"))
2103 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2104 (("gdk_pixbuf_cache_file = .*$")
2105 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2106 #t))
2107 (add-before 'check 'remove-failing-tests
2108 (lambda _
2109 (with-directory-excursion "tests/fixtures/reftests"
2110 (for-each delete-file
2111 '(;; This test fails on i686:
2112 "svg1.1/masking-path-04-b.svg"
2113 ;; This test fails on armhf:
2114 "svg1.1/masking-mask-01-b.svg"
2115 ;; This test fails on aarch64:
2116 "bugs/777834-empty-text-children.svg")))
2117 #t)))))
2118 (native-inputs
2119 `(("pkg-config" ,pkg-config)
2120 ("vala" ,vala)
2121 ("glib" ,glib "bin") ; glib-mkenums, etc.
2122 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2123 (inputs
2124 `(("pango" ,pango)
2125 ("libcroco" ,libcroco)
2126 ("bzip2" ,bzip2)
2127 ("libgsf" ,libgsf)
2128 ("libxml2" ,libxml2)))
2129 (propagated-inputs
2130 ;; librsvg-2.0.pc refers to all of that.
2131 `(("cairo" ,cairo)
2132 ("gdk-pixbuf" ,gdk-pixbuf)
2133 ("glib" ,glib)))
2134 (home-page "https://wiki.gnome.org/LibRsvg")
2135 (synopsis "Render SVG files using Cairo")
2136 (description
2137 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2138library.")
2139 (license license:lgpl2.0+)))
2140
8f523eb9
EF
2141(define* (computed-origin-method gexp-promise hash-algo hash
2142 #:optional (name "source")
2143 #:key (system (%current-system))
2144 (guile (default-guile)))
2145 "Return a derivation that executes the G-expression that results
2146from forcing GEXP-PROMISE."
2147 (mlet %store-monad ((guile (package->derivation guile system)))
2148 (gexp->derivation (or name "computed-origin")
2149 (force gexp-promise)
2150 #:graft? #f ;nothing to graft
2151 #:system system
2152 #:guile-for-build guile)))
2153
2154(define librsvg-next-source
2155 (let* ((version "2.46.3")
2156 (upstream-source (origin
2157 (method url-fetch)
2158 (uri (string-append "mirror://gnome/sources/librsvg/"
2159 (version-major+minor version) "/"
2160 "librsvg-" version ".tar.xz"))
2161 (sha256
2162 (base32
2163 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
2164 (origin
2165 (method computed-origin-method)
2166 (file-name (string-append "librsvg-" version ".tar.xz"))
2167 (sha256 #f)
2168 (uri
2169 (delay
2170 (with-imported-modules '((guix build utils))
2171 #~(begin
2172 (use-modules (guix build utils))
2173 (set-path-environment-variable
2174 "PATH" '("bin")
2175 (list "/tmp"
2176 #+(canonical-package xz)
2177 #+(canonical-package gzip)
2178 #+(canonical-package tar)))
2179 (invoke "tar" "xvf" #+upstream-source)
2180 (with-directory-excursion (string-append "librsvg-" #$version)
2181 (for-each
2182 (lambda (crate)
2183 (delete-file-recursively (string-append "vendor/" (car crate)))
2184 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
e19cb895 2185 '(;("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
8f523eb9 2186;; alga 0.9
e19cb895
EF
2187 ("approx" . #+(package-source rust-approx-0.3))
2188 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
8f523eb9
EF
2189 ("atty" . #+(package-source rust-atty-0.2))
2190 ("autocfg" . #+(package-source rust-autocfg-0.1))
2191 ("bitflags" . #+(package-source rust-bitflags-1))
2192;; block 0.1
e19cb895
EF
2193 ("bstr" . #+(package-source rust-bstr-0.2))
2194 ("byteorder" . #+(package-source rust-byteorder-1.3))
8f523eb9
EF
2195;; cairo-rs 0.7
2196;; cairo-sys-rs 0.9
e19cb895 2197 ("cast" . #+(package-source rust-cast-0.2))
8f523eb9
EF
2198 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2199 ("clap" . #+(package-source rust-clap-2))
e19cb895
EF
2200 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2201 ("criterion" . #+(package-source rust-criterion-0.2))
2202 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
2203 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
2204 ;("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.7))
2205 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.1))
2206 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.6))
8f523eb9
EF
2207;; cssparser 0.25
2208;; cssparser-macros 0.3
e19cb895
EF
2209 ("csv" . #+(package-source rust-csv-1.1))
2210 ("csv-core" . #+(package-source rust-csv-core-0.1))
8f523eb9
EF
2211;; data-url 0.1
2212;; downcast-rs 1.0
2213 ("dtoa" . #+(package-source rust-dtoa-0.4))
2214;; dtoa-short 0.3
e19cb895
EF
2215 ("either" . #+(package-source rust-either-1.5))
2216 ("encoding" . #+(package-source rust-encoding-0.2))
2217 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2218 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2219 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2220 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2221 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2222 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
8f523eb9
EF
2223;; float-cmp 0.5
2224;; fragile 0.3
e19cb895
EF
2225 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2226 ("futf" . #+(package-source rust-futf-0.1))
8f523eb9
EF
2227;; gdk-pixbuf 0.7
2228;; gdk-pixbuf-sys 0.9
e19cb895 2229 ("generic-array" . #+(package-source rust-generic-array-0.12))
8f523eb9
EF
2230;; gio 0.7
2231;; gio-sys 0.9
2232;; glib 0.8
2233;; glib-sys 0.9
2234;; gobject-sys 0.9
2235;; idna 0.2
e19cb895 2236 ("itertools" . #+(package-source rust-itertools-0.8))
8f523eb9 2237 ("itoa" . #+(package-source rust-itoa-0.4))
e19cb895 2238 ("language-tags" . #+(package-source rust-language-tags-0.2))
8f523eb9
EF
2239 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
2240 ("libc" . #+(package-source rust-libc-0.2))
2241;; libm 0.1
2242;; locale_config 0.3
2243 ("log" . #+(package-source rust-log-0.4))
e19cb895 2244 ("mac" . #+(package-source rust-mac-0.1))
8f523eb9
EF
2245;; malloc_buf 0.0
2246;; markup5ever 0.9
e19cb895 2247 ("matches" . #+(package-source rust-matches-0.1))
8f523eb9 2248;; matrixmultiply 0.2
e19cb895 2249 ;("memchr" . #+(package-source rust-memchr-2.2))
8f523eb9
EF
2250;; memoffset 0.5
2251;; nalgebra 0.18
e19cb895 2252 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
8f523eb9 2253 ("nodrop" . #+(package-source rust-nodrop-0.1))
e19cb895 2254 ("num-complex" . #+(package-source rust-num-complex-0.2))
8f523eb9
EF
2255 ("num-integer" . #+(package-source rust-num-integer-0.1))
2256;; num-rational 0.2
2257 ("num-traits" . #+(package-source rust-num-traits-0.2))
2258 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
2259;; objc 0.2
2260;; objc-foundation 0.1
2261;; objc_id 0.1
2262;; pango 0.7
2263;; pango-sys 0.9
2264;; pangocairo 0.8
2265;; pangocairo-sys 0.10
2266 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
e19cb895
EF
2267 ("phf" . #+(package-source rust-phf-0.7))
2268 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2269 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2270 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2271 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2272 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
8f523eb9
EF
2273 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2274;; procedural-masquerade 0.1
2275 ("quote" . #+(package-source rust-quote-1.0))
e19cb895 2276 ("rand" . #+(package-source rust-rand-0.6))
8f523eb9
EF
2277 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2278 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2279 ("rand_core" . #+(package-source rust-rand-core-0.4))
2280 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2281 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2282 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2283 ("rand_os" . #+(package-source rust-rand-os-0.1))
2284 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2285 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
2286;; rand_xoshiro 0.1
e19cb895 2287;; rawpointer 0.2
8f523eb9
EF
2288;; rayon 1.2
2289;; rayon-core 1.6
2290;; rctree 0.3
2291 ("rdrand" . #+(package-source rust-rdrand-0.4))
2292;; regex 1.3
e19cb895 2293 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
8f523eb9 2294 ;("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
e19cb895 2295 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
8f523eb9
EF
2296 ("ryu" . #+(package-source rust-ryu-1.0))
2297 ("same-file" . #+(package-source rust-same-file-1.0))
2298 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
e19cb895
EF
2299 ("semver" . #+(package-source rust-semver-0.9))
2300 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
8f523eb9
EF
2301 ("serde" . #+(package-source rust-serde-1.0))
2302 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2303 ("serde_json" . #+(package-source rust-serde-json-1.0))
e19cb895
EF
2304 ("siphasher" . #+(package-source rust-siphasher-0.2))
2305 ("smallvec" . #+(package-source rust-smallvec-0.6))
2306 ("string_cache" . #+(package-source rust-string-cache-0.7))
2307 ;("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
2308 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
8f523eb9 2309 ("syn" . #+(package-source rust-syn-1.0))
e19cb895 2310 ("tendril" . #+(package-source rust-tendril-0.4))
8f523eb9 2311 ("textwrap" . #+(package-source rust-textwrap-0.11))
e19cb895
EF
2312 ("thread_local" . #+(package-source rust-thread-local-0.3))
2313 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2314 ("typenum" . #+(package-source rust-typenum-1.10))
2315 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2316 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
8f523eb9
EF
2317 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2318 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
2319;; url 2.1
e19cb895 2320 ("utf-8" . #+(package-source rust-utf-8-0.7))
8f523eb9
EF
2321 ("walkdir" . #+(package-source rust-walkdir-2.2))
2322 ("winapi" . #+(package-source rust-winapi-0.3))
e19cb895 2323 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
8f523eb9 2324 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
e19cb895 2325 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
8f523eb9
EF
2326;; xml-rs 0.8
2327 )))
2328 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2329 (force-output)
2330 (invoke "tar" "cfa" #$output
2331 ;; Avoid non-determinism in the archive. We set the
2332 ;; mtime of files in the archive to early 1980 because
2333 ;; the build process fails if the mtime of source
2334 ;; files is pre-1980, due to the creation of zip
2335 ;; archives.
2336 "--mtime=@315619200" ; 1980-01-02 UTC
2337 "--owner=root:0"
2338 "--group=root:0"
2339 "--sort=name"
2340 (string-append "librsvg-" #$version))
2341 #t)))))))
2342
f67417a1 2343(define-public librsvg-next
63016e7c
LC
2344 (package
2345 (name "librsvg")
cf9dad6c 2346 (version "2.46.3")
8f523eb9 2347 (source librsvg-next-source)
63016e7c
LC
2348 (build-system gnu-build-system)
2349 (arguments
d953418a
RW
2350 `(#:configure-flags
2351 (list "--disable-static"
2352 "--enable-vala") ; needed for e.g. gnome-mines
7e0f4cb1 2353 #:make-flags '("CC=gcc")
8f523eb9 2354 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
ec47c07d 2355 #:phases
b6239e45 2356 (modify-phases %standard-phases
8f523eb9 2357 (add-after 'configure 'patch-cargo-checksums
ec47c07d 2358 (lambda _
8f523eb9
EF
2359 (use-modules (guix build cargo-utils))
2360 (substitute* "librsvg/Cargo.toml"
2361 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
b665a246 2362 (generate-all-checksums "vendor")
8f523eb9
EF
2363 (delete-file "Cargo.lock")
2364 (invoke "cargo" "generate-lockfile")))
b6239e45
EF
2365 (add-before 'configure 'pre-configure
2366 (lambda* (#:key inputs #:allow-other-keys)
2367 (substitute* "gdk-pixbuf-loader/Makefile.in"
2368 ;; By default the gdk-pixbuf loader is installed under
2369 ;; gdk-pixbuf's prefix. Work around that.
2370 (("gdk_pixbuf_moduledir = .*$")
2371 (string-append "gdk_pixbuf_moduledir = "
2372 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2373 "loaders\n"))
2374 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2375 (("gdk_pixbuf_cache_file = .*$")
2376 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2377 #t))
ec47c07d 2378 (add-before 'check 'remove-failing-tests
b6239e45 2379 (lambda _
64a153bd
MW
2380 (with-directory-excursion "tests/fixtures/reftests"
2381 (for-each delete-file
ec47c07d
MB
2382 '(;; The images produced by these tests differ slightly
2383 ;; from their reference counterparts due to differences
2384 ;; in the build environment (missing fonts, etc). See
2385 ;; <tests/README.md> for details.
2386 ;; These fail on x86_64.
2387 "svg1.1/coords-viewattr-02-b.svg"
2388 "svg1.1/filters-composite-04-f.svg"
2389 "svg1.1/filters-image-01-b.svg"
2390 "svg1.1/filters-conv-02-f.svg"
2391 "svg1.1/filters-conv-04-f.svg"
2392 ;; This test fails on i686:
64a153bd 2393 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2394 ;; This test fails on armhf:
2395 "svg1.1/masking-mask-01-b.svg"
64a153bd 2396 ;; This test fails on aarch64:
ec47c07d 2397 "bugs/777834-empty-text-children.svg")))
b6239e45 2398 #t)))))
63016e7c
LC
2399 (native-inputs
2400 `(("pkg-config" ,pkg-config)
64855281
MB
2401 ;; This is the minimum supported Rust version in Librsvg 2.46.
2402 ("rust" ,rust-1.34)
2403 ("cargo" ,rust-1.34 "cargo")
d953418a 2404 ("vala" ,vala)
44add1ce 2405 ("glib" ,glib "bin") ; glib-mkenums, etc.
63016e7c
LC
2406 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2407 (inputs
2408 `(("pango" ,pango)
2409 ("libcroco" ,libcroco)
2410 ("bzip2" ,bzip2)
2411 ("libgsf" ,libgsf)
2412 ("libxml2" ,libxml2)))
2413 (propagated-inputs
2414 ;; librsvg-2.0.pc refers to all of that.
2415 `(("cairo" ,cairo)
2416 ("gdk-pixbuf" ,gdk-pixbuf)
2417 ("glib" ,glib)))
2418 (home-page "https://wiki.gnome.org/LibRsvg")
2419 (synopsis "Render SVG files using Cairo")
2420 (description
35b9e423 2421 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
63016e7c 2422library.")
cf9dad6c 2423 (license license:lgpl2.1+)))
5698b8b8
JD
2424
2425(define-public libidl
2426 (package
2427 (name "libidl")
2428 (version "0.8.14")
2429 (source (origin
2430 (method url-fetch)
80a06e62
EF
2431 (uri (string-append "mirror://gnome/sources/libIDL/"
2432 (version-major+minor version) "/"
2433 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2434 (sha256
2435 (base32
2436 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2437 (build-system gnu-build-system)
2438 (inputs `(("glib" ,glib)))
2439 (native-inputs
2440 `(("pkg-config" ,pkg-config)
b3546174 2441 ("flex" ,flex)
5698b8b8
JD
2442 ("bison" ,bison)))
2443 (home-page "http://freecode.com/projects/libidl")
2444 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2445 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2446Definition Language (idl) files, which is a specification for defining
2447portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2448GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2449functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2450 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2451 (license license:lgpl2.0+)))
2452
2453
2454(define-public orbit2
2455 (package
2456 (name "orbit2")
2457 (version "2.14.19")
2458 (source (origin
2459 (method url-fetch)
2e6ecc5c 2460 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2461 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2462 (version-major+minor version) "/"
2463 upstream-name "-" version ".tar.bz2")))
5698b8b8 2464 (sha256
a124bbd2
SB
2465 (base32
2466 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2467 (build-system gnu-build-system)
2468 (arguments
a124bbd2 2469 `(#:configure-flags
8aad2e32
LC
2470 '(;; We don't need static libraries, plus they don't build reproducibly
2471 ;; (non-deterministic ordering of .o files in the archive.)
2472 "--disable-static"
2473
2474 ;; The programmer kindly gives us a hook to turn off deprecation
2475 ;; warnings ...
2476 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2477 ;; ... which they then completly ignore !!
2478 #:phases
dc1d3cde
KK
2479 (modify-phases %standard-phases
2480 (add-before 'configure 'ignore-deprecations
2481 (lambda _
2482 (substitute* "linc2/src/Makefile.in"
2483 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2484 #t)))))
5698b8b8
JD
2485 (inputs `(("glib" ,glib)
2486 ("libidl" ,libidl)))
2487 (native-inputs
2488 `(("pkg-config" ,pkg-config)))
2489 (home-page "https://projects.gnome.org/orbit2/")
2490 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2491 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2492featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2493 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2494 ;; a version. SOME of the code files have licence notices for GPLv2+.
2495 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2496 (license license:gpl2+)
2497 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2498
2499
2500(define-public libbonobo
2501 (package
2502 (name "libbonobo")
2503 (version "2.32.1")
2504 (source (origin
2505 (method url-fetch)
5becd025 2506 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2507 (version-major+minor version)
5becd025 2508 "/" name "-" version ".tar.bz2"))
5698b8b8 2509 (sha256
f1fc45a9 2510 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2511 (patches (search-patches
2512 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2513 (build-system gnu-build-system)
2514 (arguments
2515 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2516 `(#:configure-flags
2517 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2518 ;; ... which they then completly ignore !!
2519 #:phases
dc1d3cde
KK
2520 (modify-phases %standard-phases
2521 (add-before 'configure 'ignore-deprecations
2522 (lambda _
2523 (substitute* "activation-server/Makefile.in"
2524 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2525 #t)))
2526
2527 ;; There's apparently a race condition between the server stub
2528 ;; generation and linking of the example under 'samples/echo' that can
2529 ;; lead do undefined references when building in parallel, as reported
2530 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2531 ;; Thus, disable parallel builds.
2532 #:parallel-build? #f))
5698b8b8
JD
2533 (inputs `(("popt" ,popt)
2534 ("libxml2" ,libxml2)))
2535 ;; The following are Required by the .pc file
44add1ce 2536 (propagated-inputs
5698b8b8
JD
2537 `(("glib" ,glib)
2538 ("orbit2" ,orbit2)))
2539 (native-inputs
2540 `(("intltool" ,intltool)
2541 ("pkg-config" ,pkg-config)
221ed17a 2542 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2543 ("flex" ,flex)
2544 ("bison" ,bison)))
2545 (home-page "https://developer.gnome.org/libbonobo/")
2546 (synopsis "Framework for creating reusable components for use in GNOME applications")
2547 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2548use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2549 ;; Licence not explicitly stated. Source files contain no licence notices.
2550 ;; Tarball contains text of both GPLv2 and LGPLv2
2551 ;; GPLv2 covers both conditions
2552 (license license:gpl2+)))
2553
2554
2555(define-public gconf
2556 (package
2557 (name "gconf")
2558 (version "3.2.6")
2559 (source (origin
2560 (method url-fetch)
a124bbd2
SB
2561 (uri
2562 (let ((upstream-name "GConf"))
2563 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2564 (version-major+minor version) "/"
2565 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2566 (sha256
2567 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2568 (build-system gnu-build-system)
2e88d113 2569 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2570 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2571 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2572 ("orbit2" ,orbit2)))
5698b8b8
JD
2573 (native-inputs
2574 `(("intltool" ,intltool)
221ed17a 2575 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2576 ("pkg-config" ,pkg-config)))
2577 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2578 (synopsis "Store application preferences")
2579 (description "Gconf is a system for storing application preferences. It
2580is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2581 (license license:lgpl2.0+)
2582 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2583
2584
2585(define-public gnome-mime-data
2586 (package
2587 (name "gnome-mime-data")
2588 (version "2.18.0")
2589 (source (origin
2590 (method url-fetch)
b38e45d8
EB
2591 (uri (string-append "mirror://gnome/sources/" name "/"
2592 (version-major+minor version) "/"
2593 name "-" version ".tar.bz2"))
5698b8b8
JD
2594 (sha256
2595 (base32
2596 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2597 (build-system gnu-build-system)
2598 (native-inputs
2599 `(("perl" ,perl)
2600 ("intltool" ,intltool)))
3e6add96
LC
2601 (arguments
2602 '(#:phases (modify-phases %standard-phases
2603 (add-after 'configure 'use-our-intltool
2604 (lambda _
2605 ;; Do not use the bundled intltool commands, which lack
2606 ;; the "dotless @INC" fixes of our 'intltool' package.
2607 (substitute* (find-files "." "^Makefile$")
2608 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2609 (string-append "INTLTOOL_" tool " = intltool-"
2610 (string-downcase tool) "\n")))
2611 #t)))))
f032d0be 2612 (home-page "https://www.gnome.org")
35b9e423 2613 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2614 (description "GNOME Mime Data is a module which contains the base MIME
2615and Application database for GNOME. The data stored by this module is
2616designed to be accessed through the MIME functions in GnomeVFS.")
2617 (license license:gpl2+)))
2618
2619
2620(define-public gnome-vfs
2621 (package
2622 (name "gnome-vfs")
2623 (version "2.24.4")
2624 (source (origin
2625 (method url-fetch)
b38e45d8
EB
2626 (uri (string-append "mirror://gnome/sources/" name "/"
2627 (version-major+minor version) "/"
2628 name "-" version ".tar.bz2"))
5698b8b8 2629 (sha256
9e12bc34
MW
2630 (base32
2631 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2632 (build-system gnu-build-system)
2633 (arguments
db5127d8 2634 `(#:phases
dc1d3cde
KK
2635 (modify-phases %standard-phases
2636 (add-before 'configure 'ignore-deprecations
2637 (lambda _
2638 (substitute* '("libgnomevfs/Makefile.in"
2639 "daemon/Makefile.in")
2640 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2641 #t))
2642 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2643 (lambda _
2644 (substitute* "test/test-async-cancel.c"
2645 (("EXIT_FAILURE") "77"))
2646 #t)))))
2e6ecc5c 2647 (inputs `(("libxml2" ,libxml2)
5698b8b8 2648 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2649 ("gconf" ,gconf)
2650 ("gnome-mime-data" ,gnome-mime-data)
2651 ("zlib" ,zlib)))
2652 (native-inputs
221ed17a
EB
2653 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2654 ("intltool" ,intltool)
5698b8b8
JD
2655 ("pkg-config" ,pkg-config)))
2656 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2657 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2658 (description
2659 "GnomeVFS is the core library used to access files and folders in GNOME
2660applications. It provides a file system abstraction which allows applications
2661to access local and remote files with a single consistent API.")
5698b8b8
JD
2662 (license license:lgpl2.0+)))
2663
2664
2665
2666(define-public libgnome
2667 (package
2668 (name "libgnome")
2669 (version "2.32.1")
2670 (source (origin
2671 (method url-fetch)
b38e45d8
EB
2672 (uri (string-append "mirror://gnome/sources/" name "/"
2673 (version-major+minor version) "/"
2674 name "-" version ".tar.bz2"))
5698b8b8
JD
2675 (sha256
2676 (base32
17c3eea7
LC
2677 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2678 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2679 (build-system gnu-build-system)
2680 (arguments
2681 `(#:phases
dc1d3cde
KK
2682 (modify-phases %standard-phases
2683 (add-before 'configure 'enable-deprecated
2684 (lambda _
2685 (substitute* "libgnome/Makefile.in"
2686 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2687 #t)))))
25338e9f 2688 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2689 (native-inputs
221ed17a
EB
2690 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2691 ("intltool" ,intltool)
5698b8b8
JD
2692 ("pkg-config" ,pkg-config)))
2693 ;; The following are listed as Required in the .pc file
2694 ;; (except for libcanberra -- which seems to be oversight on the part
2695 ;; of the upstream developers -- anything that links against libgnome,
2696 ;; must also link against libcanberra
2697 (propagated-inputs
2698 `(("libcanberra" ,libcanberra)
2699 ("libbonobo" ,libbonobo)
2700 ("gconf" ,gconf)
a640d3d5
LC
2701 ("gnome-vfs" ,gnome-vfs)
2702 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2703 (home-page "https://developer.gnome.org/libgnome/")
2704 (synopsis "Useful routines for building applications")
2705 (description "The libgnome library provides a number of useful routines
2706for building modern applications, including session management, activation of
2707files and URIs, and displaying help.")
2708 (license license:lgpl2.0+)))
2709
2710
2711(define-public libart-lgpl
2712 (package
2713 (name "libart-lgpl")
76c9b6aa 2714 (version "2.3.21")
5698b8b8
JD
2715 (source (origin
2716 (method url-fetch)
2717 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2718 (string-append "mirror://gnome/sources/" upstream-name "/"
2719 (version-major+minor version) "/"
2720 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2721 (sha256
2722 (base32
76c9b6aa 2723 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2724 (build-system gnu-build-system)
2725 (native-inputs
2726 `(("pkg-config" ,pkg-config)))
2727 (home-page "https://people.gnome.org/~mathieu/libart")
2728 (synopsis "2D drawing library")
2e6ecc5c 2729 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2730high-quality vector-based 2D library with antialiasing and alpha composition.")
2731 (license license:lgpl2.0+)))
2732
2733
2734
2735(define-public libgnomecanvas
2736 (package
2737 (name "libgnomecanvas")
2738 (version "2.30.3")
2739 (source (origin
2740 (method url-fetch)
b38e45d8
EB
2741 (uri (string-append "mirror://gnome/sources/" name "/"
2742 (version-major+minor version) "/"
2743 name "-" version ".tar.gz"))
5698b8b8
JD
2744 (sha256
2745 (base32
2746 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2747 (build-system gnu-build-system)
2748 ;; Mentioned as Required in the .pc file
2749 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2750 ("gtk+" ,gtk+-2)))
2751 (native-inputs
2752 `(("intltool" ,intltool)
221ed17a 2753 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2754 ("pkg-config" ,pkg-config)))
2755 (home-page "https://developer.gnome.org/libgnomecanvas/")
2756 (synopsis "Flexible widget for creating interactive structured graphics")
2757 (description "The GnomeCanvas widget provides a flexible widget for
2758creating interactive structured graphics.")
2759 (license license:lgpl2.0+)))
2760
eadc734e
RW
2761(define-public libgnomecanvasmm
2762 (package
2763 (name "libgnomecanvasmm")
2764 (version "2.26.0")
2765 (source (origin
2766 (method url-fetch)
2767 (uri (string-append "mirror://gnome/sources/" name "/"
2768 (version-major+minor version) "/"
2769 name "-" version ".tar.bz2"))
2770 (sha256
2771 (base32
2772 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2773 (build-system gnu-build-system)
2774 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2775 (native-inputs
2776 `(("gtkmm-2" ,gtkmm-2)
2777 ("pkg-config" ,pkg-config)))
8e933cb3 2778 (home-page "https://gtkmm.org")
eadc734e
RW
2779 (synopsis "C++ bindings to the GNOME Canvas library")
2780 (description "C++ bindings to the GNOME Canvas library.")
2781 (license license:lgpl2.0+)))
2782
5698b8b8
JD
2783(define-public libgnomeui
2784 (package
2785 (name "libgnomeui")
2786 (version "2.24.5")
2787 (source (origin
2788 (method url-fetch)
b38e45d8
EB
2789 (uri (string-append "mirror://gnome/sources/" name "/"
2790 (version-major+minor version) "/"
2791 name "-" version ".tar.bz2"))
8fa1872a 2792 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2793 (sha256
2794 (base32
2795 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2796 (build-system gnu-build-system)
2797 ;; Mentioned as Required in the .pc file
0a38a497
AE
2798 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2799 ("libgnome" ,libgnome)
2800 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2801 ("libgnome-keyring" ,libgnome-keyring)))
0a38a497 2802 (inputs `(("libjpeg" ,libjpeg)
5698b8b8
JD
2803 ("popt" ,popt)
2804 ("libbonobo" ,libbonobo)
2805 ("libxml2" ,libxml2)
2806 ("libglade" ,libglade)))
2807 (native-inputs
221ed17a
EB
2808 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2809 ("intltool" ,intltool)
5698b8b8
JD
2810 ("pkg-config" ,pkg-config)))
2811 (home-page "https://developer.gnome.org/libgnomeui/")
2812 (synopsis "Additional widgets for applications")
35b9e423 2813 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2814applications. Many of the widgets from libgnomeui have already been
2815ported to GTK+.")
5698b8b8
JD
2816 (license license:lgpl2.0+)))
2817
2818(define-public libglade
2819 (package
2820 (name "libglade")
2821 (version "2.6.4")
2822 (source (origin
2823 (method url-fetch)
b38e45d8
EB
2824 (uri (string-append "mirror://gnome/sources/" name "/"
2825 (version-major+minor version) "/"
2826 name "-" version ".tar.bz2"))
5698b8b8
JD
2827 (sha256
2828 (base32
2829 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2830 (build-system gnu-build-system)
2831 (inputs
92dcc23d
AE
2832 `(("python" ,python))) ;; needed for the optional libglade-convert program
2833 (propagated-inputs
5698b8b8 2834 `(("gtk+-2" ,gtk+-2)
92dcc23d 2835 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2836 (native-inputs
2837 `(("pkg-config" ,pkg-config)))
2838 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2839 (synopsis "Load glade interfaces and access the glade built widgets")
2840 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2841graphical interfaces described in glade files and for accessing the
2842widgets built in the loading process.")
2843 (license license:gpl2+))) ; This is correct. GPL not LGPL
2844
2845(define-public libgnomeprint
eb497b66
LC
2846 ;; This library has been deprecated since 2006; see
2847 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2848 (package
2849 (name "libgnomeprint")
d19db454 2850 (version "2.18.8")
5698b8b8
JD
2851 (source (origin
2852 (method url-fetch)
b38e45d8
EB
2853 (uri (string-append "mirror://gnome/sources/" name "/"
2854 (version-major+minor version) "/"
2855 name "-" version ".tar.bz2"))
5698b8b8
JD
2856 (sha256
2857 (base32
d19db454 2858 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2859 (build-system gnu-build-system)
2860 (inputs
2861 `(("popt" ,popt)
2862 ("libart-lgpl" ,libart-lgpl)
2863 ("gtk+" ,gtk+-2)
44add1ce 2864 ("libxml2" ,libxml2)))
5698b8b8
JD
2865 (native-inputs
2866 `(("intltool" ,intltool)
221ed17a 2867 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2868 ("pkg-config" ,pkg-config)))
2869 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2870 (synopsis "Printing framework for GNOME")
eb497b66
LC
2871 (description
2872 "GNOME-print was a printing framework for GNOME. It has been deprecated
2873since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2874 (license license:lgpl2.0+)))
2875
2876
2877(define-public libgnomeprintui
eb497b66 2878 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2879 (package
2880 (name "libgnomeprintui")
36053d7f 2881 (version "2.18.6")
5698b8b8
JD
2882 (source (origin
2883 (method url-fetch)
b38e45d8
EB
2884 (uri (string-append "mirror://gnome/sources/" name "/"
2885 (version-major+minor version) "/"
2886 name "-" version ".tar.bz2"))
5698b8b8
JD
2887 (sha256
2888 (base32
36053d7f 2889 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2890 (build-system gnu-build-system)
2891 ;; Mentioned as Required in the .pc file
2892 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2893 (inputs `(("gtk+" ,gtk+-2)
2894 ("glib" ,glib)
2895 ("gnome-icon-theme" ,gnome-icon-theme)
2896 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2897 ("libxml2" ,libxml2)))
5698b8b8
JD
2898 (native-inputs
2899 `(("intltool" ,intltool)
2900 ("pkg-config" ,pkg-config)))
2901 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2902 (synopsis "Printing framework for GNOME")
eb497b66 2903 (description (package-description libgnomeprint))
5698b8b8
JD
2904 (license license:lgpl2.0+)))
2905
5698b8b8
JD
2906(define-public libbonoboui
2907 (package
2908 (name "libbonoboui")
2909 (version "2.24.5")
2910 (source (origin
2911 (method url-fetch)
b38e45d8
EB
2912 (uri (string-append "mirror://gnome/sources/" name "/"
2913 (version-major+minor version) "/"
2914 name "-" version ".tar.bz2"))
5698b8b8
JD
2915 (sha256
2916 (base32
2917 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2918 (build-system gnu-build-system)
2919 (arguments
2920 `(#:phases
dc1d3cde
KK
2921 (modify-phases %standard-phases
2922 (add-before 'check 'start-xserver
2923 (lambda* (#:key inputs #:allow-other-keys)
2924 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2925 (disp ":1"))
2926
2927 (setenv "HOME" (getcwd))
2928 (setenv "DISPLAY" disp)
2929 ;; There must be a running X server and make check doesn't start one.
2930 ;; Therefore we must do it.
2931 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2932 ;; Mentioned as Required by the .pc file
2933 (propagated-inputs `(("libxml2" ,libxml2)))
2934 (inputs
2935 `(("popt" ,popt)
2936 ("pangox-compat" ,pangox-compat)
2937 ("libgnome" ,libgnome)
2938 ("libgnomecanvas" ,libgnomecanvas)
2939 ("libglade" ,libglade)))
2940 (native-inputs
221ed17a
EB
2941 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2942 ("intltool" ,intltool)
ff337525 2943 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2944 ("pkg-config" ,pkg-config)))
2945 (home-page "https://developer.gnome.org/libbonoboui/")
2946 (synopsis "Some user interface controls using Bonobo")
2947 (description "The Bonobo UI library provides a number of user interface
2948controls using the Bonobo component framework.")
2949 (license license:lgpl2.0+)))
2950
fecbf86e
SB
2951(define-public libwnck
2952 (package
2953 (name "libwnck")
d3b40696 2954 (version "3.32.0")
fecbf86e
SB
2955 (source (origin
2956 (method url-fetch)
2957 (uri (string-append "mirror://gnome/sources/" name "/"
2958 (version-major+minor version) "/"
2959 name "-" version ".tar.xz"))
2960 (sha256
ad9b8987 2961 (base32
d3b40696
KK
2962 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2963 (build-system meson-build-system)
fecbf86e
SB
2964 (native-inputs
2965 `(("pkg-config" ,pkg-config)
d3b40696
KK
2966 ("glib" ,glib "bin") ; for glib-mkenums
2967 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2968 ("intltool" ,intltool)))
2969 (propagated-inputs
427476d5
SB
2970 `(("gtk+" ,gtk+)
2971 ("libxres" ,libxres)
2972 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2973 (home-page "https://developer.gnome.org/libwnck/")
2974 (synopsis "Window Navigator Construction Kit")
2975 (description
2976 "Libwnck is the Window Navigator Construction Kit, a library for use in
2977writing pagers, tasklists, and more generally applications that are dealing
2978with window management. It tries hard to respect the Extended Window Manager
2979Hints specification (EWMH).")
2980 (license license:lgpl2.0+)))
2981
2982;; stable version for gtk2, required by xfwm4.
dbb7a081 2983(define-public libwnck-2
fecbf86e
SB
2984 (package (inherit libwnck)
2985 (name "libwnck")
2986 (version "2.30.7")
2987 (source (origin
2988 (method url-fetch)
2989 (uri (string-append "mirror://gnome/sources/" name "/"
2990 (version-major+minor version) "/"
2991 name "-" version ".tar.xz"))
2992 (sha256
2993 (base32
2994 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2995 (build-system gnu-build-system)
2996 (native-inputs
2997 `(("pkg-config" ,pkg-config)
2998 ("intltool" ,intltool)))
fecbf86e 2999 (propagated-inputs
427476d5
SB
3000 `(("gtk+" ,gtk+-2)
3001 ("libxres" ,libxres)
3002 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3003
3004(define-public goffice
3005 (package
3006 (name "goffice")
09abffcc 3007 (version "0.10.46")
b804c61e
JD
3008 (source (origin
3009 (method url-fetch)
16243f0b 3010 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3011 (version-major+minor version) "/"
16243f0b 3012 "goffice-" version ".tar.xz"))
b804c61e 3013 (sha256
09abffcc 3014 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3015 (build-system gnu-build-system)
72a06d3e 3016 (outputs '("out"
355420c6 3017 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3018 (arguments
3019 '(#:configure-flags (list (string-append "--with-html-dir="
3020 (assoc-ref %outputs "doc")
3021 "/share/gtk-doc/html"))))
b804c61e
JD
3022 (inputs
3023 `(("gtk+" ,gtk+)
3024 ("libgsf" ,libgsf)
3025 ("librsvg" ,librsvg)
3026 ("libxslt" ,libxslt)
3027 ("libxml2" ,libxml2)))
3028 (native-inputs
3029 `(("intltool" ,intltool)
f280cdb1 3030 ("glib" ,glib "bin")
b804c61e
JD
3031 ("pkg-config" ,pkg-config)))
3032 (home-page "https://developer.gnome.org/goffice/")
3033 (synopsis "Document-centric objects and utilities")
3034 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3035 (license
b804c61e
JD
3036 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3037 ;; Note: NOT LGPL
3038 (list license:gpl2 license:gpl3))))
3039
c024ae36
RW
3040(define-public goffice-0.8
3041 (package (inherit goffice)
3042 (version "0.8.17")
3043 (source (origin
3044 (method url-fetch)
3045 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3046 (version-major+minor version) "/"
3047 (package-name goffice) "-" version ".tar.xz"))
3048 (sha256
3049 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3050 (arguments
3051 `(#:phases
dc1d3cde
KK
3052 (modify-phases %standard-phases
3053 (add-after 'unpack 'fix-pcre-check
3054 (lambda _
3055 ;; Only glib.h can be included directly. See
3056 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3057 (substitute* "configure"
3058 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3059
3060 ,@(package-arguments goffice)))
c024ae36
RW
3061 (propagated-inputs
3062 ;; libgoffice-0.8.pc mentions libgsf-1
3063 `(("libgsf" ,libgsf)))
3064 (inputs
3065 `(("gtk" ,gtk+-2)
3066 ,@(alist-delete "gtk" (package-inputs goffice))))))
3067
b804c61e
JD
3068(define-public gnumeric
3069 (package
3070 (name "gnumeric")
f0517b5d 3071 (version "1.12.46")
b804c61e
JD
3072 (source (origin
3073 (method url-fetch)
b7fd0217 3074 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3075 (version-major+minor version) "/"
b7fd0217 3076 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3077 (sha256
3078 (base32
f0517b5d 3079 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3080 (build-system glib-or-gtk-build-system)
b804c61e
JD
3081 (arguments
3082 `(;; The gnumeric developers don't worry much about failing tests.
3083 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3084 #:tests? #f
b804c61e 3085 #:phases
7bcbd40d
EF
3086 (modify-phases %standard-phases
3087 (add-before
3088 'configure 'pre-conf
3089 (lambda* (#:key outputs #:allow-other-keys)
3090 ;; Make install tries to write into the directory of goffice
3091 ;; I am informed that this only affects the possibility to embed a
3092 ;; spreadsheet inside an Abiword document. So presumably when we
3093 ;; package Abiword we'll have to refer it to this directory.
3094 (substitute* "configure"
3095 (("^GOFFICE_PLUGINS_DIR=.*")
3096 (string-append "GOFFICE_PLUGINS_DIR="
3097 (assoc-ref outputs "out")
3098 "/goffice/plugins"))))))))
b804c61e
JD
3099 (inputs
3100 `(("glib" ,glib)
3101 ("gtk+" ,gtk+)
3102 ("goffice" ,goffice)
3103 ("libgsf" ,libgsf)
7bcbd40d 3104 ("librsvg" ,librsvg)
b804c61e 3105 ("libxml2" ,libxml2)
7bcbd40d 3106 ("libxslt" ,libxslt)
2e4c5457 3107 ("python" ,python-2)
6983ba56 3108 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3109 ("zlib" ,zlib)))
3110 (native-inputs
6983ba56 3111 `(("bison" ,bison)
1ed398d1 3112 ("docbook-xml" ,docbook-xml)
6983ba56 3113 ("intltool" ,intltool)
3a2efbc8 3114 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
b9663471 3115 ("glib:bin" ,glib "bin")
b804c61e
JD
3116 ("pkg-config" ,pkg-config)))
3117 (home-page "http://www.gnumeric.org")
66672a45
LC
3118 (synopsis "Spreadsheet application")
3119 (description
3120 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3121interoperable with other spreadsheet applications. It has a vast array of
3122features beyond typical spreadsheet functionality, such as support for linear
3123and non-linear solvers, statistical analysis, and telecommunication
3124engineering.")
3125 (license
b804c61e
JD
3126 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3127 (list license:gpl2 license:gpl3))))
6f885c05
FB
3128
3129(define-public gnome-themes-standard
3130 (package
3131 (name "gnome-themes-standard")
0b7b8fb0 3132 (version "3.22.3")
6f885c05
FB
3133 (source
3134 (origin
3135 (method url-fetch)
2e6ecc5c 3136 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3137 (version-major+minor version) "/" name "-"
3138 version ".tar.xz"))
3139 (sha256
3140 (base32
0b7b8fb0 3141 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3142 (build-system gnu-build-system)
8ac70c7f
SB
3143 (arguments
3144 '(#:configure-flags
3145 ;; Don't create 'icon-theme.cache'.
3146 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3147 (true (string-append coreutils "/bin/true")))
3148 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3149 (inputs
3150 `(("gtk+" ,gtk+)
3151 ("gtk+-2" ,gtk+-2)
3152 ("librsvg" ,librsvg)
3153 ("libxml2" ,libxml2)
3154 ("glib" ,glib)))
3155 (native-inputs
3156 `(("intltool" ,intltool)
3157 ("glib:bin" ,glib "bin")
3158 ("pkg-config" ,pkg-config)))
6f885c05
FB
3159 (home-page "https://launchpad.net/gnome-themes-standard")
3160 (synopsis "Default GNOME 3 themes")
3161 (description
3162 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3163 (license license:lgpl2.1+)))
5a659a48 3164
df90c701
RW
3165(define-public seahorse
3166 (package
3167 (name "seahorse")
bcea3c11 3168 (version "3.32.2")
df90c701
RW
3169 (source
3170 (origin
3171 (method url-fetch)
3172 (uri (string-append "mirror://gnome/sources/" name "/"
3173 (version-major+minor version) "/" name "-"
3174 version ".tar.xz"))
3175 (sha256
3176 (base32
bcea3c11 3177 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
3178 (patches (search-patches
3179 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3180 (build-system meson-build-system)
3181 (arguments
bcea3c11
KK
3182 '(#:glib-or-gtk? #t
3183 #:phases
af561664
MÁAV
3184 (modify-phases %standard-phases
3185 (add-after 'unpack 'skip-gtk-update-icon-cache
3186 ;; Don't create 'icon-theme.cache'.
3187 (lambda _
3188 (substitute* "build-aux/meson_post_install.py"
3189 (("gtk-update-icon-cache") "true"))
3190 #t)))))
df90c701
RW
3191 (inputs
3192 `(("gtk+" ,gtk+)
3193 ("gcr" ,gcr)
34b979b9 3194 ("gnupg" ,gnupg)
df90c701 3195 ("gpgme" ,gpgme)
34b979b9 3196 ("openldap" ,openldap)
4a1bf090 3197 ("openssh" ,openssh)
af561664 3198 ("avahi" ,avahi)
bcea3c11 3199 ("libpwquality" ,libpwquality)
34b979b9
EF
3200 ("libsecret" ,libsecret)
3201 ("libsoup" ,libsoup)))
df90c701 3202 (native-inputs
af561664 3203 `(("gettext" ,gettext-minimal)
df90c701
RW
3204 ("glib:bin" ,glib "bin")
3205 ("itstool" ,itstool)
bcb354ad 3206 ("pkg-config" ,pkg-config)
af561664 3207 ("vala" ,vala)
bcb354ad 3208 ("xmllint" ,libxml2)))
bcea3c11 3209 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3210 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3211 (description
3212 "Seahorse is a GNOME application for managing encryption keys and
3213passwords in the GNOME keyring.")
3214 (license license:gpl2+)))
3215
5a659a48
SB
3216(define-public vala
3217 (package
3218 (name "vala")
2d6872f6 3219 (version "0.44.5")
5a659a48
SB
3220 (source (origin
3221 (method url-fetch)
3222 (uri (string-append "mirror://gnome/sources/" name "/"
3223 (version-major+minor version) "/"
3224 name "-" version ".tar.xz"))
3225 (sha256
3226 (base32
2d6872f6 3227 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
5a659a48 3228 (build-system gnu-build-system)
1ea90625
SB
3229 (arguments
3230 '(#:phases
3231 (modify-phases %standard-phases
f4925a4f 3232 (add-before 'check 'pre-check
1ea90625
SB
3233 (lambda _
3234 (setenv "CC" "gcc")
8839b6be
RW
3235 (substitute* "valadoc/tests/testrunner.sh"
3236 (("export PKG_CONFIG_PATH=" m)
3237 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3238 ;; For missing '/etc/machine-id'.
3239 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3240 #t)))))
5a659a48
SB
3241 (native-inputs
3242 `(("pkg-config" ,pkg-config)
3243 ("flex" ,flex)
3244 ("bison" ,bison)
3245 ("xsltproc" ,libxslt)
3246 ("dbus" ,dbus) ; for dbus tests
3247 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3248 (inputs
3249 `(("graphviz" ,graphviz)))
5a659a48 3250 (propagated-inputs
8839b6be 3251 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3252 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3253 (synopsis "Compiler for the GObject type system")
3254 (description
3255 "Vala is a programming language that aims to bring modern programming
3256language features to GNOME developers without imposing any additional runtime
3257requirements and without using a different ABI compared to applications and
3258libraries written in C.")
3259 (license license:lgpl2.1+)))
ea57378f
SB
3260
3261(define-public vte
3262 (package
3263 (name "vte")
68c47474 3264 (version "0.58.3")
ea57378f
SB
3265 (source (origin
3266 (method url-fetch)
ac87ffb8 3267 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3268 (version-major+minor version) "/"
ac87ffb8 3269 "vte-" version ".tar.xz"))
ea57378f
SB
3270 (sha256
3271 (base32
68c47474
TGR
3272 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3273 (build-system meson-build-system)
ea57378f
SB
3274 (native-inputs
3275 `(("pkg-config" ,pkg-config)
3276 ("intltool" ,intltool)
3277 ("vala" ,vala)
3278 ("gobject-introspection" ,gobject-introspection)
68c47474 3279 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3280 ("gperf" ,gperf)
ea57378f
SB
3281 ("xmllint" ,libxml2)))
3282 (propagated-inputs
68c47474
TGR
3283 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3284 ("gnutls" ,gnutls) ; ditto
3285 ("pcre2" ,pcre2))) ; ditto
f032d0be 3286 (home-page "https://www.gnome.org/")
ea57378f
SB
3287 (synopsis "Virtual Terminal Emulator")
3288 (description
3289 "VTE is a library (libvte) implementing a terminal emulator widget for
3290GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3291gnome-terminal, but can also be used to embed a console/terminal in games,
3292editors, IDEs, etc.")
3293 (license license:lgpl2.1+)))
3294
c44fb4df
MO
3295(define-public vte-ng
3296 (package
3297 (inherit vte)
3298 (name "vte-ng")
24f4fcbe 3299 (version "0.58.2.a")
afd90f8d 3300 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3301 (source (origin
3302 (method git-fetch)
3303 (uri (git-reference (url home-page) (commit version)))
3304 (file-name (git-file-name name version))
3305 (sha256
3306 (base32
24f4fcbe
MB
3307 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3308 (build-system meson-build-system)
c44fb4df
MO
3309 (native-inputs
3310 `(("gtk-doc" ,gtk-doc)
c44fb4df 3311 ,@(package-native-inputs vte)))
c44fb4df 3312 (arguments
24f4fcbe 3313 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3314 (synopsis "Enhanced VTE terminal widget")
3315 (description
3316 "VTE is a library (libvte) implementing a terminal emulator widget for
3317GTK+, this fork provides additional functions exposed for keyboard text
3318selection and URL hints.")))
3319
2776d72c
EF
3320;; provides vte 2.90, required for some terminal emulators
3321;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3322;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3323;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3324;; pantheon-terminal, roxterm are not currently packaged
3325(define-public vte-0.36
3326 (package (inherit vte)
3327 (name "vte")
3328 (version "0.36.5")
3329 (source (origin
3330 (method url-fetch)
3331 (uri (string-append "mirror://gnome/sources/" name "/"
3332 (version-major+minor version) "/"
3333 name "-" version ".tar.xz"))
3334 (sha256
3335 (base32
3336 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3337 (propagated-inputs
3338 `(("gtk" ,gtk+)
3339 ("ncurses" ,ncurses)))))
3340
ea57378f
SB
3341;; stable version for gtk2, required by xfce4-terminal.
3342(define-public vte/gtk+-2
3343 (package (inherit vte)
3344 (name "vte")
3345 (version "0.28.2")
3346 (source (origin
3347 (method url-fetch)
3348 (uri (string-append "mirror://gnome/sources/" name "/"
3349 (version-major+minor version) "/"
3350 name "-" version ".tar.xz"))
3351 (sha256
3352 (base32
7d48938a
EF
3353 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3354 (patches (search-patches
3355 "vte-CVE-2012-2738-pt1.patch"
3356 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3357 (build-system gnu-build-system)
ea57378f
SB
3358 (arguments
3359 '(#:configure-flags '("--disable-python")))
3360 (native-inputs
3361 `(("pkg-config" ,pkg-config)
3362 ("intltool" ,intltool)
3363 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3364 (propagated-inputs
3365 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3366 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3367
cce0da5e
TD
3368(define-public vinagre
3369 (package
3370 (name "vinagre")
3371 (version "3.22.0")
3372 (source (origin
3373 (method url-fetch)
3374 (uri (string-append "mirror://gnome/sources/" name "/"
3375 (version-major+minor version) "/"
3376 name "-" version ".tar.xz"))
684f97f8
EF
3377 (patches (search-patches "vinagre-newer-freerdp.patch"
3378 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3379 (sha256
3380 (base32
3381 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3382 (build-system glib-or-gtk-build-system)
684f97f8 3383 (arguments
7f486d25
MC
3384 ;; Disable -Werror and such, to avoid build failures on compilation
3385 ;; warnings.
3386 '(#:configure-flags '("--enable-compile-warnings=minimum")
3387 #:phases
684f97f8 3388 (modify-phases %standard-phases
1839768c
EF
3389 (add-before 'install 'skip-gtk-update-icon-cache
3390 (lambda _
3391 ;; Don't create 'icon-theme.cache'
3392 (substitute* (find-files "." "^Makefile$")
3393 (("gtk-update-icon-cache") (which "true")))
3394 #t))
684f97f8
EF
3395 (add-after 'unpack 'patch-configure
3396 (lambda _
3397 (substitute* "configure"
3398 (("freerdp") "freerdp2"))
3399 #t)))))
cce0da5e
TD
3400 (native-inputs
3401 `(("pkg-config" ,pkg-config)
3402 ("intltool" ,intltool)
3403 ("itstool" ,itstool)
1839768c 3404 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3405 (inputs
3406 `(("libxml2" ,libxml2)
3407 ("gtk-vnc" ,gtk-vnc)
3408 ("gnome-keyring" ,gnome-keyring)
3409 ("libsecret" ,libsecret)
3410 ("freerdp" ,freerdp)
3411 ("spice" ,spice)
3412 ("spice-gtk" ,spice-gtk)
3413 ("telepathy-glib" ,telepathy-glib)
3414 ("vte" ,vte)))
cce0da5e
TD
3415 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3416 (synopsis "Remote desktop viewer for GNOME")
3417 (description "Vinagre is a remote display client supporting the VNC, SPICE
3418and RDP protocols.")
3419 (license license:gpl3+)))
3420
b47e1b20
FB
3421(define-public dconf
3422 (package
3423 (name "dconf")
1e33331c 3424 (version "0.32.0")
b47e1b20
FB
3425 (source (origin
3426 (method url-fetch)
3427 (uri (string-append
2e6ecc5c 3428 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3429 (version-major+minor version) "/"
3430 name "-" version ".tar.xz"))
3431 (sha256
f05c809f 3432 (base32
1e33331c 3433 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 3434 (build-system meson-build-system)
bc036f4c
MB
3435 (propagated-inputs
3436 ;; In Requires of dconf.pc.
3437 `(("glib" ,glib)))
b47e1b20
FB
3438 (inputs
3439 `(("gtk+" ,gtk+)
bc036f4c 3440 ("dbus" ,dbus)))
b47e1b20 3441 (native-inputs
1e33331c
MB
3442 `(("bash-completion" ,bash-completion)
3443 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3444 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3445 ("docbook-xml" ,docbook-xml-4.2)
3446 ("docbook-xsl" ,docbook-xsl)
35fa923d 3447 ("glib:bin" ,glib "bin")
03676d6f 3448 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3449 ("pkg-config" ,pkg-config)
3450 ("vala" ,vala)))
b47e1b20
FB
3451 (arguments
3452 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3453 ; or /etc/machine-id.
35fa923d
MB
3454 #:glib-or-gtk? #t
3455 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3456 (home-page "https://developer.gnome.org/dconf")
3457 (synopsis "Low-level GNOME configuration system")
3458 (description "Dconf is a low-level configuration system. Its main purpose
3459is to provide a backend to GSettings on platforms that don't already have
3460configuration storage systems.")
e20e6b40 3461 (license license:lgpl2.1+)))
109da1c0
AE
3462
3463(define-public json-glib
3464 (package
3465 (name "json-glib")
4115e8ea 3466 (version "1.4.4")
109da1c0
AE
3467 (source (origin
3468 (method url-fetch)
3469 (uri (string-append "mirror://gnome/sources/" name "/"
3470 (version-major+minor version) "/"
3471 name "-" version ".tar.xz"))
3472 (sha256
3473 (base32
4115e8ea 3474 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3475 (build-system meson-build-system)
109da1c0 3476 (native-inputs
98afa184
MB
3477 `(("gettext" ,gettext-minimal)
3478 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3479 ("gobject-introspection" ,gobject-introspection)
3480 ("pkg-config" ,pkg-config)))
3481 (propagated-inputs
88c6b580 3482 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3483 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3484 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3485 (description
3486 "JSON-GLib is a C library based on GLib providing serialization and
3487deserialization support for the JavaScript Object Notation (JSON) format
3488described by RFC 4627. It provides parser and generator GObject classes and
3489various wrappers for the complex data types employed by JSON, such as arrays
3490and objects.")
109da1c0 3491 (license license:lgpl2.1+)))
6f96a359
SB
3492
3493(define-public libxklavier
3494 (package
3495 (name "libxklavier")
5f39050b 3496 (version "5.4")
6f96a359 3497 (source (origin
5f39050b 3498 ;; Note: There's no tarball at ftp.gnome.org for this version.
3499 (method git-fetch)
3500 (uri (git-reference
3501 (url "https://anongit.freedesktop.org/git/libxklavier")
3502 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3503 (sha256
3504 (base32
5f39050b 3505 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3506 (file-name (git-file-name name version))))
6f96a359
SB
3507 (build-system gnu-build-system)
3508 (arguments
5f39050b 3509 '(#:phases
3510 (modify-phases %standard-phases
3511 (add-after 'unpack 'no-configure
3512 (lambda* _
3513 (setenv "NOCONFIGURE" "1")
3514 #t)))
3515 #:configure-flags
6f96a359
SB
3516 (list (string-append "--with-xkb-base="
3517 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3518 "/share/X11/xkb")
3519 "--disable-xmodmap-support")))
6f96a359
SB
3520 (native-inputs
3521 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3522 ("gobject-introspection" ,gobject-introspection)
5f39050b 3523 ("pkg-config" ,pkg-config)
3524 ("gtk-doc" ,gtk-doc)
3525 ("intltool" ,intltool)
3526 ("which" ,which)
3527 ("autoconf" ,autoconf)
3528 ("automake" ,automake)
3529 ("libtool" ,libtool)))
6f96a359
SB
3530 (propagated-inputs
3531 ;; Required by libxklavier.pc.
3532 `(("glib" ,glib)
3533 ("libxml2" ,libxml2)))
3534 (inputs
3535 `(("iso-codes" ,iso-codes)
3536 ("libxi" ,libxi)
3537 ("libxkbfile" ,libxkbfile)
3538 ("xkbcomp" ,xkbcomp)
3539 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3540 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3541 (synopsis "High-level API for X Keyboard Extension")
3542 (description
3543 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3544Extension known as XKB. This library is intended to support XFree86 and other
3545commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3546indicators etc).")
3547 (license license:lgpl2.0+)))
619936a4
LC
3548
3549(define-public python2-rsvg
3550 ;; XXX: This is actually a subset of gnome-python-desktop.
3551 (package
3552 (name "python2-rsvg")
3553 (version "2.32.0")
3554 (source
3555 (origin
3556 (method url-fetch)
3557 (uri (string-append
3558 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3559 version ".tar.bz2"))
3560 (sha256
3561 (base32
3562 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3563 (build-system gnu-build-system)
3564 (native-inputs
3565 `(("pkg-config" ,pkg-config)))
3566 (inputs
3567 `(("python" ,python-2)
3568 ("python2-pygtk" ,python2-pygtk)
3569 ("librsvg" ,librsvg)))
f032d0be 3570 (home-page "https://www.gnome.org")
619936a4
LC
3571 (synopsis "Python bindings to librsvg")
3572 (description
3ad75446 3573 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3574library.")
3575
3576 ;; This is the license of the rsvg bindings. The license of each module
3577 ;; of gnome-python-desktop is given in 'COPYING'.
3578 (license license:lgpl2.1+)))
a31a6d22 3579
f2ca414a
SB
3580(define-public glib-networking
3581 (package
3582 (name "glib-networking")
0d75c64d 3583 (version "2.60.3")
f2ca414a
SB
3584 (source (origin
3585 (method url-fetch)
3586 (uri (string-append "mirror://gnome/sources/glib-networking/"
3587 (version-major+minor version) "/"
fb8fe1e8 3588 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3589 (sha256
3590 (base32
0d75c64d 3591 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3592 (build-system meson-build-system)
f2ca414a 3593 (arguments
0d75c64d 3594 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3595 (native-inputs
3596 `(("pkg-config" ,pkg-config)
3597 ("intltool" ,intltool)))
3598 (inputs
3599 `(("glib" ,glib)
3600 ("gnutls" ,gnutls)
4b8f1313 3601 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3602 (home-page "https://www.gnome.org")
f2ca414a
SB
3603 (synopsis "Network-related GIO modules")
3604 (description
3605 "This package contains various network related extensions for the GIO
3606library.")
3607 (license license:lgpl2.0+)))
3608
ca649680 3609(define-public rest
4510b2da 3610 (package
ca649680 3611 (name "rest")
a4194d16 3612 (version "0.8.1")
4510b2da
SB
3613 (source (origin
3614 (method url-fetch)
3615 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3616 (version-major+minor version) "/"
3617 name "-" version ".tar.xz"))
4510b2da
SB
3618 (sha256
3619 (base32
a4194d16 3620 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3621 (build-system gnu-build-system)
3622 (arguments
3623 '(#:tests? #f ; tests require internet connection
3624 #:configure-flags
3625 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3626 (native-inputs
3627 `(("glib-mkenums" ,glib "bin")
3628 ("gobject-introspection" ,gobject-introspection)
3629 ("pkg-config" ,pkg-config)))
3630 (propagated-inputs
3631 ;; rest-0.7.pc refers to all these.
3632 `(("glib" ,glib)
3633 ("libsoup" ,libsoup)
3634 ("libxml2" ,libxml2)))
24d6cc1d 3635 (home-page "https://www.gtk.org/")
4510b2da
SB
3636 (synopsis "RESTful web api query library")
3637 (description
3638 "This library was designed to make it easier to access web services that
3639claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3640libxml to ease remote use of the RESTful API.")
3641 (license license:lgpl2.1+)))
3642
6e1bb642
SB
3643(define-public libsoup
3644 (package
3645 (name "libsoup")
9ae87870 3646 (version "2.68.3")
6e1bb642
SB
3647 (source (origin
3648 (method url-fetch)
3649 (uri (string-append "mirror://gnome/sources/libsoup/"
3650 (version-major+minor version) "/"
c1b79b36 3651 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3652 (sha256
3653 (base32
9ae87870 3654 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
eccaa8bf 3655 (build-system meson-build-system)
6e1bb642
SB
3656 (outputs '("out" "doc"))
3657 (arguments
2deb146f 3658 `(#:modules ((guix build utils)
eccaa8bf 3659 (guix build meson-build-system)
2deb146f
LC
3660 (ice-9 popen))
3661
f8026a79 3662 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3663 #:phases
3664 (modify-phases %standard-phases
eccaa8bf 3665 (add-after 'unpack 'adjust-tests
26c228f9 3666 (lambda _
eccaa8bf
MB
3667 ;; This test fails due to missing /etc/nsswitch.conf
3668 ;; in the build environment.
26c228f9
LC
3669 (substitute* "tests/socket-test.c"
3670 ((".*/sockets/unconnected.*") ""))
2deb146f 3671
f8026a79
MB
3672 ;; These fail because "subdomain.localhost" does not resolve in
3673 ;; the build environment.
3674 (substitute* "tests/hsts-test.c"
3675 ((".*/hsts/basic.*") "")
3676 ((".*/hsts/subdomains.*") "")
3677 ((".*/hsts/superdomain.*") "")
3678 ((".*/hsts/utf8-address.*") ""))
3679 (substitute* "tests/hsts-db-test.c"
3680 ((".*/hsts-db/subdomains.*") ""))
3681
2deb146f
LC
3682 ;; Generate a self-signed certificate that has "localhost" as its
3683 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3684 ;; 3.5.12, tests such as "ssl-tests" fail:
3685 ;;
3686 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3687 ;;
3688 ;; 'certtool' is interactive so we have to pipe it the answers.
3689 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3690 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3691 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3692 (for-each (lambda (line)
3693 (display line pipe)
3694 (newline pipe))
3695 '("" ;Common name
3696 "" ;UID
3697 "Guix" ;Organizational unit name
3698 "GNU" ;Organization name
3699 "" ;Locality name
3700 "" ;State or province
3701 "" ;Country
3702 "" ;subject's domain component (DC)
3703 "" ;E-mail
3704 "" ;serial number
3705 "-1" ;expiration time
3706 "N" ;belong to authority?
3707 "N" ;web client certificate?
3708 "N" ;IPsec IKE?
3709 "Y" ;web server certificate?
3710 "localhost" ;dnsName of subject
3711 "" ;dnsName of subject (end)
3712 "" ;URI of subject
3713 "127.0.0.1" ;IP address of subject
3714 "" ;signing?
06f5bc4e
MB
3715 "" ;encryption (RSA)?
3716 "" ;data encryption?
2deb146f
LC
3717 "" ;sign OCSP requests?
3718 "" ;sign code?
3719 "" ;time stamping?
3720 "" ;email protection?
3721 "" ;URI of the CRL distribution point
3722 "y" ;above info OK?
3723 ))
3724 (close-pipe pipe))
26c228f9 3725 #t))
eccaa8bf
MB
3726 (add-after 'install 'move-doc
3727 (lambda* (#:key outputs #:allow-other-keys)
3728 (let ((out (assoc-ref outputs "out"))
3729 (doc (assoc-ref outputs "doc")))
3730 (mkdir-p (string-append doc "/share"))
3731 (copy-recursively (string-append out "/share/gtk-doc")
3732 (string-append doc "/share/gtk-doc"))
3733 (delete-file-recursively (string-append out "/share/gtk-doc"))
3734 #t))))))
6e1bb642 3735 (native-inputs
26c228f9 3736 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3737 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3738 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3739 ("intltool" ,intltool)
3740 ("pkg-config" ,pkg-config)
3741 ("python" ,python-wrapper)
fd730590 3742 ("vala" ,vala)
6e1bb642
SB
3743 ;; These are needed for the tests.
3744 ;; FIXME: Add PHP once available.
3745 ("curl" ,curl)
2deb146f 3746 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3747 ("httpd" ,httpd)))
3748 (propagated-inputs
3749 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3750 `(("brotli" ,google-brotli)
3751 ("glib" ,glib)
249846bf 3752 ("libpsl" ,libpsl)
eccaa8bf 3753 ("libxml2" ,libxml2)
f8026a79
MB
3754 ("sqlite" ,sqlite)
3755 ("zlib" ,zlib)))
eccaa8bf
MB
3756 (inputs
3757 `(("glib-networking" ,glib-networking)
3758 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3759 (home-page "https://live.gnome.org/LibSoup/")
3760 (synopsis "GLib-based HTTP Library")
3761 (description
3762 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3763and the GLib main loop, to integrate well with GNOME applications.")
3764 (license license:lgpl2.0+)))
3765
bba229a3
SB
3766(define-public libsecret
3767 (package
3768 (name "libsecret")
b243d2f7 3769 (version "0.19.1")
bba229a3
SB
3770 (source (origin
3771 (method url-fetch)
3772 (uri (string-append
896dcbc7
EF
3773 "mirror://gnome/sources/libsecret/"
3774 (version-major+minor version) "/"
0ada4e29 3775 "libsecret-" version ".tar.xz"))
bba229a3
SB
3776 (sha256
3777 (base32
b243d2f7 3778 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
bba229a3
SB
3779 (build-system gnu-build-system)
3780 (outputs '("out" "doc"))
3781 (arguments
3782 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3783 #:configure-flags
3784 (list (string-append "--with-html-dir="
3785 (assoc-ref %outputs "doc")
3786 "/share/gtk-doc/html"))))
3787 (native-inputs
c06ef010
MB
3788 `(("gettext" ,gettext-minimal)
3789 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3790 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3791 ("pkg-config" ,pkg-config)
3792 ("vala" ,vala)
3793 ("xsltproc" ,libxslt)))
3794 ;; These are needed for the tests.
3795 ;; FIXME: Add gjs once available.
3796 ;("dbus" ,dbus)
3797 ;("python2" ,python-2)
3798 ;("python2-dbus" ,python2-dbus)
3799 ;("python2-pygobject" ,python2-pygobject)
3800 ;("python2-pygobject-2" ,python2-pygobject-2)))
3801 (propagated-inputs
3802 `(("glib" ,glib))) ; required by libsecret-1.pc
3803 (inputs
3804 `(("docbook-xsl" ,docbook-xsl)
3805 ("libgcrypt" ,libgcrypt)
3806 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3807 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3808 (synopsis "GObject bindings for \"Secret Service\" API")
3809 (description
3810 "Libsecret is a GObject based library for storing and retrieving passwords
3811and other secrets. It communicates with the \"Secret Service\" using DBus.")
3812 (license license:lgpl2.1+)))
3813
b6821ee0 3814(define-public five-or-more
3815 (package
3816 (name "five-or-more")
d9795e93 3817 (version "3.32.0")
b6821ee0 3818 (source
3819 (origin
3820 (method url-fetch)
3821 (uri (string-append "mirror://gnome/sources/" name "/"
3822 (version-major+minor version) "/"
3823 name "-" version ".tar.xz"))
3824 (sha256
3825 (base32
d9795e93
KK
3826 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3827 (build-system meson-build-system)
3828 (arguments
3829 '(#:glib-or-gtk? #t
3830 #:phases
3831 (modify-phases %standard-phases
3832 (add-after 'unpack 'skip-gtk-update-icon-cache
3833 (lambda _
3834 (substitute* "meson_post_install.py"
3835 (("gtk-update-icon-cache") (which "true")))
3836 #t)))))
b6821ee0 3837 (native-inputs
3838 `(("pkg-config" ,pkg-config)
d9795e93 3839 ("appstream-glib" ,appstream-glib)
b6821ee0 3840 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3841 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3842 ("intltool" ,intltool)
3843 ("itstool" ,itstool)
d9795e93 3844 ("vala" ,vala)
b6821ee0 3845 ("xmllint" ,libxml2)))
3846 (inputs
3847 `(("gtk+" ,gtk+)
d9795e93 3848 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3849 ("librsvg" ,librsvg)))
3850 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3851 (synopsis "Logic puzzle game")
3852 (description "Five or More is a game where you try to align
3853 five or more objects of the same color and shape causing them to disappear.
3854 On every turn more objects will appear, until the board is full.
3855 Try to last as long as possible.")
3856 (license license:gpl2+)))
3857
a31a6d22
SB
3858(define-public gnome-mines
3859 (package
3860 (name "gnome-mines")
2d817e41 3861 (version "3.32.2")
a31a6d22
SB
3862 (source
3863 (origin
3864 (method url-fetch)
3865 (uri (string-append "mirror://gnome/sources/" name "/"
3866 (version-major+minor version) "/"
3867 name "-" version ".tar.xz"))
3868 (sha256
3869 (base32
2d817e41 3870 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3871 (build-system meson-build-system)
a31a6d22 3872 (arguments
2d817e41
KK
3873 '(#:glib-or-gtk? #t
3874 #:phases
a31a6d22 3875 (modify-phases %standard-phases
2d817e41
KK
3876 (add-after 'unpack 'skip-gtk-update-icon-cache
3877 (lambda _
3878 (substitute* "build-aux/meson_post_install.py"
3879 (("gtk-update-icon-cache") (which "true")))
3880 #t)))))
a31a6d22 3881 (native-inputs
8c0fab36
RW
3882 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3883 ("pkg-config" ,pkg-config)
a31a6d22
SB
3884 ("desktop-file-utils" ,desktop-file-utils)
3885 ("intltool" ,intltool)
bcb354ad 3886 ("itstool" ,itstool)
8c0fab36
RW
3887 ("vala" ,vala)
3888 ("yelp" ,yelp)
3889 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3890 (inputs
3891 `(("gtk+" ,gtk+)
73992962 3892 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3893 ("librsvg" ,librsvg)))
3894 (home-page "https://wiki.gnome.org/Apps/Mines")
3895 (synopsis "Minesweeper game")
3896 (description
3897 "Mines (previously gnomine) is a puzzle game where you locate mines
3898floating in an ocean using only your brain and a little bit of luck.")
3899 (license license:gpl2+)))
88f70665 3900
dfc407f3
KY
3901(define-public gnome-sudoku
3902 (package
3903 (name "gnome-sudoku")
7dc728c4 3904 (version "3.32.0")
dfc407f3
KY
3905 (source
3906 (origin
3907 (method url-fetch)
3908 (uri (string-append "mirror://gnome/sources/" name "/"
3909 (version-major+minor version) "/"
3910 name "-" version ".tar.xz"))
3911 (sha256
3912 (base32
7dc728c4
KK
3913 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3914 (build-system meson-build-system)
3915 (arguments
3916 '(#:glib-or-gtk? #t
3917 #:phases
3918 (modify-phases %standard-phases
3919 (add-after 'unpack 'skip-gtk-update-icon-cache
3920 (lambda _
3921 (substitute* "build-aux/post_install.py"
3922 (("gtk-update-icon-cache") (which "true")))
3923 #t)))))
dfc407f3
KY
3924 (native-inputs
3925 `(("pkg-config" ,pkg-config)
3926 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3927 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3928 ("intltool" ,intltool)
3929 ("itstool" ,itstool)
7dc728c4 3930 ("vala" ,vala)
dfc407f3
KY
3931 ("xmllint" ,libxml2)))
3932 (inputs
3933 `(("gtk+" ,gtk+)
3934 ("json-glib" ,json-glib)
3935 ("libgee" ,libgee)
3936 ("librsvg" ,librsvg)
3937 ("qqwing" ,qqwing)))
3938 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3939 (synopsis "Japanese logic game")
3940 (description
3941 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3942GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3943possible while still providing features that make playing difficult Sudoku
3944more fun.")
3945 (license license:gpl2+)))
3946
88f70665
AW
3947(define-public gnome-terminal
3948 (package
3949 (name "gnome-terminal")
7dee3942 3950 (version "3.32.2")
88f70665
AW
3951 (source
3952 (origin
3953 (method url-fetch)
3954 (uri (string-append "mirror://gnome/sources/" name "/"
3955 (version-major+minor version) "/"
3956 name "-" version ".tar.xz"))
3957 (sha256
3958 (base32
7dee3942 3959 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3960 (build-system glib-or-gtk-build-system)
3961 (arguments
3962 '(#:configure-flags
3963 (list "--disable-migration" "--disable-search-provider"
3964 "--without-nautilus-extension")
3965 #:phases
3966 (modify-phases %standard-phases
3a4de6b2 3967 (add-before 'configure 'patch-/bin/true
88f70665
AW
3968 (lambda _
3969 (substitute* "configure"
3970 (("/bin/true") (which "true"))))))))
3971 (native-inputs
3972 `(("pkg-config" ,pkg-config)
3973 ("desktop-file-utils" ,desktop-file-utils)
3974 ("intltool" ,intltool)
bcb354ad
SB
3975 ("itstool" ,itstool)
3976 ("xmllint" ,libxml2)))
68702167
MW
3977 (propagated-inputs
3978 `(("dconf" ,dconf)))
88f70665
AW
3979 (inputs
3980 `(("gtk+" ,gtk+)
3981 ("vte" ,vte)
3982 ("gnutls" ,gnutls)
88f70665
AW
3983 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3984 ("util-linux" ,util-linux)
3985 ("vala" ,vala)))
3986 (home-page "https://wiki.gnome.org/Apps/Terminal")
3987 (synopsis "Terminal emulator")
3988 (description
3989 "GNOME Terminal is a terminal emulator application for accessing a
3990UNIX shell environment which can be used to run programs available on
3991your system.
3992
3993It supports several profiles, multiple tabs and implements several
3994keyboard shortcuts.")
3995 (license license:gpl3+)))
75016d07
AW
3996
3997(define-public colord
3998 (package
3999 (name "colord")
f98be942 4000 (version "1.4.4")
75016d07
AW
4001 (source
4002 (origin
4003 (method url-fetch)
5cc3096c 4004 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4005 "colord-" version ".tar.xz"))
75016d07 4006 (sha256
f98be942 4007 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4008 (build-system meson-build-system)
75016d07 4009 (arguments
a68544a8
RW
4010 '(;; FIXME: One test fails:
4011 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4012 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4013 ;; application/x-zerosize
75016d07 4014 #:tests? #f
a68544a8
RW
4015 #:glib-or-gtk? #t
4016 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4017 ;; No dep on systemd.
a68544a8 4018 "-Dsystemd=false"
75016d07
AW
4019 ;; Wants to install to global completion dir;
4020 ;; punt.
a68544a8 4021 "-Dbash_completion=false"
a68544a8
RW
4022 "-Ddaemon_user=colord"
4023 "-Dsane=true"
dac26e22 4024 "-Dvapi=true"
6f20e2dc 4025 ;; Requires spotread.
a68544a8 4026 "-Dargyllcms_sensor=false"
6f20e2dc 4027 ;; TODO: Requires docbook2x.
a68544a8 4028 "-Dman=false")
75016d07
AW
4029 #:phases
4030 (modify-phases %standard-phases
a68544a8
RW
4031 (add-before 'configure 'patch-build-system
4032 (lambda* (#:key outputs #:allow-other-keys)
4033 (substitute* "rules/meson.build"
4034 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4035 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4036 #t))
4037 (add-before 'configure 'set-sqlite3-file-name
4038 (lambda* (#:key inputs #:allow-other-keys)
4039 ;; "colormgr dump" works by invoking the "sqlite3" command.
4040 ;; Record its absolute file name.
4041 (let ((sqlite (assoc-ref inputs "sqlite")))
4042 (substitute* "client/cd-util.c"
4043 (("\"sqlite3\"")
4044 (string-append "\"" sqlite "/bin/sqlite3\"")))
4045 #t))))))
75016d07 4046 (native-inputs
6f20e2dc 4047 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4048 ("gettext" ,gettext-minimal)
75016d07 4049 ("gobject-introspection" ,gobject-introspection)
a68544a8 4050 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4051 ("pkg-config" ,pkg-config)
4052 ("vala" ,vala)))
65cb2d61
SB
4053 (propagated-inputs
4054 ;; colord.pc refers to all these.
4055 `(("glib" ,glib)
6f20e2dc
TGR
4056 ("lcms" ,lcms)
4057 ("udev" ,eudev)))
75016d07 4058 (inputs
65cb2d61 4059 `(("dbus-glib" ,dbus-glib)
a68544a8 4060 ("gusb" ,gusb)
80c7dd1a 4061 ("libgudev" ,libgudev)
75016d07 4062 ("libusb" ,libusb)
75016d07 4063 ("polkit" ,polkit)
a68544a8 4064 ("python" ,python-wrapper)
6f20e2dc 4065 ("sqlite" ,sqlite)
4c928743 4066 ("sane-backends" ,sane-backends)))
57e7d748 4067 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4068 (synopsis "Color management service")
4069 (description "Colord is a system service that makes it easy to manage,
4070install and generate color profiles to accurately color manage input and
4071output devices.")
4072 (license license:gpl2+)))
7b2abd00
AW
4073
4074(define-public geoclue
4075 (package
4076 (name "geoclue")
b433c7b3 4077 (version "2.4.8")
7b2abd00
AW
4078 (source
4079 (origin
4080 (method url-fetch)
5cc3096c 4081 (uri (string-append "https://www.freedesktop.org/software/" name
7b2abd00
AW
4082 "/releases/" (version-major+minor version) "/"
4083 name "-" version ".tar.xz"))
4084 (sha256
4085 (base32
b433c7b3 4086 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
fc1adab1 4087 (patches (search-patches "geoclue-config.patch"))))
7b2abd00
AW
4088 (build-system glib-or-gtk-build-system)
4089 (arguments
4090 '(;; The tests want to run the system bus.
4091 #:tests? #f
4092 #:configure-flags (list ;; Disable bits requiring ModemManager.
4093 "--disable-3g-source"
4094 "--disable-cdma-source"
4095 "--disable-modem-gps-source"
4096 "--with-dbus-service-user=geoclue")
4097 #:phases
4098 (modify-phases %standard-phases
3a4de6b2 4099 (add-before 'configure 'patch-/bin/true
7b2abd00
AW
4100 (lambda _
4101 (substitute* "configure"
e3eb53e7
MW
4102 (("/bin/true") (which "true")))
4103 #t)))))
7b2abd00
AW
4104 (native-inputs
4105 `(("pkg-config" ,pkg-config)
758798a9 4106 ("gobject-introspection" ,gobject-introspection)
7b2abd00
AW
4107 ("intltool" ,intltool)))
4108 (inputs
54e911bc
SB
4109 `(("avahi" ,avahi)
4110 ("glib" ,glib)
7b2abd00
AW
4111 ("json-glib" ,json-glib)
4112 ("libsoup" ,libsoup)))
99adfd7d 4113 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
7b2abd00
AW
4114 (synopsis "Geolocation service")
4115 (description "Geoclue is a D-Bus service that provides location
4116information. The primary goal of the Geoclue project is to make creating
4117location-aware applications as simple as possible, while the secondary goal is
4118to ensure that no application can access location information without explicit
e881752c 4119permission from user.")
7b2abd00 4120 (license license:gpl2+)))
2bfe7437
AW
4121
4122(define-public geocode-glib
4123 (package
4124 (name "geocode-glib")
65de725f 4125 (version "3.26.1")
2bfe7437
AW
4126 (source (origin
4127 (method url-fetch)
4128 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4129 (version-major+minor version) "/"
d485cdc0 4130 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4131 (sha256
4132 (base32
65de725f 4133 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4134 (build-system meson-build-system)
2bfe7437 4135 (arguments
a7dd0c02
RW
4136 `(#:phases
4137 (modify-phases %standard-phases
4138 ;; The tests require a bunch of locales.
4139 (add-before 'check 'set-locales
4140 (lambda* (#:key inputs #:allow-other-keys)
4141 (setenv "GUIX_LOCPATH"
4142 (string-append (assoc-ref inputs "glibc-locales")
4143 "/lib/locale"))
4144 #t)))))
2bfe7437
AW
4145 (native-inputs
4146 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4147 ("glibc-locales" ,glibc-locales) ; for tests
4148 ("gettext" ,gettext-minimal)
2bfe7437 4149 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4150 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4151 ("pkg-config" ,pkg-config)
4152 ("json-glib" ,json-glib)))
4153 (propagated-inputs
4154 ;; geocode-glib-1.0.pc refers to GIO.
4155 `(("glib" ,glib)))
4156 (inputs
4157 `(("libsoup" ,libsoup)))
4158 (home-page "https://github.com/GNOME/geocode-glib/")
4159 (synopsis "Geocoding and reverse-geocoding library")
4160 (description
4161 "geocode-glib is a convenience library for geocoding (finding longitude,
4162and latitude from an address) and reverse geocoding (finding an address from
4163coordinates) using the Nominatim service. geocode-glib caches requests for
4164faster results and to avoid unnecessary server load.")
4165 (license license:lgpl2.0+)))
a1d5bb0e
AW
4166
4167(define-public upower
4168 (package
4169 (name "upower")
df45af90 4170 (version "0.99.11")
a1d5bb0e
AW
4171 (source (origin
4172 (method url-fetch)
df45af90 4173 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4174 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4175 (sha256
4176 (base32
df45af90 4177 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
fc1adab1 4178 (patches (search-patches "upower-builddir.patch"))))
a1d5bb0e
AW
4179 (build-system glib-or-gtk-build-system)
4180 (arguments
4181 '( ;; The tests want to contact the system bus, which can't be done in the
4182 ;; build environment. The integration test can run, but the last of
4183 ;; the up-self-tests doesn't. Disable tests for now.
4184 #:tests? #f
4185 #:configure-flags (list "--localstatedir=/var"
4186 (string-append "--with-udevrulesdir="
4187 (assoc-ref %outputs "out")
9ec54965 4188 "/lib/udev/rules.d"))))
a1d5bb0e 4189 (native-inputs
ebeabe2d
SB
4190 `(("gobject-introspection" ,gobject-introspection)
4191 ("pkg-config" ,pkg-config)
a1d5bb0e 4192 ("intltool" ,intltool)
55409295
LC
4193 ("python" ,python)
4194
4195 ;; For man pages.
4196 ("libxslt" ,libxslt) ;for 'xsltproc'
4197 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4198 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4199 (inputs
ea226291
SB
4200 `(("dbus-glib" ,dbus-glib)
4201 ("libgudev" ,libgudev)
a1d5bb0e 4202 ("libusb" ,libusb)))
d7a503fc
MB
4203 (propagated-inputs
4204 ;; In Requires of upower-glib.pc.
4205 `(("glib" ,glib)))
57e7d748 4206 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4207 (synopsis "System daemon for managing power devices")
4208 (description
4209 "UPower is an abstraction for enumerating power devices,
4210listening to device events and querying history and statistics. Any
4211application or service on the system can access the org.freedesktop.UPower
4212service via the system message bus.")
4213 (license license:gpl2+)))
6a180f6f
AW
4214
4215(define-public libgweather
4216 (package
4217 (name "libgweather")
794ce8ea 4218 (version "3.28.3")
6a180f6f
AW
4219 (source (origin
4220 (method url-fetch)
4221 (uri (string-append "mirror://gnome/sources/" name "/"
4222 (version-major+minor version) "/"
4223 name "-" version ".tar.xz"))
4224 (sha256
4225 (base32
794ce8ea 4226 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 4227 (build-system meson-build-system)
6a180f6f 4228 (arguments
cf6cbc34
RW
4229 `(#:tests? #f ; one of two tests requires network access
4230 #:configure-flags
4231 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4232 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4233 "/share/zoneinfo"))))
6a180f6f
AW
4234 (native-inputs
4235 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4236 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4237 ("pkg-config" ,pkg-config)
1d3fcf94 4238 ("vala" ,vala)
6a180f6f
AW
4239 ("intltool" ,intltool)))
4240 (propagated-inputs
4241 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4242 ;; libsoup.
4243 `(("gtk+" ,gtk+)
4244 ("gdk-pixbuf" ,gdk-pixbuf)
4245 ("libxml2" ,libxml2)
cf6cbc34 4246 ("libsoup" ,libsoup)
6a180f6f 4247 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4248 (inputs
4249 `(("tzdata" ,tzdata)))
6a180f6f
AW
4250 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4251 (synopsis "Location, time zone, and weather library for GNOME")
4252 (description
4253 "libgweather is a library to access weather information from online
4254services for numerous locations.")
4255 (license license:gpl2+)))
23a22af6
AW
4256
4257(define-public gnome-settings-daemon
4258 (package
4259 (name "gnome-settings-daemon")
4be0719f 4260 (version "3.32.1")
23a22af6
AW
4261 (source
4262 (origin
4263 (method url-fetch)
4264 (uri (string-append "mirror://gnome/sources/" name "/"
4265 (version-major+minor version) "/"
4266 name "-" version ".tar.xz"))
4267 (sha256
4268 (base32
4be0719f 4269 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 4270 (build-system meson-build-system)
23a22af6 4271 (arguments
e644f9fa
RW
4272 `(#:glib-or-gtk? #t
4273 #:configure-flags
4274 (list (string-append "-Dudev_dir="
4275 (assoc-ref %outputs "out")
4d0e085b
RW
4276 "/lib/udev/rules.d/")
4277 ;; Otherwise, the RUNPATH will lack the final path component.
4278 (string-append "-Dc_link_args=-Wl,-rpath="
4279 (assoc-ref %outputs "out")
4280 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4281 ;; Color management test can't reach the colord system service.
23a22af6
AW
4282 #:tests? #f))
4283 (native-inputs
e644f9fa
RW
4284 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4285 ("pkg-config" ,pkg-config)
23a22af6
AW
4286 ("intltool" ,intltool)
4287 ("xsltproc" ,libxslt)
4288 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4289 ("docbook-xml" ,docbook-xml-4.2)
4290 ("docbook-xsl" ,docbook-xsl)))
4291 (inputs
e644f9fa
RW
4292 `(("alsa-lib" ,alsa-lib)
4293 ("colord" ,colord)
ea226291 4294 ("libgudev" ,libgudev)
23a22af6
AW
4295 ("upower" ,upower)
4296 ("polkit" ,polkit)
4297 ("pulseaudio" ,pulseaudio)
4298 ("libcanberra" ,libcanberra)
4299 ("libx11" ,libx11)
4300 ("libxtst" ,libxtst)
4301 ("lcms" ,lcms)
4302 ("libnotify" ,libnotify)
4303 ("geoclue" ,geoclue)
4304 ("geocode-glib" ,geocode-glib)
4305 ("libgweather" ,libgweather)
4306 ("gnome-desktop" ,gnome-desktop)
4307 ("nss" ,nss)
4308 ("cups" ,cups)
ec2b1921
AW
4309 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4310 ("libwacom" ,libwacom)
4311 ("librsvg" ,librsvg)
eee7878f 4312 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4313 ("wayland" ,wayland)
eee7878f 4314 ("network-manager" ,network-manager)))
f032d0be 4315 (home-page "https://www.gnome.org")
23a22af6
AW
4316 (synopsis "GNOME settings daemon")
4317 (description
4318 "This package contains the daemon responsible for setting the various
4319parameters of a GNOME session and the applications that run under it. It
4320handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4321settings, themes, mouse settings, and startup of other daemons.")
4322 (license license:gpl2+)))
1e7464a9
DH
4323
4324(define-public totem-pl-parser
4325 (package
4326 (name "totem-pl-parser")
77425f04 4327 (version "3.26.3")
1e7464a9
DH
4328 (source (origin
4329 (method url-fetch)
e980cbe9
MW
4330 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4331 (version-major+minor version) "/"
1e7464a9
DH
4332 "totem-pl-parser-" version ".tar.xz"))
4333 (sha256
4334 (base32
77425f04 4335 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4336 (build-system meson-build-system)
1e7464a9
DH
4337 (arguments
4338 ;; FIXME: Tests require gvfs.
4339 `(#:tests? #f))
4340 (native-inputs
4341 `(("intltool" ,intltool)
4342 ("glib" ,glib "bin")
4d6d8281 4343 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4344 ("pkg-config" ,pkg-config)))
22a6ad6a 4345 (propagated-inputs
1e7464a9
DH
4346 `(("glib" ,glib)
4347 ("gmime" ,gmime)
1e9b19dd
RW
4348 ("libarchive" ,libarchive)
4349 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4350 ("libxml2" ,libxml2)))
4351 (inputs
0a6e9e13 4352 `(("libsoup" ,libsoup)))
1e7464a9
DH
4353 (home-page "https://projects.gnome.org/totem")
4354 (synopsis "Library to parse and save media playlists for GNOME")
4355 (description "Totem-pl-parser is a GObjects-based library to parse and save
4356playlists in a variety of formats.")
4357 (license license:lgpl2.0+)))
4358
6b888eff
SB
4359(define-public aisleriot
4360 (package
4361 (name "aisleriot")
36ed9b46 4362 (version "3.22.9")
6b888eff
SB
4363 (source (origin
4364 (method url-fetch)
e43f622a 4365 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4366 (version-major+minor version) "/"
e43f622a 4367 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4368 (sha256
4369 (base32
36ed9b46 4370 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4371 (build-system glib-or-gtk-build-system)
4372 (arguments
4373 '(#:configure-flags
4374 '("--with-platform=gtk-only"
4375 "--with-card-theme-formats=svg")))
4376 (native-inputs
4377 `(("desktop-file-utils" ,desktop-file-utils)
4378 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4379 ("intltool" ,intltool)
4380 ("itstool" ,itstool)
4381 ("pkg-config" ,pkg-config)
4382 ("xmllint" ,libxml2)))
4383 (inputs
4384 `(("gtk+" ,gtk+)
226e57d6 4385 ("guile" ,guile-2.2)
6b888eff
SB
4386 ("libcanberra" ,libcanberra)
4387 ("librsvg" ,librsvg)))
4388 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4389 (synopsis "Solitaire card games")
4390 (description
4391 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4392which are easy to play with the aid of a mouse.")
4393 (license license:gpl3+)))
4a79e256 4394
f828d05b
KK
4395(define-public amtk
4396 (package
4397 (name "amtk")
09c4e43f 4398 (version "5.0.1")
f828d05b
KK
4399 (source (origin
4400 (method url-fetch)
bf92ba6b 4401 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4402 (version-major+minor version) "/"
bf92ba6b 4403 "amtk-" version ".tar.xz"))
f828d05b
KK
4404 (sha256
4405 (base32
09c4e43f 4406 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
f828d05b
KK
4407 (build-system gnu-build-system)
4408 (arguments
4409 '(#:configure-flags '("--enable-gtk-doc")))
4410 (native-inputs
4411 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4412 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4413 ("gtk-doc" ,gtk-doc)
4414 ("pkg-config" ,pkg-config)))
4415 (inputs
4416 `(("glib" ,glib)
4417 ("gtk+" ,gtk+)))
4418 (home-page "https://wiki.gnome.org/Projects/Amtk")
4419 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4420 (description
4421 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4422It is a basic GtkUIManager replacement based on GAction. It is suitable for
4423both a traditional UI or a modern UI with a GtkHeaderBar.")
4424 (license license:lgpl2.1+)))
4425
4a79e256
SB
4426(define-public devhelp
4427 (package
4428 (name "devhelp")
20db7a3d 4429 (version "3.32.0")
4a79e256
SB
4430 (source (origin
4431 (method url-fetch)
4432 (uri (string-append "mirror://gnome/sources/" name "/"
4433 (version-major+minor version) "/"
4434 name "-" version ".tar.xz"))
4435 (sha256
4436 (base32
20db7a3d 4437 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 4438 (build-system meson-build-system)
35407f94 4439 (arguments
20db7a3d
KK
4440 '(#:glib-or-gtk? #t
4441 #:phases
35407f94
EF
4442 (modify-phases %standard-phases
4443 (add-after 'unpack 'skip-gtk-update-icon-cache
4444 ;; Don't create 'icon-theme.cache'.
4445 (lambda _
4446 (substitute* "meson_post_install.py"
4447 (("gtk-update-icon-cache") "true"))
4448 #t)))))
4a79e256
SB
4449 (native-inputs
4450 `(("intltool" ,intltool)
5dd12afc 4451 ("itstool" ,itstool)
11d28bd9
KK
4452 ("gobject-introspection" ,gobject-introspection)
4453 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4454 ("pkg-config" ,pkg-config)))
4455 (inputs
11d28bd9
KK
4456 `(("amtk" ,amtk)
4457 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4458 ("webkitgtk" ,webkitgtk)))
4459 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4460 (synopsis "API documentation browser for GNOME")
4461 (description
4462 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4463natively with GTK-Doc (the API reference system developed for GTK+ and used
4464throughout GNOME for API documentation).")
4465 (license license:gpl2+)))
ba421ab7
MW
4466
4467(define-public cogl
4468 (package
4469 (name "cogl")
54c69ae1 4470 (version "1.22.4")
ba421ab7
MW
4471 (source
4472 (origin
4473 (method url-fetch)
5754f0cf 4474 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4475 (version-major+minor version) "/"
5754f0cf 4476 "cogl-" version ".tar.xz"))
ba421ab7 4477 (sha256
54c69ae1 4478 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
4479 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4480 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4481 (build-system gnu-build-system)
4482 (native-inputs
4483 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4484 ("gobject-introspection" ,gobject-introspection)
4485 ;;("xorg-server" ,xorg-server) ; for the test suite
4486 ("pkg-config" ,pkg-config)))
4487 (propagated-inputs
4488 `(("glib" ,glib)
4489 ("gdk-pixbuf" ,gdk-pixbuf)
4490 ("libx11" ,libx11)
4491 ("libxext" ,libxext)
4492 ("libxfixes" ,libxfixes)
4493 ("libxdamage" ,libxdamage)
4494 ("libxcomposite" ,libxcomposite)
4495 ("libxrandr" ,libxrandr)))
4496 (inputs
4497 `(("mesa" ,mesa)
4498 ("cairo" ,cairo)
4499 ("pango" ,pango)
4500 ("gstreamer" ,gstreamer)
31860852
KK
4501 ("gst-plugins-base" ,gst-plugins-base)
4502 ("wayland" ,wayland)))
ba421ab7
MW
4503 (arguments
4504 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4505 "--enable-wayland-egl-platform"
4506 "--enable-wayland-egl-server"
4507
ba421ab7
MW
4508 ;; Arrange to pass an absolute file name to
4509 ;; dlopen for libGL.so.
4510 (string-append "--with-gl-libname="
4511 (assoc-ref %build-inputs "mesa")
4512 "/lib/libGL.so"))
4513 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4514 ;; _FontTransOpen: Unable to Parse address
4515 ;; ${prefix}/share/fonts/X11/misc/
4516 #:tests? #f
4517 #; #:phases
4518 #;
4519 (modify-phases %standard-phases
4520 (add-before 'check 'start-xorg-server
4521 (lambda* (#:key inputs #:allow-other-keys)
4522 ;; The test suite requires a running X server.
4523 (system (format #f "~a/bin/Xvfb :1 &"
4524 (assoc-ref inputs "xorg-server")))
4525 (setenv "DISPLAY" ":1")
4526 #t)))))
4527 (home-page "http://www.cogl3d.org")
4528 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4529 (description
4530 "Cogl is a small library for using 3D graphics hardware to draw pretty
4531pictures. The API departs from the flat state machine style of OpenGL and is
4532designed to make it easy to write orthogonal components that can render
4533without stepping on each others toes.")
4534 (license (list license:expat ; most of the code
4535 license:bsd-3 ; cogl/cogl-point-in-poly.c
4536 license:sgifreeb2.0 ; cogl-path/tesselator/
4537 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4538
4539(define-public clutter
4540 (package
4541 (name "clutter")
6a88e4ee 4542 (version "1.26.2")
fb182b8a
MW
4543 (source
4544 (origin
4545 (method url-fetch)
4546 (uri (string-append "mirror://gnome/sources/" name "/"
4547 (version-major+minor version) "/"
4548 name "-" version ".tar.xz"))
4549 (sha256
4550 (base32
6a88e4ee 4551 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4552 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4553 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4554 (build-system gnu-build-system)
600233bd
LC
4555 (outputs '("out"
4556 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4557 (native-inputs
4558 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4559 ("gobject-introspection" ,gobject-introspection)
4560 ("pkg-config" ,pkg-config)
4561 ("xsltproc" ,libxslt)))
4562 (propagated-inputs
4563 `(("cogl" ,cogl)
4564 ("cairo" ,cairo)
4565 ("atk" ,atk)
4566 ("gtk+" ,gtk+)
4567 ("json-glib" ,json-glib)
4568 ("glib" ,glib)
4569 ("libxcomposite" ,libxcomposite)
4570 ("libxdamage" ,libxdamage)
4571 ("libxext" ,libxext)
4572 ("xinput" ,xinput)))
4573 (inputs
4574 `(("libxkbcommon" ,libxkbcommon)
4575 ("udev" ,eudev)))
4576 (arguments
600233bd
LC
4577 `(#:configure-flags (list "--enable-x11-backend=yes"
4578
4579 ;; This produces share/doc/{clutter,cally}.
4580 (string-append "--with-html-dir="
4581 (assoc-ref %outputs "doc")
4582 "/share/doc"))
fb182b8a
MW
4583 ;; XXX FIXME: Get test suite working. It would probably fail in the
4584 ;; same way the cogl tests fail, since clutter is based on cogl.
4585 #:tests? #f))
4586 (home-page "http://www.clutter-project.org")
476af713 4587 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4588 (description
476af713 4589 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4590creating fast, mainly 2D single window applications such as media box UIs,
4591presentations, kiosk style applications and so on.")
4592 (license license:lgpl2.0+)))
bf7f17ba
MW
4593
4594(define-public clutter-gtk
4595 (package
4596 (name "clutter-gtk")
5d1a3219 4597 (version "1.8.4")
bf7f17ba
MW
4598 (source
4599 (origin
4600 (method url-fetch)
4601 (uri (string-append "mirror://gnome/sources/" name "/"
4602 (version-major+minor version) "/"
4603 name "-" version ".tar.xz"))
4604 (sha256
4605 (base32
5d1a3219 4606 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4607 (build-system gnu-build-system)
4608 (native-inputs
4609 `(("pkg-config" ,pkg-config)
4610 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4611 (propagated-inputs
4612 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4613 `(("clutter" ,clutter)
4614 ("gtk+" ,gtk+)))
4615 (home-page "http://www.clutter-project.org")
476af713 4616 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4617 (description
476af713 4618 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4619creating fast, mainly 2D single window applications such as media box UIs,
4620presentations, kiosk style applications and so on.")
4621 (license license:lgpl2.0+)))
86d6a893
MW
4622
4623(define-public clutter-gst
4624 (package
4625 (name "clutter-gst")
ba07ac19 4626 (version "3.0.27")
86d6a893
MW
4627 (source
4628 (origin
4629 (method url-fetch)
f010f89b 4630 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4631 (version-major+minor version) "/"
f010f89b 4632 "clutter-gst-" version ".tar.xz"))
86d6a893 4633 (sha256
ba07ac19 4634 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4635 (build-system gnu-build-system)
4636 (native-inputs
ba07ac19 4637 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4638 ("pkg-config" ,pkg-config)
4639 ("gobject-introspection" ,gobject-introspection)))
4640 (inputs
4641 `(("clutter" ,clutter)
4642 ("gstreamer" ,gstreamer)
4643 ("gst-plugins-base" ,gst-plugins-base)))
4644 (home-page "http://www.clutter-project.org")
4645 (synopsis "Integration library for using GStreamer with Clutter")
4646 (description
4647 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4648It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4649implements the ClutterGstPlayer interface using playbin. Clutter is an
4650OpenGL-based interactive canvas library.")
86d6a893 4651 (license license:lgpl2.0+)))
607a04ae 4652
30dc88d9
LC
4653(define-public libchamplain
4654 (package
4655 (name "libchamplain")
5564b2c5 4656 (version "0.12.16")
30dc88d9
LC
4657 (source (origin
4658 (method url-fetch)
4659 (uri (string-append
4660 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4661 version ".tar.xz"))
4662 (sha256
4663 (base32
5564b2c5 4664 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4665 (build-system gnu-build-system)
f7c6833f
LF
4666 (arguments '(#:configure-flags '("--enable-vala")))
4667 (native-inputs
4668 `(("gobject-introspection" ,gobject-introspection)
4669 ("pkg-config" ,pkg-config)
4670 ("vala" ,vala)))
30dc88d9
LC
4671 (propagated-inputs
4672 `(("libsoup" ,libsoup)
4673 ("sqlite" ,sqlite)
4674 ("clutter" ,clutter)
4675 ("clutter-gtk" ,clutter-gtk)
4676 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4677 ("cairo" ,cairo)
4678 ("gtk+3" ,gtk+)
4679 ("glib" ,glib)))
f032d0be 4680 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4681 (synopsis "C library providing a ClutterActor to display maps")
4682 (description
4683 "libchamplain is a C library providing a ClutterActor to display maps.
4684It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4685and Perl bindings are also available. It supports numerous free map sources
4686such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4687 (license license:lgpl2.1+)))
4688
607a04ae
MW
4689(define-public gom
4690 (package
4691 (name "gom")
0510440b 4692 (version "0.3.2")
607a04ae
MW
4693 (source
4694 (origin
4695 (method url-fetch)
6c8a0b6f 4696 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4697 (version-major+minor version) "/"
6c8a0b6f 4698 "gom-" version ".tar.xz"))
607a04ae
MW
4699 (sha256
4700 (base32
0510440b 4701 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4702 (build-system gnu-build-system)
4703 (native-inputs
4704 `(("intltool" ,intltool)
4705 ("pkg-config" ,pkg-config)
4706 ("gobject-introspection" ,gobject-introspection)))
4707 (inputs
4708 `(("glib" ,glib)
4709 ("gdk-pixbuf" ,gdk-pixbuf)
4710 ("sqlite" ,sqlite)))
4711 ;; XXX TODO: Figure out how to run the test suite.
4712 (arguments `(#:tests? #f))
4713 (home-page "https://wiki.gnome.org/Projects/Gom")
4714 (synopsis "Object mapper from GObjects to SQLite")
4715 (description
4716 "Gom provides an object mapper from GObjects to SQLite. It helps you
4717write applications that need to store structured data as well as make complex
4718queries upon that data.")
4719 (license license:lgpl2.1+)))
b7a3cf11 4720
865aacc9 4721(define-public libgnome-games-support
f09520db 4722 (package
865aacc9 4723 (name "libgnome-games-support")
4c6d15cf 4724 (version "1.4.4")
f09520db
SB
4725 (source (origin
4726 (method url-fetch)
2d8dca9d 4727 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4728 (version-major+minor version) "/"
2d8dca9d 4729 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4730 (sha256
4731 (base32
4c6d15cf 4732 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4733 (build-system gnu-build-system)
4734 (arguments
4735 '(#:phases
4736 (modify-phases %standard-phases
4737 (add-before 'check 'pre-check
4738 (lambda _
865aacc9 4739 ;; Tests require a writable HOME.
f09520db
SB
4740 (setenv "HOME" (getcwd))
4741 #t)))))
4742 (native-inputs
4743 `(("intltool" ,intltool)
4744 ("pkg-config" ,pkg-config)
4745 ("vala" ,vala)))
4746 (propagated-inputs
865aacc9 4747 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4748 `(("gtk+" ,gtk+)
4749 ("libgee" ,libgee)))
4750 (home-page "https://www.gnome.org/")
4751 (synopsis "Useful functionality shared among GNOME games")
4752 (description
865aacc9 4753 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4754GNOME Games, but it may be used by others.")
4755 (license license:lgpl3+)))
4756
b7a3cf11
SB
4757(define-public gnome-klotski
4758 (package
4759 (name "gnome-klotski")
c1e419c4 4760 (version "3.32.0")
b7a3cf11
SB
4761 (source (origin
4762 (method url-fetch)
4763 (uri (string-append "mirror://gnome/sources/" name "/"
4764 (version-major+minor version) "/"
4765 name "-" version ".tar.xz"))
4766 (sha256
4767 (base32
c1e419c4
KK
4768 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4769 (build-system meson-build-system)
4770 (arguments
4771 '(#:glib-or-gtk? #t
4772 #:phases
4773 (modify-phases %standard-phases
4774 (add-after 'unpack 'skip-gtk-update-icon-cache
4775 ;; Don't create 'icon-theme.cache'.
4776 (lambda _
4777 (substitute* "build-aux/meson_post_install.py"
4778 (("gtk-update-icon-cache") (which "true")))
4779 #t)))))
b7a3cf11
SB
4780 (native-inputs
4781 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4782 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4783 ("intltool" ,intltool)
4784 ("itstool" ,itstool)
bcb354ad 4785 ("pkg-config" ,pkg-config)
c1e419c4 4786 ("vala" ,vala)
bcb354ad 4787 ("xmllint" ,libxml2)))
b7a3cf11
SB
4788 (inputs
4789 `(("gtk+" ,gtk+)
f4eae76f 4790 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4791 ("librsvg" ,librsvg)))
4792 (home-page "https://wiki.gnome.org/Apps/Klotski")
4793 (synopsis "Sliding block puzzles")
4794 (description
4795 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4796the patterned block to the area bordered by green markers. To do so, you will
4797need to slide other blocks out of the way. Complete each puzzle in as few moves
4798as possible!")
4799 (license license:gpl2+)))
8d4791bf
MW
4800
4801(define-public grilo
4802 (package
4803 (name "grilo")
a865e938 4804 (version "0.3.10")
8d4791bf
MW
4805 (source
4806 (origin
4807 (method url-fetch)
4808 (uri (string-append "mirror://gnome/sources/" name "/"
4809 (version-major+minor version) "/"
4810 name "-" version ".tar.xz"))
4811 (sha256
4812 (base32
a865e938 4813 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4814 (build-system meson-build-system)
8d4791bf
MW
4815 (native-inputs
4816 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4817 ("intltool" ,intltool)
4818 ("pkg-config" ,pkg-config)
d48d4c98
KK
4819 ("gobject-introspection" ,gobject-introspection)
4820 ("gtk-doc" ,gtk-doc)
4821 ("vala" ,vala)))
8d4791bf 4822 (inputs
6d7273a0
KK
4823 `(("cyrus-sasl" ,cyrus-sasl)
4824 ("glib" ,glib)
8d4791bf
MW
4825 ("gtk+" ,gtk+)
4826 ("libxml2" ,libxml2)
6d7273a0 4827 ("liboauth" ,liboauth)
8d4791bf
MW
4828 ("libsoup" ,libsoup)
4829 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4830 (native-search-paths
4831 (list (search-path-specification
4832 (variable "GRL_PLUGIN_PATH")
4833 (files (list (string-append "lib/grilo-"
4834 (version-major+minor version)))))))
d48d4c98 4835 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4836 (synopsis "Framework for discovering and browsing media")
4837 (description
4838 "Grilo is a framework focused on making media discovery and browsing easy
4839for application developers.")
4840 (license license:lgpl2.1+)))
7b212526
MW
4841
4842(define-public grilo-plugins
4843 (package
4844 (name "grilo-plugins")
281f6b3a 4845 (version "0.3.10")
7b212526
MW
4846 (source
4847 (origin
4848 (method url-fetch)
4849 (uri (string-append "mirror://gnome/sources/" name "/"
4850 (version-major+minor version) "/"
4851 name "-" version ".tar.xz"))
4852 (sha256
4853 (base32
281f6b3a
RG
4854 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4855 (build-system meson-build-system)
7b212526 4856 (native-inputs
281f6b3a
RG
4857 `(("gettext" ,gettext-minimal)
4858 ("glib:bin" ,glib "bin")
4859 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4860 ("itstool" ,itstool)
4861 ("pkg-config" ,pkg-config)))
281f6b3a 4862 ;; TODO: ahavi, gstreamer
7b212526
MW
4863 (inputs
4864 `(("grilo" ,grilo)
281f6b3a
RG
4865 ;("gmime" ,gmime) ; unused
4866 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4867 ("gom" ,gom)
281f6b3a
RG
4868 ;("gssdp" ,gssdp) ; unused
4869 ;("gupnp" ,gupnp) ; unused
4870 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4871 ("json-glib" ,json-glib)
4872 ("avahi" ,avahi)
281f6b3a
RG
4873 ("libgdata" ,libgdata)
4874 ("libmediaart" ,libmediaart)
4875 ;("librest" ,rest) ; unused
7b212526 4876 ("libsoup" ,libsoup)
281f6b3a
RG
4877 ("totam-pl-parser" ,totem-pl-parser)
4878 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4879 (arguments
281f6b3a
RG
4880 `(#:glib-or-gtk? #t
4881 ;;Disable lua-factory as it needs missing dependencies
4882 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4883 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4884 (synopsis "Plugins for the Grilo media discovery library")
4885 (description
4886 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4887for application developers. This package provides plugins for common media
4888discovery protocols.")
7b212526 4889 (license license:lgpl2.1+)))
4e3fc547
MW
4890
4891(define-public totem
4892 (package
4893 (name "totem")
995ef5ea 4894 (version "3.32.1")
4e3fc547
MW
4895 (source
4896 (origin
4897 (method url-fetch)
4898 (uri (string-append "mirror://gnome/sources/" name "/"
4899 (version-major+minor version) "/"
4900 name "-" version ".tar.xz"))
4901 (sha256
4902 (base32
995ef5ea 4903 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4904 (build-system meson-build-system)
4e3fc547
MW
4905 (native-inputs
4906 `(("pkg-config" ,pkg-config)
4907 ("desktop-file-utils" ,desktop-file-utils)
4908 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4909 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4910 ("intltool" ,intltool)
bcb354ad 4911 ("itstool" ,itstool)
995ef5ea
KK
4912 ("xmllint" ,libxml2)
4913 ("python-pylint" ,python-pylint)
4914 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4915 (propagated-inputs
4916 `(("dconf" ,dconf)))
4917 (inputs
4918 `(("gtk+" ,gtk+)
4919 ("gdk-pixbuf" ,gdk-pixbuf)
4920 ("atk" ,atk)
4921 ("cairo" ,cairo)
4922 ("dbus-glib" ,dbus-glib)
4923 ("clutter" ,clutter)
4924 ("clutter-gtk" ,clutter-gtk)
4925 ("clutter-gst" ,clutter-gst)
6a6db57f 4926 ("xorgproto" ,xorgproto)
4e3fc547
MW
4927 ("libxxf86vm" ,libxxf86vm)
4928 ("libxtst" ,libxtst)
4929 ("libxrandr" ,libxrandr)
4930 ("libxml2" ,libxml2)
4931 ("libsoup" ,libsoup)
4932 ("libpeas" ,libpeas)
4933 ("librsvg" ,librsvg)
4934 ("lirc" ,lirc)
4935 ("gnome-desktop" ,gnome-desktop)
4936 ("gstreamer" ,gstreamer)
4937 ("gst-plugins-base" ,gst-plugins-base)
4938 ("gst-plugins-good" ,gst-plugins-good)
4939 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4940 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4941 ("python" ,python)
995ef5ea 4942 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4943 ("totem-pl-parser" ,totem-pl-parser)
4944 ("grilo" ,grilo)
4945 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4946 ("vala" ,vala)))
4947 (arguments
7ad81b8b
LC
4948 `(#:glib-or-gtk? #t
4949
4950 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4951 ;; all that.
7ad81b8b 4952 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4953
4954 ;; Do not build .a files for the plugins, it's
4955 ;; completely useless. This saves 2 MiB.
7ad81b8b 4956 "--default-library" "shared")
ec5c24f9 4957 #:phases
4e3fc547 4958 (modify-phases %standard-phases
d51b19ad
EF
4959 (add-after 'unpack 'skip-gtk-update-icon-cache
4960 ;; Don't create 'icon-theme.cache'.
4961 (lambda _
4962 (substitute* "meson_post_install.py"
4963 (("gtk-update-icon-cache") "true"))
4964 #t))
6368eb39
DM
4965 (add-before
4966 'install 'disable-cache-generation
4967 (lambda _
4968 (setenv "DESTDIR" "/")
4969 #t))
995ef5ea
KK
4970 (add-before
4971 'check 'pre-check
4972 (lambda _
4973 ;; Tests require a running X server.
4974 (system "Xvfb :1 &")
4975 (setenv "DISPLAY" ":1")
4976 #t))
4e3fc547
MW
4977 (add-after
4978 'install 'wrap-totem
4979 (lambda* (#:key inputs outputs #:allow-other-keys)
4980 (let ((out (assoc-ref outputs "out"))
4981 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4982 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4983 (wrap-program (string-append out "/bin/totem")
4984 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4985 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4986 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4987 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4988 #t)))))
4989 (home-page "https://wiki.gnome.org/Apps/Videos")
4990 (synopsis "Simple media player for GNOME based on GStreamer")
4991 (description "Totem is a simple yet featureful media player for GNOME
4992which can read a large number of file formats.")
4993 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4994 ;; to be used and distributed together with GStreamer and Totem. See
4995 ;; file://COPYING in the source distribution for details.
4996 (license license:gpl2+)))
f0afb0c8
DH
4997
4998(define-public rhythmbox
4999 (package
5000 (name "rhythmbox")
8190e1ed 5001 (version "3.4.3")
f0afb0c8
DH
5002 (source (origin
5003 (method url-fetch)
5004 (uri (string-append "mirror://gnome/sources/" name "/"
5005 (version-major+minor version) "/"
5006 name "-" version ".tar.xz"))
5007 (sha256
5008 (base32
8190e1ed 5009 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
f0afb0c8
DH
5010 (build-system glib-or-gtk-build-system)
5011 (arguments
5012 `(#:configure-flags
5013 (list "--enable-lirc"
5014 "--enable-python"
5015 "--enable-vala"
5016 "--with-brasero"
5017 "--with-gudev"
5018 "--with-libsecret")
5019 #:phases
5020 (modify-phases %standard-phases
5021 (add-after
5022 'install 'wrap-rhythmbox
5023 (lambda* (#:key inputs outputs #:allow-other-keys)
5024 (let ((out (assoc-ref outputs "out"))
5025 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5026 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5027 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5028 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5029 (wrap-program (string-append out "/bin/rhythmbox")
5030 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5031 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5032 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5033 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5034 #t)))))
5035 (propagated-inputs
5036 `(("dconf" ,dconf)))
5037 (native-inputs
bcb354ad
SB
5038 `(("itstool" ,itstool)
5039 ("intltool" ,intltool)
f0afb0c8
DH
5040 ("glib" ,glib "bin")
5041 ("gobject-introspection" ,gobject-introspection)
5042 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5043 ("pkg-config" ,pkg-config)
5044 ("xmllint" ,libxml2)))
f0afb0c8
DH
5045 (inputs
5046 `(("json-glib" ,json-glib)
5047 ("tdb" ,tdb)
5048 ("gnome-desktop" ,gnome-desktop)
5049 ("python" ,python)
5050 ("python-pygobject" ,python2-pygobject)
5051 ("vala" ,vala)
5052 ("gmime" ,gmime)
f0afb0c8
DH
5053 ("adwaita-icon-theme" ,adwaita-icon-theme)
5054 ("grilo" ,grilo)
5055 ("grilo-plugins" ,grilo-plugins)
5056 ("gstreamer" ,gstreamer)
5057 ("gst-plugins-base" ,gst-plugins-base)
5058 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5059 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5060 ("libgudev" ,libgudev)
f0afb0c8
DH
5061 ;;("libmtp" ,libmtp) FIXME: Not detected
5062 ("libsecret" ,libsecret)
5063 ("libsoup" ,libsoup)
5064 ("libnotify" ,libnotify)
5065 ("libpeas" ,libpeas)
5066 ("lirc" ,lirc)
5067 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5068 ;;("clutter" ,clutter)
5069 ;;("clutter-gtk" ,clutter-gtk)
5070 ;;("clutter-gst" ,clutter-gst)
5071 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5072 ("atk" ,atk)
5073 ("pango" ,pango)
5074 ("gtk+" ,gtk+)
5075 ;; TODO:
5076 ;; * libgpod
5077 ;; * mx
f0afb0c8
DH
5078 ("brasero" ,brasero)))
5079 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5080 (synopsis "Music player for GNOME")
5081 (description "Rhythmbox is a music playing application for GNOME. It
5082supports playlists, song ratings, and any codecs installed through gstreamer.")
5083 (license license:gpl2+)))
f70d8383
DH
5084
5085(define-public eog
5086 (package
5087 (name "eog")
b0f24a82 5088 (version "3.32.2")
f70d8383
DH
5089 (source (origin
5090 (method url-fetch)
5091 (uri (string-append "mirror://gnome/sources/" name "/"
5092 (version-major+minor version) "/"
5093 name "-" version ".tar.xz"))
5094 (sha256
5095 (base32
b0f24a82 5096 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 5097 (build-system meson-build-system)
f70d8383 5098 (arguments
34c44a34
RW
5099 `(#:configure-flags
5100 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5101 (list (string-append "-Dc_link_args=-Wl,-rpath="
5102 (assoc-ref %outputs "out") "/lib/eog"))
5103 #:phases
f70d8383 5104 (modify-phases %standard-phases
7a034665
EF
5105 (add-after 'unpack 'skip-gtk-update-icon-cache
5106 ;; Don't create 'icon-theme.cache'.
5107 (lambda _
5108 (substitute* "meson_post_install.py"
5109 (("gtk-update-icon-cache") "true"))
5110 #t))
61fb581f
RW
5111 (add-after 'install 'wrap-eog
5112 (lambda* (#:key outputs #:allow-other-keys)
5113 (let ((out (assoc-ref outputs "out"))
5114 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5115 (wrap-program (string-append out "/bin/eog")
5116 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5117 #t)))))
f70d8383
DH
5118 (propagated-inputs
5119 `(("dconf" ,dconf)))
5120 (native-inputs
5121 `(("intltool" ,intltool)
b3546174 5122 ("itstool" ,itstool)
f70d8383
DH
5123 ("glib" ,glib "bin")
5124 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5125 ("pkg-config" ,pkg-config)
5126 ("xmllint" ,libxml2)))
f70d8383
DH
5127 (inputs
5128 `(("gnome-desktop" ,gnome-desktop)
5129 ("shared-mime-info" ,shared-mime-info)
5130 ("adwaita-icon-theme" ,adwaita-icon-theme)
5131 ("exempi" ,exempi)
5132 ("lcms" ,lcms)
5133 ("libexif" ,libexif)
5134 ("libpeas" ,libpeas)
5135 ("libjpeg" ,libjpeg)
5136 ("librsvg" ,librsvg)
5137 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5138 ("gtk+" ,gtk+)))
5139 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5140 (synopsis "GNOME image viewer")
5141 (description "Eye of GNOME is the GNOME image viewer. It
5142supports image conversion, rotation, and slideshows.")
5143 (license license:gpl2+)))
41af5e7b 5144
0c3f8cb8
LC
5145(define-public eog-plugins
5146 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5147 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5148 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5149 ;; 'XDG_DATA_DIRS' appropriately set.
5150 (package
5151 (name "eog-plugins")
54b74cc6 5152 (version "3.26.4")
0c3f8cb8
LC
5153 (source (origin
5154 (method url-fetch)
f3b88ed2 5155 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5156 (version-major+minor version) "/"
f3b88ed2 5157 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5158 (sha256
5159 (base32
54b74cc6 5160 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5161 (build-system gnu-build-system)
5162 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5163 (synopsis "Extensions for the Eye of GNOME image viewer")
5164 (native-inputs
5165 `(("pkg-config" ,pkg-config)
5166 ("gettext" ,gnu-gettext)))
5167 (inputs
5168 `(("eog" ,eog)
5169 ("glib" ,glib)
5170 ("gtk+" ,gtk+)
5171 ("libpeas" ,libpeas)
5172 ("libexif" ,libexif)
5173 ("libchamplain" ,libchamplain)))
5174 (description
5175 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5176notably:
5177
5178@itemize
5179@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5180@item @dfn{Map}, which displays a map of where the picture was taken on the
5181side panel;
5182@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5183@end itemize\n")
5184
5185 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5186 ;; long suspicious byte stream that goes to a
5187 ;; ".gresource.eog_postasa_plugin" ELF section.
5188 (license license:gpl2+)))
5189
41af5e7b
SB
5190(define-public libgudev
5191 (package
5192 (name "libgudev")
b78f5118 5193 (version "232")
41af5e7b
SB
5194 (source (origin
5195 (method url-fetch)
5196 (uri (string-append "mirror://gnome/sources/" name "/"
5197 version "/" name "-" version ".tar.xz"))
5198 (sha256
5199 (base32
b78f5118 5200 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5201 (build-system gnu-build-system)
b78f5118
RW
5202 (arguments
5203 '(#:configure-flags
5204 ;; umockdev depends on libgudev.
5205 (list "--disable-umockdev")))
41af5e7b
SB
5206 (native-inputs
5207 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5208 ("gobject-introspection" ,gobject-introspection)
5209 ("pkg-config" ,pkg-config)))
5210 (propagated-inputs
5211 `(("glib" ,glib))) ; required by gudev-1.0.pc
5212 (inputs
5213 `(("udev" ,eudev)))
5214 (home-page "https://wiki.gnome.org/Projects/libgudev")
5215 (synopsis "GObject bindings for libudev")
5216 (description
5217 "This library provides GObject bindings for libudev. It was originally
5218part of udev-extras, then udev, then systemd. It's now a project on its own.")
5219 (license license:lgpl2.1+)))
3dc8828f
SB
5220
5221(define-public gvfs
5222 (package
5223 (name "gvfs")
12fe4846 5224 (version "1.40.1")
3dc8828f
SB
5225 (source (origin
5226 (method url-fetch)
1d68eb32 5227 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5228 (version-major+minor version) "/"
1d68eb32 5229 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5230 (sha256
5231 (base32
12fe4846 5232 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5233 (build-system meson-build-system)
3dc8828f 5234 (arguments
e762d943
RW
5235 '(#:glib-or-gtk? #t
5236 #:configure-flags
5237 (list "-Dsystemduserunitdir=no"
5238 "-Dtmpfilesdir=no"
5239 ;; Otherwise, the RUNPATH will lack the final path component.
5240 (string-append "-Dc_link_args=-Wl,-rpath="
5241 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5242 (native-inputs
5243 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5244 ("gettext" ,gettext-minimal)
5245 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5246 ("pkg-config" ,pkg-config)
5247 ("xsltproc" ,libxslt)))
5248 (inputs
5249 `(("avahi" ,avahi)
5250 ("docbook-xml" ,docbook-xml-4.2)
5251 ("docbook-xsl" ,docbook-xsl)
5252 ("dbus" ,dbus)
e762d943 5253 ("elogind" ,elogind)
3dc8828f 5254 ("fuse" ,fuse)
24a78aa6 5255 ("gcr" ,gcr)
3dc8828f 5256 ("glib" ,glib)
e762d943 5257 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5258 ("libarchive" ,libarchive)
5259 ("libbluray" ,libbluray)
8852ca24 5260 ("libcap" ,libcap)
3dc8828f
SB
5261 ("libcdio-paranoia" ,libcdio-paranoia)
5262 ("libgcrypt" ,libgcrypt)
e762d943 5263 ("libgdata" ,libgdata)
3dc8828f
SB
5264 ("libgphoto2" ,libgphoto2)
5265 ("libgudev" ,libgudev)
0ab9f949 5266 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5267 ("libmtp" ,libmtp)
e762d943 5268 ("libnfs" ,libnfs)
3dc8828f
SB
5269 ("libsecret" ,libsecret)
5270 ("libsmbclient" ,samba)
5271 ("libsoup" ,libsoup)
5272 ("libxml2" ,libxml2)
e762d943 5273 ("openssh" ,openssh)
8852ca24 5274 ("polkit" ,polkit)
3dc8828f
SB
5275 ("udisks" ,udisks)))
5276 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5277 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5278 (description
8f65585b 5279 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5280abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5281to all applications using the GIO API. It also supports exposing the GVFS
5282mounts to non-GIO applications using FUSE.
5283
5284GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5285DAV, and others.")
5286 (license license:lgpl2.0+)))
7c88b6bd
AW
5287
5288(define-public gusb
5289 (package
5290 (name "gusb")
536b3274 5291 (version "0.3.0")
7c88b6bd 5292 (source (origin
bbfb36f9
EF
5293 (method git-fetch)
5294 (uri (git-reference
5295 (url "https://github.com/hughsie/libgusb.git")
5296 (commit version)))
5297 (file-name (git-file-name name version))
7c88b6bd
AW
5298 (sha256
5299 (base32
bbfb36f9 5300 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5301 (build-system meson-build-system)
7c88b6bd 5302 (native-inputs
536b3274 5303 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5304 ("pkg-config" ,pkg-config)
5305 ("vala" ,vala)
7c88b6bd
AW
5306 ("gtk-doc" ,gtk-doc)))
5307 (propagated-inputs
5308 ;; Both of these are required by gusb.pc.
5309 `(("glib" ,glib)
5310 ("libusb" ,libusb)))
5311 (arguments
536b3274 5312 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5313 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5314 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5315 (description
5316 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5317asynchronous control, bulk and interrupt transfers with proper cancellation
5318and integration into a mainloop. This makes it easy to integrate low level
5319USB transfers with your high-level application or system daemon.")
5320 (license license:lgpl2.1+)))
0abe1d86
AW
5321
5322(define-public simple-scan
5323 (package
5324 (name "simple-scan")
4afb7dd9 5325 (version "3.34.2")
d9f6d587
TGR
5326 (source
5327 (origin
5328 (method url-fetch)
5329 (uri (string-append "mirror://gnome/sources/simple-scan/"
5330 (version-major+minor version) "/"
5331 "simple-scan-" version ".tar.xz"))
5332 (sha256
4afb7dd9 5333 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
d9f6d587
TGR
5334 (build-system meson-build-system)
5335 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5336 (arguments
5337 '(#:glib-or-gtk? #t))
0abe1d86
AW
5338 (inputs
5339 `(("gtk" ,gtk+)
5340 ("zlib" ,zlib)
5341 ("cairo" ,cairo)
c501f592 5342 ("colord" ,colord)
0abe1d86
AW
5343 ("gdk-pixbuf" ,gdk-pixbuf)
5344 ("gusb" ,gusb)
4c928743 5345 ("libsane" ,sane-backends)))
0abe1d86 5346 (native-inputs
b94a6ca0 5347 `(("gettext" ,gettext-minimal)
0abe1d86 5348 ("itstool" ,itstool)
c501f592 5349 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5350 ("pkg-config" ,pkg-config)
bcb354ad
SB
5351 ("vala" ,vala)
5352 ("xmllint" ,libxml2)))
dff0eedb 5353 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5354 (synopsis "Document and image scanner")
d9f6d587
TGR
5355 (description
5356 "Document Scanner is an easy-to-use application that lets you connect your
5357scanner and quickly capture images and documents in an appropriate format. It
5358supports any scanner for which a suitable SANE driver is available, which is
5359almost all of them.")
0abe1d86 5360 (license license:gpl3+)))
7549f984 5361
ab466d79
RW
5362(define-public eolie
5363 (package
5364 (name "eolie")
fa8ef3ed 5365 (version "0.9.63")
ab466d79
RW
5366 (source (origin
5367 (method url-fetch)
00014781 5368 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 5369 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 5370 "eolie-" version ".tar.xz"))
ab466d79
RW
5371 (sha256
5372 (base32
fa8ef3ed 5373 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 5374 (build-system meson-build-system)
ab466d79 5375 (arguments
00014781
RW
5376 `(#:glib-or-gtk? #t
5377 #:phases
ab466d79 5378 (modify-phases %standard-phases
f0c68100
EF
5379 (add-after 'unpack 'skip-gtk-update-icon-cache
5380 ;; Don't create 'icon-theme.cache'.
5381 (lambda _
5382 (substitute* "meson_post_install.py"
5383 (("gtk-update-icon-cache") "true"))
5384 #t))
ab466d79
RW
5385 (add-after 'wrap 'wrap-more
5386 (lambda* (#:key inputs outputs #:allow-other-keys)
5387 (let* ((out (assoc-ref outputs "out"))
5388 ;; These libraries must be on LD_LIBRARY_PATH.
5389 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5390 "atk" "gtk+" "gsettings-desktop-schemas"
5391 "gobject-introspection"))
5392 (path (string-join
5393 (map (lambda (lib)
5394 (string-append (assoc-ref inputs lib) "/lib"))
5395 libs)
5396 ":")))
5397 (wrap-program (string-append out "/bin/eolie")
5398 `("LD_LIBRARY_PATH" ":" prefix (,path))
5399 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5400 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5401 #t)))))
5402 (native-inputs
f85ca6ed 5403 `(("intltool" ,intltool)
ab466d79 5404 ("itstool" ,itstool)
d95f1041 5405 ("pkg-config" ,pkg-config)
d95f1041 5406 ("python" ,python)
f0c68100 5407 ("glib:bin" ,glib "bin")))
ab466d79
RW
5408 (inputs
5409 `(("gobject-introspection" ,gobject-introspection)
5410 ("glib-networking" ,glib-networking)
5411 ("cairo" ,cairo)
5412 ("gtk+" ,gtk+)
5413 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5414 ("python" ,python-wrapper)
d72f76df 5415 ("python-dateutil" ,python-dateutil)
00014781 5416 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5417 ("python-pygobject" ,python-pygobject)
5418 ("python-pycairo" ,python-pycairo)
00014781 5419 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5420 ("libsecret" ,libsecret)
5421 ("gtkspell3" ,gtkspell3)
5422 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5423 ("webkitgtk" ,webkitgtk)))
166b2c97 5424 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5425 (synopsis "Web browser for GNOME")
5426 (description
5427 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5428a secret password store, an adblocker, and a modern UI.")
5429 (license license:gpl3+)))
5430
7549f984
SB
5431(define-public epiphany
5432 (package
5433 (name "epiphany")
60680365 5434 (version "3.32.5")
7549f984
SB
5435 (source (origin
5436 (method url-fetch)
dd3266ec 5437 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5438 (version-major+minor version) "/"
dd3266ec 5439 "epiphany-" version ".tar.xz"))
7549f984
SB
5440 (sha256
5441 (base32
60680365 5442 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
5443
5444 (build-system meson-build-system)
7549f984
SB
5445 (arguments
5446 ;; FIXME: tests run under Xvfb, but fail with:
5447 ;; /src/bookmarks/ephy-bookmarks/create:
5448 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5449 ;; subsystem
5450 ;; FAIL
6f48d9db 5451 '(#:tests? #f
e19f9c24 5452 #:glib-or-gtk? #t
bb7ff88f
EF
5453 #:phases
5454 (modify-phases %standard-phases
5455 (add-after 'unpack 'skip-gtk-update-icon-cache
5456 ;; Don't create 'icon-theme.cache'.
5457 (lambda _
5458 (substitute* "post_install.py"
5459 (("gtk-update-icon-cache") "true"))
5460 #t)))
e19f9c24
LF
5461 #:configure-flags
5462 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5463 (list (string-append "-Dc_link_args=-Wl,-rpath="
5464 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5465 (propagated-inputs
5466 `(("dconf" ,dconf)))
7549f984 5467 (native-inputs
fc5c5b92
R
5468 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5469 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5470 ("intltool" ,intltool)
7549f984 5471 ("itstool" ,itstool)
bcb354ad
SB
5472 ("pkg-config" ,pkg-config)
5473 ("xmllint" ,libxml2)))
7549f984
SB
5474 (inputs
5475 `(("avahi" ,avahi)
5476 ("gcr" ,gcr)
fc5c5b92 5477 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5478 ("glib-networking" ,glib-networking)
5479 ("gnome-desktop" ,gnome-desktop)
5480 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5481 ("json-glib" ,json-glib)
7549f984 5482 ("iso-codes" ,iso-codes)
8748e29c 5483 ("libdazzle" ,libdazzle)
7549f984
SB
5484 ("libnotify" ,libnotify)
5485 ("libsecret" ,libsecret)
7549f984 5486 ("libxslt" ,libxslt)
fc5c5b92 5487 ("nettle" ,nettle) ; for hogweed
7549f984 5488 ("sqlite" ,sqlite)
f85ca6ed 5489 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5490 (home-page "https://wiki.gnome.org/Apps/Web")
5491 (synopsis "GNOME web browser")
5492 (description
5493 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5494principles are simplicity and standards compliance.")
5495 (license license:gpl2+)))
a3856b2c
SB
5496
5497(define-public d-feet
5498 (package
5499 (name "d-feet")
458e9221 5500 (version "0.3.14")
a3856b2c
SB
5501 (source (origin
5502 (method url-fetch)
5503 (uri (string-append "mirror://gnome/sources/" name "/"
5504 (version-major+minor version) "/"
5505 name "-" version ".tar.xz"))
5506 (sha256
5507 (base32
458e9221 5508 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5509 (build-system glib-or-gtk-build-system)
5510 (arguments
5511 '(#:out-of-source? #f ; tests need to run in the source directory.
5512 #:phases
5513 (modify-phases %standard-phases
5514 (add-before
5515 'check 'pre-check
86aff791 5516 (lambda _
a3856b2c
SB
5517 ;; The test suite requires a running X server.
5518 (system "Xvfb :1 &")
5519 (setenv "DISPLAY" ":1")
5520 ;; Don't fail on missing '/etc/machine-id'.
5521 (setenv "DBUS_FATAL_WARNINGS" "0")
5522 ;; tests.py and window.py don't meet E402:
5523 ;; E402 module level import not at top of file
5524 (substitute* "src/tests/Makefile"
86aff791
MW
5525 (("--ignore=E123") "--ignore=E123,E402"))
5526 #t))
a3856b2c
SB
5527 (add-after
5528 'install 'wrap-program
5529 (lambda* (#:key outputs #:allow-other-keys)
5530 (let ((prog (string-append (assoc-ref outputs "out")
5531 "/bin/d-feet")))
5532 (wrap-program prog
5533 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5534 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5535 #t))))))
a3856b2c
SB
5536 (native-inputs
5537 `(("intltool" ,intltool)
5538 ("itstool" ,itstool)
5539 ("pkg-config" ,pkg-config)
5540 ("python-pep8" ,python-pep8)
5541 ("xmllint" ,libxml2)
ff337525 5542 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5543 (inputs
5544 `(("gobject-introspection" ,gobject-introspection)
5545 ("gtk+" ,gtk+)
5546 ("python" ,python-wrapper)
458e9221 5547 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5548 ("python-pygobject" ,python-pygobject)))
5549 (home-page "https://wiki.gnome.org/Apps/DFeet")
5550 (synopsis "D-Bus debugger")
5551 (description
5552 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5553of running programs and invoke methods on those interfaces.")
5554 (license license:gpl2+)))
c3b97bd9
SB
5555
5556(define-public yelp-xsl
5557 (package
5558 (name "yelp-xsl")
b3640e79 5559 (version "3.32.1")
c3b97bd9
SB
5560 (source (origin
5561 (method url-fetch)
5562 (uri (string-append "mirror://gnome/sources/" name "/"
5563 (version-major+minor version) "/"
5564 name "-" version ".tar.xz"))
5565 (sha256
5566 (base32
b3640e79 5567 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
c3b97bd9
SB
5568 (build-system gnu-build-system)
5569 (native-inputs
5570 `(("intltool" ,intltool)
5571 ("itstool" ,itstool)
5572 ("xmllint" ,libxml2)))
5573 (home-page "https://wiki.gnome.org/Apps/Yelp")
5574 (synopsis "XSL stylesheets for Yelp")
5575 (description
5576 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5577to format Docbook and Mallard documents.")
5578 (license license:gpl2+)))
de3d612a
SB
5579
5580(define-public yelp
5581 (package
5582 (name "yelp")
1f1b6d60 5583 (version "3.32.2")
de3d612a
SB
5584 (source (origin
5585 (method url-fetch)
5586 (uri (string-append "mirror://gnome/sources/" name "/"
5587 (version-major+minor version) "/"
5588 name "-" version ".tar.xz"))
5589 (sha256
5590 (base32
1f1b6d60 5591 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5592 (build-system glib-or-gtk-build-system)
5593 (native-inputs
5594 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5595 ("intltool" ,intltool)
5596 ("itstool" ,itstool)
5597 ("pkg-config" ,pkg-config)))
5598 (propagated-inputs
5599 `(("dconf" ,dconf)))
5600 (inputs
ad1b7d8b
SB
5601 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5602 ("libxslt" ,libxslt)
de3d612a 5603 ("sqlite" ,sqlite)
4c28ca1d
SB
5604 ("webkitgtk" ,webkitgtk)
5605 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5606 (home-page "https://wiki.gnome.org/Apps/Yelp")
5607 (synopsis "GNOME help browser")
5608 (description
5609 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5610man, info, and HTML documents. It can locate documents according to the
5611freedesktop.org help system specification.")
5612 (license license:gpl2+)))
122d0d10
SB
5613
5614(define-public yelp-tools
5615 (package
5616 (name "yelp-tools")
2089bca5 5617 (version "3.28.0")
122d0d10
SB
5618 (source (origin
5619 (method url-fetch)
5620 (uri (string-append "mirror://gnome/sources/" name "/"
5621 (version-major+minor version) "/"
5622 name "-" version ".tar.xz"))
5623 (sha256
5624 (base32
2089bca5 5625 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
5626 (build-system gnu-build-system)
5627 (native-inputs
5628 `(("pkg-config" ,pkg-config)))
5629 (propagated-inputs
5630 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5631 `(("itstool" ,itstool)
5632 ("xmllint" ,libxml2)
5633 ("xsltproc" ,libxslt)))
5634 (inputs
5635 `(("yelp-xsl" ,yelp-xsl)))
5636 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5637 (synopsis "Yelp documentation tools")
5638 (description
5639 "Yelp-tools is a collection of scripts and build utilities to help create,
5640manage, and publish documentation for Yelp and the web. Most of the heavy
5641lifting is done by packages like yelp-xsl and itstool. This package just
5642wraps things up in a developer-friendly way.")
5643 (license license:gpl2+)))
af8f9f23 5644
4ed041d9
MB
5645(define-public yelp-tools/fixed
5646 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5647 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5648 ;; the next rebuild cycle.
5649 (hidden-package
5650 (package/inherit
5651 yelp-tools
5652 (propagated-inputs
5653 `(("itstool" ,itstool/fixed)
5654 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5655
af8f9f23
RW
5656(define-public libgee
5657 (package
5658 (name "libgee")
4c2c5ae6 5659 (version "0.20.2")
af8f9f23
RW
5660 (source (origin
5661 (method url-fetch)
84a1b007 5662 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5663 (version-major+minor version) "/"
84a1b007 5664 "libgee-" version ".tar.xz"))
af8f9f23
RW
5665 (sha256
5666 (base32
4c2c5ae6 5667 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
af8f9f23
RW
5668 (build-system gnu-build-system)
5669 (arguments
5670 `(#:phases
5671 (modify-phases %standard-phases
5672 (add-after 'unpack 'fix-introspection-install-dir
5673 (lambda* (#:key outputs #:allow-other-keys)
5674 (let ((out (assoc-ref outputs "out")))
5675 (substitute* "gee/Makefile.in"
5676 (("@INTROSPECTION_GIRDIR@")
5677 (string-append out "/share/gir-1.0/"))
5678 (("@INTROSPECTION_TYPELIBDIR@")
5679 (string-append out "/lib/girepository-1.0/")))))))))
5680 (native-inputs
5681 `(("glib" ,glib "bin")
5682 ("pkg-config" ,pkg-config)))
5683 (inputs
5684 `(("glib" ,glib)
5685 ("gobject-introspection" ,gobject-introspection)))
5686 (home-page "https://wiki.gnome.org/Projects/Libgee")
5687 (synopsis "GObject collection library")
5688 (description
5689 "Libgee is a utility library providing GObject-based interfaces and
5690classes for commonly used data structures.")
5691 (license license:lgpl2.1+)))
b0f9c4b8
RW
5692
5693(define-public gexiv2
5694 (package
5695 (name "gexiv2")
b1a8b408 5696 (version "0.12.0")
b0f9c4b8
RW
5697 (source (origin
5698 (method url-fetch)
5699 (uri (string-append "mirror://gnome/sources/" name "/"
5700 (version-major+minor version) "/"
5701 name "-" version ".tar.xz"))
5702 (sha256
5703 (base32
b1a8b408 5704 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5705 (build-system meson-build-system)
b0f9c4b8 5706 (native-inputs
b1a8b408
KK
5707 `(("gcr" ,gcr)
5708 ("glib" ,glib "bin")
5709 ("pkg-config" ,pkg-config)
5710 ("vala" ,vala)))
b0f9c4b8
RW
5711 (propagated-inputs
5712 ;; Listed in "Requires" section of gexiv2.pc
5713 `(("exiv2" ,exiv2)))
5714 (inputs
5715 `(("glib" ,glib)
5716 ("gobject-introspection" ,gobject-introspection)))
5717 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5718 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5719 (description
5720 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5721allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5722metadata in photo and video files of various formats.")
5723 (license license:gpl2+)))
fed5a689
RW
5724
5725(define-public shotwell
5726 (package
5727 (name "shotwell")
a1c6fb52 5728 (version "0.30.7")
fed5a689
RW
5729 (source (origin
5730 (method url-fetch)
5497d682 5731 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5732 (version-major+minor version) "/"
5497d682 5733 "shotwell-" version ".tar.xz"))
fed5a689
RW
5734 (sha256
5735 (base32
a1c6fb52 5736 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
3b79afa6
KK
5737 (build-system meson-build-system)
5738 (arguments
5a0beca3
EF
5739 '(#:glib-or-gtk? #t
5740 #:phases
5741 (modify-phases %standard-phases
5742 (add-after 'unpack 'skip-gtk-update-icon-cache
5743 (lambda _
5744 (substitute* "build-aux/meson/postinstall.py"
5745 (("gtk-update-icon-cache") (which "true"))
5746 (("update-desktop-database") (which "true")))
5747 #t)))))
735b8db6
TGR
5748 (propagated-inputs
5749 `(("dconf" ,dconf)))
fed5a689 5750 (native-inputs
5a0beca3
EF
5751 `(("gettext" ,gettext-minimal)
5752 ("glib:bin" ,glib "bin")
735b8db6 5753 ("itstool" ,itstool)
3b79afa6 5754 ("pkg-config" ,pkg-config)
735b8db6 5755 ("vala" ,vala)))
fed5a689 5756 (inputs
5a0beca3
EF
5757 `(("gcr" ,gcr)
5758 ("gexiv2" ,gexiv2)
fed5a689 5759 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5760 ("gstreamer" ,gstreamer)
5761 ("json-glib" ,json-glib)
dfb0323d 5762 ("libgdata" ,libgdata)
fed5a689 5763 ("libgee" ,libgee)
5a0beca3
EF
5764 ("libgphoto2" ,libgphoto2)
5765 ("libgudev" ,libgudev)
fed5a689 5766 ("libraw" ,libraw)
fed5a689
RW
5767 ("libsoup" ,libsoup)
5768 ("libxml2" ,libxml2)
5a0beca3
EF
5769 ("sqlite" ,sqlite)
5770 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5771 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5772 (synopsis "Photo manager for GNOME 3")
5773 (description
5774 "Shotwell is a digital photo manager designed for the GNOME desktop
5775environment. It allows you to import photos from disk or camera, organize
5776them by keywords and events, view them in full-window or fullscreen mode, and
5777share them with others via social networking and more.")
5778 (license license:lgpl2.1+)))
293ff8b2
DT
5779
5780(define-public file-roller
5781 (package
5782 (name "file-roller")
dcae4270 5783 (version "3.32.3")
293ff8b2
DT
5784 (source (origin
5785 (method url-fetch)
f89a27c6 5786 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5787 (version-major+minor version) "/"
f89a27c6 5788 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5789 (sha256
5790 (base32
dcae4270 5791 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5792 (build-system meson-build-system)
293ff8b2 5793 (native-inputs
0a500745
RW
5794 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5795 ("intltool" ,intltool)
4c96e5d1 5796 ("itstool" ,itstool)
0a500745
RW
5797 ("pkg-config" ,pkg-config)
5798 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5799 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5800 ;; TODO: Add libnautilus.
5801 (inputs
5802 `(("gtk+" ,gtk+)
5803 ("gdk-pixbuf" ,gdk-pixbuf)
5804 ("json-glib" ,json-glib)
5805 ("libarchive" ,libarchive)
5806 ("libnotify" ,libnotify)
4c96e5d1 5807 ("nettle" ,nettle)
293ff8b2
DT
5808 ("libxml2" ,libxml2)))
5809 (synopsis "Graphical archive manager for GNOME")
5810 (description "File Roller is an archive manager for the GNOME desktop
5811environment that allows users to view, unpack, and create compressed archives
5812such as gzip tarballs.")
5813 (home-page "http://fileroller.sourceforge.net/")
5814 (license license:gpl2+)))
7ce49365
SB
5815
5816(define-public gnome-session
5817 (package
5818 (name "gnome-session")
1fc2ec79 5819 (version "3.32.0")
7ce49365
SB
5820 (source (origin
5821 (method url-fetch)
5822 (uri (string-append "mirror://gnome/sources/" name "/"
5823 (version-major+minor version) "/"
5824 name "-" version ".tar.xz"))
5825 (sha256
5826 (base32
1fc2ec79 5827 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5828 (arguments
df278071
RW
5829 '(#:glib-or-gtk? #t
5830 #:phases
2914af3c
AW
5831 (modify-phases %standard-phases
5832 (add-before 'configure 'pre-configure
5833 (lambda* (#:key outputs #:allow-other-keys)
5834 ;; Use elogind instead of systemd.
df278071
RW
5835 (substitute* "meson.build"
5836 (("libsystemd-login") "libelogind")
5837 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5838 (substitute* "gnome-session/gsm-systemd.c"
5839 (("#include <systemd/sd-login.h>")
5840 "#include <elogind/sd-login.h>"))
df278071 5841 ;; Remove uses of the systemd daemon.
803ab416
SB
5842 (substitute* "gnome-session/gsm-autostart-app.c"
5843 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5844 #t))
5845 (add-after 'install 'wrap-gnome-session
5846 (lambda* (#:key inputs outputs #:allow-other-keys)
5847 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5848 (let ((glib (assoc-ref inputs "glib:bin"))
5849 (out (assoc-ref outputs "out")))
5850 (wrap-program (string-append out "/bin/gnome-session")
5851 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5852 #t))))
6cbc8d57 5853
2914af3c 5854 #:configure-flags
df278071
RW
5855 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5856 "-Dman=false" ; FIXME: disabled because of docbook validation error
5857 "-Dsystemd_journal=false")))
5858 (build-system meson-build-system)
7ce49365
SB
5859 (native-inputs
5860 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5861 ("pkg-config" ,pkg-config)
5862 ("intltool" ,intltool)
df278071
RW
5863 ("xsltproc" ,libxslt)
5864 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5865 ("docbook-xsl" ,docbook-xsl)
5866 ("docbook-xml" ,docbook-xml)
5867 ("xmlto" ,xmlto)))
7ce49365 5868 (inputs
2914af3c
AW
5869 `(("elogind" ,elogind)
5870 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5871 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5872 ("gtk+" ,gtk+)
5873 ("json-glib" ,json-glib)
5874 ("libsm" ,libsm)
5875 ("libxcomposite" ,libxcomposite)
5876 ("libxtst" ,libxtst)
5877 ("mesa" ,mesa)
5878 ("upower" ,upower)
5879 ("xtrans" ,xtrans)))
5880 (synopsis "Session manager for GNOME")
5881 (description
5882 "This package contains the GNOME session manager, as well as a
5883configuration program to choose applications starting on login.")
5884 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5885 (license license:gpl2+)))
f47ba77e
SB
5886
5887(define-public gjs
5888 (package
5889 (name "gjs")
d054fbf5 5890 (version "1.56.2")
f47ba77e
SB
5891 (source (origin
5892 (method url-fetch)
5893 (uri (string-append "mirror://gnome/sources/" name "/"
5894 (version-major+minor version) "/"
5895 name "-" version ".tar.xz"))
5896 (sha256
5897 (base32
d054fbf5 5898 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5899 (build-system gnu-build-system)
5900 (arguments
5901 '(#:phases
5902 (modify-phases %standard-phases
5903 (add-before
5904 'check 'pre-check
5905 (lambda _
fc119619
MW
5906 ;; The test suite requires a running X server.
5907 (system "Xvfb :1 &")
5908 (setenv "DISPLAY" ":1")
5909
f47ba77e
SB
5910 ;; For the missing /etc/machine-id.
5911 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5912
144f94d0
KK
5913 ;; Our mozjs-38 package does not compile the required Intl API
5914 ;; support for these failing tests.
5915 (substitute* "installed-tests/js/testLocale.js"
5916 ((".*toBeDefined.*") "")
5917 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5918 (substitute* "installed-tests/scripts/testCommandLine.sh"
5919 (("Valentín") "")
5920 (("☭") ""))
f47ba77e
SB
5921 #t)))))
5922 (native-inputs
8a831c6f 5923 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5924 ("pkg-config" ,pkg-config)
5925 ("xmllint" ,libxml2)
5926 ;; For testing
5927 ("dbus-launch" ,dbus)
5928 ("uuidgen" ,util-linux)
ebebee94 5929 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5930 (propagated-inputs
5931 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5932 `(("cairo" ,cairo)
5933 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5934 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5935 (inputs
5936 `(("gtk+" ,gtk+)
5937 ("readline" ,readline)))
5938 (synopsis "Javascript bindings for GNOME")
f032d0be 5939 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5940 (description
5941 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5942javascript engine and the GObject introspection framework.")
5943 (license license:gpl2+)))
329d731b
DH
5944
5945(define-public gedit
5946 (package
5947 (name "gedit")
480c9226 5948 (version "3.32.2")
329d731b
DH
5949 (source (origin
5950 (method url-fetch)
5951 (uri (string-append "mirror://gnome/sources/" name "/"
5952 (version-major+minor version) "/"
5953 name "-" version ".tar.xz"))
5954 (sha256
5955 (base32
480c9226
KK
5956 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5957 (build-system meson-build-system)
329d731b 5958 (arguments
480c9226
KK
5959 `(#:glib-or-gtk? #t
5960 #:configure-flags
5961 ;; Otherwise, the RUNPATH will lack the final path component.
5962 (list (string-append "-Dc_link_args=-Wl,-rpath="
5963 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5964
5965 ;; XXX: Generated .h files are sometimes used before being built.
5966 #:parallel-build? #f
5967
480c9226 5968 #:phases
329d731b 5969 (modify-phases %standard-phases
480c9226
KK
5970 (add-after 'unpack 'skip-gtk-update-icon-cache
5971 ;; Don't create 'icon-theme.cache'.
5972 (lambda _
5973 (substitute* "build-aux/meson/post_install.py"
5974 (("gtk-update-icon-cache") (which "true")))
5975 #t))
5976 (add-after 'unpack 'patch-libgd-fetch
5977 (lambda* (#:key inputs #:allow-other-keys)
5978 (let ((libgd (assoc-ref inputs "libgd")))
5979 ;; Calling git is unnecessary because libgd is fetched as a
5980 ;; native input to this package.
5981 (substitute* "meson.build"
5982 ((".*git.*") ""))
5983 (copy-recursively libgd "subprojects/libgd")
5984 #t)))
5985 (add-after 'install 'wrap-gedit
5986 (lambda* (#:key inputs outputs #:allow-other-keys)
5987 (let ((out (assoc-ref outputs "out"))
5988 (gtksourceview (assoc-ref inputs "gtksourceview"))
5989 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5990 (python-path (getenv "PYTHONPATH")))
5991 (wrap-program (string-append out "/bin/gedit")
5992 ;; For plugins.
5993 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5994 `("PYTHONPATH" ":" prefix (,python-path))
5995 ;; For language-specs.
5996 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5997 "/share")))))
5998 #t)))))
329d731b
DH
5999 (propagated-inputs
6000 `(("dconf" ,dconf)))
6001 (native-inputs
480c9226
KK
6002 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6003 ("intltool" ,intltool)
b3546174 6004 ("itstool" ,itstool)
480c9226 6005 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6006 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6007 ("libgd"
6008 ,(origin
6009 (method git-fetch)
6010 (uri (git-reference
6011 (url "https://gitlab.gnome.org/GNOME/libgd")
6012 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6013 (file-name (git-file-name "libgd" version))
6014 (sha256
6015 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6016 ("pkg-config" ,pkg-config)))
6017 (inputs
6018 `(("glib" ,glib)
0d2df50c 6019 ("gspell" ,gspell)
329d731b 6020 ("gtk+" ,gtk+)
480c9226 6021 ("gtksourceview" ,gtksourceview)
329d731b
DH
6022 ("libpeas" ,libpeas)
6023 ("libxml2" ,libxml2)
329d731b
DH
6024 ("iso-codes" ,iso-codes)
6025 ("python-pygobject" ,python-pygobject)
6026 ("python" ,python)
6027 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6028 ("libx11" ,libx11)
6029 ("vala" ,vala)
6030 ("adwaita-icon-theme" ,adwaita-icon-theme)
6031 ("libsoup" ,libsoup)
6032 ("gnome-desktop" ,gnome-desktop)))
6033 (home-page "https://wiki.gnome.org/Apps/Gedit")
6034 (synopsis "GNOME text editor")
6035 (description "While aiming at simplicity and ease of use, gedit is a
6036powerful general purpose text editor.")
6037 (license license:gpl2+)))
b7179363
SB
6038
6039(define-public zenity
6040 (package
6041 (name "zenity")
4f581bd0 6042 (version "3.32.0")
b7179363
SB
6043 (source (origin
6044 (method url-fetch)
5958df04 6045 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6046 (version-major+minor version) "/"
5958df04 6047 "zenity-" version ".tar.xz"))
b7179363
SB
6048 (sha256
6049 (base32
4f581bd0 6050 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6051 (build-system gnu-build-system)
6052 (native-inputs
b94a6ca0 6053 `(("gettext" ,gettext-minimal)
b7179363
SB
6054 ("itstool" ,itstool)
6055 ("pkg-config" ,pkg-config)))
6056 (inputs
6057 `(("libnotify" ,libnotify)
6058 ("webkitgtk" ,webkitgtk)))
6059 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6060 (home-page "https://www.gnome.org")
b7179363
SB
6061 (description
6062 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6063to display dialog boxes from the commandline and shell scripts.")
6064 (license license:lgpl2.0+)))
60c3627c
SB
6065
6066(define-public mutter
6067 (package
6068 (name "mutter")
edf43f68 6069 (version "3.32.2")
60c3627c 6070 (source (origin
86c44e72
KK
6071 (method url-fetch)
6072 (uri (string-append "mirror://gnome/sources/" name "/"
6073 (version-major+minor version) "/"
6074 name "-" version ".tar.xz"))
60c3627c
SB
6075 (sha256
6076 (base32
edf43f68 6077 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
6078 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6079 ;; versions of cogl and clutter. As a result, many of the inputs,
6080 ;; propagated-inputs, and configure flags used in cogl and clutter are
6081 ;; needed here as well.
edf43f68 6082 (build-system meson-build-system)
60c3627c 6083 (arguments
edf43f68
KK
6084 '(;; XXX: All mutter tests fail with the following error:
6085 ;; Settings schema 'org.gnome.mutter' is not installed
6086 #:tests? #f
6087 #:glib-or-gtk? #t
6088 #:configure-flags
6089 ;; Otherwise, the RUNPATH will lack the final path component.
6090 (list (string-append "-Dc_link_args=-Wl,-rpath="
6091 (assoc-ref %outputs "out") "/lib:"
6092 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
6093
6094 ;; The following flags are needed for the bundled clutter
edf43f68 6095 (string-append "-Dxwayland_path="
d633f2f6
RH
6096 (assoc-ref %build-inputs "xorg-server-xwayland")
6097 "/bin/Xwayland")
6098
a88d5a0c 6099 ;; the remaining flags are needed for the bundled cogl
edf43f68 6100 (string-append "-Dopengl_libname="
a88d5a0c 6101 (assoc-ref %build-inputs "mesa")
f23052a6
DC
6102 "/lib/libGL.so"))
6103 #:phases
6104 (modify-phases %standard-phases
edf43f68
KK
6105 (add-after 'unpack 'disable-werror
6106 (lambda _
6107 ;; XXX: build fails with [-Werror]:
6108 ;; backends/meta-cursor-renderer.c:112:5: error:
6109 ;; implicit declaration of function ?roundf?
6110 (substitute* "meson.build"
6111 (("'-Werror=.*',") ""))
6112 #t))
86c44e72
KK
6113 ;; Replace references to systemd libraries to elogind references.
6114 (add-before 'configure 'use-elogind
6115 (lambda _
edf43f68 6116 (substitute* (list "meson.build"
86c44e72
KK
6117 "src/backends/native/meta-launcher.c"
6118 "src/core/main.c")
6119 (("systemd") "elogind"))
6120 #t)))))
60c3627c
SB
6121 (native-inputs
6122 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6123 ("gobject-introspection" ,gobject-introspection)
6124 ("intltool" ,intltool)
f23052a6 6125 ("pkg-config" ,pkg-config)
edf43f68 6126 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6127 ;; For git build
6128 ("autoconf" ,autoconf)
6129 ("automake" ,automake)
6130 ("libtool" ,libtool)))
60c3627c 6131 (propagated-inputs
a88d5a0c
MW
6132 `(;; libmutter.pc refers to these:
6133 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6134 ("gtk+" ,gtk+)
6135 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6136 ("atk" ,atk)
6137 ("cairo" ,cairo)
6138 ("gdk-pixbuf" ,gdk-pixbuf)
6139 ("glib" ,glib)
a88d5a0c
MW
6140 ("json-glib" ,json-glib)
6141 ("libinput" ,libinput)
6142 ("libx11" ,libx11)
6143 ("libxcomposite" ,libxcomposite)
6144 ("libxdamage" ,libxdamage)
6145 ("libxext" ,libxext)
6146 ("libxfixes" ,libxfixes)
6147 ("libxkbcommon" ,libxkbcommon)
6148 ("libxrandr" ,libxrandr)
6149 ("mesa" ,mesa)
6150 ("pango" ,pango)
6151 ("udev" ,eudev)
a88d5a0c 6152 ("xinput" ,xinput)))
60c3627c 6153 (inputs
86c44e72
KK
6154 `(("elogind" ,elogind)
6155 ("gnome-desktop" ,gnome-desktop)
edf43f68 6156 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6157 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6158 ("libgudev" ,libgudev)
60c3627c
SB
6159 ("libice" ,libice)
6160 ("libsm" ,libsm)
edf43f68 6161 ("libwacom" ,libwacom)
60c3627c 6162 ("libxkbfile" ,libxkbfile)
a88d5a0c 6163 ("libxrandr" ,libxrandr)
86c44e72 6164 ("libxtst" ,libxtst)
edf43f68 6165 ("pipewire" ,pipewire)
60c3627c
SB
6166 ("startup-notification" ,startup-notification)
6167 ("upower-glib" ,upower)
6168 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6169 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6170 ("zenity" ,zenity)))
6171 (synopsis "Window and compositing manager")
f032d0be 6172 (home-page "https://www.gnome.org")
60c3627c
SB
6173 (description
6174 "Mutter is a window and compositing manager that displays and manages your
6175desktop via OpenGL. Mutter combines a sophisticated display engine using the
6176Clutter toolkit with solid window-management logic inherited from the Metacity
6177window manager.")
86c44e72 6178 (license license:gpl2+)))
685cee87
SB
6179
6180(define-public gnome-online-accounts
6181 (package
6182 (name "gnome-online-accounts")
aa200347 6183 (version "3.32.1")
685cee87
SB
6184 (source (origin
6185 (method url-fetch)
6186 (uri (string-append "mirror://gnome/sources/" name "/"
6187 (version-major+minor version) "/"
6188 name "-" version ".tar.xz"))
6189 (sha256
6190 (base32
aa200347 6191 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 6192 (outputs '("out" "lib"))
685cee87 6193 (build-system glib-or-gtk-build-system)
14c297fd
TS
6194 (arguments
6195 `(#:configure-flags
6196 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6197 #:phases
6198 (modify-phases %standard-phases
6199 (add-before 'configure 'patch-libgoa-output
6200 (lambda* (#:key outputs #:allow-other-keys)
6201 (let ((lib (assoc-ref outputs "lib")))
6202 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6203 (("@prefix@") lib)
6204 (("@exec_prefix@") lib)
6205 (("@libdir@") (string-append lib "/lib"))
6206 (("@includedir@") (string-append lib "/include"))
6207 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6208 ;; Make sure gobject-introspection knows about the output
6209 ;; too (see <https://bugs.gnu.org/36535>).
6210 (setenv "outputs" "out lib")
14c297fd 6211 #t))))))
685cee87
SB
6212 (native-inputs
6213 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6214 ("gobject-introspection" ,gobject-introspection)
6215 ("intltool" ,intltool)
6216 ("pkg-config" ,pkg-config)
ebb2873d 6217 ("vala" ,vala)
685cee87
SB
6218 ("xsltproc" ,libxslt)))
6219 (propagated-inputs
6220 `(("glib" ,glib) ; required by goa-1.0.pc
6221 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6222 (inputs
6223 `(("docbook-xsl" ,docbook-xsl)
6224 ("json-glib" ,json-glib)
6225 ("libsecret" ,libsecret)
6226 ("rest" ,rest)
685cee87
SB
6227 ("webkitgtk" ,webkitgtk)))
6228 (synopsis "Single sign-on framework for GNOME")
6229 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6230 (description
6231 "GNOME Online Accounts provides interfaces so that applications and
6232libraries in GNOME can access the user's online accounts. It has providers for
6233Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6234Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6235 (license license:lgpl2.0+)))
df217748
SB
6236
6237(define-public evolution-data-server
6238 (package
6239 (name "evolution-data-server")
2196a8d4 6240 (version "3.32.4")
df217748
SB
6241 (source (origin
6242 (method url-fetch)
6243 (uri (string-append "mirror://gnome/sources/" name "/"
6244 (version-major+minor version) "/"
6245 name "-" version ".tar.xz"))
e1f174ae 6246 (patches (search-patches "evolution-data-server-locales.patch"))
df217748
SB
6247 (sha256
6248 (base32
2196a8d4 6249 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 6250 (build-system cmake-build-system)
df217748 6251 (arguments
b468eedc
RW
6252 '(#:configure-flags
6253 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6254 (runpaths (map (lambda (s)
6255 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6256 '("addressbook-backends" "calendar-backends"
6257 "camel-providers" "credential-modules"
6258 "registry-modules"))))
6259 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6260 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6261 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6262 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6263 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6264 (string-append lib "/evolution-data-server;")
6265 (string-join runpaths ";"))
6266 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6267 #:phases
6268 (modify-phases %standard-phases
b468eedc
RW
6269 (add-after 'unpack 'disable-failing-tests
6270 (lambda _
6271 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6272 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6273 (delete-file-recursively "tests/book-migration")
6274 (substitute* "tests/CMakeLists.txt"
6275 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
6276 ;; tests/libebook/client/test-book-client-view-operations:8077):
6277 ;; e-data-server-WARNING **:
6278 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6279 ;; runtime check failed:
6280 ;; (!g_main_context_pending (closure->main_context))
6281 (substitute* "tests/libebook/client/CMakeLists.txt"
6282 (("test-book-client-view-operations") ""))
b468eedc 6283 #t))
743aebd7 6284 (add-after 'unpack 'patch-paths
df217748 6285 (lambda _
b468eedc
RW
6286 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6287 "tests/libedata-book/data-test-utils.c"
6288 "tests/libedata-book/test-book-cache-utils.c"
6289 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6290 (("/bin/rm") (which "rm")))
ac033c7b
MB
6291 #t))
6292 (add-before 'configure 'dont-override-rpath
6293 (lambda _
6294 (substitute* "CMakeLists.txt"
6295 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6296 ;; Remove it so the configure flag is respected.
6297 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6298 #t)))))
df217748
SB
6299 (native-inputs
6300 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6301 ("gobject-introspection" ,gobject-introspection)
6302 ("gperf" ,gperf)
6303 ("intltool" ,intltool)
6304 ("pkg-config" ,pkg-config)
a73c1cf8 6305 ("vala" ,vala)
743aebd7 6306 ("python" ,python-wrapper)))
df217748
SB
6307 (propagated-inputs
6308 ;; These are all in the Requires field of .pc files.
6309 `(("gtk+" ,gtk+)
6310 ("libical" ,libical)
6311 ("libsecret" ,libsecret)
6312 ("libsoup" ,libsoup)
6313 ("nss" ,nss)
6314 ("sqlite" ,sqlite)))
6315 (inputs
6316 `(("bdb" ,bdb)
6317 ("gcr" ,gcr)
14c297fd 6318 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6319 ("json-glib" ,json-glib)
b468eedc 6320 ("libcanberra" ,libcanberra)
743aebd7
MB
6321 ("libgweather" ,libgweather)
6322 ("mit-krb5" ,mit-krb5)
891199c6
MW
6323 ("openldap" ,openldap)
6324 ("webkitgtk" ,webkitgtk)))
df217748
SB
6325 (synopsis "Store address books and calendars")
6326 (home-page "https://wiki.gnome.org/Apps/Evolution")
6327 (description
6328 "This package provides a unified backend for programs that work with
6329contacts, tasks, and calendar information. It was originally developed for
6330Evolution (hence the name), but is now used by other packages as well.")
6331 (license license:lgpl2.0)))
bd7dfafa
SB
6332
6333(define-public caribou
6334 (package
6335 (name "caribou")
fe964bb5 6336 (version "0.4.21")
bd7dfafa
SB
6337 (source (origin
6338 (method url-fetch)
6339 (uri (string-append "mirror://gnome/sources/" name "/"
6340 (version-major+minor version) "/"
6341 name "-" version ".tar.xz"))
6342 (sha256
6343 (base32
fe964bb5 6344 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6345 (build-system glib-or-gtk-build-system)
6346 (arguments
6347 '(#:phases
6348 (modify-phases %standard-phases
6349 (add-before
6350 'build 'pre-build
6351 (lambda* (#:key outputs #:allow-other-keys)
6352 (let ((out (assoc-ref outputs "out")))
6353 ;; Use absolute shared library path in Caribou-1.0.typelib.
6354 (substitute* "libcaribou/Makefile"
6355 (("--shared-library=libcaribou.so")
6356 (string-append "--shared-library="
6357 out "/lib/libcaribou.so")))
6358 #t)))
6359 (add-after 'install 'wrap-programs
6360 (lambda* (#:key outputs #:allow-other-keys)
6361 (let* ((out (assoc-ref outputs "out"))
6362 (python-path (getenv "PYTHONPATH"))
6363 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6364 (for-each
6365 (lambda (prog)
6366 (wrap-program prog
6367 `("PYTHONPATH" ":" prefix (,python-path))
6368 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6369 (list (string-append out "/bin/caribou-preferences")
6370 (string-append out "/libexec/antler-keyboard"))))
6371 #t)))))
6372 (native-inputs
6373 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6374 ("gobject-introspection" ,gobject-introspection)
6375 ("intltool" ,intltool)
6376 ("pkg-config" ,pkg-config)
9f7f5ba2 6377 ("python" ,python)
bd7dfafa
SB
6378 ("vala" ,vala)
6379 ("xsltproc" ,libxslt)))
6380 (propagated-inputs
6381 ;; caribou-1.0.pc refers to all these.
6382 `(("libgee" ,libgee)
6383 ("libxklavier" ,libxklavier)
6384 ("libxtst" ,libxtst)
6385 ("gtk+" ,gtk+)))
6386 (inputs
6387 `(("clutter" ,clutter)
6388 ("dconf" ,dconf)
6389 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6390 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6391 (synopsis "Text entry and UI navigation application")
6392 (home-page "https://wiki.gnome.org/Projects/Caribou")
6393 (description
6394 "Caribou is an input assistive technology intended for switch and pointer
6395users.")
6396 (license license:lgpl2.1)))
ba5dd105 6397
ba5dd105
SB
6398(define-public network-manager
6399 (package
6400 (name "network-manager")
6425d87a 6401 (version "1.18.4")
ba5dd105
SB
6402 (source (origin
6403 (method url-fetch)
6404 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6405 (version-major+minor version) "/"
6406 "NetworkManager-" version ".tar.xz"))
7d1861e2 6407 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6408 (sha256
6409 (base32
6425d87a 6410 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 6411 (modules '((guix build utils)))
fd070f35 6412 (snippet
02710a9b
RW
6413 '(begin
6414 (substitute* "src/devices/wwan/nm-modem-manager.c"
6415 (("systemd") "elogind"))
6416 #t))))
ba5dd105
SB
6417 (build-system gnu-build-system)
6418 (outputs '("out"
6419 "doc")) ; 8 MiB of gtk-doc HTML
6420 (arguments
6421 '(#:configure-flags
6422 (let ((out (assoc-ref %outputs "out"))
6423 (doc (assoc-ref %outputs "doc"))
6424 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6425 "/sbin/dhclient")))
02710a9b
RW
6426 (list "--with-libnm-glib" ; needed by network-manager-applet
6427 "--with-systemd-journal=no"
6428 "--with-session-tracking=elogind"
6429 "--with-suspend-resume=elogind"
fd070f35
CM
6430 "--with-consolekit=no"
6431 "--with-crypto=gnutls"
ba5dd105
SB
6432 "--disable-config-plugin-ibft"
6433 "--sysconfdir=/etc"
6434 "--localstatedir=/var"
6435 (string-append "--with-udev-dir="
6436 out "/lib/udev")
6437 (string-append "--with-dbus-sys-dir="
6438 out "/etc/dbus-1/system.d")
6439 (string-append "--with-html-dir="
6440 doc "/share/gtk-doc/html")
6441 (string-append "--with-dhclient=" dhclient)))
6442 #:phases
6443 (modify-phases %standard-phases
02710a9b
RW
6444 ;; This bare "ls" invocation breaks some tests.
6445 (add-after 'unpack 'patch-ls-invocation
6446 (lambda _
6447 (substitute* "build-aux/ltmain.sh"
6448 (("`ls -")
6449 (string-append "`" (which "ls") " -")))
6450 #t))
b4f59d87
AW
6451 (add-before 'configure 'pre-configure
6452 (lambda _
6453 ;; These tests try to test aspects of network-manager's
6454 ;; functionality within restricted containers, but they don't
6455 ;; cope with being already in the Guix build jail as that jail
6456 ;; lacks some features that they would like to proxy over (like
6457 ;; a /sys mount).
d04687dc
HG
6458 (substitute* '("Makefile.in")
6459 (("src/platform/tests/test-address-linux") " ")
6460 (("src/platform/tests/test-cleanup-linux") " ")
6461 (("src/platform/tests/test-link-linux") " ")
6462 (("src/platform/tests/test-route-linux") " ")
02710a9b 6463 (("src/devices/tests/test-acd") "")
d04687dc
HG
6464 (("src/devices/tests/test-arping") " ")
6465 (("src/devices/tests/test-lldp") " ")
6466 (("src/tests/test-route-manager-linux") " "))
b4f59d87 6467 #t))
45f80fce
RW
6468 (add-after 'unpack 'delete-failing-tests
6469 (lambda _
02710a9b 6470 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
6471 ;; ERROR:libnm-core/tests/test-general.c:5842:
6472 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6473 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6474 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6475 ;; ERROR:libnm-core/tests/test-setting.c:907:
6476 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
6477 (substitute* "Makefile.in"
6478 (("libnm-core/tests/test-general") " ")
6479 (("libnm-core/tests/test-keyfile") " ")
02710a9b 6480 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 6481 #t))
ba5dd105
SB
6482 (add-before 'check 'pre-check
6483 (lambda _
6484 ;; For the missing /etc/machine-id.
6485 (setenv "DBUS_FATAL_WARNINGS" "0")
6486 #t))
6487 (replace 'install
6488 (lambda _
45f80fce
RW
6489 (invoke "make"
6490 "sysconfdir=/tmp"
6491 "rundir=/tmp"
6492 "statedir=/tmp"
6493 "nmstatedir=/tmp/nm"
6494 "install")
6495 #t)))))
b93502d6
DC
6496 (propagated-inputs
6497 `(("glib" ,glib)))
ba5dd105
SB
6498 (native-inputs
6499 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6500 ("gobject-introspection" ,gobject-introspection)
d04687dc 6501 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6502 ("intltool" ,intltool)
d04687dc
HG
6503 ("libxslt" ,libxslt)
6504 ("libxml2" ,libxml2)
ba5dd105
SB
6505 ("pkg-config" ,pkg-config)
6506 ;; For testing.
6507 ("python" ,python-wrapper)
6508 ("python-dbus" ,python-dbus)
6509 ("python-pygobject" ,python-pygobject)))
6510 (inputs
02710a9b
RW
6511 `(("coreutils" ,coreutils) ; for ls
6512 ("curl" ,curl)
856ca567
KK
6513 ("cyrus-sasl" ,cyrus-sasl)
6514 ("dbus-glib" ,dbus-glib)
ba5dd105 6515 ("dnsmasq" ,dnsmasq)
856ca567 6516 ("eudev" ,eudev)
ba5dd105
SB
6517 ("gnutls" ,gnutls)
6518 ("iptables" ,iptables)
6519 ("isc-dhcp" ,isc-dhcp)
d04687dc 6520 ("jansson" ,jansson)
ba5dd105
SB
6521 ("libgcrypt" ,libgcrypt)
6522 ("libgudev" ,libgudev)
6523 ("libndp" ,libndp)
6524 ("libnl" ,libnl)
6525 ("libsoup" ,libsoup)
142bdcbc 6526 ("modem-manager" ,modem-manager)
c27e02bf 6527 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6528 ("polkit" ,polkit)
6529 ("ppp" ,ppp)
6530 ("readline" ,readline)
fd070f35
CM
6531 ("util-linux" ,util-linux)
6532 ("elogind" ,elogind)))
ba5dd105 6533 (synopsis "Network connection manager")
f032d0be 6534 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6535 (description
6536 "NetworkManager is a system network service that manages your network
6537devices and connections, attempting to keep active network connectivity when
6538available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6539devices, and provides VPN integration with a variety of different VPN
6540services.")
29d2f451
LC
6541 (license license:gpl2+)
6542 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6543
f2b96b3a
LC
6544(define-public network-manager-openvpn
6545 (package
6546 (name "network-manager-openvpn")
be1c4b07 6547 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6548 (version "1.8.10")
f2b96b3a
LC
6549 (source (origin
6550 (method url-fetch)
6551 (uri (string-append
6552 "mirror://gnome/sources/NetworkManager-openvpn/"
6553 (version-major+minor version)
6554 "/NetworkManager-openvpn-" version ".tar.xz"))
6555 (sha256
6556 (base32
7d87eede 6557 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6558 (build-system gnu-build-system)
6559 (arguments
633422b0
JL
6560 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6561 #:phases
6562 (modify-phases %standard-phases
6563 (add-after 'configure 'patch-path
6564 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6565 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6566 "/sbin/openvpn"))
6567 (modprobe (string-append (assoc-ref inputs "kmod")
6568 "/bin/modprobe"))
6569 (pretty-ovpn (string-append "\"" ovpn "\"")))
6570 (for-each
6571 (lambda (file)
6572 (substitute* file
6573 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6574 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6575 (("\"/sbin/openvpn\"") pretty-ovpn)
6576 (("/sbin/modprobe") modprobe)))
6577 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6578 #t)))))
f2b96b3a
LC
6579 (native-inputs
6580 `(("pkg-config" ,pkg-config)
6581 ("intltool" ,intltool)))
6582 (inputs
6583 `(("gtk+" ,gtk+)
633422b0 6584 ("kmod" ,kmod)
f2b96b3a
LC
6585 ("openvpn" ,openvpn)
6586 ("network-manager" ,network-manager)
6587 ("network-manager-applet" ,network-manager-applet) ;for libnma
6588 ("libsecret" ,libsecret)))
6589 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6590 (synopsis "OpenVPN plug-in for NetworkManager")
6591 (description
6592 "This extension of NetworkManager allows it to take care of connections
6593to virtual private networks (VPNs) via OpenVPN.")
6594 (license license:gpl2+)
6595 (properties `((upstream-name . "NetworkManager-openvpn")))))
6596
d376129f
JL
6597(define-public network-manager-vpnc
6598 (package
6599 (name "network-manager-vpnc")
6600 (version "1.2.6")
6601 (source (origin
6602 (method url-fetch)
6603 (uri (string-append
6604 "mirror://gnome/sources/NetworkManager-vpnc/"
6605 (version-major+minor version)
6606 "/NetworkManager-vpnc-" version ".tar.xz"))
6607 (sha256
6608 (base32
6609 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6610 (build-system gnu-build-system)
6611 (arguments
6612 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6613 #:phases
6614 (modify-phases %standard-phases
6615 (add-after 'configure 'patch-path
6616 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6617 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6618 "/sbin/vpnc"))
6619 (modprobe (string-append (assoc-ref inputs "kmod")
6620 "/bin/modprobe"))
6621 (pretty-ovpn (string-append "\"" vpnc "\"")))
6622 (substitute* "src/nm-vpnc-service.c"
6623 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6624 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6625 (("\"/sbin/vpnc\"") pretty-ovpn)
6626 (("/sbin/modprobe") modprobe)))
6627 #t)))))
6628 (native-inputs
6629 `(("pkg-config" ,pkg-config)
6630 ("intltool" ,intltool)))
6631 (inputs
6632 `(("gtk+" ,gtk+)
6633 ("kmod" ,kmod)
6634 ("vpnc" ,vpnc)
6635 ("network-manager" ,network-manager)
6636 ("network-manager-applet" ,network-manager-applet) ;for libnma
6637 ("libsecret" ,libsecret)))
6638 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6639 (synopsis "VPNC plug-in for NetworkManager")
6640 (description
6641 "Support for configuring virtual private networks based on VPNC.
6642Compatible with Cisco VPN concentrators configured to use IPsec.")
6643 (license license:gpl2+)
6644 (properties `((upstream-name . "NetworkManager-vpnc")))))
6645
8378c87a
EF
6646(define-public network-manager-openconnect
6647 (package
6648 (name "network-manager-openconnect")
6649 (version "1.2.6")
6650 (source (origin
6651 (method url-fetch)
6652 (uri (string-append
6653 "mirror://gnome/sources/NetworkManager-openconnect/"
6654 (version-major+minor version)
6655 "/NetworkManager-openconnect-" version ".tar.xz"))
6656 (sha256
6657 (base32
6658 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6659 (build-system gnu-build-system)
6660 (arguments
6661 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6662 #:phases
6663 (modify-phases %standard-phases
6664 (add-after 'configure 'patch-path
6665 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6666 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6667 "/sbin/openconnect"))
6668 (modprobe (string-append (assoc-ref inputs "kmod")
6669 "/bin/modprobe"))
6670 (pretty-ovpn (string-append "\"" openconnect "\"")))
6671 (substitute* "src/nm-openconnect-service.c"
6672 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6673 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6674 (("/sbin/modprobe") modprobe)))
6675 #t)))))
6676 (native-inputs
6677 `(("intltool" ,intltool)
6678 ("network-manager-applet" ,network-manager-applet) ;for libnma
6679 ("pkg-config" ,pkg-config)))
6680 (inputs
6681 `(("gcr" ,gcr)
6682 ("gtk+" ,gtk+)
6683 ("kmod" ,kmod)
6684 ("libsecret" ,libsecret)
6685 ("libxml2" ,libxml2)
6686 ("network-manager" ,network-manager)
6687 ("openconnect" ,openconnect)))
6688 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6689 (synopsis "OpenConnect plug-in for NetworkManager")
6690 (description
6691 "This extension of NetworkManager allows it to take care of connections
6692to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6693Cisco's AnyConnect SSL VPN.")
6694 (license license:gpl2+)
e52b9534
LC
6695 (properties `((upstream-name . "NetworkManager-openconnect")
6696
6697 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6698 ;; file refers to account "nm-openconnect". Specify it here
6699 ;; so that 'network-manager-service-type' creates it.
6700 (user-accounts . ("nm-openconnect"))))))
8378c87a 6701
e5e1df4d
DC
6702(define-public mobile-broadband-provider-info
6703 (package
6704 (name "mobile-broadband-provider-info")
310c89e3 6705 (version "20190116")
e5e1df4d
DC
6706 (source (origin
6707 (method url-fetch)
6708 (uri (string-append
6709 "mirror://gnome/sources/"
6710 "mobile-broadband-provider-info/" version "/"
6711 "mobile-broadband-provider-info-" version ".tar.xz"))
6712 (sha256
6713 (base32
310c89e3 6714 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6715 (build-system gnu-build-system)
6716 (arguments
310c89e3 6717 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6718 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6719 (synopsis "Database of broadband connection configuration")
6720 (description "Database of broadband connection configuration.")
6721 (license license:public-domain)))
6722
4d62a9d3
SB
6723(define-public network-manager-applet
6724 (package
6725 (name "network-manager-applet")
8fc3a337 6726 (version "1.8.24")
4d62a9d3
SB
6727 (source (origin
6728 (method url-fetch)
3df63444 6729 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6730 (version-major+minor version) "/"
3df63444 6731 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6732 (sha256
6733 (base32
8fc3a337 6734 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6735 (build-system meson-build-system)
6736 (arguments
be1c4b07
TGR
6737 '(#:configure-flags
6738 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6739 (list "-Dlibnm_gtk=true")
6740 #:glib-or-gtk? #t))
4d62a9d3
SB
6741 (native-inputs
6742 `(("intltool" ,intltool)
cd7f718e 6743 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6744 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6745 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6746 ("pkg-config" ,pkg-config)))
6747 (propagated-inputs
6748 ;; libnm-gtk.pc refers to all these.
6749 `(("dbus-glib" ,dbus-glib)
6750 ("gtk+" ,gtk+)
6751 ("network-manager" ,network-manager)))
6752 (inputs
cd7f718e
RW
6753 `(("gcr" ,gcr)
6754 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6755 ("libgudev" ,libgudev)
6756 ("libnotify" ,libnotify)
2116bfb3 6757 ("libsecret" ,libsecret)
240cee8a
KK
6758 ("libselinux" ,libselinux)
6759 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6760 ("modem-manager" ,modem-manager)
6761 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6762 (synopsis "Applet for managing network connections")
f032d0be 6763 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6764 (description
6765 "This package contains a systray applet for NetworkManager. It displays
6766the available networks and allows users to easily switch between them.")
6767 (license license:gpl2+)))
56196594
RW
6768
6769(define-public libxml++
6770 (package
6771 (name "libxml++")
8344a85e 6772 (version "3.0.1")
56196594
RW
6773 (source (origin
6774 (method url-fetch)
6775 (uri (string-append "mirror://gnome/sources/" name "/"
6776 (version-major+minor version) "/"
6777 name "-" version ".tar.xz"))
6778 (sha256
6779 (base32
8344a85e 6780 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6781 (build-system gnu-build-system)
6782 ;; libxml++-3.0.pc refers to all these.
6783 (propagated-inputs
6784 `(("libxml2" ,libxml2)
6785 ("glibmm" ,glibmm)))
6786 (native-inputs
6787 `(("perl" ,perl)
6788 ("pkg-config" ,pkg-config)))
6789 (home-page "http://libxmlplusplus.sourceforge.net/")
6790 (synopsis "C++ wrapper for XML parser library libxml2")
6791 (description
6792 "This package provides a C++ wrapper for the XML parser library
6793libxml2.")
6794 (license license:lgpl2.1+)))
df12f04a 6795
b61d9627
AW
6796(define-public libxml++-2
6797 (package
6798 (inherit libxml++)
6799 (name "libxml++")
6800 (version "2.40.1")
6801 (source (origin
6802 (method url-fetch)
6803 (uri (string-append "mirror://gnome/sources/" name "/"
6804 (version-major+minor version) "/"
6805 name "-" version ".tar.xz"))
6806 (sha256
6807 (base32
6808 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6809
df12f04a
SB
6810(define-public gdm
6811 (package
6812 (name "gdm")
bcca95dc 6813 (version "3.32.0")
df12f04a
SB
6814 (source (origin
6815 (method url-fetch)
6816 (uri (string-append "mirror://gnome/sources/" name "/"
6817 (version-major+minor version) "/"
6818 name "-" version ".tar.xz"))
6819 (sha256
6820 (base32
bcca95dc 6821 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6822 (build-system glib-or-gtk-build-system)
df12f04a
SB
6823 (arguments
6824 '(#:configure-flags
af37e6bb 6825 `("--without-plymouth"
957dbc0a 6826 "--disable-systemd-journal"
51bc8357
TS
6827
6828 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6829 ;; instead of having to replace it (i.e., stopping the mingetty
6830 ;; service for TTY 1 before starting GDM).
6831 "--with-initial-vt=7"
6832
89c86562
TS
6833 ;; Use '/etc/environment' for locale settings instead of the
6834 ;; systemd-specific '/etc/locale.conf'.
6835 "--with-lang-file=/etc/environment"
6836
b74ef0ba
RW
6837 ,(string-append "--with-udevdir="
6838 (assoc-ref %outputs "out") "/lib/udev")
6839
af37e6bb
AW
6840 "--localstatedir=/var"
6841 ,(string-append "--with-default-path="
6842 (string-join '("/run/setuid-programs"
6843 "/run/current-system/profile/bin"
6844 "/run/current-system/profile/sbin")
957dbc0a
AW
6845 ":"))
6846 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6847 ;; XDG_DATA_DIRS so that it finds its schemas.
6848 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6849 #:phases
6850 (modify-phases %standard-phases
6851 (add-before
6852 'configure 'pre-configure
e8c6e771 6853 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6854 ;; We don't have <systemd/sd-daemon.h>.
6855 (substitute* '("common/gdm-log.c"
6856 "daemon/gdm-server.c"
6857 "daemon/gdm-session-worker.c"
6858 "daemon/gdm-session-worker-job.c")
6859 (("#include <systemd/sd-daemon\\.h>") ""))
6860 ;; Use elogind for sd-login.
6861 (substitute* '("common/gdm-common.c"
6862 "daemon/gdm-manager.c"
6863 "libgdm/gdm-user-switching.c")
6864 (("#include <systemd/sd-login\\.h>")
6865 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6866 ;; Check for elogind.
6867 (substitute* '("configure")
6868 (("libsystemd")
6869 "libelogind"))
af37e6bb
AW
6870 ;; Look for system-installed sessions in
6871 ;; /run/current-system/profile/share.
6872 (substitute* '("libgdm/gdm-sessions.c"
6873 "daemon/gdm-session.c"
6874 "daemon/gdm-display.c"
6875 "daemon/gdm-launch-environment.c")
6876 (("DATADIR \"/x")
6877 "\"/run/current-system/profile/share/x")
6878 (("DATADIR \"/wayland")
6879 "\"/run/current-system/profile/share/wayland")
6880 (("DATADIR \"/gnome")
6881 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6882 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6883 "GDM_DBUS_DAEMON"
c9ff92b5 6884 "GDM_X_SERVER"
41fa9f18 6885 "GDM_X_SESSION"
c9ff92b5
TS
6886 ;; XXX: Remove this once GNOME Shell is
6887 ;; a dependency of GDM.
6888 "XDG_DATA_DIRS")))
6889 (substitute* "daemon/gdm-session.c"
6890 (("set_up_session_environment \\(self\\);")
6891 (apply string-append
6892 "set_up_session_environment (self);\n"
6893 (map (lambda (name)
6894 (string-append
6895 "gdm_session_set_environment_variable "
6896 "(self, \"" name "\","
6897 "g_getenv (\"" name "\"));\n"))
6898 propagate)))))
a430a350
TS
6899 ;; Find the configuration file using an environment variable.
6900 (substitute* '("common/gdm-settings.c")
e0e6756f 6901 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6902 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6903 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6904 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6905 ;; Use service-supplied path to X.
6906 (substitute* '("daemon/gdm-server.c")
6907 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6908 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6909 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6910 (("\"dbus-daemon\"")
6911 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6912 (("X_SERVER")
41fa9f18
TS
6913 "g_getenv (\"GDM_X_SERVER\")")
6914 (("GDMCONFDIR \"/Xsession\"")
6915 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6916 ;; Use an absolute path for GNOME Session.
6917 (substitute* "daemon/gdm-launch-environment.c"
6918 (("\"gnome-session\"")
6919 (string-append "\"" (assoc-ref inputs "gnome-session")
6920 "/bin/gnome-session\"")))
e8c6e771
TS
6921 ;; Do not automatically select the placeholder session.
6922 (substitute* "daemon/gdm-session.c"
6923 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6924 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6925 "(g_strcmp0(search_dirs[i], \""
6926 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6927 "\") == 0 && "
6928 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6929 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6930 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6931 #t))
8caa4589
TS
6932 ;; GDM requires that there be at least one desktop entry
6933 ;; file. This phase installs a hidden one that simply
6934 ;; fails. This enables users to use GDM with a
6935 ;; '~/.xsession' script with no other desktop entry files.
6936 ;; See <https://bugs.gnu.org/35068>.
6937 (add-after 'install 'install-placeholder-desktop-entry
6938 (lambda* (#:key inputs outputs #:allow-other-keys)
6939 (let* ((out (assoc-ref outputs "out"))
6940 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6941 (fail (string-append sessions "/fail.desktop")))
6942 (mkdir-p sessions)
6943 (with-output-to-file fail
6944 (lambda ()
6945 (for-each
6946 display
6947 '("[Desktop Entry]\n"
6948 "Encoding=UTF-8\n"
6949 "Type=Application\n"
6950 "Name=Fail\n"
6951 "Comment=This session fails immediately.\n"
6952 "NoDisplay=true\n"
6953 "Exec=false\n"))))
6954 #t)))
69544798
TS
6955 ;; GDM needs GNOME Session to run these applications. We link
6956 ;; their autostart files in `share/gdm/greeter/autostart'
6957 ;; because GDM explicitly tells GNOME Session to look there.
6958 ;;
6959 ;; XXX: GNOME Shell should be linked here too, but currently
6960 ;; GNOME Shell depends on GDM.
6961 (add-after 'install 'link-autostart-files
6962 (lambda* (#:key inputs outputs #:allow-other-keys)
6963 (let* ((out (assoc-ref outputs "out"))
6964 (autostart (string-append out "/share/gdm/"
6965 "greeter/autostart"))
6966 (settings (assoc-ref inputs "gnome-settings-daemon")))
6967 (mkdir-p autostart)
6968 (with-directory-excursion autostart
6969 (for-each (lambda (desktop)
6970 (symlink desktop (basename desktop)))
6971 (find-files (string-append settings "/etc/xdg"))))
6972 #t))))))
df12f04a
SB
6973 (native-inputs
6974 `(("dconf" ,dconf)
6975 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6976 ("gobject-introspection" ,gobject-introspection)
6977 ("intltool" ,intltool)
6978 ("itstool" ,itstool)
6979 ("pkg-config" ,pkg-config)
6980 ("xmllint" ,libxml2)))
6981 (inputs
6982 `(("accountsservice" ,accountsservice)
6983 ("check" ,check) ; for testing
6984 ("elogind" ,elogind)
def6d6b6 6985 ("gnome-session" ,gnome-session)
69544798 6986 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6987 ("gtk+" ,gtk+)
6988 ("iso-codes" ,iso-codes)
6989 ("libcanberra" ,libcanberra)
6990 ("linux-pam" ,linux-pam)))
6991 (synopsis "Display manager for GNOME")
f032d0be 6992 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6993 (description
6994 "GNOME Display Manager is a system service that is responsible for
6995providing graphical log-ins and managing local and remote displays.")
6996 (license license:gpl2+)))
8e1dd04f
SB
6997
6998(define-public libgtop
6999 (package
7000 (name "libgtop")
015fc036 7001 (version "2.40.0")
8e1dd04f
SB
7002 (source (origin
7003 (method url-fetch)
59487fc2 7004 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7005 (version-major+minor version) "/"
59487fc2 7006 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7007 (sha256
7008 (base32
015fc036 7009 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7010 (build-system gnu-build-system)
7011 (native-inputs
7012 `(("gobject-introspection" ,gobject-introspection)
7013 ("intltool" ,intltool)
7014 ("perl" ,perl)
7015 ("pkg-config" ,pkg-config)))
7016 (propagated-inputs
7017 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7018 (synopsis "Portable system access library")
7019 (home-page "https://www.gnome.org/")
7020 (description
7021 "LibGTop is a library to get system specific data such as CPU and memory
7022usage and information about running processes.")
7023 (license license:gpl2+)))
b96c4260
SB
7024
7025(define-public gnome-bluetooth
7026 (package
7027 (name "gnome-bluetooth")
723afae6 7028 (version "3.32.1")
b96c4260
SB
7029 (source (origin
7030 (method url-fetch)
7031 (uri (string-append "mirror://gnome/sources/" name "/"
7032 (version-major+minor version) "/"
7033 name "-" version ".tar.xz"))
7034 (sha256
7035 (base32
723afae6 7036 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 7037 (build-system meson-build-system)
b96c4260
SB
7038 (native-inputs
7039 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7040 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7041 ("gobject-introspection" ,gobject-introspection)
7042 ("intltool" ,intltool)
7043 ("pkg-config" ,pkg-config)
7044 ("xmllint" ,libxml2)))
7045 (propagated-inputs
7046 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7047 `(("glib" ,glib)
7048 ("gtk+" ,gtk+)))
b96c4260 7049 (inputs
723afae6
KK
7050 `(("eudev" ,eudev)
7051 ("libcanberra" ,libcanberra)
b96c4260
SB
7052 ("libnotify" ,libnotify)))
7053 (synopsis "GNOME Bluetooth subsystem")
7054 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7055 (description
7056 "This package contains tools for managing and manipulating Bluetooth
7057devices using the GNOME desktop.")
7058 (license license:lgpl2.1+)))
b645146f
SB
7059
7060(define-public gnome-control-center
7061 (package
7062 (name "gnome-control-center")
a6938bac 7063 (version "3.32.2")
b645146f
SB
7064 (source (origin
7065 (method url-fetch)
7066 (uri (string-append "mirror://gnome/sources/" name "/"
7067 (version-major+minor version) "/"
7068 name "-" version ".tar.xz"))
7069 (sha256
7070 (base32
a6938bac 7071 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 7072 (build-system meson-build-system)
b645146f 7073 (arguments
59dac026
RW
7074 '(#:glib-or-gtk? #t
7075 #:configure-flags
64c70430
KK
7076 (list "-Dcheese=false"
7077 (string-append "-Dgnome_session_libexecdir="
7078 (assoc-ref %build-inputs "gnome-session")
7079 "/libexec"))
59dac026 7080 #:phases
b645146f
SB
7081 (modify-phases %standard-phases
7082 (add-before 'configure 'patch-paths
7083 (lambda* (#:key inputs #:allow-other-keys)
7084 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7085 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7086 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7087 (nm-applet (assoc-ref inputs "network-manager-applet"))
7088 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7089 (substitute* "panels/datetime/tz.h"
7090 (("/usr/share/zoneinfo/zone.tab")
7091 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7092 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7093 (("/usr/share/locale")
7094 (string-append libc "/share/locale")))
1df38cfc
LC
7095 (substitute* "panels/region/cc-region-panel.c"
7096 (("\"gkbd-keyboard-display")
7097 (string-append "\"" libgnomekbd
7098 "/bin/gkbd-keyboard-display")))
341225ac
LC
7099 (substitute* '("panels/network/net-device-wifi.c"
7100 "panels/network/net-device.c"
7101 "panels/network/connection-editor/net-connection-editor.c")
7102 (("\"nm-connection-editor")
7103 (string-append "\"" nm-applet
7104 "/bin/nm-connection-editor")))
1acd107c
FP
7105 (substitute* '("panels/user-accounts/run-passwd.c")
7106 (("/usr/bin/passwd")
7107 "/run/setuid-programs/passwd"))
64c70430
KK
7108 (substitute* "panels/info/cc-info-overview-panel.c"
7109 (("DATADIR \"/gnome/gnome-version.xml\"")
7110 (string-append "\"" gnome-desktop
7111 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
7112 #t))))))
7113 (native-inputs
7114 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 7115 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
7116 ("intltool" ,intltool)
7117 ("pkg-config" ,pkg-config)
a6938bac
KK
7118 ("xsltproc" ,libxslt)
7119 ;; For tests
7120 ("hicolor-icon-theme" ,hicolor-icon-theme)
7121 ("python-dbusmock" ,python-dbusmock)
7122 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7123 (inputs
7124 `(("accountsservice" ,accountsservice)
7125 ("clutter-gtk" ,clutter-gtk)
7126 ("colord-gtk" ,colord-gtk)
7127 ("cups" ,cups)
7128 ("dconf" ,dconf)
7129 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7130 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7131 ("gnome-bluetooth" ,gnome-bluetooth)
7132 ("gnome-desktop" ,gnome-desktop)
7133 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7134 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7135 ("gnome-session" ,gnome-session)
b645146f
SB
7136 ("gnome-settings-daemon" ,gnome-settings-daemon)
7137 ("grilo" ,grilo)
a6938bac 7138 ("gsound" ,gsound)
b645146f
SB
7139 ("ibus" ,ibus)
7140 ("libcanberra" ,libcanberra)
1df38cfc 7141 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7142 ("libgudev" ,libgudev)
7143 ("libgtop" ,libgtop)
7144 ("libpwquality" ,libpwquality)
982c0b36 7145 ("libsecret" ,libsecret)
b645146f
SB
7146 ("libsoup" ,libsoup)
7147 ("libxml2" ,libxml2)
7148 ("libwacom" ,libwacom)
7149 ("mesa" ,mesa)
7150 ("mit-krb5" ,mit-krb5)
7151 ("modem-manager" ,modem-manager)
7152 ("network-manager-applet" ,network-manager-applet)
7153 ("polkit" ,polkit)
7154 ("pulseaudio" ,pulseaudio)
7155 ("smbclient" ,samba)
7156 ("tzdata" ,tzdata)
982c0b36 7157 ("udisks" ,udisks)
b645146f
SB
7158 ("upower" ,upower)))
7159 (synopsis "Utilities to configure the GNOME desktop")
7160 (home-page "https://www.gnome.org/")
7161 (description
7162 "This package contains configuration applets for the GNOME desktop,
7163allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7164properties, sound setup, desktop theme and background, user interface
7165properties, screen resolution, and other GNOME parameters.")
7166 (license license:gpl2+)))
a4df5756
SB
7167
7168(define-public gnome-shell
7169 (package
7170 (name "gnome-shell")
d5e615ca 7171 (version "3.32.2")
a4df5756
SB
7172 (source (origin
7173 (method url-fetch)
7174 (uri (string-append "mirror://gnome/sources/" name "/"
7175 (version-major+minor version) "/"
7176 name "-" version ".tar.xz"))
7177 (sha256
7178 (base32
d5e615ca 7179 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
7180 (patches (search-patches "gnome-shell-theme.patch"))
7181 (modules '((guix build utils)))
7182 (snippet
7183 #~(begin
a76d0f03
LC
7184 ;; Copy images for use on the GDM log-in screen.
7185 (copy-file #$(file-append %artwork-repository
7186 "/slim/0.x/background.png")
7187 "data/theme/guix-background.png")
45fef894
LC
7188 (copy-file #$(file-append %artwork-repository
7189 "/logo/Guix-horizontal-white.svg")
7190 "data/theme/guix-logo.svg")
a76d0f03 7191 #t))))
2b0c755d 7192 (build-system meson-build-system)
a4df5756 7193 (arguments
08185081
MB
7194 `(#:glib-or-gtk? #t
7195 #:disallowed-references ((,glib "bin")
11e1df56
LC
7196 ,inkscape ,libxslt
7197 ,ruby-sass)
2b0c755d
RW
7198 #:configure-flags
7199 (list "-Dsystemd=false"
7200 ;; Otherwise, the RUNPATH will lack the final path component.
7201 (string-append "-Dc_link_args=-Wl,-rpath="
7202 (assoc-ref %outputs "out")
7203 "/lib/gnome-shell"))
11e1df56 7204
08185081 7205 #:modules ((guix build meson-build-system)
11e1df56
LC
7206 (guix build utils)
7207 (srfi srfi-1))
7208
2b0c755d 7209 #:phases
a4df5756 7210 (modify-phases %standard-phases
2b0c755d 7211 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7212 (lambda* (#:key outputs #:allow-other-keys)
7213 (let* ((out (assoc-ref outputs "out"))
7214 (keysdir (string-append
7215 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7216 (substitute* "meson.build"
7217 (("keysdir =.*")
7218 (string-append "keysdir = '" keysdir "'\n")))
7219 #t)))
ebfe259f
MB
7220 (add-before 'configure 'convert-logo-to-png
7221 (lambda* (#:key inputs #:allow-other-keys)
7222 ;; Convert the logo from SVG to PNG.
7223 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7224 "data/theme/guix-logo.svg")))
ba00235a 7225 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7226 (lambda* (#:key inputs #:allow-other-keys)
7227 (substitute* "js/misc/ibusManager.js"
7228 (("'ibus-daemon'")
7229 (string-append "'" (assoc-ref inputs "ibus")
7230 "/bin/ibus-daemon'")))
d6fda4d3
LC
7231 (substitute* "js/ui/status/keyboard.js"
7232 (("'gkbd-keyboard-display'")
7233 (string-append "'" (assoc-ref inputs "libgnomekbd")
7234 "/bin/gkbd-keyboard-display'")))
2472cdec 7235 #t))
2b0c755d
RW
7236 (add-before 'check 'pre-check
7237 (lambda* (#:key inputs #:allow-other-keys)
7238 ;; Tests require a running X server.
7239 (system "Xvfb :1 &")
7240 (setenv "DISPLAY" ":1")
7241 #t))
7242 (add-after 'install 'wrap-programs
7243 (lambda* (#:key inputs outputs #:allow-other-keys)
7244 (let ((out (assoc-ref outputs "out"))
7245 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7246 (python-path (getenv "PYTHONPATH")))
7247 (wrap-program (string-append out "/bin/gnome-shell")
7248 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7249 ;; FIXME: gnome-shell loads these libraries with unqualified
7250 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7251 ;; alternative might be to patch gnome-shell.
7252 `("LD_LIBRARY_PATH" ":" prefix
7253 ,(map (lambda (pkg)
7254 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7255 '("gdk-pixbuf"
7256 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7257 (for-each
7258 (lambda (prog)
7259 (wrap-program (string-append out "/bin/" prog)
7260 `("PYTHONPATH" ":" prefix (,python-path))
7261 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7262 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7263 #t)))
11e1df56
LC
7264 (replace 'glib-or-gtk-wrap
7265 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7266 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7267 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7268 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7269 ;; phase. Fix that since we don't need these.
7270 (wrap #:inputs (fold alist-delete inputs
7271 '("inkscape" "intltool" "glib:bin"))
7272 #:outputs outputs)))))))
a4df5756
SB
7273 (native-inputs
7274 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7275 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7276 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7277 ("inkscape" ,inkscape)
a4df5756
SB
7278 ("intltool" ,intltool)
7279 ("pkg-config" ,pkg-config)
7280 ("python" ,python)
2b0c755d
RW
7281 ("ruby-sass" ,ruby-sass)
7282 ("sassc" ,sassc)
a76d0f03 7283 ("xsltproc" ,libxslt)
2b0c755d 7284 ;; For tests
0b4504f6 7285 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7286 (inputs
7287 `(("accountsservice" ,accountsservice)
7288 ("caribou" ,caribou)
7289 ("docbook-xsl" ,docbook-xsl)
7290 ("evolution-data-server" ,evolution-data-server)
7291 ("gcr" ,gcr)
7292 ("gdm" ,gdm)
c5db31d4 7293 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
7294 ("gjs" ,gjs)
7295 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7296 ("gnome-desktop" ,gnome-desktop)
7297 ("gnome-settings-daemon" ,gnome-settings-daemon)
7298 ("gst-plugins-base" ,gst-plugins-base)
7299 ("ibus" ,ibus)
7300 ("libcanberra" ,libcanberra)
7301 ("libcroco" ,libcroco)
d6fda4d3 7302 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7303 ("libgweather" ,libgweather)
7304 ("libsoup" ,libsoup)
7305 ("mesa-headers" ,mesa-headers)
7306 ("mutter" ,mutter)
7307 ("network-manager-applet" ,network-manager-applet)
7308 ("polkit" ,polkit)
7309 ("pulseaudio" ,pulseaudio)
7310 ("python-pygobject" ,python-pygobject)
7311 ("startup-notification" ,startup-notification)
7312 ("telepathy-logger" ,telepathy-logger)
7313 ("upower" ,upower)
30e760f0
MB
7314 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7315 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7316 ("librsvg" ,librsvg)
2b0c755d 7317 ("geoclue" ,geoclue)))
a4df5756
SB
7318 (synopsis "Desktop shell for GNOME")
7319 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7320 (description
7321 "GNOME Shell provides core user interface functions for the GNOME desktop,
7322like switching to windows and launching applications.")
7323 (license license:gpl2+)))
c3f29bc9
RS
7324
7325(define-public gtk-vnc
7326 (package
7327 (name "gtk-vnc")
965ff023 7328 (version "0.9.0")
c3f29bc9
RS
7329 (source
7330 (origin
7331 (method url-fetch)
7332 (uri (string-append "mirror://gnome/sources/" name "/"
7333 (version-major+minor version) "/"
7334 name "-" version ".tar.xz"))
7335 (sha256
7336 (base32
965ff023 7337 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7338 (build-system gnu-build-system)
7339 (arguments
7340 '(#:configure-flags '("--with-gtk=3.0")))
7341 (propagated-inputs
7342 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7343 (inputs
7344 `(("cyrus-sasl" ,cyrus-sasl)
7345 ("gnutls" ,gnutls)
7346 ("libgcrypt" ,libgcrypt)
7347 ("pulseaudio" ,pulseaudio)))
7348 (native-inputs
7349 `(("glib:bin" ,glib "bin")
7350 ("gobject-introspection" ,gobject-introspection)
7351 ("intltool" ,intltool)
7352 ("pkg-config" ,pkg-config)
2f17e939 7353 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7354 ("vala" ,vala)))
7355 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7356 (synopsis "VNC viewer widget for GTK+")
7357 (description
7358 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7359applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7360GTK-VNC implements client side RFB protocol and authentication extensions such
7361as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7362 (license license:lgpl2.1+)))
8b877545 7363
dc69fe18
MW
7364(define-public gnome-autoar
7365 (package
7366 (name "gnome-autoar")
c7da8510 7367 (version "0.2.3")
dc69fe18
MW
7368 (source (origin
7369 (method url-fetch)
7370 (uri (string-append "mirror://gnome/sources/" name "/"
7371 (version-major+minor version) "/"
7372 name "-" version ".tar.xz"))
7373 (sha256
7374 (base32
c7da8510 7375 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
7376 (build-system glib-or-gtk-build-system)
7377 (native-inputs
7378 `(("gnome-common" ,gnome-common)
7379 ("gobject-introspection" ,gobject-introspection)
7380 ("pkg-config" ,pkg-config)))
7381 (propagated-inputs
7382 `(("libarchive" ,libarchive))) ; XXX document why
7383 (inputs
0a6e9e13 7384 `(("gtk+" ,gtk+)))
dc69fe18
MW
7385 (synopsis "Archives integration support for GNOME")
7386 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7387 (description
7388 "GNOME Autoar is a library which makes creating and extracting archives
7389easy, safe, and automatic.")
7390 (license license:lgpl2.1+)))
7391
b64e217f
MW
7392(define-public tracker
7393 (package
7394 (name "tracker")
5ada561c 7395 (version "2.2.2")
b64e217f
MW
7396 (source (origin
7397 (method url-fetch)
b5b0fd23 7398 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7399 (version-major+minor version) "/"
b5b0fd23 7400 "tracker-" version ".tar.xz"))
b64e217f
MW
7401 (sha256
7402 (base32
5ada561c
KK
7403 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7404 (build-system meson-build-system)
c8bdf589 7405 (arguments
5ada561c
KK
7406 `(#:glib-or-gtk? #t
7407 #:configure-flags
7408 ;; Otherwise, the RUNPATH will lack the final path component.
7409 (list (string-append "-Dc_link_args=-Wl,-rpath="
7410 (assoc-ref %outputs "out") "/lib:"
7411 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7412 #:phases
c8bdf589
RW
7413 (modify-phases %standard-phases
7414 (add-after 'unpack 'disable-broken-tests
7415 (lambda _
c8bdf589
RW
7416 ;; These fail because the SPARQL backend could not be loaded.
7417 ;; That's because /etc/machine-id is missing, but
7418 ;; DBUS_FATAL_WARNINGS does not help here.
5ada561c
KK
7419 (substitute* "tests/libtracker-sparql/meson.build"
7420 (("'sparql',") ""))
7421 (substitute* "tests/tracker-steroids/meson.build"
7422 (("test\\(.*") ""))
c8bdf589
RW
7423 #t))
7424 ;; Two tests fail if LANG is not set.
7425 (add-before 'check 'pre-check
7426 (lambda _
7427 (setenv "LANG" "en_US.UTF-8")
7428 ;; For the missing /etc/machine-id.
7429 (setenv "DBUS_FATAL_WARNINGS" "0")
7430 #t)))))
b64e217f 7431 (native-inputs
5ada561c
KK
7432 `(("glib:bin" ,glib "bin")
7433 ("gnome-common" ,gnome-common)
b64e217f 7434 ("gobject-introspection" ,gobject-introspection)
5ada561c 7435 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7436 ("intltool" ,intltool)
7437 ("pkg-config" ,pkg-config)
7438 ("vala" ,vala)))
7439 (inputs
7440 `(("gtk+" ,gtk+)
7441 ("dbus" ,dbus)
44ed6284 7442 ("sqlite" ,sqlite)
c8bdf589 7443 ("python" ,python)
b64e217f 7444 ("poppler" ,poppler)
b64e217f
MW
7445 ("libpng" ,libpng)
7446 ("libtiff" ,libtiff)
b64e217f 7447 ("zlib" ,zlib)
b64e217f 7448 ("libxml2" ,libxml2)
b64e217f 7449 ("libunistring" ,libunistring)
0ef48cd9 7450 ("json-glib" ,json-glib)
b64e217f 7451 ("openjpeg" ,openjpeg-1)
b64e217f 7452 ("libseccomp" ,libseccomp)
0ef48cd9 7453 ("libsoup" ,libsoup)
5ada561c
KK
7454 ("libuuid" ,util-linux)
7455 ("network-manager" ,network-manager)))
b64e217f
MW
7456 (synopsis "Metadata database, indexer and search tool")
7457 (home-page "https://wiki.gnome.org/Projects/Tracker")
7458 (description
7459 "Tracker is an advanced framework for first class objects with associated
7460metadata and tags. It provides a one stop solution for all metadata, tags,
7461shared object databases, search tools and indexing.")
7462 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7463 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7464 (license (list license:gpl2+
7465 license:lgpl2.1+
7466 license:lgpl2.0+))))
7467
03be9874
KK
7468(define-public tracker-miners
7469 (package
7470 (name "tracker-miners")
7471 (version "2.2.2")
7472 (source (origin
7473 (method url-fetch)
7474 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7475 (version-major+minor version)
7476 "/tracker-miners-" version ".tar.xz"))
7477 (sha256
7478 (base32
7479 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7480 (build-system meson-build-system)
7481 (arguments
7482 `(#:glib-or-gtk? #t
7483 #:configure-flags
7484 (list "-Dminer_rss=false" ; libgrss is required.
7485 ;; Ensure the RUNPATH contains all installed library locations.
7486 (string-append "-Dc_link_args=-Wl,-rpath="
7487 (assoc-ref %outputs "out")
7488 "/lib/tracker-miners-2.0")
7489 ;; TODO: Enable functional tests. Currently, the following error
7490 ;; appears:
7491 ;; Exception: The functional tests require DConf to be the default
7492 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7493 "-Dfunctional_tests=false")))
7494 (native-inputs
7495 `(("dbus" ,dbus)
7496 ("intltool" ,intltool)
7497 ("glib:bin" ,glib "bin")
7498 ("gobject-introspection" ,gobject-introspection)
7499 ("pkg-config" ,pkg-config)
7500 ("python-pygobject" ,python-pygobject)))
7501 (inputs
7502 `(("exempi" ,exempi)
7503 ("ffmpeg" ,ffmpeg)
7504 ("flac" ,flac)
7505 ("giflib" ,giflib)
7506 ("glib" ,glib)
7507 ("gstreamer" ,gstreamer)
7508 ("icu4c" ,icu4c)
7509 ("libcue" ,libcue)
7510 ("libexif" ,libexif)
7511 ("libgsf" ,libgsf)
7512 ("libgxps" ,libgxps)
7513 ("libiptcdata" ,libiptcdata)
7514 ("libjpeg" ,libjpeg)
7515 ("libosinfo" ,libosinfo)
7516 ("libpng" ,libpng)
7517 ("libseccomp" ,libseccomp)
7518 ("libtiff" ,libtiff)
7519 ("libvorbis" ,libvorbis)
7520 ("libxml2" ,libxml2)
7521 ("poppler" ,poppler)
7522 ("taglib" ,taglib)
7523 ("totem-pl-parser" ,totem-pl-parser)
7524 ("tracker" ,tracker)
7525 ("upower" ,upower)
7526 ("zlib" ,zlib)))
7527 (synopsis "Metadata database, indexer and search tool")
7528 (home-page "https://wiki.gnome.org/Projects/Tracker")
7529 (description
7530 "Tracker is an advanced framework for first class objects with associated
7531metadata and tags. It provides a one stop solution for all metadata, tags,
7532shared object databases, search tools and indexing.")
7533 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7534 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7535 (license (list license:gpl2+
7536 license:lgpl2.1+
7537 license:lgpl2.0+))))
7538
8b877545
RS
7539(define-public nautilus
7540 (package
7541 (name "nautilus")
d682c599 7542 (version "3.32.3")
8b877545
RS
7543 (source (origin
7544 (method url-fetch)
7545 (uri (string-append "mirror://gnome/sources/" name "/"
7546 (version-major+minor version) "/"
7547 name "-" version ".tar.xz"))
7548 (sha256
7549 (base32
d682c599 7550 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7551 (build-system meson-build-system)
8b877545 7552 (arguments
35e2d0cf 7553 '(#:glib-or-gtk? #t
8b877545
RS
7554 ;; XXX: FAIL: check-nautilus
7555 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7556 #:tests? #f))
7557 (native-inputs
35e2d0cf
R
7558 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7559 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7560 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7561 ("gobject-introspection" ,gobject-introspection)
7562 ("intltool" ,intltool)
7563 ("pkg-config" ,pkg-config)))
8b877545 7564 (inputs
8b877545 7565 `(("dconf" ,dconf)
caf6c363 7566 ("gexiv2" ,gexiv2)
dd05e731 7567 ("gvfs" ,gvfs)
8b877545
RS
7568 ("exempi" ,exempi)
7569 ("gnome-desktop" ,gnome-desktop)
09d88905 7570 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7571 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7572 ("libseccomp" ,libseccomp)
35e2d0cf 7573 ("libselinux" ,libselinux)
09d88905 7574 ("tracker" ,tracker)
3cafb9d4 7575 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7576 ;; XXX: gtk+ is required by libnautilus-extension.pc
7577 ;;
7578 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7579 ;; package. See:
7580 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7581 ("gtk+" ,gtk+)
8b877545
RS
7582 ("libexif" ,libexif)
7583 ("libxml2" ,libxml2)))
7584 (synopsis "File manager for GNOME")
7585 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7586 (description
7587 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7588design and behaviour, giving the user a simple way to navigate and manage its
7589files.")
7590 (license license:gpl2+)))
3c697ffd
JR
7591
7592(define-public baobab
7593 (package
7594 (name "baobab")
e0c5f20c 7595 (version "3.32.0")
3c697ffd
JR
7596 (source (origin
7597 (method url-fetch)
7598 (uri (string-append
7599 "mirror://gnome/sources/" name "/"
7600 (version-major+minor version) "/"
7601 name "-" version ".tar.xz"))
7602 (sha256
7603 (base32
e0c5f20c 7604 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7605 (build-system meson-build-system)
7606 (arguments
7607 '(#:glib-or-gtk? #t))
3c697ffd
JR
7608 (native-inputs
7609 `(("intltool" ,intltool)
7610 ("pkg-config" ,pkg-config)
d233d373
RJ
7611 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7612 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7613 ("itstool" ,itstool)
7614 ("xmllint" ,libxml2)
7615 ("glib" ,glib "bin")
7616 ("vala" ,vala)))
7617 (inputs
7618 `(("gtk+" ,gtk+)))
7619 (synopsis "Disk usage analyzer for GNOME")
7620 (description
7621 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7622usage in the GNOME desktop environment. It can easily scan device volumes or
7623a specific user-requested directory branch (local or remote). Once the scan
7624is complete it provides a graphical representation of each selected folder.")
7625 (home-page "https://wiki.gnome.org/Apps/Baobab")
7626 (license license:gpl2+)))
dc050251 7627
fdba447c
RS
7628(define-public gnome-backgrounds
7629 (package
7630 (name "gnome-backgrounds")
e04e8a8c 7631 (version "3.32.0")
fdba447c
RS
7632 (source
7633 (origin
7634 (method url-fetch)
7635 (uri (string-append "mirror://gnome/sources/" name "/"
7636 (version-major+minor version) "/"
7637 name "-" version ".tar.xz"))
7638 (sha256
7639 (base32
e04e8a8c 7640 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7641 (build-system meson-build-system)
fdba447c
RS
7642 (native-inputs
7643 `(("intltool" ,intltool)))
e04e8a8c 7644 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7645 (synopsis "Background images for the GNOME desktop")
7646 (description
7647 "GNOME backgrounds package contains a collection of graphics files which
7648can be used as backgrounds in the GNOME Desktop environment. Additionally,
7649the package creates the proper framework and directory structure so that you
7650can add your own files to the collection.")
7651 (license (list license:gpl2+
7652 license:cc-by2.0
7653 license:cc-by-sa2.0
7654 license:cc-by-sa3.0))))
7655
b784b1a9
RS
7656(define-public gnome-screenshot
7657 (package
7658 (name "gnome-screenshot")
6acf4033 7659 (version "3.32.0")
b784b1a9
RS
7660 (source
7661 (origin
7662 (method url-fetch)
7663 (uri (string-append "mirror://gnome/sources/" name "/"
7664 (version-major+minor version) "/"
7665 name "-" version ".tar.xz"))
7666 (sha256
7667 (base32
6acf4033 7668 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7669 (build-system meson-build-system)
b784b1a9
RS
7670 (native-inputs
7671 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7672 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7673 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7674 ("intltool" ,intltool)
8356aefa 7675 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7676 ("pkg-config" ,pkg-config)))
7677 (inputs
7678 `(("gtk+" ,gtk+)
7679 ("libcanberra" ,libcanberra)
7680 ("libx11" ,libx11)
7681 ("libxext" ,libxext)))
676e7cb4 7682 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7683 (synopsis "Take pictures of your screen")
7684 (description
7685 "GNOME Screenshot is a utility used for taking screenshots of the entire
7686screen, a window or a user defined area of the screen, with optional
7687beautifying border effects.")
7688 (license license:gpl2+)))
7689
66d59111
RS
7690(define-public dconf-editor
7691 (package
7692 (name "dconf-editor")
66261451 7693 (version "3.32.0")
66d59111
RS
7694 (source
7695 (origin
7696 (method url-fetch)
7697 (uri (string-append "mirror://gnome/sources/" name "/"
7698 (version-major+minor version) "/"
7699 name "-" version ".tar.xz"))
7700 (sha256
7701 (base32
66261451 7702 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7703 (build-system meson-build-system)
86f2124b
LC
7704 (arguments
7705 '(#:phases (modify-phases %standard-phases
7706 (add-before 'configure 'set-glib-minimum-version
7707 (lambda _
7708 ;; Change the minimum required GLib version so that
7709 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7710 ;; do that, it complains that "55" is not an even
7711 ;; number. See <https://bugs.gnu.org/37503>.
7712 (substitute* "editor/meson.build"
7713 (("2\\.55\\.1") "2.60.0"))
7714 #t)))))
66d59111
RS
7715 (native-inputs
7716 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7717 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7718 ("intltool" ,intltool)
294ff39d
RW
7719 ("pkg-config" ,pkg-config)
7720 ("vala" ,vala)))
66d59111
RS
7721 (inputs
7722 `(("dconf" ,dconf)
7723 ("gtk+" ,gtk+)
7724 ("libxml2" ,libxml2)))
7725 (home-page "https://git.gnome.org/browse/dconf-editor")
7726 (synopsis "Graphical editor for GNOME's dconf configuration system")
7727 (description
7728 "Dconf-editor is a graphical tool for browsing and editing the dconf
7729configuration system for GNOME. It allows users to configure desktop
7730software that do not provide their own configuration interface.")
7731 (license license:lgpl2.1+)))
7732
96d36f38
AW
7733(define-public gnome-default-applications
7734 (package
7735 (name "gnome-default-applications")
7736 (version "0")
7737 (build-system trivial-build-system)
7738 (source #f)
7739 (propagated-inputs
8ad4f0aa
LC
7740 `(("nautilus" ,nautilus)
7741 ("evince" ,evince)))
96d36f38
AW
7742 (arguments
7743 `(#:modules ((guix build utils))
7744 #:builder
7745 (begin
7746 (use-modules (guix build utils))
7747 (let* ((out (assoc-ref %outputs "out"))
7748 (apps (string-append out "/share/applications")))
7749 (mkdir-p apps)
7750 (call-with-output-file (string-append apps "/defaults.list")
7751 (lambda (port)
7752 (format port "[Default Applications]\n")
8ad4f0aa
LC
7753 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7754 (format port "application/pdf=evince.desktop\n")
7755 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7756 #t))))
7757 (synopsis "Default MIME type associations for the GNOME desktop")
7758 (description
7759 "Given many installed packages which might handle a given MIME type, a
7760user running the GNOME desktop probably has some preferences: for example,
7761that folders be opened by default by the Nautilus file manager, not the Baobab
7762disk usage analyzer. This package establishes that set of default MIME type
7763associations for GNOME.")
7764 (license license:gpl3+)
7765 (home-page #f)))
7766
3f1ed953
RG
7767(define-public libgovirt
7768 (package
7769 (name "libgovirt")
7770 (version "0.3.6")
7771 (source (origin
7772 (method url-fetch)
7773 (uri (string-append "mirror://gnome/sources/" name "/"
7774 (version-major+minor version) "/"
7775 name "-" version ".tar.xz"))
7776 (sha256
7777 (base32
7778 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7779 (build-system glib-or-gtk-build-system)
7780 (native-inputs
7781 `(("gettext" ,gettext-minimal)
7782 ("glib:bin" ,glib "bin")
7783 ("gobject-introspection" ,gobject-introspection)
7784 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7785 ("gtk+:bin" ,gtk+ "bin")
7786 ("pkg-config" ,pkg-config)))
7787 (inputs
7788 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7789 ("librest" ,rest)))
7790 (synopsis "GoVirt Library")
7791 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7792 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7793 (license license:gpl2+)))
7794
8672e5e9
RG
7795(define-public gnome-weather
7796 (package
7797 (name "gnome-weather")
7798 (version "3.34.0")
7799 (source (origin
7800 (method url-fetch)
7801 (uri (string-append "mirror://gnome/sources/" name "/"
7802 (version-major+minor version) "/"
7803 name "-" version ".tar.xz"))
7804 (sha256
7805 (base32
7806 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7807 (build-system meson-build-system)
7808 (native-inputs
7809 `(("gettext" ,gettext-minimal)
7810 ("glib:bin" ,glib "bin")
7811 ("gobject-introspection" ,gobject-introspection)
7812 ("gtk+:bin" ,gtk+ "bin")
7813 ("pkg-config" ,pkg-config)))
7814 (inputs
7815 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7816 ("appstream-glib" ,appstream-glib)
7817 ("geoclue" ,geoclue)
7818 ("gdk-pixbuf" ,gdk-pixbuf)
7819 ("gjs" ,gjs)
7820 ("gnome-desktop" ,gnome-desktop)
7821 ("libgweather" ,libgweather)))
7822 (synopsis "Weather monitoring for GNOME desktop")
7823 (description "GNOME Weather is a small application that allows you to
7824monitor the current weather conditions for your city, or anywhere in the
7825world.")
7826 (home-page "https://wiki.gnome.org/Apps/Weather")
7827 (license license:gpl2+)))
7828
dc050251
SB
7829(define-public gnome
7830 (package
7831 (name "gnome")
7832 (version (package-version gnome-shell))
7833 (source #f)
7834 (build-system trivial-build-system)
e3cfef22 7835 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7836 (propagated-inputs
8d8c6bff 7837 ;; TODO: Add or remove packages according to:
a8cda7f5 7838 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7839 `(
8d8c6bff 7840 ;; GNOME-Core-OS-Services
7922b6f7 7841 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7842 ("network-manager" ,network-manager)
7843 ("packagekit" ,packagekit)
7844 ("upower" ,upower)
7845 ;; GNOME-Core-Shell
7846 ("adwaita-icon-theme" ,adwaita-icon-theme)
7847 ("gdm" ,gdm)
7848 ("glib-networking" ,glib-networking)
7849 ("gnome-backgrounds" ,gnome-backgrounds)
7850 ("gnome-bluetooth" ,gnome-bluetooth)
7851 ("gnome-control-center" ,gnome-control-center)
7852 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7853 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8d8c6bff 7854 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7855 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7856 ("gnome-session" ,gnome-session)
7857 ("gnome-settings-daemon" ,gnome-settings-daemon)
7858 ("gnome-shell-extensions" ,gnome-shell-extensions)
7859 ("gnome-shell" ,gnome-shell)
7860 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7861 ("gnome-user-docs" ,gnome-user-docs)
a8cda7f5 7862 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7863 ("gvfs" ,gvfs)
7864 ("mutter" ,mutter)
7865 ("orca" ,orca)
7866 ;; GNOME-Core-Utilities
7867 ("baobab" ,baobab)
7868 ("cheese" ,cheese)
7869 ("eog" ,eog)
7870 ("epiphany" ,epiphany)
7871 ("evince" ,evince)
7872 ("file-roller" ,file-roller)
7873 ("gedit" ,gedit)
7874 ("gnome-calculator" ,gnome-calculator)
7875 ("gnome-calendar" ,gnome-calendar)
7876 ("gnome-characters" ,gnome-characters)
7877 ("gnome-clocks" ,gnome-clocks)
7878 ("gnome-contacts" ,gnome-contacts)
7879 ("gnome-disk-utility" ,gnome-disk-utility)
7880 ("gnome-font-viewer" ,gnome-font-viewer)
7881 ("gnome-maps" ,gnome-maps)
7882 ("gnome-screenshot" ,gnome-screenshot)
7883 ("gnome-system-monitor" ,gnome-system-monitor)
7884 ("gnome-terminal" ,gnome-terminal)
7885 ("nautilus" ,nautilus)
7886 ("simple-scan" ,simple-scan)
7887 ("totem" ,totem)
7922b6f7
RG
7888 ("yelp" ,yelp)
7889 ;; Others
7890 ("hicolor-icon-theme" ,hicolor-icon-theme)
7891 ("gnome-online-accounts" ,gnome-online-accounts)))
fe4e698d 7892 (synopsis "The GNU desktop environment")
dc050251
SB
7893 (home-page "https://www.gnome.org/")
7894 (description
fe4e698d
LC
7895 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7896applications for browsing the web, editing text and images, creating
7897documents and diagrams, playing media, scanning, and much more.")
dc050251 7898 (license license:gpl2+)))
4a526711
DT
7899
7900(define-public byzanz
7901 ;; The last stable release of Byzanz was in 2011, but there have been many
7902 ;; useful commits made to the Byzanz repository since then that it would be
7903 ;; silly to use such an old release.
7904 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7905 (package
7906 (name "byzanz")
7907 (version (string-append "0.2-1." (string-take commit 7)))
7908 (source (origin
7909 (method git-fetch)
7910 (uri (git-reference
5f13bf09 7911 (url "https://git.gnome.org/browse/byzanz")
4a526711 7912 (commit commit)))
5a6527e4 7913 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7914 (sha256
7915 (base32
7916 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7917 (build-system glib-or-gtk-build-system)
7918 (arguments
7919 '(#:phases
7920 (modify-phases %standard-phases
189be331 7921 (replace 'bootstrap
4a526711
DT
7922 (lambda _
7923 ;; The build system cleverly detects that we're not building from
7924 ;; a release tarball and turns on -Werror for GCC.
7925 ;; Unsurprisingly, there is a warning during compilation that
7926 ;; causes the build to fail unnecessarily, so we remove the flag.
7927 (substitute* '("configure.ac")
7928 (("-Werror") ""))
7929 ;; The autogen.sh script in gnome-common will run ./configure
7930 ;; by default, which is problematic because source shebangs
7931 ;; have not yet been patched.
7932 (setenv "NOCONFIGURE" "t")
7933 (zero? (system* "sh" "autogen.sh")))))))
7934 (native-inputs
7935 `(("autoconf" ,autoconf)
7936 ("automake" ,automake)
7937 ("gnome-common" ,gnome-common)
7938 ("intltool" ,intltool)
7939 ("libtool" ,libtool)
7940 ("pkg-config" ,pkg-config)
7941 ("which" ,which)))
7942 (inputs
7943 `(("glib" ,glib)
7944 ("gstreamer" ,gstreamer)
7945 ("gst-plugins-base" ,gst-plugins-base)
7946 ("gtk+" ,gtk+)))
7947 (synopsis "Desktop recording program")
7948 (description "Byzanz is a simple desktop recording program with a
7949command-line interface. It can record part or all of an X display for a
7950specified duration and save it as a GIF encoded animated image file.")
7951 (home-page "https://git.gnome.org/browse/byzanz")
7952 (license license:gpl2+))))
3a9a4c51 7953
0ec171ec
MS
7954(define-public gsound
7955 (package
7956 (name "gsound")
7957 (version "1.0.2")
7958 (source (origin
7959 (method url-fetch)
7960 (uri (string-append "mirror://gnome/sources/" name "/"
7961 (version-major+minor version) "/"
7962 name "-" version ".tar.xz"))
7963 (sha256
7964 (base32
7965 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7966 (build-system glib-or-gtk-build-system)
7967 (native-inputs
7968 `(("pkg-config" ,pkg-config)
7969 ("gobject-introspection" ,gobject-introspection)
7970 ("vala" ,vala)))
7971 (inputs
7972 `(("glib" ,glib)
7973 ("libcanberra" ,libcanberra)))
7974 (home-page "https://wiki.gnome.org/Projects/GSound")
7975 (synopsis "GObject wrapper for libcanberra")
7976 (description
7977 "GSound is a small library for playing system sounds. It's designed to be
7978used via GObject Introspection, and is a thin wrapper around the libcanberra C
7979library.")
7980 (license license:lgpl2.1+)))
7981
3a9a4c51
RS
7982(define-public libzapojit
7983 (package
7984 (name "libzapojit")
7985 (version "0.0.3")
7986 (source (origin
7987 (method url-fetch)
7988 (uri (string-append "mirror://gnome/sources/" name "/"
7989 (version-major+minor version) "/"
7990 name "-" version ".tar.xz"))
7991 (sha256
7992 (base32
7993 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7994 (build-system gnu-build-system)
7995 (native-inputs
7996 `(("gobject-introspection" ,gobject-introspection)
7997 ("intltool" ,intltool)
7998 ("pkg-config" ,pkg-config)))
7999 (inputs
14c297fd 8000 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8001 ("json-glib" ,json-glib)
8002 ("rest" ,rest)))
8003 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8004 (synopsis "Library for accessing SkyDrive and Hotmail")
8005 (description
8006 "Libzapojit is a GLib-based library for accessing online service APIs of
8007Microsoft SkyDrive and Hotmail, using their REST protocols.")
8008 (license license:lgpl2.1+)))
9365ee1c 8009
60e2a9ae
MS
8010(define-public gnome-clocks
8011 (package
8012 (name "gnome-clocks")
c76d0dbc 8013 (version "3.32.0")
60e2a9ae
MS
8014 (source (origin
8015 (method url-fetch)
8016 (uri (string-append "mirror://gnome/sources/" name "/"
8017 (version-major+minor version) "/"
8018 name "-" version ".tar.xz"))
8019 (sha256
8020 (base32
c76d0dbc 8021 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
8022 (build-system meson-build-system)
8023 (arguments
8024 '(#:glib-or-gtk? #t))
8025 (native-inputs
8026 `(("vala" ,vala)
8027 ("pkg-config" ,pkg-config)
8028 ("glib" ,glib "bin") ; for glib-compile-resources
8029 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8030 ("desktop-file-utils" ,desktop-file-utils)
8031 ("gettext" ,gettext-minimal)
8032 ("itstool" ,itstool)))
8033 (inputs
8034 `(("glib" ,glib)
8035 ("gtk+" ,gtk+)
8036 ("gsound" ,gsound)
8037 ("geoclue" ,geoclue)
8038 ("geocode-glib" ,geocode-glib)
8039 ("libgweather" ,libgweather)
8040 ("gnome-desktop" ,gnome-desktop)))
8041 (home-page "https://wiki.gnome.org/Apps/Clocks")
8042 (synopsis "GNOME's clock application")
8043 (description
8044 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8045desktop. It supports world clock, stop watch, alarms, and count down timer.")
8046 (license license:gpl3+)))
8047
3c474897
KY
8048(define-public gnome-calendar
8049 (package
8050 (name "gnome-calendar")
339b59bf 8051 (version "3.32.2")
3c474897
KY
8052 (source (origin
8053 (method url-fetch)
8054 (uri (string-append "mirror://gnome/sources/" name "/"
8055 (version-major+minor version) "/"
8056 name "-" version ".tar.xz"))
8057 (sha256
8058 (base32
339b59bf 8059 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
8060 (build-system meson-build-system)
8061 (arguments
8062 '(#:glib-or-gtk? #t
8063 ;; gnome-calendar has to be installed before the tests can be run
8064 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8065 #:tests? #f))
3c474897 8066 (native-inputs
a49d3e37
MS
8067 `(("gettext" ,gettext-minimal)
8068 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8069 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
8070 ("pkg-config" ,pkg-config)))
8071 (inputs
a49d3e37 8072 `(("evolution-data-server" ,evolution-data-server)
14c297fd 8073 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8074 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8075 ("libdazzle" ,libdazzle)
b63c06f1 8076 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8077 ("libgweather" ,libgweather)
8078 ("geoclue" ,geoclue)))
3c474897
KY
8079 (home-page "https://wiki.gnome.org/Apps/Calendar")
8080 (synopsis "GNOME's calendar application")
8081 (description
8082 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8083desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8084 (license license:gpl3+)))
8085
57b14665
MS
8086(define-public gnome-todo
8087 (package
8088 (name "gnome-todo")
9f3c6c88 8089 (version "3.28.1")
57b14665
MS
8090 (source (origin
8091 (method url-fetch)
8092 (uri (string-append "mirror://gnome/sources/" name "/"
8093 (version-major+minor version) "/"
8094 name "-" version ".tar.xz"))
8095 (sha256
8096 (base32
9f3c6c88 8097 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
8098 (build-system meson-build-system)
8099 (arguments
8100 '(#:glib-or-gtk? #t
8101 #:phases (modify-phases %standard-phases
8102 (add-after
8103 'install 'wrap-gnome-todo
8104 (lambda* (#:key inputs outputs #:allow-other-keys)
8105 (let ((out (assoc-ref outputs "out"))
8106 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8107 (python-path (getenv "PYTHONPATH")))
8108 (wrap-program (string-append out "/bin/gnome-todo")
8109 ;; XXX: gi plugins are broken.
8110 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8111 ;; For plugins.
8112 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8113 `("PYTHONPATH" ":" prefix (,python-path))))
8114 #t)))))
8115 (native-inputs
8116 `(("gettext" ,gettext-minimal)
8117 ("gobject-introspection" ,gobject-introspection)
8118 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8119 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8120 ("pkg-config" ,pkg-config)))
8121 (inputs
8122 `(("rest" ,rest) ; For Todoist plugin
8123 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8124 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8125 ("libical" ,libical)
8126 ("libpeas" ,libpeas)
8127 ("python-pygobject" ,python-pygobject)
8128 ("evolution-data-server" ,evolution-data-server)
14c297fd 8129 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8130 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8131 (home-page "https://wiki.gnome.org/Apps/Todo")
8132 (synopsis "GNOME's ToDo Application")
8133 (description
8134 "GNOME To Do is a simplistic personal task manager designed to perfectly
8135fit the GNOME desktop.")
8136 (license license:gpl3+)))
8137
ab179eaf
SB
8138(define-public gnome-dictionary
8139 (package
8140 (name "gnome-dictionary")
cf81ddef 8141 (version "3.26.1")
ab179eaf
SB
8142 (source (origin
8143 (method url-fetch)
8144 (uri (string-append "mirror://gnome/sources/" name "/"
8145 (version-major+minor version) "/"
8146 name "-" version ".tar.xz"))
8147 (sha256
8148 (base32
cf81ddef
LC
8149 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8150 (build-system meson-build-system)
2776b5d5
MB
8151 (arguments '(#:glib-or-gtk? #t
8152 #:phases (modify-phases %standard-phases
8153 (add-after 'unpack 'patch-install-script
8154 (lambda _
8155 ;; This script attempts to compile glib schemas
8156 ;; and create an empty MIME database. We do
8157 ;; that elsewhere, so prevent it from running.
8158 (substitute* "build-aux/post-install.sh"
8159 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8160 #t)))))
ab179eaf
SB
8161 (native-inputs
8162 `(("glib:bin" ,glib "bin")
8163 ("gobject-introspection" ,gobject-introspection)
8164 ("intltool" ,intltool)
8165 ("itstool" ,itstool)
8166 ("pkg-config" ,pkg-config)
8167 ("xmllint" ,libxml2)))
8168 (inputs
8169 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8170 ("gtk+" ,gtk+)))
8171 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8172 (synopsis "Look up words in dictionary sources")
8173 (description
8174 "GNOME Dictionary can look for the definition or translation of a word in
8175existing databases over the internet.")
8176 (license license:gpl3+)))
8177
d13f3a03 8178(define-public gnome-tweaks
9365ee1c 8179 (package
d13f3a03 8180 (name "gnome-tweaks")
652af676 8181 (version "3.32.0")
9365ee1c
JN
8182 (source (origin
8183 (method url-fetch)
d13f3a03 8184 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8185 (version-major+minor version) "/"
d13f3a03
RW
8186 "gnome-tweaks-" version ".tar.xz"))
8187 (patches
8188 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8189 (sha256
8190 (base32
652af676 8191 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 8192 (build-system meson-build-system)
9365ee1c 8193 (arguments
d13f3a03
RW
8194 `(#:glib-or-gtk? #t
8195 #:configure-flags '("-Dlocalstatedir=/tmp"
8196 "-Dsysconfdir=/tmp")
9365ee1c 8197 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8198 ,@%meson-build-system-modules)
8199 #:phases
8200 (modify-phases %standard-phases
8201 (add-after 'install 'wrap
8202 (@@ (guix build python-build-system) wrap))
8203 (add-after 'wrap 'wrap-gi-typelib
8204 (lambda* (#:key inputs outputs #:allow-other-keys)
8205 (let ((out (assoc-ref outputs "out"))
8206 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8207 (wrap-program (string-append out "/bin/gnome-tweaks")
8208 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8209 #t)))))
9365ee1c 8210 (native-inputs
c7fc414e
RH
8211 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8212 ("intltool" ,intltool)
9365ee1c
JN
8213 ("pkg-config" ,pkg-config)))
8214 (inputs
c7fc414e
RH
8215 `(("gnome-desktop" ,gnome-desktop)
8216 ("gtk+" ,gtk+)
9365ee1c
JN
8217 ("gobject-introspection" ,gobject-introspection)
8218 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
8219 ("libnotify" ,libnotify)
8220 ("libsoup" ,libsoup)
8221 ("nautilus" ,nautilus)
8222 ("python" ,python)
8223 ("python-pygobject" ,python-pygobject)))
9365ee1c 8224 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8225 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8226 (description
d13f3a03 8227 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8228GNOME 3. This includes things like the fonts used in user interface elements,
8229alternative user interface themes, changes in window management behavior,
8230GNOME Shell appearance and extension, etc.")
8231 (license license:gpl3+)))
813f814a 8232
d13f3a03
RW
8233;; This package has been renamed by upstream.
8234(define-public gnome-tweak-tool
8235 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8236
32ac717c
DT
8237(define-public gnome-shell-extensions
8238 (package
8239 (name "gnome-shell-extensions")
ae4c05e0 8240 (version "3.32.1")
32ac717c
DT
8241 (source (origin
8242 (method url-fetch)
8243 (uri (string-append "mirror://gnome/sources/" name "/"
8244 (version-major+minor version) "/"
8245 name "-" version ".tar.xz"))
8246 (sha256
8247 (base32
ae4c05e0 8248 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 8249 (build-system meson-build-system)
32ac717c 8250 (arguments
100f625b 8251 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8252 (native-inputs
c9ea8873
LP
8253 `(("glib:bin" ,glib "bin")
8254 ("intltool" ,intltool)
32ac717c
DT
8255 ("pkg-config" ,pkg-config)))
8256 (propagated-inputs
c9ea8873 8257 `(("glib" ,glib)))
32ac717c
DT
8258 (synopsis "Extensions for GNOME Shell")
8259 (description "GNOME Shell extensions modify and extend GNOME Shell
8260functionality and behavior.")
8261 (home-page "https://extensions.gnome.org/")
8262 (license license:gpl3+)))
8263
813f814a
DT
8264(define-public arc-theme
8265 (package
8266 (name "arc-theme")
37781323 8267 (version "20190917")
813f814a 8268 (source (origin
a18f8eaf
BH
8269 (method git-fetch)
8270 (uri (git-reference
8271 (url "https://github.com/NicoHood/arc-theme.git")
8272 (commit version)))
8273 (file-name (git-file-name name version))
813f814a
DT
8274 (sha256
8275 (base32
37781323 8276 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8277 (build-system gnu-build-system)
d88884fa
EF
8278 (arguments
8279 '(#:phases
8280 (modify-phases %standard-phases
8281 ;; autogen.sh calls configure at the end of the script.
8282 (replace 'bootstrap
8283 (lambda _ (invoke "autoreconf" "-vfi"))))))
813f814a
DT
8284 (native-inputs
8285 `(("autoconf" ,autoconf)
8286 ("automake" ,automake)
a18f8eaf
BH
8287 ("glib" ,glib "bin") ; for glib-compile-resources
8288 ("gnome-shell" ,gnome-shell)
8289 ("gtk+" ,gtk+)
8290 ("inkscape" ,inkscape)
8291 ("optipng" ,optipng)
8292 ("pkg-config" ,pkg-config)
8293 ("sassc" ,sassc)))
813f814a
DT
8294 (synopsis "A flat GTK+ theme with transparent elements")
8295 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
82962, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8297like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8298 (home-page "https://github.com/horst3180/arc-theme")
8299 ;; No "or later" language found.
a18f8eaf 8300 (license license:gpl3+)))
9987c57c 8301
d935e6a1 8302(define-public faba-icon-theme
9987c57c 8303 (package
d935e6a1 8304 (name "faba-icon-theme")
2eee7ee3 8305 (version "4.3")
d935e6a1
BT
8306 (source
8307 (origin
757e4027
TGR
8308 (method git-fetch)
8309 (uri (git-reference
8310 (url "https://github.com/snwh/faba-icon-theme.git")
8311 (commit (string-append "v" version))))
8312 (file-name (git-file-name name version))
d935e6a1 8313 (sha256
757e4027 8314 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8315 (build-system meson-build-system)
9987c57c 8316 (arguments
82da291a 8317 `(#:phases
9987c57c 8318 (modify-phases %standard-phases
82da291a 8319 (add-before 'configure 'disable-post-install
9987c57c 8320 (lambda _
82da291a
JL
8321 (substitute* "meson.build"
8322 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8323 (native-inputs
8324 `(("autoconf" ,autoconf)
8325 ("automake" ,automake)))
d935e6a1
BT
8326 (synopsis "Faba icon theme")
8327 (description
8328 "Faba is a minimal icon set used as a basis for other themes such as
8329Moka")
8330 (home-page "https://snwh.org/moka")
8331 (license (list license:lgpl3+
8332 license:cc-by-sa4.0))))
8333
9987c57c
DT
8334(define-public moka-icon-theme
8335 (package
8b0e4177 8336 (inherit faba-icon-theme)
9987c57c 8337 (name "moka-icon-theme")
105a3625 8338 (version "5.4.0")
8c3f2170
TGR
8339 (source
8340 (origin
8341 (method git-fetch)
8342 (uri (git-reference
8343 (url "https://github.com/snwh/moka-icon-theme.git")
8344 (commit (string-append "v" version))))
8345 (file-name (git-file-name name version))
8346 (sha256
8347 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8348 (propagated-inputs
8349 ;; Moka is based on Faba by using it as a fallback icon set instead of
8350 ;; bundling it, so we need to add it as a propagated input.
8351 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8352 (synopsis "Moka icon theme")
8353 (description "Moka is a stylized desktop icon set, designed to be clear,
8354simple and consistent.")
fedde43b
BT
8355 (license (list license:gpl3+
8356 license:cc-by-sa4.0))))
6fd8f8d6
DT
8357
8358(define-public arc-icon-theme
8359 (package
8360 (name "arc-icon-theme")
c4180240 8361 (version "20161122")
bbf66cbf
TGR
8362 (source
8363 (origin
8364 (method git-fetch)
8365 (uri (git-reference
8366 (url "https://github.com/horst3180/arc-icon-theme.git")
8367 (commit version)))
8368 (file-name (git-file-name name version))
8369 (sha256
8370 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8371 (build-system gnu-build-system)
9e1ede95
JL
8372 (arguments
8373 `(#:phases
8374 (modify-phases %standard-phases
8375 (add-after 'unpack 'disable-configure-during-bootstrap
8376 (lambda _
8377 (substitute* "autogen.sh"
8378 (("^\"\\$srcdir/configure\".*") ""))
8379 #t)))))
6fd8f8d6
DT
8380 (native-inputs
8381 `(("autoconf" ,autoconf)
8382 ("automake" ,automake)))
8383 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8384 (propagated-inputs
8385 `(("moka-icon-theme" ,moka-icon-theme)))
8386 (synopsis "Arc icon theme")
8387 (description "The Arc icon theme provides a set of icons matching the
8388style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8389the Moka icon theme.")
8390 (home-page "https://github.com/horst3180/arc-icon-theme")
8391 (license license:gpl3+)))
6064a4e8
LF
8392
8393(define-public folks
8394 (package
8395 (name "folks")
d23495fa 8396 (version "0.11.4")
6064a4e8
LF
8397 (source (origin
8398 (method url-fetch)
8399 (uri (string-append
e5f4796e 8400 "mirror://gnome/sources/folks/"
6064a4e8 8401 (version-major+minor version) "/"
e5f4796e 8402 "folks-" version ".tar.xz"))
6064a4e8
LF
8403 (sha256
8404 (base32
d23495fa 8405 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
8406 (build-system glib-or-gtk-build-system)
8407 (inputs
8408 `(("bdb" ,bdb)
8409 ("dbus-glib" ,dbus-glib)
8410 ("evolution-data-server" ,evolution-data-server)
8411 ("glib" ,glib)
8412 ("libgee" ,libgee)
8413 ("telepathy-glib" ,telepathy-glib)))
8414 (native-inputs
8415 `(("gobject-introspection" ,gobject-introspection)
8416 ("intltool" ,intltool)
8417 ("pkg-config" ,pkg-config)
8418 ("vala" ,vala)))
8419 (synopsis "Library to aggregate data about people")
8420 (description "Libfolks is a library that aggregates information about people
8421from multiple sources (e.g., Telepathy connection managers for IM contacts,
8422Evolution Data Server for local contacts, libsocialweb for web service contacts,
8423etc.) to create metacontacts. It's written in Vala, which generates C code when
8424compiled.")
8425 (home-page "https://wiki.gnome.org/Projects/Folks")
8426 (license license:lgpl2.1+)))
01ea778f
LF
8427
8428(define-public gfbgraph
8429 (package
8430 (name "gfbgraph")
8431 (version "0.2.3")
8432 (source (origin
8433 (method url-fetch)
8434 (uri (string-append
237d4cf7 8435 "mirror://gnome/sources/gfbgraph/"
01ea778f 8436 (version-major+minor version) "/"
237d4cf7 8437 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8438 (sha256
8439 (base32
8440 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8441 (build-system glib-or-gtk-build-system)
8442 (arguments
8443 `(#:tests? #f ; Tests appear to require the network.
8444 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8445 #:configure-flags '("--disable-gtk-doc"
8446 "--disable-static"
8447 "--enable-introspection")))
8448 (native-inputs
8449 `(("pkg-config" ,pkg-config)
8450 ("gobject-introspection" ,gobject-introspection)))
8451 (inputs
8452 `(("json-glib" ,json-glib)
14c297fd 8453 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8454 ("rest" ,rest)))
8455 (synopsis "GLib/GObject wrapper for the Facebook API")
8456 (description "This library allows you to use the Facebook API from
8457GLib/GObject code.")
8458 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8459 (license license:lgpl2.1+)))
3920868c 8460
8461(define-public libgnomekbd
8462 (package
8463 (name "libgnomekbd")
70f2b0f9 8464 (version "3.26.1")
3920868c 8465 (source (origin
8466 (method url-fetch)
d47fa82d 8467 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8468 (version-major+minor version) "/"
d47fa82d 8469 "libgnomekbd-" version ".tar.xz"))
3920868c 8470 (sha256
8471 (base32
70f2b0f9 8472 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8473 (build-system gnu-build-system)
8474 (native-inputs
8475 `(("pkg-config" ,pkg-config)
8476 ("glib" ,glib "bin")
8477 ("intltool" ,intltool)))
8478 (propagated-inputs
8479 ;; Referred to in .h files and .pc.
8480 `(("glib" ,glib)
8481 ("gtk+" ,gtk+)
8482 ("libxklavier" ,libxklavier)))
8483 (home-page "https://www.gnome.org")
8484 (synopsis "GNOME keyboard configuration library")
8485 (description
8486 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8487environment, which can notably display keyboard layouts.")
8488 (license license:lgpl2.0+)))
85327d0d 8489
8490;;; This package is no longer maintained:
8491;;; https://wiki.gnome.org/Attic/LibUnique
8492;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8493;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8494(define-public libunique
8495 (package
8496 (name "libunique")
8497 (version "3.0.2")
8498 (source (origin
8499 (method url-fetch)
8500 (uri (string-append "mirror://gnome/sources/" name "/"
8501 (version-major+minor version) "/"
8502 name "-" version ".tar.xz"))
8503 (sha256
8504 (base32
8505 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8506 (build-system glib-or-gtk-build-system)
8507 (arguments
8508 `(#:configure-flags '("--disable-static"
8509 "--disable-dbus" ; use gdbus
8510 "--enable-introspection")))
8511 (native-inputs
8512 `(("pkg-config" ,pkg-config)
8513 ("gobject-introspection" ,gobject-introspection)
8514 ("glib:bin" ,glib "bin")
8515 ("gtk-doc" ,gtk-doc)))
8516 (propagated-inputs
8517 ;; Referred to in .h files and .pc.
8518 `(("gtk+" ,gtk+)))
8519 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8520 (synopsis "Library for writing single instance applications")
8521 (description
8522 "Libunique is a library for writing single instance applications. If you
8523launch a single instance application twice, the second instance will either just
8524quit or will send a message to the running instance. Libunique makes it easy to
8525write this kind of application, by providing a base class, taking care of all
8526the IPC machinery needed to send messages to a running instance, and also
8527handling the startup notification side.")
8528 (license license:lgpl2.1+)))
54021cd8
RS
8529
8530(define-public gnome-calculator
8531 (package
8532 (name "gnome-calculator")
07ace641 8533 (version "3.32.2")
54021cd8
RS
8534 (source
8535 (origin
8536 (method url-fetch)
8537 (uri (string-append "mirror://gnome/sources/" name "/"
8538 (version-major+minor version) "/"
8539 name "-" version ".tar.xz"))
8540 (sha256
8541 (base32
07ace641 8542 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
2d475910
RW
8543 (build-system meson-build-system)
8544 (arguments '(#:glib-or-gtk? #t))
54021cd8
RS
8545 (native-inputs
8546 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8547 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8
RS
8548 ("intltool" ,intltool)
8549 ("itstool" ,itstool)
2d475910 8550 ("vala" ,vala)
54021cd8
RS
8551 ("pkg-config" ,pkg-config)))
8552 (inputs
112e9083 8553 `(("glib" ,glib)
07ace641 8554 ("gtksourceview" ,gtksourceview)
54021cd8 8555 ("libsoup" ,libsoup)
112e9083 8556 ("libxml2" ,libxml2)
2c2da7ec 8557 ("mpc" ,mpc)
54021cd8
RS
8558 ("mpfr" ,mpfr)))
8559 (home-page "https://wiki.gnome.org/Apps/Calculator")
8560 (synopsis "Desktop calculator")
8561 (description
8562 "Calculator is an application that solves mathematical equations and
8563is suitable as a default application in a Desktop environment.")
8564 (license license:gpl3)))
0bd69759
RS
8565
8566(define-public xpad
8567 (package
8568 (name "xpad")
c85626bb 8569 (version "5.1.0")
0bd69759
RS
8570 (source
8571 (origin
8572 (method url-fetch)
08fda9c6
R
8573 (uri (string-append "https://launchpad.net/xpad/trunk/"
8574 version "/+download/"
0bd69759
RS
8575 name "-" version ".tar.bz2"))
8576 (sha256
8577 (base32
c85626bb 8578 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8579 (build-system gnu-build-system)
8580 (native-inputs
08fda9c6
R
8581 `(("autoconf" ,autoconf)
8582 ("automake" ,automake)
8583 ("gtk+:bin" ,gtk+ "bin")
8584 ("intltool" ,intltool)
0bd69759
RS
8585 ("pkg-config" ,pkg-config)))
8586 (inputs
c72647fb 8587 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8588 ("libsm" ,libsm)))
8589 (home-page "https://wiki.gnome.org/Apps/Xpad")
8590 (synopsis "Virtual sticky note")
8591 (description
8592 "Xpad is a sticky note that strives to be simple, fault tolerant,
8593and customizable. Xpad consists of independent pad windows, each is
8594basically a text box in which notes can be written.")
8595 (license license:gpl3+)))
3ad7dce1
RS
8596
8597(define-public gucharmap
c60063ea
RW
8598 (let ((unicode-files
8599 '(("Blocks.txt"
1f8b5515 8600 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8601 ("DerivedAge.txt"
1f8b5515 8602 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8603 ("NamesList.txt"
1f8b5515 8604 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8605 ("Scripts.txt"
1f8b5515 8606 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8607 ("UnicodeData.txt"
1f8b5515 8608 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8609 ("Unihan.zip"
1f8b5515 8610 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8611 (package
8612 (name "gucharmap")
1f8b5515 8613 (version "12.0.1")
c60063ea
RW
8614 (source
8615 (origin
8616 (method url-fetch)
8617 (uri (string-append "mirror://gnome/sources/" name "/"
8618 (version-major+minor version) "/"
8619 name "-" version ".tar.xz"))
8620 (sha256
8621 (base32
1f8b5515 8622 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8623 (build-system glib-or-gtk-build-system)
8624 (arguments
8625 `(#:modules ((ice-9 match)
8626 (guix build glib-or-gtk-build-system)
8627 (guix build utils))
8628 #:configure-flags
8629 (list "--with-unicode-data=../unicode-data")
8630 #:phases
8631 (modify-phases %standard-phases
8632 (add-after 'unpack 'prepare-unicode-data
8633 (lambda* (#:key inputs #:allow-other-keys)
8634 (mkdir-p "../unicode-data")
8635 (with-directory-excursion "../unicode-data"
8636 (for-each (match-lambda
8637 ((file _)
8638 (install-file (assoc-ref inputs file) ".")))
8639 ',unicode-files))
8640 #t)))))
8641 (native-inputs
8642 `(("desktop-file-utils" ,desktop-file-utils)
8643 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8644 ("gobject-introspection" ,gobject-introspection)
8645 ("intltool" ,intltool)
8646 ("itstool" ,itstool)
8647 ("pkg-config" ,pkg-config)
8648 ,@(map (match-lambda
8649 ((file hash)
8650 `(,file
8651 ,(origin
8652 (method url-fetch)
8653 (uri (string-append
1f8b5515 8654 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8655 file))
8656 (sha256 (base32 hash))))))
8657 unicode-files)
8658 ("unzip" ,unzip)))
8659 (inputs
8660 `(("gtk+" ,gtk+)
8661 ("xmllint" ,libxml2)))
8662 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8663 (synopsis "Unicode character picker and font browser")
8664 (description
8665 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8666characters and categories for the installed fonts, and to examine their
8667detailed properties. It is an easy way to find the character you might
8668only know by its Unicode name or code point.")
c60063ea 8669 (license license:gpl3+))))
04ce840a
RS
8670
8671(define-public bluefish
8672 (package
8673 (name "bluefish")
ea8afaf3 8674 (version "2.2.10")
04ce840a
RS
8675 (source
8676 (origin
8677 (method url-fetch)
8678 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8679 name "-" version ".tar.gz"))
8680 (sha256
8681 (base32
ea8afaf3 8682 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
04ce840a
RS
8683 (build-system gnu-build-system)
8684 (native-inputs
8685 `(("desktop-file-utils" ,desktop-file-utils)
8686 ("intltool" ,intltool)
8687 ("pkg-config" ,pkg-config)))
8688 (inputs
8689 `(("enchant" ,enchant)
8690 ("gtk+" ,gtk+)
8691 ("python" ,python-2)
8692 ("xmllint" ,libxml2)
8693 ("gucharmap" ,gucharmap)))
8694 (home-page "http://bluefish.openoffice.nl")
8695 (synopsis "Web development studio")
8696 (description
8697 "Bluefish is an editor targeted towards programmers and web developers,
8698with many options to write web sites, scripts and other code.
8699Bluefish supports many programming and markup languages.")
8700 (license license:gpl3+)))
1f6a73ee
RS
8701
8702(define-public gnome-system-monitor
8703 (package
8704 (name "gnome-system-monitor")
083cffaf 8705 (version "3.32.1")
1f6a73ee
RS
8706 (source
8707 (origin
8708 (method url-fetch)
8709 (uri (string-append "mirror://gnome/sources/" name "/"
8710 (version-major+minor version) "/"
8711 name "-" version ".tar.xz"))
8712 (sha256
8713 (base32
083cffaf 8714 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8715 (build-system meson-build-system)
8716 (arguments
8717 '(#:glib-or-gtk? #t
8718 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8719 (native-inputs
8720 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8721 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8722 ("intltool" ,intltool)
8723 ("itstool" ,itstool)
8724 ("libgtop" ,libgtop)
4985d9aa 8725 ("polkit" ,polkit)
1f6a73ee
RS
8726 ("pkg-config" ,pkg-config)))
8727 (inputs
8728 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8729 ("gtk+" ,gtk+)
8730 ("gtkmm" ,gtkmm)
8731 ("librsvg" ,librsvg)
4985d9aa
RW
8732 ("libxml2" ,libxml2)
8733 ("libwnck" ,libwnck)))
1f6a73ee
RS
8734 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8735 (synopsis "Process viewer and system resource monitor for GNOME")
8736 (description
8737 "GNOME System Monitor is a GNOME process viewer and system monitor with
8738an attractive, easy-to-use interface. It has features, such as a tree view
8739for process dependencies, icons for processes, the ability to hide processes,
8740graphical time histories of CPU/memory/swap usage and the ability to
8741kill/reinice processes.")
8742 (license license:gpl2+)))
3e00ac47
SB
8743
8744(define-public python-pyatspi
8745 (package
8746 (name "python-pyatspi")
4f937a32 8747 (version "2.34.0")
3e00ac47
SB
8748 (source (origin
8749 (method url-fetch)
8750 (uri (string-append
8751 "mirror://gnome/sources/pyatspi/"
8752 (version-major+minor version)
8753 "/pyatspi-" version ".tar.xz"))
8754 (sha256
8755 (base32
4f937a32 8756 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8757 (build-system gnu-build-system)
b95af3f6
JL
8758 (arguments
8759 `(#:phases
8760 (modify-phases %standard-phases
8761 (add-before 'build 'fix-atk-load
8762 (lambda _
8763 (substitute* "pyatspi/__init__.py"
8764 (("from gi.repository import Atspi")
8765 "gi.require_version('Gtk', '3.0')
8766from gi.repository import Gtk
8767from gi.repository import Atspi"))
8768 #t)))))
3e00ac47
SB
8769 (native-inputs
8770 `(("pkg-config" ,pkg-config)))
8771 (inputs
8772 `(("python" ,python)
8773 ("python-pygobject" ,python-pygobject)))
8774 (synopsis "Python client bindings for D-Bus AT-SPI")
8775 (home-page "https://wiki.linuxfoundation.org/accessibility\
8776/atk/at-spi/at-spi_on_d-bus")
8777 (description
8778 "This package includes a python client library for the AT-SPI D-Bus
8779accessibility infrastructure.")
8780 (license license:lgpl2.0)
8781 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8782
8783(define-public orca
8784 (package
8785 (name "orca")
089e8585 8786 (version "3.32.0")
53201c0d
SB
8787 (source (origin
8788 (method url-fetch)
8789 (uri (string-append
8790 "mirror://gnome/sources/" name "/"
8791 (version-major+minor version) "/"
8792 name "-" version ".tar.xz"))
8793 (sha256
8794 (base32
089e8585 8795 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8796 (build-system glib-or-gtk-build-system)
8797 (arguments
8798 '(#:phases
8799 (modify-phases %standard-phases
8800 (add-before 'configure 'qualify-xkbcomp
8801 (lambda* (#:key inputs #:allow-other-keys)
8802 (let ((xkbcomp (string-append
8803 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8804 (substitute* "src/orca/orca.py"
8805 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8806 #t))
8807 (add-after 'install 'wrap-orca
8808 (lambda* (#:key outputs #:allow-other-keys)
8809 (let* ((out (assoc-ref outputs "out"))
8810 (prog (string-append out "/bin/orca")))
8811 (wrap-program prog
8812 `("GI_TYPELIB_PATH" ":" prefix
8813 (,(getenv "GI_TYPELIB_PATH")))
8814 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8815 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8816 `("PYTHONPATH" ":" prefix
8817 (,(getenv "PYTHONPATH")))))
8818 #t)))))
8819 (native-inputs
8820 `(("intltool" ,intltool)
8821 ("itstool" ,itstool)
8822 ("pkg-config" ,pkg-config)
8823 ("xmllint" ,libxml2)))
8824 (inputs
8825 `(("at-spi2-atk" ,at-spi2-atk)
8826 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8827 ("gstreamer" ,gstreamer)
8828 ("gst-plugins-base" ,gst-plugins-base)
8829 ("gst-plugins-good" ,gst-plugins-good)
8830 ("gtk+" ,gtk+)
8831 ("python" ,python)
8832 ("python-pygobject" ,python-pygobject)
8833 ("python-pyatspi" ,python-pyatspi)
8834 ("python-speechd" ,speech-dispatcher)
8835 ("xkbcomp" ,xkbcomp)))
8836 (synopsis
8837 "Screen reader for individuals who are blind or visually impaired")
8838 (home-page "https://wiki.gnome.org/Projects/Orca")
8839 (description
8840 "Orca is a screen reader that provides access to the graphical desktop
8841via speech and refreshable braille. Orca works with applications and toolkits
8842that support the Assistive Technology Service Provider Interface (AT-SPI).")
8843 (license license:lgpl2.1+)))
411ba511
LC
8844
8845(define-public gspell
8846 (package
8847 (name "gspell")
7a6bbe9b 8848 (version "1.8.2")
411ba511
LC
8849 (source (origin
8850 (method url-fetch)
8851 (uri (string-append "mirror://gnome/sources/" name "/"
8852 (version-major+minor version) "/"
8853 name "-" version ".tar.xz"))
8854 (sha256
8855 (base32
7a6bbe9b 8856 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8857 (patches (search-patches "gspell-dash-test.patch"))))
8858 (build-system glib-or-gtk-build-system)
8859 (arguments
8860 '(#:phases
8861 (modify-phases %standard-phases
8862 (add-before 'check 'pre-check
8863 (lambda* (#:key inputs #:allow-other-keys)
8864 ;; Tests require a running X server.
8865 (system "Xvfb :1 &")
8866 (setenv "DISPLAY" ":1")
8867
8868 ;; For the missing /etc/machine-id.
8869 (setenv "DBUS_FATAL_WARNINGS" "0")
8870
8871 ;; Allow Enchant and its Aspell backend to find the en_US
8872 ;; dictionary.
8873 (setenv "ASPELL_DICT_DIR"
8874 (string-append (assoc-ref inputs "aspell-dict-en")
8875 "/lib/aspell"))
8876 #t)))))
8877 (inputs
eccd35be 8878 `(("gtk+" ,gtk+)
a801ae4c
TGR
8879 ("glib" ,glib)
8880 ("iso-codes" ,iso-codes)))
411ba511
LC
8881 (native-inputs
8882 `(("glib" ,glib "bin")
26ba3f07 8883 ("gobject-introspection" ,gobject-introspection)
411ba511
LC
8884 ("pkg-config" ,pkg-config)
8885 ("xmllint" ,libxml2)
8886
8887 ;; For tests.
a801ae4c 8888 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8889 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8890 (propagated-inputs
9b1bb757 8891 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8892 (home-page "https://wiki.gnome.org/Projects/gspell")
8893 (synopsis "GNOME's alternative spell checker")
8894 (description
8895 "gspell provides a flexible API to add spell-checking to a GTK+
8896application. It provides a GObject API, spell-checking to text entries and
8897text views, and buttons to choose the language.")
8898 (license license:gpl2+)))
d1d739fa
CM
8899
8900(define-public gnome-planner
8901 (package
8902 (name "gnome-planner")
8903 (version "0.14.6")
8904 (source (origin
8905 (method url-fetch)
8906 (uri (string-append "mirror://gnome/sources/planner/"
8907 (version-major+minor version) "/planner-"
8908 version ".tar.xz"))
8909 (sha256
8910 (base32
8911 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8912 (build-system glib-or-gtk-build-system)
8913 (arguments
8914 ;; Disable the Python bindings because the Planner program functions
8915 ;; without them, and (as of 2017-06-13) we have not packaged all of
8916 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8917 `(#:configure-flags
8918 (list "--disable-python"
8919 ,@(if (string=? "aarch64-linux" (%current-system))
8920 '("--build=aarch64-unknown-linux-gnu")
8921 '()))))
d1d739fa
CM
8922 (inputs
8923 `(("libgnomecanvas" ,libgnomecanvas)
8924 ("libgnomeui" ,libgnomeui)
8925 ("libglade" ,libglade)
8926 ("gnome-vfs" ,gnome-vfs)
8927 ("gconf" ,gconf)
8928 ("libxml2" ,libxml2)
8929 ("libxslt" ,libxslt)
8930 ("gtk+" ,gtk+)
8931 ("glib" ,glib)))
8932 (native-inputs
8933 `(("intltool" ,intltool)
8934 ("scrollkeeper" ,scrollkeeper)
8935 ("pkg-config" ,pkg-config)))
8936 (home-page "https://wiki.gnome.org/Apps/Planner")
8937 (synopsis "Project management software for the GNOME desktop")
8938 (description
8939 "GNOME Planner is a project management tool based on the Work Breakdown
8940Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8941the resources, tasks, and constraints that you define, Planner generates
8942various views into a project. For example, Planner can show a Gantt chart of
8943the project. It can show a detailed summary of tasks including their
8944duration, cost, and current progress. It can also show a report of resource
8945utilization that highlights under-utilized and over-utilized resources. These
8946views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8947 (license license:gpl2+)))
64fce637
RS
8948
8949(define-public lollypop
8950 (package
8951 (name "lollypop")
ca32627a 8952 (version "1.2.7")
64fce637
RS
8953 (source
8954 (origin
8955 (method url-fetch)
b98eace8 8956 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 8957 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 8958 "lollypop-" version ".tar.xz"))
64fce637 8959 (sha256
ca32627a 8960 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 8961 (build-system meson-build-system)
64fce637
RS
8962 (arguments
8963 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
8964 ,@%meson-build-system-modules)
8965 #:glib-or-gtk? #t
5fc9b6c1
EF
8966 #:tests? #f ; no test suite
8967 #:phases
8968 (modify-phases %standard-phases
5fc9b6c1
EF
8969 (add-after 'install 'wrap-program
8970 (lambda* (#:key outputs #:allow-other-keys)
8971 (let ((out (assoc-ref outputs "out"))
8972 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8973 (wrap-program (string-append out "/bin/lollypop")
8974 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8975 #t))
8ac8b3b3
TGR
8976 (add-after 'install 'wrap-python
8977 (@@ (guix build python-build-system) wrap))
8978 (add-after 'install 'wrap-glib-or-gtk
8979 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
8980 (native-inputs
8981 `(("intltool" ,intltool)
8982 ("itstool" ,itstool)
aa498fc0
TD
8983 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8984 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
8985 ("pkg-config" ,pkg-config)))
8986 (inputs
8987 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 8988 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 8989 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
8990 ("libnotify" ,libnotify)
8991 ("libsecret" ,libsecret)
8992 ("libsoup" ,libsoup)
8993 ("python" ,python)
8994 ("python-beautifulsoup4" ,python-beautifulsoup4)
8995 ("python-gst" ,python-gst)
d029afdd 8996 ("python-pil" ,python-pillow)
64fce637 8997 ("python-pycairo" ,python-pycairo)
7460f346 8998 ("python-pygobject" ,python-pygobject-3.34)
64fce637
RS
8999 ("python-pylast" ,python-pylast)
9000 ("totem-pl-parser" ,totem-pl-parser)
9001 ("webkitgtk" ,webkitgtk)))
9002 (propagated-inputs
9003 `(;; gst-plugins-base is required to start Lollypop,
9004 ;; the others are required to play streaming.
64fce637
RS
9005 ("gst-plugins-good" ,gst-plugins-good)
9006 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9007 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9008 (synopsis "GNOME music playing application")
9009 (description
9010 "Lollypop is a music player designed to play well with GNOME desktop.
9011Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9012from artists and tracks from the web. It also fetches cover artworks
9013automatically and it can stream songs from online music services and charts.")
9014 (license license:gpl3+)))
d831d49d
AW
9015
9016(define-public gnome-video-effects
9017 (package
9018 (name "gnome-video-effects")
9019 (version "0.4.3")
9020 (source (origin
9021 (method url-fetch)
9022 (uri (string-append "mirror://gnome/sources/" name "/"
9023 (version-major+minor version) "/" name "-"
9024 version ".tar.xz"))
9025 (sha256
9026 (base32
9027 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9028 (build-system glib-or-gtk-build-system)
9029 (arguments
9030 `(#:out-of-source? #f))
9031 (native-inputs
9032 `(("glib:bin" ,glib "bin")
9033 ("intltool" ,intltool)
9034 ("gettext" ,gettext-minimal)
9035 ("pkg-config" ,pkg-config)))
9036 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9037 (synopsis "Video effects for Cheese and other GNOME applications")
9038 (description
9039 "A collection of GStreamer video filters and effects to be used in
9040photo-booth-like software, such as Cheese.")
9041 (license license:gpl2+)))
3511c780
AW
9042
9043(define-public cheese
9044 (package
9045 (name "cheese")
dd33b337 9046 (version "3.32.1")
3511c780
AW
9047 (source (origin
9048 (method url-fetch)
9049 (uri (string-append "mirror://gnome/sources/" name "/"
9050 (version-major+minor version) "/" name "-"
9051 version ".tar.xz"))
9052 (sha256
9053 (base32
dd33b337 9054 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
9055 (arguments
9056 ;; Tests require GDK.
9057 `(#:tests? #f
9058 #:phases
9059 (modify-phases %standard-phases
9060 (add-before 'install 'skip-gtk-update-icon-cache
9061 (lambda _
9062 ;; Don't create 'icon-theme.cache'
9063 (substitute* "Makefile"
9064 (("gtk-update-icon-cache") (which "true")))
9065 #t))
9066 (add-after 'install 'wrap-cheese
9067 (lambda* (#:key inputs outputs #:allow-other-keys)
9068 (let ((out (assoc-ref outputs "out"))
9069 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9070 (wrap-program (string-append out "/bin/cheese")
9071 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9072 #t)))))
9073 (build-system glib-or-gtk-build-system)
9074 (native-inputs
9075 `(("glib:bin" ,glib "bin")
9076 ("intltool" ,intltool)
9077 ("itstool" ,itstool)
9078 ("libxml2" ,libxml2)
9079 ("pkg-config" ,pkg-config)
9080 ("vala" ,vala)))
9081 (propagated-inputs
6a19f03e
RW
9082 `(("gnome-video-effects" ,gnome-video-effects)
9083 ("clutter" ,clutter)
3511c780
AW
9084 ("clutter-gst" ,clutter-gst)
9085 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9086 ("libcanberra" ,libcanberra)
3511c780
AW
9087 ("gdk-pixbuf" ,gdk-pixbuf)
9088 ("glib" ,glib)
6a19f03e
RW
9089 ("gstreamer" ,gstreamer)))
9090 (inputs
9091 `(("gnome-desktop" ,gnome-desktop)
3511c780 9092 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9093 ("gst-plugins-base" ,gst-plugins-base)
9094 ("gst-plugins-bad" ,gst-plugins-bad)
9095 ("gtk+" ,gtk+)
3511c780
AW
9096 ("libx11" ,libx11)
9097 ("libxtst" ,libxtst)))
9098 (home-page "https://wiki.gnome.org/Apps/Cheese")
9099 (synopsis "Webcam photo booth software for GNOME")
9100 (description
9101 "Cheese uses your webcam to take photos and videos. Cheese can also
9102apply fancy special effects and lets you share the fun with others.")
9103 (license license:gpl2+)))
3c5dbd2b 9104
9105(define-public sound-juicer
9106 (package
9107 (name "sound-juicer")
9108 (version "3.24.0")
9109 (source
9110 (origin
9111 (method url-fetch)
9112 (uri (string-append "mirror://gnome/sources/" name "/"
9113 (version-major+minor version) "/"
9114 name "-" version ".tar.xz"))
9115 (sha256
9116 (base32
9117 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9118 (build-system glib-or-gtk-build-system)
9119 (native-inputs
9120 `(("desktop-file-utils" ,desktop-file-utils)
9121 ("intltool" ,intltool)
9122 ("itstool" ,itstool)
9123 ("pkg-config" ,pkg-config)
9124 ("xmllint" ,libxml2)))
9125 (inputs
9126 `(("gtk+" ,gtk+)
9127 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9128 ("gstreamer" ,gstreamer)
9129 ("gst-plugins-base" ,gst-plugins-base)
9130 ("gst-plugins-good" ,gst-plugins-good)
9131 ("iso-codes" ,iso-codes)
9132 ("libbrasero-media3" ,brasero)
9133 ("libcanberra" ,libcanberra)
9134 ("libdiscid" ,libdiscid)
9135 ("libmusicbrainz" ,libmusicbrainz)
9136 ("neon" ,neon)))
9137 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9138 (synopsis "Audio music cd ripper")
9139 (description "Sound Juicer extracts audio from compact discs and convert it
9140into audio files that a personal computer or digital audio player can play.
9141It supports ripping to any audio codec supported by a GStreamer plugin, such as
9142mp3, Ogg Vorbis and FLAC")
9143 (license license:gpl2+)))
4e3fdeb7 9144
0d3f1708
CB
9145(define-public soundconverter
9146 (package
9147 (name "soundconverter")
fa75a213 9148 (version "3.0.1")
0d3f1708
CB
9149 (source
9150 (origin
9151 (method url-fetch)
9152 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9153 version "/+download/"
9154 "soundconverter-" version ".tar.xz"))
9155
9156 (sha256
fa75a213 9157 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
9158 (patches
9159 (search-patches
9160 "soundconverter-remove-gconf-dependency.patch"))))
9161 (build-system glib-or-gtk-build-system)
9162 (arguments
9163 `(#:imported-modules ((guix build python-build-system)
9164 (guix build glib-or-gtk-build-system)
9165 ,@%gnu-build-system-modules)
9166
9167 #:modules ((guix build glib-or-gtk-build-system)
9168 (guix build utils)
9169 ((guix build gnu-build-system) #:prefix gnu:)
9170 ((guix build python-build-system) #:prefix python:))
9171
9172 #:phases
9173 (modify-phases %standard-phases
0d3f1708
CB
9174 (add-after 'install 'wrap-soundconverter-for-python
9175 (assoc-ref python:%standard-phases 'wrap))
9176 (add-after 'install 'wrap-soundconverter
9177 (lambda* (#:key inputs outputs #:allow-other-keys)
9178 (let ((out (assoc-ref outputs "out"))
9179 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9180 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9181 (wrap-program (string-append out "/bin/soundconverter")
9182 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9183 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9184 #t)))))
9185 (native-inputs
9186 `(("intltool" ,intltool)
9187 ("pkg-config" ,pkg-config)
9188 ("glib:bin" ,glib "bin")))
9189 (inputs
9190 `(("gtk+" ,gtk+)
9191 ("python" ,python)
9192 ("python-pygobject" ,python-pygobject)
9193 ("gstreamer" ,gstreamer)
9194 ("gst-plugins-base" ,gst-plugins-base)))
9195 (home-page "http://soundconverter.org/")
9196 (synopsis "Convert between audio formats with a graphical interface")
9197 (description
9198 "SoundConverter supports converting between many audio formats including
9199Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9200configurable file renaming. ")
9201 (license license:gpl3)))
9202
4e3fdeb7 9203(define-public workrave
89f2d736
TGR
9204 (package
9205 (name "workrave")
aa51d92c 9206 (version "1.10.34")
89f2d736
TGR
9207 (source
9208 (origin
9209 (method git-fetch)
9210 (uri (git-reference
9211 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9212 (commit (string-append "v" (string-map
9213 (match-lambda (#\. #\_) (chr chr))
9214 version)))))
89f2d736
TGR
9215 (file-name (git-file-name name version))
9216 (sha256
aa51d92c 9217 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
89f2d736 9218 (build-system glib-or-gtk-build-system)
d1c96847
MC
9219 (inputs `(("glib" ,glib)
9220 ("gtk+" ,gtk+)
9221 ("gdk-pixbuf" ,gdk-pixbuf)
9222 ("gtkmm" ,gtkmm)
9223 ("glibmm" ,glibmm)
9224 ("libx11" ,libx11)
9225 ("libxtst" ,libxtst)
9226 ("dconf" ,dconf)
9227 ("libice" ,libice)
9228 ("libsm" ,libsm)
9229 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9230 (native-inputs `(("boost" ,boost)
89f2d736
TGR
9231 ("pkg-config" ,pkg-config)
9232 ("gettext" ,gnu-gettext)
9233 ("autoconf" ,autoconf)
9234 ("autoconf-archive" , autoconf-archive)
9235 ("automake" ,automake)
9236 ("libtool" ,libtool)
9237 ("intltool" ,intltool)
89f2d736 9238 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9239 ("python3" ,python-3)
9240 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9241 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9242 (description
9243 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9244repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9245micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9246 (home-page "http://www.workrave.org")
9247 (license license:gpl3+)))
312afa7d
LC
9248
9249(define-public ghex
9250 (package
9251 (name "ghex")
3748992a 9252 (version "3.18.4")
312afa7d
LC
9253 (source (origin
9254 (method url-fetch)
2fbab848 9255 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9256 (version-major+minor version) "/"
2fbab848 9257 "ghex-" version ".tar.xz"))
312afa7d
LC
9258 (sha256
9259 (base32
3748992a
KK
9260 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9261 (build-system meson-build-system)
9262 (arguments
9263 '(#:glib-or-gtk? #t
9264 #:phases
9265 (modify-phases %standard-phases
9266 (add-after 'unpack 'skip-gtk-update-icon-cache
9267 ;; Don't create 'icon-theme.cache'.
9268 (lambda _
9269 (substitute* "meson_post_install.py"
9270 (("gtk-update-icon-cache") (which "true")))
9271 #t)))))
312afa7d
LC
9272 (native-inputs
9273 `(("pkg-config" ,pkg-config)
3748992a 9274 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9275 ("gnome-common" ,gnome-common)
9276 ("which" ,which)
9277 ("intltool" ,intltool)
9278 ("yelp-tools" ,yelp-tools)
2fbab848 9279 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9280 (inputs
9281 `(("atk" ,atk)
9282 ("gtk" ,gtk+)))
9283 (synopsis "GNOME hexadecimal editor")
9284 (description "The GHex program can view and edit files in two ways:
9285hexadecimal or ASCII. It is useful for editing binary files in general.")
9286 (home-page "https://wiki.gnome.org/Apps/Ghex")
9287 (license license:gpl2)))
4b2ed6c2
RW
9288
9289(define-public libdazzle
9290 (package
9291 (name "libdazzle")
64fa66ba 9292 (version "3.33.90")
4b2ed6c2
RW
9293 (source (origin
9294 (method url-fetch)
687b4909 9295 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9296 (version-major+minor version) "/"
687b4909 9297 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9298 (sha256
9299 (base32
64fa66ba 9300 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
9301 (build-system meson-build-system)
9302 (arguments
9303 `(#:phases
9304 (modify-phases %standard-phases
4b2ed6c2
RW
9305 (add-before 'check 'pre-check
9306 (lambda _
9307 ;; Tests require a running X server.
9308 (system "Xvfb :1 &")
9309 (setenv "DISPLAY" ":1")
9310 #t)))))
9311 (native-inputs
687b4909 9312 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9313 ("pkg-config" ,pkg-config)
687b4909 9314 ;; For tests.
ff337525 9315 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9316 (inputs
9317 `(("glib" ,glib)
9318 ("gobject-introspection" ,gobject-introspection)
9319 ("gtk+" ,gtk+)
9320 ("vala" ,vala)))
9321 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9322 (synopsis "Companion library to GObject and Gtk+")
9323 (description "The libdazzle library is a companion library to GObject and
9324Gtk+. It provides various features that the authors wish were in the
9325underlying library but cannot for various reasons. In most cases, they are
9326wildly out of scope for those libraries. In other cases, they are not quite
9327generic enough to work for everyone.")
9328 (license license:gpl3+)))
7d3bb433
RW
9329
9330(define-public evolution
9331 (package
9332 (name "evolution")
06141f83 9333 (version "3.32.4")
7d3bb433
RW
9334 (source (origin
9335 (method url-fetch)
9336 (uri (string-append "mirror://gnome/sources/evolution/"
9337 (version-major+minor version) "/"
9338 "evolution-" version ".tar.xz"))
9339 (sha256
9340 (base32
06141f83 9341 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
9342 (build-system cmake-build-system)
9343 (arguments
5229bea1
KK
9344 `(#:imported-modules (,@%cmake-build-system-modules
9345 (guix build glib-or-gtk-build-system))
9346 #:modules ((guix build cmake-build-system)
9347 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9348 (guix build utils))
9349 #:configure-flags
7d3bb433 9350 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9351 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9352 ; in four years and cannot be built.
5229bea1
KK
9353 #:phases
9354 (modify-phases %standard-phases
9355 ;; The build system attempts to install user interface modules to the
9356 ;; output directory of the "evolution-data-server" package. This
9357 ;; change redirects that change.
9358 (add-after 'unpack 'patch-ui-module-dir
9359 (lambda* (#:key outputs #:allow-other-keys)
9360 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9361 (("\\$\\{edsuimoduledir\\}")
9362 (string-append (assoc-ref outputs "out")
9363 "/lib/evolution-data-server/ui-modules")))
9364 #t))
9365 (add-after 'install 'glib-or-gtk-compile-schemas
9366 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9367 (add-after 'install 'glib-or-gtk-wrap
9368 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9369 (native-inputs
ad6e168b 9370 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9371 ("pkg-config" ,pkg-config)
9372 ("intltool" ,intltool)
9373 ("itstool" ,itstool)))
9374 (inputs
9375 `(("enchant" ,enchant)
9376 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9377 ("gcr" ,gcr)
ad6e168b 9378 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9379 ("gnome-autoar" ,gnome-autoar)
9380 ("gnome-desktop" ,gnome-desktop)
9381 ("gtkspell3" ,gtkspell3)
9382 ("highlight" ,highlight)
9383 ("libcanberra" ,libcanberra)
b63c06f1 9384 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
9385 ("libgweather" ,libgweather)
9386 ("libnotify" ,libnotify)
9387 ("libsoup" ,libsoup)
9388 ("nss" ,nss)
9389 ("openldap" ,openldap)
9390 ("webkitgtk" ,webkitgtk)
9391 ("ytnef" ,ytnef)))
9392 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9393 (synopsis "Manage your email, contacts and schedule")
9394 (description "Evolution is a personal information management application
9395that provides integrated mail, calendaring and address book
9396functionality.")
9397 ;; See COPYING for details.
23dbe621 9398 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9399 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9400 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9401
9402(define-public gthumb
9403 (package
9404 (name "gthumb")
8280676b 9405 (version "3.8.2")
169d63f5
AT
9406 (source (origin
9407 (method url-fetch)
9408 (uri (string-append "mirror://gnome/sources/gthumb/"
9409 (version-major+minor version) "/"
9410 "gthumb-" version ".tar.xz"))
9411 (sha256
9412 (base32
8280676b 9413 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9414 (build-system meson-build-system)
9415 (arguments
9416 `(#:glib-or-gtk? #t
9417 #:configure-flags
9418 ;; Ensure the RUNPATH contains all installed library locations.
9419 (list (string-append "-Dc_link_args=-Wl,-rpath="
9420 (assoc-ref %outputs "out")
9421 "/lib/gthumb/extensions")
9422 (string-append "-Dcpp_link_args=-Wl,-rpath="
9423 (assoc-ref %outputs "out")
9424 "/lib/gthumb/extensions"))))
9425 (native-inputs
9426 `(("pkg-config" ,pkg-config)
9427 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9428 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9429 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9430 ("intltool" ,intltool)
9431 ("itstool" ,itstool)))
9432 (inputs
9433 `(("exiv2" ,exiv2)
9434 ("gtk" ,gtk+)
9435 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9436 ("gstreamer" ,gstreamer)
9437 ("clutter" ,clutter)
9438 ("clutter-gst" ,clutter-gst)
9439 ("clutter-gtk" ,clutter-gtk)
9440 ("libjpeg" ,libjpeg)
9441 ("libtiff" ,libtiff)
9442 ("libraw" ,libraw)))
9443 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9444 (synopsis "GNOME image viewer and browser")
9445 (description "GThumb is an image viewer, browser, organizer, editor and
9446advanced image management tool")
9447 (license license:gpl2+)))
08be02be
AT
9448
9449(define-public terminator
9450 (package
9451 (name "terminator")
9452 (version "1.91")
9453 (source (origin
9454 (method url-fetch)
9455 (uri (string-append "https://launchpad.net/" name "/"
9456 "gtk3/" version "/" "+download/"
9457 name "-" version ".tar.gz"))
9458 (sha256
9459 (base32
9460 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9461 (build-system python-build-system)
9462 (native-inputs
9463 `(("intltool" ,intltool)
9464 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9465 ("gettext" ,gettext-minimal)
9466 ("pkg-config" ,pkg-config)))
9467 (inputs
9468 `(("cairo" ,cairo)
9469 ("gobject-introspection" ,gobject-introspection)
96681d4b 9470 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9471 ("python2-pycairo" ,python2-pycairo)
9472 ("python2-pygobject" ,python2-pygobject)
9473 ("python2-psutil" ,python2-psutil)
9474 ("vte" ,vte)))
9475 (arguments
96681d4b
TGR
9476 `(#:python ,python-2 ; Python 3 isn't supported
9477 #:imported-modules ((guix build glib-or-gtk-build-system)
9478 ,@%python-build-system-modules)
9479 #:modules ((guix build python-build-system)
9480 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9481 (guix build utils))
08be02be
AT
9482 #:phases
9483 (modify-phases %standard-phases
9484 (add-after
9485 'install 'wrap-program
9486 (lambda* (#:key outputs #:allow-other-keys)
9487 (let ((prog (string-append (assoc-ref outputs "out")
9488 "/bin/terminator")))
9489 (wrap-program prog
9490 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9491 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9492 #t)))
9493 (add-after 'wrap-program 'glib-or-gtk-wrap
9494 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9495 (home-page "https://gnometerminator.blogspot.com/")
9496 (synopsis "Store and run multiple GNOME terminals in one window")
9497 (description
9498 "Terminator allows you to run multiple GNOME terminals in a grid and
9499+tabs, and it supports drag and drop re-ordering of terminals.")
9500 (license license:gpl2)))
213315d4
JF
9501
9502(define-public libhandy
9503 (package
9504 (name "libhandy")
f6501b9f 9505 (version "0.0.12")
213315d4
JF
9506 (source
9507 (origin
9508 (method git-fetch)
9509 (uri (git-reference
9510 (url "https://source.puri.sm/Librem5/libhandy")
9511 (commit (string-append "v" version))))
9512 (file-name (git-file-name name version))
9513 (sha256
f6501b9f 9514 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9515 (build-system meson-build-system)
9516 (arguments
9517 `(#:configure-flags
9518 '("-Dglade_catalog=disabled"
9519 "-Dgtk_doc=true")
9520 #:phases
9521 (modify-phases %standard-phases
213315d4
JF
9522 (add-before 'check 'pre-check
9523 (lambda _
9524 ;; Tests require a running X server.
9525 (system "Xvfb :1 &")
9526 (setenv "DISPLAY" ":1")
9527 #t)))))
9528 (inputs
9529 `(("gtk+" ,gtk+)))
9530 (native-inputs
9531 `(("glib:bin" ,glib "bin")
9532 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9533 ("vala" ,vala)
9534 ("gtk-doc" ,gtk-doc)
9535 ("pkg-config" ,pkg-config)
9536 ("gettext" ,gettext-minimal)
d41ee146
TGR
9537
9538 ;; Test suite dependencies.
ff337525 9539 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9540 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9541 (home-page "https://source.puri.sm/Librem5/libhandy")
9542 (synopsis "Library full of GTK+ widgets for mobile phones")
9543 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9544interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9545for usage on small and big screens.")
213315d4 9546 (license license:lgpl2.1+)))
a830d14d
GL
9547
9548(define-public libgit2-glib
9549 (package
9550 (name "libgit2-glib")
9551 (version "0.28.0.1")
9552 (source (origin
9553 (method url-fetch)
9554 (uri (string-append "mirror://gnome/sources/" name "/"
9555 (version-major+minor version) "/"
9556 name "-" version ".tar.xz"))
9557 (sha256
9558 (base32
9559 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9560 (build-system meson-build-system)
9561 (native-inputs
9562 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9563 ("gobject-introspection" ,gobject-introspection)
9564 ("intltool" ,intltool)
9565 ("libssh2" ,libssh2)
9566 ("pkg-config" ,pkg-config)
9567 ("python-pygobject" ,python-pygobject)
9568 ("python-wrapper" ,python-wrapper)
9569 ("vala" ,vala)))
9570 (inputs
9571 `(("glib" ,glib)
9572 ("libgit2" ,libgit2)))
9573 (synopsis "GLib wrapper around the libgit2 Git access library")
9574 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9575access library. It only implements the core plumbing functions, not really the
9576higher level porcelain stuff.")
9577 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9578 (license license:gpl2+)))
93beace0 9579
08db81c9
LP
9580(define-public gitg
9581 (package
9582 (name "gitg")
9583 (version "3.32.1")
9584 (source (origin
9585 (method url-fetch)
9586 (uri (string-append "mirror://gnome/sources/" name "/"
9587 (version-major+minor version) "/"
9588 name "-" version ".tar.xz"))
9589 (sha256
9590 (base32
9591 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9592 (build-system meson-build-system)
9593 (arguments
9594 `(#:glib-or-gtk? #t
9595 #:phases
9596 (modify-phases %standard-phases
9597 (add-after 'unpack 'disable-post-install-partially
9598 (lambda _
9599 (substitute* "meson_post_install.py"
9600 (("'python'") ; there are no python sources to compile
9601 (string-append "'" (which "true") "'"))
9602 (("gtk-update-icon-cache") (which "true")))
9603 #t))
9604 (add-after 'unpack 'fix-test-sources
9605 (lambda _
9606 (substitute* "tests/libgitg/test-commit.vala"
9607 (("/bin/bash") (which "bash")))
9608 #t))
9609 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9610 (lambda* (#:key outputs #:allow-other-keys)
9611 (let ((prog (string-append (assoc-ref outputs "out")
9612 "/bin/gitg")))
9613 (wrap-program prog
9614 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9615 #t))))))
9616 (inputs
9617 `(("glib" ,glib)
9618 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9619 ("gtk+" ,gtk+)
9620 ("gtkspell3" ,gtkspell3)
9621 ("gtksourceview" ,gtksourceview-3)
9622 ("json-glib" ,json-glib)
9623 ("libdazzle" ,libdazzle)
9624 ("libgee" ,libgee)
9625 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9626 ("libgit2-glib" ,libgit2-glib)
9627 ("libpeas" ,libpeas)
9628 ("libsecret" ,libsecret)
9629 ("libsoup" ,libsoup)
9630 ("libxml2" ,libxml2)))
9631 (native-inputs
9632 `(("glib:bin" ,glib "bin")
9633 ("gtk+:bin" ,gtk+ "bin")
9634 ("gobject-introspection" ,gobject-introspection)
9635 ("intltool" ,intltool)
9636 ("pkg-config" ,pkg-config)
9637 ("vala" ,vala)))
9638 (synopsis "Graphical user interface for git")
9639 (description
9640 "gitg is a graphical user interface for git. It aims at being a small,
9641fast and convenient tool to visualize the history of git repositories.
9642Besides visualization, gitg also provides several utilities to manage your
9643repository and commit your work.")
9644 (home-page "https://wiki.gnome.org/Apps/Gitg")
9645 (license license:gpl2+)))
9646
1e600ed0
RW
9647(define-public gamin
9648 (package
9649 (name "gamin")
9650 (version "0.1.10")
9651 (source (origin
9652 (method url-fetch)
9653 (uri (string-append "mirror://gnome/sources/" name "/"
9654 (version-major+minor version) "/"
9655 name "-" version ".tar.bz2"))
9656 (sha256
9657 (base32
9658 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9659 (build-system gnu-build-system)
9660 (arguments
9661 `(#:phases
9662 (modify-phases %standard-phases
9663 (add-after 'unpack 'remove-deprecated-macro
9664 (lambda _
9665 (substitute* '("server/gam_node.c"
9666 "server/gam_subscription.h"
9667 "server/gam_node.h"
9668 "server/gam_subscription.c")
9669 (("G_CONST_RETURN") "const"))
9670 #t)))))
9671 (inputs
9672 `(("glib" ,glib)))
9673 (native-inputs
9674 `(("intltool" ,intltool)
9675 ("pkg-config" ,pkg-config)))
9676 (home-page "https://people.gnome.org/~veillard/gamin/")
9677 (synopsis "File alteration monitor")
9678 (description
9679 "Gamin is a file and directory monitoring system defined to be a subset
9680of the FAM (File Alteration Monitor) system. This is a service provided by a
9681library which allows to detect when a file or a directory has been modified.")
9682 (license license:gpl2+)))
9683
93beace0
DW
9684(define-public gnome-mahjongg
9685 (package
9686 (name "gnome-mahjongg")
9687 (version "3.35.1")
9688 (source (origin
9689 (method git-fetch)
9690 (uri (git-reference
9691 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9692 (commit version)))
9693 (file-name (git-file-name name version))
9694 (sha256
9695 (base32
9696 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9697 (build-system meson-build-system)
9698 (arguments
9699 `(#:glib-or-gtk? #t))
9700 (native-inputs
9701 `(("appstream-glib" ,appstream-glib)
9702 ("gettext" ,gettext-minimal)
9703 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9704 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9705 ("itstool" ,itstool)
9706 ("pkg-config" ,pkg-config)
9707 ("vala" ,vala)))
9708 (propagated-inputs
9709 `(("dconf" ,dconf)))
9710 (inputs
9711 `(("glib" ,glib)
9712 ("gtk+" ,gtk+)
9713 ("librsvg" ,librsvg)))
9714 (synopsis "Mahjongg tile-matching game")
9715 (description "GNOME Mahjongg is a game based on the classic Chinese
9716tile-matching game Mahjong. It features multiple board layouts, tile themes,
9717and a high score table.")
9718 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9719 (license license:gpl2+)))
f825476c 9720
76ea7632
RG
9721(define-public gnome-themes-extra
9722 (package
9723 (name "gnome-themes-extra")
9724 (version "3.28")
9725 (source
9726 (origin
9727 (method url-fetch)
9728 (uri (string-append "mirror://gnome/sources/" name "/"
9729 (version-major+minor version) "/" name "-"
9730 version ".tar.xz"))
9731 (sha256
9732 (base32
9733 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9734 (build-system gnu-build-system)
885424bf
RG
9735 (arguments
9736 '(#:configure-flags
9737 ;; Don't create 'icon-theme.cache'.
9738 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9739 (true (string-append coreutils "/bin/true")))
9740 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9741 (native-inputs
9742 `(("glib:bin" ,glib "bin")
9743 ("intltool" ,intltool)
9744 ("pkg-config" ,pkg-config)))
9745 (inputs
9746 `(("glib" ,glib)
9747 ("gtk+" ,gtk+)
9748 ("gtk+-2" ,gtk+-2)
9749 ("librsvg" ,librsvg)
9750 ("libxml2" ,libxml2)))
9751 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9752 (synopsis "GNOME Extra Themes")
9753 (description "This package provides themes and related elements that don't
9754really fit in other upstream packages. It offers legacy support for GTK+ 2
9755versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9756index files needed for Adwaita to be used outside of GNOME.")
9757 (license license:lgpl2.1+)))
9758
f825476c
LP
9759(define-public polari
9760 (package
9761 (name "polari")
9762 (version "3.32.2")
9763 (source (origin
9764 (method url-fetch)
9765 (uri (string-append "mirror://gnome/sources/polari/"
9766 (version-major+minor version)
9767 "/polari-" version ".tar.xz"))
9768 (sha256
9769 (base32
9770 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9771 (build-system meson-build-system)
9772 (arguments
9773 `(#:glib-or-gtk? #t
9774 #:phases
9775 (modify-phases %standard-phases
9776 (add-after 'unpack 'skip-gtk-update-icon-cache
9777 (lambda _
9778 (substitute* "meson/meson-postinstall.sh"
9779 (("gtk-update-icon-cache") (which "true")))
9780 #t))
9781 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9782 (lambda* (#:key outputs #:allow-other-keys)
9783 (let ((prog (string-append (assoc-ref outputs "out")
9784 "/bin/polari")))
9785 (wrap-program prog
9786 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9787 #t))))))
9788 (inputs
9789 `(("glib" ,glib)
9790 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9791 ("gspell" ,gspell)
9792 ("gtk+" ,gtk+)
9793 ("gjs" ,gjs)
9794 ("libsecret" ,libsecret)
9795 ("libsoup" ,libsoup)
9796 ("telepathy-glib" ,telepathy-glib)
9797 ("telepathy-logger" ,telepathy-logger)))
9798 (native-inputs
9799 `(("glib:bin" ,glib "bin")
9800 ("gobject-introspection" ,gobject-introspection)
9801 ("intltool" ,intltool)
9802 ("pkg-config" ,pkg-config)
9803 ("yelp-tools" ,yelp-tools)))
9804 (propagated-inputs
9805 `(("telepathy-idle" ,telepathy-idle)
9806 ("telepathy-mission-control" ,telepathy-mission-control)))
9807 (synopsis "Simple IRC Client")
9808 (description
9809 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9810integrate seamlessly with the GNOME desktop.")
9811 (home-page "https://wiki.gnome.org/Apps/Polari")
9812 (license license:gpl2+)))