gnu: r-curl: Fix patch to respect CURL_CA_BUNDLE.
[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>
ed783404 11;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 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>
3861fb1c 47;;; Copyright © 2019, 2020 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>
0e26c3cf 50;;; Copyright © 2020 raingloom <raingloom@riseup.net>
995b7261
AE
51;;;
52;;; This file is part of GNU Guix.
53;;;
54;;; GNU Guix is free software; you can redistribute it and/or modify it
55;;; under the terms of the GNU General Public License as published by
56;;; the Free Software Foundation; either version 3 of the License, or (at
57;;; your option) any later version.
58;;;
59;;; GNU Guix is distributed in the hope that it will be useful, but
60;;; WITHOUT ANY WARRANTY; without even the implied warranty of
61;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
62;;; GNU General Public License for more details.
63;;;
64;;; You should have received a copy of the GNU General Public License
65;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
66
67(define-module (gnu packages gnome)
ed19903d 68 #:use-module (gnu packages)
ba5dd105 69 #:use-module (gnu packages admin)
411ba511 70 #:use-module (gnu packages aspell)
75016d07 71 #:use-module (gnu packages autotools)
7b212526 72 #:use-module (gnu packages avahi)
b29909b4 73 #:use-module (gnu packages backup)
6a180f6f 74 #:use-module (gnu packages base)
1e33331c 75 #:use-module (gnu packages bash)
5698b8b8 76 #:use-module (gnu packages bison)
aa51d92c 77 #:use-module (gnu packages boost)
5fc9b6c1 78 #:use-module (gnu packages build-tools)
df217748 79 #:use-module (gnu packages calendar)
b29909b4 80 #:use-module (gnu packages cdrom)
df12f04a 81 #:use-module (gnu packages check)
d61a894b 82 #:use-module (gnu packages cmake)
b29909b4 83 #:use-module (gnu packages compression)
8f523eb9 84 #:use-module (gnu packages crates-io)
23a22af6 85 #:use-module (gnu packages cups)
6e1bb642 86 #:use-module (gnu packages curl)
c3f29bc9 87 #:use-module (gnu packages cyrus-sasl)
6e1bb642 88 #:use-module (gnu packages databases)
255d1bbe 89 #:use-module (gnu packages dbm)
c769cf9f 90 #:use-module (gnu packages djvu)
ba5dd105 91 #:use-module (gnu packages dns)
b4ce6300 92 #:use-module (gnu packages docbook)
b29909b4 93 #:use-module (gnu packages documentation)
329d731b 94 #:use-module (gnu packages enchant)
b29909b4
TGR
95 #:use-module (gnu packages flex)
96 #:use-module (gnu packages fonts)
e762d943 97 #:use-module (gnu packages file-systems)
a56be436 98 #:use-module (gnu packages fontutils)
b29909b4 99 #:use-module (gnu packages freedesktop)
dfc407f3 100 #:use-module (gnu packages game-development)
fed5a689 101 #:use-module (gnu packages gettext)
b29909b4
TGR
102 #:use-module (gnu packages ghostscript)
103 #:use-module (gnu packages gl)
995b7261 104 #:use-module (gnu packages glib)
c1354b90 105 #:use-module (gnu packages gnupg)
23a22af6 106 #:use-module (gnu packages gnuzilla)
8d8c6bff 107 #:use-module (gnu packages geo)
b29909b4
TGR
108 #:use-module (gnu packages gperf)
109 #:use-module (gnu packages graphviz)
85f5dc19 110 #:use-module (gnu packages gstreamer)
d9c1a22b 111 #:use-module (gnu packages gtk)
6b888eff 112 #:use-module (gnu packages guile)
b645146f 113 #:use-module (gnu packages ibus)
03be9874 114 #:use-module (gnu packages icu4c)
b29909b4
TGR
115 #:use-module (gnu packages image)
116 #:use-module (gnu packages imagemagick)
117 #:use-module (gnu packages inkscape)
9cc98f8a 118 #:use-module (gnu packages iso-codes)
b29909b4 119 #:use-module (gnu packages kerberos)
85f5dc19 120 #:use-module (gnu packages libcanberra)
b64e217f 121 #:use-module (gnu packages libunistring)
0e26c3cf 122 #:use-module (gnu packages libunwind)
75016d07 123 #:use-module (gnu packages libusb)
b29909b4 124 #:use-module (gnu packages linux)
4e3fc547 125 #:use-module (gnu packages lirc)
7b212526 126 #:use-module (gnu packages lua)
b29909b4 127 #:use-module (gnu packages mail)
03be9874 128 #:use-module (gnu packages mp3)
b29909b4 129 #:use-module (gnu packages multiprecision)
64fce637 130 #:use-module (gnu packages music)
b29909b4
TGR
131 #:use-module (gnu packages ncurses)
132 #:use-module (gnu packages nettle)
ba5dd105 133 #:use-module (gnu packages networking)
5fc9b6c1 134 #:use-module (gnu packages ninja)
aff0cce9 135 #:use-module (gnu packages nss)
b29909b4 136 #:use-module (gnu packages openldap)
b645146f 137 #:use-module (gnu packages password-utils)
de1215e2 138 #:use-module (gnu packages pcre)
b29909b4 139 #:use-module (gnu packages pdf)
27477d2d 140 #:use-module (gnu packages perl)
f70d8383 141 #:use-module (gnu packages photo)
995b7261 142 #:use-module (gnu packages pkg-config)
b29909b4
TGR
143 #:use-module (gnu packages polkit)
144 #:use-module (gnu packages popt)
7d3bb433 145 #:use-module (gnu packages pretty-print)
23a22af6 146 #:use-module (gnu packages pulseaudio)
995b7261 147 #:use-module (gnu packages python)
00014781
RW
148 #:use-module (gnu packages python-crypto)
149 #:use-module (gnu packages python-web)
44d10b1f 150 #:use-module (gnu packages python-xyz)
cce0da5e 151 #:use-module (gnu packages rdesktop)
b29909b4 152 #:use-module (gnu packages readline)
a76d0f03 153 #:use-module (gnu packages ruby)
ec47c07d 154 #:use-module (gnu packages rust)
b29909b4 155 #:use-module (gnu packages samba)
75016d07 156 #:use-module (gnu packages scanner)
240cee8a 157 #:use-module (gnu packages selinux)
c27e02bf 158 #:use-module (gnu packages slang)
b29909b4
TGR
159 #:use-module (gnu packages speech)
160 #:use-module (gnu packages spice)
cd0322a3 161 #:use-module (gnu packages sqlite)
4a1bf090 162 #:use-module (gnu packages ssh)
8f9ac901 163 #:use-module (gnu packages tex)
33dc54b0 164 #:use-module (gnu packages time)
a7fd7b68 165 #:use-module (gnu packages tls)
3c5dbd2b 166 #:use-module (gnu packages version-control)
b29909b4 167 #:use-module (gnu packages video)
59132b80 168 #:use-module (gnu packages virtualization)
f2b96b3a 169 #:use-module (gnu packages vpn)
a18f8eaf 170 #:use-module (gnu packages web)
b29909b4
TGR
171 #:use-module (gnu packages webkit)
172 #:use-module (gnu packages xdisorg)
173 #:use-module (gnu packages xiph)
174 #:use-module (gnu packages xml)
d633f2f6 175 #:use-module (gnu packages xorg)
a76d0f03 176 #:use-module (gnu artwork)
8f523eb9 177 #:use-module (guix build-system cargo)
b29909b4
TGR
178 #:use-module (guix build-system cmake)
179 #:use-module (guix build-system glib-or-gtk)
180 #:use-module (guix build-system gnu)
181 #:use-module (guix build-system meson)
08be02be 182 #:use-module (guix build-system python)
b29909b4
TGR
183 #:use-module (guix build-system trivial)
184 #:use-module (guix download)
185 #:use-module (guix git-download)
186 #:use-module ((guix licenses) #:prefix license:)
187 #:use-module (guix packages)
188 #:use-module (guix utils)
a76d0f03 189 #:use-module (guix gexp)
8f523eb9
EF
190 #:use-module (guix monads)
191 #:use-module (guix store)
4e3fdeb7 192 #:use-module (ice-9 match)
c024ae36 193 #:use-module (srfi srfi-1))
85f5dc19
AE
194
195(define-public brasero
196 (package
197 (name "brasero")
e2bf423a 198 (version "3.12.2")
85f5dc19
AE
199 (source (origin
200 (method url-fetch)
d1df7554 201 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 202 (version-major+minor version) "/"
d1df7554 203 "brasero-" version ".tar.xz"))
85f5dc19
AE
204 (sha256
205 (base32
e2bf423a 206 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 207 (build-system glib-or-gtk-build-system)
e8627cd9
DH
208 (arguments
209 `(#:configure-flags (list
210 (string-append "--with-girdir="
211 (assoc-ref %outputs "out")
212 "/share/gir-1.0")
213 (string-append "--with-typelibdir="
214 (assoc-ref %outputs "out")
ce426deb
TD
215 "/lib/girepository-1.0"))
216 #:phases
217 (modify-phases %standard-phases
218 (add-before 'configure 'embed-growisofs
219 (lambda* (#:key inputs #:allow-other-keys)
220 (substitute* "plugins/growisofs/burn-growisofs.c"
221 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 222 #t)))))
85f5dc19
AE
223 (propagated-inputs
224 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
225 (native-inputs
226 `(("intltool" ,intltool)
ba549e17 227 ("itstool" ,itstool)
426adbe8 228 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 229 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 230 ("pkg-config" ,pkg-config)))
85f5dc19 231 (inputs
ce426deb
TD
232 `(("dvd+rw-tools" ,dvd+rw-tools)
233 ("glib" ,glib)
85f5dc19
AE
234 ("gnome-doc-utils" ,gnome-doc-utils)
235 ("gstreamer" ,gstreamer)
236 ("gst-plugins-base" ,gst-plugins-base)
237 ("gtk+" ,gtk+)
85f5dc19
AE
238 ("libcanberra" ,libcanberra)
239 ("libice" ,libice)
240 ("libnotify" ,libnotify)
241 ("libsm" ,libsm)
e8627cd9 242 ("libxml2" ,libxml2)
e8627cd9 243 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 244 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
245 (synopsis "CD/DVD burning tool for Gnome")
246 (description "Brasero is an application to burn CD/DVD for the Gnome
247Desktop. It is designed to be as simple as possible and has some unique
248features to enable users to create their discs easily and quickly.")
1dd26275 249 (license license:gpl2+)))
995b7261 250
e05ce17d
RG
251(define-public phodav
252 (package
253 (name "phodav")
254 (version "2.4")
255 (source (origin
256 (method url-fetch)
257 (uri (string-append "mirror://gnome/sources/" name "/"
258 (version-major+minor version) "/"
259 name "-" version ".tar.xz"))
260 (sha256
261 (base32
262 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
263 (build-system meson-build-system)
264 (native-inputs
265 `(("gettext" ,gettext-minimal)
266 ("glib:bin" ,glib "bin")
267 ("gtk-doc" ,gtk-doc)
268 ("pkg-config" ,pkg-config)))
269 (inputs
270 `(("avahi" ,avahi)
271 ("libgudev" ,libgudev)
272 ("libsoup" ,libsoup)))
273 (synopsis "WebDav server implementation using libsoup")
274 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
275but it is generic enough to be reused in other projects,
276in particular in the GNOME desktop.")
277 (home-page "https://wiki.gnome.org/phodav")
278 (license license:lgpl2.1+)))
279
29ae18db
RG
280(define-public gnome-color-manager
281 (package
282 (name "gnome-color-manager")
283 (version "3.32.0")
284 (source (origin
285 (method url-fetch)
286 (uri (string-append "mirror://gnome/sources/" name "/"
287 (version-major+minor version) "/"
288 name "-" version ".tar.xz"))
289 (sha256
290 (base32
291 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
292 (build-system meson-build-system)
293 (arguments
294 `(#:glib-or-gtk? #t
295 #:phases
296 (modify-phases %standard-phases
297 (add-before
298 'check 'pre-check
299 (lambda _
300 ;; Tests require a running X server.
301 (system "Xvfb :1 &")
302 (setenv "DISPLAY" ":1")
303 #t)))))
304 (native-inputs
305 `(("desktop-file-utils" ,desktop-file-utils)
306 ("gettext" ,gettext-minimal)
307 ("glib:bin" ,glib "bin")
308 ("gtk+:bin" ,gtk+ "bin")
309 ("itstool" ,itstool)
310 ("pkg-config" ,pkg-config)
311 ("xorg-server" ,xorg-server-for-tests)))
312 (inputs
313 `(("adwaita-icon-theme" ,adwaita-icon-theme)
314 ("appstream-glib" ,appstream-glib)
315 ("colord-gtk" ,colord-gtk)
316 ("exiv2" ,exiv2)
317 ("gnome-desktop" ,gnome-desktop)
318 ("libcanberra" ,libcanberra)
319 ("libexif" ,libexif)
320 ("libtiff" ,libtiff)
321 ("libxrandr" ,libxrandr)
322 ("libxtst" ,libxtst)
323 ("libxxf86vm" ,libxxf86vm)
324 ("vte" ,vte)
325 ("xorgproto" ,xorgproto)))
326 (synopsis "Color profile manager for the GNOME desktop")
327 (description "GNOME Color Manager is a session framework that makes
328it easy to manage, install and generate color profiles
329in the GNOME desktop.")
330 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 331 (license license:gpl2+)))
29ae18db 332
e05471a1
RG
333(define-public gnome-online-miners
334 (package
335 (name "gnome-online-miners")
336 (version "3.30.0")
337 (source (origin
338 (method url-fetch)
339 (uri (string-append "mirror://gnome/sources/" name "/"
340 (version-major+minor version) "/"
341 name "-" version ".tar.xz"))
342 (sha256
343 (base32
344 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
345 (build-system glib-or-gtk-build-system)
346 (native-inputs
347 `(("gettext" ,gettext-minimal)
348 ("glib:bin" ,glib "bin")
29ae18db 349 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
350 ("gtk+:bin" ,gtk+ "bin")
351 ("pkg-config" ,pkg-config)))
352 (inputs
353 `(("gnome-online-accounts" ,gnome-online-accounts)
354 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
355 ("grilo" ,grilo)
356 ("libgdata" ,libgdata)
357 ("libgfbgraph" ,gfbgraph)
358 ("libzapojit" ,libzapojit)
359 ("rest" ,rest)
360 ("tracker" ,tracker)))
361 (synopsis "Web Crawlers for GNOME")
362 (description "GNOME Online Miners provides a set of crawlers that
363go through your online content and index them locally in Tracker.
364It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
365 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 366 (license license:gpl2+)))
e05471a1 367
e2aed29c
RG
368(define-public gssdp
369 (package
370 (name "gssdp")
371 (version "1.2.2")
372 (source (origin
373 (method url-fetch)
374 (uri (string-append "mirror://gnome/sources/" name "/"
375 (version-major+minor version) "/"
376 name "-" version ".tar.xz"))
377 (sha256
378 (base32
379 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
380 (build-system meson-build-system)
381 (native-inputs
382 `(("gettext" ,gettext-minimal)
383 ("glib:bin" ,glib "bin")
384 ("gobject-introspection" ,gobject-introspection)
385 ("gtk-doc" ,gtk-doc)
386 ("pkg-config" ,pkg-config)
387 ("vala" ,vala)))
388 (inputs
389 `(("gtk+" ,gtk+)
390 ("libsoup" ,libsoup)))
391 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
392Protocol} for GNOME")
393 (description "This package provides a library to handle resource discovery
394and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
395a debugging tool, @command{gssdp-device-sniffer}.")
396 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
397 (license license:lgpl2.0+)))
398
291a85b2
RG
399(define-public gupnp
400 (package
401 (name "gupnp")
402 (version "1.2.2")
403 (source (origin
404 (method url-fetch)
405 (uri (string-append "mirror://gnome/sources/" name "/"
406 (version-major+minor version) "/"
407 name "-" version ".tar.xz"))
408 (sha256
409 (base32
410 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
411 (build-system meson-build-system)
412 (native-inputs
413 `(("gettext" ,gettext-minimal)
414 ("glib:bin" ,glib "bin")
415 ("gobject-introspection" ,gobject-introspection)
416 ("gtk-doc" ,gtk-doc)
417 ("pkg-config" ,pkg-config)
418 ("vala" ,vala)))
419 (inputs
420 `(("gssdp" ,gssdp)
421 ("gtk+" ,gtk+)
422 ("libsoup" ,libsoup)))
423 (synopsis "PnP API for GNOME")
424 (description "This package provides GUPnP, an object-oriented framework
425for creating UPnP devices and control points, written in C using
426@code{GObject} and @code{libsoup}.")
427 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
428 (license license:lgpl2.0+)))
429
747d7fe4
RG
430(define-public gupnp-dlna
431 (package
432 (name "gupnp-dlna")
433 (version "0.10.5")
434 (source (origin
435 (method url-fetch)
436 (uri (string-append "mirror://gnome/sources/" name "/"
437 (version-major+minor version) "/"
438 name "-" version ".tar.xz"))
439 (sha256
440 (base32
441 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
442 (build-system gnu-build-system)
443 (native-inputs
444 `(("gettext" ,gettext-minimal)
445 ("glib:bin" ,glib "bin")
446 ("gobject-introspection" ,gobject-introspection)
447 ("gtk-doc" ,gtk-doc)
448 ("libxml" ,libxml2)
449 ("pkg-config" ,pkg-config)
450 ("vala" ,vala)))
451 (inputs
452 `(("gstreamer" ,gstreamer)
453 ("gupnp" ,gupnp)))
454 (propagated-inputs
455 `(("gst-plugins-base" ,gst-plugins-base)
456 ("gst-plugins-good" ,gst-plugins-good)))
457 (synopsis "GUPnP DLNA for GNOME")
458 (description "This package provides a small utility library to
459support DLNA-related tasks such as media profile guessing, transcoding to a
460given profile, etc. DLNA is a subset of UPnP A/V.")
461 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
462 (license license:lgpl2.0+)))
463
1b4cb628
RG
464(define-public gupnp-av
465 (package
466 (name "gupnp-av")
467 (version "0.12.11")
468 (source (origin
469 (method url-fetch)
470 (uri (string-append "mirror://gnome/sources/" name "/"
471 (version-major+minor version) "/"
472 name "-" version ".tar.xz"))
473 (sha256
474 (base32
475 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
476 (build-system gnu-build-system)
477 (native-inputs
478 `(("gettext" ,gettext-minimal)
479 ("glib:bin" ,glib "bin")
480 ("gobject-introspection" ,gobject-introspection)
481 ("gtk-doc" ,gtk-doc)
482 ("libxml" ,libxml2)
483 ("pkg-config" ,pkg-config)))
484 (inputs
485 `(("gtk+" ,gtk+)
486 ("gupnp" ,gupnp)))
487 (synopsis "GUPnP A/V for GNOME")
488 (description "This package provides a small library for handling
489and implementation of UPnP A/V profiles.")
490 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
491 (license license:lgpl2.0+)))
492
02ebbca8
RG
493(define-public libmediaart
494 (package
495 (name "libmediaart")
496 (version "1.9.4")
497 (source (origin
498 (method url-fetch)
499 (uri (string-append "mirror://gnome/sources/" name "/"
500 (version-major+minor version) "/"
501 name "-" version ".tar.xz"))
502 (sha256
503 (base32
504 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
505 (build-system gnu-build-system)
506 (native-inputs
507 `(("glib:bin" ,glib "bin")
508 ("pkg-config" ,pkg-config)))
509 (inputs
510 `(("gdk-pixbuf" ,gdk-pixbuf)
511 ("gettext" ,gettext-minimal)
512 ("gobject-introspection" ,gobject-introspection)
513 ("gtk+:doc", gtk+ "doc")
514 ("vala" ,vala)))
515 (synopsis "Media art library for the GNOME desktop")
516 (description
517 "The libmediaart library is the foundation for media art caching,
518extraction, and lookup for applications on the desktop.")
519 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
520 (license license:lgpl2.1+)))
521
a26680eb
RG
522(define-public gnome-initial-setup
523 (package
524 (name "gnome-initial-setup")
525 (version "3.32.1")
526 (source (origin
527 (method url-fetch)
528 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
529 (version-major+minor version)
530 "/gnome-initial-setup-" version ".tar.xz"))
531 (sha256
532 (base32
533 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
534 (build-system meson-build-system)
535 (arguments
a65cc579
DM
536 '(#:configure-flags '(;; Enable camera support for user selfie.
537 "-Dcheese=auto"
538 "-Dsystemd=false")))
a26680eb
RG
539 (native-inputs
540 `(("gettext" ,gettext-minimal)
541 ("glib:bin" ,glib "bin")
542 ("gobject-introspection" ,gobject-introspection)
543 ("gtk+:bin" ,gtk+ "bin")
544 ("pkg-config" ,pkg-config)))
545 (inputs
546 `(("accountsservice" ,accountsservice)
547 ;("adwaita-icon-theme" ,adwaita-icon-theme)
548 ("gdm" ,gdm)
549 ("geoclue" ,geoclue)
550 ("gnome-desktop" ,gnome-desktop)
551 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
552 ("gnome-online-accounts" ,gnome-online-accounts)
553 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
554 ("gstreamer" ,gstreamer)
555 ("ibus" ,ibus)
556 ("json-glib" ,json-glib)
557 ("krb5" ,mit-krb5)
558 ("libgweather" ,libgweather)
559 ("libsecret" ,libsecret)
560 ("network-manager" ,network-manager)
561 ("network-manager-applet" ,network-manager-applet)
562 ("packagekit" ,packagekit)
563 ("polkit" ,polkit)
564 ("pwquality" ,libpwquality)
565 ("rest" ,rest)
566 ("upower" ,upower)
567 ("webkitgtk" ,webkitgtk)))
568 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
569 (description "This package provides a set-up wizard when a
570user logs into GNOME for the first time. It typically provides a
571tour of all gnome components and allows the user to set them up.")
a26680eb
RG
572 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
573 (license license:gpl2)))
574
b5f01392
RG
575(define-public gnome-user-share
576 (package
577 (name "gnome-user-share")
578 (version "3.33.1")
579 (source (origin
580 (method url-fetch)
581 (uri (string-append "mirror://gnome/sources/" name "/"
582 (version-major+minor version) "/"
583 name "-" version ".tar.xz"))
584 (sha256
585 (base32
586 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
587 (build-system meson-build-system)
588 (arguments
589 `(#:glib-or-gtk? #t
590 #:configure-flags
591 `("-Dsystemd=false"
592 ;; Enable nautilus extension for file sharing.
593 "-Dnautilus_extension=true")))
594 (native-inputs
595 `(("gettext" ,gettext-minimal)
596 ("glib:bin" ,glib "bin")
597 ("gobject-introspection" ,gobject-introspection)
598 ("gtk+:bin" ,gtk+ "bin")
599 ("pkg-config" ,pkg-config)
600 ("yelp-tools" ,yelp-tools)))
601 (inputs
602 `(("glib" ,glib)
603 ("gnome-bluetooth" ,gnome-bluetooth)
604 ("gtk+" ,gtk+)
605 ("libcanberra" ,libcanberra)
606 ("libnotify" ,libnotify)
607 ("nautilus" ,nautilus))) ; For nautilus extension.
608 (synopsis "File sharing for GNOME desktop")
609 (description "GNOME User Share is a small package that binds together
610various free software projects to bring easy to use user-level file
611sharing to the masses.")
612 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 613 (license license:gpl2+)))
b5f01392 614
04b201bb
RG
615(define-public sushi
616 (package
617 (name "sushi")
618 (version "3.32.1")
619 (source (origin
620 (method url-fetch)
621 (uri (string-append "mirror://gnome/sources/" name "/"
622 (version-major+minor version) "/"
623 name "-" version ".tar.xz"))
624 (sha256
625 (base32
626 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
627 (build-system meson-build-system)
628 (arguments
629 `(#:glib-or-gtk? #t
630 #:phases
631 (modify-phases %standard-phases
632 (add-after 'glib-or-gtk-wrap 'wrap-typelib
633 (lambda* (#:key outputs #:allow-other-keys)
634 (let ((prog (string-append (assoc-ref outputs "out")
635 "/bin/sushi")))
636 ;; Put existing typelibs before sushi's deps, so as to correctly
637 ;; infer gdk-pixbuf
638 (wrap-program prog
639 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
640 #t))))))
641 (native-inputs
642 `(("glib:bin" ,glib "bin")
643 ("gettext" ,gettext-minimal)
644 ("gobject-introspection" ,gobject-introspection)
645 ("pkg-config" ,pkg-config)))
646 (inputs
647 `(("clutter" ,clutter)
648 ("clutter-gst" ,clutter-gst)
649 ("clutter-gtk" ,clutter-gtk)
650 ("evince" ,evince) ; For file previewing.
651 ("freetype" ,freetype)
652 ("gdk-pixbuf" ,gdk-pixbuf)
653 ("gjs" ,gjs)
654 ("gst-plugins-base" ,gst-plugins-base)
655 ("gstreamer" ,gstreamer)
656 ("gtksourceview" ,gtksourceview-3)
657 ("harfbuzz" ,harfbuzz)
658 ("libepoxy" ,libepoxy)
659 ("libmusicbrainz" ,libmusicbrainz)
660 ("libxml2" ,libxml2)
661 ("neon" ,neon)
662 ("webkitgtk" ,webkitgtk)))
663 (synopsis "File previewer for the GNOME desktop")
664 (description "Sushi is a DBus-activated service that allows applications to
665preview files on the GNOME desktop.")
666 (home-page "https://gitlab.gnome.org/GNOME/sushi")
667 (license license:gpl2+)))
668
89af0902
RG
669(define-public rygel
670 (package
671 (name "rygel")
672 (version "0.38.3")
673 (source (origin
674 (method url-fetch)
675 (uri (string-append "mirror://gnome/sources/" name "/"
676 (version-major+minor version) "/"
677 name "-" version ".tar.xz"))
678 (sha256
679 (base32
680 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
681 (build-system gnu-build-system)
682 (native-inputs
683 `(("gettext" ,gettext-minimal)
684 ("gobject-introspection" ,gobject-introspection)
685 ("gtk-doc" ,gtk-doc)
686 ("pkg-config" ,pkg-config)
687 ("vala" ,vala)))
688 (inputs
689 `(("gdk-pixbuf" ,gdk-pixbuf)
690 ("gssdp" ,gssdp)
691 ("gstreamer" ,gstreamer)
692 ("gst-plugins-base" ,gst-plugins-base)
693 ("gtk+" ,gtk+)
694 ("gupnp" ,gupnp)
695 ("gupnp-av" ,gupnp-av)
696 ("gupnp-dlna" ,gupnp-dlna)
697 ("libgee" ,libgee)
698 ("libmediaart" ,libmediaart)
699 ("libsoup" ,libsoup)
700 ("libxslt" ,libxslt)
701 ("libunistring" ,libunistring)
702 ("tracker" ,tracker)))
703 (synopsis "Share audio, video, and pictures with other devices")
704 (description
705 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
706MediaRenderer}) for GNOME that allows you to easily share audio, video, and
707pictures, and to control a media player on your home network.
708
709Rygel achieves interoperability with other devices by trying to conform to the
710strict requirements of DLNA and by converting media on-the-fly to formats that
711client devices can handle.")
712 (home-page "https://wiki.gnome.org/Projects/Rygel")
713 (license (list
714 ;; For logo (data/icons/*).
715 license:cc-by-sa3.0
716 ;; For all others.
717 license:lgpl2.1+))))
718
47e87093
RG
719(define-public libnma
720 (package
721 (name "libnma")
722 (version "1.8.26")
723 (source (origin
724 (method url-fetch)
725 (uri (string-append "mirror://gnome/sources/" name "/"
726 (version-major+minor version) "/"
727 name "-" version ".tar.xz"))
728 (sha256
729 (base32
730 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
731 (build-system meson-build-system)
732 (arguments
733 `(#:glib-or-gtk? #t))
734 (native-inputs
735 `(("gettext" ,gettext-minimal)
736 ("glib:bin" ,glib "bin")
737 ("gtk-doc" ,gtk-doc)
738 ("gobject-introspection" ,gobject-introspection)
739 ("pkg-config" ,pkg-config)))
740 (inputs
741 `(("adwaita-icon-theme" ,adwaita-icon-theme)
742 ("gcr" ,gcr)
743 ("gtk+" ,gtk+)
744 ("iso-codes" ,iso-codes)
745 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
746 ("network-manager" ,network-manager)))
747 (synopsis "Network Manager's applet library")
748 (description "Libnma is an applet library for Network Manager. It was
749initially part of network-manager-applet and has now become a separate
750project.")
751 (home-page "https://gitlab.gnome.org/GNOME/libnma")
752
753 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
754 ;; "LGPL-2.1+".
755 (license license:gpl2+)))
756
30416265
RG
757(define-public gnome-menus
758 (package
759 (name "gnome-menus")
760 (version "3.32.0")
761 (source (origin
762 (method url-fetch)
763 (uri (string-append "mirror://gnome/sources/gnome-menus/"
764 (version-major+minor version) "/"
765 name "-" version ".tar.xz"))
766 (sha256
767 (base32
768 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
769 (build-system gnu-build-system)
770 (native-inputs
771 `(("gettext" ,gettext-minimal)
772 ("glib" ,glib)
773 ("pkg-config" ,pkg-config)))
774 (synopsis "Menu support for GNOME desktop")
775 (description "GNOME Menus contains the libgnome-menu library, the layout
776configuration files for the GNOME menu, as well as a simple menu editor.")
777 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 778 (license license:lgpl2.0+)))
30416265 779
d61a894b
CB
780(define-public deja-dup
781 (package
782 (name "deja-dup")
783 (version "34.3")
784 (source (origin
785 (method url-fetch)
786 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
787 (sha256
788 (base32
789 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
790 (patches
791 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
792 (build-system glib-or-gtk-build-system)
793 (arguments
794 `(#:modules ((guix build gnu-build-system)
795 ((guix build cmake-build-system) #:prefix cmake:)
796 (guix build glib-or-gtk-build-system)
797 (guix build utils))
798 #:imported-modules (,@%glib-or-gtk-build-system-modules
799 (guix build cmake-build-system))
800 #:test-target "test"
801 #:configure-flags (list (string-append
802 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
803 (string-append
804 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
805 #:phases
806 (modify-phases %standard-phases
807 (add-after 'unpack 'patch-lockfile-deletion
808 (lambda rest
809 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
810 (("/bin/rm")
811 (which "rm")))))
812 (replace 'configure
813 (assoc-ref cmake:%standard-phases 'configure))
814 (delete 'check) ;; Fails due to issues with DBus
815 (add-after 'install 'wrap-deja-dup
816 (lambda* (#:key inputs outputs #:allow-other-keys)
817 (let ((python (assoc-ref inputs "python"))
818 (python-path (getenv "PYTHONPATH"))
819 (duplicity (assoc-ref inputs "duplicity"))
820 (out (assoc-ref outputs "out")))
821 (for-each
822 (lambda (program)
823 (wrap-program program
824 `("PATH" ":" prefix (,(string-append python "/bin")
825 ,(string-append duplicity "/bin"))))
826 (wrap-program program
827 `("PYTHONPATH" ":" prefix (,python-path))))
828
829 (find-files (string-append out "/bin")))
830 #t))))))
831 (inputs
832 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
833 ("gobject-introspection" ,gobject-introspection)
834 ("duplicity" ,duplicity)
61506fe5 835 ("python" ,python-2)
d61a894b
CB
836 ("python-pygobject" ,python2-pygobject)
837 ("gtk+" ,gtk+)
838 ("libnotify" ,libnotify)
839 ("libpeas" ,libpeas)
840 ("libsecret" ,libsecret)
841 ("packagekit" ,packagekit)))
842 (native-inputs
843 `(("pkg-config" ,pkg-config)
844 ("vala" ,vala)
845 ("gettext" ,gettext-minimal)
846 ("itstool" ,itstool)
847 ("intltool" ,intltool)
c69959f0 848 ("cmake" ,cmake-minimal)))
d61a894b
CB
849 (home-page "https://launchpad.net/deja-dup")
850 (synopsis "Simple backup tool, for regular encrypted backups")
851 (description
852 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
853uses duplicity as the backend, which supports incremental backups and storage
854either on a local, or remote machine via a number of methods.")
855 (license license:gpl3+)))
856
823b77fb
RG
857(define-public gnome-user-docs
858 (package
859 (name "gnome-user-docs")
860 (version "3.32.3")
861 (source
862 (origin
863 (method url-fetch)
864 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
865 (version-major+minor version)
866 "/gnome-user-docs-" version ".tar.xz"))
867 (sha256
868 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
869 (build-system gnu-build-system)
870 (native-inputs
871 `(("gettext" ,gettext-minimal)
872 ("itstool" ,itstool)
873 ("pkg-config" ,pkg-config)
874 ("xmllint" ,libxml2)))
875 (synopsis "User documentation for the GNOME desktop")
876 (description
877 "The GNOME User Documentation explains how to use the GNOME desktop and its
878components. It covers usage and setup of the core GNOME programs by end-users
879and system administrators.")
880 (home-page "https://live.gnome.org/DocumentationProject")
881 (license license:cc-by3.0)))
882
be93299d
RG
883(define-public gnome-getting-started-docs
884 (package
885 (name "gnome-getting-started-docs")
886 (version "3.32.2")
887 (source
888 (origin
889 (method url-fetch)
890 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
891 (version-major+minor version)
892 "/gnome-getting-started-docs-" version ".tar.xz"))
893 (sha256
894 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
895 (build-system gnu-build-system)
896 (native-inputs
897 `(("gettext" ,gettext-minimal)
898 ("itstool" ,itstool)
899 ("pkg-config" ,pkg-config)
900 ("xmllint" ,libxml2)))
901 (synopsis "Help to get new users started with the GNOME desktop")
902 (description
903 "The GNOME Getting Started Documentation contains GNOME's intuitive
904\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
905
906It is normally used together with @command{gnome-initial-setup}, but is also
907useful as a tutorial and users' guide for new or less experienced users.")
908 (home-page "https://live.gnome.org/DocumentationProject")
909 (license license:cc-by-sa3.0)))
910
a56be436
RJ
911(define-public dia
912 ;; This version from GNOME's repository includes fixes for compiling with
913 ;; recent versions of the build tools. The latest activity on the
914 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
915 ;; fixes in 2016.
916 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
917 (package
918 (name "dia")
914c8cdf 919 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
920 (source (origin
921 (method git-fetch)
922 (uri (git-reference
914c8cdf 923 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 924 (commit commit)))
914c8cdf 925 (file-name (git-file-name name version))
a56be436
RJ
926 (sha256
927 (base32
928 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
929 (build-system gnu-build-system)
930 (inputs
a315afa3 931 `(("freetype" ,freetype)
a56be436
RJ
932 ("gdk-pixbuf" ,gdk-pixbuf)
933 ("gtk+" ,gtk+-2)
a315afa3 934 ("libart-lgpl" ,libart-lgpl)
a56be436 935 ("libxml2" ,libxml2)
a315afa3 936 ("pango" ,pango)))
a56be436 937 (native-inputs
a315afa3 938 `(("autoconf" ,autoconf)
a56be436 939 ("automake" ,automake)
a315afa3
EF
940 ("intltool" ,intltool)
941 ("glib" ,glib "bin")
a56be436
RJ
942 ("libtool" ,libtool)
943 ("perl" ,perl)
a315afa3 944 ("pkg-config" ,pkg-config)
a56be436
RJ
945 ("python-wrapper" ,python-wrapper)))
946 (arguments
947 `(#:phases
948 (modify-phases %standard-phases
4b3e91de 949 (add-before 'bootstrap 'dont-configure-during-bootstrap
a56be436 950 (lambda _
4b3e91de
EF
951 (setenv "NOCONFIGURE" "true")
952 #t)))))
a56be436
RJ
953 (home-page "https://wiki.gnome.org/Apps/Dia")
954 (synopsis "Diagram creation for GNOME")
955 (description "Dia can be used to draw different types of diagrams, and
956includes support for UML static structure diagrams (class diagrams), entity
957relationship modeling, and network diagrams. The program supports various file
958formats like PNG, SVG, PDF and EPS.")
959 (license license:gpl2+))))
960
d0b19e44
RW
961;; This is the unstable release, but it is required for the current stable
962;; release of gvfs (1.38.1).
adc5cb1b
KK
963(define-public libgdata
964 (package
965 (name "libgdata")
d0b19e44 966 (version "0.17.9")
adc5cb1b
KK
967 (source (origin
968 (method url-fetch)
969 (uri (string-append "mirror://gnome/sources/" name "/"
970 (version-major+minor version) "/"
971 name "-" version ".tar.xz"))
972 (sha256
973 (base32
d0b19e44 974 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
975 (build-system gnu-build-system)
976 (arguments
977 '(#:phases
978 (modify-phases %standard-phases
448052b7
TGR
979 (add-before 'check 'disable-failing-tests
980 (lambda _
981 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
982 ;; They have been removed in libgdata 0.17.6, so just do the same.
983 (substitute* "gdata/tests/Makefile"
984 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
985 #t)))))
986 (native-inputs
987 `(("glib:bin" ,glib "bin")
988 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
989 ("intltool" ,intltool)
990 ("pkg-config" ,pkg-config)
991 ("uhttpmock" ,uhttpmock)))
992 (inputs
993 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 994 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
995 (propagated-inputs
996 `(("gcr" ,gcr)
d0b19e44 997 ("glib" ,glib)
14c297fd 998 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 999 ("json-glib" ,json-glib)
adc5cb1b 1000 ("liboauth" ,liboauth)
d0b19e44 1001 ("libsoup" ,libsoup)
adc5cb1b
KK
1002 ("libxml2" ,libxml2)))
1003 (home-page "https://wiki.gnome.org/Projects/libgdata")
1004 (synopsis "Library for accessing online service APIs")
1005 (description
1006 "libgdata is a GLib-based library for accessing online service APIs using
1007the GData protocol — most notably, Google's services. It provides APIs to
1008access the common Google services, and has full asynchronous support.")
1009 (license license:lgpl2.1+)))
1010
94e10cf4
KK
1011(define-public libgxps
1012 (package
1013 (name "libgxps")
66470a5a 1014 (version "0.3.1")
94e10cf4
KK
1015 (source (origin
1016 (method url-fetch)
7f10628c 1017 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1018 (version-major+minor version) "/"
1019 name "-" version ".tar.xz"))
1020 (sha256
1021 (base32
66470a5a 1022 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1023 (build-system meson-build-system)
94e10cf4
KK
1024 (native-inputs
1025 `(("gobject-introspection" ,gobject-introspection)
1026 ("pkg-config" ,pkg-config)))
1027 (inputs
c8d62d93 1028 `(("gtk+" ,gtk+)
b6b3e512 1029 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1030 ("lcms" ,lcms)
0a6e9e13 1031 ("libtiff" ,libtiff)))
c8d62d93
MB
1032 (propagated-inputs
1033 ;; In Requires of libgxps.pc.
1034 `(("cairo" ,cairo)
1035 ("glib" ,glib)
1036 ("libarchive" ,libarchive)))
94e10cf4
KK
1037 (home-page "https://wiki.gnome.org/Projects/libgxps")
1038 (synopsis "GObject-based library for handling and rendering XPS documents")
1039 (description
1040 "libgxps is a GObject-based library for handling and rendering XPS
1041documents. This package also contains binaries that can convert XPS documents
1042to other formats.")
1043 (license license:lgpl2.1+)))
1044
4e09f57a
RG
1045(define-public gnome-characters
1046 (package
1047 (name "gnome-characters")
1048 (version "3.30.0")
1049 (source
1050 (origin
1051 (method url-fetch)
1052 (uri (string-append "mirror://gnome/sources/"
1053 "gnome-characters/" (version-major+minor version)
1054 "/gnome-characters-" version ".tar.xz"))
1055 (sha256
1056 (base32
1057 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1058 (build-system meson-build-system)
5757c641 1059 (arguments
1060 `(#:glib-or-gtk? #t
1061 #:phases (modify-phases %standard-phases
1062 (add-after 'install 'wrap
1063 (lambda* (#:key outputs #:allow-other-keys)
1064 ;; GNOME Characters needs Typelib files from GTK and
1065 ;; gnome-desktop.
1066 (wrap-program (string-append (assoc-ref outputs "out")
1067 "/bin/gnome-characters")
1068 `("GI_TYPELIB_PATH" ":" prefix
1069 (,(getenv "GI_TYPELIB_PATH"))))
1070 #t)))))
4e09f57a
RG
1071 (native-inputs
1072 `(("gettext" ,gettext-minimal)
1073 ("glib:bin" ,glib "bin")
1074 ("gtk+:bin" ,gtk+ "bin")
1075 ("pkg-config" ,pkg-config)
1076 ("python" ,python-minimal)))
1077 (inputs
1078 `(("gjs" ,gjs)
1079 ("gtk+" ,gtk+)
5757c641 1080 ("libunistring" ,libunistring)
1081 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1082 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1083 (synopsis "Find and insert unusual characters")
1084 (description "Characters is a simple utility application to find
1085and insert unusual characters. It allows you to quickly find the
1086character you are looking for by searching for keywords.")
1087 (license license:bsd-3)))
1088
7aab13f1
ML
1089(define-public gnome-common
1090 (package
1091 (name "gnome-common")
af83490d 1092 (version "3.18.0")
7aab13f1
ML
1093 (source
1094 (origin
1095 (method url-fetch)
1096 (uri (string-append "mirror://gnome/sources/" name "/"
1097 (version-major+minor version) "/"
1098 name "-" version ".tar.xz"))
1099 (sha256
1100 (base32
af83490d 1101 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1102 (build-system gnu-build-system)
1103 (home-page "https://www.gnome.org/")
1104 (synopsis "Bootstrap GNOME modules built from Git")
1105 (description "gnome-common contains various files needed to bootstrap
1106GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1107can be used to configure a source directory checked out from Git and some
1108commonly used macros.")
1109 (license license:gpl2+)))
1110
4e868d22
RG
1111(define-public gnome-contacts
1112 (package
1113 (name "gnome-contacts")
6a6138b2 1114 (version "3.32.1")
4e868d22
RG
1115 (source (origin
1116 (method url-fetch)
1117 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1118 (version-major+minor version) "/"
1119 name "-" version ".tar.xz"))
1120 (sha256
1121 (base32
6a6138b2 1122 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
1123 (build-system meson-build-system)
1124 (arguments
1125 `(#:phases
1126 (modify-phases %standard-phases
1127 (add-after 'unpack 'generate-vapis
1128 (lambda* (#:key inputs #:allow-other-keys)
1129 ;; To generate goa's missing .vapi file
1130 (define goa
1131 (assoc-ref inputs "gnome-online-accounts:lib"))
1132
1133 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1134 "--library=goa-1.0"
1135 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1136 #t)))))
1137 (native-inputs
1138 `(("glib:bin" ,glib "bin")
1139 ("gtk+:bin" ,gtk+ "bin")
1140 ("pkg-config" ,pkg-config)))
1141 (inputs
1142 `(("cheese" ,cheese)
1143 ("docbook-xml" ,docbook-xml)
1144 ("dockbook-xsl" ,docbook-xsl)
1145 ("evolution-data-server" ,evolution-data-server)
1146 ("gettext" ,gettext-minimal)
1147 ("gnome-desktop" ,gnome-desktop)
1148 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1149 ("gobject-introspection" ,gobject-introspection)
1150 ("gst-plugins-base" ,gst-plugins-base)
1151 ("gtk+" ,gtk+)
1152 ("libgee" ,libgee)
1153 ("libxslt" ,libxslt)
1154 ("telepathy-glib" ,telepathy-glib)
1155 ("vala" ,vala)))
1156 (propagated-inputs
1157 `(("folks", folks)
1158 ("telepathy-mission-control" ,telepathy-mission-control)))
1159 (synopsis "GNOME's integrated address book")
1160 (description
1161 "GNOME Contacts organizes your contact information from online and
1162offline sources, providing a centralized place for managing your contacts.")
1163 (home-page "https://wiki.gnome.org/Apps/Contacts")
1164 (license license:gpl2+)))
1165
9cc98f8a
CR
1166(define-public gnome-desktop
1167 (package
1168 (name "gnome-desktop")
e8a26caa 1169 (version "3.32.2")
9cc98f8a
CR
1170 (source
1171 (origin
1172 (method url-fetch)
b38e45d8
EB
1173 (uri (string-append "mirror://gnome/sources/" name "/"
1174 (version-major+minor version) "/"
9cc98f8a
CR
1175 name "-" version ".tar.xz"))
1176 (sha256
1177 (base32
e8a26caa
KK
1178 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1179 (build-system meson-build-system)
a0fe7c06
CB
1180 (arguments
1181 '(#:phases
1182 (modify-phases %standard-phases
1183 (add-before 'configure 'patch-path
1184 (lambda* (#:key inputs #:allow-other-keys)
1185 (let ((libc (assoc-ref inputs "libc")))
1186 (substitute* "libgnome-desktop/gnome-languages.c"
1187 (("\"locale\"")
1188 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1189 #t)))
1190 (add-before 'check 'pre-check
1191 (lambda* (#:key inputs #:allow-other-keys)
1192 ;; Tests require a running X server and locales.
1193 (system "Xvfb :1 &")
1194 (setenv "DISPLAY" ":1")
1195 (setenv "GUIX_LOCPATH"
1196 (string-append (assoc-ref inputs "glibc-locales")
1197 "/lib/locale"))
1198 #t)))))
9cc98f8a 1199 (native-inputs
e8a26caa
KK
1200 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1201 ("glibc-locales" ,glibc-locales) ; for tests
1202 ("gobject-introspection" ,gobject-introspection)
a8340482 1203 ("itstool" ,itstool)
bcb354ad
SB
1204 ("intltool" ,intltool)
1205 ("pkg-config" ,pkg-config)
e8a26caa
KK
1206 ("xmllint" ,libxml2)
1207 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1208 (propagated-inputs
1209 ;; Required by gnome-desktop-3.0.pc.
1210 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1211 ("gtk+" ,gtk+)
9cc98f8a 1212 ("iso-codes" ,iso-codes)
9863ce20 1213 ("libseccomp" ,libseccomp)
9cc98f8a 1214 ("libx11" ,libx11)
e8a26caa
KK
1215 ("xkeyboard-config" ,xkeyboard-config)))
1216 (inputs
1217 `(("gdk-pixbuf" ,gdk-pixbuf)
1218 ("glib" ,glib)
9cc98f8a
CR
1219 ("libxext" ,libxext)
1220 ("libxkbfile" ,libxkbfile)
e8a26caa 1221 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1222 (home-page "https://www.gnome.org/")
1223 (synopsis
35b9e423 1224 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1225 (description
1226 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1227on the desktop, but that cannot live in the platform for various reasons.
1228There is no API or ABI guarantee, although we are doing our best to provide
1229stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1230
1231The gnome-about program helps find which version of GNOME is installed.")
1232 ; Some bits under the LGPL.
1dd26275 1233 (license license:gpl2+)))
9cc98f8a 1234
995b7261
AE
1235(define-public gnome-doc-utils
1236 (package
1237 (name "gnome-doc-utils")
1238 (version "0.20.10")
1239 (source
1240 (origin
1241 (method url-fetch)
b38e45d8
EB
1242 (uri (string-append "mirror://gnome/sources/" name "/"
1243 (version-major+minor version) "/"
995b7261
AE
1244 name "-" version ".tar.xz"))
1245 (sha256
1246 (base32
1247 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1248 (build-system gnu-build-system)
c4c4cc05 1249 (native-inputs
995b7261 1250 `(("intltool" ,intltool)
b4ce6300 1251 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1252 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1253 ("libxml2" ,libxml2)
1254 ("libxslt" ,libxslt)
1255 ("pkg-config" ,pkg-config)
1256 ("python-2" ,python-2)))
995b7261
AE
1257 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1258 (synopsis
1259 "Documentation utilities for the Gnome project")
1260 (description
1261 "Gnome-doc-utils is a collection of documentation utilities for the
1262Gnome project. It includes xml2po tool which makes it easier to translate
1263and keep up to date translations of documentation.")
1dd26275 1264 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1265
6c4f7022
DC
1266(define-public gnome-disk-utility
1267 (package
1268 (name "gnome-disk-utility")
e106d0a6 1269 (version "3.32.1")
6c4f7022
DC
1270 (source (origin
1271 (method url-fetch)
1272 (uri (string-append "mirror://gnome/sources/" name "/"
1273 (version-major+minor version) "/"
1274 name "-" version ".tar.xz"))
1275 (sha256
1276 (base32
e106d0a6 1277 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 1278 (build-system meson-build-system)
321c73c3
EF
1279 (arguments
1280 '(#:phases
1281 (modify-phases %standard-phases
1282 (add-after 'unpack 'skip-gtk-update-icon-cache
1283 ;; Don't create 'icon-theme.cache'.
1284 (lambda _
1285 (substitute* "meson_post_install.py"
1286 (("gtk-update-icon-cache") "true"))
1287 #t)))))
6c4f7022
DC
1288 (native-inputs
1289 `(("glib:bin" ,glib "bin")
1290 ("intltool" ,intltool)
1291 ("pkg-config" ,pkg-config)
1292 ("docbook-xml" ,docbook-xml)
1293 ("docbook-xsl" ,docbook-xsl)
1294 ("libxml2" ,libxml2)
1295 ("libxslt" ,libxslt)))
1296 (inputs
1297 `(("glib" ,glib)
1298 ("appstream-glib" ,appstream-glib)
1299 ("gnome-settings-daemon" ,gnome-settings-daemon)
1300 ("gtk+" ,gtk+)
1301 ("libcanberra" ,libcanberra)
1302 ("libdvdread" ,libdvdread)
1303 ("libnotify" ,libnotify)
1304 ("libpwquality" ,libpwquality)
1305 ("libsecret" ,libsecret)
1306 ("udisks" ,udisks)))
1307 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1308 (synopsis "Disk management utility for GNOME")
1309 (description "Disk management utility for GNOME.")
1310 (license license:gpl2+)))
1311
3d217317
RG
1312(define-public gnome-font-viewer
1313 (package
1314 (name "gnome-font-viewer")
1315 (version "3.30.0")
1316 (source (origin
1317 (method url-fetch)
1318 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1319 (version-major+minor version)
1320 "/gnome-font-viewer-" version ".tar.xz"))
1321 (sha256
1322 (base32
1323 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1324 (build-system meson-build-system)
1325 (arguments
1326 '(#:phases
1327 (modify-phases %standard-phases
1328 (add-after 'unpack 'patch-post-install-script
1329 (lambda _
1330 (substitute* "meson-postinstall.sh"
1331 (("update-desktop-database") (which "true")))
1332 #t)))))
1333 (native-inputs
1334 `(("gettext" ,gettext-minimal)
1335 ("glib:bin" ,glib "bin")
1336 ("pkg-config" ,pkg-config)))
1337 (inputs
1338 `(("glib" ,glib)
1339 ("gnome-desktop" ,gnome-desktop)
1340 ("gtk+" ,gtk+)))
1341 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1342 (synopsis "GNOME Fonts")
1343 (description "Application to show you the fonts installed on your computer
1344for your use as thumbnails. Selecting any thumbnails shows the full view of how
1345the font would look under various sizes.")
1346 (license license:gpl2+)))
1347
8ff49011
RW
1348(define-public gcr
1349 (package
1350 (name "gcr")
bea6b829 1351 (version "3.28.1")
8ff49011 1352 (source (origin
0daf0efb
RW
1353 (method url-fetch)
1354 (uri (string-append "mirror://gnome/sources/" name "/"
1355 (version-major+minor version) "/"
1356 name "-" version ".tar.xz"))
1357 (sha256
1358 (base32
bea6b829 1359 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
03ecf85a
MB
1360 (patches
1361 (list
1362 ;; This patch solves an ordering issue that showed up when
1363 ;; running the test suite against newer Glib 2.60. See
1364 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1365 (origin
1366 (method url-fetch)
1367 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1368 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1369 (file-name "gcr-hashtable-ordering.patch")
1370 (sha256
1371 (base32
1372 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
8ff49011
RW
1373 (build-system gnu-build-system)
1374 (arguments
0daf0efb
RW
1375 '(#:phases
1376 (modify-phases %standard-phases
1377 ;; These fail because /var/lib/dbus/machine-id is not present in the
1378 ;; build environment.
1379 (add-after 'unpack 'disable-failing-tests
1380 (lambda _
1381 (substitute* "gcr/test-system-prompt.c"
1382 (("g_test_add") "//")
1383 (("return.*") "return 0;"))
1384 #t))
1385 (add-before 'check 'pre-check
1386 (lambda _
1387 ;; Some tests expect to write to $HOME.
1388 (setenv "HOME" "/tmp")
1389 #t)))))
8ff49011
RW
1390 (inputs
1391 `(("dbus" ,dbus)
0daf0efb 1392 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1393 ("libgcrypt" ,libgcrypt)))
1394 (native-inputs
0daf0efb 1395 `(("python" ,python-2) ;for tests
8ff49011
RW
1396 ("pkg-config" ,pkg-config)
1397 ("glib" ,glib "bin")
2af4f5b0
SB
1398 ("gobject-introspection" ,gobject-introspection)
1399 ("intltool" ,intltool)
0daf0efb 1400 ("libxml2" ,libxml2)
bea6b829 1401 ("vala" ,vala)
2af4f5b0 1402 ("xsltproc" ,libxslt)))
8ff49011
RW
1403 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1404 (propagated-inputs
1405 `(("p11-kit" ,p11-kit)
1406 ("glib" ,glib)
1407 ("gtk+" ,gtk+)))
f032d0be 1408 (home-page "https://www.gnome.org")
8ff49011
RW
1409 (synopsis "Libraries for displaying certificates and accessing key stores")
1410 (description
1411 "The GCR package contains libraries used for displaying certificates and
1412accessing key stores. It also provides the viewer for crypto files on the
1413GNOME Desktop.")
1414 (license license:lgpl2.1+)))
1415
c1354b90
LC
1416(define-public libgnome-keyring
1417 (package
1418 (name "libgnome-keyring")
5e8aec2c 1419 (version "3.12.0")
c1354b90
LC
1420 (source (origin
1421 (method url-fetch)
b38e45d8
EB
1422 (uri (string-append "mirror://gnome/sources/" name "/"
1423 (version-major+minor version) "/"
1424 name "-" version ".tar.xz"))
c1354b90
LC
1425 (sha256
1426 (base32
5e8aec2c 1427 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1428 (build-system gnu-build-system)
c1354b90 1429 (inputs
c4c4cc05 1430 `(("libgcrypt" ,libgcrypt)
c1354b90 1431 ("dbus" ,dbus)))
c4c4cc05
JD
1432 (native-inputs
1433 `(("pkg-config" ,pkg-config)
426adbe8 1434 ("glib" ,glib "bin")
c4c4cc05 1435 ("intltool" ,intltool)))
c1354b90
LC
1436 (propagated-inputs
1437 ;; Referred to in .h files and .pc.
1438 `(("glib" ,glib)))
f032d0be 1439 (home-page "https://www.gnome.org")
c1354b90
LC
1440 (synopsis "Accessing passwords from the GNOME keyring")
1441 (description
1442 "Client library to access passwords from the GNOME keyring.")
1443
1444 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1445 (license license:lgpl2.0+)))
c1354b90 1446
e99a3d6f
RW
1447(define-public gnome-keyring
1448 (package
1449 (name "gnome-keyring")
ab35cc6e 1450 (version "3.28.2")
e99a3d6f
RW
1451 (source (origin
1452 (method url-fetch)
1453 (uri (string-append "mirror://gnome/sources/" name "/"
1454 (version-major+minor version) "/"
1455 name "-" version ".tar.xz"))
1456 (sha256
1457 (base32
ab35cc6e 1458 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
1459 (build-system gnu-build-system)
1460 (arguments
1461 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1462 ;not exist
1463 #:configure-flags
1464 (list
1465 (string-append "--with-pkcs11-config="
1466 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1467 (string-append "--with-pkcs11-modules="
1468 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1469 #:phases
1470 (modify-phases %standard-phases
ab35cc6e
RW
1471 (add-after 'unpack 'fix-/bin/sh-reference
1472 (lambda _
1473 (substitute* "po/Makefile.in.in"
1474 (("/bin/sh") (which "sh")))
1475 #t))
5120f24f
RW
1476 (add-after 'unpack 'fix-docbook
1477 (lambda* (#:key inputs #:allow-other-keys)
1478 (substitute* "docs/Makefile.am"
1479 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1480 (string-append (assoc-ref inputs "docbook-xsl")
1481 "/xml/xsl/docbook-xsl-"
1482 ,(package-version docbook-xsl)
1483 "/manpages/docbook.xsl")))
1484 (setenv "XML_CATALOG_FILES"
1485 (string-append (assoc-ref inputs "docbook-xml")
1486 "/xml/dtd/docbook/catalog.xml"))
1487 ;; Rerun the whole thing to avoid version mismatch ("This is
1488 ;; Automake 1.15.1, but the definition used by this
1489 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1490 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1491 (invoke "autoconf")
1492 (invoke "aclocal")
1493 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1494 (inputs
1495 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1496 ("linux-pam" ,linux-pam)
ab35cc6e 1497 ("openssh" ,openssh)
e99a3d6f
RW
1498 ("dbus" ,dbus)
1499 ("gcr" ,gcr)))
1500 (native-inputs
1501 `(("pkg-config" ,pkg-config)
1502 ("glib" ,glib "bin")
5120f24f 1503 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1504 ("python" ,python-2) ;for tests
1505 ("intltool" ,intltool)
1506 ("autoconf" ,autoconf)
1507 ("automake" ,automake)
1508 ("libxslt" ,libxslt) ;for documentation
1509 ("docbook-xml" ,docbook-xml-4.2)
1510 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1511 (home-page "https://www.gnome.org")
e99a3d6f
RW
1512 (synopsis "Daemon to store passwords and encryption keys")
1513 (description
1514 "gnome-keyring is a program that keeps passwords and other secrets for
1515users. It is run as a daemon in the session, similar to ssh-agent, and other
1516applications locate it via an environment variable or D-Bus.
1517
1518The program can manage several keyrings, each with its own master password,
1519and there is also a session keyring which is never stored to disk, but
1520forgotten when the session ends.")
1521 (license license:lgpl2.1+)))
1522
c1354b90
LC
1523(define-public evince
1524 (package
1525 (name "evince")
936d5642 1526 (version "3.34.2")
c1354b90
LC
1527 (source (origin
1528 (method url-fetch)
ac631328 1529 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1530 (version-major+minor version) "/"
ac631328 1531 "evince-" version ".tar.xz"))
c1354b90
LC
1532 (sha256
1533 (base32
936d5642 1534 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1535 (build-system glib-or-gtk-build-system)
c1354b90 1536 (arguments
169b8f77 1537 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1538 #:phases
1539 (modify-phases %standard-phases
1540 (add-before 'install 'skip-gtk-update-icon-cache
1541 ;; Don't create 'icon-theme.cache'.
1542 (lambda _
1543 (substitute* "data/Makefile"
1544 (("gtk-update-icon-cache") "true"))
1545 #t)))))
c1354b90 1546 (inputs
9a096881
KK
1547 `(("libarchive" ,libarchive)
1548 ("libgxps" ,libgxps)
1549 ("libspectre" ,libspectre)
c769cf9f 1550 ("djvulibre" ,djvulibre)
c1354b90
LC
1551 ("ghostscript" ,ghostscript)
1552 ("poppler" ,poppler)
c769cf9f
SB
1553 ("libtiff" ,libtiff)
1554 ;; TODO:
c769cf9f
SB
1555 ;; Build libkpathsea as a shared library for DVI support.
1556 ;; ("libkpathsea" ,texlive-bin)
1557 ("gnome-desktop" ,gnome-desktop)
c1354b90 1558 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1559 ("gspell" ,gspell)
c1354b90 1560 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1561 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1562 ("gdk-pixbuf" ,gdk-pixbuf)
1563 ("atk" ,atk)
1564 ("pango" ,pango)
1565 ("gtk+" ,gtk+)
1566 ("glib" ,glib)
1567 ("libxml2" ,libxml2)
c1354b90
LC
1568 ("libsm" ,libsm)
1569 ("libice" ,libice)
96e42467 1570 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1571 ("dconf" ,dconf)
1572 ("libcanberra" ,libcanberra)
c769cf9f 1573 ("libsecret" ,libsecret)
a271096b 1574
c1354b90
LC
1575 ;; For tests.
1576 ("dogtail" ,python2-dogtail)))
96e42467 1577 (native-inputs
bcb354ad
SB
1578 `(("itstool" ,itstool)
1579 ("intltool" ,intltool)
426adbe8 1580 ("glib" ,glib "bin")
169b8f77 1581 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1582 ("pkg-config" ,pkg-config)
1583 ("xmllint" ,libxml2)))
c1354b90 1584 (home-page
f032d0be 1585 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1586 (synopsis "GNOME's document viewer")
1587 (description
1588 "Evince is a document viewer for multiple document formats. It
1589currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1590of Evince is to replace the multiple document viewers that exist
96e42467 1591on the GNOME Desktop with a single simple application.")
1dd26275 1592 (license license:gpl2+)))
c1354b90 1593
22e32e69
AE
1594(define-public gsettings-desktop-schemas
1595 (package
1596 (name "gsettings-desktop-schemas")
c900dabd 1597 (version "3.32.0")
22e32e69
AE
1598 (source
1599 (origin
1600 (method url-fetch)
1601 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1602 (version-major+minor version) "/"
22e32e69
AE
1603 name "-" version ".tar.xz"))
1604 (sha256
1605 (base32
c900dabd
KK
1606 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1607 (build-system meson-build-system)
65209ffa
LC
1608 (arguments
1609 '(#:phases (modify-phases %standard-phases
3861fb1c 1610 (add-after 'unpack 'patch-schemas
65209ffa 1611 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1612 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1613 (substitute* (find-files "schemas"
1614 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1615 ;; Provide the correct file name of the default GNOME
1616 ;; background, 'adwaita-timed.xml'.
65209ffa 1617 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1618 (string-append theme "/share/backgrounds/gnome"))
1619 ;; Do not reference fonts, that may not exist.
1620 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1621 #t))))))
22e32e69 1622 (inputs
65209ffa
LC
1623 `(("glib" ,glib)
1624 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1625 (native-inputs
1626 `(("intltool" ,intltool)
426adbe8 1627 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1628 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1629 ("pkg-config" ,pkg-config)))
1630 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1631 (synopsis
1632 "GNOME settings for various desktop components")
1633 (description
1634 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1635for settings shared by various components of the GNOME desktop.")
1dd26275 1636 (license license:lgpl2.1+)))
22e32e69 1637
27477d2d
AE
1638(define-public icon-naming-utils
1639 (package
1640 (name "icon-naming-utils")
1641 (version "0.8.90")
1642 (source
1643 (origin
1644 (method url-fetch)
5cc3096c 1645 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1646 version ".tar.bz2"))
1647 (sha256
1648 (base32
1649 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1650 (build-system gnu-build-system)
1651 (inputs
1652 `(("perl" ,perl)
1653 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1654 (arguments
1655 '(#:phases
dc1d3cde
KK
1656 (modify-phases %standard-phases
1657 (add-after 'install 'set-load-paths
1658 ;; Tell 'icon-name-mapping' where XML::Simple is.
1659 (lambda* (#:key outputs #:allow-other-keys)
1660 (let* ((out (assoc-ref outputs "out"))
1661 (prog (string-append out "/libexec/icon-name-mapping")))
1662 (wrap-program
1663 prog
1664 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1665 #t)))))
27477d2d
AE
1666 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1667 (synopsis
1668 "Utility to implement the Freedesktop Icon Naming Specification")
1669 (description
1670 "To help with the transition to the Freedesktop Icon Naming
1671Specification, the icon naming utility maps the icon names used by the
1672GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1673 (license license:lgpl2.1+)))
27477d2d 1674
7d3f3651
AE
1675(define-public gnome-icon-theme
1676 (package
1677 (name "gnome-icon-theme")
b32f58dd 1678 (version "3.12.0")
7d3f3651
AE
1679 (source
1680 (origin
1681 (method url-fetch)
1682 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1683 (version-major+minor version) "/"
7d3f3651
AE
1684 name "-" version ".tar.xz"))
1685 (sha256
1686 (base32
b32f58dd 1687 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1688 (build-system gnu-build-system)
5613c27d
SB
1689 (arguments
1690 '(#:configure-flags
1691 ;; Don't create 'icon-theme.cache'.
1692 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1693 (true (string-append coreutils "/bin/true")))
1694 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1695 (native-inputs
5613c27d 1696 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1697 ("intltool" ,intltool)
1698 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1699 (home-page "https://wiki.gnome.org/Personalization")
1700 (synopsis "GNOME icon theme")
1701 (description "Icons for the GNOME desktop.")
1dd26275 1702 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1703
14eeefa2
SB
1704;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1705(define-public adwaita-icon-theme
1706 (package (inherit gnome-icon-theme)
1707 (name "adwaita-icon-theme")
9be59d7f 1708 (version "3.32.0")
14eeefa2
SB
1709 (source (origin
1710 (method url-fetch)
1711 (uri (string-append "mirror://gnome/sources/" name "/"
1712 (version-major+minor version) "/"
1713 name "-" version ".tar.xz"))
1714 (sha256
1715 (base32
9be59d7f 1716 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1717 (native-inputs
1718 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1719
ae792dba
RW
1720(define-public tango-icon-theme
1721 (package
1722 (name "tango-icon-theme")
1723 (version "0.8.90")
1724 (source (origin
1725 (method url-fetch)
1726 (uri (string-append "http://tango.freedesktop.org/releases/"
1727 "tango-icon-theme-" version ".tar.bz2"))
1728 (sha256
1729 (base32
1730 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1731 (build-system gnu-build-system)
1732 (native-inputs
1733 `(("icon-naming-utils" ,icon-naming-utils)
1734 ("intltool" ,intltool)
1735 ("imagemagick" ,imagemagick)
1736 ("pkg-config" ,pkg-config)))
1737 (home-page "http://tango-project.org/")
1738 (synopsis "Tango icon theme")
1739 (description "This is an icon theme that follows the Tango visual
1740guidelines.")
1741 (license license:public-domain)))
1742
9167f8e6
LC
1743(define-public shared-mime-info
1744 (package
1745 (name "shared-mime-info")
18138ab9 1746 (version "1.10")
9167f8e6
LC
1747 (source (origin
1748 (method url-fetch)
5cc3096c 1749 (uri (string-append "https://freedesktop.org/~hadess/"
b38e45d8 1750 "shared-mime-info-" version ".tar.xz"))
9167f8e6
LC
1751 (sha256
1752 (base32
18138ab9 1753 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
9167f8e6
LC
1754 (build-system gnu-build-system)
1755 (arguments
1756 ;; The build system appears not to be parallel-safe.
1757 '(#:parallel-build? #f))
1758 (inputs
1759 `(("glib" ,glib)
c4c4cc05 1760 ("libxml2" ,libxml2)))
9167f8e6 1761 (native-inputs
c4c4cc05
JD
1762 `(("intltool" ,intltool)
1763 ("pkg-config" ,pkg-config)))
57e7d748 1764 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1765 (synopsis "Database of common MIME types")
1766 (description
1767 "The shared-mime-info package contains the core database of common types
1768and the update-mime-database command used to extend it. It requires glib2 to
1769be installed for building the update command. Additionally, it uses intltool
1770for translations, though this is only a dependency for the maintainers. This
1771database is translated at Transifex.")
1dd26275 1772 (license license:gpl2+)))
9167f8e6 1773
dd1fcddc
CB
1774(define-public system-config-printer
1775 (package
1776 (name "system-config-printer")
fa01e10d 1777 (version "1.5.12")
a5643044
TGR
1778 (source
1779 (origin
1780 (method url-fetch)
1781 (uri (string-append
1782 "https://github.com/OpenPrinting/system-config-printer/releases/"
1783 "download/" version
1784 "/system-config-printer-" version ".tar.xz"))
1785 (sha256
fa01e10d 1786 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1787 (build-system glib-or-gtk-build-system)
1788 (arguments
1789 `(#:imported-modules ((guix build python-build-system)
1790 ,@%glib-or-gtk-build-system-modules)
1791 #:phases
1792 (modify-phases %standard-phases
1793 (add-after 'unpack 'patch-Makefile.am
1794 (lambda _
1795 ;; The Makefile generates some scripts, so set a valid shebang
1796 (substitute* "Makefile.am"
1797 (("/bin/bash") (which "bash")))
1798 (delete-file "configure")
1799 #t))
1800 (add-after 'unpack 'patch-docbook-xml
1801 (lambda* (#:key inputs #:allow-other-keys)
1802 ;; Modify the man XML otherwise xmlto tries to access the network
1803 (substitute* "man/system-config-printer.xml"
1804 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1805 (string-append (assoc-ref inputs "docbook-xml")
1806 "/xml/dtd/docbook/")))
1807 #t))
1808 (add-after 'install 'wrap-for-python
1809 (@@ (guix build python-build-system) wrap))
1810 (add-after 'install 'wrap
1811 (lambda* (#:key outputs #:allow-other-keys)
1812 (let ((out (assoc-ref outputs "out"))
1813 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1814 (for-each
1815 (lambda (program)
1816 (wrap-program program
1817 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1818 (map (lambda (name)
1819 (string-append out "/bin/" name))
1820 '("system-config-printer"
1821 "system-config-printer-applet"
1822 "install-printerdriver"
1823 "scp-dbus-service"))))
1824 #t)))))
1825 (inputs
1826 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1827 ("gobject-introspection" ,gobject-introspection)
1828 ("python" ,python)
1829 ("cups" ,cups)
1830 ("python-dbus" ,python-dbus)
1831 ("python-pygobject" ,python-pygobject)
1832 ("python-pycups" ,python-pycups)
1833 ("python-requests" ,python-requests)
1834 ("python-pycairo" ,python-pycairo)
1835 ("libnotify" ,libnotify)
1836 ("packagekit" ,packagekit)))
1837 (native-inputs
1838 `(("pkg-config" ,pkg-config)
1839 ("desktop-file-utils" ,desktop-file-utils)
1840 ("glib" ,glib)
1841 ("autoconf" ,autoconf)
1842 ("automake" ,automake)
1843 ("intltool" ,intltool)
1844 ("xmlto" ,xmlto)
1845 ("docbook-xml" ,docbook-xml-4.1.2)
1846 ("docbook-xsl" ,docbook-xsl)
1847 ("libxml2" ,libxml2)))
1848 (home-page "https://github.com/zdohnal/system-config-printer")
1849 (synopsis "CUPS administration tool")
1850 (description
1851 "system-config-printer is a CUPS administration tool. It's written in
1852Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1853configuring CUPS.")
1854 (license license:gpl2+)))
1855
bef4dd92
AE
1856(define-public hicolor-icon-theme
1857 (package
1858 (name "hicolor-icon-theme")
851cb6dd 1859 (version "0.17")
bef4dd92
AE
1860 (source
1861 (origin
1862 (method url-fetch)
5cc3096c 1863 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1864 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1865 (sha256
1866 (base32
851cb6dd 1867 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1868 (build-system gnu-build-system)
1869 (arguments
1870 `(#:tests? #f)) ; no check target
57e7d748 1871 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1872 (synopsis
1873 "Freedesktop icon theme")
1874 (description
1875 "Freedesktop icon theme.")
1dd26275 1876 (license license:gpl2)))
bef4dd92 1877
d9c1a22b
AE
1878(define-public libnotify
1879 (package
1880 (name "libnotify")
195bfa68 1881 (version "0.7.7")
d9c1a22b
AE
1882 (source
1883 (origin
1884 (method url-fetch)
1885 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1886 (version-major+minor version) "/"
d9c1a22b
AE
1887 name "-" version ".tar.xz"))
1888 (sha256
1889 (base32
195bfa68 1890 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1891 (build-system gnu-build-system)
6acf6cec
MB
1892 (arguments
1893 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1894 (propagated-inputs
1895 `(;; In Requires of libnotify.pc.
1896 ("gdk-pixbuf" ,gdk-pixbuf)
1897 ("glib" ,glib)))
d9c1a22b 1898 (inputs
7ef08efa 1899 `(("gtk+" ,gtk+)
c4c4cc05
JD
1900 ("libpng" ,libpng)))
1901 (native-inputs
426adbe8 1902 `(("pkg-config" ,pkg-config)
277a7d82
JN
1903 ("glib" ,glib "bin")
1904 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1905 (home-page "https://developer-next.gnome.org/libnotify/")
1906 (synopsis
1907 "GNOME desktop notification library")
1908 (description
1909 "Libnotify is a library that sends desktop notifications to a
35b9e423 1910notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1911notifications can be used to inform the user about an event or display
1912some form of information without getting in the user's way.")
1dd26275 1913 (license license:lgpl2.1+)))
7a8605ce
CR
1914
1915(define-public libpeas
1916 (package
1917 (name "libpeas")
f2d56e39 1918 (version "1.24.1")
7a8605ce
CR
1919 (source
1920 (origin
1921 (method url-fetch)
1922 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1923 (version-major+minor version) "/"
7a8605ce
CR
1924 name "-" version ".tar.xz"))
1925 (sha256
1926 (base32
f2d56e39
MB
1927 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1928 (build-system meson-build-system)
1929 (arguments
1930 '(#:phases
1931 (modify-phases %standard-phases
1932 (add-before 'check 'start-xserver
1933 (lambda* (#:key inputs #:allow-other-keys)
1934 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1935 (disp ":1"))
1936 (setenv "DISPLAY" disp)
1937 ;; Tests require a running X server.
1938 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1939 #t))))))
7a8605ce 1940 (inputs
2ed6522a
SB
1941 `(("gtk+" ,gtk+)
1942 ("glade" ,glade3)
2ed6522a
SB
1943 ("python" ,python)
1944 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1945 (native-inputs
1946 `(("pkg-config" ,pkg-config)
f2d56e39 1947 ("gettext" ,gettext-minimal)
93622993 1948 ("glib:bin" ,glib "bin")
141aed80 1949 ("gobject-introspection" ,gobject-introspection)
f2d56e39 1950 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
1951 (propagated-inputs
1952 ;; The .pc file "Requires" gobject-introspection.
1953 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1954 (home-page "https://wiki.gnome.org/Libpeas")
1955 (synopsis "GObject plugin system")
1956 (description
d1e4ad1b
TGR
1957 "Libpeas is a gobject-based plugin engine, targeted at giving every
1958application the chance to assume its own extensibility. It also has a set of
1959features including, but not limited to: multiple extension points; on-demand
1960(lazy) programming language support for C, Python and JS; simplicity of the
1961API.")
1dd26275 1962 (license license:lgpl2.0+)))
ed19903d
JD
1963
1964(define-public gtkglext
1965 (package
1966 (name "gtkglext")
1967 (version "1.2.0")
1968 (source (origin
1969 (method url-fetch)
0f971a04 1970 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1971 version "/gtkglext-" version ".tar.gz"))
1972 (sha256
1973 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1974 (patches (search-patches
1975 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1976 (build-system gnu-build-system)
14e2f61a
RW
1977 (arguments
1978 `(#:phases
1979 (modify-phases %standard-phases
1980 ;; Fix a collision between a local variable and a definition from
1981 ;; glibc's string.h.
1982 (add-after 'unpack 'fix-collision
1983 (lambda _
1984 (substitute* "gdk/gdkglshapes.c"
1985 ((" index") " triangle_index"))
1986 #t)))))
ed19903d
JD
1987 (inputs `(("gtk+" ,gtk+-2)
1988 ("mesa" ,mesa)
cc8b02f4 1989 ("glu" ,glu)
ed19903d
JD
1990 ("libx11" ,libx11)
1991 ("libxt" ,libxt)))
426adbe8
LC
1992 (native-inputs `(("pkg-config" ,pkg-config)
1993 ("glib" ,glib "bin")))
a83b6a06 1994 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1995 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1996 (synopsis "OpenGL extension to GTK+")
35b9e423 1997 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1998additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1999API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2000 (license license:lgpl2.1+)))
3600420e
JD
2001
2002(define-public glade3
2003 (package
2004 (name "glade")
c6571adb 2005 (version "3.22.1")
b38e45d8
EB
2006 (source (origin
2007 (method url-fetch)
2008 (uri (string-append "mirror://gnome/sources/" name "/"
2009 (version-major+minor version) "/"
f5ca44b8 2010 name "-" version ".tar.xz"))
3600420e 2011 (sha256
f714d9fe 2012 (base32
c6571adb 2013 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 2014 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
2015 (arguments
2016 `(#:tests? #f ; needs X, GL, and software rendering
2017 #:phases
2018 (modify-phases %standard-phases
2019 (add-before 'configure 'fix-docbook
2020 (lambda* (#:key inputs #:allow-other-keys)
2021 (substitute* "man/Makefile.in"
2022 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2023 (string-append (assoc-ref inputs "docbook-xsl")
2024 "/xml/xsl/docbook-xsl-"
2025 ,(package-version docbook-xsl)
2026 "/manpages/docbook.xsl")))
2027 #t)))))
3600420e 2028 (inputs
f5ca44b8 2029 `(("gtk+" ,gtk+)
3600420e
JD
2030 ("libxml2" ,libxml2)))
2031 (native-inputs
2032 `(("intltool" ,intltool)
f5ca44b8
RW
2033 ("itstool" ,itstool)
2034 ("libxslt" ,libxslt) ;for xsltproc
2035 ("docbook-xml" ,docbook-xml-4.2)
2036 ("docbook-xsl" ,docbook-xsl)
2037 ("python" ,python-2)
3600420e
JD
2038 ("pkg-config" ,pkg-config)))
2039 (home-page "https://glade.gnome.org")
2040 (synopsis "GTK+ rapid application development tool")
2041 (description "Glade is a rapid application development (RAD) tool to
2042enable quick & easy development of user interfaces for the GTK+ toolkit and
2043the GNOME desktop environment.")
1dd26275
LC
2044 (license license:lgpl2.0+)))
2045
2046(define-public libcroco
2047 (package
2048 (name "libcroco")
8bdacad2 2049 (version "0.6.13")
1dd26275
LC
2050 (source (origin
2051 (method url-fetch)
b38e45d8
EB
2052 (uri (string-append "mirror://gnome/sources/" name "/"
2053 (version-major+minor version) "/"
2054 name "-" version ".tar.xz"))
1dd26275
LC
2055 (sha256
2056 (base32
8bdacad2 2057 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2058 (build-system gnu-build-system)
2059 (native-inputs
2060 `(("pkg-config" ,pkg-config)))
2061 (inputs
2062 `(("glib" ,glib)
2063 ("libxml2" ,libxml2)
2064 ("zlib" ,zlib)))
2065 (home-page "https://github.com/GNOME/libcroco")
2066 (synopsis "CSS2 parsing and manipulation library")
2067 (description
2068 "Libcroco is a standalone CSS2 parsing and manipulation library.
2069The parser provides a low level event driven SAC-like API and a CSS object
2070model like API. Libcroco provides a CSS2 selection engine and an experimental
2071XML/CSS rendering engine.")
2072
2073 ;; LGPLv2.1-only.
2074 (license license:lgpl2.1)))
25178594
LC
2075
2076(define-public libgsf
2077 (package
2078 (name "libgsf")
8d1644a1 2079 (version "1.14.46")
25178594
LC
2080 (source (origin
2081 (method url-fetch)
b38e45d8
EB
2082 (uri (string-append "mirror://gnome/sources/" name "/"
2083 (version-major+minor version) "/"
2084 name "-" version ".tar.xz"))
25178594
LC
2085 (sha256
2086 (base32
8d1644a1 2087 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
2088 (build-system gnu-build-system)
2089 (native-inputs
2090 `(("intltool" ,intltool)
2091 ("pkg-config" ,pkg-config)))
2092 (inputs
2093 `(("python" ,python)
2094 ("zlib" ,zlib)
2095 ("bzip2" ,bzip2)))
2096 (propagated-inputs
2097 `(("gdk-pixbuf" ,gdk-pixbuf)
2098 ("glib" ,glib)
2099 ("libxml2" ,libxml2)))
f032d0be 2100 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2101 (synopsis "GNOME's Structured File Library")
2102 (description
2103 "Libgsf aims to provide an efficient extensible I/O abstraction for
2104dealing with different structured file formats.")
2105
2106 ;; LGPLv2.1-only.
2107 (license license:lgpl2.1)))
63016e7c
LC
2108
2109(define-public librsvg
f67417a1 2110 (package
35b256f5 2111 (replacement librsvg/fixed)
f67417a1
MB
2112 (name "librsvg")
2113 (version "2.40.20")
2114 (source (origin
2115 (method url-fetch)
2116 (uri (string-append "mirror://gnome/sources/" name "/"
2117 (version-major+minor version) "/"
2118 name "-" version ".tar.xz"))
2119 (sha256
2120 (base32
2121 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2122 (build-system gnu-build-system)
2123 (arguments
2124 `(#:configure-flags
2125 (list "--disable-static"
2126 "--enable-vala") ; needed for e.g. gnome-mines
2127 #:phases
2128 (modify-phases %standard-phases
2129 (add-before 'configure 'pre-configure
2130 (lambda* (#:key inputs #:allow-other-keys)
2131 (substitute* "gdk-pixbuf-loader/Makefile.in"
2132 ;; By default the gdk-pixbuf loader is installed under
2133 ;; gdk-pixbuf's prefix. Work around that.
2134 (("gdk_pixbuf_moduledir = .*$")
2135 (string-append "gdk_pixbuf_moduledir = "
2136 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2137 "loaders\n"))
2138 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2139 (("gdk_pixbuf_cache_file = .*$")
2140 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2141 #t))
2142 (add-before 'check 'remove-failing-tests
2143 (lambda _
2144 (with-directory-excursion "tests/fixtures/reftests"
2145 (for-each delete-file
2146 '(;; This test fails on i686:
2147 "svg1.1/masking-path-04-b.svg"
2148 ;; This test fails on armhf:
2149 "svg1.1/masking-mask-01-b.svg"
2150 ;; This test fails on aarch64:
2151 "bugs/777834-empty-text-children.svg")))
2152 #t)))))
2153 (native-inputs
2154 `(("pkg-config" ,pkg-config)
2155 ("vala" ,vala)
2156 ("glib" ,glib "bin") ; glib-mkenums, etc.
2157 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2158 (inputs
2159 `(("pango" ,pango)
2160 ("libcroco" ,libcroco)
2161 ("bzip2" ,bzip2)
2162 ("libgsf" ,libgsf)
2163 ("libxml2" ,libxml2)))
2164 (propagated-inputs
2165 ;; librsvg-2.0.pc refers to all of that.
2166 `(("cairo" ,cairo)
2167 ("gdk-pixbuf" ,gdk-pixbuf)
2168 ("glib" ,glib)))
2169 (home-page "https://wiki.gnome.org/LibRsvg")
2170 (synopsis "Render SVG files using Cairo")
2171 (description
2172 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2173library.")
2174 (license license:lgpl2.0+)))
2175
23f33de1
EF
2176(define librsvg/fixed
2177 (package
2178 (inherit librsvg)
2179 (name "librsvg")
2180 (version "2.40.21")
2181 (source (origin
2182 (method url-fetch)
2183 (uri (string-append "mirror://gnome/sources/" name "/"
2184 (version-major+minor version) "/"
2185 name "-" version ".tar.xz"))
2186 (sha256
2187 (base32
2188 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))))
2189
f67417a1 2190(define-public librsvg-next
63016e7c 2191 (package
25d39a2a 2192 (inherit librsvg)
63016e7c 2193 (name "librsvg")
3276e123 2194 (version "2.46.4")
69568670
EF
2195 (source (origin
2196 (method url-fetch)
2197 (uri (string-append "mirror://gnome/sources/librsvg/"
2198 (version-major+minor version) "/"
2199 "librsvg-" version ".tar.xz"))
2200 (sha256
2201 (base32
2202 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2203 (modules '((guix build utils)))
2204 (snippet
2205 '(begin (delete-file-recursively "vendor")
2206 ;; Don't demand an exact version for string_cache
2207 (substitute* "rsvg_internals/Cargo.toml"
2208 (("\"=") "\""))
2209 #t))))
2210 (build-system cargo-build-system)
63016e7c 2211 (arguments
69568670
EF
2212 `(#:modules ((guix build cargo-build-system)
2213 (guix build utils)
2214 ((guix build gnu-build-system) #:prefix gnu:))
2215 #:vendor-dir "vendor"
2216 #:cargo-inputs
2217 (("rust-bitflags" ,rust-bitflags-1)
2218 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2219 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2220 ("rust-cssparser" ,rust-cssparser-0.25)
2221 ("rust-data-url" ,rust-data-url-0.1)
2222 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2223 ("rust-encoding" ,rust-encoding-0.2)
2224 ("rust-float-cmp" ,rust-float-cmp-0.5)
2225 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2226 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2227 ("rust-gio" ,rust-gio-0.7)
2228 ("rust-gio-sys" ,rust-gio-sys-0.9)
2229 ("rust-glib" ,rust-glib-0.8)
2230 ("rust-glib-sys" ,rust-glib-sys-0.9)
2231 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2232 ("rust-itertools" ,rust-itertools-0.8)
2233 ("rust-language-tags" ,rust-language-tags-0.2)
2234 ("rust-lazy-static" ,rust-lazy-static-1)
2235 ("rust-libc" ,rust-libc-0.2)
2236 ("rust-locale-config" ,rust-locale-config-0.3)
2237 ("rust-markup5ever" ,rust-markup5ever-0.9)
2238 ("rust-nalgebra" ,rust-nalgebra-0.18)
2239 ("rust-num-traits" ,rust-num-traits-0.2)
2240 ("rust-pkg-config" ,rust-pkg-config-0.3)
2241 ("rust-pango" ,rust-pango-0.7)
2242 ("rust-pango-sys" ,rust-pango-sys-0.9)
2243 ("rust-pangocairo" ,rust-pangocairo-0.8)
2244 ("rust-phf" ,rust-phf-0.7)
2245 ("rust-rayon" ,rust-rayon-1.3)
2246 ("rust-rctree" ,rust-rctree-0.3)
2247 ("rust-string-cache" ,rust-string-cache-0.7)
2248 ("rust-regex" ,rust-regex-1.3)
2249 ("rust-url" ,rust-url-2.1)
2250 ("rust-xml-rs" ,rust-xml-rs-0.8))
2251 #:cargo-development-inputs
2252 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2253 ("rust-criterion" ,rust-criterion-0.2))
ec47c07d 2254 #:phases
b6239e45 2255 (modify-phases %standard-phases
69568670 2256 (add-after 'unpack 'prepare-for-build
ec47c07d 2257 (lambda _
69568670
EF
2258 ;; In lieu of #:make-flags
2259 (setenv "CC" "gcc")
2260 ;; Something about the build environment resists building
2261 ;; successfully with the '--locked' flag.
2262 (substitute* '("Makefile.am"
2263 "Makefile.in")
2264 (("--locked") ""))
2265 #t))
b6239e45 2266 (add-before 'configure 'pre-configure
69568670 2267 (lambda _
b6239e45
EF
2268 (substitute* "gdk-pixbuf-loader/Makefile.in"
2269 ;; By default the gdk-pixbuf loader is installed under
2270 ;; gdk-pixbuf's prefix. Work around that.
2271 (("gdk_pixbuf_moduledir = .*$")
2272 (string-append "gdk_pixbuf_moduledir = "
2273 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2274 "loaders\n"))
2275 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2276 (("gdk_pixbuf_cache_file = .*$")
2277 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2278 #t))
69568670
EF
2279 (add-after 'configure 'gnu-configure
2280 (assoc-ref gnu:%standard-phases 'configure))
2281 ;(lambda* (#:key outputs #:allow-other-keys)
2282 ; ((assoc-ref gnu:%standard-phases 'configure)
2283 ; #:outputs outputs
2284 ; #:configure-flags ("--disable-static"
2285 ; "--enable-vala"))))
2286 (add-after 'configure 'dont-vendor-self
2287 (lambda* (#:key vendor-dir #:allow-other-keys)
2288 ;; Don't keep the whole tarball in the vendor directory
2289 (delete-file-recursively
2290 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2291 #t))
2292 (replace 'build
2293 (assoc-ref gnu:%standard-phases 'build))
2294 (replace 'check
2295 (lambda* args
2296 ((assoc-ref gnu:%standard-phases 'check)
2297 #:test-target "check")))
2298 (replace 'install
2299 (assoc-ref gnu:%standard-phases 'install))
ec47c07d 2300 (add-before 'check 'remove-failing-tests
b6239e45 2301 (lambda _
64a153bd
MW
2302 (with-directory-excursion "tests/fixtures/reftests"
2303 (for-each delete-file
ec47c07d
MB
2304 '(;; The images produced by these tests differ slightly
2305 ;; from their reference counterparts due to differences
2306 ;; in the build environment (missing fonts, etc). See
2307 ;; <tests/README.md> for details.
2308 ;; These fail on x86_64.
2309 "svg1.1/coords-viewattr-02-b.svg"
2310 "svg1.1/filters-composite-04-f.svg"
2311 "svg1.1/filters-image-01-b.svg"
2312 "svg1.1/filters-conv-02-f.svg"
2313 "svg1.1/filters-conv-04-f.svg"
2314 ;; This test fails on i686:
64a153bd 2315 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2316 ;; This test fails on armhf:
2317 "svg1.1/masking-mask-01-b.svg"
64a153bd 2318 ;; This test fails on aarch64:
ec47c07d 2319 "bugs/777834-empty-text-children.svg")))
b6239e45 2320 #t)))))
cf9dad6c 2321 (license license:lgpl2.1+)))
5698b8b8
JD
2322
2323(define-public libidl
2324 (package
2325 (name "libidl")
2326 (version "0.8.14")
2327 (source (origin
2328 (method url-fetch)
80a06e62
EF
2329 (uri (string-append "mirror://gnome/sources/libIDL/"
2330 (version-major+minor version) "/"
2331 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2332 (sha256
2333 (base32
2334 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2335 (build-system gnu-build-system)
2336 (inputs `(("glib" ,glib)))
2337 (native-inputs
2338 `(("pkg-config" ,pkg-config)
b3546174 2339 ("flex" ,flex)
5698b8b8
JD
2340 ("bison" ,bison)))
2341 (home-page "http://freecode.com/projects/libidl")
2342 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2343 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2344Definition Language (idl) files, which is a specification for defining
2345portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2346GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2347functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2348 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2349 (license license:lgpl2.0+)))
2350
2351
2352(define-public orbit2
2353 (package
2354 (name "orbit2")
2355 (version "2.14.19")
2356 (source (origin
2357 (method url-fetch)
2e6ecc5c 2358 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2359 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2360 (version-major+minor version) "/"
2361 upstream-name "-" version ".tar.bz2")))
5698b8b8 2362 (sha256
a124bbd2
SB
2363 (base32
2364 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2365 (build-system gnu-build-system)
2366 (arguments
a124bbd2 2367 `(#:configure-flags
8aad2e32
LC
2368 '(;; We don't need static libraries, plus they don't build reproducibly
2369 ;; (non-deterministic ordering of .o files in the archive.)
2370 "--disable-static"
2371
2372 ;; The programmer kindly gives us a hook to turn off deprecation
2373 ;; warnings ...
2374 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2375 ;; ... which they then completly ignore !!
2376 #:phases
dc1d3cde
KK
2377 (modify-phases %standard-phases
2378 (add-before 'configure 'ignore-deprecations
2379 (lambda _
2380 (substitute* "linc2/src/Makefile.in"
2381 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2382 #t)))))
5698b8b8
JD
2383 (inputs `(("glib" ,glib)
2384 ("libidl" ,libidl)))
2385 (native-inputs
2386 `(("pkg-config" ,pkg-config)))
2387 (home-page "https://projects.gnome.org/orbit2/")
2388 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2389 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2390featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2391 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2392 ;; a version. SOME of the code files have licence notices for GPLv2+.
2393 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2394 (license license:gpl2+)
2395 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2396
2397
2398(define-public libbonobo
2399 (package
2400 (name "libbonobo")
2401 (version "2.32.1")
2402 (source (origin
2403 (method url-fetch)
5becd025 2404 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2405 (version-major+minor version)
5becd025 2406 "/" name "-" version ".tar.bz2"))
5698b8b8 2407 (sha256
f1fc45a9 2408 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2409 (patches (search-patches
2410 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2411 (build-system gnu-build-system)
2412 (arguments
2413 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2414 `(#:configure-flags
2415 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2416 ;; ... which they then completly ignore !!
2417 #:phases
dc1d3cde
KK
2418 (modify-phases %standard-phases
2419 (add-before 'configure 'ignore-deprecations
2420 (lambda _
2421 (substitute* "activation-server/Makefile.in"
2422 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2423 #t)))
2424
2425 ;; There's apparently a race condition between the server stub
2426 ;; generation and linking of the example under 'samples/echo' that can
2427 ;; lead do undefined references when building in parallel, as reported
2428 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2429 ;; Thus, disable parallel builds.
2430 #:parallel-build? #f))
5698b8b8
JD
2431 (inputs `(("popt" ,popt)
2432 ("libxml2" ,libxml2)))
2433 ;; The following are Required by the .pc file
44add1ce 2434 (propagated-inputs
5698b8b8
JD
2435 `(("glib" ,glib)
2436 ("orbit2" ,orbit2)))
2437 (native-inputs
2438 `(("intltool" ,intltool)
2439 ("pkg-config" ,pkg-config)
221ed17a 2440 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2441 ("flex" ,flex)
2442 ("bison" ,bison)))
2443 (home-page "https://developer.gnome.org/libbonobo/")
2444 (synopsis "Framework for creating reusable components for use in GNOME applications")
2445 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2446use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2447 ;; Licence not explicitly stated. Source files contain no licence notices.
2448 ;; Tarball contains text of both GPLv2 and LGPLv2
2449 ;; GPLv2 covers both conditions
2450 (license license:gpl2+)))
2451
2452
2453(define-public gconf
2454 (package
2455 (name "gconf")
2456 (version "3.2.6")
2457 (source (origin
2458 (method url-fetch)
a124bbd2
SB
2459 (uri
2460 (let ((upstream-name "GConf"))
2461 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2462 (version-major+minor version) "/"
2463 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2464 (sha256
2465 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2466 (build-system gnu-build-system)
2e88d113 2467 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2468 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2469 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2470 ("orbit2" ,orbit2)))
5698b8b8
JD
2471 (native-inputs
2472 `(("intltool" ,intltool)
221ed17a 2473 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2474 ("pkg-config" ,pkg-config)))
2475 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2476 (synopsis "Store application preferences")
2477 (description "Gconf is a system for storing application preferences. It
2478is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2479 (license license:lgpl2.0+)
2480 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2481
2482
2483(define-public gnome-mime-data
2484 (package
2485 (name "gnome-mime-data")
2486 (version "2.18.0")
2487 (source (origin
2488 (method url-fetch)
b38e45d8
EB
2489 (uri (string-append "mirror://gnome/sources/" name "/"
2490 (version-major+minor version) "/"
2491 name "-" version ".tar.bz2"))
5698b8b8
JD
2492 (sha256
2493 (base32
2494 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2495 (build-system gnu-build-system)
2496 (native-inputs
2497 `(("perl" ,perl)
2498 ("intltool" ,intltool)))
3e6add96
LC
2499 (arguments
2500 '(#:phases (modify-phases %standard-phases
2501 (add-after 'configure 'use-our-intltool
2502 (lambda _
2503 ;; Do not use the bundled intltool commands, which lack
2504 ;; the "dotless @INC" fixes of our 'intltool' package.
2505 (substitute* (find-files "." "^Makefile$")
2506 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2507 (string-append "INTLTOOL_" tool " = intltool-"
2508 (string-downcase tool) "\n")))
2509 #t)))))
f032d0be 2510 (home-page "https://www.gnome.org")
35b9e423 2511 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2512 (description "GNOME Mime Data is a module which contains the base MIME
2513and Application database for GNOME. The data stored by this module is
2514designed to be accessed through the MIME functions in GnomeVFS.")
2515 (license license:gpl2+)))
2516
2517
2518(define-public gnome-vfs
2519 (package
2520 (name "gnome-vfs")
2521 (version "2.24.4")
2522 (source (origin
2523 (method url-fetch)
b38e45d8
EB
2524 (uri (string-append "mirror://gnome/sources/" name "/"
2525 (version-major+minor version) "/"
2526 name "-" version ".tar.bz2"))
5698b8b8 2527 (sha256
9e12bc34
MW
2528 (base32
2529 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2530 (build-system gnu-build-system)
2531 (arguments
db5127d8 2532 `(#:phases
dc1d3cde
KK
2533 (modify-phases %standard-phases
2534 (add-before 'configure 'ignore-deprecations
2535 (lambda _
2536 (substitute* '("libgnomevfs/Makefile.in"
2537 "daemon/Makefile.in")
2538 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2539 #t))
2540 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2541 (lambda _
2542 (substitute* "test/test-async-cancel.c"
2543 (("EXIT_FAILURE") "77"))
2544 #t)))))
2e6ecc5c 2545 (inputs `(("libxml2" ,libxml2)
5698b8b8 2546 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2547 ("gconf" ,gconf)
2548 ("gnome-mime-data" ,gnome-mime-data)
2549 ("zlib" ,zlib)))
2550 (native-inputs
221ed17a
EB
2551 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2552 ("intltool" ,intltool)
5698b8b8
JD
2553 ("pkg-config" ,pkg-config)))
2554 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2555 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2556 (description
2557 "GnomeVFS is the core library used to access files and folders in GNOME
2558applications. It provides a file system abstraction which allows applications
2559to access local and remote files with a single consistent API.")
5698b8b8
JD
2560 (license license:lgpl2.0+)))
2561
2562
2563
2564(define-public libgnome
2565 (package
2566 (name "libgnome")
2567 (version "2.32.1")
2568 (source (origin
2569 (method url-fetch)
b38e45d8
EB
2570 (uri (string-append "mirror://gnome/sources/" name "/"
2571 (version-major+minor version) "/"
2572 name "-" version ".tar.bz2"))
5698b8b8
JD
2573 (sha256
2574 (base32
17c3eea7
LC
2575 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2576 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2577 (build-system gnu-build-system)
2578 (arguments
2579 `(#:phases
dc1d3cde
KK
2580 (modify-phases %standard-phases
2581 (add-before 'configure 'enable-deprecated
2582 (lambda _
2583 (substitute* "libgnome/Makefile.in"
2584 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2585 #t)))))
25338e9f 2586 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2587 (native-inputs
221ed17a
EB
2588 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2589 ("intltool" ,intltool)
5698b8b8
JD
2590 ("pkg-config" ,pkg-config)))
2591 ;; The following are listed as Required in the .pc file
2592 ;; (except for libcanberra -- which seems to be oversight on the part
2593 ;; of the upstream developers -- anything that links against libgnome,
2594 ;; must also link against libcanberra
2595 (propagated-inputs
2596 `(("libcanberra" ,libcanberra)
2597 ("libbonobo" ,libbonobo)
2598 ("gconf" ,gconf)
a640d3d5
LC
2599 ("gnome-vfs" ,gnome-vfs)
2600 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2601 (home-page "https://developer.gnome.org/libgnome/")
2602 (synopsis "Useful routines for building applications")
2603 (description "The libgnome library provides a number of useful routines
2604for building modern applications, including session management, activation of
2605files and URIs, and displaying help.")
2606 (license license:lgpl2.0+)))
2607
2608
2609(define-public libart-lgpl
2610 (package
2611 (name "libart-lgpl")
76c9b6aa 2612 (version "2.3.21")
5698b8b8
JD
2613 (source (origin
2614 (method url-fetch)
2615 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2616 (string-append "mirror://gnome/sources/" upstream-name "/"
2617 (version-major+minor version) "/"
2618 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2619 (sha256
2620 (base32
76c9b6aa 2621 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2622 (build-system gnu-build-system)
2623 (native-inputs
2624 `(("pkg-config" ,pkg-config)))
2625 (home-page "https://people.gnome.org/~mathieu/libart")
2626 (synopsis "2D drawing library")
2e6ecc5c 2627 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2628high-quality vector-based 2D library with antialiasing and alpha composition.")
2629 (license license:lgpl2.0+)))
2630
2631
2632
2633(define-public libgnomecanvas
2634 (package
2635 (name "libgnomecanvas")
2636 (version "2.30.3")
2637 (source (origin
2638 (method url-fetch)
b38e45d8
EB
2639 (uri (string-append "mirror://gnome/sources/" name "/"
2640 (version-major+minor version) "/"
2641 name "-" version ".tar.gz"))
5698b8b8
JD
2642 (sha256
2643 (base32
2644 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2645 (build-system gnu-build-system)
2646 ;; Mentioned as Required in the .pc file
2647 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2648 ("gtk+" ,gtk+-2)))
2649 (native-inputs
2650 `(("intltool" ,intltool)
221ed17a 2651 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2652 ("pkg-config" ,pkg-config)))
2653 (home-page "https://developer.gnome.org/libgnomecanvas/")
2654 (synopsis "Flexible widget for creating interactive structured graphics")
2655 (description "The GnomeCanvas widget provides a flexible widget for
2656creating interactive structured graphics.")
2657 (license license:lgpl2.0+)))
2658
eadc734e
RW
2659(define-public libgnomecanvasmm
2660 (package
2661 (name "libgnomecanvasmm")
2662 (version "2.26.0")
2663 (source (origin
2664 (method url-fetch)
2665 (uri (string-append "mirror://gnome/sources/" name "/"
2666 (version-major+minor version) "/"
2667 name "-" version ".tar.bz2"))
2668 (sha256
2669 (base32
2670 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2671 (build-system gnu-build-system)
2672 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2673 (native-inputs
2674 `(("gtkmm-2" ,gtkmm-2)
2675 ("pkg-config" ,pkg-config)))
8e933cb3 2676 (home-page "https://gtkmm.org")
eadc734e
RW
2677 (synopsis "C++ bindings to the GNOME Canvas library")
2678 (description "C++ bindings to the GNOME Canvas library.")
2679 (license license:lgpl2.0+)))
2680
5698b8b8
JD
2681(define-public libgnomeui
2682 (package
2683 (name "libgnomeui")
2684 (version "2.24.5")
2685 (source (origin
2686 (method url-fetch)
b38e45d8
EB
2687 (uri (string-append "mirror://gnome/sources/" name "/"
2688 (version-major+minor version) "/"
2689 name "-" version ".tar.bz2"))
8fa1872a 2690 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2691 (sha256
2692 (base32
2693 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2694 (build-system gnu-build-system)
2695 ;; Mentioned as Required in the .pc file
0a38a497
AE
2696 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2697 ("libgnome" ,libgnome)
2698 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2699 ("libgnome-keyring" ,libgnome-keyring)))
0a38a497 2700 (inputs `(("libjpeg" ,libjpeg)
5698b8b8
JD
2701 ("popt" ,popt)
2702 ("libbonobo" ,libbonobo)
2703 ("libxml2" ,libxml2)
2704 ("libglade" ,libglade)))
2705 (native-inputs
221ed17a
EB
2706 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2707 ("intltool" ,intltool)
5698b8b8
JD
2708 ("pkg-config" ,pkg-config)))
2709 (home-page "https://developer.gnome.org/libgnomeui/")
2710 (synopsis "Additional widgets for applications")
35b9e423 2711 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2712applications. Many of the widgets from libgnomeui have already been
2713ported to GTK+.")
5698b8b8
JD
2714 (license license:lgpl2.0+)))
2715
2716(define-public libglade
2717 (package
2718 (name "libglade")
2719 (version "2.6.4")
2720 (source (origin
2721 (method url-fetch)
b38e45d8
EB
2722 (uri (string-append "mirror://gnome/sources/" name "/"
2723 (version-major+minor version) "/"
2724 name "-" version ".tar.bz2"))
5698b8b8
JD
2725 (sha256
2726 (base32
2727 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2728 (build-system gnu-build-system)
2729 (inputs
92dcc23d
AE
2730 `(("python" ,python))) ;; needed for the optional libglade-convert program
2731 (propagated-inputs
5698b8b8 2732 `(("gtk+-2" ,gtk+-2)
92dcc23d 2733 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2734 (native-inputs
2735 `(("pkg-config" ,pkg-config)))
2736 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2737 (synopsis "Load glade interfaces and access the glade built widgets")
2738 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2739graphical interfaces described in glade files and for accessing the
2740widgets built in the loading process.")
2741 (license license:gpl2+))) ; This is correct. GPL not LGPL
2742
2743(define-public libgnomeprint
eb497b66
LC
2744 ;; This library has been deprecated since 2006; see
2745 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2746 (package
2747 (name "libgnomeprint")
d19db454 2748 (version "2.18.8")
5698b8b8
JD
2749 (source (origin
2750 (method url-fetch)
b38e45d8
EB
2751 (uri (string-append "mirror://gnome/sources/" name "/"
2752 (version-major+minor version) "/"
2753 name "-" version ".tar.bz2"))
5698b8b8
JD
2754 (sha256
2755 (base32
d19db454 2756 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2757 (build-system gnu-build-system)
2758 (inputs
2759 `(("popt" ,popt)
2760 ("libart-lgpl" ,libart-lgpl)
2761 ("gtk+" ,gtk+-2)
44add1ce 2762 ("libxml2" ,libxml2)))
5698b8b8
JD
2763 (native-inputs
2764 `(("intltool" ,intltool)
221ed17a 2765 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2766 ("pkg-config" ,pkg-config)))
2767 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2768 (synopsis "Printing framework for GNOME")
eb497b66
LC
2769 (description
2770 "GNOME-print was a printing framework for GNOME. It has been deprecated
2771since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2772 (license license:lgpl2.0+)))
2773
2774
2775(define-public libgnomeprintui
eb497b66 2776 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2777 (package
2778 (name "libgnomeprintui")
36053d7f 2779 (version "2.18.6")
5698b8b8
JD
2780 (source (origin
2781 (method url-fetch)
b38e45d8
EB
2782 (uri (string-append "mirror://gnome/sources/" name "/"
2783 (version-major+minor version) "/"
2784 name "-" version ".tar.bz2"))
5698b8b8
JD
2785 (sha256
2786 (base32
36053d7f 2787 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2788 (build-system gnu-build-system)
2789 ;; Mentioned as Required in the .pc file
2790 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2791 (inputs `(("gtk+" ,gtk+-2)
2792 ("glib" ,glib)
2793 ("gnome-icon-theme" ,gnome-icon-theme)
2794 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2795 ("libxml2" ,libxml2)))
5698b8b8
JD
2796 (native-inputs
2797 `(("intltool" ,intltool)
2798 ("pkg-config" ,pkg-config)))
2799 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2800 (synopsis "Printing framework for GNOME")
eb497b66 2801 (description (package-description libgnomeprint))
5698b8b8
JD
2802 (license license:lgpl2.0+)))
2803
5698b8b8
JD
2804(define-public libbonoboui
2805 (package
2806 (name "libbonoboui")
2807 (version "2.24.5")
2808 (source (origin
2809 (method url-fetch)
b38e45d8
EB
2810 (uri (string-append "mirror://gnome/sources/" name "/"
2811 (version-major+minor version) "/"
2812 name "-" version ".tar.bz2"))
5698b8b8
JD
2813 (sha256
2814 (base32
2815 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2816 (build-system gnu-build-system)
2817 (arguments
2818 `(#:phases
dc1d3cde
KK
2819 (modify-phases %standard-phases
2820 (add-before 'check 'start-xserver
2821 (lambda* (#:key inputs #:allow-other-keys)
2822 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2823 (disp ":1"))
2824
2825 (setenv "HOME" (getcwd))
2826 (setenv "DISPLAY" disp)
2827 ;; There must be a running X server and make check doesn't start one.
2828 ;; Therefore we must do it.
2829 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2830 ;; Mentioned as Required by the .pc file
2831 (propagated-inputs `(("libxml2" ,libxml2)))
2832 (inputs
2833 `(("popt" ,popt)
2834 ("pangox-compat" ,pangox-compat)
2835 ("libgnome" ,libgnome)
2836 ("libgnomecanvas" ,libgnomecanvas)
2837 ("libglade" ,libglade)))
2838 (native-inputs
221ed17a
EB
2839 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2840 ("intltool" ,intltool)
ff337525 2841 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2842 ("pkg-config" ,pkg-config)))
2843 (home-page "https://developer.gnome.org/libbonoboui/")
2844 (synopsis "Some user interface controls using Bonobo")
2845 (description "The Bonobo UI library provides a number of user interface
2846controls using the Bonobo component framework.")
2847 (license license:lgpl2.0+)))
2848
fecbf86e
SB
2849(define-public libwnck
2850 (package
2851 (name "libwnck")
d3b40696 2852 (version "3.32.0")
fecbf86e
SB
2853 (source (origin
2854 (method url-fetch)
2855 (uri (string-append "mirror://gnome/sources/" name "/"
2856 (version-major+minor version) "/"
2857 name "-" version ".tar.xz"))
2858 (sha256
ad9b8987 2859 (base32
d3b40696
KK
2860 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2861 (build-system meson-build-system)
fecbf86e
SB
2862 (native-inputs
2863 `(("pkg-config" ,pkg-config)
d3b40696
KK
2864 ("glib" ,glib "bin") ; for glib-mkenums
2865 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2866 ("intltool" ,intltool)))
2867 (propagated-inputs
427476d5
SB
2868 `(("gtk+" ,gtk+)
2869 ("libxres" ,libxres)
2870 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2871 (home-page "https://developer.gnome.org/libwnck/")
2872 (synopsis "Window Navigator Construction Kit")
2873 (description
2874 "Libwnck is the Window Navigator Construction Kit, a library for use in
2875writing pagers, tasklists, and more generally applications that are dealing
2876with window management. It tries hard to respect the Extended Window Manager
2877Hints specification (EWMH).")
2878 (license license:lgpl2.0+)))
2879
2880;; stable version for gtk2, required by xfwm4.
dbb7a081 2881(define-public libwnck-2
fecbf86e
SB
2882 (package (inherit libwnck)
2883 (name "libwnck")
2884 (version "2.30.7")
2885 (source (origin
2886 (method url-fetch)
2887 (uri (string-append "mirror://gnome/sources/" name "/"
2888 (version-major+minor version) "/"
2889 name "-" version ".tar.xz"))
2890 (sha256
2891 (base32
2892 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2893 (build-system gnu-build-system)
2894 (native-inputs
2895 `(("pkg-config" ,pkg-config)
2896 ("intltool" ,intltool)))
fecbf86e 2897 (propagated-inputs
427476d5
SB
2898 `(("gtk+" ,gtk+-2)
2899 ("libxres" ,libxres)
2900 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2901
2902(define-public goffice
2903 (package
2904 (name "goffice")
09abffcc 2905 (version "0.10.46")
b804c61e
JD
2906 (source (origin
2907 (method url-fetch)
16243f0b 2908 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2909 (version-major+minor version) "/"
16243f0b 2910 "goffice-" version ".tar.xz"))
b804c61e 2911 (sha256
09abffcc 2912 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 2913 (build-system gnu-build-system)
72a06d3e 2914 (outputs '("out"
355420c6 2915 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
2916 (arguments
2917 '(#:configure-flags (list (string-append "--with-html-dir="
2918 (assoc-ref %outputs "doc")
2919 "/share/gtk-doc/html"))))
b804c61e
JD
2920 (inputs
2921 `(("gtk+" ,gtk+)
2922 ("libgsf" ,libgsf)
2923 ("librsvg" ,librsvg)
2924 ("libxslt" ,libxslt)
2925 ("libxml2" ,libxml2)))
2926 (native-inputs
2927 `(("intltool" ,intltool)
f280cdb1 2928 ("glib" ,glib "bin")
b804c61e
JD
2929 ("pkg-config" ,pkg-config)))
2930 (home-page "https://developer.gnome.org/goffice/")
2931 (synopsis "Document-centric objects and utilities")
2932 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 2933 (license
b804c61e
JD
2934 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2935 ;; Note: NOT LGPL
2936 (list license:gpl2 license:gpl3))))
2937
c024ae36
RW
2938(define-public goffice-0.8
2939 (package (inherit goffice)
2940 (version "0.8.17")
2941 (source (origin
2942 (method url-fetch)
2943 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2944 (version-major+minor version) "/"
2945 (package-name goffice) "-" version ".tar.xz"))
2946 (sha256
2947 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2948 (arguments
2949 `(#:phases
dc1d3cde
KK
2950 (modify-phases %standard-phases
2951 (add-after 'unpack 'fix-pcre-check
2952 (lambda _
2953 ;; Only glib.h can be included directly. See
2954 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2955 (substitute* "configure"
2956 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
2957
2958 ,@(package-arguments goffice)))
c024ae36
RW
2959 (propagated-inputs
2960 ;; libgoffice-0.8.pc mentions libgsf-1
2961 `(("libgsf" ,libgsf)))
2962 (inputs
2963 `(("gtk" ,gtk+-2)
2964 ,@(alist-delete "gtk" (package-inputs goffice))))))
2965
b804c61e
JD
2966(define-public gnumeric
2967 (package
2968 (name "gnumeric")
f0517b5d 2969 (version "1.12.46")
b804c61e
JD
2970 (source (origin
2971 (method url-fetch)
b7fd0217 2972 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 2973 (version-major+minor version) "/"
b7fd0217 2974 "gnumeric-" version ".tar.xz"))
b804c61e
JD
2975 (sha256
2976 (base32
f0517b5d 2977 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 2978 (build-system glib-or-gtk-build-system)
b804c61e
JD
2979 (arguments
2980 `(;; The gnumeric developers don't worry much about failing tests.
2981 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 2982 #:tests? #f
b804c61e 2983 #:phases
7bcbd40d
EF
2984 (modify-phases %standard-phases
2985 (add-before
2986 'configure 'pre-conf
2987 (lambda* (#:key outputs #:allow-other-keys)
2988 ;; Make install tries to write into the directory of goffice
2989 ;; I am informed that this only affects the possibility to embed a
2990 ;; spreadsheet inside an Abiword document. So presumably when we
2991 ;; package Abiword we'll have to refer it to this directory.
2992 (substitute* "configure"
2993 (("^GOFFICE_PLUGINS_DIR=.*")
2994 (string-append "GOFFICE_PLUGINS_DIR="
2995 (assoc-ref outputs "out")
2996 "/goffice/plugins"))))))))
b804c61e
JD
2997 (inputs
2998 `(("glib" ,glib)
2999 ("gtk+" ,gtk+)
3000 ("goffice" ,goffice)
3001 ("libgsf" ,libgsf)
7bcbd40d 3002 ("librsvg" ,librsvg)
b804c61e 3003 ("libxml2" ,libxml2)
7bcbd40d 3004 ("libxslt" ,libxslt)
2e4c5457 3005 ("python" ,python-2)
6983ba56 3006 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3007 ("zlib" ,zlib)))
3008 (native-inputs
6983ba56 3009 `(("bison" ,bison)
1ed398d1 3010 ("docbook-xml" ,docbook-xml)
6983ba56 3011 ("intltool" ,intltool)
3a2efbc8 3012 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
b9663471 3013 ("glib:bin" ,glib "bin")
b804c61e
JD
3014 ("pkg-config" ,pkg-config)))
3015 (home-page "http://www.gnumeric.org")
66672a45
LC
3016 (synopsis "Spreadsheet application")
3017 (description
3018 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3019interoperable with other spreadsheet applications. It has a vast array of
3020features beyond typical spreadsheet functionality, such as support for linear
3021and non-linear solvers, statistical analysis, and telecommunication
3022engineering.")
3023 (license
b804c61e
JD
3024 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3025 (list license:gpl2 license:gpl3))))
6f885c05
FB
3026
3027(define-public gnome-themes-standard
3028 (package
3029 (name "gnome-themes-standard")
0b7b8fb0 3030 (version "3.22.3")
6f885c05
FB
3031 (source
3032 (origin
3033 (method url-fetch)
2e6ecc5c 3034 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3035 (version-major+minor version) "/" name "-"
3036 version ".tar.xz"))
3037 (sha256
3038 (base32
0b7b8fb0 3039 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3040 (build-system gnu-build-system)
8ac70c7f
SB
3041 (arguments
3042 '(#:configure-flags
3043 ;; Don't create 'icon-theme.cache'.
3044 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3045 (true (string-append coreutils "/bin/true")))
3046 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3047 (inputs
3048 `(("gtk+" ,gtk+)
3049 ("gtk+-2" ,gtk+-2)
3050 ("librsvg" ,librsvg)
3051 ("libxml2" ,libxml2)
3052 ("glib" ,glib)))
3053 (native-inputs
3054 `(("intltool" ,intltool)
3055 ("glib:bin" ,glib "bin")
3056 ("pkg-config" ,pkg-config)))
6f885c05
FB
3057 (home-page "https://launchpad.net/gnome-themes-standard")
3058 (synopsis "Default GNOME 3 themes")
3059 (description
3060 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3061 (license license:lgpl2.1+)))
5a659a48 3062
df90c701
RW
3063(define-public seahorse
3064 (package
3065 (name "seahorse")
bcea3c11 3066 (version "3.32.2")
df90c701
RW
3067 (source
3068 (origin
3069 (method url-fetch)
3070 (uri (string-append "mirror://gnome/sources/" name "/"
3071 (version-major+minor version) "/" name "-"
3072 version ".tar.xz"))
3073 (sha256
3074 (base32
bcea3c11 3075 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
3076 (patches (search-patches
3077 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3078 (build-system meson-build-system)
3079 (arguments
bcea3c11
KK
3080 '(#:glib-or-gtk? #t
3081 #:phases
af561664
MÁAV
3082 (modify-phases %standard-phases
3083 (add-after 'unpack 'skip-gtk-update-icon-cache
3084 ;; Don't create 'icon-theme.cache'.
3085 (lambda _
3086 (substitute* "build-aux/meson_post_install.py"
3087 (("gtk-update-icon-cache") "true"))
3088 #t)))))
df90c701
RW
3089 (inputs
3090 `(("gtk+" ,gtk+)
3091 ("gcr" ,gcr)
34b979b9 3092 ("gnupg" ,gnupg)
df90c701 3093 ("gpgme" ,gpgme)
34b979b9 3094 ("openldap" ,openldap)
4a1bf090 3095 ("openssh" ,openssh)
af561664 3096 ("avahi" ,avahi)
bcea3c11 3097 ("libpwquality" ,libpwquality)
34b979b9
EF
3098 ("libsecret" ,libsecret)
3099 ("libsoup" ,libsoup)))
df90c701 3100 (native-inputs
af561664 3101 `(("gettext" ,gettext-minimal)
df90c701
RW
3102 ("glib:bin" ,glib "bin")
3103 ("itstool" ,itstool)
bcb354ad 3104 ("pkg-config" ,pkg-config)
af561664 3105 ("vala" ,vala)
bcb354ad 3106 ("xmllint" ,libxml2)))
bcea3c11 3107 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3108 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3109 (description
3110 "Seahorse is a GNOME application for managing encryption keys and
3111passwords in the GNOME keyring.")
3112 (license license:gpl2+)))
3113
5a659a48
SB
3114(define-public vala
3115 (package
3116 (name "vala")
2d6872f6 3117 (version "0.44.5")
5a659a48
SB
3118 (source (origin
3119 (method url-fetch)
3120 (uri (string-append "mirror://gnome/sources/" name "/"
3121 (version-major+minor version) "/"
3122 name "-" version ".tar.xz"))
3123 (sha256
3124 (base32
2d6872f6 3125 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
5a659a48 3126 (build-system gnu-build-system)
1ea90625
SB
3127 (arguments
3128 '(#:phases
3129 (modify-phases %standard-phases
f4925a4f 3130 (add-before 'check 'pre-check
1ea90625
SB
3131 (lambda _
3132 (setenv "CC" "gcc")
8839b6be
RW
3133 (substitute* "valadoc/tests/testrunner.sh"
3134 (("export PKG_CONFIG_PATH=" m)
3135 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3136 ;; For missing '/etc/machine-id'.
3137 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3138 #t)))))
5a659a48
SB
3139 (native-inputs
3140 `(("pkg-config" ,pkg-config)
3141 ("flex" ,flex)
3142 ("bison" ,bison)
3143 ("xsltproc" ,libxslt)
3144 ("dbus" ,dbus) ; for dbus tests
3145 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3146 (inputs
3147 `(("graphviz" ,graphviz)))
5a659a48 3148 (propagated-inputs
8839b6be 3149 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3150 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3151 (synopsis "Compiler for the GObject type system")
3152 (description
3153 "Vala is a programming language that aims to bring modern programming
3154language features to GNOME developers without imposing any additional runtime
3155requirements and without using a different ABI compared to applications and
3156libraries written in C.")
3157 (license license:lgpl2.1+)))
ea57378f
SB
3158
3159(define-public vte
3160 (package
3161 (name "vte")
68c47474 3162 (version "0.58.3")
ea57378f
SB
3163 (source (origin
3164 (method url-fetch)
ac87ffb8 3165 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3166 (version-major+minor version) "/"
ac87ffb8 3167 "vte-" version ".tar.xz"))
ea57378f
SB
3168 (sha256
3169 (base32
68c47474
TGR
3170 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3171 (build-system meson-build-system)
ea57378f
SB
3172 (native-inputs
3173 `(("pkg-config" ,pkg-config)
3174 ("intltool" ,intltool)
3175 ("vala" ,vala)
3176 ("gobject-introspection" ,gobject-introspection)
68c47474 3177 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3178 ("gperf" ,gperf)
ea57378f
SB
3179 ("xmllint" ,libxml2)))
3180 (propagated-inputs
68c47474
TGR
3181 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3182 ("gnutls" ,gnutls) ; ditto
3183 ("pcre2" ,pcre2))) ; ditto
f032d0be 3184 (home-page "https://www.gnome.org/")
ea57378f
SB
3185 (synopsis "Virtual Terminal Emulator")
3186 (description
3187 "VTE is a library (libvte) implementing a terminal emulator widget for
3188GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3189gnome-terminal, but can also be used to embed a console/terminal in games,
3190editors, IDEs, etc.")
3191 (license license:lgpl2.1+)))
3192
c44fb4df
MO
3193(define-public vte-ng
3194 (package
3195 (inherit vte)
3196 (name "vte-ng")
24f4fcbe 3197 (version "0.58.2.a")
afd90f8d 3198 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3199 (source (origin
3200 (method git-fetch)
3201 (uri (git-reference (url home-page) (commit version)))
3202 (file-name (git-file-name name version))
3203 (sha256
3204 (base32
24f4fcbe
MB
3205 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3206 (build-system meson-build-system)
c44fb4df
MO
3207 (native-inputs
3208 `(("gtk-doc" ,gtk-doc)
c44fb4df 3209 ,@(package-native-inputs vte)))
c44fb4df 3210 (arguments
24f4fcbe 3211 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3212 (synopsis "Enhanced VTE terminal widget")
3213 (description
3214 "VTE is a library (libvte) implementing a terminal emulator widget for
3215GTK+, this fork provides additional functions exposed for keyboard text
3216selection and URL hints.")))
3217
2776d72c
EF
3218;; provides vte 2.90, required for some terminal emulators
3219;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3220;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3221;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3222;; pantheon-terminal, roxterm are not currently packaged
3223(define-public vte-0.36
3224 (package (inherit vte)
3225 (name "vte")
3226 (version "0.36.5")
3227 (source (origin
3228 (method url-fetch)
3229 (uri (string-append "mirror://gnome/sources/" name "/"
3230 (version-major+minor version) "/"
3231 name "-" version ".tar.xz"))
3232 (sha256
3233 (base32
3234 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3235 (propagated-inputs
3236 `(("gtk" ,gtk+)
3237 ("ncurses" ,ncurses)))))
3238
ea57378f
SB
3239;; stable version for gtk2, required by xfce4-terminal.
3240(define-public vte/gtk+-2
3241 (package (inherit vte)
3242 (name "vte")
3243 (version "0.28.2")
3244 (source (origin
3245 (method url-fetch)
3246 (uri (string-append "mirror://gnome/sources/" name "/"
3247 (version-major+minor version) "/"
3248 name "-" version ".tar.xz"))
3249 (sha256
3250 (base32
7d48938a
EF
3251 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3252 (patches (search-patches
3253 "vte-CVE-2012-2738-pt1.patch"
3254 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3255 (build-system gnu-build-system)
ea57378f
SB
3256 (arguments
3257 '(#:configure-flags '("--disable-python")))
3258 (native-inputs
3259 `(("pkg-config" ,pkg-config)
3260 ("intltool" ,intltool)
3261 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3262 (propagated-inputs
3263 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3264 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3265
cce0da5e
TD
3266(define-public vinagre
3267 (package
3268 (name "vinagre")
3269 (version "3.22.0")
3270 (source (origin
3271 (method url-fetch)
3272 (uri (string-append "mirror://gnome/sources/" name "/"
3273 (version-major+minor version) "/"
3274 name "-" version ".tar.xz"))
684f97f8
EF
3275 (patches (search-patches "vinagre-newer-freerdp.patch"
3276 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3277 (sha256
3278 (base32
3279 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3280 (build-system glib-or-gtk-build-system)
684f97f8 3281 (arguments
7f486d25
MC
3282 ;; Disable -Werror and such, to avoid build failures on compilation
3283 ;; warnings.
3284 '(#:configure-flags '("--enable-compile-warnings=minimum")
3285 #:phases
684f97f8 3286 (modify-phases %standard-phases
1839768c
EF
3287 (add-before 'install 'skip-gtk-update-icon-cache
3288 (lambda _
3289 ;; Don't create 'icon-theme.cache'
3290 (substitute* (find-files "." "^Makefile$")
3291 (("gtk-update-icon-cache") (which "true")))
3292 #t))
684f97f8
EF
3293 (add-after 'unpack 'patch-configure
3294 (lambda _
3295 (substitute* "configure"
3296 (("freerdp") "freerdp2"))
3297 #t)))))
cce0da5e
TD
3298 (native-inputs
3299 `(("pkg-config" ,pkg-config)
3300 ("intltool" ,intltool)
3301 ("itstool" ,itstool)
1839768c 3302 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3303 (inputs
3304 `(("libxml2" ,libxml2)
3305 ("gtk-vnc" ,gtk-vnc)
3306 ("gnome-keyring" ,gnome-keyring)
3307 ("libsecret" ,libsecret)
3308 ("freerdp" ,freerdp)
3309 ("spice" ,spice)
3310 ("spice-gtk" ,spice-gtk)
3311 ("telepathy-glib" ,telepathy-glib)
3312 ("vte" ,vte)))
cce0da5e
TD
3313 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3314 (synopsis "Remote desktop viewer for GNOME")
3315 (description "Vinagre is a remote display client supporting the VNC, SPICE
3316and RDP protocols.")
3317 (license license:gpl3+)))
3318
b47e1b20
FB
3319(define-public dconf
3320 (package
3321 (name "dconf")
1e33331c 3322 (version "0.32.0")
b47e1b20
FB
3323 (source (origin
3324 (method url-fetch)
3325 (uri (string-append
2e6ecc5c 3326 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3327 (version-major+minor version) "/"
3328 name "-" version ".tar.xz"))
3329 (sha256
f05c809f 3330 (base32
1e33331c 3331 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 3332 (build-system meson-build-system)
bc036f4c
MB
3333 (propagated-inputs
3334 ;; In Requires of dconf.pc.
3335 `(("glib" ,glib)))
b47e1b20
FB
3336 (inputs
3337 `(("gtk+" ,gtk+)
bc036f4c 3338 ("dbus" ,dbus)))
b47e1b20 3339 (native-inputs
1e33331c
MB
3340 `(("bash-completion" ,bash-completion)
3341 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3342 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3343 ("docbook-xml" ,docbook-xml-4.2)
3344 ("docbook-xsl" ,docbook-xsl)
35fa923d 3345 ("glib:bin" ,glib "bin")
03676d6f 3346 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3347 ("pkg-config" ,pkg-config)
3348 ("vala" ,vala)))
b47e1b20
FB
3349 (arguments
3350 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3351 ; or /etc/machine-id.
35fa923d
MB
3352 #:glib-or-gtk? #t
3353 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3354 (home-page "https://developer.gnome.org/dconf")
3355 (synopsis "Low-level GNOME configuration system")
3356 (description "Dconf is a low-level configuration system. Its main purpose
3357is to provide a backend to GSettings on platforms that don't already have
3358configuration storage systems.")
e20e6b40 3359 (license license:lgpl2.1+)))
109da1c0
AE
3360
3361(define-public json-glib
3362 (package
3363 (name "json-glib")
4115e8ea 3364 (version "1.4.4")
109da1c0
AE
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
4115e8ea 3372 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3373 (build-system meson-build-system)
109da1c0 3374 (native-inputs
98afa184
MB
3375 `(("gettext" ,gettext-minimal)
3376 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3377 ("gobject-introspection" ,gobject-introspection)
3378 ("pkg-config" ,pkg-config)))
3379 (propagated-inputs
88c6b580 3380 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3381 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3382 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3383 (description
3384 "JSON-GLib is a C library based on GLib providing serialization and
3385deserialization support for the JavaScript Object Notation (JSON) format
3386described by RFC 4627. It provides parser and generator GObject classes and
3387various wrappers for the complex data types employed by JSON, such as arrays
3388and objects.")
109da1c0 3389 (license license:lgpl2.1+)))
6f96a359
SB
3390
3391(define-public libxklavier
3392 (package
3393 (name "libxklavier")
5f39050b 3394 (version "5.4")
6f96a359 3395 (source (origin
5f39050b 3396 ;; Note: There's no tarball at ftp.gnome.org for this version.
3397 (method git-fetch)
3398 (uri (git-reference
3399 (url "https://anongit.freedesktop.org/git/libxklavier")
3400 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3401 (sha256
3402 (base32
5f39050b 3403 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3404 (file-name (git-file-name name version))))
6f96a359
SB
3405 (build-system gnu-build-system)
3406 (arguments
5f39050b 3407 '(#:phases
3408 (modify-phases %standard-phases
3409 (add-after 'unpack 'no-configure
3410 (lambda* _
3411 (setenv "NOCONFIGURE" "1")
3412 #t)))
3413 #:configure-flags
6f96a359
SB
3414 (list (string-append "--with-xkb-base="
3415 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3416 "/share/X11/xkb")
3417 "--disable-xmodmap-support")))
6f96a359
SB
3418 (native-inputs
3419 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3420 ("gobject-introspection" ,gobject-introspection)
5f39050b 3421 ("pkg-config" ,pkg-config)
3422 ("gtk-doc" ,gtk-doc)
3423 ("intltool" ,intltool)
3424 ("which" ,which)
3425 ("autoconf" ,autoconf)
3426 ("automake" ,automake)
3427 ("libtool" ,libtool)))
6f96a359
SB
3428 (propagated-inputs
3429 ;; Required by libxklavier.pc.
3430 `(("glib" ,glib)
3431 ("libxml2" ,libxml2)))
3432 (inputs
3433 `(("iso-codes" ,iso-codes)
3434 ("libxi" ,libxi)
3435 ("libxkbfile" ,libxkbfile)
3436 ("xkbcomp" ,xkbcomp)
3437 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3438 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3439 (synopsis "High-level API for X Keyboard Extension")
3440 (description
3441 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3442Extension known as XKB. This library is intended to support XFree86 and other
3443commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3444indicators etc).")
3445 (license license:lgpl2.0+)))
619936a4
LC
3446
3447(define-public python2-rsvg
3448 ;; XXX: This is actually a subset of gnome-python-desktop.
3449 (package
3450 (name "python2-rsvg")
3451 (version "2.32.0")
3452 (source
3453 (origin
3454 (method url-fetch)
3455 (uri (string-append
3456 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3457 version ".tar.bz2"))
3458 (sha256
3459 (base32
3460 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3461 (build-system gnu-build-system)
3462 (native-inputs
3463 `(("pkg-config" ,pkg-config)))
3464 (inputs
3465 `(("python" ,python-2)
3466 ("python2-pygtk" ,python2-pygtk)
3467 ("librsvg" ,librsvg)))
f032d0be 3468 (home-page "https://www.gnome.org")
619936a4
LC
3469 (synopsis "Python bindings to librsvg")
3470 (description
3ad75446 3471 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3472library.")
3473
3474 ;; This is the license of the rsvg bindings. The license of each module
3475 ;; of gnome-python-desktop is given in 'COPYING'.
3476 (license license:lgpl2.1+)))
a31a6d22 3477
f2ca414a
SB
3478(define-public glib-networking
3479 (package
3480 (name "glib-networking")
0d75c64d 3481 (version "2.60.3")
f2ca414a
SB
3482 (source (origin
3483 (method url-fetch)
3484 (uri (string-append "mirror://gnome/sources/glib-networking/"
3485 (version-major+minor version) "/"
fb8fe1e8 3486 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3487 (sha256
3488 (base32
0d75c64d 3489 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3490 (build-system meson-build-system)
f2ca414a 3491 (arguments
0d75c64d 3492 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3493 (native-inputs
3494 `(("pkg-config" ,pkg-config)
3495 ("intltool" ,intltool)))
3496 (inputs
3497 `(("glib" ,glib)
3498 ("gnutls" ,gnutls)
4b8f1313 3499 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3500 (home-page "https://www.gnome.org")
f2ca414a
SB
3501 (synopsis "Network-related GIO modules")
3502 (description
3503 "This package contains various network related extensions for the GIO
3504library.")
3505 (license license:lgpl2.0+)))
3506
ca649680 3507(define-public rest
4510b2da 3508 (package
ca649680 3509 (name "rest")
a4194d16 3510 (version "0.8.1")
4510b2da
SB
3511 (source (origin
3512 (method url-fetch)
3513 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3514 (version-major+minor version) "/"
3515 name "-" version ".tar.xz"))
4510b2da
SB
3516 (sha256
3517 (base32
a4194d16 3518 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3519 (build-system gnu-build-system)
3520 (arguments
3521 '(#:tests? #f ; tests require internet connection
3522 #:configure-flags
3523 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3524 (native-inputs
3525 `(("glib-mkenums" ,glib "bin")
3526 ("gobject-introspection" ,gobject-introspection)
3527 ("pkg-config" ,pkg-config)))
3528 (propagated-inputs
3529 ;; rest-0.7.pc refers to all these.
3530 `(("glib" ,glib)
3531 ("libsoup" ,libsoup)
3532 ("libxml2" ,libxml2)))
24d6cc1d 3533 (home-page "https://www.gtk.org/")
4510b2da
SB
3534 (synopsis "RESTful web api query library")
3535 (description
3536 "This library was designed to make it easier to access web services that
3537claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3538libxml to ease remote use of the RESTful API.")
3539 (license license:lgpl2.1+)))
3540
6e1bb642
SB
3541(define-public libsoup
3542 (package
3543 (name "libsoup")
9a9cd9bc 3544 (version "2.70.0")
6e1bb642
SB
3545 (source (origin
3546 (method url-fetch)
3547 (uri (string-append "mirror://gnome/sources/libsoup/"
3548 (version-major+minor version) "/"
c1b79b36 3549 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3550 (sha256
3551 (base32
9a9cd9bc 3552 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3553 (build-system meson-build-system)
6e1bb642
SB
3554 (outputs '("out" "doc"))
3555 (arguments
2deb146f 3556 `(#:modules ((guix build utils)
eccaa8bf 3557 (guix build meson-build-system)
2deb146f
LC
3558 (ice-9 popen))
3559
f8026a79 3560 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3561 #:phases
3562 (modify-phases %standard-phases
eccaa8bf 3563 (add-after 'unpack 'adjust-tests
26c228f9 3564 (lambda _
eccaa8bf
MB
3565 ;; This test fails due to missing /etc/nsswitch.conf
3566 ;; in the build environment.
26c228f9
LC
3567 (substitute* "tests/socket-test.c"
3568 ((".*/sockets/unconnected.*") ""))
2deb146f 3569
f8026a79
MB
3570 ;; These fail because "subdomain.localhost" does not resolve in
3571 ;; the build environment.
3572 (substitute* "tests/hsts-test.c"
3573 ((".*/hsts/basic.*") "")
3574 ((".*/hsts/subdomains.*") "")
3575 ((".*/hsts/superdomain.*") "")
3576 ((".*/hsts/utf8-address.*") ""))
3577 (substitute* "tests/hsts-db-test.c"
3578 ((".*/hsts-db/subdomains.*") ""))
3579
2deb146f
LC
3580 ;; Generate a self-signed certificate that has "localhost" as its
3581 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3582 ;; 3.5.12, tests such as "ssl-tests" fail:
3583 ;;
3584 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3585 ;;
3586 ;; 'certtool' is interactive so we have to pipe it the answers.
3587 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3588 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3589 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3590 (for-each (lambda (line)
3591 (display line pipe)
3592 (newline pipe))
3593 '("" ;Common name
3594 "" ;UID
3595 "Guix" ;Organizational unit name
3596 "GNU" ;Organization name
3597 "" ;Locality name
3598 "" ;State or province
3599 "" ;Country
3600 "" ;subject's domain component (DC)
3601 "" ;E-mail
3602 "" ;serial number
3603 "-1" ;expiration time
3604 "N" ;belong to authority?
3605 "N" ;web client certificate?
3606 "N" ;IPsec IKE?
3607 "Y" ;web server certificate?
3608 "localhost" ;dnsName of subject
3609 "" ;dnsName of subject (end)
3610 "" ;URI of subject
3611 "127.0.0.1" ;IP address of subject
3612 "" ;signing?
06f5bc4e
MB
3613 "" ;encryption (RSA)?
3614 "" ;data encryption?
2deb146f
LC
3615 "" ;sign OCSP requests?
3616 "" ;sign code?
3617 "" ;time stamping?
3618 "" ;email protection?
3619 "" ;URI of the CRL distribution point
3620 "y" ;above info OK?
3621 ))
3622 (close-pipe pipe))
26c228f9 3623 #t))
eccaa8bf
MB
3624 (add-after 'install 'move-doc
3625 (lambda* (#:key outputs #:allow-other-keys)
3626 (let ((out (assoc-ref outputs "out"))
3627 (doc (assoc-ref outputs "doc")))
3628 (mkdir-p (string-append doc "/share"))
3629 (copy-recursively (string-append out "/share/gtk-doc")
3630 (string-append doc "/share/gtk-doc"))
3631 (delete-file-recursively (string-append out "/share/gtk-doc"))
3632 #t))))))
6e1bb642 3633 (native-inputs
26c228f9 3634 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3635 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3636 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3637 ("intltool" ,intltool)
3638 ("pkg-config" ,pkg-config)
3639 ("python" ,python-wrapper)
fd730590 3640 ("vala" ,vala)
6e1bb642
SB
3641 ;; These are needed for the tests.
3642 ;; FIXME: Add PHP once available.
3643 ("curl" ,curl)
2deb146f 3644 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3645 ("httpd" ,httpd)))
3646 (propagated-inputs
3647 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3648 `(("brotli" ,google-brotli)
3649 ("glib" ,glib)
249846bf 3650 ("libpsl" ,libpsl)
eccaa8bf 3651 ("libxml2" ,libxml2)
f8026a79
MB
3652 ("sqlite" ,sqlite)
3653 ("zlib" ,zlib)))
eccaa8bf
MB
3654 (inputs
3655 `(("glib-networking" ,glib-networking)
3656 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3657 (home-page "https://live.gnome.org/LibSoup/")
3658 (synopsis "GLib-based HTTP Library")
3659 (description
3660 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3661and the GLib main loop, to integrate well with GNOME applications.")
3662 (license license:lgpl2.0+)))
3663
bba229a3
SB
3664(define-public libsecret
3665 (package
3666 (name "libsecret")
aa0063a0 3667 (version "0.20.2")
bba229a3
SB
3668 (source (origin
3669 (method url-fetch)
3670 (uri (string-append
896dcbc7
EF
3671 "mirror://gnome/sources/libsecret/"
3672 (version-major+minor version) "/"
0ada4e29 3673 "libsecret-" version ".tar.xz"))
bba229a3
SB
3674 (sha256
3675 (base32
aa0063a0 3676 "1hzz34gmsxxf1jm1b7qin390rkwbg8sx198xdkwxqp3q6cw19sc1"))))
bba229a3
SB
3677 (build-system gnu-build-system)
3678 (outputs '("out" "doc"))
3679 (arguments
3680 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3681 #:configure-flags
3682 (list (string-append "--with-html-dir="
3683 (assoc-ref %outputs "doc")
3684 "/share/gtk-doc/html"))))
3685 (native-inputs
c06ef010
MB
3686 `(("gettext" ,gettext-minimal)
3687 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3688 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3689 ("pkg-config" ,pkg-config)
3690 ("vala" ,vala)
3691 ("xsltproc" ,libxslt)))
3692 ;; These are needed for the tests.
3693 ;; FIXME: Add gjs once available.
3694 ;("dbus" ,dbus)
3695 ;("python2" ,python-2)
3696 ;("python2-dbus" ,python2-dbus)
3697 ;("python2-pygobject" ,python2-pygobject)
3698 ;("python2-pygobject-2" ,python2-pygobject-2)))
3699 (propagated-inputs
3700 `(("glib" ,glib))) ; required by libsecret-1.pc
3701 (inputs
3702 `(("docbook-xsl" ,docbook-xsl)
3703 ("libgcrypt" ,libgcrypt)
3704 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3705 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3706 (synopsis "GObject bindings for \"Secret Service\" API")
3707 (description
3708 "Libsecret is a GObject based library for storing and retrieving passwords
3709and other secrets. It communicates with the \"Secret Service\" using DBus.")
3710 (license license:lgpl2.1+)))
3711
b6821ee0 3712(define-public five-or-more
3713 (package
3714 (name "five-or-more")
bf782bfc 3715 (version "3.32.1")
b6821ee0 3716 (source
3717 (origin
3718 (method url-fetch)
bf782bfc 3719 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3720 (version-major+minor version) "/"
bf782bfc 3721 "five-or-more-" version ".tar.xz"))
b6821ee0 3722 (sha256
bf782bfc 3723 (base32 "0xw05dd2dwi9vsph9h158b4n89s5k07xrh6bjz1icm0pdmjwhpgk"))))
d9795e93
KK
3724 (build-system meson-build-system)
3725 (arguments
3726 '(#:glib-or-gtk? #t
3727 #:phases
3728 (modify-phases %standard-phases
3729 (add-after 'unpack 'skip-gtk-update-icon-cache
3730 (lambda _
3731 (substitute* "meson_post_install.py"
3732 (("gtk-update-icon-cache") (which "true")))
3733 #t)))))
b6821ee0 3734 (native-inputs
3735 `(("pkg-config" ,pkg-config)
d9795e93 3736 ("appstream-glib" ,appstream-glib)
b6821ee0 3737 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3738 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3739 ("intltool" ,intltool)
3740 ("itstool" ,itstool)
d9795e93 3741 ("vala" ,vala)
b6821ee0 3742 ("xmllint" ,libxml2)))
3743 (inputs
3744 `(("gtk+" ,gtk+)
d9795e93 3745 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3746 ("librsvg" ,librsvg)))
3747 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3748 (synopsis "Logic puzzle game")
3749 (description "Five or More is a game where you try to align
3750 five or more objects of the same color and shape causing them to disappear.
3751 On every turn more objects will appear, until the board is full.
3752 Try to last as long as possible.")
3753 (license license:gpl2+)))
3754
a31a6d22
SB
3755(define-public gnome-mines
3756 (package
3757 (name "gnome-mines")
2d817e41 3758 (version "3.32.2")
a31a6d22
SB
3759 (source
3760 (origin
3761 (method url-fetch)
3762 (uri (string-append "mirror://gnome/sources/" name "/"
3763 (version-major+minor version) "/"
3764 name "-" version ".tar.xz"))
3765 (sha256
3766 (base32
2d817e41 3767 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3768 (build-system meson-build-system)
a31a6d22 3769 (arguments
2d817e41
KK
3770 '(#:glib-or-gtk? #t
3771 #:phases
a31a6d22 3772 (modify-phases %standard-phases
2d817e41
KK
3773 (add-after 'unpack 'skip-gtk-update-icon-cache
3774 (lambda _
3775 (substitute* "build-aux/meson_post_install.py"
3776 (("gtk-update-icon-cache") (which "true")))
3777 #t)))))
a31a6d22 3778 (native-inputs
8c0fab36
RW
3779 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3780 ("pkg-config" ,pkg-config)
a31a6d22
SB
3781 ("desktop-file-utils" ,desktop-file-utils)
3782 ("intltool" ,intltool)
bcb354ad 3783 ("itstool" ,itstool)
8c0fab36
RW
3784 ("vala" ,vala)
3785 ("yelp" ,yelp)
3786 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3787 (inputs
3788 `(("gtk+" ,gtk+)
73992962 3789 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3790 ("librsvg" ,librsvg)))
3791 (home-page "https://wiki.gnome.org/Apps/Mines")
3792 (synopsis "Minesweeper game")
3793 (description
3794 "Mines (previously gnomine) is a puzzle game where you locate mines
3795floating in an ocean using only your brain and a little bit of luck.")
3796 (license license:gpl2+)))
88f70665 3797
dfc407f3
KY
3798(define-public gnome-sudoku
3799 (package
3800 (name "gnome-sudoku")
7dc728c4 3801 (version "3.32.0")
dfc407f3
KY
3802 (source
3803 (origin
3804 (method url-fetch)
3805 (uri (string-append "mirror://gnome/sources/" name "/"
3806 (version-major+minor version) "/"
3807 name "-" version ".tar.xz"))
3808 (sha256
3809 (base32
7dc728c4
KK
3810 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3811 (build-system meson-build-system)
3812 (arguments
3813 '(#:glib-or-gtk? #t
3814 #:phases
3815 (modify-phases %standard-phases
3816 (add-after 'unpack 'skip-gtk-update-icon-cache
3817 (lambda _
3818 (substitute* "build-aux/post_install.py"
3819 (("gtk-update-icon-cache") (which "true")))
3820 #t)))))
dfc407f3
KY
3821 (native-inputs
3822 `(("pkg-config" ,pkg-config)
3823 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3824 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3825 ("intltool" ,intltool)
3826 ("itstool" ,itstool)
7dc728c4 3827 ("vala" ,vala)
dfc407f3
KY
3828 ("xmllint" ,libxml2)))
3829 (inputs
3830 `(("gtk+" ,gtk+)
3831 ("json-glib" ,json-glib)
3832 ("libgee" ,libgee)
3833 ("librsvg" ,librsvg)
3834 ("qqwing" ,qqwing)))
3835 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3836 (synopsis "Japanese logic game")
3837 (description
3838 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3839GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3840possible while still providing features that make playing difficult Sudoku
3841more fun.")
3842 (license license:gpl2+)))
3843
88f70665
AW
3844(define-public gnome-terminal
3845 (package
3846 (name "gnome-terminal")
7dee3942 3847 (version "3.32.2")
88f70665
AW
3848 (source
3849 (origin
3850 (method url-fetch)
3851 (uri (string-append "mirror://gnome/sources/" name "/"
3852 (version-major+minor version) "/"
3853 name "-" version ".tar.xz"))
3854 (sha256
3855 (base32
7dee3942 3856 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3857 (build-system glib-or-gtk-build-system)
3858 (arguments
3859 '(#:configure-flags
3860 (list "--disable-migration" "--disable-search-provider"
3861 "--without-nautilus-extension")
3862 #:phases
3863 (modify-phases %standard-phases
3a4de6b2 3864 (add-before 'configure 'patch-/bin/true
88f70665
AW
3865 (lambda _
3866 (substitute* "configure"
3867 (("/bin/true") (which "true"))))))))
3868 (native-inputs
3869 `(("pkg-config" ,pkg-config)
3870 ("desktop-file-utils" ,desktop-file-utils)
3871 ("intltool" ,intltool)
bcb354ad
SB
3872 ("itstool" ,itstool)
3873 ("xmllint" ,libxml2)))
68702167
MW
3874 (propagated-inputs
3875 `(("dconf" ,dconf)))
88f70665
AW
3876 (inputs
3877 `(("gtk+" ,gtk+)
3878 ("vte" ,vte)
3879 ("gnutls" ,gnutls)
88f70665
AW
3880 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3881 ("util-linux" ,util-linux)
3882 ("vala" ,vala)))
3883 (home-page "https://wiki.gnome.org/Apps/Terminal")
3884 (synopsis "Terminal emulator")
3885 (description
3886 "GNOME Terminal is a terminal emulator application for accessing a
3887UNIX shell environment which can be used to run programs available on
3888your system.
3889
3890It supports several profiles, multiple tabs and implements several
3891keyboard shortcuts.")
3892 (license license:gpl3+)))
75016d07
AW
3893
3894(define-public colord
3895 (package
3896 (name "colord")
f98be942 3897 (version "1.4.4")
75016d07
AW
3898 (source
3899 (origin
3900 (method url-fetch)
5cc3096c 3901 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3902 "colord-" version ".tar.xz"))
75016d07 3903 (sha256
f98be942 3904 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3905 (build-system meson-build-system)
75016d07 3906 (arguments
a68544a8
RW
3907 '(;; FIXME: One test fails:
3908 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3909 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3910 ;; application/x-zerosize
75016d07 3911 #:tests? #f
a68544a8
RW
3912 #:glib-or-gtk? #t
3913 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 3914 ;; No dep on systemd.
a68544a8 3915 "-Dsystemd=false"
75016d07
AW
3916 ;; Wants to install to global completion dir;
3917 ;; punt.
a68544a8 3918 "-Dbash_completion=false"
a68544a8
RW
3919 "-Ddaemon_user=colord"
3920 "-Dsane=true"
dac26e22 3921 "-Dvapi=true"
6f20e2dc 3922 ;; Requires spotread.
a68544a8 3923 "-Dargyllcms_sensor=false"
6f20e2dc 3924 ;; TODO: Requires docbook2x.
a68544a8 3925 "-Dman=false")
75016d07
AW
3926 #:phases
3927 (modify-phases %standard-phases
a68544a8
RW
3928 (add-before 'configure 'patch-build-system
3929 (lambda* (#:key outputs #:allow-other-keys)
3930 (substitute* "rules/meson.build"
3931 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3932 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
3933 #t))
3934 (add-before 'configure 'set-sqlite3-file-name
3935 (lambda* (#:key inputs #:allow-other-keys)
3936 ;; "colormgr dump" works by invoking the "sqlite3" command.
3937 ;; Record its absolute file name.
3938 (let ((sqlite (assoc-ref inputs "sqlite")))
3939 (substitute* "client/cd-util.c"
3940 (("\"sqlite3\"")
3941 (string-append "\"" sqlite "/bin/sqlite3\"")))
3942 #t))))))
75016d07 3943 (native-inputs
6f20e2dc 3944 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 3945 ("gettext" ,gettext-minimal)
75016d07 3946 ("gobject-introspection" ,gobject-introspection)
a68544a8 3947 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
3948 ("pkg-config" ,pkg-config)
3949 ("vala" ,vala)))
65cb2d61
SB
3950 (propagated-inputs
3951 ;; colord.pc refers to all these.
3952 `(("glib" ,glib)
6f20e2dc
TGR
3953 ("lcms" ,lcms)
3954 ("udev" ,eudev)))
75016d07 3955 (inputs
65cb2d61 3956 `(("dbus-glib" ,dbus-glib)
a68544a8 3957 ("gusb" ,gusb)
80c7dd1a 3958 ("libgudev" ,libgudev)
75016d07 3959 ("libusb" ,libusb)
75016d07 3960 ("polkit" ,polkit)
a68544a8 3961 ("python" ,python-wrapper)
6f20e2dc 3962 ("sqlite" ,sqlite)
4c928743 3963 ("sane-backends" ,sane-backends)))
57e7d748 3964 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
3965 (synopsis "Color management service")
3966 (description "Colord is a system service that makes it easy to manage,
3967install and generate color profiles to accurately color manage input and
3968output devices.")
3969 (license license:gpl2+)))
7b2abd00
AW
3970
3971(define-public geoclue
3972 (package
3973 (name "geoclue")
50e96d25 3974 (version "2.5.5")
7b2abd00
AW
3975 (source
3976 (origin
3977 (method url-fetch)
50e96d25
MB
3978 (uri
3979 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
3980 version "/geoclue-" version ".tar.bz2"))
7b2abd00
AW
3981 (sha256
3982 (base32
50e96d25 3983 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
fc1adab1 3984 (patches (search-patches "geoclue-config.patch"))))
50e96d25 3985 (build-system meson-build-system)
7b2abd00 3986 (arguments
50e96d25 3987 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
3988 (native-inputs
3989 `(("pkg-config" ,pkg-config)
758798a9 3990 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
3991 ("modem-manager" ,modem-manager)
3992 ("libnotify" ,libnotify)
3993 ("gtk-doc", gtk-doc)
7b2abd00
AW
3994 ("intltool" ,intltool)))
3995 (inputs
54e911bc 3996 `(("avahi" ,avahi)
50e96d25
MB
3997 ("glib:bin" ,glib "bin")
3998 ("glib-networking" ,glib-networking)
7b2abd00
AW
3999 ("json-glib" ,json-glib)
4000 ("libsoup" ,libsoup)))
50e96d25 4001 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4002 (synopsis "Geolocation service")
4003 (description "Geoclue is a D-Bus service that provides location
4004information. The primary goal of the Geoclue project is to make creating
4005location-aware applications as simple as possible, while the secondary goal is
4006to ensure that no application can access location information without explicit
e881752c 4007permission from user.")
7b2abd00 4008 (license license:gpl2+)))
2bfe7437
AW
4009
4010(define-public geocode-glib
4011 (package
4012 (name "geocode-glib")
65de725f 4013 (version "3.26.1")
2bfe7437
AW
4014 (source (origin
4015 (method url-fetch)
4016 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4017 (version-major+minor version) "/"
d485cdc0 4018 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4019 (sha256
4020 (base32
65de725f 4021 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4022 (build-system meson-build-system)
2bfe7437 4023 (arguments
a7dd0c02
RW
4024 `(#:phases
4025 (modify-phases %standard-phases
4026 ;; The tests require a bunch of locales.
4027 (add-before 'check 'set-locales
4028 (lambda* (#:key inputs #:allow-other-keys)
4029 (setenv "GUIX_LOCPATH"
4030 (string-append (assoc-ref inputs "glibc-locales")
4031 "/lib/locale"))
4032 #t)))))
2bfe7437
AW
4033 (native-inputs
4034 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4035 ("glibc-locales" ,glibc-locales) ; for tests
4036 ("gettext" ,gettext-minimal)
2bfe7437 4037 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4038 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4039 ("pkg-config" ,pkg-config)
4040 ("json-glib" ,json-glib)))
4041 (propagated-inputs
4042 ;; geocode-glib-1.0.pc refers to GIO.
4043 `(("glib" ,glib)))
4044 (inputs
4045 `(("libsoup" ,libsoup)))
4046 (home-page "https://github.com/GNOME/geocode-glib/")
4047 (synopsis "Geocoding and reverse-geocoding library")
4048 (description
4049 "geocode-glib is a convenience library for geocoding (finding longitude,
4050and latitude from an address) and reverse geocoding (finding an address from
4051coordinates) using the Nominatim service. geocode-glib caches requests for
4052faster results and to avoid unnecessary server load.")
4053 (license license:lgpl2.0+)))
a1d5bb0e
AW
4054
4055(define-public upower
4056 (package
4057 (name "upower")
df45af90 4058 (version "0.99.11")
a1d5bb0e
AW
4059 (source (origin
4060 (method url-fetch)
df45af90 4061 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4062 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4063 (sha256
4064 (base32
df45af90 4065 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4066 (patches (search-patches "upower-builddir.patch"))
4067 (modules '((guix build utils)))
4068 (snippet
4069 '(begin
4070 ;; Upstream commit
4071 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4072 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4073 ;; 'dbus-configuration-directory' in (gnu services dbus)
4074 ;; expects it in etc/. Thus, move it back to its previous
4075 ;; location.
4076 (substitute* "src/Makefile.in"
4077 (("^dbusconfdir =.*$")
4078 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4079 #t))))
a1d5bb0e
AW
4080 (build-system glib-or-gtk-build-system)
4081 (arguments
4082 '( ;; The tests want to contact the system bus, which can't be done in the
4083 ;; build environment. The integration test can run, but the last of
4084 ;; the up-self-tests doesn't. Disable tests for now.
4085 #:tests? #f
4086 #:configure-flags (list "--localstatedir=/var"
4087 (string-append "--with-udevrulesdir="
4088 (assoc-ref %outputs "out")
9ec54965 4089 "/lib/udev/rules.d"))))
a1d5bb0e 4090 (native-inputs
ebeabe2d
SB
4091 `(("gobject-introspection" ,gobject-introspection)
4092 ("pkg-config" ,pkg-config)
a1d5bb0e 4093 ("intltool" ,intltool)
55409295
LC
4094 ("python" ,python)
4095
4096 ;; For man pages.
4097 ("libxslt" ,libxslt) ;for 'xsltproc'
4098 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4099 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4100 (inputs
ea226291
SB
4101 `(("dbus-glib" ,dbus-glib)
4102 ("libgudev" ,libgudev)
a1d5bb0e 4103 ("libusb" ,libusb)))
d7a503fc
MB
4104 (propagated-inputs
4105 ;; In Requires of upower-glib.pc.
4106 `(("glib" ,glib)))
57e7d748 4107 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4108 (synopsis "System daemon for managing power devices")
4109 (description
4110 "UPower is an abstraction for enumerating power devices,
4111listening to device events and querying history and statistics. Any
4112application or service on the system can access the org.freedesktop.UPower
4113service via the system message bus.")
4114 (license license:gpl2+)))
6a180f6f
AW
4115
4116(define-public libgweather
4117 (package
4118 (name "libgweather")
794ce8ea 4119 (version "3.28.3")
6a180f6f
AW
4120 (source (origin
4121 (method url-fetch)
4122 (uri (string-append "mirror://gnome/sources/" name "/"
4123 (version-major+minor version) "/"
4124 name "-" version ".tar.xz"))
4125 (sha256
4126 (base32
794ce8ea 4127 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 4128 (build-system meson-build-system)
6a180f6f 4129 (arguments
cf6cbc34
RW
4130 `(#:tests? #f ; one of two tests requires network access
4131 #:configure-flags
4132 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4133 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4134 "/share/zoneinfo"))))
6a180f6f
AW
4135 (native-inputs
4136 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4137 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4138 ("pkg-config" ,pkg-config)
1d3fcf94 4139 ("vala" ,vala)
6a180f6f
AW
4140 ("intltool" ,intltool)))
4141 (propagated-inputs
4142 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4143 ;; libsoup.
4144 `(("gtk+" ,gtk+)
4145 ("gdk-pixbuf" ,gdk-pixbuf)
4146 ("libxml2" ,libxml2)
cf6cbc34 4147 ("libsoup" ,libsoup)
6a180f6f 4148 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4149 (inputs
4150 `(("tzdata" ,tzdata)))
6a180f6f
AW
4151 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4152 (synopsis "Location, time zone, and weather library for GNOME")
4153 (description
4154 "libgweather is a library to access weather information from online
4155services for numerous locations.")
4156 (license license:gpl2+)))
23a22af6
AW
4157
4158(define-public gnome-settings-daemon
4159 (package
4160 (name "gnome-settings-daemon")
4be0719f 4161 (version "3.32.1")
23a22af6
AW
4162 (source
4163 (origin
4164 (method url-fetch)
4165 (uri (string-append "mirror://gnome/sources/" name "/"
4166 (version-major+minor version) "/"
4167 name "-" version ".tar.xz"))
4168 (sha256
4169 (base32
4be0719f 4170 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 4171 (build-system meson-build-system)
23a22af6 4172 (arguments
e644f9fa
RW
4173 `(#:glib-or-gtk? #t
4174 #:configure-flags
4175 (list (string-append "-Dudev_dir="
4176 (assoc-ref %outputs "out")
4d0e085b
RW
4177 "/lib/udev/rules.d/")
4178 ;; Otherwise, the RUNPATH will lack the final path component.
4179 (string-append "-Dc_link_args=-Wl,-rpath="
4180 (assoc-ref %outputs "out")
4181 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4182 ;; Color management test can't reach the colord system service.
23a22af6
AW
4183 #:tests? #f))
4184 (native-inputs
e644f9fa
RW
4185 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4186 ("pkg-config" ,pkg-config)
23a22af6
AW
4187 ("intltool" ,intltool)
4188 ("xsltproc" ,libxslt)
4189 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4190 ("docbook-xml" ,docbook-xml-4.2)
4191 ("docbook-xsl" ,docbook-xsl)))
4192 (inputs
e644f9fa
RW
4193 `(("alsa-lib" ,alsa-lib)
4194 ("colord" ,colord)
ea226291 4195 ("libgudev" ,libgudev)
23a22af6
AW
4196 ("upower" ,upower)
4197 ("polkit" ,polkit)
4198 ("pulseaudio" ,pulseaudio)
4199 ("libcanberra" ,libcanberra)
4200 ("libx11" ,libx11)
4201 ("libxtst" ,libxtst)
4202 ("lcms" ,lcms)
4203 ("libnotify" ,libnotify)
4204 ("geoclue" ,geoclue)
4205 ("geocode-glib" ,geocode-glib)
4206 ("libgweather" ,libgweather)
4207 ("gnome-desktop" ,gnome-desktop)
4208 ("nss" ,nss)
4209 ("cups" ,cups)
ec2b1921
AW
4210 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4211 ("libwacom" ,libwacom)
4212 ("librsvg" ,librsvg)
eee7878f 4213 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4214 ("wayland" ,wayland)
eee7878f 4215 ("network-manager" ,network-manager)))
f032d0be 4216 (home-page "https://www.gnome.org")
23a22af6
AW
4217 (synopsis "GNOME settings daemon")
4218 (description
4219 "This package contains the daemon responsible for setting the various
4220parameters of a GNOME session and the applications that run under it. It
4221handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4222settings, themes, mouse settings, and startup of other daemons.")
4223 (license license:gpl2+)))
1e7464a9
DH
4224
4225(define-public totem-pl-parser
4226 (package
4227 (name "totem-pl-parser")
77425f04 4228 (version "3.26.3")
1e7464a9
DH
4229 (source (origin
4230 (method url-fetch)
e980cbe9
MW
4231 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4232 (version-major+minor version) "/"
1e7464a9
DH
4233 "totem-pl-parser-" version ".tar.xz"))
4234 (sha256
4235 (base32
77425f04 4236 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4237 (build-system meson-build-system)
1e7464a9
DH
4238 (arguments
4239 ;; FIXME: Tests require gvfs.
4240 `(#:tests? #f))
4241 (native-inputs
4242 `(("intltool" ,intltool)
4243 ("glib" ,glib "bin")
4d6d8281 4244 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4245 ("pkg-config" ,pkg-config)))
22a6ad6a 4246 (propagated-inputs
1e7464a9
DH
4247 `(("glib" ,glib)
4248 ("gmime" ,gmime)
1e9b19dd
RW
4249 ("libarchive" ,libarchive)
4250 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4251 ("libxml2" ,libxml2)))
4252 (inputs
0a6e9e13 4253 `(("libsoup" ,libsoup)))
1e7464a9
DH
4254 (home-page "https://projects.gnome.org/totem")
4255 (synopsis "Library to parse and save media playlists for GNOME")
4256 (description "Totem-pl-parser is a GObjects-based library to parse and save
4257playlists in a variety of formats.")
4258 (license license:lgpl2.0+)))
4259
6b888eff
SB
4260(define-public aisleriot
4261 (package
4262 (name "aisleriot")
36ed9b46 4263 (version "3.22.9")
6b888eff
SB
4264 (source (origin
4265 (method url-fetch)
e43f622a 4266 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4267 (version-major+minor version) "/"
e43f622a 4268 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4269 (sha256
4270 (base32
36ed9b46 4271 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4272 (build-system glib-or-gtk-build-system)
4273 (arguments
4274 '(#:configure-flags
4275 '("--with-platform=gtk-only"
4276 "--with-card-theme-formats=svg")))
4277 (native-inputs
4278 `(("desktop-file-utils" ,desktop-file-utils)
4279 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4280 ("intltool" ,intltool)
4281 ("itstool" ,itstool)
4282 ("pkg-config" ,pkg-config)
4283 ("xmllint" ,libxml2)))
4284 (inputs
4285 `(("gtk+" ,gtk+)
226e57d6 4286 ("guile" ,guile-2.2)
6b888eff
SB
4287 ("libcanberra" ,libcanberra)
4288 ("librsvg" ,librsvg)))
4289 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4290 (synopsis "Solitaire card games")
4291 (description
4292 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4293which are easy to play with the aid of a mouse.")
4294 (license license:gpl3+)))
4a79e256 4295
f828d05b
KK
4296(define-public amtk
4297 (package
4298 (name "amtk")
0e08ca14 4299 (version "5.0.2")
f828d05b
KK
4300 (source (origin
4301 (method url-fetch)
bf92ba6b 4302 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4303 (version-major+minor version) "/"
bf92ba6b 4304 "amtk-" version ".tar.xz"))
f828d05b
KK
4305 (sha256
4306 (base32
0e08ca14 4307 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4308 (build-system gnu-build-system)
4309 (arguments
4310 '(#:configure-flags '("--enable-gtk-doc")))
4311 (native-inputs
4312 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4313 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4314 ("gtk-doc" ,gtk-doc)
4315 ("pkg-config" ,pkg-config)))
4316 (inputs
4317 `(("glib" ,glib)
4318 ("gtk+" ,gtk+)))
4319 (home-page "https://wiki.gnome.org/Projects/Amtk")
4320 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4321 (description
4322 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4323It is a basic GtkUIManager replacement based on GAction. It is suitable for
4324both a traditional UI or a modern UI with a GtkHeaderBar.")
4325 (license license:lgpl2.1+)))
4326
4a79e256
SB
4327(define-public devhelp
4328 (package
4329 (name "devhelp")
20db7a3d 4330 (version "3.32.0")
4a79e256
SB
4331 (source (origin
4332 (method url-fetch)
4333 (uri (string-append "mirror://gnome/sources/" name "/"
4334 (version-major+minor version) "/"
4335 name "-" version ".tar.xz"))
4336 (sha256
4337 (base32
20db7a3d 4338 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 4339 (build-system meson-build-system)
35407f94 4340 (arguments
20db7a3d
KK
4341 '(#:glib-or-gtk? #t
4342 #:phases
35407f94
EF
4343 (modify-phases %standard-phases
4344 (add-after 'unpack 'skip-gtk-update-icon-cache
4345 ;; Don't create 'icon-theme.cache'.
4346 (lambda _
4347 (substitute* "meson_post_install.py"
4348 (("gtk-update-icon-cache") "true"))
4349 #t)))))
4a79e256
SB
4350 (native-inputs
4351 `(("intltool" ,intltool)
5dd12afc 4352 ("itstool" ,itstool)
11d28bd9
KK
4353 ("gobject-introspection" ,gobject-introspection)
4354 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4355 ("pkg-config" ,pkg-config)))
4356 (inputs
11d28bd9
KK
4357 `(("amtk" ,amtk)
4358 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4359 ("webkitgtk" ,webkitgtk)))
4360 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4361 (synopsis "API documentation browser for GNOME")
4362 (description
4363 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4364natively with GTK-Doc (the API reference system developed for GTK+ and used
4365throughout GNOME for API documentation).")
4366 (license license:gpl2+)))
ba421ab7
MW
4367
4368(define-public cogl
4369 (package
4370 (name "cogl")
54c69ae1 4371 (version "1.22.4")
ba421ab7
MW
4372 (source
4373 (origin
4374 (method url-fetch)
5754f0cf 4375 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4376 (version-major+minor version) "/"
5754f0cf 4377 "cogl-" version ".tar.xz"))
ba421ab7 4378 (sha256
54c69ae1 4379 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
4380 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4381 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4382 (build-system gnu-build-system)
4383 (native-inputs
4384 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4385 ("gobject-introspection" ,gobject-introspection)
4386 ;;("xorg-server" ,xorg-server) ; for the test suite
4387 ("pkg-config" ,pkg-config)))
4388 (propagated-inputs
4389 `(("glib" ,glib)
4390 ("gdk-pixbuf" ,gdk-pixbuf)
4391 ("libx11" ,libx11)
4392 ("libxext" ,libxext)
4393 ("libxfixes" ,libxfixes)
4394 ("libxdamage" ,libxdamage)
4395 ("libxcomposite" ,libxcomposite)
4396 ("libxrandr" ,libxrandr)))
4397 (inputs
4398 `(("mesa" ,mesa)
4399 ("cairo" ,cairo)
4400 ("pango" ,pango)
4401 ("gstreamer" ,gstreamer)
31860852
KK
4402 ("gst-plugins-base" ,gst-plugins-base)
4403 ("wayland" ,wayland)))
ba421ab7
MW
4404 (arguments
4405 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4406 "--enable-wayland-egl-platform"
4407 "--enable-wayland-egl-server"
4408
ba421ab7
MW
4409 ;; Arrange to pass an absolute file name to
4410 ;; dlopen for libGL.so.
4411 (string-append "--with-gl-libname="
4412 (assoc-ref %build-inputs "mesa")
4413 "/lib/libGL.so"))
4414 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4415 ;; _FontTransOpen: Unable to Parse address
4416 ;; ${prefix}/share/fonts/X11/misc/
4417 #:tests? #f
4418 #; #:phases
4419 #;
4420 (modify-phases %standard-phases
4421 (add-before 'check 'start-xorg-server
4422 (lambda* (#:key inputs #:allow-other-keys)
4423 ;; The test suite requires a running X server.
4424 (system (format #f "~a/bin/Xvfb :1 &"
4425 (assoc-ref inputs "xorg-server")))
4426 (setenv "DISPLAY" ":1")
4427 #t)))))
89b49245 4428 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4429 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4430 (description
4431 "Cogl is a small library for using 3D graphics hardware to draw pretty
4432pictures. The API departs from the flat state machine style of OpenGL and is
4433designed to make it easy to write orthogonal components that can render
4434without stepping on each others toes.")
4435 (license (list license:expat ; most of the code
4436 license:bsd-3 ; cogl/cogl-point-in-poly.c
4437 license:sgifreeb2.0 ; cogl-path/tesselator/
4438 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4439
4440(define-public clutter
4441 (package
4442 (name "clutter")
6a88e4ee 4443 (version "1.26.2")
fb182b8a
MW
4444 (source
4445 (origin
4446 (method url-fetch)
4447 (uri (string-append "mirror://gnome/sources/" name "/"
4448 (version-major+minor version) "/"
4449 name "-" version ".tar.xz"))
4450 (sha256
4451 (base32
6a88e4ee 4452 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4453 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4454 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4455 (build-system gnu-build-system)
600233bd
LC
4456 (outputs '("out"
4457 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4458 (native-inputs
4459 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4460 ("gobject-introspection" ,gobject-introspection)
4461 ("pkg-config" ,pkg-config)
4462 ("xsltproc" ,libxslt)))
4463 (propagated-inputs
4464 `(("cogl" ,cogl)
4465 ("cairo" ,cairo)
4466 ("atk" ,atk)
4467 ("gtk+" ,gtk+)
4468 ("json-glib" ,json-glib)
4469 ("glib" ,glib)
4470 ("libxcomposite" ,libxcomposite)
4471 ("libxdamage" ,libxdamage)
4472 ("libxext" ,libxext)
4473 ("xinput" ,xinput)))
4474 (inputs
4475 `(("libxkbcommon" ,libxkbcommon)
4476 ("udev" ,eudev)))
4477 (arguments
600233bd
LC
4478 `(#:configure-flags (list "--enable-x11-backend=yes"
4479
4480 ;; This produces share/doc/{clutter,cally}.
4481 (string-append "--with-html-dir="
4482 (assoc-ref %outputs "doc")
4483 "/share/doc"))
fb182b8a
MW
4484 ;; XXX FIXME: Get test suite working. It would probably fail in the
4485 ;; same way the cogl tests fail, since clutter is based on cogl.
4486 #:tests? #f))
4487 (home-page "http://www.clutter-project.org")
476af713 4488 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4489 (description
476af713 4490 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4491creating fast, mainly 2D single window applications such as media box UIs,
4492presentations, kiosk style applications and so on.")
4493 (license license:lgpl2.0+)))
bf7f17ba
MW
4494
4495(define-public clutter-gtk
4496 (package
4497 (name "clutter-gtk")
5d1a3219 4498 (version "1.8.4")
bf7f17ba
MW
4499 (source
4500 (origin
4501 (method url-fetch)
4502 (uri (string-append "mirror://gnome/sources/" name "/"
4503 (version-major+minor version) "/"
4504 name "-" version ".tar.xz"))
4505 (sha256
4506 (base32
5d1a3219 4507 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4508 (build-system gnu-build-system)
4509 (native-inputs
4510 `(("pkg-config" ,pkg-config)
4511 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4512 (propagated-inputs
4513 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4514 `(("clutter" ,clutter)
4515 ("gtk+" ,gtk+)))
4516 (home-page "http://www.clutter-project.org")
476af713 4517 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4518 (description
476af713 4519 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4520creating fast, mainly 2D single window applications such as media box UIs,
4521presentations, kiosk style applications and so on.")
4522 (license license:lgpl2.0+)))
86d6a893
MW
4523
4524(define-public clutter-gst
4525 (package
4526 (name "clutter-gst")
ba07ac19 4527 (version "3.0.27")
86d6a893
MW
4528 (source
4529 (origin
4530 (method url-fetch)
f010f89b 4531 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4532 (version-major+minor version) "/"
f010f89b 4533 "clutter-gst-" version ".tar.xz"))
86d6a893 4534 (sha256
ba07ac19 4535 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4536 (build-system gnu-build-system)
4537 (native-inputs
ba07ac19 4538 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4539 ("pkg-config" ,pkg-config)
4540 ("gobject-introspection" ,gobject-introspection)))
4541 (inputs
4542 `(("clutter" ,clutter)
4543 ("gstreamer" ,gstreamer)
4544 ("gst-plugins-base" ,gst-plugins-base)))
4545 (home-page "http://www.clutter-project.org")
4546 (synopsis "Integration library for using GStreamer with Clutter")
4547 (description
4548 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4549It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4550implements the ClutterGstPlayer interface using playbin. Clutter is an
4551OpenGL-based interactive canvas library.")
86d6a893 4552 (license license:lgpl2.0+)))
607a04ae 4553
30dc88d9
LC
4554(define-public libchamplain
4555 (package
4556 (name "libchamplain")
5564b2c5 4557 (version "0.12.16")
30dc88d9
LC
4558 (source (origin
4559 (method url-fetch)
4560 (uri (string-append
4561 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4562 version ".tar.xz"))
4563 (sha256
4564 (base32
5564b2c5 4565 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4566 (build-system gnu-build-system)
f7c6833f
LF
4567 (arguments '(#:configure-flags '("--enable-vala")))
4568 (native-inputs
4569 `(("gobject-introspection" ,gobject-introspection)
4570 ("pkg-config" ,pkg-config)
4571 ("vala" ,vala)))
30dc88d9
LC
4572 (propagated-inputs
4573 `(("libsoup" ,libsoup)
4574 ("sqlite" ,sqlite)
4575 ("clutter" ,clutter)
4576 ("clutter-gtk" ,clutter-gtk)
4577 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4578 ("cairo" ,cairo)
4579 ("gtk+3" ,gtk+)
4580 ("glib" ,glib)))
f032d0be 4581 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4582 (synopsis "C library providing a ClutterActor to display maps")
4583 (description
4584 "libchamplain is a C library providing a ClutterActor to display maps.
4585It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4586and Perl bindings are also available. It supports numerous free map sources
4587such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4588 (license license:lgpl2.1+)))
4589
607a04ae
MW
4590(define-public gom
4591 (package
4592 (name "gom")
0510440b 4593 (version "0.3.2")
607a04ae
MW
4594 (source
4595 (origin
4596 (method url-fetch)
6c8a0b6f 4597 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4598 (version-major+minor version) "/"
6c8a0b6f 4599 "gom-" version ".tar.xz"))
607a04ae
MW
4600 (sha256
4601 (base32
0510440b 4602 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4603 (build-system gnu-build-system)
4604 (native-inputs
4605 `(("intltool" ,intltool)
4606 ("pkg-config" ,pkg-config)
4607 ("gobject-introspection" ,gobject-introspection)))
4608 (inputs
4609 `(("glib" ,glib)
4610 ("gdk-pixbuf" ,gdk-pixbuf)
4611 ("sqlite" ,sqlite)))
4612 ;; XXX TODO: Figure out how to run the test suite.
4613 (arguments `(#:tests? #f))
4614 (home-page "https://wiki.gnome.org/Projects/Gom")
4615 (synopsis "Object mapper from GObjects to SQLite")
4616 (description
4617 "Gom provides an object mapper from GObjects to SQLite. It helps you
4618write applications that need to store structured data as well as make complex
4619queries upon that data.")
4620 (license license:lgpl2.1+)))
b7a3cf11 4621
865aacc9 4622(define-public libgnome-games-support
f09520db 4623 (package
865aacc9 4624 (name "libgnome-games-support")
4c6d15cf 4625 (version "1.4.4")
f09520db
SB
4626 (source (origin
4627 (method url-fetch)
2d8dca9d 4628 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4629 (version-major+minor version) "/"
2d8dca9d 4630 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4631 (sha256
4632 (base32
4c6d15cf 4633 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4634 (build-system gnu-build-system)
4635 (arguments
4636 '(#:phases
4637 (modify-phases %standard-phases
4638 (add-before 'check 'pre-check
4639 (lambda _
865aacc9 4640 ;; Tests require a writable HOME.
f09520db
SB
4641 (setenv "HOME" (getcwd))
4642 #t)))))
4643 (native-inputs
4644 `(("intltool" ,intltool)
4645 ("pkg-config" ,pkg-config)
4646 ("vala" ,vala)))
4647 (propagated-inputs
865aacc9 4648 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4649 `(("gtk+" ,gtk+)
4650 ("libgee" ,libgee)))
4651 (home-page "https://www.gnome.org/")
4652 (synopsis "Useful functionality shared among GNOME games")
4653 (description
865aacc9 4654 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4655GNOME Games, but it may be used by others.")
4656 (license license:lgpl3+)))
4657
b7a3cf11
SB
4658(define-public gnome-klotski
4659 (package
4660 (name "gnome-klotski")
c1e419c4 4661 (version "3.32.0")
b7a3cf11
SB
4662 (source (origin
4663 (method url-fetch)
4664 (uri (string-append "mirror://gnome/sources/" name "/"
4665 (version-major+minor version) "/"
4666 name "-" version ".tar.xz"))
4667 (sha256
4668 (base32
c1e419c4
KK
4669 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4670 (build-system meson-build-system)
4671 (arguments
4672 '(#:glib-or-gtk? #t
4673 #:phases
4674 (modify-phases %standard-phases
4675 (add-after 'unpack 'skip-gtk-update-icon-cache
4676 ;; Don't create 'icon-theme.cache'.
4677 (lambda _
4678 (substitute* "build-aux/meson_post_install.py"
4679 (("gtk-update-icon-cache") (which "true")))
4680 #t)))))
b7a3cf11
SB
4681 (native-inputs
4682 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4683 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4684 ("intltool" ,intltool)
4685 ("itstool" ,itstool)
bcb354ad 4686 ("pkg-config" ,pkg-config)
c1e419c4 4687 ("vala" ,vala)
bcb354ad 4688 ("xmllint" ,libxml2)))
b7a3cf11
SB
4689 (inputs
4690 `(("gtk+" ,gtk+)
f4eae76f 4691 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4692 ("librsvg" ,librsvg)))
4693 (home-page "https://wiki.gnome.org/Apps/Klotski")
4694 (synopsis "Sliding block puzzles")
4695 (description
4696 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4697the patterned block to the area bordered by green markers. To do so, you will
4698need to slide other blocks out of the way. Complete each puzzle in as few moves
4699as possible!")
4700 (license license:gpl2+)))
8d4791bf
MW
4701
4702(define-public grilo
4703 (package
4704 (name "grilo")
a865e938 4705 (version "0.3.10")
8d4791bf
MW
4706 (source
4707 (origin
4708 (method url-fetch)
4709 (uri (string-append "mirror://gnome/sources/" name "/"
4710 (version-major+minor version) "/"
4711 name "-" version ".tar.xz"))
4712 (sha256
4713 (base32
a865e938 4714 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4715 (build-system meson-build-system)
8d4791bf
MW
4716 (native-inputs
4717 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4718 ("intltool" ,intltool)
4719 ("pkg-config" ,pkg-config)
d48d4c98
KK
4720 ("gobject-introspection" ,gobject-introspection)
4721 ("gtk-doc" ,gtk-doc)
4722 ("vala" ,vala)))
8d4791bf 4723 (inputs
6d7273a0
KK
4724 `(("cyrus-sasl" ,cyrus-sasl)
4725 ("glib" ,glib)
8d4791bf
MW
4726 ("gtk+" ,gtk+)
4727 ("libxml2" ,libxml2)
6d7273a0 4728 ("liboauth" ,liboauth)
8d4791bf
MW
4729 ("libsoup" ,libsoup)
4730 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4731 (native-search-paths
4732 (list (search-path-specification
4733 (variable "GRL_PLUGIN_PATH")
4734 (files (list (string-append "lib/grilo-"
4735 (version-major+minor version)))))))
d48d4c98 4736 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4737 (synopsis "Framework for discovering and browsing media")
4738 (description
4739 "Grilo is a framework focused on making media discovery and browsing easy
4740for application developers.")
4741 (license license:lgpl2.1+)))
7b212526
MW
4742
4743(define-public grilo-plugins
4744 (package
4745 (name "grilo-plugins")
281f6b3a 4746 (version "0.3.10")
7b212526
MW
4747 (source
4748 (origin
4749 (method url-fetch)
4750 (uri (string-append "mirror://gnome/sources/" name "/"
4751 (version-major+minor version) "/"
4752 name "-" version ".tar.xz"))
4753 (sha256
4754 (base32
281f6b3a
RG
4755 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4756 (build-system meson-build-system)
7b212526 4757 (native-inputs
281f6b3a
RG
4758 `(("gettext" ,gettext-minimal)
4759 ("glib:bin" ,glib "bin")
4760 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4761 ("itstool" ,itstool)
4762 ("pkg-config" ,pkg-config)))
281f6b3a 4763 ;; TODO: ahavi, gstreamer
7b212526
MW
4764 (inputs
4765 `(("grilo" ,grilo)
281f6b3a
RG
4766 ;("gmime" ,gmime) ; unused
4767 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4768 ("gom" ,gom)
281f6b3a
RG
4769 ;("gssdp" ,gssdp) ; unused
4770 ;("gupnp" ,gupnp) ; unused
4771 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4772 ("json-glib" ,json-glib)
4773 ("avahi" ,avahi)
281f6b3a
RG
4774 ("libgdata" ,libgdata)
4775 ("libmediaart" ,libmediaart)
4776 ;("librest" ,rest) ; unused
7b212526 4777 ("libsoup" ,libsoup)
281f6b3a
RG
4778 ("totam-pl-parser" ,totem-pl-parser)
4779 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4780 (arguments
281f6b3a
RG
4781 `(#:glib-or-gtk? #t
4782 ;;Disable lua-factory as it needs missing dependencies
4783 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4784 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4785 (synopsis "Plugins for the Grilo media discovery library")
4786 (description
4787 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4788for application developers. This package provides plugins for common media
4789discovery protocols.")
7b212526 4790 (license license:lgpl2.1+)))
4e3fc547
MW
4791
4792(define-public totem
4793 (package
4794 (name "totem")
995ef5ea 4795 (version "3.32.1")
4e3fc547
MW
4796 (source
4797 (origin
4798 (method url-fetch)
4799 (uri (string-append "mirror://gnome/sources/" name "/"
4800 (version-major+minor version) "/"
4801 name "-" version ".tar.xz"))
4802 (sha256
4803 (base32
995ef5ea 4804 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4805 (build-system meson-build-system)
4e3fc547
MW
4806 (native-inputs
4807 `(("pkg-config" ,pkg-config)
4808 ("desktop-file-utils" ,desktop-file-utils)
4809 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4810 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4811 ("intltool" ,intltool)
bcb354ad 4812 ("itstool" ,itstool)
995ef5ea
KK
4813 ("xmllint" ,libxml2)
4814 ("python-pylint" ,python-pylint)
4815 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4816 (propagated-inputs
4817 `(("dconf" ,dconf)))
4818 (inputs
4819 `(("gtk+" ,gtk+)
4820 ("gdk-pixbuf" ,gdk-pixbuf)
4821 ("atk" ,atk)
4822 ("cairo" ,cairo)
4823 ("dbus-glib" ,dbus-glib)
4824 ("clutter" ,clutter)
4825 ("clutter-gtk" ,clutter-gtk)
4826 ("clutter-gst" ,clutter-gst)
6a6db57f 4827 ("xorgproto" ,xorgproto)
4e3fc547
MW
4828 ("libxxf86vm" ,libxxf86vm)
4829 ("libxtst" ,libxtst)
4830 ("libxrandr" ,libxrandr)
4831 ("libxml2" ,libxml2)
4832 ("libsoup" ,libsoup)
4833 ("libpeas" ,libpeas)
4834 ("librsvg" ,librsvg)
4835 ("lirc" ,lirc)
4836 ("gnome-desktop" ,gnome-desktop)
4837 ("gstreamer" ,gstreamer)
4838 ("gst-plugins-base" ,gst-plugins-base)
4839 ("gst-plugins-good" ,gst-plugins-good)
4840 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4841 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4842 ("python" ,python)
995ef5ea 4843 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4844 ("totem-pl-parser" ,totem-pl-parser)
4845 ("grilo" ,grilo)
4846 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4847 ("vala" ,vala)))
4848 (arguments
7ad81b8b
LC
4849 `(#:glib-or-gtk? #t
4850
4851 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4852 ;; all that.
7ad81b8b 4853 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4854
4855 ;; Do not build .a files for the plugins, it's
4856 ;; completely useless. This saves 2 MiB.
7ad81b8b 4857 "--default-library" "shared")
ec5c24f9 4858 #:phases
4e3fc547 4859 (modify-phases %standard-phases
d51b19ad
EF
4860 (add-after 'unpack 'skip-gtk-update-icon-cache
4861 ;; Don't create 'icon-theme.cache'.
4862 (lambda _
4863 (substitute* "meson_post_install.py"
4864 (("gtk-update-icon-cache") "true"))
4865 #t))
6368eb39
DM
4866 (add-before
4867 'install 'disable-cache-generation
4868 (lambda _
4869 (setenv "DESTDIR" "/")
4870 #t))
995ef5ea
KK
4871 (add-before
4872 'check 'pre-check
4873 (lambda _
4874 ;; Tests require a running X server.
4875 (system "Xvfb :1 &")
4876 (setenv "DISPLAY" ":1")
4877 #t))
4e3fc547
MW
4878 (add-after
4879 'install 'wrap-totem
4880 (lambda* (#:key inputs outputs #:allow-other-keys)
4881 (let ((out (assoc-ref outputs "out"))
4882 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4883 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4884 (wrap-program (string-append out "/bin/totem")
4885 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4886 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4887 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4888 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4889 #t)))))
4890 (home-page "https://wiki.gnome.org/Apps/Videos")
4891 (synopsis "Simple media player for GNOME based on GStreamer")
4892 (description "Totem is a simple yet featureful media player for GNOME
4893which can read a large number of file formats.")
4894 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4895 ;; to be used and distributed together with GStreamer and Totem. See
4896 ;; file://COPYING in the source distribution for details.
4897 (license license:gpl2+)))
f0afb0c8
DH
4898
4899(define-public rhythmbox
4900 (package
4901 (name "rhythmbox")
eda580c0 4902 (version "3.4.4")
f0afb0c8
DH
4903 (source (origin
4904 (method url-fetch)
2588693d 4905 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 4906 (version-major+minor version) "/"
2588693d 4907 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
4908 (sha256
4909 (base32
eda580c0 4910 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
4911 (build-system glib-or-gtk-build-system)
4912 (arguments
4913 `(#:configure-flags
4914 (list "--enable-lirc"
4915 "--enable-python"
4916 "--enable-vala"
4917 "--with-brasero"
4918 "--with-gudev"
4919 "--with-libsecret")
4920 #:phases
4921 (modify-phases %standard-phases
4922 (add-after
4923 'install 'wrap-rhythmbox
4924 (lambda* (#:key inputs outputs #:allow-other-keys)
4925 (let ((out (assoc-ref outputs "out"))
4926 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4927 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
4928 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4929 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
4930 (wrap-program (string-append out "/bin/rhythmbox")
4931 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4932 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
4933 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4934 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
4935 #t)))))
4936 (propagated-inputs
4937 `(("dconf" ,dconf)))
4938 (native-inputs
bcb354ad
SB
4939 `(("itstool" ,itstool)
4940 ("intltool" ,intltool)
f0afb0c8
DH
4941 ("glib" ,glib "bin")
4942 ("gobject-introspection" ,gobject-introspection)
4943 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
4944 ("pkg-config" ,pkg-config)
4945 ("xmllint" ,libxml2)))
f0afb0c8
DH
4946 (inputs
4947 `(("json-glib" ,json-glib)
4948 ("tdb" ,tdb)
4949 ("gnome-desktop" ,gnome-desktop)
4950 ("python" ,python)
4951 ("python-pygobject" ,python2-pygobject)
4952 ("vala" ,vala)
4953 ("gmime" ,gmime)
f0afb0c8
DH
4954 ("adwaita-icon-theme" ,adwaita-icon-theme)
4955 ("grilo" ,grilo)
4956 ("grilo-plugins" ,grilo-plugins)
4957 ("gstreamer" ,gstreamer)
4958 ("gst-plugins-base" ,gst-plugins-base)
4959 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 4960 ("totem-pl-parser" ,totem-pl-parser)
ea226291 4961 ("libgudev" ,libgudev)
f0afb0c8
DH
4962 ;;("libmtp" ,libmtp) FIXME: Not detected
4963 ("libsecret" ,libsecret)
4964 ("libsoup" ,libsoup)
4965 ("libnotify" ,libnotify)
4966 ("libpeas" ,libpeas)
4967 ("lirc" ,lirc)
4968 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4969 ;;("clutter" ,clutter)
4970 ;;("clutter-gtk" ,clutter-gtk)
4971 ;;("clutter-gst" ,clutter-gst)
4972 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4973 ("atk" ,atk)
4974 ("pango" ,pango)
4975 ("gtk+" ,gtk+)
4976 ;; TODO:
4977 ;; * libgpod
4978 ;; * mx
f0afb0c8
DH
4979 ("brasero" ,brasero)))
4980 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4981 (synopsis "Music player for GNOME")
4982 (description "Rhythmbox is a music playing application for GNOME. It
4983supports playlists, song ratings, and any codecs installed through gstreamer.")
4984 (license license:gpl2+)))
f70d8383
DH
4985
4986(define-public eog
4987 (package
4988 (name "eog")
b0f24a82 4989 (version "3.32.2")
f70d8383
DH
4990 (source (origin
4991 (method url-fetch)
4992 (uri (string-append "mirror://gnome/sources/" name "/"
4993 (version-major+minor version) "/"
4994 name "-" version ".tar.xz"))
4995 (sha256
4996 (base32
b0f24a82 4997 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 4998 (build-system meson-build-system)
f70d8383 4999 (arguments
34c44a34
RW
5000 `(#:configure-flags
5001 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5002 (list (string-append "-Dc_link_args=-Wl,-rpath="
5003 (assoc-ref %outputs "out") "/lib/eog"))
5004 #:phases
f70d8383 5005 (modify-phases %standard-phases
7a034665
EF
5006 (add-after 'unpack 'skip-gtk-update-icon-cache
5007 ;; Don't create 'icon-theme.cache'.
5008 (lambda _
5009 (substitute* "meson_post_install.py"
5010 (("gtk-update-icon-cache") "true"))
5011 #t))
61fb581f
RW
5012 (add-after 'install 'wrap-eog
5013 (lambda* (#:key outputs #:allow-other-keys)
5014 (let ((out (assoc-ref outputs "out"))
5015 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5016 (wrap-program (string-append out "/bin/eog")
5017 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5018 #t)))))
f70d8383
DH
5019 (propagated-inputs
5020 `(("dconf" ,dconf)))
5021 (native-inputs
5022 `(("intltool" ,intltool)
b3546174 5023 ("itstool" ,itstool)
f70d8383
DH
5024 ("glib" ,glib "bin")
5025 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5026 ("pkg-config" ,pkg-config)
5027 ("xmllint" ,libxml2)))
f70d8383
DH
5028 (inputs
5029 `(("gnome-desktop" ,gnome-desktop)
5030 ("shared-mime-info" ,shared-mime-info)
5031 ("adwaita-icon-theme" ,adwaita-icon-theme)
5032 ("exempi" ,exempi)
5033 ("lcms" ,lcms)
5034 ("libexif" ,libexif)
5035 ("libpeas" ,libpeas)
5036 ("libjpeg" ,libjpeg)
5037 ("librsvg" ,librsvg)
5038 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5039 ("gtk+" ,gtk+)))
5040 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5041 (synopsis "GNOME image viewer")
5042 (description "Eye of GNOME is the GNOME image viewer. It
5043supports image conversion, rotation, and slideshows.")
5044 (license license:gpl2+)))
41af5e7b 5045
0c3f8cb8
LC
5046(define-public eog-plugins
5047 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5048 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5049 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5050 ;; 'XDG_DATA_DIRS' appropriately set.
5051 (package
5052 (name "eog-plugins")
54b74cc6 5053 (version "3.26.4")
0c3f8cb8
LC
5054 (source (origin
5055 (method url-fetch)
f3b88ed2 5056 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5057 (version-major+minor version) "/"
f3b88ed2 5058 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5059 (sha256
5060 (base32
54b74cc6 5061 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5062 (build-system gnu-build-system)
5063 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5064 (synopsis "Extensions for the Eye of GNOME image viewer")
5065 (native-inputs
5066 `(("pkg-config" ,pkg-config)
5067 ("gettext" ,gnu-gettext)))
5068 (inputs
5069 `(("eog" ,eog)
5070 ("glib" ,glib)
5071 ("gtk+" ,gtk+)
5072 ("libpeas" ,libpeas)
5073 ("libexif" ,libexif)
5074 ("libchamplain" ,libchamplain)))
5075 (description
5076 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5077notably:
5078
5079@itemize
5080@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5081@item @dfn{Map}, which displays a map of where the picture was taken on the
5082side panel;
5083@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5084@end itemize\n")
5085
5086 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5087 ;; long suspicious byte stream that goes to a
5088 ;; ".gresource.eog_postasa_plugin" ELF section.
5089 (license license:gpl2+)))
5090
41af5e7b
SB
5091(define-public libgudev
5092 (package
5093 (name "libgudev")
b78f5118 5094 (version "232")
41af5e7b
SB
5095 (source (origin
5096 (method url-fetch)
5097 (uri (string-append "mirror://gnome/sources/" name "/"
5098 version "/" name "-" version ".tar.xz"))
5099 (sha256
5100 (base32
b78f5118 5101 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5102 (build-system gnu-build-system)
b78f5118
RW
5103 (arguments
5104 '(#:configure-flags
5105 ;; umockdev depends on libgudev.
5106 (list "--disable-umockdev")))
41af5e7b
SB
5107 (native-inputs
5108 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5109 ("gobject-introspection" ,gobject-introspection)
5110 ("pkg-config" ,pkg-config)))
5111 (propagated-inputs
5112 `(("glib" ,glib))) ; required by gudev-1.0.pc
5113 (inputs
5114 `(("udev" ,eudev)))
5115 (home-page "https://wiki.gnome.org/Projects/libgudev")
5116 (synopsis "GObject bindings for libudev")
5117 (description
5118 "This library provides GObject bindings for libudev. It was originally
5119part of udev-extras, then udev, then systemd. It's now a project on its own.")
5120 (license license:lgpl2.1+)))
3dc8828f
SB
5121
5122(define-public gvfs
5123 (package
5124 (name "gvfs")
12fe4846 5125 (version "1.40.1")
3dc8828f
SB
5126 (source (origin
5127 (method url-fetch)
1d68eb32 5128 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5129 (version-major+minor version) "/"
1d68eb32 5130 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5131 (sha256
5132 (base32
12fe4846 5133 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5134 (build-system meson-build-system)
3dc8828f 5135 (arguments
e762d943
RW
5136 '(#:glib-or-gtk? #t
5137 #:configure-flags
5138 (list "-Dsystemduserunitdir=no"
5139 "-Dtmpfilesdir=no"
5140 ;; Otherwise, the RUNPATH will lack the final path component.
5141 (string-append "-Dc_link_args=-Wl,-rpath="
5142 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5143 (native-inputs
5144 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5145 ("gettext" ,gettext-minimal)
5146 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5147 ("pkg-config" ,pkg-config)
5148 ("xsltproc" ,libxslt)))
5149 (inputs
5150 `(("avahi" ,avahi)
5151 ("docbook-xml" ,docbook-xml-4.2)
5152 ("docbook-xsl" ,docbook-xsl)
5153 ("dbus" ,dbus)
e762d943 5154 ("elogind" ,elogind)
3dc8828f 5155 ("fuse" ,fuse)
24a78aa6 5156 ("gcr" ,gcr)
3dc8828f 5157 ("glib" ,glib)
e762d943 5158 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5159 ("libarchive" ,libarchive)
5160 ("libbluray" ,libbluray)
8852ca24 5161 ("libcap" ,libcap)
3dc8828f
SB
5162 ("libcdio-paranoia" ,libcdio-paranoia)
5163 ("libgcrypt" ,libgcrypt)
e762d943 5164 ("libgdata" ,libgdata)
3dc8828f
SB
5165 ("libgphoto2" ,libgphoto2)
5166 ("libgudev" ,libgudev)
0ab9f949 5167 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5168 ("libmtp" ,libmtp)
e762d943 5169 ("libnfs" ,libnfs)
3dc8828f
SB
5170 ("libsecret" ,libsecret)
5171 ("libsmbclient" ,samba)
5172 ("libsoup" ,libsoup)
5173 ("libxml2" ,libxml2)
e762d943 5174 ("openssh" ,openssh)
8852ca24 5175 ("polkit" ,polkit)
3dc8828f
SB
5176 ("udisks" ,udisks)))
5177 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5178 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5179 (description
8f65585b 5180 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5181abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5182to all applications using the GIO API. It also supports exposing the GVFS
5183mounts to non-GIO applications using FUSE.
5184
5185GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5186DAV, and others.")
5187 (license license:lgpl2.0+)))
7c88b6bd
AW
5188
5189(define-public gusb
5190 (package
5191 (name "gusb")
536b3274 5192 (version "0.3.0")
7c88b6bd 5193 (source (origin
bbfb36f9
EF
5194 (method git-fetch)
5195 (uri (git-reference
5196 (url "https://github.com/hughsie/libgusb.git")
5197 (commit version)))
5198 (file-name (git-file-name name version))
7c88b6bd
AW
5199 (sha256
5200 (base32
bbfb36f9 5201 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5202 (build-system meson-build-system)
7c88b6bd 5203 (native-inputs
536b3274 5204 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5205 ("pkg-config" ,pkg-config)
5206 ("vala" ,vala)
7c88b6bd
AW
5207 ("gtk-doc" ,gtk-doc)))
5208 (propagated-inputs
5209 ;; Both of these are required by gusb.pc.
5210 `(("glib" ,glib)
5211 ("libusb" ,libusb)))
5212 (arguments
536b3274 5213 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5214 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5215 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5216 (description
5217 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5218asynchronous control, bulk and interrupt transfers with proper cancellation
5219and integration into a mainloop. This makes it easy to integrate low level
5220USB transfers with your high-level application or system daemon.")
5221 (license license:lgpl2.1+)))
0abe1d86
AW
5222
5223(define-public simple-scan
5224 (package
5225 (name "simple-scan")
fe6cfa99 5226 (version "3.36.0")
d9f6d587
TGR
5227 (source
5228 (origin
5229 (method url-fetch)
5230 (uri (string-append "mirror://gnome/sources/simple-scan/"
5231 (version-major+minor version) "/"
5232 "simple-scan-" version ".tar.xz"))
5233 (sha256
fe6cfa99 5234 (base32 "198l3yhqhb2wzfdcgi8fzbwycr0njn44583dazz6wy1gqbiqnzgm"))))
d9f6d587
TGR
5235 (build-system meson-build-system)
5236 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5237 (arguments
5238 '(#:glib-or-gtk? #t))
0abe1d86
AW
5239 (inputs
5240 `(("gtk" ,gtk+)
5241 ("zlib" ,zlib)
5242 ("cairo" ,cairo)
c501f592 5243 ("colord" ,colord)
0abe1d86
AW
5244 ("gdk-pixbuf" ,gdk-pixbuf)
5245 ("gusb" ,gusb)
4c928743 5246 ("libsane" ,sane-backends)))
0abe1d86 5247 (native-inputs
b94a6ca0 5248 `(("gettext" ,gettext-minimal)
0abe1d86 5249 ("itstool" ,itstool)
c501f592 5250 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5251 ("pkg-config" ,pkg-config)
bcb354ad
SB
5252 ("vala" ,vala)
5253 ("xmllint" ,libxml2)))
dff0eedb 5254 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5255 (synopsis "Document and image scanner")
d9f6d587
TGR
5256 (description
5257 "Document Scanner is an easy-to-use application that lets you connect your
5258scanner and quickly capture images and documents in an appropriate format. It
5259supports any scanner for which a suitable SANE driver is available, which is
5260almost all of them.")
0abe1d86 5261 (license license:gpl3+)))
7549f984 5262
ab466d79
RW
5263(define-public eolie
5264 (package
5265 (name "eolie")
ed783404 5266 (version "0.9.98.1")
ab466d79
RW
5267 (source (origin
5268 (method url-fetch)
ed783404
RW
5269 (uri (string-append "https://adishatz.org/eolie/eolie-"
5270 version ".tar.xz"))
ab466d79
RW
5271 (sha256
5272 (base32
ed783404 5273 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5274 (build-system meson-build-system)
ab466d79 5275 (arguments
00014781
RW
5276 `(#:glib-or-gtk? #t
5277 #:phases
ab466d79 5278 (modify-phases %standard-phases
f0c68100
EF
5279 (add-after 'unpack 'skip-gtk-update-icon-cache
5280 ;; Don't create 'icon-theme.cache'.
5281 (lambda _
5282 (substitute* "meson_post_install.py"
5283 (("gtk-update-icon-cache") "true"))
5284 #t))
ab466d79
RW
5285 (add-after 'wrap 'wrap-more
5286 (lambda* (#:key inputs outputs #:allow-other-keys)
5287 (let* ((out (assoc-ref outputs "out"))
5288 ;; These libraries must be on LD_LIBRARY_PATH.
5289 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5290 "atk" "gtk+" "gsettings-desktop-schemas"
5291 "gobject-introspection"))
5292 (path (string-join
5293 (map (lambda (lib)
5294 (string-append (assoc-ref inputs lib) "/lib"))
5295 libs)
5296 ":")))
5297 (wrap-program (string-append out "/bin/eolie")
5298 `("LD_LIBRARY_PATH" ":" prefix (,path))
5299 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5300 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5301 #t)))))
5302 (native-inputs
f85ca6ed 5303 `(("intltool" ,intltool)
ab466d79 5304 ("itstool" ,itstool)
d95f1041 5305 ("pkg-config" ,pkg-config)
d95f1041 5306 ("python" ,python)
f0c68100 5307 ("glib:bin" ,glib "bin")))
ab466d79
RW
5308 (inputs
5309 `(("gobject-introspection" ,gobject-introspection)
5310 ("glib-networking" ,glib-networking)
5311 ("cairo" ,cairo)
5312 ("gtk+" ,gtk+)
5313 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5314 ("python" ,python-wrapper)
d72f76df 5315 ("python-dateutil" ,python-dateutil)
00014781 5316 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5317 ("python-pygobject" ,python-pygobject)
5318 ("python-pycairo" ,python-pycairo)
00014781 5319 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5320 ("libsecret" ,libsecret)
5321 ("gtkspell3" ,gtkspell3)
5322 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5323 ("webkitgtk" ,webkitgtk)))
166b2c97 5324 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5325 (synopsis "Web browser for GNOME")
5326 (description
5327 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5328a secret password store, an adblocker, and a modern UI.")
5329 (license license:gpl3+)))
5330
7549f984
SB
5331(define-public epiphany
5332 (package
5333 (name "epiphany")
60680365 5334 (version "3.32.5")
7549f984
SB
5335 (source (origin
5336 (method url-fetch)
dd3266ec 5337 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5338 (version-major+minor version) "/"
dd3266ec 5339 "epiphany-" version ".tar.xz"))
7549f984
SB
5340 (sha256
5341 (base32
60680365 5342 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
5343
5344 (build-system meson-build-system)
7549f984
SB
5345 (arguments
5346 ;; FIXME: tests run under Xvfb, but fail with:
5347 ;; /src/bookmarks/ephy-bookmarks/create:
5348 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5349 ;; subsystem
5350 ;; FAIL
6f48d9db 5351 '(#:tests? #f
e19f9c24 5352 #:glib-or-gtk? #t
bb7ff88f
EF
5353 #:phases
5354 (modify-phases %standard-phases
5355 (add-after 'unpack 'skip-gtk-update-icon-cache
5356 ;; Don't create 'icon-theme.cache'.
5357 (lambda _
5358 (substitute* "post_install.py"
5359 (("gtk-update-icon-cache") "true"))
5360 #t)))
e19f9c24
LF
5361 #:configure-flags
5362 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5363 (list (string-append "-Dc_link_args=-Wl,-rpath="
5364 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5365 (propagated-inputs
5366 `(("dconf" ,dconf)))
7549f984 5367 (native-inputs
fc5c5b92
R
5368 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5369 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5370 ("intltool" ,intltool)
7549f984 5371 ("itstool" ,itstool)
bcb354ad
SB
5372 ("pkg-config" ,pkg-config)
5373 ("xmllint" ,libxml2)))
7549f984
SB
5374 (inputs
5375 `(("avahi" ,avahi)
5376 ("gcr" ,gcr)
fc5c5b92 5377 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5378 ("glib-networking" ,glib-networking)
5379 ("gnome-desktop" ,gnome-desktop)
5380 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5381 ("json-glib" ,json-glib)
7549f984 5382 ("iso-codes" ,iso-codes)
8748e29c 5383 ("libdazzle" ,libdazzle)
7549f984
SB
5384 ("libnotify" ,libnotify)
5385 ("libsecret" ,libsecret)
7549f984 5386 ("libxslt" ,libxslt)
fc5c5b92 5387 ("nettle" ,nettle) ; for hogweed
7549f984 5388 ("sqlite" ,sqlite)
f85ca6ed 5389 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5390 (home-page "https://wiki.gnome.org/Apps/Web")
5391 (synopsis "GNOME web browser")
5392 (description
5393 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5394principles are simplicity and standards compliance.")
5395 (license license:gpl2+)))
a3856b2c
SB
5396
5397(define-public d-feet
5398 (package
5399 (name "d-feet")
458e9221 5400 (version "0.3.14")
a3856b2c
SB
5401 (source (origin
5402 (method url-fetch)
5403 (uri (string-append "mirror://gnome/sources/" name "/"
5404 (version-major+minor version) "/"
5405 name "-" version ".tar.xz"))
5406 (sha256
5407 (base32
458e9221 5408 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5409 (build-system glib-or-gtk-build-system)
5410 (arguments
5411 '(#:out-of-source? #f ; tests need to run in the source directory.
5412 #:phases
5413 (modify-phases %standard-phases
5414 (add-before
5415 'check 'pre-check
86aff791 5416 (lambda _
a3856b2c
SB
5417 ;; The test suite requires a running X server.
5418 (system "Xvfb :1 &")
5419 (setenv "DISPLAY" ":1")
5420 ;; Don't fail on missing '/etc/machine-id'.
5421 (setenv "DBUS_FATAL_WARNINGS" "0")
5422 ;; tests.py and window.py don't meet E402:
5423 ;; E402 module level import not at top of file
5424 (substitute* "src/tests/Makefile"
86aff791
MW
5425 (("--ignore=E123") "--ignore=E123,E402"))
5426 #t))
a3856b2c
SB
5427 (add-after
5428 'install 'wrap-program
5429 (lambda* (#:key outputs #:allow-other-keys)
5430 (let ((prog (string-append (assoc-ref outputs "out")
5431 "/bin/d-feet")))
5432 (wrap-program prog
5433 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5434 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5435 #t))))))
a3856b2c
SB
5436 (native-inputs
5437 `(("intltool" ,intltool)
5438 ("itstool" ,itstool)
5439 ("pkg-config" ,pkg-config)
5440 ("python-pep8" ,python-pep8)
5441 ("xmllint" ,libxml2)
ff337525 5442 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5443 (inputs
5444 `(("gobject-introspection" ,gobject-introspection)
5445 ("gtk+" ,gtk+)
5446 ("python" ,python-wrapper)
458e9221 5447 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5448 ("python-pygobject" ,python-pygobject)))
5449 (home-page "https://wiki.gnome.org/Apps/DFeet")
5450 (synopsis "D-Bus debugger")
5451 (description
5452 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5453of running programs and invoke methods on those interfaces.")
5454 (license license:gpl2+)))
c3b97bd9
SB
5455
5456(define-public yelp-xsl
5457 (package
5458 (name "yelp-xsl")
b3640e79 5459 (version "3.32.1")
c3b97bd9
SB
5460 (source (origin
5461 (method url-fetch)
5462 (uri (string-append "mirror://gnome/sources/" name "/"
5463 (version-major+minor version) "/"
5464 name "-" version ".tar.xz"))
5465 (sha256
5466 (base32
b3640e79 5467 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
c3b97bd9
SB
5468 (build-system gnu-build-system)
5469 (native-inputs
5470 `(("intltool" ,intltool)
5471 ("itstool" ,itstool)
5472 ("xmllint" ,libxml2)))
5473 (home-page "https://wiki.gnome.org/Apps/Yelp")
5474 (synopsis "XSL stylesheets for Yelp")
5475 (description
5476 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5477to format Docbook and Mallard documents.")
5478 (license license:gpl2+)))
de3d612a
SB
5479
5480(define-public yelp
5481 (package
5482 (name "yelp")
1f1b6d60 5483 (version "3.32.2")
de3d612a
SB
5484 (source (origin
5485 (method url-fetch)
5486 (uri (string-append "mirror://gnome/sources/" name "/"
5487 (version-major+minor version) "/"
5488 name "-" version ".tar.xz"))
5489 (sha256
5490 (base32
1f1b6d60 5491 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5492 (build-system glib-or-gtk-build-system)
5493 (native-inputs
5494 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5495 ("intltool" ,intltool)
5496 ("itstool" ,itstool)
5497 ("pkg-config" ,pkg-config)))
5498 (propagated-inputs
5499 `(("dconf" ,dconf)))
5500 (inputs
ad1b7d8b
SB
5501 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5502 ("libxslt" ,libxslt)
de3d612a 5503 ("sqlite" ,sqlite)
4c28ca1d
SB
5504 ("webkitgtk" ,webkitgtk)
5505 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5506 (home-page "https://wiki.gnome.org/Apps/Yelp")
5507 (synopsis "GNOME help browser")
5508 (description
5509 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5510man, info, and HTML documents. It can locate documents according to the
5511freedesktop.org help system specification.")
5512 (license license:gpl2+)))
122d0d10
SB
5513
5514(define-public yelp-tools
5515 (package
5516 (name "yelp-tools")
2089bca5 5517 (version "3.28.0")
122d0d10
SB
5518 (source (origin
5519 (method url-fetch)
5520 (uri (string-append "mirror://gnome/sources/" name "/"
5521 (version-major+minor version) "/"
5522 name "-" version ".tar.xz"))
5523 (sha256
5524 (base32
2089bca5 5525 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
5526 (build-system gnu-build-system)
5527 (native-inputs
5528 `(("pkg-config" ,pkg-config)))
5529 (propagated-inputs
5530 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5531 `(("itstool" ,itstool)
5532 ("xmllint" ,libxml2)
5533 ("xsltproc" ,libxslt)))
5534 (inputs
5535 `(("yelp-xsl" ,yelp-xsl)))
5536 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5537 (synopsis "Yelp documentation tools")
5538 (description
5539 "Yelp-tools is a collection of scripts and build utilities to help create,
5540manage, and publish documentation for Yelp and the web. Most of the heavy
5541lifting is done by packages like yelp-xsl and itstool. This package just
5542wraps things up in a developer-friendly way.")
5543 (license license:gpl2+)))
af8f9f23 5544
4ed041d9
MB
5545(define-public yelp-tools/fixed
5546 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5547 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5548 ;; the next rebuild cycle.
5549 (hidden-package
5550 (package/inherit
5551 yelp-tools
5552 (propagated-inputs
5553 `(("itstool" ,itstool/fixed)
5554 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5555
af8f9f23
RW
5556(define-public libgee
5557 (package
5558 (name "libgee")
9cedae2a 5559 (version "0.20.3")
af8f9f23
RW
5560 (source (origin
5561 (method url-fetch)
84a1b007 5562 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5563 (version-major+minor version) "/"
84a1b007 5564 "libgee-" version ".tar.xz"))
af8f9f23
RW
5565 (sha256
5566 (base32
9cedae2a 5567 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5568 (build-system gnu-build-system)
5569 (arguments
5570 `(#:phases
5571 (modify-phases %standard-phases
5572 (add-after 'unpack 'fix-introspection-install-dir
5573 (lambda* (#:key outputs #:allow-other-keys)
5574 (let ((out (assoc-ref outputs "out")))
5575 (substitute* "gee/Makefile.in"
5576 (("@INTROSPECTION_GIRDIR@")
5577 (string-append out "/share/gir-1.0/"))
5578 (("@INTROSPECTION_TYPELIBDIR@")
5579 (string-append out "/lib/girepository-1.0/")))))))))
5580 (native-inputs
5581 `(("glib" ,glib "bin")
5582 ("pkg-config" ,pkg-config)))
5583 (inputs
5584 `(("glib" ,glib)
5585 ("gobject-introspection" ,gobject-introspection)))
5586 (home-page "https://wiki.gnome.org/Projects/Libgee")
5587 (synopsis "GObject collection library")
5588 (description
5589 "Libgee is a utility library providing GObject-based interfaces and
5590classes for commonly used data structures.")
5591 (license license:lgpl2.1+)))
b0f9c4b8
RW
5592
5593(define-public gexiv2
5594 (package
5595 (name "gexiv2")
b1a8b408 5596 (version "0.12.0")
b0f9c4b8
RW
5597 (source (origin
5598 (method url-fetch)
5599 (uri (string-append "mirror://gnome/sources/" name "/"
5600 (version-major+minor version) "/"
5601 name "-" version ".tar.xz"))
5602 (sha256
5603 (base32
b1a8b408 5604 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5605 (build-system meson-build-system)
b0f9c4b8 5606 (native-inputs
b1a8b408
KK
5607 `(("gcr" ,gcr)
5608 ("glib" ,glib "bin")
5609 ("pkg-config" ,pkg-config)
5610 ("vala" ,vala)))
b0f9c4b8
RW
5611 (propagated-inputs
5612 ;; Listed in "Requires" section of gexiv2.pc
5613 `(("exiv2" ,exiv2)))
5614 (inputs
5615 `(("glib" ,glib)
5616 ("gobject-introspection" ,gobject-introspection)))
5617 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5618 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5619 (description
5620 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5621allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5622metadata in photo and video files of various formats.")
5623 (license license:gpl2+)))
fed5a689
RW
5624
5625(define-public shotwell
5626 (package
5627 (name "shotwell")
bcea20cc 5628 (version "0.30.8")
fed5a689
RW
5629 (source (origin
5630 (method url-fetch)
5497d682 5631 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5632 (version-major+minor version) "/"
5497d682 5633 "shotwell-" version ".tar.xz"))
fed5a689
RW
5634 (sha256
5635 (base32
bcea20cc 5636 "1f7m007g6w1sz8s60w6x81ghp2rrjmik8phd958b2hy8zz92wbbj"))))
3b79afa6
KK
5637 (build-system meson-build-system)
5638 (arguments
5a0beca3
EF
5639 '(#:glib-or-gtk? #t
5640 #:phases
5641 (modify-phases %standard-phases
5642 (add-after 'unpack 'skip-gtk-update-icon-cache
5643 (lambda _
5644 (substitute* "build-aux/meson/postinstall.py"
5645 (("gtk-update-icon-cache") (which "true"))
5646 (("update-desktop-database") (which "true")))
5647 #t)))))
735b8db6
TGR
5648 (propagated-inputs
5649 `(("dconf" ,dconf)))
fed5a689 5650 (native-inputs
5a0beca3
EF
5651 `(("gettext" ,gettext-minimal)
5652 ("glib:bin" ,glib "bin")
735b8db6 5653 ("itstool" ,itstool)
3b79afa6 5654 ("pkg-config" ,pkg-config)
735b8db6 5655 ("vala" ,vala)))
fed5a689 5656 (inputs
5a0beca3
EF
5657 `(("gcr" ,gcr)
5658 ("gexiv2" ,gexiv2)
fed5a689 5659 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5660 ("gstreamer" ,gstreamer)
5661 ("json-glib" ,json-glib)
dfb0323d 5662 ("libgdata" ,libgdata)
fed5a689 5663 ("libgee" ,libgee)
5a0beca3
EF
5664 ("libgphoto2" ,libgphoto2)
5665 ("libgudev" ,libgudev)
fed5a689 5666 ("libraw" ,libraw)
fed5a689
RW
5667 ("libsoup" ,libsoup)
5668 ("libxml2" ,libxml2)
5a0beca3
EF
5669 ("sqlite" ,sqlite)
5670 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5671 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5672 (synopsis "Photo manager for GNOME 3")
5673 (description
5674 "Shotwell is a digital photo manager designed for the GNOME desktop
5675environment. It allows you to import photos from disk or camera, organize
5676them by keywords and events, view them in full-window or fullscreen mode, and
5677share them with others via social networking and more.")
5678 (license license:lgpl2.1+)))
293ff8b2
DT
5679
5680(define-public file-roller
5681 (package
5682 (name "file-roller")
dcae4270 5683 (version "3.32.3")
293ff8b2
DT
5684 (source (origin
5685 (method url-fetch)
f89a27c6 5686 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5687 (version-major+minor version) "/"
f89a27c6 5688 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5689 (sha256
5690 (base32
dcae4270 5691 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5692 (build-system meson-build-system)
293ff8b2 5693 (native-inputs
0a500745
RW
5694 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5695 ("intltool" ,intltool)
4c96e5d1 5696 ("itstool" ,itstool)
0a500745
RW
5697 ("pkg-config" ,pkg-config)
5698 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5699 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5700 ;; TODO: Add libnautilus.
5701 (inputs
5702 `(("gtk+" ,gtk+)
5703 ("gdk-pixbuf" ,gdk-pixbuf)
5704 ("json-glib" ,json-glib)
5705 ("libarchive" ,libarchive)
5706 ("libnotify" ,libnotify)
4c96e5d1 5707 ("nettle" ,nettle)
293ff8b2
DT
5708 ("libxml2" ,libxml2)))
5709 (synopsis "Graphical archive manager for GNOME")
5710 (description "File Roller is an archive manager for the GNOME desktop
5711environment that allows users to view, unpack, and create compressed archives
5712such as gzip tarballs.")
5713 (home-page "http://fileroller.sourceforge.net/")
5714 (license license:gpl2+)))
7ce49365
SB
5715
5716(define-public gnome-session
5717 (package
5718 (name "gnome-session")
1fc2ec79 5719 (version "3.32.0")
7ce49365
SB
5720 (source (origin
5721 (method url-fetch)
5722 (uri (string-append "mirror://gnome/sources/" name "/"
5723 (version-major+minor version) "/"
5724 name "-" version ".tar.xz"))
5725 (sha256
5726 (base32
1fc2ec79 5727 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5728 (arguments
df278071
RW
5729 '(#:glib-or-gtk? #t
5730 #:phases
2914af3c
AW
5731 (modify-phases %standard-phases
5732 (add-before 'configure 'pre-configure
5733 (lambda* (#:key outputs #:allow-other-keys)
5734 ;; Use elogind instead of systemd.
df278071
RW
5735 (substitute* "meson.build"
5736 (("libsystemd-login") "libelogind")
5737 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5738 (substitute* "gnome-session/gsm-systemd.c"
5739 (("#include <systemd/sd-login.h>")
5740 "#include <elogind/sd-login.h>"))
df278071 5741 ;; Remove uses of the systemd daemon.
803ab416
SB
5742 (substitute* "gnome-session/gsm-autostart-app.c"
5743 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5744 #t))
5745 (add-after 'install 'wrap-gnome-session
5746 (lambda* (#:key inputs outputs #:allow-other-keys)
5747 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5748 (let ((glib (assoc-ref inputs "glib:bin"))
5749 (out (assoc-ref outputs "out")))
5750 (wrap-program (string-append out "/bin/gnome-session")
5751 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5752 #t))))
6cbc8d57 5753
2914af3c 5754 #:configure-flags
df278071
RW
5755 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5756 "-Dman=false" ; FIXME: disabled because of docbook validation error
5757 "-Dsystemd_journal=false")))
5758 (build-system meson-build-system)
7ce49365
SB
5759 (native-inputs
5760 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5761 ("pkg-config" ,pkg-config)
5762 ("intltool" ,intltool)
df278071
RW
5763 ("xsltproc" ,libxslt)
5764 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5765 ("docbook-xsl" ,docbook-xsl)
5766 ("docbook-xml" ,docbook-xml)
5767 ("xmlto" ,xmlto)))
7ce49365 5768 (inputs
2914af3c
AW
5769 `(("elogind" ,elogind)
5770 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5771 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5772 ("gtk+" ,gtk+)
5773 ("json-glib" ,json-glib)
5774 ("libsm" ,libsm)
5775 ("libxcomposite" ,libxcomposite)
5776 ("libxtst" ,libxtst)
5777 ("mesa" ,mesa)
5778 ("upower" ,upower)
5779 ("xtrans" ,xtrans)))
5780 (synopsis "Session manager for GNOME")
5781 (description
5782 "This package contains the GNOME session manager, as well as a
5783configuration program to choose applications starting on login.")
5784 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5785 (license license:gpl2+)))
f47ba77e
SB
5786
5787(define-public gjs
5788 (package
5789 (name "gjs")
d054fbf5 5790 (version "1.56.2")
f47ba77e
SB
5791 (source (origin
5792 (method url-fetch)
5793 (uri (string-append "mirror://gnome/sources/" name "/"
5794 (version-major+minor version) "/"
5795 name "-" version ".tar.xz"))
5796 (sha256
5797 (base32
d054fbf5 5798 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5799 (build-system gnu-build-system)
5800 (arguments
5801 '(#:phases
5802 (modify-phases %standard-phases
5803 (add-before
5804 'check 'pre-check
5805 (lambda _
fc119619
MW
5806 ;; The test suite requires a running X server.
5807 (system "Xvfb :1 &")
5808 (setenv "DISPLAY" ":1")
5809
f47ba77e
SB
5810 ;; For the missing /etc/machine-id.
5811 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5812
144f94d0
KK
5813 ;; Our mozjs-38 package does not compile the required Intl API
5814 ;; support for these failing tests.
5815 (substitute* "installed-tests/js/testLocale.js"
5816 ((".*toBeDefined.*") "")
5817 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5818 (substitute* "installed-tests/scripts/testCommandLine.sh"
5819 (("Valentín") "")
5820 (("☭") ""))
f47ba77e
SB
5821 #t)))))
5822 (native-inputs
8a831c6f 5823 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5824 ("pkg-config" ,pkg-config)
5825 ("xmllint" ,libxml2)
5826 ;; For testing
5827 ("dbus-launch" ,dbus)
5828 ("uuidgen" ,util-linux)
ebebee94 5829 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5830 (propagated-inputs
5831 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5832 `(("cairo" ,cairo)
5833 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5834 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5835 (inputs
5836 `(("gtk+" ,gtk+)
5837 ("readline" ,readline)))
5838 (synopsis "Javascript bindings for GNOME")
f032d0be 5839 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5840 (description
5841 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5842javascript engine and the GObject introspection framework.")
5843 (license license:gpl2+)))
329d731b
DH
5844
5845(define-public gedit
5846 (package
5847 (name "gedit")
480c9226 5848 (version "3.32.2")
329d731b
DH
5849 (source (origin
5850 (method url-fetch)
5851 (uri (string-append "mirror://gnome/sources/" name "/"
5852 (version-major+minor version) "/"
5853 name "-" version ".tar.xz"))
5854 (sha256
5855 (base32
480c9226
KK
5856 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5857 (build-system meson-build-system)
329d731b 5858 (arguments
480c9226
KK
5859 `(#:glib-or-gtk? #t
5860 #:configure-flags
5861 ;; Otherwise, the RUNPATH will lack the final path component.
5862 (list (string-append "-Dc_link_args=-Wl,-rpath="
5863 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5864
5865 ;; XXX: Generated .h files are sometimes used before being built.
5866 #:parallel-build? #f
5867
480c9226 5868 #:phases
329d731b 5869 (modify-phases %standard-phases
480c9226
KK
5870 (add-after 'unpack 'skip-gtk-update-icon-cache
5871 ;; Don't create 'icon-theme.cache'.
5872 (lambda _
5873 (substitute* "build-aux/meson/post_install.py"
5874 (("gtk-update-icon-cache") (which "true")))
5875 #t))
5876 (add-after 'unpack 'patch-libgd-fetch
5877 (lambda* (#:key inputs #:allow-other-keys)
5878 (let ((libgd (assoc-ref inputs "libgd")))
5879 ;; Calling git is unnecessary because libgd is fetched as a
5880 ;; native input to this package.
5881 (substitute* "meson.build"
5882 ((".*git.*") ""))
5883 (copy-recursively libgd "subprojects/libgd")
5884 #t)))
5885 (add-after 'install 'wrap-gedit
5886 (lambda* (#:key inputs outputs #:allow-other-keys)
5887 (let ((out (assoc-ref outputs "out"))
5888 (gtksourceview (assoc-ref inputs "gtksourceview"))
5889 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5890 (python-path (getenv "PYTHONPATH")))
5891 (wrap-program (string-append out "/bin/gedit")
5892 ;; For plugins.
5893 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5894 `("PYTHONPATH" ":" prefix (,python-path))
5895 ;; For language-specs.
5896 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5897 "/share")))))
5898 #t)))))
329d731b
DH
5899 (propagated-inputs
5900 `(("dconf" ,dconf)))
5901 (native-inputs
480c9226
KK
5902 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5903 ("intltool" ,intltool)
b3546174 5904 ("itstool" ,itstool)
480c9226 5905 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5906 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5907 ("libgd"
5908 ,(origin
5909 (method git-fetch)
5910 (uri (git-reference
5911 (url "https://gitlab.gnome.org/GNOME/libgd")
5912 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5913 (file-name (git-file-name "libgd" version))
5914 (sha256
5915 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
5916 ("pkg-config" ,pkg-config)))
5917 (inputs
5918 `(("glib" ,glib)
0d2df50c 5919 ("gspell" ,gspell)
329d731b 5920 ("gtk+" ,gtk+)
480c9226 5921 ("gtksourceview" ,gtksourceview)
329d731b
DH
5922 ("libpeas" ,libpeas)
5923 ("libxml2" ,libxml2)
329d731b
DH
5924 ("iso-codes" ,iso-codes)
5925 ("python-pygobject" ,python-pygobject)
5926 ("python" ,python)
5927 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5928 ("libx11" ,libx11)
5929 ("vala" ,vala)
5930 ("adwaita-icon-theme" ,adwaita-icon-theme)
5931 ("libsoup" ,libsoup)
5932 ("gnome-desktop" ,gnome-desktop)))
5933 (home-page "https://wiki.gnome.org/Apps/Gedit")
5934 (synopsis "GNOME text editor")
5935 (description "While aiming at simplicity and ease of use, gedit is a
5936powerful general purpose text editor.")
5937 (license license:gpl2+)))
b7179363
SB
5938
5939(define-public zenity
5940 (package
5941 (name "zenity")
4f581bd0 5942 (version "3.32.0")
b7179363
SB
5943 (source (origin
5944 (method url-fetch)
5958df04 5945 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 5946 (version-major+minor version) "/"
5958df04 5947 "zenity-" version ".tar.xz"))
b7179363
SB
5948 (sha256
5949 (base32
4f581bd0 5950 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
5951 (build-system gnu-build-system)
5952 (native-inputs
b94a6ca0 5953 `(("gettext" ,gettext-minimal)
b7179363
SB
5954 ("itstool" ,itstool)
5955 ("pkg-config" ,pkg-config)))
5956 (inputs
5957 `(("libnotify" ,libnotify)
5958 ("webkitgtk" ,webkitgtk)))
5959 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 5960 (home-page "https://www.gnome.org")
b7179363
SB
5961 (description
5962 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
5963to display dialog boxes from the commandline and shell scripts.")
5964 (license license:lgpl2.0+)))
60c3627c
SB
5965
5966(define-public mutter
5967 (package
5968 (name "mutter")
edf43f68 5969 (version "3.32.2")
60c3627c 5970 (source (origin
86c44e72
KK
5971 (method url-fetch)
5972 (uri (string-append "mirror://gnome/sources/" name "/"
5973 (version-major+minor version) "/"
5974 name "-" version ".tar.xz"))
60c3627c
SB
5975 (sha256
5976 (base32
edf43f68 5977 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
5978 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
5979 ;; versions of cogl and clutter. As a result, many of the inputs,
5980 ;; propagated-inputs, and configure flags used in cogl and clutter are
5981 ;; needed here as well.
edf43f68 5982 (build-system meson-build-system)
60c3627c 5983 (arguments
edf43f68
KK
5984 '(;; XXX: All mutter tests fail with the following error:
5985 ;; Settings schema 'org.gnome.mutter' is not installed
5986 #:tests? #f
5987 #:glib-or-gtk? #t
5988 #:configure-flags
5989 ;; Otherwise, the RUNPATH will lack the final path component.
5990 (list (string-append "-Dc_link_args=-Wl,-rpath="
5991 (assoc-ref %outputs "out") "/lib:"
5992 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
5993
5994 ;; The following flags are needed for the bundled clutter
edf43f68 5995 (string-append "-Dxwayland_path="
d633f2f6
RH
5996 (assoc-ref %build-inputs "xorg-server-xwayland")
5997 "/bin/Xwayland")
5998
a88d5a0c 5999 ;; the remaining flags are needed for the bundled cogl
edf43f68 6000 (string-append "-Dopengl_libname="
a88d5a0c 6001 (assoc-ref %build-inputs "mesa")
f23052a6
DC
6002 "/lib/libGL.so"))
6003 #:phases
6004 (modify-phases %standard-phases
edf43f68
KK
6005 (add-after 'unpack 'disable-werror
6006 (lambda _
6007 ;; XXX: build fails with [-Werror]:
6008 ;; backends/meta-cursor-renderer.c:112:5: error:
6009 ;; implicit declaration of function ?roundf?
6010 (substitute* "meson.build"
6011 (("'-Werror=.*',") ""))
6012 #t))
86c44e72
KK
6013 ;; Replace references to systemd libraries to elogind references.
6014 (add-before 'configure 'use-elogind
6015 (lambda _
edf43f68 6016 (substitute* (list "meson.build"
86c44e72
KK
6017 "src/backends/native/meta-launcher.c"
6018 "src/core/main.c")
6019 (("systemd") "elogind"))
6020 #t)))))
60c3627c
SB
6021 (native-inputs
6022 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6023 ("gobject-introspection" ,gobject-introspection)
6024 ("intltool" ,intltool)
f23052a6 6025 ("pkg-config" ,pkg-config)
edf43f68 6026 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6027 ;; For git build
6028 ("autoconf" ,autoconf)
6029 ("automake" ,automake)
6030 ("libtool" ,libtool)))
60c3627c 6031 (propagated-inputs
a88d5a0c
MW
6032 `(;; libmutter.pc refers to these:
6033 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6034 ("gtk+" ,gtk+)
6035 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6036 ("atk" ,atk)
6037 ("cairo" ,cairo)
6038 ("gdk-pixbuf" ,gdk-pixbuf)
6039 ("glib" ,glib)
a88d5a0c
MW
6040 ("json-glib" ,json-glib)
6041 ("libinput" ,libinput)
6042 ("libx11" ,libx11)
6043 ("libxcomposite" ,libxcomposite)
6044 ("libxdamage" ,libxdamage)
6045 ("libxext" ,libxext)
6046 ("libxfixes" ,libxfixes)
6047 ("libxkbcommon" ,libxkbcommon)
6048 ("libxrandr" ,libxrandr)
6049 ("mesa" ,mesa)
6050 ("pango" ,pango)
6051 ("udev" ,eudev)
a88d5a0c 6052 ("xinput" ,xinput)))
60c3627c 6053 (inputs
86c44e72
KK
6054 `(("elogind" ,elogind)
6055 ("gnome-desktop" ,gnome-desktop)
edf43f68 6056 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6057 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6058 ("libgudev" ,libgudev)
60c3627c
SB
6059 ("libice" ,libice)
6060 ("libsm" ,libsm)
edf43f68 6061 ("libwacom" ,libwacom)
60c3627c 6062 ("libxkbfile" ,libxkbfile)
a88d5a0c 6063 ("libxrandr" ,libxrandr)
86c44e72 6064 ("libxtst" ,libxtst)
edf43f68 6065 ("pipewire" ,pipewire)
60c3627c
SB
6066 ("startup-notification" ,startup-notification)
6067 ("upower-glib" ,upower)
6068 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6069 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6070 ("zenity" ,zenity)))
6071 (synopsis "Window and compositing manager")
f032d0be 6072 (home-page "https://www.gnome.org")
60c3627c
SB
6073 (description
6074 "Mutter is a window and compositing manager that displays and manages your
6075desktop via OpenGL. Mutter combines a sophisticated display engine using the
6076Clutter toolkit with solid window-management logic inherited from the Metacity
6077window manager.")
86c44e72 6078 (license license:gpl2+)))
685cee87
SB
6079
6080(define-public gnome-online-accounts
6081 (package
6082 (name "gnome-online-accounts")
aa200347 6083 (version "3.32.1")
685cee87
SB
6084 (source (origin
6085 (method url-fetch)
6086 (uri (string-append "mirror://gnome/sources/" name "/"
6087 (version-major+minor version) "/"
6088 name "-" version ".tar.xz"))
6089 (sha256
6090 (base32
aa200347 6091 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 6092 (outputs '("out" "lib"))
685cee87 6093 (build-system glib-or-gtk-build-system)
14c297fd
TS
6094 (arguments
6095 `(#:configure-flags
6096 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6097 #:phases
6098 (modify-phases %standard-phases
6099 (add-before 'configure 'patch-libgoa-output
6100 (lambda* (#:key outputs #:allow-other-keys)
6101 (let ((lib (assoc-ref outputs "lib")))
6102 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6103 (("@prefix@") lib)
6104 (("@exec_prefix@") lib)
6105 (("@libdir@") (string-append lib "/lib"))
6106 (("@includedir@") (string-append lib "/include"))
6107 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6108 ;; Make sure gobject-introspection knows about the output
6109 ;; too (see <https://bugs.gnu.org/36535>).
6110 (setenv "outputs" "out lib")
14c297fd 6111 #t))))))
685cee87
SB
6112 (native-inputs
6113 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6114 ("gobject-introspection" ,gobject-introspection)
6115 ("intltool" ,intltool)
6116 ("pkg-config" ,pkg-config)
ebb2873d 6117 ("vala" ,vala)
685cee87
SB
6118 ("xsltproc" ,libxslt)))
6119 (propagated-inputs
6120 `(("glib" ,glib) ; required by goa-1.0.pc
6121 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6122 (inputs
6123 `(("docbook-xsl" ,docbook-xsl)
6124 ("json-glib" ,json-glib)
6125 ("libsecret" ,libsecret)
6126 ("rest" ,rest)
685cee87
SB
6127 ("webkitgtk" ,webkitgtk)))
6128 (synopsis "Single sign-on framework for GNOME")
6129 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6130 (description
6131 "GNOME Online Accounts provides interfaces so that applications and
6132libraries in GNOME can access the user's online accounts. It has providers for
6133Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6134Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6135 (license license:lgpl2.0+)))
df217748
SB
6136
6137(define-public evolution-data-server
6138 (package
6139 (name "evolution-data-server")
2196a8d4 6140 (version "3.32.4")
df217748
SB
6141 (source (origin
6142 (method url-fetch)
6143 (uri (string-append "mirror://gnome/sources/" name "/"
6144 (version-major+minor version) "/"
6145 name "-" version ".tar.xz"))
43190ac6
MB
6146 (patches (search-patches "evolution-data-server-locales.patch"
6147 "evolution-data-server-libical-compat.patch"))
df217748
SB
6148 (sha256
6149 (base32
2196a8d4 6150 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 6151 (build-system cmake-build-system)
df217748 6152 (arguments
b468eedc
RW
6153 '(#:configure-flags
6154 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6155 (runpaths (map (lambda (s)
6156 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6157 '("addressbook-backends" "calendar-backends"
6158 "camel-providers" "credential-modules"
6159 "registry-modules"))))
6160 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6161 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6162 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6163 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6164 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6165 (string-append lib "/evolution-data-server;")
6166 (string-join runpaths ";"))
6167 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6168 #:phases
6169 (modify-phases %standard-phases
b468eedc
RW
6170 (add-after 'unpack 'disable-failing-tests
6171 (lambda _
6172 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6173 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6174 (delete-file-recursively "tests/book-migration")
6175 (substitute* "tests/CMakeLists.txt"
6176 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
6177 ;; tests/libebook/client/test-book-client-view-operations:8077):
6178 ;; e-data-server-WARNING **:
6179 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6180 ;; runtime check failed:
6181 ;; (!g_main_context_pending (closure->main_context))
6182 (substitute* "tests/libebook/client/CMakeLists.txt"
6183 (("test-book-client-view-operations") ""))
b468eedc 6184 #t))
743aebd7 6185 (add-after 'unpack 'patch-paths
df217748 6186 (lambda _
b468eedc
RW
6187 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6188 "tests/libedata-book/data-test-utils.c"
6189 "tests/libedata-book/test-book-cache-utils.c"
6190 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6191 (("/bin/rm") (which "rm")))
ac033c7b
MB
6192 #t))
6193 (add-before 'configure 'dont-override-rpath
6194 (lambda _
6195 (substitute* "CMakeLists.txt"
6196 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6197 ;; Remove it so the configure flag is respected.
6198 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6199 #t)))))
df217748
SB
6200 (native-inputs
6201 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6202 ("gobject-introspection" ,gobject-introspection)
6203 ("gperf" ,gperf)
6204 ("intltool" ,intltool)
6205 ("pkg-config" ,pkg-config)
a73c1cf8 6206 ("vala" ,vala)
743aebd7 6207 ("python" ,python-wrapper)))
df217748
SB
6208 (propagated-inputs
6209 ;; These are all in the Requires field of .pc files.
6210 `(("gtk+" ,gtk+)
6211 ("libical" ,libical)
6212 ("libsecret" ,libsecret)
6213 ("libsoup" ,libsoup)
6214 ("nss" ,nss)
6215 ("sqlite" ,sqlite)))
6216 (inputs
6217 `(("bdb" ,bdb)
6218 ("gcr" ,gcr)
14c297fd 6219 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6220 ("json-glib" ,json-glib)
b468eedc 6221 ("libcanberra" ,libcanberra)
743aebd7
MB
6222 ("libgweather" ,libgweather)
6223 ("mit-krb5" ,mit-krb5)
891199c6
MW
6224 ("openldap" ,openldap)
6225 ("webkitgtk" ,webkitgtk)))
df217748
SB
6226 (synopsis "Store address books and calendars")
6227 (home-page "https://wiki.gnome.org/Apps/Evolution")
6228 (description
6229 "This package provides a unified backend for programs that work with
6230contacts, tasks, and calendar information. It was originally developed for
6231Evolution (hence the name), but is now used by other packages as well.")
6232 (license license:lgpl2.0)))
bd7dfafa
SB
6233
6234(define-public caribou
6235 (package
6236 (name "caribou")
fe964bb5 6237 (version "0.4.21")
bd7dfafa
SB
6238 (source (origin
6239 (method url-fetch)
6240 (uri (string-append "mirror://gnome/sources/" name "/"
6241 (version-major+minor version) "/"
6242 name "-" version ".tar.xz"))
6243 (sha256
6244 (base32
fe964bb5 6245 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6246 (build-system glib-or-gtk-build-system)
6247 (arguments
6248 '(#:phases
6249 (modify-phases %standard-phases
6250 (add-before
6251 'build 'pre-build
6252 (lambda* (#:key outputs #:allow-other-keys)
6253 (let ((out (assoc-ref outputs "out")))
6254 ;; Use absolute shared library path in Caribou-1.0.typelib.
6255 (substitute* "libcaribou/Makefile"
6256 (("--shared-library=libcaribou.so")
6257 (string-append "--shared-library="
6258 out "/lib/libcaribou.so")))
6259 #t)))
6260 (add-after 'install 'wrap-programs
6261 (lambda* (#:key outputs #:allow-other-keys)
6262 (let* ((out (assoc-ref outputs "out"))
6263 (python-path (getenv "PYTHONPATH"))
6264 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6265 (for-each
6266 (lambda (prog)
6267 (wrap-program prog
6268 `("PYTHONPATH" ":" prefix (,python-path))
6269 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6270 (list (string-append out "/bin/caribou-preferences")
6271 (string-append out "/libexec/antler-keyboard"))))
6272 #t)))))
6273 (native-inputs
6274 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6275 ("gobject-introspection" ,gobject-introspection)
6276 ("intltool" ,intltool)
6277 ("pkg-config" ,pkg-config)
9f7f5ba2 6278 ("python" ,python)
bd7dfafa
SB
6279 ("vala" ,vala)
6280 ("xsltproc" ,libxslt)))
6281 (propagated-inputs
6282 ;; caribou-1.0.pc refers to all these.
6283 `(("libgee" ,libgee)
6284 ("libxklavier" ,libxklavier)
6285 ("libxtst" ,libxtst)
6286 ("gtk+" ,gtk+)))
6287 (inputs
6288 `(("clutter" ,clutter)
6289 ("dconf" ,dconf)
6290 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6291 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6292 (synopsis "Text entry and UI navigation application")
6293 (home-page "https://wiki.gnome.org/Projects/Caribou")
6294 (description
6295 "Caribou is an input assistive technology intended for switch and pointer
6296users.")
6297 (license license:lgpl2.1)))
ba5dd105 6298
ba5dd105
SB
6299(define-public network-manager
6300 (package
6301 (name "network-manager")
6425d87a 6302 (version "1.18.4")
ba5dd105
SB
6303 (source (origin
6304 (method url-fetch)
6305 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6306 (version-major+minor version) "/"
6307 "NetworkManager-" version ".tar.xz"))
7d1861e2 6308 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6309 (sha256
6310 (base32
6425d87a 6311 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 6312 (modules '((guix build utils)))
fd070f35 6313 (snippet
02710a9b
RW
6314 '(begin
6315 (substitute* "src/devices/wwan/nm-modem-manager.c"
6316 (("systemd") "elogind"))
6317 #t))))
ba5dd105
SB
6318 (build-system gnu-build-system)
6319 (outputs '("out"
6320 "doc")) ; 8 MiB of gtk-doc HTML
6321 (arguments
6322 '(#:configure-flags
6323 (let ((out (assoc-ref %outputs "out"))
6324 (doc (assoc-ref %outputs "doc"))
6325 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6326 "/sbin/dhclient")))
02710a9b
RW
6327 (list "--with-libnm-glib" ; needed by network-manager-applet
6328 "--with-systemd-journal=no"
6329 "--with-session-tracking=elogind"
6330 "--with-suspend-resume=elogind"
fd070f35
CM
6331 "--with-consolekit=no"
6332 "--with-crypto=gnutls"
ba5dd105
SB
6333 "--disable-config-plugin-ibft"
6334 "--sysconfdir=/etc"
6335 "--localstatedir=/var"
6336 (string-append "--with-udev-dir="
6337 out "/lib/udev")
6338 (string-append "--with-dbus-sys-dir="
6339 out "/etc/dbus-1/system.d")
6340 (string-append "--with-html-dir="
6341 doc "/share/gtk-doc/html")
6342 (string-append "--with-dhclient=" dhclient)))
6343 #:phases
6344 (modify-phases %standard-phases
02710a9b
RW
6345 ;; This bare "ls" invocation breaks some tests.
6346 (add-after 'unpack 'patch-ls-invocation
6347 (lambda _
6348 (substitute* "build-aux/ltmain.sh"
6349 (("`ls -")
6350 (string-append "`" (which "ls") " -")))
6351 #t))
b4f59d87
AW
6352 (add-before 'configure 'pre-configure
6353 (lambda _
6354 ;; These tests try to test aspects of network-manager's
6355 ;; functionality within restricted containers, but they don't
6356 ;; cope with being already in the Guix build jail as that jail
6357 ;; lacks some features that they would like to proxy over (like
6358 ;; a /sys mount).
d04687dc
HG
6359 (substitute* '("Makefile.in")
6360 (("src/platform/tests/test-address-linux") " ")
6361 (("src/platform/tests/test-cleanup-linux") " ")
6362 (("src/platform/tests/test-link-linux") " ")
6363 (("src/platform/tests/test-route-linux") " ")
02710a9b 6364 (("src/devices/tests/test-acd") "")
d04687dc
HG
6365 (("src/devices/tests/test-arping") " ")
6366 (("src/devices/tests/test-lldp") " ")
6367 (("src/tests/test-route-manager-linux") " "))
b4f59d87 6368 #t))
45f80fce
RW
6369 (add-after 'unpack 'delete-failing-tests
6370 (lambda _
02710a9b 6371 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
6372 ;; ERROR:libnm-core/tests/test-general.c:5842:
6373 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6374 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6375 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6376 ;; ERROR:libnm-core/tests/test-setting.c:907:
6377 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
6378 (substitute* "Makefile.in"
6379 (("libnm-core/tests/test-general") " ")
6380 (("libnm-core/tests/test-keyfile") " ")
02710a9b 6381 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 6382 #t))
ba5dd105
SB
6383 (add-before 'check 'pre-check
6384 (lambda _
6385 ;; For the missing /etc/machine-id.
6386 (setenv "DBUS_FATAL_WARNINGS" "0")
6387 #t))
6388 (replace 'install
6389 (lambda _
45f80fce
RW
6390 (invoke "make"
6391 "sysconfdir=/tmp"
6392 "rundir=/tmp"
6393 "statedir=/tmp"
6394 "nmstatedir=/tmp/nm"
6395 "install")
6396 #t)))))
b93502d6
DC
6397 (propagated-inputs
6398 `(("glib" ,glib)))
ba5dd105
SB
6399 (native-inputs
6400 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6401 ("gobject-introspection" ,gobject-introspection)
d04687dc 6402 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6403 ("intltool" ,intltool)
d04687dc
HG
6404 ("libxslt" ,libxslt)
6405 ("libxml2" ,libxml2)
ba5dd105
SB
6406 ("pkg-config" ,pkg-config)
6407 ;; For testing.
6408 ("python" ,python-wrapper)
6409 ("python-dbus" ,python-dbus)
6410 ("python-pygobject" ,python-pygobject)))
6411 (inputs
02710a9b
RW
6412 `(("coreutils" ,coreutils) ; for ls
6413 ("curl" ,curl)
856ca567
KK
6414 ("cyrus-sasl" ,cyrus-sasl)
6415 ("dbus-glib" ,dbus-glib)
ba5dd105 6416 ("dnsmasq" ,dnsmasq)
856ca567 6417 ("eudev" ,eudev)
ba5dd105
SB
6418 ("gnutls" ,gnutls)
6419 ("iptables" ,iptables)
6420 ("isc-dhcp" ,isc-dhcp)
d04687dc 6421 ("jansson" ,jansson)
ba5dd105
SB
6422 ("libgcrypt" ,libgcrypt)
6423 ("libgudev" ,libgudev)
6424 ("libndp" ,libndp)
6425 ("libnl" ,libnl)
6426 ("libsoup" ,libsoup)
142bdcbc 6427 ("modem-manager" ,modem-manager)
c27e02bf 6428 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6429 ("polkit" ,polkit)
6430 ("ppp" ,ppp)
6431 ("readline" ,readline)
fd070f35
CM
6432 ("util-linux" ,util-linux)
6433 ("elogind" ,elogind)))
ba5dd105 6434 (synopsis "Network connection manager")
f032d0be 6435 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6436 (description
6437 "NetworkManager is a system network service that manages your network
6438devices and connections, attempting to keep active network connectivity when
6439available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6440devices, and provides VPN integration with a variety of different VPN
6441services.")
29d2f451
LC
6442 (license license:gpl2+)
6443 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6444
f2b96b3a
LC
6445(define-public network-manager-openvpn
6446 (package
6447 (name "network-manager-openvpn")
be1c4b07 6448 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6449 (version "1.8.10")
f2b96b3a
LC
6450 (source (origin
6451 (method url-fetch)
6452 (uri (string-append
6453 "mirror://gnome/sources/NetworkManager-openvpn/"
6454 (version-major+minor version)
6455 "/NetworkManager-openvpn-" version ".tar.xz"))
6456 (sha256
6457 (base32
7d87eede 6458 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6459 (build-system gnu-build-system)
6460 (arguments
633422b0
JL
6461 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6462 #:phases
6463 (modify-phases %standard-phases
6464 (add-after 'configure 'patch-path
6465 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6466 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6467 "/sbin/openvpn"))
6468 (modprobe (string-append (assoc-ref inputs "kmod")
6469 "/bin/modprobe"))
6470 (pretty-ovpn (string-append "\"" ovpn "\"")))
6471 (for-each
6472 (lambda (file)
6473 (substitute* file
6474 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6475 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6476 (("\"/sbin/openvpn\"") pretty-ovpn)
6477 (("/sbin/modprobe") modprobe)))
6478 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6479 #t)))))
f2b96b3a
LC
6480 (native-inputs
6481 `(("pkg-config" ,pkg-config)
6482 ("intltool" ,intltool)))
6483 (inputs
6484 `(("gtk+" ,gtk+)
633422b0 6485 ("kmod" ,kmod)
f2b96b3a
LC
6486 ("openvpn" ,openvpn)
6487 ("network-manager" ,network-manager)
6488 ("network-manager-applet" ,network-manager-applet) ;for libnma
6489 ("libsecret" ,libsecret)))
6490 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6491 (synopsis "OpenVPN plug-in for NetworkManager")
6492 (description
6493 "This extension of NetworkManager allows it to take care of connections
6494to virtual private networks (VPNs) via OpenVPN.")
6495 (license license:gpl2+)
6496 (properties `((upstream-name . "NetworkManager-openvpn")))))
6497
d376129f
JL
6498(define-public network-manager-vpnc
6499 (package
6500 (name "network-manager-vpnc")
6501 (version "1.2.6")
6502 (source (origin
6503 (method url-fetch)
6504 (uri (string-append
6505 "mirror://gnome/sources/NetworkManager-vpnc/"
6506 (version-major+minor version)
6507 "/NetworkManager-vpnc-" version ".tar.xz"))
6508 (sha256
6509 (base32
6510 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6511 (build-system gnu-build-system)
6512 (arguments
6513 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6514 #:phases
6515 (modify-phases %standard-phases
6516 (add-after 'configure 'patch-path
6517 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6518 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6519 "/sbin/vpnc"))
6520 (modprobe (string-append (assoc-ref inputs "kmod")
6521 "/bin/modprobe"))
6522 (pretty-ovpn (string-append "\"" vpnc "\"")))
6523 (substitute* "src/nm-vpnc-service.c"
6524 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6525 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6526 (("\"/sbin/vpnc\"") pretty-ovpn)
6527 (("/sbin/modprobe") modprobe)))
6528 #t)))))
6529 (native-inputs
6530 `(("pkg-config" ,pkg-config)
6531 ("intltool" ,intltool)))
6532 (inputs
6533 `(("gtk+" ,gtk+)
6534 ("kmod" ,kmod)
6535 ("vpnc" ,vpnc)
6536 ("network-manager" ,network-manager)
6537 ("network-manager-applet" ,network-manager-applet) ;for libnma
6538 ("libsecret" ,libsecret)))
6539 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6540 (synopsis "VPNC plug-in for NetworkManager")
6541 (description
6542 "Support for configuring virtual private networks based on VPNC.
6543Compatible with Cisco VPN concentrators configured to use IPsec.")
6544 (license license:gpl2+)
6545 (properties `((upstream-name . "NetworkManager-vpnc")))))
6546
8378c87a
EF
6547(define-public network-manager-openconnect
6548 (package
6549 (name "network-manager-openconnect")
6550 (version "1.2.6")
6551 (source (origin
6552 (method url-fetch)
6553 (uri (string-append
6554 "mirror://gnome/sources/NetworkManager-openconnect/"
6555 (version-major+minor version)
6556 "/NetworkManager-openconnect-" version ".tar.xz"))
6557 (sha256
6558 (base32
6559 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6560 (build-system gnu-build-system)
6561 (arguments
6562 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6563 #:phases
6564 (modify-phases %standard-phases
6565 (add-after 'configure 'patch-path
6566 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6567 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6568 "/sbin/openconnect"))
6569 (modprobe (string-append (assoc-ref inputs "kmod")
6570 "/bin/modprobe"))
6571 (pretty-ovpn (string-append "\"" openconnect "\"")))
6572 (substitute* "src/nm-openconnect-service.c"
6573 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6574 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6575 (("/sbin/modprobe") modprobe)))
6576 #t)))))
6577 (native-inputs
6578 `(("intltool" ,intltool)
6579 ("network-manager-applet" ,network-manager-applet) ;for libnma
6580 ("pkg-config" ,pkg-config)))
6581 (inputs
6582 `(("gcr" ,gcr)
6583 ("gtk+" ,gtk+)
6584 ("kmod" ,kmod)
6585 ("libsecret" ,libsecret)
6586 ("libxml2" ,libxml2)
6587 ("network-manager" ,network-manager)
6588 ("openconnect" ,openconnect)))
6589 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6590 (synopsis "OpenConnect plug-in for NetworkManager")
6591 (description
6592 "This extension of NetworkManager allows it to take care of connections
6593to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6594Cisco's AnyConnect SSL VPN.")
6595 (license license:gpl2+)
e52b9534
LC
6596 (properties `((upstream-name . "NetworkManager-openconnect")
6597
6598 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6599 ;; file refers to account "nm-openconnect". Specify it here
6600 ;; so that 'network-manager-service-type' creates it.
6601 (user-accounts . ("nm-openconnect"))))))
8378c87a 6602
e5e1df4d
DC
6603(define-public mobile-broadband-provider-info
6604 (package
6605 (name "mobile-broadband-provider-info")
310c89e3 6606 (version "20190116")
e5e1df4d
DC
6607 (source (origin
6608 (method url-fetch)
6609 (uri (string-append
6610 "mirror://gnome/sources/"
6611 "mobile-broadband-provider-info/" version "/"
6612 "mobile-broadband-provider-info-" version ".tar.xz"))
6613 (sha256
6614 (base32
310c89e3 6615 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6616 (build-system gnu-build-system)
6617 (arguments
310c89e3 6618 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6619 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6620 (synopsis "Database of broadband connection configuration")
6621 (description "Database of broadband connection configuration.")
6622 (license license:public-domain)))
6623
4d62a9d3
SB
6624(define-public network-manager-applet
6625 (package
6626 (name "network-manager-applet")
8fc3a337 6627 (version "1.8.24")
4d62a9d3
SB
6628 (source (origin
6629 (method url-fetch)
3df63444 6630 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6631 (version-major+minor version) "/"
3df63444 6632 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6633 (sha256
6634 (base32
8fc3a337 6635 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6636 (build-system meson-build-system)
6637 (arguments
be1c4b07
TGR
6638 '(#:configure-flags
6639 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6640 (list "-Dlibnm_gtk=true")
6641 #:glib-or-gtk? #t))
4d62a9d3
SB
6642 (native-inputs
6643 `(("intltool" ,intltool)
cd7f718e 6644 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6645 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6646 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6647 ("pkg-config" ,pkg-config)))
6648 (propagated-inputs
6649 ;; libnm-gtk.pc refers to all these.
6650 `(("dbus-glib" ,dbus-glib)
6651 ("gtk+" ,gtk+)
6652 ("network-manager" ,network-manager)))
6653 (inputs
cd7f718e
RW
6654 `(("gcr" ,gcr)
6655 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6656 ("libgudev" ,libgudev)
6657 ("libnotify" ,libnotify)
2116bfb3 6658 ("libsecret" ,libsecret)
240cee8a
KK
6659 ("libselinux" ,libselinux)
6660 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6661 ("modem-manager" ,modem-manager)
6662 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6663 (synopsis "Applet for managing network connections")
f032d0be 6664 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6665 (description
6666 "This package contains a systray applet for NetworkManager. It displays
6667the available networks and allows users to easily switch between them.")
6668 (license license:gpl2+)))
56196594
RW
6669
6670(define-public libxml++
6671 (package
6672 (name "libxml++")
8344a85e 6673 (version "3.0.1")
56196594
RW
6674 (source (origin
6675 (method url-fetch)
6676 (uri (string-append "mirror://gnome/sources/" name "/"
6677 (version-major+minor version) "/"
6678 name "-" version ".tar.xz"))
6679 (sha256
6680 (base32
8344a85e 6681 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6682 (build-system gnu-build-system)
6683 ;; libxml++-3.0.pc refers to all these.
6684 (propagated-inputs
6685 `(("libxml2" ,libxml2)
6686 ("glibmm" ,glibmm)))
6687 (native-inputs
6688 `(("perl" ,perl)
6689 ("pkg-config" ,pkg-config)))
6690 (home-page "http://libxmlplusplus.sourceforge.net/")
6691 (synopsis "C++ wrapper for XML parser library libxml2")
6692 (description
6693 "This package provides a C++ wrapper for the XML parser library
6694libxml2.")
6695 (license license:lgpl2.1+)))
df12f04a 6696
b61d9627
AW
6697(define-public libxml++-2
6698 (package
6699 (inherit libxml++)
6700 (name "libxml++")
6701 (version "2.40.1")
6702 (source (origin
6703 (method url-fetch)
6704 (uri (string-append "mirror://gnome/sources/" name "/"
6705 (version-major+minor version) "/"
6706 name "-" version ".tar.xz"))
6707 (sha256
6708 (base32
6709 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6710
df12f04a
SB
6711(define-public gdm
6712 (package
6713 (name "gdm")
bcca95dc 6714 (version "3.32.0")
df12f04a
SB
6715 (source (origin
6716 (method url-fetch)
6717 (uri (string-append "mirror://gnome/sources/" name "/"
6718 (version-major+minor version) "/"
6719 name "-" version ".tar.xz"))
6720 (sha256
6721 (base32
bcca95dc 6722 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6723 (build-system glib-or-gtk-build-system)
df12f04a
SB
6724 (arguments
6725 '(#:configure-flags
af37e6bb 6726 `("--without-plymouth"
957dbc0a 6727 "--disable-systemd-journal"
51bc8357
TS
6728
6729 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6730 ;; instead of having to replace it (i.e., stopping the mingetty
6731 ;; service for TTY 1 before starting GDM).
6732 "--with-initial-vt=7"
6733
89c86562
TS
6734 ;; Use '/etc/environment' for locale settings instead of the
6735 ;; systemd-specific '/etc/locale.conf'.
6736 "--with-lang-file=/etc/environment"
6737
b74ef0ba
RW
6738 ,(string-append "--with-udevdir="
6739 (assoc-ref %outputs "out") "/lib/udev")
6740
af37e6bb
AW
6741 "--localstatedir=/var"
6742 ,(string-append "--with-default-path="
6743 (string-join '("/run/setuid-programs"
6744 "/run/current-system/profile/bin"
6745 "/run/current-system/profile/sbin")
957dbc0a
AW
6746 ":"))
6747 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6748 ;; XDG_DATA_DIRS so that it finds its schemas.
6749 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6750 #:phases
6751 (modify-phases %standard-phases
6752 (add-before
6753 'configure 'pre-configure
e8c6e771 6754 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6755 ;; We don't have <systemd/sd-daemon.h>.
6756 (substitute* '("common/gdm-log.c"
6757 "daemon/gdm-server.c"
6758 "daemon/gdm-session-worker.c"
6759 "daemon/gdm-session-worker-job.c")
6760 (("#include <systemd/sd-daemon\\.h>") ""))
6761 ;; Use elogind for sd-login.
6762 (substitute* '("common/gdm-common.c"
6763 "daemon/gdm-manager.c"
6764 "libgdm/gdm-user-switching.c")
6765 (("#include <systemd/sd-login\\.h>")
6766 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6767 ;; Check for elogind.
6768 (substitute* '("configure")
6769 (("libsystemd")
6770 "libelogind"))
af37e6bb
AW
6771 ;; Look for system-installed sessions in
6772 ;; /run/current-system/profile/share.
6773 (substitute* '("libgdm/gdm-sessions.c"
6774 "daemon/gdm-session.c"
6775 "daemon/gdm-display.c"
6776 "daemon/gdm-launch-environment.c")
6777 (("DATADIR \"/x")
6778 "\"/run/current-system/profile/share/x")
6779 (("DATADIR \"/wayland")
6780 "\"/run/current-system/profile/share/wayland")
6781 (("DATADIR \"/gnome")
6782 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6783 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6784 "GDM_DBUS_DAEMON"
c9ff92b5 6785 "GDM_X_SERVER"
41fa9f18 6786 "GDM_X_SESSION"
c9ff92b5
TS
6787 ;; XXX: Remove this once GNOME Shell is
6788 ;; a dependency of GDM.
6789 "XDG_DATA_DIRS")))
6790 (substitute* "daemon/gdm-session.c"
6791 (("set_up_session_environment \\(self\\);")
6792 (apply string-append
6793 "set_up_session_environment (self);\n"
6794 (map (lambda (name)
6795 (string-append
6796 "gdm_session_set_environment_variable "
6797 "(self, \"" name "\","
6798 "g_getenv (\"" name "\"));\n"))
6799 propagate)))))
a430a350
TS
6800 ;; Find the configuration file using an environment variable.
6801 (substitute* '("common/gdm-settings.c")
e0e6756f 6802 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6803 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6804 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6805 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6806 ;; Use service-supplied path to X.
6807 (substitute* '("daemon/gdm-server.c")
6808 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6809 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6810 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6811 (("\"dbus-daemon\"")
6812 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6813 (("X_SERVER")
41fa9f18
TS
6814 "g_getenv (\"GDM_X_SERVER\")")
6815 (("GDMCONFDIR \"/Xsession\"")
6816 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6817 ;; Use an absolute path for GNOME Session.
6818 (substitute* "daemon/gdm-launch-environment.c"
6819 (("\"gnome-session\"")
6820 (string-append "\"" (assoc-ref inputs "gnome-session")
6821 "/bin/gnome-session\"")))
e8c6e771
TS
6822 ;; Do not automatically select the placeholder session.
6823 (substitute* "daemon/gdm-session.c"
6824 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6825 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6826 "(g_strcmp0(search_dirs[i], \""
6827 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6828 "\") == 0 && "
6829 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6830 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6831 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6832 #t))
8caa4589
TS
6833 ;; GDM requires that there be at least one desktop entry
6834 ;; file. This phase installs a hidden one that simply
6835 ;; fails. This enables users to use GDM with a
6836 ;; '~/.xsession' script with no other desktop entry files.
6837 ;; See <https://bugs.gnu.org/35068>.
6838 (add-after 'install 'install-placeholder-desktop-entry
6839 (lambda* (#:key inputs outputs #:allow-other-keys)
6840 (let* ((out (assoc-ref outputs "out"))
6841 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6842 (fail (string-append sessions "/fail.desktop")))
6843 (mkdir-p sessions)
6844 (with-output-to-file fail
6845 (lambda ()
6846 (for-each
6847 display
6848 '("[Desktop Entry]\n"
6849 "Encoding=UTF-8\n"
6850 "Type=Application\n"
6851 "Name=Fail\n"
6852 "Comment=This session fails immediately.\n"
6853 "NoDisplay=true\n"
6854 "Exec=false\n"))))
6855 #t)))
69544798
TS
6856 ;; GDM needs GNOME Session to run these applications. We link
6857 ;; their autostart files in `share/gdm/greeter/autostart'
6858 ;; because GDM explicitly tells GNOME Session to look there.
6859 ;;
6860 ;; XXX: GNOME Shell should be linked here too, but currently
6861 ;; GNOME Shell depends on GDM.
6862 (add-after 'install 'link-autostart-files
6863 (lambda* (#:key inputs outputs #:allow-other-keys)
6864 (let* ((out (assoc-ref outputs "out"))
6865 (autostart (string-append out "/share/gdm/"
6866 "greeter/autostart"))
6867 (settings (assoc-ref inputs "gnome-settings-daemon")))
6868 (mkdir-p autostart)
6869 (with-directory-excursion autostart
6870 (for-each (lambda (desktop)
6871 (symlink desktop (basename desktop)))
6872 (find-files (string-append settings "/etc/xdg"))))
6873 #t))))))
df12f04a
SB
6874 (native-inputs
6875 `(("dconf" ,dconf)
6876 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6877 ("gobject-introspection" ,gobject-introspection)
6878 ("intltool" ,intltool)
6879 ("itstool" ,itstool)
6880 ("pkg-config" ,pkg-config)
6881 ("xmllint" ,libxml2)))
6882 (inputs
6883 `(("accountsservice" ,accountsservice)
6884 ("check" ,check) ; for testing
6885 ("elogind" ,elogind)
def6d6b6 6886 ("gnome-session" ,gnome-session)
69544798 6887 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6888 ("gtk+" ,gtk+)
6889 ("iso-codes" ,iso-codes)
6890 ("libcanberra" ,libcanberra)
6891 ("linux-pam" ,linux-pam)))
6892 (synopsis "Display manager for GNOME")
f032d0be 6893 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6894 (description
6895 "GNOME Display Manager is a system service that is responsible for
6896providing graphical log-ins and managing local and remote displays.")
6897 (license license:gpl2+)))
8e1dd04f
SB
6898
6899(define-public libgtop
6900 (package
6901 (name "libgtop")
015fc036 6902 (version "2.40.0")
8e1dd04f
SB
6903 (source (origin
6904 (method url-fetch)
59487fc2 6905 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6906 (version-major+minor version) "/"
59487fc2 6907 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6908 (sha256
6909 (base32
015fc036 6910 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
6911 (build-system gnu-build-system)
6912 (native-inputs
6913 `(("gobject-introspection" ,gobject-introspection)
6914 ("intltool" ,intltool)
6915 ("perl" ,perl)
6916 ("pkg-config" ,pkg-config)))
6917 (propagated-inputs
6918 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6919 (synopsis "Portable system access library")
6920 (home-page "https://www.gnome.org/")
6921 (description
6922 "LibGTop is a library to get system specific data such as CPU and memory
6923usage and information about running processes.")
6924 (license license:gpl2+)))
b96c4260
SB
6925
6926(define-public gnome-bluetooth
6927 (package
6928 (name "gnome-bluetooth")
723afae6 6929 (version "3.32.1")
b96c4260
SB
6930 (source (origin
6931 (method url-fetch)
6932 (uri (string-append "mirror://gnome/sources/" name "/"
6933 (version-major+minor version) "/"
6934 name "-" version ".tar.xz"))
6935 (sha256
6936 (base32
723afae6 6937 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 6938 (build-system meson-build-system)
b96c4260
SB
6939 (native-inputs
6940 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 6941 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
6942 ("gobject-introspection" ,gobject-introspection)
6943 ("intltool" ,intltool)
6944 ("pkg-config" ,pkg-config)
6945 ("xmllint" ,libxml2)))
6946 (propagated-inputs
6947 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
6948 `(("glib" ,glib)
6949 ("gtk+" ,gtk+)))
b96c4260 6950 (inputs
723afae6
KK
6951 `(("eudev" ,eudev)
6952 ("libcanberra" ,libcanberra)
b96c4260
SB
6953 ("libnotify" ,libnotify)))
6954 (synopsis "GNOME Bluetooth subsystem")
6955 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6956 (description
6957 "This package contains tools for managing and manipulating Bluetooth
6958devices using the GNOME desktop.")
6959 (license license:lgpl2.1+)))
b645146f
SB
6960
6961(define-public gnome-control-center
6962 (package
6963 (name "gnome-control-center")
a6938bac 6964 (version "3.32.2")
b645146f
SB
6965 (source (origin
6966 (method url-fetch)
6967 (uri (string-append "mirror://gnome/sources/" name "/"
6968 (version-major+minor version) "/"
6969 name "-" version ".tar.xz"))
6970 (sha256
6971 (base32
a6938bac 6972 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 6973 (build-system meson-build-system)
b645146f 6974 (arguments
59dac026
RW
6975 '(#:glib-or-gtk? #t
6976 #:configure-flags
64c70430
KK
6977 (list "-Dcheese=false"
6978 (string-append "-Dgnome_session_libexecdir="
6979 (assoc-ref %build-inputs "gnome-session")
6980 "/libexec"))
59dac026 6981 #:phases
b645146f
SB
6982 (modify-phases %standard-phases
6983 (add-before 'configure 'patch-paths
6984 (lambda* (#:key inputs #:allow-other-keys)
6985 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 6986 (tzdata (assoc-ref inputs "tzdata"))
341225ac 6987 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
6988 (nm-applet (assoc-ref inputs "network-manager-applet"))
6989 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
6990 (substitute* "panels/datetime/tz.h"
6991 (("/usr/share/zoneinfo/zone.tab")
6992 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 6993 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
6994 (("/usr/share/locale")
6995 (string-append libc "/share/locale")))
1df38cfc
LC
6996 (substitute* "panels/region/cc-region-panel.c"
6997 (("\"gkbd-keyboard-display")
6998 (string-append "\"" libgnomekbd
6999 "/bin/gkbd-keyboard-display")))
341225ac
LC
7000 (substitute* '("panels/network/net-device-wifi.c"
7001 "panels/network/net-device.c"
7002 "panels/network/connection-editor/net-connection-editor.c")
7003 (("\"nm-connection-editor")
7004 (string-append "\"" nm-applet
7005 "/bin/nm-connection-editor")))
1acd107c
FP
7006 (substitute* '("panels/user-accounts/run-passwd.c")
7007 (("/usr/bin/passwd")
7008 "/run/setuid-programs/passwd"))
64c70430
KK
7009 (substitute* "panels/info/cc-info-overview-panel.c"
7010 (("DATADIR \"/gnome/gnome-version.xml\"")
7011 (string-append "\"" gnome-desktop
7012 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
7013 #t))))))
7014 (native-inputs
7015 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 7016 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
7017 ("intltool" ,intltool)
7018 ("pkg-config" ,pkg-config)
a6938bac
KK
7019 ("xsltproc" ,libxslt)
7020 ;; For tests
7021 ("hicolor-icon-theme" ,hicolor-icon-theme)
7022 ("python-dbusmock" ,python-dbusmock)
7023 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7024 (inputs
7025 `(("accountsservice" ,accountsservice)
7026 ("clutter-gtk" ,clutter-gtk)
7027 ("colord-gtk" ,colord-gtk)
7028 ("cups" ,cups)
7029 ("dconf" ,dconf)
7030 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7031 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7032 ("gnome-bluetooth" ,gnome-bluetooth)
7033 ("gnome-desktop" ,gnome-desktop)
7034 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7035 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7036 ("gnome-session" ,gnome-session)
b645146f
SB
7037 ("gnome-settings-daemon" ,gnome-settings-daemon)
7038 ("grilo" ,grilo)
a6938bac 7039 ("gsound" ,gsound)
b645146f
SB
7040 ("ibus" ,ibus)
7041 ("libcanberra" ,libcanberra)
1df38cfc 7042 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7043 ("libgudev" ,libgudev)
7044 ("libgtop" ,libgtop)
7045 ("libpwquality" ,libpwquality)
982c0b36 7046 ("libsecret" ,libsecret)
b645146f
SB
7047 ("libsoup" ,libsoup)
7048 ("libxml2" ,libxml2)
7049 ("libwacom" ,libwacom)
7050 ("mesa" ,mesa)
7051 ("mit-krb5" ,mit-krb5)
7052 ("modem-manager" ,modem-manager)
7053 ("network-manager-applet" ,network-manager-applet)
7054 ("polkit" ,polkit)
7055 ("pulseaudio" ,pulseaudio)
7056 ("smbclient" ,samba)
7057 ("tzdata" ,tzdata)
982c0b36 7058 ("udisks" ,udisks)
b645146f
SB
7059 ("upower" ,upower)))
7060 (synopsis "Utilities to configure the GNOME desktop")
7061 (home-page "https://www.gnome.org/")
7062 (description
7063 "This package contains configuration applets for the GNOME desktop,
7064allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7065properties, sound setup, desktop theme and background, user interface
7066properties, screen resolution, and other GNOME parameters.")
7067 (license license:gpl2+)))
a4df5756
SB
7068
7069(define-public gnome-shell
7070 (package
7071 (name "gnome-shell")
d5e615ca 7072 (version "3.32.2")
a4df5756
SB
7073 (source (origin
7074 (method url-fetch)
7075 (uri (string-append "mirror://gnome/sources/" name "/"
7076 (version-major+minor version) "/"
7077 name "-" version ".tar.xz"))
7078 (sha256
7079 (base32
d5e615ca 7080 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
7081 (patches (search-patches "gnome-shell-theme.patch"))
7082 (modules '((guix build utils)))
7083 (snippet
7084 #~(begin
a76d0f03
LC
7085 ;; Copy images for use on the GDM log-in screen.
7086 (copy-file #$(file-append %artwork-repository
7087 "/slim/0.x/background.png")
7088 "data/theme/guix-background.png")
45fef894
LC
7089 (copy-file #$(file-append %artwork-repository
7090 "/logo/Guix-horizontal-white.svg")
7091 "data/theme/guix-logo.svg")
a76d0f03 7092 #t))))
2b0c755d 7093 (build-system meson-build-system)
a4df5756 7094 (arguments
08185081
MB
7095 `(#:glib-or-gtk? #t
7096 #:disallowed-references ((,glib "bin")
11e1df56
LC
7097 ,inkscape ,libxslt
7098 ,ruby-sass)
2b0c755d
RW
7099 #:configure-flags
7100 (list "-Dsystemd=false"
7101 ;; Otherwise, the RUNPATH will lack the final path component.
7102 (string-append "-Dc_link_args=-Wl,-rpath="
7103 (assoc-ref %outputs "out")
7104 "/lib/gnome-shell"))
11e1df56 7105
08185081 7106 #:modules ((guix build meson-build-system)
11e1df56
LC
7107 (guix build utils)
7108 (srfi srfi-1))
7109
2b0c755d 7110 #:phases
a4df5756 7111 (modify-phases %standard-phases
2b0c755d 7112 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7113 (lambda* (#:key outputs #:allow-other-keys)
7114 (let* ((out (assoc-ref outputs "out"))
7115 (keysdir (string-append
7116 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7117 (substitute* "meson.build"
7118 (("keysdir =.*")
7119 (string-append "keysdir = '" keysdir "'\n")))
7120 #t)))
ebfe259f
MB
7121 (add-before 'configure 'convert-logo-to-png
7122 (lambda* (#:key inputs #:allow-other-keys)
7123 ;; Convert the logo from SVG to PNG.
7124 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7125 "data/theme/guix-logo.svg")))
ba00235a 7126 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7127 (lambda* (#:key inputs #:allow-other-keys)
7128 (substitute* "js/misc/ibusManager.js"
7129 (("'ibus-daemon'")
7130 (string-append "'" (assoc-ref inputs "ibus")
7131 "/bin/ibus-daemon'")))
d6fda4d3
LC
7132 (substitute* "js/ui/status/keyboard.js"
7133 (("'gkbd-keyboard-display'")
7134 (string-append "'" (assoc-ref inputs "libgnomekbd")
7135 "/bin/gkbd-keyboard-display'")))
2472cdec 7136 #t))
2b0c755d
RW
7137 (add-before 'check 'pre-check
7138 (lambda* (#:key inputs #:allow-other-keys)
7139 ;; Tests require a running X server.
7140 (system "Xvfb :1 &")
7141 (setenv "DISPLAY" ":1")
7142 #t))
7143 (add-after 'install 'wrap-programs
7144 (lambda* (#:key inputs outputs #:allow-other-keys)
7145 (let ((out (assoc-ref outputs "out"))
7146 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7147 (python-path (getenv "PYTHONPATH")))
7148 (wrap-program (string-append out "/bin/gnome-shell")
7149 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7150 ;; FIXME: gnome-shell loads these libraries with unqualified
7151 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7152 ;; alternative might be to patch gnome-shell.
7153 `("LD_LIBRARY_PATH" ":" prefix
7154 ,(map (lambda (pkg)
7155 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7156 '("gdk-pixbuf"
7157 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7158 (for-each
7159 (lambda (prog)
7160 (wrap-program (string-append out "/bin/" prog)
7161 `("PYTHONPATH" ":" prefix (,python-path))
7162 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7163 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7164 #t)))
11e1df56
LC
7165 (replace 'glib-or-gtk-wrap
7166 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7167 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7168 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7169 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7170 ;; phase. Fix that since we don't need these.
7171 (wrap #:inputs (fold alist-delete inputs
7172 '("inkscape" "intltool" "glib:bin"))
7173 #:outputs outputs)))))))
a4df5756
SB
7174 (native-inputs
7175 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7176 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7177 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7178 ("inkscape" ,inkscape)
a4df5756
SB
7179 ("intltool" ,intltool)
7180 ("pkg-config" ,pkg-config)
7181 ("python" ,python)
2b0c755d
RW
7182 ("ruby-sass" ,ruby-sass)
7183 ("sassc" ,sassc)
a76d0f03 7184 ("xsltproc" ,libxslt)
2b0c755d 7185 ;; For tests
0b4504f6 7186 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7187 (inputs
7188 `(("accountsservice" ,accountsservice)
7189 ("caribou" ,caribou)
7190 ("docbook-xsl" ,docbook-xsl)
7191 ("evolution-data-server" ,evolution-data-server)
7192 ("gcr" ,gcr)
7193 ("gdm" ,gdm)
c5db31d4 7194 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
7195 ("gjs" ,gjs)
7196 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7197 ("gnome-desktop" ,gnome-desktop)
7198 ("gnome-settings-daemon" ,gnome-settings-daemon)
7199 ("gst-plugins-base" ,gst-plugins-base)
7200 ("ibus" ,ibus)
7201 ("libcanberra" ,libcanberra)
7202 ("libcroco" ,libcroco)
d6fda4d3 7203 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7204 ("libgweather" ,libgweather)
7205 ("libsoup" ,libsoup)
7206 ("mesa-headers" ,mesa-headers)
7207 ("mutter" ,mutter)
7208 ("network-manager-applet" ,network-manager-applet)
7209 ("polkit" ,polkit)
7210 ("pulseaudio" ,pulseaudio)
7211 ("python-pygobject" ,python-pygobject)
7212 ("startup-notification" ,startup-notification)
7213 ("telepathy-logger" ,telepathy-logger)
7214 ("upower" ,upower)
30e760f0
MB
7215 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7216 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7217 ("librsvg" ,librsvg)
2b0c755d 7218 ("geoclue" ,geoclue)))
a4df5756
SB
7219 (synopsis "Desktop shell for GNOME")
7220 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7221 (description
7222 "GNOME Shell provides core user interface functions for the GNOME desktop,
7223like switching to windows and launching applications.")
7224 (license license:gpl2+)))
c3f29bc9
RS
7225
7226(define-public gtk-vnc
7227 (package
7228 (name "gtk-vnc")
965ff023 7229 (version "0.9.0")
c3f29bc9
RS
7230 (source
7231 (origin
7232 (method url-fetch)
7233 (uri (string-append "mirror://gnome/sources/" name "/"
7234 (version-major+minor version) "/"
7235 name "-" version ".tar.xz"))
7236 (sha256
7237 (base32
965ff023 7238 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7239 (build-system gnu-build-system)
7240 (arguments
7241 '(#:configure-flags '("--with-gtk=3.0")))
7242 (propagated-inputs
7243 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7244 (inputs
7245 `(("cyrus-sasl" ,cyrus-sasl)
7246 ("gnutls" ,gnutls)
7247 ("libgcrypt" ,libgcrypt)
7248 ("pulseaudio" ,pulseaudio)))
7249 (native-inputs
7250 `(("glib:bin" ,glib "bin")
7251 ("gobject-introspection" ,gobject-introspection)
7252 ("intltool" ,intltool)
7253 ("pkg-config" ,pkg-config)
2f17e939 7254 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7255 ("vala" ,vala)))
7256 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7257 (synopsis "VNC viewer widget for GTK+")
7258 (description
7259 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7260applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7261GTK-VNC implements client side RFB protocol and authentication extensions such
7262as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7263 (license license:lgpl2.1+)))
8b877545 7264
dc69fe18
MW
7265(define-public gnome-autoar
7266 (package
7267 (name "gnome-autoar")
c7da8510 7268 (version "0.2.3")
dc69fe18
MW
7269 (source (origin
7270 (method url-fetch)
7271 (uri (string-append "mirror://gnome/sources/" name "/"
7272 (version-major+minor version) "/"
7273 name "-" version ".tar.xz"))
7274 (sha256
7275 (base32
c7da8510 7276 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
7277 (build-system glib-or-gtk-build-system)
7278 (native-inputs
7279 `(("gnome-common" ,gnome-common)
7280 ("gobject-introspection" ,gobject-introspection)
7281 ("pkg-config" ,pkg-config)))
7282 (propagated-inputs
7283 `(("libarchive" ,libarchive))) ; XXX document why
7284 (inputs
0a6e9e13 7285 `(("gtk+" ,gtk+)))
dc69fe18
MW
7286 (synopsis "Archives integration support for GNOME")
7287 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7288 (description
7289 "GNOME Autoar is a library which makes creating and extracting archives
7290easy, safe, and automatic.")
7291 (license license:lgpl2.1+)))
7292
b64e217f
MW
7293(define-public tracker
7294 (package
7295 (name "tracker")
caaefa40 7296 (version "2.3.4")
b64e217f
MW
7297 (source (origin
7298 (method url-fetch)
b5b0fd23 7299 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7300 (version-major+minor version) "/"
b5b0fd23 7301 "tracker-" version ".tar.xz"))
b64e217f
MW
7302 (sha256
7303 (base32
caaefa40 7304 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7305 (build-system meson-build-system)
c8bdf589 7306 (arguments
5ada561c
KK
7307 `(#:glib-or-gtk? #t
7308 #:configure-flags
7309 ;; Otherwise, the RUNPATH will lack the final path component.
7310 (list (string-append "-Dc_link_args=-Wl,-rpath="
7311 (assoc-ref %outputs "out") "/lib:"
7312 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7313 #:phases
c8bdf589 7314 (modify-phases %standard-phases
c8bdf589
RW
7315 (add-before 'check 'pre-check
7316 (lambda _
63db190a
PN
7317 ;; Some tests expect to write to $HOME.
7318 (setenv "HOME" "/tmp")
c8bdf589 7319 #t)))))
b64e217f 7320 (native-inputs
5ada561c 7321 `(("glib:bin" ,glib "bin")
b64e217f 7322 ("gobject-introspection" ,gobject-introspection)
5ada561c 7323 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7324 ("intltool" ,intltool)
7325 ("pkg-config" ,pkg-config)
7326 ("vala" ,vala)))
7327 (inputs
63db190a 7328 `(("dbus" ,dbus)
44ed6284 7329 ("sqlite" ,sqlite)
b64e217f 7330 ("libxml2" ,libxml2)
63db190a 7331 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7332 ("json-glib" ,json-glib)
63db190a 7333 ("libsoup" ,libsoup)))
b64e217f
MW
7334 (synopsis "Metadata database, indexer and search tool")
7335 (home-page "https://wiki.gnome.org/Projects/Tracker")
7336 (description
63db190a
PN
7337 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7338
7339It is a middleware component aimed at desktop application developers who want
7340their apps to browse and search user content. It's not designed to be used
7341directly by desktop users, but it provides a commandline tool named
7342@command{tracker} for the adventurous.
7343
7344Tracker allows your application to instantly perform full-text searches across
7345all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7346example. This is achieved by indexing the user's home directory in the
7347background.
7348
7349Tracker also allows your application to query and list content that the user
7350has stored. For example, GNOME Music displays all the music files that are
7351found by Tracker. This means that GNOME Music doesn't need to maintain a
7352database of its own.
7353
7354If you need to go beyond simple searches, Tracker is also a linked data
7355endpoint and it understands SPARQL. ")
7356 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7357 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7358 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7359 (license (list license:gpl2+
63db190a
PN
7360 license:bsd-3
7361 license:lgpl2.1+))))
b64e217f 7362
03be9874
KK
7363(define-public tracker-miners
7364 (package
7365 (name "tracker-miners")
de60ac2f 7366 (version "2.3.3")
03be9874
KK
7367 (source (origin
7368 (method url-fetch)
7369 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7370 (version-major+minor version)
7371 "/tracker-miners-" version ".tar.xz"))
7372 (sha256
7373 (base32
de60ac2f 7374 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7375 (build-system meson-build-system)
7376 (arguments
7377 `(#:glib-or-gtk? #t
7378 #:configure-flags
7379 (list "-Dminer_rss=false" ; libgrss is required.
7380 ;; Ensure the RUNPATH contains all installed library locations.
7381 (string-append "-Dc_link_args=-Wl,-rpath="
7382 (assoc-ref %outputs "out")
7383 "/lib/tracker-miners-2.0")
7384 ;; TODO: Enable functional tests. Currently, the following error
7385 ;; appears:
7386 ;; Exception: The functional tests require DConf to be the default
7387 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7388 "-Dfunctional_tests=false")))
7389 (native-inputs
7390 `(("dbus" ,dbus)
7391 ("intltool" ,intltool)
7392 ("glib:bin" ,glib "bin")
7393 ("gobject-introspection" ,gobject-introspection)
7394 ("pkg-config" ,pkg-config)
7395 ("python-pygobject" ,python-pygobject)))
7396 (inputs
7397 `(("exempi" ,exempi)
7398 ("ffmpeg" ,ffmpeg)
7399 ("flac" ,flac)
7400 ("giflib" ,giflib)
7401 ("glib" ,glib)
7402 ("gstreamer" ,gstreamer)
7403 ("icu4c" ,icu4c)
7404 ("libcue" ,libcue)
7405 ("libexif" ,libexif)
7406 ("libgsf" ,libgsf)
7407 ("libgxps" ,libgxps)
7408 ("libiptcdata" ,libiptcdata)
7409 ("libjpeg" ,libjpeg)
7410 ("libosinfo" ,libosinfo)
7411 ("libpng" ,libpng)
7412 ("libseccomp" ,libseccomp)
7413 ("libtiff" ,libtiff)
7414 ("libvorbis" ,libvorbis)
7415 ("libxml2" ,libxml2)
7416 ("poppler" ,poppler)
7417 ("taglib" ,taglib)
7418 ("totem-pl-parser" ,totem-pl-parser)
7419 ("tracker" ,tracker)
7420 ("upower" ,upower)
7421 ("zlib" ,zlib)))
7422 (synopsis "Metadata database, indexer and search tool")
7423 (home-page "https://wiki.gnome.org/Projects/Tracker")
7424 (description
7425 "Tracker is an advanced framework for first class objects with associated
7426metadata and tags. It provides a one stop solution for all metadata, tags,
7427shared object databases, search tools and indexing.")
7428 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7429 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7430 (license (list license:gpl2+
7431 license:lgpl2.1+
7432 license:lgpl2.0+))))
7433
8b877545
RS
7434(define-public nautilus
7435 (package
7436 (name "nautilus")
d682c599 7437 (version "3.32.3")
8b877545
RS
7438 (source (origin
7439 (method url-fetch)
7440 (uri (string-append "mirror://gnome/sources/" name "/"
7441 (version-major+minor version) "/"
7442 name "-" version ".tar.xz"))
7443 (sha256
7444 (base32
d682c599 7445 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7446 (build-system meson-build-system)
8b877545 7447 (arguments
35e2d0cf 7448 '(#:glib-or-gtk? #t
8b877545
RS
7449 ;; XXX: FAIL: check-nautilus
7450 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7451 #:tests? #f))
7452 (native-inputs
35e2d0cf
R
7453 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7454 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7455 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7456 ("gobject-introspection" ,gobject-introspection)
7457 ("intltool" ,intltool)
7458 ("pkg-config" ,pkg-config)))
8b877545 7459 (inputs
8b877545 7460 `(("dconf" ,dconf)
caf6c363 7461 ("gexiv2" ,gexiv2)
dd05e731 7462 ("gvfs" ,gvfs)
8b877545
RS
7463 ("exempi" ,exempi)
7464 ("gnome-desktop" ,gnome-desktop)
09d88905 7465 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7466 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7467 ("libseccomp" ,libseccomp)
35e2d0cf 7468 ("libselinux" ,libselinux)
09d88905 7469 ("tracker" ,tracker)
3cafb9d4 7470 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7471 ;; XXX: gtk+ is required by libnautilus-extension.pc
7472 ;;
7473 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7474 ;; package. See:
7475 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7476 ("gtk+" ,gtk+)
8b877545
RS
7477 ("libexif" ,libexif)
7478 ("libxml2" ,libxml2)))
7479 (synopsis "File manager for GNOME")
7480 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7481 (description
7482 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7483design and behaviour, giving the user a simple way to navigate and manage its
7484files.")
7485 (license license:gpl2+)))
3c697ffd
JR
7486
7487(define-public baobab
7488 (package
7489 (name "baobab")
e0c5f20c 7490 (version "3.32.0")
3c697ffd
JR
7491 (source (origin
7492 (method url-fetch)
7493 (uri (string-append
7494 "mirror://gnome/sources/" name "/"
7495 (version-major+minor version) "/"
7496 name "-" version ".tar.xz"))
7497 (sha256
7498 (base32
e0c5f20c 7499 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7500 (build-system meson-build-system)
7501 (arguments
7502 '(#:glib-or-gtk? #t))
3c697ffd
JR
7503 (native-inputs
7504 `(("intltool" ,intltool)
7505 ("pkg-config" ,pkg-config)
d233d373
RJ
7506 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7507 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7508 ("itstool" ,itstool)
7509 ("xmllint" ,libxml2)
7510 ("glib" ,glib "bin")
7511 ("vala" ,vala)))
7512 (inputs
7513 `(("gtk+" ,gtk+)))
7514 (synopsis "Disk usage analyzer for GNOME")
7515 (description
7516 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7517usage in the GNOME desktop environment. It can easily scan device volumes or
7518a specific user-requested directory branch (local or remote). Once the scan
7519is complete it provides a graphical representation of each selected folder.")
7520 (home-page "https://wiki.gnome.org/Apps/Baobab")
7521 (license license:gpl2+)))
dc050251 7522
fdba447c
RS
7523(define-public gnome-backgrounds
7524 (package
7525 (name "gnome-backgrounds")
e04e8a8c 7526 (version "3.32.0")
fdba447c
RS
7527 (source
7528 (origin
7529 (method url-fetch)
7530 (uri (string-append "mirror://gnome/sources/" name "/"
7531 (version-major+minor version) "/"
7532 name "-" version ".tar.xz"))
7533 (sha256
7534 (base32
e04e8a8c 7535 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7536 (build-system meson-build-system)
fdba447c
RS
7537 (native-inputs
7538 `(("intltool" ,intltool)))
e04e8a8c 7539 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7540 (synopsis "Background images for the GNOME desktop")
7541 (description
7542 "GNOME backgrounds package contains a collection of graphics files which
7543can be used as backgrounds in the GNOME Desktop environment. Additionally,
7544the package creates the proper framework and directory structure so that you
7545can add your own files to the collection.")
7546 (license (list license:gpl2+
7547 license:cc-by2.0
7548 license:cc-by-sa2.0
7549 license:cc-by-sa3.0))))
7550
b784b1a9
RS
7551(define-public gnome-screenshot
7552 (package
7553 (name "gnome-screenshot")
6acf4033 7554 (version "3.32.0")
b784b1a9
RS
7555 (source
7556 (origin
7557 (method url-fetch)
7558 (uri (string-append "mirror://gnome/sources/" name "/"
7559 (version-major+minor version) "/"
7560 name "-" version ".tar.xz"))
7561 (sha256
7562 (base32
6acf4033 7563 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7564 (build-system meson-build-system)
b784b1a9
RS
7565 (native-inputs
7566 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7567 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7568 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7569 ("intltool" ,intltool)
8356aefa 7570 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7571 ("pkg-config" ,pkg-config)))
7572 (inputs
7573 `(("gtk+" ,gtk+)
7574 ("libcanberra" ,libcanberra)
7575 ("libx11" ,libx11)
7576 ("libxext" ,libxext)))
676e7cb4 7577 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7578 (synopsis "Take pictures of your screen")
7579 (description
7580 "GNOME Screenshot is a utility used for taking screenshots of the entire
7581screen, a window or a user defined area of the screen, with optional
7582beautifying border effects.")
7583 (license license:gpl2+)))
7584
66d59111
RS
7585(define-public dconf-editor
7586 (package
7587 (name "dconf-editor")
66261451 7588 (version "3.32.0")
66d59111
RS
7589 (source
7590 (origin
7591 (method url-fetch)
7592 (uri (string-append "mirror://gnome/sources/" name "/"
7593 (version-major+minor version) "/"
7594 name "-" version ".tar.xz"))
7595 (sha256
7596 (base32
66261451 7597 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7598 (build-system meson-build-system)
86f2124b
LC
7599 (arguments
7600 '(#:phases (modify-phases %standard-phases
7601 (add-before 'configure 'set-glib-minimum-version
7602 (lambda _
7603 ;; Change the minimum required GLib version so that
7604 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7605 ;; do that, it complains that "55" is not an even
7606 ;; number. See <https://bugs.gnu.org/37503>.
7607 (substitute* "editor/meson.build"
7608 (("2\\.55\\.1") "2.60.0"))
7609 #t)))))
66d59111
RS
7610 (native-inputs
7611 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7612 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7613 ("intltool" ,intltool)
294ff39d
RW
7614 ("pkg-config" ,pkg-config)
7615 ("vala" ,vala)))
66d59111
RS
7616 (inputs
7617 `(("dconf" ,dconf)
7618 ("gtk+" ,gtk+)
7619 ("libxml2" ,libxml2)))
7620 (home-page "https://git.gnome.org/browse/dconf-editor")
7621 (synopsis "Graphical editor for GNOME's dconf configuration system")
7622 (description
7623 "Dconf-editor is a graphical tool for browsing and editing the dconf
7624configuration system for GNOME. It allows users to configure desktop
7625software that do not provide their own configuration interface.")
7626 (license license:lgpl2.1+)))
7627
96d36f38
AW
7628(define-public gnome-default-applications
7629 (package
7630 (name "gnome-default-applications")
7631 (version "0")
7632 (build-system trivial-build-system)
7633 (source #f)
7634 (propagated-inputs
8ad4f0aa
LC
7635 `(("nautilus" ,nautilus)
7636 ("evince" ,evince)))
96d36f38
AW
7637 (arguments
7638 `(#:modules ((guix build utils))
7639 #:builder
7640 (begin
7641 (use-modules (guix build utils))
7642 (let* ((out (assoc-ref %outputs "out"))
7643 (apps (string-append out "/share/applications")))
7644 (mkdir-p apps)
7645 (call-with-output-file (string-append apps "/defaults.list")
7646 (lambda (port)
7647 (format port "[Default Applications]\n")
8ad4f0aa
LC
7648 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7649 (format port "application/pdf=evince.desktop\n")
7650 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7651 #t))))
7652 (synopsis "Default MIME type associations for the GNOME desktop")
7653 (description
7654 "Given many installed packages which might handle a given MIME type, a
7655user running the GNOME desktop probably has some preferences: for example,
7656that folders be opened by default by the Nautilus file manager, not the Baobab
7657disk usage analyzer. This package establishes that set of default MIME type
7658associations for GNOME.")
7659 (license license:gpl3+)
7660 (home-page #f)))
7661
3f1ed953
RG
7662(define-public libgovirt
7663 (package
7664 (name "libgovirt")
7665 (version "0.3.6")
7666 (source (origin
7667 (method url-fetch)
7668 (uri (string-append "mirror://gnome/sources/" name "/"
7669 (version-major+minor version) "/"
7670 name "-" version ".tar.xz"))
7671 (sha256
7672 (base32
7673 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7674 (build-system glib-or-gtk-build-system)
7675 (native-inputs
7676 `(("gettext" ,gettext-minimal)
7677 ("glib:bin" ,glib "bin")
7678 ("gobject-introspection" ,gobject-introspection)
7679 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7680 ("gtk+:bin" ,gtk+ "bin")
7681 ("pkg-config" ,pkg-config)))
7682 (inputs
7683 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7684 ("librest" ,rest)))
7685 (synopsis "GoVirt Library")
7686 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7687 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7688 (license license:gpl2+)))
7689
8672e5e9
RG
7690(define-public gnome-weather
7691 (package
7692 (name "gnome-weather")
7693 (version "3.34.0")
7694 (source (origin
7695 (method url-fetch)
7696 (uri (string-append "mirror://gnome/sources/" name "/"
7697 (version-major+minor version) "/"
7698 name "-" version ".tar.xz"))
7699 (sha256
7700 (base32
7701 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7702 (build-system meson-build-system)
7703 (native-inputs
7704 `(("gettext" ,gettext-minimal)
7705 ("glib:bin" ,glib "bin")
7706 ("gobject-introspection" ,gobject-introspection)
7707 ("gtk+:bin" ,gtk+ "bin")
7708 ("pkg-config" ,pkg-config)))
7709 (inputs
7710 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7711 ("appstream-glib" ,appstream-glib)
7712 ("geoclue" ,geoclue)
7713 ("gdk-pixbuf" ,gdk-pixbuf)
7714 ("gjs" ,gjs)
7715 ("gnome-desktop" ,gnome-desktop)
7716 ("libgweather" ,libgweather)))
7717 (synopsis "Weather monitoring for GNOME desktop")
7718 (description "GNOME Weather is a small application that allows you to
7719monitor the current weather conditions for your city, or anywhere in the
7720world.")
7721 (home-page "https://wiki.gnome.org/Apps/Weather")
7722 (license license:gpl2+)))
7723
dc050251
SB
7724(define-public gnome
7725 (package
7726 (name "gnome")
7727 (version (package-version gnome-shell))
7728 (source #f)
7729 (build-system trivial-build-system)
e3cfef22 7730 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7731 (propagated-inputs
8d8c6bff 7732 ;; TODO: Add or remove packages according to:
a8cda7f5 7733 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7734 `(
8d8c6bff 7735 ;; GNOME-Core-OS-Services
7922b6f7 7736 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7737 ("network-manager" ,network-manager)
7738 ("packagekit" ,packagekit)
7739 ("upower" ,upower)
7740 ;; GNOME-Core-Shell
7741 ("adwaita-icon-theme" ,adwaita-icon-theme)
7742 ("gdm" ,gdm)
7743 ("glib-networking" ,glib-networking)
7744 ("gnome-backgrounds" ,gnome-backgrounds)
7745 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7746 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7747 ("gnome-control-center" ,gnome-control-center)
7748 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7749 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
24882d3d 7750 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7751 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7752 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7753 ("gnome-session" ,gnome-session)
7754 ("gnome-settings-daemon" ,gnome-settings-daemon)
7755 ("gnome-shell-extensions" ,gnome-shell-extensions)
7756 ("gnome-shell" ,gnome-shell)
7757 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7758 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7759 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7760 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7761 ("gvfs" ,gvfs)
7762 ("mutter" ,mutter)
7763 ("orca" ,orca)
d36fa50f
RG
7764 ("rygel" ,rygel)
7765 ("sushi" ,sushi)
8d8c6bff
RG
7766 ;; GNOME-Core-Utilities
7767 ("baobab" ,baobab)
7768 ("cheese" ,cheese)
7769 ("eog" ,eog)
7770 ("epiphany" ,epiphany)
7771 ("evince" ,evince)
7772 ("file-roller" ,file-roller)
7773 ("gedit" ,gedit)
d36fa50f 7774 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7775 ("gnome-calculator" ,gnome-calculator)
7776 ("gnome-calendar" ,gnome-calendar)
7777 ("gnome-characters" ,gnome-characters)
7778 ("gnome-clocks" ,gnome-clocks)
7779 ("gnome-contacts" ,gnome-contacts)
7780 ("gnome-disk-utility" ,gnome-disk-utility)
7781 ("gnome-font-viewer" ,gnome-font-viewer)
7782 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7783 ; TODO: ("gnome-music" ,gnome-music)
7784 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7785 ("gnome-screenshot" ,gnome-screenshot)
7786 ("gnome-system-monitor" ,gnome-system-monitor)
7787 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7788 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7789 ("nautilus" ,nautilus)
7790 ("simple-scan" ,simple-scan)
7791 ("totem" ,totem)
7922b6f7
RG
7792 ("yelp" ,yelp)
7793 ;; Others
7794 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
7795 ("gnome-online-accounts" ,gnome-online-accounts)
7796
7797 ;; Packages not part of GNOME proper but that are needed for a good
7798 ;; experience. See <https://bugs.gnu.org/39646>.
7799 ;; XXX: Find out exactly which ones are needed and why.
7800 ("font-cantarell" ,font-cantarell)
7801 ("font-dejavu" ,font-dejavu)
7802 ("at-spi2-core" ,at-spi2-core)
7803 ("dbus" ,dbus)
7804 ("dconf" ,dconf)
7805 ("desktop-file-utils" ,desktop-file-utils)
7806 ("gnome-default-applications" ,gnome-default-applications)
7807 ("gnome-themes-standard" ,gnome-themes-standard)
7808 ("gst-plugins-base" ,gst-plugins-base)
7809 ("gst-plugins-good" ,gst-plugins-good)
7810 ("gucharmap" ,gucharmap)
7811 ("pinentry-gnome3" ,pinentry-gnome3)
7812 ("pulseaudio" ,pulseaudio)
7813 ("shared-mime-info" ,shared-mime-info)
7814 ("system-config-printer" ,system-config-printer)
7815 ("xdg-user-dirs" ,xdg-user-dirs)
7816 ("yelp" ,yelp)
7817 ("zenity" ,zenity)))
fe4e698d 7818 (synopsis "The GNU desktop environment")
dc050251
SB
7819 (home-page "https://www.gnome.org/")
7820 (description
fe4e698d
LC
7821 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7822applications for browsing the web, editing text and images, creating
7823documents and diagrams, playing media, scanning, and much more.")
dc050251 7824 (license license:gpl2+)))
4a526711
DT
7825
7826(define-public byzanz
7827 ;; The last stable release of Byzanz was in 2011, but there have been many
7828 ;; useful commits made to the Byzanz repository since then that it would be
7829 ;; silly to use such an old release.
7830 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7831 (package
7832 (name "byzanz")
7833 (version (string-append "0.2-1." (string-take commit 7)))
7834 (source (origin
7835 (method git-fetch)
7836 (uri (git-reference
5f13bf09 7837 (url "https://git.gnome.org/browse/byzanz")
4a526711 7838 (commit commit)))
5a6527e4 7839 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7840 (sha256
7841 (base32
7842 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7843 (build-system glib-or-gtk-build-system)
7844 (arguments
7845 '(#:phases
7846 (modify-phases %standard-phases
189be331 7847 (replace 'bootstrap
4a526711
DT
7848 (lambda _
7849 ;; The build system cleverly detects that we're not building from
7850 ;; a release tarball and turns on -Werror for GCC.
7851 ;; Unsurprisingly, there is a warning during compilation that
7852 ;; causes the build to fail unnecessarily, so we remove the flag.
7853 (substitute* '("configure.ac")
7854 (("-Werror") ""))
7855 ;; The autogen.sh script in gnome-common will run ./configure
7856 ;; by default, which is problematic because source shebangs
7857 ;; have not yet been patched.
7858 (setenv "NOCONFIGURE" "t")
7859 (zero? (system* "sh" "autogen.sh")))))))
7860 (native-inputs
7861 `(("autoconf" ,autoconf)
7862 ("automake" ,automake)
7863 ("gnome-common" ,gnome-common)
7864 ("intltool" ,intltool)
7865 ("libtool" ,libtool)
7866 ("pkg-config" ,pkg-config)
7867 ("which" ,which)))
7868 (inputs
7869 `(("glib" ,glib)
7870 ("gstreamer" ,gstreamer)
7871 ("gst-plugins-base" ,gst-plugins-base)
7872 ("gtk+" ,gtk+)))
7873 (synopsis "Desktop recording program")
7874 (description "Byzanz is a simple desktop recording program with a
7875command-line interface. It can record part or all of an X display for a
7876specified duration and save it as a GIF encoded animated image file.")
7877 (home-page "https://git.gnome.org/browse/byzanz")
7878 (license license:gpl2+))))
3a9a4c51 7879
0ec171ec
MS
7880(define-public gsound
7881 (package
7882 (name "gsound")
7883 (version "1.0.2")
7884 (source (origin
7885 (method url-fetch)
7886 (uri (string-append "mirror://gnome/sources/" name "/"
7887 (version-major+minor version) "/"
7888 name "-" version ".tar.xz"))
7889 (sha256
7890 (base32
7891 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7892 (build-system glib-or-gtk-build-system)
7893 (native-inputs
7894 `(("pkg-config" ,pkg-config)
7895 ("gobject-introspection" ,gobject-introspection)
7896 ("vala" ,vala)))
7897 (inputs
7898 `(("glib" ,glib)
7899 ("libcanberra" ,libcanberra)))
7900 (home-page "https://wiki.gnome.org/Projects/GSound")
7901 (synopsis "GObject wrapper for libcanberra")
7902 (description
7903 "GSound is a small library for playing system sounds. It's designed to be
7904used via GObject Introspection, and is a thin wrapper around the libcanberra C
7905library.")
7906 (license license:lgpl2.1+)))
7907
3a9a4c51
RS
7908(define-public libzapojit
7909 (package
7910 (name "libzapojit")
7911 (version "0.0.3")
7912 (source (origin
7913 (method url-fetch)
7914 (uri (string-append "mirror://gnome/sources/" name "/"
7915 (version-major+minor version) "/"
7916 name "-" version ".tar.xz"))
7917 (sha256
7918 (base32
7919 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7920 (build-system gnu-build-system)
7921 (native-inputs
7922 `(("gobject-introspection" ,gobject-introspection)
7923 ("intltool" ,intltool)
7924 ("pkg-config" ,pkg-config)))
7925 (inputs
14c297fd 7926 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
7927 ("json-glib" ,json-glib)
7928 ("rest" ,rest)))
7929 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7930 (synopsis "Library for accessing SkyDrive and Hotmail")
7931 (description
7932 "Libzapojit is a GLib-based library for accessing online service APIs of
7933Microsoft SkyDrive and Hotmail, using their REST protocols.")
7934 (license license:lgpl2.1+)))
9365ee1c 7935
60e2a9ae
MS
7936(define-public gnome-clocks
7937 (package
7938 (name "gnome-clocks")
c76d0dbc 7939 (version "3.32.0")
60e2a9ae
MS
7940 (source (origin
7941 (method url-fetch)
7942 (uri (string-append "mirror://gnome/sources/" name "/"
7943 (version-major+minor version) "/"
7944 name "-" version ".tar.xz"))
7945 (sha256
7946 (base32
c76d0dbc 7947 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
7948 (build-system meson-build-system)
7949 (arguments
7950 '(#:glib-or-gtk? #t))
7951 (native-inputs
7952 `(("vala" ,vala)
7953 ("pkg-config" ,pkg-config)
7954 ("glib" ,glib "bin") ; for glib-compile-resources
7955 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7956 ("desktop-file-utils" ,desktop-file-utils)
7957 ("gettext" ,gettext-minimal)
7958 ("itstool" ,itstool)))
7959 (inputs
7960 `(("glib" ,glib)
7961 ("gtk+" ,gtk+)
7962 ("gsound" ,gsound)
7963 ("geoclue" ,geoclue)
7964 ("geocode-glib" ,geocode-glib)
7965 ("libgweather" ,libgweather)
7966 ("gnome-desktop" ,gnome-desktop)))
7967 (home-page "https://wiki.gnome.org/Apps/Clocks")
7968 (synopsis "GNOME's clock application")
7969 (description
7970 "GNOME Clocks is a simple clocks application designed to fit the GNOME
7971desktop. It supports world clock, stop watch, alarms, and count down timer.")
7972 (license license:gpl3+)))
7973
3c474897
KY
7974(define-public gnome-calendar
7975 (package
7976 (name "gnome-calendar")
339b59bf 7977 (version "3.32.2")
3c474897
KY
7978 (source (origin
7979 (method url-fetch)
7980 (uri (string-append "mirror://gnome/sources/" name "/"
7981 (version-major+minor version) "/"
7982 name "-" version ".tar.xz"))
7983 (sha256
7984 (base32
339b59bf 7985 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
7986 (build-system meson-build-system)
7987 (arguments
7988 '(#:glib-or-gtk? #t
7989 ;; gnome-calendar has to be installed before the tests can be run
7990 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
7991 #:tests? #f))
3c474897 7992 (native-inputs
a49d3e37
MS
7993 `(("gettext" ,gettext-minimal)
7994 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
7995 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
7996 ("pkg-config" ,pkg-config)))
7997 (inputs
a49d3e37 7998 `(("evolution-data-server" ,evolution-data-server)
14c297fd 7999 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8000 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8001 ("libdazzle" ,libdazzle)
b63c06f1 8002 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8003 ("libgweather" ,libgweather)
8004 ("geoclue" ,geoclue)))
3c474897
KY
8005 (home-page "https://wiki.gnome.org/Apps/Calendar")
8006 (synopsis "GNOME's calendar application")
8007 (description
8008 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8009desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8010 (license license:gpl3+)))
8011
57b14665
MS
8012(define-public gnome-todo
8013 (package
8014 (name "gnome-todo")
9f3c6c88 8015 (version "3.28.1")
57b14665
MS
8016 (source (origin
8017 (method url-fetch)
8018 (uri (string-append "mirror://gnome/sources/" name "/"
8019 (version-major+minor version) "/"
8020 name "-" version ".tar.xz"))
8021 (sha256
8022 (base32
9f3c6c88 8023 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
8024 (build-system meson-build-system)
8025 (arguments
8026 '(#:glib-or-gtk? #t
8027 #:phases (modify-phases %standard-phases
8028 (add-after
8029 'install 'wrap-gnome-todo
8030 (lambda* (#:key inputs outputs #:allow-other-keys)
8031 (let ((out (assoc-ref outputs "out"))
8032 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8033 (python-path (getenv "PYTHONPATH")))
8034 (wrap-program (string-append out "/bin/gnome-todo")
8035 ;; XXX: gi plugins are broken.
8036 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8037 ;; For plugins.
8038 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8039 `("PYTHONPATH" ":" prefix (,python-path))))
8040 #t)))))
8041 (native-inputs
8042 `(("gettext" ,gettext-minimal)
8043 ("gobject-introspection" ,gobject-introspection)
8044 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8045 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8046 ("pkg-config" ,pkg-config)))
8047 (inputs
8048 `(("rest" ,rest) ; For Todoist plugin
8049 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8050 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8051 ("libical" ,libical)
8052 ("libpeas" ,libpeas)
8053 ("python-pygobject" ,python-pygobject)
8054 ("evolution-data-server" ,evolution-data-server)
14c297fd 8055 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8056 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8057 (home-page "https://wiki.gnome.org/Apps/Todo")
8058 (synopsis "GNOME's ToDo Application")
8059 (description
8060 "GNOME To Do is a simplistic personal task manager designed to perfectly
8061fit the GNOME desktop.")
8062 (license license:gpl3+)))
8063
ab179eaf
SB
8064(define-public gnome-dictionary
8065 (package
8066 (name "gnome-dictionary")
cf81ddef 8067 (version "3.26.1")
ab179eaf
SB
8068 (source (origin
8069 (method url-fetch)
8070 (uri (string-append "mirror://gnome/sources/" name "/"
8071 (version-major+minor version) "/"
8072 name "-" version ".tar.xz"))
8073 (sha256
8074 (base32
cf81ddef
LC
8075 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8076 (build-system meson-build-system)
2776b5d5
MB
8077 (arguments '(#:glib-or-gtk? #t
8078 #:phases (modify-phases %standard-phases
8079 (add-after 'unpack 'patch-install-script
8080 (lambda _
8081 ;; This script attempts to compile glib schemas
8082 ;; and create an empty MIME database. We do
8083 ;; that elsewhere, so prevent it from running.
8084 (substitute* "build-aux/post-install.sh"
8085 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8086 #t)))))
ab179eaf
SB
8087 (native-inputs
8088 `(("glib:bin" ,glib "bin")
8089 ("gobject-introspection" ,gobject-introspection)
8090 ("intltool" ,intltool)
8091 ("itstool" ,itstool)
8092 ("pkg-config" ,pkg-config)
8093 ("xmllint" ,libxml2)))
8094 (inputs
8095 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8096 ("gtk+" ,gtk+)))
8097 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8098 (synopsis "Look up words in dictionary sources")
8099 (description
8100 "GNOME Dictionary can look for the definition or translation of a word in
8101existing databases over the internet.")
8102 (license license:gpl3+)))
8103
d13f3a03 8104(define-public gnome-tweaks
9365ee1c 8105 (package
d13f3a03 8106 (name "gnome-tweaks")
652af676 8107 (version "3.32.0")
9365ee1c
JN
8108 (source (origin
8109 (method url-fetch)
d13f3a03 8110 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8111 (version-major+minor version) "/"
d13f3a03
RW
8112 "gnome-tweaks-" version ".tar.xz"))
8113 (patches
8114 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8115 (sha256
8116 (base32
652af676 8117 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 8118 (build-system meson-build-system)
9365ee1c 8119 (arguments
d13f3a03
RW
8120 `(#:glib-or-gtk? #t
8121 #:configure-flags '("-Dlocalstatedir=/tmp"
8122 "-Dsysconfdir=/tmp")
9365ee1c 8123 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8124 ,@%meson-build-system-modules)
8125 #:phases
8126 (modify-phases %standard-phases
8127 (add-after 'install 'wrap
8128 (@@ (guix build python-build-system) wrap))
8129 (add-after 'wrap 'wrap-gi-typelib
8130 (lambda* (#:key inputs outputs #:allow-other-keys)
8131 (let ((out (assoc-ref outputs "out"))
8132 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8133 (wrap-program (string-append out "/bin/gnome-tweaks")
8134 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8135 #t)))))
9365ee1c 8136 (native-inputs
c7fc414e
RH
8137 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8138 ("intltool" ,intltool)
9365ee1c
JN
8139 ("pkg-config" ,pkg-config)))
8140 (inputs
c7fc414e
RH
8141 `(("gnome-desktop" ,gnome-desktop)
8142 ("gtk+" ,gtk+)
9365ee1c
JN
8143 ("gobject-introspection" ,gobject-introspection)
8144 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
8145 ("libnotify" ,libnotify)
8146 ("libsoup" ,libsoup)
8147 ("nautilus" ,nautilus)
8148 ("python" ,python)
8149 ("python-pygobject" ,python-pygobject)))
9365ee1c 8150 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8151 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8152 (description
d13f3a03 8153 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8154GNOME 3. This includes things like the fonts used in user interface elements,
8155alternative user interface themes, changes in window management behavior,
8156GNOME Shell appearance and extension, etc.")
8157 (license license:gpl3+)))
813f814a 8158
d13f3a03
RW
8159;; This package has been renamed by upstream.
8160(define-public gnome-tweak-tool
8161 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8162
32ac717c
DT
8163(define-public gnome-shell-extensions
8164 (package
8165 (name "gnome-shell-extensions")
ae4c05e0 8166 (version "3.32.1")
32ac717c
DT
8167 (source (origin
8168 (method url-fetch)
8169 (uri (string-append "mirror://gnome/sources/" name "/"
8170 (version-major+minor version) "/"
8171 name "-" version ".tar.xz"))
8172 (sha256
8173 (base32
ae4c05e0 8174 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 8175 (build-system meson-build-system)
32ac717c 8176 (arguments
100f625b 8177 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8178 (native-inputs
c9ea8873
LP
8179 `(("glib:bin" ,glib "bin")
8180 ("intltool" ,intltool)
32ac717c
DT
8181 ("pkg-config" ,pkg-config)))
8182 (propagated-inputs
c9ea8873 8183 `(("glib" ,glib)))
32ac717c
DT
8184 (synopsis "Extensions for GNOME Shell")
8185 (description "GNOME Shell extensions modify and extend GNOME Shell
8186functionality and behavior.")
8187 (home-page "https://extensions.gnome.org/")
8188 (license license:gpl3+)))
8189
813f814a
DT
8190(define-public arc-theme
8191 (package
8192 (name "arc-theme")
37781323 8193 (version "20190917")
813f814a 8194 (source (origin
a18f8eaf
BH
8195 (method git-fetch)
8196 (uri (git-reference
8197 (url "https://github.com/NicoHood/arc-theme.git")
8198 (commit version)))
8199 (file-name (git-file-name name version))
813f814a
DT
8200 (sha256
8201 (base32
37781323 8202 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8203 (build-system gnu-build-system)
d88884fa
EF
8204 (arguments
8205 '(#:phases
8206 (modify-phases %standard-phases
8207 ;; autogen.sh calls configure at the end of the script.
8208 (replace 'bootstrap
4690e3a4
MC
8209 (lambda _ (invoke "autoreconf" "-vfi")))
8210 (add-before 'build 'set-home ;placate Inkscape
8211 (lambda _
8212 (setenv "HOME" (getcwd))
8213 #t)))))
813f814a
DT
8214 (native-inputs
8215 `(("autoconf" ,autoconf)
8216 ("automake" ,automake)
a18f8eaf
BH
8217 ("glib" ,glib "bin") ; for glib-compile-resources
8218 ("gnome-shell" ,gnome-shell)
8219 ("gtk+" ,gtk+)
8220 ("inkscape" ,inkscape)
8221 ("optipng" ,optipng)
8222 ("pkg-config" ,pkg-config)
bed24ecf 8223 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8224 (synopsis "A flat GTK+ theme with transparent elements")
8225 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
82262, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8227like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8228 (home-page "https://github.com/horst3180/arc-theme")
8229 ;; No "or later" language found.
a18f8eaf 8230 (license license:gpl3+)))
9987c57c 8231
d935e6a1 8232(define-public faba-icon-theme
9987c57c 8233 (package
d935e6a1 8234 (name "faba-icon-theme")
2eee7ee3 8235 (version "4.3")
d935e6a1
BT
8236 (source
8237 (origin
757e4027
TGR
8238 (method git-fetch)
8239 (uri (git-reference
8240 (url "https://github.com/snwh/faba-icon-theme.git")
8241 (commit (string-append "v" version))))
8242 (file-name (git-file-name name version))
d935e6a1 8243 (sha256
757e4027 8244 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8245 (build-system meson-build-system)
9987c57c 8246 (arguments
82da291a 8247 `(#:phases
9987c57c 8248 (modify-phases %standard-phases
82da291a 8249 (add-before 'configure 'disable-post-install
9987c57c 8250 (lambda _
82da291a
JL
8251 (substitute* "meson.build"
8252 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8253 (native-inputs
8254 `(("autoconf" ,autoconf)
8255 ("automake" ,automake)))
d935e6a1
BT
8256 (synopsis "Faba icon theme")
8257 (description
8258 "Faba is a minimal icon set used as a basis for other themes such as
8259Moka")
8260 (home-page "https://snwh.org/moka")
8261 (license (list license:lgpl3+
8262 license:cc-by-sa4.0))))
8263
9987c57c
DT
8264(define-public moka-icon-theme
8265 (package
8b0e4177 8266 (inherit faba-icon-theme)
9987c57c 8267 (name "moka-icon-theme")
105a3625 8268 (version "5.4.0")
8c3f2170
TGR
8269 (source
8270 (origin
8271 (method git-fetch)
8272 (uri (git-reference
8273 (url "https://github.com/snwh/moka-icon-theme.git")
8274 (commit (string-append "v" version))))
8275 (file-name (git-file-name name version))
8276 (sha256
8277 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8278 (propagated-inputs
8279 ;; Moka is based on Faba by using it as a fallback icon set instead of
8280 ;; bundling it, so we need to add it as a propagated input.
8281 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8282 (synopsis "Moka icon theme")
8283 (description "Moka is a stylized desktop icon set, designed to be clear,
8284simple and consistent.")
fedde43b
BT
8285 (license (list license:gpl3+
8286 license:cc-by-sa4.0))))
6fd8f8d6
DT
8287
8288(define-public arc-icon-theme
8289 (package
8290 (name "arc-icon-theme")
c4180240 8291 (version "20161122")
bbf66cbf
TGR
8292 (source
8293 (origin
8294 (method git-fetch)
8295 (uri (git-reference
8296 (url "https://github.com/horst3180/arc-icon-theme.git")
8297 (commit version)))
8298 (file-name (git-file-name name version))
8299 (sha256
8300 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8301 (build-system gnu-build-system)
9e1ede95
JL
8302 (arguments
8303 `(#:phases
8304 (modify-phases %standard-phases
8305 (add-after 'unpack 'disable-configure-during-bootstrap
8306 (lambda _
8307 (substitute* "autogen.sh"
8308 (("^\"\\$srcdir/configure\".*") ""))
8309 #t)))))
6fd8f8d6
DT
8310 (native-inputs
8311 `(("autoconf" ,autoconf)
8312 ("automake" ,automake)))
8313 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8314 (propagated-inputs
8315 `(("moka-icon-theme" ,moka-icon-theme)))
8316 (synopsis "Arc icon theme")
8317 (description "The Arc icon theme provides a set of icons matching the
8318style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8319the Moka icon theme.")
8320 (home-page "https://github.com/horst3180/arc-icon-theme")
8321 (license license:gpl3+)))
6064a4e8
LF
8322
8323(define-public folks
8324 (package
8325 (name "folks")
d23495fa 8326 (version "0.11.4")
6064a4e8
LF
8327 (source (origin
8328 (method url-fetch)
8329 (uri (string-append
e5f4796e 8330 "mirror://gnome/sources/folks/"
6064a4e8 8331 (version-major+minor version) "/"
e5f4796e 8332 "folks-" version ".tar.xz"))
6064a4e8
LF
8333 (sha256
8334 (base32
d23495fa 8335 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
8336 (build-system glib-or-gtk-build-system)
8337 (inputs
8338 `(("bdb" ,bdb)
8339 ("dbus-glib" ,dbus-glib)
8340 ("evolution-data-server" ,evolution-data-server)
8341 ("glib" ,glib)
8342 ("libgee" ,libgee)
8343 ("telepathy-glib" ,telepathy-glib)))
8344 (native-inputs
8345 `(("gobject-introspection" ,gobject-introspection)
8346 ("intltool" ,intltool)
8347 ("pkg-config" ,pkg-config)
8348 ("vala" ,vala)))
8349 (synopsis "Library to aggregate data about people")
8350 (description "Libfolks is a library that aggregates information about people
8351from multiple sources (e.g., Telepathy connection managers for IM contacts,
8352Evolution Data Server for local contacts, libsocialweb for web service contacts,
8353etc.) to create metacontacts. It's written in Vala, which generates C code when
8354compiled.")
8355 (home-page "https://wiki.gnome.org/Projects/Folks")
8356 (license license:lgpl2.1+)))
01ea778f
LF
8357
8358(define-public gfbgraph
8359 (package
8360 (name "gfbgraph")
8361 (version "0.2.3")
8362 (source (origin
8363 (method url-fetch)
8364 (uri (string-append
237d4cf7 8365 "mirror://gnome/sources/gfbgraph/"
01ea778f 8366 (version-major+minor version) "/"
237d4cf7 8367 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8368 (sha256
8369 (base32
8370 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8371 (build-system glib-or-gtk-build-system)
8372 (arguments
8373 `(#:tests? #f ; Tests appear to require the network.
8374 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8375 #:configure-flags '("--disable-gtk-doc"
8376 "--disable-static"
8377 "--enable-introspection")))
8378 (native-inputs
8379 `(("pkg-config" ,pkg-config)
8380 ("gobject-introspection" ,gobject-introspection)))
8381 (inputs
8382 `(("json-glib" ,json-glib)
14c297fd 8383 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8384 ("rest" ,rest)))
8385 (synopsis "GLib/GObject wrapper for the Facebook API")
8386 (description "This library allows you to use the Facebook API from
8387GLib/GObject code.")
8388 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8389 (license license:lgpl2.1+)))
3920868c 8390
8391(define-public libgnomekbd
8392 (package
8393 (name "libgnomekbd")
70f2b0f9 8394 (version "3.26.1")
3920868c 8395 (source (origin
8396 (method url-fetch)
d47fa82d 8397 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8398 (version-major+minor version) "/"
d47fa82d 8399 "libgnomekbd-" version ".tar.xz"))
3920868c 8400 (sha256
8401 (base32
70f2b0f9 8402 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8403 (build-system gnu-build-system)
8404 (native-inputs
8405 `(("pkg-config" ,pkg-config)
8406 ("glib" ,glib "bin")
8407 ("intltool" ,intltool)))
8408 (propagated-inputs
8409 ;; Referred to in .h files and .pc.
8410 `(("glib" ,glib)
8411 ("gtk+" ,gtk+)
8412 ("libxklavier" ,libxklavier)))
8413 (home-page "https://www.gnome.org")
8414 (synopsis "GNOME keyboard configuration library")
8415 (description
8416 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8417environment, which can notably display keyboard layouts.")
8418 (license license:lgpl2.0+)))
85327d0d 8419
8420;;; This package is no longer maintained:
8421;;; https://wiki.gnome.org/Attic/LibUnique
8422;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8423;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8424(define-public libunique
8425 (package
8426 (name "libunique")
8427 (version "3.0.2")
8428 (source (origin
8429 (method url-fetch)
8430 (uri (string-append "mirror://gnome/sources/" name "/"
8431 (version-major+minor version) "/"
8432 name "-" version ".tar.xz"))
8433 (sha256
8434 (base32
8435 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8436 (build-system glib-or-gtk-build-system)
8437 (arguments
8438 `(#:configure-flags '("--disable-static"
8439 "--disable-dbus" ; use gdbus
8440 "--enable-introspection")))
8441 (native-inputs
8442 `(("pkg-config" ,pkg-config)
8443 ("gobject-introspection" ,gobject-introspection)
8444 ("glib:bin" ,glib "bin")
8445 ("gtk-doc" ,gtk-doc)))
8446 (propagated-inputs
8447 ;; Referred to in .h files and .pc.
8448 `(("gtk+" ,gtk+)))
8449 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8450 (synopsis "Library for writing single instance applications")
8451 (description
8452 "Libunique is a library for writing single instance applications. If you
8453launch a single instance application twice, the second instance will either just
8454quit or will send a message to the running instance. Libunique makes it easy to
8455write this kind of application, by providing a base class, taking care of all
8456the IPC machinery needed to send messages to a running instance, and also
8457handling the startup notification side.")
8458 (license license:lgpl2.1+)))
54021cd8
RS
8459
8460(define-public gnome-calculator
8461 (package
8462 (name "gnome-calculator")
07ace641 8463 (version "3.32.2")
54021cd8
RS
8464 (source
8465 (origin
8466 (method url-fetch)
8467 (uri (string-append "mirror://gnome/sources/" name "/"
8468 (version-major+minor version) "/"
8469 name "-" version ".tar.xz"))
8470 (sha256
8471 (base32
07ace641 8472 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
2d475910
RW
8473 (build-system meson-build-system)
8474 (arguments '(#:glib-or-gtk? #t))
54021cd8
RS
8475 (native-inputs
8476 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8477 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8
RS
8478 ("intltool" ,intltool)
8479 ("itstool" ,itstool)
2d475910 8480 ("vala" ,vala)
54021cd8
RS
8481 ("pkg-config" ,pkg-config)))
8482 (inputs
112e9083 8483 `(("glib" ,glib)
07ace641 8484 ("gtksourceview" ,gtksourceview)
54021cd8 8485 ("libsoup" ,libsoup)
112e9083 8486 ("libxml2" ,libxml2)
2c2da7ec 8487 ("mpc" ,mpc)
54021cd8
RS
8488 ("mpfr" ,mpfr)))
8489 (home-page "https://wiki.gnome.org/Apps/Calculator")
8490 (synopsis "Desktop calculator")
8491 (description
8492 "Calculator is an application that solves mathematical equations and
8493is suitable as a default application in a Desktop environment.")
8494 (license license:gpl3)))
0bd69759
RS
8495
8496(define-public xpad
8497 (package
8498 (name "xpad")
c85626bb 8499 (version "5.1.0")
0bd69759
RS
8500 (source
8501 (origin
8502 (method url-fetch)
08fda9c6
R
8503 (uri (string-append "https://launchpad.net/xpad/trunk/"
8504 version "/+download/"
0bd69759
RS
8505 name "-" version ".tar.bz2"))
8506 (sha256
8507 (base32
c85626bb 8508 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8509 (build-system gnu-build-system)
8510 (native-inputs
08fda9c6
R
8511 `(("autoconf" ,autoconf)
8512 ("automake" ,automake)
8513 ("gtk+:bin" ,gtk+ "bin")
8514 ("intltool" ,intltool)
0bd69759
RS
8515 ("pkg-config" ,pkg-config)))
8516 (inputs
c72647fb 8517 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8518 ("libsm" ,libsm)))
8519 (home-page "https://wiki.gnome.org/Apps/Xpad")
8520 (synopsis "Virtual sticky note")
8521 (description
8522 "Xpad is a sticky note that strives to be simple, fault tolerant,
8523and customizable. Xpad consists of independent pad windows, each is
8524basically a text box in which notes can be written.")
8525 (license license:gpl3+)))
3ad7dce1
RS
8526
8527(define-public gucharmap
c60063ea
RW
8528 (let ((unicode-files
8529 '(("Blocks.txt"
1f8b5515 8530 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8531 ("DerivedAge.txt"
1f8b5515 8532 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8533 ("NamesList.txt"
1f8b5515 8534 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8535 ("Scripts.txt"
1f8b5515 8536 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8537 ("UnicodeData.txt"
1f8b5515 8538 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8539 ("Unihan.zip"
1f8b5515 8540 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8541 (package
8542 (name "gucharmap")
1f8b5515 8543 (version "12.0.1")
c60063ea
RW
8544 (source
8545 (origin
8546 (method url-fetch)
8547 (uri (string-append "mirror://gnome/sources/" name "/"
8548 (version-major+minor version) "/"
8549 name "-" version ".tar.xz"))
8550 (sha256
8551 (base32
1f8b5515 8552 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8553 (build-system glib-or-gtk-build-system)
8554 (arguments
8555 `(#:modules ((ice-9 match)
8556 (guix build glib-or-gtk-build-system)
8557 (guix build utils))
8558 #:configure-flags
8559 (list "--with-unicode-data=../unicode-data")
8560 #:phases
8561 (modify-phases %standard-phases
8562 (add-after 'unpack 'prepare-unicode-data
8563 (lambda* (#:key inputs #:allow-other-keys)
8564 (mkdir-p "../unicode-data")
8565 (with-directory-excursion "../unicode-data"
8566 (for-each (match-lambda
8567 ((file _)
8568 (install-file (assoc-ref inputs file) ".")))
8569 ',unicode-files))
8570 #t)))))
8571 (native-inputs
8572 `(("desktop-file-utils" ,desktop-file-utils)
8573 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8574 ("gobject-introspection" ,gobject-introspection)
8575 ("intltool" ,intltool)
8576 ("itstool" ,itstool)
8577 ("pkg-config" ,pkg-config)
8578 ,@(map (match-lambda
8579 ((file hash)
8580 `(,file
8581 ,(origin
8582 (method url-fetch)
8583 (uri (string-append
1f8b5515 8584 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8585 file))
8586 (sha256 (base32 hash))))))
8587 unicode-files)
8588 ("unzip" ,unzip)))
8589 (inputs
8590 `(("gtk+" ,gtk+)
8591 ("xmllint" ,libxml2)))
8592 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8593 (synopsis "Unicode character picker and font browser")
8594 (description
8595 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8596characters and categories for the installed fonts, and to examine their
8597detailed properties. It is an easy way to find the character you might
8598only know by its Unicode name or code point.")
c60063ea 8599 (license license:gpl3+))))
04ce840a
RS
8600
8601(define-public bluefish
8602 (package
8603 (name "bluefish")
290fe81d 8604 (version "2.2.11")
04ce840a
RS
8605 (source
8606 (origin
8607 (method url-fetch)
8608 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8609 "bluefish-" version ".tar.gz"))
04ce840a 8610 (sha256
290fe81d 8611 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8612 (build-system gnu-build-system)
8613 (native-inputs
8614 `(("desktop-file-utils" ,desktop-file-utils)
8615 ("intltool" ,intltool)
8616 ("pkg-config" ,pkg-config)))
8617 (inputs
8618 `(("enchant" ,enchant)
8619 ("gtk+" ,gtk+)
290fe81d 8620 ("python" ,python-wrapper)
04ce840a
RS
8621 ("xmllint" ,libxml2)
8622 ("gucharmap" ,gucharmap)))
8623 (home-page "http://bluefish.openoffice.nl")
8624 (synopsis "Web development studio")
8625 (description
8626 "Bluefish is an editor targeted towards programmers and web developers,
8627with many options to write web sites, scripts and other code.
8628Bluefish supports many programming and markup languages.")
8629 (license license:gpl3+)))
1f6a73ee
RS
8630
8631(define-public gnome-system-monitor
8632 (package
8633 (name "gnome-system-monitor")
083cffaf 8634 (version "3.32.1")
1f6a73ee
RS
8635 (source
8636 (origin
8637 (method url-fetch)
8638 (uri (string-append "mirror://gnome/sources/" name "/"
8639 (version-major+minor version) "/"
8640 name "-" version ".tar.xz"))
8641 (sha256
8642 (base32
083cffaf 8643 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8644 (build-system meson-build-system)
8645 (arguments
8646 '(#:glib-or-gtk? #t
8647 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8648 (native-inputs
8649 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8650 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8651 ("intltool" ,intltool)
8652 ("itstool" ,itstool)
8653 ("libgtop" ,libgtop)
4985d9aa 8654 ("polkit" ,polkit)
1f6a73ee
RS
8655 ("pkg-config" ,pkg-config)))
8656 (inputs
8657 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8658 ("gtk+" ,gtk+)
8659 ("gtkmm" ,gtkmm)
8660 ("librsvg" ,librsvg)
4985d9aa
RW
8661 ("libxml2" ,libxml2)
8662 ("libwnck" ,libwnck)))
1f6a73ee
RS
8663 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8664 (synopsis "Process viewer and system resource monitor for GNOME")
8665 (description
8666 "GNOME System Monitor is a GNOME process viewer and system monitor with
8667an attractive, easy-to-use interface. It has features, such as a tree view
8668for process dependencies, icons for processes, the ability to hide processes,
8669graphical time histories of CPU/memory/swap usage and the ability to
8670kill/reinice processes.")
8671 (license license:gpl2+)))
3e00ac47
SB
8672
8673(define-public python-pyatspi
8674 (package
8675 (name "python-pyatspi")
4f937a32 8676 (version "2.34.0")
3e00ac47
SB
8677 (source (origin
8678 (method url-fetch)
8679 (uri (string-append
8680 "mirror://gnome/sources/pyatspi/"
8681 (version-major+minor version)
8682 "/pyatspi-" version ".tar.xz"))
8683 (sha256
8684 (base32
4f937a32 8685 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8686 (build-system gnu-build-system)
b95af3f6
JL
8687 (arguments
8688 `(#:phases
8689 (modify-phases %standard-phases
8690 (add-before 'build 'fix-atk-load
8691 (lambda _
8692 (substitute* "pyatspi/__init__.py"
8693 (("from gi.repository import Atspi")
8694 "gi.require_version('Gtk', '3.0')
8695from gi.repository import Gtk
8696from gi.repository import Atspi"))
8697 #t)))))
3e00ac47
SB
8698 (native-inputs
8699 `(("pkg-config" ,pkg-config)))
8700 (inputs
8701 `(("python" ,python)
8702 ("python-pygobject" ,python-pygobject)))
8703 (synopsis "Python client bindings for D-Bus AT-SPI")
8704 (home-page "https://wiki.linuxfoundation.org/accessibility\
8705/atk/at-spi/at-spi_on_d-bus")
8706 (description
8707 "This package includes a python client library for the AT-SPI D-Bus
8708accessibility infrastructure.")
8709 (license license:lgpl2.0)
8710 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8711
8712(define-public orca
8713 (package
8714 (name "orca")
089e8585 8715 (version "3.32.0")
53201c0d
SB
8716 (source (origin
8717 (method url-fetch)
8718 (uri (string-append
8719 "mirror://gnome/sources/" name "/"
8720 (version-major+minor version) "/"
8721 name "-" version ".tar.xz"))
8722 (sha256
8723 (base32
089e8585 8724 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8725 (build-system glib-or-gtk-build-system)
8726 (arguments
8727 '(#:phases
8728 (modify-phases %standard-phases
8729 (add-before 'configure 'qualify-xkbcomp
8730 (lambda* (#:key inputs #:allow-other-keys)
8731 (let ((xkbcomp (string-append
8732 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8733 (substitute* "src/orca/orca.py"
8734 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8735 #t))
8736 (add-after 'install 'wrap-orca
8737 (lambda* (#:key outputs #:allow-other-keys)
8738 (let* ((out (assoc-ref outputs "out"))
8739 (prog (string-append out "/bin/orca")))
8740 (wrap-program prog
8741 `("GI_TYPELIB_PATH" ":" prefix
8742 (,(getenv "GI_TYPELIB_PATH")))
8743 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8744 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8745 `("PYTHONPATH" ":" prefix
8746 (,(getenv "PYTHONPATH")))))
8747 #t)))))
8748 (native-inputs
8749 `(("intltool" ,intltool)
8750 ("itstool" ,itstool)
8751 ("pkg-config" ,pkg-config)
8752 ("xmllint" ,libxml2)))
8753 (inputs
8754 `(("at-spi2-atk" ,at-spi2-atk)
8755 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8756 ("gstreamer" ,gstreamer)
8757 ("gst-plugins-base" ,gst-plugins-base)
8758 ("gst-plugins-good" ,gst-plugins-good)
8759 ("gtk+" ,gtk+)
8760 ("python" ,python)
8761 ("python-pygobject" ,python-pygobject)
8762 ("python-pyatspi" ,python-pyatspi)
8763 ("python-speechd" ,speech-dispatcher)
8764 ("xkbcomp" ,xkbcomp)))
8765 (synopsis
8766 "Screen reader for individuals who are blind or visually impaired")
8767 (home-page "https://wiki.gnome.org/Projects/Orca")
8768 (description
8769 "Orca is a screen reader that provides access to the graphical desktop
8770via speech and refreshable braille. Orca works with applications and toolkits
8771that support the Assistive Technology Service Provider Interface (AT-SPI).")
8772 (license license:lgpl2.1+)))
411ba511
LC
8773
8774(define-public gspell
8775 (package
8776 (name "gspell")
7a6bbe9b 8777 (version "1.8.2")
411ba511
LC
8778 (source (origin
8779 (method url-fetch)
8780 (uri (string-append "mirror://gnome/sources/" name "/"
8781 (version-major+minor version) "/"
8782 name "-" version ".tar.xz"))
8783 (sha256
8784 (base32
7a6bbe9b 8785 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8786 (patches (search-patches "gspell-dash-test.patch"))))
8787 (build-system glib-or-gtk-build-system)
8788 (arguments
d0f50164 8789 '(#:configure-flags (list "--enable-vala")
8790 #:phases
411ba511
LC
8791 (modify-phases %standard-phases
8792 (add-before 'check 'pre-check
8793 (lambda* (#:key inputs #:allow-other-keys)
8794 ;; Tests require a running X server.
8795 (system "Xvfb :1 &")
8796 (setenv "DISPLAY" ":1")
8797
8798 ;; For the missing /etc/machine-id.
8799 (setenv "DBUS_FATAL_WARNINGS" "0")
8800
8801 ;; Allow Enchant and its Aspell backend to find the en_US
8802 ;; dictionary.
8803 (setenv "ASPELL_DICT_DIR"
8804 (string-append (assoc-ref inputs "aspell-dict-en")
8805 "/lib/aspell"))
8806 #t)))))
8807 (inputs
eccd35be 8808 `(("gtk+" ,gtk+)
a801ae4c
TGR
8809 ("glib" ,glib)
8810 ("iso-codes" ,iso-codes)))
411ba511
LC
8811 (native-inputs
8812 `(("glib" ,glib "bin")
26ba3f07 8813 ("gobject-introspection" ,gobject-introspection)
411ba511 8814 ("pkg-config" ,pkg-config)
d0f50164 8815 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
8816 ("xmllint" ,libxml2)
8817
8818 ;; For tests.
a801ae4c 8819 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8820 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8821 (propagated-inputs
9b1bb757 8822 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8823 (home-page "https://wiki.gnome.org/Projects/gspell")
8824 (synopsis "GNOME's alternative spell checker")
8825 (description
8826 "gspell provides a flexible API to add spell-checking to a GTK+
8827application. It provides a GObject API, spell-checking to text entries and
8828text views, and buttons to choose the language.")
8829 (license license:gpl2+)))
d1d739fa
CM
8830
8831(define-public gnome-planner
8832 (package
8833 (name "gnome-planner")
8834 (version "0.14.6")
8835 (source (origin
8836 (method url-fetch)
8837 (uri (string-append "mirror://gnome/sources/planner/"
8838 (version-major+minor version) "/planner-"
8839 version ".tar.xz"))
8840 (sha256
8841 (base32
8842 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8843 (build-system glib-or-gtk-build-system)
8844 (arguments
8845 ;; Disable the Python bindings because the Planner program functions
8846 ;; without them, and (as of 2017-06-13) we have not packaged all of
8847 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8848 `(#:configure-flags
8849 (list "--disable-python"
8850 ,@(if (string=? "aarch64-linux" (%current-system))
8851 '("--build=aarch64-unknown-linux-gnu")
8852 '()))))
d1d739fa
CM
8853 (inputs
8854 `(("libgnomecanvas" ,libgnomecanvas)
8855 ("libgnomeui" ,libgnomeui)
8856 ("libglade" ,libglade)
8857 ("gnome-vfs" ,gnome-vfs)
8858 ("gconf" ,gconf)
8859 ("libxml2" ,libxml2)
8860 ("libxslt" ,libxslt)
8861 ("gtk+" ,gtk+)
8862 ("glib" ,glib)))
8863 (native-inputs
8864 `(("intltool" ,intltool)
8865 ("scrollkeeper" ,scrollkeeper)
8866 ("pkg-config" ,pkg-config)))
8867 (home-page "https://wiki.gnome.org/Apps/Planner")
8868 (synopsis "Project management software for the GNOME desktop")
8869 (description
8870 "GNOME Planner is a project management tool based on the Work Breakdown
8871Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8872the resources, tasks, and constraints that you define, Planner generates
8873various views into a project. For example, Planner can show a Gantt chart of
8874the project. It can show a detailed summary of tasks including their
8875duration, cost, and current progress. It can also show a report of resource
8876utilization that highlights under-utilized and over-utilized resources. These
8877views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8878 (license license:gpl2+)))
64fce637
RS
8879
8880(define-public lollypop
8881 (package
8882 (name "lollypop")
ca32627a 8883 (version "1.2.7")
64fce637
RS
8884 (source
8885 (origin
8886 (method url-fetch)
b98eace8 8887 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 8888 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 8889 "lollypop-" version ".tar.xz"))
64fce637 8890 (sha256
ca32627a 8891 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 8892 (build-system meson-build-system)
64fce637
RS
8893 (arguments
8894 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
8895 ,@%meson-build-system-modules)
8896 #:glib-or-gtk? #t
5fc9b6c1
EF
8897 #:tests? #f ; no test suite
8898 #:phases
8899 (modify-phases %standard-phases
5fc9b6c1
EF
8900 (add-after 'install 'wrap-program
8901 (lambda* (#:key outputs #:allow-other-keys)
8902 (let ((out (assoc-ref outputs "out"))
8903 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8904 (wrap-program (string-append out "/bin/lollypop")
8905 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8906 #t))
8ac8b3b3
TGR
8907 (add-after 'install 'wrap-python
8908 (@@ (guix build python-build-system) wrap))
8909 (add-after 'install 'wrap-glib-or-gtk
8910 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
8911 (native-inputs
8912 `(("intltool" ,intltool)
8913 ("itstool" ,itstool)
aa498fc0
TD
8914 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8915 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
8916 ("pkg-config" ,pkg-config)))
8917 (inputs
8918 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 8919 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 8920 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
8921 ("libnotify" ,libnotify)
8922 ("libsecret" ,libsecret)
8923 ("libsoup" ,libsoup)
8924 ("python" ,python)
8925 ("python-beautifulsoup4" ,python-beautifulsoup4)
8926 ("python-gst" ,python-gst)
d029afdd 8927 ("python-pil" ,python-pillow)
64fce637 8928 ("python-pycairo" ,python-pycairo)
7460f346 8929 ("python-pygobject" ,python-pygobject-3.34)
64fce637
RS
8930 ("python-pylast" ,python-pylast)
8931 ("totem-pl-parser" ,totem-pl-parser)
8932 ("webkitgtk" ,webkitgtk)))
8933 (propagated-inputs
8934 `(;; gst-plugins-base is required to start Lollypop,
8935 ;; the others are required to play streaming.
64fce637
RS
8936 ("gst-plugins-good" ,gst-plugins-good)
8937 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 8938 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
8939 (synopsis "GNOME music playing application")
8940 (description
8941 "Lollypop is a music player designed to play well with GNOME desktop.
8942Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
8943from artists and tracks from the web. It also fetches cover artworks
8944automatically and it can stream songs from online music services and charts.")
8945 (license license:gpl3+)))
d831d49d
AW
8946
8947(define-public gnome-video-effects
8948 (package
8949 (name "gnome-video-effects")
8950 (version "0.4.3")
8951 (source (origin
8952 (method url-fetch)
8953 (uri (string-append "mirror://gnome/sources/" name "/"
8954 (version-major+minor version) "/" name "-"
8955 version ".tar.xz"))
8956 (sha256
8957 (base32
8958 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
8959 (build-system glib-or-gtk-build-system)
8960 (arguments
8961 `(#:out-of-source? #f))
8962 (native-inputs
8963 `(("glib:bin" ,glib "bin")
8964 ("intltool" ,intltool)
8965 ("gettext" ,gettext-minimal)
8966 ("pkg-config" ,pkg-config)))
8967 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
8968 (synopsis "Video effects for Cheese and other GNOME applications")
8969 (description
8970 "A collection of GStreamer video filters and effects to be used in
8971photo-booth-like software, such as Cheese.")
8972 (license license:gpl2+)))
3511c780
AW
8973
8974(define-public cheese
8975 (package
8976 (name "cheese")
dd33b337 8977 (version "3.32.1")
3511c780
AW
8978 (source (origin
8979 (method url-fetch)
8980 (uri (string-append "mirror://gnome/sources/" name "/"
8981 (version-major+minor version) "/" name "-"
8982 version ".tar.xz"))
8983 (sha256
8984 (base32
dd33b337 8985 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
8986 (arguments
8987 ;; Tests require GDK.
8988 `(#:tests? #f
8989 #:phases
8990 (modify-phases %standard-phases
8991 (add-before 'install 'skip-gtk-update-icon-cache
8992 (lambda _
8993 ;; Don't create 'icon-theme.cache'
8994 (substitute* "Makefile"
8995 (("gtk-update-icon-cache") (which "true")))
8996 #t))
8997 (add-after 'install 'wrap-cheese
8998 (lambda* (#:key inputs outputs #:allow-other-keys)
8999 (let ((out (assoc-ref outputs "out"))
9000 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9001 (wrap-program (string-append out "/bin/cheese")
9002 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9003 #t)))))
9004 (build-system glib-or-gtk-build-system)
9005 (native-inputs
9006 `(("glib:bin" ,glib "bin")
9007 ("intltool" ,intltool)
9008 ("itstool" ,itstool)
9009 ("libxml2" ,libxml2)
9010 ("pkg-config" ,pkg-config)
9011 ("vala" ,vala)))
9012 (propagated-inputs
6a19f03e
RW
9013 `(("gnome-video-effects" ,gnome-video-effects)
9014 ("clutter" ,clutter)
3511c780
AW
9015 ("clutter-gst" ,clutter-gst)
9016 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9017 ("libcanberra" ,libcanberra)
3511c780
AW
9018 ("gdk-pixbuf" ,gdk-pixbuf)
9019 ("glib" ,glib)
6a19f03e
RW
9020 ("gstreamer" ,gstreamer)))
9021 (inputs
9022 `(("gnome-desktop" ,gnome-desktop)
3511c780 9023 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9024 ("gst-plugins-base" ,gst-plugins-base)
9025 ("gst-plugins-bad" ,gst-plugins-bad)
9026 ("gtk+" ,gtk+)
3511c780
AW
9027 ("libx11" ,libx11)
9028 ("libxtst" ,libxtst)))
9029 (home-page "https://wiki.gnome.org/Apps/Cheese")
9030 (synopsis "Webcam photo booth software for GNOME")
9031 (description
9032 "Cheese uses your webcam to take photos and videos. Cheese can also
9033apply fancy special effects and lets you share the fun with others.")
9034 (license license:gpl2+)))
3c5dbd2b 9035
9036(define-public sound-juicer
9037 (package
9038 (name "sound-juicer")
9039 (version "3.24.0")
9040 (source
9041 (origin
9042 (method url-fetch)
9043 (uri (string-append "mirror://gnome/sources/" name "/"
9044 (version-major+minor version) "/"
9045 name "-" version ".tar.xz"))
9046 (sha256
9047 (base32
9048 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9049 (build-system glib-or-gtk-build-system)
9050 (native-inputs
9051 `(("desktop-file-utils" ,desktop-file-utils)
9052 ("intltool" ,intltool)
9053 ("itstool" ,itstool)
9054 ("pkg-config" ,pkg-config)
9055 ("xmllint" ,libxml2)))
9056 (inputs
9057 `(("gtk+" ,gtk+)
9058 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9059 ("gstreamer" ,gstreamer)
9060 ("gst-plugins-base" ,gst-plugins-base)
9061 ("gst-plugins-good" ,gst-plugins-good)
9062 ("iso-codes" ,iso-codes)
9063 ("libbrasero-media3" ,brasero)
9064 ("libcanberra" ,libcanberra)
9065 ("libdiscid" ,libdiscid)
9066 ("libmusicbrainz" ,libmusicbrainz)
9067 ("neon" ,neon)))
9068 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9069 (synopsis "Audio music cd ripper")
9070 (description "Sound Juicer extracts audio from compact discs and convert it
9071into audio files that a personal computer or digital audio player can play.
9072It supports ripping to any audio codec supported by a GStreamer plugin, such as
9073mp3, Ogg Vorbis and FLAC")
9074 (license license:gpl2+)))
4e3fdeb7 9075
0d3f1708
CB
9076(define-public soundconverter
9077 (package
9078 (name "soundconverter")
fa75a213 9079 (version "3.0.1")
0d3f1708
CB
9080 (source
9081 (origin
9082 (method url-fetch)
9083 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9084 version "/+download/"
9085 "soundconverter-" version ".tar.xz"))
9086
9087 (sha256
fa75a213 9088 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
9089 (patches
9090 (search-patches
9091 "soundconverter-remove-gconf-dependency.patch"))))
9092 (build-system glib-or-gtk-build-system)
9093 (arguments
9094 `(#:imported-modules ((guix build python-build-system)
9095 (guix build glib-or-gtk-build-system)
9096 ,@%gnu-build-system-modules)
9097
9098 #:modules ((guix build glib-or-gtk-build-system)
9099 (guix build utils)
9100 ((guix build gnu-build-system) #:prefix gnu:)
9101 ((guix build python-build-system) #:prefix python:))
9102
9103 #:phases
9104 (modify-phases %standard-phases
0d3f1708
CB
9105 (add-after 'install 'wrap-soundconverter-for-python
9106 (assoc-ref python:%standard-phases 'wrap))
9107 (add-after 'install 'wrap-soundconverter
9108 (lambda* (#:key inputs outputs #:allow-other-keys)
9109 (let ((out (assoc-ref outputs "out"))
9110 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9111 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9112 (wrap-program (string-append out "/bin/soundconverter")
9113 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9114 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9115 #t)))))
9116 (native-inputs
9117 `(("intltool" ,intltool)
9118 ("pkg-config" ,pkg-config)
9119 ("glib:bin" ,glib "bin")))
9120 (inputs
9121 `(("gtk+" ,gtk+)
9122 ("python" ,python)
9123 ("python-pygobject" ,python-pygobject)
9124 ("gstreamer" ,gstreamer)
9125 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9126 (home-page "https://soundconverter.org/")
0d3f1708
CB
9127 (synopsis "Convert between audio formats with a graphical interface")
9128 (description
9129 "SoundConverter supports converting between many audio formats including
9130Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9131configurable file renaming. ")
9132 (license license:gpl3)))
9133
4e3fdeb7 9134(define-public workrave
89f2d736
TGR
9135 (package
9136 (name "workrave")
1b9e1648 9137 (version "1.10.37")
89f2d736
TGR
9138 (source
9139 (origin
9140 (method git-fetch)
9141 (uri (git-reference
9142 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9143 (commit (string-append "v" (string-map
9144 (match-lambda (#\. #\_) (chr chr))
9145 version)))))
89f2d736
TGR
9146 (file-name (git-file-name name version))
9147 (sha256
1b9e1648 9148 (base32 "01cxy7606hx9wgxl550l4p2xa9hsy0rk7swsp58hyi842z2z0y13"))))
89f2d736 9149 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9150 (arguments
9151 ;; The only tests are maintainer tests (in po/), which fail.
9152 `(#:tests? #f))
d1c96847
MC
9153 (inputs `(("glib" ,glib)
9154 ("gtk+" ,gtk+)
9155 ("gdk-pixbuf" ,gdk-pixbuf)
9156 ("gtkmm" ,gtkmm)
9157 ("glibmm" ,glibmm)
9158 ("libx11" ,libx11)
9159 ("libxtst" ,libxtst)
9160 ("dconf" ,dconf)
9161 ("libice" ,libice)
9162 ("libsm" ,libsm)
9163 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9164 (native-inputs `(("boost" ,boost)
89f2d736
TGR
9165 ("pkg-config" ,pkg-config)
9166 ("gettext" ,gnu-gettext)
9167 ("autoconf" ,autoconf)
9168 ("autoconf-archive" , autoconf-archive)
9169 ("automake" ,automake)
9170 ("libtool" ,libtool)
9171 ("intltool" ,intltool)
89f2d736 9172 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9173 ("python3" ,python-3)
9174 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9175 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9176 (description
9177 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9178repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9179micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9180 (home-page "http://www.workrave.org")
9181 (license license:gpl3+)))
312afa7d
LC
9182
9183(define-public ghex
9184 (package
9185 (name "ghex")
3748992a 9186 (version "3.18.4")
312afa7d
LC
9187 (source (origin
9188 (method url-fetch)
2fbab848 9189 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9190 (version-major+minor version) "/"
2fbab848 9191 "ghex-" version ".tar.xz"))
312afa7d
LC
9192 (sha256
9193 (base32
3748992a
KK
9194 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9195 (build-system meson-build-system)
9196 (arguments
9197 '(#:glib-or-gtk? #t
9198 #:phases
9199 (modify-phases %standard-phases
9200 (add-after 'unpack 'skip-gtk-update-icon-cache
9201 ;; Don't create 'icon-theme.cache'.
9202 (lambda _
9203 (substitute* "meson_post_install.py"
9204 (("gtk-update-icon-cache") (which "true")))
9205 #t)))))
312afa7d
LC
9206 (native-inputs
9207 `(("pkg-config" ,pkg-config)
3748992a 9208 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9209 ("gnome-common" ,gnome-common)
9210 ("which" ,which)
9211 ("intltool" ,intltool)
9212 ("yelp-tools" ,yelp-tools)
2fbab848 9213 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9214 (inputs
9215 `(("atk" ,atk)
9216 ("gtk" ,gtk+)))
9217 (synopsis "GNOME hexadecimal editor")
9218 (description "The GHex program can view and edit files in two ways:
9219hexadecimal or ASCII. It is useful for editing binary files in general.")
9220 (home-page "https://wiki.gnome.org/Apps/Ghex")
9221 (license license:gpl2)))
4b2ed6c2
RW
9222
9223(define-public libdazzle
9224 (package
9225 (name "libdazzle")
64fa66ba 9226 (version "3.33.90")
4b2ed6c2
RW
9227 (source (origin
9228 (method url-fetch)
687b4909 9229 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9230 (version-major+minor version) "/"
687b4909 9231 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9232 (sha256
9233 (base32
64fa66ba 9234 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
9235 (build-system meson-build-system)
9236 (arguments
9237 `(#:phases
9238 (modify-phases %standard-phases
4b2ed6c2
RW
9239 (add-before 'check 'pre-check
9240 (lambda _
9241 ;; Tests require a running X server.
9242 (system "Xvfb :1 &")
9243 (setenv "DISPLAY" ":1")
9244 #t)))))
9245 (native-inputs
687b4909 9246 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9247 ("pkg-config" ,pkg-config)
687b4909 9248 ;; For tests.
ff337525 9249 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9250 (inputs
9251 `(("glib" ,glib)
9252 ("gobject-introspection" ,gobject-introspection)
9253 ("gtk+" ,gtk+)
9254 ("vala" ,vala)))
9255 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9256 (synopsis "Companion library to GObject and Gtk+")
9257 (description "The libdazzle library is a companion library to GObject and
9258Gtk+. It provides various features that the authors wish were in the
9259underlying library but cannot for various reasons. In most cases, they are
9260wildly out of scope for those libraries. In other cases, they are not quite
9261generic enough to work for everyone.")
9262 (license license:gpl3+)))
7d3bb433
RW
9263
9264(define-public evolution
9265 (package
9266 (name "evolution")
06141f83 9267 (version "3.32.4")
7d3bb433
RW
9268 (source (origin
9269 (method url-fetch)
9270 (uri (string-append "mirror://gnome/sources/evolution/"
9271 (version-major+minor version) "/"
9272 "evolution-" version ".tar.xz"))
9273 (sha256
9274 (base32
06141f83 9275 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
9276 (build-system cmake-build-system)
9277 (arguments
5229bea1
KK
9278 `(#:imported-modules (,@%cmake-build-system-modules
9279 (guix build glib-or-gtk-build-system))
9280 #:modules ((guix build cmake-build-system)
9281 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9282 (guix build utils))
9283 #:configure-flags
7d3bb433 9284 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9285 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9286 ; in four years and cannot be built.
5229bea1
KK
9287 #:phases
9288 (modify-phases %standard-phases
9289 ;; The build system attempts to install user interface modules to the
9290 ;; output directory of the "evolution-data-server" package. This
9291 ;; change redirects that change.
9292 (add-after 'unpack 'patch-ui-module-dir
9293 (lambda* (#:key outputs #:allow-other-keys)
9294 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9295 (("\\$\\{edsuimoduledir\\}")
9296 (string-append (assoc-ref outputs "out")
9297 "/lib/evolution-data-server/ui-modules")))
9298 #t))
9299 (add-after 'install 'glib-or-gtk-compile-schemas
9300 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9301 (add-after 'install 'glib-or-gtk-wrap
9302 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9303 (native-inputs
ad6e168b 9304 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9305 ("pkg-config" ,pkg-config)
9306 ("intltool" ,intltool)
9307 ("itstool" ,itstool)))
9308 (inputs
9309 `(("enchant" ,enchant)
9310 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9311 ("gcr" ,gcr)
ad6e168b 9312 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9313 ("gnome-autoar" ,gnome-autoar)
9314 ("gnome-desktop" ,gnome-desktop)
9315 ("gtkspell3" ,gtkspell3)
9316 ("highlight" ,highlight)
9317 ("libcanberra" ,libcanberra)
b63c06f1 9318 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
9319 ("libgweather" ,libgweather)
9320 ("libnotify" ,libnotify)
9321 ("libsoup" ,libsoup)
9322 ("nss" ,nss)
9323 ("openldap" ,openldap)
9324 ("webkitgtk" ,webkitgtk)
9325 ("ytnef" ,ytnef)))
9326 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9327 (synopsis "Manage your email, contacts and schedule")
9328 (description "Evolution is a personal information management application
9329that provides integrated mail, calendaring and address book
9330functionality.")
9331 ;; See COPYING for details.
23dbe621 9332 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9333 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9334 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9335
9336(define-public gthumb
9337 (package
9338 (name "gthumb")
8280676b 9339 (version "3.8.2")
169d63f5
AT
9340 (source (origin
9341 (method url-fetch)
9342 (uri (string-append "mirror://gnome/sources/gthumb/"
9343 (version-major+minor version) "/"
9344 "gthumb-" version ".tar.xz"))
9345 (sha256
9346 (base32
8280676b 9347 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9348 (build-system meson-build-system)
9349 (arguments
9350 `(#:glib-or-gtk? #t
9351 #:configure-flags
9352 ;; Ensure the RUNPATH contains all installed library locations.
9353 (list (string-append "-Dc_link_args=-Wl,-rpath="
9354 (assoc-ref %outputs "out")
9355 "/lib/gthumb/extensions")
9356 (string-append "-Dcpp_link_args=-Wl,-rpath="
9357 (assoc-ref %outputs "out")
9358 "/lib/gthumb/extensions"))))
9359 (native-inputs
9360 `(("pkg-config" ,pkg-config)
9361 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9362 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9363 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9364 ("intltool" ,intltool)
9365 ("itstool" ,itstool)))
9366 (inputs
9367 `(("exiv2" ,exiv2)
9368 ("gtk" ,gtk+)
9369 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9370 ("gstreamer" ,gstreamer)
9371 ("clutter" ,clutter)
9372 ("clutter-gst" ,clutter-gst)
9373 ("clutter-gtk" ,clutter-gtk)
9374 ("libjpeg" ,libjpeg)
9375 ("libtiff" ,libtiff)
9376 ("libraw" ,libraw)))
9377 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9378 (synopsis "GNOME image viewer and browser")
9379 (description "GThumb is an image viewer, browser, organizer, editor and
9380advanced image management tool")
9381 (license license:gpl2+)))
08be02be
AT
9382
9383(define-public terminator
9384 (package
9385 (name "terminator")
9386 (version "1.91")
9387 (source (origin
9388 (method url-fetch)
9389 (uri (string-append "https://launchpad.net/" name "/"
9390 "gtk3/" version "/" "+download/"
9391 name "-" version ".tar.gz"))
9392 (sha256
9393 (base32
9394 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9395 (build-system python-build-system)
9396 (native-inputs
9397 `(("intltool" ,intltool)
9398 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9399 ("gettext" ,gettext-minimal)
9400 ("pkg-config" ,pkg-config)))
9401 (inputs
9402 `(("cairo" ,cairo)
9403 ("gobject-introspection" ,gobject-introspection)
96681d4b 9404 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9405 ("python2-pycairo" ,python2-pycairo)
9406 ("python2-pygobject" ,python2-pygobject)
9407 ("python2-psutil" ,python2-psutil)
9408 ("vte" ,vte)))
9409 (arguments
96681d4b
TGR
9410 `(#:python ,python-2 ; Python 3 isn't supported
9411 #:imported-modules ((guix build glib-or-gtk-build-system)
9412 ,@%python-build-system-modules)
9413 #:modules ((guix build python-build-system)
9414 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9415 (guix build utils))
08be02be
AT
9416 #:phases
9417 (modify-phases %standard-phases
9418 (add-after
9419 'install 'wrap-program
9420 (lambda* (#:key outputs #:allow-other-keys)
9421 (let ((prog (string-append (assoc-ref outputs "out")
9422 "/bin/terminator")))
9423 (wrap-program prog
9424 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9425 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9426 #t)))
9427 (add-after 'wrap-program 'glib-or-gtk-wrap
9428 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9429 (home-page "https://gnometerminator.blogspot.com/")
9430 (synopsis "Store and run multiple GNOME terminals in one window")
9431 (description
9432 "Terminator allows you to run multiple GNOME terminals in a grid and
9433+tabs, and it supports drag and drop re-ordering of terminals.")
9434 (license license:gpl2)))
213315d4
JF
9435
9436(define-public libhandy
9437 (package
9438 (name "libhandy")
f6501b9f 9439 (version "0.0.12")
213315d4
JF
9440 (source
9441 (origin
9442 (method git-fetch)
9443 (uri (git-reference
9444 (url "https://source.puri.sm/Librem5/libhandy")
9445 (commit (string-append "v" version))))
9446 (file-name (git-file-name name version))
9447 (sha256
f6501b9f 9448 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9449 (build-system meson-build-system)
9450 (arguments
9451 `(#:configure-flags
9452 '("-Dglade_catalog=disabled"
9453 "-Dgtk_doc=true")
9454 #:phases
9455 (modify-phases %standard-phases
213315d4
JF
9456 (add-before 'check 'pre-check
9457 (lambda _
9458 ;; Tests require a running X server.
9459 (system "Xvfb :1 &")
9460 (setenv "DISPLAY" ":1")
9461 #t)))))
9462 (inputs
9463 `(("gtk+" ,gtk+)))
9464 (native-inputs
9465 `(("glib:bin" ,glib "bin")
9466 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9467 ("vala" ,vala)
9468 ("gtk-doc" ,gtk-doc)
9469 ("pkg-config" ,pkg-config)
9470 ("gettext" ,gettext-minimal)
d41ee146
TGR
9471
9472 ;; Test suite dependencies.
ff337525 9473 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9474 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9475 (home-page "https://source.puri.sm/Librem5/libhandy")
9476 (synopsis "Library full of GTK+ widgets for mobile phones")
9477 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9478interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9479for usage on small and big screens.")
213315d4 9480 (license license:lgpl2.1+)))
a830d14d
GL
9481
9482(define-public libgit2-glib
9483 (package
9484 (name "libgit2-glib")
6448c2e1 9485 (version "0.99.0.1")
a830d14d
GL
9486 (source (origin
9487 (method url-fetch)
9488 (uri (string-append "mirror://gnome/sources/" name "/"
9489 (version-major+minor version) "/"
9490 name "-" version ".tar.xz"))
9491 (sha256
9492 (base32
6448c2e1 9493 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9494 (build-system meson-build-system)
9495 (native-inputs
9496 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9497 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9498 ("pkg-config" ,pkg-config)
9499 ("python-pygobject" ,python-pygobject)
9500 ("python-wrapper" ,python-wrapper)
9501 ("vala" ,vala)))
9502 (inputs
9503 `(("glib" ,glib)
8c6aae46
MB
9504 ("libssh2" ,libssh2)))
9505 (propagated-inputs
9506 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9507 ("libgit2" ,libgit2)))
9508 (synopsis "GLib wrapper around the libgit2 Git access library")
9509 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9510access library. It only implements the core plumbing functions, not really the
9511higher level porcelain stuff.")
9512 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9513 (license license:gpl2+)))
93beace0 9514
08db81c9
LP
9515(define-public gitg
9516 (package
9517 (name "gitg")
9518 (version "3.32.1")
9519 (source (origin
9520 (method url-fetch)
9521 (uri (string-append "mirror://gnome/sources/" name "/"
9522 (version-major+minor version) "/"
9523 name "-" version ".tar.xz"))
9524 (sha256
9525 (base32
9526 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9527 (build-system meson-build-system)
9528 (arguments
9529 `(#:glib-or-gtk? #t
9530 #:phases
9531 (modify-phases %standard-phases
9532 (add-after 'unpack 'disable-post-install-partially
9533 (lambda _
9534 (substitute* "meson_post_install.py"
9535 (("'python'") ; there are no python sources to compile
9536 (string-append "'" (which "true") "'"))
9537 (("gtk-update-icon-cache") (which "true")))
9538 #t))
9539 (add-after 'unpack 'fix-test-sources
9540 (lambda _
9541 (substitute* "tests/libgitg/test-commit.vala"
9542 (("/bin/bash") (which "bash")))
9543 #t))
9544 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9545 (lambda* (#:key outputs #:allow-other-keys)
9546 (let ((prog (string-append (assoc-ref outputs "out")
9547 "/bin/gitg")))
9548 (wrap-program prog
9549 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9550 #t))))))
9551 (inputs
9552 `(("glib" ,glib)
9553 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9554 ("gtk+" ,gtk+)
9555 ("gtkspell3" ,gtkspell3)
9556 ("gtksourceview" ,gtksourceview-3)
9557 ("json-glib" ,json-glib)
9558 ("libdazzle" ,libdazzle)
9559 ("libgee" ,libgee)
08db81c9
LP
9560 ("libgit2-glib" ,libgit2-glib)
9561 ("libpeas" ,libpeas)
9562 ("libsecret" ,libsecret)
9563 ("libsoup" ,libsoup)
9564 ("libxml2" ,libxml2)))
9565 (native-inputs
9566 `(("glib:bin" ,glib "bin")
9567 ("gtk+:bin" ,gtk+ "bin")
9568 ("gobject-introspection" ,gobject-introspection)
9569 ("intltool" ,intltool)
9570 ("pkg-config" ,pkg-config)
9571 ("vala" ,vala)))
9572 (synopsis "Graphical user interface for git")
9573 (description
9574 "gitg is a graphical user interface for git. It aims at being a small,
9575fast and convenient tool to visualize the history of git repositories.
9576Besides visualization, gitg also provides several utilities to manage your
9577repository and commit your work.")
9578 (home-page "https://wiki.gnome.org/Apps/Gitg")
9579 (license license:gpl2+)))
9580
1e600ed0
RW
9581(define-public gamin
9582 (package
9583 (name "gamin")
9584 (version "0.1.10")
9585 (source (origin
9586 (method url-fetch)
9587 (uri (string-append "mirror://gnome/sources/" name "/"
9588 (version-major+minor version) "/"
9589 name "-" version ".tar.bz2"))
9590 (sha256
9591 (base32
9592 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9593 (build-system gnu-build-system)
9594 (arguments
9595 `(#:phases
9596 (modify-phases %standard-phases
9597 (add-after 'unpack 'remove-deprecated-macro
9598 (lambda _
9599 (substitute* '("server/gam_node.c"
9600 "server/gam_subscription.h"
9601 "server/gam_node.h"
9602 "server/gam_subscription.c")
9603 (("G_CONST_RETURN") "const"))
9604 #t)))))
9605 (inputs
9606 `(("glib" ,glib)))
9607 (native-inputs
9608 `(("intltool" ,intltool)
9609 ("pkg-config" ,pkg-config)))
9610 (home-page "https://people.gnome.org/~veillard/gamin/")
9611 (synopsis "File alteration monitor")
9612 (description
9613 "Gamin is a file and directory monitoring system defined to be a subset
9614of the FAM (File Alteration Monitor) system. This is a service provided by a
9615library which allows to detect when a file or a directory has been modified.")
9616 (license license:gpl2+)))
9617
93beace0
DW
9618(define-public gnome-mahjongg
9619 (package
9620 (name "gnome-mahjongg")
9621 (version "3.35.1")
9622 (source (origin
9623 (method git-fetch)
9624 (uri (git-reference
9625 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9626 (commit version)))
9627 (file-name (git-file-name name version))
9628 (sha256
9629 (base32
9630 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9631 (build-system meson-build-system)
9632 (arguments
9633 `(#:glib-or-gtk? #t))
9634 (native-inputs
9635 `(("appstream-glib" ,appstream-glib)
9636 ("gettext" ,gettext-minimal)
9637 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9638 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9639 ("itstool" ,itstool)
9640 ("pkg-config" ,pkg-config)
9641 ("vala" ,vala)))
9642 (propagated-inputs
9643 `(("dconf" ,dconf)))
9644 (inputs
9645 `(("glib" ,glib)
9646 ("gtk+" ,gtk+)
9647 ("librsvg" ,librsvg)))
9648 (synopsis "Mahjongg tile-matching game")
9649 (description "GNOME Mahjongg is a game based on the classic Chinese
9650tile-matching game Mahjong. It features multiple board layouts, tile themes,
9651and a high score table.")
9652 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9653 (license license:gpl2+)))
f825476c 9654
76ea7632
RG
9655(define-public gnome-themes-extra
9656 (package
9657 (name "gnome-themes-extra")
9658 (version "3.28")
9659 (source
9660 (origin
9661 (method url-fetch)
9662 (uri (string-append "mirror://gnome/sources/" name "/"
9663 (version-major+minor version) "/" name "-"
9664 version ".tar.xz"))
9665 (sha256
9666 (base32
9667 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9668 (build-system gnu-build-system)
885424bf
RG
9669 (arguments
9670 '(#:configure-flags
9671 ;; Don't create 'icon-theme.cache'.
9672 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9673 (true (string-append coreutils "/bin/true")))
9674 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9675 (native-inputs
9676 `(("glib:bin" ,glib "bin")
9677 ("intltool" ,intltool)
9678 ("pkg-config" ,pkg-config)))
9679 (inputs
9680 `(("glib" ,glib)
9681 ("gtk+" ,gtk+)
9682 ("gtk+-2" ,gtk+-2)
9683 ("librsvg" ,librsvg)
9684 ("libxml2" ,libxml2)))
9685 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9686 (synopsis "GNOME Extra Themes")
9687 (description "This package provides themes and related elements that don't
9688really fit in other upstream packages. It offers legacy support for GTK+ 2
9689versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9690index files needed for Adwaita to be used outside of GNOME.")
9691 (license license:lgpl2.1+)))
9692
f825476c
LP
9693(define-public polari
9694 (package
9695 (name "polari")
9696 (version "3.32.2")
9697 (source (origin
9698 (method url-fetch)
9699 (uri (string-append "mirror://gnome/sources/polari/"
9700 (version-major+minor version)
9701 "/polari-" version ".tar.xz"))
9702 (sha256
9703 (base32
9704 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9705 (build-system meson-build-system)
9706 (arguments
9707 `(#:glib-or-gtk? #t
9708 #:phases
9709 (modify-phases %standard-phases
9710 (add-after 'unpack 'skip-gtk-update-icon-cache
9711 (lambda _
9712 (substitute* "meson/meson-postinstall.sh"
9713 (("gtk-update-icon-cache") (which "true")))
9714 #t))
9715 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9716 (lambda* (#:key outputs #:allow-other-keys)
9717 (let ((prog (string-append (assoc-ref outputs "out")
9718 "/bin/polari")))
9719 (wrap-program prog
9720 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9721 #t))))))
9722 (inputs
9723 `(("glib" ,glib)
9724 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9725 ("gspell" ,gspell)
9726 ("gtk+" ,gtk+)
9727 ("gjs" ,gjs)
9728 ("libsecret" ,libsecret)
9729 ("libsoup" ,libsoup)
9730 ("telepathy-glib" ,telepathy-glib)
9731 ("telepathy-logger" ,telepathy-logger)))
9732 (native-inputs
9733 `(("glib:bin" ,glib "bin")
9734 ("gobject-introspection" ,gobject-introspection)
9735 ("intltool" ,intltool)
9736 ("pkg-config" ,pkg-config)
9737 ("yelp-tools" ,yelp-tools)))
9738 (propagated-inputs
9739 `(("telepathy-idle" ,telepathy-idle)
9740 ("telepathy-mission-control" ,telepathy-mission-control)))
9741 (synopsis "Simple IRC Client")
9742 (description
9743 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9744integrate seamlessly with the GNOME desktop.")
9745 (home-page "https://wiki.gnome.org/Apps/Polari")
9746 (license license:gpl2+)))
59d4c8c2
PN
9747
9748(define-public gnome-boxes
9749 (package
9750 (name "gnome-boxes")
9751 (version "3.35.91")
9752 (source
9753 (origin
9754 (method url-fetch)
9755 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9756 (version-major+minor version) "/"
9757 "gnome-boxes-" version ".tar.xz"))
9758 (sha256
9759 (base32
9760 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9761 (build-system meson-build-system)
9762 (arguments
9763 '(#:glib-or-gtk? #t
9764 #:configure-flags (list "-Drdp=false"
9765 (string-append "-Dc_link_args=-Wl,-rpath="
9766 (assoc-ref %outputs "out")
9767 "/lib/gnome-boxes"))))
9768 (native-inputs
9769 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9770 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9771 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9772 ("itstool" ,itstool)
9773 ("intltool" ,intltool)
9774 ("vala" ,vala)
9775 ("pkg-config" ,pkg-config)))
9776 (inputs
9777 `(("libarchive" ,libarchive)
9778 ("gtk" ,gtk+)
9779 ("gtk-vnc" ,gtk-vnc)
9780 ("libosinfo" ,libosinfo)
9781 ("libsecret" ,libsecret)
9782 ("libsoup" ,libsoup)
9783 ("libusb" ,libusb)
9784 ("libvirt" ,libvirt)
9785 ("libvirt-glib" ,libvirt-glib)
9786 ("libxml" ,libxml2)
9787 ("spice-gtk" ,spice-gtk)
9788 ("sparql-query" ,sparql-query)
9789 ("vte" ,vte)
9790 ("webkitgtk" ,webkitgtk)
9791 ("tracker" ,tracker)
9792 ("libgudev" ,libgudev)))
9793 (home-page "https://wiki.gnome.org/Apps/Boxes")
9794 (synopsis "View, access, and manage remote and virtual systems")
9795 (description "GNOME Boxes is a simple application to view, access, and
9796manage remote and virtual systems.")
9797 (license (list
9798 ;; For data/icons/empty-boxes.png.
9799 license:cc-by2.0
9800 ;; For all others.
9801 license:lgpl2.0+))))
0e26c3cf 9802
9803(define-public geary
9804 (package
9805 (name "geary")
9806 (version "3.34.1")
9807 (source (origin
9808 (method git-fetch)
9809 (uri (git-reference
9810 (url "https://gitlab.gnome.org/GNOME/geary")
9811 (commit version)))
9812 (file-name (git-file-name name version))
9813 (sha256
9814 (base32
9815 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9816 (build-system meson-build-system)
9817 (arguments
9818 `(#:glib-or-gtk? #t
9819 #:phases (modify-phases %standard-phases
9820 (add-after 'unpack 'disable-failing-tests
9821 (lambda _
9822 (substitute* "test/meson.build"
9823 (("test\\('client-tests', geary_test_client_bin\\)")
9824 ""))
9825 #t))
9826 (add-after 'unpack 'disable-postinstall-script
9827 (lambda _
9828 (substitute* "meson.build"
9829 (("meson.add_install_script\\(\
9830join_paths\\('build-aux', 'post_install.py'\\)\\)")
9831 ""))
9832 #t))
9833 (add-before 'check 'setup-xvfb
9834 (lambda _
9835 (system "Xvfb :1 &")
9836 (setenv "DISPLAY" ":1")
9837 #t)))))
9838 (inputs
9839 `(("enchant" ,enchant)
9840 ("folks" ,folks)
9841 ("gcr" ,gcr)
9842 ("glib" ,glib)
9843 ("gmime" ,gmime-2.6)
9844 ("gnome-online-accounts:lib"
9845 ,gnome-online-accounts "lib")
9846 ("gspell" ,gspell)
9847 ("gtk+" ,gtk+)
9848 ("iso-codes" ,iso-codes)
9849 ("json-glib" ,json-glib)
9850 ("libcanberra" ,libcanberra)
9851 ("libgee" ,libgee)
9852 ("libhandy" ,libhandy)
9853 ("libpeas" ,libpeas)
9854 ("libsecret" ,libsecret)
9855 ("libunwind" ,libunwind)
9856 ("sqlite" ,sqlite)
9857 ("webkitgtk" ,webkitgtk)
9858 ("ytnef" ,ytnef)))
9859 (native-inputs
9860 `(("appstream-glib" ,appstream-glib)
9861 ("cmake-minimal" ,cmake-minimal)
9862 ("desktop-file-utils" ,desktop-file-utils)
9863 ("gettext" ,gnu-gettext)
9864 ("glib:bin" ,glib "bin")
9865 ("gobject-introspection" ,gobject-introspection)
9866 ("itstool" ,itstool)
9867 ("libarchive" ,libarchive)
9868 ("libxml2" ,libxml2)
9869 ("pkg-config" ,pkg-config)
9870 ("vala" ,vala)
9871 ("xvfb" ,xorg-server-for-tests)))
9872 (synopsis "GNOME email application built around conversations")
9873 (description
9874 "Geary collects related messages together into conversations,
9875making it easy to find and follow your discussions. Full-text and keyword
9876search makes it easy to find the email you are looking for. Geary's
9877full-featured composer lets you send rich, styled text with images, links, and
9878lists, but also send lightweight, easy to read text messages. Geary
9879automatically picks up your existing GNOME Online Accounts, and adding more is
9880easy. Geary has a clean, fast, modern interface that works like you want it
9881to.")
9882 (home-page "https://wiki.gnome.org/Apps/Geary")
9883 (license (list
9884 ;; geary
9885 license:lgpl2.1+
9886 ;; icons
9887 license:cc-by3.0
9888 license:cc-by-sa3.0
9889 license:public-domain
9890 ;; snowball
9891 license:bsd-2))))