gnu: libgsf: Do not build the static library.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
CommitLineData
995b7261 1;;; GNU Guix --- Functional package management for GNU
109da1c0 2;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
5dc6d5ce 3;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
29a7c98a 4;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
7108425c 5;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
58d32305 6;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
8b877545 7;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
7aab13f1 8;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
63ad9b80 9;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
1e7464a9 10;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
7d3bb433 11;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
64a153bd 12;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
293ff8b2 13;;; Copyright © 2015 David Thompson <davet@gnu.org>
e19cb895 14;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
35e2d0cf 15;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
3c697ffd 16;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
03be9874 17;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
277a7d82 18;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
a56be436 19;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
e19f9c24 20;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
71d9b980 21;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
47956fa0 22;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
e5e1df4d 23;;; Copyright © 2016 David Craven <david@craven.ch>
ac631328 24;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
cce0da5e 25;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
d04687dc 26;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
3c5dbd2b 27;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
d1d739fa 28;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
1d3fcf94 29;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
dcfa0acd 30;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
0438f1d8 31;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
4e3fdeb7 32;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
2eee7ee3 33;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
a18f8eaf 34;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
e57c2adb 35;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
8caa4589 36;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
f2d56e39 37;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
3e9c80b2 38;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
a7a31827 39;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
633422b0 40;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
213315d4 41;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
4690e3a4 42;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
50e96d25 43;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
93beace0 44;;; Copyright © 2019 David Wilson <david@daviwil.com>
d36fa50f 45;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
f6501b9f 46;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
26ba3f07 47;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
fa01e10d 48;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
63db190a 49;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
995b7261
AE
50;;;
51;;; This file is part of GNU Guix.
52;;;
53;;; GNU Guix is free software; you can redistribute it and/or modify it
54;;; under the terms of the GNU General Public License as published by
55;;; the Free Software Foundation; either version 3 of the License, or (at
56;;; your option) any later version.
57;;;
58;;; GNU Guix is distributed in the hope that it will be useful, but
59;;; WITHOUT ANY WARRANTY; without even the implied warranty of
60;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
61;;; GNU General Public License for more details.
62;;;
63;;; You should have received a copy of the GNU General Public License
64;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
65
66(define-module (gnu packages gnome)
ed19903d 67 #:use-module (gnu packages)
ba5dd105 68 #:use-module (gnu packages admin)
411ba511 69 #:use-module (gnu packages aspell)
75016d07 70 #:use-module (gnu packages autotools)
7b212526 71 #:use-module (gnu packages avahi)
b29909b4 72 #:use-module (gnu packages backup)
6a180f6f 73 #:use-module (gnu packages base)
1e33331c 74 #:use-module (gnu packages bash)
5698b8b8 75 #:use-module (gnu packages bison)
aa51d92c 76 #:use-module (gnu packages boost)
5fc9b6c1 77 #:use-module (gnu packages build-tools)
df217748 78 #:use-module (gnu packages calendar)
b29909b4 79 #:use-module (gnu packages cdrom)
df12f04a 80 #:use-module (gnu packages check)
d61a894b 81 #:use-module (gnu packages cmake)
b29909b4 82 #:use-module (gnu packages compression)
8f523eb9 83 #:use-module (gnu packages crates-io)
23a22af6 84 #:use-module (gnu packages cups)
6e1bb642 85 #:use-module (gnu packages curl)
c3f29bc9 86 #:use-module (gnu packages cyrus-sasl)
6e1bb642 87 #:use-module (gnu packages databases)
255d1bbe 88 #:use-module (gnu packages dbm)
c769cf9f 89 #:use-module (gnu packages djvu)
ba5dd105 90 #:use-module (gnu packages dns)
b4ce6300 91 #:use-module (gnu packages docbook)
b29909b4 92 #:use-module (gnu packages documentation)
329d731b 93 #:use-module (gnu packages enchant)
b29909b4
TGR
94 #:use-module (gnu packages flex)
95 #:use-module (gnu packages fonts)
e762d943 96 #:use-module (gnu packages file-systems)
a56be436 97 #:use-module (gnu packages fontutils)
b29909b4 98 #:use-module (gnu packages freedesktop)
dfc407f3 99 #:use-module (gnu packages game-development)
fed5a689 100 #:use-module (gnu packages gettext)
b29909b4
TGR
101 #:use-module (gnu packages ghostscript)
102 #:use-module (gnu packages gl)
995b7261 103 #:use-module (gnu packages glib)
c1354b90 104 #:use-module (gnu packages gnupg)
23a22af6 105 #:use-module (gnu packages gnuzilla)
8d8c6bff 106 #:use-module (gnu packages geo)
b29909b4
TGR
107 #:use-module (gnu packages gperf)
108 #:use-module (gnu packages graphviz)
85f5dc19 109 #:use-module (gnu packages gstreamer)
d9c1a22b 110 #:use-module (gnu packages gtk)
6b888eff 111 #:use-module (gnu packages guile)
b645146f 112 #:use-module (gnu packages ibus)
03be9874 113 #:use-module (gnu packages icu4c)
b29909b4
TGR
114 #:use-module (gnu packages image)
115 #:use-module (gnu packages imagemagick)
116 #:use-module (gnu packages inkscape)
9cc98f8a 117 #:use-module (gnu packages iso-codes)
b29909b4 118 #:use-module (gnu packages kerberos)
85f5dc19 119 #:use-module (gnu packages libcanberra)
b64e217f 120 #:use-module (gnu packages libunistring)
75016d07 121 #:use-module (gnu packages libusb)
b29909b4 122 #:use-module (gnu packages linux)
4e3fc547 123 #:use-module (gnu packages lirc)
7b212526 124 #:use-module (gnu packages lua)
b29909b4 125 #:use-module (gnu packages mail)
03be9874 126 #:use-module (gnu packages mp3)
b29909b4 127 #:use-module (gnu packages multiprecision)
64fce637 128 #:use-module (gnu packages music)
b29909b4
TGR
129 #:use-module (gnu packages ncurses)
130 #:use-module (gnu packages nettle)
ba5dd105 131 #:use-module (gnu packages networking)
5fc9b6c1 132 #:use-module (gnu packages ninja)
aff0cce9 133 #:use-module (gnu packages nss)
b29909b4 134 #:use-module (gnu packages openldap)
b645146f 135 #:use-module (gnu packages password-utils)
de1215e2 136 #:use-module (gnu packages pcre)
b29909b4 137 #:use-module (gnu packages pdf)
27477d2d 138 #:use-module (gnu packages perl)
f70d8383 139 #:use-module (gnu packages photo)
995b7261 140 #:use-module (gnu packages pkg-config)
b29909b4
TGR
141 #:use-module (gnu packages polkit)
142 #:use-module (gnu packages popt)
7d3bb433 143 #:use-module (gnu packages pretty-print)
23a22af6 144 #:use-module (gnu packages pulseaudio)
995b7261 145 #:use-module (gnu packages python)
00014781
RW
146 #:use-module (gnu packages python-crypto)
147 #:use-module (gnu packages python-web)
44d10b1f 148 #:use-module (gnu packages python-xyz)
cce0da5e 149 #:use-module (gnu packages rdesktop)
b29909b4 150 #:use-module (gnu packages readline)
a76d0f03 151 #:use-module (gnu packages ruby)
ec47c07d 152 #:use-module (gnu packages rust)
b29909b4 153 #:use-module (gnu packages samba)
75016d07 154 #:use-module (gnu packages scanner)
240cee8a 155 #:use-module (gnu packages selinux)
c27e02bf 156 #:use-module (gnu packages slang)
b29909b4
TGR
157 #:use-module (gnu packages speech)
158 #:use-module (gnu packages spice)
cd0322a3 159 #:use-module (gnu packages sqlite)
4a1bf090 160 #:use-module (gnu packages ssh)
8f9ac901 161 #:use-module (gnu packages tex)
33dc54b0 162 #:use-module (gnu packages time)
a7fd7b68 163 #:use-module (gnu packages tls)
3c5dbd2b 164 #:use-module (gnu packages version-control)
b29909b4 165 #:use-module (gnu packages video)
59132b80 166 #:use-module (gnu packages virtualization)
f2b96b3a 167 #:use-module (gnu packages vpn)
a18f8eaf 168 #:use-module (gnu packages web)
b29909b4
TGR
169 #:use-module (gnu packages webkit)
170 #:use-module (gnu packages xdisorg)
171 #:use-module (gnu packages xiph)
172 #:use-module (gnu packages xml)
d633f2f6 173 #:use-module (gnu packages xorg)
a76d0f03 174 #:use-module (gnu artwork)
8f523eb9 175 #:use-module (guix build-system cargo)
b29909b4
TGR
176 #:use-module (guix build-system cmake)
177 #:use-module (guix build-system glib-or-gtk)
178 #:use-module (guix build-system gnu)
179 #:use-module (guix build-system meson)
08be02be 180 #:use-module (guix build-system python)
b29909b4
TGR
181 #:use-module (guix build-system trivial)
182 #:use-module (guix download)
183 #:use-module (guix git-download)
184 #:use-module ((guix licenses) #:prefix license:)
185 #:use-module (guix packages)
186 #:use-module (guix utils)
a76d0f03 187 #:use-module (guix gexp)
8f523eb9
EF
188 #:use-module (guix monads)
189 #:use-module (guix store)
4e3fdeb7 190 #:use-module (ice-9 match)
c024ae36 191 #:use-module (srfi srfi-1))
85f5dc19
AE
192
193(define-public brasero
194 (package
195 (name "brasero")
e2bf423a 196 (version "3.12.2")
85f5dc19
AE
197 (source (origin
198 (method url-fetch)
d1df7554 199 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 200 (version-major+minor version) "/"
d1df7554 201 "brasero-" version ".tar.xz"))
85f5dc19
AE
202 (sha256
203 (base32
e2bf423a 204 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 205 (build-system glib-or-gtk-build-system)
e8627cd9
DH
206 (arguments
207 `(#:configure-flags (list
208 (string-append "--with-girdir="
209 (assoc-ref %outputs "out")
210 "/share/gir-1.0")
211 (string-append "--with-typelibdir="
212 (assoc-ref %outputs "out")
ce426deb
TD
213 "/lib/girepository-1.0"))
214 #:phases
215 (modify-phases %standard-phases
216 (add-before 'configure 'embed-growisofs
217 (lambda* (#:key inputs #:allow-other-keys)
218 (substitute* "plugins/growisofs/burn-growisofs.c"
219 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 220 #t)))))
85f5dc19
AE
221 (propagated-inputs
222 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
223 (native-inputs
224 `(("intltool" ,intltool)
ba549e17 225 ("itstool" ,itstool)
426adbe8 226 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 227 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 228 ("pkg-config" ,pkg-config)))
85f5dc19 229 (inputs
ce426deb
TD
230 `(("dvd+rw-tools" ,dvd+rw-tools)
231 ("glib" ,glib)
85f5dc19
AE
232 ("gnome-doc-utils" ,gnome-doc-utils)
233 ("gstreamer" ,gstreamer)
234 ("gst-plugins-base" ,gst-plugins-base)
235 ("gtk+" ,gtk+)
85f5dc19
AE
236 ("libcanberra" ,libcanberra)
237 ("libice" ,libice)
238 ("libnotify" ,libnotify)
239 ("libsm" ,libsm)
e8627cd9 240 ("libxml2" ,libxml2)
e8627cd9 241 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 242 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
243 (synopsis "CD/DVD burning tool for Gnome")
244 (description "Brasero is an application to burn CD/DVD for the Gnome
245Desktop. It is designed to be as simple as possible and has some unique
246features to enable users to create their discs easily and quickly.")
1dd26275 247 (license license:gpl2+)))
995b7261 248
e05ce17d
RG
249(define-public phodav
250 (package
251 (name "phodav")
252 (version "2.4")
253 (source (origin
254 (method url-fetch)
255 (uri (string-append "mirror://gnome/sources/" name "/"
256 (version-major+minor version) "/"
257 name "-" version ".tar.xz"))
258 (sha256
259 (base32
260 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
261 (build-system meson-build-system)
262 (native-inputs
263 `(("gettext" ,gettext-minimal)
264 ("glib:bin" ,glib "bin")
265 ("gtk-doc" ,gtk-doc)
266 ("pkg-config" ,pkg-config)))
267 (inputs
268 `(("avahi" ,avahi)
269 ("libgudev" ,libgudev)
270 ("libsoup" ,libsoup)))
271 (synopsis "WebDav server implementation using libsoup")
272 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
273but it is generic enough to be reused in other projects,
274in particular in the GNOME desktop.")
275 (home-page "https://wiki.gnome.org/phodav")
276 (license license:lgpl2.1+)))
277
29ae18db
RG
278(define-public gnome-color-manager
279 (package
280 (name "gnome-color-manager")
281 (version "3.32.0")
282 (source (origin
283 (method url-fetch)
284 (uri (string-append "mirror://gnome/sources/" name "/"
285 (version-major+minor version) "/"
286 name "-" version ".tar.xz"))
287 (sha256
288 (base32
289 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
290 (build-system meson-build-system)
291 (arguments
292 `(#:glib-or-gtk? #t
293 #:phases
294 (modify-phases %standard-phases
295 (add-before
296 'check 'pre-check
297 (lambda _
298 ;; Tests require a running X server.
299 (system "Xvfb :1 &")
300 (setenv "DISPLAY" ":1")
301 #t)))))
302 (native-inputs
303 `(("desktop-file-utils" ,desktop-file-utils)
304 ("gettext" ,gettext-minimal)
305 ("glib:bin" ,glib "bin")
306 ("gtk+:bin" ,gtk+ "bin")
307 ("itstool" ,itstool)
308 ("pkg-config" ,pkg-config)
309 ("xorg-server" ,xorg-server-for-tests)))
310 (inputs
311 `(("adwaita-icon-theme" ,adwaita-icon-theme)
312 ("appstream-glib" ,appstream-glib)
313 ("colord-gtk" ,colord-gtk)
314 ("exiv2" ,exiv2)
315 ("gnome-desktop" ,gnome-desktop)
316 ("libcanberra" ,libcanberra)
317 ("libexif" ,libexif)
318 ("libtiff" ,libtiff)
319 ("libxrandr" ,libxrandr)
320 ("libxtst" ,libxtst)
321 ("libxxf86vm" ,libxxf86vm)
322 ("vte" ,vte)
323 ("xorgproto" ,xorgproto)))
324 (synopsis "Color profile manager for the GNOME desktop")
325 (description "GNOME Color Manager is a session framework that makes
326it easy to manage, install and generate color profiles
327in the GNOME desktop.")
328 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 329 (license license:gpl2+)))
29ae18db 330
e05471a1
RG
331(define-public gnome-online-miners
332 (package
333 (name "gnome-online-miners")
334 (version "3.30.0")
335 (source (origin
336 (method url-fetch)
337 (uri (string-append "mirror://gnome/sources/" name "/"
338 (version-major+minor version) "/"
339 name "-" version ".tar.xz"))
340 (sha256
341 (base32
342 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
343 (build-system glib-or-gtk-build-system)
344 (native-inputs
345 `(("gettext" ,gettext-minimal)
346 ("glib:bin" ,glib "bin")
29ae18db 347 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
348 ("gtk+:bin" ,gtk+ "bin")
349 ("pkg-config" ,pkg-config)))
350 (inputs
351 `(("gnome-online-accounts" ,gnome-online-accounts)
352 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
353 ("grilo" ,grilo)
354 ("libgdata" ,libgdata)
355 ("libgfbgraph" ,gfbgraph)
356 ("libzapojit" ,libzapojit)
357 ("rest" ,rest)
358 ("tracker" ,tracker)))
359 (synopsis "Web Crawlers for GNOME")
360 (description "GNOME Online Miners provides a set of crawlers that
361go through your online content and index them locally in Tracker.
362It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
363 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 364 (license license:gpl2+)))
e05471a1 365
e2aed29c
RG
366(define-public gssdp
367 (package
368 (name "gssdp")
369 (version "1.2.2")
370 (source (origin
371 (method url-fetch)
372 (uri (string-append "mirror://gnome/sources/" name "/"
373 (version-major+minor version) "/"
374 name "-" version ".tar.xz"))
375 (sha256
376 (base32
377 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
378 (build-system meson-build-system)
379 (native-inputs
380 `(("gettext" ,gettext-minimal)
381 ("glib:bin" ,glib "bin")
382 ("gobject-introspection" ,gobject-introspection)
383 ("gtk-doc" ,gtk-doc)
384 ("pkg-config" ,pkg-config)
385 ("vala" ,vala)))
386 (inputs
387 `(("gtk+" ,gtk+)
388 ("libsoup" ,libsoup)))
389 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
390Protocol} for GNOME")
391 (description "This package provides a library to handle resource discovery
392and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
393a debugging tool, @command{gssdp-device-sniffer}.")
394 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
395 (license license:lgpl2.0+)))
396
291a85b2
RG
397(define-public gupnp
398 (package
399 (name "gupnp")
400 (version "1.2.2")
401 (source (origin
402 (method url-fetch)
403 (uri (string-append "mirror://gnome/sources/" name "/"
404 (version-major+minor version) "/"
405 name "-" version ".tar.xz"))
406 (sha256
407 (base32
408 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
409 (build-system meson-build-system)
410 (native-inputs
411 `(("gettext" ,gettext-minimal)
412 ("glib:bin" ,glib "bin")
413 ("gobject-introspection" ,gobject-introspection)
414 ("gtk-doc" ,gtk-doc)
415 ("pkg-config" ,pkg-config)
416 ("vala" ,vala)))
417 (inputs
418 `(("gssdp" ,gssdp)
419 ("gtk+" ,gtk+)
420 ("libsoup" ,libsoup)))
421 (synopsis "PnP API for GNOME")
422 (description "This package provides GUPnP, an object-oriented framework
423for creating UPnP devices and control points, written in C using
424@code{GObject} and @code{libsoup}.")
425 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
426 (license license:lgpl2.0+)))
427
747d7fe4
RG
428(define-public gupnp-dlna
429 (package
430 (name "gupnp-dlna")
431 (version "0.10.5")
432 (source (origin
433 (method url-fetch)
434 (uri (string-append "mirror://gnome/sources/" name "/"
435 (version-major+minor version) "/"
436 name "-" version ".tar.xz"))
437 (sha256
438 (base32
439 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
440 (build-system gnu-build-system)
441 (native-inputs
442 `(("gettext" ,gettext-minimal)
443 ("glib:bin" ,glib "bin")
444 ("gobject-introspection" ,gobject-introspection)
445 ("gtk-doc" ,gtk-doc)
446 ("libxml" ,libxml2)
447 ("pkg-config" ,pkg-config)
448 ("vala" ,vala)))
449 (inputs
450 `(("gstreamer" ,gstreamer)
451 ("gupnp" ,gupnp)))
452 (propagated-inputs
453 `(("gst-plugins-base" ,gst-plugins-base)
454 ("gst-plugins-good" ,gst-plugins-good)))
455 (synopsis "GUPnP DLNA for GNOME")
456 (description "This package provides a small utility library to
457support DLNA-related tasks such as media profile guessing, transcoding to a
458given profile, etc. DLNA is a subset of UPnP A/V.")
459 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
460 (license license:lgpl2.0+)))
461
1b4cb628
RG
462(define-public gupnp-av
463 (package
464 (name "gupnp-av")
465 (version "0.12.11")
466 (source (origin
467 (method url-fetch)
468 (uri (string-append "mirror://gnome/sources/" name "/"
469 (version-major+minor version) "/"
470 name "-" version ".tar.xz"))
471 (sha256
472 (base32
473 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
474 (build-system gnu-build-system)
475 (native-inputs
476 `(("gettext" ,gettext-minimal)
477 ("glib:bin" ,glib "bin")
478 ("gobject-introspection" ,gobject-introspection)
479 ("gtk-doc" ,gtk-doc)
480 ("libxml" ,libxml2)
481 ("pkg-config" ,pkg-config)))
482 (inputs
483 `(("gtk+" ,gtk+)
484 ("gupnp" ,gupnp)))
485 (synopsis "GUPnP A/V for GNOME")
486 (description "This package provides a small library for handling
487and implementation of UPnP A/V profiles.")
488 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
489 (license license:lgpl2.0+)))
e05471a1 490
02ebbca8
RG
491(define-public libmediaart
492 (package
493 (name "libmediaart")
494 (version "1.9.4")
495 (source (origin
496 (method url-fetch)
497 (uri (string-append "mirror://gnome/sources/" name "/"
498 (version-major+minor version) "/"
499 name "-" version ".tar.xz"))
500 (sha256
501 (base32
502 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
503 (build-system gnu-build-system)
504 (native-inputs
505 `(("glib:bin" ,glib "bin")
506 ("pkg-config" ,pkg-config)))
507 (inputs
508 `(("gdk-pixbuf" ,gdk-pixbuf)
509 ("gettext" ,gettext-minimal)
510 ("gobject-introspection" ,gobject-introspection)
511 ("gtk+:doc", gtk+ "doc")
512 ("vala" ,vala)))
513 (synopsis "Media art library for the GNOME desktop")
514 (description
515 "The libmediaart library is the foundation for media art caching,
516extraction, and lookup for applications on the desktop.")
517 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
518 (license license:lgpl2.1+)))
519
a26680eb
RG
520(define-public gnome-initial-setup
521 (package
522 (name "gnome-initial-setup")
523 (version "3.32.1")
524 (source (origin
525 (method url-fetch)
526 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
527 (version-major+minor version)
528 "/gnome-initial-setup-" version ".tar.xz"))
529 (sha256
530 (base32
531 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
532 (build-system meson-build-system)
533 (arguments
a65cc579
DM
534 '(#:configure-flags '(;; Enable camera support for user selfie.
535 "-Dcheese=auto"
536 "-Dsystemd=false")))
a26680eb
RG
537 (native-inputs
538 `(("gettext" ,gettext-minimal)
539 ("glib:bin" ,glib "bin")
540 ("gobject-introspection" ,gobject-introspection)
541 ("gtk+:bin" ,gtk+ "bin")
542 ("pkg-config" ,pkg-config)))
543 (inputs
544 `(("accountsservice" ,accountsservice)
545 ;("adwaita-icon-theme" ,adwaita-icon-theme)
546 ("gdm" ,gdm)
547 ("geoclue" ,geoclue)
548 ("gnome-desktop" ,gnome-desktop)
549 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
550 ("gnome-online-accounts" ,gnome-online-accounts)
551 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
552 ("gstreamer" ,gstreamer)
553 ("ibus" ,ibus)
554 ("json-glib" ,json-glib)
555 ("krb5" ,mit-krb5)
556 ("libgweather" ,libgweather)
557 ("libsecret" ,libsecret)
558 ("network-manager" ,network-manager)
559 ("network-manager-applet" ,network-manager-applet)
560 ("packagekit" ,packagekit)
561 ("polkit" ,polkit)
562 ("pwquality" ,libpwquality)
563 ("rest" ,rest)
564 ("upower" ,upower)
565 ("webkitgtk" ,webkitgtk)))
566 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
567 (description "This package provides a set-up wizard when a
568user logs into GNOME for the first time. It typically provides a
569tour of all gnome components and allows the user to set them up.")
a26680eb
RG
570 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
571 (license license:gpl2)))
572
b5f01392
RG
573(define-public gnome-user-share
574 (package
575 (name "gnome-user-share")
576 (version "3.33.1")
577 (source (origin
578 (method url-fetch)
579 (uri (string-append "mirror://gnome/sources/" name "/"
580 (version-major+minor version) "/"
581 name "-" version ".tar.xz"))
582 (sha256
583 (base32
584 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
585 (build-system meson-build-system)
586 (arguments
587 `(#:glib-or-gtk? #t
588 #:configure-flags
589 `("-Dsystemd=false"
590 ;; Enable nautilus extension for file sharing.
591 "-Dnautilus_extension=true")))
592 (native-inputs
593 `(("gettext" ,gettext-minimal)
594 ("glib:bin" ,glib "bin")
595 ("gobject-introspection" ,gobject-introspection)
596 ("gtk+:bin" ,gtk+ "bin")
597 ("pkg-config" ,pkg-config)
598 ("yelp-tools" ,yelp-tools)))
599 (inputs
600 `(("glib" ,glib)
601 ("gnome-bluetooth" ,gnome-bluetooth)
602 ("gtk+" ,gtk+)
603 ("libcanberra" ,libcanberra)
604 ("libnotify" ,libnotify)
605 ("nautilus" ,nautilus))) ; For nautilus extension.
606 (synopsis "File sharing for GNOME desktop")
607 (description "GNOME User Share is a small package that binds together
608various free software projects to bring easy to use user-level file
609sharing to the masses.")
610 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 611 (license license:gpl2+)))
b5f01392 612
04b201bb
RG
613(define-public sushi
614 (package
615 (name "sushi")
616 (version "3.32.1")
617 (source (origin
618 (method url-fetch)
619 (uri (string-append "mirror://gnome/sources/" name "/"
620 (version-major+minor version) "/"
621 name "-" version ".tar.xz"))
622 (sha256
623 (base32
624 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
625 (build-system meson-build-system)
626 (arguments
627 `(#:glib-or-gtk? #t
628 #:phases
629 (modify-phases %standard-phases
630 (add-after 'glib-or-gtk-wrap 'wrap-typelib
631 (lambda* (#:key outputs #:allow-other-keys)
632 (let ((prog (string-append (assoc-ref outputs "out")
633 "/bin/sushi")))
634 ;; Put existing typelibs before sushi's deps, so as to correctly
635 ;; infer gdk-pixbuf
636 (wrap-program prog
637 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
638 #t))))))
639 (native-inputs
640 `(("glib:bin" ,glib "bin")
641 ("gettext" ,gettext-minimal)
642 ("gobject-introspection" ,gobject-introspection)
643 ("pkg-config" ,pkg-config)))
644 (inputs
645 `(("clutter" ,clutter)
646 ("clutter-gst" ,clutter-gst)
647 ("clutter-gtk" ,clutter-gtk)
648 ("evince" ,evince) ; For file previewing.
649 ("freetype" ,freetype)
650 ("gdk-pixbuf" ,gdk-pixbuf)
651 ("gjs" ,gjs)
652 ("gst-plugins-base" ,gst-plugins-base)
653 ("gstreamer" ,gstreamer)
654 ("gtksourceview" ,gtksourceview-3)
655 ("harfbuzz" ,harfbuzz)
656 ("libepoxy" ,libepoxy)
657 ("libmusicbrainz" ,libmusicbrainz)
658 ("libxml2" ,libxml2)
659 ("neon" ,neon)
660 ("webkitgtk" ,webkitgtk)))
661 (synopsis "File previewer for the GNOME desktop")
662 (description "Sushi is a DBus-activated service that allows applications to
663preview files on the GNOME desktop.")
664 (home-page "https://gitlab.gnome.org/GNOME/sushi")
665 (license license:gpl2+)))
666
89af0902
RG
667(define-public rygel
668 (package
669 (name "rygel")
670 (version "0.38.3")
671 (source (origin
672 (method url-fetch)
673 (uri (string-append "mirror://gnome/sources/" name "/"
674 (version-major+minor version) "/"
675 name "-" version ".tar.xz"))
676 (sha256
677 (base32
678 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
679 (build-system gnu-build-system)
680 (native-inputs
681 `(("gettext" ,gettext-minimal)
682 ("gobject-introspection" ,gobject-introspection)
683 ("gtk-doc" ,gtk-doc)
684 ("pkg-config" ,pkg-config)
685 ("vala" ,vala)))
686 (inputs
687 `(("gdk-pixbuf" ,gdk-pixbuf)
688 ("gssdp" ,gssdp)
689 ("gstreamer" ,gstreamer)
690 ("gst-plugins-base" ,gst-plugins-base)
691 ("gtk+" ,gtk+)
692 ("gupnp" ,gupnp)
693 ("gupnp-av" ,gupnp-av)
694 ("gupnp-dlna" ,gupnp-dlna)
695 ("libgee" ,libgee)
696 ("libmediaart" ,libmediaart)
697 ("libsoup" ,libsoup)
698 ("libxslt" ,libxslt)
699 ("libunistring" ,libunistring)
700 ("tracker" ,tracker)))
701 (synopsis "Share audio, video, and pictures with other devices")
702 (description
703 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
704MediaRenderer}) for GNOME that allows you to easily share audio, video, and
705pictures, and to control a media player on your home network.
706
707Rygel achieves interoperability with other devices by trying to conform to the
708strict requirements of DLNA and by converting media on-the-fly to formats that
709client devices can handle.")
710 (home-page "https://wiki.gnome.org/Projects/Rygel")
711 (license (list
712 ;; For logo (data/icons/*).
713 license:cc-by-sa3.0
714 ;; For all others.
715 license:lgpl2.1+))))
716
47e87093
RG
717(define-public libnma
718 (package
719 (name "libnma")
720 (version "1.8.26")
721 (source (origin
722 (method url-fetch)
723 (uri (string-append "mirror://gnome/sources/" name "/"
724 (version-major+minor version) "/"
725 name "-" version ".tar.xz"))
726 (sha256
727 (base32
728 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
729 (build-system meson-build-system)
730 (arguments
731 `(#:glib-or-gtk? #t))
732 (native-inputs
733 `(("gettext" ,gettext-minimal)
734 ("glib:bin" ,glib "bin")
735 ("gtk-doc" ,gtk-doc)
736 ("gobject-introspection" ,gobject-introspection)
737 ("pkg-config" ,pkg-config)))
738 (inputs
739 `(("adwaita-icon-theme" ,adwaita-icon-theme)
740 ("gcr" ,gcr)
741 ("gtk+" ,gtk+)
742 ("iso-codes" ,iso-codes)
743 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
744 ("network-manager" ,network-manager)))
745 (synopsis "Network Manager's applet library")
746 (description "Libnma is an applet library for Network Manager. It was
747initially part of network-manager-applet and has now become a separate
748project.")
749 (home-page "https://gitlab.gnome.org/GNOME/libnma")
750
751 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
752 ;; "LGPL-2.1+".
753 (license license:gpl2+)))
754
30416265
RG
755(define-public gnome-menus
756 (package
757 (name "gnome-menus")
758 (version "3.32.0")
759 (source (origin
760 (method url-fetch)
761 (uri (string-append "mirror://gnome/sources/gnome-menus/"
762 (version-major+minor version) "/"
763 name "-" version ".tar.xz"))
764 (sha256
765 (base32
766 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
767 (build-system gnu-build-system)
768 (native-inputs
769 `(("gettext" ,gettext-minimal)
770 ("glib" ,glib)
771 ("pkg-config" ,pkg-config)))
772 (synopsis "Menu support for GNOME desktop")
773 (description "GNOME Menus contains the libgnome-menu library, the layout
774configuration files for the GNOME menu, as well as a simple menu editor.")
775 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 776 (license license:lgpl2.0+)))
30416265 777
d61a894b
CB
778(define-public deja-dup
779 (package
780 (name "deja-dup")
781 (version "34.3")
782 (source (origin
783 (method url-fetch)
784 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
785 (sha256
786 (base32
787 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
788 (patches
789 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
790 (build-system glib-or-gtk-build-system)
791 (arguments
792 `(#:modules ((guix build gnu-build-system)
793 ((guix build cmake-build-system) #:prefix cmake:)
794 (guix build glib-or-gtk-build-system)
795 (guix build utils))
796 #:imported-modules (,@%glib-or-gtk-build-system-modules
797 (guix build cmake-build-system))
798 #:test-target "test"
799 #:configure-flags (list (string-append
800 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
801 (string-append
802 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
803 #:phases
804 (modify-phases %standard-phases
805 (add-after 'unpack 'patch-lockfile-deletion
806 (lambda rest
807 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
808 (("/bin/rm")
809 (which "rm")))))
810 (replace 'configure
811 (assoc-ref cmake:%standard-phases 'configure))
812 (delete 'check) ;; Fails due to issues with DBus
813 (add-after 'install 'wrap-deja-dup
814 (lambda* (#:key inputs outputs #:allow-other-keys)
815 (let ((python (assoc-ref inputs "python"))
816 (python-path (getenv "PYTHONPATH"))
817 (duplicity (assoc-ref inputs "duplicity"))
818 (out (assoc-ref outputs "out")))
819 (for-each
820 (lambda (program)
821 (wrap-program program
822 `("PATH" ":" prefix (,(string-append python "/bin")
823 ,(string-append duplicity "/bin"))))
824 (wrap-program program
825 `("PYTHONPATH" ":" prefix (,python-path))))
826
827 (find-files (string-append out "/bin")))
828 #t))))))
829 (inputs
830 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
831 ("gobject-introspection" ,gobject-introspection)
832 ("duplicity" ,duplicity)
61506fe5 833 ("python" ,python-2)
d61a894b
CB
834 ("python-pygobject" ,python2-pygobject)
835 ("gtk+" ,gtk+)
836 ("libnotify" ,libnotify)
837 ("libpeas" ,libpeas)
838 ("libsecret" ,libsecret)
839 ("packagekit" ,packagekit)))
840 (native-inputs
841 `(("pkg-config" ,pkg-config)
842 ("vala" ,vala)
843 ("gettext" ,gettext-minimal)
844 ("itstool" ,itstool)
845 ("intltool" ,intltool)
c69959f0 846 ("cmake" ,cmake-minimal)))
d61a894b
CB
847 (home-page "https://launchpad.net/deja-dup")
848 (synopsis "Simple backup tool, for regular encrypted backups")
849 (description
850 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
851uses duplicity as the backend, which supports incremental backups and storage
852either on a local, or remote machine via a number of methods.")
853 (license license:gpl3+)))
854
823b77fb
RG
855(define-public gnome-user-docs
856 (package
857 (name "gnome-user-docs")
858 (version "3.32.3")
859 (source
860 (origin
861 (method url-fetch)
862 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
863 (version-major+minor version)
864 "/gnome-user-docs-" version ".tar.xz"))
865 (sha256
866 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
867 (build-system gnu-build-system)
868 (native-inputs
869 `(("gettext" ,gettext-minimal)
870 ("itstool" ,itstool)
871 ("pkg-config" ,pkg-config)
872 ("xmllint" ,libxml2)))
873 (synopsis "User documentation for the GNOME desktop")
874 (description
875 "The GNOME User Documentation explains how to use the GNOME desktop and its
876components. It covers usage and setup of the core GNOME programs by end-users
877and system administrators.")
878 (home-page "https://live.gnome.org/DocumentationProject")
879 (license license:cc-by3.0)))
880
be93299d
RG
881(define-public gnome-getting-started-docs
882 (package
883 (name "gnome-getting-started-docs")
884 (version "3.32.2")
885 (source
886 (origin
887 (method url-fetch)
888 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
889 (version-major+minor version)
890 "/gnome-getting-started-docs-" version ".tar.xz"))
891 (sha256
892 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
893 (build-system gnu-build-system)
894 (native-inputs
895 `(("gettext" ,gettext-minimal)
896 ("itstool" ,itstool)
897 ("pkg-config" ,pkg-config)
898 ("xmllint" ,libxml2)))
899 (synopsis "Help to get new users started with the GNOME desktop")
900 (description
901 "The GNOME Getting Started Documentation contains GNOME's intuitive
902\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
903
904It is normally used together with @command{gnome-initial-setup}, but is also
905useful as a tutorial and users' guide for new or less experienced users.")
906 (home-page "https://live.gnome.org/DocumentationProject")
907 (license license:cc-by-sa3.0)))
908
a56be436
RJ
909(define-public dia
910 ;; This version from GNOME's repository includes fixes for compiling with
911 ;; recent versions of the build tools. The latest activity on the
912 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
913 ;; fixes in 2016.
914 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
915 (package
916 (name "dia")
914c8cdf 917 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
918 (source (origin
919 (method git-fetch)
920 (uri (git-reference
914c8cdf 921 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 922 (commit commit)))
914c8cdf 923 (file-name (git-file-name name version))
a56be436
RJ
924 (sha256
925 (base32
926 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
927 (build-system gnu-build-system)
928 (inputs
a315afa3 929 `(("freetype" ,freetype)
a56be436
RJ
930 ("gdk-pixbuf" ,gdk-pixbuf)
931 ("gtk+" ,gtk+-2)
a315afa3 932 ("libart-lgpl" ,libart-lgpl)
a56be436 933 ("libxml2" ,libxml2)
a315afa3 934 ("pango" ,pango)))
a56be436 935 (native-inputs
a315afa3 936 `(("autoconf" ,autoconf)
a56be436 937 ("automake" ,automake)
a315afa3
EF
938 ("intltool" ,intltool)
939 ("glib" ,glib "bin")
a56be436
RJ
940 ("libtool" ,libtool)
941 ("perl" ,perl)
a315afa3 942 ("pkg-config" ,pkg-config)
a56be436 943 ("python-wrapper" ,python-wrapper)))
a56be436
RJ
944 (home-page "https://wiki.gnome.org/Apps/Dia")
945 (synopsis "Diagram creation for GNOME")
946 (description "Dia can be used to draw different types of diagrams, and
947includes support for UML static structure diagrams (class diagrams), entity
948relationship modeling, and network diagrams. The program supports various file
949formats like PNG, SVG, PDF and EPS.")
950 (license license:gpl2+))))
951
d0b19e44
RW
952;; This is the unstable release, but it is required for the current stable
953;; release of gvfs (1.38.1).
adc5cb1b
KK
954(define-public libgdata
955 (package
956 (name "libgdata")
d0b19e44 957 (version "0.17.9")
adc5cb1b
KK
958 (source (origin
959 (method url-fetch)
960 (uri (string-append "mirror://gnome/sources/" name "/"
961 (version-major+minor version) "/"
962 name "-" version ".tar.xz"))
963 (sha256
964 (base32
d0b19e44 965 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
966 (build-system gnu-build-system)
967 (arguments
968 '(#:phases
969 (modify-phases %standard-phases
448052b7
TGR
970 (add-before 'check 'disable-failing-tests
971 (lambda _
972 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
973 ;; They have been removed in libgdata 0.17.6, so just do the same.
974 (substitute* "gdata/tests/Makefile"
975 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
976 #t)))))
977 (native-inputs
978 `(("glib:bin" ,glib "bin")
979 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
980 ("intltool" ,intltool)
981 ("pkg-config" ,pkg-config)
982 ("uhttpmock" ,uhttpmock)))
983 (inputs
984 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 985 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
986 (propagated-inputs
987 `(("gcr" ,gcr)
d0b19e44 988 ("glib" ,glib)
14c297fd 989 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 990 ("json-glib" ,json-glib)
adc5cb1b 991 ("liboauth" ,liboauth)
d0b19e44 992 ("libsoup" ,libsoup)
adc5cb1b
KK
993 ("libxml2" ,libxml2)))
994 (home-page "https://wiki.gnome.org/Projects/libgdata")
995 (synopsis "Library for accessing online service APIs")
996 (description
997 "libgdata is a GLib-based library for accessing online service APIs using
998the GData protocol — most notably, Google's services. It provides APIs to
999access the common Google services, and has full asynchronous support.")
1000 (license license:lgpl2.1+)))
1001
94e10cf4
KK
1002(define-public libgxps
1003 (package
1004 (name "libgxps")
66470a5a 1005 (version "0.3.1")
94e10cf4
KK
1006 (source (origin
1007 (method url-fetch)
7f10628c 1008 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1009 (version-major+minor version) "/"
1010 name "-" version ".tar.xz"))
1011 (sha256
1012 (base32
66470a5a 1013 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1014 (build-system meson-build-system)
94e10cf4
KK
1015 (native-inputs
1016 `(("gobject-introspection" ,gobject-introspection)
1017 ("pkg-config" ,pkg-config)))
1018 (inputs
c8d62d93 1019 `(("gtk+" ,gtk+)
b6b3e512 1020 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1021 ("lcms" ,lcms)
0a6e9e13 1022 ("libtiff" ,libtiff)))
c8d62d93
MB
1023 (propagated-inputs
1024 ;; In Requires of libgxps.pc.
1025 `(("cairo" ,cairo)
1026 ("glib" ,glib)
1027 ("libarchive" ,libarchive)))
94e10cf4
KK
1028 (home-page "https://wiki.gnome.org/Projects/libgxps")
1029 (synopsis "GObject-based library for handling and rendering XPS documents")
1030 (description
1031 "libgxps is a GObject-based library for handling and rendering XPS
1032documents. This package also contains binaries that can convert XPS documents
1033to other formats.")
1034 (license license:lgpl2.1+)))
1035
4e09f57a
RG
1036(define-public gnome-characters
1037 (package
1038 (name "gnome-characters")
1039 (version "3.30.0")
1040 (source
1041 (origin
1042 (method url-fetch)
1043 (uri (string-append "mirror://gnome/sources/"
1044 "gnome-characters/" (version-major+minor version)
1045 "/gnome-characters-" version ".tar.xz"))
1046 (sha256
1047 (base32
1048 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1049 (build-system meson-build-system)
5757c641 1050 (arguments
1051 `(#:glib-or-gtk? #t
1052 #:phases (modify-phases %standard-phases
1053 (add-after 'install 'wrap
1054 (lambda* (#:key outputs #:allow-other-keys)
1055 ;; GNOME Characters needs Typelib files from GTK and
1056 ;; gnome-desktop.
1057 (wrap-program (string-append (assoc-ref outputs "out")
1058 "/bin/gnome-characters")
1059 `("GI_TYPELIB_PATH" ":" prefix
1060 (,(getenv "GI_TYPELIB_PATH"))))
1061 #t)))))
4e09f57a
RG
1062 (native-inputs
1063 `(("gettext" ,gettext-minimal)
1064 ("glib:bin" ,glib "bin")
1065 ("gtk+:bin" ,gtk+ "bin")
1066 ("pkg-config" ,pkg-config)
1067 ("python" ,python-minimal)))
1068 (inputs
1069 `(("gjs" ,gjs)
1070 ("gtk+" ,gtk+)
5757c641 1071 ("libunistring" ,libunistring)
1072 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1073 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1074 (synopsis "Find and insert unusual characters")
1075 (description "Characters is a simple utility application to find
1076and insert unusual characters. It allows you to quickly find the
1077character you are looking for by searching for keywords.")
1078 (license license:bsd-3)))
1079
7aab13f1
ML
1080(define-public gnome-common
1081 (package
1082 (name "gnome-common")
af83490d 1083 (version "3.18.0")
7aab13f1
ML
1084 (source
1085 (origin
1086 (method url-fetch)
1087 (uri (string-append "mirror://gnome/sources/" name "/"
1088 (version-major+minor version) "/"
1089 name "-" version ".tar.xz"))
1090 (sha256
1091 (base32
af83490d 1092 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1093 (build-system gnu-build-system)
1094 (home-page "https://www.gnome.org/")
1095 (synopsis "Bootstrap GNOME modules built from Git")
1096 (description "gnome-common contains various files needed to bootstrap
1097GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1098can be used to configure a source directory checked out from Git and some
1099commonly used macros.")
1100 (license license:gpl2+)))
1101
4e868d22
RG
1102(define-public gnome-contacts
1103 (package
1104 (name "gnome-contacts")
6a6138b2 1105 (version "3.32.1")
4e868d22
RG
1106 (source (origin
1107 (method url-fetch)
1108 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1109 (version-major+minor version) "/"
1110 name "-" version ".tar.xz"))
1111 (sha256
1112 (base32
6a6138b2 1113 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
1114 (build-system meson-build-system)
1115 (arguments
1116 `(#:phases
1117 (modify-phases %standard-phases
1118 (add-after 'unpack 'generate-vapis
1119 (lambda* (#:key inputs #:allow-other-keys)
1120 ;; To generate goa's missing .vapi file
1121 (define goa
1122 (assoc-ref inputs "gnome-online-accounts:lib"))
1123
1124 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1125 "--library=goa-1.0"
1126 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1127 #t)))))
1128 (native-inputs
1129 `(("glib:bin" ,glib "bin")
1130 ("gtk+:bin" ,gtk+ "bin")
1131 ("pkg-config" ,pkg-config)))
1132 (inputs
1133 `(("cheese" ,cheese)
1134 ("docbook-xml" ,docbook-xml)
1135 ("dockbook-xsl" ,docbook-xsl)
1136 ("evolution-data-server" ,evolution-data-server)
1137 ("gettext" ,gettext-minimal)
1138 ("gnome-desktop" ,gnome-desktop)
1139 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1140 ("gobject-introspection" ,gobject-introspection)
1141 ("gst-plugins-base" ,gst-plugins-base)
1142 ("gtk+" ,gtk+)
1143 ("libgee" ,libgee)
1144 ("libxslt" ,libxslt)
1145 ("telepathy-glib" ,telepathy-glib)
1146 ("vala" ,vala)))
1147 (propagated-inputs
1148 `(("folks", folks)
1149 ("telepathy-mission-control" ,telepathy-mission-control)))
1150 (synopsis "GNOME's integrated address book")
1151 (description
1152 "GNOME Contacts organizes your contact information from online and
1153offline sources, providing a centralized place for managing your contacts.")
1154 (home-page "https://wiki.gnome.org/Apps/Contacts")
1155 (license license:gpl2+)))
1156
9cc98f8a
CR
1157(define-public gnome-desktop
1158 (package
1159 (name "gnome-desktop")
e8a26caa 1160 (version "3.32.2")
9cc98f8a
CR
1161 (source
1162 (origin
1163 (method url-fetch)
b38e45d8
EB
1164 (uri (string-append "mirror://gnome/sources/" name "/"
1165 (version-major+minor version) "/"
9cc98f8a
CR
1166 name "-" version ".tar.xz"))
1167 (sha256
1168 (base32
e8a26caa
KK
1169 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1170 (build-system meson-build-system)
a0fe7c06
CB
1171 (arguments
1172 '(#:phases
1173 (modify-phases %standard-phases
1174 (add-before 'configure 'patch-path
1175 (lambda* (#:key inputs #:allow-other-keys)
1176 (let ((libc (assoc-ref inputs "libc")))
1177 (substitute* "libgnome-desktop/gnome-languages.c"
1178 (("\"locale\"")
1179 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1180 #t)))
1181 (add-before 'check 'pre-check
1182 (lambda* (#:key inputs #:allow-other-keys)
1183 ;; Tests require a running X server and locales.
1184 (system "Xvfb :1 &")
1185 (setenv "DISPLAY" ":1")
1186 (setenv "GUIX_LOCPATH"
1187 (string-append (assoc-ref inputs "glibc-locales")
1188 "/lib/locale"))
1189 #t)))))
9cc98f8a 1190 (native-inputs
e8a26caa
KK
1191 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1192 ("glibc-locales" ,glibc-locales) ; for tests
1193 ("gobject-introspection" ,gobject-introspection)
a8340482 1194 ("itstool" ,itstool)
bcb354ad
SB
1195 ("intltool" ,intltool)
1196 ("pkg-config" ,pkg-config)
e8a26caa
KK
1197 ("xmllint" ,libxml2)
1198 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1199 (propagated-inputs
1200 ;; Required by gnome-desktop-3.0.pc.
1201 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1202 ("gtk+" ,gtk+)
9cc98f8a 1203 ("iso-codes" ,iso-codes)
9863ce20 1204 ("libseccomp" ,libseccomp)
9cc98f8a 1205 ("libx11" ,libx11)
e8a26caa
KK
1206 ("xkeyboard-config" ,xkeyboard-config)))
1207 (inputs
1208 `(("gdk-pixbuf" ,gdk-pixbuf)
1209 ("glib" ,glib)
9cc98f8a
CR
1210 ("libxext" ,libxext)
1211 ("libxkbfile" ,libxkbfile)
e8a26caa 1212 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1213 (home-page "https://www.gnome.org/")
1214 (synopsis
35b9e423 1215 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1216 (description
1217 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1218on the desktop, but that cannot live in the platform for various reasons.
1219There is no API or ABI guarantee, although we are doing our best to provide
1220stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1221
1222The gnome-about program helps find which version of GNOME is installed.")
1223 ; Some bits under the LGPL.
1dd26275 1224 (license license:gpl2+)))
9cc98f8a 1225
995b7261
AE
1226(define-public gnome-doc-utils
1227 (package
1228 (name "gnome-doc-utils")
1229 (version "0.20.10")
1230 (source
1231 (origin
1232 (method url-fetch)
b38e45d8
EB
1233 (uri (string-append "mirror://gnome/sources/" name "/"
1234 (version-major+minor version) "/"
995b7261
AE
1235 name "-" version ".tar.xz"))
1236 (sha256
1237 (base32
1238 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1239 (build-system gnu-build-system)
c4c4cc05 1240 (native-inputs
995b7261 1241 `(("intltool" ,intltool)
b4ce6300 1242 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1243 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1244 ("libxml2" ,libxml2)
1245 ("libxslt" ,libxslt)
1246 ("pkg-config" ,pkg-config)
1247 ("python-2" ,python-2)))
995b7261
AE
1248 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1249 (synopsis
1250 "Documentation utilities for the Gnome project")
1251 (description
1252 "Gnome-doc-utils is a collection of documentation utilities for the
1253Gnome project. It includes xml2po tool which makes it easier to translate
1254and keep up to date translations of documentation.")
1dd26275 1255 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1256
6c4f7022
DC
1257(define-public gnome-disk-utility
1258 (package
1259 (name "gnome-disk-utility")
e106d0a6 1260 (version "3.32.1")
6c4f7022
DC
1261 (source (origin
1262 (method url-fetch)
1263 (uri (string-append "mirror://gnome/sources/" name "/"
1264 (version-major+minor version) "/"
1265 name "-" version ".tar.xz"))
1266 (sha256
1267 (base32
e106d0a6 1268 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 1269 (build-system meson-build-system)
321c73c3
EF
1270 (arguments
1271 '(#:phases
1272 (modify-phases %standard-phases
1273 (add-after 'unpack 'skip-gtk-update-icon-cache
1274 ;; Don't create 'icon-theme.cache'.
1275 (lambda _
1276 (substitute* "meson_post_install.py"
1277 (("gtk-update-icon-cache") "true"))
1278 #t)))))
6c4f7022
DC
1279 (native-inputs
1280 `(("glib:bin" ,glib "bin")
1281 ("intltool" ,intltool)
1282 ("pkg-config" ,pkg-config)
1283 ("docbook-xml" ,docbook-xml)
1284 ("docbook-xsl" ,docbook-xsl)
1285 ("libxml2" ,libxml2)
1286 ("libxslt" ,libxslt)))
1287 (inputs
1288 `(("glib" ,glib)
1289 ("appstream-glib" ,appstream-glib)
1290 ("gnome-settings-daemon" ,gnome-settings-daemon)
1291 ("gtk+" ,gtk+)
1292 ("libcanberra" ,libcanberra)
1293 ("libdvdread" ,libdvdread)
1294 ("libnotify" ,libnotify)
1295 ("libpwquality" ,libpwquality)
1296 ("libsecret" ,libsecret)
1297 ("udisks" ,udisks)))
1298 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1299 (synopsis "Disk management utility for GNOME")
1300 (description "Disk management utility for GNOME.")
1301 (license license:gpl2+)))
1302
3d217317
RG
1303(define-public gnome-font-viewer
1304 (package
1305 (name "gnome-font-viewer")
1306 (version "3.30.0")
1307 (source (origin
1308 (method url-fetch)
1309 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1310 (version-major+minor version)
1311 "/gnome-font-viewer-" version ".tar.xz"))
1312 (sha256
1313 (base32
1314 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1315 (build-system meson-build-system)
1316 (arguments
1317 '(#:phases
1318 (modify-phases %standard-phases
1319 (add-after 'unpack 'patch-post-install-script
1320 (lambda _
1321 (substitute* "meson-postinstall.sh"
1322 (("update-desktop-database") (which "true")))
1323 #t)))))
1324 (native-inputs
1325 `(("gettext" ,gettext-minimal)
1326 ("glib:bin" ,glib "bin")
1327 ("pkg-config" ,pkg-config)))
1328 (inputs
1329 `(("glib" ,glib)
1330 ("gnome-desktop" ,gnome-desktop)
1331 ("gtk+" ,gtk+)))
1332 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1333 (synopsis "GNOME Fonts")
1334 (description "Application to show you the fonts installed on your computer
1335for your use as thumbnails. Selecting any thumbnails shows the full view of how
1336the font would look under various sizes.")
1337 (license license:gpl2+)))
1338
8ff49011
RW
1339(define-public gcr
1340 (package
1341 (name "gcr")
1de804da 1342 (version "3.34.0")
8ff49011 1343 (source (origin
0daf0efb
RW
1344 (method url-fetch)
1345 (uri (string-append "mirror://gnome/sources/" name "/"
1346 (version-major+minor version) "/"
1347 name "-" version ".tar.xz"))
1348 (sha256
1349 (base32
1de804da 1350 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1351 (build-system gnu-build-system)
1352 (arguments
0daf0efb
RW
1353 '(#:phases
1354 (modify-phases %standard-phases
1355 ;; These fail because /var/lib/dbus/machine-id is not present in the
1356 ;; build environment.
1357 (add-after 'unpack 'disable-failing-tests
1358 (lambda _
1de804da
MB
1359 (substitute* "Makefile.in"
1360 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1361 ""))
0daf0efb
RW
1362 #t))
1363 (add-before 'check 'pre-check
1364 (lambda _
1365 ;; Some tests expect to write to $HOME.
1366 (setenv "HOME" "/tmp")
1367 #t)))))
8ff49011
RW
1368 (inputs
1369 `(("dbus" ,dbus)
0daf0efb 1370 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1371 ("libgcrypt" ,libgcrypt)))
1372 (native-inputs
1de804da 1373 `(("python" ,python-wrapper) ;for tests
8ff49011 1374 ("pkg-config" ,pkg-config)
1de804da 1375 ("gettext" ,gettext-minimal)
8ff49011 1376 ("glib" ,glib "bin")
2af4f5b0 1377 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1378 ("libxml2" ,libxml2)
bea6b829 1379 ("vala" ,vala)
2af4f5b0 1380 ("xsltproc" ,libxslt)))
8ff49011
RW
1381 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1382 (propagated-inputs
1383 `(("p11-kit" ,p11-kit)
1384 ("glib" ,glib)
1385 ("gtk+" ,gtk+)))
f032d0be 1386 (home-page "https://www.gnome.org")
8ff49011
RW
1387 (synopsis "Libraries for displaying certificates and accessing key stores")
1388 (description
1389 "The GCR package contains libraries used for displaying certificates and
1390accessing key stores. It also provides the viewer for crypto files on the
1391GNOME Desktop.")
1392 (license license:lgpl2.1+)))
1393
c1354b90
LC
1394(define-public libgnome-keyring
1395 (package
1396 (name "libgnome-keyring")
5e8aec2c 1397 (version "3.12.0")
c1354b90
LC
1398 (source (origin
1399 (method url-fetch)
b38e45d8
EB
1400 (uri (string-append "mirror://gnome/sources/" name "/"
1401 (version-major+minor version) "/"
1402 name "-" version ".tar.xz"))
c1354b90
LC
1403 (sha256
1404 (base32
5e8aec2c 1405 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1406 (build-system gnu-build-system)
c1354b90 1407 (inputs
c4c4cc05 1408 `(("libgcrypt" ,libgcrypt)
c1354b90 1409 ("dbus" ,dbus)))
c4c4cc05
JD
1410 (native-inputs
1411 `(("pkg-config" ,pkg-config)
426adbe8 1412 ("glib" ,glib "bin")
c4c4cc05 1413 ("intltool" ,intltool)))
c1354b90
LC
1414 (propagated-inputs
1415 ;; Referred to in .h files and .pc.
1416 `(("glib" ,glib)))
f032d0be 1417 (home-page "https://www.gnome.org")
c1354b90
LC
1418 (synopsis "Accessing passwords from the GNOME keyring")
1419 (description
1420 "Client library to access passwords from the GNOME keyring.")
1421
1422 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1423 (license license:lgpl2.0+)))
c1354b90 1424
e99a3d6f
RW
1425(define-public gnome-keyring
1426 (package
1427 (name "gnome-keyring")
ab35cc6e 1428 (version "3.28.2")
e99a3d6f
RW
1429 (source (origin
1430 (method url-fetch)
1431 (uri (string-append "mirror://gnome/sources/" name "/"
1432 (version-major+minor version) "/"
1433 name "-" version ".tar.xz"))
1434 (sha256
1435 (base32
ab35cc6e 1436 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
1437 (build-system gnu-build-system)
1438 (arguments
1439 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1440 ;not exist
1441 #:configure-flags
1442 (list
1443 (string-append "--with-pkcs11-config="
1444 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1445 (string-append "--with-pkcs11-modules="
1446 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1447 #:phases
1448 (modify-phases %standard-phases
ab35cc6e
RW
1449 (add-after 'unpack 'fix-/bin/sh-reference
1450 (lambda _
1451 (substitute* "po/Makefile.in.in"
1452 (("/bin/sh") (which "sh")))
1453 #t))
5120f24f
RW
1454 (add-after 'unpack 'fix-docbook
1455 (lambda* (#:key inputs #:allow-other-keys)
1456 (substitute* "docs/Makefile.am"
1457 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1458 (string-append (assoc-ref inputs "docbook-xsl")
1459 "/xml/xsl/docbook-xsl-"
1460 ,(package-version docbook-xsl)
1461 "/manpages/docbook.xsl")))
1462 (setenv "XML_CATALOG_FILES"
1463 (string-append (assoc-ref inputs "docbook-xml")
1464 "/xml/dtd/docbook/catalog.xml"))
1465 ;; Rerun the whole thing to avoid version mismatch ("This is
1466 ;; Automake 1.15.1, but the definition used by this
1467 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1468 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1469 (invoke "autoconf")
1470 (invoke "aclocal")
1471 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1472 (inputs
1473 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1474 ("linux-pam" ,linux-pam)
ab35cc6e 1475 ("openssh" ,openssh)
e99a3d6f
RW
1476 ("dbus" ,dbus)
1477 ("gcr" ,gcr)))
1478 (native-inputs
1479 `(("pkg-config" ,pkg-config)
1480 ("glib" ,glib "bin")
5120f24f 1481 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1482 ("python" ,python-2) ;for tests
1483 ("intltool" ,intltool)
1484 ("autoconf" ,autoconf)
1485 ("automake" ,automake)
1486 ("libxslt" ,libxslt) ;for documentation
1487 ("docbook-xml" ,docbook-xml-4.2)
1488 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1489 (home-page "https://www.gnome.org")
e99a3d6f
RW
1490 (synopsis "Daemon to store passwords and encryption keys")
1491 (description
1492 "gnome-keyring is a program that keeps passwords and other secrets for
1493users. It is run as a daemon in the session, similar to ssh-agent, and other
1494applications locate it via an environment variable or D-Bus.
1495
1496The program can manage several keyrings, each with its own master password,
1497and there is also a session keyring which is never stored to disk, but
1498forgotten when the session ends.")
1499 (license license:lgpl2.1+)))
1500
c1354b90
LC
1501(define-public evince
1502 (package
1503 (name "evince")
936d5642 1504 (version "3.34.2")
c1354b90
LC
1505 (source (origin
1506 (method url-fetch)
ac631328 1507 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1508 (version-major+minor version) "/"
ac631328 1509 "evince-" version ".tar.xz"))
c1354b90
LC
1510 (sha256
1511 (base32
936d5642 1512 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1513 (build-system glib-or-gtk-build-system)
c1354b90 1514 (arguments
169b8f77 1515 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1516 #:phases
1517 (modify-phases %standard-phases
1518 (add-before 'install 'skip-gtk-update-icon-cache
1519 ;; Don't create 'icon-theme.cache'.
1520 (lambda _
1521 (substitute* "data/Makefile"
1522 (("gtk-update-icon-cache") "true"))
1523 #t)))))
c1354b90 1524 (inputs
9a096881
KK
1525 `(("libarchive" ,libarchive)
1526 ("libgxps" ,libgxps)
1527 ("libspectre" ,libspectre)
c769cf9f 1528 ("djvulibre" ,djvulibre)
c1354b90
LC
1529 ("ghostscript" ,ghostscript)
1530 ("poppler" ,poppler)
c769cf9f
SB
1531 ("libtiff" ,libtiff)
1532 ;; TODO:
c769cf9f
SB
1533 ;; Build libkpathsea as a shared library for DVI support.
1534 ;; ("libkpathsea" ,texlive-bin)
1535 ("gnome-desktop" ,gnome-desktop)
c1354b90 1536 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1537 ("gspell" ,gspell)
c1354b90 1538 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1539 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1540 ("gdk-pixbuf" ,gdk-pixbuf)
1541 ("atk" ,atk)
1542 ("pango" ,pango)
1543 ("gtk+" ,gtk+)
1544 ("glib" ,glib)
1545 ("libxml2" ,libxml2)
c1354b90
LC
1546 ("libsm" ,libsm)
1547 ("libice" ,libice)
96e42467 1548 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1549 ("dconf" ,dconf)
1550 ("libcanberra" ,libcanberra)
c769cf9f 1551 ("libsecret" ,libsecret)
a271096b 1552
c1354b90
LC
1553 ;; For tests.
1554 ("dogtail" ,python2-dogtail)))
96e42467 1555 (native-inputs
bcb354ad
SB
1556 `(("itstool" ,itstool)
1557 ("intltool" ,intltool)
426adbe8 1558 ("glib" ,glib "bin")
169b8f77 1559 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1560 ("pkg-config" ,pkg-config)
1561 ("xmllint" ,libxml2)))
c1354b90 1562 (home-page
f032d0be 1563 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1564 (synopsis "GNOME's document viewer")
1565 (description
1566 "Evince is a document viewer for multiple document formats. It
1567currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1568of Evince is to replace the multiple document viewers that exist
96e42467 1569on the GNOME Desktop with a single simple application.")
1dd26275 1570 (license license:gpl2+)))
c1354b90 1571
22e32e69
AE
1572(define-public gsettings-desktop-schemas
1573 (package
1574 (name "gsettings-desktop-schemas")
c900dabd 1575 (version "3.32.0")
22e32e69
AE
1576 (source
1577 (origin
1578 (method url-fetch)
1579 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1580 (version-major+minor version) "/"
22e32e69
AE
1581 name "-" version ".tar.xz"))
1582 (sha256
1583 (base32
c900dabd
KK
1584 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1585 (build-system meson-build-system)
65209ffa
LC
1586 (arguments
1587 '(#:phases (modify-phases %standard-phases
1588 (add-after 'unpack 'set-adwaita-theme-file-name
1589 (lambda* (#:key inputs #:allow-other-keys)
1590 ;; Provide the correct file name of the default GNOME
1591 ;; background, 'adwaita-timed.xml'.
1592 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1593 (substitute* (find-files "schemas"
1594 "\\.gschema\\.xml\\.in$")
1595 (("@datadir@/backgrounds/gnome")
1596 (string-append theme "/share/backgrounds/gnome")))
1597 #t))))))
22e32e69 1598 (inputs
65209ffa
LC
1599 `(("glib" ,glib)
1600 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1601 (native-inputs
1602 `(("intltool" ,intltool)
426adbe8 1603 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1604 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1605 ("pkg-config" ,pkg-config)))
1606 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1607 (synopsis
1608 "GNOME settings for various desktop components")
1609 (description
1610 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1611for settings shared by various components of the GNOME desktop.")
1dd26275 1612 (license license:lgpl2.1+)))
22e32e69 1613
27477d2d
AE
1614(define-public icon-naming-utils
1615 (package
1616 (name "icon-naming-utils")
1617 (version "0.8.90")
1618 (source
1619 (origin
1620 (method url-fetch)
5cc3096c 1621 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1622 version ".tar.bz2"))
1623 (sha256
1624 (base32
1625 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1626 (build-system gnu-build-system)
1627 (inputs
1628 `(("perl" ,perl)
1629 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1630 (arguments
1631 '(#:phases
dc1d3cde
KK
1632 (modify-phases %standard-phases
1633 (add-after 'install 'set-load-paths
1634 ;; Tell 'icon-name-mapping' where XML::Simple is.
1635 (lambda* (#:key outputs #:allow-other-keys)
1636 (let* ((out (assoc-ref outputs "out"))
1637 (prog (string-append out "/libexec/icon-name-mapping")))
1638 (wrap-program
1639 prog
1640 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1641 #t)))))
27477d2d
AE
1642 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1643 (synopsis
1644 "Utility to implement the Freedesktop Icon Naming Specification")
1645 (description
1646 "To help with the transition to the Freedesktop Icon Naming
1647Specification, the icon naming utility maps the icon names used by the
1648GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1649 (license license:lgpl2.1+)))
27477d2d 1650
7d3f3651
AE
1651(define-public gnome-icon-theme
1652 (package
1653 (name "gnome-icon-theme")
b32f58dd 1654 (version "3.12.0")
7d3f3651
AE
1655 (source
1656 (origin
1657 (method url-fetch)
1658 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1659 (version-major+minor version) "/"
7d3f3651
AE
1660 name "-" version ".tar.xz"))
1661 (sha256
1662 (base32
b32f58dd 1663 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1664 (build-system gnu-build-system)
5613c27d
SB
1665 (arguments
1666 '(#:configure-flags
1667 ;; Don't create 'icon-theme.cache'.
1668 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1669 (true (string-append coreutils "/bin/true")))
1670 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1671 (native-inputs
5613c27d 1672 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1673 ("intltool" ,intltool)
1674 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1675 (home-page "https://wiki.gnome.org/Personalization")
1676 (synopsis "GNOME icon theme")
1677 (description "Icons for the GNOME desktop.")
1dd26275 1678 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1679
14eeefa2
SB
1680;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1681(define-public adwaita-icon-theme
1682 (package (inherit gnome-icon-theme)
1683 (name "adwaita-icon-theme")
9be59d7f 1684 (version "3.32.0")
14eeefa2
SB
1685 (source (origin
1686 (method url-fetch)
1687 (uri (string-append "mirror://gnome/sources/" name "/"
1688 (version-major+minor version) "/"
1689 name "-" version ".tar.xz"))
1690 (sha256
1691 (base32
9be59d7f 1692 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1693 (native-inputs
1694 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1695
ae792dba
RW
1696(define-public tango-icon-theme
1697 (package
1698 (name "tango-icon-theme")
1699 (version "0.8.90")
1700 (source (origin
1701 (method url-fetch)
1702 (uri (string-append "http://tango.freedesktop.org/releases/"
1703 "tango-icon-theme-" version ".tar.bz2"))
1704 (sha256
1705 (base32
1706 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1707 (build-system gnu-build-system)
1708 (native-inputs
1709 `(("icon-naming-utils" ,icon-naming-utils)
1710 ("intltool" ,intltool)
1711 ("imagemagick" ,imagemagick)
1712 ("pkg-config" ,pkg-config)))
1713 (home-page "http://tango-project.org/")
1714 (synopsis "Tango icon theme")
1715 (description "This is an icon theme that follows the Tango visual
1716guidelines.")
1717 (license license:public-domain)))
1718
9167f8e6
LC
1719(define-public shared-mime-info
1720 (package
1721 (name "shared-mime-info")
404e386e 1722 (version "1.15")
9167f8e6
LC
1723 (source (origin
1724 (method url-fetch)
404e386e
MB
1725 (uri (string-append
1726 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1727 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1728 ".tar.xz"))
9167f8e6
LC
1729 (sha256
1730 (base32
404e386e 1731 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1732 (build-system gnu-build-system)
1733 (arguments
1734 ;; The build system appears not to be parallel-safe.
1735 '(#:parallel-build? #f))
1736 (inputs
1737 `(("glib" ,glib)
c4c4cc05 1738 ("libxml2" ,libxml2)))
9167f8e6 1739 (native-inputs
404e386e
MB
1740 `(("gettext" ,gettext-minimal)
1741 ("itstool" ,itstool)
c4c4cc05 1742 ("pkg-config" ,pkg-config)))
57e7d748 1743 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1744 (synopsis "Database of common MIME types")
1745 (description
1746 "The shared-mime-info package contains the core database of common types
1747and the update-mime-database command used to extend it. It requires glib2 to
1748be installed for building the update command. Additionally, it uses intltool
1749for translations, though this is only a dependency for the maintainers. This
1750database is translated at Transifex.")
1dd26275 1751 (license license:gpl2+)))
9167f8e6 1752
dd1fcddc
CB
1753(define-public system-config-printer
1754 (package
1755 (name "system-config-printer")
fa01e10d 1756 (version "1.5.12")
a5643044
TGR
1757 (source
1758 (origin
1759 (method url-fetch)
1760 (uri (string-append
1761 "https://github.com/OpenPrinting/system-config-printer/releases/"
1762 "download/" version
1763 "/system-config-printer-" version ".tar.xz"))
1764 (sha256
fa01e10d 1765 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1766 (build-system glib-or-gtk-build-system)
1767 (arguments
1768 `(#:imported-modules ((guix build python-build-system)
1769 ,@%glib-or-gtk-build-system-modules)
1770 #:phases
1771 (modify-phases %standard-phases
1772 (add-after 'unpack 'patch-Makefile.am
1773 (lambda _
1774 ;; The Makefile generates some scripts, so set a valid shebang
1775 (substitute* "Makefile.am"
1776 (("/bin/bash") (which "bash")))
1777 (delete-file "configure")
1778 #t))
1779 (add-after 'unpack 'patch-docbook-xml
1780 (lambda* (#:key inputs #:allow-other-keys)
1781 ;; Modify the man XML otherwise xmlto tries to access the network
1782 (substitute* "man/system-config-printer.xml"
1783 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1784 (string-append (assoc-ref inputs "docbook-xml")
1785 "/xml/dtd/docbook/")))
1786 #t))
1787 (add-after 'install 'wrap-for-python
1788 (@@ (guix build python-build-system) wrap))
1789 (add-after 'install 'wrap
1790 (lambda* (#:key outputs #:allow-other-keys)
1791 (let ((out (assoc-ref outputs "out"))
1792 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1793 (for-each
1794 (lambda (program)
1795 (wrap-program program
1796 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1797 (map (lambda (name)
1798 (string-append out "/bin/" name))
1799 '("system-config-printer"
1800 "system-config-printer-applet"
1801 "install-printerdriver"
1802 "scp-dbus-service"))))
1803 #t)))))
1804 (inputs
1805 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1806 ("gobject-introspection" ,gobject-introspection)
1807 ("python" ,python)
1808 ("cups" ,cups)
1809 ("python-dbus" ,python-dbus)
1810 ("python-pygobject" ,python-pygobject)
1811 ("python-pycups" ,python-pycups)
1812 ("python-requests" ,python-requests)
1813 ("python-pycairo" ,python-pycairo)
1814 ("libnotify" ,libnotify)
1815 ("packagekit" ,packagekit)))
1816 (native-inputs
1817 `(("pkg-config" ,pkg-config)
1818 ("desktop-file-utils" ,desktop-file-utils)
1819 ("glib" ,glib)
1820 ("autoconf" ,autoconf)
1821 ("automake" ,automake)
1822 ("intltool" ,intltool)
1823 ("xmlto" ,xmlto)
1824 ("docbook-xml" ,docbook-xml-4.1.2)
1825 ("docbook-xsl" ,docbook-xsl)
1826 ("libxml2" ,libxml2)))
1827 (home-page "https://github.com/zdohnal/system-config-printer")
1828 (synopsis "CUPS administration tool")
1829 (description
1830 "system-config-printer is a CUPS administration tool. It's written in
1831Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1832configuring CUPS.")
1833 (license license:gpl2+)))
1834
bef4dd92
AE
1835(define-public hicolor-icon-theme
1836 (package
1837 (name "hicolor-icon-theme")
851cb6dd 1838 (version "0.17")
bef4dd92
AE
1839 (source
1840 (origin
1841 (method url-fetch)
5cc3096c 1842 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1843 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1844 (sha256
1845 (base32
851cb6dd 1846 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1847 (build-system gnu-build-system)
1848 (arguments
1849 `(#:tests? #f)) ; no check target
57e7d748 1850 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1851 (synopsis
1852 "Freedesktop icon theme")
1853 (description
1854 "Freedesktop icon theme.")
1dd26275 1855 (license license:gpl2)))
bef4dd92 1856
d9c1a22b
AE
1857(define-public libnotify
1858 (package
1859 (name "libnotify")
195bfa68 1860 (version "0.7.7")
d9c1a22b
AE
1861 (source
1862 (origin
1863 (method url-fetch)
1864 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1865 (version-major+minor version) "/"
d9c1a22b
AE
1866 name "-" version ".tar.xz"))
1867 (sha256
1868 (base32
195bfa68 1869 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1870 (build-system gnu-build-system)
6acf6cec
MB
1871 (arguments
1872 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1873 (propagated-inputs
1874 `(;; In Requires of libnotify.pc.
1875 ("gdk-pixbuf" ,gdk-pixbuf)
1876 ("glib" ,glib)))
d9c1a22b 1877 (inputs
7ef08efa 1878 `(("gtk+" ,gtk+)
c4c4cc05
JD
1879 ("libpng" ,libpng)))
1880 (native-inputs
426adbe8 1881 `(("pkg-config" ,pkg-config)
277a7d82
JN
1882 ("glib" ,glib "bin")
1883 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1884 (home-page "https://developer-next.gnome.org/libnotify/")
1885 (synopsis
1886 "GNOME desktop notification library")
1887 (description
1888 "Libnotify is a library that sends desktop notifications to a
35b9e423 1889notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1890notifications can be used to inform the user about an event or display
1891some form of information without getting in the user's way.")
1dd26275 1892 (license license:lgpl2.1+)))
7a8605ce
CR
1893
1894(define-public libpeas
1895 (package
1896 (name "libpeas")
f2d56e39 1897 (version "1.24.1")
7a8605ce
CR
1898 (source
1899 (origin
1900 (method url-fetch)
1901 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1902 (version-major+minor version) "/"
7a8605ce
CR
1903 name "-" version ".tar.xz"))
1904 (sha256
1905 (base32
f2d56e39
MB
1906 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1907 (build-system meson-build-system)
1908 (arguments
1909 '(#:phases
1910 (modify-phases %standard-phases
1911 (add-before 'check 'start-xserver
1912 (lambda* (#:key inputs #:allow-other-keys)
1913 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1914 (disp ":1"))
1915 (setenv "DISPLAY" disp)
1916 ;; Tests require a running X server.
1917 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1918 #t))))))
7a8605ce 1919 (inputs
2ed6522a
SB
1920 `(("gtk+" ,gtk+)
1921 ("glade" ,glade3)
2ed6522a
SB
1922 ("python" ,python)
1923 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1924 (native-inputs
1925 `(("pkg-config" ,pkg-config)
f2d56e39 1926 ("gettext" ,gettext-minimal)
93622993 1927 ("glib:bin" ,glib "bin")
141aed80 1928 ("gobject-introspection" ,gobject-introspection)
f2d56e39 1929 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
1930 (propagated-inputs
1931 ;; The .pc file "Requires" gobject-introspection.
1932 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1933 (home-page "https://wiki.gnome.org/Libpeas")
1934 (synopsis "GObject plugin system")
1935 (description
d1e4ad1b
TGR
1936 "Libpeas is a gobject-based plugin engine, targeted at giving every
1937application the chance to assume its own extensibility. It also has a set of
1938features including, but not limited to: multiple extension points; on-demand
1939(lazy) programming language support for C, Python and JS; simplicity of the
1940API.")
1dd26275 1941 (license license:lgpl2.0+)))
ed19903d
JD
1942
1943(define-public gtkglext
1944 (package
1945 (name "gtkglext")
1946 (version "1.2.0")
1947 (source (origin
1948 (method url-fetch)
0f971a04 1949 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1950 version "/gtkglext-" version ".tar.gz"))
1951 (sha256
1952 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1953 (patches (search-patches
1954 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1955 (build-system gnu-build-system)
14e2f61a
RW
1956 (arguments
1957 `(#:phases
1958 (modify-phases %standard-phases
1959 ;; Fix a collision between a local variable and a definition from
1960 ;; glibc's string.h.
1961 (add-after 'unpack 'fix-collision
1962 (lambda _
1963 (substitute* "gdk/gdkglshapes.c"
1964 ((" index") " triangle_index"))
1965 #t)))))
ed19903d
JD
1966 (inputs `(("gtk+" ,gtk+-2)
1967 ("mesa" ,mesa)
cc8b02f4 1968 ("glu" ,glu)
ed19903d
JD
1969 ("libx11" ,libx11)
1970 ("libxt" ,libxt)))
426adbe8
LC
1971 (native-inputs `(("pkg-config" ,pkg-config)
1972 ("glib" ,glib "bin")))
a83b6a06 1973 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1974 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1975 (synopsis "OpenGL extension to GTK+")
35b9e423 1976 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1977additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1978API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 1979 (license license:lgpl2.1+)))
3600420e
JD
1980
1981(define-public glade3
1982 (package
1983 (name "glade")
c6571adb 1984 (version "3.22.1")
b38e45d8
EB
1985 (source (origin
1986 (method url-fetch)
1987 (uri (string-append "mirror://gnome/sources/" name "/"
1988 (version-major+minor version) "/"
f5ca44b8 1989 name "-" version ".tar.xz"))
3600420e 1990 (sha256
f714d9fe 1991 (base32
c6571adb 1992 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 1993 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
1994 (arguments
1995 `(#:tests? #f ; needs X, GL, and software rendering
1996 #:phases
1997 (modify-phases %standard-phases
1998 (add-before 'configure 'fix-docbook
1999 (lambda* (#:key inputs #:allow-other-keys)
2000 (substitute* "man/Makefile.in"
2001 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2002 (string-append (assoc-ref inputs "docbook-xsl")
2003 "/xml/xsl/docbook-xsl-"
2004 ,(package-version docbook-xsl)
2005 "/manpages/docbook.xsl")))
2006 #t)))))
3600420e 2007 (inputs
f5ca44b8 2008 `(("gtk+" ,gtk+)
3600420e
JD
2009 ("libxml2" ,libxml2)))
2010 (native-inputs
2011 `(("intltool" ,intltool)
f5ca44b8
RW
2012 ("itstool" ,itstool)
2013 ("libxslt" ,libxslt) ;for xsltproc
2014 ("docbook-xml" ,docbook-xml-4.2)
2015 ("docbook-xsl" ,docbook-xsl)
2016 ("python" ,python-2)
3600420e
JD
2017 ("pkg-config" ,pkg-config)))
2018 (home-page "https://glade.gnome.org")
2019 (synopsis "GTK+ rapid application development tool")
2020 (description "Glade is a rapid application development (RAD) tool to
2021enable quick & easy development of user interfaces for the GTK+ toolkit and
2022the GNOME desktop environment.")
1dd26275
LC
2023 (license license:lgpl2.0+)))
2024
2025(define-public libcroco
2026 (package
2027 (name "libcroco")
8bdacad2 2028 (version "0.6.13")
1dd26275
LC
2029 (source (origin
2030 (method url-fetch)
b38e45d8
EB
2031 (uri (string-append "mirror://gnome/sources/" name "/"
2032 (version-major+minor version) "/"
2033 name "-" version ".tar.xz"))
1dd26275
LC
2034 (sha256
2035 (base32
8bdacad2 2036 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2037 (build-system gnu-build-system)
2038 (native-inputs
2039 `(("pkg-config" ,pkg-config)))
2040 (inputs
2041 `(("glib" ,glib)
2042 ("libxml2" ,libxml2)
2043 ("zlib" ,zlib)))
2044 (home-page "https://github.com/GNOME/libcroco")
2045 (synopsis "CSS2 parsing and manipulation library")
2046 (description
2047 "Libcroco is a standalone CSS2 parsing and manipulation library.
2048The parser provides a low level event driven SAC-like API and a CSS object
2049model like API. Libcroco provides a CSS2 selection engine and an experimental
2050XML/CSS rendering engine.")
2051
2052 ;; LGPLv2.1-only.
2053 (license license:lgpl2.1)))
25178594
LC
2054
2055(define-public libgsf
2056 (package
2057 (name "libgsf")
8d1644a1 2058 (version "1.14.46")
25178594
LC
2059 (source (origin
2060 (method url-fetch)
b38e45d8
EB
2061 (uri (string-append "mirror://gnome/sources/" name "/"
2062 (version-major+minor version) "/"
2063 name "-" version ".tar.xz"))
25178594
LC
2064 (sha256
2065 (base32
8d1644a1 2066 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594 2067 (build-system gnu-build-system)
23904adb
MB
2068 (arguments
2069 '(#:configure-flags '("--disable-static")))
25178594 2070 (native-inputs
0a1559cc
MB
2071 `(("pkg-config" ,pkg-config)
2072 ("gettext" ,gettext-minimal)
2073
2074 ;; For tests.
2075 ("perl" ,perl)
2076 ("perl-xml-parser" ,perl-xml-parser)))
25178594
LC
2077 (inputs
2078 `(("python" ,python)
2079 ("zlib" ,zlib)
2080 ("bzip2" ,bzip2)))
2081 (propagated-inputs
2082 `(("gdk-pixbuf" ,gdk-pixbuf)
2083 ("glib" ,glib)
2084 ("libxml2" ,libxml2)))
f032d0be 2085 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2086 (synopsis "GNOME's Structured File Library")
2087 (description
2088 "Libgsf aims to provide an efficient extensible I/O abstraction for
2089dealing with different structured file formats.")
2090
2091 ;; LGPLv2.1-only.
2092 (license license:lgpl2.1)))
63016e7c
LC
2093
2094(define-public librsvg
f67417a1
MB
2095 (package
2096 (name "librsvg")
c1cc52a2 2097 (version "2.40.21")
f67417a1
MB
2098 (source (origin
2099 (method url-fetch)
2100 (uri (string-append "mirror://gnome/sources/" name "/"
2101 (version-major+minor version) "/"
2102 name "-" version ".tar.xz"))
2103 (sha256
2104 (base32
c1cc52a2 2105 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2106 (build-system gnu-build-system)
2107 (arguments
2108 `(#:configure-flags
2109 (list "--disable-static"
2110 "--enable-vala") ; needed for e.g. gnome-mines
2111 #:phases
2112 (modify-phases %standard-phases
2113 (add-before 'configure 'pre-configure
2114 (lambda* (#:key inputs #:allow-other-keys)
2115 (substitute* "gdk-pixbuf-loader/Makefile.in"
2116 ;; By default the gdk-pixbuf loader is installed under
2117 ;; gdk-pixbuf's prefix. Work around that.
2118 (("gdk_pixbuf_moduledir = .*$")
2119 (string-append "gdk_pixbuf_moduledir = "
2120 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2121 "loaders\n"))
2122 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2123 (("gdk_pixbuf_cache_file = .*$")
2124 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2125 #t))
2126 (add-before 'check 'remove-failing-tests
2127 (lambda _
2128 (with-directory-excursion "tests/fixtures/reftests"
2129 (for-each delete-file
2130 '(;; This test fails on i686:
2131 "svg1.1/masking-path-04-b.svg"
2132 ;; This test fails on armhf:
2133 "svg1.1/masking-mask-01-b.svg"
2134 ;; This test fails on aarch64:
2135 "bugs/777834-empty-text-children.svg")))
2136 #t)))))
2137 (native-inputs
2138 `(("pkg-config" ,pkg-config)
2139 ("vala" ,vala)
2140 ("glib" ,glib "bin") ; glib-mkenums, etc.
2141 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2142 (inputs
869b63cb
MB
2143 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2144 ;; this ancient version of librsvg.
2145 ("pango" ,pango-1.42)
f67417a1
MB
2146 ("libcroco" ,libcroco)
2147 ("bzip2" ,bzip2)
2148 ("libgsf" ,libgsf)
2149 ("libxml2" ,libxml2)))
2150 (propagated-inputs
2151 ;; librsvg-2.0.pc refers to all of that.
2152 `(("cairo" ,cairo)
2153 ("gdk-pixbuf" ,gdk-pixbuf)
2154 ("glib" ,glib)))
2155 (home-page "https://wiki.gnome.org/LibRsvg")
2156 (synopsis "Render SVG files using Cairo")
2157 (description
2158 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2159library.")
2160 (license license:lgpl2.0+)))
2161
8f523eb9
EF
2162(define* (computed-origin-method gexp-promise hash-algo hash
2163 #:optional (name "source")
2164 #:key (system (%current-system))
2165 (guile (default-guile)))
2166 "Return a derivation that executes the G-expression that results
2167from forcing GEXP-PROMISE."
2168 (mlet %store-monad ((guile (package->derivation guile system)))
2169 (gexp->derivation (or name "computed-origin")
2170 (force gexp-promise)
2171 #:graft? #f ;nothing to graft
2172 #:system system
2173 #:guile-for-build guile)))
2174
2175(define librsvg-next-source
8d6f9168 2176 (let* ((version "2.46.4")
8f523eb9
EF
2177 (upstream-source (origin
2178 (method url-fetch)
2179 (uri (string-append "mirror://gnome/sources/librsvg/"
2180 (version-major+minor version) "/"
2181 "librsvg-" version ".tar.xz"))
2182 (sha256
2183 (base32
8d6f9168 2184 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl")))))
8f523eb9
EF
2185 (origin
2186 (method computed-origin-method)
2187 (file-name (string-append "librsvg-" version ".tar.xz"))
2188 (sha256 #f)
2189 (uri
2190 (delay
2191 (with-imported-modules '((guix build utils))
2192 #~(begin
2193 (use-modules (guix build utils))
2194 (set-path-environment-variable
2195 "PATH" '("bin")
2196 (list "/tmp"
2197 #+(canonical-package xz)
2198 #+(canonical-package gzip)
2199 #+(canonical-package tar)))
2200 (invoke "tar" "xvf" #+upstream-source)
2201 (with-directory-excursion (string-append "librsvg-" #$version)
91f0c790
JS
2202 ;; The following crate(s) are needed in addition to the ones replaced:
2203 (begin
2204 (invoke
5213b697
EF
2205 "tar" "xvf" #+(package-source rust-autocfg-0.1) "-C" "vendor")
2206 (invoke
2207 "tar" "xvf" #+(package-source rust-proc-macro2-0.4) "-C" "vendor")
2208 (invoke
2209 "tar" "xvf" #+(package-source rust-quote-0.6) "-C" "vendor")
2210 (invoke
2211 "tar" "xvf" #+(package-source rust-unicode-xid-0.1) "-C" "vendor")
2212 (invoke
2213 "tar" "xvf" #+(package-source rust-maybe-uninit-2.0) "-C" "vendor"))
8f523eb9
EF
2214 (for-each
2215 (lambda (crate)
2216 (delete-file-recursively (string-append "vendor/" (car crate)))
2217 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
393d7214 2218 '(("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
8f523eb9 2219;; alga 0.9
e19cb895
EF
2220 ("approx" . #+(package-source rust-approx-0.3))
2221 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
8f523eb9 2222 ("atty" . #+(package-source rust-atty-0.2))
91f0c790 2223 ("autocfg" . #+(package-source rust-autocfg-1.0))
8f523eb9
EF
2224 ("bitflags" . #+(package-source rust-bitflags-1))
2225;; block 0.1
e19cb895
EF
2226 ("bstr" . #+(package-source rust-bstr-0.2))
2227 ("byteorder" . #+(package-source rust-byteorder-1.3))
8f523eb9
EF
2228;; cairo-rs 0.7
2229;; cairo-sys-rs 0.9
e19cb895 2230 ("cast" . #+(package-source rust-cast-0.2))
8f523eb9
EF
2231 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2232 ("clap" . #+(package-source rust-clap-2))
e19cb895
EF
2233 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2234 ("criterion" . #+(package-source rust-criterion-0.2))
2235 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
2236 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
393d7214
JS
2237 ("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.8))
2238 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.2))
2239 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.7))
8f523eb9
EF
2240;; cssparser 0.25
2241;; cssparser-macros 0.3
e19cb895
EF
2242 ("csv" . #+(package-source rust-csv-1.1))
2243 ("csv-core" . #+(package-source rust-csv-core-0.1))
8f523eb9
EF
2244;; data-url 0.1
2245;; downcast-rs 1.0
2246 ("dtoa" . #+(package-source rust-dtoa-0.4))
2247;; dtoa-short 0.3
e19cb895
EF
2248 ("either" . #+(package-source rust-either-1.5))
2249 ("encoding" . #+(package-source rust-encoding-0.2))
2250 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2251 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2252 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2253 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2254 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2255 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
8f523eb9
EF
2256;; float-cmp 0.5
2257;; fragile 0.3
e19cb895
EF
2258 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2259 ("futf" . #+(package-source rust-futf-0.1))
8f523eb9
EF
2260;; gdk-pixbuf 0.7
2261;; gdk-pixbuf-sys 0.9
e19cb895 2262 ("generic-array" . #+(package-source rust-generic-array-0.12))
8f523eb9 2263;; gio 0.7
8d6f9168 2264 ("gio-sys" . #+(package-source rust-gio-sys-0.9))
8f523eb9 2265;; glib 0.8
8d6f9168
EF
2266 ("glib-sys" . #+(package-source rust-glib-sys-0.9))
2267 ("gobject-sys" . #+(package-source rust-gobject-sys-0.9))
393d7214 2268 ("idna" . #+(package-source rust-idna-0.2))
e19cb895 2269 ("itertools" . #+(package-source rust-itertools-0.8))
8f523eb9 2270 ("itoa" . #+(package-source rust-itoa-0.4))
e19cb895 2271 ("language-tags" . #+(package-source rust-language-tags-0.2))
21c8ec75 2272 ("lazy_static" . #+(package-source rust-lazy-static-1))
8f523eb9 2273 ("libc" . #+(package-source rust-libc-0.2))
91f0c790 2274 ("libm" . #+(package-source rust-libm-0.1))
8d6f9168 2275 ("locale_config" . #+(package-source rust-locale-config-0.3))
8f523eb9 2276 ("log" . #+(package-source rust-log-0.4))
e19cb895 2277 ("mac" . #+(package-source rust-mac-0.1))
5213b697 2278 ("malloc_buf" . #+(package-source rust-malloc-buf-0.0))
8f523eb9 2279;; markup5ever 0.9
e19cb895 2280 ("matches" . #+(package-source rust-matches-0.1))
8f523eb9 2281;; matrixmultiply 0.2
393d7214
JS
2282 ("memchr" . #+(package-source rust-memchr-2.2))
2283 ("memoffset" . #+(package-source rust-memoffset-0.5))
8f523eb9 2284;; nalgebra 0.18
e19cb895 2285 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
8f523eb9 2286 ("nodrop" . #+(package-source rust-nodrop-0.1))
e19cb895 2287 ("num-complex" . #+(package-source rust-num-complex-0.2))
8f523eb9 2288 ("num-integer" . #+(package-source rust-num-integer-0.1))
5213b697 2289 ("num-rational" . #+(package-source rust-num-rational-0.2))
8f523eb9
EF
2290 ("num-traits" . #+(package-source rust-num-traits-0.2))
2291 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
5213b697
EF
2292 ("objc" . #+(package-source rust-objc-0.2))
2293 ("objc-foundation" . #+(package-source rust-objc-foundation-0.1))
2294 ("objc_id" . #+(package-source rust-objc-id-0.1))
8f523eb9
EF
2295;; pango 0.7
2296;; pango-sys 0.9
2297;; pangocairo 0.8
2298;; pangocairo-sys 0.10
2299 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
e19cb895
EF
2300 ("phf" . #+(package-source rust-phf-0.7))
2301 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2302 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2303 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2304 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2305 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
8f523eb9
EF
2306 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2307;; procedural-masquerade 0.1
2308 ("quote" . #+(package-source rust-quote-1.0))
e19cb895 2309 ("rand" . #+(package-source rust-rand-0.6))
8f523eb9
EF
2310 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2311 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2312 ("rand_core" . #+(package-source rust-rand-core-0.4))
2313 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2314 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2315 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2316 ("rand_os" . #+(package-source rust-rand-os-0.1))
2317 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2318 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
393d7214 2319 ("rand_xoshiro" . #+(package-source rust-rand-xoshiro-0.1))
e19cb895 2320;; rawpointer 0.2
393d7214
JS
2321 ("rayon" . #+(package-source rust-rayon-1.3))
2322 ("rayon-core" . #+(package-source rust-rayon-core-1.7))
8f523eb9
EF
2323;; rctree 0.3
2324 ("rdrand" . #+(package-source rust-rdrand-0.4))
393d7214 2325 ("regex" . #+(package-source rust-regex-1.3))
e19cb895 2326 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
393d7214 2327 ("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
e19cb895 2328 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
8f523eb9
EF
2329 ("ryu" . #+(package-source rust-ryu-1.0))
2330 ("same-file" . #+(package-source rust-same-file-1.0))
2331 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
e19cb895
EF
2332 ("semver" . #+(package-source rust-semver-0.9))
2333 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
8f523eb9
EF
2334 ("serde" . #+(package-source rust-serde-1.0))
2335 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2336 ("serde_json" . #+(package-source rust-serde-json-1.0))
e19cb895
EF
2337 ("siphasher" . #+(package-source rust-siphasher-0.2))
2338 ("smallvec" . #+(package-source rust-smallvec-0.6))
2339 ("string_cache" . #+(package-source rust-string-cache-0.7))
5213b697 2340 ("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
e19cb895 2341 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
8f523eb9 2342 ("syn" . #+(package-source rust-syn-1.0))
e19cb895 2343 ("tendril" . #+(package-source rust-tendril-0.4))
8f523eb9 2344 ("textwrap" . #+(package-source rust-textwrap-0.11))
393d7214 2345 ("thread_local" . #+(package-source rust-thread-local-1.0))
e19cb895
EF
2346 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2347 ("typenum" . #+(package-source rust-typenum-1.10))
2348 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2349 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
8f523eb9
EF
2350 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2351 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
393d7214 2352 ("url" . #+(package-source rust-url-2.1))
e19cb895 2353 ("utf-8" . #+(package-source rust-utf-8-0.7))
8f523eb9
EF
2354 ("walkdir" . #+(package-source rust-walkdir-2.2))
2355 ("winapi" . #+(package-source rust-winapi-0.3))
e19cb895 2356 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
8f523eb9 2357 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
e19cb895 2358 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
5213b697 2359 ("xml-rs" . #+(package-source rust-xml-rs-0.8)))))
8f523eb9
EF
2360 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2361 (force-output)
2362 (invoke "tar" "cfa" #$output
2363 ;; Avoid non-determinism in the archive. We set the
2364 ;; mtime of files in the archive to early 1980 because
2365 ;; the build process fails if the mtime of source
2366 ;; files is pre-1980, due to the creation of zip
2367 ;; archives.
2368 "--mtime=@315619200" ; 1980-01-02 UTC
2369 "--owner=root:0"
2370 "--group=root:0"
2371 "--sort=name"
2372 (string-append "librsvg-" #$version))
2373 #t)))))))
2374
f67417a1 2375(define-public librsvg-next
63016e7c
LC
2376 (package
2377 (name "librsvg")
3276e123 2378 (version "2.46.4")
8f523eb9 2379 (source librsvg-next-source)
63016e7c
LC
2380 (build-system gnu-build-system)
2381 (arguments
d953418a
RW
2382 `(#:configure-flags
2383 (list "--disable-static"
2384 "--enable-vala") ; needed for e.g. gnome-mines
7e0f4cb1 2385 #:make-flags '("CC=gcc")
8f523eb9 2386 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
ec47c07d 2387 #:phases
b6239e45 2388 (modify-phases %standard-phases
8f523eb9 2389 (add-after 'configure 'patch-cargo-checksums
ec47c07d 2390 (lambda _
8f523eb9
EF
2391 (use-modules (guix build cargo-utils))
2392 (substitute* "librsvg/Cargo.toml"
2393 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
8d6f9168
EF
2394 (substitute* "rsvg_internals/Cargo.toml"
2395 (("\"=") "\""))
b665a246 2396 (generate-all-checksums "vendor")
8f523eb9
EF
2397 (delete-file "Cargo.lock")
2398 (invoke "cargo" "generate-lockfile")))
b6239e45
EF
2399 (add-before 'configure 'pre-configure
2400 (lambda* (#:key inputs #:allow-other-keys)
2401 (substitute* "gdk-pixbuf-loader/Makefile.in"
2402 ;; By default the gdk-pixbuf loader is installed under
2403 ;; gdk-pixbuf's prefix. Work around that.
2404 (("gdk_pixbuf_moduledir = .*$")
2405 (string-append "gdk_pixbuf_moduledir = "
2406 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2407 "loaders\n"))
2408 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2409 (("gdk_pixbuf_cache_file = .*$")
2410 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2411 #t))
ec47c07d 2412 (add-before 'check 'remove-failing-tests
b6239e45 2413 (lambda _
64a153bd
MW
2414 (with-directory-excursion "tests/fixtures/reftests"
2415 (for-each delete-file
ec47c07d
MB
2416 '(;; The images produced by these tests differ slightly
2417 ;; from their reference counterparts due to differences
2418 ;; in the build environment (missing fonts, etc). See
2419 ;; <tests/README.md> for details.
2420 ;; These fail on x86_64.
2421 "svg1.1/coords-viewattr-02-b.svg"
2422 "svg1.1/filters-composite-04-f.svg"
2423 "svg1.1/filters-image-01-b.svg"
2424 "svg1.1/filters-conv-02-f.svg"
2425 "svg1.1/filters-conv-04-f.svg"
2426 ;; This test fails on i686:
64a153bd 2427 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2428 ;; This test fails on armhf:
2429 "svg1.1/masking-mask-01-b.svg"
64a153bd 2430 ;; This test fails on aarch64:
ec47c07d 2431 "bugs/777834-empty-text-children.svg")))
b6239e45 2432 #t)))))
63016e7c
LC
2433 (native-inputs
2434 `(("pkg-config" ,pkg-config)
64855281
MB
2435 ;; This is the minimum supported Rust version in Librsvg 2.46.
2436 ("rust" ,rust-1.34)
2437 ("cargo" ,rust-1.34 "cargo")
d953418a 2438 ("vala" ,vala)
44add1ce 2439 ("glib" ,glib "bin") ; glib-mkenums, etc.
63016e7c
LC
2440 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2441 (inputs
2442 `(("pango" ,pango)
2443 ("libcroco" ,libcroco)
2444 ("bzip2" ,bzip2)
2445 ("libgsf" ,libgsf)
2446 ("libxml2" ,libxml2)))
2447 (propagated-inputs
2448 ;; librsvg-2.0.pc refers to all of that.
2449 `(("cairo" ,cairo)
2450 ("gdk-pixbuf" ,gdk-pixbuf)
2451 ("glib" ,glib)))
2452 (home-page "https://wiki.gnome.org/LibRsvg")
2453 (synopsis "Render SVG files using Cairo")
2454 (description
35b9e423 2455 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
63016e7c 2456library.")
cf9dad6c 2457 (license license:lgpl2.1+)))
5698b8b8
JD
2458
2459(define-public libidl
2460 (package
2461 (name "libidl")
2462 (version "0.8.14")
2463 (source (origin
2464 (method url-fetch)
80a06e62
EF
2465 (uri (string-append "mirror://gnome/sources/libIDL/"
2466 (version-major+minor version) "/"
2467 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2468 (sha256
2469 (base32
2470 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2471 (build-system gnu-build-system)
2472 (inputs `(("glib" ,glib)))
2473 (native-inputs
2474 `(("pkg-config" ,pkg-config)
b3546174 2475 ("flex" ,flex)
5698b8b8
JD
2476 ("bison" ,bison)))
2477 (home-page "http://freecode.com/projects/libidl")
2478 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2479 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2480Definition Language (idl) files, which is a specification for defining
2481portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2482GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2483functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2484 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2485 (license license:lgpl2.0+)))
2486
2487
2488(define-public orbit2
2489 (package
2490 (name "orbit2")
2491 (version "2.14.19")
2492 (source (origin
2493 (method url-fetch)
2e6ecc5c 2494 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2495 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2496 (version-major+minor version) "/"
2497 upstream-name "-" version ".tar.bz2")))
5698b8b8 2498 (sha256
a124bbd2
SB
2499 (base32
2500 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2501 (build-system gnu-build-system)
2502 (arguments
c2d837b9
MB
2503 `(;; The "timeout-server" test hangs when run in parallel.
2504 #:parallel-tests? #f
2505 #:configure-flags
8aad2e32
LC
2506 '(;; We don't need static libraries, plus they don't build reproducibly
2507 ;; (non-deterministic ordering of .o files in the archive.)
2508 "--disable-static"
2509
2510 ;; The programmer kindly gives us a hook to turn off deprecation
2511 ;; warnings ...
2512 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2513 ;; ... which they then completly ignore !!
2514 #:phases
dc1d3cde
KK
2515 (modify-phases %standard-phases
2516 (add-before 'configure 'ignore-deprecations
2517 (lambda _
2518 (substitute* "linc2/src/Makefile.in"
2519 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2520 #t)))))
5698b8b8
JD
2521 (inputs `(("glib" ,glib)
2522 ("libidl" ,libidl)))
2523 (native-inputs
2524 `(("pkg-config" ,pkg-config)))
2525 (home-page "https://projects.gnome.org/orbit2/")
2526 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2527 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2528featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2529 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2530 ;; a version. SOME of the code files have licence notices for GPLv2+.
2531 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2532 (license license:gpl2+)
2533 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2534
2535
2536(define-public libbonobo
2537 (package
2538 (name "libbonobo")
2539 (version "2.32.1")
2540 (source (origin
2541 (method url-fetch)
5becd025 2542 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2543 (version-major+minor version)
5becd025 2544 "/" name "-" version ".tar.bz2"))
5698b8b8 2545 (sha256
f1fc45a9 2546 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2547 (patches (search-patches
2548 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2549 (build-system gnu-build-system)
2550 (arguments
2551 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2552 `(#:configure-flags
2553 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2554 ;; ... which they then completly ignore !!
2555 #:phases
dc1d3cde
KK
2556 (modify-phases %standard-phases
2557 (add-before 'configure 'ignore-deprecations
2558 (lambda _
2559 (substitute* "activation-server/Makefile.in"
2560 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2561 #t)))
2562
2563 ;; There's apparently a race condition between the server stub
2564 ;; generation and linking of the example under 'samples/echo' that can
2565 ;; lead do undefined references when building in parallel, as reported
2566 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2567 ;; Thus, disable parallel builds.
2568 #:parallel-build? #f))
5698b8b8
JD
2569 (inputs `(("popt" ,popt)
2570 ("libxml2" ,libxml2)))
2571 ;; The following are Required by the .pc file
44add1ce 2572 (propagated-inputs
5698b8b8
JD
2573 `(("glib" ,glib)
2574 ("orbit2" ,orbit2)))
2575 (native-inputs
2576 `(("intltool" ,intltool)
2577 ("pkg-config" ,pkg-config)
221ed17a 2578 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2579 ("flex" ,flex)
2580 ("bison" ,bison)))
2581 (home-page "https://developer.gnome.org/libbonobo/")
2582 (synopsis "Framework for creating reusable components for use in GNOME applications")
2583 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2584use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2585 ;; Licence not explicitly stated. Source files contain no licence notices.
2586 ;; Tarball contains text of both GPLv2 and LGPLv2
2587 ;; GPLv2 covers both conditions
2588 (license license:gpl2+)))
2589
2590
2591(define-public gconf
2592 (package
2593 (name "gconf")
2594 (version "3.2.6")
2595 (source (origin
2596 (method url-fetch)
a124bbd2
SB
2597 (uri
2598 (let ((upstream-name "GConf"))
2599 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2600 (version-major+minor version) "/"
2601 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2602 (sha256
2603 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2604 (build-system gnu-build-system)
2e88d113 2605 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2606 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2607 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2608 ("orbit2" ,orbit2)))
5698b8b8
JD
2609 (native-inputs
2610 `(("intltool" ,intltool)
221ed17a 2611 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2612 ("pkg-config" ,pkg-config)))
2613 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2614 (synopsis "Store application preferences")
2615 (description "Gconf is a system for storing application preferences. It
2616is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2617 (license license:lgpl2.0+)
2618 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2619
2620
2621(define-public gnome-mime-data
2622 (package
2623 (name "gnome-mime-data")
2624 (version "2.18.0")
2625 (source (origin
2626 (method url-fetch)
b38e45d8
EB
2627 (uri (string-append "mirror://gnome/sources/" name "/"
2628 (version-major+minor version) "/"
2629 name "-" version ".tar.bz2"))
5698b8b8
JD
2630 (sha256
2631 (base32
2632 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2633 (build-system gnu-build-system)
2634 (native-inputs
2635 `(("perl" ,perl)
2636 ("intltool" ,intltool)))
3e6add96
LC
2637 (arguments
2638 '(#:phases (modify-phases %standard-phases
2639 (add-after 'configure 'use-our-intltool
2640 (lambda _
2641 ;; Do not use the bundled intltool commands, which lack
2642 ;; the "dotless @INC" fixes of our 'intltool' package.
2643 (substitute* (find-files "." "^Makefile$")
2644 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2645 (string-append "INTLTOOL_" tool " = intltool-"
2646 (string-downcase tool) "\n")))
2647 #t)))))
f032d0be 2648 (home-page "https://www.gnome.org")
35b9e423 2649 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2650 (description "GNOME Mime Data is a module which contains the base MIME
2651and Application database for GNOME. The data stored by this module is
2652designed to be accessed through the MIME functions in GnomeVFS.")
2653 (license license:gpl2+)))
2654
2655
2656(define-public gnome-vfs
2657 (package
2658 (name "gnome-vfs")
2659 (version "2.24.4")
2660 (source (origin
2661 (method url-fetch)
b38e45d8
EB
2662 (uri (string-append "mirror://gnome/sources/" name "/"
2663 (version-major+minor version) "/"
2664 name "-" version ".tar.bz2"))
5698b8b8 2665 (sha256
9e12bc34
MW
2666 (base32
2667 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2668 (build-system gnu-build-system)
2669 (arguments
db5127d8 2670 `(#:phases
dc1d3cde
KK
2671 (modify-phases %standard-phases
2672 (add-before 'configure 'ignore-deprecations
2673 (lambda _
2674 (substitute* '("libgnomevfs/Makefile.in"
2675 "daemon/Makefile.in")
2676 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2677 #t))
2678 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2679 (lambda _
2680 (substitute* "test/test-async-cancel.c"
2681 (("EXIT_FAILURE") "77"))
2682 #t)))))
2e6ecc5c 2683 (inputs `(("libxml2" ,libxml2)
5698b8b8 2684 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2685 ("gconf" ,gconf)
2686 ("gnome-mime-data" ,gnome-mime-data)
2687 ("zlib" ,zlib)))
2688 (native-inputs
221ed17a
EB
2689 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2690 ("intltool" ,intltool)
5698b8b8
JD
2691 ("pkg-config" ,pkg-config)))
2692 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2693 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2694 (description
2695 "GnomeVFS is the core library used to access files and folders in GNOME
2696applications. It provides a file system abstraction which allows applications
2697to access local and remote files with a single consistent API.")
5698b8b8
JD
2698 (license license:lgpl2.0+)))
2699
2700
2701
2702(define-public libgnome
2703 (package
2704 (name "libgnome")
2705 (version "2.32.1")
2706 (source (origin
2707 (method url-fetch)
b38e45d8
EB
2708 (uri (string-append "mirror://gnome/sources/" name "/"
2709 (version-major+minor version) "/"
2710 name "-" version ".tar.bz2"))
5698b8b8
JD
2711 (sha256
2712 (base32
17c3eea7
LC
2713 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2714 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2715 (build-system gnu-build-system)
2716 (arguments
2717 `(#:phases
dc1d3cde
KK
2718 (modify-phases %standard-phases
2719 (add-before 'configure 'enable-deprecated
2720 (lambda _
2721 (substitute* "libgnome/Makefile.in"
2722 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2723 #t)))))
25338e9f 2724 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2725 (native-inputs
221ed17a
EB
2726 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2727 ("intltool" ,intltool)
5698b8b8
JD
2728 ("pkg-config" ,pkg-config)))
2729 ;; The following are listed as Required in the .pc file
2730 ;; (except for libcanberra -- which seems to be oversight on the part
2731 ;; of the upstream developers -- anything that links against libgnome,
2732 ;; must also link against libcanberra
2733 (propagated-inputs
2734 `(("libcanberra" ,libcanberra)
2735 ("libbonobo" ,libbonobo)
2736 ("gconf" ,gconf)
a640d3d5
LC
2737 ("gnome-vfs" ,gnome-vfs)
2738 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2739 (home-page "https://developer.gnome.org/libgnome/")
2740 (synopsis "Useful routines for building applications")
2741 (description "The libgnome library provides a number of useful routines
2742for building modern applications, including session management, activation of
2743files and URIs, and displaying help.")
2744 (license license:lgpl2.0+)))
2745
2746
2747(define-public libart-lgpl
2748 (package
2749 (name "libart-lgpl")
76c9b6aa 2750 (version "2.3.21")
5698b8b8
JD
2751 (source (origin
2752 (method url-fetch)
2753 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2754 (string-append "mirror://gnome/sources/" upstream-name "/"
2755 (version-major+minor version) "/"
2756 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2757 (sha256
2758 (base32
76c9b6aa 2759 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2760 (build-system gnu-build-system)
2761 (native-inputs
2762 `(("pkg-config" ,pkg-config)))
2763 (home-page "https://people.gnome.org/~mathieu/libart")
2764 (synopsis "2D drawing library")
2e6ecc5c 2765 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2766high-quality vector-based 2D library with antialiasing and alpha composition.")
2767 (license license:lgpl2.0+)))
2768
2769
2770
2771(define-public libgnomecanvas
2772 (package
2773 (name "libgnomecanvas")
2774 (version "2.30.3")
2775 (source (origin
2776 (method url-fetch)
b38e45d8
EB
2777 (uri (string-append "mirror://gnome/sources/" name "/"
2778 (version-major+minor version) "/"
2779 name "-" version ".tar.gz"))
5698b8b8
JD
2780 (sha256
2781 (base32
2782 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2783 (build-system gnu-build-system)
2784 ;; Mentioned as Required in the .pc file
2785 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2786 ("gtk+" ,gtk+-2)))
2787 (native-inputs
2788 `(("intltool" ,intltool)
221ed17a 2789 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2790 ("pkg-config" ,pkg-config)))
2791 (home-page "https://developer.gnome.org/libgnomecanvas/")
2792 (synopsis "Flexible widget for creating interactive structured graphics")
2793 (description "The GnomeCanvas widget provides a flexible widget for
2794creating interactive structured graphics.")
2795 (license license:lgpl2.0+)))
2796
eadc734e
RW
2797(define-public libgnomecanvasmm
2798 (package
2799 (name "libgnomecanvasmm")
2800 (version "2.26.0")
2801 (source (origin
2802 (method url-fetch)
2803 (uri (string-append "mirror://gnome/sources/" name "/"
2804 (version-major+minor version) "/"
2805 name "-" version ".tar.bz2"))
2806 (sha256
2807 (base32
2808 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2809 (build-system gnu-build-system)
2810 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2811 (native-inputs
2812 `(("gtkmm-2" ,gtkmm-2)
2813 ("pkg-config" ,pkg-config)))
8e933cb3 2814 (home-page "https://gtkmm.org")
eadc734e
RW
2815 (synopsis "C++ bindings to the GNOME Canvas library")
2816 (description "C++ bindings to the GNOME Canvas library.")
2817 (license license:lgpl2.0+)))
2818
5698b8b8
JD
2819(define-public libgnomeui
2820 (package
2821 (name "libgnomeui")
2822 (version "2.24.5")
2823 (source (origin
2824 (method url-fetch)
b38e45d8
EB
2825 (uri (string-append "mirror://gnome/sources/" name "/"
2826 (version-major+minor version) "/"
2827 name "-" version ".tar.bz2"))
8fa1872a 2828 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2829 (sha256
2830 (base32
2831 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2832 (build-system gnu-build-system)
2833 ;; Mentioned as Required in the .pc file
0a38a497
AE
2834 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2835 ("libgnome" ,libgnome)
2836 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2837 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2838 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2839 ("popt" ,popt)
2840 ("libbonobo" ,libbonobo)
2841 ("libxml2" ,libxml2)
2842 ("libglade" ,libglade)))
2843 (native-inputs
221ed17a
EB
2844 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2845 ("intltool" ,intltool)
5698b8b8
JD
2846 ("pkg-config" ,pkg-config)))
2847 (home-page "https://developer.gnome.org/libgnomeui/")
2848 (synopsis "Additional widgets for applications")
35b9e423 2849 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2850applications. Many of the widgets from libgnomeui have already been
2851ported to GTK+.")
5698b8b8
JD
2852 (license license:lgpl2.0+)))
2853
2854(define-public libglade
2855 (package
2856 (name "libglade")
2857 (version "2.6.4")
2858 (source (origin
2859 (method url-fetch)
b38e45d8
EB
2860 (uri (string-append "mirror://gnome/sources/" name "/"
2861 (version-major+minor version) "/"
2862 name "-" version ".tar.bz2"))
5698b8b8
JD
2863 (sha256
2864 (base32
2865 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2866 (build-system gnu-build-system)
2867 (inputs
92dcc23d
AE
2868 `(("python" ,python))) ;; needed for the optional libglade-convert program
2869 (propagated-inputs
5698b8b8 2870 `(("gtk+-2" ,gtk+-2)
92dcc23d 2871 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2872 (native-inputs
2873 `(("pkg-config" ,pkg-config)))
2874 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2875 (synopsis "Load glade interfaces and access the glade built widgets")
2876 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2877graphical interfaces described in glade files and for accessing the
2878widgets built in the loading process.")
2879 (license license:gpl2+))) ; This is correct. GPL not LGPL
2880
2881(define-public libgnomeprint
eb497b66
LC
2882 ;; This library has been deprecated since 2006; see
2883 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2884 (package
2885 (name "libgnomeprint")
d19db454 2886 (version "2.18.8")
5698b8b8
JD
2887 (source (origin
2888 (method url-fetch)
b38e45d8
EB
2889 (uri (string-append "mirror://gnome/sources/" name "/"
2890 (version-major+minor version) "/"
2891 name "-" version ".tar.bz2"))
5698b8b8
JD
2892 (sha256
2893 (base32
d19db454 2894 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2895 (build-system gnu-build-system)
2896 (inputs
2897 `(("popt" ,popt)
2898 ("libart-lgpl" ,libart-lgpl)
2899 ("gtk+" ,gtk+-2)
44add1ce 2900 ("libxml2" ,libxml2)))
5698b8b8
JD
2901 (native-inputs
2902 `(("intltool" ,intltool)
221ed17a 2903 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2904 ("pkg-config" ,pkg-config)))
2905 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2906 (synopsis "Printing framework for GNOME")
eb497b66
LC
2907 (description
2908 "GNOME-print was a printing framework for GNOME. It has been deprecated
2909since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2910 (license license:lgpl2.0+)))
2911
2912
2913(define-public libgnomeprintui
eb497b66 2914 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2915 (package
2916 (name "libgnomeprintui")
36053d7f 2917 (version "2.18.6")
5698b8b8
JD
2918 (source (origin
2919 (method url-fetch)
b38e45d8
EB
2920 (uri (string-append "mirror://gnome/sources/" name "/"
2921 (version-major+minor version) "/"
2922 name "-" version ".tar.bz2"))
5698b8b8
JD
2923 (sha256
2924 (base32
36053d7f 2925 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2926 (build-system gnu-build-system)
2927 ;; Mentioned as Required in the .pc file
2928 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2929 (inputs `(("gtk+" ,gtk+-2)
2930 ("glib" ,glib)
2931 ("gnome-icon-theme" ,gnome-icon-theme)
2932 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2933 ("libxml2" ,libxml2)))
5698b8b8
JD
2934 (native-inputs
2935 `(("intltool" ,intltool)
2936 ("pkg-config" ,pkg-config)))
2937 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2938 (synopsis "Printing framework for GNOME")
eb497b66 2939 (description (package-description libgnomeprint))
5698b8b8
JD
2940 (license license:lgpl2.0+)))
2941
5698b8b8
JD
2942(define-public libbonoboui
2943 (package
2944 (name "libbonoboui")
2945 (version "2.24.5")
2946 (source (origin
2947 (method url-fetch)
b38e45d8
EB
2948 (uri (string-append "mirror://gnome/sources/" name "/"
2949 (version-major+minor version) "/"
2950 name "-" version ".tar.bz2"))
5698b8b8
JD
2951 (sha256
2952 (base32
2953 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2954 (build-system gnu-build-system)
2955 (arguments
2956 `(#:phases
dc1d3cde
KK
2957 (modify-phases %standard-phases
2958 (add-before 'check 'start-xserver
2959 (lambda* (#:key inputs #:allow-other-keys)
2960 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2961 (disp ":1"))
2962
2963 (setenv "HOME" (getcwd))
2964 (setenv "DISPLAY" disp)
2965 ;; There must be a running X server and make check doesn't start one.
2966 ;; Therefore we must do it.
2967 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2968 ;; Mentioned as Required by the .pc file
2969 (propagated-inputs `(("libxml2" ,libxml2)))
2970 (inputs
2971 `(("popt" ,popt)
2972 ("pangox-compat" ,pangox-compat)
2973 ("libgnome" ,libgnome)
2974 ("libgnomecanvas" ,libgnomecanvas)
2975 ("libglade" ,libglade)))
2976 (native-inputs
221ed17a
EB
2977 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2978 ("intltool" ,intltool)
ff337525 2979 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2980 ("pkg-config" ,pkg-config)))
2981 (home-page "https://developer.gnome.org/libbonoboui/")
2982 (synopsis "Some user interface controls using Bonobo")
2983 (description "The Bonobo UI library provides a number of user interface
2984controls using the Bonobo component framework.")
2985 (license license:lgpl2.0+)))
2986
fecbf86e
SB
2987(define-public libwnck
2988 (package
2989 (name "libwnck")
d3b40696 2990 (version "3.32.0")
fecbf86e
SB
2991 (source (origin
2992 (method url-fetch)
2993 (uri (string-append "mirror://gnome/sources/" name "/"
2994 (version-major+minor version) "/"
2995 name "-" version ".tar.xz"))
2996 (sha256
ad9b8987 2997 (base32
d3b40696
KK
2998 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2999 (build-system meson-build-system)
fecbf86e
SB
3000 (native-inputs
3001 `(("pkg-config" ,pkg-config)
d3b40696
KK
3002 ("glib" ,glib "bin") ; for glib-mkenums
3003 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
3004 ("intltool" ,intltool)))
3005 (propagated-inputs
427476d5
SB
3006 `(("gtk+" ,gtk+)
3007 ("libxres" ,libxres)
3008 ("startup-notification" ,startup-notification)))
fecbf86e
SB
3009 (home-page "https://developer.gnome.org/libwnck/")
3010 (synopsis "Window Navigator Construction Kit")
3011 (description
3012 "Libwnck is the Window Navigator Construction Kit, a library for use in
3013writing pagers, tasklists, and more generally applications that are dealing
3014with window management. It tries hard to respect the Extended Window Manager
3015Hints specification (EWMH).")
3016 (license license:lgpl2.0+)))
3017
3018;; stable version for gtk2, required by xfwm4.
dbb7a081 3019(define-public libwnck-2
fecbf86e
SB
3020 (package (inherit libwnck)
3021 (name "libwnck")
3022 (version "2.30.7")
3023 (source (origin
3024 (method url-fetch)
3025 (uri (string-append "mirror://gnome/sources/" name "/"
3026 (version-major+minor version) "/"
3027 name "-" version ".tar.xz"))
3028 (sha256
3029 (base32
3030 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
3031 (build-system gnu-build-system)
3032 (native-inputs
3033 `(("pkg-config" ,pkg-config)
3034 ("intltool" ,intltool)))
fecbf86e 3035 (propagated-inputs
427476d5
SB
3036 `(("gtk+" ,gtk+-2)
3037 ("libxres" ,libxres)
3038 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3039
3040(define-public goffice
3041 (package
3042 (name "goffice")
09abffcc 3043 (version "0.10.46")
b804c61e
JD
3044 (source (origin
3045 (method url-fetch)
16243f0b 3046 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3047 (version-major+minor version) "/"
16243f0b 3048 "goffice-" version ".tar.xz"))
b804c61e 3049 (sha256
09abffcc 3050 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3051 (build-system gnu-build-system)
72a06d3e 3052 (outputs '("out"
355420c6 3053 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3054 (arguments
3055 '(#:configure-flags (list (string-append "--with-html-dir="
3056 (assoc-ref %outputs "doc")
3057 "/share/gtk-doc/html"))))
b804c61e
JD
3058 (inputs
3059 `(("gtk+" ,gtk+)
3060 ("libgsf" ,libgsf)
3061 ("librsvg" ,librsvg)
3062 ("libxslt" ,libxslt)
3063 ("libxml2" ,libxml2)))
3064 (native-inputs
3065 `(("intltool" ,intltool)
f280cdb1 3066 ("glib" ,glib "bin")
b804c61e
JD
3067 ("pkg-config" ,pkg-config)))
3068 (home-page "https://developer.gnome.org/goffice/")
3069 (synopsis "Document-centric objects and utilities")
3070 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3071 (license
b804c61e
JD
3072 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3073 ;; Note: NOT LGPL
3074 (list license:gpl2 license:gpl3))))
3075
c024ae36
RW
3076(define-public goffice-0.8
3077 (package (inherit goffice)
3078 (version "0.8.17")
3079 (source (origin
3080 (method url-fetch)
3081 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3082 (version-major+minor version) "/"
3083 (package-name goffice) "-" version ".tar.xz"))
3084 (sha256
3085 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3086 (arguments
3087 `(#:phases
dc1d3cde
KK
3088 (modify-phases %standard-phases
3089 (add-after 'unpack 'fix-pcre-check
3090 (lambda _
3091 ;; Only glib.h can be included directly. See
3092 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3093 (substitute* "configure"
3094 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3095
3096 ,@(package-arguments goffice)))
c024ae36
RW
3097 (propagated-inputs
3098 ;; libgoffice-0.8.pc mentions libgsf-1
3099 `(("libgsf" ,libgsf)))
3100 (inputs
3101 `(("gtk" ,gtk+-2)
3102 ,@(alist-delete "gtk" (package-inputs goffice))))))
3103
b804c61e
JD
3104(define-public gnumeric
3105 (package
3106 (name "gnumeric")
f0517b5d 3107 (version "1.12.46")
b804c61e
JD
3108 (source (origin
3109 (method url-fetch)
b7fd0217 3110 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3111 (version-major+minor version) "/"
b7fd0217 3112 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3113 (sha256
3114 (base32
f0517b5d 3115 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3116 (build-system glib-or-gtk-build-system)
b804c61e
JD
3117 (arguments
3118 `(;; The gnumeric developers don't worry much about failing tests.
3119 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3120 #:tests? #f
b804c61e 3121 #:phases
7bcbd40d
EF
3122 (modify-phases %standard-phases
3123 (add-before
3124 'configure 'pre-conf
3125 (lambda* (#:key outputs #:allow-other-keys)
3126 ;; Make install tries to write into the directory of goffice
3127 ;; I am informed that this only affects the possibility to embed a
3128 ;; spreadsheet inside an Abiword document. So presumably when we
3129 ;; package Abiword we'll have to refer it to this directory.
3130 (substitute* "configure"
3131 (("^GOFFICE_PLUGINS_DIR=.*")
3132 (string-append "GOFFICE_PLUGINS_DIR="
3133 (assoc-ref outputs "out")
3134 "/goffice/plugins"))))))))
b804c61e
JD
3135 (inputs
3136 `(("glib" ,glib)
3137 ("gtk+" ,gtk+)
3138 ("goffice" ,goffice)
3139 ("libgsf" ,libgsf)
7bcbd40d 3140 ("librsvg" ,librsvg)
b804c61e 3141 ("libxml2" ,libxml2)
7bcbd40d 3142 ("libxslt" ,libxslt)
2e4c5457 3143 ("python" ,python-2)
6983ba56 3144 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3145 ("zlib" ,zlib)))
3146 (native-inputs
6983ba56 3147 `(("bison" ,bison)
1ed398d1 3148 ("docbook-xml" ,docbook-xml)
6983ba56 3149 ("intltool" ,intltool)
785fcb62 3150 ("itstool" ,itstool)
b9663471 3151 ("glib:bin" ,glib "bin")
b804c61e
JD
3152 ("pkg-config" ,pkg-config)))
3153 (home-page "http://www.gnumeric.org")
66672a45
LC
3154 (synopsis "Spreadsheet application")
3155 (description
3156 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3157interoperable with other spreadsheet applications. It has a vast array of
3158features beyond typical spreadsheet functionality, such as support for linear
3159and non-linear solvers, statistical analysis, and telecommunication
3160engineering.")
3161 (license
b804c61e
JD
3162 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3163 (list license:gpl2 license:gpl3))))
6f885c05
FB
3164
3165(define-public gnome-themes-standard
3166 (package
3167 (name "gnome-themes-standard")
0b7b8fb0 3168 (version "3.22.3")
6f885c05
FB
3169 (source
3170 (origin
3171 (method url-fetch)
2e6ecc5c 3172 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3173 (version-major+minor version) "/" name "-"
3174 version ".tar.xz"))
3175 (sha256
3176 (base32
0b7b8fb0 3177 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3178 (build-system gnu-build-system)
8ac70c7f
SB
3179 (arguments
3180 '(#:configure-flags
3181 ;; Don't create 'icon-theme.cache'.
3182 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3183 (true (string-append coreutils "/bin/true")))
3184 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3185 (inputs
3186 `(("gtk+" ,gtk+)
3187 ("gtk+-2" ,gtk+-2)
3188 ("librsvg" ,librsvg)
3189 ("libxml2" ,libxml2)
3190 ("glib" ,glib)))
3191 (native-inputs
3192 `(("intltool" ,intltool)
3193 ("glib:bin" ,glib "bin")
3194 ("pkg-config" ,pkg-config)))
6f885c05
FB
3195 (home-page "https://launchpad.net/gnome-themes-standard")
3196 (synopsis "Default GNOME 3 themes")
3197 (description
3198 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3199 (license license:lgpl2.1+)))
5a659a48 3200
df90c701
RW
3201(define-public seahorse
3202 (package
3203 (name "seahorse")
bcea3c11 3204 (version "3.32.2")
df90c701
RW
3205 (source
3206 (origin
3207 (method url-fetch)
3208 (uri (string-append "mirror://gnome/sources/" name "/"
3209 (version-major+minor version) "/" name "-"
3210 version ".tar.xz"))
3211 (sha256
3212 (base32
bcea3c11 3213 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
3214 (patches (search-patches
3215 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3216 (build-system meson-build-system)
3217 (arguments
bcea3c11
KK
3218 '(#:glib-or-gtk? #t
3219 #:phases
af561664
MÁAV
3220 (modify-phases %standard-phases
3221 (add-after 'unpack 'skip-gtk-update-icon-cache
3222 ;; Don't create 'icon-theme.cache'.
3223 (lambda _
3224 (substitute* "build-aux/meson_post_install.py"
3225 (("gtk-update-icon-cache") "true"))
3226 #t)))))
df90c701
RW
3227 (inputs
3228 `(("gtk+" ,gtk+)
3229 ("gcr" ,gcr)
34b979b9 3230 ("gnupg" ,gnupg)
df90c701 3231 ("gpgme" ,gpgme)
34b979b9 3232 ("openldap" ,openldap)
4a1bf090 3233 ("openssh" ,openssh)
af561664 3234 ("avahi" ,avahi)
bcea3c11 3235 ("libpwquality" ,libpwquality)
34b979b9
EF
3236 ("libsecret" ,libsecret)
3237 ("libsoup" ,libsoup)))
df90c701 3238 (native-inputs
af561664 3239 `(("gettext" ,gettext-minimal)
df90c701
RW
3240 ("glib:bin" ,glib "bin")
3241 ("itstool" ,itstool)
bcb354ad 3242 ("pkg-config" ,pkg-config)
af561664 3243 ("vala" ,vala)
bcb354ad 3244 ("xmllint" ,libxml2)))
bcea3c11 3245 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3246 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3247 (description
3248 "Seahorse is a GNOME application for managing encryption keys and
3249passwords in the GNOME keyring.")
3250 (license license:gpl2+)))
3251
5a659a48
SB
3252(define-public vala
3253 (package
3254 (name "vala")
b92a36db 3255 (version "0.46.5")
5a659a48
SB
3256 (source (origin
3257 (method url-fetch)
3258 (uri (string-append "mirror://gnome/sources/" name "/"
3259 (version-major+minor version) "/"
3260 name "-" version ".tar.xz"))
3261 (sha256
3262 (base32
b92a36db 3263 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3264 (build-system gnu-build-system)
1ea90625
SB
3265 (arguments
3266 '(#:phases
3267 (modify-phases %standard-phases
f4925a4f 3268 (add-before 'check 'pre-check
1ea90625
SB
3269 (lambda _
3270 (setenv "CC" "gcc")
8839b6be
RW
3271 (substitute* "valadoc/tests/testrunner.sh"
3272 (("export PKG_CONFIG_PATH=" m)
3273 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3274 ;; For missing '/etc/machine-id'.
3275 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3276 #t)))))
5a659a48
SB
3277 (native-inputs
3278 `(("pkg-config" ,pkg-config)
3279 ("flex" ,flex)
3280 ("bison" ,bison)
3281 ("xsltproc" ,libxslt)
3282 ("dbus" ,dbus) ; for dbus tests
3283 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3284 (inputs
3285 `(("graphviz" ,graphviz)))
5a659a48 3286 (propagated-inputs
8839b6be 3287 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3288 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3289 (synopsis "Compiler for the GObject type system")
3290 (description
3291 "Vala is a programming language that aims to bring modern programming
3292language features to GNOME developers without imposing any additional runtime
3293requirements and without using a different ABI compared to applications and
3294libraries written in C.")
3295 (license license:lgpl2.1+)))
ea57378f
SB
3296
3297(define-public vte
3298 (package
3299 (name "vte")
68c47474 3300 (version "0.58.3")
ea57378f
SB
3301 (source (origin
3302 (method url-fetch)
ac87ffb8 3303 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3304 (version-major+minor version) "/"
ac87ffb8 3305 "vte-" version ".tar.xz"))
ea57378f
SB
3306 (sha256
3307 (base32
68c47474
TGR
3308 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3309 (build-system meson-build-system)
ea57378f
SB
3310 (native-inputs
3311 `(("pkg-config" ,pkg-config)
3312 ("intltool" ,intltool)
3313 ("vala" ,vala)
3314 ("gobject-introspection" ,gobject-introspection)
68c47474 3315 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3316 ("gperf" ,gperf)
ea57378f
SB
3317 ("xmllint" ,libxml2)))
3318 (propagated-inputs
68c47474
TGR
3319 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3320 ("gnutls" ,gnutls) ; ditto
3321 ("pcre2" ,pcre2))) ; ditto
f032d0be 3322 (home-page "https://www.gnome.org/")
ea57378f
SB
3323 (synopsis "Virtual Terminal Emulator")
3324 (description
3325 "VTE is a library (libvte) implementing a terminal emulator widget for
3326GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3327gnome-terminal, but can also be used to embed a console/terminal in games,
3328editors, IDEs, etc.")
3329 (license license:lgpl2.1+)))
3330
c44fb4df
MO
3331(define-public vte-ng
3332 (package
3333 (inherit vte)
3334 (name "vte-ng")
24f4fcbe 3335 (version "0.58.2.a")
afd90f8d 3336 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3337 (source (origin
3338 (method git-fetch)
3339 (uri (git-reference (url home-page) (commit version)))
3340 (file-name (git-file-name name version))
3341 (sha256
3342 (base32
24f4fcbe
MB
3343 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3344 (build-system meson-build-system)
c44fb4df
MO
3345 (native-inputs
3346 `(("gtk-doc" ,gtk-doc)
c44fb4df 3347 ,@(package-native-inputs vte)))
c44fb4df 3348 (arguments
24f4fcbe 3349 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3350 (synopsis "Enhanced VTE terminal widget")
3351 (description
3352 "VTE is a library (libvte) implementing a terminal emulator widget for
3353GTK+, this fork provides additional functions exposed for keyboard text
3354selection and URL hints.")))
3355
2776d72c
EF
3356;; provides vte 2.90, required for some terminal emulators
3357;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3358;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3359;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3360;; pantheon-terminal, roxterm are not currently packaged
3361(define-public vte-0.36
3362 (package (inherit vte)
3363 (name "vte")
3364 (version "0.36.5")
3365 (source (origin
3366 (method url-fetch)
3367 (uri (string-append "mirror://gnome/sources/" name "/"
3368 (version-major+minor version) "/"
3369 name "-" version ".tar.xz"))
3370 (sha256
3371 (base32
3372 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3373 (propagated-inputs
3374 `(("gtk" ,gtk+)
3375 ("ncurses" ,ncurses)))))
3376
ea57378f
SB
3377;; stable version for gtk2, required by xfce4-terminal.
3378(define-public vte/gtk+-2
3379 (package (inherit vte)
3380 (name "vte")
3381 (version "0.28.2")
3382 (source (origin
3383 (method url-fetch)
3384 (uri (string-append "mirror://gnome/sources/" name "/"
3385 (version-major+minor version) "/"
3386 name "-" version ".tar.xz"))
3387 (sha256
3388 (base32
7d48938a
EF
3389 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3390 (patches (search-patches
3391 "vte-CVE-2012-2738-pt1.patch"
3392 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3393 (build-system gnu-build-system)
ea57378f
SB
3394 (arguments
3395 '(#:configure-flags '("--disable-python")))
3396 (native-inputs
3397 `(("pkg-config" ,pkg-config)
3398 ("intltool" ,intltool)
3399 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3400 (propagated-inputs
3401 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3402 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3403
cce0da5e
TD
3404(define-public vinagre
3405 (package
3406 (name "vinagre")
3407 (version "3.22.0")
3408 (source (origin
3409 (method url-fetch)
3410 (uri (string-append "mirror://gnome/sources/" name "/"
3411 (version-major+minor version) "/"
3412 name "-" version ".tar.xz"))
684f97f8
EF
3413 (patches (search-patches "vinagre-newer-freerdp.patch"
3414 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3415 (sha256
3416 (base32
3417 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3418 (build-system glib-or-gtk-build-system)
684f97f8 3419 (arguments
7f486d25
MC
3420 ;; Disable -Werror and such, to avoid build failures on compilation
3421 ;; warnings.
3422 '(#:configure-flags '("--enable-compile-warnings=minimum")
3423 #:phases
684f97f8 3424 (modify-phases %standard-phases
1839768c
EF
3425 (add-before 'install 'skip-gtk-update-icon-cache
3426 (lambda _
3427 ;; Don't create 'icon-theme.cache'
3428 (substitute* (find-files "." "^Makefile$")
3429 (("gtk-update-icon-cache") (which "true")))
3430 #t))
684f97f8
EF
3431 (add-after 'unpack 'patch-configure
3432 (lambda _
3433 (substitute* "configure"
3434 (("freerdp") "freerdp2"))
3435 #t)))))
cce0da5e
TD
3436 (native-inputs
3437 `(("pkg-config" ,pkg-config)
3438 ("intltool" ,intltool)
3439 ("itstool" ,itstool)
1839768c 3440 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3441 (inputs
3442 `(("libxml2" ,libxml2)
3443 ("gtk-vnc" ,gtk-vnc)
3444 ("gnome-keyring" ,gnome-keyring)
3445 ("libsecret" ,libsecret)
3446 ("freerdp" ,freerdp)
3447 ("spice" ,spice)
3448 ("spice-gtk" ,spice-gtk)
3449 ("telepathy-glib" ,telepathy-glib)
3450 ("vte" ,vte)))
cce0da5e
TD
3451 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3452 (synopsis "Remote desktop viewer for GNOME")
3453 (description "Vinagre is a remote display client supporting the VNC, SPICE
3454and RDP protocols.")
3455 (license license:gpl3+)))
3456
b47e1b20
FB
3457(define-public dconf
3458 (package
3459 (name "dconf")
1e33331c 3460 (version "0.32.0")
b47e1b20
FB
3461 (source (origin
3462 (method url-fetch)
3463 (uri (string-append
2e6ecc5c 3464 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3465 (version-major+minor version) "/"
3466 name "-" version ".tar.xz"))
46c3a08b 3467 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3468 (sha256
f05c809f 3469 (base32
1e33331c 3470 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 3471 (build-system meson-build-system)
bc036f4c
MB
3472 (propagated-inputs
3473 ;; In Requires of dconf.pc.
3474 `(("glib" ,glib)))
b47e1b20
FB
3475 (inputs
3476 `(("gtk+" ,gtk+)
bc036f4c 3477 ("dbus" ,dbus)))
b47e1b20 3478 (native-inputs
1e33331c
MB
3479 `(("bash-completion" ,bash-completion)
3480 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3481 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3482 ("docbook-xml" ,docbook-xml-4.2)
3483 ("docbook-xsl" ,docbook-xsl)
35fa923d 3484 ("glib:bin" ,glib "bin")
03676d6f 3485 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3486 ("pkg-config" ,pkg-config)
3487 ("vala" ,vala)))
b47e1b20
FB
3488 (arguments
3489 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3490 ; or /etc/machine-id.
35fa923d
MB
3491 #:glib-or-gtk? #t
3492 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3493 (home-page "https://developer.gnome.org/dconf")
3494 (synopsis "Low-level GNOME configuration system")
3495 (description "Dconf is a low-level configuration system. Its main purpose
3496is to provide a backend to GSettings on platforms that don't already have
3497configuration storage systems.")
e20e6b40 3498 (license license:lgpl2.1+)))
109da1c0
AE
3499
3500(define-public json-glib
3501 (package
3502 (name "json-glib")
4115e8ea 3503 (version "1.4.4")
109da1c0
AE
3504 (source (origin
3505 (method url-fetch)
3506 (uri (string-append "mirror://gnome/sources/" name "/"
3507 (version-major+minor version) "/"
3508 name "-" version ".tar.xz"))
3509 (sha256
3510 (base32
4115e8ea 3511 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3512 (build-system meson-build-system)
109da1c0 3513 (native-inputs
98afa184
MB
3514 `(("gettext" ,gettext-minimal)
3515 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3516 ("gobject-introspection" ,gobject-introspection)
3517 ("pkg-config" ,pkg-config)))
3518 (propagated-inputs
88c6b580 3519 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3520 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3521 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3522 (description
3523 "JSON-GLib is a C library based on GLib providing serialization and
3524deserialization support for the JavaScript Object Notation (JSON) format
3525described by RFC 4627. It provides parser and generator GObject classes and
3526various wrappers for the complex data types employed by JSON, such as arrays
3527and objects.")
109da1c0 3528 (license license:lgpl2.1+)))
6f96a359
SB
3529
3530(define-public libxklavier
3531 (package
3532 (name "libxklavier")
5f39050b 3533 (version "5.4")
6f96a359 3534 (source (origin
5f39050b 3535 ;; Note: There's no tarball at ftp.gnome.org for this version.
3536 (method git-fetch)
3537 (uri (git-reference
3538 (url "https://anongit.freedesktop.org/git/libxklavier")
3539 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3540 (sha256
3541 (base32
5f39050b 3542 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3543 (file-name (git-file-name name version))))
6f96a359
SB
3544 (build-system gnu-build-system)
3545 (arguments
778d6b52 3546 '(#:configure-flags
6f96a359
SB
3547 (list (string-append "--with-xkb-base="
3548 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3549 "/share/X11/xkb")
3550 "--disable-xmodmap-support")))
6f96a359
SB
3551 (native-inputs
3552 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3553 ("gobject-introspection" ,gobject-introspection)
5f39050b 3554 ("pkg-config" ,pkg-config)
3555 ("gtk-doc" ,gtk-doc)
3556 ("intltool" ,intltool)
3557 ("which" ,which)
3558 ("autoconf" ,autoconf)
3559 ("automake" ,automake)
3560 ("libtool" ,libtool)))
6f96a359
SB
3561 (propagated-inputs
3562 ;; Required by libxklavier.pc.
3563 `(("glib" ,glib)
3564 ("libxml2" ,libxml2)))
3565 (inputs
3566 `(("iso-codes" ,iso-codes)
3567 ("libxi" ,libxi)
3568 ("libxkbfile" ,libxkbfile)
3569 ("xkbcomp" ,xkbcomp)
3570 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3571 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3572 (synopsis "High-level API for X Keyboard Extension")
3573 (description
3574 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3575Extension known as XKB. This library is intended to support XFree86 and other
3576commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3577indicators etc).")
3578 (license license:lgpl2.0+)))
619936a4
LC
3579
3580(define-public python2-rsvg
3581 ;; XXX: This is actually a subset of gnome-python-desktop.
3582 (package
3583 (name "python2-rsvg")
3584 (version "2.32.0")
3585 (source
3586 (origin
3587 (method url-fetch)
3588 (uri (string-append
3589 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3590 version ".tar.bz2"))
3591 (sha256
3592 (base32
3593 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3594 (build-system gnu-build-system)
3595 (native-inputs
3596 `(("pkg-config" ,pkg-config)))
3597 (inputs
3598 `(("python" ,python-2)
3599 ("python2-pygtk" ,python2-pygtk)
3600 ("librsvg" ,librsvg)))
f032d0be 3601 (home-page "https://www.gnome.org")
619936a4
LC
3602 (synopsis "Python bindings to librsvg")
3603 (description
3ad75446 3604 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3605library.")
3606
3607 ;; This is the license of the rsvg bindings. The license of each module
3608 ;; of gnome-python-desktop is given in 'COPYING'.
3609 (license license:lgpl2.1+)))
a31a6d22 3610
f2ca414a
SB
3611(define-public glib-networking
3612 (package
3613 (name "glib-networking")
0d75c64d 3614 (version "2.60.3")
f2ca414a
SB
3615 (source (origin
3616 (method url-fetch)
3617 (uri (string-append "mirror://gnome/sources/glib-networking/"
3618 (version-major+minor version) "/"
fb8fe1e8 3619 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3620 (sha256
3621 (base32
0d75c64d 3622 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3623 (build-system meson-build-system)
f2ca414a 3624 (arguments
0d75c64d 3625 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3626 (native-inputs
3627 `(("pkg-config" ,pkg-config)
3628 ("intltool" ,intltool)))
3629 (inputs
3630 `(("glib" ,glib)
3631 ("gnutls" ,gnutls)
4b8f1313 3632 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3633 (home-page "https://www.gnome.org")
f2ca414a
SB
3634 (synopsis "Network-related GIO modules")
3635 (description
3636 "This package contains various network related extensions for the GIO
3637library.")
3638 (license license:lgpl2.0+)))
3639
ca649680 3640(define-public rest
4510b2da 3641 (package
ca649680 3642 (name "rest")
a4194d16 3643 (version "0.8.1")
4510b2da
SB
3644 (source (origin
3645 (method url-fetch)
3646 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3647 (version-major+minor version) "/"
3648 name "-" version ".tar.xz"))
4510b2da
SB
3649 (sha256
3650 (base32
a4194d16 3651 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3652 (build-system gnu-build-system)
3653 (arguments
3654 '(#:tests? #f ; tests require internet connection
3655 #:configure-flags
3656 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3657 (native-inputs
3658 `(("glib-mkenums" ,glib "bin")
3659 ("gobject-introspection" ,gobject-introspection)
3660 ("pkg-config" ,pkg-config)))
3661 (propagated-inputs
3662 ;; rest-0.7.pc refers to all these.
3663 `(("glib" ,glib)
3664 ("libsoup" ,libsoup)
3665 ("libxml2" ,libxml2)))
24d6cc1d 3666 (home-page "https://www.gtk.org/")
4510b2da
SB
3667 (synopsis "RESTful web api query library")
3668 (description
3669 "This library was designed to make it easier to access web services that
3670claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3671libxml to ease remote use of the RESTful API.")
3672 (license license:lgpl2.1+)))
3673
6e1bb642
SB
3674(define-public libsoup
3675 (package
3676 (name "libsoup")
16af0dd9 3677 (version "2.68.4")
6e1bb642
SB
3678 (source (origin
3679 (method url-fetch)
3680 (uri (string-append "mirror://gnome/sources/libsoup/"
3681 (version-major+minor version) "/"
c1b79b36 3682 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3683 (sha256
3684 (base32
16af0dd9 3685 "151j5dc84gbl6a917pxvd0b372lw5za48n63lyv6llfc48lv2l1d"))))
eccaa8bf 3686 (build-system meson-build-system)
6e1bb642
SB
3687 (outputs '("out" "doc"))
3688 (arguments
2deb146f 3689 `(#:modules ((guix build utils)
eccaa8bf 3690 (guix build meson-build-system)
2deb146f
LC
3691 (ice-9 popen))
3692
f8026a79 3693 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3694 #:phases
3695 (modify-phases %standard-phases
eccaa8bf 3696 (add-after 'unpack 'adjust-tests
26c228f9 3697 (lambda _
eccaa8bf
MB
3698 ;; This test fails due to missing /etc/nsswitch.conf
3699 ;; in the build environment.
26c228f9
LC
3700 (substitute* "tests/socket-test.c"
3701 ((".*/sockets/unconnected.*") ""))
2deb146f 3702
f8026a79
MB
3703 ;; These fail because "subdomain.localhost" does not resolve in
3704 ;; the build environment.
3705 (substitute* "tests/hsts-test.c"
3706 ((".*/hsts/basic.*") "")
3707 ((".*/hsts/subdomains.*") "")
3708 ((".*/hsts/superdomain.*") "")
3709 ((".*/hsts/utf8-address.*") ""))
3710 (substitute* "tests/hsts-db-test.c"
3711 ((".*/hsts-db/subdomains.*") ""))
3712
2deb146f
LC
3713 ;; Generate a self-signed certificate that has "localhost" as its
3714 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3715 ;; 3.5.12, tests such as "ssl-tests" fail:
3716 ;;
3717 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3718 ;;
3719 ;; 'certtool' is interactive so we have to pipe it the answers.
3720 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3721 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3722 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3723 (for-each (lambda (line)
3724 (display line pipe)
3725 (newline pipe))
3726 '("" ;Common name
3727 "" ;UID
3728 "Guix" ;Organizational unit name
3729 "GNU" ;Organization name
3730 "" ;Locality name
3731 "" ;State or province
3732 "" ;Country
3733 "" ;subject's domain component (DC)
3734 "" ;E-mail
3735 "" ;serial number
3736 "-1" ;expiration time
3737 "N" ;belong to authority?
3738 "N" ;web client certificate?
3739 "N" ;IPsec IKE?
3740 "Y" ;web server certificate?
3741 "localhost" ;dnsName of subject
3742 "" ;dnsName of subject (end)
3743 "" ;URI of subject
3744 "127.0.0.1" ;IP address of subject
3745 "" ;signing?
06f5bc4e
MB
3746 "" ;encryption (RSA)?
3747 "" ;data encryption?
2deb146f
LC
3748 "" ;sign OCSP requests?
3749 "" ;sign code?
3750 "" ;time stamping?
3751 "" ;email protection?
3752 "" ;URI of the CRL distribution point
3753 "y" ;above info OK?
3754 ))
3755 (close-pipe pipe))
26c228f9 3756 #t))
eccaa8bf
MB
3757 (add-after 'install 'move-doc
3758 (lambda* (#:key outputs #:allow-other-keys)
3759 (let ((out (assoc-ref outputs "out"))
3760 (doc (assoc-ref outputs "doc")))
3761 (mkdir-p (string-append doc "/share"))
3762 (copy-recursively (string-append out "/share/gtk-doc")
3763 (string-append doc "/share/gtk-doc"))
3764 (delete-file-recursively (string-append out "/share/gtk-doc"))
3765 #t))))))
6e1bb642 3766 (native-inputs
26c228f9 3767 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3768 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3769 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3770 ("intltool" ,intltool)
3771 ("pkg-config" ,pkg-config)
3772 ("python" ,python-wrapper)
fd730590 3773 ("vala" ,vala)
6e1bb642
SB
3774 ;; These are needed for the tests.
3775 ;; FIXME: Add PHP once available.
3776 ("curl" ,curl)
2deb146f 3777 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3778 ("httpd" ,httpd)))
3779 (propagated-inputs
3780 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3781 `(("brotli" ,google-brotli)
3782 ("glib" ,glib)
249846bf 3783 ("libpsl" ,libpsl)
eccaa8bf 3784 ("libxml2" ,libxml2)
f8026a79
MB
3785 ("sqlite" ,sqlite)
3786 ("zlib" ,zlib)))
eccaa8bf
MB
3787 (inputs
3788 `(("glib-networking" ,glib-networking)
3789 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3790 (home-page "https://live.gnome.org/LibSoup/")
3791 (synopsis "GLib-based HTTP Library")
3792 (description
3793 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3794and the GLib main loop, to integrate well with GNOME applications.")
3795 (license license:lgpl2.0+)))
3796
bba229a3
SB
3797(define-public libsecret
3798 (package
3799 (name "libsecret")
a866dd18 3800 (version "0.20.1")
bba229a3
SB
3801 (source (origin
3802 (method url-fetch)
3803 (uri (string-append
896dcbc7
EF
3804 "mirror://gnome/sources/libsecret/"
3805 (version-major+minor version) "/"
0ada4e29 3806 "libsecret-" version ".tar.xz"))
bba229a3
SB
3807 (sha256
3808 (base32
a866dd18 3809 "0ir4ynpf8b64xss1azvsi5x6697lik7hkf3z0xxa2qv2xja3xxsp"))))
bba229a3
SB
3810 (build-system gnu-build-system)
3811 (outputs '("out" "doc"))
3812 (arguments
3813 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3814 #:configure-flags
3815 (list (string-append "--with-html-dir="
3816 (assoc-ref %outputs "doc")
3817 "/share/gtk-doc/html"))))
3818 (native-inputs
c06ef010
MB
3819 `(("gettext" ,gettext-minimal)
3820 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3821 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3822 ("pkg-config" ,pkg-config)
3823 ("vala" ,vala)
3824 ("xsltproc" ,libxslt)))
3825 ;; These are needed for the tests.
3826 ;; FIXME: Add gjs once available.
3827 ;("dbus" ,dbus)
3828 ;("python2" ,python-2)
3829 ;("python2-dbus" ,python2-dbus)
3830 ;("python2-pygobject" ,python2-pygobject)
3831 ;("python2-pygobject-2" ,python2-pygobject-2)))
3832 (propagated-inputs
3833 `(("glib" ,glib))) ; required by libsecret-1.pc
3834 (inputs
3835 `(("docbook-xsl" ,docbook-xsl)
3836 ("libgcrypt" ,libgcrypt)
3837 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3838 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3839 (synopsis "GObject bindings for \"Secret Service\" API")
3840 (description
3841 "Libsecret is a GObject based library for storing and retrieving passwords
3842and other secrets. It communicates with the \"Secret Service\" using DBus.")
3843 (license license:lgpl2.1+)))
3844
b6821ee0 3845(define-public five-or-more
3846 (package
3847 (name "five-or-more")
d9795e93 3848 (version "3.32.0")
b6821ee0 3849 (source
3850 (origin
3851 (method url-fetch)
3852 (uri (string-append "mirror://gnome/sources/" name "/"
3853 (version-major+minor version) "/"
3854 name "-" version ".tar.xz"))
3855 (sha256
3856 (base32
d9795e93
KK
3857 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3858 (build-system meson-build-system)
3859 (arguments
3860 '(#:glib-or-gtk? #t
3861 #:phases
3862 (modify-phases %standard-phases
3863 (add-after 'unpack 'skip-gtk-update-icon-cache
3864 (lambda _
3865 (substitute* "meson_post_install.py"
3866 (("gtk-update-icon-cache") (which "true")))
3867 #t)))))
b6821ee0 3868 (native-inputs
3869 `(("pkg-config" ,pkg-config)
d9795e93 3870 ("appstream-glib" ,appstream-glib)
b6821ee0 3871 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3872 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3873 ("intltool" ,intltool)
3874 ("itstool" ,itstool)
d9795e93 3875 ("vala" ,vala)
b6821ee0 3876 ("xmllint" ,libxml2)))
3877 (inputs
3878 `(("gtk+" ,gtk+)
d9795e93 3879 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3880 ("librsvg" ,librsvg)))
3881 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3882 (synopsis "Logic puzzle game")
3883 (description "Five or More is a game where you try to align
3884 five or more objects of the same color and shape causing them to disappear.
3885 On every turn more objects will appear, until the board is full.
3886 Try to last as long as possible.")
3887 (license license:gpl2+)))
3888
a31a6d22
SB
3889(define-public gnome-mines
3890 (package
3891 (name "gnome-mines")
2d817e41 3892 (version "3.32.2")
a31a6d22
SB
3893 (source
3894 (origin
3895 (method url-fetch)
3896 (uri (string-append "mirror://gnome/sources/" name "/"
3897 (version-major+minor version) "/"
3898 name "-" version ".tar.xz"))
3899 (sha256
3900 (base32
2d817e41 3901 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3902 (build-system meson-build-system)
a31a6d22 3903 (arguments
2d817e41
KK
3904 '(#:glib-or-gtk? #t
3905 #:phases
a31a6d22 3906 (modify-phases %standard-phases
2d817e41
KK
3907 (add-after 'unpack 'skip-gtk-update-icon-cache
3908 (lambda _
3909 (substitute* "build-aux/meson_post_install.py"
3910 (("gtk-update-icon-cache") (which "true")))
3911 #t)))))
a31a6d22 3912 (native-inputs
8c0fab36
RW
3913 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3914 ("pkg-config" ,pkg-config)
a31a6d22
SB
3915 ("desktop-file-utils" ,desktop-file-utils)
3916 ("intltool" ,intltool)
bcb354ad 3917 ("itstool" ,itstool)
8c0fab36
RW
3918 ("vala" ,vala)
3919 ("yelp" ,yelp)
3920 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3921 (inputs
3922 `(("gtk+" ,gtk+)
73992962 3923 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3924 ("librsvg" ,librsvg)))
3925 (home-page "https://wiki.gnome.org/Apps/Mines")
3926 (synopsis "Minesweeper game")
3927 (description
3928 "Mines (previously gnomine) is a puzzle game where you locate mines
3929floating in an ocean using only your brain and a little bit of luck.")
3930 (license license:gpl2+)))
88f70665 3931
dfc407f3
KY
3932(define-public gnome-sudoku
3933 (package
3934 (name "gnome-sudoku")
7dc728c4 3935 (version "3.32.0")
dfc407f3
KY
3936 (source
3937 (origin
3938 (method url-fetch)
3939 (uri (string-append "mirror://gnome/sources/" name "/"
3940 (version-major+minor version) "/"
3941 name "-" version ".tar.xz"))
3942 (sha256
3943 (base32
7dc728c4
KK
3944 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3945 (build-system meson-build-system)
3946 (arguments
3947 '(#:glib-or-gtk? #t
3948 #:phases
3949 (modify-phases %standard-phases
3950 (add-after 'unpack 'skip-gtk-update-icon-cache
3951 (lambda _
3952 (substitute* "build-aux/post_install.py"
3953 (("gtk-update-icon-cache") (which "true")))
3954 #t)))))
dfc407f3
KY
3955 (native-inputs
3956 `(("pkg-config" ,pkg-config)
3957 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3958 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3959 ("intltool" ,intltool)
3960 ("itstool" ,itstool)
7dc728c4 3961 ("vala" ,vala)
dfc407f3
KY
3962 ("xmllint" ,libxml2)))
3963 (inputs
3964 `(("gtk+" ,gtk+)
3965 ("json-glib" ,json-glib)
3966 ("libgee" ,libgee)
3967 ("librsvg" ,librsvg)
3968 ("qqwing" ,qqwing)))
3969 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3970 (synopsis "Japanese logic game")
3971 (description
3972 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3973GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3974possible while still providing features that make playing difficult Sudoku
3975more fun.")
3976 (license license:gpl2+)))
3977
88f70665
AW
3978(define-public gnome-terminal
3979 (package
3980 (name "gnome-terminal")
7dee3942 3981 (version "3.32.2")
88f70665
AW
3982 (source
3983 (origin
3984 (method url-fetch)
3985 (uri (string-append "mirror://gnome/sources/" name "/"
3986 (version-major+minor version) "/"
3987 name "-" version ".tar.xz"))
3988 (sha256
3989 (base32
7dee3942 3990 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3991 (build-system glib-or-gtk-build-system)
3992 (arguments
3993 '(#:configure-flags
3994 (list "--disable-migration" "--disable-search-provider"
3995 "--without-nautilus-extension")
3996 #:phases
3997 (modify-phases %standard-phases
3a4de6b2 3998 (add-before 'configure 'patch-/bin/true
88f70665
AW
3999 (lambda _
4000 (substitute* "configure"
4001 (("/bin/true") (which "true"))))))))
4002 (native-inputs
4003 `(("pkg-config" ,pkg-config)
4004 ("desktop-file-utils" ,desktop-file-utils)
4005 ("intltool" ,intltool)
bcb354ad
SB
4006 ("itstool" ,itstool)
4007 ("xmllint" ,libxml2)))
68702167
MW
4008 (propagated-inputs
4009 `(("dconf" ,dconf)))
88f70665
AW
4010 (inputs
4011 `(("gtk+" ,gtk+)
4012 ("vte" ,vte)
4013 ("gnutls" ,gnutls)
88f70665 4014 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 4015 ("util-linux" ,util-linux "lib")
88f70665
AW
4016 ("vala" ,vala)))
4017 (home-page "https://wiki.gnome.org/Apps/Terminal")
4018 (synopsis "Terminal emulator")
4019 (description
4020 "GNOME Terminal is a terminal emulator application for accessing a
4021UNIX shell environment which can be used to run programs available on
4022your system.
4023
4024It supports several profiles, multiple tabs and implements several
4025keyboard shortcuts.")
4026 (license license:gpl3+)))
75016d07
AW
4027
4028(define-public colord
4029 (package
4030 (name "colord")
f98be942 4031 (version "1.4.4")
75016d07
AW
4032 (source
4033 (origin
4034 (method url-fetch)
5cc3096c 4035 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4036 "colord-" version ".tar.xz"))
75016d07 4037 (sha256
f98be942 4038 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4039 (build-system meson-build-system)
75016d07 4040 (arguments
a68544a8
RW
4041 '(;; FIXME: One test fails:
4042 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4043 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4044 ;; application/x-zerosize
75016d07 4045 #:tests? #f
a68544a8
RW
4046 #:glib-or-gtk? #t
4047 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4048 ;; No dep on systemd.
a68544a8 4049 "-Dsystemd=false"
75016d07
AW
4050 ;; Wants to install to global completion dir;
4051 ;; punt.
a68544a8 4052 "-Dbash_completion=false"
a68544a8
RW
4053 "-Ddaemon_user=colord"
4054 "-Dsane=true"
dac26e22 4055 "-Dvapi=true"
6f20e2dc 4056 ;; Requires spotread.
a68544a8 4057 "-Dargyllcms_sensor=false"
6f20e2dc 4058 ;; TODO: Requires docbook2x.
a68544a8 4059 "-Dman=false")
75016d07
AW
4060 #:phases
4061 (modify-phases %standard-phases
a68544a8
RW
4062 (add-before 'configure 'patch-build-system
4063 (lambda* (#:key outputs #:allow-other-keys)
4064 (substitute* "rules/meson.build"
4065 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4066 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4067 #t))
4068 (add-before 'configure 'set-sqlite3-file-name
4069 (lambda* (#:key inputs #:allow-other-keys)
4070 ;; "colormgr dump" works by invoking the "sqlite3" command.
4071 ;; Record its absolute file name.
4072 (let ((sqlite (assoc-ref inputs "sqlite")))
4073 (substitute* "client/cd-util.c"
4074 (("\"sqlite3\"")
4075 (string-append "\"" sqlite "/bin/sqlite3\"")))
4076 #t))))))
75016d07 4077 (native-inputs
6f20e2dc 4078 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4079 ("gettext" ,gettext-minimal)
75016d07 4080 ("gobject-introspection" ,gobject-introspection)
a68544a8 4081 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4082 ("pkg-config" ,pkg-config)
4083 ("vala" ,vala)))
65cb2d61
SB
4084 (propagated-inputs
4085 ;; colord.pc refers to all these.
4086 `(("glib" ,glib)
6f20e2dc
TGR
4087 ("lcms" ,lcms)
4088 ("udev" ,eudev)))
75016d07 4089 (inputs
65cb2d61 4090 `(("dbus-glib" ,dbus-glib)
a68544a8 4091 ("gusb" ,gusb)
80c7dd1a 4092 ("libgudev" ,libgudev)
75016d07 4093 ("libusb" ,libusb)
75016d07 4094 ("polkit" ,polkit)
a68544a8 4095 ("python" ,python-wrapper)
6f20e2dc 4096 ("sqlite" ,sqlite)
4c928743 4097 ("sane-backends" ,sane-backends)))
57e7d748 4098 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4099 (synopsis "Color management service")
4100 (description "Colord is a system service that makes it easy to manage,
4101install and generate color profiles to accurately color manage input and
4102output devices.")
4103 (license license:gpl2+)))
7b2abd00
AW
4104
4105(define-public geoclue
4106 (package
4107 (name "geoclue")
50e96d25 4108 (version "2.5.5")
7b2abd00
AW
4109 (source
4110 (origin
4111 (method url-fetch)
50e96d25
MB
4112 (uri
4113 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4114 version "/geoclue-" version ".tar.bz2"))
7b2abd00
AW
4115 (sha256
4116 (base32
50e96d25 4117 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
fc1adab1 4118 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4119 (build-system meson-build-system)
7b2abd00 4120 (arguments
50e96d25 4121 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4122 (native-inputs
4123 `(("pkg-config" ,pkg-config)
758798a9 4124 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4125 ("modem-manager" ,modem-manager)
4126 ("libnotify" ,libnotify)
4127 ("gtk-doc", gtk-doc)
7b2abd00
AW
4128 ("intltool" ,intltool)))
4129 (inputs
54e911bc 4130 `(("avahi" ,avahi)
50e96d25
MB
4131 ("glib:bin" ,glib "bin")
4132 ("glib-networking" ,glib-networking)
7b2abd00
AW
4133 ("json-glib" ,json-glib)
4134 ("libsoup" ,libsoup)))
50e96d25 4135 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4136 (synopsis "Geolocation service")
4137 (description "Geoclue is a D-Bus service that provides location
4138information. The primary goal of the Geoclue project is to make creating
4139location-aware applications as simple as possible, while the secondary goal is
4140to ensure that no application can access location information without explicit
e881752c 4141permission from user.")
7b2abd00 4142 (license license:gpl2+)))
2bfe7437
AW
4143
4144(define-public geocode-glib
4145 (package
4146 (name "geocode-glib")
65de725f 4147 (version "3.26.1")
2bfe7437
AW
4148 (source (origin
4149 (method url-fetch)
4150 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4151 (version-major+minor version) "/"
d485cdc0 4152 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4153 (sha256
4154 (base32
65de725f 4155 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4156 (build-system meson-build-system)
2bfe7437 4157 (arguments
a7dd0c02
RW
4158 `(#:phases
4159 (modify-phases %standard-phases
4160 ;; The tests require a bunch of locales.
4161 (add-before 'check 'set-locales
4162 (lambda* (#:key inputs #:allow-other-keys)
4163 (setenv "GUIX_LOCPATH"
4164 (string-append (assoc-ref inputs "glibc-locales")
4165 "/lib/locale"))
4166 #t)))))
2bfe7437
AW
4167 (native-inputs
4168 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4169 ("glibc-locales" ,glibc-locales) ; for tests
4170 ("gettext" ,gettext-minimal)
2bfe7437 4171 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4172 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4173 ("pkg-config" ,pkg-config)
4174 ("json-glib" ,json-glib)))
4175 (propagated-inputs
4176 ;; geocode-glib-1.0.pc refers to GIO.
4177 `(("glib" ,glib)))
4178 (inputs
4179 `(("libsoup" ,libsoup)))
4180 (home-page "https://github.com/GNOME/geocode-glib/")
4181 (synopsis "Geocoding and reverse-geocoding library")
4182 (description
4183 "geocode-glib is a convenience library for geocoding (finding longitude,
4184and latitude from an address) and reverse geocoding (finding an address from
4185coordinates) using the Nominatim service. geocode-glib caches requests for
4186faster results and to avoid unnecessary server load.")
4187 (license license:lgpl2.0+)))
a1d5bb0e
AW
4188
4189(define-public upower
4190 (package
4191 (name "upower")
df45af90 4192 (version "0.99.11")
a1d5bb0e
AW
4193 (source (origin
4194 (method url-fetch)
df45af90 4195 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4196 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4197 (sha256
4198 (base32
df45af90 4199 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4200 (patches (search-patches "upower-builddir.patch"))
4201 (modules '((guix build utils)))
4202 (snippet
4203 '(begin
4204 ;; Upstream commit
4205 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4206 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4207 ;; 'dbus-configuration-directory' in (gnu services dbus)
4208 ;; expects it in etc/. Thus, move it back to its previous
4209 ;; location.
4210 (substitute* "src/Makefile.in"
4211 (("^dbusconfdir =.*$")
4212 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4213 #t))))
a1d5bb0e
AW
4214 (build-system glib-or-gtk-build-system)
4215 (arguments
4216 '( ;; The tests want to contact the system bus, which can't be done in the
4217 ;; build environment. The integration test can run, but the last of
4218 ;; the up-self-tests doesn't. Disable tests for now.
4219 #:tests? #f
4220 #:configure-flags (list "--localstatedir=/var"
4221 (string-append "--with-udevrulesdir="
4222 (assoc-ref %outputs "out")
9ec54965 4223 "/lib/udev/rules.d"))))
a1d5bb0e 4224 (native-inputs
ebeabe2d
SB
4225 `(("gobject-introspection" ,gobject-introspection)
4226 ("pkg-config" ,pkg-config)
a1d5bb0e 4227 ("intltool" ,intltool)
55409295
LC
4228 ("python" ,python)
4229
4230 ;; For man pages.
4231 ("libxslt" ,libxslt) ;for 'xsltproc'
4232 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4233 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4234 (inputs
ea226291
SB
4235 `(("dbus-glib" ,dbus-glib)
4236 ("libgudev" ,libgudev)
a1d5bb0e 4237 ("libusb" ,libusb)))
d7a503fc
MB
4238 (propagated-inputs
4239 ;; In Requires of upower-glib.pc.
4240 `(("glib" ,glib)))
57e7d748 4241 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4242 (synopsis "System daemon for managing power devices")
4243 (description
4244 "UPower is an abstraction for enumerating power devices,
4245listening to device events and querying history and statistics. Any
4246application or service on the system can access the org.freedesktop.UPower
4247service via the system message bus.")
4248 (license license:gpl2+)))
6a180f6f
AW
4249
4250(define-public libgweather
4251 (package
4252 (name "libgweather")
794ce8ea 4253 (version "3.28.3")
6a180f6f
AW
4254 (source (origin
4255 (method url-fetch)
4256 (uri (string-append "mirror://gnome/sources/" name "/"
4257 (version-major+minor version) "/"
4258 name "-" version ".tar.xz"))
4259 (sha256
4260 (base32
794ce8ea 4261 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 4262 (build-system meson-build-system)
6a180f6f 4263 (arguments
cf6cbc34
RW
4264 `(#:tests? #f ; one of two tests requires network access
4265 #:configure-flags
4266 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4267 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4268 "/share/zoneinfo"))))
6a180f6f
AW
4269 (native-inputs
4270 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4271 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4272 ("pkg-config" ,pkg-config)
1d3fcf94 4273 ("vala" ,vala)
6a180f6f
AW
4274 ("intltool" ,intltool)))
4275 (propagated-inputs
4276 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4277 ;; libsoup.
4278 `(("gtk+" ,gtk+)
4279 ("gdk-pixbuf" ,gdk-pixbuf)
4280 ("libxml2" ,libxml2)
cf6cbc34 4281 ("libsoup" ,libsoup)
6a180f6f 4282 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4283 (inputs
4284 `(("tzdata" ,tzdata)))
6a180f6f
AW
4285 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4286 (synopsis "Location, time zone, and weather library for GNOME")
4287 (description
4288 "libgweather is a library to access weather information from online
4289services for numerous locations.")
4290 (license license:gpl2+)))
23a22af6
AW
4291
4292(define-public gnome-settings-daemon
4293 (package
4294 (name "gnome-settings-daemon")
4be0719f 4295 (version "3.32.1")
23a22af6
AW
4296 (source
4297 (origin
4298 (method url-fetch)
4299 (uri (string-append "mirror://gnome/sources/" name "/"
4300 (version-major+minor version) "/"
4301 name "-" version ".tar.xz"))
4302 (sha256
4303 (base32
4be0719f 4304 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 4305 (build-system meson-build-system)
23a22af6 4306 (arguments
e644f9fa
RW
4307 `(#:glib-or-gtk? #t
4308 #:configure-flags
4309 (list (string-append "-Dudev_dir="
4310 (assoc-ref %outputs "out")
4d0e085b
RW
4311 "/lib/udev/rules.d/")
4312 ;; Otherwise, the RUNPATH will lack the final path component.
4313 (string-append "-Dc_link_args=-Wl,-rpath="
4314 (assoc-ref %outputs "out")
4315 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4316 ;; Color management test can't reach the colord system service.
23a22af6
AW
4317 #:tests? #f))
4318 (native-inputs
e644f9fa
RW
4319 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4320 ("pkg-config" ,pkg-config)
23a22af6
AW
4321 ("intltool" ,intltool)
4322 ("xsltproc" ,libxslt)
4323 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4324 ("docbook-xml" ,docbook-xml-4.2)
4325 ("docbook-xsl" ,docbook-xsl)))
4326 (inputs
e644f9fa
RW
4327 `(("alsa-lib" ,alsa-lib)
4328 ("colord" ,colord)
ea226291 4329 ("libgudev" ,libgudev)
23a22af6
AW
4330 ("upower" ,upower)
4331 ("polkit" ,polkit)
4332 ("pulseaudio" ,pulseaudio)
4333 ("libcanberra" ,libcanberra)
4334 ("libx11" ,libx11)
4335 ("libxtst" ,libxtst)
4336 ("lcms" ,lcms)
4337 ("libnotify" ,libnotify)
4338 ("geoclue" ,geoclue)
4339 ("geocode-glib" ,geocode-glib)
4340 ("libgweather" ,libgweather)
4341 ("gnome-desktop" ,gnome-desktop)
4342 ("nss" ,nss)
4343 ("cups" ,cups)
ec2b1921
AW
4344 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4345 ("libwacom" ,libwacom)
4346 ("librsvg" ,librsvg)
eee7878f 4347 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4348 ("wayland" ,wayland)
eee7878f 4349 ("network-manager" ,network-manager)))
f032d0be 4350 (home-page "https://www.gnome.org")
23a22af6
AW
4351 (synopsis "GNOME settings daemon")
4352 (description
4353 "This package contains the daemon responsible for setting the various
4354parameters of a GNOME session and the applications that run under it. It
4355handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4356settings, themes, mouse settings, and startup of other daemons.")
4357 (license license:gpl2+)))
1e7464a9
DH
4358
4359(define-public totem-pl-parser
4360 (package
4361 (name "totem-pl-parser")
77425f04 4362 (version "3.26.3")
1e7464a9
DH
4363 (source (origin
4364 (method url-fetch)
e980cbe9
MW
4365 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4366 (version-major+minor version) "/"
1e7464a9
DH
4367 "totem-pl-parser-" version ".tar.xz"))
4368 (sha256
4369 (base32
77425f04 4370 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4371 (build-system meson-build-system)
1e7464a9
DH
4372 (arguments
4373 ;; FIXME: Tests require gvfs.
4374 `(#:tests? #f))
4375 (native-inputs
4376 `(("intltool" ,intltool)
4377 ("glib" ,glib "bin")
4d6d8281 4378 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4379 ("pkg-config" ,pkg-config)))
22a6ad6a 4380 (propagated-inputs
1e7464a9
DH
4381 `(("glib" ,glib)
4382 ("gmime" ,gmime)
1e9b19dd
RW
4383 ("libarchive" ,libarchive)
4384 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4385 ("libxml2" ,libxml2)))
4386 (inputs
0a6e9e13 4387 `(("libsoup" ,libsoup)))
1e7464a9
DH
4388 (home-page "https://projects.gnome.org/totem")
4389 (synopsis "Library to parse and save media playlists for GNOME")
4390 (description "Totem-pl-parser is a GObjects-based library to parse and save
4391playlists in a variety of formats.")
4392 (license license:lgpl2.0+)))
4393
6b888eff
SB
4394(define-public aisleriot
4395 (package
4396 (name "aisleriot")
36ed9b46 4397 (version "3.22.9")
6b888eff
SB
4398 (source (origin
4399 (method url-fetch)
e43f622a 4400 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4401 (version-major+minor version) "/"
e43f622a 4402 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4403 (sha256
4404 (base32
36ed9b46 4405 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4406 (build-system glib-or-gtk-build-system)
4407 (arguments
4408 '(#:configure-flags
4409 '("--with-platform=gtk-only"
4410 "--with-card-theme-formats=svg")))
4411 (native-inputs
4412 `(("desktop-file-utils" ,desktop-file-utils)
4413 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4414 ("intltool" ,intltool)
4415 ("itstool" ,itstool)
4416 ("pkg-config" ,pkg-config)
4417 ("xmllint" ,libxml2)))
4418 (inputs
4419 `(("gtk+" ,gtk+)
226e57d6 4420 ("guile" ,guile-2.2)
6b888eff
SB
4421 ("libcanberra" ,libcanberra)
4422 ("librsvg" ,librsvg)))
4423 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4424 (synopsis "Solitaire card games")
4425 (description
4426 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4427which are easy to play with the aid of a mouse.")
4428 (license license:gpl3+)))
4a79e256 4429
f828d05b
KK
4430(define-public amtk
4431 (package
4432 (name "amtk")
0e08ca14 4433 (version "5.0.2")
f828d05b
KK
4434 (source (origin
4435 (method url-fetch)
bf92ba6b 4436 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4437 (version-major+minor version) "/"
bf92ba6b 4438 "amtk-" version ".tar.xz"))
f828d05b
KK
4439 (sha256
4440 (base32
0e08ca14 4441 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4442 (build-system gnu-build-system)
4443 (arguments
4444 '(#:configure-flags '("--enable-gtk-doc")))
4445 (native-inputs
4446 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4447 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4448 ("gtk-doc" ,gtk-doc)
4449 ("pkg-config" ,pkg-config)))
4450 (inputs
4451 `(("glib" ,glib)
4452 ("gtk+" ,gtk+)))
4453 (home-page "https://wiki.gnome.org/Projects/Amtk")
4454 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4455 (description
4456 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4457It is a basic GtkUIManager replacement based on GAction. It is suitable for
4458both a traditional UI or a modern UI with a GtkHeaderBar.")
4459 (license license:lgpl2.1+)))
4460
4a79e256
SB
4461(define-public devhelp
4462 (package
4463 (name "devhelp")
20db7a3d 4464 (version "3.32.0")
4a79e256
SB
4465 (source (origin
4466 (method url-fetch)
4467 (uri (string-append "mirror://gnome/sources/" name "/"
4468 (version-major+minor version) "/"
4469 name "-" version ".tar.xz"))
4470 (sha256
4471 (base32
20db7a3d 4472 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 4473 (build-system meson-build-system)
35407f94 4474 (arguments
20db7a3d
KK
4475 '(#:glib-or-gtk? #t
4476 #:phases
35407f94
EF
4477 (modify-phases %standard-phases
4478 (add-after 'unpack 'skip-gtk-update-icon-cache
4479 ;; Don't create 'icon-theme.cache'.
4480 (lambda _
4481 (substitute* "meson_post_install.py"
4482 (("gtk-update-icon-cache") "true"))
4483 #t)))))
4a79e256
SB
4484 (native-inputs
4485 `(("intltool" ,intltool)
5dd12afc 4486 ("itstool" ,itstool)
11d28bd9
KK
4487 ("gobject-introspection" ,gobject-introspection)
4488 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4489 ("pkg-config" ,pkg-config)))
4490 (inputs
11d28bd9
KK
4491 `(("amtk" ,amtk)
4492 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4493 ("webkitgtk" ,webkitgtk)))
4494 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4495 (synopsis "API documentation browser for GNOME")
4496 (description
4497 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4498natively with GTK-Doc (the API reference system developed for GTK+ and used
4499throughout GNOME for API documentation).")
4500 (license license:gpl2+)))
ba421ab7
MW
4501
4502(define-public cogl
4503 (package
4504 (name "cogl")
54c69ae1 4505 (version "1.22.4")
ba421ab7
MW
4506 (source
4507 (origin
4508 (method url-fetch)
5754f0cf 4509 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4510 (version-major+minor version) "/"
5754f0cf 4511 "cogl-" version ".tar.xz"))
ba421ab7 4512 (sha256
54c69ae1 4513 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
4514 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4515 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4516 (build-system gnu-build-system)
4517 (native-inputs
4518 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4519 ("gobject-introspection" ,gobject-introspection)
4520 ;;("xorg-server" ,xorg-server) ; for the test suite
4521 ("pkg-config" ,pkg-config)))
4522 (propagated-inputs
4523 `(("glib" ,glib)
4524 ("gdk-pixbuf" ,gdk-pixbuf)
4525 ("libx11" ,libx11)
4526 ("libxext" ,libxext)
4527 ("libxfixes" ,libxfixes)
4528 ("libxdamage" ,libxdamage)
4529 ("libxcomposite" ,libxcomposite)
4530 ("libxrandr" ,libxrandr)))
4531 (inputs
4532 `(("mesa" ,mesa)
4533 ("cairo" ,cairo)
4534 ("pango" ,pango)
4535 ("gstreamer" ,gstreamer)
31860852
KK
4536 ("gst-plugins-base" ,gst-plugins-base)
4537 ("wayland" ,wayland)))
ba421ab7
MW
4538 (arguments
4539 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4540 "--enable-wayland-egl-platform"
4541 "--enable-wayland-egl-server"
4542
ba421ab7
MW
4543 ;; Arrange to pass an absolute file name to
4544 ;; dlopen for libGL.so.
4545 (string-append "--with-gl-libname="
4546 (assoc-ref %build-inputs "mesa")
4547 "/lib/libGL.so"))
4548 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4549 ;; _FontTransOpen: Unable to Parse address
4550 ;; ${prefix}/share/fonts/X11/misc/
4551 #:tests? #f
4552 #; #:phases
4553 #;
4554 (modify-phases %standard-phases
4555 (add-before 'check 'start-xorg-server
4556 (lambda* (#:key inputs #:allow-other-keys)
4557 ;; The test suite requires a running X server.
4558 (system (format #f "~a/bin/Xvfb :1 &"
4559 (assoc-ref inputs "xorg-server")))
4560 (setenv "DISPLAY" ":1")
4561 #t)))))
4562 (home-page "http://www.cogl3d.org")
4563 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4564 (description
4565 "Cogl is a small library for using 3D graphics hardware to draw pretty
4566pictures. The API departs from the flat state machine style of OpenGL and is
4567designed to make it easy to write orthogonal components that can render
4568without stepping on each others toes.")
4569 (license (list license:expat ; most of the code
4570 license:bsd-3 ; cogl/cogl-point-in-poly.c
4571 license:sgifreeb2.0 ; cogl-path/tesselator/
4572 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4573
4574(define-public clutter
4575 (package
4576 (name "clutter")
6a88e4ee 4577 (version "1.26.2")
fb182b8a
MW
4578 (source
4579 (origin
4580 (method url-fetch)
4581 (uri (string-append "mirror://gnome/sources/" name "/"
4582 (version-major+minor version) "/"
4583 name "-" version ".tar.xz"))
4584 (sha256
4585 (base32
6a88e4ee 4586 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4587 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4588 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4589 (build-system gnu-build-system)
600233bd
LC
4590 (outputs '("out"
4591 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4592 (native-inputs
4593 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4594 ("gobject-introspection" ,gobject-introspection)
4595 ("pkg-config" ,pkg-config)
4596 ("xsltproc" ,libxslt)))
4597 (propagated-inputs
4598 `(("cogl" ,cogl)
4599 ("cairo" ,cairo)
4600 ("atk" ,atk)
4601 ("gtk+" ,gtk+)
4602 ("json-glib" ,json-glib)
4603 ("glib" ,glib)
4604 ("libxcomposite" ,libxcomposite)
4605 ("libxdamage" ,libxdamage)
4606 ("libxext" ,libxext)
4607 ("xinput" ,xinput)))
4608 (inputs
4609 `(("libxkbcommon" ,libxkbcommon)
4610 ("udev" ,eudev)))
4611 (arguments
600233bd
LC
4612 `(#:configure-flags (list "--enable-x11-backend=yes"
4613
4614 ;; This produces share/doc/{clutter,cally}.
4615 (string-append "--with-html-dir="
4616 (assoc-ref %outputs "doc")
4617 "/share/doc"))
fb182b8a
MW
4618 ;; XXX FIXME: Get test suite working. It would probably fail in the
4619 ;; same way the cogl tests fail, since clutter is based on cogl.
4620 #:tests? #f))
4621 (home-page "http://www.clutter-project.org")
476af713 4622 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4623 (description
476af713 4624 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4625creating fast, mainly 2D single window applications such as media box UIs,
4626presentations, kiosk style applications and so on.")
4627 (license license:lgpl2.0+)))
bf7f17ba
MW
4628
4629(define-public clutter-gtk
4630 (package
4631 (name "clutter-gtk")
5d1a3219 4632 (version "1.8.4")
bf7f17ba
MW
4633 (source
4634 (origin
4635 (method url-fetch)
4636 (uri (string-append "mirror://gnome/sources/" name "/"
4637 (version-major+minor version) "/"
4638 name "-" version ".tar.xz"))
4639 (sha256
4640 (base32
5d1a3219 4641 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4642 (build-system gnu-build-system)
4643 (native-inputs
4644 `(("pkg-config" ,pkg-config)
4645 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4646 (propagated-inputs
4647 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4648 `(("clutter" ,clutter)
4649 ("gtk+" ,gtk+)))
4650 (home-page "http://www.clutter-project.org")
476af713 4651 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4652 (description
476af713 4653 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4654creating fast, mainly 2D single window applications such as media box UIs,
4655presentations, kiosk style applications and so on.")
4656 (license license:lgpl2.0+)))
86d6a893
MW
4657
4658(define-public clutter-gst
4659 (package
4660 (name "clutter-gst")
ba07ac19 4661 (version "3.0.27")
86d6a893
MW
4662 (source
4663 (origin
4664 (method url-fetch)
f010f89b 4665 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4666 (version-major+minor version) "/"
f010f89b 4667 "clutter-gst-" version ".tar.xz"))
86d6a893 4668 (sha256
ba07ac19 4669 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4670 (build-system gnu-build-system)
4671 (native-inputs
ba07ac19 4672 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4673 ("pkg-config" ,pkg-config)
4674 ("gobject-introspection" ,gobject-introspection)))
4675 (inputs
4676 `(("clutter" ,clutter)
4677 ("gstreamer" ,gstreamer)
4678 ("gst-plugins-base" ,gst-plugins-base)))
4679 (home-page "http://www.clutter-project.org")
4680 (synopsis "Integration library for using GStreamer with Clutter")
4681 (description
4682 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4683It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4684implements the ClutterGstPlayer interface using playbin. Clutter is an
4685OpenGL-based interactive canvas library.")
86d6a893 4686 (license license:lgpl2.0+)))
607a04ae 4687
30dc88d9
LC
4688(define-public libchamplain
4689 (package
4690 (name "libchamplain")
5564b2c5 4691 (version "0.12.16")
30dc88d9
LC
4692 (source (origin
4693 (method url-fetch)
4694 (uri (string-append
4695 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4696 version ".tar.xz"))
4697 (sha256
4698 (base32
5564b2c5 4699 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4700 (build-system gnu-build-system)
f7c6833f
LF
4701 (arguments '(#:configure-flags '("--enable-vala")))
4702 (native-inputs
4703 `(("gobject-introspection" ,gobject-introspection)
4704 ("pkg-config" ,pkg-config)
4705 ("vala" ,vala)))
30dc88d9
LC
4706 (propagated-inputs
4707 `(("libsoup" ,libsoup)
4708 ("sqlite" ,sqlite)
4709 ("clutter" ,clutter)
4710 ("clutter-gtk" ,clutter-gtk)
4711 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4712 ("cairo" ,cairo)
4713 ("gtk+3" ,gtk+)
4714 ("glib" ,glib)))
f032d0be 4715 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4716 (synopsis "C library providing a ClutterActor to display maps")
4717 (description
4718 "libchamplain is a C library providing a ClutterActor to display maps.
4719It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4720and Perl bindings are also available. It supports numerous free map sources
4721such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4722 (license license:lgpl2.1+)))
4723
607a04ae
MW
4724(define-public gom
4725 (package
4726 (name "gom")
0510440b 4727 (version "0.3.2")
607a04ae
MW
4728 (source
4729 (origin
4730 (method url-fetch)
6c8a0b6f 4731 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4732 (version-major+minor version) "/"
6c8a0b6f 4733 "gom-" version ".tar.xz"))
607a04ae
MW
4734 (sha256
4735 (base32
0510440b 4736 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4737 (build-system gnu-build-system)
4738 (native-inputs
4739 `(("intltool" ,intltool)
4740 ("pkg-config" ,pkg-config)
4741 ("gobject-introspection" ,gobject-introspection)))
4742 (inputs
4743 `(("glib" ,glib)
4744 ("gdk-pixbuf" ,gdk-pixbuf)
4745 ("sqlite" ,sqlite)))
4746 ;; XXX TODO: Figure out how to run the test suite.
4747 (arguments `(#:tests? #f))
4748 (home-page "https://wiki.gnome.org/Projects/Gom")
4749 (synopsis "Object mapper from GObjects to SQLite")
4750 (description
4751 "Gom provides an object mapper from GObjects to SQLite. It helps you
4752write applications that need to store structured data as well as make complex
4753queries upon that data.")
4754 (license license:lgpl2.1+)))
b7a3cf11 4755
865aacc9 4756(define-public libgnome-games-support
f09520db 4757 (package
865aacc9 4758 (name "libgnome-games-support")
4c6d15cf 4759 (version "1.4.4")
f09520db
SB
4760 (source (origin
4761 (method url-fetch)
2d8dca9d 4762 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4763 (version-major+minor version) "/"
2d8dca9d 4764 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4765 (sha256
4766 (base32
4c6d15cf 4767 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4768 (build-system gnu-build-system)
4769 (arguments
4770 '(#:phases
4771 (modify-phases %standard-phases
4772 (add-before 'check 'pre-check
4773 (lambda _
865aacc9 4774 ;; Tests require a writable HOME.
f09520db
SB
4775 (setenv "HOME" (getcwd))
4776 #t)))))
4777 (native-inputs
4778 `(("intltool" ,intltool)
4779 ("pkg-config" ,pkg-config)
4780 ("vala" ,vala)))
4781 (propagated-inputs
865aacc9 4782 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4783 `(("gtk+" ,gtk+)
4784 ("libgee" ,libgee)))
4785 (home-page "https://www.gnome.org/")
4786 (synopsis "Useful functionality shared among GNOME games")
4787 (description
865aacc9 4788 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4789GNOME Games, but it may be used by others.")
4790 (license license:lgpl3+)))
4791
b7a3cf11
SB
4792(define-public gnome-klotski
4793 (package
4794 (name "gnome-klotski")
c1e419c4 4795 (version "3.32.0")
b7a3cf11
SB
4796 (source (origin
4797 (method url-fetch)
4798 (uri (string-append "mirror://gnome/sources/" name "/"
4799 (version-major+minor version) "/"
4800 name "-" version ".tar.xz"))
4801 (sha256
4802 (base32
c1e419c4
KK
4803 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4804 (build-system meson-build-system)
4805 (arguments
4806 '(#:glib-or-gtk? #t
4807 #:phases
4808 (modify-phases %standard-phases
4809 (add-after 'unpack 'skip-gtk-update-icon-cache
4810 ;; Don't create 'icon-theme.cache'.
4811 (lambda _
4812 (substitute* "build-aux/meson_post_install.py"
4813 (("gtk-update-icon-cache") (which "true")))
4814 #t)))))
b7a3cf11
SB
4815 (native-inputs
4816 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4817 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4818 ("intltool" ,intltool)
4819 ("itstool" ,itstool)
bcb354ad 4820 ("pkg-config" ,pkg-config)
c1e419c4 4821 ("vala" ,vala)
bcb354ad 4822 ("xmllint" ,libxml2)))
b7a3cf11
SB
4823 (inputs
4824 `(("gtk+" ,gtk+)
f4eae76f 4825 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4826 ("librsvg" ,librsvg)))
4827 (home-page "https://wiki.gnome.org/Apps/Klotski")
4828 (synopsis "Sliding block puzzles")
4829 (description
4830 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4831the patterned block to the area bordered by green markers. To do so, you will
4832need to slide other blocks out of the way. Complete each puzzle in as few moves
4833as possible!")
4834 (license license:gpl2+)))
8d4791bf
MW
4835
4836(define-public grilo
4837 (package
4838 (name "grilo")
a865e938 4839 (version "0.3.10")
8d4791bf
MW
4840 (source
4841 (origin
4842 (method url-fetch)
4843 (uri (string-append "mirror://gnome/sources/" name "/"
4844 (version-major+minor version) "/"
4845 name "-" version ".tar.xz"))
4846 (sha256
4847 (base32
a865e938 4848 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4849 (build-system meson-build-system)
8d4791bf
MW
4850 (native-inputs
4851 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4852 ("intltool" ,intltool)
4853 ("pkg-config" ,pkg-config)
d48d4c98
KK
4854 ("gobject-introspection" ,gobject-introspection)
4855 ("gtk-doc" ,gtk-doc)
4856 ("vala" ,vala)))
8d4791bf 4857 (inputs
6d7273a0
KK
4858 `(("cyrus-sasl" ,cyrus-sasl)
4859 ("glib" ,glib)
8d4791bf
MW
4860 ("gtk+" ,gtk+)
4861 ("libxml2" ,libxml2)
6d7273a0 4862 ("liboauth" ,liboauth)
8d4791bf
MW
4863 ("libsoup" ,libsoup)
4864 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4865 (native-search-paths
4866 (list (search-path-specification
4867 (variable "GRL_PLUGIN_PATH")
4868 (files (list (string-append "lib/grilo-"
4869 (version-major+minor version)))))))
d48d4c98 4870 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4871 (synopsis "Framework for discovering and browsing media")
4872 (description
4873 "Grilo is a framework focused on making media discovery and browsing easy
4874for application developers.")
4875 (license license:lgpl2.1+)))
7b212526
MW
4876
4877(define-public grilo-plugins
4878 (package
4879 (name "grilo-plugins")
281f6b3a 4880 (version "0.3.10")
7b212526
MW
4881 (source
4882 (origin
4883 (method url-fetch)
4884 (uri (string-append "mirror://gnome/sources/" name "/"
4885 (version-major+minor version) "/"
4886 name "-" version ".tar.xz"))
4887 (sha256
4888 (base32
281f6b3a
RG
4889 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4890 (build-system meson-build-system)
7b212526 4891 (native-inputs
281f6b3a
RG
4892 `(("gettext" ,gettext-minimal)
4893 ("glib:bin" ,glib "bin")
4894 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4895 ("itstool" ,itstool)
4896 ("pkg-config" ,pkg-config)))
281f6b3a 4897 ;; TODO: ahavi, gstreamer
7b212526
MW
4898 (inputs
4899 `(("grilo" ,grilo)
281f6b3a
RG
4900 ;("gmime" ,gmime) ; unused
4901 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4902 ("gom" ,gom)
281f6b3a
RG
4903 ;("gssdp" ,gssdp) ; unused
4904 ;("gupnp" ,gupnp) ; unused
4905 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4906 ("json-glib" ,json-glib)
4907 ("avahi" ,avahi)
281f6b3a
RG
4908 ("libgdata" ,libgdata)
4909 ("libmediaart" ,libmediaart)
4910 ;("librest" ,rest) ; unused
7b212526 4911 ("libsoup" ,libsoup)
281f6b3a
RG
4912 ("totam-pl-parser" ,totem-pl-parser)
4913 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4914 (arguments
281f6b3a
RG
4915 `(#:glib-or-gtk? #t
4916 ;;Disable lua-factory as it needs missing dependencies
4917 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4918 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4919 (synopsis "Plugins for the Grilo media discovery library")
4920 (description
4921 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4922for application developers. This package provides plugins for common media
4923discovery protocols.")
7b212526 4924 (license license:lgpl2.1+)))
4e3fc547
MW
4925
4926(define-public totem
4927 (package
4928 (name "totem")
995ef5ea 4929 (version "3.32.1")
4e3fc547
MW
4930 (source
4931 (origin
4932 (method url-fetch)
4933 (uri (string-append "mirror://gnome/sources/" name "/"
4934 (version-major+minor version) "/"
4935 name "-" version ".tar.xz"))
4936 (sha256
4937 (base32
995ef5ea 4938 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4939 (build-system meson-build-system)
4e3fc547
MW
4940 (native-inputs
4941 `(("pkg-config" ,pkg-config)
4942 ("desktop-file-utils" ,desktop-file-utils)
4943 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4944 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4945 ("intltool" ,intltool)
bcb354ad 4946 ("itstool" ,itstool)
995ef5ea
KK
4947 ("xmllint" ,libxml2)
4948 ("python-pylint" ,python-pylint)
4949 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4950 (propagated-inputs
4951 `(("dconf" ,dconf)))
4952 (inputs
4953 `(("gtk+" ,gtk+)
4954 ("gdk-pixbuf" ,gdk-pixbuf)
4955 ("atk" ,atk)
4956 ("cairo" ,cairo)
4957 ("dbus-glib" ,dbus-glib)
4958 ("clutter" ,clutter)
4959 ("clutter-gtk" ,clutter-gtk)
4960 ("clutter-gst" ,clutter-gst)
6a6db57f 4961 ("xorgproto" ,xorgproto)
4e3fc547
MW
4962 ("libxxf86vm" ,libxxf86vm)
4963 ("libxtst" ,libxtst)
4964 ("libxrandr" ,libxrandr)
4965 ("libxml2" ,libxml2)
4966 ("libsoup" ,libsoup)
4967 ("libpeas" ,libpeas)
4968 ("librsvg" ,librsvg)
4969 ("lirc" ,lirc)
4970 ("gnome-desktop" ,gnome-desktop)
4971 ("gstreamer" ,gstreamer)
4972 ("gst-plugins-base" ,gst-plugins-base)
4973 ("gst-plugins-good" ,gst-plugins-good)
4974 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4975 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4976 ("python" ,python)
995ef5ea 4977 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4978 ("totem-pl-parser" ,totem-pl-parser)
4979 ("grilo" ,grilo)
4980 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4981 ("vala" ,vala)))
4982 (arguments
7ad81b8b
LC
4983 `(#:glib-or-gtk? #t
4984
4985 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4986 ;; all that.
7ad81b8b 4987 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4988
4989 ;; Do not build .a files for the plugins, it's
4990 ;; completely useless. This saves 2 MiB.
7ad81b8b 4991 "--default-library" "shared")
ec5c24f9 4992 #:phases
4e3fc547 4993 (modify-phases %standard-phases
d51b19ad
EF
4994 (add-after 'unpack 'skip-gtk-update-icon-cache
4995 ;; Don't create 'icon-theme.cache'.
4996 (lambda _
4997 (substitute* "meson_post_install.py"
4998 (("gtk-update-icon-cache") "true"))
4999 #t))
6368eb39
DM
5000 (add-before
5001 'install 'disable-cache-generation
5002 (lambda _
5003 (setenv "DESTDIR" "/")
5004 #t))
995ef5ea
KK
5005 (add-before
5006 'check 'pre-check
5007 (lambda _
5008 ;; Tests require a running X server.
5009 (system "Xvfb :1 &")
5010 (setenv "DISPLAY" ":1")
5011 #t))
4e3fc547
MW
5012 (add-after
5013 'install 'wrap-totem
5014 (lambda* (#:key inputs outputs #:allow-other-keys)
5015 (let ((out (assoc-ref outputs "out"))
5016 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5017 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5018 (wrap-program (string-append out "/bin/totem")
5019 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
5020 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5021 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5022 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
5023 #t)))))
5024 (home-page "https://wiki.gnome.org/Apps/Videos")
5025 (synopsis "Simple media player for GNOME based on GStreamer")
5026 (description "Totem is a simple yet featureful media player for GNOME
5027which can read a large number of file formats.")
5028 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5029 ;; to be used and distributed together with GStreamer and Totem. See
5030 ;; file://COPYING in the source distribution for details.
5031 (license license:gpl2+)))
f0afb0c8
DH
5032
5033(define-public rhythmbox
5034 (package
5035 (name "rhythmbox")
eda580c0 5036 (version "3.4.4")
f0afb0c8
DH
5037 (source (origin
5038 (method url-fetch)
2588693d 5039 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 5040 (version-major+minor version) "/"
2588693d 5041 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
5042 (sha256
5043 (base32
eda580c0 5044 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
5045 (build-system glib-or-gtk-build-system)
5046 (arguments
5047 `(#:configure-flags
5048 (list "--enable-lirc"
5049 "--enable-python"
5050 "--enable-vala"
5051 "--with-brasero"
5052 "--with-gudev"
5053 "--with-libsecret")
5054 #:phases
5055 (modify-phases %standard-phases
5056 (add-after
5057 'install 'wrap-rhythmbox
5058 (lambda* (#:key inputs outputs #:allow-other-keys)
5059 (let ((out (assoc-ref outputs "out"))
5060 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5061 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5062 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5063 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5064 (wrap-program (string-append out "/bin/rhythmbox")
5065 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5066 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5067 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5068 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5069 #t)))))
5070 (propagated-inputs
5071 `(("dconf" ,dconf)))
5072 (native-inputs
bcb354ad
SB
5073 `(("itstool" ,itstool)
5074 ("intltool" ,intltool)
f0afb0c8
DH
5075 ("glib" ,glib "bin")
5076 ("gobject-introspection" ,gobject-introspection)
5077 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5078 ("pkg-config" ,pkg-config)
5079 ("xmllint" ,libxml2)))
f0afb0c8
DH
5080 (inputs
5081 `(("json-glib" ,json-glib)
5082 ("tdb" ,tdb)
5083 ("gnome-desktop" ,gnome-desktop)
5084 ("python" ,python)
5085 ("python-pygobject" ,python2-pygobject)
5086 ("vala" ,vala)
5087 ("gmime" ,gmime)
f0afb0c8
DH
5088 ("adwaita-icon-theme" ,adwaita-icon-theme)
5089 ("grilo" ,grilo)
5090 ("grilo-plugins" ,grilo-plugins)
5091 ("gstreamer" ,gstreamer)
5092 ("gst-plugins-base" ,gst-plugins-base)
5093 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5094 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5095 ("libgudev" ,libgudev)
f0afb0c8
DH
5096 ;;("libmtp" ,libmtp) FIXME: Not detected
5097 ("libsecret" ,libsecret)
5098 ("libsoup" ,libsoup)
5099 ("libnotify" ,libnotify)
5100 ("libpeas" ,libpeas)
5101 ("lirc" ,lirc)
5102 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5103 ;;("clutter" ,clutter)
5104 ;;("clutter-gtk" ,clutter-gtk)
5105 ;;("clutter-gst" ,clutter-gst)
5106 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5107 ("atk" ,atk)
5108 ("pango" ,pango)
5109 ("gtk+" ,gtk+)
5110 ;; TODO:
5111 ;; * libgpod
5112 ;; * mx
f0afb0c8
DH
5113 ("brasero" ,brasero)))
5114 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5115 (synopsis "Music player for GNOME")
5116 (description "Rhythmbox is a music playing application for GNOME. It
5117supports playlists, song ratings, and any codecs installed through gstreamer.")
5118 (license license:gpl2+)))
f70d8383
DH
5119
5120(define-public eog
5121 (package
5122 (name "eog")
b0f24a82 5123 (version "3.32.2")
f70d8383
DH
5124 (source (origin
5125 (method url-fetch)
5126 (uri (string-append "mirror://gnome/sources/" name "/"
5127 (version-major+minor version) "/"
5128 name "-" version ".tar.xz"))
5129 (sha256
5130 (base32
b0f24a82 5131 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 5132 (build-system meson-build-system)
f70d8383 5133 (arguments
34c44a34
RW
5134 `(#:configure-flags
5135 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5136 (list (string-append "-Dc_link_args=-Wl,-rpath="
5137 (assoc-ref %outputs "out") "/lib/eog"))
5138 #:phases
f70d8383 5139 (modify-phases %standard-phases
7a034665
EF
5140 (add-after 'unpack 'skip-gtk-update-icon-cache
5141 ;; Don't create 'icon-theme.cache'.
5142 (lambda _
5143 (substitute* "meson_post_install.py"
5144 (("gtk-update-icon-cache") "true"))
5145 #t))
61fb581f
RW
5146 (add-after 'install 'wrap-eog
5147 (lambda* (#:key outputs #:allow-other-keys)
5148 (let ((out (assoc-ref outputs "out"))
5149 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5150 (wrap-program (string-append out "/bin/eog")
5151 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5152 #t)))))
f70d8383
DH
5153 (propagated-inputs
5154 `(("dconf" ,dconf)))
5155 (native-inputs
5156 `(("intltool" ,intltool)
b3546174 5157 ("itstool" ,itstool)
f70d8383
DH
5158 ("glib" ,glib "bin")
5159 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5160 ("pkg-config" ,pkg-config)
5161 ("xmllint" ,libxml2)))
f70d8383
DH
5162 (inputs
5163 `(("gnome-desktop" ,gnome-desktop)
5164 ("shared-mime-info" ,shared-mime-info)
5165 ("adwaita-icon-theme" ,adwaita-icon-theme)
5166 ("exempi" ,exempi)
5167 ("lcms" ,lcms)
5168 ("libexif" ,libexif)
5169 ("libpeas" ,libpeas)
4bd428a7 5170 ("libjpeg" ,libjpeg-turbo)
f70d8383
DH
5171 ("librsvg" ,librsvg)
5172 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5173 ("gtk+" ,gtk+)))
5174 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5175 (synopsis "GNOME image viewer")
5176 (description "Eye of GNOME is the GNOME image viewer. It
5177supports image conversion, rotation, and slideshows.")
5178 (license license:gpl2+)))
41af5e7b 5179
0c3f8cb8
LC
5180(define-public eog-plugins
5181 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5182 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5183 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5184 ;; 'XDG_DATA_DIRS' appropriately set.
5185 (package
5186 (name "eog-plugins")
54b74cc6 5187 (version "3.26.4")
0c3f8cb8
LC
5188 (source (origin
5189 (method url-fetch)
f3b88ed2 5190 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5191 (version-major+minor version) "/"
f3b88ed2 5192 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5193 (sha256
5194 (base32
54b74cc6 5195 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5196 (build-system gnu-build-system)
5197 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5198 (synopsis "Extensions for the Eye of GNOME image viewer")
5199 (native-inputs
5200 `(("pkg-config" ,pkg-config)
5201 ("gettext" ,gnu-gettext)))
5202 (inputs
5203 `(("eog" ,eog)
5204 ("glib" ,glib)
5205 ("gtk+" ,gtk+)
5206 ("libpeas" ,libpeas)
5207 ("libexif" ,libexif)
5208 ("libchamplain" ,libchamplain)))
5209 (description
5210 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5211notably:
5212
5213@itemize
5214@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5215@item @dfn{Map}, which displays a map of where the picture was taken on the
5216side panel;
5217@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5218@end itemize\n")
5219
5220 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5221 ;; long suspicious byte stream that goes to a
5222 ;; ".gresource.eog_postasa_plugin" ELF section.
5223 (license license:gpl2+)))
5224
41af5e7b
SB
5225(define-public libgudev
5226 (package
5227 (name "libgudev")
b78f5118 5228 (version "232")
41af5e7b
SB
5229 (source (origin
5230 (method url-fetch)
5231 (uri (string-append "mirror://gnome/sources/" name "/"
5232 version "/" name "-" version ".tar.xz"))
5233 (sha256
5234 (base32
b78f5118 5235 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5236 (build-system gnu-build-system)
b78f5118
RW
5237 (arguments
5238 '(#:configure-flags
5239 ;; umockdev depends on libgudev.
5240 (list "--disable-umockdev")))
41af5e7b
SB
5241 (native-inputs
5242 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5243 ("gobject-introspection" ,gobject-introspection)
5244 ("pkg-config" ,pkg-config)))
5245 (propagated-inputs
5246 `(("glib" ,glib))) ; required by gudev-1.0.pc
5247 (inputs
5248 `(("udev" ,eudev)))
5249 (home-page "https://wiki.gnome.org/Projects/libgudev")
5250 (synopsis "GObject bindings for libudev")
5251 (description
5252 "This library provides GObject bindings for libudev. It was originally
5253part of udev-extras, then udev, then systemd. It's now a project on its own.")
5254 (license license:lgpl2.1+)))
3dc8828f
SB
5255
5256(define-public gvfs
5257 (package
5258 (name "gvfs")
12fe4846 5259 (version "1.40.1")
3dc8828f
SB
5260 (source (origin
5261 (method url-fetch)
1d68eb32 5262 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5263 (version-major+minor version) "/"
1d68eb32 5264 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5265 (sha256
5266 (base32
12fe4846 5267 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5268 (build-system meson-build-system)
3dc8828f 5269 (arguments
e762d943
RW
5270 '(#:glib-or-gtk? #t
5271 #:configure-flags
5272 (list "-Dsystemduserunitdir=no"
5273 "-Dtmpfilesdir=no"
5274 ;; Otherwise, the RUNPATH will lack the final path component.
5275 (string-append "-Dc_link_args=-Wl,-rpath="
5276 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5277 (native-inputs
5278 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5279 ("gettext" ,gettext-minimal)
5280 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5281 ("pkg-config" ,pkg-config)
5282 ("xsltproc" ,libxslt)))
5283 (inputs
5284 `(("avahi" ,avahi)
5285 ("docbook-xml" ,docbook-xml-4.2)
5286 ("docbook-xsl" ,docbook-xsl)
5287 ("dbus" ,dbus)
e762d943 5288 ("elogind" ,elogind)
3dc8828f 5289 ("fuse" ,fuse)
24a78aa6 5290 ("gcr" ,gcr)
3dc8828f 5291 ("glib" ,glib)
e762d943 5292 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5293 ("libarchive" ,libarchive)
5294 ("libbluray" ,libbluray)
8852ca24 5295 ("libcap" ,libcap)
3dc8828f
SB
5296 ("libcdio-paranoia" ,libcdio-paranoia)
5297 ("libgcrypt" ,libgcrypt)
e762d943 5298 ("libgdata" ,libgdata)
3dc8828f
SB
5299 ("libgphoto2" ,libgphoto2)
5300 ("libgudev" ,libgudev)
0ab9f949 5301 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5302 ("libmtp" ,libmtp)
e762d943 5303 ("libnfs" ,libnfs)
3dc8828f
SB
5304 ("libsecret" ,libsecret)
5305 ("libsmbclient" ,samba)
5306 ("libsoup" ,libsoup)
5307 ("libxml2" ,libxml2)
e762d943 5308 ("openssh" ,openssh)
8852ca24 5309 ("polkit" ,polkit)
3dc8828f
SB
5310 ("udisks" ,udisks)))
5311 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5312 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5313 (description
8f65585b 5314 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5315abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5316to all applications using the GIO API. It also supports exposing the GVFS
5317mounts to non-GIO applications using FUSE.
5318
5319GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5320DAV, and others.")
5321 (license license:lgpl2.0+)))
7c88b6bd
AW
5322
5323(define-public gusb
5324 (package
5325 (name "gusb")
536b3274 5326 (version "0.3.0")
7c88b6bd 5327 (source (origin
bbfb36f9
EF
5328 (method git-fetch)
5329 (uri (git-reference
5330 (url "https://github.com/hughsie/libgusb.git")
5331 (commit version)))
5332 (file-name (git-file-name name version))
7c88b6bd
AW
5333 (sha256
5334 (base32
bbfb36f9 5335 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5336 (build-system meson-build-system)
7c88b6bd 5337 (native-inputs
536b3274 5338 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5339 ("pkg-config" ,pkg-config)
5340 ("vala" ,vala)
7c88b6bd
AW
5341 ("gtk-doc" ,gtk-doc)))
5342 (propagated-inputs
5343 ;; Both of these are required by gusb.pc.
5344 `(("glib" ,glib)
5345 ("libusb" ,libusb)))
5346 (arguments
536b3274 5347 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5348 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5349 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5350 (description
5351 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5352asynchronous control, bulk and interrupt transfers with proper cancellation
5353and integration into a mainloop. This makes it easy to integrate low level
5354USB transfers with your high-level application or system daemon.")
5355 (license license:lgpl2.1+)))
0abe1d86
AW
5356
5357(define-public simple-scan
5358 (package
5359 (name "simple-scan")
fe6cfa99 5360 (version "3.36.0")
d9f6d587
TGR
5361 (source
5362 (origin
5363 (method url-fetch)
5364 (uri (string-append "mirror://gnome/sources/simple-scan/"
5365 (version-major+minor version) "/"
5366 "simple-scan-" version ".tar.xz"))
5367 (sha256
fe6cfa99 5368 (base32 "198l3yhqhb2wzfdcgi8fzbwycr0njn44583dazz6wy1gqbiqnzgm"))))
d9f6d587
TGR
5369 (build-system meson-build-system)
5370 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5371 (arguments
5372 '(#:glib-or-gtk? #t))
0abe1d86
AW
5373 (inputs
5374 `(("gtk" ,gtk+)
5375 ("zlib" ,zlib)
5376 ("cairo" ,cairo)
c501f592 5377 ("colord" ,colord)
0abe1d86
AW
5378 ("gdk-pixbuf" ,gdk-pixbuf)
5379 ("gusb" ,gusb)
4c928743 5380 ("libsane" ,sane-backends)))
0abe1d86 5381 (native-inputs
b94a6ca0 5382 `(("gettext" ,gettext-minimal)
0abe1d86 5383 ("itstool" ,itstool)
c501f592 5384 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5385 ("pkg-config" ,pkg-config)
bcb354ad
SB
5386 ("vala" ,vala)
5387 ("xmllint" ,libxml2)))
dff0eedb 5388 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5389 (synopsis "Document and image scanner")
d9f6d587
TGR
5390 (description
5391 "Document Scanner is an easy-to-use application that lets you connect your
5392scanner and quickly capture images and documents in an appropriate format. It
5393supports any scanner for which a suitable SANE driver is available, which is
5394almost all of them.")
0abe1d86 5395 (license license:gpl3+)))
7549f984 5396
ab466d79
RW
5397(define-public eolie
5398 (package
5399 (name "eolie")
fa8ef3ed 5400 (version "0.9.63")
ab466d79
RW
5401 (source (origin
5402 (method url-fetch)
00014781 5403 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 5404 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 5405 "eolie-" version ".tar.xz"))
ab466d79
RW
5406 (sha256
5407 (base32
fa8ef3ed 5408 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 5409 (build-system meson-build-system)
ab466d79 5410 (arguments
00014781
RW
5411 `(#:glib-or-gtk? #t
5412 #:phases
ab466d79 5413 (modify-phases %standard-phases
f0c68100
EF
5414 (add-after 'unpack 'skip-gtk-update-icon-cache
5415 ;; Don't create 'icon-theme.cache'.
5416 (lambda _
5417 (substitute* "meson_post_install.py"
5418 (("gtk-update-icon-cache") "true"))
5419 #t))
ab466d79
RW
5420 (add-after 'wrap 'wrap-more
5421 (lambda* (#:key inputs outputs #:allow-other-keys)
5422 (let* ((out (assoc-ref outputs "out"))
5423 ;; These libraries must be on LD_LIBRARY_PATH.
5424 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5425 "atk" "gtk+" "gsettings-desktop-schemas"
5426 "gobject-introspection"))
5427 (path (string-join
5428 (map (lambda (lib)
5429 (string-append (assoc-ref inputs lib) "/lib"))
5430 libs)
5431 ":")))
5432 (wrap-program (string-append out "/bin/eolie")
5433 `("LD_LIBRARY_PATH" ":" prefix (,path))
5434 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5435 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5436 #t)))))
5437 (native-inputs
f85ca6ed 5438 `(("intltool" ,intltool)
ab466d79 5439 ("itstool" ,itstool)
d95f1041 5440 ("pkg-config" ,pkg-config)
d95f1041 5441 ("python" ,python)
f0c68100 5442 ("glib:bin" ,glib "bin")))
ab466d79
RW
5443 (inputs
5444 `(("gobject-introspection" ,gobject-introspection)
5445 ("glib-networking" ,glib-networking)
5446 ("cairo" ,cairo)
5447 ("gtk+" ,gtk+)
5448 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5449 ("python" ,python-wrapper)
d72f76df 5450 ("python-dateutil" ,python-dateutil)
00014781 5451 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5452 ("python-pygobject" ,python-pygobject)
5453 ("python-pycairo" ,python-pycairo)
00014781 5454 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5455 ("libsecret" ,libsecret)
5456 ("gtkspell3" ,gtkspell3)
5457 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5458 ("webkitgtk" ,webkitgtk)))
166b2c97 5459 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5460 (synopsis "Web browser for GNOME")
5461 (description
5462 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5463a secret password store, an adblocker, and a modern UI.")
5464 (license license:gpl3+)))
5465
7549f984
SB
5466(define-public epiphany
5467 (package
5468 (name "epiphany")
60680365 5469 (version "3.32.5")
7549f984
SB
5470 (source (origin
5471 (method url-fetch)
dd3266ec 5472 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5473 (version-major+minor version) "/"
dd3266ec 5474 "epiphany-" version ".tar.xz"))
7549f984
SB
5475 (sha256
5476 (base32
60680365 5477 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
5478
5479 (build-system meson-build-system)
7549f984
SB
5480 (arguments
5481 ;; FIXME: tests run under Xvfb, but fail with:
5482 ;; /src/bookmarks/ephy-bookmarks/create:
5483 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5484 ;; subsystem
5485 ;; FAIL
6f48d9db 5486 '(#:tests? #f
e19f9c24 5487 #:glib-or-gtk? #t
bb7ff88f
EF
5488 #:phases
5489 (modify-phases %standard-phases
5490 (add-after 'unpack 'skip-gtk-update-icon-cache
5491 ;; Don't create 'icon-theme.cache'.
5492 (lambda _
5493 (substitute* "post_install.py"
5494 (("gtk-update-icon-cache") "true"))
5495 #t)))
e19f9c24
LF
5496 #:configure-flags
5497 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5498 (list (string-append "-Dc_link_args=-Wl,-rpath="
5499 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5500 (propagated-inputs
5501 `(("dconf" ,dconf)))
7549f984 5502 (native-inputs
fc5c5b92
R
5503 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5504 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5505 ("intltool" ,intltool)
7549f984 5506 ("itstool" ,itstool)
bcb354ad
SB
5507 ("pkg-config" ,pkg-config)
5508 ("xmllint" ,libxml2)))
7549f984
SB
5509 (inputs
5510 `(("avahi" ,avahi)
5511 ("gcr" ,gcr)
fc5c5b92 5512 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5513 ("glib-networking" ,glib-networking)
5514 ("gnome-desktop" ,gnome-desktop)
5515 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5516 ("json-glib" ,json-glib)
7549f984 5517 ("iso-codes" ,iso-codes)
8748e29c 5518 ("libdazzle" ,libdazzle)
7549f984
SB
5519 ("libnotify" ,libnotify)
5520 ("libsecret" ,libsecret)
7549f984 5521 ("libxslt" ,libxslt)
fc5c5b92 5522 ("nettle" ,nettle) ; for hogweed
7549f984 5523 ("sqlite" ,sqlite)
f85ca6ed 5524 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5525 (home-page "https://wiki.gnome.org/Apps/Web")
5526 (synopsis "GNOME web browser")
5527 (description
5528 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5529principles are simplicity and standards compliance.")
5530 (license license:gpl2+)))
a3856b2c
SB
5531
5532(define-public d-feet
5533 (package
5534 (name "d-feet")
458e9221 5535 (version "0.3.14")
a3856b2c
SB
5536 (source (origin
5537 (method url-fetch)
5538 (uri (string-append "mirror://gnome/sources/" name "/"
5539 (version-major+minor version) "/"
5540 name "-" version ".tar.xz"))
5541 (sha256
5542 (base32
458e9221 5543 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5544 (build-system glib-or-gtk-build-system)
5545 (arguments
5546 '(#:out-of-source? #f ; tests need to run in the source directory.
5547 #:phases
5548 (modify-phases %standard-phases
5549 (add-before
5550 'check 'pre-check
86aff791 5551 (lambda _
a3856b2c
SB
5552 ;; The test suite requires a running X server.
5553 (system "Xvfb :1 &")
5554 (setenv "DISPLAY" ":1")
5555 ;; Don't fail on missing '/etc/machine-id'.
5556 (setenv "DBUS_FATAL_WARNINGS" "0")
5557 ;; tests.py and window.py don't meet E402:
5558 ;; E402 module level import not at top of file
5559 (substitute* "src/tests/Makefile"
86aff791
MW
5560 (("--ignore=E123") "--ignore=E123,E402"))
5561 #t))
a3856b2c
SB
5562 (add-after
5563 'install 'wrap-program
5564 (lambda* (#:key outputs #:allow-other-keys)
5565 (let ((prog (string-append (assoc-ref outputs "out")
5566 "/bin/d-feet")))
5567 (wrap-program prog
5568 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5569 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5570 #t))))))
a3856b2c
SB
5571 (native-inputs
5572 `(("intltool" ,intltool)
5573 ("itstool" ,itstool)
5574 ("pkg-config" ,pkg-config)
5575 ("python-pep8" ,python-pep8)
5576 ("xmllint" ,libxml2)
ff337525 5577 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5578 (inputs
5579 `(("gobject-introspection" ,gobject-introspection)
5580 ("gtk+" ,gtk+)
5581 ("python" ,python-wrapper)
458e9221 5582 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5583 ("python-pygobject" ,python-pygobject)))
5584 (home-page "https://wiki.gnome.org/Apps/DFeet")
5585 (synopsis "D-Bus debugger")
5586 (description
5587 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5588of running programs and invoke methods on those interfaces.")
5589 (license license:gpl2+)))
c3b97bd9
SB
5590
5591(define-public yelp-xsl
5592 (package
5593 (name "yelp-xsl")
632a9b32 5594 (version "3.34.2")
c3b97bd9
SB
5595 (source (origin
5596 (method url-fetch)
5597 (uri (string-append "mirror://gnome/sources/" name "/"
5598 (version-major+minor version) "/"
5599 name "-" version ".tar.xz"))
5600 (sha256
5601 (base32
632a9b32 5602 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5603 (build-system gnu-build-system)
5604 (native-inputs
632a9b32 5605 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5606 ("itstool" ,itstool)
5607 ("xmllint" ,libxml2)))
5608 (home-page "https://wiki.gnome.org/Apps/Yelp")
5609 (synopsis "XSL stylesheets for Yelp")
5610 (description
5611 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5612to format Docbook and Mallard documents.")
5613 (license license:gpl2+)))
de3d612a
SB
5614
5615(define-public yelp
5616 (package
5617 (name "yelp")
1f1b6d60 5618 (version "3.32.2")
de3d612a
SB
5619 (source (origin
5620 (method url-fetch)
5621 (uri (string-append "mirror://gnome/sources/" name "/"
5622 (version-major+minor version) "/"
5623 name "-" version ".tar.xz"))
5624 (sha256
5625 (base32
1f1b6d60 5626 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5627 (build-system glib-or-gtk-build-system)
5628 (native-inputs
5629 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5630 ("intltool" ,intltool)
5631 ("itstool" ,itstool)
5632 ("pkg-config" ,pkg-config)))
5633 (propagated-inputs
5634 `(("dconf" ,dconf)))
5635 (inputs
ad1b7d8b
SB
5636 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5637 ("libxslt" ,libxslt)
de3d612a 5638 ("sqlite" ,sqlite)
4c28ca1d
SB
5639 ("webkitgtk" ,webkitgtk)
5640 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5641 (home-page "https://wiki.gnome.org/Apps/Yelp")
5642 (synopsis "GNOME help browser")
5643 (description
5644 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5645man, info, and HTML documents. It can locate documents according to the
5646freedesktop.org help system specification.")
5647 (license license:gpl2+)))
122d0d10
SB
5648
5649(define-public yelp-tools
5650 (package
5651 (name "yelp-tools")
8fe8a42a 5652 (version "3.32.2")
122d0d10
SB
5653 (source (origin
5654 (method url-fetch)
5655 (uri (string-append "mirror://gnome/sources/" name "/"
5656 (version-major+minor version) "/"
5657 name "-" version ".tar.xz"))
5658 (sha256
5659 (base32
8fe8a42a 5660 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5661 (build-system gnu-build-system)
5662 (native-inputs
5663 `(("pkg-config" ,pkg-config)))
5664 (propagated-inputs
5665 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5666 `(("itstool" ,itstool)
5667 ("xmllint" ,libxml2)
5668 ("xsltproc" ,libxslt)))
5669 (inputs
5670 `(("yelp-xsl" ,yelp-xsl)))
5671 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5672 (synopsis "Yelp documentation tools")
5673 (description
5674 "Yelp-tools is a collection of scripts and build utilities to help create,
5675manage, and publish documentation for Yelp and the web. Most of the heavy
5676lifting is done by packages like yelp-xsl and itstool. This package just
5677wraps things up in a developer-friendly way.")
5678 (license license:gpl2+)))
af8f9f23
RW
5679
5680(define-public libgee
5681 (package
5682 (name "libgee")
9cedae2a 5683 (version "0.20.3")
af8f9f23
RW
5684 (source (origin
5685 (method url-fetch)
84a1b007 5686 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5687 (version-major+minor version) "/"
84a1b007 5688 "libgee-" version ".tar.xz"))
af8f9f23
RW
5689 (sha256
5690 (base32
9cedae2a 5691 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5692 (build-system gnu-build-system)
5693 (arguments
5694 `(#:phases
5695 (modify-phases %standard-phases
5696 (add-after 'unpack 'fix-introspection-install-dir
5697 (lambda* (#:key outputs #:allow-other-keys)
5698 (let ((out (assoc-ref outputs "out")))
5699 (substitute* "gee/Makefile.in"
5700 (("@INTROSPECTION_GIRDIR@")
5701 (string-append out "/share/gir-1.0/"))
5702 (("@INTROSPECTION_TYPELIBDIR@")
5703 (string-append out "/lib/girepository-1.0/")))))))))
5704 (native-inputs
5705 `(("glib" ,glib "bin")
5706 ("pkg-config" ,pkg-config)))
5707 (inputs
5708 `(("glib" ,glib)
5709 ("gobject-introspection" ,gobject-introspection)))
5710 (home-page "https://wiki.gnome.org/Projects/Libgee")
5711 (synopsis "GObject collection library")
5712 (description
5713 "Libgee is a utility library providing GObject-based interfaces and
5714classes for commonly used data structures.")
5715 (license license:lgpl2.1+)))
b0f9c4b8
RW
5716
5717(define-public gexiv2
5718 (package
5719 (name "gexiv2")
b1a8b408 5720 (version "0.12.0")
b0f9c4b8
RW
5721 (source (origin
5722 (method url-fetch)
5723 (uri (string-append "mirror://gnome/sources/" name "/"
5724 (version-major+minor version) "/"
5725 name "-" version ".tar.xz"))
5726 (sha256
5727 (base32
b1a8b408 5728 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5729 (build-system meson-build-system)
b0f9c4b8 5730 (native-inputs
b1a8b408
KK
5731 `(("gcr" ,gcr)
5732 ("glib" ,glib "bin")
5733 ("pkg-config" ,pkg-config)
5734 ("vala" ,vala)))
b0f9c4b8
RW
5735 (propagated-inputs
5736 ;; Listed in "Requires" section of gexiv2.pc
5737 `(("exiv2" ,exiv2)))
5738 (inputs
5739 `(("glib" ,glib)
5740 ("gobject-introspection" ,gobject-introspection)))
5741 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5742 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5743 (description
5744 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5745allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5746metadata in photo and video files of various formats.")
5747 (license license:gpl2+)))
fed5a689
RW
5748
5749(define-public shotwell
5750 (package
5751 (name "shotwell")
bcea20cc 5752 (version "0.30.8")
fed5a689
RW
5753 (source (origin
5754 (method url-fetch)
5497d682 5755 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5756 (version-major+minor version) "/"
5497d682 5757 "shotwell-" version ".tar.xz"))
fed5a689
RW
5758 (sha256
5759 (base32
bcea20cc 5760 "1f7m007g6w1sz8s60w6x81ghp2rrjmik8phd958b2hy8zz92wbbj"))))
3b79afa6
KK
5761 (build-system meson-build-system)
5762 (arguments
5a0beca3
EF
5763 '(#:glib-or-gtk? #t
5764 #:phases
5765 (modify-phases %standard-phases
5766 (add-after 'unpack 'skip-gtk-update-icon-cache
5767 (lambda _
5768 (substitute* "build-aux/meson/postinstall.py"
5769 (("gtk-update-icon-cache") (which "true"))
5770 (("update-desktop-database") (which "true")))
5771 #t)))))
735b8db6
TGR
5772 (propagated-inputs
5773 `(("dconf" ,dconf)))
fed5a689 5774 (native-inputs
5a0beca3
EF
5775 `(("gettext" ,gettext-minimal)
5776 ("glib:bin" ,glib "bin")
735b8db6 5777 ("itstool" ,itstool)
3b79afa6 5778 ("pkg-config" ,pkg-config)
735b8db6 5779 ("vala" ,vala)))
fed5a689 5780 (inputs
5a0beca3
EF
5781 `(("gcr" ,gcr)
5782 ("gexiv2" ,gexiv2)
fed5a689 5783 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5784 ("gstreamer" ,gstreamer)
5785 ("json-glib" ,json-glib)
dfb0323d 5786 ("libgdata" ,libgdata)
fed5a689 5787 ("libgee" ,libgee)
5a0beca3
EF
5788 ("libgphoto2" ,libgphoto2)
5789 ("libgudev" ,libgudev)
fed5a689 5790 ("libraw" ,libraw)
fed5a689
RW
5791 ("libsoup" ,libsoup)
5792 ("libxml2" ,libxml2)
5a0beca3
EF
5793 ("sqlite" ,sqlite)
5794 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5795 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5796 (synopsis "Photo manager for GNOME 3")
5797 (description
5798 "Shotwell is a digital photo manager designed for the GNOME desktop
5799environment. It allows you to import photos from disk or camera, organize
5800them by keywords and events, view them in full-window or fullscreen mode, and
5801share them with others via social networking and more.")
5802 (license license:lgpl2.1+)))
293ff8b2
DT
5803
5804(define-public file-roller
5805 (package
5806 (name "file-roller")
dcae4270 5807 (version "3.32.3")
293ff8b2
DT
5808 (source (origin
5809 (method url-fetch)
f89a27c6 5810 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5811 (version-major+minor version) "/"
f89a27c6 5812 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5813 (sha256
5814 (base32
dcae4270 5815 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5816 (build-system meson-build-system)
293ff8b2 5817 (native-inputs
0a500745
RW
5818 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5819 ("intltool" ,intltool)
4c96e5d1 5820 ("itstool" ,itstool)
0a500745
RW
5821 ("pkg-config" ,pkg-config)
5822 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5823 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5824 ;; TODO: Add libnautilus.
5825 (inputs
5826 `(("gtk+" ,gtk+)
5827 ("gdk-pixbuf" ,gdk-pixbuf)
5828 ("json-glib" ,json-glib)
5829 ("libarchive" ,libarchive)
5830 ("libnotify" ,libnotify)
4c96e5d1 5831 ("nettle" ,nettle)
293ff8b2
DT
5832 ("libxml2" ,libxml2)))
5833 (synopsis "Graphical archive manager for GNOME")
5834 (description "File Roller is an archive manager for the GNOME desktop
5835environment that allows users to view, unpack, and create compressed archives
5836such as gzip tarballs.")
5837 (home-page "http://fileroller.sourceforge.net/")
5838 (license license:gpl2+)))
7ce49365
SB
5839
5840(define-public gnome-session
5841 (package
5842 (name "gnome-session")
1fc2ec79 5843 (version "3.32.0")
7ce49365
SB
5844 (source (origin
5845 (method url-fetch)
5846 (uri (string-append "mirror://gnome/sources/" name "/"
5847 (version-major+minor version) "/"
5848 name "-" version ".tar.xz"))
5849 (sha256
5850 (base32
1fc2ec79 5851 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5852 (arguments
df278071
RW
5853 '(#:glib-or-gtk? #t
5854 #:phases
2914af3c
AW
5855 (modify-phases %standard-phases
5856 (add-before 'configure 'pre-configure
5857 (lambda* (#:key outputs #:allow-other-keys)
5858 ;; Use elogind instead of systemd.
df278071
RW
5859 (substitute* "meson.build"
5860 (("libsystemd-login") "libelogind")
5861 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5862 (substitute* "gnome-session/gsm-systemd.c"
5863 (("#include <systemd/sd-login.h>")
5864 "#include <elogind/sd-login.h>"))
df278071 5865 ;; Remove uses of the systemd daemon.
803ab416
SB
5866 (substitute* "gnome-session/gsm-autostart-app.c"
5867 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5868 #t))
5869 (add-after 'install 'wrap-gnome-session
5870 (lambda* (#:key inputs outputs #:allow-other-keys)
5871 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5872 (let ((glib (assoc-ref inputs "glib:bin"))
5873 (out (assoc-ref outputs "out")))
5874 (wrap-program (string-append out "/bin/gnome-session")
5875 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5876 #t))))
6cbc8d57 5877
2914af3c 5878 #:configure-flags
df278071
RW
5879 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5880 "-Dman=false" ; FIXME: disabled because of docbook validation error
5881 "-Dsystemd_journal=false")))
5882 (build-system meson-build-system)
7ce49365
SB
5883 (native-inputs
5884 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5885 ("pkg-config" ,pkg-config)
5886 ("intltool" ,intltool)
df278071
RW
5887 ("xsltproc" ,libxslt)
5888 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5889 ("docbook-xsl" ,docbook-xsl)
5890 ("docbook-xml" ,docbook-xml)
5891 ("xmlto" ,xmlto)))
7ce49365 5892 (inputs
2914af3c
AW
5893 `(("elogind" ,elogind)
5894 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5895 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5896 ("gtk+" ,gtk+)
5897 ("json-glib" ,json-glib)
5898 ("libsm" ,libsm)
5899 ("libxcomposite" ,libxcomposite)
5900 ("libxtst" ,libxtst)
5901 ("mesa" ,mesa)
5902 ("upower" ,upower)
5903 ("xtrans" ,xtrans)))
5904 (synopsis "Session manager for GNOME")
5905 (description
5906 "This package contains the GNOME session manager, as well as a
5907configuration program to choose applications starting on login.")
5908 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5909 (license license:gpl2+)))
f47ba77e
SB
5910
5911(define-public gjs
5912 (package
5913 (name "gjs")
d054fbf5 5914 (version "1.56.2")
f47ba77e
SB
5915 (source (origin
5916 (method url-fetch)
5917 (uri (string-append "mirror://gnome/sources/" name "/"
5918 (version-major+minor version) "/"
5919 name "-" version ".tar.xz"))
5920 (sha256
5921 (base32
d054fbf5 5922 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5923 (build-system gnu-build-system)
5924 (arguments
5925 '(#:phases
5926 (modify-phases %standard-phases
5927 (add-before
5928 'check 'pre-check
5929 (lambda _
fc119619
MW
5930 ;; The test suite requires a running X server.
5931 (system "Xvfb :1 &")
5932 (setenv "DISPLAY" ":1")
5933
f47ba77e
SB
5934 ;; For the missing /etc/machine-id.
5935 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5936
144f94d0
KK
5937 ;; Our mozjs-38 package does not compile the required Intl API
5938 ;; support for these failing tests.
5939 (substitute* "installed-tests/js/testLocale.js"
5940 ((".*toBeDefined.*") "")
5941 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5942 (substitute* "installed-tests/scripts/testCommandLine.sh"
5943 (("Valentín") "")
5944 (("☭") ""))
f47ba77e
SB
5945 #t)))))
5946 (native-inputs
8a831c6f 5947 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5948 ("pkg-config" ,pkg-config)
5949 ("xmllint" ,libxml2)
5950 ;; For testing
5951 ("dbus-launch" ,dbus)
5952 ("uuidgen" ,util-linux)
ebebee94 5953 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5954 (propagated-inputs
5955 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5956 `(("cairo" ,cairo)
5957 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5958 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5959 (inputs
5960 `(("gtk+" ,gtk+)
5961 ("readline" ,readline)))
5962 (synopsis "Javascript bindings for GNOME")
f032d0be 5963 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5964 (description
5965 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5966javascript engine and the GObject introspection framework.")
5967 (license license:gpl2+)))
329d731b
DH
5968
5969(define-public gedit
5970 (package
5971 (name "gedit")
480c9226 5972 (version "3.32.2")
329d731b
DH
5973 (source (origin
5974 (method url-fetch)
5975 (uri (string-append "mirror://gnome/sources/" name "/"
5976 (version-major+minor version) "/"
5977 name "-" version ".tar.xz"))
5978 (sha256
5979 (base32
480c9226
KK
5980 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5981 (build-system meson-build-system)
329d731b 5982 (arguments
480c9226
KK
5983 `(#:glib-or-gtk? #t
5984 #:configure-flags
5985 ;; Otherwise, the RUNPATH will lack the final path component.
5986 (list (string-append "-Dc_link_args=-Wl,-rpath="
5987 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5988
5989 ;; XXX: Generated .h files are sometimes used before being built.
5990 #:parallel-build? #f
5991
480c9226 5992 #:phases
329d731b 5993 (modify-phases %standard-phases
480c9226
KK
5994 (add-after 'unpack 'skip-gtk-update-icon-cache
5995 ;; Don't create 'icon-theme.cache'.
5996 (lambda _
5997 (substitute* "build-aux/meson/post_install.py"
5998 (("gtk-update-icon-cache") (which "true")))
5999 #t))
6000 (add-after 'unpack 'patch-libgd-fetch
6001 (lambda* (#:key inputs #:allow-other-keys)
6002 (let ((libgd (assoc-ref inputs "libgd")))
6003 ;; Calling git is unnecessary because libgd is fetched as a
6004 ;; native input to this package.
6005 (substitute* "meson.build"
6006 ((".*git.*") ""))
6007 (copy-recursively libgd "subprojects/libgd")
6008 #t)))
6009 (add-after 'install 'wrap-gedit
6010 (lambda* (#:key inputs outputs #:allow-other-keys)
6011 (let ((out (assoc-ref outputs "out"))
6012 (gtksourceview (assoc-ref inputs "gtksourceview"))
6013 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6014 (python-path (getenv "PYTHONPATH")))
6015 (wrap-program (string-append out "/bin/gedit")
6016 ;; For plugins.
6017 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6018 `("PYTHONPATH" ":" prefix (,python-path))
6019 ;; For language-specs.
6020 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6021 "/share")))))
6022 #t)))))
329d731b
DH
6023 (propagated-inputs
6024 `(("dconf" ,dconf)))
6025 (native-inputs
480c9226
KK
6026 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6027 ("intltool" ,intltool)
b3546174 6028 ("itstool" ,itstool)
480c9226 6029 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6030 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6031 ("libgd"
6032 ,(origin
6033 (method git-fetch)
6034 (uri (git-reference
6035 (url "https://gitlab.gnome.org/GNOME/libgd")
6036 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6037 (file-name (git-file-name "libgd" version))
6038 (sha256
6039 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6040 ("pkg-config" ,pkg-config)))
6041 (inputs
6042 `(("glib" ,glib)
0d2df50c 6043 ("gspell" ,gspell)
329d731b 6044 ("gtk+" ,gtk+)
480c9226 6045 ("gtksourceview" ,gtksourceview)
329d731b
DH
6046 ("libpeas" ,libpeas)
6047 ("libxml2" ,libxml2)
329d731b
DH
6048 ("iso-codes" ,iso-codes)
6049 ("python-pygobject" ,python-pygobject)
6050 ("python" ,python)
6051 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6052 ("libx11" ,libx11)
6053 ("vala" ,vala)
6054 ("adwaita-icon-theme" ,adwaita-icon-theme)
6055 ("libsoup" ,libsoup)
6056 ("gnome-desktop" ,gnome-desktop)))
6057 (home-page "https://wiki.gnome.org/Apps/Gedit")
6058 (synopsis "GNOME text editor")
6059 (description "While aiming at simplicity and ease of use, gedit is a
6060powerful general purpose text editor.")
6061 (license license:gpl2+)))
b7179363
SB
6062
6063(define-public zenity
6064 (package
6065 (name "zenity")
4f581bd0 6066 (version "3.32.0")
b7179363
SB
6067 (source (origin
6068 (method url-fetch)
5958df04 6069 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6070 (version-major+minor version) "/"
5958df04 6071 "zenity-" version ".tar.xz"))
b7179363
SB
6072 (sha256
6073 (base32
4f581bd0 6074 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6075 (build-system gnu-build-system)
6076 (native-inputs
b94a6ca0 6077 `(("gettext" ,gettext-minimal)
b7179363
SB
6078 ("itstool" ,itstool)
6079 ("pkg-config" ,pkg-config)))
6080 (inputs
6081 `(("libnotify" ,libnotify)
6082 ("webkitgtk" ,webkitgtk)))
6083 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6084 (home-page "https://www.gnome.org")
b7179363
SB
6085 (description
6086 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6087to display dialog boxes from the commandline and shell scripts.")
6088 (license license:lgpl2.0+)))
60c3627c
SB
6089
6090(define-public mutter
6091 (package
6092 (name "mutter")
edf43f68 6093 (version "3.32.2")
60c3627c 6094 (source (origin
86c44e72
KK
6095 (method url-fetch)
6096 (uri (string-append "mirror://gnome/sources/" name "/"
6097 (version-major+minor version) "/"
6098 name "-" version ".tar.xz"))
60c3627c
SB
6099 (sha256
6100 (base32
edf43f68 6101 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
6102 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6103 ;; versions of cogl and clutter. As a result, many of the inputs,
6104 ;; propagated-inputs, and configure flags used in cogl and clutter are
6105 ;; needed here as well.
edf43f68 6106 (build-system meson-build-system)
60c3627c 6107 (arguments
edf43f68
KK
6108 '(;; XXX: All mutter tests fail with the following error:
6109 ;; Settings schema 'org.gnome.mutter' is not installed
6110 #:tests? #f
6111 #:glib-or-gtk? #t
6112 #:configure-flags
6113 ;; Otherwise, the RUNPATH will lack the final path component.
6114 (list (string-append "-Dc_link_args=-Wl,-rpath="
6115 (assoc-ref %outputs "out") "/lib:"
6116 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
6117
6118 ;; The following flags are needed for the bundled clutter
edf43f68 6119 (string-append "-Dxwayland_path="
d633f2f6
RH
6120 (assoc-ref %build-inputs "xorg-server-xwayland")
6121 "/bin/Xwayland")
6122
a88d5a0c 6123 ;; the remaining flags are needed for the bundled cogl
edf43f68 6124 (string-append "-Dopengl_libname="
a88d5a0c 6125 (assoc-ref %build-inputs "mesa")
f23052a6
DC
6126 "/lib/libGL.so"))
6127 #:phases
6128 (modify-phases %standard-phases
edf43f68
KK
6129 (add-after 'unpack 'disable-werror
6130 (lambda _
6131 ;; XXX: build fails with [-Werror]:
6132 ;; backends/meta-cursor-renderer.c:112:5: error:
6133 ;; implicit declaration of function ?roundf?
6134 (substitute* "meson.build"
6135 (("'-Werror=.*',") ""))
6136 #t))
86c44e72
KK
6137 ;; Replace references to systemd libraries to elogind references.
6138 (add-before 'configure 'use-elogind
6139 (lambda _
edf43f68 6140 (substitute* (list "meson.build"
86c44e72
KK
6141 "src/backends/native/meta-launcher.c"
6142 "src/core/main.c")
6143 (("systemd") "elogind"))
6144 #t)))))
60c3627c
SB
6145 (native-inputs
6146 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6147 ("gobject-introspection" ,gobject-introspection)
6148 ("intltool" ,intltool)
f23052a6 6149 ("pkg-config" ,pkg-config)
edf43f68 6150 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6151 ;; For git build
6152 ("autoconf" ,autoconf)
6153 ("automake" ,automake)
6154 ("libtool" ,libtool)))
60c3627c 6155 (propagated-inputs
a88d5a0c
MW
6156 `(;; libmutter.pc refers to these:
6157 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6158 ("gtk+" ,gtk+)
6159 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6160 ("atk" ,atk)
6161 ("cairo" ,cairo)
6162 ("gdk-pixbuf" ,gdk-pixbuf)
6163 ("glib" ,glib)
a88d5a0c
MW
6164 ("json-glib" ,json-glib)
6165 ("libinput" ,libinput)
6166 ("libx11" ,libx11)
6167 ("libxcomposite" ,libxcomposite)
6168 ("libxdamage" ,libxdamage)
6169 ("libxext" ,libxext)
6170 ("libxfixes" ,libxfixes)
6171 ("libxkbcommon" ,libxkbcommon)
6172 ("libxrandr" ,libxrandr)
6173 ("mesa" ,mesa)
6174 ("pango" ,pango)
6175 ("udev" ,eudev)
a88d5a0c 6176 ("xinput" ,xinput)))
60c3627c 6177 (inputs
86c44e72
KK
6178 `(("elogind" ,elogind)
6179 ("gnome-desktop" ,gnome-desktop)
edf43f68 6180 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6181 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6182 ("libgudev" ,libgudev)
60c3627c
SB
6183 ("libice" ,libice)
6184 ("libsm" ,libsm)
edf43f68 6185 ("libwacom" ,libwacom)
60c3627c 6186 ("libxkbfile" ,libxkbfile)
a88d5a0c 6187 ("libxrandr" ,libxrandr)
86c44e72 6188 ("libxtst" ,libxtst)
edf43f68 6189 ("pipewire" ,pipewire)
60c3627c
SB
6190 ("startup-notification" ,startup-notification)
6191 ("upower-glib" ,upower)
6192 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6193 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6194 ("zenity" ,zenity)))
6195 (synopsis "Window and compositing manager")
f032d0be 6196 (home-page "https://www.gnome.org")
60c3627c
SB
6197 (description
6198 "Mutter is a window and compositing manager that displays and manages your
6199desktop via OpenGL. Mutter combines a sophisticated display engine using the
6200Clutter toolkit with solid window-management logic inherited from the Metacity
6201window manager.")
86c44e72 6202 (license license:gpl2+)))
685cee87
SB
6203
6204(define-public gnome-online-accounts
6205 (package
6206 (name "gnome-online-accounts")
aa200347 6207 (version "3.32.1")
685cee87
SB
6208 (source (origin
6209 (method url-fetch)
6210 (uri (string-append "mirror://gnome/sources/" name "/"
6211 (version-major+minor version) "/"
6212 name "-" version ".tar.xz"))
6213 (sha256
6214 (base32
aa200347 6215 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 6216 (outputs '("out" "lib"))
685cee87 6217 (build-system glib-or-gtk-build-system)
14c297fd
TS
6218 (arguments
6219 `(#:configure-flags
6220 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6221 #:phases
6222 (modify-phases %standard-phases
6223 (add-before 'configure 'patch-libgoa-output
6224 (lambda* (#:key outputs #:allow-other-keys)
6225 (let ((lib (assoc-ref outputs "lib")))
6226 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6227 (("@prefix@") lib)
6228 (("@exec_prefix@") lib)
6229 (("@libdir@") (string-append lib "/lib"))
6230 (("@includedir@") (string-append lib "/include"))
6231 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6232 ;; Make sure gobject-introspection knows about the output
6233 ;; too (see <https://bugs.gnu.org/36535>).
6234 (setenv "outputs" "out lib")
14c297fd 6235 #t))))))
685cee87
SB
6236 (native-inputs
6237 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6238 ("gobject-introspection" ,gobject-introspection)
6239 ("intltool" ,intltool)
6240 ("pkg-config" ,pkg-config)
ebb2873d 6241 ("vala" ,vala)
685cee87
SB
6242 ("xsltproc" ,libxslt)))
6243 (propagated-inputs
6244 `(("glib" ,glib) ; required by goa-1.0.pc
6245 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6246 (inputs
6247 `(("docbook-xsl" ,docbook-xsl)
6248 ("json-glib" ,json-glib)
6249 ("libsecret" ,libsecret)
6250 ("rest" ,rest)
685cee87
SB
6251 ("webkitgtk" ,webkitgtk)))
6252 (synopsis "Single sign-on framework for GNOME")
6253 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6254 (description
6255 "GNOME Online Accounts provides interfaces so that applications and
6256libraries in GNOME can access the user's online accounts. It has providers for
6257Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6258Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6259 (license license:lgpl2.0+)))
df217748
SB
6260
6261(define-public evolution-data-server
6262 (package
6263 (name "evolution-data-server")
2196a8d4 6264 (version "3.32.4")
df217748
SB
6265 (source (origin
6266 (method url-fetch)
6267 (uri (string-append "mirror://gnome/sources/" name "/"
6268 (version-major+minor version) "/"
6269 name "-" version ".tar.xz"))
43190ac6
MB
6270 (patches (search-patches "evolution-data-server-locales.patch"
6271 "evolution-data-server-libical-compat.patch"))
df217748
SB
6272 (sha256
6273 (base32
2196a8d4 6274 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 6275 (build-system cmake-build-system)
df217748 6276 (arguments
b468eedc
RW
6277 '(#:configure-flags
6278 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6279 (runpaths (map (lambda (s)
6280 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6281 '("addressbook-backends" "calendar-backends"
6282 "camel-providers" "credential-modules"
6283 "registry-modules"))))
6284 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6285 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6286 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6287 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6288 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6289 (string-append lib "/evolution-data-server;")
6290 (string-join runpaths ";"))
6291 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6292 #:phases
6293 (modify-phases %standard-phases
b468eedc
RW
6294 (add-after 'unpack 'disable-failing-tests
6295 (lambda _
6296 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6297 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6298 (delete-file-recursively "tests/book-migration")
6299 (substitute* "tests/CMakeLists.txt"
6300 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
6301 ;; tests/libebook/client/test-book-client-view-operations:8077):
6302 ;; e-data-server-WARNING **:
6303 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6304 ;; runtime check failed:
6305 ;; (!g_main_context_pending (closure->main_context))
6306 (substitute* "tests/libebook/client/CMakeLists.txt"
6307 (("test-book-client-view-operations") ""))
b468eedc 6308 #t))
743aebd7 6309 (add-after 'unpack 'patch-paths
df217748 6310 (lambda _
b468eedc
RW
6311 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6312 "tests/libedata-book/data-test-utils.c"
6313 "tests/libedata-book/test-book-cache-utils.c"
6314 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6315 (("/bin/rm") (which "rm")))
ac033c7b
MB
6316 #t))
6317 (add-before 'configure 'dont-override-rpath
6318 (lambda _
6319 (substitute* "CMakeLists.txt"
6320 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6321 ;; Remove it so the configure flag is respected.
6322 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6323 #t)))))
df217748
SB
6324 (native-inputs
6325 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6326 ("gobject-introspection" ,gobject-introspection)
6327 ("gperf" ,gperf)
6328 ("intltool" ,intltool)
6329 ("pkg-config" ,pkg-config)
a73c1cf8 6330 ("vala" ,vala)
743aebd7 6331 ("python" ,python-wrapper)))
df217748
SB
6332 (propagated-inputs
6333 ;; These are all in the Requires field of .pc files.
6334 `(("gtk+" ,gtk+)
6335 ("libical" ,libical)
6336 ("libsecret" ,libsecret)
6337 ("libsoup" ,libsoup)
6338 ("nss" ,nss)
6339 ("sqlite" ,sqlite)))
6340 (inputs
6341 `(("bdb" ,bdb)
6342 ("gcr" ,gcr)
14c297fd 6343 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6344 ("json-glib" ,json-glib)
b468eedc 6345 ("libcanberra" ,libcanberra)
743aebd7
MB
6346 ("libgweather" ,libgweather)
6347 ("mit-krb5" ,mit-krb5)
891199c6
MW
6348 ("openldap" ,openldap)
6349 ("webkitgtk" ,webkitgtk)))
df217748
SB
6350 (synopsis "Store address books and calendars")
6351 (home-page "https://wiki.gnome.org/Apps/Evolution")
6352 (description
6353 "This package provides a unified backend for programs that work with
6354contacts, tasks, and calendar information. It was originally developed for
6355Evolution (hence the name), but is now used by other packages as well.")
6356 (license license:lgpl2.0)))
bd7dfafa
SB
6357
6358(define-public caribou
6359 (package
6360 (name "caribou")
fe964bb5 6361 (version "0.4.21")
bd7dfafa
SB
6362 (source (origin
6363 (method url-fetch)
6364 (uri (string-append "mirror://gnome/sources/" name "/"
6365 (version-major+minor version) "/"
6366 name "-" version ".tar.xz"))
6367 (sha256
6368 (base32
fe964bb5 6369 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6370 (build-system glib-or-gtk-build-system)
6371 (arguments
6372 '(#:phases
6373 (modify-phases %standard-phases
6374 (add-before
6375 'build 'pre-build
6376 (lambda* (#:key outputs #:allow-other-keys)
6377 (let ((out (assoc-ref outputs "out")))
6378 ;; Use absolute shared library path in Caribou-1.0.typelib.
6379 (substitute* "libcaribou/Makefile"
6380 (("--shared-library=libcaribou.so")
6381 (string-append "--shared-library="
6382 out "/lib/libcaribou.so")))
6383 #t)))
6384 (add-after 'install 'wrap-programs
6385 (lambda* (#:key outputs #:allow-other-keys)
6386 (let* ((out (assoc-ref outputs "out"))
6387 (python-path (getenv "PYTHONPATH"))
6388 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6389 (for-each
6390 (lambda (prog)
6391 (wrap-program prog
6392 `("PYTHONPATH" ":" prefix (,python-path))
6393 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6394 (list (string-append out "/bin/caribou-preferences")
6395 (string-append out "/libexec/antler-keyboard"))))
6396 #t)))))
6397 (native-inputs
6398 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6399 ("gobject-introspection" ,gobject-introspection)
6400 ("intltool" ,intltool)
6401 ("pkg-config" ,pkg-config)
9f7f5ba2 6402 ("python" ,python)
bd7dfafa
SB
6403 ("vala" ,vala)
6404 ("xsltproc" ,libxslt)))
6405 (propagated-inputs
6406 ;; caribou-1.0.pc refers to all these.
6407 `(("libgee" ,libgee)
6408 ("libxklavier" ,libxklavier)
6409 ("libxtst" ,libxtst)
6410 ("gtk+" ,gtk+)))
6411 (inputs
6412 `(("clutter" ,clutter)
6413 ("dconf" ,dconf)
6414 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6415 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6416 (synopsis "Text entry and UI navigation application")
6417 (home-page "https://wiki.gnome.org/Projects/Caribou")
6418 (description
6419 "Caribou is an input assistive technology intended for switch and pointer
6420users.")
6421 (license license:lgpl2.1)))
ba5dd105 6422
ba5dd105
SB
6423(define-public network-manager
6424 (package
6425 (name "network-manager")
6425d87a 6426 (version "1.18.4")
ba5dd105
SB
6427 (source (origin
6428 (method url-fetch)
6429 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6430 (version-major+minor version) "/"
6431 "NetworkManager-" version ".tar.xz"))
9d3b6a5d 6432 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6433 (sha256
6434 (base32
6425d87a 6435 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 6436 (modules '((guix build utils)))
fd070f35 6437 (snippet
02710a9b
RW
6438 '(begin
6439 (substitute* "src/devices/wwan/nm-modem-manager.c"
6440 (("systemd") "elogind"))
6441 #t))))
ba5dd105
SB
6442 (build-system gnu-build-system)
6443 (outputs '("out"
6444 "doc")) ; 8 MiB of gtk-doc HTML
6445 (arguments
6446 '(#:configure-flags
6447 (let ((out (assoc-ref %outputs "out"))
6448 (doc (assoc-ref %outputs "doc"))
6449 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6450 "/sbin/dhclient")))
02710a9b
RW
6451 (list "--with-libnm-glib" ; needed by network-manager-applet
6452 "--with-systemd-journal=no"
6453 "--with-session-tracking=elogind"
6454 "--with-suspend-resume=elogind"
fd070f35
CM
6455 "--with-consolekit=no"
6456 "--with-crypto=gnutls"
ba5dd105
SB
6457 "--disable-config-plugin-ibft"
6458 "--sysconfdir=/etc"
6459 "--localstatedir=/var"
6460 (string-append "--with-udev-dir="
6461 out "/lib/udev")
6462 (string-append "--with-dbus-sys-dir="
6463 out "/etc/dbus-1/system.d")
6464 (string-append "--with-html-dir="
6465 doc "/share/gtk-doc/html")
6466 (string-append "--with-dhclient=" dhclient)))
6467 #:phases
6468 (modify-phases %standard-phases
02710a9b
RW
6469 ;; This bare "ls" invocation breaks some tests.
6470 (add-after 'unpack 'patch-ls-invocation
6471 (lambda _
6472 (substitute* "build-aux/ltmain.sh"
6473 (("`ls -")
6474 (string-append "`" (which "ls") " -")))
6475 #t))
b4f59d87
AW
6476 (add-before 'configure 'pre-configure
6477 (lambda _
6478 ;; These tests try to test aspects of network-manager's
6479 ;; functionality within restricted containers, but they don't
6480 ;; cope with being already in the Guix build jail as that jail
6481 ;; lacks some features that they would like to proxy over (like
6482 ;; a /sys mount).
d04687dc
HG
6483 (substitute* '("Makefile.in")
6484 (("src/platform/tests/test-address-linux") " ")
6485 (("src/platform/tests/test-cleanup-linux") " ")
6486 (("src/platform/tests/test-link-linux") " ")
6487 (("src/platform/tests/test-route-linux") " ")
02710a9b 6488 (("src/devices/tests/test-acd") "")
d04687dc
HG
6489 (("src/devices/tests/test-arping") " ")
6490 (("src/devices/tests/test-lldp") " ")
6491 (("src/tests/test-route-manager-linux") " "))
b4f59d87 6492 #t))
45f80fce
RW
6493 (add-after 'unpack 'delete-failing-tests
6494 (lambda _
02710a9b 6495 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
6496 ;; ERROR:libnm-core/tests/test-general.c:5842:
6497 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6498 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6499 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6500 ;; ERROR:libnm-core/tests/test-setting.c:907:
6501 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
6502 (substitute* "Makefile.in"
6503 (("libnm-core/tests/test-general") " ")
6504 (("libnm-core/tests/test-keyfile") " ")
02710a9b 6505 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 6506 #t))
ba5dd105
SB
6507 (add-before 'check 'pre-check
6508 (lambda _
6509 ;; For the missing /etc/machine-id.
6510 (setenv "DBUS_FATAL_WARNINGS" "0")
bf252286
MB
6511
6512 ;; XXX: Regenerate some of the tests that are dependent on Python version.
6513 ;; Try removing this variable for newer versions of NetworkManager.
6514 (setenv "NM_TEST_REGENERATE" "1")
ba5dd105
SB
6515 #t))
6516 (replace 'install
6517 (lambda _
45f80fce
RW
6518 (invoke "make"
6519 "sysconfdir=/tmp"
6520 "rundir=/tmp"
6521 "statedir=/tmp"
6522 "nmstatedir=/tmp/nm"
6523 "install")
6524 #t)))))
b93502d6
DC
6525 (propagated-inputs
6526 `(("glib" ,glib)))
ba5dd105
SB
6527 (native-inputs
6528 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6529 ("gobject-introspection" ,gobject-introspection)
d04687dc 6530 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6531 ("intltool" ,intltool)
d04687dc
HG
6532 ("libxslt" ,libxslt)
6533 ("libxml2" ,libxml2)
ba5dd105
SB
6534 ("pkg-config" ,pkg-config)
6535 ;; For testing.
6536 ("python" ,python-wrapper)
6537 ("python-dbus" ,python-dbus)
6538 ("python-pygobject" ,python-pygobject)))
6539 (inputs
02710a9b
RW
6540 `(("coreutils" ,coreutils) ; for ls
6541 ("curl" ,curl)
856ca567
KK
6542 ("cyrus-sasl" ,cyrus-sasl)
6543 ("dbus-glib" ,dbus-glib)
ba5dd105 6544 ("dnsmasq" ,dnsmasq)
856ca567 6545 ("eudev" ,eudev)
ba5dd105
SB
6546 ("gnutls" ,gnutls)
6547 ("iptables" ,iptables)
6548 ("isc-dhcp" ,isc-dhcp)
d04687dc 6549 ("jansson" ,jansson)
ba5dd105
SB
6550 ("libgcrypt" ,libgcrypt)
6551 ("libgudev" ,libgudev)
6552 ("libndp" ,libndp)
6553 ("libnl" ,libnl)
6554 ("libsoup" ,libsoup)
142bdcbc 6555 ("modem-manager" ,modem-manager)
c27e02bf 6556 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6557 ("polkit" ,polkit)
6558 ("ppp" ,ppp)
6559 ("readline" ,readline)
fd070f35
CM
6560 ("util-linux" ,util-linux)
6561 ("elogind" ,elogind)))
ba5dd105 6562 (synopsis "Network connection manager")
f032d0be 6563 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6564 (description
6565 "NetworkManager is a system network service that manages your network
6566devices and connections, attempting to keep active network connectivity when
6567available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6568devices, and provides VPN integration with a variety of different VPN
6569services.")
29d2f451
LC
6570 (license license:gpl2+)
6571 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6572
f2b96b3a
LC
6573(define-public network-manager-openvpn
6574 (package
6575 (name "network-manager-openvpn")
be1c4b07 6576 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6577 (version "1.8.10")
f2b96b3a
LC
6578 (source (origin
6579 (method url-fetch)
6580 (uri (string-append
6581 "mirror://gnome/sources/NetworkManager-openvpn/"
6582 (version-major+minor version)
6583 "/NetworkManager-openvpn-" version ".tar.xz"))
6584 (sha256
6585 (base32
7d87eede 6586 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6587 (build-system gnu-build-system)
6588 (arguments
633422b0
JL
6589 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6590 #:phases
6591 (modify-phases %standard-phases
6592 (add-after 'configure 'patch-path
6593 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6594 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6595 "/sbin/openvpn"))
6596 (modprobe (string-append (assoc-ref inputs "kmod")
6597 "/bin/modprobe"))
6598 (pretty-ovpn (string-append "\"" ovpn "\"")))
6599 (for-each
6600 (lambda (file)
6601 (substitute* file
6602 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6603 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6604 (("\"/sbin/openvpn\"") pretty-ovpn)
6605 (("/sbin/modprobe") modprobe)))
6606 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6607 #t)))))
f2b96b3a
LC
6608 (native-inputs
6609 `(("pkg-config" ,pkg-config)
6610 ("intltool" ,intltool)))
6611 (inputs
6612 `(("gtk+" ,gtk+)
633422b0 6613 ("kmod" ,kmod)
f2b96b3a
LC
6614 ("openvpn" ,openvpn)
6615 ("network-manager" ,network-manager)
6616 ("network-manager-applet" ,network-manager-applet) ;for libnma
6617 ("libsecret" ,libsecret)))
6618 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6619 (synopsis "OpenVPN plug-in for NetworkManager")
6620 (description
6621 "This extension of NetworkManager allows it to take care of connections
6622to virtual private networks (VPNs) via OpenVPN.")
6623 (license license:gpl2+)
6624 (properties `((upstream-name . "NetworkManager-openvpn")))))
6625
d376129f
JL
6626(define-public network-manager-vpnc
6627 (package
6628 (name "network-manager-vpnc")
6629 (version "1.2.6")
6630 (source (origin
6631 (method url-fetch)
6632 (uri (string-append
6633 "mirror://gnome/sources/NetworkManager-vpnc/"
6634 (version-major+minor version)
6635 "/NetworkManager-vpnc-" version ".tar.xz"))
6636 (sha256
6637 (base32
6638 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6639 (build-system gnu-build-system)
6640 (arguments
6641 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6642 #:phases
6643 (modify-phases %standard-phases
6644 (add-after 'configure 'patch-path
6645 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6646 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6647 "/sbin/vpnc"))
6648 (modprobe (string-append (assoc-ref inputs "kmod")
6649 "/bin/modprobe"))
6650 (pretty-ovpn (string-append "\"" vpnc "\"")))
6651 (substitute* "src/nm-vpnc-service.c"
6652 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6653 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6654 (("\"/sbin/vpnc\"") pretty-ovpn)
6655 (("/sbin/modprobe") modprobe)))
6656 #t)))))
6657 (native-inputs
6658 `(("pkg-config" ,pkg-config)
6659 ("intltool" ,intltool)))
6660 (inputs
6661 `(("gtk+" ,gtk+)
6662 ("kmod" ,kmod)
6663 ("vpnc" ,vpnc)
6664 ("network-manager" ,network-manager)
6665 ("network-manager-applet" ,network-manager-applet) ;for libnma
6666 ("libsecret" ,libsecret)))
6667 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6668 (synopsis "VPNC plug-in for NetworkManager")
6669 (description
6670 "Support for configuring virtual private networks based on VPNC.
6671Compatible with Cisco VPN concentrators configured to use IPsec.")
6672 (license license:gpl2+)
6673 (properties `((upstream-name . "NetworkManager-vpnc")))))
6674
8378c87a
EF
6675(define-public network-manager-openconnect
6676 (package
6677 (name "network-manager-openconnect")
6678 (version "1.2.6")
6679 (source (origin
6680 (method url-fetch)
6681 (uri (string-append
6682 "mirror://gnome/sources/NetworkManager-openconnect/"
6683 (version-major+minor version)
6684 "/NetworkManager-openconnect-" version ".tar.xz"))
6685 (sha256
6686 (base32
6687 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6688 (build-system gnu-build-system)
6689 (arguments
6690 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6691 #:phases
6692 (modify-phases %standard-phases
6693 (add-after 'configure 'patch-path
6694 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6695 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6696 "/sbin/openconnect"))
6697 (modprobe (string-append (assoc-ref inputs "kmod")
6698 "/bin/modprobe"))
6699 (pretty-ovpn (string-append "\"" openconnect "\"")))
6700 (substitute* "src/nm-openconnect-service.c"
6701 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6702 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6703 (("/sbin/modprobe") modprobe)))
6704 #t)))))
6705 (native-inputs
6706 `(("intltool" ,intltool)
6707 ("network-manager-applet" ,network-manager-applet) ;for libnma
6708 ("pkg-config" ,pkg-config)))
6709 (inputs
6710 `(("gcr" ,gcr)
6711 ("gtk+" ,gtk+)
6712 ("kmod" ,kmod)
6713 ("libsecret" ,libsecret)
6714 ("libxml2" ,libxml2)
6715 ("network-manager" ,network-manager)
6716 ("openconnect" ,openconnect)))
6717 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6718 (synopsis "OpenConnect plug-in for NetworkManager")
6719 (description
6720 "This extension of NetworkManager allows it to take care of connections
6721to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6722Cisco's AnyConnect SSL VPN.")
6723 (license license:gpl2+)
e52b9534
LC
6724 (properties `((upstream-name . "NetworkManager-openconnect")
6725
6726 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6727 ;; file refers to account "nm-openconnect". Specify it here
6728 ;; so that 'network-manager-service-type' creates it.
6729 (user-accounts . ("nm-openconnect"))))))
8378c87a 6730
e5e1df4d
DC
6731(define-public mobile-broadband-provider-info
6732 (package
6733 (name "mobile-broadband-provider-info")
310c89e3 6734 (version "20190116")
e5e1df4d
DC
6735 (source (origin
6736 (method url-fetch)
6737 (uri (string-append
6738 "mirror://gnome/sources/"
6739 "mobile-broadband-provider-info/" version "/"
6740 "mobile-broadband-provider-info-" version ".tar.xz"))
6741 (sha256
6742 (base32
310c89e3 6743 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6744 (build-system gnu-build-system)
6745 (arguments
310c89e3 6746 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6747 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6748 (synopsis "Database of broadband connection configuration")
6749 (description "Database of broadband connection configuration.")
6750 (license license:public-domain)))
6751
4d62a9d3
SB
6752(define-public network-manager-applet
6753 (package
6754 (name "network-manager-applet")
8fc3a337 6755 (version "1.8.24")
4d62a9d3
SB
6756 (source (origin
6757 (method url-fetch)
3df63444 6758 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6759 (version-major+minor version) "/"
3df63444 6760 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6761 (sha256
6762 (base32
8fc3a337 6763 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6764 (build-system meson-build-system)
6765 (arguments
be1c4b07
TGR
6766 '(#:configure-flags
6767 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6768 (list "-Dlibnm_gtk=true")
6769 #:glib-or-gtk? #t))
4d62a9d3
SB
6770 (native-inputs
6771 `(("intltool" ,intltool)
cd7f718e 6772 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6773 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6774 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6775 ("pkg-config" ,pkg-config)))
6776 (propagated-inputs
6777 ;; libnm-gtk.pc refers to all these.
6778 `(("dbus-glib" ,dbus-glib)
6779 ("gtk+" ,gtk+)
6780 ("network-manager" ,network-manager)))
6781 (inputs
cd7f718e
RW
6782 `(("gcr" ,gcr)
6783 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6784 ("libgudev" ,libgudev)
6785 ("libnotify" ,libnotify)
2116bfb3 6786 ("libsecret" ,libsecret)
240cee8a
KK
6787 ("libselinux" ,libselinux)
6788 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6789 ("modem-manager" ,modem-manager)
6790 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6791 (synopsis "Applet for managing network connections")
f032d0be 6792 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6793 (description
6794 "This package contains a systray applet for NetworkManager. It displays
6795the available networks and allows users to easily switch between them.")
6796 (license license:gpl2+)))
56196594
RW
6797
6798(define-public libxml++
6799 (package
6800 (name "libxml++")
8344a85e 6801 (version "3.0.1")
56196594
RW
6802 (source (origin
6803 (method url-fetch)
6804 (uri (string-append "mirror://gnome/sources/" name "/"
6805 (version-major+minor version) "/"
6806 name "-" version ".tar.xz"))
6807 (sha256
6808 (base32
8344a85e 6809 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6810 (build-system gnu-build-system)
6811 ;; libxml++-3.0.pc refers to all these.
6812 (propagated-inputs
6813 `(("libxml2" ,libxml2)
6814 ("glibmm" ,glibmm)))
6815 (native-inputs
6816 `(("perl" ,perl)
6817 ("pkg-config" ,pkg-config)))
6818 (home-page "http://libxmlplusplus.sourceforge.net/")
6819 (synopsis "C++ wrapper for XML parser library libxml2")
6820 (description
6821 "This package provides a C++ wrapper for the XML parser library
6822libxml2.")
6823 (license license:lgpl2.1+)))
df12f04a 6824
b61d9627
AW
6825(define-public libxml++-2
6826 (package
6827 (inherit libxml++)
6828 (name "libxml++")
6829 (version "2.40.1")
6830 (source (origin
6831 (method url-fetch)
6832 (uri (string-append "mirror://gnome/sources/" name "/"
6833 (version-major+minor version) "/"
6834 name "-" version ".tar.xz"))
6835 (sha256
6836 (base32
6837 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6838
df12f04a
SB
6839(define-public gdm
6840 (package
6841 (name "gdm")
bcca95dc 6842 (version "3.32.0")
df12f04a
SB
6843 (source (origin
6844 (method url-fetch)
6845 (uri (string-append "mirror://gnome/sources/" name "/"
6846 (version-major+minor version) "/"
6847 name "-" version ".tar.xz"))
6848 (sha256
6849 (base32
bcca95dc 6850 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6851 (build-system glib-or-gtk-build-system)
df12f04a
SB
6852 (arguments
6853 '(#:configure-flags
af37e6bb 6854 `("--without-plymouth"
957dbc0a 6855 "--disable-systemd-journal"
51bc8357
TS
6856
6857 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6858 ;; instead of having to replace it (i.e., stopping the mingetty
6859 ;; service for TTY 1 before starting GDM).
6860 "--with-initial-vt=7"
6861
89c86562
TS
6862 ;; Use '/etc/environment' for locale settings instead of the
6863 ;; systemd-specific '/etc/locale.conf'.
6864 "--with-lang-file=/etc/environment"
6865
b74ef0ba
RW
6866 ,(string-append "--with-udevdir="
6867 (assoc-ref %outputs "out") "/lib/udev")
6868
af37e6bb
AW
6869 "--localstatedir=/var"
6870 ,(string-append "--with-default-path="
6871 (string-join '("/run/setuid-programs"
6872 "/run/current-system/profile/bin"
6873 "/run/current-system/profile/sbin")
957dbc0a
AW
6874 ":"))
6875 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6876 ;; XDG_DATA_DIRS so that it finds its schemas.
6877 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6878 #:phases
6879 (modify-phases %standard-phases
6880 (add-before
6881 'configure 'pre-configure
e8c6e771 6882 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6883 ;; We don't have <systemd/sd-daemon.h>.
6884 (substitute* '("common/gdm-log.c"
6885 "daemon/gdm-server.c"
6886 "daemon/gdm-session-worker.c"
6887 "daemon/gdm-session-worker-job.c")
6888 (("#include <systemd/sd-daemon\\.h>") ""))
6889 ;; Use elogind for sd-login.
6890 (substitute* '("common/gdm-common.c"
6891 "daemon/gdm-manager.c"
6892 "libgdm/gdm-user-switching.c")
6893 (("#include <systemd/sd-login\\.h>")
6894 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6895 ;; Check for elogind.
6896 (substitute* '("configure")
6897 (("libsystemd")
6898 "libelogind"))
af37e6bb
AW
6899 ;; Look for system-installed sessions in
6900 ;; /run/current-system/profile/share.
6901 (substitute* '("libgdm/gdm-sessions.c"
6902 "daemon/gdm-session.c"
6903 "daemon/gdm-display.c"
6904 "daemon/gdm-launch-environment.c")
6905 (("DATADIR \"/x")
6906 "\"/run/current-system/profile/share/x")
6907 (("DATADIR \"/wayland")
6908 "\"/run/current-system/profile/share/wayland")
6909 (("DATADIR \"/gnome")
6910 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6911 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6912 "GDM_DBUS_DAEMON"
c9ff92b5 6913 "GDM_X_SERVER"
41fa9f18 6914 "GDM_X_SESSION"
c9ff92b5
TS
6915 ;; XXX: Remove this once GNOME Shell is
6916 ;; a dependency of GDM.
6917 "XDG_DATA_DIRS")))
6918 (substitute* "daemon/gdm-session.c"
6919 (("set_up_session_environment \\(self\\);")
6920 (apply string-append
6921 "set_up_session_environment (self);\n"
6922 (map (lambda (name)
6923 (string-append
6924 "gdm_session_set_environment_variable "
6925 "(self, \"" name "\","
6926 "g_getenv (\"" name "\"));\n"))
6927 propagate)))))
a430a350
TS
6928 ;; Find the configuration file using an environment variable.
6929 (substitute* '("common/gdm-settings.c")
e0e6756f 6930 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6931 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6932 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6933 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6934 ;; Use service-supplied path to X.
6935 (substitute* '("daemon/gdm-server.c")
6936 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6937 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6938 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6939 (("\"dbus-daemon\"")
6940 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6941 (("X_SERVER")
41fa9f18
TS
6942 "g_getenv (\"GDM_X_SERVER\")")
6943 (("GDMCONFDIR \"/Xsession\"")
6944 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6945 ;; Use an absolute path for GNOME Session.
6946 (substitute* "daemon/gdm-launch-environment.c"
6947 (("\"gnome-session\"")
6948 (string-append "\"" (assoc-ref inputs "gnome-session")
6949 "/bin/gnome-session\"")))
e8c6e771
TS
6950 ;; Do not automatically select the placeholder session.
6951 (substitute* "daemon/gdm-session.c"
6952 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6953 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6954 "(g_strcmp0(search_dirs[i], \""
6955 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6956 "\") == 0 && "
6957 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6958 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6959 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6960 #t))
8caa4589
TS
6961 ;; GDM requires that there be at least one desktop entry
6962 ;; file. This phase installs a hidden one that simply
6963 ;; fails. This enables users to use GDM with a
6964 ;; '~/.xsession' script with no other desktop entry files.
6965 ;; See <https://bugs.gnu.org/35068>.
6966 (add-after 'install 'install-placeholder-desktop-entry
6967 (lambda* (#:key inputs outputs #:allow-other-keys)
6968 (let* ((out (assoc-ref outputs "out"))
6969 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6970 (fail (string-append sessions "/fail.desktop")))
6971 (mkdir-p sessions)
6972 (with-output-to-file fail
6973 (lambda ()
6974 (for-each
6975 display
6976 '("[Desktop Entry]\n"
6977 "Encoding=UTF-8\n"
6978 "Type=Application\n"
6979 "Name=Fail\n"
6980 "Comment=This session fails immediately.\n"
6981 "NoDisplay=true\n"
6982 "Exec=false\n"))))
6983 #t)))
69544798
TS
6984 ;; GDM needs GNOME Session to run these applications. We link
6985 ;; their autostart files in `share/gdm/greeter/autostart'
6986 ;; because GDM explicitly tells GNOME Session to look there.
6987 ;;
6988 ;; XXX: GNOME Shell should be linked here too, but currently
6989 ;; GNOME Shell depends on GDM.
6990 (add-after 'install 'link-autostart-files
6991 (lambda* (#:key inputs outputs #:allow-other-keys)
6992 (let* ((out (assoc-ref outputs "out"))
6993 (autostart (string-append out "/share/gdm/"
6994 "greeter/autostart"))
6995 (settings (assoc-ref inputs "gnome-settings-daemon")))
6996 (mkdir-p autostart)
6997 (with-directory-excursion autostart
6998 (for-each (lambda (desktop)
6999 (symlink desktop (basename desktop)))
7000 (find-files (string-append settings "/etc/xdg"))))
7001 #t))))))
df12f04a
SB
7002 (native-inputs
7003 `(("dconf" ,dconf)
7004 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7005 ("gobject-introspection" ,gobject-introspection)
7006 ("intltool" ,intltool)
7007 ("itstool" ,itstool)
7008 ("pkg-config" ,pkg-config)
7009 ("xmllint" ,libxml2)))
7010 (inputs
7011 `(("accountsservice" ,accountsservice)
7012 ("check" ,check) ; for testing
7013 ("elogind" ,elogind)
def6d6b6 7014 ("gnome-session" ,gnome-session)
69544798 7015 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
7016 ("gtk+" ,gtk+)
7017 ("iso-codes" ,iso-codes)
7018 ("libcanberra" ,libcanberra)
7019 ("linux-pam" ,linux-pam)))
7020 (synopsis "Display manager for GNOME")
f032d0be 7021 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
7022 (description
7023 "GNOME Display Manager is a system service that is responsible for
7024providing graphical log-ins and managing local and remote displays.")
7025 (license license:gpl2+)))
8e1dd04f
SB
7026
7027(define-public libgtop
7028 (package
7029 (name "libgtop")
015fc036 7030 (version "2.40.0")
8e1dd04f
SB
7031 (source (origin
7032 (method url-fetch)
59487fc2 7033 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7034 (version-major+minor version) "/"
59487fc2 7035 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7036 (sha256
7037 (base32
015fc036 7038 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7039 (build-system gnu-build-system)
7040 (native-inputs
7041 `(("gobject-introspection" ,gobject-introspection)
7042 ("intltool" ,intltool)
7043 ("perl" ,perl)
7044 ("pkg-config" ,pkg-config)))
7045 (propagated-inputs
7046 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7047 (synopsis "Portable system access library")
7048 (home-page "https://www.gnome.org/")
7049 (description
7050 "LibGTop is a library to get system specific data such as CPU and memory
7051usage and information about running processes.")
7052 (license license:gpl2+)))
b96c4260
SB
7053
7054(define-public gnome-bluetooth
7055 (package
7056 (name "gnome-bluetooth")
723afae6 7057 (version "3.32.1")
b96c4260
SB
7058 (source (origin
7059 (method url-fetch)
7060 (uri (string-append "mirror://gnome/sources/" name "/"
7061 (version-major+minor version) "/"
7062 name "-" version ".tar.xz"))
7063 (sha256
7064 (base32
723afae6 7065 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 7066 (build-system meson-build-system)
b96c4260
SB
7067 (native-inputs
7068 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7069 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7070 ("gobject-introspection" ,gobject-introspection)
7071 ("intltool" ,intltool)
7072 ("pkg-config" ,pkg-config)
7073 ("xmllint" ,libxml2)))
7074 (propagated-inputs
7075 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7076 `(("glib" ,glib)
7077 ("gtk+" ,gtk+)))
b96c4260 7078 (inputs
723afae6
KK
7079 `(("eudev" ,eudev)
7080 ("libcanberra" ,libcanberra)
b96c4260
SB
7081 ("libnotify" ,libnotify)))
7082 (synopsis "GNOME Bluetooth subsystem")
7083 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7084 (description
7085 "This package contains tools for managing and manipulating Bluetooth
7086devices using the GNOME desktop.")
7087 (license license:lgpl2.1+)))
b645146f
SB
7088
7089(define-public gnome-control-center
7090 (package
7091 (name "gnome-control-center")
a6938bac 7092 (version "3.32.2")
b645146f
SB
7093 (source (origin
7094 (method url-fetch)
7095 (uri (string-append "mirror://gnome/sources/" name "/"
7096 (version-major+minor version) "/"
7097 name "-" version ".tar.xz"))
7098 (sha256
7099 (base32
a6938bac 7100 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 7101 (build-system meson-build-system)
b645146f 7102 (arguments
59dac026
RW
7103 '(#:glib-or-gtk? #t
7104 #:configure-flags
64c70430
KK
7105 (list "-Dcheese=false"
7106 (string-append "-Dgnome_session_libexecdir="
7107 (assoc-ref %build-inputs "gnome-session")
7108 "/libexec"))
59dac026 7109 #:phases
b645146f
SB
7110 (modify-phases %standard-phases
7111 (add-before 'configure 'patch-paths
7112 (lambda* (#:key inputs #:allow-other-keys)
7113 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7114 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7115 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7116 (nm-applet (assoc-ref inputs "network-manager-applet"))
7117 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7118 (substitute* "panels/datetime/tz.h"
7119 (("/usr/share/zoneinfo/zone.tab")
7120 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7121 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7122 (("/usr/share/locale")
7123 (string-append libc "/share/locale")))
1df38cfc
LC
7124 (substitute* "panels/region/cc-region-panel.c"
7125 (("\"gkbd-keyboard-display")
7126 (string-append "\"" libgnomekbd
7127 "/bin/gkbd-keyboard-display")))
341225ac
LC
7128 (substitute* '("panels/network/net-device-wifi.c"
7129 "panels/network/net-device.c"
7130 "panels/network/connection-editor/net-connection-editor.c")
7131 (("\"nm-connection-editor")
7132 (string-append "\"" nm-applet
7133 "/bin/nm-connection-editor")))
1acd107c
FP
7134 (substitute* '("panels/user-accounts/run-passwd.c")
7135 (("/usr/bin/passwd")
7136 "/run/setuid-programs/passwd"))
64c70430
KK
7137 (substitute* "panels/info/cc-info-overview-panel.c"
7138 (("DATADIR \"/gnome/gnome-version.xml\"")
7139 (string-append "\"" gnome-desktop
7140 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
7141 #t))))))
7142 (native-inputs
7143 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 7144 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
7145 ("intltool" ,intltool)
7146 ("pkg-config" ,pkg-config)
a6938bac
KK
7147 ("xsltproc" ,libxslt)
7148 ;; For tests
7149 ("hicolor-icon-theme" ,hicolor-icon-theme)
7150 ("python-dbusmock" ,python-dbusmock)
7151 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7152 (inputs
7153 `(("accountsservice" ,accountsservice)
7154 ("clutter-gtk" ,clutter-gtk)
7155 ("colord-gtk" ,colord-gtk)
7156 ("cups" ,cups)
7157 ("dconf" ,dconf)
7158 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7159 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7160 ("gnome-bluetooth" ,gnome-bluetooth)
7161 ("gnome-desktop" ,gnome-desktop)
7162 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7163 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7164 ("gnome-session" ,gnome-session)
b645146f
SB
7165 ("gnome-settings-daemon" ,gnome-settings-daemon)
7166 ("grilo" ,grilo)
a6938bac 7167 ("gsound" ,gsound)
b645146f
SB
7168 ("ibus" ,ibus)
7169 ("libcanberra" ,libcanberra)
1df38cfc 7170 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7171 ("libgudev" ,libgudev)
7172 ("libgtop" ,libgtop)
7173 ("libpwquality" ,libpwquality)
982c0b36 7174 ("libsecret" ,libsecret)
b645146f
SB
7175 ("libsoup" ,libsoup)
7176 ("libxml2" ,libxml2)
7177 ("libwacom" ,libwacom)
7178 ("mesa" ,mesa)
7179 ("mit-krb5" ,mit-krb5)
7180 ("modem-manager" ,modem-manager)
7181 ("network-manager-applet" ,network-manager-applet)
7182 ("polkit" ,polkit)
7183 ("pulseaudio" ,pulseaudio)
7184 ("smbclient" ,samba)
7185 ("tzdata" ,tzdata)
982c0b36 7186 ("udisks" ,udisks)
b645146f
SB
7187 ("upower" ,upower)))
7188 (synopsis "Utilities to configure the GNOME desktop")
7189 (home-page "https://www.gnome.org/")
7190 (description
7191 "This package contains configuration applets for the GNOME desktop,
7192allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7193properties, sound setup, desktop theme and background, user interface
7194properties, screen resolution, and other GNOME parameters.")
7195 (license license:gpl2+)))
a4df5756
SB
7196
7197(define-public gnome-shell
7198 (package
7199 (name "gnome-shell")
d5e615ca 7200 (version "3.32.2")
a4df5756
SB
7201 (source (origin
7202 (method url-fetch)
7203 (uri (string-append "mirror://gnome/sources/" name "/"
7204 (version-major+minor version) "/"
7205 name "-" version ".tar.xz"))
7206 (sha256
7207 (base32
d5e615ca 7208 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
7209 (patches (search-patches "gnome-shell-theme.patch"))
7210 (modules '((guix build utils)))
7211 (snippet
7212 #~(begin
a76d0f03
LC
7213 ;; Copy images for use on the GDM log-in screen.
7214 (copy-file #$(file-append %artwork-repository
7215 "/slim/0.x/background.png")
7216 "data/theme/guix-background.png")
45fef894
LC
7217 (copy-file #$(file-append %artwork-repository
7218 "/logo/Guix-horizontal-white.svg")
7219 "data/theme/guix-logo.svg")
a76d0f03 7220 #t))))
2b0c755d 7221 (build-system meson-build-system)
a4df5756 7222 (arguments
08185081
MB
7223 `(#:glib-or-gtk? #t
7224 #:disallowed-references ((,glib "bin")
11e1df56
LC
7225 ,inkscape ,libxslt
7226 ,ruby-sass)
2b0c755d
RW
7227 #:configure-flags
7228 (list "-Dsystemd=false"
7229 ;; Otherwise, the RUNPATH will lack the final path component.
7230 (string-append "-Dc_link_args=-Wl,-rpath="
7231 (assoc-ref %outputs "out")
7232 "/lib/gnome-shell"))
11e1df56 7233
08185081 7234 #:modules ((guix build meson-build-system)
11e1df56
LC
7235 (guix build utils)
7236 (srfi srfi-1))
7237
2b0c755d 7238 #:phases
a4df5756 7239 (modify-phases %standard-phases
2b0c755d 7240 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7241 (lambda* (#:key outputs #:allow-other-keys)
7242 (let* ((out (assoc-ref outputs "out"))
7243 (keysdir (string-append
7244 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7245 (substitute* "meson.build"
7246 (("keysdir =.*")
7247 (string-append "keysdir = '" keysdir "'\n")))
7248 #t)))
ebfe259f
MB
7249 (add-before 'configure 'convert-logo-to-png
7250 (lambda* (#:key inputs #:allow-other-keys)
7251 ;; Convert the logo from SVG to PNG.
7252 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7253 "data/theme/guix-logo.svg")))
ba00235a 7254 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7255 (lambda* (#:key inputs #:allow-other-keys)
7256 (substitute* "js/misc/ibusManager.js"
7257 (("'ibus-daemon'")
7258 (string-append "'" (assoc-ref inputs "ibus")
7259 "/bin/ibus-daemon'")))
d6fda4d3
LC
7260 (substitute* "js/ui/status/keyboard.js"
7261 (("'gkbd-keyboard-display'")
7262 (string-append "'" (assoc-ref inputs "libgnomekbd")
7263 "/bin/gkbd-keyboard-display'")))
2472cdec 7264 #t))
2b0c755d
RW
7265 (add-before 'check 'pre-check
7266 (lambda* (#:key inputs #:allow-other-keys)
7267 ;; Tests require a running X server.
7268 (system "Xvfb :1 &")
7269 (setenv "DISPLAY" ":1")
7270 #t))
7271 (add-after 'install 'wrap-programs
7272 (lambda* (#:key inputs outputs #:allow-other-keys)
7273 (let ((out (assoc-ref outputs "out"))
7274 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7275 (python-path (getenv "PYTHONPATH")))
7276 (wrap-program (string-append out "/bin/gnome-shell")
7277 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7278 ;; FIXME: gnome-shell loads these libraries with unqualified
7279 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7280 ;; alternative might be to patch gnome-shell.
7281 `("LD_LIBRARY_PATH" ":" prefix
7282 ,(map (lambda (pkg)
7283 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7284 '("gdk-pixbuf"
7285 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7286 (for-each
7287 (lambda (prog)
7288 (wrap-program (string-append out "/bin/" prog)
7289 `("PYTHONPATH" ":" prefix (,python-path))
7290 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7291 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7292 #t)))
11e1df56
LC
7293 (replace 'glib-or-gtk-wrap
7294 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7295 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7296 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7297 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7298 ;; phase. Fix that since we don't need these.
7299 (wrap #:inputs (fold alist-delete inputs
7300 '("inkscape" "intltool" "glib:bin"))
7301 #:outputs outputs)))))))
a4df5756
SB
7302 (native-inputs
7303 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7304 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7305 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7306 ("inkscape" ,inkscape)
a4df5756
SB
7307 ("intltool" ,intltool)
7308 ("pkg-config" ,pkg-config)
7309 ("python" ,python)
2b0c755d
RW
7310 ("ruby-sass" ,ruby-sass)
7311 ("sassc" ,sassc)
a76d0f03 7312 ("xsltproc" ,libxslt)
2b0c755d 7313 ;; For tests
0b4504f6 7314 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7315 (inputs
7316 `(("accountsservice" ,accountsservice)
7317 ("caribou" ,caribou)
7318 ("docbook-xsl" ,docbook-xsl)
7319 ("evolution-data-server" ,evolution-data-server)
7320 ("gcr" ,gcr)
7321 ("gdm" ,gdm)
c5db31d4 7322 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
7323 ("gjs" ,gjs)
7324 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7325 ("gnome-desktop" ,gnome-desktop)
7326 ("gnome-settings-daemon" ,gnome-settings-daemon)
7327 ("gst-plugins-base" ,gst-plugins-base)
7328 ("ibus" ,ibus)
7329 ("libcanberra" ,libcanberra)
7330 ("libcroco" ,libcroco)
d6fda4d3 7331 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7332 ("libgweather" ,libgweather)
7333 ("libsoup" ,libsoup)
7334 ("mesa-headers" ,mesa-headers)
7335 ("mutter" ,mutter)
7336 ("network-manager-applet" ,network-manager-applet)
7337 ("polkit" ,polkit)
7338 ("pulseaudio" ,pulseaudio)
7339 ("python-pygobject" ,python-pygobject)
7340 ("startup-notification" ,startup-notification)
7341 ("telepathy-logger" ,telepathy-logger)
7342 ("upower" ,upower)
30e760f0
MB
7343 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7344 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7345 ("librsvg" ,librsvg)
2b0c755d 7346 ("geoclue" ,geoclue)))
a4df5756
SB
7347 (synopsis "Desktop shell for GNOME")
7348 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7349 (description
7350 "GNOME Shell provides core user interface functions for the GNOME desktop,
7351like switching to windows and launching applications.")
7352 (license license:gpl2+)))
c3f29bc9
RS
7353
7354(define-public gtk-vnc
7355 (package
7356 (name "gtk-vnc")
965ff023 7357 (version "0.9.0")
c3f29bc9
RS
7358 (source
7359 (origin
7360 (method url-fetch)
7361 (uri (string-append "mirror://gnome/sources/" name "/"
7362 (version-major+minor version) "/"
7363 name "-" version ".tar.xz"))
7364 (sha256
7365 (base32
965ff023 7366 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7367 (build-system gnu-build-system)
7368 (arguments
7369 '(#:configure-flags '("--with-gtk=3.0")))
7370 (propagated-inputs
7371 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7372 (inputs
7373 `(("cyrus-sasl" ,cyrus-sasl)
7374 ("gnutls" ,gnutls)
7375 ("libgcrypt" ,libgcrypt)
7376 ("pulseaudio" ,pulseaudio)))
7377 (native-inputs
7378 `(("glib:bin" ,glib "bin")
7379 ("gobject-introspection" ,gobject-introspection)
7380 ("intltool" ,intltool)
7381 ("pkg-config" ,pkg-config)
2f17e939 7382 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7383 ("vala" ,vala)))
7384 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7385 (synopsis "VNC viewer widget for GTK+")
7386 (description
7387 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7388applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7389GTK-VNC implements client side RFB protocol and authentication extensions such
7390as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7391 (license license:lgpl2.1+)))
8b877545 7392
dc69fe18
MW
7393(define-public gnome-autoar
7394 (package
7395 (name "gnome-autoar")
c7da8510 7396 (version "0.2.3")
dc69fe18
MW
7397 (source (origin
7398 (method url-fetch)
7399 (uri (string-append "mirror://gnome/sources/" name "/"
7400 (version-major+minor version) "/"
7401 name "-" version ".tar.xz"))
7402 (sha256
7403 (base32
c7da8510 7404 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
7405 (build-system glib-or-gtk-build-system)
7406 (native-inputs
7407 `(("gnome-common" ,gnome-common)
7408 ("gobject-introspection" ,gobject-introspection)
7409 ("pkg-config" ,pkg-config)))
7410 (propagated-inputs
7411 `(("libarchive" ,libarchive))) ; XXX document why
7412 (inputs
0a6e9e13 7413 `(("gtk+" ,gtk+)))
dc69fe18
MW
7414 (synopsis "Archives integration support for GNOME")
7415 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7416 (description
7417 "GNOME Autoar is a library which makes creating and extracting archives
7418easy, safe, and automatic.")
7419 (license license:lgpl2.1+)))
7420
b64e217f
MW
7421(define-public tracker
7422 (package
7423 (name "tracker")
63db190a 7424 (version "2.3.2")
b64e217f
MW
7425 (source (origin
7426 (method url-fetch)
b5b0fd23 7427 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7428 (version-major+minor version) "/"
b5b0fd23 7429 "tracker-" version ".tar.xz"))
b64e217f
MW
7430 (sha256
7431 (base32
63db190a 7432 "1nzbnvwwsk6kv6kqbxwlz8vk70l9ai6b4r9qypw51vp4qy72ny54"))))
5ada561c 7433 (build-system meson-build-system)
c8bdf589 7434 (arguments
5ada561c
KK
7435 `(#:glib-or-gtk? #t
7436 #:configure-flags
7437 ;; Otherwise, the RUNPATH will lack the final path component.
7438 (list (string-append "-Dc_link_args=-Wl,-rpath="
7439 (assoc-ref %outputs "out") "/lib:"
7440 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7441 #:phases
c8bdf589 7442 (modify-phases %standard-phases
c8bdf589
RW
7443 (add-before 'check 'pre-check
7444 (lambda _
63db190a
PN
7445 ;; Some tests expect to write to $HOME.
7446 (setenv "HOME" "/tmp")
c8bdf589 7447 #t)))))
b64e217f 7448 (native-inputs
5ada561c 7449 `(("glib:bin" ,glib "bin")
b64e217f 7450 ("gobject-introspection" ,gobject-introspection)
5ada561c 7451 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7452 ("intltool" ,intltool)
7453 ("pkg-config" ,pkg-config)
7454 ("vala" ,vala)))
7455 (inputs
63db190a 7456 `(("dbus" ,dbus)
44ed6284 7457 ("sqlite" ,sqlite)
b64e217f 7458 ("libxml2" ,libxml2)
63db190a 7459 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7460 ("json-glib" ,json-glib)
63db190a 7461 ("libsoup" ,libsoup)))
b64e217f
MW
7462 (synopsis "Metadata database, indexer and search tool")
7463 (home-page "https://wiki.gnome.org/Projects/Tracker")
7464 (description
63db190a
PN
7465 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7466
7467It is a middleware component aimed at desktop application developers who want
7468their apps to browse and search user content. It's not designed to be used
7469directly by desktop users, but it provides a commandline tool named
7470@command{tracker} for the adventurous.
7471
7472Tracker allows your application to instantly perform full-text searches across
7473all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7474example. This is achieved by indexing the user's home directory in the
7475background.
7476
7477Tracker also allows your application to query and list content that the user
7478has stored. For example, GNOME Music displays all the music files that are
7479found by Tracker. This means that GNOME Music doesn't need to maintain a
7480database of its own.
7481
7482If you need to go beyond simple searches, Tracker is also a linked data
7483endpoint and it understands SPARQL. ")
7484 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7485 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7486 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7487 (license (list license:gpl2+
63db190a
PN
7488 license:bsd-3
7489 license:lgpl2.1+))))
b64e217f 7490
03be9874
KK
7491(define-public tracker-miners
7492 (package
7493 (name "tracker-miners")
852fa605 7494 (version "2.3.2")
03be9874
KK
7495 (source (origin
7496 (method url-fetch)
7497 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7498 (version-major+minor version)
7499 "/tracker-miners-" version ".tar.xz"))
7500 (sha256
7501 (base32
852fa605 7502 "1kizavw9gbdjkw4wykgv0fcl2y6fj788nycx9p4byn6ylb1277h6"))))
03be9874
KK
7503 (build-system meson-build-system)
7504 (arguments
7505 `(#:glib-or-gtk? #t
7506 #:configure-flags
7507 (list "-Dminer_rss=false" ; libgrss is required.
7508 ;; Ensure the RUNPATH contains all installed library locations.
7509 (string-append "-Dc_link_args=-Wl,-rpath="
7510 (assoc-ref %outputs "out")
7511 "/lib/tracker-miners-2.0")
7512 ;; TODO: Enable functional tests. Currently, the following error
7513 ;; appears:
7514 ;; Exception: The functional tests require DConf to be the default
7515 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7516 "-Dfunctional_tests=false")))
7517 (native-inputs
7518 `(("dbus" ,dbus)
7519 ("intltool" ,intltool)
7520 ("glib:bin" ,glib "bin")
7521 ("gobject-introspection" ,gobject-introspection)
7522 ("pkg-config" ,pkg-config)
7523 ("python-pygobject" ,python-pygobject)))
7524 (inputs
7525 `(("exempi" ,exempi)
7526 ("ffmpeg" ,ffmpeg)
7527 ("flac" ,flac)
7528 ("giflib" ,giflib)
7529 ("glib" ,glib)
7530 ("gstreamer" ,gstreamer)
7531 ("icu4c" ,icu4c)
7532 ("libcue" ,libcue)
7533 ("libexif" ,libexif)
7534 ("libgsf" ,libgsf)
7535 ("libgxps" ,libgxps)
7536 ("libiptcdata" ,libiptcdata)
4bd428a7 7537 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7538 ("libosinfo" ,libosinfo)
7539 ("libpng" ,libpng)
7540 ("libseccomp" ,libseccomp)
7541 ("libtiff" ,libtiff)
7542 ("libvorbis" ,libvorbis)
7543 ("libxml2" ,libxml2)
7544 ("poppler" ,poppler)
7545 ("taglib" ,taglib)
7546 ("totem-pl-parser" ,totem-pl-parser)
7547 ("tracker" ,tracker)
7548 ("upower" ,upower)
7549 ("zlib" ,zlib)))
b64e217f
MW
7550 (synopsis "Metadata database, indexer and search tool")
7551 (home-page "https://wiki.gnome.org/Projects/Tracker")
7552 (description
7553 "Tracker is an advanced framework for first class objects with associated
7554metadata and tags. It provides a one stop solution for all metadata, tags,
7555shared object databases, search tools and indexing.")
7556 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7557 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7558 (license (list license:gpl2+
7559 license:lgpl2.1+
7560 license:lgpl2.0+))))
7561
8b877545
RS
7562(define-public nautilus
7563 (package
7564 (name "nautilus")
d682c599 7565 (version "3.32.3")
8b877545
RS
7566 (source (origin
7567 (method url-fetch)
7568 (uri (string-append "mirror://gnome/sources/" name "/"
7569 (version-major+minor version) "/"
7570 name "-" version ".tar.xz"))
7571 (sha256
7572 (base32
d682c599 7573 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7574 (build-system meson-build-system)
8b877545 7575 (arguments
35e2d0cf 7576 '(#:glib-or-gtk? #t
8b877545
RS
7577 ;; XXX: FAIL: check-nautilus
7578 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7579 #:tests? #f))
7580 (native-inputs
35e2d0cf
R
7581 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7582 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7583 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7584 ("gobject-introspection" ,gobject-introspection)
7585 ("intltool" ,intltool)
7586 ("pkg-config" ,pkg-config)))
8b877545 7587 (inputs
8b877545 7588 `(("dconf" ,dconf)
caf6c363 7589 ("gexiv2" ,gexiv2)
dd05e731 7590 ("gvfs" ,gvfs)
8b877545
RS
7591 ("exempi" ,exempi)
7592 ("gnome-desktop" ,gnome-desktop)
09d88905 7593 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7594 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7595 ("libseccomp" ,libseccomp)
35e2d0cf 7596 ("libselinux" ,libselinux)
09d88905 7597 ("tracker" ,tracker)
3cafb9d4 7598 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7599 ;; XXX: gtk+ is required by libnautilus-extension.pc
7600 ;;
7601 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7602 ;; package. See:
7603 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7604 ("gtk+" ,gtk+)
8b877545
RS
7605 ("libexif" ,libexif)
7606 ("libxml2" ,libxml2)))
7607 (synopsis "File manager for GNOME")
7608 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7609 (description
7610 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7611design and behaviour, giving the user a simple way to navigate and manage its
7612files.")
7613 (license license:gpl2+)))
3c697ffd
JR
7614
7615(define-public baobab
7616 (package
7617 (name "baobab")
e0c5f20c 7618 (version "3.32.0")
3c697ffd
JR
7619 (source (origin
7620 (method url-fetch)
7621 (uri (string-append
7622 "mirror://gnome/sources/" name "/"
7623 (version-major+minor version) "/"
7624 name "-" version ".tar.xz"))
7625 (sha256
7626 (base32
e0c5f20c 7627 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7628 (build-system meson-build-system)
7629 (arguments
7630 '(#:glib-or-gtk? #t))
3c697ffd
JR
7631 (native-inputs
7632 `(("intltool" ,intltool)
7633 ("pkg-config" ,pkg-config)
d233d373
RJ
7634 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7635 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7636 ("itstool" ,itstool)
7637 ("xmllint" ,libxml2)
7638 ("glib" ,glib "bin")
7639 ("vala" ,vala)))
7640 (inputs
7641 `(("gtk+" ,gtk+)))
7642 (synopsis "Disk usage analyzer for GNOME")
7643 (description
7644 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7645usage in the GNOME desktop environment. It can easily scan device volumes or
7646a specific user-requested directory branch (local or remote). Once the scan
7647is complete it provides a graphical representation of each selected folder.")
7648 (home-page "https://wiki.gnome.org/Apps/Baobab")
7649 (license license:gpl2+)))
dc050251 7650
fdba447c
RS
7651(define-public gnome-backgrounds
7652 (package
7653 (name "gnome-backgrounds")
e04e8a8c 7654 (version "3.32.0")
fdba447c
RS
7655 (source
7656 (origin
7657 (method url-fetch)
7658 (uri (string-append "mirror://gnome/sources/" name "/"
7659 (version-major+minor version) "/"
7660 name "-" version ".tar.xz"))
7661 (sha256
7662 (base32
e04e8a8c 7663 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7664 (build-system meson-build-system)
fdba447c
RS
7665 (native-inputs
7666 `(("intltool" ,intltool)))
e04e8a8c 7667 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7668 (synopsis "Background images for the GNOME desktop")
7669 (description
7670 "GNOME backgrounds package contains a collection of graphics files which
7671can be used as backgrounds in the GNOME Desktop environment. Additionally,
7672the package creates the proper framework and directory structure so that you
7673can add your own files to the collection.")
7674 (license (list license:gpl2+
7675 license:cc-by2.0
7676 license:cc-by-sa2.0
7677 license:cc-by-sa3.0))))
7678
b784b1a9
RS
7679(define-public gnome-screenshot
7680 (package
7681 (name "gnome-screenshot")
6acf4033 7682 (version "3.32.0")
b784b1a9
RS
7683 (source
7684 (origin
7685 (method url-fetch)
7686 (uri (string-append "mirror://gnome/sources/" name "/"
7687 (version-major+minor version) "/"
7688 name "-" version ".tar.xz"))
7689 (sha256
7690 (base32
6acf4033 7691 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7692 (build-system meson-build-system)
b784b1a9
RS
7693 (native-inputs
7694 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7695 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7696 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7697 ("intltool" ,intltool)
8356aefa 7698 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7699 ("pkg-config" ,pkg-config)))
7700 (inputs
7701 `(("gtk+" ,gtk+)
7702 ("libcanberra" ,libcanberra)
7703 ("libx11" ,libx11)
7704 ("libxext" ,libxext)))
676e7cb4 7705 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7706 (synopsis "Take pictures of your screen")
7707 (description
7708 "GNOME Screenshot is a utility used for taking screenshots of the entire
7709screen, a window or a user defined area of the screen, with optional
7710beautifying border effects.")
7711 (license license:gpl2+)))
7712
66d59111
RS
7713(define-public dconf-editor
7714 (package
7715 (name "dconf-editor")
66261451 7716 (version "3.32.0")
66d59111
RS
7717 (source
7718 (origin
7719 (method url-fetch)
7720 (uri (string-append "mirror://gnome/sources/" name "/"
7721 (version-major+minor version) "/"
7722 name "-" version ".tar.xz"))
7723 (sha256
7724 (base32
66261451 7725 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7726 (build-system meson-build-system)
86f2124b
LC
7727 (arguments
7728 '(#:phases (modify-phases %standard-phases
7729 (add-before 'configure 'set-glib-minimum-version
7730 (lambda _
7731 ;; Change the minimum required GLib version so that
7732 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7733 ;; do that, it complains that "55" is not an even
7734 ;; number. See <https://bugs.gnu.org/37503>.
7735 (substitute* "editor/meson.build"
7736 (("2\\.55\\.1") "2.60.0"))
7737 #t)))))
66d59111
RS
7738 (native-inputs
7739 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7740 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7741 ("intltool" ,intltool)
294ff39d
RW
7742 ("pkg-config" ,pkg-config)
7743 ("vala" ,vala)))
66d59111
RS
7744 (inputs
7745 `(("dconf" ,dconf)
7746 ("gtk+" ,gtk+)
7747 ("libxml2" ,libxml2)))
7748 (home-page "https://git.gnome.org/browse/dconf-editor")
7749 (synopsis "Graphical editor for GNOME's dconf configuration system")
7750 (description
7751 "Dconf-editor is a graphical tool for browsing and editing the dconf
7752configuration system for GNOME. It allows users to configure desktop
7753software that do not provide their own configuration interface.")
7754 (license license:lgpl2.1+)))
7755
96d36f38
AW
7756(define-public gnome-default-applications
7757 (package
7758 (name "gnome-default-applications")
7759 (version "0")
7760 (build-system trivial-build-system)
7761 (source #f)
7762 (propagated-inputs
8ad4f0aa
LC
7763 `(("nautilus" ,nautilus)
7764 ("evince" ,evince)))
96d36f38
AW
7765 (arguments
7766 `(#:modules ((guix build utils))
7767 #:builder
7768 (begin
7769 (use-modules (guix build utils))
7770 (let* ((out (assoc-ref %outputs "out"))
7771 (apps (string-append out "/share/applications")))
7772 (mkdir-p apps)
7773 (call-with-output-file (string-append apps "/defaults.list")
7774 (lambda (port)
7775 (format port "[Default Applications]\n")
8ad4f0aa
LC
7776 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7777 (format port "application/pdf=evince.desktop\n")
7778 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7779 #t))))
7780 (synopsis "Default MIME type associations for the GNOME desktop")
7781 (description
7782 "Given many installed packages which might handle a given MIME type, a
7783user running the GNOME desktop probably has some preferences: for example,
7784that folders be opened by default by the Nautilus file manager, not the Baobab
7785disk usage analyzer. This package establishes that set of default MIME type
7786associations for GNOME.")
7787 (license license:gpl3+)
7788 (home-page #f)))
7789
3f1ed953
RG
7790(define-public libgovirt
7791 (package
7792 (name "libgovirt")
7793 (version "0.3.6")
7794 (source (origin
7795 (method url-fetch)
7796 (uri (string-append "mirror://gnome/sources/" name "/"
7797 (version-major+minor version) "/"
7798 name "-" version ".tar.xz"))
7799 (sha256
7800 (base32
7801 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7802 (build-system glib-or-gtk-build-system)
7803 (native-inputs
7804 `(("gettext" ,gettext-minimal)
7805 ("glib:bin" ,glib "bin")
7806 ("gobject-introspection" ,gobject-introspection)
7807 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7808 ("gtk+:bin" ,gtk+ "bin")
7809 ("pkg-config" ,pkg-config)))
7810 (inputs
7811 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7812 ("librest" ,rest)))
7813 (synopsis "GoVirt Library")
7814 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7815 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7816 (license license:gpl2+)))
7817
8672e5e9
RG
7818(define-public gnome-weather
7819 (package
7820 (name "gnome-weather")
7821 (version "3.34.0")
7822 (source (origin
7823 (method url-fetch)
7824 (uri (string-append "mirror://gnome/sources/" name "/"
7825 (version-major+minor version) "/"
7826 name "-" version ".tar.xz"))
7827 (sha256
7828 (base32
7829 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7830 (build-system meson-build-system)
7831 (native-inputs
7832 `(("gettext" ,gettext-minimal)
7833 ("glib:bin" ,glib "bin")
7834 ("gobject-introspection" ,gobject-introspection)
7835 ("gtk+:bin" ,gtk+ "bin")
7836 ("pkg-config" ,pkg-config)))
7837 (inputs
7838 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7839 ("appstream-glib" ,appstream-glib)
7840 ("geoclue" ,geoclue)
7841 ("gdk-pixbuf" ,gdk-pixbuf)
7842 ("gjs" ,gjs)
7843 ("gnome-desktop" ,gnome-desktop)
7844 ("libgweather" ,libgweather)))
7845 (synopsis "Weather monitoring for GNOME desktop")
7846 (description "GNOME Weather is a small application that allows you to
7847monitor the current weather conditions for your city, or anywhere in the
7848world.")
7849 (home-page "https://wiki.gnome.org/Apps/Weather")
7850 (license license:gpl2+)))
7851
dc050251
SB
7852(define-public gnome
7853 (package
7854 (name "gnome")
7855 (version (package-version gnome-shell))
7856 (source #f)
7857 (build-system trivial-build-system)
e3cfef22 7858 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7859 (propagated-inputs
8d8c6bff 7860 ;; TODO: Add or remove packages according to:
a8cda7f5 7861 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7862 `(
8d8c6bff 7863 ;; GNOME-Core-OS-Services
7922b6f7 7864 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7865 ("network-manager" ,network-manager)
7866 ("packagekit" ,packagekit)
7867 ("upower" ,upower)
7868 ;; GNOME-Core-Shell
7869 ("adwaita-icon-theme" ,adwaita-icon-theme)
7870 ("gdm" ,gdm)
7871 ("glib-networking" ,glib-networking)
7872 ("gnome-backgrounds" ,gnome-backgrounds)
7873 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7874 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7875 ("gnome-control-center" ,gnome-control-center)
7876 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7877 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 7878 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7879 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7880 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7881 ("gnome-session" ,gnome-session)
7882 ("gnome-settings-daemon" ,gnome-settings-daemon)
7883 ("gnome-shell-extensions" ,gnome-shell-extensions)
7884 ("gnome-shell" ,gnome-shell)
7885 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7886 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7887 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7888 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7889 ("gvfs" ,gvfs)
7890 ("mutter" ,mutter)
7891 ("orca" ,orca)
d36fa50f
RG
7892 ("rygel" ,rygel)
7893 ("sushi" ,sushi)
8d8c6bff
RG
7894 ;; GNOME-Core-Utilities
7895 ("baobab" ,baobab)
7896 ("cheese" ,cheese)
7897 ("eog" ,eog)
7898 ("epiphany" ,epiphany)
7899 ("evince" ,evince)
7900 ("file-roller" ,file-roller)
7901 ("gedit" ,gedit)
d36fa50f 7902 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7903 ("gnome-calculator" ,gnome-calculator)
7904 ("gnome-calendar" ,gnome-calendar)
7905 ("gnome-characters" ,gnome-characters)
7906 ("gnome-clocks" ,gnome-clocks)
7907 ("gnome-contacts" ,gnome-contacts)
7908 ("gnome-disk-utility" ,gnome-disk-utility)
7909 ("gnome-font-viewer" ,gnome-font-viewer)
7910 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7911 ; TODO: ("gnome-music" ,gnome-music)
7912 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7913 ("gnome-screenshot" ,gnome-screenshot)
7914 ("gnome-system-monitor" ,gnome-system-monitor)
7915 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7916 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7917 ("nautilus" ,nautilus)
7918 ("simple-scan" ,simple-scan)
7919 ("totem" ,totem)
7922b6f7
RG
7920 ("yelp" ,yelp)
7921 ;; Others
7922 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
7923 ("gnome-online-accounts" ,gnome-online-accounts)
7924
7925 ;; Packages not part of GNOME proper but that are needed for a good
7926 ;; experience. See <https://bugs.gnu.org/39646>.
7927 ;; XXX: Find out exactly which ones are needed and why.
7928 ("font-cantarell" ,font-cantarell)
7929 ("font-dejavu" ,font-dejavu)
7930 ("at-spi2-core" ,at-spi2-core)
7931 ("dbus" ,dbus)
7932 ("dconf" ,dconf)
7933 ("desktop-file-utils" ,desktop-file-utils)
7934 ("gnome-default-applications" ,gnome-default-applications)
7935 ("gnome-themes-standard" ,gnome-themes-standard)
7936 ("gst-plugins-base" ,gst-plugins-base)
7937 ("gst-plugins-good" ,gst-plugins-good)
7938 ("gucharmap" ,gucharmap)
7939 ("pinentry-gnome3" ,pinentry-gnome3)
7940 ("pulseaudio" ,pulseaudio)
7941 ("shared-mime-info" ,shared-mime-info)
7942 ("system-config-printer" ,system-config-printer)
7943 ("xdg-user-dirs" ,xdg-user-dirs)
7944 ("yelp" ,yelp)
7945 ("zenity" ,zenity)))
fe4e698d 7946 (synopsis "The GNU desktop environment")
dc050251
SB
7947 (home-page "https://www.gnome.org/")
7948 (description
fe4e698d
LC
7949 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7950applications for browsing the web, editing text and images, creating
7951documents and diagrams, playing media, scanning, and much more.")
dc050251 7952 (license license:gpl2+)))
4a526711
DT
7953
7954(define-public byzanz
7955 ;; The last stable release of Byzanz was in 2011, but there have been many
7956 ;; useful commits made to the Byzanz repository since then that it would be
7957 ;; silly to use such an old release.
7958 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7959 (package
7960 (name "byzanz")
7961 (version (string-append "0.2-1." (string-take commit 7)))
7962 (source (origin
7963 (method git-fetch)
7964 (uri (git-reference
5f13bf09 7965 (url "https://git.gnome.org/browse/byzanz")
4a526711 7966 (commit commit)))
5a6527e4 7967 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7968 (sha256
7969 (base32
7970 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7971 (build-system glib-or-gtk-build-system)
7972 (arguments
7973 '(#:phases
7974 (modify-phases %standard-phases
778d6b52 7975 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
7976 (lambda _
7977 ;; The build system cleverly detects that we're not building from
7978 ;; a release tarball and turns on -Werror for GCC.
7979 ;; Unsurprisingly, there is a warning during compilation that
7980 ;; causes the build to fail unnecessarily, so we remove the flag.
7981 (substitute* '("configure.ac")
7982 (("-Werror") ""))
778d6b52 7983 #t)))))
4a526711
DT
7984 (native-inputs
7985 `(("autoconf" ,autoconf)
7986 ("automake" ,automake)
7987 ("gnome-common" ,gnome-common)
7988 ("intltool" ,intltool)
7989 ("libtool" ,libtool)
7990 ("pkg-config" ,pkg-config)
7991 ("which" ,which)))
7992 (inputs
7993 `(("glib" ,glib)
7994 ("gstreamer" ,gstreamer)
7995 ("gst-plugins-base" ,gst-plugins-base)
7996 ("gtk+" ,gtk+)))
7997 (synopsis "Desktop recording program")
7998 (description "Byzanz is a simple desktop recording program with a
7999command-line interface. It can record part or all of an X display for a
8000specified duration and save it as a GIF encoded animated image file.")
8001 (home-page "https://git.gnome.org/browse/byzanz")
8002 (license license:gpl2+))))
3a9a4c51 8003
0ec171ec
MS
8004(define-public gsound
8005 (package
8006 (name "gsound")
8007 (version "1.0.2")
8008 (source (origin
8009 (method url-fetch)
8010 (uri (string-append "mirror://gnome/sources/" name "/"
8011 (version-major+minor version) "/"
8012 name "-" version ".tar.xz"))
8013 (sha256
8014 (base32
8015 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8016 (build-system glib-or-gtk-build-system)
8017 (native-inputs
8018 `(("pkg-config" ,pkg-config)
8019 ("gobject-introspection" ,gobject-introspection)
8020 ("vala" ,vala)))
8021 (inputs
8022 `(("glib" ,glib)
8023 ("libcanberra" ,libcanberra)))
8024 (home-page "https://wiki.gnome.org/Projects/GSound")
8025 (synopsis "GObject wrapper for libcanberra")
8026 (description
8027 "GSound is a small library for playing system sounds. It's designed to be
8028used via GObject Introspection, and is a thin wrapper around the libcanberra C
8029library.")
8030 (license license:lgpl2.1+)))
8031
3a9a4c51
RS
8032(define-public libzapojit
8033 (package
8034 (name "libzapojit")
8035 (version "0.0.3")
8036 (source (origin
8037 (method url-fetch)
8038 (uri (string-append "mirror://gnome/sources/" name "/"
8039 (version-major+minor version) "/"
8040 name "-" version ".tar.xz"))
8041 (sha256
8042 (base32
8043 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8044 (build-system gnu-build-system)
8045 (native-inputs
8046 `(("gobject-introspection" ,gobject-introspection)
8047 ("intltool" ,intltool)
8048 ("pkg-config" ,pkg-config)))
8049 (inputs
14c297fd 8050 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8051 ("json-glib" ,json-glib)
8052 ("rest" ,rest)))
8053 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8054 (synopsis "Library for accessing SkyDrive and Hotmail")
8055 (description
8056 "Libzapojit is a GLib-based library for accessing online service APIs of
8057Microsoft SkyDrive and Hotmail, using their REST protocols.")
8058 (license license:lgpl2.1+)))
9365ee1c 8059
60e2a9ae
MS
8060(define-public gnome-clocks
8061 (package
8062 (name "gnome-clocks")
c76d0dbc 8063 (version "3.32.0")
60e2a9ae
MS
8064 (source (origin
8065 (method url-fetch)
8066 (uri (string-append "mirror://gnome/sources/" name "/"
8067 (version-major+minor version) "/"
8068 name "-" version ".tar.xz"))
8069 (sha256
8070 (base32
c76d0dbc 8071 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
8072 (build-system meson-build-system)
8073 (arguments
8074 '(#:glib-or-gtk? #t))
8075 (native-inputs
8076 `(("vala" ,vala)
8077 ("pkg-config" ,pkg-config)
8078 ("glib" ,glib "bin") ; for glib-compile-resources
8079 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8080 ("desktop-file-utils" ,desktop-file-utils)
8081 ("gettext" ,gettext-minimal)
8082 ("itstool" ,itstool)))
8083 (inputs
8084 `(("glib" ,glib)
8085 ("gtk+" ,gtk+)
8086 ("gsound" ,gsound)
8087 ("geoclue" ,geoclue)
8088 ("geocode-glib" ,geocode-glib)
8089 ("libgweather" ,libgweather)
8090 ("gnome-desktop" ,gnome-desktop)))
8091 (home-page "https://wiki.gnome.org/Apps/Clocks")
8092 (synopsis "GNOME's clock application")
8093 (description
8094 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8095desktop. It supports world clock, stop watch, alarms, and count down timer.")
8096 (license license:gpl3+)))
8097
3c474897
KY
8098(define-public gnome-calendar
8099 (package
8100 (name "gnome-calendar")
339b59bf 8101 (version "3.32.2")
3c474897
KY
8102 (source (origin
8103 (method url-fetch)
8104 (uri (string-append "mirror://gnome/sources/" name "/"
8105 (version-major+minor version) "/"
8106 name "-" version ".tar.xz"))
8107 (sha256
8108 (base32
339b59bf 8109 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
8110 (build-system meson-build-system)
8111 (arguments
8112 '(#:glib-or-gtk? #t
8113 ;; gnome-calendar has to be installed before the tests can be run
8114 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8115 #:tests? #f))
3c474897 8116 (native-inputs
a49d3e37
MS
8117 `(("gettext" ,gettext-minimal)
8118 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8119 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
8120 ("pkg-config" ,pkg-config)))
8121 (inputs
a49d3e37 8122 `(("evolution-data-server" ,evolution-data-server)
14c297fd 8123 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8124 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8125 ("libdazzle" ,libdazzle)
b63c06f1 8126 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8127 ("libgweather" ,libgweather)
8128 ("geoclue" ,geoclue)))
3c474897
KY
8129 (home-page "https://wiki.gnome.org/Apps/Calendar")
8130 (synopsis "GNOME's calendar application")
8131 (description
8132 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8133desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8134 (license license:gpl3+)))
8135
57b14665
MS
8136(define-public gnome-todo
8137 (package
8138 (name "gnome-todo")
9f3c6c88 8139 (version "3.28.1")
57b14665
MS
8140 (source (origin
8141 (method url-fetch)
8142 (uri (string-append "mirror://gnome/sources/" name "/"
8143 (version-major+minor version) "/"
8144 name "-" version ".tar.xz"))
8145 (sha256
8146 (base32
9f3c6c88 8147 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
8148 (build-system meson-build-system)
8149 (arguments
8150 '(#:glib-or-gtk? #t
8151 #:phases (modify-phases %standard-phases
8152 (add-after
8153 'install 'wrap-gnome-todo
8154 (lambda* (#:key inputs outputs #:allow-other-keys)
8155 (let ((out (assoc-ref outputs "out"))
8156 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8157 (python-path (getenv "PYTHONPATH")))
8158 (wrap-program (string-append out "/bin/gnome-todo")
8159 ;; XXX: gi plugins are broken.
8160 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8161 ;; For plugins.
8162 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8163 `("PYTHONPATH" ":" prefix (,python-path))))
8164 #t)))))
8165 (native-inputs
8166 `(("gettext" ,gettext-minimal)
8167 ("gobject-introspection" ,gobject-introspection)
8168 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8169 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8170 ("pkg-config" ,pkg-config)))
8171 (inputs
8172 `(("rest" ,rest) ; For Todoist plugin
8173 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8174 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8175 ("libical" ,libical)
8176 ("libpeas" ,libpeas)
8177 ("python-pygobject" ,python-pygobject)
8178 ("evolution-data-server" ,evolution-data-server)
14c297fd 8179 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8180 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8181 (home-page "https://wiki.gnome.org/Apps/Todo")
8182 (synopsis "GNOME's ToDo Application")
8183 (description
8184 "GNOME To Do is a simplistic personal task manager designed to perfectly
8185fit the GNOME desktop.")
8186 (license license:gpl3+)))
8187
ab179eaf
SB
8188(define-public gnome-dictionary
8189 (package
8190 (name "gnome-dictionary")
cf81ddef 8191 (version "3.26.1")
ab179eaf
SB
8192 (source (origin
8193 (method url-fetch)
8194 (uri (string-append "mirror://gnome/sources/" name "/"
8195 (version-major+minor version) "/"
8196 name "-" version ".tar.xz"))
8197 (sha256
8198 (base32
cf81ddef
LC
8199 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8200 (build-system meson-build-system)
2776b5d5
MB
8201 (arguments '(#:glib-or-gtk? #t
8202 #:phases (modify-phases %standard-phases
8203 (add-after 'unpack 'patch-install-script
8204 (lambda _
8205 ;; This script attempts to compile glib schemas
8206 ;; and create an empty MIME database. We do
8207 ;; that elsewhere, so prevent it from running.
8208 (substitute* "build-aux/post-install.sh"
8209 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8210 #t)))))
ab179eaf
SB
8211 (native-inputs
8212 `(("glib:bin" ,glib "bin")
8213 ("gobject-introspection" ,gobject-introspection)
8214 ("intltool" ,intltool)
8215 ("itstool" ,itstool)
8216 ("pkg-config" ,pkg-config)
8217 ("xmllint" ,libxml2)))
8218 (inputs
8219 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8220 ("gtk+" ,gtk+)))
8221 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8222 (synopsis "Look up words in dictionary sources")
8223 (description
8224 "GNOME Dictionary can look for the definition or translation of a word in
8225existing databases over the internet.")
8226 (license license:gpl3+)))
8227
d13f3a03 8228(define-public gnome-tweaks
9365ee1c 8229 (package
d13f3a03 8230 (name "gnome-tweaks")
652af676 8231 (version "3.32.0")
9365ee1c
JN
8232 (source (origin
8233 (method url-fetch)
d13f3a03 8234 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8235 (version-major+minor version) "/"
d13f3a03
RW
8236 "gnome-tweaks-" version ".tar.xz"))
8237 (patches
8238 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8239 (sha256
8240 (base32
652af676 8241 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 8242 (build-system meson-build-system)
9365ee1c 8243 (arguments
d13f3a03
RW
8244 `(#:glib-or-gtk? #t
8245 #:configure-flags '("-Dlocalstatedir=/tmp"
8246 "-Dsysconfdir=/tmp")
9365ee1c 8247 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8248 ,@%meson-build-system-modules)
8249 #:phases
8250 (modify-phases %standard-phases
8251 (add-after 'install 'wrap
8252 (@@ (guix build python-build-system) wrap))
8253 (add-after 'wrap 'wrap-gi-typelib
8254 (lambda* (#:key inputs outputs #:allow-other-keys)
8255 (let ((out (assoc-ref outputs "out"))
8256 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8257 (wrap-program (string-append out "/bin/gnome-tweaks")
8258 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8259 #t)))))
9365ee1c 8260 (native-inputs
c7fc414e
RH
8261 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8262 ("intltool" ,intltool)
9365ee1c
JN
8263 ("pkg-config" ,pkg-config)))
8264 (inputs
c7fc414e
RH
8265 `(("gnome-desktop" ,gnome-desktop)
8266 ("gtk+" ,gtk+)
9365ee1c
JN
8267 ("gobject-introspection" ,gobject-introspection)
8268 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
8269 ("libnotify" ,libnotify)
8270 ("libsoup" ,libsoup)
8271 ("nautilus" ,nautilus)
8272 ("python" ,python)
8273 ("python-pygobject" ,python-pygobject)))
9365ee1c 8274 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8275 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8276 (description
d13f3a03 8277 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8278GNOME 3. This includes things like the fonts used in user interface elements,
8279alternative user interface themes, changes in window management behavior,
8280GNOME Shell appearance and extension, etc.")
8281 (license license:gpl3+)))
813f814a 8282
d13f3a03
RW
8283;; This package has been renamed by upstream.
8284(define-public gnome-tweak-tool
8285 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8286
32ac717c
DT
8287(define-public gnome-shell-extensions
8288 (package
8289 (name "gnome-shell-extensions")
ae4c05e0 8290 (version "3.32.1")
32ac717c
DT
8291 (source (origin
8292 (method url-fetch)
8293 (uri (string-append "mirror://gnome/sources/" name "/"
8294 (version-major+minor version) "/"
8295 name "-" version ".tar.xz"))
8296 (sha256
8297 (base32
ae4c05e0 8298 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 8299 (build-system meson-build-system)
32ac717c 8300 (arguments
100f625b 8301 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8302 (native-inputs
c9ea8873
LP
8303 `(("glib:bin" ,glib "bin")
8304 ("intltool" ,intltool)
32ac717c
DT
8305 ("pkg-config" ,pkg-config)))
8306 (propagated-inputs
c9ea8873 8307 `(("glib" ,glib)))
32ac717c
DT
8308 (synopsis "Extensions for GNOME Shell")
8309 (description "GNOME Shell extensions modify and extend GNOME Shell
8310functionality and behavior.")
8311 (home-page "https://extensions.gnome.org/")
8312 (license license:gpl3+)))
8313
813f814a
DT
8314(define-public arc-theme
8315 (package
8316 (name "arc-theme")
37781323 8317 (version "20190917")
813f814a 8318 (source (origin
a18f8eaf
BH
8319 (method git-fetch)
8320 (uri (git-reference
8321 (url "https://github.com/NicoHood/arc-theme.git")
8322 (commit version)))
8323 (file-name (git-file-name name version))
813f814a
DT
8324 (sha256
8325 (base32
37781323 8326 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8327 (build-system gnu-build-system)
d88884fa
EF
8328 (arguments
8329 '(#:phases
8330 (modify-phases %standard-phases
8331 ;; autogen.sh calls configure at the end of the script.
8332 (replace 'bootstrap
4690e3a4
MC
8333 (lambda _ (invoke "autoreconf" "-vfi")))
8334 (add-before 'build 'set-home ;placate Inkscape
8335 (lambda _
8336 (setenv "HOME" (getcwd))
8337 #t)))))
813f814a
DT
8338 (native-inputs
8339 `(("autoconf" ,autoconf)
8340 ("automake" ,automake)
a18f8eaf
BH
8341 ("glib" ,glib "bin") ; for glib-compile-resources
8342 ("gnome-shell" ,gnome-shell)
8343 ("gtk+" ,gtk+)
8344 ("inkscape" ,inkscape)
8345 ("optipng" ,optipng)
8346 ("pkg-config" ,pkg-config)
bed24ecf 8347 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8348 (synopsis "A flat GTK+ theme with transparent elements")
8349 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
83502, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8351like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8352 (home-page "https://github.com/horst3180/arc-theme")
8353 ;; No "or later" language found.
a18f8eaf 8354 (license license:gpl3+)))
9987c57c 8355
d935e6a1 8356(define-public faba-icon-theme
9987c57c 8357 (package
d935e6a1 8358 (name "faba-icon-theme")
2eee7ee3 8359 (version "4.3")
d935e6a1
BT
8360 (source
8361 (origin
757e4027
TGR
8362 (method git-fetch)
8363 (uri (git-reference
8364 (url "https://github.com/snwh/faba-icon-theme.git")
8365 (commit (string-append "v" version))))
8366 (file-name (git-file-name name version))
d935e6a1 8367 (sha256
757e4027 8368 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8369 (build-system meson-build-system)
9987c57c 8370 (arguments
82da291a 8371 `(#:phases
9987c57c 8372 (modify-phases %standard-phases
82da291a 8373 (add-before 'configure 'disable-post-install
9987c57c 8374 (lambda _
82da291a
JL
8375 (substitute* "meson.build"
8376 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8377 (native-inputs
8378 `(("autoconf" ,autoconf)
8379 ("automake" ,automake)))
d935e6a1
BT
8380 (synopsis "Faba icon theme")
8381 (description
8382 "Faba is a minimal icon set used as a basis for other themes such as
8383Moka")
8384 (home-page "https://snwh.org/moka")
8385 (license (list license:lgpl3+
8386 license:cc-by-sa4.0))))
8387
9987c57c
DT
8388(define-public moka-icon-theme
8389 (package
8b0e4177 8390 (inherit faba-icon-theme)
9987c57c 8391 (name "moka-icon-theme")
105a3625 8392 (version "5.4.0")
8c3f2170
TGR
8393 (source
8394 (origin
8395 (method git-fetch)
8396 (uri (git-reference
8397 (url "https://github.com/snwh/moka-icon-theme.git")
8398 (commit (string-append "v" version))))
8399 (file-name (git-file-name name version))
8400 (sha256
8401 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8402 (propagated-inputs
8403 ;; Moka is based on Faba by using it as a fallback icon set instead of
8404 ;; bundling it, so we need to add it as a propagated input.
8405 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8406 (synopsis "Moka icon theme")
8407 (description "Moka is a stylized desktop icon set, designed to be clear,
8408simple and consistent.")
fedde43b
BT
8409 (license (list license:gpl3+
8410 license:cc-by-sa4.0))))
6fd8f8d6
DT
8411
8412(define-public arc-icon-theme
8413 (package
8414 (name "arc-icon-theme")
c4180240 8415 (version "20161122")
bbf66cbf
TGR
8416 (source
8417 (origin
8418 (method git-fetch)
8419 (uri (git-reference
8420 (url "https://github.com/horst3180/arc-icon-theme.git")
8421 (commit version)))
8422 (file-name (git-file-name name version))
8423 (sha256
8424 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8425 (build-system gnu-build-system)
9e1ede95
JL
8426 (arguments
8427 `(#:phases
8428 (modify-phases %standard-phases
8429 (add-after 'unpack 'disable-configure-during-bootstrap
8430 (lambda _
8431 (substitute* "autogen.sh"
8432 (("^\"\\$srcdir/configure\".*") ""))
8433 #t)))))
6fd8f8d6
DT
8434 (native-inputs
8435 `(("autoconf" ,autoconf)
8436 ("automake" ,automake)))
8437 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8438 (propagated-inputs
8439 `(("moka-icon-theme" ,moka-icon-theme)))
8440 (synopsis "Arc icon theme")
8441 (description "The Arc icon theme provides a set of icons matching the
8442style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8443the Moka icon theme.")
8444 (home-page "https://github.com/horst3180/arc-icon-theme")
8445 (license license:gpl3+)))
6064a4e8
LF
8446
8447(define-public folks
8448 (package
8449 (name "folks")
d23495fa 8450 (version "0.11.4")
6064a4e8
LF
8451 (source (origin
8452 (method url-fetch)
8453 (uri (string-append
e5f4796e 8454 "mirror://gnome/sources/folks/"
6064a4e8 8455 (version-major+minor version) "/"
e5f4796e 8456 "folks-" version ".tar.xz"))
6064a4e8
LF
8457 (sha256
8458 (base32
d23495fa 8459 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
8460 (build-system glib-or-gtk-build-system)
8461 (inputs
8462 `(("bdb" ,bdb)
8463 ("dbus-glib" ,dbus-glib)
8464 ("evolution-data-server" ,evolution-data-server)
8465 ("glib" ,glib)
8466 ("libgee" ,libgee)
8467 ("telepathy-glib" ,telepathy-glib)))
8468 (native-inputs
8469 `(("gobject-introspection" ,gobject-introspection)
8470 ("intltool" ,intltool)
8471 ("pkg-config" ,pkg-config)
8472 ("vala" ,vala)))
8473 (synopsis "Library to aggregate data about people")
8474 (description "Libfolks is a library that aggregates information about people
8475from multiple sources (e.g., Telepathy connection managers for IM contacts,
8476Evolution Data Server for local contacts, libsocialweb for web service contacts,
8477etc.) to create metacontacts. It's written in Vala, which generates C code when
8478compiled.")
8479 (home-page "https://wiki.gnome.org/Projects/Folks")
8480 (license license:lgpl2.1+)))
01ea778f
LF
8481
8482(define-public gfbgraph
8483 (package
8484 (name "gfbgraph")
8485 (version "0.2.3")
8486 (source (origin
8487 (method url-fetch)
8488 (uri (string-append
237d4cf7 8489 "mirror://gnome/sources/gfbgraph/"
01ea778f 8490 (version-major+minor version) "/"
237d4cf7 8491 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8492 (sha256
8493 (base32
8494 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8495 (build-system glib-or-gtk-build-system)
8496 (arguments
8497 `(#:tests? #f ; Tests appear to require the network.
8498 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8499 #:configure-flags '("--disable-gtk-doc"
8500 "--disable-static"
8501 "--enable-introspection")))
8502 (native-inputs
8503 `(("pkg-config" ,pkg-config)
8504 ("gobject-introspection" ,gobject-introspection)))
8505 (inputs
8506 `(("json-glib" ,json-glib)
14c297fd 8507 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8508 ("rest" ,rest)))
8509 (synopsis "GLib/GObject wrapper for the Facebook API")
8510 (description "This library allows you to use the Facebook API from
8511GLib/GObject code.")
8512 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8513 (license license:lgpl2.1+)))
3920868c 8514
8515(define-public libgnomekbd
8516 (package
8517 (name "libgnomekbd")
70f2b0f9 8518 (version "3.26.1")
3920868c 8519 (source (origin
8520 (method url-fetch)
d47fa82d 8521 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8522 (version-major+minor version) "/"
d47fa82d 8523 "libgnomekbd-" version ".tar.xz"))
3920868c 8524 (sha256
8525 (base32
70f2b0f9 8526 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8527 (build-system gnu-build-system)
8528 (native-inputs
8529 `(("pkg-config" ,pkg-config)
8530 ("glib" ,glib "bin")
8531 ("intltool" ,intltool)))
8532 (propagated-inputs
8533 ;; Referred to in .h files and .pc.
8534 `(("glib" ,glib)
8535 ("gtk+" ,gtk+)
8536 ("libxklavier" ,libxklavier)))
8537 (home-page "https://www.gnome.org")
8538 (synopsis "GNOME keyboard configuration library")
8539 (description
8540 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8541environment, which can notably display keyboard layouts.")
8542 (license license:lgpl2.0+)))
85327d0d 8543
8544;;; This package is no longer maintained:
8545;;; https://wiki.gnome.org/Attic/LibUnique
8546;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8547;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8548(define-public libunique
8549 (package
8550 (name "libunique")
8551 (version "3.0.2")
8552 (source (origin
8553 (method url-fetch)
8554 (uri (string-append "mirror://gnome/sources/" name "/"
8555 (version-major+minor version) "/"
8556 name "-" version ".tar.xz"))
8557 (sha256
8558 (base32
8559 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8560 (build-system glib-or-gtk-build-system)
8561 (arguments
8562 `(#:configure-flags '("--disable-static"
8563 "--disable-dbus" ; use gdbus
8564 "--enable-introspection")))
8565 (native-inputs
8566 `(("pkg-config" ,pkg-config)
8567 ("gobject-introspection" ,gobject-introspection)
8568 ("glib:bin" ,glib "bin")
8569 ("gtk-doc" ,gtk-doc)))
8570 (propagated-inputs
8571 ;; Referred to in .h files and .pc.
8572 `(("gtk+" ,gtk+)))
8573 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8574 (synopsis "Library for writing single instance applications")
8575 (description
8576 "Libunique is a library for writing single instance applications. If you
8577launch a single instance application twice, the second instance will either just
8578quit or will send a message to the running instance. Libunique makes it easy to
8579write this kind of application, by providing a base class, taking care of all
8580the IPC machinery needed to send messages to a running instance, and also
8581handling the startup notification side.")
8582 (license license:lgpl2.1+)))
54021cd8
RS
8583
8584(define-public gnome-calculator
8585 (package
8586 (name "gnome-calculator")
4cb09502 8587 (version "3.34.1")
54021cd8
RS
8588 (source
8589 (origin
8590 (method url-fetch)
8591 (uri (string-append "mirror://gnome/sources/" name "/"
8592 (version-major+minor version) "/"
8593 name "-" version ".tar.xz"))
8594 (sha256
8595 (base32
4cb09502 8596 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8597 (build-system meson-build-system)
8598 (arguments '(#:glib-or-gtk? #t))
54021cd8 8599 (native-inputs
4cb09502
MB
8600 `(("gettext" ,gettext-minimal)
8601 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8602 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8603 ("itstool" ,itstool)
2d475910 8604 ("vala" ,vala)
54021cd8
RS
8605 ("pkg-config" ,pkg-config)))
8606 (inputs
112e9083 8607 `(("glib" ,glib)
07ace641 8608 ("gtksourceview" ,gtksourceview)
4cb09502 8609 ("libgee" ,libgee)
54021cd8 8610 ("libsoup" ,libsoup)
112e9083 8611 ("libxml2" ,libxml2)
2c2da7ec 8612 ("mpc" ,mpc)
54021cd8
RS
8613 ("mpfr" ,mpfr)))
8614 (home-page "https://wiki.gnome.org/Apps/Calculator")
8615 (synopsis "Desktop calculator")
8616 (description
8617 "Calculator is an application that solves mathematical equations and
8618is suitable as a default application in a Desktop environment.")
8619 (license license:gpl3)))
0bd69759
RS
8620
8621(define-public xpad
8622 (package
8623 (name "xpad")
c85626bb 8624 (version "5.1.0")
0bd69759
RS
8625 (source
8626 (origin
8627 (method url-fetch)
08fda9c6
R
8628 (uri (string-append "https://launchpad.net/xpad/trunk/"
8629 version "/+download/"
0bd69759
RS
8630 name "-" version ".tar.bz2"))
8631 (sha256
8632 (base32
c85626bb 8633 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8634 (build-system gnu-build-system)
8635 (native-inputs
08fda9c6
R
8636 `(("autoconf" ,autoconf)
8637 ("automake" ,automake)
8638 ("gtk+:bin" ,gtk+ "bin")
8639 ("intltool" ,intltool)
0bd69759
RS
8640 ("pkg-config" ,pkg-config)))
8641 (inputs
c72647fb 8642 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8643 ("libsm" ,libsm)))
8644 (home-page "https://wiki.gnome.org/Apps/Xpad")
8645 (synopsis "Virtual sticky note")
8646 (description
8647 "Xpad is a sticky note that strives to be simple, fault tolerant,
8648and customizable. Xpad consists of independent pad windows, each is
8649basically a text box in which notes can be written.")
8650 (license license:gpl3+)))
3ad7dce1
RS
8651
8652(define-public gucharmap
c60063ea
RW
8653 (let ((unicode-files
8654 '(("Blocks.txt"
1f8b5515 8655 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8656 ("DerivedAge.txt"
1f8b5515 8657 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8658 ("NamesList.txt"
1f8b5515 8659 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8660 ("Scripts.txt"
1f8b5515 8661 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8662 ("UnicodeData.txt"
1f8b5515 8663 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8664 ("Unihan.zip"
1f8b5515 8665 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8666 (package
8667 (name "gucharmap")
1f8b5515 8668 (version "12.0.1")
c60063ea
RW
8669 (source
8670 (origin
8671 (method url-fetch)
8672 (uri (string-append "mirror://gnome/sources/" name "/"
8673 (version-major+minor version) "/"
8674 name "-" version ".tar.xz"))
8675 (sha256
8676 (base32
1f8b5515 8677 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8678 (build-system glib-or-gtk-build-system)
8679 (arguments
8680 `(#:modules ((ice-9 match)
8681 (guix build glib-or-gtk-build-system)
8682 (guix build utils))
8683 #:configure-flags
8684 (list "--with-unicode-data=../unicode-data")
8685 #:phases
8686 (modify-phases %standard-phases
8687 (add-after 'unpack 'prepare-unicode-data
8688 (lambda* (#:key inputs #:allow-other-keys)
8689 (mkdir-p "../unicode-data")
8690 (with-directory-excursion "../unicode-data"
8691 (for-each (match-lambda
8692 ((file _)
8693 (install-file (assoc-ref inputs file) ".")))
8694 ',unicode-files))
8695 #t)))))
8696 (native-inputs
8697 `(("desktop-file-utils" ,desktop-file-utils)
8698 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8699 ("gobject-introspection" ,gobject-introspection)
8700 ("intltool" ,intltool)
8701 ("itstool" ,itstool)
8702 ("pkg-config" ,pkg-config)
8703 ,@(map (match-lambda
8704 ((file hash)
8705 `(,file
8706 ,(origin
8707 (method url-fetch)
8708 (uri (string-append
1f8b5515 8709 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8710 file))
8711 (sha256 (base32 hash))))))
8712 unicode-files)
8713 ("unzip" ,unzip)))
8714 (inputs
8715 `(("gtk+" ,gtk+)
8716 ("xmllint" ,libxml2)))
8717 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8718 (synopsis "Unicode character picker and font browser")
8719 (description
8720 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8721characters and categories for the installed fonts, and to examine their
8722detailed properties. It is an easy way to find the character you might
8723only know by its Unicode name or code point.")
c60063ea 8724 (license license:gpl3+))))
04ce840a
RS
8725
8726(define-public bluefish
8727 (package
8728 (name "bluefish")
290fe81d 8729 (version "2.2.11")
04ce840a
RS
8730 (source
8731 (origin
8732 (method url-fetch)
8733 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8734 "bluefish-" version ".tar.gz"))
04ce840a 8735 (sha256
290fe81d 8736 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8737 (build-system gnu-build-system)
8738 (native-inputs
8739 `(("desktop-file-utils" ,desktop-file-utils)
8740 ("intltool" ,intltool)
8741 ("pkg-config" ,pkg-config)))
8742 (inputs
8743 `(("enchant" ,enchant)
8744 ("gtk+" ,gtk+)
290fe81d 8745 ("python" ,python-wrapper)
04ce840a
RS
8746 ("xmllint" ,libxml2)
8747 ("gucharmap" ,gucharmap)))
8748 (home-page "http://bluefish.openoffice.nl")
8749 (synopsis "Web development studio")
8750 (description
8751 "Bluefish is an editor targeted towards programmers and web developers,
8752with many options to write web sites, scripts and other code.
8753Bluefish supports many programming and markup languages.")
8754 (license license:gpl3+)))
1f6a73ee
RS
8755
8756(define-public gnome-system-monitor
8757 (package
8758 (name "gnome-system-monitor")
083cffaf 8759 (version "3.32.1")
1f6a73ee
RS
8760 (source
8761 (origin
8762 (method url-fetch)
8763 (uri (string-append "mirror://gnome/sources/" name "/"
8764 (version-major+minor version) "/"
8765 name "-" version ".tar.xz"))
8766 (sha256
8767 (base32
083cffaf 8768 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8769 (build-system meson-build-system)
8770 (arguments
8771 '(#:glib-or-gtk? #t
8772 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8773 (native-inputs
8774 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8775 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8776 ("intltool" ,intltool)
8777 ("itstool" ,itstool)
8778 ("libgtop" ,libgtop)
4985d9aa 8779 ("polkit" ,polkit)
1f6a73ee
RS
8780 ("pkg-config" ,pkg-config)))
8781 (inputs
8782 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8783 ("gtk+" ,gtk+)
8784 ("gtkmm" ,gtkmm)
8785 ("librsvg" ,librsvg)
4985d9aa
RW
8786 ("libxml2" ,libxml2)
8787 ("libwnck" ,libwnck)))
1f6a73ee
RS
8788 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8789 (synopsis "Process viewer and system resource monitor for GNOME")
8790 (description
8791 "GNOME System Monitor is a GNOME process viewer and system monitor with
8792an attractive, easy-to-use interface. It has features, such as a tree view
8793for process dependencies, icons for processes, the ability to hide processes,
8794graphical time histories of CPU/memory/swap usage and the ability to
8795kill/reinice processes.")
8796 (license license:gpl2+)))
3e00ac47
SB
8797
8798(define-public python-pyatspi
8799 (package
8800 (name "python-pyatspi")
4f937a32 8801 (version "2.34.0")
3e00ac47
SB
8802 (source (origin
8803 (method url-fetch)
8804 (uri (string-append
8805 "mirror://gnome/sources/pyatspi/"
8806 (version-major+minor version)
8807 "/pyatspi-" version ".tar.xz"))
8808 (sha256
8809 (base32
4f937a32 8810 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8811 (build-system gnu-build-system)
b95af3f6
JL
8812 (arguments
8813 `(#:phases
8814 (modify-phases %standard-phases
8815 (add-before 'build 'fix-atk-load
8816 (lambda _
8817 (substitute* "pyatspi/__init__.py"
8818 (("from gi.repository import Atspi")
8819 "gi.require_version('Gtk', '3.0')
8820from gi.repository import Gtk
8821from gi.repository import Atspi"))
8822 #t)))))
3e00ac47
SB
8823 (native-inputs
8824 `(("pkg-config" ,pkg-config)))
8825 (inputs
8826 `(("python" ,python)
8827 ("python-pygobject" ,python-pygobject)))
8828 (synopsis "Python client bindings for D-Bus AT-SPI")
8829 (home-page "https://wiki.linuxfoundation.org/accessibility\
8830/atk/at-spi/at-spi_on_d-bus")
8831 (description
8832 "This package includes a python client library for the AT-SPI D-Bus
8833accessibility infrastructure.")
8834 (license license:lgpl2.0)
8835 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8836
8837(define-public orca
8838 (package
8839 (name "orca")
089e8585 8840 (version "3.32.0")
53201c0d
SB
8841 (source (origin
8842 (method url-fetch)
8843 (uri (string-append
8844 "mirror://gnome/sources/" name "/"
8845 (version-major+minor version) "/"
8846 name "-" version ".tar.xz"))
8847 (sha256
8848 (base32
089e8585 8849 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8850 (build-system glib-or-gtk-build-system)
8851 (arguments
8852 '(#:phases
8853 (modify-phases %standard-phases
8854 (add-before 'configure 'qualify-xkbcomp
8855 (lambda* (#:key inputs #:allow-other-keys)
8856 (let ((xkbcomp (string-append
8857 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8858 (substitute* "src/orca/orca.py"
8859 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8860 #t))
8861 (add-after 'install 'wrap-orca
8862 (lambda* (#:key outputs #:allow-other-keys)
8863 (let* ((out (assoc-ref outputs "out"))
8864 (prog (string-append out "/bin/orca")))
8865 (wrap-program prog
8866 `("GI_TYPELIB_PATH" ":" prefix
8867 (,(getenv "GI_TYPELIB_PATH")))
8868 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8869 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8870 `("PYTHONPATH" ":" prefix
8871 (,(getenv "PYTHONPATH")))))
8872 #t)))))
8873 (native-inputs
8874 `(("intltool" ,intltool)
8875 ("itstool" ,itstool)
8876 ("pkg-config" ,pkg-config)
8877 ("xmllint" ,libxml2)))
8878 (inputs
8879 `(("at-spi2-atk" ,at-spi2-atk)
8880 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8881 ("gstreamer" ,gstreamer)
8882 ("gst-plugins-base" ,gst-plugins-base)
8883 ("gst-plugins-good" ,gst-plugins-good)
8884 ("gtk+" ,gtk+)
8885 ("python" ,python)
8886 ("python-pygobject" ,python-pygobject)
8887 ("python-pyatspi" ,python-pyatspi)
8888 ("python-speechd" ,speech-dispatcher)
8889 ("xkbcomp" ,xkbcomp)))
8890 (synopsis
8891 "Screen reader for individuals who are blind or visually impaired")
8892 (home-page "https://wiki.gnome.org/Projects/Orca")
8893 (description
8894 "Orca is a screen reader that provides access to the graphical desktop
8895via speech and refreshable braille. Orca works with applications and toolkits
8896that support the Assistive Technology Service Provider Interface (AT-SPI).")
8897 (license license:lgpl2.1+)))
411ba511
LC
8898
8899(define-public gspell
8900 (package
8901 (name "gspell")
7a6bbe9b 8902 (version "1.8.2")
411ba511
LC
8903 (source (origin
8904 (method url-fetch)
8905 (uri (string-append "mirror://gnome/sources/" name "/"
8906 (version-major+minor version) "/"
8907 name "-" version ".tar.xz"))
8908 (sha256
8909 (base32
7a6bbe9b 8910 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8911 (patches (search-patches "gspell-dash-test.patch"))))
8912 (build-system glib-or-gtk-build-system)
8913 (arguments
8914 '(#:phases
8915 (modify-phases %standard-phases
8916 (add-before 'check 'pre-check
8917 (lambda* (#:key inputs #:allow-other-keys)
8918 ;; Tests require a running X server.
8919 (system "Xvfb :1 &")
8920 (setenv "DISPLAY" ":1")
8921
8922 ;; For the missing /etc/machine-id.
8923 (setenv "DBUS_FATAL_WARNINGS" "0")
8924
8925 ;; Allow Enchant and its Aspell backend to find the en_US
8926 ;; dictionary.
8927 (setenv "ASPELL_DICT_DIR"
8928 (string-append (assoc-ref inputs "aspell-dict-en")
8929 "/lib/aspell"))
8930 #t)))))
8931 (inputs
eccd35be 8932 `(("gtk+" ,gtk+)
a801ae4c
TGR
8933 ("glib" ,glib)
8934 ("iso-codes" ,iso-codes)))
411ba511
LC
8935 (native-inputs
8936 `(("glib" ,glib "bin")
26ba3f07 8937 ("gobject-introspection" ,gobject-introspection)
411ba511
LC
8938 ("pkg-config" ,pkg-config)
8939 ("xmllint" ,libxml2)
8940
8941 ;; For tests.
a801ae4c 8942 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8943 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8944 (propagated-inputs
9b1bb757 8945 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8946 (home-page "https://wiki.gnome.org/Projects/gspell")
8947 (synopsis "GNOME's alternative spell checker")
8948 (description
8949 "gspell provides a flexible API to add spell-checking to a GTK+
8950application. It provides a GObject API, spell-checking to text entries and
8951text views, and buttons to choose the language.")
8952 (license license:gpl2+)))
d1d739fa
CM
8953
8954(define-public gnome-planner
8955 (package
8956 (name "gnome-planner")
8957 (version "0.14.6")
8958 (source (origin
8959 (method url-fetch)
8960 (uri (string-append "mirror://gnome/sources/planner/"
8961 (version-major+minor version) "/planner-"
8962 version ".tar.xz"))
8963 (sha256
8964 (base32
8965 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8966 (build-system glib-or-gtk-build-system)
8967 (arguments
8968 ;; Disable the Python bindings because the Planner program functions
8969 ;; without them, and (as of 2017-06-13) we have not packaged all of
8970 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8971 `(#:configure-flags
8972 (list "--disable-python"
8973 ,@(if (string=? "aarch64-linux" (%current-system))
8974 '("--build=aarch64-unknown-linux-gnu")
8975 '()))))
d1d739fa
CM
8976 (inputs
8977 `(("libgnomecanvas" ,libgnomecanvas)
8978 ("libgnomeui" ,libgnomeui)
8979 ("libglade" ,libglade)
8980 ("gnome-vfs" ,gnome-vfs)
8981 ("gconf" ,gconf)
8982 ("libxml2" ,libxml2)
8983 ("libxslt" ,libxslt)
8984 ("gtk+" ,gtk+)
8985 ("glib" ,glib)))
8986 (native-inputs
8987 `(("intltool" ,intltool)
8988 ("scrollkeeper" ,scrollkeeper)
8989 ("pkg-config" ,pkg-config)))
8990 (home-page "https://wiki.gnome.org/Apps/Planner")
8991 (synopsis "Project management software for the GNOME desktop")
8992 (description
8993 "GNOME Planner is a project management tool based on the Work Breakdown
8994Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8995the resources, tasks, and constraints that you define, Planner generates
8996various views into a project. For example, Planner can show a Gantt chart of
8997the project. It can show a detailed summary of tasks including their
8998duration, cost, and current progress. It can also show a report of resource
8999utilization that highlights under-utilized and over-utilized resources. These
9000views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9001 (license license:gpl2+)))
64fce637
RS
9002
9003(define-public lollypop
9004 (package
9005 (name "lollypop")
ca32627a 9006 (version "1.2.7")
64fce637
RS
9007 (source
9008 (origin
9009 (method url-fetch)
b98eace8 9010 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 9011 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 9012 "lollypop-" version ".tar.xz"))
64fce637 9013 (sha256
ca32627a 9014 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 9015 (build-system meson-build-system)
64fce637
RS
9016 (arguments
9017 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
9018 ,@%meson-build-system-modules)
9019 #:glib-or-gtk? #t
5fc9b6c1
EF
9020 #:tests? #f ; no test suite
9021 #:phases
9022 (modify-phases %standard-phases
5fc9b6c1
EF
9023 (add-after 'install 'wrap-program
9024 (lambda* (#:key outputs #:allow-other-keys)
9025 (let ((out (assoc-ref outputs "out"))
9026 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9027 (wrap-program (string-append out "/bin/lollypop")
9028 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9029 #t))
8ac8b3b3
TGR
9030 (add-after 'install 'wrap-python
9031 (@@ (guix build python-build-system) wrap))
9032 (add-after 'install 'wrap-glib-or-gtk
9033 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
9034 (native-inputs
9035 `(("intltool" ,intltool)
9036 ("itstool" ,itstool)
aa498fc0
TD
9037 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9038 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9039 ("pkg-config" ,pkg-config)))
9040 (inputs
9041 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9042 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9043 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9044 ("libnotify" ,libnotify)
9045 ("libsecret" ,libsecret)
9046 ("libsoup" ,libsoup)
9047 ("python" ,python)
9048 ("python-beautifulsoup4" ,python-beautifulsoup4)
9049 ("python-gst" ,python-gst)
d029afdd 9050 ("python-pil" ,python-pillow)
64fce637 9051 ("python-pycairo" ,python-pycairo)
cc9c83c5 9052 ("python-pygobject" ,python-pygobject)
64fce637
RS
9053 ("python-pylast" ,python-pylast)
9054 ("totem-pl-parser" ,totem-pl-parser)
9055 ("webkitgtk" ,webkitgtk)))
9056 (propagated-inputs
9057 `(;; gst-plugins-base is required to start Lollypop,
9058 ;; the others are required to play streaming.
64fce637
RS
9059 ("gst-plugins-good" ,gst-plugins-good)
9060 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9061 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9062 (synopsis "GNOME music playing application")
9063 (description
9064 "Lollypop is a music player designed to play well with GNOME desktop.
9065Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9066from artists and tracks from the web. It also fetches cover artworks
9067automatically and it can stream songs from online music services and charts.")
9068 (license license:gpl3+)))
d831d49d
AW
9069
9070(define-public gnome-video-effects
9071 (package
9072 (name "gnome-video-effects")
9073 (version "0.4.3")
9074 (source (origin
9075 (method url-fetch)
9076 (uri (string-append "mirror://gnome/sources/" name "/"
9077 (version-major+minor version) "/" name "-"
9078 version ".tar.xz"))
9079 (sha256
9080 (base32
9081 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9082 (build-system glib-or-gtk-build-system)
9083 (arguments
9084 `(#:out-of-source? #f))
9085 (native-inputs
9086 `(("glib:bin" ,glib "bin")
9087 ("intltool" ,intltool)
9088 ("gettext" ,gettext-minimal)
9089 ("pkg-config" ,pkg-config)))
9090 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9091 (synopsis "Video effects for Cheese and other GNOME applications")
9092 (description
9093 "A collection of GStreamer video filters and effects to be used in
9094photo-booth-like software, such as Cheese.")
9095 (license license:gpl2+)))
3511c780
AW
9096
9097(define-public cheese
9098 (package
9099 (name "cheese")
dd33b337 9100 (version "3.32.1")
3511c780
AW
9101 (source (origin
9102 (method url-fetch)
9103 (uri (string-append "mirror://gnome/sources/" name "/"
9104 (version-major+minor version) "/" name "-"
9105 version ".tar.xz"))
9106 (sha256
9107 (base32
dd33b337 9108 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
9109 (arguments
9110 ;; Tests require GDK.
9111 `(#:tests? #f
9112 #:phases
9113 (modify-phases %standard-phases
9114 (add-before 'install 'skip-gtk-update-icon-cache
9115 (lambda _
9116 ;; Don't create 'icon-theme.cache'
9117 (substitute* "Makefile"
9118 (("gtk-update-icon-cache") (which "true")))
9119 #t))
9120 (add-after 'install 'wrap-cheese
9121 (lambda* (#:key inputs outputs #:allow-other-keys)
9122 (let ((out (assoc-ref outputs "out"))
9123 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9124 (wrap-program (string-append out "/bin/cheese")
9125 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9126 #t)))))
9127 (build-system glib-or-gtk-build-system)
9128 (native-inputs
9129 `(("glib:bin" ,glib "bin")
9130 ("intltool" ,intltool)
9131 ("itstool" ,itstool)
9132 ("libxml2" ,libxml2)
9133 ("pkg-config" ,pkg-config)
9134 ("vala" ,vala)))
9135 (propagated-inputs
6a19f03e
RW
9136 `(("gnome-video-effects" ,gnome-video-effects)
9137 ("clutter" ,clutter)
3511c780
AW
9138 ("clutter-gst" ,clutter-gst)
9139 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9140 ("libcanberra" ,libcanberra)
3511c780
AW
9141 ("gdk-pixbuf" ,gdk-pixbuf)
9142 ("glib" ,glib)
6a19f03e
RW
9143 ("gstreamer" ,gstreamer)))
9144 (inputs
9145 `(("gnome-desktop" ,gnome-desktop)
3511c780 9146 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9147 ("gst-plugins-base" ,gst-plugins-base)
9148 ("gst-plugins-bad" ,gst-plugins-bad)
9149 ("gtk+" ,gtk+)
3511c780
AW
9150 ("libx11" ,libx11)
9151 ("libxtst" ,libxtst)))
9152 (home-page "https://wiki.gnome.org/Apps/Cheese")
9153 (synopsis "Webcam photo booth software for GNOME")
9154 (description
9155 "Cheese uses your webcam to take photos and videos. Cheese can also
9156apply fancy special effects and lets you share the fun with others.")
9157 (license license:gpl2+)))
3c5dbd2b 9158
9159(define-public sound-juicer
9160 (package
9161 (name "sound-juicer")
9162 (version "3.24.0")
9163 (source
9164 (origin
9165 (method url-fetch)
9166 (uri (string-append "mirror://gnome/sources/" name "/"
9167 (version-major+minor version) "/"
9168 name "-" version ".tar.xz"))
9169 (sha256
9170 (base32
9171 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9172 (build-system glib-or-gtk-build-system)
9173 (native-inputs
9174 `(("desktop-file-utils" ,desktop-file-utils)
9175 ("intltool" ,intltool)
9176 ("itstool" ,itstool)
9177 ("pkg-config" ,pkg-config)
9178 ("xmllint" ,libxml2)))
9179 (inputs
9180 `(("gtk+" ,gtk+)
9181 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9182 ("gstreamer" ,gstreamer)
9183 ("gst-plugins-base" ,gst-plugins-base)
9184 ("gst-plugins-good" ,gst-plugins-good)
9185 ("iso-codes" ,iso-codes)
9186 ("libbrasero-media3" ,brasero)
9187 ("libcanberra" ,libcanberra)
9188 ("libdiscid" ,libdiscid)
9189 ("libmusicbrainz" ,libmusicbrainz)
9190 ("neon" ,neon)))
9191 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9192 (synopsis "Audio music cd ripper")
9193 (description "Sound Juicer extracts audio from compact discs and convert it
9194into audio files that a personal computer or digital audio player can play.
9195It supports ripping to any audio codec supported by a GStreamer plugin, such as
9196mp3, Ogg Vorbis and FLAC")
9197 (license license:gpl2+)))
4e3fdeb7 9198
0d3f1708
CB
9199(define-public soundconverter
9200 (package
9201 (name "soundconverter")
fa75a213 9202 (version "3.0.1")
0d3f1708
CB
9203 (source
9204 (origin
9205 (method url-fetch)
9206 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9207 version "/+download/"
9208 "soundconverter-" version ".tar.xz"))
9209
9210 (sha256
fa75a213 9211 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
9212 (patches
9213 (search-patches
9214 "soundconverter-remove-gconf-dependency.patch"))))
9215 (build-system glib-or-gtk-build-system)
9216 (arguments
9217 `(#:imported-modules ((guix build python-build-system)
9218 (guix build glib-or-gtk-build-system)
9219 ,@%gnu-build-system-modules)
9220
9221 #:modules ((guix build glib-or-gtk-build-system)
9222 (guix build utils)
9223 ((guix build gnu-build-system) #:prefix gnu:)
9224 ((guix build python-build-system) #:prefix python:))
9225
9226 #:phases
9227 (modify-phases %standard-phases
0d3f1708
CB
9228 (add-after 'install 'wrap-soundconverter-for-python
9229 (assoc-ref python:%standard-phases 'wrap))
9230 (add-after 'install 'wrap-soundconverter
9231 (lambda* (#:key inputs outputs #:allow-other-keys)
9232 (let ((out (assoc-ref outputs "out"))
9233 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9234 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9235 (wrap-program (string-append out "/bin/soundconverter")
9236 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9237 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9238 #t)))))
9239 (native-inputs
9240 `(("intltool" ,intltool)
9241 ("pkg-config" ,pkg-config)
9242 ("glib:bin" ,glib "bin")))
9243 (inputs
9244 `(("gtk+" ,gtk+)
9245 ("python" ,python)
9246 ("python-pygobject" ,python-pygobject)
9247 ("gstreamer" ,gstreamer)
9248 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9249 (home-page "https://soundconverter.org/")
0d3f1708
CB
9250 (synopsis "Convert between audio formats with a graphical interface")
9251 (description
9252 "SoundConverter supports converting between many audio formats including
9253Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9254configurable file renaming. ")
9255 (license license:gpl3)))
9256
4e3fdeb7 9257(define-public workrave
89f2d736
TGR
9258 (package
9259 (name "workrave")
aa51d92c 9260 (version "1.10.34")
89f2d736
TGR
9261 (source
9262 (origin
9263 (method git-fetch)
9264 (uri (git-reference
9265 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9266 (commit (string-append "v" (string-map
9267 (match-lambda (#\. #\_) (chr chr))
9268 version)))))
89f2d736
TGR
9269 (file-name (git-file-name name version))
9270 (sha256
aa51d92c 9271 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
89f2d736 9272 (build-system glib-or-gtk-build-system)
d1c96847
MC
9273 (inputs `(("glib" ,glib)
9274 ("gtk+" ,gtk+)
9275 ("gdk-pixbuf" ,gdk-pixbuf)
9276 ("gtkmm" ,gtkmm)
9277 ("glibmm" ,glibmm)
9278 ("libx11" ,libx11)
9279 ("libxtst" ,libxtst)
9280 ("dconf" ,dconf)
9281 ("libice" ,libice)
9282 ("libsm" ,libsm)
9283 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9284 (native-inputs `(("boost" ,boost)
89f2d736
TGR
9285 ("pkg-config" ,pkg-config)
9286 ("gettext" ,gnu-gettext)
9287 ("autoconf" ,autoconf)
9288 ("autoconf-archive" , autoconf-archive)
9289 ("automake" ,automake)
9290 ("libtool" ,libtool)
9291 ("intltool" ,intltool)
89f2d736 9292 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9293 ("python3" ,python-3)
9294 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9295 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9296 (description
9297 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9298repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9299micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9300 (home-page "http://www.workrave.org")
9301 (license license:gpl3+)))
312afa7d
LC
9302
9303(define-public ghex
9304 (package
9305 (name "ghex")
3748992a 9306 (version "3.18.4")
312afa7d
LC
9307 (source (origin
9308 (method url-fetch)
2fbab848 9309 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9310 (version-major+minor version) "/"
2fbab848 9311 "ghex-" version ".tar.xz"))
312afa7d
LC
9312 (sha256
9313 (base32
3748992a
KK
9314 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9315 (build-system meson-build-system)
9316 (arguments
9317 '(#:glib-or-gtk? #t
9318 #:phases
9319 (modify-phases %standard-phases
9320 (add-after 'unpack 'skip-gtk-update-icon-cache
9321 ;; Don't create 'icon-theme.cache'.
9322 (lambda _
9323 (substitute* "meson_post_install.py"
9324 (("gtk-update-icon-cache") (which "true")))
9325 #t)))))
312afa7d
LC
9326 (native-inputs
9327 `(("pkg-config" ,pkg-config)
3748992a 9328 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9329 ("gnome-common" ,gnome-common)
9330 ("which" ,which)
9331 ("intltool" ,intltool)
9332 ("yelp-tools" ,yelp-tools)
2fbab848 9333 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9334 (inputs
9335 `(("atk" ,atk)
9336 ("gtk" ,gtk+)))
9337 (synopsis "GNOME hexadecimal editor")
9338 (description "The GHex program can view and edit files in two ways:
9339hexadecimal or ASCII. It is useful for editing binary files in general.")
9340 (home-page "https://wiki.gnome.org/Apps/Ghex")
9341 (license license:gpl2)))
4b2ed6c2
RW
9342
9343(define-public libdazzle
9344 (package
9345 (name "libdazzle")
64fa66ba 9346 (version "3.33.90")
4b2ed6c2
RW
9347 (source (origin
9348 (method url-fetch)
687b4909 9349 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9350 (version-major+minor version) "/"
687b4909 9351 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9352 (sha256
9353 (base32
64fa66ba 9354 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
9355 (build-system meson-build-system)
9356 (arguments
9357 `(#:phases
9358 (modify-phases %standard-phases
4b2ed6c2
RW
9359 (add-before 'check 'pre-check
9360 (lambda _
9361 ;; Tests require a running X server.
9362 (system "Xvfb :1 &")
9363 (setenv "DISPLAY" ":1")
9364 #t)))))
9365 (native-inputs
687b4909 9366 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9367 ("pkg-config" ,pkg-config)
687b4909 9368 ;; For tests.
ff337525 9369 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9370 (inputs
9371 `(("glib" ,glib)
9372 ("gobject-introspection" ,gobject-introspection)
9373 ("gtk+" ,gtk+)
9374 ("vala" ,vala)))
9375 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9376 (synopsis "Companion library to GObject and Gtk+")
9377 (description "The libdazzle library is a companion library to GObject and
9378Gtk+. It provides various features that the authors wish were in the
9379underlying library but cannot for various reasons. In most cases, they are
9380wildly out of scope for those libraries. In other cases, they are not quite
9381generic enough to work for everyone.")
9382 (license license:gpl3+)))
7d3bb433
RW
9383
9384(define-public evolution
9385 (package
9386 (name "evolution")
06141f83 9387 (version "3.32.4")
7d3bb433
RW
9388 (source (origin
9389 (method url-fetch)
9390 (uri (string-append "mirror://gnome/sources/evolution/"
9391 (version-major+minor version) "/"
9392 "evolution-" version ".tar.xz"))
9393 (sha256
9394 (base32
06141f83 9395 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
9396 (build-system cmake-build-system)
9397 (arguments
5229bea1
KK
9398 `(#:imported-modules (,@%cmake-build-system-modules
9399 (guix build glib-or-gtk-build-system))
9400 #:modules ((guix build cmake-build-system)
9401 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9402 (guix build utils))
9403 #:configure-flags
7d3bb433 9404 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9405 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9406 ; in four years and cannot be built.
5229bea1
KK
9407 #:phases
9408 (modify-phases %standard-phases
9409 ;; The build system attempts to install user interface modules to the
9410 ;; output directory of the "evolution-data-server" package. This
9411 ;; change redirects that change.
9412 (add-after 'unpack 'patch-ui-module-dir
9413 (lambda* (#:key outputs #:allow-other-keys)
9414 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9415 (("\\$\\{edsuimoduledir\\}")
9416 (string-append (assoc-ref outputs "out")
9417 "/lib/evolution-data-server/ui-modules")))
9418 #t))
9419 (add-after 'install 'glib-or-gtk-compile-schemas
9420 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9421 (add-after 'install 'glib-or-gtk-wrap
9422 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9423 (native-inputs
ad6e168b 9424 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9425 ("pkg-config" ,pkg-config)
9426 ("intltool" ,intltool)
9427 ("itstool" ,itstool)))
9428 (inputs
9429 `(("enchant" ,enchant)
9430 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9431 ("gcr" ,gcr)
ad6e168b 9432 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9433 ("gnome-autoar" ,gnome-autoar)
9434 ("gnome-desktop" ,gnome-desktop)
9435 ("gtkspell3" ,gtkspell3)
9436 ("highlight" ,highlight)
9437 ("libcanberra" ,libcanberra)
b63c06f1 9438 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
9439 ("libgweather" ,libgweather)
9440 ("libnotify" ,libnotify)
9441 ("libsoup" ,libsoup)
9442 ("nss" ,nss)
9443 ("openldap" ,openldap)
9444 ("webkitgtk" ,webkitgtk)
9445 ("ytnef" ,ytnef)))
9446 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9447 (synopsis "Manage your email, contacts and schedule")
9448 (description "Evolution is a personal information management application
9449that provides integrated mail, calendaring and address book
9450functionality.")
9451 ;; See COPYING for details.
23dbe621 9452 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9453 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9454 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9455
9456(define-public gthumb
9457 (package
9458 (name "gthumb")
8280676b 9459 (version "3.8.2")
169d63f5
AT
9460 (source (origin
9461 (method url-fetch)
9462 (uri (string-append "mirror://gnome/sources/gthumb/"
9463 (version-major+minor version) "/"
9464 "gthumb-" version ".tar.xz"))
9465 (sha256
9466 (base32
8280676b 9467 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9468 (build-system meson-build-system)
9469 (arguments
9470 `(#:glib-or-gtk? #t
9471 #:configure-flags
9472 ;; Ensure the RUNPATH contains all installed library locations.
9473 (list (string-append "-Dc_link_args=-Wl,-rpath="
9474 (assoc-ref %outputs "out")
9475 "/lib/gthumb/extensions")
9476 (string-append "-Dcpp_link_args=-Wl,-rpath="
9477 (assoc-ref %outputs "out")
9478 "/lib/gthumb/extensions"))))
9479 (native-inputs
9480 `(("pkg-config" ,pkg-config)
9481 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9482 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9483 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9484 ("intltool" ,intltool)
9485 ("itstool" ,itstool)))
9486 (inputs
9487 `(("exiv2" ,exiv2)
9488 ("gtk" ,gtk+)
9489 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9490 ("gstreamer" ,gstreamer)
9491 ("clutter" ,clutter)
9492 ("clutter-gst" ,clutter-gst)
9493 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9494 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9495 ("libtiff" ,libtiff)
9496 ("libraw" ,libraw)))
9497 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9498 (synopsis "GNOME image viewer and browser")
9499 (description "GThumb is an image viewer, browser, organizer, editor and
9500advanced image management tool")
9501 (license license:gpl2+)))
08be02be
AT
9502
9503(define-public terminator
9504 (package
9505 (name "terminator")
9506 (version "1.91")
9507 (source (origin
9508 (method url-fetch)
9509 (uri (string-append "https://launchpad.net/" name "/"
9510 "gtk3/" version "/" "+download/"
9511 name "-" version ".tar.gz"))
9512 (sha256
9513 (base32
9514 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9515 (build-system python-build-system)
9516 (native-inputs
9517 `(("intltool" ,intltool)
9518 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9519 ("gettext" ,gettext-minimal)
9520 ("pkg-config" ,pkg-config)))
9521 (inputs
9522 `(("cairo" ,cairo)
9523 ("gobject-introspection" ,gobject-introspection)
96681d4b 9524 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9525 ("python2-pycairo" ,python2-pycairo)
9526 ("python2-pygobject" ,python2-pygobject)
9527 ("python2-psutil" ,python2-psutil)
9528 ("vte" ,vte)))
9529 (arguments
96681d4b
TGR
9530 `(#:python ,python-2 ; Python 3 isn't supported
9531 #:imported-modules ((guix build glib-or-gtk-build-system)
9532 ,@%python-build-system-modules)
9533 #:modules ((guix build python-build-system)
9534 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9535 (guix build utils))
08be02be
AT
9536 #:phases
9537 (modify-phases %standard-phases
9538 (add-after
9539 'install 'wrap-program
9540 (lambda* (#:key outputs #:allow-other-keys)
9541 (let ((prog (string-append (assoc-ref outputs "out")
9542 "/bin/terminator")))
9543 (wrap-program prog
9544 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9545 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9546 #t)))
9547 (add-after 'wrap-program 'glib-or-gtk-wrap
9548 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9549 (home-page "https://gnometerminator.blogspot.com/")
9550 (synopsis "Store and run multiple GNOME terminals in one window")
9551 (description
9552 "Terminator allows you to run multiple GNOME terminals in a grid and
9553+tabs, and it supports drag and drop re-ordering of terminals.")
9554 (license license:gpl2)))
213315d4
JF
9555
9556(define-public libhandy
9557 (package
9558 (name "libhandy")
f6501b9f 9559 (version "0.0.12")
213315d4
JF
9560 (source
9561 (origin
9562 (method git-fetch)
9563 (uri (git-reference
9564 (url "https://source.puri.sm/Librem5/libhandy")
9565 (commit (string-append "v" version))))
9566 (file-name (git-file-name name version))
9567 (sha256
f6501b9f 9568 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9569 (build-system meson-build-system)
9570 (arguments
9571 `(#:configure-flags
9572 '("-Dglade_catalog=disabled"
9573 "-Dgtk_doc=true")
9574 #:phases
9575 (modify-phases %standard-phases
213315d4
JF
9576 (add-before 'check 'pre-check
9577 (lambda _
9578 ;; Tests require a running X server.
9579 (system "Xvfb :1 &")
9580 (setenv "DISPLAY" ":1")
9581 #t)))))
9582 (inputs
9583 `(("gtk+" ,gtk+)))
9584 (native-inputs
9585 `(("glib:bin" ,glib "bin")
9586 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9587 ("vala" ,vala)
9588 ("gtk-doc" ,gtk-doc)
9589 ("pkg-config" ,pkg-config)
9590 ("gettext" ,gettext-minimal)
d41ee146
TGR
9591
9592 ;; Test suite dependencies.
ff337525 9593 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9594 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9595 (home-page "https://source.puri.sm/Librem5/libhandy")
9596 (synopsis "Library full of GTK+ widgets for mobile phones")
9597 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9598interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9599for usage on small and big screens.")
213315d4 9600 (license license:lgpl2.1+)))
a830d14d
GL
9601
9602(define-public libgit2-glib
9603 (package
9604 (name "libgit2-glib")
6448c2e1 9605 (version "0.99.0.1")
a830d14d
GL
9606 (source (origin
9607 (method url-fetch)
9608 (uri (string-append "mirror://gnome/sources/" name "/"
9609 (version-major+minor version) "/"
9610 name "-" version ".tar.xz"))
9611 (sha256
9612 (base32
6448c2e1 9613 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9614 (build-system meson-build-system)
9615 (native-inputs
9616 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9617 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9618 ("pkg-config" ,pkg-config)
9619 ("python-pygobject" ,python-pygobject)
9620 ("python-wrapper" ,python-wrapper)
9621 ("vala" ,vala)))
9622 (inputs
9623 `(("glib" ,glib)
8c6aae46
MB
9624 ("libssh2" ,libssh2)))
9625 (propagated-inputs
9626 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9627 ("libgit2" ,libgit2)))
9628 (synopsis "GLib wrapper around the libgit2 Git access library")
9629 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9630access library. It only implements the core plumbing functions, not really the
9631higher level porcelain stuff.")
9632 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9633 (license license:gpl2+)))
93beace0 9634
08db81c9
LP
9635(define-public gitg
9636 (package
9637 (name "gitg")
9638 (version "3.32.1")
9639 (source (origin
9640 (method url-fetch)
9641 (uri (string-append "mirror://gnome/sources/" name "/"
9642 (version-major+minor version) "/"
9643 name "-" version ".tar.xz"))
9644 (sha256
9645 (base32
9646 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9647 (build-system meson-build-system)
9648 (arguments
9649 `(#:glib-or-gtk? #t
9650 #:phases
9651 (modify-phases %standard-phases
9652 (add-after 'unpack 'disable-post-install-partially
9653 (lambda _
9654 (substitute* "meson_post_install.py"
9655 (("'python'") ; there are no python sources to compile
9656 (string-append "'" (which "true") "'"))
9657 (("gtk-update-icon-cache") (which "true")))
9658 #t))
9659 (add-after 'unpack 'fix-test-sources
9660 (lambda _
9661 (substitute* "tests/libgitg/test-commit.vala"
9662 (("/bin/bash") (which "bash")))
9663 #t))
9664 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9665 (lambda* (#:key outputs #:allow-other-keys)
9666 (let ((prog (string-append (assoc-ref outputs "out")
9667 "/bin/gitg")))
9668 (wrap-program prog
9669 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9670 #t))))))
9671 (inputs
9672 `(("glib" ,glib)
9673 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9674 ("gtk+" ,gtk+)
9675 ("gtkspell3" ,gtkspell3)
9676 ("gtksourceview" ,gtksourceview-3)
9677 ("json-glib" ,json-glib)
9678 ("libdazzle" ,libdazzle)
9679 ("libgee" ,libgee)
08db81c9
LP
9680 ("libgit2-glib" ,libgit2-glib)
9681 ("libpeas" ,libpeas)
9682 ("libsecret" ,libsecret)
9683 ("libsoup" ,libsoup)
9684 ("libxml2" ,libxml2)))
9685 (native-inputs
9686 `(("glib:bin" ,glib "bin")
9687 ("gtk+:bin" ,gtk+ "bin")
9688 ("gobject-introspection" ,gobject-introspection)
9689 ("intltool" ,intltool)
9690 ("pkg-config" ,pkg-config)
9691 ("vala" ,vala)))
9692 (synopsis "Graphical user interface for git")
9693 (description
9694 "gitg is a graphical user interface for git. It aims at being a small,
9695fast and convenient tool to visualize the history of git repositories.
9696Besides visualization, gitg also provides several utilities to manage your
9697repository and commit your work.")
9698 (home-page "https://wiki.gnome.org/Apps/Gitg")
9699 (license license:gpl2+)))
9700
1e600ed0
RW
9701(define-public gamin
9702 (package
9703 (name "gamin")
9704 (version "0.1.10")
9705 (source (origin
9706 (method url-fetch)
9707 (uri (string-append "mirror://gnome/sources/" name "/"
9708 (version-major+minor version) "/"
9709 name "-" version ".tar.bz2"))
9710 (sha256
9711 (base32
9712 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9713 (build-system gnu-build-system)
9714 (arguments
9715 `(#:phases
9716 (modify-phases %standard-phases
9717 (add-after 'unpack 'remove-deprecated-macro
9718 (lambda _
9719 (substitute* '("server/gam_node.c"
9720 "server/gam_subscription.h"
9721 "server/gam_node.h"
9722 "server/gam_subscription.c")
9723 (("G_CONST_RETURN") "const"))
9724 #t)))))
9725 (inputs
9726 `(("glib" ,glib)))
9727 (native-inputs
9728 `(("intltool" ,intltool)
9729 ("pkg-config" ,pkg-config)))
9730 (home-page "https://people.gnome.org/~veillard/gamin/")
9731 (synopsis "File alteration monitor")
9732 (description
9733 "Gamin is a file and directory monitoring system defined to be a subset
9734of the FAM (File Alteration Monitor) system. This is a service provided by a
9735library which allows to detect when a file or a directory has been modified.")
9736 (license license:gpl2+)))
9737
93beace0
DW
9738(define-public gnome-mahjongg
9739 (package
9740 (name "gnome-mahjongg")
9741 (version "3.35.1")
9742 (source (origin
9743 (method git-fetch)
9744 (uri (git-reference
9745 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9746 (commit version)))
9747 (file-name (git-file-name name version))
9748 (sha256
9749 (base32
9750 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9751 (build-system meson-build-system)
9752 (arguments
9753 `(#:glib-or-gtk? #t))
9754 (native-inputs
9755 `(("appstream-glib" ,appstream-glib)
9756 ("gettext" ,gettext-minimal)
9757 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9758 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9759 ("itstool" ,itstool)
9760 ("pkg-config" ,pkg-config)
9761 ("vala" ,vala)))
9762 (propagated-inputs
9763 `(("dconf" ,dconf)))
9764 (inputs
9765 `(("glib" ,glib)
9766 ("gtk+" ,gtk+)
9767 ("librsvg" ,librsvg)))
9768 (synopsis "Mahjongg tile-matching game")
9769 (description "GNOME Mahjongg is a game based on the classic Chinese
9770tile-matching game Mahjong. It features multiple board layouts, tile themes,
9771and a high score table.")
9772 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9773 (license license:gpl2+)))
f825476c 9774
76ea7632
RG
9775(define-public gnome-themes-extra
9776 (package
9777 (name "gnome-themes-extra")
9778 (version "3.28")
9779 (source
9780 (origin
9781 (method url-fetch)
9782 (uri (string-append "mirror://gnome/sources/" name "/"
9783 (version-major+minor version) "/" name "-"
9784 version ".tar.xz"))
9785 (sha256
9786 (base32
9787 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9788 (build-system gnu-build-system)
885424bf
RG
9789 (arguments
9790 '(#:configure-flags
9791 ;; Don't create 'icon-theme.cache'.
9792 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9793 (true (string-append coreutils "/bin/true")))
9794 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9795 (native-inputs
9796 `(("glib:bin" ,glib "bin")
9797 ("intltool" ,intltool)
9798 ("pkg-config" ,pkg-config)))
9799 (inputs
9800 `(("glib" ,glib)
9801 ("gtk+" ,gtk+)
9802 ("gtk+-2" ,gtk+-2)
9803 ("librsvg" ,librsvg)
9804 ("libxml2" ,libxml2)))
9805 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9806 (synopsis "GNOME Extra Themes")
9807 (description "This package provides themes and related elements that don't
9808really fit in other upstream packages. It offers legacy support for GTK+ 2
9809versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9810index files needed for Adwaita to be used outside of GNOME.")
9811 (license license:lgpl2.1+)))
9812
f825476c
LP
9813(define-public polari
9814 (package
9815 (name "polari")
9816 (version "3.32.2")
9817 (source (origin
9818 (method url-fetch)
9819 (uri (string-append "mirror://gnome/sources/polari/"
9820 (version-major+minor version)
9821 "/polari-" version ".tar.xz"))
9822 (sha256
9823 (base32
9824 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9825 (build-system meson-build-system)
9826 (arguments
9827 `(#:glib-or-gtk? #t
9828 #:phases
9829 (modify-phases %standard-phases
9830 (add-after 'unpack 'skip-gtk-update-icon-cache
9831 (lambda _
9832 (substitute* "meson/meson-postinstall.sh"
9833 (("gtk-update-icon-cache") (which "true")))
9834 #t))
9835 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9836 (lambda* (#:key outputs #:allow-other-keys)
9837 (let ((prog (string-append (assoc-ref outputs "out")
9838 "/bin/polari")))
9839 (wrap-program prog
9840 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9841 #t))))))
9842 (inputs
9843 `(("glib" ,glib)
9844 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9845 ("gspell" ,gspell)
9846 ("gtk+" ,gtk+)
9847 ("gjs" ,gjs)
9848 ("libsecret" ,libsecret)
9849 ("libsoup" ,libsoup)
9850 ("telepathy-glib" ,telepathy-glib)
9851 ("telepathy-logger" ,telepathy-logger)))
9852 (native-inputs
9853 `(("glib:bin" ,glib "bin")
9854 ("gobject-introspection" ,gobject-introspection)
9855 ("intltool" ,intltool)
9856 ("pkg-config" ,pkg-config)
9857 ("yelp-tools" ,yelp-tools)))
9858 (propagated-inputs
9859 `(("telepathy-idle" ,telepathy-idle)
9860 ("telepathy-mission-control" ,telepathy-mission-control)))
9861 (synopsis "Simple IRC Client")
9862 (description
9863 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9864integrate seamlessly with the GNOME desktop.")
9865 (home-page "https://wiki.gnome.org/Apps/Polari")
9866 (license license:gpl2+)))
59d4c8c2
PN
9867
9868(define-public gnome-boxes
9869 (package
9870 (name "gnome-boxes")
9871 (version "3.35.91")
9872 (source
9873 (origin
9874 (method url-fetch)
9875 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9876 (version-major+minor version) "/"
9877 "gnome-boxes-" version ".tar.xz"))
9878 (sha256
9879 (base32
9880 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9881 (build-system meson-build-system)
9882 (arguments
9883 '(#:glib-or-gtk? #t
9884 #:configure-flags (list "-Drdp=false"
9885 (string-append "-Dc_link_args=-Wl,-rpath="
9886 (assoc-ref %outputs "out")
9887 "/lib/gnome-boxes"))))
9888 (native-inputs
9889 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9890 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9891 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9892 ("itstool" ,itstool)
9893 ("intltool" ,intltool)
9894 ("vala" ,vala)
9895 ("pkg-config" ,pkg-config)))
9896 (inputs
9897 `(("libarchive" ,libarchive)
9898 ("gtk" ,gtk+)
9899 ("gtk-vnc" ,gtk-vnc)
9900 ("libosinfo" ,libosinfo)
9901 ("libsecret" ,libsecret)
9902 ("libsoup" ,libsoup)
9903 ("libusb" ,libusb)
9904 ("libvirt" ,libvirt)
9905 ("libvirt-glib" ,libvirt-glib)
9906 ("libxml" ,libxml2)
9907 ("spice-gtk" ,spice-gtk)
9908 ("sparql-query" ,sparql-query)
9909 ("vte" ,vte)
9910 ("webkitgtk" ,webkitgtk)
9911 ("tracker" ,tracker)
9912 ("libgudev" ,libgudev)))
9913 (home-page "https://wiki.gnome.org/Apps/Boxes")
9914 (synopsis "View, access, and manage remote and virtual systems")
9915 (description "GNOME Boxes is a simple application to view, access, and
9916manage remote and virtual systems.")
9917 (license (list
9918 ;; For data/icons/empty-boxes.png.
9919 license:cc-by2.0
9920 ;; For all others.
9921 license:lgpl2.0+))))