gnu: xfe: Fix hard-coded FHS directories.
[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>
2cd1de32 30;;; Copyright © 2017, 2020 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>
1a17d21b 51;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
dd233e4d 52;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
995b7261
AE
53;;;
54;;; This file is part of GNU Guix.
55;;;
56;;; GNU Guix is free software; you can redistribute it and/or modify it
57;;; under the terms of the GNU General Public License as published by
58;;; the Free Software Foundation; either version 3 of the License, or (at
59;;; your option) any later version.
60;;;
61;;; GNU Guix is distributed in the hope that it will be useful, but
62;;; WITHOUT ANY WARRANTY; without even the implied warranty of
63;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
64;;; GNU General Public License for more details.
65;;;
66;;; You should have received a copy of the GNU General Public License
67;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
68
69(define-module (gnu packages gnome)
ed19903d 70 #:use-module (gnu packages)
ba5dd105 71 #:use-module (gnu packages admin)
411ba511 72 #:use-module (gnu packages aspell)
75016d07 73 #:use-module (gnu packages autotools)
7b212526 74 #:use-module (gnu packages avahi)
b29909b4 75 #:use-module (gnu packages backup)
6a180f6f 76 #:use-module (gnu packages base)
1e33331c 77 #:use-module (gnu packages bash)
5698b8b8 78 #:use-module (gnu packages bison)
aa51d92c 79 #:use-module (gnu packages boost)
5fc9b6c1 80 #:use-module (gnu packages build-tools)
df217748 81 #:use-module (gnu packages calendar)
b29909b4 82 #:use-module (gnu packages cdrom)
df12f04a 83 #:use-module (gnu packages check)
d61a894b 84 #:use-module (gnu packages cmake)
b29909b4 85 #:use-module (gnu packages compression)
8f523eb9 86 #:use-module (gnu packages crates-io)
23a22af6 87 #:use-module (gnu packages cups)
6e1bb642 88 #:use-module (gnu packages curl)
c3f29bc9 89 #:use-module (gnu packages cyrus-sasl)
6e1bb642 90 #:use-module (gnu packages databases)
255d1bbe 91 #:use-module (gnu packages dbm)
c769cf9f 92 #:use-module (gnu packages djvu)
ba5dd105 93 #:use-module (gnu packages dns)
b4ce6300 94 #:use-module (gnu packages docbook)
b29909b4 95 #:use-module (gnu packages documentation)
329d731b 96 #:use-module (gnu packages enchant)
b29909b4
TGR
97 #:use-module (gnu packages flex)
98 #:use-module (gnu packages fonts)
e762d943 99 #:use-module (gnu packages file-systems)
a56be436 100 #:use-module (gnu packages fontutils)
b29909b4 101 #:use-module (gnu packages freedesktop)
dfc407f3 102 #:use-module (gnu packages game-development)
fed5a689 103 #:use-module (gnu packages gettext)
b29909b4
TGR
104 #:use-module (gnu packages ghostscript)
105 #:use-module (gnu packages gl)
995b7261 106 #:use-module (gnu packages glib)
c1354b90 107 #:use-module (gnu packages gnupg)
23a22af6 108 #:use-module (gnu packages gnuzilla)
8d8c6bff 109 #:use-module (gnu packages geo)
b29909b4
TGR
110 #:use-module (gnu packages gperf)
111 #:use-module (gnu packages graphviz)
85f5dc19 112 #:use-module (gnu packages gstreamer)
d9c1a22b 113 #:use-module (gnu packages gtk)
6b888eff 114 #:use-module (gnu packages guile)
b645146f 115 #:use-module (gnu packages ibus)
03be9874 116 #:use-module (gnu packages icu4c)
b29909b4
TGR
117 #:use-module (gnu packages image)
118 #:use-module (gnu packages imagemagick)
119 #:use-module (gnu packages inkscape)
9cc98f8a 120 #:use-module (gnu packages iso-codes)
b29909b4 121 #:use-module (gnu packages kerberos)
85f5dc19 122 #:use-module (gnu packages libcanberra)
b64e217f 123 #:use-module (gnu packages libunistring)
0e26c3cf 124 #:use-module (gnu packages libunwind)
75016d07 125 #:use-module (gnu packages libusb)
b29909b4 126 #:use-module (gnu packages linux)
4e3fc547 127 #:use-module (gnu packages lirc)
7b212526 128 #:use-module (gnu packages lua)
b29909b4 129 #:use-module (gnu packages mail)
03be9874 130 #:use-module (gnu packages mp3)
b29909b4 131 #:use-module (gnu packages multiprecision)
64fce637 132 #:use-module (gnu packages music)
b29909b4
TGR
133 #:use-module (gnu packages ncurses)
134 #:use-module (gnu packages nettle)
ba5dd105 135 #:use-module (gnu packages networking)
5fc9b6c1 136 #:use-module (gnu packages ninja)
aff0cce9 137 #:use-module (gnu packages nss)
b29909b4 138 #:use-module (gnu packages openldap)
b645146f 139 #:use-module (gnu packages password-utils)
de1215e2 140 #:use-module (gnu packages pcre)
b29909b4 141 #:use-module (gnu packages pdf)
27477d2d 142 #:use-module (gnu packages perl)
f70d8383 143 #:use-module (gnu packages photo)
995b7261 144 #:use-module (gnu packages pkg-config)
b29909b4
TGR
145 #:use-module (gnu packages polkit)
146 #:use-module (gnu packages popt)
7d3bb433 147 #:use-module (gnu packages pretty-print)
23a22af6 148 #:use-module (gnu packages pulseaudio)
995b7261 149 #:use-module (gnu packages python)
00014781
RW
150 #:use-module (gnu packages python-crypto)
151 #:use-module (gnu packages python-web)
44d10b1f 152 #:use-module (gnu packages python-xyz)
cce0da5e 153 #:use-module (gnu packages rdesktop)
b29909b4 154 #:use-module (gnu packages readline)
a76d0f03 155 #:use-module (gnu packages ruby)
ec47c07d 156 #:use-module (gnu packages rust)
b29909b4 157 #:use-module (gnu packages samba)
75016d07 158 #:use-module (gnu packages scanner)
240cee8a 159 #:use-module (gnu packages selinux)
c27e02bf 160 #:use-module (gnu packages slang)
b29909b4
TGR
161 #:use-module (gnu packages speech)
162 #:use-module (gnu packages spice)
cd0322a3 163 #:use-module (gnu packages sqlite)
4a1bf090 164 #:use-module (gnu packages ssh)
2cd1de32 165 #:use-module (gnu packages swig)
8f9ac901 166 #:use-module (gnu packages tex)
33dc54b0 167 #:use-module (gnu packages time)
a7fd7b68 168 #:use-module (gnu packages tls)
2cd1de32 169 #:use-module (gnu packages valgrind)
3c5dbd2b 170 #:use-module (gnu packages version-control)
b29909b4 171 #:use-module (gnu packages video)
59132b80 172 #:use-module (gnu packages virtualization)
f2b96b3a 173 #:use-module (gnu packages vpn)
a18f8eaf 174 #:use-module (gnu packages web)
b29909b4
TGR
175 #:use-module (gnu packages webkit)
176 #:use-module (gnu packages xdisorg)
177 #:use-module (gnu packages xiph)
178 #:use-module (gnu packages xml)
d633f2f6 179 #:use-module (gnu packages xorg)
a76d0f03 180 #:use-module (gnu artwork)
8f523eb9 181 #:use-module (guix build-system cargo)
b29909b4
TGR
182 #:use-module (guix build-system cmake)
183 #:use-module (guix build-system glib-or-gtk)
184 #:use-module (guix build-system gnu)
185 #:use-module (guix build-system meson)
08be02be 186 #:use-module (guix build-system python)
b29909b4
TGR
187 #:use-module (guix build-system trivial)
188 #:use-module (guix download)
189 #:use-module (guix git-download)
190 #:use-module ((guix licenses) #:prefix license:)
191 #:use-module (guix packages)
192 #:use-module (guix utils)
a76d0f03 193 #:use-module (guix gexp)
8f523eb9
EF
194 #:use-module (guix monads)
195 #:use-module (guix store)
4e3fdeb7 196 #:use-module (ice-9 match)
c024ae36 197 #:use-module (srfi srfi-1))
85f5dc19
AE
198
199(define-public brasero
200 (package
201 (name "brasero")
e2bf423a 202 (version "3.12.2")
85f5dc19
AE
203 (source (origin
204 (method url-fetch)
d1df7554 205 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 206 (version-major+minor version) "/"
d1df7554 207 "brasero-" version ".tar.xz"))
85f5dc19
AE
208 (sha256
209 (base32
e2bf423a 210 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 211 (build-system glib-or-gtk-build-system)
e8627cd9
DH
212 (arguments
213 `(#:configure-flags (list
214 (string-append "--with-girdir="
215 (assoc-ref %outputs "out")
216 "/share/gir-1.0")
217 (string-append "--with-typelibdir="
218 (assoc-ref %outputs "out")
ce426deb
TD
219 "/lib/girepository-1.0"))
220 #:phases
221 (modify-phases %standard-phases
222 (add-before 'configure 'embed-growisofs
223 (lambda* (#:key inputs #:allow-other-keys)
224 (substitute* "plugins/growisofs/burn-growisofs.c"
225 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 226 #t)))))
85f5dc19
AE
227 (propagated-inputs
228 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
229 (native-inputs
230 `(("intltool" ,intltool)
ba549e17 231 ("itstool" ,itstool)
426adbe8 232 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 233 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 234 ("pkg-config" ,pkg-config)))
85f5dc19 235 (inputs
ce426deb
TD
236 `(("dvd+rw-tools" ,dvd+rw-tools)
237 ("glib" ,glib)
85f5dc19
AE
238 ("gnome-doc-utils" ,gnome-doc-utils)
239 ("gstreamer" ,gstreamer)
240 ("gst-plugins-base" ,gst-plugins-base)
241 ("gtk+" ,gtk+)
85f5dc19
AE
242 ("libcanberra" ,libcanberra)
243 ("libice" ,libice)
244 ("libnotify" ,libnotify)
245 ("libsm" ,libsm)
e8627cd9 246 ("libxml2" ,libxml2)
e8627cd9 247 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 248 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
249 (synopsis "CD/DVD burning tool for Gnome")
250 (description "Brasero is an application to burn CD/DVD for the Gnome
251Desktop. It is designed to be as simple as possible and has some unique
252features to enable users to create their discs easily and quickly.")
1dd26275 253 (license license:gpl2+)))
995b7261 254
a3cbcbaf
RG
255(define-public notification-daemon
256 (package
257 (name "notification-daemon")
258 (version "3.20.0")
259 (source
260 (origin
261 (method url-fetch)
262 (uri
263 (string-append "mirror://gnome/sources/" name "/"
264 (version-major+minor version) "/"
265 name "-" version ".tar.xz"))
266 (sha256
267 (base32
268 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
269 (build-system glib-or-gtk-build-system)
270 (native-inputs
271 `(("intltool" ,intltool)
272 ("pkg-config" ,pkg-config)))
273 (inputs
274 `(("glib" ,glib)
275 ("gtk+" ,gtk+)
276 ("x11" ,libx11)))
277 (synopsis "Notification Daemon for GNOME Desktop")
278 (description "Notification-Daemon is the server implementation of the
279freedesktop.org desktop notification specification.")
280 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
281 (license license:gpl2+)))
282
4e8bdbf8
RG
283(define-public mm-common
284 (package
285 (name "mm-common")
286 (version "1.0.0")
287 (source (origin
288 (method url-fetch)
289 (uri (string-append "mirror://gnome/sources/" name "/"
290 (version-major+minor version) "/"
291 name "-" version ".tar.xz"))
292 (sha256
293 (base32
294 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
295 (build-system meson-build-system)
296 (arguments
297 `(#:phases
298 (modify-phases %standard-phases
299 (add-after 'unpack 'patch
300 (lambda* (#:key inputs #:allow-other-keys)
301 (substitute* "util/mm-common-prepare.in"
302 (("ln") (string-append (assoc-ref inputs "coreutils")
303 "/bin/ln"))
304 (("cp") (string-append (assoc-ref inputs "coreutils")
305 "/bin/cp"))
306 (("sed") (string-append (assoc-ref inputs "sed")
307 "/bin/sed"))
308 (("cat") (string-append (assoc-ref inputs "coreutils")
309 "/bin/cat")))
310 #t)))))
311 (native-inputs
4e8bdbf8 312 `(("coreutils" ,coreutils)
74a65885
DM
313 ("gettext" ,gettext-minimal)
314 ("pkg-config" ,pkg-config)
4e8bdbf8 315 ("sed" ,sed)))
74a65885
DM
316 (inputs
317 `(("python" ,python)))
4e8bdbf8
RG
318 (synopsis "Module of GNOME C++ bindings")
319 (description "The mm-common module provides the build infrastructure
320and utilities shared among the GNOME C++ binding libraries. Release
321archives of mm-common include the Doxygen tag file for the GNU C++
322Library reference documentation.")
323 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
324 (license license:gpl2+)))
325
e05ce17d
RG
326(define-public phodav
327 (package
328 (name "phodav")
329 (version "2.4")
330 (source (origin
331 (method url-fetch)
332 (uri (string-append "mirror://gnome/sources/" name "/"
333 (version-major+minor version) "/"
334 name "-" version ".tar.xz"))
335 (sha256
336 (base32
337 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
338 (build-system meson-build-system)
339 (native-inputs
340 `(("gettext" ,gettext-minimal)
341 ("glib:bin" ,glib "bin")
342 ("gtk-doc" ,gtk-doc)
343 ("pkg-config" ,pkg-config)))
344 (inputs
345 `(("avahi" ,avahi)
346 ("libgudev" ,libgudev)
347 ("libsoup" ,libsoup)))
348 (synopsis "WebDav server implementation using libsoup")
349 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
350but it is generic enough to be reused in other projects,
351in particular in the GNOME desktop.")
352 (home-page "https://wiki.gnome.org/phodav")
353 (license license:lgpl2.1+)))
354
29ae18db
RG
355(define-public gnome-color-manager
356 (package
357 (name "gnome-color-manager")
358 (version "3.32.0")
359 (source (origin
360 (method url-fetch)
361 (uri (string-append "mirror://gnome/sources/" name "/"
362 (version-major+minor version) "/"
363 name "-" version ".tar.xz"))
364 (sha256
365 (base32
366 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
367 (build-system meson-build-system)
368 (arguments
369 `(#:glib-or-gtk? #t
370 #:phases
371 (modify-phases %standard-phases
372 (add-before
373 'check 'pre-check
374 (lambda _
375 ;; Tests require a running X server.
376 (system "Xvfb :1 &")
377 (setenv "DISPLAY" ":1")
378 #t)))))
379 (native-inputs
380 `(("desktop-file-utils" ,desktop-file-utils)
381 ("gettext" ,gettext-minimal)
382 ("glib:bin" ,glib "bin")
383 ("gtk+:bin" ,gtk+ "bin")
384 ("itstool" ,itstool)
385 ("pkg-config" ,pkg-config)
386 ("xorg-server" ,xorg-server-for-tests)))
387 (inputs
388 `(("adwaita-icon-theme" ,adwaita-icon-theme)
389 ("appstream-glib" ,appstream-glib)
390 ("colord-gtk" ,colord-gtk)
391 ("exiv2" ,exiv2)
392 ("gnome-desktop" ,gnome-desktop)
393 ("libcanberra" ,libcanberra)
394 ("libexif" ,libexif)
395 ("libtiff" ,libtiff)
396 ("libxrandr" ,libxrandr)
397 ("libxtst" ,libxtst)
398 ("libxxf86vm" ,libxxf86vm)
399 ("vte" ,vte)
400 ("xorgproto" ,xorgproto)))
401 (synopsis "Color profile manager for the GNOME desktop")
402 (description "GNOME Color Manager is a session framework that makes
403it easy to manage, install and generate color profiles
404in the GNOME desktop.")
405 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 406 (license license:gpl2+)))
29ae18db 407
e05471a1
RG
408(define-public gnome-online-miners
409 (package
410 (name "gnome-online-miners")
49dcd7fc 411 (version "3.34.0")
e05471a1
RG
412 (source (origin
413 (method url-fetch)
414 (uri (string-append "mirror://gnome/sources/" name "/"
415 (version-major+minor version) "/"
416 name "-" version ".tar.xz"))
417 (sha256
418 (base32
49dcd7fc 419 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
e05471a1
RG
420 (build-system glib-or-gtk-build-system)
421 (native-inputs
422 `(("gettext" ,gettext-minimal)
423 ("glib:bin" ,glib "bin")
29ae18db 424 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
425 ("gtk+:bin" ,gtk+ "bin")
426 ("pkg-config" ,pkg-config)))
427 (inputs
428 `(("gnome-online-accounts" ,gnome-online-accounts)
429 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
430 ("grilo" ,grilo)
431 ("libgdata" ,libgdata)
432 ("libgfbgraph" ,gfbgraph)
433 ("libzapojit" ,libzapojit)
434 ("rest" ,rest)
435 ("tracker" ,tracker)))
436 (synopsis "Web Crawlers for GNOME")
437 (description "GNOME Online Miners provides a set of crawlers that
438go through your online content and index them locally in Tracker.
439It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
440 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 441 (license license:gpl2+)))
e05471a1 442
e2aed29c
RG
443(define-public gssdp
444 (package
445 (name "gssdp")
446 (version "1.2.2")
447 (source (origin
448 (method url-fetch)
449 (uri (string-append "mirror://gnome/sources/" name "/"
450 (version-major+minor version) "/"
451 name "-" version ".tar.xz"))
452 (sha256
453 (base32
454 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
455 (build-system meson-build-system)
456 (native-inputs
457 `(("gettext" ,gettext-minimal)
458 ("glib:bin" ,glib "bin")
459 ("gobject-introspection" ,gobject-introspection)
460 ("gtk-doc" ,gtk-doc)
461 ("pkg-config" ,pkg-config)
462 ("vala" ,vala)))
463 (inputs
464 `(("gtk+" ,gtk+)
465 ("libsoup" ,libsoup)))
466 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
467Protocol} for GNOME")
468 (description "This package provides a library to handle resource discovery
469and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
470a debugging tool, @command{gssdp-device-sniffer}.")
471 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
472 (license license:lgpl2.0+)))
473
291a85b2
RG
474(define-public gupnp
475 (package
476 (name "gupnp")
477 (version "1.2.2")
478 (source (origin
479 (method url-fetch)
480 (uri (string-append "mirror://gnome/sources/" name "/"
481 (version-major+minor version) "/"
482 name "-" version ".tar.xz"))
483 (sha256
484 (base32
485 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
486 (build-system meson-build-system)
487 (native-inputs
488 `(("gettext" ,gettext-minimal)
489 ("glib:bin" ,glib "bin")
490 ("gobject-introspection" ,gobject-introspection)
491 ("gtk-doc" ,gtk-doc)
492 ("pkg-config" ,pkg-config)
493 ("vala" ,vala)))
494 (inputs
495 `(("gssdp" ,gssdp)
496 ("gtk+" ,gtk+)
497 ("libsoup" ,libsoup)))
498 (synopsis "PnP API for GNOME")
499 (description "This package provides GUPnP, an object-oriented framework
500for creating UPnP devices and control points, written in C using
501@code{GObject} and @code{libsoup}.")
502 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
503 (license license:lgpl2.0+)))
504
747d7fe4
RG
505(define-public gupnp-dlna
506 (package
507 (name "gupnp-dlna")
508 (version "0.10.5")
509 (source (origin
510 (method url-fetch)
511 (uri (string-append "mirror://gnome/sources/" name "/"
512 (version-major+minor version) "/"
513 name "-" version ".tar.xz"))
514 (sha256
515 (base32
516 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
517 (build-system gnu-build-system)
518 (native-inputs
519 `(("gettext" ,gettext-minimal)
520 ("glib:bin" ,glib "bin")
521 ("gobject-introspection" ,gobject-introspection)
522 ("gtk-doc" ,gtk-doc)
523 ("libxml" ,libxml2)
524 ("pkg-config" ,pkg-config)
525 ("vala" ,vala)))
526 (inputs
527 `(("gstreamer" ,gstreamer)
528 ("gupnp" ,gupnp)))
529 (propagated-inputs
530 `(("gst-plugins-base" ,gst-plugins-base)
531 ("gst-plugins-good" ,gst-plugins-good)))
532 (synopsis "GUPnP DLNA for GNOME")
533 (description "This package provides a small utility library to
534support DLNA-related tasks such as media profile guessing, transcoding to a
535given profile, etc. DLNA is a subset of UPnP A/V.")
536 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
537 (license license:lgpl2.0+)))
538
1b4cb628
RG
539(define-public gupnp-av
540 (package
541 (name "gupnp-av")
542 (version "0.12.11")
543 (source (origin
544 (method url-fetch)
545 (uri (string-append "mirror://gnome/sources/" name "/"
546 (version-major+minor version) "/"
547 name "-" version ".tar.xz"))
548 (sha256
549 (base32
550 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
551 (build-system gnu-build-system)
552 (native-inputs
553 `(("gettext" ,gettext-minimal)
554 ("glib:bin" ,glib "bin")
555 ("gobject-introspection" ,gobject-introspection)
556 ("gtk-doc" ,gtk-doc)
557 ("libxml" ,libxml2)
558 ("pkg-config" ,pkg-config)))
559 (inputs
560 `(("gtk+" ,gtk+)
561 ("gupnp" ,gupnp)))
562 (synopsis "GUPnP A/V for GNOME")
563 (description "This package provides a small library for handling
564and implementation of UPnP A/V profiles.")
565 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
566 (license license:lgpl2.0+)))
567
02ebbca8
RG
568(define-public libmediaart
569 (package
570 (name "libmediaart")
571 (version "1.9.4")
572 (source (origin
573 (method url-fetch)
574 (uri (string-append "mirror://gnome/sources/" name "/"
575 (version-major+minor version) "/"
576 name "-" version ".tar.xz"))
577 (sha256
578 (base32
579 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
580 (build-system gnu-build-system)
581 (native-inputs
582 `(("glib:bin" ,glib "bin")
583 ("pkg-config" ,pkg-config)))
584 (inputs
585 `(("gdk-pixbuf" ,gdk-pixbuf)
586 ("gettext" ,gettext-minimal)
587 ("gobject-introspection" ,gobject-introspection)
588 ("gtk+:doc", gtk+ "doc")
589 ("vala" ,vala)))
590 (synopsis "Media art library for the GNOME desktop")
591 (description
592 "The libmediaart library is the foundation for media art caching,
593extraction, and lookup for applications on the desktop.")
594 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
595 (license license:lgpl2.1+)))
596
a26680eb
RG
597(define-public gnome-initial-setup
598 (package
599 (name "gnome-initial-setup")
600 (version "3.32.1")
601 (source (origin
602 (method url-fetch)
603 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
604 (version-major+minor version)
605 "/gnome-initial-setup-" version ".tar.xz"))
606 (sha256
607 (base32
608 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
609 (build-system meson-build-system)
610 (arguments
a65cc579
DM
611 '(#:configure-flags '(;; Enable camera support for user selfie.
612 "-Dcheese=auto"
c627e2cb
LC
613 "-Dsystemd=false")
614 #:phases (modify-phases %standard-phases
615 (add-after 'unpack 'set-gkbd-file-name
616 (lambda* (#:key inputs #:allow-other-keys)
617 ;; Allow the "Preview" button in the keyboard layout
618 ;; selection dialog to display the layout.
619 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
620 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
621 (("\"gkbd-keyboard-display")
622 (string-append "\"" libgnomekbd
623 "/bin/gkbd-keyboard-display")))
624 #t))))))
a26680eb
RG
625 (native-inputs
626 `(("gettext" ,gettext-minimal)
627 ("glib:bin" ,glib "bin")
628 ("gobject-introspection" ,gobject-introspection)
629 ("gtk+:bin" ,gtk+ "bin")
630 ("pkg-config" ,pkg-config)))
631 (inputs
632 `(("accountsservice" ,accountsservice)
633 ;("adwaita-icon-theme" ,adwaita-icon-theme)
634 ("gdm" ,gdm)
635 ("geoclue" ,geoclue)
636 ("gnome-desktop" ,gnome-desktop)
637 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
638 ("gnome-online-accounts" ,gnome-online-accounts)
639 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
640 ("gstreamer" ,gstreamer)
641 ("ibus" ,ibus)
642 ("json-glib" ,json-glib)
643 ("krb5" ,mit-krb5)
644 ("libgweather" ,libgweather)
645 ("libsecret" ,libsecret)
646 ("network-manager" ,network-manager)
647 ("network-manager-applet" ,network-manager-applet)
648 ("packagekit" ,packagekit)
649 ("polkit" ,polkit)
650 ("pwquality" ,libpwquality)
651 ("rest" ,rest)
652 ("upower" ,upower)
c627e2cb
LC
653 ("webkitgtk" ,webkitgtk)
654 ("libgnomekbd" ,libgnomekbd)))
a26680eb 655 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
656 (description "This package provides a set-up wizard when a
657user logs into GNOME for the first time. It typically provides a
658tour of all gnome components and allows the user to set them up.")
a26680eb
RG
659 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
660 (license license:gpl2)))
661
b5f01392
RG
662(define-public gnome-user-share
663 (package
664 (name "gnome-user-share")
665 (version "3.33.1")
666 (source (origin
667 (method url-fetch)
668 (uri (string-append "mirror://gnome/sources/" name "/"
669 (version-major+minor version) "/"
670 name "-" version ".tar.xz"))
671 (sha256
672 (base32
673 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
674 (build-system meson-build-system)
675 (arguments
676 `(#:glib-or-gtk? #t
677 #:configure-flags
678 `("-Dsystemd=false"
679 ;; Enable nautilus extension for file sharing.
680 "-Dnautilus_extension=true")))
681 (native-inputs
682 `(("gettext" ,gettext-minimal)
683 ("glib:bin" ,glib "bin")
684 ("gobject-introspection" ,gobject-introspection)
685 ("gtk+:bin" ,gtk+ "bin")
686 ("pkg-config" ,pkg-config)
687 ("yelp-tools" ,yelp-tools)))
688 (inputs
689 `(("glib" ,glib)
690 ("gnome-bluetooth" ,gnome-bluetooth)
691 ("gtk+" ,gtk+)
692 ("libcanberra" ,libcanberra)
693 ("libnotify" ,libnotify)
694 ("nautilus" ,nautilus))) ; For nautilus extension.
695 (synopsis "File sharing for GNOME desktop")
696 (description "GNOME User Share is a small package that binds together
697various free software projects to bring easy to use user-level file
698sharing to the masses.")
699 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 700 (license license:gpl2+)))
b5f01392 701
04b201bb
RG
702(define-public sushi
703 (package
704 (name "sushi")
705 (version "3.32.1")
706 (source (origin
707 (method url-fetch)
708 (uri (string-append "mirror://gnome/sources/" name "/"
709 (version-major+minor version) "/"
710 name "-" version ".tar.xz"))
711 (sha256
712 (base32
713 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
714 (build-system meson-build-system)
715 (arguments
716 `(#:glib-or-gtk? #t
717 #:phases
718 (modify-phases %standard-phases
719 (add-after 'glib-or-gtk-wrap 'wrap-typelib
720 (lambda* (#:key outputs #:allow-other-keys)
721 (let ((prog (string-append (assoc-ref outputs "out")
722 "/bin/sushi")))
723 ;; Put existing typelibs before sushi's deps, so as to correctly
724 ;; infer gdk-pixbuf
725 (wrap-program prog
726 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
727 #t))))))
728 (native-inputs
729 `(("glib:bin" ,glib "bin")
730 ("gettext" ,gettext-minimal)
731 ("gobject-introspection" ,gobject-introspection)
732 ("pkg-config" ,pkg-config)))
733 (inputs
734 `(("clutter" ,clutter)
735 ("clutter-gst" ,clutter-gst)
736 ("clutter-gtk" ,clutter-gtk)
737 ("evince" ,evince) ; For file previewing.
738 ("freetype" ,freetype)
739 ("gdk-pixbuf" ,gdk-pixbuf)
740 ("gjs" ,gjs)
741 ("gst-plugins-base" ,gst-plugins-base)
742 ("gstreamer" ,gstreamer)
743 ("gtksourceview" ,gtksourceview-3)
744 ("harfbuzz" ,harfbuzz)
745 ("libepoxy" ,libepoxy)
746 ("libmusicbrainz" ,libmusicbrainz)
747 ("libxml2" ,libxml2)
748 ("neon" ,neon)
749 ("webkitgtk" ,webkitgtk)))
750 (synopsis "File previewer for the GNOME desktop")
751 (description "Sushi is a DBus-activated service that allows applications to
752preview files on the GNOME desktop.")
753 (home-page "https://gitlab.gnome.org/GNOME/sushi")
754 (license license:gpl2+)))
755
89af0902
RG
756(define-public rygel
757 (package
758 (name "rygel")
759 (version "0.38.3")
760 (source (origin
761 (method url-fetch)
762 (uri (string-append "mirror://gnome/sources/" name "/"
763 (version-major+minor version) "/"
764 name "-" version ".tar.xz"))
765 (sha256
766 (base32
767 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
768 (build-system gnu-build-system)
769 (native-inputs
770 `(("gettext" ,gettext-minimal)
771 ("gobject-introspection" ,gobject-introspection)
772 ("gtk-doc" ,gtk-doc)
773 ("pkg-config" ,pkg-config)
774 ("vala" ,vala)))
775 (inputs
776 `(("gdk-pixbuf" ,gdk-pixbuf)
777 ("gssdp" ,gssdp)
778 ("gstreamer" ,gstreamer)
779 ("gst-plugins-base" ,gst-plugins-base)
780 ("gtk+" ,gtk+)
781 ("gupnp" ,gupnp)
782 ("gupnp-av" ,gupnp-av)
783 ("gupnp-dlna" ,gupnp-dlna)
784 ("libgee" ,libgee)
785 ("libmediaart" ,libmediaart)
786 ("libsoup" ,libsoup)
787 ("libxslt" ,libxslt)
788 ("libunistring" ,libunistring)
789 ("tracker" ,tracker)))
790 (synopsis "Share audio, video, and pictures with other devices")
791 (description
792 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
793MediaRenderer}) for GNOME that allows you to easily share audio, video, and
794pictures, and to control a media player on your home network.
795
796Rygel achieves interoperability with other devices by trying to conform to the
797strict requirements of DLNA and by converting media on-the-fly to formats that
798client devices can handle.")
799 (home-page "https://wiki.gnome.org/Projects/Rygel")
800 (license (list
801 ;; For logo (data/icons/*).
802 license:cc-by-sa3.0
803 ;; For all others.
804 license:lgpl2.1+))))
805
47e87093
RG
806(define-public libnma
807 (package
808 (name "libnma")
809 (version "1.8.26")
810 (source (origin
811 (method url-fetch)
812 (uri (string-append "mirror://gnome/sources/" name "/"
813 (version-major+minor version) "/"
814 name "-" version ".tar.xz"))
815 (sha256
816 (base32
817 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
818 (build-system meson-build-system)
819 (arguments
820 `(#:glib-or-gtk? #t))
821 (native-inputs
822 `(("gettext" ,gettext-minimal)
823 ("glib:bin" ,glib "bin")
824 ("gtk-doc" ,gtk-doc)
825 ("gobject-introspection" ,gobject-introspection)
826 ("pkg-config" ,pkg-config)))
827 (inputs
828 `(("adwaita-icon-theme" ,adwaita-icon-theme)
829 ("gcr" ,gcr)
830 ("gtk+" ,gtk+)
831 ("iso-codes" ,iso-codes)
832 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
833 ("network-manager" ,network-manager)))
834 (synopsis "Network Manager's applet library")
835 (description "Libnma is an applet library for Network Manager. It was
836initially part of network-manager-applet and has now become a separate
837project.")
838 (home-page "https://gitlab.gnome.org/GNOME/libnma")
839
840 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
841 ;; "LGPL-2.1+".
842 (license license:gpl2+)))
843
30416265
RG
844(define-public gnome-menus
845 (package
846 (name "gnome-menus")
847 (version "3.32.0")
848 (source (origin
849 (method url-fetch)
850 (uri (string-append "mirror://gnome/sources/gnome-menus/"
851 (version-major+minor version) "/"
852 name "-" version ".tar.xz"))
853 (sha256
854 (base32
855 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
856 (build-system gnu-build-system)
857 (native-inputs
858 `(("gettext" ,gettext-minimal)
859 ("glib" ,glib)
860 ("pkg-config" ,pkg-config)))
861 (synopsis "Menu support for GNOME desktop")
862 (description "GNOME Menus contains the libgnome-menu library, the layout
863configuration files for the GNOME menu, as well as a simple menu editor.")
864 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 865 (license license:lgpl2.0+)))
30416265 866
d61a894b
CB
867(define-public deja-dup
868 (package
869 (name "deja-dup")
870 (version "34.3")
871 (source (origin
872 (method url-fetch)
873 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
874 (sha256
875 (base32
876 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
877 (patches
878 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
879 (build-system glib-or-gtk-build-system)
880 (arguments
881 `(#:modules ((guix build gnu-build-system)
882 ((guix build cmake-build-system) #:prefix cmake:)
883 (guix build glib-or-gtk-build-system)
884 (guix build utils))
885 #:imported-modules (,@%glib-or-gtk-build-system-modules
886 (guix build cmake-build-system))
887 #:test-target "test"
888 #:configure-flags (list (string-append
889 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
890 (string-append
891 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
892 #:phases
893 (modify-phases %standard-phases
894 (add-after 'unpack 'patch-lockfile-deletion
895 (lambda rest
896 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
897 (("/bin/rm")
898 (which "rm")))))
899 (replace 'configure
900 (assoc-ref cmake:%standard-phases 'configure))
901 (delete 'check) ;; Fails due to issues with DBus
902 (add-after 'install 'wrap-deja-dup
903 (lambda* (#:key inputs outputs #:allow-other-keys)
904 (let ((python (assoc-ref inputs "python"))
905 (python-path (getenv "PYTHONPATH"))
906 (duplicity (assoc-ref inputs "duplicity"))
907 (out (assoc-ref outputs "out")))
908 (for-each
909 (lambda (program)
910 (wrap-program program
911 `("PATH" ":" prefix (,(string-append python "/bin")
912 ,(string-append duplicity "/bin"))))
913 (wrap-program program
914 `("PYTHONPATH" ":" prefix (,python-path))))
915
916 (find-files (string-append out "/bin")))
917 #t))))))
918 (inputs
919 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
920 ("gobject-introspection" ,gobject-introspection)
921 ("duplicity" ,duplicity)
61506fe5 922 ("python" ,python-2)
d61a894b
CB
923 ("python-pygobject" ,python2-pygobject)
924 ("gtk+" ,gtk+)
925 ("libnotify" ,libnotify)
926 ("libpeas" ,libpeas)
927 ("libsecret" ,libsecret)
928 ("packagekit" ,packagekit)))
929 (native-inputs
930 `(("pkg-config" ,pkg-config)
931 ("vala" ,vala)
932 ("gettext" ,gettext-minimal)
933 ("itstool" ,itstool)
934 ("intltool" ,intltool)
c69959f0 935 ("cmake" ,cmake-minimal)))
d61a894b
CB
936 (home-page "https://launchpad.net/deja-dup")
937 (synopsis "Simple backup tool, for regular encrypted backups")
938 (description
939 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
940uses duplicity as the backend, which supports incremental backups and storage
941either on a local, or remote machine via a number of methods.")
942 (license license:gpl3+)))
943
823b77fb
RG
944(define-public gnome-user-docs
945 (package
946 (name "gnome-user-docs")
947 (version "3.32.3")
948 (source
949 (origin
950 (method url-fetch)
951 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
952 (version-major+minor version)
953 "/gnome-user-docs-" version ".tar.xz"))
954 (sha256
955 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
956 (build-system gnu-build-system)
957 (native-inputs
958 `(("gettext" ,gettext-minimal)
959 ("itstool" ,itstool)
960 ("pkg-config" ,pkg-config)
961 ("xmllint" ,libxml2)))
962 (synopsis "User documentation for the GNOME desktop")
963 (description
964 "The GNOME User Documentation explains how to use the GNOME desktop and its
965components. It covers usage and setup of the core GNOME programs by end-users
966and system administrators.")
967 (home-page "https://live.gnome.org/DocumentationProject")
968 (license license:cc-by3.0)))
969
be93299d
RG
970(define-public gnome-getting-started-docs
971 (package
972 (name "gnome-getting-started-docs")
973 (version "3.32.2")
974 (source
975 (origin
976 (method url-fetch)
977 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
978 (version-major+minor version)
979 "/gnome-getting-started-docs-" version ".tar.xz"))
980 (sha256
981 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
982 (build-system gnu-build-system)
983 (native-inputs
984 `(("gettext" ,gettext-minimal)
985 ("itstool" ,itstool)
986 ("pkg-config" ,pkg-config)
987 ("xmllint" ,libxml2)))
988 (synopsis "Help to get new users started with the GNOME desktop")
989 (description
990 "The GNOME Getting Started Documentation contains GNOME's intuitive
991\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
992
993It is normally used together with @command{gnome-initial-setup}, but is also
994useful as a tutorial and users' guide for new or less experienced users.")
995 (home-page "https://live.gnome.org/DocumentationProject")
996 (license license:cc-by-sa3.0)))
997
a56be436
RJ
998(define-public dia
999 ;; This version from GNOME's repository includes fixes for compiling with
1000 ;; recent versions of the build tools. The latest activity on the
1001 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1002 ;; fixes in 2016.
1003 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
1004 (package
1005 (name "dia")
914c8cdf 1006 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
1007 (source (origin
1008 (method git-fetch)
1009 (uri (git-reference
914c8cdf 1010 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1011 (commit commit)))
914c8cdf 1012 (file-name (git-file-name name version))
a56be436
RJ
1013 (sha256
1014 (base32
1015 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
1016 (build-system gnu-build-system)
1017 (inputs
a315afa3 1018 `(("freetype" ,freetype)
a56be436
RJ
1019 ("gdk-pixbuf" ,gdk-pixbuf)
1020 ("gtk+" ,gtk+-2)
a315afa3 1021 ("libart-lgpl" ,libart-lgpl)
a56be436 1022 ("libxml2" ,libxml2)
a315afa3 1023 ("pango" ,pango)))
a56be436 1024 (native-inputs
a315afa3 1025 `(("autoconf" ,autoconf)
a56be436 1026 ("automake" ,automake)
a315afa3
EF
1027 ("intltool" ,intltool)
1028 ("glib" ,glib "bin")
a56be436
RJ
1029 ("libtool" ,libtool)
1030 ("perl" ,perl)
a315afa3 1031 ("pkg-config" ,pkg-config)
a56be436
RJ
1032 ("python-wrapper" ,python-wrapper)))
1033 (arguments
1034 `(#:phases
1035 (modify-phases %standard-phases
4b3e91de 1036 (add-before 'bootstrap 'dont-configure-during-bootstrap
a56be436 1037 (lambda _
4b3e91de
EF
1038 (setenv "NOCONFIGURE" "true")
1039 #t)))))
a56be436
RJ
1040 (home-page "https://wiki.gnome.org/Apps/Dia")
1041 (synopsis "Diagram creation for GNOME")
1042 (description "Dia can be used to draw different types of diagrams, and
1043includes support for UML static structure diagrams (class diagrams), entity
1044relationship modeling, and network diagrams. The program supports various file
1045formats like PNG, SVG, PDF and EPS.")
1046 (license license:gpl2+))))
1047
d0b19e44
RW
1048;; This is the unstable release, but it is required for the current stable
1049;; release of gvfs (1.38.1).
adc5cb1b
KK
1050(define-public libgdata
1051 (package
1052 (name "libgdata")
d0b19e44 1053 (version "0.17.9")
adc5cb1b
KK
1054 (source (origin
1055 (method url-fetch)
1056 (uri (string-append "mirror://gnome/sources/" name "/"
1057 (version-major+minor version) "/"
1058 name "-" version ".tar.xz"))
1059 (sha256
1060 (base32
d0b19e44 1061 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1062 (build-system gnu-build-system)
1063 (arguments
1064 '(#:phases
1065 (modify-phases %standard-phases
448052b7
TGR
1066 (add-before 'check 'disable-failing-tests
1067 (lambda _
1068 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1069 ;; They have been removed in libgdata 0.17.6, so just do the same.
1070 (substitute* "gdata/tests/Makefile"
1071 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1072 #t)))))
1073 (native-inputs
1074 `(("glib:bin" ,glib "bin")
1075 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1076 ("intltool" ,intltool)
1077 ("pkg-config" ,pkg-config)
1078 ("uhttpmock" ,uhttpmock)))
1079 (inputs
1080 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1081 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1082 (propagated-inputs
1083 `(("gcr" ,gcr)
d0b19e44 1084 ("glib" ,glib)
14c297fd 1085 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1086 ("json-glib" ,json-glib)
adc5cb1b 1087 ("liboauth" ,liboauth)
d0b19e44 1088 ("libsoup" ,libsoup)
adc5cb1b
KK
1089 ("libxml2" ,libxml2)))
1090 (home-page "https://wiki.gnome.org/Projects/libgdata")
1091 (synopsis "Library for accessing online service APIs")
1092 (description
1093 "libgdata is a GLib-based library for accessing online service APIs using
1094the GData protocol — most notably, Google's services. It provides APIs to
1095access the common Google services, and has full asynchronous support.")
1096 (license license:lgpl2.1+)))
1097
94e10cf4
KK
1098(define-public libgxps
1099 (package
1100 (name "libgxps")
66470a5a 1101 (version "0.3.1")
94e10cf4
KK
1102 (source (origin
1103 (method url-fetch)
7f10628c 1104 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1105 (version-major+minor version) "/"
1106 name "-" version ".tar.xz"))
1107 (sha256
1108 (base32
66470a5a 1109 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1110 (build-system meson-build-system)
94e10cf4
KK
1111 (native-inputs
1112 `(("gobject-introspection" ,gobject-introspection)
1113 ("pkg-config" ,pkg-config)))
1114 (inputs
c8d62d93 1115 `(("gtk+" ,gtk+)
b6b3e512 1116 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1117 ("lcms" ,lcms)
0a6e9e13 1118 ("libtiff" ,libtiff)))
c8d62d93
MB
1119 (propagated-inputs
1120 ;; In Requires of libgxps.pc.
1121 `(("cairo" ,cairo)
1122 ("glib" ,glib)
1123 ("libarchive" ,libarchive)))
94e10cf4
KK
1124 (home-page "https://wiki.gnome.org/Projects/libgxps")
1125 (synopsis "GObject-based library for handling and rendering XPS documents")
1126 (description
1127 "libgxps is a GObject-based library for handling and rendering XPS
1128documents. This package also contains binaries that can convert XPS documents
1129to other formats.")
1130 (license license:lgpl2.1+)))
1131
4e09f57a
RG
1132(define-public gnome-characters
1133 (package
1134 (name "gnome-characters")
1135 (version "3.30.0")
1136 (source
1137 (origin
1138 (method url-fetch)
1139 (uri (string-append "mirror://gnome/sources/"
1140 "gnome-characters/" (version-major+minor version)
1141 "/gnome-characters-" version ".tar.xz"))
1142 (sha256
1143 (base32
1144 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1145 (build-system meson-build-system)
5757c641 1146 (arguments
1147 `(#:glib-or-gtk? #t
1148 #:phases (modify-phases %standard-phases
1149 (add-after 'install 'wrap
1150 (lambda* (#:key outputs #:allow-other-keys)
1151 ;; GNOME Characters needs Typelib files from GTK and
1152 ;; gnome-desktop.
1153 (wrap-program (string-append (assoc-ref outputs "out")
1154 "/bin/gnome-characters")
1155 `("GI_TYPELIB_PATH" ":" prefix
1156 (,(getenv "GI_TYPELIB_PATH"))))
1157 #t)))))
4e09f57a
RG
1158 (native-inputs
1159 `(("gettext" ,gettext-minimal)
1160 ("glib:bin" ,glib "bin")
1161 ("gtk+:bin" ,gtk+ "bin")
1162 ("pkg-config" ,pkg-config)
1163 ("python" ,python-minimal)))
1164 (inputs
1165 `(("gjs" ,gjs)
1166 ("gtk+" ,gtk+)
5757c641 1167 ("libunistring" ,libunistring)
1168 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1169 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1170 (synopsis "Find and insert unusual characters")
1171 (description "Characters is a simple utility application to find
1172and insert unusual characters. It allows you to quickly find the
1173character you are looking for by searching for keywords.")
1174 (license license:bsd-3)))
1175
7aab13f1
ML
1176(define-public gnome-common
1177 (package
1178 (name "gnome-common")
af83490d 1179 (version "3.18.0")
7aab13f1
ML
1180 (source
1181 (origin
1182 (method url-fetch)
1183 (uri (string-append "mirror://gnome/sources/" name "/"
1184 (version-major+minor version) "/"
1185 name "-" version ".tar.xz"))
1186 (sha256
1187 (base32
af83490d 1188 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1189 (build-system gnu-build-system)
1190 (home-page "https://www.gnome.org/")
1191 (synopsis "Bootstrap GNOME modules built from Git")
1192 (description "gnome-common contains various files needed to bootstrap
1193GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1194can be used to configure a source directory checked out from Git and some
1195commonly used macros.")
1196 (license license:gpl2+)))
1197
4e868d22
RG
1198(define-public gnome-contacts
1199 (package
1200 (name "gnome-contacts")
6a6138b2 1201 (version "3.32.1")
4e868d22
RG
1202 (source (origin
1203 (method url-fetch)
1204 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1205 (version-major+minor version) "/"
1206 name "-" version ".tar.xz"))
1207 (sha256
1208 (base32
6a6138b2 1209 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
1210 (build-system meson-build-system)
1211 (arguments
1212 `(#:phases
1213 (modify-phases %standard-phases
1214 (add-after 'unpack 'generate-vapis
1215 (lambda* (#:key inputs #:allow-other-keys)
1216 ;; To generate goa's missing .vapi file
1217 (define goa
1218 (assoc-ref inputs "gnome-online-accounts:lib"))
1219
1220 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1221 "--library=goa-1.0"
1222 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1223 #t)))))
1224 (native-inputs
1225 `(("glib:bin" ,glib "bin")
1226 ("gtk+:bin" ,gtk+ "bin")
1227 ("pkg-config" ,pkg-config)))
1228 (inputs
1229 `(("cheese" ,cheese)
1230 ("docbook-xml" ,docbook-xml)
1231 ("dockbook-xsl" ,docbook-xsl)
1232 ("evolution-data-server" ,evolution-data-server)
1233 ("gettext" ,gettext-minimal)
1234 ("gnome-desktop" ,gnome-desktop)
1235 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1236 ("gobject-introspection" ,gobject-introspection)
1237 ("gst-plugins-base" ,gst-plugins-base)
1238 ("gtk+" ,gtk+)
1239 ("libgee" ,libgee)
1240 ("libxslt" ,libxslt)
1241 ("telepathy-glib" ,telepathy-glib)
1242 ("vala" ,vala)))
1243 (propagated-inputs
1244 `(("folks", folks)
1245 ("telepathy-mission-control" ,telepathy-mission-control)))
1246 (synopsis "GNOME's integrated address book")
1247 (description
1248 "GNOME Contacts organizes your contact information from online and
1249offline sources, providing a centralized place for managing your contacts.")
1250 (home-page "https://wiki.gnome.org/Apps/Contacts")
1251 (license license:gpl2+)))
1252
9cc98f8a
CR
1253(define-public gnome-desktop
1254 (package
1255 (name "gnome-desktop")
e8a26caa 1256 (version "3.32.2")
9cc98f8a
CR
1257 (source
1258 (origin
1259 (method url-fetch)
b38e45d8
EB
1260 (uri (string-append "mirror://gnome/sources/" name "/"
1261 (version-major+minor version) "/"
9cc98f8a
CR
1262 name "-" version ".tar.xz"))
1263 (sha256
1264 (base32
e8a26caa
KK
1265 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1266 (build-system meson-build-system)
a0fe7c06
CB
1267 (arguments
1268 '(#:phases
1269 (modify-phases %standard-phases
1270 (add-before 'configure 'patch-path
1271 (lambda* (#:key inputs #:allow-other-keys)
1272 (let ((libc (assoc-ref inputs "libc")))
1273 (substitute* "libgnome-desktop/gnome-languages.c"
1274 (("\"locale\"")
1275 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1276 #t)))
1277 (add-before 'check 'pre-check
1278 (lambda* (#:key inputs #:allow-other-keys)
1279 ;; Tests require a running X server and locales.
1280 (system "Xvfb :1 &")
1281 (setenv "DISPLAY" ":1")
1282 (setenv "GUIX_LOCPATH"
1283 (string-append (assoc-ref inputs "glibc-locales")
1284 "/lib/locale"))
1285 #t)))))
9cc98f8a 1286 (native-inputs
e8a26caa
KK
1287 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1288 ("glibc-locales" ,glibc-locales) ; for tests
1289 ("gobject-introspection" ,gobject-introspection)
a8340482 1290 ("itstool" ,itstool)
bcb354ad
SB
1291 ("intltool" ,intltool)
1292 ("pkg-config" ,pkg-config)
e8a26caa
KK
1293 ("xmllint" ,libxml2)
1294 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1295 (propagated-inputs
1296 ;; Required by gnome-desktop-3.0.pc.
1297 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1298 ("gtk+" ,gtk+)
9cc98f8a 1299 ("iso-codes" ,iso-codes)
9863ce20 1300 ("libseccomp" ,libseccomp)
9cc98f8a 1301 ("libx11" ,libx11)
e8a26caa
KK
1302 ("xkeyboard-config" ,xkeyboard-config)))
1303 (inputs
1304 `(("gdk-pixbuf" ,gdk-pixbuf)
1305 ("glib" ,glib)
9cc98f8a
CR
1306 ("libxext" ,libxext)
1307 ("libxkbfile" ,libxkbfile)
e8a26caa 1308 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1309 (home-page "https://www.gnome.org/")
1310 (synopsis
35b9e423 1311 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1312 (description
1313 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1314on the desktop, but that cannot live in the platform for various reasons.
1315There is no API or ABI guarantee, although we are doing our best to provide
1316stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1317
1318The gnome-about program helps find which version of GNOME is installed.")
1319 ; Some bits under the LGPL.
1dd26275 1320 (license license:gpl2+)))
9cc98f8a 1321
995b7261
AE
1322(define-public gnome-doc-utils
1323 (package
1324 (name "gnome-doc-utils")
1325 (version "0.20.10")
1326 (source
1327 (origin
1328 (method url-fetch)
b38e45d8
EB
1329 (uri (string-append "mirror://gnome/sources/" name "/"
1330 (version-major+minor version) "/"
995b7261
AE
1331 name "-" version ".tar.xz"))
1332 (sha256
1333 (base32
1334 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1335 (build-system gnu-build-system)
c4c4cc05 1336 (native-inputs
995b7261 1337 `(("intltool" ,intltool)
b4ce6300 1338 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1339 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1340 ("libxml2" ,libxml2)
1341 ("libxslt" ,libxslt)
1342 ("pkg-config" ,pkg-config)
1343 ("python-2" ,python-2)))
995b7261
AE
1344 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1345 (synopsis
1346 "Documentation utilities for the Gnome project")
1347 (description
1348 "Gnome-doc-utils is a collection of documentation utilities for the
1349Gnome project. It includes xml2po tool which makes it easier to translate
1350and keep up to date translations of documentation.")
1dd26275 1351 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1352
6c4f7022
DC
1353(define-public gnome-disk-utility
1354 (package
1355 (name "gnome-disk-utility")
e106d0a6 1356 (version "3.32.1")
6c4f7022
DC
1357 (source (origin
1358 (method url-fetch)
1359 (uri (string-append "mirror://gnome/sources/" name "/"
1360 (version-major+minor version) "/"
1361 name "-" version ".tar.xz"))
1362 (sha256
1363 (base32
e106d0a6 1364 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 1365 (build-system meson-build-system)
321c73c3
EF
1366 (arguments
1367 '(#:phases
1368 (modify-phases %standard-phases
1369 (add-after 'unpack 'skip-gtk-update-icon-cache
1370 ;; Don't create 'icon-theme.cache'.
1371 (lambda _
1372 (substitute* "meson_post_install.py"
1373 (("gtk-update-icon-cache") "true"))
1374 #t)))))
6c4f7022
DC
1375 (native-inputs
1376 `(("glib:bin" ,glib "bin")
1377 ("intltool" ,intltool)
1378 ("pkg-config" ,pkg-config)
1379 ("docbook-xml" ,docbook-xml)
1380 ("docbook-xsl" ,docbook-xsl)
1381 ("libxml2" ,libxml2)
1382 ("libxslt" ,libxslt)))
1383 (inputs
1384 `(("glib" ,glib)
1385 ("appstream-glib" ,appstream-glib)
1386 ("gnome-settings-daemon" ,gnome-settings-daemon)
1387 ("gtk+" ,gtk+)
1388 ("libcanberra" ,libcanberra)
1389 ("libdvdread" ,libdvdread)
1390 ("libnotify" ,libnotify)
1391 ("libpwquality" ,libpwquality)
1392 ("libsecret" ,libsecret)
1393 ("udisks" ,udisks)))
1394 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1395 (synopsis "Disk management utility for GNOME")
1396 (description "Disk management utility for GNOME.")
1397 (license license:gpl2+)))
1398
3d217317
RG
1399(define-public gnome-font-viewer
1400 (package
1401 (name "gnome-font-viewer")
1402 (version "3.30.0")
1403 (source (origin
1404 (method url-fetch)
1405 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1406 (version-major+minor version)
1407 "/gnome-font-viewer-" version ".tar.xz"))
1408 (sha256
1409 (base32
1410 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1411 (build-system meson-build-system)
1412 (arguments
1413 '(#:phases
1414 (modify-phases %standard-phases
1415 (add-after 'unpack 'patch-post-install-script
1416 (lambda _
1417 (substitute* "meson-postinstall.sh"
1418 (("update-desktop-database") (which "true")))
1419 #t)))))
1420 (native-inputs
1421 `(("gettext" ,gettext-minimal)
1422 ("glib:bin" ,glib "bin")
1423 ("pkg-config" ,pkg-config)))
1424 (inputs
1425 `(("glib" ,glib)
1426 ("gnome-desktop" ,gnome-desktop)
1427 ("gtk+" ,gtk+)))
1428 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1429 (synopsis "GNOME Fonts")
1430 (description "Application to show you the fonts installed on your computer
1431for your use as thumbnails. Selecting any thumbnails shows the full view of how
1432the font would look under various sizes.")
1433 (license license:gpl2+)))
1434
8ff49011
RW
1435(define-public gcr
1436 (package
1437 (name "gcr")
bea6b829 1438 (version "3.28.1")
8ff49011 1439 (source (origin
0daf0efb
RW
1440 (method url-fetch)
1441 (uri (string-append "mirror://gnome/sources/" name "/"
1442 (version-major+minor version) "/"
1443 name "-" version ".tar.xz"))
1444 (sha256
1445 (base32
bea6b829 1446 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
03ecf85a
MB
1447 (patches
1448 (list
1449 ;; This patch solves an ordering issue that showed up when
1450 ;; running the test suite against newer Glib 2.60. See
1451 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1452 (origin
1453 (method url-fetch)
1454 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1455 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1456 (file-name "gcr-hashtable-ordering.patch")
1457 (sha256
1458 (base32
1459 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
8ff49011
RW
1460 (build-system gnu-build-system)
1461 (arguments
0daf0efb
RW
1462 '(#:phases
1463 (modify-phases %standard-phases
1464 ;; These fail because /var/lib/dbus/machine-id is not present in the
1465 ;; build environment.
1466 (add-after 'unpack 'disable-failing-tests
1467 (lambda _
1468 (substitute* "gcr/test-system-prompt.c"
1469 (("g_test_add") "//")
1470 (("return.*") "return 0;"))
1471 #t))
1472 (add-before 'check 'pre-check
1473 (lambda _
1474 ;; Some tests expect to write to $HOME.
1475 (setenv "HOME" "/tmp")
1476 #t)))))
8ff49011
RW
1477 (inputs
1478 `(("dbus" ,dbus)
0daf0efb 1479 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1480 ("libgcrypt" ,libgcrypt)))
1481 (native-inputs
0daf0efb 1482 `(("python" ,python-2) ;for tests
8ff49011
RW
1483 ("pkg-config" ,pkg-config)
1484 ("glib" ,glib "bin")
2af4f5b0
SB
1485 ("gobject-introspection" ,gobject-introspection)
1486 ("intltool" ,intltool)
0daf0efb 1487 ("libxml2" ,libxml2)
bea6b829 1488 ("vala" ,vala)
2af4f5b0 1489 ("xsltproc" ,libxslt)))
8ff49011
RW
1490 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1491 (propagated-inputs
1492 `(("p11-kit" ,p11-kit)
1493 ("glib" ,glib)
1494 ("gtk+" ,gtk+)))
f032d0be 1495 (home-page "https://www.gnome.org")
8ff49011
RW
1496 (synopsis "Libraries for displaying certificates and accessing key stores")
1497 (description
1498 "The GCR package contains libraries used for displaying certificates and
1499accessing key stores. It also provides the viewer for crypto files on the
1500GNOME Desktop.")
1501 (license license:lgpl2.1+)))
1502
c1354b90
LC
1503(define-public libgnome-keyring
1504 (package
1505 (name "libgnome-keyring")
5e8aec2c 1506 (version "3.12.0")
c1354b90
LC
1507 (source (origin
1508 (method url-fetch)
b38e45d8
EB
1509 (uri (string-append "mirror://gnome/sources/" name "/"
1510 (version-major+minor version) "/"
1511 name "-" version ".tar.xz"))
c1354b90
LC
1512 (sha256
1513 (base32
5e8aec2c 1514 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1515 (build-system gnu-build-system)
c1354b90 1516 (inputs
c4c4cc05 1517 `(("libgcrypt" ,libgcrypt)
c1354b90 1518 ("dbus" ,dbus)))
c4c4cc05
JD
1519 (native-inputs
1520 `(("pkg-config" ,pkg-config)
426adbe8 1521 ("glib" ,glib "bin")
c4c4cc05 1522 ("intltool" ,intltool)))
c1354b90
LC
1523 (propagated-inputs
1524 ;; Referred to in .h files and .pc.
1525 `(("glib" ,glib)))
f032d0be 1526 (home-page "https://www.gnome.org")
c1354b90
LC
1527 (synopsis "Accessing passwords from the GNOME keyring")
1528 (description
1529 "Client library to access passwords from the GNOME keyring.")
1530
1531 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1532 (license license:lgpl2.0+)))
c1354b90 1533
e99a3d6f
RW
1534(define-public gnome-keyring
1535 (package
1536 (name "gnome-keyring")
ab35cc6e 1537 (version "3.28.2")
e99a3d6f
RW
1538 (source (origin
1539 (method url-fetch)
1540 (uri (string-append "mirror://gnome/sources/" name "/"
1541 (version-major+minor version) "/"
1542 name "-" version ".tar.xz"))
1543 (sha256
1544 (base32
ab35cc6e 1545 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
1546 (build-system gnu-build-system)
1547 (arguments
1548 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1549 ;not exist
1550 #:configure-flags
1551 (list
1552 (string-append "--with-pkcs11-config="
1553 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1554 (string-append "--with-pkcs11-modules="
1555 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1556 #:phases
1557 (modify-phases %standard-phases
ab35cc6e
RW
1558 (add-after 'unpack 'fix-/bin/sh-reference
1559 (lambda _
1560 (substitute* "po/Makefile.in.in"
1561 (("/bin/sh") (which "sh")))
1562 #t))
5120f24f
RW
1563 (add-after 'unpack 'fix-docbook
1564 (lambda* (#:key inputs #:allow-other-keys)
1565 (substitute* "docs/Makefile.am"
1566 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1567 (string-append (assoc-ref inputs "docbook-xsl")
1568 "/xml/xsl/docbook-xsl-"
1569 ,(package-version docbook-xsl)
1570 "/manpages/docbook.xsl")))
1571 (setenv "XML_CATALOG_FILES"
1572 (string-append (assoc-ref inputs "docbook-xml")
1573 "/xml/dtd/docbook/catalog.xml"))
1574 ;; Rerun the whole thing to avoid version mismatch ("This is
1575 ;; Automake 1.15.1, but the definition used by this
1576 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1577 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1578 (invoke "autoconf")
1579 (invoke "aclocal")
1580 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1581 (inputs
1582 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1583 ("linux-pam" ,linux-pam)
ab35cc6e 1584 ("openssh" ,openssh)
e99a3d6f
RW
1585 ("dbus" ,dbus)
1586 ("gcr" ,gcr)))
1587 (native-inputs
1588 `(("pkg-config" ,pkg-config)
1589 ("glib" ,glib "bin")
5120f24f 1590 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1591 ("python" ,python-2) ;for tests
1592 ("intltool" ,intltool)
1593 ("autoconf" ,autoconf)
1594 ("automake" ,automake)
1595 ("libxslt" ,libxslt) ;for documentation
1596 ("docbook-xml" ,docbook-xml-4.2)
1597 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1598 (home-page "https://www.gnome.org")
e99a3d6f
RW
1599 (synopsis "Daemon to store passwords and encryption keys")
1600 (description
1601 "gnome-keyring is a program that keeps passwords and other secrets for
1602users. It is run as a daemon in the session, similar to ssh-agent, and other
1603applications locate it via an environment variable or D-Bus.
1604
1605The program can manage several keyrings, each with its own master password,
1606and there is also a session keyring which is never stored to disk, but
1607forgotten when the session ends.")
1608 (license license:lgpl2.1+)))
1609
c1354b90
LC
1610(define-public evince
1611 (package
1612 (name "evince")
936d5642 1613 (version "3.34.2")
c1354b90
LC
1614 (source (origin
1615 (method url-fetch)
ac631328 1616 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1617 (version-major+minor version) "/"
ac631328 1618 "evince-" version ".tar.xz"))
c1354b90
LC
1619 (sha256
1620 (base32
936d5642 1621 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1622 (build-system glib-or-gtk-build-system)
c1354b90 1623 (arguments
169b8f77 1624 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1625 #:phases
1626 (modify-phases %standard-phases
1627 (add-before 'install 'skip-gtk-update-icon-cache
1628 ;; Don't create 'icon-theme.cache'.
1629 (lambda _
1630 (substitute* "data/Makefile"
1631 (("gtk-update-icon-cache") "true"))
1632 #t)))))
c1354b90 1633 (inputs
9a096881
KK
1634 `(("libarchive" ,libarchive)
1635 ("libgxps" ,libgxps)
1636 ("libspectre" ,libspectre)
c769cf9f 1637 ("djvulibre" ,djvulibre)
c1354b90
LC
1638 ("ghostscript" ,ghostscript)
1639 ("poppler" ,poppler)
c769cf9f
SB
1640 ("libtiff" ,libtiff)
1641 ;; TODO:
c769cf9f
SB
1642 ;; Build libkpathsea as a shared library for DVI support.
1643 ;; ("libkpathsea" ,texlive-bin)
1644 ("gnome-desktop" ,gnome-desktop)
c1354b90 1645 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1646 ("gspell" ,gspell)
c1354b90 1647 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1648 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1649 ("gdk-pixbuf" ,gdk-pixbuf)
1650 ("atk" ,atk)
1651 ("pango" ,pango)
1652 ("gtk+" ,gtk+)
1653 ("glib" ,glib)
1654 ("libxml2" ,libxml2)
c1354b90
LC
1655 ("libsm" ,libsm)
1656 ("libice" ,libice)
96e42467 1657 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1658 ("dconf" ,dconf)
1659 ("libcanberra" ,libcanberra)
c769cf9f 1660 ("libsecret" ,libsecret)
a271096b 1661
c1354b90
LC
1662 ;; For tests.
1663 ("dogtail" ,python2-dogtail)))
96e42467 1664 (native-inputs
bcb354ad
SB
1665 `(("itstool" ,itstool)
1666 ("intltool" ,intltool)
426adbe8 1667 ("glib" ,glib "bin")
169b8f77 1668 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1669 ("pkg-config" ,pkg-config)
1670 ("xmllint" ,libxml2)))
c1354b90 1671 (home-page
f032d0be 1672 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1673 (synopsis "GNOME's document viewer")
1674 (description
1675 "Evince is a document viewer for multiple document formats. It
1676currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1677of Evince is to replace the multiple document viewers that exist
96e42467 1678on the GNOME Desktop with a single simple application.")
1dd26275 1679 (license license:gpl2+)))
c1354b90 1680
22e32e69
AE
1681(define-public gsettings-desktop-schemas
1682 (package
1683 (name "gsettings-desktop-schemas")
c900dabd 1684 (version "3.32.0")
22e32e69
AE
1685 (source
1686 (origin
1687 (method url-fetch)
1688 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1689 (version-major+minor version) "/"
22e32e69
AE
1690 name "-" version ".tar.xz"))
1691 (sha256
1692 (base32
c900dabd
KK
1693 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1694 (build-system meson-build-system)
65209ffa
LC
1695 (arguments
1696 '(#:phases (modify-phases %standard-phases
3861fb1c 1697 (add-after 'unpack 'patch-schemas
65209ffa 1698 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1699 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1700 (substitute* (find-files "schemas"
1701 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1702 ;; Provide the correct file name of the default GNOME
1703 ;; background, 'adwaita-timed.xml'.
65209ffa 1704 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1705 (string-append theme "/share/backgrounds/gnome"))
1706 ;; Do not reference fonts, that may not exist.
1707 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1708 #t))))))
22e32e69 1709 (inputs
65209ffa
LC
1710 `(("glib" ,glib)
1711 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1712 (native-inputs
1713 `(("intltool" ,intltool)
426adbe8 1714 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1715 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1716 ("pkg-config" ,pkg-config)))
1717 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1718 (synopsis
1719 "GNOME settings for various desktop components")
1720 (description
1721 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1722for settings shared by various components of the GNOME desktop.")
1dd26275 1723 (license license:lgpl2.1+)))
22e32e69 1724
27477d2d
AE
1725(define-public icon-naming-utils
1726 (package
1727 (name "icon-naming-utils")
1728 (version "0.8.90")
1729 (source
1730 (origin
1731 (method url-fetch)
5cc3096c 1732 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1733 version ".tar.bz2"))
1734 (sha256
1735 (base32
1736 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1737 (build-system gnu-build-system)
1738 (inputs
1739 `(("perl" ,perl)
1740 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1741 (arguments
1742 '(#:phases
dc1d3cde
KK
1743 (modify-phases %standard-phases
1744 (add-after 'install 'set-load-paths
1745 ;; Tell 'icon-name-mapping' where XML::Simple is.
1746 (lambda* (#:key outputs #:allow-other-keys)
1747 (let* ((out (assoc-ref outputs "out"))
1748 (prog (string-append out "/libexec/icon-name-mapping")))
1749 (wrap-program
1750 prog
1751 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1752 #t)))))
27477d2d
AE
1753 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1754 (synopsis
1755 "Utility to implement the Freedesktop Icon Naming Specification")
1756 (description
1757 "To help with the transition to the Freedesktop Icon Naming
1758Specification, the icon naming utility maps the icon names used by the
1759GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1760 (license license:lgpl2.1+)))
27477d2d 1761
7d3f3651
AE
1762(define-public gnome-icon-theme
1763 (package
1764 (name "gnome-icon-theme")
b32f58dd 1765 (version "3.12.0")
7d3f3651
AE
1766 (source
1767 (origin
1768 (method url-fetch)
1769 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1770 (version-major+minor version) "/"
7d3f3651
AE
1771 name "-" version ".tar.xz"))
1772 (sha256
1773 (base32
b32f58dd 1774 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1775 (build-system gnu-build-system)
5613c27d
SB
1776 (arguments
1777 '(#:configure-flags
1778 ;; Don't create 'icon-theme.cache'.
1779 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1780 (true (string-append coreutils "/bin/true")))
1781 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1782 (native-inputs
5613c27d 1783 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1784 ("intltool" ,intltool)
1785 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1786 (home-page "https://wiki.gnome.org/Personalization")
1787 (synopsis "GNOME icon theme")
1788 (description "Icons for the GNOME desktop.")
1dd26275 1789 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1790
14eeefa2
SB
1791;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1792(define-public adwaita-icon-theme
1793 (package (inherit gnome-icon-theme)
1794 (name "adwaita-icon-theme")
9be59d7f 1795 (version "3.32.0")
14eeefa2
SB
1796 (source (origin
1797 (method url-fetch)
1798 (uri (string-append "mirror://gnome/sources/" name "/"
1799 (version-major+minor version) "/"
1800 name "-" version ".tar.xz"))
1801 (sha256
1802 (base32
9be59d7f 1803 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1804 (native-inputs
1805 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1806
ae792dba
RW
1807(define-public tango-icon-theme
1808 (package
1809 (name "tango-icon-theme")
1810 (version "0.8.90")
1811 (source (origin
1812 (method url-fetch)
1813 (uri (string-append "http://tango.freedesktop.org/releases/"
1814 "tango-icon-theme-" version ".tar.bz2"))
1815 (sha256
1816 (base32
1817 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1818 (build-system gnu-build-system)
1819 (native-inputs
1820 `(("icon-naming-utils" ,icon-naming-utils)
1821 ("intltool" ,intltool)
1822 ("imagemagick" ,imagemagick)
1823 ("pkg-config" ,pkg-config)))
1824 (home-page "http://tango-project.org/")
1825 (synopsis "Tango icon theme")
1826 (description "This is an icon theme that follows the Tango visual
1827guidelines.")
1828 (license license:public-domain)))
1829
9167f8e6
LC
1830(define-public shared-mime-info
1831 (package
1832 (name "shared-mime-info")
18138ab9 1833 (version "1.10")
9167f8e6
LC
1834 (source (origin
1835 (method url-fetch)
5cc3096c 1836 (uri (string-append "https://freedesktop.org/~hadess/"
b38e45d8 1837 "shared-mime-info-" version ".tar.xz"))
9167f8e6
LC
1838 (sha256
1839 (base32
18138ab9 1840 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
9167f8e6
LC
1841 (build-system gnu-build-system)
1842 (arguments
1843 ;; The build system appears not to be parallel-safe.
1844 '(#:parallel-build? #f))
1845 (inputs
1846 `(("glib" ,glib)
c4c4cc05 1847 ("libxml2" ,libxml2)))
9167f8e6 1848 (native-inputs
c4c4cc05
JD
1849 `(("intltool" ,intltool)
1850 ("pkg-config" ,pkg-config)))
57e7d748 1851 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1852 (synopsis "Database of common MIME types")
1853 (description
1854 "The shared-mime-info package contains the core database of common types
1855and the update-mime-database command used to extend it. It requires glib2 to
1856be installed for building the update command. Additionally, it uses intltool
1857for translations, though this is only a dependency for the maintainers. This
1858database is translated at Transifex.")
1dd26275 1859 (license license:gpl2+)))
9167f8e6 1860
dd1fcddc
CB
1861(define-public system-config-printer
1862 (package
1863 (name "system-config-printer")
fa01e10d 1864 (version "1.5.12")
a5643044
TGR
1865 (source
1866 (origin
1867 (method url-fetch)
1868 (uri (string-append
1869 "https://github.com/OpenPrinting/system-config-printer/releases/"
1870 "download/" version
1871 "/system-config-printer-" version ".tar.xz"))
1872 (sha256
fa01e10d 1873 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1874 (build-system glib-or-gtk-build-system)
1875 (arguments
1876 `(#:imported-modules ((guix build python-build-system)
1877 ,@%glib-or-gtk-build-system-modules)
1878 #:phases
1879 (modify-phases %standard-phases
1880 (add-after 'unpack 'patch-Makefile.am
1881 (lambda _
1882 ;; The Makefile generates some scripts, so set a valid shebang
1883 (substitute* "Makefile.am"
1884 (("/bin/bash") (which "bash")))
1885 (delete-file "configure")
1886 #t))
1887 (add-after 'unpack 'patch-docbook-xml
1888 (lambda* (#:key inputs #:allow-other-keys)
1889 ;; Modify the man XML otherwise xmlto tries to access the network
1890 (substitute* "man/system-config-printer.xml"
1891 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1892 (string-append (assoc-ref inputs "docbook-xml")
1893 "/xml/dtd/docbook/")))
1894 #t))
1895 (add-after 'install 'wrap-for-python
1896 (@@ (guix build python-build-system) wrap))
1897 (add-after 'install 'wrap
1898 (lambda* (#:key outputs #:allow-other-keys)
1899 (let ((out (assoc-ref outputs "out"))
1900 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1901 (for-each
1902 (lambda (program)
1903 (wrap-program program
1904 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1905 (map (lambda (name)
1906 (string-append out "/bin/" name))
1907 '("system-config-printer"
1908 "system-config-printer-applet"
1909 "install-printerdriver"
1910 "scp-dbus-service"))))
1911 #t)))))
1912 (inputs
1913 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1914 ("gobject-introspection" ,gobject-introspection)
1915 ("python" ,python)
1916 ("cups" ,cups)
1917 ("python-dbus" ,python-dbus)
1918 ("python-pygobject" ,python-pygobject)
1919 ("python-pycups" ,python-pycups)
1920 ("python-requests" ,python-requests)
1921 ("python-pycairo" ,python-pycairo)
1922 ("libnotify" ,libnotify)
1923 ("packagekit" ,packagekit)))
1924 (native-inputs
1925 `(("pkg-config" ,pkg-config)
1926 ("desktop-file-utils" ,desktop-file-utils)
1927 ("glib" ,glib)
1928 ("autoconf" ,autoconf)
1929 ("automake" ,automake)
1930 ("intltool" ,intltool)
1931 ("xmlto" ,xmlto)
1932 ("docbook-xml" ,docbook-xml-4.1.2)
1933 ("docbook-xsl" ,docbook-xsl)
1934 ("libxml2" ,libxml2)))
1935 (home-page "https://github.com/zdohnal/system-config-printer")
1936 (synopsis "CUPS administration tool")
1937 (description
1938 "system-config-printer is a CUPS administration tool. It's written in
1939Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1940configuring CUPS.")
1941 (license license:gpl2+)))
1942
bef4dd92
AE
1943(define-public hicolor-icon-theme
1944 (package
1945 (name "hicolor-icon-theme")
851cb6dd 1946 (version "0.17")
bef4dd92
AE
1947 (source
1948 (origin
1949 (method url-fetch)
5cc3096c 1950 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1951 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1952 (sha256
1953 (base32
851cb6dd 1954 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1955 (build-system gnu-build-system)
1956 (arguments
1957 `(#:tests? #f)) ; no check target
57e7d748 1958 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1959 (synopsis
1960 "Freedesktop icon theme")
1961 (description
1962 "Freedesktop icon theme.")
1dd26275 1963 (license license:gpl2)))
bef4dd92 1964
d9c1a22b
AE
1965(define-public libnotify
1966 (package
1967 (name "libnotify")
195bfa68 1968 (version "0.7.7")
d9c1a22b
AE
1969 (source
1970 (origin
1971 (method url-fetch)
1972 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1973 (version-major+minor version) "/"
d9c1a22b
AE
1974 name "-" version ".tar.xz"))
1975 (sha256
1976 (base32
195bfa68 1977 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1978 (build-system gnu-build-system)
6acf6cec
MB
1979 (arguments
1980 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1981 (propagated-inputs
1982 `(;; In Requires of libnotify.pc.
1983 ("gdk-pixbuf" ,gdk-pixbuf)
1984 ("glib" ,glib)))
d9c1a22b 1985 (inputs
7ef08efa 1986 `(("gtk+" ,gtk+)
c4c4cc05
JD
1987 ("libpng" ,libpng)))
1988 (native-inputs
426adbe8 1989 `(("pkg-config" ,pkg-config)
277a7d82
JN
1990 ("glib" ,glib "bin")
1991 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1992 (home-page "https://developer-next.gnome.org/libnotify/")
1993 (synopsis
1994 "GNOME desktop notification library")
1995 (description
1996 "Libnotify is a library that sends desktop notifications to a
35b9e423 1997notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1998notifications can be used to inform the user about an event or display
1999some form of information without getting in the user's way.")
1dd26275 2000 (license license:lgpl2.1+)))
7a8605ce
CR
2001
2002(define-public libpeas
2003 (package
2004 (name "libpeas")
f2d56e39 2005 (version "1.24.1")
7a8605ce
CR
2006 (source
2007 (origin
2008 (method url-fetch)
2009 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2010 (version-major+minor version) "/"
7a8605ce
CR
2011 name "-" version ".tar.xz"))
2012 (sha256
2013 (base32
f2d56e39
MB
2014 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2015 (build-system meson-build-system)
2016 (arguments
2017 '(#:phases
2018 (modify-phases %standard-phases
2019 (add-before 'check 'start-xserver
2020 (lambda* (#:key inputs #:allow-other-keys)
2021 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2022 (disp ":1"))
2023 (setenv "DISPLAY" disp)
2024 ;; Tests require a running X server.
2025 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2026 #t))))))
7a8605ce 2027 (inputs
2ed6522a
SB
2028 `(("gtk+" ,gtk+)
2029 ("glade" ,glade3)
2ed6522a
SB
2030 ("python" ,python)
2031 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2032 (native-inputs
2033 `(("pkg-config" ,pkg-config)
f2d56e39 2034 ("gettext" ,gettext-minimal)
93622993 2035 ("glib:bin" ,glib "bin")
141aed80 2036 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2037 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2038 (propagated-inputs
2039 ;; The .pc file "Requires" gobject-introspection.
2040 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2041 (home-page "https://wiki.gnome.org/Libpeas")
2042 (synopsis "GObject plugin system")
2043 (description
d1e4ad1b
TGR
2044 "Libpeas is a gobject-based plugin engine, targeted at giving every
2045application the chance to assume its own extensibility. It also has a set of
2046features including, but not limited to: multiple extension points; on-demand
2047(lazy) programming language support for C, Python and JS; simplicity of the
2048API.")
1dd26275 2049 (license license:lgpl2.0+)))
ed19903d
JD
2050
2051(define-public gtkglext
2052 (package
2053 (name "gtkglext")
2054 (version "1.2.0")
2055 (source (origin
2056 (method url-fetch)
0f971a04 2057 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2058 version "/gtkglext-" version ".tar.gz"))
2059 (sha256
2060 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2061 (patches (search-patches
2062 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2063 (build-system gnu-build-system)
14e2f61a
RW
2064 (arguments
2065 `(#:phases
2066 (modify-phases %standard-phases
2067 ;; Fix a collision between a local variable and a definition from
2068 ;; glibc's string.h.
2069 (add-after 'unpack 'fix-collision
2070 (lambda _
2071 (substitute* "gdk/gdkglshapes.c"
2072 ((" index") " triangle_index"))
2073 #t)))))
ed19903d
JD
2074 (inputs `(("gtk+" ,gtk+-2)
2075 ("mesa" ,mesa)
cc8b02f4 2076 ("glu" ,glu)
ed19903d
JD
2077 ("libx11" ,libx11)
2078 ("libxt" ,libxt)))
426adbe8
LC
2079 (native-inputs `(("pkg-config" ,pkg-config)
2080 ("glib" ,glib "bin")))
a83b6a06 2081 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2082 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2083 (synopsis "OpenGL extension to GTK+")
35b9e423 2084 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2085additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2086API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2087 (license license:lgpl2.1+)))
3600420e
JD
2088
2089(define-public glade3
2090 (package
2091 (name "glade")
c6571adb 2092 (version "3.22.1")
b38e45d8
EB
2093 (source (origin
2094 (method url-fetch)
2095 (uri (string-append "mirror://gnome/sources/" name "/"
2096 (version-major+minor version) "/"
f5ca44b8 2097 name "-" version ".tar.xz"))
3600420e 2098 (sha256
f714d9fe 2099 (base32
c6571adb 2100 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 2101 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
2102 (arguments
2103 `(#:tests? #f ; needs X, GL, and software rendering
2104 #:phases
2105 (modify-phases %standard-phases
2106 (add-before 'configure 'fix-docbook
2107 (lambda* (#:key inputs #:allow-other-keys)
2108 (substitute* "man/Makefile.in"
2109 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2110 (string-append (assoc-ref inputs "docbook-xsl")
2111 "/xml/xsl/docbook-xsl-"
2112 ,(package-version docbook-xsl)
2113 "/manpages/docbook.xsl")))
2114 #t)))))
3600420e 2115 (inputs
f5ca44b8 2116 `(("gtk+" ,gtk+)
3600420e
JD
2117 ("libxml2" ,libxml2)))
2118 (native-inputs
2119 `(("intltool" ,intltool)
f5ca44b8
RW
2120 ("itstool" ,itstool)
2121 ("libxslt" ,libxslt) ;for xsltproc
2122 ("docbook-xml" ,docbook-xml-4.2)
2123 ("docbook-xsl" ,docbook-xsl)
2124 ("python" ,python-2)
3600420e
JD
2125 ("pkg-config" ,pkg-config)))
2126 (home-page "https://glade.gnome.org")
2127 (synopsis "GTK+ rapid application development tool")
2128 (description "Glade is a rapid application development (RAD) tool to
2129enable quick & easy development of user interfaces for the GTK+ toolkit and
2130the GNOME desktop environment.")
1dd26275
LC
2131 (license license:lgpl2.0+)))
2132
2133(define-public libcroco
2134 (package
2135 (name "libcroco")
8bdacad2 2136 (version "0.6.13")
1dd26275
LC
2137 (source (origin
2138 (method url-fetch)
b38e45d8
EB
2139 (uri (string-append "mirror://gnome/sources/" name "/"
2140 (version-major+minor version) "/"
2141 name "-" version ".tar.xz"))
1dd26275
LC
2142 (sha256
2143 (base32
8bdacad2 2144 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2145 (build-system gnu-build-system)
2146 (native-inputs
2147 `(("pkg-config" ,pkg-config)))
2148 (inputs
2149 `(("glib" ,glib)
2150 ("libxml2" ,libxml2)
2151 ("zlib" ,zlib)))
2152 (home-page "https://github.com/GNOME/libcroco")
2153 (synopsis "CSS2 parsing and manipulation library")
2154 (description
2155 "Libcroco is a standalone CSS2 parsing and manipulation library.
2156The parser provides a low level event driven SAC-like API and a CSS object
2157model like API. Libcroco provides a CSS2 selection engine and an experimental
2158XML/CSS rendering engine.")
2159
2160 ;; LGPLv2.1-only.
2161 (license license:lgpl2.1)))
25178594
LC
2162
2163(define-public libgsf
2164 (package
2165 (name "libgsf")
8d1644a1 2166 (version "1.14.46")
25178594
LC
2167 (source (origin
2168 (method url-fetch)
b38e45d8
EB
2169 (uri (string-append "mirror://gnome/sources/" name "/"
2170 (version-major+minor version) "/"
2171 name "-" version ".tar.xz"))
25178594
LC
2172 (sha256
2173 (base32
8d1644a1 2174 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
2175 (build-system gnu-build-system)
2176 (native-inputs
2177 `(("intltool" ,intltool)
2178 ("pkg-config" ,pkg-config)))
2179 (inputs
2180 `(("python" ,python)
2181 ("zlib" ,zlib)
2182 ("bzip2" ,bzip2)))
2183 (propagated-inputs
2184 `(("gdk-pixbuf" ,gdk-pixbuf)
2185 ("glib" ,glib)
2186 ("libxml2" ,libxml2)))
f032d0be 2187 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2188 (synopsis "GNOME's Structured File Library")
2189 (description
2190 "Libgsf aims to provide an efficient extensible I/O abstraction for
2191dealing with different structured file formats.")
2192
2193 ;; LGPLv2.1-only.
2194 (license license:lgpl2.1)))
63016e7c
LC
2195
2196(define-public librsvg
f67417a1 2197 (package
35b256f5 2198 (replacement librsvg/fixed)
f67417a1
MB
2199 (name "librsvg")
2200 (version "2.40.20")
2201 (source (origin
2202 (method url-fetch)
2203 (uri (string-append "mirror://gnome/sources/" name "/"
2204 (version-major+minor version) "/"
2205 name "-" version ".tar.xz"))
2206 (sha256
2207 (base32
2208 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2209 (build-system gnu-build-system)
2210 (arguments
2211 `(#:configure-flags
2212 (list "--disable-static"
2213 "--enable-vala") ; needed for e.g. gnome-mines
2214 #:phases
2215 (modify-phases %standard-phases
2216 (add-before 'configure 'pre-configure
2217 (lambda* (#:key inputs #:allow-other-keys)
2218 (substitute* "gdk-pixbuf-loader/Makefile.in"
2219 ;; By default the gdk-pixbuf loader is installed under
2220 ;; gdk-pixbuf's prefix. Work around that.
2221 (("gdk_pixbuf_moduledir = .*$")
2222 (string-append "gdk_pixbuf_moduledir = "
2223 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2224 "loaders\n"))
2225 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2226 (("gdk_pixbuf_cache_file = .*$")
2227 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2228 #t))
2229 (add-before 'check 'remove-failing-tests
2230 (lambda _
2231 (with-directory-excursion "tests/fixtures/reftests"
2232 (for-each delete-file
2233 '(;; This test fails on i686:
2234 "svg1.1/masking-path-04-b.svg"
2235 ;; This test fails on armhf:
2236 "svg1.1/masking-mask-01-b.svg"
2237 ;; This test fails on aarch64:
2238 "bugs/777834-empty-text-children.svg")))
2239 #t)))))
2240 (native-inputs
2241 `(("pkg-config" ,pkg-config)
2242 ("vala" ,vala)
2243 ("glib" ,glib "bin") ; glib-mkenums, etc.
2244 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2245 (inputs
2246 `(("pango" ,pango)
2247 ("libcroco" ,libcroco)
2248 ("bzip2" ,bzip2)
2249 ("libgsf" ,libgsf)
2250 ("libxml2" ,libxml2)))
2251 (propagated-inputs
2252 ;; librsvg-2.0.pc refers to all of that.
2253 `(("cairo" ,cairo)
2254 ("gdk-pixbuf" ,gdk-pixbuf)
2255 ("glib" ,glib)))
2256 (home-page "https://wiki.gnome.org/LibRsvg")
2257 (synopsis "Render SVG files using Cairo")
2258 (description
2259 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2260library.")
2261 (license license:lgpl2.0+)))
2262
23f33de1
EF
2263(define librsvg/fixed
2264 (package
2265 (inherit librsvg)
2266 (name "librsvg")
2267 (version "2.40.21")
2268 (source (origin
2269 (method url-fetch)
2270 (uri (string-append "mirror://gnome/sources/" name "/"
2271 (version-major+minor version) "/"
2272 name "-" version ".tar.xz"))
2273 (sha256
2274 (base32
2275 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))))
2276
f67417a1 2277(define-public librsvg-next
63016e7c 2278 (package
25d39a2a 2279 (inherit librsvg)
63016e7c 2280 (name "librsvg")
3276e123 2281 (version "2.46.4")
69568670
EF
2282 (source (origin
2283 (method url-fetch)
2284 (uri (string-append "mirror://gnome/sources/librsvg/"
2285 (version-major+minor version) "/"
2286 "librsvg-" version ".tar.xz"))
2287 (sha256
2288 (base32
2289 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2290 (modules '((guix build utils)))
2291 (snippet
2292 '(begin (delete-file-recursively "vendor")
2293 ;; Don't demand an exact version for string_cache
2294 (substitute* "rsvg_internals/Cargo.toml"
2295 (("\"=") "\""))
2296 #t))))
2297 (build-system cargo-build-system)
63016e7c 2298 (arguments
69568670
EF
2299 `(#:modules ((guix build cargo-build-system)
2300 (guix build utils)
2301 ((guix build gnu-build-system) #:prefix gnu:))
2302 #:vendor-dir "vendor"
2303 #:cargo-inputs
2304 (("rust-bitflags" ,rust-bitflags-1)
2305 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2306 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2307 ("rust-cssparser" ,rust-cssparser-0.25)
2308 ("rust-data-url" ,rust-data-url-0.1)
2309 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2310 ("rust-encoding" ,rust-encoding-0.2)
2311 ("rust-float-cmp" ,rust-float-cmp-0.5)
2312 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2313 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2314 ("rust-gio" ,rust-gio-0.7)
2315 ("rust-gio-sys" ,rust-gio-sys-0.9)
2316 ("rust-glib" ,rust-glib-0.8)
2317 ("rust-glib-sys" ,rust-glib-sys-0.9)
2318 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2319 ("rust-itertools" ,rust-itertools-0.8)
2320 ("rust-language-tags" ,rust-language-tags-0.2)
2321 ("rust-lazy-static" ,rust-lazy-static-1)
2322 ("rust-libc" ,rust-libc-0.2)
2323 ("rust-locale-config" ,rust-locale-config-0.3)
2324 ("rust-markup5ever" ,rust-markup5ever-0.9)
2325 ("rust-nalgebra" ,rust-nalgebra-0.18)
2326 ("rust-num-traits" ,rust-num-traits-0.2)
2327 ("rust-pkg-config" ,rust-pkg-config-0.3)
2328 ("rust-pango" ,rust-pango-0.7)
2329 ("rust-pango-sys" ,rust-pango-sys-0.9)
2330 ("rust-pangocairo" ,rust-pangocairo-0.8)
2331 ("rust-phf" ,rust-phf-0.7)
2332 ("rust-rayon" ,rust-rayon-1.3)
2333 ("rust-rctree" ,rust-rctree-0.3)
2334 ("rust-string-cache" ,rust-string-cache-0.7)
2335 ("rust-regex" ,rust-regex-1.3)
2336 ("rust-url" ,rust-url-2.1)
2337 ("rust-xml-rs" ,rust-xml-rs-0.8))
2338 #:cargo-development-inputs
2339 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2340 ("rust-criterion" ,rust-criterion-0.2))
ec47c07d 2341 #:phases
b6239e45 2342 (modify-phases %standard-phases
69568670 2343 (add-after 'unpack 'prepare-for-build
ec47c07d 2344 (lambda _
69568670
EF
2345 ;; In lieu of #:make-flags
2346 (setenv "CC" "gcc")
2347 ;; Something about the build environment resists building
2348 ;; successfully with the '--locked' flag.
2349 (substitute* '("Makefile.am"
2350 "Makefile.in")
2351 (("--locked") ""))
2352 #t))
b6239e45 2353 (add-before 'configure 'pre-configure
69568670 2354 (lambda _
b6239e45
EF
2355 (substitute* "gdk-pixbuf-loader/Makefile.in"
2356 ;; By default the gdk-pixbuf loader is installed under
2357 ;; gdk-pixbuf's prefix. Work around that.
2358 (("gdk_pixbuf_moduledir = .*$")
2359 (string-append "gdk_pixbuf_moduledir = "
2360 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2361 "loaders\n"))
2362 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2363 (("gdk_pixbuf_cache_file = .*$")
2364 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2365 #t))
69568670
EF
2366 (add-after 'configure 'gnu-configure
2367 (assoc-ref gnu:%standard-phases 'configure))
2368 ;(lambda* (#:key outputs #:allow-other-keys)
2369 ; ((assoc-ref gnu:%standard-phases 'configure)
2370 ; #:outputs outputs
2371 ; #:configure-flags ("--disable-static"
2372 ; "--enable-vala"))))
2373 (add-after 'configure 'dont-vendor-self
2374 (lambda* (#:key vendor-dir #:allow-other-keys)
2375 ;; Don't keep the whole tarball in the vendor directory
2376 (delete-file-recursively
2377 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2378 #t))
2379 (replace 'build
2380 (assoc-ref gnu:%standard-phases 'build))
2381 (replace 'check
2382 (lambda* args
2383 ((assoc-ref gnu:%standard-phases 'check)
2384 #:test-target "check")))
2385 (replace 'install
2386 (assoc-ref gnu:%standard-phases 'install))
ec47c07d 2387 (add-before 'check 'remove-failing-tests
b6239e45 2388 (lambda _
64a153bd
MW
2389 (with-directory-excursion "tests/fixtures/reftests"
2390 (for-each delete-file
ec47c07d
MB
2391 '(;; The images produced by these tests differ slightly
2392 ;; from their reference counterparts due to differences
2393 ;; in the build environment (missing fonts, etc). See
2394 ;; <tests/README.md> for details.
2395 ;; These fail on x86_64.
2396 "svg1.1/coords-viewattr-02-b.svg"
2397 "svg1.1/filters-composite-04-f.svg"
2398 "svg1.1/filters-image-01-b.svg"
2399 "svg1.1/filters-conv-02-f.svg"
2400 "svg1.1/filters-conv-04-f.svg"
2401 ;; This test fails on i686:
64a153bd 2402 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2403 ;; This test fails on armhf:
2404 "svg1.1/masking-mask-01-b.svg"
64a153bd 2405 ;; This test fails on aarch64:
ec47c07d 2406 "bugs/777834-empty-text-children.svg")))
b6239e45 2407 #t)))))
cf9dad6c 2408 (license license:lgpl2.1+)))
5698b8b8
JD
2409
2410(define-public libidl
2411 (package
2412 (name "libidl")
2413 (version "0.8.14")
2414 (source (origin
2415 (method url-fetch)
80a06e62
EF
2416 (uri (string-append "mirror://gnome/sources/libIDL/"
2417 (version-major+minor version) "/"
2418 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2419 (sha256
2420 (base32
2421 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2422 (build-system gnu-build-system)
2423 (inputs `(("glib" ,glib)))
2424 (native-inputs
2425 `(("pkg-config" ,pkg-config)
b3546174 2426 ("flex" ,flex)
5698b8b8
JD
2427 ("bison" ,bison)))
2428 (home-page "http://freecode.com/projects/libidl")
2429 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2430 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2431Definition Language (idl) files, which is a specification for defining
2432portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2433GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2434functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2435 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2436 (license license:lgpl2.0+)))
2437
2438
2439(define-public orbit2
2440 (package
2441 (name "orbit2")
2442 (version "2.14.19")
2443 (source (origin
2444 (method url-fetch)
2e6ecc5c 2445 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2446 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2447 (version-major+minor version) "/"
2448 upstream-name "-" version ".tar.bz2")))
5698b8b8 2449 (sha256
a124bbd2
SB
2450 (base32
2451 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2452 (build-system gnu-build-system)
2453 (arguments
a124bbd2 2454 `(#:configure-flags
8aad2e32
LC
2455 '(;; We don't need static libraries, plus they don't build reproducibly
2456 ;; (non-deterministic ordering of .o files in the archive.)
2457 "--disable-static"
2458
2459 ;; The programmer kindly gives us a hook to turn off deprecation
2460 ;; warnings ...
2461 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2462 ;; ... which they then completly ignore !!
2463 #:phases
dc1d3cde
KK
2464 (modify-phases %standard-phases
2465 (add-before 'configure 'ignore-deprecations
2466 (lambda _
2467 (substitute* "linc2/src/Makefile.in"
2468 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2469 #t)))))
5698b8b8
JD
2470 (inputs `(("glib" ,glib)
2471 ("libidl" ,libidl)))
2472 (native-inputs
2473 `(("pkg-config" ,pkg-config)))
2474 (home-page "https://projects.gnome.org/orbit2/")
2475 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2476 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2477featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2478 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2479 ;; a version. SOME of the code files have licence notices for GPLv2+.
2480 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2481 (license license:gpl2+)
2482 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2483
2484
2485(define-public libbonobo
2486 (package
2487 (name "libbonobo")
2488 (version "2.32.1")
2489 (source (origin
2490 (method url-fetch)
5becd025 2491 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2492 (version-major+minor version)
5becd025 2493 "/" name "-" version ".tar.bz2"))
5698b8b8 2494 (sha256
f1fc45a9 2495 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2496 (patches (search-patches
2497 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2498 (build-system gnu-build-system)
2499 (arguments
2500 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2501 `(#:configure-flags
2502 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2503 ;; ... which they then completly ignore !!
2504 #:phases
dc1d3cde
KK
2505 (modify-phases %standard-phases
2506 (add-before 'configure 'ignore-deprecations
2507 (lambda _
2508 (substitute* "activation-server/Makefile.in"
2509 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2510 #t)))
2511
2512 ;; There's apparently a race condition between the server stub
2513 ;; generation and linking of the example under 'samples/echo' that can
2514 ;; lead do undefined references when building in parallel, as reported
2515 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2516 ;; Thus, disable parallel builds.
2517 #:parallel-build? #f))
5698b8b8
JD
2518 (inputs `(("popt" ,popt)
2519 ("libxml2" ,libxml2)))
2520 ;; The following are Required by the .pc file
44add1ce 2521 (propagated-inputs
5698b8b8
JD
2522 `(("glib" ,glib)
2523 ("orbit2" ,orbit2)))
2524 (native-inputs
2525 `(("intltool" ,intltool)
2526 ("pkg-config" ,pkg-config)
221ed17a 2527 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2528 ("flex" ,flex)
2529 ("bison" ,bison)))
2530 (home-page "https://developer.gnome.org/libbonobo/")
2531 (synopsis "Framework for creating reusable components for use in GNOME applications")
2532 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2533use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2534 ;; Licence not explicitly stated. Source files contain no licence notices.
2535 ;; Tarball contains text of both GPLv2 and LGPLv2
2536 ;; GPLv2 covers both conditions
2537 (license license:gpl2+)))
2538
2539
2540(define-public gconf
2541 (package
2542 (name "gconf")
2543 (version "3.2.6")
2544 (source (origin
2545 (method url-fetch)
a124bbd2
SB
2546 (uri
2547 (let ((upstream-name "GConf"))
2548 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2549 (version-major+minor version) "/"
2550 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2551 (sha256
2552 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2553 (build-system gnu-build-system)
2e88d113 2554 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2555 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2556 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2557 ("orbit2" ,orbit2)))
5698b8b8
JD
2558 (native-inputs
2559 `(("intltool" ,intltool)
221ed17a 2560 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2561 ("pkg-config" ,pkg-config)))
2562 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2563 (synopsis "Store application preferences")
2564 (description "Gconf is a system for storing application preferences. It
2565is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2566 (license license:lgpl2.0+)
2567 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2568
2569
2570(define-public gnome-mime-data
2571 (package
2572 (name "gnome-mime-data")
2573 (version "2.18.0")
2574 (source (origin
2575 (method url-fetch)
b38e45d8
EB
2576 (uri (string-append "mirror://gnome/sources/" name "/"
2577 (version-major+minor version) "/"
2578 name "-" version ".tar.bz2"))
5698b8b8
JD
2579 (sha256
2580 (base32
2581 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2582 (build-system gnu-build-system)
2583 (native-inputs
2584 `(("perl" ,perl)
2585 ("intltool" ,intltool)))
3e6add96
LC
2586 (arguments
2587 '(#:phases (modify-phases %standard-phases
2588 (add-after 'configure 'use-our-intltool
2589 (lambda _
2590 ;; Do not use the bundled intltool commands, which lack
2591 ;; the "dotless @INC" fixes of our 'intltool' package.
2592 (substitute* (find-files "." "^Makefile$")
2593 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2594 (string-append "INTLTOOL_" tool " = intltool-"
2595 (string-downcase tool) "\n")))
2596 #t)))))
f032d0be 2597 (home-page "https://www.gnome.org")
35b9e423 2598 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2599 (description "GNOME Mime Data is a module which contains the base MIME
2600and Application database for GNOME. The data stored by this module is
2601designed to be accessed through the MIME functions in GnomeVFS.")
2602 (license license:gpl2+)))
2603
2604
2605(define-public gnome-vfs
2606 (package
2607 (name "gnome-vfs")
2608 (version "2.24.4")
2609 (source (origin
2610 (method url-fetch)
b38e45d8
EB
2611 (uri (string-append "mirror://gnome/sources/" name "/"
2612 (version-major+minor version) "/"
2613 name "-" version ".tar.bz2"))
5698b8b8 2614 (sha256
9e12bc34
MW
2615 (base32
2616 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2617 (build-system gnu-build-system)
2618 (arguments
db5127d8 2619 `(#:phases
dc1d3cde
KK
2620 (modify-phases %standard-phases
2621 (add-before 'configure 'ignore-deprecations
2622 (lambda _
2623 (substitute* '("libgnomevfs/Makefile.in"
2624 "daemon/Makefile.in")
2625 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2626 #t))
2627 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2628 (lambda _
2629 (substitute* "test/test-async-cancel.c"
2630 (("EXIT_FAILURE") "77"))
2631 #t)))))
2e6ecc5c 2632 (inputs `(("libxml2" ,libxml2)
5698b8b8 2633 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2634 ("gconf" ,gconf)
2635 ("gnome-mime-data" ,gnome-mime-data)
2636 ("zlib" ,zlib)))
2637 (native-inputs
221ed17a
EB
2638 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2639 ("intltool" ,intltool)
5698b8b8
JD
2640 ("pkg-config" ,pkg-config)))
2641 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2642 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2643 (description
2644 "GnomeVFS is the core library used to access files and folders in GNOME
2645applications. It provides a file system abstraction which allows applications
2646to access local and remote files with a single consistent API.")
5698b8b8
JD
2647 (license license:lgpl2.0+)))
2648
2649
2650
2651(define-public libgnome
2652 (package
2653 (name "libgnome")
2654 (version "2.32.1")
2655 (source (origin
2656 (method url-fetch)
b38e45d8
EB
2657 (uri (string-append "mirror://gnome/sources/" name "/"
2658 (version-major+minor version) "/"
2659 name "-" version ".tar.bz2"))
5698b8b8
JD
2660 (sha256
2661 (base32
17c3eea7
LC
2662 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2663 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2664 (build-system gnu-build-system)
2665 (arguments
2666 `(#:phases
dc1d3cde
KK
2667 (modify-phases %standard-phases
2668 (add-before 'configure 'enable-deprecated
2669 (lambda _
2670 (substitute* "libgnome/Makefile.in"
2671 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2672 #t)))))
25338e9f 2673 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2674 (native-inputs
221ed17a
EB
2675 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2676 ("intltool" ,intltool)
5698b8b8
JD
2677 ("pkg-config" ,pkg-config)))
2678 ;; The following are listed as Required in the .pc file
2679 ;; (except for libcanberra -- which seems to be oversight on the part
2680 ;; of the upstream developers -- anything that links against libgnome,
2681 ;; must also link against libcanberra
2682 (propagated-inputs
2683 `(("libcanberra" ,libcanberra)
2684 ("libbonobo" ,libbonobo)
2685 ("gconf" ,gconf)
a640d3d5
LC
2686 ("gnome-vfs" ,gnome-vfs)
2687 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2688 (home-page "https://developer.gnome.org/libgnome/")
2689 (synopsis "Useful routines for building applications")
2690 (description "The libgnome library provides a number of useful routines
2691for building modern applications, including session management, activation of
2692files and URIs, and displaying help.")
2693 (license license:lgpl2.0+)))
2694
2695
2696(define-public libart-lgpl
2697 (package
2698 (name "libart-lgpl")
76c9b6aa 2699 (version "2.3.21")
5698b8b8
JD
2700 (source (origin
2701 (method url-fetch)
2702 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2703 (string-append "mirror://gnome/sources/" upstream-name "/"
2704 (version-major+minor version) "/"
2705 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2706 (sha256
2707 (base32
76c9b6aa 2708 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2709 (build-system gnu-build-system)
2710 (native-inputs
2711 `(("pkg-config" ,pkg-config)))
2712 (home-page "https://people.gnome.org/~mathieu/libart")
2713 (synopsis "2D drawing library")
2e6ecc5c 2714 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2715high-quality vector-based 2D library with antialiasing and alpha composition.")
2716 (license license:lgpl2.0+)))
2717
2718
2719
2720(define-public libgnomecanvas
2721 (package
2722 (name "libgnomecanvas")
2723 (version "2.30.3")
2724 (source (origin
2725 (method url-fetch)
b38e45d8
EB
2726 (uri (string-append "mirror://gnome/sources/" name "/"
2727 (version-major+minor version) "/"
2728 name "-" version ".tar.gz"))
5698b8b8
JD
2729 (sha256
2730 (base32
2731 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2732 (build-system gnu-build-system)
2733 ;; Mentioned as Required in the .pc file
2734 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2735 ("gtk+" ,gtk+-2)))
2736 (native-inputs
2737 `(("intltool" ,intltool)
221ed17a 2738 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2739 ("pkg-config" ,pkg-config)))
2740 (home-page "https://developer.gnome.org/libgnomecanvas/")
2741 (synopsis "Flexible widget for creating interactive structured graphics")
2742 (description "The GnomeCanvas widget provides a flexible widget for
2743creating interactive structured graphics.")
2744 (license license:lgpl2.0+)))
2745
eadc734e
RW
2746(define-public libgnomecanvasmm
2747 (package
2748 (name "libgnomecanvasmm")
2749 (version "2.26.0")
2750 (source (origin
2751 (method url-fetch)
2752 (uri (string-append "mirror://gnome/sources/" name "/"
2753 (version-major+minor version) "/"
2754 name "-" version ".tar.bz2"))
2755 (sha256
2756 (base32
2757 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2758 (build-system gnu-build-system)
2759 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2760 (native-inputs
2761 `(("gtkmm-2" ,gtkmm-2)
2762 ("pkg-config" ,pkg-config)))
8e933cb3 2763 (home-page "https://gtkmm.org")
eadc734e
RW
2764 (synopsis "C++ bindings to the GNOME Canvas library")
2765 (description "C++ bindings to the GNOME Canvas library.")
2766 (license license:lgpl2.0+)))
2767
5698b8b8
JD
2768(define-public libgnomeui
2769 (package
2770 (name "libgnomeui")
2771 (version "2.24.5")
2772 (source (origin
2773 (method url-fetch)
b38e45d8
EB
2774 (uri (string-append "mirror://gnome/sources/" name "/"
2775 (version-major+minor version) "/"
2776 name "-" version ".tar.bz2"))
8fa1872a 2777 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2778 (sha256
2779 (base32
2780 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2781 (build-system gnu-build-system)
2782 ;; Mentioned as Required in the .pc file
0a38a497
AE
2783 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2784 ("libgnome" ,libgnome)
2785 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2786 ("libgnome-keyring" ,libgnome-keyring)))
0a38a497 2787 (inputs `(("libjpeg" ,libjpeg)
5698b8b8
JD
2788 ("popt" ,popt)
2789 ("libbonobo" ,libbonobo)
2790 ("libxml2" ,libxml2)
2791 ("libglade" ,libglade)))
2792 (native-inputs
221ed17a
EB
2793 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2794 ("intltool" ,intltool)
5698b8b8
JD
2795 ("pkg-config" ,pkg-config)))
2796 (home-page "https://developer.gnome.org/libgnomeui/")
2797 (synopsis "Additional widgets for applications")
35b9e423 2798 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2799applications. Many of the widgets from libgnomeui have already been
2800ported to GTK+.")
5698b8b8
JD
2801 (license license:lgpl2.0+)))
2802
2803(define-public libglade
2804 (package
2805 (name "libglade")
2806 (version "2.6.4")
2807 (source (origin
2808 (method url-fetch)
b38e45d8
EB
2809 (uri (string-append "mirror://gnome/sources/" name "/"
2810 (version-major+minor version) "/"
2811 name "-" version ".tar.bz2"))
5698b8b8
JD
2812 (sha256
2813 (base32
2814 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2815 (build-system gnu-build-system)
2816 (inputs
92dcc23d
AE
2817 `(("python" ,python))) ;; needed for the optional libglade-convert program
2818 (propagated-inputs
5698b8b8 2819 `(("gtk+-2" ,gtk+-2)
92dcc23d 2820 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2821 (native-inputs
2822 `(("pkg-config" ,pkg-config)))
2823 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2824 (synopsis "Load glade interfaces and access the glade built widgets")
2825 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2826graphical interfaces described in glade files and for accessing the
2827widgets built in the loading process.")
2828 (license license:gpl2+))) ; This is correct. GPL not LGPL
2829
2830(define-public libgnomeprint
eb497b66
LC
2831 ;; This library has been deprecated since 2006; see
2832 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2833 (package
2834 (name "libgnomeprint")
d19db454 2835 (version "2.18.8")
5698b8b8
JD
2836 (source (origin
2837 (method url-fetch)
b38e45d8
EB
2838 (uri (string-append "mirror://gnome/sources/" name "/"
2839 (version-major+minor version) "/"
2840 name "-" version ".tar.bz2"))
5698b8b8
JD
2841 (sha256
2842 (base32
d19db454 2843 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2844 (build-system gnu-build-system)
2845 (inputs
2846 `(("popt" ,popt)
2847 ("libart-lgpl" ,libart-lgpl)
2848 ("gtk+" ,gtk+-2)
44add1ce 2849 ("libxml2" ,libxml2)))
5698b8b8
JD
2850 (native-inputs
2851 `(("intltool" ,intltool)
221ed17a 2852 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2853 ("pkg-config" ,pkg-config)))
2854 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2855 (synopsis "Printing framework for GNOME")
eb497b66
LC
2856 (description
2857 "GNOME-print was a printing framework for GNOME. It has been deprecated
2858since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2859 (license license:lgpl2.0+)))
2860
2861
2862(define-public libgnomeprintui
eb497b66 2863 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2864 (package
2865 (name "libgnomeprintui")
36053d7f 2866 (version "2.18.6")
5698b8b8
JD
2867 (source (origin
2868 (method url-fetch)
b38e45d8
EB
2869 (uri (string-append "mirror://gnome/sources/" name "/"
2870 (version-major+minor version) "/"
2871 name "-" version ".tar.bz2"))
5698b8b8
JD
2872 (sha256
2873 (base32
36053d7f 2874 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2875 (build-system gnu-build-system)
2876 ;; Mentioned as Required in the .pc file
2877 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2878 (inputs `(("gtk+" ,gtk+-2)
2879 ("glib" ,glib)
2880 ("gnome-icon-theme" ,gnome-icon-theme)
2881 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2882 ("libxml2" ,libxml2)))
5698b8b8
JD
2883 (native-inputs
2884 `(("intltool" ,intltool)
2885 ("pkg-config" ,pkg-config)))
2886 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2887 (synopsis "Printing framework for GNOME")
eb497b66 2888 (description (package-description libgnomeprint))
5698b8b8
JD
2889 (license license:lgpl2.0+)))
2890
5698b8b8
JD
2891(define-public libbonoboui
2892 (package
2893 (name "libbonoboui")
2894 (version "2.24.5")
2895 (source (origin
2896 (method url-fetch)
b38e45d8
EB
2897 (uri (string-append "mirror://gnome/sources/" name "/"
2898 (version-major+minor version) "/"
2899 name "-" version ".tar.bz2"))
5698b8b8
JD
2900 (sha256
2901 (base32
2902 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2903 (build-system gnu-build-system)
2904 (arguments
2905 `(#:phases
dc1d3cde
KK
2906 (modify-phases %standard-phases
2907 (add-before 'check 'start-xserver
2908 (lambda* (#:key inputs #:allow-other-keys)
2909 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2910 (disp ":1"))
2911
2912 (setenv "HOME" (getcwd))
2913 (setenv "DISPLAY" disp)
2914 ;; There must be a running X server and make check doesn't start one.
2915 ;; Therefore we must do it.
2916 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2917 ;; Mentioned as Required by the .pc file
2918 (propagated-inputs `(("libxml2" ,libxml2)))
2919 (inputs
2920 `(("popt" ,popt)
2921 ("pangox-compat" ,pangox-compat)
2922 ("libgnome" ,libgnome)
2923 ("libgnomecanvas" ,libgnomecanvas)
2924 ("libglade" ,libglade)))
2925 (native-inputs
221ed17a
EB
2926 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2927 ("intltool" ,intltool)
ff337525 2928 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2929 ("pkg-config" ,pkg-config)))
2930 (home-page "https://developer.gnome.org/libbonoboui/")
2931 (synopsis "Some user interface controls using Bonobo")
2932 (description "The Bonobo UI library provides a number of user interface
2933controls using the Bonobo component framework.")
2934 (license license:lgpl2.0+)))
2935
fecbf86e
SB
2936(define-public libwnck
2937 (package
2938 (name "libwnck")
d3b40696 2939 (version "3.32.0")
fecbf86e
SB
2940 (source (origin
2941 (method url-fetch)
2942 (uri (string-append "mirror://gnome/sources/" name "/"
2943 (version-major+minor version) "/"
2944 name "-" version ".tar.xz"))
2945 (sha256
ad9b8987 2946 (base32
d3b40696
KK
2947 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2948 (build-system meson-build-system)
fecbf86e
SB
2949 (native-inputs
2950 `(("pkg-config" ,pkg-config)
d3b40696
KK
2951 ("glib" ,glib "bin") ; for glib-mkenums
2952 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2953 ("intltool" ,intltool)))
2954 (propagated-inputs
427476d5
SB
2955 `(("gtk+" ,gtk+)
2956 ("libxres" ,libxres)
2957 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2958 (home-page "https://developer.gnome.org/libwnck/")
2959 (synopsis "Window Navigator Construction Kit")
2960 (description
2961 "Libwnck is the Window Navigator Construction Kit, a library for use in
2962writing pagers, tasklists, and more generally applications that are dealing
2963with window management. It tries hard to respect the Extended Window Manager
2964Hints specification (EWMH).")
2965 (license license:lgpl2.0+)))
2966
2967;; stable version for gtk2, required by xfwm4.
dbb7a081 2968(define-public libwnck-2
fecbf86e
SB
2969 (package (inherit libwnck)
2970 (name "libwnck")
2971 (version "2.30.7")
2972 (source (origin
2973 (method url-fetch)
2974 (uri (string-append "mirror://gnome/sources/" name "/"
2975 (version-major+minor version) "/"
2976 name "-" version ".tar.xz"))
2977 (sha256
2978 (base32
2979 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2980 (build-system gnu-build-system)
2981 (native-inputs
2982 `(("pkg-config" ,pkg-config)
2983 ("intltool" ,intltool)))
fecbf86e 2984 (propagated-inputs
427476d5
SB
2985 `(("gtk+" ,gtk+-2)
2986 ("libxres" ,libxres)
2987 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2988
2989(define-public goffice
2990 (package
2991 (name "goffice")
09abffcc 2992 (version "0.10.46")
b804c61e
JD
2993 (source (origin
2994 (method url-fetch)
16243f0b 2995 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2996 (version-major+minor version) "/"
16243f0b 2997 "goffice-" version ".tar.xz"))
b804c61e 2998 (sha256
09abffcc 2999 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3000 (build-system gnu-build-system)
72a06d3e 3001 (outputs '("out"
355420c6 3002 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3003 (arguments
3004 '(#:configure-flags (list (string-append "--with-html-dir="
3005 (assoc-ref %outputs "doc")
3006 "/share/gtk-doc/html"))))
b804c61e
JD
3007 (inputs
3008 `(("gtk+" ,gtk+)
3009 ("libgsf" ,libgsf)
3010 ("librsvg" ,librsvg)
3011 ("libxslt" ,libxslt)
3012 ("libxml2" ,libxml2)))
3013 (native-inputs
3014 `(("intltool" ,intltool)
f280cdb1 3015 ("glib" ,glib "bin")
b804c61e
JD
3016 ("pkg-config" ,pkg-config)))
3017 (home-page "https://developer.gnome.org/goffice/")
3018 (synopsis "Document-centric objects and utilities")
3019 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3020 (license
b804c61e
JD
3021 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3022 ;; Note: NOT LGPL
3023 (list license:gpl2 license:gpl3))))
3024
c024ae36
RW
3025(define-public goffice-0.8
3026 (package (inherit goffice)
3027 (version "0.8.17")
3028 (source (origin
3029 (method url-fetch)
3030 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3031 (version-major+minor version) "/"
3032 (package-name goffice) "-" version ".tar.xz"))
3033 (sha256
3034 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3035 (arguments
3036 `(#:phases
dc1d3cde
KK
3037 (modify-phases %standard-phases
3038 (add-after 'unpack 'fix-pcre-check
3039 (lambda _
3040 ;; Only glib.h can be included directly. See
3041 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3042 (substitute* "configure"
3043 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3044
3045 ,@(package-arguments goffice)))
c024ae36
RW
3046 (propagated-inputs
3047 ;; libgoffice-0.8.pc mentions libgsf-1
3048 `(("libgsf" ,libgsf)))
3049 (inputs
3050 `(("gtk" ,gtk+-2)
3051 ,@(alist-delete "gtk" (package-inputs goffice))))))
3052
b804c61e
JD
3053(define-public gnumeric
3054 (package
3055 (name "gnumeric")
f0517b5d 3056 (version "1.12.46")
b804c61e
JD
3057 (source (origin
3058 (method url-fetch)
b7fd0217 3059 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3060 (version-major+minor version) "/"
b7fd0217 3061 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3062 (sha256
3063 (base32
f0517b5d 3064 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3065 (build-system glib-or-gtk-build-system)
b804c61e
JD
3066 (arguments
3067 `(;; The gnumeric developers don't worry much about failing tests.
3068 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3069 #:tests? #f
b804c61e 3070 #:phases
7bcbd40d
EF
3071 (modify-phases %standard-phases
3072 (add-before
3073 'configure 'pre-conf
3074 (lambda* (#:key outputs #:allow-other-keys)
3075 ;; Make install tries to write into the directory of goffice
3076 ;; I am informed that this only affects the possibility to embed a
3077 ;; spreadsheet inside an Abiword document. So presumably when we
3078 ;; package Abiword we'll have to refer it to this directory.
3079 (substitute* "configure"
3080 (("^GOFFICE_PLUGINS_DIR=.*")
3081 (string-append "GOFFICE_PLUGINS_DIR="
3082 (assoc-ref outputs "out")
3083 "/goffice/plugins"))))))))
b804c61e
JD
3084 (inputs
3085 `(("glib" ,glib)
3086 ("gtk+" ,gtk+)
3087 ("goffice" ,goffice)
3088 ("libgsf" ,libgsf)
7bcbd40d 3089 ("librsvg" ,librsvg)
b804c61e 3090 ("libxml2" ,libxml2)
7bcbd40d 3091 ("libxslt" ,libxslt)
2e4c5457 3092 ("python" ,python-2)
6983ba56 3093 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3094 ("zlib" ,zlib)))
3095 (native-inputs
6983ba56 3096 `(("bison" ,bison)
1ed398d1 3097 ("docbook-xml" ,docbook-xml)
6983ba56 3098 ("intltool" ,intltool)
3a2efbc8 3099 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
b9663471 3100 ("glib:bin" ,glib "bin")
b804c61e
JD
3101 ("pkg-config" ,pkg-config)))
3102 (home-page "http://www.gnumeric.org")
66672a45
LC
3103 (synopsis "Spreadsheet application")
3104 (description
3105 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3106interoperable with other spreadsheet applications. It has a vast array of
3107features beyond typical spreadsheet functionality, such as support for linear
3108and non-linear solvers, statistical analysis, and telecommunication
3109engineering.")
3110 (license
b804c61e
JD
3111 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3112 (list license:gpl2 license:gpl3))))
6f885c05
FB
3113
3114(define-public gnome-themes-standard
3115 (package
3116 (name "gnome-themes-standard")
0b7b8fb0 3117 (version "3.22.3")
6f885c05
FB
3118 (source
3119 (origin
3120 (method url-fetch)
2e6ecc5c 3121 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3122 (version-major+minor version) "/" name "-"
3123 version ".tar.xz"))
3124 (sha256
3125 (base32
0b7b8fb0 3126 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3127 (build-system gnu-build-system)
8ac70c7f
SB
3128 (arguments
3129 '(#:configure-flags
3130 ;; Don't create 'icon-theme.cache'.
3131 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3132 (true (string-append coreutils "/bin/true")))
3133 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3134 (inputs
3135 `(("gtk+" ,gtk+)
3136 ("gtk+-2" ,gtk+-2)
3137 ("librsvg" ,librsvg)
3138 ("libxml2" ,libxml2)
3139 ("glib" ,glib)))
3140 (native-inputs
3141 `(("intltool" ,intltool)
3142 ("glib:bin" ,glib "bin")
3143 ("pkg-config" ,pkg-config)))
6f885c05
FB
3144 (home-page "https://launchpad.net/gnome-themes-standard")
3145 (synopsis "Default GNOME 3 themes")
3146 (description
3147 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3148 (license license:lgpl2.1+)))
5a659a48 3149
df90c701
RW
3150(define-public seahorse
3151 (package
3152 (name "seahorse")
bcea3c11 3153 (version "3.32.2")
df90c701
RW
3154 (source
3155 (origin
3156 (method url-fetch)
3157 (uri (string-append "mirror://gnome/sources/" name "/"
3158 (version-major+minor version) "/" name "-"
3159 version ".tar.xz"))
3160 (sha256
3161 (base32
bcea3c11 3162 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
3163 (patches (search-patches
3164 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3165 (build-system meson-build-system)
3166 (arguments
bcea3c11
KK
3167 '(#:glib-or-gtk? #t
3168 #:phases
af561664
MÁAV
3169 (modify-phases %standard-phases
3170 (add-after 'unpack 'skip-gtk-update-icon-cache
3171 ;; Don't create 'icon-theme.cache'.
3172 (lambda _
3173 (substitute* "build-aux/meson_post_install.py"
3174 (("gtk-update-icon-cache") "true"))
3175 #t)))))
df90c701
RW
3176 (inputs
3177 `(("gtk+" ,gtk+)
3178 ("gcr" ,gcr)
34b979b9 3179 ("gnupg" ,gnupg)
df90c701 3180 ("gpgme" ,gpgme)
34b979b9 3181 ("openldap" ,openldap)
4a1bf090 3182 ("openssh" ,openssh)
af561664 3183 ("avahi" ,avahi)
bcea3c11 3184 ("libpwquality" ,libpwquality)
34b979b9
EF
3185 ("libsecret" ,libsecret)
3186 ("libsoup" ,libsoup)))
df90c701 3187 (native-inputs
af561664 3188 `(("gettext" ,gettext-minimal)
df90c701
RW
3189 ("glib:bin" ,glib "bin")
3190 ("itstool" ,itstool)
bcb354ad 3191 ("pkg-config" ,pkg-config)
af561664 3192 ("vala" ,vala)
bcb354ad 3193 ("xmllint" ,libxml2)))
bcea3c11 3194 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3195 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3196 (description
3197 "Seahorse is a GNOME application for managing encryption keys and
3198passwords in the GNOME keyring.")
3199 (license license:gpl2+)))
3200
5a659a48
SB
3201(define-public vala
3202 (package
3203 (name "vala")
2d6872f6 3204 (version "0.44.5")
5a659a48
SB
3205 (source (origin
3206 (method url-fetch)
3207 (uri (string-append "mirror://gnome/sources/" name "/"
3208 (version-major+minor version) "/"
3209 name "-" version ".tar.xz"))
3210 (sha256
3211 (base32
2d6872f6 3212 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
5a659a48 3213 (build-system gnu-build-system)
1ea90625
SB
3214 (arguments
3215 '(#:phases
3216 (modify-phases %standard-phases
f4925a4f 3217 (add-before 'check 'pre-check
1ea90625
SB
3218 (lambda _
3219 (setenv "CC" "gcc")
8839b6be
RW
3220 (substitute* "valadoc/tests/testrunner.sh"
3221 (("export PKG_CONFIG_PATH=" m)
3222 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3223 ;; For missing '/etc/machine-id'.
3224 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3225 #t)))))
5a659a48
SB
3226 (native-inputs
3227 `(("pkg-config" ,pkg-config)
3228 ("flex" ,flex)
3229 ("bison" ,bison)
3230 ("xsltproc" ,libxslt)
3231 ("dbus" ,dbus) ; for dbus tests
3232 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3233 (inputs
3234 `(("graphviz" ,graphviz)))
5a659a48 3235 (propagated-inputs
8839b6be 3236 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3237 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3238 (synopsis "Compiler for the GObject type system")
3239 (description
3240 "Vala is a programming language that aims to bring modern programming
3241language features to GNOME developers without imposing any additional runtime
3242requirements and without using a different ABI compared to applications and
3243libraries written in C.")
3244 (license license:lgpl2.1+)))
ea57378f
SB
3245
3246(define-public vte
3247 (package
3248 (name "vte")
68c47474 3249 (version "0.58.3")
ea57378f
SB
3250 (source (origin
3251 (method url-fetch)
ac87ffb8 3252 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3253 (version-major+minor version) "/"
ac87ffb8 3254 "vte-" version ".tar.xz"))
ea57378f
SB
3255 (sha256
3256 (base32
68c47474
TGR
3257 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3258 (build-system meson-build-system)
ea57378f
SB
3259 (native-inputs
3260 `(("pkg-config" ,pkg-config)
3261 ("intltool" ,intltool)
3262 ("vala" ,vala)
3263 ("gobject-introspection" ,gobject-introspection)
68c47474 3264 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3265 ("gperf" ,gperf)
ea57378f
SB
3266 ("xmllint" ,libxml2)))
3267 (propagated-inputs
68c47474
TGR
3268 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3269 ("gnutls" ,gnutls) ; ditto
3270 ("pcre2" ,pcre2))) ; ditto
f032d0be 3271 (home-page "https://www.gnome.org/")
ea57378f
SB
3272 (synopsis "Virtual Terminal Emulator")
3273 (description
3274 "VTE is a library (libvte) implementing a terminal emulator widget for
3275GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3276gnome-terminal, but can also be used to embed a console/terminal in games,
3277editors, IDEs, etc.")
3278 (license license:lgpl2.1+)))
3279
c44fb4df
MO
3280(define-public vte-ng
3281 (package
3282 (inherit vte)
3283 (name "vte-ng")
24f4fcbe 3284 (version "0.58.2.a")
afd90f8d 3285 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3286 (source (origin
3287 (method git-fetch)
3288 (uri (git-reference (url home-page) (commit version)))
3289 (file-name (git-file-name name version))
3290 (sha256
3291 (base32
24f4fcbe
MB
3292 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3293 (build-system meson-build-system)
c44fb4df
MO
3294 (native-inputs
3295 `(("gtk-doc" ,gtk-doc)
c44fb4df 3296 ,@(package-native-inputs vte)))
c44fb4df 3297 (arguments
24f4fcbe 3298 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3299 (synopsis "Enhanced VTE terminal widget")
3300 (description
3301 "VTE is a library (libvte) implementing a terminal emulator widget for
3302GTK+, this fork provides additional functions exposed for keyboard text
3303selection and URL hints.")))
3304
2776d72c
EF
3305;; provides vte 2.90, required for some terminal emulators
3306;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3307;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3308;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3309;; pantheon-terminal, roxterm are not currently packaged
3310(define-public vte-0.36
3311 (package (inherit vte)
3312 (name "vte")
3313 (version "0.36.5")
3314 (source (origin
3315 (method url-fetch)
3316 (uri (string-append "mirror://gnome/sources/" name "/"
3317 (version-major+minor version) "/"
3318 name "-" version ".tar.xz"))
3319 (sha256
3320 (base32
3321 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3322 (propagated-inputs
3323 `(("gtk" ,gtk+)
3324 ("ncurses" ,ncurses)))))
3325
ea57378f
SB
3326;; stable version for gtk2, required by xfce4-terminal.
3327(define-public vte/gtk+-2
3328 (package (inherit vte)
3329 (name "vte")
3330 (version "0.28.2")
3331 (source (origin
3332 (method url-fetch)
3333 (uri (string-append "mirror://gnome/sources/" name "/"
3334 (version-major+minor version) "/"
3335 name "-" version ".tar.xz"))
3336 (sha256
3337 (base32
7d48938a
EF
3338 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3339 (patches (search-patches
3340 "vte-CVE-2012-2738-pt1.patch"
3341 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3342 (build-system gnu-build-system)
ea57378f
SB
3343 (arguments
3344 '(#:configure-flags '("--disable-python")))
3345 (native-inputs
3346 `(("pkg-config" ,pkg-config)
3347 ("intltool" ,intltool)
3348 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3349 (propagated-inputs
3350 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3351 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3352
cce0da5e
TD
3353(define-public vinagre
3354 (package
3355 (name "vinagre")
3356 (version "3.22.0")
3357 (source (origin
3358 (method url-fetch)
3359 (uri (string-append "mirror://gnome/sources/" name "/"
3360 (version-major+minor version) "/"
3361 name "-" version ".tar.xz"))
684f97f8
EF
3362 (patches (search-patches "vinagre-newer-freerdp.patch"
3363 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3364 (sha256
3365 (base32
3366 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3367 (build-system glib-or-gtk-build-system)
684f97f8 3368 (arguments
7f486d25
MC
3369 ;; Disable -Werror and such, to avoid build failures on compilation
3370 ;; warnings.
3371 '(#:configure-flags '("--enable-compile-warnings=minimum")
3372 #:phases
684f97f8 3373 (modify-phases %standard-phases
1839768c
EF
3374 (add-before 'install 'skip-gtk-update-icon-cache
3375 (lambda _
3376 ;; Don't create 'icon-theme.cache'
3377 (substitute* (find-files "." "^Makefile$")
3378 (("gtk-update-icon-cache") (which "true")))
3379 #t))
684f97f8
EF
3380 (add-after 'unpack 'patch-configure
3381 (lambda _
3382 (substitute* "configure"
3383 (("freerdp") "freerdp2"))
3384 #t)))))
cce0da5e
TD
3385 (native-inputs
3386 `(("pkg-config" ,pkg-config)
3387 ("intltool" ,intltool)
3388 ("itstool" ,itstool)
1839768c 3389 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3390 (inputs
3391 `(("libxml2" ,libxml2)
3392 ("gtk-vnc" ,gtk-vnc)
3393 ("gnome-keyring" ,gnome-keyring)
3394 ("libsecret" ,libsecret)
3395 ("freerdp" ,freerdp)
3396 ("spice" ,spice)
3397 ("spice-gtk" ,spice-gtk)
3398 ("telepathy-glib" ,telepathy-glib)
3399 ("vte" ,vte)))
cce0da5e
TD
3400 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3401 (synopsis "Remote desktop viewer for GNOME")
3402 (description "Vinagre is a remote display client supporting the VNC, SPICE
3403and RDP protocols.")
3404 (license license:gpl3+)))
3405
b47e1b20
FB
3406(define-public dconf
3407 (package
3408 (name "dconf")
1e33331c 3409 (version "0.32.0")
b47e1b20
FB
3410 (source (origin
3411 (method url-fetch)
3412 (uri (string-append
2e6ecc5c 3413 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3414 (version-major+minor version) "/"
3415 name "-" version ".tar.xz"))
3416 (sha256
f05c809f 3417 (base32
1e33331c 3418 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 3419 (build-system meson-build-system)
bc036f4c
MB
3420 (propagated-inputs
3421 ;; In Requires of dconf.pc.
3422 `(("glib" ,glib)))
b47e1b20
FB
3423 (inputs
3424 `(("gtk+" ,gtk+)
bc036f4c 3425 ("dbus" ,dbus)))
b47e1b20 3426 (native-inputs
1e33331c
MB
3427 `(("bash-completion" ,bash-completion)
3428 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3429 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3430 ("docbook-xml" ,docbook-xml-4.2)
3431 ("docbook-xsl" ,docbook-xsl)
35fa923d 3432 ("glib:bin" ,glib "bin")
03676d6f 3433 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3434 ("pkg-config" ,pkg-config)
3435 ("vala" ,vala)))
b47e1b20
FB
3436 (arguments
3437 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3438 ; or /etc/machine-id.
35fa923d
MB
3439 #:glib-or-gtk? #t
3440 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3441 (home-page "https://developer.gnome.org/dconf")
3442 (synopsis "Low-level GNOME configuration system")
3443 (description "Dconf is a low-level configuration system. Its main purpose
3444is to provide a backend to GSettings on platforms that don't already have
3445configuration storage systems.")
e20e6b40 3446 (license license:lgpl2.1+)))
109da1c0
AE
3447
3448(define-public json-glib
3449 (package
3450 (name "json-glib")
4115e8ea 3451 (version "1.4.4")
109da1c0
AE
3452 (source (origin
3453 (method url-fetch)
3454 (uri (string-append "mirror://gnome/sources/" name "/"
3455 (version-major+minor version) "/"
3456 name "-" version ".tar.xz"))
3457 (sha256
3458 (base32
4115e8ea 3459 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3460 (build-system meson-build-system)
109da1c0 3461 (native-inputs
98afa184
MB
3462 `(("gettext" ,gettext-minimal)
3463 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3464 ("gobject-introspection" ,gobject-introspection)
3465 ("pkg-config" ,pkg-config)))
3466 (propagated-inputs
88c6b580 3467 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3468 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3469 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3470 (description
3471 "JSON-GLib is a C library based on GLib providing serialization and
3472deserialization support for the JavaScript Object Notation (JSON) format
3473described by RFC 4627. It provides parser and generator GObject classes and
3474various wrappers for the complex data types employed by JSON, such as arrays
3475and objects.")
109da1c0 3476 (license license:lgpl2.1+)))
6f96a359
SB
3477
3478(define-public libxklavier
3479 (package
3480 (name "libxklavier")
5f39050b 3481 (version "5.4")
6f96a359 3482 (source (origin
5f39050b 3483 ;; Note: There's no tarball at ftp.gnome.org for this version.
3484 (method git-fetch)
3485 (uri (git-reference
3486 (url "https://anongit.freedesktop.org/git/libxklavier")
3487 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3488 (sha256
3489 (base32
5f39050b 3490 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3491 (file-name (git-file-name name version))))
6f96a359
SB
3492 (build-system gnu-build-system)
3493 (arguments
5f39050b 3494 '(#:phases
3495 (modify-phases %standard-phases
3496 (add-after 'unpack 'no-configure
3497 (lambda* _
3498 (setenv "NOCONFIGURE" "1")
3499 #t)))
3500 #:configure-flags
6f96a359
SB
3501 (list (string-append "--with-xkb-base="
3502 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3503 "/share/X11/xkb")
3504 "--disable-xmodmap-support")))
6f96a359
SB
3505 (native-inputs
3506 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3507 ("gobject-introspection" ,gobject-introspection)
5f39050b 3508 ("pkg-config" ,pkg-config)
3509 ("gtk-doc" ,gtk-doc)
3510 ("intltool" ,intltool)
3511 ("which" ,which)
3512 ("autoconf" ,autoconf)
3513 ("automake" ,automake)
3514 ("libtool" ,libtool)))
6f96a359
SB
3515 (propagated-inputs
3516 ;; Required by libxklavier.pc.
3517 `(("glib" ,glib)
3518 ("libxml2" ,libxml2)))
3519 (inputs
3520 `(("iso-codes" ,iso-codes)
3521 ("libxi" ,libxi)
3522 ("libxkbfile" ,libxkbfile)
3523 ("xkbcomp" ,xkbcomp)
3524 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3525 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3526 (synopsis "High-level API for X Keyboard Extension")
3527 (description
3528 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3529Extension known as XKB. This library is intended to support XFree86 and other
3530commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3531indicators etc).")
3532 (license license:lgpl2.0+)))
619936a4
LC
3533
3534(define-public python2-rsvg
3535 ;; XXX: This is actually a subset of gnome-python-desktop.
3536 (package
3537 (name "python2-rsvg")
3538 (version "2.32.0")
3539 (source
3540 (origin
3541 (method url-fetch)
3542 (uri (string-append
3543 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3544 version ".tar.bz2"))
3545 (sha256
3546 (base32
3547 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3548 (build-system gnu-build-system)
3549 (native-inputs
3550 `(("pkg-config" ,pkg-config)))
3551 (inputs
3552 `(("python" ,python-2)
3553 ("python2-pygtk" ,python2-pygtk)
3554 ("librsvg" ,librsvg)))
f032d0be 3555 (home-page "https://www.gnome.org")
619936a4
LC
3556 (synopsis "Python bindings to librsvg")
3557 (description
3ad75446 3558 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3559library.")
3560
3561 ;; This is the license of the rsvg bindings. The license of each module
3562 ;; of gnome-python-desktop is given in 'COPYING'.
3563 (license license:lgpl2.1+)))
a31a6d22 3564
f2ca414a
SB
3565(define-public glib-networking
3566 (package
3567 (name "glib-networking")
0d75c64d 3568 (version "2.60.3")
f2ca414a
SB
3569 (source (origin
3570 (method url-fetch)
3571 (uri (string-append "mirror://gnome/sources/glib-networking/"
3572 (version-major+minor version) "/"
fb8fe1e8 3573 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3574 (sha256
3575 (base32
0d75c64d 3576 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3577 (build-system meson-build-system)
f2ca414a 3578 (arguments
0d75c64d 3579 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3580 (native-inputs
3581 `(("pkg-config" ,pkg-config)
3582 ("intltool" ,intltool)))
3583 (inputs
3584 `(("glib" ,glib)
3585 ("gnutls" ,gnutls)
4b8f1313 3586 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3587 (home-page "https://www.gnome.org")
f2ca414a
SB
3588 (synopsis "Network-related GIO modules")
3589 (description
3590 "This package contains various network related extensions for the GIO
3591library.")
3592 (license license:lgpl2.0+)))
3593
ca649680 3594(define-public rest
4510b2da 3595 (package
ca649680 3596 (name "rest")
a4194d16 3597 (version "0.8.1")
4510b2da
SB
3598 (source (origin
3599 (method url-fetch)
3600 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3601 (version-major+minor version) "/"
3602 name "-" version ".tar.xz"))
4510b2da
SB
3603 (sha256
3604 (base32
a4194d16 3605 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3606 (build-system gnu-build-system)
3607 (arguments
3608 '(#:tests? #f ; tests require internet connection
3609 #:configure-flags
3610 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3611 (native-inputs
3612 `(("glib-mkenums" ,glib "bin")
3613 ("gobject-introspection" ,gobject-introspection)
3614 ("pkg-config" ,pkg-config)))
3615 (propagated-inputs
3616 ;; rest-0.7.pc refers to all these.
3617 `(("glib" ,glib)
3618 ("libsoup" ,libsoup)
3619 ("libxml2" ,libxml2)))
24d6cc1d 3620 (home-page "https://www.gtk.org/")
4510b2da
SB
3621 (synopsis "RESTful web api query library")
3622 (description
3623 "This library was designed to make it easier to access web services that
3624claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3625libxml to ease remote use of the RESTful API.")
3626 (license license:lgpl2.1+)))
3627
6e1bb642
SB
3628(define-public libsoup
3629 (package
3630 (name "libsoup")
9a9cd9bc 3631 (version "2.70.0")
6e1bb642
SB
3632 (source (origin
3633 (method url-fetch)
3634 (uri (string-append "mirror://gnome/sources/libsoup/"
3635 (version-major+minor version) "/"
c1b79b36 3636 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3637 (sha256
3638 (base32
9a9cd9bc 3639 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3640 (build-system meson-build-system)
6e1bb642
SB
3641 (outputs '("out" "doc"))
3642 (arguments
2deb146f 3643 `(#:modules ((guix build utils)
eccaa8bf 3644 (guix build meson-build-system)
2deb146f
LC
3645 (ice-9 popen))
3646
f8026a79 3647 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3648 #:phases
3649 (modify-phases %standard-phases
eccaa8bf 3650 (add-after 'unpack 'adjust-tests
26c228f9 3651 (lambda _
eccaa8bf
MB
3652 ;; This test fails due to missing /etc/nsswitch.conf
3653 ;; in the build environment.
26c228f9
LC
3654 (substitute* "tests/socket-test.c"
3655 ((".*/sockets/unconnected.*") ""))
2deb146f 3656
f8026a79
MB
3657 ;; These fail because "subdomain.localhost" does not resolve in
3658 ;; the build environment.
3659 (substitute* "tests/hsts-test.c"
3660 ((".*/hsts/basic.*") "")
3661 ((".*/hsts/subdomains.*") "")
3662 ((".*/hsts/superdomain.*") "")
3663 ((".*/hsts/utf8-address.*") ""))
3664 (substitute* "tests/hsts-db-test.c"
3665 ((".*/hsts-db/subdomains.*") ""))
3666
2deb146f
LC
3667 ;; Generate a self-signed certificate that has "localhost" as its
3668 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3669 ;; 3.5.12, tests such as "ssl-tests" fail:
3670 ;;
3671 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3672 ;;
3673 ;; 'certtool' is interactive so we have to pipe it the answers.
3674 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3675 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3676 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3677 (for-each (lambda (line)
3678 (display line pipe)
3679 (newline pipe))
3680 '("" ;Common name
3681 "" ;UID
3682 "Guix" ;Organizational unit name
3683 "GNU" ;Organization name
3684 "" ;Locality name
3685 "" ;State or province
3686 "" ;Country
3687 "" ;subject's domain component (DC)
3688 "" ;E-mail
3689 "" ;serial number
3690 "-1" ;expiration time
3691 "N" ;belong to authority?
3692 "N" ;web client certificate?
3693 "N" ;IPsec IKE?
3694 "Y" ;web server certificate?
3695 "localhost" ;dnsName of subject
3696 "" ;dnsName of subject (end)
3697 "" ;URI of subject
3698 "127.0.0.1" ;IP address of subject
3699 "" ;signing?
06f5bc4e
MB
3700 "" ;encryption (RSA)?
3701 "" ;data encryption?
2deb146f
LC
3702 "" ;sign OCSP requests?
3703 "" ;sign code?
3704 "" ;time stamping?
3705 "" ;email protection?
3706 "" ;URI of the CRL distribution point
3707 "y" ;above info OK?
3708 ))
3709 (close-pipe pipe))
26c228f9 3710 #t))
eccaa8bf
MB
3711 (add-after 'install 'move-doc
3712 (lambda* (#:key outputs #:allow-other-keys)
3713 (let ((out (assoc-ref outputs "out"))
3714 (doc (assoc-ref outputs "doc")))
3715 (mkdir-p (string-append doc "/share"))
3716 (copy-recursively (string-append out "/share/gtk-doc")
3717 (string-append doc "/share/gtk-doc"))
3718 (delete-file-recursively (string-append out "/share/gtk-doc"))
3719 #t))))))
6e1bb642 3720 (native-inputs
26c228f9 3721 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3722 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3723 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3724 ("intltool" ,intltool)
3725 ("pkg-config" ,pkg-config)
3726 ("python" ,python-wrapper)
fd730590 3727 ("vala" ,vala)
6e1bb642
SB
3728 ;; These are needed for the tests.
3729 ;; FIXME: Add PHP once available.
3730 ("curl" ,curl)
2deb146f 3731 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3732 ("httpd" ,httpd)))
3733 (propagated-inputs
3734 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3735 `(("brotli" ,google-brotli)
3736 ("glib" ,glib)
249846bf 3737 ("libpsl" ,libpsl)
eccaa8bf 3738 ("libxml2" ,libxml2)
f8026a79
MB
3739 ("sqlite" ,sqlite)
3740 ("zlib" ,zlib)))
eccaa8bf
MB
3741 (inputs
3742 `(("glib-networking" ,glib-networking)
3743 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3744 (home-page "https://live.gnome.org/LibSoup/")
3745 (synopsis "GLib-based HTTP Library")
3746 (description
3747 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3748and the GLib main loop, to integrate well with GNOME applications.")
3749 (license license:lgpl2.0+)))
3750
bba229a3
SB
3751(define-public libsecret
3752 (package
3753 (name "libsecret")
aa0063a0 3754 (version "0.20.2")
bba229a3
SB
3755 (source (origin
3756 (method url-fetch)
3757 (uri (string-append
896dcbc7
EF
3758 "mirror://gnome/sources/libsecret/"
3759 (version-major+minor version) "/"
0ada4e29 3760 "libsecret-" version ".tar.xz"))
bba229a3
SB
3761 (sha256
3762 (base32
aa0063a0 3763 "1hzz34gmsxxf1jm1b7qin390rkwbg8sx198xdkwxqp3q6cw19sc1"))))
bba229a3
SB
3764 (build-system gnu-build-system)
3765 (outputs '("out" "doc"))
3766 (arguments
3767 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3768 #:configure-flags
3769 (list (string-append "--with-html-dir="
3770 (assoc-ref %outputs "doc")
3771 "/share/gtk-doc/html"))))
3772 (native-inputs
c06ef010
MB
3773 `(("gettext" ,gettext-minimal)
3774 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3775 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3776 ("pkg-config" ,pkg-config)
3777 ("vala" ,vala)
3778 ("xsltproc" ,libxslt)))
3779 ;; These are needed for the tests.
3780 ;; FIXME: Add gjs once available.
3781 ;("dbus" ,dbus)
3782 ;("python2" ,python-2)
3783 ;("python2-dbus" ,python2-dbus)
3784 ;("python2-pygobject" ,python2-pygobject)
3785 ;("python2-pygobject-2" ,python2-pygobject-2)))
3786 (propagated-inputs
3787 `(("glib" ,glib))) ; required by libsecret-1.pc
3788 (inputs
3789 `(("docbook-xsl" ,docbook-xsl)
3790 ("libgcrypt" ,libgcrypt)
3791 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3792 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3793 (synopsis "GObject bindings for \"Secret Service\" API")
3794 (description
3795 "Libsecret is a GObject based library for storing and retrieving passwords
3796and other secrets. It communicates with the \"Secret Service\" using DBus.")
3797 (license license:lgpl2.1+)))
3798
b6821ee0 3799(define-public five-or-more
3800 (package
3801 (name "five-or-more")
ee75b46f 3802 (version "3.32.2")
b6821ee0 3803 (source
3804 (origin
3805 (method url-fetch)
bf782bfc 3806 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3807 (version-major+minor version) "/"
bf782bfc 3808 "five-or-more-" version ".tar.xz"))
b6821ee0 3809 (sha256
ee75b46f 3810 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
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* "meson_post_install.py"
3819 (("gtk-update-icon-cache") (which "true")))
3820 #t)))))
b6821ee0 3821 (native-inputs
3822 `(("pkg-config" ,pkg-config)
d9795e93 3823 ("appstream-glib" ,appstream-glib)
b6821ee0 3824 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3825 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3826 ("intltool" ,intltool)
3827 ("itstool" ,itstool)
d9795e93 3828 ("vala" ,vala)
b6821ee0 3829 ("xmllint" ,libxml2)))
3830 (inputs
3831 `(("gtk+" ,gtk+)
d9795e93 3832 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3833 ("librsvg" ,librsvg)))
3834 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3835 (synopsis "Logic puzzle game")
3836 (description "Five or More is a game where you try to align
3837 five or more objects of the same color and shape causing them to disappear.
3838 On every turn more objects will appear, until the board is full.
3839 Try to last as long as possible.")
3840 (license license:gpl2+)))
3841
a31a6d22
SB
3842(define-public gnome-mines
3843 (package
3844 (name "gnome-mines")
2d817e41 3845 (version "3.32.2")
a31a6d22
SB
3846 (source
3847 (origin
3848 (method url-fetch)
3849 (uri (string-append "mirror://gnome/sources/" name "/"
3850 (version-major+minor version) "/"
3851 name "-" version ".tar.xz"))
3852 (sha256
3853 (base32
2d817e41 3854 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3855 (build-system meson-build-system)
a31a6d22 3856 (arguments
2d817e41
KK
3857 '(#:glib-or-gtk? #t
3858 #:phases
a31a6d22 3859 (modify-phases %standard-phases
2d817e41
KK
3860 (add-after 'unpack 'skip-gtk-update-icon-cache
3861 (lambda _
3862 (substitute* "build-aux/meson_post_install.py"
3863 (("gtk-update-icon-cache") (which "true")))
3864 #t)))))
a31a6d22 3865 (native-inputs
8c0fab36
RW
3866 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3867 ("pkg-config" ,pkg-config)
a31a6d22
SB
3868 ("desktop-file-utils" ,desktop-file-utils)
3869 ("intltool" ,intltool)
bcb354ad 3870 ("itstool" ,itstool)
8c0fab36
RW
3871 ("vala" ,vala)
3872 ("yelp" ,yelp)
3873 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3874 (inputs
3875 `(("gtk+" ,gtk+)
73992962 3876 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3877 ("librsvg" ,librsvg)))
3878 (home-page "https://wiki.gnome.org/Apps/Mines")
3879 (synopsis "Minesweeper game")
3880 (description
3881 "Mines (previously gnomine) is a puzzle game where you locate mines
3882floating in an ocean using only your brain and a little bit of luck.")
3883 (license license:gpl2+)))
88f70665 3884
dfc407f3
KY
3885(define-public gnome-sudoku
3886 (package
3887 (name "gnome-sudoku")
7dc728c4 3888 (version "3.32.0")
dfc407f3
KY
3889 (source
3890 (origin
3891 (method url-fetch)
3892 (uri (string-append "mirror://gnome/sources/" name "/"
3893 (version-major+minor version) "/"
3894 name "-" version ".tar.xz"))
3895 (sha256
3896 (base32
7dc728c4
KK
3897 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3898 (build-system meson-build-system)
3899 (arguments
3900 '(#:glib-or-gtk? #t
3901 #:phases
3902 (modify-phases %standard-phases
3903 (add-after 'unpack 'skip-gtk-update-icon-cache
3904 (lambda _
3905 (substitute* "build-aux/post_install.py"
3906 (("gtk-update-icon-cache") (which "true")))
3907 #t)))))
dfc407f3
KY
3908 (native-inputs
3909 `(("pkg-config" ,pkg-config)
3910 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3911 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3912 ("intltool" ,intltool)
3913 ("itstool" ,itstool)
7dc728c4 3914 ("vala" ,vala)
dfc407f3
KY
3915 ("xmllint" ,libxml2)))
3916 (inputs
3917 `(("gtk+" ,gtk+)
3918 ("json-glib" ,json-glib)
3919 ("libgee" ,libgee)
3920 ("librsvg" ,librsvg)
3921 ("qqwing" ,qqwing)))
3922 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3923 (synopsis "Japanese logic game")
3924 (description
3925 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3926GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3927possible while still providing features that make playing difficult Sudoku
3928more fun.")
3929 (license license:gpl2+)))
3930
88f70665
AW
3931(define-public gnome-terminal
3932 (package
3933 (name "gnome-terminal")
7dee3942 3934 (version "3.32.2")
88f70665
AW
3935 (source
3936 (origin
3937 (method url-fetch)
3938 (uri (string-append "mirror://gnome/sources/" name "/"
3939 (version-major+minor version) "/"
3940 name "-" version ".tar.xz"))
3941 (sha256
3942 (base32
7dee3942 3943 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3944 (build-system glib-or-gtk-build-system)
3945 (arguments
3946 '(#:configure-flags
3947 (list "--disable-migration" "--disable-search-provider"
3948 "--without-nautilus-extension")
3949 #:phases
3950 (modify-phases %standard-phases
3a4de6b2 3951 (add-before 'configure 'patch-/bin/true
88f70665
AW
3952 (lambda _
3953 (substitute* "configure"
3954 (("/bin/true") (which "true"))))))))
3955 (native-inputs
3956 `(("pkg-config" ,pkg-config)
3957 ("desktop-file-utils" ,desktop-file-utils)
3958 ("intltool" ,intltool)
bcb354ad
SB
3959 ("itstool" ,itstool)
3960 ("xmllint" ,libxml2)))
68702167
MW
3961 (propagated-inputs
3962 `(("dconf" ,dconf)))
88f70665
AW
3963 (inputs
3964 `(("gtk+" ,gtk+)
3965 ("vte" ,vte)
3966 ("gnutls" ,gnutls)
88f70665
AW
3967 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3968 ("util-linux" ,util-linux)
3969 ("vala" ,vala)))
3970 (home-page "https://wiki.gnome.org/Apps/Terminal")
3971 (synopsis "Terminal emulator")
3972 (description
3973 "GNOME Terminal is a terminal emulator application for accessing a
3974UNIX shell environment which can be used to run programs available on
3975your system.
3976
3977It supports several profiles, multiple tabs and implements several
3978keyboard shortcuts.")
3979 (license license:gpl3+)))
75016d07
AW
3980
3981(define-public colord
3982 (package
3983 (name "colord")
f98be942 3984 (version "1.4.4")
75016d07
AW
3985 (source
3986 (origin
3987 (method url-fetch)
5cc3096c 3988 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3989 "colord-" version ".tar.xz"))
75016d07 3990 (sha256
f98be942 3991 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3992 (build-system meson-build-system)
75016d07 3993 (arguments
a68544a8
RW
3994 '(;; FIXME: One test fails:
3995 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3996 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3997 ;; application/x-zerosize
75016d07 3998 #:tests? #f
a68544a8
RW
3999 #:glib-or-gtk? #t
4000 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4001 ;; No dep on systemd.
a68544a8 4002 "-Dsystemd=false"
75016d07
AW
4003 ;; Wants to install to global completion dir;
4004 ;; punt.
a68544a8 4005 "-Dbash_completion=false"
a68544a8
RW
4006 "-Ddaemon_user=colord"
4007 "-Dsane=true"
dac26e22 4008 "-Dvapi=true"
6f20e2dc 4009 ;; Requires spotread.
a68544a8 4010 "-Dargyllcms_sensor=false"
6f20e2dc 4011 ;; TODO: Requires docbook2x.
a68544a8 4012 "-Dman=false")
75016d07
AW
4013 #:phases
4014 (modify-phases %standard-phases
a68544a8
RW
4015 (add-before 'configure 'patch-build-system
4016 (lambda* (#:key outputs #:allow-other-keys)
4017 (substitute* "rules/meson.build"
4018 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4019 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4020 #t))
4021 (add-before 'configure 'set-sqlite3-file-name
4022 (lambda* (#:key inputs #:allow-other-keys)
4023 ;; "colormgr dump" works by invoking the "sqlite3" command.
4024 ;; Record its absolute file name.
4025 (let ((sqlite (assoc-ref inputs "sqlite")))
4026 (substitute* "client/cd-util.c"
4027 (("\"sqlite3\"")
4028 (string-append "\"" sqlite "/bin/sqlite3\"")))
4029 #t))))))
75016d07 4030 (native-inputs
6f20e2dc 4031 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4032 ("gettext" ,gettext-minimal)
75016d07 4033 ("gobject-introspection" ,gobject-introspection)
a68544a8 4034 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4035 ("pkg-config" ,pkg-config)
4036 ("vala" ,vala)))
65cb2d61
SB
4037 (propagated-inputs
4038 ;; colord.pc refers to all these.
4039 `(("glib" ,glib)
6f20e2dc
TGR
4040 ("lcms" ,lcms)
4041 ("udev" ,eudev)))
75016d07 4042 (inputs
65cb2d61 4043 `(("dbus-glib" ,dbus-glib)
a68544a8 4044 ("gusb" ,gusb)
80c7dd1a 4045 ("libgudev" ,libgudev)
75016d07 4046 ("libusb" ,libusb)
75016d07 4047 ("polkit" ,polkit)
a68544a8 4048 ("python" ,python-wrapper)
6f20e2dc 4049 ("sqlite" ,sqlite)
4c928743 4050 ("sane-backends" ,sane-backends)))
57e7d748 4051 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4052 (synopsis "Color management service")
4053 (description "Colord is a system service that makes it easy to manage,
4054install and generate color profiles to accurately color manage input and
4055output devices.")
4056 (license license:gpl2+)))
7b2abd00
AW
4057
4058(define-public geoclue
4059 (package
4060 (name "geoclue")
50e96d25 4061 (version "2.5.5")
7b2abd00
AW
4062 (source
4063 (origin
4064 (method url-fetch)
50e96d25
MB
4065 (uri
4066 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4067 version "/geoclue-" version ".tar.bz2"))
7b2abd00
AW
4068 (sha256
4069 (base32
50e96d25 4070 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
fc1adab1 4071 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4072 (build-system meson-build-system)
7b2abd00 4073 (arguments
50e96d25 4074 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4075 (native-inputs
4076 `(("pkg-config" ,pkg-config)
758798a9 4077 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4078 ("modem-manager" ,modem-manager)
4079 ("libnotify" ,libnotify)
4080 ("gtk-doc", gtk-doc)
7b2abd00
AW
4081 ("intltool" ,intltool)))
4082 (inputs
54e911bc 4083 `(("avahi" ,avahi)
50e96d25
MB
4084 ("glib:bin" ,glib "bin")
4085 ("glib-networking" ,glib-networking)
7b2abd00
AW
4086 ("json-glib" ,json-glib)
4087 ("libsoup" ,libsoup)))
50e96d25 4088 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4089 (synopsis "Geolocation service")
4090 (description "Geoclue is a D-Bus service that provides location
4091information. The primary goal of the Geoclue project is to make creating
4092location-aware applications as simple as possible, while the secondary goal is
4093to ensure that no application can access location information without explicit
e881752c 4094permission from user.")
7b2abd00 4095 (license license:gpl2+)))
2bfe7437
AW
4096
4097(define-public geocode-glib
4098 (package
4099 (name "geocode-glib")
65de725f 4100 (version "3.26.1")
2bfe7437
AW
4101 (source (origin
4102 (method url-fetch)
4103 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4104 (version-major+minor version) "/"
d485cdc0 4105 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4106 (sha256
4107 (base32
65de725f 4108 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4109 (build-system meson-build-system)
2bfe7437 4110 (arguments
a7dd0c02
RW
4111 `(#:phases
4112 (modify-phases %standard-phases
4113 ;; The tests require a bunch of locales.
4114 (add-before 'check 'set-locales
4115 (lambda* (#:key inputs #:allow-other-keys)
4116 (setenv "GUIX_LOCPATH"
4117 (string-append (assoc-ref inputs "glibc-locales")
4118 "/lib/locale"))
4119 #t)))))
2bfe7437
AW
4120 (native-inputs
4121 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4122 ("glibc-locales" ,glibc-locales) ; for tests
4123 ("gettext" ,gettext-minimal)
2bfe7437 4124 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4125 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4126 ("pkg-config" ,pkg-config)
4127 ("json-glib" ,json-glib)))
4128 (propagated-inputs
4129 ;; geocode-glib-1.0.pc refers to GIO.
4130 `(("glib" ,glib)))
4131 (inputs
4132 `(("libsoup" ,libsoup)))
4133 (home-page "https://github.com/GNOME/geocode-glib/")
4134 (synopsis "Geocoding and reverse-geocoding library")
4135 (description
4136 "geocode-glib is a convenience library for geocoding (finding longitude,
4137and latitude from an address) and reverse geocoding (finding an address from
4138coordinates) using the Nominatim service. geocode-glib caches requests for
4139faster results and to avoid unnecessary server load.")
4140 (license license:lgpl2.0+)))
a1d5bb0e
AW
4141
4142(define-public upower
4143 (package
4144 (name "upower")
df45af90 4145 (version "0.99.11")
a1d5bb0e
AW
4146 (source (origin
4147 (method url-fetch)
df45af90 4148 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4149 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4150 (sha256
4151 (base32
df45af90 4152 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4153 (patches (search-patches "upower-builddir.patch"))
4154 (modules '((guix build utils)))
4155 (snippet
4156 '(begin
4157 ;; Upstream commit
4158 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4159 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4160 ;; 'dbus-configuration-directory' in (gnu services dbus)
4161 ;; expects it in etc/. Thus, move it back to its previous
4162 ;; location.
4163 (substitute* "src/Makefile.in"
4164 (("^dbusconfdir =.*$")
4165 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4166 #t))))
a1d5bb0e
AW
4167 (build-system glib-or-gtk-build-system)
4168 (arguments
4169 '( ;; The tests want to contact the system bus, which can't be done in the
4170 ;; build environment. The integration test can run, but the last of
4171 ;; the up-self-tests doesn't. Disable tests for now.
4172 #:tests? #f
4173 #:configure-flags (list "--localstatedir=/var"
4174 (string-append "--with-udevrulesdir="
4175 (assoc-ref %outputs "out")
9ec54965 4176 "/lib/udev/rules.d"))))
a1d5bb0e 4177 (native-inputs
ebeabe2d
SB
4178 `(("gobject-introspection" ,gobject-introspection)
4179 ("pkg-config" ,pkg-config)
a1d5bb0e 4180 ("intltool" ,intltool)
55409295
LC
4181 ("python" ,python)
4182
4183 ;; For man pages.
4184 ("libxslt" ,libxslt) ;for 'xsltproc'
4185 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4186 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4187 (inputs
ea226291
SB
4188 `(("dbus-glib" ,dbus-glib)
4189 ("libgudev" ,libgudev)
a1d5bb0e 4190 ("libusb" ,libusb)))
d7a503fc
MB
4191 (propagated-inputs
4192 ;; In Requires of upower-glib.pc.
4193 `(("glib" ,glib)))
57e7d748 4194 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4195 (synopsis "System daemon for managing power devices")
4196 (description
4197 "UPower is an abstraction for enumerating power devices,
4198listening to device events and querying history and statistics. Any
4199application or service on the system can access the org.freedesktop.UPower
4200service via the system message bus.")
4201 (license license:gpl2+)))
6a180f6f
AW
4202
4203(define-public libgweather
4204 (package
4205 (name "libgweather")
794ce8ea 4206 (version "3.28.3")
6a180f6f
AW
4207 (source (origin
4208 (method url-fetch)
4209 (uri (string-append "mirror://gnome/sources/" name "/"
4210 (version-major+minor version) "/"
4211 name "-" version ".tar.xz"))
4212 (sha256
4213 (base32
794ce8ea 4214 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 4215 (build-system meson-build-system)
6a180f6f 4216 (arguments
cf6cbc34
RW
4217 `(#:tests? #f ; one of two tests requires network access
4218 #:configure-flags
4219 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4220 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4221 "/share/zoneinfo"))))
6a180f6f
AW
4222 (native-inputs
4223 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4224 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4225 ("pkg-config" ,pkg-config)
1d3fcf94 4226 ("vala" ,vala)
6a180f6f
AW
4227 ("intltool" ,intltool)))
4228 (propagated-inputs
4229 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4230 ;; libsoup.
4231 `(("gtk+" ,gtk+)
4232 ("gdk-pixbuf" ,gdk-pixbuf)
4233 ("libxml2" ,libxml2)
cf6cbc34 4234 ("libsoup" ,libsoup)
6a180f6f 4235 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4236 (inputs
4237 `(("tzdata" ,tzdata)))
6a180f6f
AW
4238 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4239 (synopsis "Location, time zone, and weather library for GNOME")
4240 (description
4241 "libgweather is a library to access weather information from online
4242services for numerous locations.")
4243 (license license:gpl2+)))
23a22af6
AW
4244
4245(define-public gnome-settings-daemon
4246 (package
4247 (name "gnome-settings-daemon")
4be0719f 4248 (version "3.32.1")
23a22af6
AW
4249 (source
4250 (origin
4251 (method url-fetch)
4252 (uri (string-append "mirror://gnome/sources/" name "/"
4253 (version-major+minor version) "/"
4254 name "-" version ".tar.xz"))
4255 (sha256
4256 (base32
4be0719f 4257 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 4258 (build-system meson-build-system)
23a22af6 4259 (arguments
e644f9fa
RW
4260 `(#:glib-or-gtk? #t
4261 #:configure-flags
4262 (list (string-append "-Dudev_dir="
4263 (assoc-ref %outputs "out")
4d0e085b
RW
4264 "/lib/udev/rules.d/")
4265 ;; Otherwise, the RUNPATH will lack the final path component.
4266 (string-append "-Dc_link_args=-Wl,-rpath="
4267 (assoc-ref %outputs "out")
4268 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4269 ;; Color management test can't reach the colord system service.
23a22af6
AW
4270 #:tests? #f))
4271 (native-inputs
e644f9fa
RW
4272 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4273 ("pkg-config" ,pkg-config)
23a22af6
AW
4274 ("intltool" ,intltool)
4275 ("xsltproc" ,libxslt)
4276 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4277 ("docbook-xml" ,docbook-xml-4.2)
4278 ("docbook-xsl" ,docbook-xsl)))
4279 (inputs
e644f9fa
RW
4280 `(("alsa-lib" ,alsa-lib)
4281 ("colord" ,colord)
ea226291 4282 ("libgudev" ,libgudev)
23a22af6
AW
4283 ("upower" ,upower)
4284 ("polkit" ,polkit)
4285 ("pulseaudio" ,pulseaudio)
4286 ("libcanberra" ,libcanberra)
4287 ("libx11" ,libx11)
4288 ("libxtst" ,libxtst)
4289 ("lcms" ,lcms)
4290 ("libnotify" ,libnotify)
4291 ("geoclue" ,geoclue)
4292 ("geocode-glib" ,geocode-glib)
4293 ("libgweather" ,libgweather)
4294 ("gnome-desktop" ,gnome-desktop)
4295 ("nss" ,nss)
4296 ("cups" ,cups)
ec2b1921
AW
4297 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4298 ("libwacom" ,libwacom)
4299 ("librsvg" ,librsvg)
eee7878f 4300 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4301 ("wayland" ,wayland)
eee7878f 4302 ("network-manager" ,network-manager)))
f032d0be 4303 (home-page "https://www.gnome.org")
23a22af6
AW
4304 (synopsis "GNOME settings daemon")
4305 (description
4306 "This package contains the daemon responsible for setting the various
4307parameters of a GNOME session and the applications that run under it. It
4308handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4309settings, themes, mouse settings, and startup of other daemons.")
4310 (license license:gpl2+)))
1e7464a9
DH
4311
4312(define-public totem-pl-parser
4313 (package
4314 (name "totem-pl-parser")
77425f04 4315 (version "3.26.3")
1e7464a9
DH
4316 (source (origin
4317 (method url-fetch)
e980cbe9
MW
4318 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4319 (version-major+minor version) "/"
1e7464a9
DH
4320 "totem-pl-parser-" version ".tar.xz"))
4321 (sha256
4322 (base32
77425f04 4323 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4324 (build-system meson-build-system)
1e7464a9
DH
4325 (arguments
4326 ;; FIXME: Tests require gvfs.
4327 `(#:tests? #f))
4328 (native-inputs
4329 `(("intltool" ,intltool)
4330 ("glib" ,glib "bin")
4d6d8281 4331 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4332 ("pkg-config" ,pkg-config)))
22a6ad6a 4333 (propagated-inputs
1e7464a9
DH
4334 `(("glib" ,glib)
4335 ("gmime" ,gmime)
1e9b19dd
RW
4336 ("libarchive" ,libarchive)
4337 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4338 ("libxml2" ,libxml2)))
4339 (inputs
0a6e9e13 4340 `(("libsoup" ,libsoup)))
1e7464a9
DH
4341 (home-page "https://projects.gnome.org/totem")
4342 (synopsis "Library to parse and save media playlists for GNOME")
4343 (description "Totem-pl-parser is a GObjects-based library to parse and save
4344playlists in a variety of formats.")
4345 (license license:lgpl2.0+)))
4346
6b888eff
SB
4347(define-public aisleriot
4348 (package
4349 (name "aisleriot")
36ed9b46 4350 (version "3.22.9")
6b888eff
SB
4351 (source (origin
4352 (method url-fetch)
e43f622a 4353 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4354 (version-major+minor version) "/"
e43f622a 4355 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4356 (sha256
4357 (base32
36ed9b46 4358 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4359 (build-system glib-or-gtk-build-system)
4360 (arguments
4361 '(#:configure-flags
4362 '("--with-platform=gtk-only"
4363 "--with-card-theme-formats=svg")))
4364 (native-inputs
4365 `(("desktop-file-utils" ,desktop-file-utils)
4366 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4367 ("intltool" ,intltool)
4368 ("itstool" ,itstool)
4369 ("pkg-config" ,pkg-config)
4370 ("xmllint" ,libxml2)))
4371 (inputs
4372 `(("gtk+" ,gtk+)
226e57d6 4373 ("guile" ,guile-2.2)
6b888eff
SB
4374 ("libcanberra" ,libcanberra)
4375 ("librsvg" ,librsvg)))
4376 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4377 (synopsis "Solitaire card games")
4378 (description
4379 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4380which are easy to play with the aid of a mouse.")
4381 (license license:gpl3+)))
4a79e256 4382
f828d05b
KK
4383(define-public amtk
4384 (package
4385 (name "amtk")
0e08ca14 4386 (version "5.0.2")
f828d05b
KK
4387 (source (origin
4388 (method url-fetch)
bf92ba6b 4389 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4390 (version-major+minor version) "/"
bf92ba6b 4391 "amtk-" version ".tar.xz"))
f828d05b
KK
4392 (sha256
4393 (base32
0e08ca14 4394 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4395 (build-system gnu-build-system)
4396 (arguments
4397 '(#:configure-flags '("--enable-gtk-doc")))
4398 (native-inputs
4399 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4400 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4401 ("gtk-doc" ,gtk-doc)
4402 ("pkg-config" ,pkg-config)))
4403 (inputs
4404 `(("glib" ,glib)
4405 ("gtk+" ,gtk+)))
4406 (home-page "https://wiki.gnome.org/Projects/Amtk")
4407 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4408 (description
4409 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4410It is a basic GtkUIManager replacement based on GAction. It is suitable for
4411both a traditional UI or a modern UI with a GtkHeaderBar.")
4412 (license license:lgpl2.1+)))
4413
4a79e256
SB
4414(define-public devhelp
4415 (package
4416 (name "devhelp")
20db7a3d 4417 (version "3.32.0")
4a79e256
SB
4418 (source (origin
4419 (method url-fetch)
4420 (uri (string-append "mirror://gnome/sources/" name "/"
4421 (version-major+minor version) "/"
4422 name "-" version ".tar.xz"))
4423 (sha256
4424 (base32
20db7a3d 4425 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 4426 (build-system meson-build-system)
35407f94 4427 (arguments
20db7a3d
KK
4428 '(#:glib-or-gtk? #t
4429 #:phases
35407f94
EF
4430 (modify-phases %standard-phases
4431 (add-after 'unpack 'skip-gtk-update-icon-cache
4432 ;; Don't create 'icon-theme.cache'.
4433 (lambda _
4434 (substitute* "meson_post_install.py"
4435 (("gtk-update-icon-cache") "true"))
4436 #t)))))
4a79e256
SB
4437 (native-inputs
4438 `(("intltool" ,intltool)
5dd12afc 4439 ("itstool" ,itstool)
11d28bd9
KK
4440 ("gobject-introspection" ,gobject-introspection)
4441 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4442 ("pkg-config" ,pkg-config)))
4443 (inputs
11d28bd9
KK
4444 `(("amtk" ,amtk)
4445 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4446 ("webkitgtk" ,webkitgtk)))
4447 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4448 (synopsis "API documentation browser for GNOME")
4449 (description
4450 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4451natively with GTK-Doc (the API reference system developed for GTK+ and used
4452throughout GNOME for API documentation).")
4453 (license license:gpl2+)))
ba421ab7
MW
4454
4455(define-public cogl
4456 (package
4457 (name "cogl")
54c69ae1 4458 (version "1.22.4")
ba421ab7
MW
4459 (source
4460 (origin
4461 (method url-fetch)
5754f0cf 4462 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4463 (version-major+minor version) "/"
5754f0cf 4464 "cogl-" version ".tar.xz"))
ba421ab7 4465 (sha256
54c69ae1 4466 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
4467 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4468 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4469 (build-system gnu-build-system)
4470 (native-inputs
4471 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4472 ("gobject-introspection" ,gobject-introspection)
4473 ;;("xorg-server" ,xorg-server) ; for the test suite
4474 ("pkg-config" ,pkg-config)))
4475 (propagated-inputs
4476 `(("glib" ,glib)
4477 ("gdk-pixbuf" ,gdk-pixbuf)
4478 ("libx11" ,libx11)
4479 ("libxext" ,libxext)
4480 ("libxfixes" ,libxfixes)
4481 ("libxdamage" ,libxdamage)
4482 ("libxcomposite" ,libxcomposite)
4483 ("libxrandr" ,libxrandr)))
4484 (inputs
4485 `(("mesa" ,mesa)
4486 ("cairo" ,cairo)
4487 ("pango" ,pango)
4488 ("gstreamer" ,gstreamer)
31860852
KK
4489 ("gst-plugins-base" ,gst-plugins-base)
4490 ("wayland" ,wayland)))
ba421ab7
MW
4491 (arguments
4492 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4493 "--enable-wayland-egl-platform"
4494 "--enable-wayland-egl-server"
4495
ba421ab7
MW
4496 ;; Arrange to pass an absolute file name to
4497 ;; dlopen for libGL.so.
4498 (string-append "--with-gl-libname="
4499 (assoc-ref %build-inputs "mesa")
4500 "/lib/libGL.so"))
4501 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4502 ;; _FontTransOpen: Unable to Parse address
4503 ;; ${prefix}/share/fonts/X11/misc/
4504 #:tests? #f
4505 #; #:phases
4506 #;
4507 (modify-phases %standard-phases
4508 (add-before 'check 'start-xorg-server
4509 (lambda* (#:key inputs #:allow-other-keys)
4510 ;; The test suite requires a running X server.
4511 (system (format #f "~a/bin/Xvfb :1 &"
4512 (assoc-ref inputs "xorg-server")))
4513 (setenv "DISPLAY" ":1")
4514 #t)))))
89b49245 4515 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4516 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4517 (description
4518 "Cogl is a small library for using 3D graphics hardware to draw pretty
4519pictures. The API departs from the flat state machine style of OpenGL and is
4520designed to make it easy to write orthogonal components that can render
4521without stepping on each others toes.")
4522 (license (list license:expat ; most of the code
4523 license:bsd-3 ; cogl/cogl-point-in-poly.c
4524 license:sgifreeb2.0 ; cogl-path/tesselator/
4525 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4526
4527(define-public clutter
4528 (package
4529 (name "clutter")
6a88e4ee 4530 (version "1.26.2")
fb182b8a
MW
4531 (source
4532 (origin
4533 (method url-fetch)
4534 (uri (string-append "mirror://gnome/sources/" name "/"
4535 (version-major+minor version) "/"
4536 name "-" version ".tar.xz"))
4537 (sha256
4538 (base32
6a88e4ee 4539 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4540 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4541 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4542 (build-system gnu-build-system)
600233bd
LC
4543 (outputs '("out"
4544 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4545 (native-inputs
4546 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4547 ("gobject-introspection" ,gobject-introspection)
4548 ("pkg-config" ,pkg-config)
4549 ("xsltproc" ,libxslt)))
4550 (propagated-inputs
4551 `(("cogl" ,cogl)
4552 ("cairo" ,cairo)
4553 ("atk" ,atk)
4554 ("gtk+" ,gtk+)
4555 ("json-glib" ,json-glib)
4556 ("glib" ,glib)
4557 ("libxcomposite" ,libxcomposite)
4558 ("libxdamage" ,libxdamage)
4559 ("libxext" ,libxext)
4560 ("xinput" ,xinput)))
4561 (inputs
4562 `(("libxkbcommon" ,libxkbcommon)
4563 ("udev" ,eudev)))
4564 (arguments
600233bd
LC
4565 `(#:configure-flags (list "--enable-x11-backend=yes"
4566
4567 ;; This produces share/doc/{clutter,cally}.
4568 (string-append "--with-html-dir="
4569 (assoc-ref %outputs "doc")
4570 "/share/doc"))
fb182b8a
MW
4571 ;; XXX FIXME: Get test suite working. It would probably fail in the
4572 ;; same way the cogl tests fail, since clutter is based on cogl.
4573 #:tests? #f))
4574 (home-page "http://www.clutter-project.org")
476af713 4575 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4576 (description
476af713 4577 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4578creating fast, mainly 2D single window applications such as media box UIs,
4579presentations, kiosk style applications and so on.")
4580 (license license:lgpl2.0+)))
bf7f17ba
MW
4581
4582(define-public clutter-gtk
4583 (package
4584 (name "clutter-gtk")
5d1a3219 4585 (version "1.8.4")
bf7f17ba
MW
4586 (source
4587 (origin
4588 (method url-fetch)
4589 (uri (string-append "mirror://gnome/sources/" name "/"
4590 (version-major+minor version) "/"
4591 name "-" version ".tar.xz"))
4592 (sha256
4593 (base32
5d1a3219 4594 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4595 (build-system gnu-build-system)
4596 (native-inputs
4597 `(("pkg-config" ,pkg-config)
4598 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4599 (propagated-inputs
4600 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4601 `(("clutter" ,clutter)
4602 ("gtk+" ,gtk+)))
4603 (home-page "http://www.clutter-project.org")
476af713 4604 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4605 (description
476af713 4606 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4607creating fast, mainly 2D single window applications such as media box UIs,
4608presentations, kiosk style applications and so on.")
4609 (license license:lgpl2.0+)))
86d6a893
MW
4610
4611(define-public clutter-gst
4612 (package
4613 (name "clutter-gst")
ba07ac19 4614 (version "3.0.27")
86d6a893
MW
4615 (source
4616 (origin
4617 (method url-fetch)
f010f89b 4618 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4619 (version-major+minor version) "/"
f010f89b 4620 "clutter-gst-" version ".tar.xz"))
86d6a893 4621 (sha256
ba07ac19 4622 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4623 (build-system gnu-build-system)
4624 (native-inputs
ba07ac19 4625 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4626 ("pkg-config" ,pkg-config)
4627 ("gobject-introspection" ,gobject-introspection)))
4628 (inputs
4629 `(("clutter" ,clutter)
4630 ("gstreamer" ,gstreamer)
4631 ("gst-plugins-base" ,gst-plugins-base)))
4632 (home-page "http://www.clutter-project.org")
4633 (synopsis "Integration library for using GStreamer with Clutter")
4634 (description
4635 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4636It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4637implements the ClutterGstPlayer interface using playbin. Clutter is an
4638OpenGL-based interactive canvas library.")
86d6a893 4639 (license license:lgpl2.0+)))
607a04ae 4640
30dc88d9
LC
4641(define-public libchamplain
4642 (package
4643 (name "libchamplain")
5564b2c5 4644 (version "0.12.16")
30dc88d9
LC
4645 (source (origin
4646 (method url-fetch)
4647 (uri (string-append
4648 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4649 version ".tar.xz"))
4650 (sha256
4651 (base32
5564b2c5 4652 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4653 (build-system gnu-build-system)
f7c6833f
LF
4654 (arguments '(#:configure-flags '("--enable-vala")))
4655 (native-inputs
4656 `(("gobject-introspection" ,gobject-introspection)
4657 ("pkg-config" ,pkg-config)
4658 ("vala" ,vala)))
30dc88d9
LC
4659 (propagated-inputs
4660 `(("libsoup" ,libsoup)
4661 ("sqlite" ,sqlite)
4662 ("clutter" ,clutter)
4663 ("clutter-gtk" ,clutter-gtk)
4664 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4665 ("cairo" ,cairo)
4666 ("gtk+3" ,gtk+)
4667 ("glib" ,glib)))
f032d0be 4668 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4669 (synopsis "C library providing a ClutterActor to display maps")
4670 (description
4671 "libchamplain is a C library providing a ClutterActor to display maps.
4672It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4673and Perl bindings are also available. It supports numerous free map sources
4674such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4675 (license license:lgpl2.1+)))
4676
607a04ae
MW
4677(define-public gom
4678 (package
4679 (name "gom")
0510440b 4680 (version "0.3.2")
607a04ae
MW
4681 (source
4682 (origin
4683 (method url-fetch)
6c8a0b6f 4684 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4685 (version-major+minor version) "/"
6c8a0b6f 4686 "gom-" version ".tar.xz"))
607a04ae
MW
4687 (sha256
4688 (base32
0510440b 4689 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4690 (build-system gnu-build-system)
4691 (native-inputs
4692 `(("intltool" ,intltool)
4693 ("pkg-config" ,pkg-config)
4694 ("gobject-introspection" ,gobject-introspection)))
4695 (inputs
4696 `(("glib" ,glib)
4697 ("gdk-pixbuf" ,gdk-pixbuf)
4698 ("sqlite" ,sqlite)))
4699 ;; XXX TODO: Figure out how to run the test suite.
4700 (arguments `(#:tests? #f))
4701 (home-page "https://wiki.gnome.org/Projects/Gom")
4702 (synopsis "Object mapper from GObjects to SQLite")
4703 (description
4704 "Gom provides an object mapper from GObjects to SQLite. It helps you
4705write applications that need to store structured data as well as make complex
4706queries upon that data.")
4707 (license license:lgpl2.1+)))
b7a3cf11 4708
865aacc9 4709(define-public libgnome-games-support
f09520db 4710 (package
865aacc9 4711 (name "libgnome-games-support")
4c6d15cf 4712 (version "1.4.4")
f09520db
SB
4713 (source (origin
4714 (method url-fetch)
2d8dca9d 4715 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4716 (version-major+minor version) "/"
2d8dca9d 4717 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4718 (sha256
4719 (base32
4c6d15cf 4720 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4721 (build-system gnu-build-system)
4722 (arguments
4723 '(#:phases
4724 (modify-phases %standard-phases
4725 (add-before 'check 'pre-check
4726 (lambda _
865aacc9 4727 ;; Tests require a writable HOME.
f09520db
SB
4728 (setenv "HOME" (getcwd))
4729 #t)))))
4730 (native-inputs
4731 `(("intltool" ,intltool)
4732 ("pkg-config" ,pkg-config)
4733 ("vala" ,vala)))
4734 (propagated-inputs
865aacc9 4735 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4736 `(("gtk+" ,gtk+)
4737 ("libgee" ,libgee)))
4738 (home-page "https://www.gnome.org/")
4739 (synopsis "Useful functionality shared among GNOME games")
4740 (description
865aacc9 4741 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4742GNOME Games, but it may be used by others.")
4743 (license license:lgpl3+)))
4744
b7a3cf11
SB
4745(define-public gnome-klotski
4746 (package
4747 (name "gnome-klotski")
c1e419c4 4748 (version "3.32.0")
b7a3cf11
SB
4749 (source (origin
4750 (method url-fetch)
4751 (uri (string-append "mirror://gnome/sources/" name "/"
4752 (version-major+minor version) "/"
4753 name "-" version ".tar.xz"))
4754 (sha256
4755 (base32
c1e419c4
KK
4756 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4757 (build-system meson-build-system)
4758 (arguments
4759 '(#:glib-or-gtk? #t
4760 #:phases
4761 (modify-phases %standard-phases
4762 (add-after 'unpack 'skip-gtk-update-icon-cache
4763 ;; Don't create 'icon-theme.cache'.
4764 (lambda _
4765 (substitute* "build-aux/meson_post_install.py"
4766 (("gtk-update-icon-cache") (which "true")))
4767 #t)))))
b7a3cf11
SB
4768 (native-inputs
4769 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4770 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4771 ("intltool" ,intltool)
4772 ("itstool" ,itstool)
bcb354ad 4773 ("pkg-config" ,pkg-config)
c1e419c4 4774 ("vala" ,vala)
bcb354ad 4775 ("xmllint" ,libxml2)))
b7a3cf11
SB
4776 (inputs
4777 `(("gtk+" ,gtk+)
f4eae76f 4778 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4779 ("librsvg" ,librsvg)))
4780 (home-page "https://wiki.gnome.org/Apps/Klotski")
4781 (synopsis "Sliding block puzzles")
4782 (description
4783 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4784the patterned block to the area bordered by green markers. To do so, you will
4785need to slide other blocks out of the way. Complete each puzzle in as few moves
4786as possible!")
4787 (license license:gpl2+)))
8d4791bf
MW
4788
4789(define-public grilo
4790 (package
4791 (name "grilo")
a865e938 4792 (version "0.3.10")
8d4791bf
MW
4793 (source
4794 (origin
4795 (method url-fetch)
4796 (uri (string-append "mirror://gnome/sources/" name "/"
4797 (version-major+minor version) "/"
4798 name "-" version ".tar.xz"))
4799 (sha256
4800 (base32
a865e938 4801 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4802 (build-system meson-build-system)
8d4791bf
MW
4803 (native-inputs
4804 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4805 ("intltool" ,intltool)
4806 ("pkg-config" ,pkg-config)
d48d4c98
KK
4807 ("gobject-introspection" ,gobject-introspection)
4808 ("gtk-doc" ,gtk-doc)
4809 ("vala" ,vala)))
8d4791bf 4810 (inputs
6d7273a0
KK
4811 `(("cyrus-sasl" ,cyrus-sasl)
4812 ("glib" ,glib)
8d4791bf
MW
4813 ("gtk+" ,gtk+)
4814 ("libxml2" ,libxml2)
6d7273a0 4815 ("liboauth" ,liboauth)
8d4791bf
MW
4816 ("libsoup" ,libsoup)
4817 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4818 (native-search-paths
4819 (list (search-path-specification
4820 (variable "GRL_PLUGIN_PATH")
4821 (files (list (string-append "lib/grilo-"
4822 (version-major+minor version)))))))
d48d4c98 4823 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4824 (synopsis "Framework for discovering and browsing media")
4825 (description
4826 "Grilo is a framework focused on making media discovery and browsing easy
4827for application developers.")
4828 (license license:lgpl2.1+)))
7b212526
MW
4829
4830(define-public grilo-plugins
4831 (package
4832 (name "grilo-plugins")
281f6b3a 4833 (version "0.3.10")
7b212526
MW
4834 (source
4835 (origin
4836 (method url-fetch)
4837 (uri (string-append "mirror://gnome/sources/" name "/"
4838 (version-major+minor version) "/"
4839 name "-" version ".tar.xz"))
4840 (sha256
4841 (base32
281f6b3a
RG
4842 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4843 (build-system meson-build-system)
7b212526 4844 (native-inputs
281f6b3a
RG
4845 `(("gettext" ,gettext-minimal)
4846 ("glib:bin" ,glib "bin")
4847 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4848 ("itstool" ,itstool)
4849 ("pkg-config" ,pkg-config)))
281f6b3a 4850 ;; TODO: ahavi, gstreamer
7b212526
MW
4851 (inputs
4852 `(("grilo" ,grilo)
281f6b3a
RG
4853 ;("gmime" ,gmime) ; unused
4854 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4855 ("gom" ,gom)
281f6b3a
RG
4856 ;("gssdp" ,gssdp) ; unused
4857 ;("gupnp" ,gupnp) ; unused
4858 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4859 ("json-glib" ,json-glib)
4860 ("avahi" ,avahi)
281f6b3a
RG
4861 ("libgdata" ,libgdata)
4862 ("libmediaart" ,libmediaart)
4863 ;("librest" ,rest) ; unused
7b212526 4864 ("libsoup" ,libsoup)
281f6b3a
RG
4865 ("totam-pl-parser" ,totem-pl-parser)
4866 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4867 (arguments
281f6b3a
RG
4868 `(#:glib-or-gtk? #t
4869 ;;Disable lua-factory as it needs missing dependencies
4870 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4871 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4872 (synopsis "Plugins for the Grilo media discovery library")
4873 (description
4874 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4875for application developers. This package provides plugins for common media
4876discovery protocols.")
7b212526 4877 (license license:lgpl2.1+)))
4e3fc547
MW
4878
4879(define-public totem
4880 (package
4881 (name "totem")
995ef5ea 4882 (version "3.32.1")
4e3fc547
MW
4883 (source
4884 (origin
4885 (method url-fetch)
4886 (uri (string-append "mirror://gnome/sources/" name "/"
4887 (version-major+minor version) "/"
4888 name "-" version ".tar.xz"))
4889 (sha256
4890 (base32
995ef5ea 4891 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4892 (build-system meson-build-system)
4e3fc547
MW
4893 (native-inputs
4894 `(("pkg-config" ,pkg-config)
4895 ("desktop-file-utils" ,desktop-file-utils)
4896 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4897 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4898 ("intltool" ,intltool)
bcb354ad 4899 ("itstool" ,itstool)
995ef5ea
KK
4900 ("xmllint" ,libxml2)
4901 ("python-pylint" ,python-pylint)
4902 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4903 (propagated-inputs
4904 `(("dconf" ,dconf)))
4905 (inputs
4906 `(("gtk+" ,gtk+)
4907 ("gdk-pixbuf" ,gdk-pixbuf)
4908 ("atk" ,atk)
4909 ("cairo" ,cairo)
4910 ("dbus-glib" ,dbus-glib)
4911 ("clutter" ,clutter)
4912 ("clutter-gtk" ,clutter-gtk)
4913 ("clutter-gst" ,clutter-gst)
6a6db57f 4914 ("xorgproto" ,xorgproto)
4e3fc547
MW
4915 ("libxxf86vm" ,libxxf86vm)
4916 ("libxtst" ,libxtst)
4917 ("libxrandr" ,libxrandr)
4918 ("libxml2" ,libxml2)
4919 ("libsoup" ,libsoup)
4920 ("libpeas" ,libpeas)
4921 ("librsvg" ,librsvg)
4922 ("lirc" ,lirc)
4923 ("gnome-desktop" ,gnome-desktop)
4924 ("gstreamer" ,gstreamer)
4925 ("gst-plugins-base" ,gst-plugins-base)
4926 ("gst-plugins-good" ,gst-plugins-good)
4927 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4928 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4929 ("python" ,python)
995ef5ea 4930 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4931 ("totem-pl-parser" ,totem-pl-parser)
4932 ("grilo" ,grilo)
4933 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4934 ("vala" ,vala)))
4935 (arguments
7ad81b8b
LC
4936 `(#:glib-or-gtk? #t
4937
4938 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4939 ;; all that.
7ad81b8b 4940 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4941
4942 ;; Do not build .a files for the plugins, it's
4943 ;; completely useless. This saves 2 MiB.
7ad81b8b 4944 "--default-library" "shared")
ec5c24f9 4945 #:phases
4e3fc547 4946 (modify-phases %standard-phases
d51b19ad
EF
4947 (add-after 'unpack 'skip-gtk-update-icon-cache
4948 ;; Don't create 'icon-theme.cache'.
4949 (lambda _
4950 (substitute* "meson_post_install.py"
4951 (("gtk-update-icon-cache") "true"))
4952 #t))
6368eb39
DM
4953 (add-before
4954 'install 'disable-cache-generation
4955 (lambda _
4956 (setenv "DESTDIR" "/")
4957 #t))
995ef5ea
KK
4958 (add-before
4959 'check 'pre-check
4960 (lambda _
4961 ;; Tests require a running X server.
4962 (system "Xvfb :1 &")
4963 (setenv "DISPLAY" ":1")
4964 #t))
4e3fc547
MW
4965 (add-after
4966 'install 'wrap-totem
4967 (lambda* (#:key inputs outputs #:allow-other-keys)
4968 (let ((out (assoc-ref outputs "out"))
4969 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4970 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4971 (wrap-program (string-append out "/bin/totem")
4972 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4973 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4974 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4975 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4976 #t)))))
4977 (home-page "https://wiki.gnome.org/Apps/Videos")
4978 (synopsis "Simple media player for GNOME based on GStreamer")
4979 (description "Totem is a simple yet featureful media player for GNOME
4980which can read a large number of file formats.")
4981 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4982 ;; to be used and distributed together with GStreamer and Totem. See
4983 ;; file://COPYING in the source distribution for details.
4984 (license license:gpl2+)))
f0afb0c8
DH
4985
4986(define-public rhythmbox
4987 (package
4988 (name "rhythmbox")
eda580c0 4989 (version "3.4.4")
f0afb0c8
DH
4990 (source (origin
4991 (method url-fetch)
2588693d 4992 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 4993 (version-major+minor version) "/"
2588693d 4994 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
4995 (sha256
4996 (base32
eda580c0 4997 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
4998 (build-system glib-or-gtk-build-system)
4999 (arguments
5000 `(#:configure-flags
5001 (list "--enable-lirc"
5002 "--enable-python"
5003 "--enable-vala"
5004 "--with-brasero"
5005 "--with-gudev"
5006 "--with-libsecret")
5007 #:phases
5008 (modify-phases %standard-phases
5009 (add-after
5010 'install 'wrap-rhythmbox
5011 (lambda* (#:key inputs outputs #:allow-other-keys)
5012 (let ((out (assoc-ref outputs "out"))
5013 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5014 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5015 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5016 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5017 (wrap-program (string-append out "/bin/rhythmbox")
5018 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5019 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5020 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5021 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5022 #t)))))
5023 (propagated-inputs
5024 `(("dconf" ,dconf)))
5025 (native-inputs
bcb354ad
SB
5026 `(("itstool" ,itstool)
5027 ("intltool" ,intltool)
f0afb0c8
DH
5028 ("glib" ,glib "bin")
5029 ("gobject-introspection" ,gobject-introspection)
5030 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5031 ("pkg-config" ,pkg-config)
5032 ("xmllint" ,libxml2)))
f0afb0c8
DH
5033 (inputs
5034 `(("json-glib" ,json-glib)
5035 ("tdb" ,tdb)
5036 ("gnome-desktop" ,gnome-desktop)
5037 ("python" ,python)
5038 ("python-pygobject" ,python2-pygobject)
5039 ("vala" ,vala)
5040 ("gmime" ,gmime)
f0afb0c8
DH
5041 ("adwaita-icon-theme" ,adwaita-icon-theme)
5042 ("grilo" ,grilo)
5043 ("grilo-plugins" ,grilo-plugins)
5044 ("gstreamer" ,gstreamer)
5045 ("gst-plugins-base" ,gst-plugins-base)
5046 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5047 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5048 ("libgudev" ,libgudev)
f0afb0c8
DH
5049 ;;("libmtp" ,libmtp) FIXME: Not detected
5050 ("libsecret" ,libsecret)
5051 ("libsoup" ,libsoup)
5052 ("libnotify" ,libnotify)
5053 ("libpeas" ,libpeas)
5054 ("lirc" ,lirc)
5055 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5056 ;;("clutter" ,clutter)
5057 ;;("clutter-gtk" ,clutter-gtk)
5058 ;;("clutter-gst" ,clutter-gst)
5059 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5060 ("atk" ,atk)
5061 ("pango" ,pango)
5062 ("gtk+" ,gtk+)
5063 ;; TODO:
5064 ;; * libgpod
5065 ;; * mx
f0afb0c8
DH
5066 ("brasero" ,brasero)))
5067 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5068 (synopsis "Music player for GNOME")
5069 (description "Rhythmbox is a music playing application for GNOME. It
5070supports playlists, song ratings, and any codecs installed through gstreamer.")
5071 (license license:gpl2+)))
f70d8383
DH
5072
5073(define-public eog
5074 (package
5075 (name "eog")
b0f24a82 5076 (version "3.32.2")
f70d8383
DH
5077 (source (origin
5078 (method url-fetch)
5079 (uri (string-append "mirror://gnome/sources/" name "/"
5080 (version-major+minor version) "/"
5081 name "-" version ".tar.xz"))
5082 (sha256
5083 (base32
b0f24a82 5084 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 5085 (build-system meson-build-system)
f70d8383 5086 (arguments
34c44a34
RW
5087 `(#:configure-flags
5088 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5089 (list (string-append "-Dc_link_args=-Wl,-rpath="
5090 (assoc-ref %outputs "out") "/lib/eog"))
5091 #:phases
f70d8383 5092 (modify-phases %standard-phases
7a034665
EF
5093 (add-after 'unpack 'skip-gtk-update-icon-cache
5094 ;; Don't create 'icon-theme.cache'.
5095 (lambda _
5096 (substitute* "meson_post_install.py"
5097 (("gtk-update-icon-cache") "true"))
5098 #t))
61fb581f
RW
5099 (add-after 'install 'wrap-eog
5100 (lambda* (#:key outputs #:allow-other-keys)
5101 (let ((out (assoc-ref outputs "out"))
5102 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5103 (wrap-program (string-append out "/bin/eog")
5104 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5105 #t)))))
f70d8383
DH
5106 (propagated-inputs
5107 `(("dconf" ,dconf)))
5108 (native-inputs
5109 `(("intltool" ,intltool)
b3546174 5110 ("itstool" ,itstool)
f70d8383
DH
5111 ("glib" ,glib "bin")
5112 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5113 ("pkg-config" ,pkg-config)
5114 ("xmllint" ,libxml2)))
f70d8383
DH
5115 (inputs
5116 `(("gnome-desktop" ,gnome-desktop)
5117 ("shared-mime-info" ,shared-mime-info)
5118 ("adwaita-icon-theme" ,adwaita-icon-theme)
5119 ("exempi" ,exempi)
5120 ("lcms" ,lcms)
5121 ("libexif" ,libexif)
5122 ("libpeas" ,libpeas)
5123 ("libjpeg" ,libjpeg)
5124 ("librsvg" ,librsvg)
5125 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5126 ("gtk+" ,gtk+)))
5127 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5128 (synopsis "GNOME image viewer")
5129 (description "Eye of GNOME is the GNOME image viewer. It
5130supports image conversion, rotation, and slideshows.")
5131 (license license:gpl2+)))
41af5e7b 5132
0c3f8cb8
LC
5133(define-public eog-plugins
5134 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5135 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5136 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5137 ;; 'XDG_DATA_DIRS' appropriately set.
5138 (package
5139 (name "eog-plugins")
54b74cc6 5140 (version "3.26.4")
0c3f8cb8
LC
5141 (source (origin
5142 (method url-fetch)
f3b88ed2 5143 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5144 (version-major+minor version) "/"
f3b88ed2 5145 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5146 (sha256
5147 (base32
54b74cc6 5148 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5149 (build-system gnu-build-system)
5150 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5151 (synopsis "Extensions for the Eye of GNOME image viewer")
5152 (native-inputs
5153 `(("pkg-config" ,pkg-config)
f2d97d57 5154 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5155 (inputs
5156 `(("eog" ,eog)
5157 ("glib" ,glib)
5158 ("gtk+" ,gtk+)
5159 ("libpeas" ,libpeas)
5160 ("libexif" ,libexif)
5161 ("libchamplain" ,libchamplain)))
5162 (description
5163 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5164notably:
5165
5166@itemize
5167@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5168@item @dfn{Map}, which displays a map of where the picture was taken on the
5169side panel;
5170@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5171@end itemize\n")
5172
5173 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5174 ;; long suspicious byte stream that goes to a
5175 ;; ".gresource.eog_postasa_plugin" ELF section.
5176 (license license:gpl2+)))
5177
41af5e7b
SB
5178(define-public libgudev
5179 (package
5180 (name "libgudev")
b78f5118 5181 (version "232")
41af5e7b
SB
5182 (source (origin
5183 (method url-fetch)
5184 (uri (string-append "mirror://gnome/sources/" name "/"
5185 version "/" name "-" version ".tar.xz"))
5186 (sha256
5187 (base32
b78f5118 5188 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5189 (build-system gnu-build-system)
b78f5118
RW
5190 (arguments
5191 '(#:configure-flags
5192 ;; umockdev depends on libgudev.
5193 (list "--disable-umockdev")))
41af5e7b
SB
5194 (native-inputs
5195 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5196 ("gobject-introspection" ,gobject-introspection)
5197 ("pkg-config" ,pkg-config)))
5198 (propagated-inputs
5199 `(("glib" ,glib))) ; required by gudev-1.0.pc
5200 (inputs
5201 `(("udev" ,eudev)))
5202 (home-page "https://wiki.gnome.org/Projects/libgudev")
5203 (synopsis "GObject bindings for libudev")
5204 (description
5205 "This library provides GObject bindings for libudev. It was originally
5206part of udev-extras, then udev, then systemd. It's now a project on its own.")
5207 (license license:lgpl2.1+)))
3dc8828f
SB
5208
5209(define-public gvfs
5210 (package
5211 (name "gvfs")
12fe4846 5212 (version "1.40.1")
3dc8828f
SB
5213 (source (origin
5214 (method url-fetch)
1d68eb32 5215 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5216 (version-major+minor version) "/"
1d68eb32 5217 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5218 (sha256
5219 (base32
12fe4846 5220 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5221 (build-system meson-build-system)
3dc8828f 5222 (arguments
e762d943
RW
5223 '(#:glib-or-gtk? #t
5224 #:configure-flags
5225 (list "-Dsystemduserunitdir=no"
5226 "-Dtmpfilesdir=no"
5227 ;; Otherwise, the RUNPATH will lack the final path component.
5228 (string-append "-Dc_link_args=-Wl,-rpath="
5229 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5230 (native-inputs
5231 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5232 ("gettext" ,gettext-minimal)
5233 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5234 ("pkg-config" ,pkg-config)
5235 ("xsltproc" ,libxslt)))
5236 (inputs
5237 `(("avahi" ,avahi)
5238 ("docbook-xml" ,docbook-xml-4.2)
5239 ("docbook-xsl" ,docbook-xsl)
5240 ("dbus" ,dbus)
e762d943 5241 ("elogind" ,elogind)
3dc8828f 5242 ("fuse" ,fuse)
24a78aa6 5243 ("gcr" ,gcr)
3dc8828f 5244 ("glib" ,glib)
e762d943 5245 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5246 ("libarchive" ,libarchive)
5247 ("libbluray" ,libbluray)
8852ca24 5248 ("libcap" ,libcap)
3dc8828f
SB
5249 ("libcdio-paranoia" ,libcdio-paranoia)
5250 ("libgcrypt" ,libgcrypt)
e762d943 5251 ("libgdata" ,libgdata)
3dc8828f
SB
5252 ("libgphoto2" ,libgphoto2)
5253 ("libgudev" ,libgudev)
0ab9f949 5254 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5255 ("libmtp" ,libmtp)
e762d943 5256 ("libnfs" ,libnfs)
3dc8828f
SB
5257 ("libsecret" ,libsecret)
5258 ("libsmbclient" ,samba)
5259 ("libsoup" ,libsoup)
5260 ("libxml2" ,libxml2)
e762d943 5261 ("openssh" ,openssh)
8852ca24 5262 ("polkit" ,polkit)
3dc8828f
SB
5263 ("udisks" ,udisks)))
5264 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5265 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5266 (description
8f65585b 5267 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5268abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5269to all applications using the GIO API. It also supports exposing the GVFS
5270mounts to non-GIO applications using FUSE.
5271
5272GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5273DAV, and others.")
5274 (license license:lgpl2.0+)))
7c88b6bd
AW
5275
5276(define-public gusb
5277 (package
5278 (name "gusb")
536b3274 5279 (version "0.3.0")
7c88b6bd 5280 (source (origin
bbfb36f9
EF
5281 (method git-fetch)
5282 (uri (git-reference
5283 (url "https://github.com/hughsie/libgusb.git")
5284 (commit version)))
5285 (file-name (git-file-name name version))
7c88b6bd
AW
5286 (sha256
5287 (base32
bbfb36f9 5288 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5289 (build-system meson-build-system)
7c88b6bd 5290 (native-inputs
536b3274 5291 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5292 ("pkg-config" ,pkg-config)
5293 ("vala" ,vala)
7c88b6bd
AW
5294 ("gtk-doc" ,gtk-doc)))
5295 (propagated-inputs
5296 ;; Both of these are required by gusb.pc.
5297 `(("glib" ,glib)
5298 ("libusb" ,libusb)))
5299 (arguments
536b3274 5300 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5301 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5302 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5303 (description
5304 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5305asynchronous control, bulk and interrupt transfers with proper cancellation
5306and integration into a mainloop. This makes it easy to integrate low level
5307USB transfers with your high-level application or system daemon.")
5308 (license license:lgpl2.1+)))
0abe1d86
AW
5309
5310(define-public simple-scan
5311 (package
5312 (name "simple-scan")
fe6cfa99 5313 (version "3.36.0")
d9f6d587
TGR
5314 (source
5315 (origin
5316 (method url-fetch)
5317 (uri (string-append "mirror://gnome/sources/simple-scan/"
5318 (version-major+minor version) "/"
5319 "simple-scan-" version ".tar.xz"))
5320 (sha256
fe6cfa99 5321 (base32 "198l3yhqhb2wzfdcgi8fzbwycr0njn44583dazz6wy1gqbiqnzgm"))))
d9f6d587
TGR
5322 (build-system meson-build-system)
5323 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5324 (arguments
5325 '(#:glib-or-gtk? #t))
0abe1d86
AW
5326 (inputs
5327 `(("gtk" ,gtk+)
5328 ("zlib" ,zlib)
5329 ("cairo" ,cairo)
c501f592 5330 ("colord" ,colord)
0abe1d86
AW
5331 ("gdk-pixbuf" ,gdk-pixbuf)
5332 ("gusb" ,gusb)
4c928743 5333 ("libsane" ,sane-backends)))
0abe1d86 5334 (native-inputs
b94a6ca0 5335 `(("gettext" ,gettext-minimal)
0abe1d86 5336 ("itstool" ,itstool)
c501f592 5337 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5338 ("pkg-config" ,pkg-config)
bcb354ad
SB
5339 ("vala" ,vala)
5340 ("xmllint" ,libxml2)))
dff0eedb 5341 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5342 (synopsis "Document and image scanner")
d9f6d587
TGR
5343 (description
5344 "Document Scanner is an easy-to-use application that lets you connect your
5345scanner and quickly capture images and documents in an appropriate format. It
5346supports any scanner for which a suitable SANE driver is available, which is
5347almost all of them.")
0abe1d86 5348 (license license:gpl3+)))
7549f984 5349
ab466d79
RW
5350(define-public eolie
5351 (package
5352 (name "eolie")
ed783404 5353 (version "0.9.98.1")
ab466d79
RW
5354 (source (origin
5355 (method url-fetch)
ed783404
RW
5356 (uri (string-append "https://adishatz.org/eolie/eolie-"
5357 version ".tar.xz"))
ab466d79
RW
5358 (sha256
5359 (base32
ed783404 5360 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5361 (build-system meson-build-system)
ab466d79 5362 (arguments
00014781
RW
5363 `(#:glib-or-gtk? #t
5364 #:phases
ab466d79 5365 (modify-phases %standard-phases
f0c68100
EF
5366 (add-after 'unpack 'skip-gtk-update-icon-cache
5367 ;; Don't create 'icon-theme.cache'.
5368 (lambda _
5369 (substitute* "meson_post_install.py"
5370 (("gtk-update-icon-cache") "true"))
5371 #t))
ab466d79
RW
5372 (add-after 'wrap 'wrap-more
5373 (lambda* (#:key inputs outputs #:allow-other-keys)
5374 (let* ((out (assoc-ref outputs "out"))
5375 ;; These libraries must be on LD_LIBRARY_PATH.
5376 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5377 "atk" "gtk+" "gsettings-desktop-schemas"
5378 "gobject-introspection"))
5379 (path (string-join
5380 (map (lambda (lib)
5381 (string-append (assoc-ref inputs lib) "/lib"))
5382 libs)
5383 ":")))
5384 (wrap-program (string-append out "/bin/eolie")
5385 `("LD_LIBRARY_PATH" ":" prefix (,path))
5386 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5387 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5388 #t)))))
5389 (native-inputs
f85ca6ed 5390 `(("intltool" ,intltool)
ab466d79 5391 ("itstool" ,itstool)
d95f1041 5392 ("pkg-config" ,pkg-config)
d95f1041 5393 ("python" ,python)
f0c68100 5394 ("glib:bin" ,glib "bin")))
ab466d79
RW
5395 (inputs
5396 `(("gobject-introspection" ,gobject-introspection)
5397 ("glib-networking" ,glib-networking)
5398 ("cairo" ,cairo)
5399 ("gtk+" ,gtk+)
5400 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5401 ("python" ,python-wrapper)
d72f76df 5402 ("python-dateutil" ,python-dateutil)
00014781 5403 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5404 ("python-pygobject" ,python-pygobject)
5405 ("python-pycairo" ,python-pycairo)
00014781 5406 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5407 ("libsecret" ,libsecret)
5408 ("gtkspell3" ,gtkspell3)
5409 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5410 ("webkitgtk" ,webkitgtk)))
166b2c97 5411 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5412 (synopsis "Web browser for GNOME")
5413 (description
5414 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5415a secret password store, an adblocker, and a modern UI.")
5416 (license license:gpl3+)))
5417
7549f984
SB
5418(define-public epiphany
5419 (package
5420 (name "epiphany")
60680365 5421 (version "3.32.5")
7549f984
SB
5422 (source (origin
5423 (method url-fetch)
dd3266ec 5424 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5425 (version-major+minor version) "/"
dd3266ec 5426 "epiphany-" version ".tar.xz"))
7549f984
SB
5427 (sha256
5428 (base32
60680365 5429 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
5430
5431 (build-system meson-build-system)
7549f984
SB
5432 (arguments
5433 ;; FIXME: tests run under Xvfb, but fail with:
5434 ;; /src/bookmarks/ephy-bookmarks/create:
5435 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5436 ;; subsystem
5437 ;; FAIL
6f48d9db 5438 '(#:tests? #f
e19f9c24 5439 #:glib-or-gtk? #t
bb7ff88f
EF
5440 #:phases
5441 (modify-phases %standard-phases
5442 (add-after 'unpack 'skip-gtk-update-icon-cache
5443 ;; Don't create 'icon-theme.cache'.
5444 (lambda _
5445 (substitute* "post_install.py"
5446 (("gtk-update-icon-cache") "true"))
5447 #t)))
e19f9c24
LF
5448 #:configure-flags
5449 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5450 (list (string-append "-Dc_link_args=-Wl,-rpath="
5451 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5452 (propagated-inputs
5453 `(("dconf" ,dconf)))
7549f984 5454 (native-inputs
fc5c5b92
R
5455 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5456 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5457 ("intltool" ,intltool)
7549f984 5458 ("itstool" ,itstool)
bcb354ad
SB
5459 ("pkg-config" ,pkg-config)
5460 ("xmllint" ,libxml2)))
7549f984
SB
5461 (inputs
5462 `(("avahi" ,avahi)
5463 ("gcr" ,gcr)
fc5c5b92 5464 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5465 ("glib-networking" ,glib-networking)
5466 ("gnome-desktop" ,gnome-desktop)
5467 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5468 ("json-glib" ,json-glib)
7549f984 5469 ("iso-codes" ,iso-codes)
8748e29c 5470 ("libdazzle" ,libdazzle)
7549f984
SB
5471 ("libnotify" ,libnotify)
5472 ("libsecret" ,libsecret)
7549f984 5473 ("libxslt" ,libxslt)
fc5c5b92 5474 ("nettle" ,nettle) ; for hogweed
7549f984 5475 ("sqlite" ,sqlite)
f85ca6ed 5476 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5477 (home-page "https://wiki.gnome.org/Apps/Web")
5478 (synopsis "GNOME web browser")
5479 (description
5480 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5481principles are simplicity and standards compliance.")
5482 (license license:gpl2+)))
a3856b2c
SB
5483
5484(define-public d-feet
5485 (package
5486 (name "d-feet")
458e9221 5487 (version "0.3.14")
a3856b2c
SB
5488 (source (origin
5489 (method url-fetch)
5490 (uri (string-append "mirror://gnome/sources/" name "/"
5491 (version-major+minor version) "/"
5492 name "-" version ".tar.xz"))
5493 (sha256
5494 (base32
458e9221 5495 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5496 (build-system glib-or-gtk-build-system)
5497 (arguments
5498 '(#:out-of-source? #f ; tests need to run in the source directory.
5499 #:phases
5500 (modify-phases %standard-phases
5501 (add-before
5502 'check 'pre-check
86aff791 5503 (lambda _
a3856b2c
SB
5504 ;; The test suite requires a running X server.
5505 (system "Xvfb :1 &")
5506 (setenv "DISPLAY" ":1")
5507 ;; Don't fail on missing '/etc/machine-id'.
5508 (setenv "DBUS_FATAL_WARNINGS" "0")
5509 ;; tests.py and window.py don't meet E402:
5510 ;; E402 module level import not at top of file
5511 (substitute* "src/tests/Makefile"
86aff791
MW
5512 (("--ignore=E123") "--ignore=E123,E402"))
5513 #t))
a3856b2c
SB
5514 (add-after
5515 'install 'wrap-program
5516 (lambda* (#:key outputs #:allow-other-keys)
5517 (let ((prog (string-append (assoc-ref outputs "out")
5518 "/bin/d-feet")))
5519 (wrap-program prog
5520 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5521 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5522 #t))))))
a3856b2c
SB
5523 (native-inputs
5524 `(("intltool" ,intltool)
5525 ("itstool" ,itstool)
5526 ("pkg-config" ,pkg-config)
5527 ("python-pep8" ,python-pep8)
5528 ("xmllint" ,libxml2)
ff337525 5529 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5530 (inputs
5531 `(("gobject-introspection" ,gobject-introspection)
5532 ("gtk+" ,gtk+)
5533 ("python" ,python-wrapper)
458e9221 5534 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5535 ("python-pygobject" ,python-pygobject)))
5536 (home-page "https://wiki.gnome.org/Apps/DFeet")
5537 (synopsis "D-Bus debugger")
5538 (description
5539 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5540of running programs and invoke methods on those interfaces.")
5541 (license license:gpl2+)))
c3b97bd9
SB
5542
5543(define-public yelp-xsl
5544 (package
5545 (name "yelp-xsl")
b3640e79 5546 (version "3.32.1")
c3b97bd9
SB
5547 (source (origin
5548 (method url-fetch)
5549 (uri (string-append "mirror://gnome/sources/" name "/"
5550 (version-major+minor version) "/"
5551 name "-" version ".tar.xz"))
5552 (sha256
5553 (base32
b3640e79 5554 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
c3b97bd9
SB
5555 (build-system gnu-build-system)
5556 (native-inputs
5557 `(("intltool" ,intltool)
5558 ("itstool" ,itstool)
5559 ("xmllint" ,libxml2)))
5560 (home-page "https://wiki.gnome.org/Apps/Yelp")
5561 (synopsis "XSL stylesheets for Yelp")
5562 (description
5563 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5564to format Docbook and Mallard documents.")
5565 (license license:gpl2+)))
de3d612a
SB
5566
5567(define-public yelp
5568 (package
5569 (name "yelp")
1f1b6d60 5570 (version "3.32.2")
de3d612a
SB
5571 (source (origin
5572 (method url-fetch)
5573 (uri (string-append "mirror://gnome/sources/" name "/"
5574 (version-major+minor version) "/"
5575 name "-" version ".tar.xz"))
5576 (sha256
5577 (base32
1f1b6d60 5578 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5579 (build-system glib-or-gtk-build-system)
5580 (native-inputs
5581 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5582 ("intltool" ,intltool)
5583 ("itstool" ,itstool)
5584 ("pkg-config" ,pkg-config)))
5585 (propagated-inputs
5586 `(("dconf" ,dconf)))
5587 (inputs
ad1b7d8b
SB
5588 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5589 ("libxslt" ,libxslt)
de3d612a 5590 ("sqlite" ,sqlite)
4c28ca1d
SB
5591 ("webkitgtk" ,webkitgtk)
5592 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5593 (home-page "https://wiki.gnome.org/Apps/Yelp")
5594 (synopsis "GNOME help browser")
5595 (description
5596 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5597man, info, and HTML documents. It can locate documents according to the
5598freedesktop.org help system specification.")
5599 (license license:gpl2+)))
122d0d10
SB
5600
5601(define-public yelp-tools
5602 (package
5603 (name "yelp-tools")
2089bca5 5604 (version "3.28.0")
122d0d10
SB
5605 (source (origin
5606 (method url-fetch)
5607 (uri (string-append "mirror://gnome/sources/" name "/"
5608 (version-major+minor version) "/"
5609 name "-" version ".tar.xz"))
5610 (sha256
5611 (base32
2089bca5 5612 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
5613 (build-system gnu-build-system)
5614 (native-inputs
5615 `(("pkg-config" ,pkg-config)))
5616 (propagated-inputs
5617 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5618 `(("itstool" ,itstool)
5619 ("xmllint" ,libxml2)
5620 ("xsltproc" ,libxslt)))
5621 (inputs
5622 `(("yelp-xsl" ,yelp-xsl)))
5623 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5624 (synopsis "Yelp documentation tools")
5625 (description
5626 "Yelp-tools is a collection of scripts and build utilities to help create,
5627manage, and publish documentation for Yelp and the web. Most of the heavy
5628lifting is done by packages like yelp-xsl and itstool. This package just
5629wraps things up in a developer-friendly way.")
5630 (license license:gpl2+)))
af8f9f23 5631
4ed041d9
MB
5632(define-public yelp-tools/fixed
5633 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5634 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5635 ;; the next rebuild cycle.
5636 (hidden-package
5637 (package/inherit
5638 yelp-tools
5639 (propagated-inputs
5640 `(("itstool" ,itstool/fixed)
5641 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5642
af8f9f23
RW
5643(define-public libgee
5644 (package
5645 (name "libgee")
9cedae2a 5646 (version "0.20.3")
af8f9f23
RW
5647 (source (origin
5648 (method url-fetch)
84a1b007 5649 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5650 (version-major+minor version) "/"
84a1b007 5651 "libgee-" version ".tar.xz"))
af8f9f23
RW
5652 (sha256
5653 (base32
9cedae2a 5654 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5655 (build-system gnu-build-system)
5656 (arguments
5657 `(#:phases
5658 (modify-phases %standard-phases
5659 (add-after 'unpack 'fix-introspection-install-dir
5660 (lambda* (#:key outputs #:allow-other-keys)
5661 (let ((out (assoc-ref outputs "out")))
5662 (substitute* "gee/Makefile.in"
5663 (("@INTROSPECTION_GIRDIR@")
5664 (string-append out "/share/gir-1.0/"))
5665 (("@INTROSPECTION_TYPELIBDIR@")
5666 (string-append out "/lib/girepository-1.0/")))))))))
5667 (native-inputs
5668 `(("glib" ,glib "bin")
5669 ("pkg-config" ,pkg-config)))
5670 (inputs
5671 `(("glib" ,glib)
5672 ("gobject-introspection" ,gobject-introspection)))
5673 (home-page "https://wiki.gnome.org/Projects/Libgee")
5674 (synopsis "GObject collection library")
5675 (description
5676 "Libgee is a utility library providing GObject-based interfaces and
5677classes for commonly used data structures.")
5678 (license license:lgpl2.1+)))
b0f9c4b8
RW
5679
5680(define-public gexiv2
5681 (package
5682 (name "gexiv2")
b1a8b408 5683 (version "0.12.0")
b0f9c4b8
RW
5684 (source (origin
5685 (method url-fetch)
5686 (uri (string-append "mirror://gnome/sources/" name "/"
5687 (version-major+minor version) "/"
5688 name "-" version ".tar.xz"))
5689 (sha256
5690 (base32
b1a8b408 5691 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5692 (build-system meson-build-system)
b0f9c4b8 5693 (native-inputs
b1a8b408
KK
5694 `(("gcr" ,gcr)
5695 ("glib" ,glib "bin")
5696 ("pkg-config" ,pkg-config)
5697 ("vala" ,vala)))
b0f9c4b8
RW
5698 (propagated-inputs
5699 ;; Listed in "Requires" section of gexiv2.pc
5700 `(("exiv2" ,exiv2)))
5701 (inputs
5702 `(("glib" ,glib)
5703 ("gobject-introspection" ,gobject-introspection)))
5704 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5705 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5706 (description
5707 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5708allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5709metadata in photo and video files of various formats.")
5710 (license license:gpl2+)))
fed5a689
RW
5711
5712(define-public shotwell
5713 (package
5714 (name "shotwell")
bcea20cc 5715 (version "0.30.8")
fed5a689
RW
5716 (source (origin
5717 (method url-fetch)
5497d682 5718 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5719 (version-major+minor version) "/"
5497d682 5720 "shotwell-" version ".tar.xz"))
fed5a689
RW
5721 (sha256
5722 (base32
bcea20cc 5723 "1f7m007g6w1sz8s60w6x81ghp2rrjmik8phd958b2hy8zz92wbbj"))))
3b79afa6
KK
5724 (build-system meson-build-system)
5725 (arguments
5a0beca3
EF
5726 '(#:glib-or-gtk? #t
5727 #:phases
5728 (modify-phases %standard-phases
5729 (add-after 'unpack 'skip-gtk-update-icon-cache
5730 (lambda _
5731 (substitute* "build-aux/meson/postinstall.py"
5732 (("gtk-update-icon-cache") (which "true"))
5733 (("update-desktop-database") (which "true")))
5734 #t)))))
735b8db6
TGR
5735 (propagated-inputs
5736 `(("dconf" ,dconf)))
fed5a689 5737 (native-inputs
5a0beca3
EF
5738 `(("gettext" ,gettext-minimal)
5739 ("glib:bin" ,glib "bin")
735b8db6 5740 ("itstool" ,itstool)
3b79afa6 5741 ("pkg-config" ,pkg-config)
735b8db6 5742 ("vala" ,vala)))
fed5a689 5743 (inputs
5a0beca3
EF
5744 `(("gcr" ,gcr)
5745 ("gexiv2" ,gexiv2)
fed5a689 5746 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5747 ("gstreamer" ,gstreamer)
5748 ("json-glib" ,json-glib)
dfb0323d 5749 ("libgdata" ,libgdata)
fed5a689 5750 ("libgee" ,libgee)
5a0beca3
EF
5751 ("libgphoto2" ,libgphoto2)
5752 ("libgudev" ,libgudev)
fed5a689 5753 ("libraw" ,libraw)
fed5a689
RW
5754 ("libsoup" ,libsoup)
5755 ("libxml2" ,libxml2)
5a0beca3
EF
5756 ("sqlite" ,sqlite)
5757 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5758 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5759 (synopsis "Photo manager for GNOME 3")
5760 (description
5761 "Shotwell is a digital photo manager designed for the GNOME desktop
5762environment. It allows you to import photos from disk or camera, organize
5763them by keywords and events, view them in full-window or fullscreen mode, and
5764share them with others via social networking and more.")
5765 (license license:lgpl2.1+)))
293ff8b2
DT
5766
5767(define-public file-roller
5768 (package
5769 (name "file-roller")
dcae4270 5770 (version "3.32.3")
293ff8b2
DT
5771 (source (origin
5772 (method url-fetch)
f89a27c6 5773 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5774 (version-major+minor version) "/"
f89a27c6 5775 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5776 (sha256
5777 (base32
dcae4270 5778 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5779 (build-system meson-build-system)
293ff8b2 5780 (native-inputs
0a500745
RW
5781 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5782 ("intltool" ,intltool)
4c96e5d1 5783 ("itstool" ,itstool)
0a500745
RW
5784 ("pkg-config" ,pkg-config)
5785 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5786 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5787 ;; TODO: Add libnautilus.
5788 (inputs
5789 `(("gtk+" ,gtk+)
5790 ("gdk-pixbuf" ,gdk-pixbuf)
5791 ("json-glib" ,json-glib)
5792 ("libarchive" ,libarchive)
5793 ("libnotify" ,libnotify)
4c96e5d1 5794 ("nettle" ,nettle)
293ff8b2
DT
5795 ("libxml2" ,libxml2)))
5796 (synopsis "Graphical archive manager for GNOME")
5797 (description "File Roller is an archive manager for the GNOME desktop
5798environment that allows users to view, unpack, and create compressed archives
5799such as gzip tarballs.")
5800 (home-page "http://fileroller.sourceforge.net/")
5801 (license license:gpl2+)))
7ce49365
SB
5802
5803(define-public gnome-session
5804 (package
5805 (name "gnome-session")
1fc2ec79 5806 (version "3.32.0")
7ce49365
SB
5807 (source (origin
5808 (method url-fetch)
5809 (uri (string-append "mirror://gnome/sources/" name "/"
5810 (version-major+minor version) "/"
5811 name "-" version ".tar.xz"))
5812 (sha256
5813 (base32
1fc2ec79 5814 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5815 (arguments
df278071
RW
5816 '(#:glib-or-gtk? #t
5817 #:phases
2914af3c
AW
5818 (modify-phases %standard-phases
5819 (add-before 'configure 'pre-configure
5820 (lambda* (#:key outputs #:allow-other-keys)
5821 ;; Use elogind instead of systemd.
df278071
RW
5822 (substitute* "meson.build"
5823 (("libsystemd-login") "libelogind")
5824 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5825 (substitute* "gnome-session/gsm-systemd.c"
5826 (("#include <systemd/sd-login.h>")
5827 "#include <elogind/sd-login.h>"))
df278071 5828 ;; Remove uses of the systemd daemon.
803ab416
SB
5829 (substitute* "gnome-session/gsm-autostart-app.c"
5830 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5831 #t))
5832 (add-after 'install 'wrap-gnome-session
5833 (lambda* (#:key inputs outputs #:allow-other-keys)
5834 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5835 (let ((glib (assoc-ref inputs "glib:bin"))
5836 (out (assoc-ref outputs "out")))
5837 (wrap-program (string-append out "/bin/gnome-session")
5838 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5839 #t))))
6cbc8d57 5840
2914af3c 5841 #:configure-flags
df278071
RW
5842 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5843 "-Dman=false" ; FIXME: disabled because of docbook validation error
5844 "-Dsystemd_journal=false")))
5845 (build-system meson-build-system)
7ce49365
SB
5846 (native-inputs
5847 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5848 ("pkg-config" ,pkg-config)
5849 ("intltool" ,intltool)
df278071
RW
5850 ("xsltproc" ,libxslt)
5851 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5852 ("docbook-xsl" ,docbook-xsl)
5853 ("docbook-xml" ,docbook-xml)
5854 ("xmlto" ,xmlto)))
7ce49365 5855 (inputs
2914af3c
AW
5856 `(("elogind" ,elogind)
5857 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5858 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5859 ("gtk+" ,gtk+)
5860 ("json-glib" ,json-glib)
5861 ("libsm" ,libsm)
5862 ("libxcomposite" ,libxcomposite)
5863 ("libxtst" ,libxtst)
5864 ("mesa" ,mesa)
5865 ("upower" ,upower)
5866 ("xtrans" ,xtrans)))
5867 (synopsis "Session manager for GNOME")
5868 (description
5869 "This package contains the GNOME session manager, as well as a
5870configuration program to choose applications starting on login.")
5871 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5872 (license license:gpl2+)))
f47ba77e
SB
5873
5874(define-public gjs
5875 (package
5876 (name "gjs")
d054fbf5 5877 (version "1.56.2")
f47ba77e
SB
5878 (source (origin
5879 (method url-fetch)
5880 (uri (string-append "mirror://gnome/sources/" name "/"
5881 (version-major+minor version) "/"
5882 name "-" version ".tar.xz"))
5883 (sha256
5884 (base32
d054fbf5 5885 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5886 (build-system gnu-build-system)
5887 (arguments
5888 '(#:phases
5889 (modify-phases %standard-phases
5890 (add-before
5891 'check 'pre-check
5892 (lambda _
fc119619
MW
5893 ;; The test suite requires a running X server.
5894 (system "Xvfb :1 &")
5895 (setenv "DISPLAY" ":1")
5896
f47ba77e
SB
5897 ;; For the missing /etc/machine-id.
5898 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5899
144f94d0
KK
5900 ;; Our mozjs-38 package does not compile the required Intl API
5901 ;; support for these failing tests.
5902 (substitute* "installed-tests/js/testLocale.js"
5903 ((".*toBeDefined.*") "")
5904 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5905 (substitute* "installed-tests/scripts/testCommandLine.sh"
5906 (("Valentín") "")
5907 (("☭") ""))
f47ba77e
SB
5908 #t)))))
5909 (native-inputs
8a831c6f 5910 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5911 ("pkg-config" ,pkg-config)
5912 ("xmllint" ,libxml2)
5913 ;; For testing
5914 ("dbus-launch" ,dbus)
5915 ("uuidgen" ,util-linux)
ebebee94 5916 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5917 (propagated-inputs
5918 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5919 `(("cairo" ,cairo)
5920 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5921 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5922 (inputs
5923 `(("gtk+" ,gtk+)
5924 ("readline" ,readline)))
5925 (synopsis "Javascript bindings for GNOME")
f032d0be 5926 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5927 (description
5928 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5929javascript engine and the GObject introspection framework.")
5930 (license license:gpl2+)))
329d731b
DH
5931
5932(define-public gedit
5933 (package
5934 (name "gedit")
480c9226 5935 (version "3.32.2")
329d731b
DH
5936 (source (origin
5937 (method url-fetch)
5938 (uri (string-append "mirror://gnome/sources/" name "/"
5939 (version-major+minor version) "/"
5940 name "-" version ".tar.xz"))
5941 (sha256
5942 (base32
480c9226
KK
5943 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5944 (build-system meson-build-system)
329d731b 5945 (arguments
480c9226
KK
5946 `(#:glib-or-gtk? #t
5947 #:configure-flags
5948 ;; Otherwise, the RUNPATH will lack the final path component.
5949 (list (string-append "-Dc_link_args=-Wl,-rpath="
5950 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5951
5952 ;; XXX: Generated .h files are sometimes used before being built.
5953 #:parallel-build? #f
5954
480c9226 5955 #:phases
329d731b 5956 (modify-phases %standard-phases
480c9226
KK
5957 (add-after 'unpack 'skip-gtk-update-icon-cache
5958 ;; Don't create 'icon-theme.cache'.
5959 (lambda _
5960 (substitute* "build-aux/meson/post_install.py"
5961 (("gtk-update-icon-cache") (which "true")))
5962 #t))
5963 (add-after 'unpack 'patch-libgd-fetch
5964 (lambda* (#:key inputs #:allow-other-keys)
5965 (let ((libgd (assoc-ref inputs "libgd")))
5966 ;; Calling git is unnecessary because libgd is fetched as a
5967 ;; native input to this package.
5968 (substitute* "meson.build"
5969 ((".*git.*") ""))
5970 (copy-recursively libgd "subprojects/libgd")
5971 #t)))
5972 (add-after 'install 'wrap-gedit
5973 (lambda* (#:key inputs outputs #:allow-other-keys)
5974 (let ((out (assoc-ref outputs "out"))
5975 (gtksourceview (assoc-ref inputs "gtksourceview"))
5976 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5977 (python-path (getenv "PYTHONPATH")))
5978 (wrap-program (string-append out "/bin/gedit")
5979 ;; For plugins.
5980 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5981 `("PYTHONPATH" ":" prefix (,python-path))
5982 ;; For language-specs.
5983 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5984 "/share")))))
5985 #t)))))
329d731b
DH
5986 (propagated-inputs
5987 `(("dconf" ,dconf)))
5988 (native-inputs
480c9226
KK
5989 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5990 ("intltool" ,intltool)
b3546174 5991 ("itstool" ,itstool)
480c9226 5992 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5993 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5994 ("libgd"
5995 ,(origin
5996 (method git-fetch)
5997 (uri (git-reference
5998 (url "https://gitlab.gnome.org/GNOME/libgd")
5999 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6000 (file-name (git-file-name "libgd" version))
6001 (sha256
6002 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6003 ("pkg-config" ,pkg-config)))
6004 (inputs
6005 `(("glib" ,glib)
0d2df50c 6006 ("gspell" ,gspell)
329d731b 6007 ("gtk+" ,gtk+)
480c9226 6008 ("gtksourceview" ,gtksourceview)
329d731b
DH
6009 ("libpeas" ,libpeas)
6010 ("libxml2" ,libxml2)
329d731b
DH
6011 ("iso-codes" ,iso-codes)
6012 ("python-pygobject" ,python-pygobject)
6013 ("python" ,python)
6014 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6015 ("libx11" ,libx11)
6016 ("vala" ,vala)
6017 ("adwaita-icon-theme" ,adwaita-icon-theme)
6018 ("libsoup" ,libsoup)
6019 ("gnome-desktop" ,gnome-desktop)))
6020 (home-page "https://wiki.gnome.org/Apps/Gedit")
6021 (synopsis "GNOME text editor")
6022 (description "While aiming at simplicity and ease of use, gedit is a
6023powerful general purpose text editor.")
6024 (license license:gpl2+)))
b7179363
SB
6025
6026(define-public zenity
6027 (package
6028 (name "zenity")
4f581bd0 6029 (version "3.32.0")
b7179363
SB
6030 (source (origin
6031 (method url-fetch)
5958df04 6032 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6033 (version-major+minor version) "/"
5958df04 6034 "zenity-" version ".tar.xz"))
b7179363
SB
6035 (sha256
6036 (base32
4f581bd0 6037 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6038 (build-system gnu-build-system)
6039 (native-inputs
b94a6ca0 6040 `(("gettext" ,gettext-minimal)
b7179363
SB
6041 ("itstool" ,itstool)
6042 ("pkg-config" ,pkg-config)))
6043 (inputs
6044 `(("libnotify" ,libnotify)
6045 ("webkitgtk" ,webkitgtk)))
6046 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6047 (home-page "https://www.gnome.org")
b7179363
SB
6048 (description
6049 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6050to display dialog boxes from the commandline and shell scripts.")
6051 (license license:lgpl2.0+)))
60c3627c
SB
6052
6053(define-public mutter
6054 (package
6055 (name "mutter")
edf43f68 6056 (version "3.32.2")
60c3627c 6057 (source (origin
86c44e72
KK
6058 (method url-fetch)
6059 (uri (string-append "mirror://gnome/sources/" name "/"
6060 (version-major+minor version) "/"
6061 name "-" version ".tar.xz"))
60c3627c
SB
6062 (sha256
6063 (base32
edf43f68 6064 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
6065 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6066 ;; versions of cogl and clutter. As a result, many of the inputs,
6067 ;; propagated-inputs, and configure flags used in cogl and clutter are
6068 ;; needed here as well.
edf43f68 6069 (build-system meson-build-system)
60c3627c 6070 (arguments
edf43f68
KK
6071 '(;; XXX: All mutter tests fail with the following error:
6072 ;; Settings schema 'org.gnome.mutter' is not installed
6073 #:tests? #f
6074 #:glib-or-gtk? #t
6075 #:configure-flags
6076 ;; Otherwise, the RUNPATH will lack the final path component.
6077 (list (string-append "-Dc_link_args=-Wl,-rpath="
6078 (assoc-ref %outputs "out") "/lib:"
6079 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
6080
6081 ;; The following flags are needed for the bundled clutter
edf43f68 6082 (string-append "-Dxwayland_path="
d633f2f6
RH
6083 (assoc-ref %build-inputs "xorg-server-xwayland")
6084 "/bin/Xwayland")
6085
a88d5a0c 6086 ;; the remaining flags are needed for the bundled cogl
edf43f68 6087 (string-append "-Dopengl_libname="
a88d5a0c 6088 (assoc-ref %build-inputs "mesa")
f23052a6
DC
6089 "/lib/libGL.so"))
6090 #:phases
6091 (modify-phases %standard-phases
edf43f68
KK
6092 (add-after 'unpack 'disable-werror
6093 (lambda _
6094 ;; XXX: build fails with [-Werror]:
6095 ;; backends/meta-cursor-renderer.c:112:5: error:
6096 ;; implicit declaration of function ?roundf?
6097 (substitute* "meson.build"
6098 (("'-Werror=.*',") ""))
6099 #t))
86c44e72
KK
6100 ;; Replace references to systemd libraries to elogind references.
6101 (add-before 'configure 'use-elogind
6102 (lambda _
edf43f68 6103 (substitute* (list "meson.build"
86c44e72
KK
6104 "src/backends/native/meta-launcher.c"
6105 "src/core/main.c")
6106 (("systemd") "elogind"))
6107 #t)))))
60c3627c
SB
6108 (native-inputs
6109 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6110 ("gobject-introspection" ,gobject-introspection)
6111 ("intltool" ,intltool)
f23052a6 6112 ("pkg-config" ,pkg-config)
edf43f68 6113 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6114 ;; For git build
6115 ("autoconf" ,autoconf)
6116 ("automake" ,automake)
6117 ("libtool" ,libtool)))
60c3627c 6118 (propagated-inputs
a88d5a0c
MW
6119 `(;; libmutter.pc refers to these:
6120 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6121 ("gtk+" ,gtk+)
6122 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6123 ("atk" ,atk)
6124 ("cairo" ,cairo)
6125 ("gdk-pixbuf" ,gdk-pixbuf)
6126 ("glib" ,glib)
a88d5a0c
MW
6127 ("json-glib" ,json-glib)
6128 ("libinput" ,libinput)
6129 ("libx11" ,libx11)
6130 ("libxcomposite" ,libxcomposite)
6131 ("libxdamage" ,libxdamage)
6132 ("libxext" ,libxext)
6133 ("libxfixes" ,libxfixes)
6134 ("libxkbcommon" ,libxkbcommon)
6135 ("libxrandr" ,libxrandr)
6136 ("mesa" ,mesa)
6137 ("pango" ,pango)
6138 ("udev" ,eudev)
a88d5a0c 6139 ("xinput" ,xinput)))
60c3627c 6140 (inputs
86c44e72
KK
6141 `(("elogind" ,elogind)
6142 ("gnome-desktop" ,gnome-desktop)
edf43f68 6143 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6144 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6145 ("libgudev" ,libgudev)
60c3627c
SB
6146 ("libice" ,libice)
6147 ("libsm" ,libsm)
edf43f68 6148 ("libwacom" ,libwacom)
60c3627c 6149 ("libxkbfile" ,libxkbfile)
a88d5a0c 6150 ("libxrandr" ,libxrandr)
86c44e72 6151 ("libxtst" ,libxtst)
edf43f68 6152 ("pipewire" ,pipewire)
60c3627c
SB
6153 ("startup-notification" ,startup-notification)
6154 ("upower-glib" ,upower)
6155 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6156 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6157 ("zenity" ,zenity)))
6158 (synopsis "Window and compositing manager")
f032d0be 6159 (home-page "https://www.gnome.org")
60c3627c
SB
6160 (description
6161 "Mutter is a window and compositing manager that displays and manages your
6162desktop via OpenGL. Mutter combines a sophisticated display engine using the
6163Clutter toolkit with solid window-management logic inherited from the Metacity
6164window manager.")
86c44e72 6165 (license license:gpl2+)))
685cee87
SB
6166
6167(define-public gnome-online-accounts
6168 (package
6169 (name "gnome-online-accounts")
dd233e4d 6170 (version "3.36.0")
685cee87
SB
6171 (source (origin
6172 (method url-fetch)
6173 (uri (string-append "mirror://gnome/sources/" name "/"
6174 (version-major+minor version) "/"
6175 name "-" version ".tar.xz"))
6176 (sha256
6177 (base32
dd233e4d 6178 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6179 (outputs '("out" "lib"))
685cee87 6180 (build-system glib-or-gtk-build-system)
14c297fd
TS
6181 (arguments
6182 `(#:configure-flags
6183 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6184 #:phases
6185 (modify-phases %standard-phases
6186 (add-before 'configure 'patch-libgoa-output
6187 (lambda* (#:key outputs #:allow-other-keys)
6188 (let ((lib (assoc-ref outputs "lib")))
6189 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6190 (("@prefix@") lib)
6191 (("@exec_prefix@") lib)
6192 (("@libdir@") (string-append lib "/lib"))
6193 (("@includedir@") (string-append lib "/include"))
6194 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6195 ;; Make sure gobject-introspection knows about the output
6196 ;; too (see <https://bugs.gnu.org/36535>).
6197 (setenv "outputs" "out lib")
14c297fd 6198 #t))))))
685cee87
SB
6199 (native-inputs
6200 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6201 ("gobject-introspection" ,gobject-introspection)
6202 ("intltool" ,intltool)
6203 ("pkg-config" ,pkg-config)
ebb2873d 6204 ("vala" ,vala)
685cee87
SB
6205 ("xsltproc" ,libxslt)))
6206 (propagated-inputs
6207 `(("glib" ,glib) ; required by goa-1.0.pc
6208 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6209 (inputs
6210 `(("docbook-xsl" ,docbook-xsl)
6211 ("json-glib" ,json-glib)
6212 ("libsecret" ,libsecret)
6213 ("rest" ,rest)
685cee87
SB
6214 ("webkitgtk" ,webkitgtk)))
6215 (synopsis "Single sign-on framework for GNOME")
6216 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6217 (description
6218 "GNOME Online Accounts provides interfaces so that applications and
6219libraries in GNOME can access the user's online accounts. It has providers for
6220Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6221Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6222 (license license:lgpl2.0+)))
df217748
SB
6223
6224(define-public evolution-data-server
6225 (package
6226 (name "evolution-data-server")
2196a8d4 6227 (version "3.32.4")
df217748
SB
6228 (source (origin
6229 (method url-fetch)
6230 (uri (string-append "mirror://gnome/sources/" name "/"
6231 (version-major+minor version) "/"
6232 name "-" version ".tar.xz"))
43190ac6
MB
6233 (patches (search-patches "evolution-data-server-locales.patch"
6234 "evolution-data-server-libical-compat.patch"))
df217748
SB
6235 (sha256
6236 (base32
2196a8d4 6237 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 6238 (build-system cmake-build-system)
df217748 6239 (arguments
b468eedc
RW
6240 '(#:configure-flags
6241 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6242 (runpaths (map (lambda (s)
6243 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6244 '("addressbook-backends" "calendar-backends"
6245 "camel-providers" "credential-modules"
6246 "registry-modules"))))
6247 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6248 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6249 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6250 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6251 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6252 (string-append lib "/evolution-data-server;")
6253 (string-join runpaths ";"))
6254 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6255 #:phases
6256 (modify-phases %standard-phases
b468eedc
RW
6257 (add-after 'unpack 'disable-failing-tests
6258 (lambda _
6259 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6260 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6261 (delete-file-recursively "tests/book-migration")
6262 (substitute* "tests/CMakeLists.txt"
6263 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
6264 ;; tests/libebook/client/test-book-client-view-operations:8077):
6265 ;; e-data-server-WARNING **:
6266 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6267 ;; runtime check failed:
6268 ;; (!g_main_context_pending (closure->main_context))
6269 (substitute* "tests/libebook/client/CMakeLists.txt"
6270 (("test-book-client-view-operations") ""))
b468eedc 6271 #t))
743aebd7 6272 (add-after 'unpack 'patch-paths
df217748 6273 (lambda _
b468eedc
RW
6274 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6275 "tests/libedata-book/data-test-utils.c"
6276 "tests/libedata-book/test-book-cache-utils.c"
6277 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6278 (("/bin/rm") (which "rm")))
ac033c7b
MB
6279 #t))
6280 (add-before 'configure 'dont-override-rpath
6281 (lambda _
6282 (substitute* "CMakeLists.txt"
6283 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6284 ;; Remove it so the configure flag is respected.
6285 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6286 #t)))))
df217748
SB
6287 (native-inputs
6288 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6289 ("gobject-introspection" ,gobject-introspection)
6290 ("gperf" ,gperf)
6291 ("intltool" ,intltool)
6292 ("pkg-config" ,pkg-config)
a73c1cf8 6293 ("vala" ,vala)
743aebd7 6294 ("python" ,python-wrapper)))
df217748
SB
6295 (propagated-inputs
6296 ;; These are all in the Requires field of .pc files.
6297 `(("gtk+" ,gtk+)
6298 ("libical" ,libical)
6299 ("libsecret" ,libsecret)
6300 ("libsoup" ,libsoup)
6301 ("nss" ,nss)
6302 ("sqlite" ,sqlite)))
6303 (inputs
6304 `(("bdb" ,bdb)
6305 ("gcr" ,gcr)
14c297fd 6306 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6307 ("json-glib" ,json-glib)
b468eedc 6308 ("libcanberra" ,libcanberra)
743aebd7
MB
6309 ("libgweather" ,libgweather)
6310 ("mit-krb5" ,mit-krb5)
891199c6
MW
6311 ("openldap" ,openldap)
6312 ("webkitgtk" ,webkitgtk)))
df217748
SB
6313 (synopsis "Store address books and calendars")
6314 (home-page "https://wiki.gnome.org/Apps/Evolution")
6315 (description
6316 "This package provides a unified backend for programs that work with
6317contacts, tasks, and calendar information. It was originally developed for
6318Evolution (hence the name), but is now used by other packages as well.")
6319 (license license:lgpl2.0)))
bd7dfafa
SB
6320
6321(define-public caribou
6322 (package
6323 (name "caribou")
fe964bb5 6324 (version "0.4.21")
bd7dfafa
SB
6325 (source (origin
6326 (method url-fetch)
6327 (uri (string-append "mirror://gnome/sources/" name "/"
6328 (version-major+minor version) "/"
6329 name "-" version ".tar.xz"))
6330 (sha256
6331 (base32
fe964bb5 6332 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6333 (build-system glib-or-gtk-build-system)
6334 (arguments
6335 '(#:phases
6336 (modify-phases %standard-phases
6337 (add-before
6338 'build 'pre-build
6339 (lambda* (#:key outputs #:allow-other-keys)
6340 (let ((out (assoc-ref outputs "out")))
6341 ;; Use absolute shared library path in Caribou-1.0.typelib.
6342 (substitute* "libcaribou/Makefile"
6343 (("--shared-library=libcaribou.so")
6344 (string-append "--shared-library="
6345 out "/lib/libcaribou.so")))
6346 #t)))
6347 (add-after 'install 'wrap-programs
6348 (lambda* (#:key outputs #:allow-other-keys)
6349 (let* ((out (assoc-ref outputs "out"))
6350 (python-path (getenv "PYTHONPATH"))
6351 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6352 (for-each
6353 (lambda (prog)
6354 (wrap-program prog
6355 `("PYTHONPATH" ":" prefix (,python-path))
6356 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6357 (list (string-append out "/bin/caribou-preferences")
6358 (string-append out "/libexec/antler-keyboard"))))
6359 #t)))))
6360 (native-inputs
6361 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6362 ("gobject-introspection" ,gobject-introspection)
6363 ("intltool" ,intltool)
6364 ("pkg-config" ,pkg-config)
9f7f5ba2 6365 ("python" ,python)
bd7dfafa
SB
6366 ("vala" ,vala)
6367 ("xsltproc" ,libxslt)))
6368 (propagated-inputs
6369 ;; caribou-1.0.pc refers to all these.
6370 `(("libgee" ,libgee)
6371 ("libxklavier" ,libxklavier)
6372 ("libxtst" ,libxtst)
6373 ("gtk+" ,gtk+)))
6374 (inputs
6375 `(("clutter" ,clutter)
6376 ("dconf" ,dconf)
6377 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6378 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6379 (synopsis "Text entry and UI navigation application")
6380 (home-page "https://wiki.gnome.org/Projects/Caribou")
6381 (description
6382 "Caribou is an input assistive technology intended for switch and pointer
6383users.")
6384 (license license:lgpl2.1)))
ba5dd105 6385
ba5dd105
SB
6386(define-public network-manager
6387 (package
6388 (name "network-manager")
6425d87a 6389 (version "1.18.4")
ba5dd105
SB
6390 (source (origin
6391 (method url-fetch)
6392 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6393 (version-major+minor version) "/"
6394 "NetworkManager-" version ".tar.xz"))
7d1861e2 6395 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6396 (sha256
6397 (base32
6425d87a 6398 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 6399 (modules '((guix build utils)))
fd070f35 6400 (snippet
02710a9b
RW
6401 '(begin
6402 (substitute* "src/devices/wwan/nm-modem-manager.c"
6403 (("systemd") "elogind"))
6404 #t))))
ba5dd105
SB
6405 (build-system gnu-build-system)
6406 (outputs '("out"
6407 "doc")) ; 8 MiB of gtk-doc HTML
6408 (arguments
6409 '(#:configure-flags
6410 (let ((out (assoc-ref %outputs "out"))
6411 (doc (assoc-ref %outputs "doc"))
6412 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6413 "/sbin/dhclient")))
02710a9b
RW
6414 (list "--with-libnm-glib" ; needed by network-manager-applet
6415 "--with-systemd-journal=no"
6416 "--with-session-tracking=elogind"
6417 "--with-suspend-resume=elogind"
fd070f35
CM
6418 "--with-consolekit=no"
6419 "--with-crypto=gnutls"
ba5dd105
SB
6420 "--disable-config-plugin-ibft"
6421 "--sysconfdir=/etc"
6422 "--localstatedir=/var"
6423 (string-append "--with-udev-dir="
6424 out "/lib/udev")
6425 (string-append "--with-dbus-sys-dir="
6426 out "/etc/dbus-1/system.d")
6427 (string-append "--with-html-dir="
6428 doc "/share/gtk-doc/html")
6429 (string-append "--with-dhclient=" dhclient)))
6430 #:phases
6431 (modify-phases %standard-phases
02710a9b
RW
6432 ;; This bare "ls" invocation breaks some tests.
6433 (add-after 'unpack 'patch-ls-invocation
6434 (lambda _
6435 (substitute* "build-aux/ltmain.sh"
6436 (("`ls -")
6437 (string-append "`" (which "ls") " -")))
6438 #t))
b4f59d87
AW
6439 (add-before 'configure 'pre-configure
6440 (lambda _
6441 ;; These tests try to test aspects of network-manager's
6442 ;; functionality within restricted containers, but they don't
6443 ;; cope with being already in the Guix build jail as that jail
6444 ;; lacks some features that they would like to proxy over (like
6445 ;; a /sys mount).
d04687dc
HG
6446 (substitute* '("Makefile.in")
6447 (("src/platform/tests/test-address-linux") " ")
6448 (("src/platform/tests/test-cleanup-linux") " ")
6449 (("src/platform/tests/test-link-linux") " ")
6450 (("src/platform/tests/test-route-linux") " ")
02710a9b 6451 (("src/devices/tests/test-acd") "")
d04687dc
HG
6452 (("src/devices/tests/test-arping") " ")
6453 (("src/devices/tests/test-lldp") " ")
6454 (("src/tests/test-route-manager-linux") " "))
b4f59d87 6455 #t))
45f80fce
RW
6456 (add-after 'unpack 'delete-failing-tests
6457 (lambda _
02710a9b 6458 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
6459 ;; ERROR:libnm-core/tests/test-general.c:5842:
6460 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6461 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6462 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6463 ;; ERROR:libnm-core/tests/test-setting.c:907:
6464 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
6465 (substitute* "Makefile.in"
6466 (("libnm-core/tests/test-general") " ")
6467 (("libnm-core/tests/test-keyfile") " ")
02710a9b 6468 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 6469 #t))
ba5dd105
SB
6470 (add-before 'check 'pre-check
6471 (lambda _
6472 ;; For the missing /etc/machine-id.
6473 (setenv "DBUS_FATAL_WARNINGS" "0")
6474 #t))
6475 (replace 'install
6476 (lambda _
45f80fce
RW
6477 (invoke "make"
6478 "sysconfdir=/tmp"
6479 "rundir=/tmp"
6480 "statedir=/tmp"
6481 "nmstatedir=/tmp/nm"
6482 "install")
6483 #t)))))
b93502d6
DC
6484 (propagated-inputs
6485 `(("glib" ,glib)))
ba5dd105
SB
6486 (native-inputs
6487 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6488 ("gobject-introspection" ,gobject-introspection)
d04687dc 6489 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6490 ("intltool" ,intltool)
d04687dc
HG
6491 ("libxslt" ,libxslt)
6492 ("libxml2" ,libxml2)
ba5dd105
SB
6493 ("pkg-config" ,pkg-config)
6494 ;; For testing.
6495 ("python" ,python-wrapper)
6496 ("python-dbus" ,python-dbus)
6497 ("python-pygobject" ,python-pygobject)))
6498 (inputs
02710a9b
RW
6499 `(("coreutils" ,coreutils) ; for ls
6500 ("curl" ,curl)
856ca567
KK
6501 ("cyrus-sasl" ,cyrus-sasl)
6502 ("dbus-glib" ,dbus-glib)
ba5dd105 6503 ("dnsmasq" ,dnsmasq)
856ca567 6504 ("eudev" ,eudev)
ba5dd105
SB
6505 ("gnutls" ,gnutls)
6506 ("iptables" ,iptables)
6507 ("isc-dhcp" ,isc-dhcp)
d04687dc 6508 ("jansson" ,jansson)
ba5dd105
SB
6509 ("libgcrypt" ,libgcrypt)
6510 ("libgudev" ,libgudev)
6511 ("libndp" ,libndp)
6512 ("libnl" ,libnl)
6513 ("libsoup" ,libsoup)
142bdcbc 6514 ("modem-manager" ,modem-manager)
c27e02bf 6515 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6516 ("polkit" ,polkit)
6517 ("ppp" ,ppp)
6518 ("readline" ,readline)
fd070f35
CM
6519 ("util-linux" ,util-linux)
6520 ("elogind" ,elogind)))
ba5dd105 6521 (synopsis "Network connection manager")
f032d0be 6522 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6523 (description
6524 "NetworkManager is a system network service that manages your network
6525devices and connections, attempting to keep active network connectivity when
6526available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6527devices, and provides VPN integration with a variety of different VPN
6528services.")
29d2f451
LC
6529 (license license:gpl2+)
6530 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6531
f2b96b3a
LC
6532(define-public network-manager-openvpn
6533 (package
6534 (name "network-manager-openvpn")
be1c4b07 6535 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6536 (version "1.8.10")
f2b96b3a
LC
6537 (source (origin
6538 (method url-fetch)
6539 (uri (string-append
6540 "mirror://gnome/sources/NetworkManager-openvpn/"
6541 (version-major+minor version)
6542 "/NetworkManager-openvpn-" version ".tar.xz"))
6543 (sha256
6544 (base32
7d87eede 6545 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6546 (build-system gnu-build-system)
6547 (arguments
633422b0
JL
6548 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6549 #:phases
6550 (modify-phases %standard-phases
6551 (add-after 'configure 'patch-path
6552 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6553 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6554 "/sbin/openvpn"))
6555 (modprobe (string-append (assoc-ref inputs "kmod")
6556 "/bin/modprobe"))
6557 (pretty-ovpn (string-append "\"" ovpn "\"")))
6558 (for-each
6559 (lambda (file)
6560 (substitute* file
6561 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6562 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6563 (("\"/sbin/openvpn\"") pretty-ovpn)
6564 (("/sbin/modprobe") modprobe)))
6565 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6566 #t)))))
f2b96b3a
LC
6567 (native-inputs
6568 `(("pkg-config" ,pkg-config)
6569 ("intltool" ,intltool)))
6570 (inputs
6571 `(("gtk+" ,gtk+)
633422b0 6572 ("kmod" ,kmod)
f2b96b3a
LC
6573 ("openvpn" ,openvpn)
6574 ("network-manager" ,network-manager)
6575 ("network-manager-applet" ,network-manager-applet) ;for libnma
6576 ("libsecret" ,libsecret)))
6577 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6578 (synopsis "OpenVPN plug-in for NetworkManager")
6579 (description
6580 "This extension of NetworkManager allows it to take care of connections
6581to virtual private networks (VPNs) via OpenVPN.")
6582 (license license:gpl2+)
6583 (properties `((upstream-name . "NetworkManager-openvpn")))))
6584
d376129f
JL
6585(define-public network-manager-vpnc
6586 (package
6587 (name "network-manager-vpnc")
6588 (version "1.2.6")
6589 (source (origin
6590 (method url-fetch)
6591 (uri (string-append
6592 "mirror://gnome/sources/NetworkManager-vpnc/"
6593 (version-major+minor version)
6594 "/NetworkManager-vpnc-" version ".tar.xz"))
6595 (sha256
6596 (base32
6597 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6598 (build-system gnu-build-system)
6599 (arguments
6600 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6601 #:phases
6602 (modify-phases %standard-phases
6603 (add-after 'configure 'patch-path
6604 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6605 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6606 "/sbin/vpnc"))
6607 (modprobe (string-append (assoc-ref inputs "kmod")
6608 "/bin/modprobe"))
6609 (pretty-ovpn (string-append "\"" vpnc "\"")))
6610 (substitute* "src/nm-vpnc-service.c"
6611 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6612 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6613 (("\"/sbin/vpnc\"") pretty-ovpn)
6614 (("/sbin/modprobe") modprobe)))
6615 #t)))))
6616 (native-inputs
6617 `(("pkg-config" ,pkg-config)
6618 ("intltool" ,intltool)))
6619 (inputs
6620 `(("gtk+" ,gtk+)
6621 ("kmod" ,kmod)
6622 ("vpnc" ,vpnc)
6623 ("network-manager" ,network-manager)
6624 ("network-manager-applet" ,network-manager-applet) ;for libnma
6625 ("libsecret" ,libsecret)))
6626 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6627 (synopsis "VPNC plug-in for NetworkManager")
6628 (description
6629 "Support for configuring virtual private networks based on VPNC.
6630Compatible with Cisco VPN concentrators configured to use IPsec.")
6631 (license license:gpl2+)
6632 (properties `((upstream-name . "NetworkManager-vpnc")))))
6633
8378c87a
EF
6634(define-public network-manager-openconnect
6635 (package
6636 (name "network-manager-openconnect")
6637 (version "1.2.6")
6638 (source (origin
6639 (method url-fetch)
6640 (uri (string-append
6641 "mirror://gnome/sources/NetworkManager-openconnect/"
6642 (version-major+minor version)
6643 "/NetworkManager-openconnect-" version ".tar.xz"))
6644 (sha256
6645 (base32
6646 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6647 (build-system gnu-build-system)
6648 (arguments
6649 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6650 #:phases
6651 (modify-phases %standard-phases
6652 (add-after 'configure 'patch-path
6653 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6654 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6655 "/sbin/openconnect"))
6656 (modprobe (string-append (assoc-ref inputs "kmod")
6657 "/bin/modprobe"))
6658 (pretty-ovpn (string-append "\"" openconnect "\"")))
6659 (substitute* "src/nm-openconnect-service.c"
6660 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6661 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6662 (("/sbin/modprobe") modprobe)))
6663 #t)))))
6664 (native-inputs
6665 `(("intltool" ,intltool)
6666 ("network-manager-applet" ,network-manager-applet) ;for libnma
6667 ("pkg-config" ,pkg-config)))
6668 (inputs
6669 `(("gcr" ,gcr)
6670 ("gtk+" ,gtk+)
6671 ("kmod" ,kmod)
6672 ("libsecret" ,libsecret)
6673 ("libxml2" ,libxml2)
b4fe5dab 6674 ("lz4" ,lz4)
8378c87a
EF
6675 ("network-manager" ,network-manager)
6676 ("openconnect" ,openconnect)))
6677 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6678 (synopsis "OpenConnect plug-in for NetworkManager")
6679 (description
6680 "This extension of NetworkManager allows it to take care of connections
6681to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6682Cisco's AnyConnect SSL VPN.")
6683 (license license:gpl2+)
e52b9534
LC
6684 (properties `((upstream-name . "NetworkManager-openconnect")
6685
6686 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6687 ;; file refers to account "nm-openconnect". Specify it here
6688 ;; so that 'network-manager-service-type' creates it.
6689 (user-accounts . ("nm-openconnect"))))))
8378c87a 6690
e5e1df4d
DC
6691(define-public mobile-broadband-provider-info
6692 (package
6693 (name "mobile-broadband-provider-info")
310c89e3 6694 (version "20190116")
e5e1df4d
DC
6695 (source (origin
6696 (method url-fetch)
6697 (uri (string-append
6698 "mirror://gnome/sources/"
6699 "mobile-broadband-provider-info/" version "/"
6700 "mobile-broadband-provider-info-" version ".tar.xz"))
6701 (sha256
6702 (base32
310c89e3 6703 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6704 (build-system gnu-build-system)
6705 (arguments
310c89e3 6706 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6707 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6708 (synopsis "Database of broadband connection configuration")
6709 (description "Database of broadband connection configuration.")
6710 (license license:public-domain)))
6711
4d62a9d3
SB
6712(define-public network-manager-applet
6713 (package
6714 (name "network-manager-applet")
8fc3a337 6715 (version "1.8.24")
4d62a9d3
SB
6716 (source (origin
6717 (method url-fetch)
3df63444 6718 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6719 (version-major+minor version) "/"
3df63444 6720 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6721 (sha256
6722 (base32
8fc3a337 6723 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6724 (build-system meson-build-system)
6725 (arguments
be1c4b07
TGR
6726 '(#:configure-flags
6727 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6728 (list "-Dlibnm_gtk=true")
6729 #:glib-or-gtk? #t))
4d62a9d3
SB
6730 (native-inputs
6731 `(("intltool" ,intltool)
cd7f718e 6732 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6733 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6734 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6735 ("pkg-config" ,pkg-config)))
6736 (propagated-inputs
6737 ;; libnm-gtk.pc refers to all these.
6738 `(("dbus-glib" ,dbus-glib)
6739 ("gtk+" ,gtk+)
6740 ("network-manager" ,network-manager)))
6741 (inputs
cd7f718e
RW
6742 `(("gcr" ,gcr)
6743 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6744 ("libgudev" ,libgudev)
6745 ("libnotify" ,libnotify)
2116bfb3 6746 ("libsecret" ,libsecret)
240cee8a
KK
6747 ("libselinux" ,libselinux)
6748 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6749 ("modem-manager" ,modem-manager)
6750 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6751 (synopsis "Applet for managing network connections")
f032d0be 6752 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6753 (description
6754 "This package contains a systray applet for NetworkManager. It displays
6755the available networks and allows users to easily switch between them.")
6756 (license license:gpl2+)))
56196594
RW
6757
6758(define-public libxml++
6759 (package
6760 (name "libxml++")
8344a85e 6761 (version "3.0.1")
56196594
RW
6762 (source (origin
6763 (method url-fetch)
6764 (uri (string-append "mirror://gnome/sources/" name "/"
6765 (version-major+minor version) "/"
6766 name "-" version ".tar.xz"))
6767 (sha256
6768 (base32
8344a85e 6769 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6770 (build-system gnu-build-system)
6771 ;; libxml++-3.0.pc refers to all these.
6772 (propagated-inputs
6773 `(("libxml2" ,libxml2)
6774 ("glibmm" ,glibmm)))
6775 (native-inputs
6776 `(("perl" ,perl)
6777 ("pkg-config" ,pkg-config)))
6778 (home-page "http://libxmlplusplus.sourceforge.net/")
6779 (synopsis "C++ wrapper for XML parser library libxml2")
6780 (description
6781 "This package provides a C++ wrapper for the XML parser library
6782libxml2.")
6783 (license license:lgpl2.1+)))
df12f04a 6784
b61d9627
AW
6785(define-public libxml++-2
6786 (package
6787 (inherit libxml++)
6788 (name "libxml++")
6789 (version "2.40.1")
6790 (source (origin
6791 (method url-fetch)
6792 (uri (string-append "mirror://gnome/sources/" name "/"
6793 (version-major+minor version) "/"
6794 name "-" version ".tar.xz"))
6795 (sha256
6796 (base32
6797 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6798
df12f04a
SB
6799(define-public gdm
6800 (package
6801 (name "gdm")
bcca95dc 6802 (version "3.32.0")
df12f04a
SB
6803 (source (origin
6804 (method url-fetch)
6805 (uri (string-append "mirror://gnome/sources/" name "/"
6806 (version-major+minor version) "/"
6807 name "-" version ".tar.xz"))
6808 (sha256
6809 (base32
f4ec5e1a
LC
6810 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))
6811 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6812 (build-system glib-or-gtk-build-system)
df12f04a
SB
6813 (arguments
6814 '(#:configure-flags
af37e6bb 6815 `("--without-plymouth"
957dbc0a 6816 "--disable-systemd-journal"
51bc8357
TS
6817
6818 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6819 ;; instead of having to replace it (i.e., stopping the mingetty
6820 ;; service for TTY 1 before starting GDM).
6821 "--with-initial-vt=7"
6822
89c86562
TS
6823 ;; Use '/etc/environment' for locale settings instead of the
6824 ;; systemd-specific '/etc/locale.conf'.
6825 "--with-lang-file=/etc/environment"
6826
b74ef0ba
RW
6827 ,(string-append "--with-udevdir="
6828 (assoc-ref %outputs "out") "/lib/udev")
6829
af37e6bb
AW
6830 "--localstatedir=/var"
6831 ,(string-append "--with-default-path="
6832 (string-join '("/run/setuid-programs"
6833 "/run/current-system/profile/bin"
6834 "/run/current-system/profile/sbin")
957dbc0a
AW
6835 ":"))
6836 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6837 ;; XDG_DATA_DIRS so that it finds its schemas.
6838 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6839 #:phases
6840 (modify-phases %standard-phases
6841 (add-before
6842 'configure 'pre-configure
e8c6e771 6843 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6844 ;; We don't have <systemd/sd-daemon.h>.
6845 (substitute* '("common/gdm-log.c"
6846 "daemon/gdm-server.c"
6847 "daemon/gdm-session-worker.c"
6848 "daemon/gdm-session-worker-job.c")
6849 (("#include <systemd/sd-daemon\\.h>") ""))
6850 ;; Use elogind for sd-login.
6851 (substitute* '("common/gdm-common.c"
6852 "daemon/gdm-manager.c"
6853 "libgdm/gdm-user-switching.c")
6854 (("#include <systemd/sd-login\\.h>")
6855 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6856 ;; Check for elogind.
6857 (substitute* '("configure")
6858 (("libsystemd")
6859 "libelogind"))
af37e6bb
AW
6860 ;; Look for system-installed sessions in
6861 ;; /run/current-system/profile/share.
6862 (substitute* '("libgdm/gdm-sessions.c"
6863 "daemon/gdm-session.c"
6864 "daemon/gdm-display.c"
6865 "daemon/gdm-launch-environment.c")
6866 (("DATADIR \"/x")
6867 "\"/run/current-system/profile/share/x")
6868 (("DATADIR \"/wayland")
6869 "\"/run/current-system/profile/share/wayland")
6870 (("DATADIR \"/gnome")
6871 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6872 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6873 "GDM_DBUS_DAEMON"
c9ff92b5 6874 "GDM_X_SERVER"
41fa9f18 6875 "GDM_X_SESSION"
c9ff92b5
TS
6876 ;; XXX: Remove this once GNOME Shell is
6877 ;; a dependency of GDM.
6878 "XDG_DATA_DIRS")))
6879 (substitute* "daemon/gdm-session.c"
6880 (("set_up_session_environment \\(self\\);")
6881 (apply string-append
6882 "set_up_session_environment (self);\n"
6883 (map (lambda (name)
6884 (string-append
6885 "gdm_session_set_environment_variable "
6886 "(self, \"" name "\","
6887 "g_getenv (\"" name "\"));\n"))
6888 propagate)))))
a430a350
TS
6889 ;; Find the configuration file using an environment variable.
6890 (substitute* '("common/gdm-settings.c")
e0e6756f 6891 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6892 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6893 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6894 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6895 ;; Use service-supplied path to X.
6896 (substitute* '("daemon/gdm-server.c")
6897 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6898 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6899 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6900 (("\"dbus-daemon\"")
6901 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6902 (("X_SERVER")
41fa9f18
TS
6903 "g_getenv (\"GDM_X_SERVER\")")
6904 (("GDMCONFDIR \"/Xsession\"")
6905 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6906 ;; Use an absolute path for GNOME Session.
6907 (substitute* "daemon/gdm-launch-environment.c"
6908 (("\"gnome-session\"")
6909 (string-append "\"" (assoc-ref inputs "gnome-session")
6910 "/bin/gnome-session\"")))
e8c6e771
TS
6911 ;; Do not automatically select the placeholder session.
6912 (substitute* "daemon/gdm-session.c"
6913 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6914 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6915 "(g_strcmp0(search_dirs[i], \""
6916 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6917 "\") == 0 && "
6918 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6919 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6920 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6921 #t))
8caa4589
TS
6922 ;; GDM requires that there be at least one desktop entry
6923 ;; file. This phase installs a hidden one that simply
6924 ;; fails. This enables users to use GDM with a
6925 ;; '~/.xsession' script with no other desktop entry files.
6926 ;; See <https://bugs.gnu.org/35068>.
6927 (add-after 'install 'install-placeholder-desktop-entry
6928 (lambda* (#:key inputs outputs #:allow-other-keys)
6929 (let* ((out (assoc-ref outputs "out"))
6930 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6931 (fail (string-append sessions "/fail.desktop")))
6932 (mkdir-p sessions)
6933 (with-output-to-file fail
6934 (lambda ()
6935 (for-each
6936 display
6937 '("[Desktop Entry]\n"
6938 "Encoding=UTF-8\n"
6939 "Type=Application\n"
6940 "Name=Fail\n"
6941 "Comment=This session fails immediately.\n"
6942 "NoDisplay=true\n"
6943 "Exec=false\n"))))
6944 #t)))
69544798
TS
6945 ;; GDM needs GNOME Session to run these applications. We link
6946 ;; their autostart files in `share/gdm/greeter/autostart'
6947 ;; because GDM explicitly tells GNOME Session to look there.
6948 ;;
6949 ;; XXX: GNOME Shell should be linked here too, but currently
6950 ;; GNOME Shell depends on GDM.
6951 (add-after 'install 'link-autostart-files
6952 (lambda* (#:key inputs outputs #:allow-other-keys)
6953 (let* ((out (assoc-ref outputs "out"))
6954 (autostart (string-append out "/share/gdm/"
6955 "greeter/autostart"))
6956 (settings (assoc-ref inputs "gnome-settings-daemon")))
6957 (mkdir-p autostart)
6958 (with-directory-excursion autostart
6959 (for-each (lambda (desktop)
6960 (symlink desktop (basename desktop)))
6961 (find-files (string-append settings "/etc/xdg"))))
6962 #t))))))
df12f04a
SB
6963 (native-inputs
6964 `(("dconf" ,dconf)
6965 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6966 ("gobject-introspection" ,gobject-introspection)
6967 ("intltool" ,intltool)
6968 ("itstool" ,itstool)
6969 ("pkg-config" ,pkg-config)
6970 ("xmllint" ,libxml2)))
6971 (inputs
6972 `(("accountsservice" ,accountsservice)
6973 ("check" ,check) ; for testing
6974 ("elogind" ,elogind)
def6d6b6 6975 ("gnome-session" ,gnome-session)
69544798 6976 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6977 ("gtk+" ,gtk+)
6978 ("iso-codes" ,iso-codes)
6979 ("libcanberra" ,libcanberra)
6980 ("linux-pam" ,linux-pam)))
6981 (synopsis "Display manager for GNOME")
f032d0be 6982 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6983 (description
6984 "GNOME Display Manager is a system service that is responsible for
6985providing graphical log-ins and managing local and remote displays.")
6986 (license license:gpl2+)))
8e1dd04f
SB
6987
6988(define-public libgtop
6989 (package
6990 (name "libgtop")
015fc036 6991 (version "2.40.0")
8e1dd04f
SB
6992 (source (origin
6993 (method url-fetch)
59487fc2 6994 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6995 (version-major+minor version) "/"
59487fc2 6996 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6997 (sha256
6998 (base32
015fc036 6999 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7000 (build-system gnu-build-system)
7001 (native-inputs
7002 `(("gobject-introspection" ,gobject-introspection)
7003 ("intltool" ,intltool)
7004 ("perl" ,perl)
7005 ("pkg-config" ,pkg-config)))
7006 (propagated-inputs
7007 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7008 (synopsis "Portable system access library")
7009 (home-page "https://www.gnome.org/")
7010 (description
7011 "LibGTop is a library to get system specific data such as CPU and memory
7012usage and information about running processes.")
7013 (license license:gpl2+)))
b96c4260
SB
7014
7015(define-public gnome-bluetooth
7016 (package
7017 (name "gnome-bluetooth")
723afae6 7018 (version "3.32.1")
b96c4260
SB
7019 (source (origin
7020 (method url-fetch)
7021 (uri (string-append "mirror://gnome/sources/" name "/"
7022 (version-major+minor version) "/"
7023 name "-" version ".tar.xz"))
7024 (sha256
7025 (base32
723afae6 7026 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 7027 (build-system meson-build-system)
b96c4260
SB
7028 (native-inputs
7029 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7030 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7031 ("gobject-introspection" ,gobject-introspection)
7032 ("intltool" ,intltool)
7033 ("pkg-config" ,pkg-config)
7034 ("xmllint" ,libxml2)))
7035 (propagated-inputs
7036 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7037 `(("glib" ,glib)
7038 ("gtk+" ,gtk+)))
b96c4260 7039 (inputs
723afae6
KK
7040 `(("eudev" ,eudev)
7041 ("libcanberra" ,libcanberra)
b96c4260
SB
7042 ("libnotify" ,libnotify)))
7043 (synopsis "GNOME Bluetooth subsystem")
7044 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7045 (description
7046 "This package contains tools for managing and manipulating Bluetooth
7047devices using the GNOME desktop.")
7048 (license license:lgpl2.1+)))
b645146f
SB
7049
7050(define-public gnome-control-center
7051 (package
7052 (name "gnome-control-center")
a6938bac 7053 (version "3.32.2")
b645146f
SB
7054 (source (origin
7055 (method url-fetch)
7056 (uri (string-append "mirror://gnome/sources/" name "/"
7057 (version-major+minor version) "/"
7058 name "-" version ".tar.xz"))
7059 (sha256
7060 (base32
a6938bac 7061 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 7062 (build-system meson-build-system)
b645146f 7063 (arguments
59dac026
RW
7064 '(#:glib-or-gtk? #t
7065 #:configure-flags
64c70430
KK
7066 (list "-Dcheese=false"
7067 (string-append "-Dgnome_session_libexecdir="
7068 (assoc-ref %build-inputs "gnome-session")
7069 "/libexec"))
59dac026 7070 #:phases
b645146f
SB
7071 (modify-phases %standard-phases
7072 (add-before 'configure 'patch-paths
7073 (lambda* (#:key inputs #:allow-other-keys)
7074 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7075 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7076 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7077 (nm-applet (assoc-ref inputs "network-manager-applet"))
7078 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7079 (substitute* "panels/datetime/tz.h"
7080 (("/usr/share/zoneinfo/zone.tab")
7081 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7082 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7083 (("/usr/share/locale")
7084 (string-append libc "/share/locale")))
1df38cfc
LC
7085 (substitute* "panels/region/cc-region-panel.c"
7086 (("\"gkbd-keyboard-display")
7087 (string-append "\"" libgnomekbd
7088 "/bin/gkbd-keyboard-display")))
341225ac
LC
7089 (substitute* '("panels/network/net-device-wifi.c"
7090 "panels/network/net-device.c"
7091 "panels/network/connection-editor/net-connection-editor.c")
7092 (("\"nm-connection-editor")
7093 (string-append "\"" nm-applet
7094 "/bin/nm-connection-editor")))
1acd107c
FP
7095 (substitute* '("panels/user-accounts/run-passwd.c")
7096 (("/usr/bin/passwd")
7097 "/run/setuid-programs/passwd"))
64c70430
KK
7098 (substitute* "panels/info/cc-info-overview-panel.c"
7099 (("DATADIR \"/gnome/gnome-version.xml\"")
7100 (string-append "\"" gnome-desktop
7101 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
7102 #t))))))
7103 (native-inputs
7104 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 7105 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
7106 ("intltool" ,intltool)
7107 ("pkg-config" ,pkg-config)
a6938bac
KK
7108 ("xsltproc" ,libxslt)
7109 ;; For tests
7110 ("hicolor-icon-theme" ,hicolor-icon-theme)
7111 ("python-dbusmock" ,python-dbusmock)
7112 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7113 (inputs
7114 `(("accountsservice" ,accountsservice)
7115 ("clutter-gtk" ,clutter-gtk)
7116 ("colord-gtk" ,colord-gtk)
7117 ("cups" ,cups)
7118 ("dconf" ,dconf)
7119 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7120 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7121 ("gnome-bluetooth" ,gnome-bluetooth)
7122 ("gnome-desktop" ,gnome-desktop)
7123 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7124 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7125 ("gnome-session" ,gnome-session)
b645146f
SB
7126 ("gnome-settings-daemon" ,gnome-settings-daemon)
7127 ("grilo" ,grilo)
a6938bac 7128 ("gsound" ,gsound)
b645146f
SB
7129 ("ibus" ,ibus)
7130 ("libcanberra" ,libcanberra)
1df38cfc 7131 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7132 ("libgudev" ,libgudev)
7133 ("libgtop" ,libgtop)
7134 ("libpwquality" ,libpwquality)
982c0b36 7135 ("libsecret" ,libsecret)
b645146f
SB
7136 ("libsoup" ,libsoup)
7137 ("libxml2" ,libxml2)
7138 ("libwacom" ,libwacom)
7139 ("mesa" ,mesa)
7140 ("mit-krb5" ,mit-krb5)
7141 ("modem-manager" ,modem-manager)
7142 ("network-manager-applet" ,network-manager-applet)
7143 ("polkit" ,polkit)
7144 ("pulseaudio" ,pulseaudio)
7145 ("smbclient" ,samba)
7146 ("tzdata" ,tzdata)
982c0b36 7147 ("udisks" ,udisks)
b645146f
SB
7148 ("upower" ,upower)))
7149 (synopsis "Utilities to configure the GNOME desktop")
7150 (home-page "https://www.gnome.org/")
7151 (description
7152 "This package contains configuration applets for the GNOME desktop,
7153allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7154properties, sound setup, desktop theme and background, user interface
7155properties, screen resolution, and other GNOME parameters.")
7156 (license license:gpl2+)))
a4df5756
SB
7157
7158(define-public gnome-shell
7159 (package
7160 (name "gnome-shell")
d5e615ca 7161 (version "3.32.2")
a4df5756
SB
7162 (source (origin
7163 (method url-fetch)
7164 (uri (string-append "mirror://gnome/sources/" name "/"
7165 (version-major+minor version) "/"
7166 name "-" version ".tar.xz"))
7167 (sha256
7168 (base32
d5e615ca 7169 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
7170 (patches (search-patches "gnome-shell-theme.patch"))
7171 (modules '((guix build utils)))
7172 (snippet
7173 #~(begin
a76d0f03
LC
7174 ;; Copy images for use on the GDM log-in screen.
7175 (copy-file #$(file-append %artwork-repository
7176 "/slim/0.x/background.png")
7177 "data/theme/guix-background.png")
45fef894
LC
7178 (copy-file #$(file-append %artwork-repository
7179 "/logo/Guix-horizontal-white.svg")
7180 "data/theme/guix-logo.svg")
a76d0f03 7181 #t))))
2b0c755d 7182 (build-system meson-build-system)
a4df5756 7183 (arguments
08185081
MB
7184 `(#:glib-or-gtk? #t
7185 #:disallowed-references ((,glib "bin")
11e1df56
LC
7186 ,inkscape ,libxslt
7187 ,ruby-sass)
2b0c755d
RW
7188 #:configure-flags
7189 (list "-Dsystemd=false"
7190 ;; Otherwise, the RUNPATH will lack the final path component.
7191 (string-append "-Dc_link_args=-Wl,-rpath="
7192 (assoc-ref %outputs "out")
7193 "/lib/gnome-shell"))
11e1df56 7194
08185081 7195 #:modules ((guix build meson-build-system)
11e1df56
LC
7196 (guix build utils)
7197 (srfi srfi-1))
7198
2b0c755d 7199 #:phases
a4df5756 7200 (modify-phases %standard-phases
2b0c755d 7201 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7202 (lambda* (#:key outputs #:allow-other-keys)
7203 (let* ((out (assoc-ref outputs "out"))
7204 (keysdir (string-append
7205 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7206 (substitute* "meson.build"
7207 (("keysdir =.*")
7208 (string-append "keysdir = '" keysdir "'\n")))
7209 #t)))
ebfe259f
MB
7210 (add-before 'configure 'convert-logo-to-png
7211 (lambda* (#:key inputs #:allow-other-keys)
7212 ;; Convert the logo from SVG to PNG.
7213 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7214 "data/theme/guix-logo.svg")))
ba00235a 7215 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7216 (lambda* (#:key inputs #:allow-other-keys)
7217 (substitute* "js/misc/ibusManager.js"
7218 (("'ibus-daemon'")
7219 (string-append "'" (assoc-ref inputs "ibus")
7220 "/bin/ibus-daemon'")))
d6fda4d3
LC
7221 (substitute* "js/ui/status/keyboard.js"
7222 (("'gkbd-keyboard-display'")
7223 (string-append "'" (assoc-ref inputs "libgnomekbd")
7224 "/bin/gkbd-keyboard-display'")))
2472cdec 7225 #t))
2b0c755d
RW
7226 (add-before 'check 'pre-check
7227 (lambda* (#:key inputs #:allow-other-keys)
7228 ;; Tests require a running X server.
7229 (system "Xvfb :1 &")
7230 (setenv "DISPLAY" ":1")
7231 #t))
7232 (add-after 'install 'wrap-programs
7233 (lambda* (#:key inputs outputs #:allow-other-keys)
7234 (let ((out (assoc-ref outputs "out"))
7235 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7236 (python-path (getenv "PYTHONPATH")))
7237 (wrap-program (string-append out "/bin/gnome-shell")
7238 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7239 ;; FIXME: gnome-shell loads these libraries with unqualified
7240 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7241 ;; alternative might be to patch gnome-shell.
7242 `("LD_LIBRARY_PATH" ":" prefix
7243 ,(map (lambda (pkg)
7244 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7245 '("gdk-pixbuf"
7246 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7247 (for-each
7248 (lambda (prog)
7249 (wrap-program (string-append out "/bin/" prog)
7250 `("PYTHONPATH" ":" prefix (,python-path))
7251 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7252 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7253 #t)))
11e1df56
LC
7254 (replace 'glib-or-gtk-wrap
7255 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7256 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7257 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7258 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7259 ;; phase. Fix that since we don't need these.
7260 (wrap #:inputs (fold alist-delete inputs
7261 '("inkscape" "intltool" "glib:bin"))
7262 #:outputs outputs)))))))
a4df5756
SB
7263 (native-inputs
7264 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7265 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7266 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7267 ("inkscape" ,inkscape)
a4df5756
SB
7268 ("intltool" ,intltool)
7269 ("pkg-config" ,pkg-config)
7270 ("python" ,python)
2b0c755d
RW
7271 ("ruby-sass" ,ruby-sass)
7272 ("sassc" ,sassc)
a76d0f03 7273 ("xsltproc" ,libxslt)
2b0c755d 7274 ;; For tests
0b4504f6 7275 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7276 (inputs
7277 `(("accountsservice" ,accountsservice)
7278 ("caribou" ,caribou)
7279 ("docbook-xsl" ,docbook-xsl)
7280 ("evolution-data-server" ,evolution-data-server)
7281 ("gcr" ,gcr)
7282 ("gdm" ,gdm)
c5db31d4 7283 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
7284 ("gjs" ,gjs)
7285 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7286 ("gnome-desktop" ,gnome-desktop)
7287 ("gnome-settings-daemon" ,gnome-settings-daemon)
7288 ("gst-plugins-base" ,gst-plugins-base)
7289 ("ibus" ,ibus)
7290 ("libcanberra" ,libcanberra)
7291 ("libcroco" ,libcroco)
d6fda4d3 7292 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7293 ("libgweather" ,libgweather)
7294 ("libsoup" ,libsoup)
7295 ("mesa-headers" ,mesa-headers)
7296 ("mutter" ,mutter)
7297 ("network-manager-applet" ,network-manager-applet)
7298 ("polkit" ,polkit)
7299 ("pulseaudio" ,pulseaudio)
7300 ("python-pygobject" ,python-pygobject)
7301 ("startup-notification" ,startup-notification)
7302 ("telepathy-logger" ,telepathy-logger)
7303 ("upower" ,upower)
30e760f0
MB
7304 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7305 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7306 ("librsvg" ,librsvg)
2b0c755d 7307 ("geoclue" ,geoclue)))
a4df5756
SB
7308 (synopsis "Desktop shell for GNOME")
7309 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7310 (description
7311 "GNOME Shell provides core user interface functions for the GNOME desktop,
7312like switching to windows and launching applications.")
7313 (license license:gpl2+)))
c3f29bc9
RS
7314
7315(define-public gtk-vnc
7316 (package
7317 (name "gtk-vnc")
965ff023 7318 (version "0.9.0")
c3f29bc9
RS
7319 (source
7320 (origin
7321 (method url-fetch)
7322 (uri (string-append "mirror://gnome/sources/" name "/"
7323 (version-major+minor version) "/"
7324 name "-" version ".tar.xz"))
7325 (sha256
7326 (base32
965ff023 7327 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7328 (build-system gnu-build-system)
7329 (arguments
7330 '(#:configure-flags '("--with-gtk=3.0")))
7331 (propagated-inputs
7332 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7333 (inputs
7334 `(("cyrus-sasl" ,cyrus-sasl)
7335 ("gnutls" ,gnutls)
7336 ("libgcrypt" ,libgcrypt)
7337 ("pulseaudio" ,pulseaudio)))
7338 (native-inputs
7339 `(("glib:bin" ,glib "bin")
7340 ("gobject-introspection" ,gobject-introspection)
7341 ("intltool" ,intltool)
7342 ("pkg-config" ,pkg-config)
2f17e939 7343 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7344 ("vala" ,vala)))
7345 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7346 (synopsis "VNC viewer widget for GTK+")
7347 (description
7348 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7349applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7350GTK-VNC implements client side RFB protocol and authentication extensions such
7351as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7352 (license license:lgpl2.1+)))
8b877545 7353
dc69fe18
MW
7354(define-public gnome-autoar
7355 (package
7356 (name "gnome-autoar")
c7da8510 7357 (version "0.2.3")
dc69fe18
MW
7358 (source (origin
7359 (method url-fetch)
7360 (uri (string-append "mirror://gnome/sources/" name "/"
7361 (version-major+minor version) "/"
7362 name "-" version ".tar.xz"))
7363 (sha256
7364 (base32
c7da8510 7365 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
7366 (build-system glib-or-gtk-build-system)
7367 (native-inputs
7368 `(("gnome-common" ,gnome-common)
7369 ("gobject-introspection" ,gobject-introspection)
7370 ("pkg-config" ,pkg-config)))
7371 (propagated-inputs
7372 `(("libarchive" ,libarchive))) ; XXX document why
7373 (inputs
0a6e9e13 7374 `(("gtk+" ,gtk+)))
dc69fe18
MW
7375 (synopsis "Archives integration support for GNOME")
7376 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7377 (description
7378 "GNOME Autoar is a library which makes creating and extracting archives
7379easy, safe, and automatic.")
7380 (license license:lgpl2.1+)))
7381
b64e217f
MW
7382(define-public tracker
7383 (package
7384 (name "tracker")
caaefa40 7385 (version "2.3.4")
b64e217f
MW
7386 (source (origin
7387 (method url-fetch)
b5b0fd23 7388 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7389 (version-major+minor version) "/"
b5b0fd23 7390 "tracker-" version ".tar.xz"))
b64e217f
MW
7391 (sha256
7392 (base32
caaefa40 7393 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7394 (build-system meson-build-system)
c8bdf589 7395 (arguments
5ada561c
KK
7396 `(#:glib-or-gtk? #t
7397 #:configure-flags
7398 ;; Otherwise, the RUNPATH will lack the final path component.
7399 (list (string-append "-Dc_link_args=-Wl,-rpath="
7400 (assoc-ref %outputs "out") "/lib:"
7401 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7402 #:phases
c8bdf589 7403 (modify-phases %standard-phases
c8bdf589
RW
7404 (add-before 'check 'pre-check
7405 (lambda _
63db190a
PN
7406 ;; Some tests expect to write to $HOME.
7407 (setenv "HOME" "/tmp")
c8bdf589 7408 #t)))))
b64e217f 7409 (native-inputs
5ada561c 7410 `(("glib:bin" ,glib "bin")
b64e217f 7411 ("gobject-introspection" ,gobject-introspection)
5ada561c 7412 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7413 ("intltool" ,intltool)
7414 ("pkg-config" ,pkg-config)
7415 ("vala" ,vala)))
7416 (inputs
63db190a 7417 `(("dbus" ,dbus)
44ed6284 7418 ("sqlite" ,sqlite)
b64e217f 7419 ("libxml2" ,libxml2)
63db190a 7420 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7421 ("json-glib" ,json-glib)
63db190a 7422 ("libsoup" ,libsoup)))
b64e217f
MW
7423 (synopsis "Metadata database, indexer and search tool")
7424 (home-page "https://wiki.gnome.org/Projects/Tracker")
7425 (description
63db190a
PN
7426 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7427
7428It is a middleware component aimed at desktop application developers who want
7429their apps to browse and search user content. It's not designed to be used
7430directly by desktop users, but it provides a commandline tool named
7431@command{tracker} for the adventurous.
7432
7433Tracker allows your application to instantly perform full-text searches across
7434all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7435example. This is achieved by indexing the user's home directory in the
7436background.
7437
7438Tracker also allows your application to query and list content that the user
7439has stored. For example, GNOME Music displays all the music files that are
7440found by Tracker. This means that GNOME Music doesn't need to maintain a
7441database of its own.
7442
7443If you need to go beyond simple searches, Tracker is also a linked data
7444endpoint and it understands SPARQL. ")
7445 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7446 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7447 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7448 (license (list license:gpl2+
63db190a
PN
7449 license:bsd-3
7450 license:lgpl2.1+))))
b64e217f 7451
03be9874
KK
7452(define-public tracker-miners
7453 (package
7454 (name "tracker-miners")
de60ac2f 7455 (version "2.3.3")
03be9874
KK
7456 (source (origin
7457 (method url-fetch)
7458 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7459 (version-major+minor version)
7460 "/tracker-miners-" version ".tar.xz"))
7461 (sha256
7462 (base32
de60ac2f 7463 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7464 (build-system meson-build-system)
7465 (arguments
7466 `(#:glib-or-gtk? #t
7467 #:configure-flags
7468 (list "-Dminer_rss=false" ; libgrss is required.
7469 ;; Ensure the RUNPATH contains all installed library locations.
7470 (string-append "-Dc_link_args=-Wl,-rpath="
7471 (assoc-ref %outputs "out")
7472 "/lib/tracker-miners-2.0")
7473 ;; TODO: Enable functional tests. Currently, the following error
7474 ;; appears:
7475 ;; Exception: The functional tests require DConf to be the default
7476 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7477 "-Dfunctional_tests=false")))
7478 (native-inputs
7479 `(("dbus" ,dbus)
7480 ("intltool" ,intltool)
7481 ("glib:bin" ,glib "bin")
7482 ("gobject-introspection" ,gobject-introspection)
7483 ("pkg-config" ,pkg-config)
7484 ("python-pygobject" ,python-pygobject)))
7485 (inputs
7486 `(("exempi" ,exempi)
7487 ("ffmpeg" ,ffmpeg)
7488 ("flac" ,flac)
7489 ("giflib" ,giflib)
7490 ("glib" ,glib)
7491 ("gstreamer" ,gstreamer)
7492 ("icu4c" ,icu4c)
7493 ("libcue" ,libcue)
7494 ("libexif" ,libexif)
7495 ("libgsf" ,libgsf)
7496 ("libgxps" ,libgxps)
7497 ("libiptcdata" ,libiptcdata)
7498 ("libjpeg" ,libjpeg)
7499 ("libosinfo" ,libosinfo)
7500 ("libpng" ,libpng)
7501 ("libseccomp" ,libseccomp)
7502 ("libtiff" ,libtiff)
7503 ("libvorbis" ,libvorbis)
7504 ("libxml2" ,libxml2)
7505 ("poppler" ,poppler)
7506 ("taglib" ,taglib)
7507 ("totem-pl-parser" ,totem-pl-parser)
7508 ("tracker" ,tracker)
7509 ("upower" ,upower)
7510 ("zlib" ,zlib)))
7511 (synopsis "Metadata database, indexer and search tool")
7512 (home-page "https://wiki.gnome.org/Projects/Tracker")
7513 (description
7514 "Tracker is an advanced framework for first class objects with associated
7515metadata and tags. It provides a one stop solution for all metadata, tags,
7516shared object databases, search tools and indexing.")
7517 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7518 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7519 (license (list license:gpl2+
7520 license:lgpl2.1+
7521 license:lgpl2.0+))))
7522
8b877545
RS
7523(define-public nautilus
7524 (package
7525 (name "nautilus")
d682c599 7526 (version "3.32.3")
8b877545
RS
7527 (source (origin
7528 (method url-fetch)
7529 (uri (string-append "mirror://gnome/sources/" name "/"
7530 (version-major+minor version) "/"
7531 name "-" version ".tar.xz"))
7532 (sha256
7533 (base32
d682c599 7534 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7535 (build-system meson-build-system)
8b877545 7536 (arguments
35e2d0cf 7537 '(#:glib-or-gtk? #t
8b877545
RS
7538 ;; XXX: FAIL: check-nautilus
7539 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7540 #:tests? #f))
7541 (native-inputs
35e2d0cf
R
7542 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7543 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7544 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7545 ("gobject-introspection" ,gobject-introspection)
7546 ("intltool" ,intltool)
7547 ("pkg-config" ,pkg-config)))
8b877545 7548 (inputs
8b877545 7549 `(("dconf" ,dconf)
caf6c363 7550 ("gexiv2" ,gexiv2)
dd05e731 7551 ("gvfs" ,gvfs)
8b877545
RS
7552 ("exempi" ,exempi)
7553 ("gnome-desktop" ,gnome-desktop)
09d88905 7554 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7555 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7556 ("libseccomp" ,libseccomp)
35e2d0cf 7557 ("libselinux" ,libselinux)
09d88905 7558 ("tracker" ,tracker)
3cafb9d4 7559 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7560 ;; XXX: gtk+ is required by libnautilus-extension.pc
7561 ;;
7562 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7563 ;; package. See:
7564 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7565 ("gtk+" ,gtk+)
8b877545
RS
7566 ("libexif" ,libexif)
7567 ("libxml2" ,libxml2)))
7568 (synopsis "File manager for GNOME")
7569 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7570 (description
7571 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7572design and behaviour, giving the user a simple way to navigate and manage its
7573files.")
7574 (license license:gpl2+)))
3c697ffd
JR
7575
7576(define-public baobab
7577 (package
7578 (name "baobab")
e0c5f20c 7579 (version "3.32.0")
3c697ffd
JR
7580 (source (origin
7581 (method url-fetch)
7582 (uri (string-append
7583 "mirror://gnome/sources/" name "/"
7584 (version-major+minor version) "/"
7585 name "-" version ".tar.xz"))
7586 (sha256
7587 (base32
e0c5f20c 7588 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7589 (build-system meson-build-system)
7590 (arguments
7591 '(#:glib-or-gtk? #t))
3c697ffd
JR
7592 (native-inputs
7593 `(("intltool" ,intltool)
7594 ("pkg-config" ,pkg-config)
d233d373
RJ
7595 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7596 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7597 ("itstool" ,itstool)
7598 ("xmllint" ,libxml2)
7599 ("glib" ,glib "bin")
7600 ("vala" ,vala)))
7601 (inputs
7602 `(("gtk+" ,gtk+)))
7603 (synopsis "Disk usage analyzer for GNOME")
7604 (description
7605 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7606usage in the GNOME desktop environment. It can easily scan device volumes or
7607a specific user-requested directory branch (local or remote). Once the scan
7608is complete it provides a graphical representation of each selected folder.")
7609 (home-page "https://wiki.gnome.org/Apps/Baobab")
7610 (license license:gpl2+)))
dc050251 7611
fdba447c
RS
7612(define-public gnome-backgrounds
7613 (package
7614 (name "gnome-backgrounds")
e04e8a8c 7615 (version "3.32.0")
fdba447c
RS
7616 (source
7617 (origin
7618 (method url-fetch)
7619 (uri (string-append "mirror://gnome/sources/" name "/"
7620 (version-major+minor version) "/"
7621 name "-" version ".tar.xz"))
7622 (sha256
7623 (base32
e04e8a8c 7624 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7625 (build-system meson-build-system)
fdba447c
RS
7626 (native-inputs
7627 `(("intltool" ,intltool)))
e04e8a8c 7628 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7629 (synopsis "Background images for the GNOME desktop")
7630 (description
7631 "GNOME backgrounds package contains a collection of graphics files which
7632can be used as backgrounds in the GNOME Desktop environment. Additionally,
7633the package creates the proper framework and directory structure so that you
7634can add your own files to the collection.")
7635 (license (list license:gpl2+
7636 license:cc-by2.0
7637 license:cc-by-sa2.0
7638 license:cc-by-sa3.0))))
7639
b784b1a9
RS
7640(define-public gnome-screenshot
7641 (package
7642 (name "gnome-screenshot")
6acf4033 7643 (version "3.32.0")
b784b1a9
RS
7644 (source
7645 (origin
7646 (method url-fetch)
7647 (uri (string-append "mirror://gnome/sources/" name "/"
7648 (version-major+minor version) "/"
7649 name "-" version ".tar.xz"))
7650 (sha256
7651 (base32
6acf4033 7652 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7653 (build-system meson-build-system)
b784b1a9
RS
7654 (native-inputs
7655 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7656 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7657 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7658 ("intltool" ,intltool)
8356aefa 7659 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7660 ("pkg-config" ,pkg-config)))
7661 (inputs
7662 `(("gtk+" ,gtk+)
7663 ("libcanberra" ,libcanberra)
7664 ("libx11" ,libx11)
7665 ("libxext" ,libxext)))
676e7cb4 7666 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7667 (synopsis "Take pictures of your screen")
7668 (description
7669 "GNOME Screenshot is a utility used for taking screenshots of the entire
7670screen, a window or a user defined area of the screen, with optional
7671beautifying border effects.")
7672 (license license:gpl2+)))
7673
66d59111
RS
7674(define-public dconf-editor
7675 (package
7676 (name "dconf-editor")
66261451 7677 (version "3.32.0")
66d59111
RS
7678 (source
7679 (origin
7680 (method url-fetch)
7681 (uri (string-append "mirror://gnome/sources/" name "/"
7682 (version-major+minor version) "/"
7683 name "-" version ".tar.xz"))
7684 (sha256
7685 (base32
66261451 7686 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7687 (build-system meson-build-system)
86f2124b
LC
7688 (arguments
7689 '(#:phases (modify-phases %standard-phases
7690 (add-before 'configure 'set-glib-minimum-version
7691 (lambda _
7692 ;; Change the minimum required GLib version so that
7693 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7694 ;; do that, it complains that "55" is not an even
7695 ;; number. See <https://bugs.gnu.org/37503>.
7696 (substitute* "editor/meson.build"
7697 (("2\\.55\\.1") "2.60.0"))
7698 #t)))))
66d59111
RS
7699 (native-inputs
7700 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7701 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7702 ("intltool" ,intltool)
294ff39d
RW
7703 ("pkg-config" ,pkg-config)
7704 ("vala" ,vala)))
66d59111
RS
7705 (inputs
7706 `(("dconf" ,dconf)
7707 ("gtk+" ,gtk+)
7708 ("libxml2" ,libxml2)))
7709 (home-page "https://git.gnome.org/browse/dconf-editor")
7710 (synopsis "Graphical editor for GNOME's dconf configuration system")
7711 (description
7712 "Dconf-editor is a graphical tool for browsing and editing the dconf
7713configuration system for GNOME. It allows users to configure desktop
7714software that do not provide their own configuration interface.")
7715 (license license:lgpl2.1+)))
7716
96d36f38
AW
7717(define-public gnome-default-applications
7718 (package
7719 (name "gnome-default-applications")
7720 (version "0")
7721 (build-system trivial-build-system)
7722 (source #f)
7723 (propagated-inputs
8ad4f0aa
LC
7724 `(("nautilus" ,nautilus)
7725 ("evince" ,evince)))
96d36f38
AW
7726 (arguments
7727 `(#:modules ((guix build utils))
7728 #:builder
7729 (begin
7730 (use-modules (guix build utils))
7731 (let* ((out (assoc-ref %outputs "out"))
7732 (apps (string-append out "/share/applications")))
7733 (mkdir-p apps)
a6ac679f 7734 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7735 (lambda (port)
7736 (format port "[Default Applications]\n")
8ad4f0aa
LC
7737 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7738 (format port "application/pdf=evince.desktop\n")
7739 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7740 #t))))
7741 (synopsis "Default MIME type associations for the GNOME desktop")
7742 (description
7743 "Given many installed packages which might handle a given MIME type, a
7744user running the GNOME desktop probably has some preferences: for example,
7745that folders be opened by default by the Nautilus file manager, not the Baobab
7746disk usage analyzer. This package establishes that set of default MIME type
7747associations for GNOME.")
7748 (license license:gpl3+)
7749 (home-page #f)))
7750
3f1ed953
RG
7751(define-public libgovirt
7752 (package
7753 (name "libgovirt")
7754 (version "0.3.6")
7755 (source (origin
7756 (method url-fetch)
7757 (uri (string-append "mirror://gnome/sources/" name "/"
7758 (version-major+minor version) "/"
7759 name "-" version ".tar.xz"))
7760 (sha256
7761 (base32
7762 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7763 (build-system glib-or-gtk-build-system)
7764 (native-inputs
7765 `(("gettext" ,gettext-minimal)
7766 ("glib:bin" ,glib "bin")
7767 ("gobject-introspection" ,gobject-introspection)
7768 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7769 ("gtk+:bin" ,gtk+ "bin")
7770 ("pkg-config" ,pkg-config)))
7771 (inputs
7772 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7773 ("librest" ,rest)))
7774 (synopsis "GoVirt Library")
7775 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7776 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7777 (license license:gpl2+)))
7778
8672e5e9
RG
7779(define-public gnome-weather
7780 (package
7781 (name "gnome-weather")
7782 (version "3.34.0")
7783 (source (origin
7784 (method url-fetch)
7785 (uri (string-append "mirror://gnome/sources/" name "/"
7786 (version-major+minor version) "/"
7787 name "-" version ".tar.xz"))
7788 (sha256
7789 (base32
7790 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7791 (build-system meson-build-system)
7792 (native-inputs
7793 `(("gettext" ,gettext-minimal)
7794 ("glib:bin" ,glib "bin")
7795 ("gobject-introspection" ,gobject-introspection)
7796 ("gtk+:bin" ,gtk+ "bin")
7797 ("pkg-config" ,pkg-config)))
7798 (inputs
7799 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7800 ("appstream-glib" ,appstream-glib)
7801 ("geoclue" ,geoclue)
7802 ("gdk-pixbuf" ,gdk-pixbuf)
7803 ("gjs" ,gjs)
7804 ("gnome-desktop" ,gnome-desktop)
7805 ("libgweather" ,libgweather)))
4391fefc
PN
7806 (arguments
7807 `(#:phases
7808 (modify-phases %standard-phases
7809 (add-after 'install 'fix-desktop-file
7810 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7811 ;; See https://issues.guix.gnu.org/issue/39324.
7812 (lambda* (#:key outputs #:allow-other-keys)
7813 (let* ((out (assoc-ref outputs "out"))
7814 (applications (string-append out "/share/applications")))
7815 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7816 (("Exec=.*") "Exec=gnome-weather\n"))))))))
8672e5e9
RG
7817 (synopsis "Weather monitoring for GNOME desktop")
7818 (description "GNOME Weather is a small application that allows you to
7819monitor the current weather conditions for your city, or anywhere in the
7820world.")
7821 (home-page "https://wiki.gnome.org/Apps/Weather")
7822 (license license:gpl2+)))
7823
dc050251
SB
7824(define-public gnome
7825 (package
7826 (name "gnome")
7827 (version (package-version gnome-shell))
7828 (source #f)
7829 (build-system trivial-build-system)
e3cfef22 7830 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7831 (propagated-inputs
8d8c6bff 7832 ;; TODO: Add or remove packages according to:
a8cda7f5 7833 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7834 `(
8d8c6bff 7835 ;; GNOME-Core-OS-Services
7922b6f7 7836 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7837 ("network-manager" ,network-manager)
7838 ("packagekit" ,packagekit)
7839 ("upower" ,upower)
7840 ;; GNOME-Core-Shell
7841 ("adwaita-icon-theme" ,adwaita-icon-theme)
7842 ("gdm" ,gdm)
7843 ("glib-networking" ,glib-networking)
7844 ("gnome-backgrounds" ,gnome-backgrounds)
7845 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7846 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7847 ("gnome-control-center" ,gnome-control-center)
7848 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7849 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
24882d3d 7850 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7851 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7852 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7853 ("gnome-session" ,gnome-session)
7854 ("gnome-settings-daemon" ,gnome-settings-daemon)
7855 ("gnome-shell-extensions" ,gnome-shell-extensions)
7856 ("gnome-shell" ,gnome-shell)
7857 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7858 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7859 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7860 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7861 ("gvfs" ,gvfs)
7862 ("mutter" ,mutter)
7863 ("orca" ,orca)
d36fa50f
RG
7864 ("rygel" ,rygel)
7865 ("sushi" ,sushi)
8d8c6bff
RG
7866 ;; GNOME-Core-Utilities
7867 ("baobab" ,baobab)
7868 ("cheese" ,cheese)
7869 ("eog" ,eog)
7870 ("epiphany" ,epiphany)
7871 ("evince" ,evince)
7872 ("file-roller" ,file-roller)
7873 ("gedit" ,gedit)
d36fa50f 7874 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7875 ("gnome-calculator" ,gnome-calculator)
7876 ("gnome-calendar" ,gnome-calendar)
7877 ("gnome-characters" ,gnome-characters)
7878 ("gnome-clocks" ,gnome-clocks)
7879 ("gnome-contacts" ,gnome-contacts)
7880 ("gnome-disk-utility" ,gnome-disk-utility)
7881 ("gnome-font-viewer" ,gnome-font-viewer)
7882 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7883 ; TODO: ("gnome-music" ,gnome-music)
7884 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7885 ("gnome-screenshot" ,gnome-screenshot)
7886 ("gnome-system-monitor" ,gnome-system-monitor)
7887 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7888 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7889 ("nautilus" ,nautilus)
7890 ("simple-scan" ,simple-scan)
7891 ("totem" ,totem)
7922b6f7
RG
7892 ("yelp" ,yelp)
7893 ;; Others
7894 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
7895 ("gnome-online-accounts" ,gnome-online-accounts)
7896
7897 ;; Packages not part of GNOME proper but that are needed for a good
7898 ;; experience. See <https://bugs.gnu.org/39646>.
7899 ;; XXX: Find out exactly which ones are needed and why.
7900 ("font-cantarell" ,font-cantarell)
7901 ("font-dejavu" ,font-dejavu)
7902 ("at-spi2-core" ,at-spi2-core)
7903 ("dbus" ,dbus)
7904 ("dconf" ,dconf)
7905 ("desktop-file-utils" ,desktop-file-utils)
7906 ("gnome-default-applications" ,gnome-default-applications)
7907 ("gnome-themes-standard" ,gnome-themes-standard)
7908 ("gst-plugins-base" ,gst-plugins-base)
7909 ("gst-plugins-good" ,gst-plugins-good)
7910 ("gucharmap" ,gucharmap)
7911 ("pinentry-gnome3" ,pinentry-gnome3)
7912 ("pulseaudio" ,pulseaudio)
7913 ("shared-mime-info" ,shared-mime-info)
7914 ("system-config-printer" ,system-config-printer)
7915 ("xdg-user-dirs" ,xdg-user-dirs)
7916 ("yelp" ,yelp)
7917 ("zenity" ,zenity)))
fe4e698d 7918 (synopsis "The GNU desktop environment")
dc050251
SB
7919 (home-page "https://www.gnome.org/")
7920 (description
fe4e698d
LC
7921 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7922applications for browsing the web, editing text and images, creating
7923documents and diagrams, playing media, scanning, and much more.")
dc050251 7924 (license license:gpl2+)))
4a526711
DT
7925
7926(define-public byzanz
7927 ;; The last stable release of Byzanz was in 2011, but there have been many
7928 ;; useful commits made to the Byzanz repository since then that it would be
7929 ;; silly to use such an old release.
7930 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7931 (package
7932 (name "byzanz")
7933 (version (string-append "0.2-1." (string-take commit 7)))
7934 (source (origin
7935 (method git-fetch)
7936 (uri (git-reference
5f13bf09 7937 (url "https://git.gnome.org/browse/byzanz")
4a526711 7938 (commit commit)))
5a6527e4 7939 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7940 (sha256
7941 (base32
7942 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7943 (build-system glib-or-gtk-build-system)
7944 (arguments
7945 '(#:phases
7946 (modify-phases %standard-phases
189be331 7947 (replace 'bootstrap
4a526711
DT
7948 (lambda _
7949 ;; The build system cleverly detects that we're not building from
7950 ;; a release tarball and turns on -Werror for GCC.
7951 ;; Unsurprisingly, there is a warning during compilation that
7952 ;; causes the build to fail unnecessarily, so we remove the flag.
7953 (substitute* '("configure.ac")
7954 (("-Werror") ""))
7955 ;; The autogen.sh script in gnome-common will run ./configure
7956 ;; by default, which is problematic because source shebangs
7957 ;; have not yet been patched.
7958 (setenv "NOCONFIGURE" "t")
7959 (zero? (system* "sh" "autogen.sh")))))))
7960 (native-inputs
7961 `(("autoconf" ,autoconf)
7962 ("automake" ,automake)
7963 ("gnome-common" ,gnome-common)
7964 ("intltool" ,intltool)
7965 ("libtool" ,libtool)
7966 ("pkg-config" ,pkg-config)
7967 ("which" ,which)))
7968 (inputs
7969 `(("glib" ,glib)
7970 ("gstreamer" ,gstreamer)
7971 ("gst-plugins-base" ,gst-plugins-base)
7972 ("gtk+" ,gtk+)))
7973 (synopsis "Desktop recording program")
7974 (description "Byzanz is a simple desktop recording program with a
7975command-line interface. It can record part or all of an X display for a
7976specified duration and save it as a GIF encoded animated image file.")
7977 (home-page "https://git.gnome.org/browse/byzanz")
7978 (license license:gpl2+))))
3a9a4c51 7979
0ec171ec
MS
7980(define-public gsound
7981 (package
7982 (name "gsound")
7983 (version "1.0.2")
7984 (source (origin
7985 (method url-fetch)
7986 (uri (string-append "mirror://gnome/sources/" name "/"
7987 (version-major+minor version) "/"
7988 name "-" version ".tar.xz"))
7989 (sha256
7990 (base32
7991 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7992 (build-system glib-or-gtk-build-system)
7993 (native-inputs
7994 `(("pkg-config" ,pkg-config)
7995 ("gobject-introspection" ,gobject-introspection)
7996 ("vala" ,vala)))
7997 (inputs
7998 `(("glib" ,glib)
7999 ("libcanberra" ,libcanberra)))
8000 (home-page "https://wiki.gnome.org/Projects/GSound")
8001 (synopsis "GObject wrapper for libcanberra")
8002 (description
8003 "GSound is a small library for playing system sounds. It's designed to be
8004used via GObject Introspection, and is a thin wrapper around the libcanberra C
8005library.")
8006 (license license:lgpl2.1+)))
8007
3a9a4c51
RS
8008(define-public libzapojit
8009 (package
8010 (name "libzapojit")
8011 (version "0.0.3")
8012 (source (origin
8013 (method url-fetch)
8014 (uri (string-append "mirror://gnome/sources/" name "/"
8015 (version-major+minor version) "/"
8016 name "-" version ".tar.xz"))
8017 (sha256
8018 (base32
8019 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8020 (build-system gnu-build-system)
8021 (native-inputs
8022 `(("gobject-introspection" ,gobject-introspection)
8023 ("intltool" ,intltool)
8024 ("pkg-config" ,pkg-config)))
8025 (inputs
14c297fd 8026 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8027 ("json-glib" ,json-glib)
8028 ("rest" ,rest)))
8029 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8030 (synopsis "Library for accessing SkyDrive and Hotmail")
8031 (description
8032 "Libzapojit is a GLib-based library for accessing online service APIs of
8033Microsoft SkyDrive and Hotmail, using their REST protocols.")
8034 (license license:lgpl2.1+)))
9365ee1c 8035
60e2a9ae
MS
8036(define-public gnome-clocks
8037 (package
8038 (name "gnome-clocks")
c76d0dbc 8039 (version "3.32.0")
60e2a9ae
MS
8040 (source (origin
8041 (method url-fetch)
8042 (uri (string-append "mirror://gnome/sources/" name "/"
8043 (version-major+minor version) "/"
8044 name "-" version ".tar.xz"))
8045 (sha256
8046 (base32
c76d0dbc 8047 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
8048 (build-system meson-build-system)
8049 (arguments
8050 '(#:glib-or-gtk? #t))
8051 (native-inputs
8052 `(("vala" ,vala)
8053 ("pkg-config" ,pkg-config)
8054 ("glib" ,glib "bin") ; for glib-compile-resources
8055 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8056 ("desktop-file-utils" ,desktop-file-utils)
8057 ("gettext" ,gettext-minimal)
8058 ("itstool" ,itstool)))
8059 (inputs
8060 `(("glib" ,glib)
8061 ("gtk+" ,gtk+)
8062 ("gsound" ,gsound)
8063 ("geoclue" ,geoclue)
8064 ("geocode-glib" ,geocode-glib)
8065 ("libgweather" ,libgweather)
8066 ("gnome-desktop" ,gnome-desktop)))
8067 (home-page "https://wiki.gnome.org/Apps/Clocks")
8068 (synopsis "GNOME's clock application")
8069 (description
8070 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8071desktop. It supports world clock, stop watch, alarms, and count down timer.")
8072 (license license:gpl3+)))
8073
3c474897
KY
8074(define-public gnome-calendar
8075 (package
8076 (name "gnome-calendar")
339b59bf 8077 (version "3.32.2")
3c474897
KY
8078 (source (origin
8079 (method url-fetch)
8080 (uri (string-append "mirror://gnome/sources/" name "/"
8081 (version-major+minor version) "/"
8082 name "-" version ".tar.xz"))
8083 (sha256
8084 (base32
339b59bf 8085 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
8086 (build-system meson-build-system)
8087 (arguments
8088 '(#:glib-or-gtk? #t
8089 ;; gnome-calendar has to be installed before the tests can be run
8090 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8091 #:tests? #f))
3c474897 8092 (native-inputs
a49d3e37
MS
8093 `(("gettext" ,gettext-minimal)
8094 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8095 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
8096 ("pkg-config" ,pkg-config)))
8097 (inputs
27cb52a2 8098 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8099 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8100 ("libdazzle" ,libdazzle)
b63c06f1 8101 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8102 ("libgweather" ,libgweather)
8103 ("geoclue" ,geoclue)))
27cb52a2
RG
8104 (propagated-inputs
8105 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8106 (home-page "https://wiki.gnome.org/Apps/Calendar")
8107 (synopsis "GNOME's calendar application")
8108 (description
8109 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8110desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8111 (license license:gpl3+)))
8112
57b14665
MS
8113(define-public gnome-todo
8114 (package
8115 (name "gnome-todo")
9f3c6c88 8116 (version "3.28.1")
57b14665
MS
8117 (source (origin
8118 (method url-fetch)
8119 (uri (string-append "mirror://gnome/sources/" name "/"
8120 (version-major+minor version) "/"
8121 name "-" version ".tar.xz"))
8122 (sha256
8123 (base32
9f3c6c88 8124 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
8125 (build-system meson-build-system)
8126 (arguments
8127 '(#:glib-or-gtk? #t
8128 #:phases (modify-phases %standard-phases
8129 (add-after
8130 'install 'wrap-gnome-todo
8131 (lambda* (#:key inputs outputs #:allow-other-keys)
8132 (let ((out (assoc-ref outputs "out"))
8133 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8134 (python-path (getenv "PYTHONPATH")))
8135 (wrap-program (string-append out "/bin/gnome-todo")
8136 ;; XXX: gi plugins are broken.
8137 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8138 ;; For plugins.
8139 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8140 `("PYTHONPATH" ":" prefix (,python-path))))
8141 #t)))))
8142 (native-inputs
8143 `(("gettext" ,gettext-minimal)
8144 ("gobject-introspection" ,gobject-introspection)
8145 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8146 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8147 ("pkg-config" ,pkg-config)))
8148 (inputs
8149 `(("rest" ,rest) ; For Todoist plugin
8150 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8151 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8152 ("libical" ,libical)
8153 ("libpeas" ,libpeas)
8154 ("python-pygobject" ,python-pygobject)
8155 ("evolution-data-server" ,evolution-data-server)
14c297fd 8156 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8157 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8158 (home-page "https://wiki.gnome.org/Apps/Todo")
8159 (synopsis "GNOME's ToDo Application")
8160 (description
8161 "GNOME To Do is a simplistic personal task manager designed to perfectly
8162fit the GNOME desktop.")
8163 (license license:gpl3+)))
8164
ab179eaf
SB
8165(define-public gnome-dictionary
8166 (package
8167 (name "gnome-dictionary")
cf81ddef 8168 (version "3.26.1")
ab179eaf
SB
8169 (source (origin
8170 (method url-fetch)
8171 (uri (string-append "mirror://gnome/sources/" name "/"
8172 (version-major+minor version) "/"
8173 name "-" version ".tar.xz"))
8174 (sha256
8175 (base32
cf81ddef
LC
8176 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8177 (build-system meson-build-system)
2776b5d5
MB
8178 (arguments '(#:glib-or-gtk? #t
8179 #:phases (modify-phases %standard-phases
8180 (add-after 'unpack 'patch-install-script
8181 (lambda _
8182 ;; This script attempts to compile glib schemas
8183 ;; and create an empty MIME database. We do
8184 ;; that elsewhere, so prevent it from running.
8185 (substitute* "build-aux/post-install.sh"
8186 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8187 #t)))))
ab179eaf
SB
8188 (native-inputs
8189 `(("glib:bin" ,glib "bin")
8190 ("gobject-introspection" ,gobject-introspection)
8191 ("intltool" ,intltool)
8192 ("itstool" ,itstool)
8193 ("pkg-config" ,pkg-config)
8194 ("xmllint" ,libxml2)))
8195 (inputs
8196 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8197 ("gtk+" ,gtk+)))
8198 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8199 (synopsis "Look up words in dictionary sources")
8200 (description
8201 "GNOME Dictionary can look for the definition or translation of a word in
8202existing databases over the internet.")
8203 (license license:gpl3+)))
8204
d13f3a03 8205(define-public gnome-tweaks
9365ee1c 8206 (package
d13f3a03 8207 (name "gnome-tweaks")
652af676 8208 (version "3.32.0")
9365ee1c
JN
8209 (source (origin
8210 (method url-fetch)
d13f3a03 8211 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8212 (version-major+minor version) "/"
d13f3a03
RW
8213 "gnome-tweaks-" version ".tar.xz"))
8214 (patches
8215 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8216 (sha256
8217 (base32
652af676 8218 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 8219 (build-system meson-build-system)
9365ee1c 8220 (arguments
d13f3a03
RW
8221 `(#:glib-or-gtk? #t
8222 #:configure-flags '("-Dlocalstatedir=/tmp"
8223 "-Dsysconfdir=/tmp")
9365ee1c 8224 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8225 ,@%meson-build-system-modules)
8226 #:phases
8227 (modify-phases %standard-phases
8228 (add-after 'install 'wrap
8229 (@@ (guix build python-build-system) wrap))
8230 (add-after 'wrap 'wrap-gi-typelib
8231 (lambda* (#:key inputs outputs #:allow-other-keys)
8232 (let ((out (assoc-ref outputs "out"))
8233 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8234 (wrap-program (string-append out "/bin/gnome-tweaks")
8235 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8236 #t)))))
9365ee1c 8237 (native-inputs
c7fc414e
RH
8238 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8239 ("intltool" ,intltool)
9365ee1c
JN
8240 ("pkg-config" ,pkg-config)))
8241 (inputs
c7fc414e
RH
8242 `(("gnome-desktop" ,gnome-desktop)
8243 ("gtk+" ,gtk+)
9365ee1c
JN
8244 ("gobject-introspection" ,gobject-introspection)
8245 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
8246 ("libnotify" ,libnotify)
8247 ("libsoup" ,libsoup)
8248 ("nautilus" ,nautilus)
8249 ("python" ,python)
8250 ("python-pygobject" ,python-pygobject)))
9365ee1c 8251 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8252 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8253 (description
d13f3a03 8254 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8255GNOME 3. This includes things like the fonts used in user interface elements,
8256alternative user interface themes, changes in window management behavior,
8257GNOME Shell appearance and extension, etc.")
8258 (license license:gpl3+)))
813f814a 8259
32ac717c
DT
8260(define-public gnome-shell-extensions
8261 (package
8262 (name "gnome-shell-extensions")
ae4c05e0 8263 (version "3.32.1")
32ac717c
DT
8264 (source (origin
8265 (method url-fetch)
8266 (uri (string-append "mirror://gnome/sources/" name "/"
8267 (version-major+minor version) "/"
8268 name "-" version ".tar.xz"))
8269 (sha256
8270 (base32
ae4c05e0 8271 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 8272 (build-system meson-build-system)
32ac717c 8273 (arguments
100f625b 8274 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8275 (native-inputs
c9ea8873
LP
8276 `(("glib:bin" ,glib "bin")
8277 ("intltool" ,intltool)
32ac717c
DT
8278 ("pkg-config" ,pkg-config)))
8279 (propagated-inputs
c9ea8873 8280 `(("glib" ,glib)))
32ac717c
DT
8281 (synopsis "Extensions for GNOME Shell")
8282 (description "GNOME Shell extensions modify and extend GNOME Shell
8283functionality and behavior.")
8284 (home-page "https://extensions.gnome.org/")
8285 (license license:gpl3+)))
8286
813f814a
DT
8287(define-public arc-theme
8288 (package
8289 (name "arc-theme")
37781323 8290 (version "20190917")
813f814a 8291 (source (origin
a18f8eaf
BH
8292 (method git-fetch)
8293 (uri (git-reference
8294 (url "https://github.com/NicoHood/arc-theme.git")
8295 (commit version)))
8296 (file-name (git-file-name name version))
813f814a
DT
8297 (sha256
8298 (base32
37781323 8299 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8300 (build-system gnu-build-system)
d88884fa
EF
8301 (arguments
8302 '(#:phases
8303 (modify-phases %standard-phases
8304 ;; autogen.sh calls configure at the end of the script.
8305 (replace 'bootstrap
4690e3a4
MC
8306 (lambda _ (invoke "autoreconf" "-vfi")))
8307 (add-before 'build 'set-home ;placate Inkscape
8308 (lambda _
8309 (setenv "HOME" (getcwd))
8310 #t)))))
813f814a
DT
8311 (native-inputs
8312 `(("autoconf" ,autoconf)
8313 ("automake" ,automake)
a18f8eaf
BH
8314 ("glib" ,glib "bin") ; for glib-compile-resources
8315 ("gnome-shell" ,gnome-shell)
8316 ("gtk+" ,gtk+)
8317 ("inkscape" ,inkscape)
8318 ("optipng" ,optipng)
8319 ("pkg-config" ,pkg-config)
bed24ecf 8320 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8321 (synopsis "A flat GTK+ theme with transparent elements")
8322 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
83232, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8324like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8325 (home-page "https://github.com/horst3180/arc-theme")
8326 ;; No "or later" language found.
a18f8eaf 8327 (license license:gpl3+)))
9987c57c 8328
d935e6a1 8329(define-public faba-icon-theme
9987c57c 8330 (package
d935e6a1 8331 (name "faba-icon-theme")
2eee7ee3 8332 (version "4.3")
d935e6a1
BT
8333 (source
8334 (origin
757e4027
TGR
8335 (method git-fetch)
8336 (uri (git-reference
8337 (url "https://github.com/snwh/faba-icon-theme.git")
8338 (commit (string-append "v" version))))
8339 (file-name (git-file-name name version))
d935e6a1 8340 (sha256
757e4027 8341 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8342 (build-system meson-build-system)
9987c57c 8343 (arguments
82da291a 8344 `(#:phases
9987c57c 8345 (modify-phases %standard-phases
82da291a 8346 (add-before 'configure 'disable-post-install
9987c57c 8347 (lambda _
82da291a
JL
8348 (substitute* "meson.build"
8349 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8350 (native-inputs
8351 `(("autoconf" ,autoconf)
8352 ("automake" ,automake)))
d935e6a1
BT
8353 (synopsis "Faba icon theme")
8354 (description
8355 "Faba is a minimal icon set used as a basis for other themes such as
8356Moka")
8357 (home-page "https://snwh.org/moka")
8358 (license (list license:lgpl3+
8359 license:cc-by-sa4.0))))
8360
9987c57c
DT
8361(define-public moka-icon-theme
8362 (package
8b0e4177 8363 (inherit faba-icon-theme)
9987c57c 8364 (name "moka-icon-theme")
105a3625 8365 (version "5.4.0")
8c3f2170
TGR
8366 (source
8367 (origin
8368 (method git-fetch)
8369 (uri (git-reference
8370 (url "https://github.com/snwh/moka-icon-theme.git")
8371 (commit (string-append "v" version))))
8372 (file-name (git-file-name name version))
8373 (sha256
8374 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8375 (propagated-inputs
8376 ;; Moka is based on Faba by using it as a fallback icon set instead of
8377 ;; bundling it, so we need to add it as a propagated input.
8378 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8379 (synopsis "Moka icon theme")
8380 (description "Moka is a stylized desktop icon set, designed to be clear,
8381simple and consistent.")
fedde43b
BT
8382 (license (list license:gpl3+
8383 license:cc-by-sa4.0))))
6fd8f8d6
DT
8384
8385(define-public arc-icon-theme
8386 (package
8387 (name "arc-icon-theme")
c4180240 8388 (version "20161122")
bbf66cbf
TGR
8389 (source
8390 (origin
8391 (method git-fetch)
8392 (uri (git-reference
8393 (url "https://github.com/horst3180/arc-icon-theme.git")
8394 (commit version)))
8395 (file-name (git-file-name name version))
8396 (sha256
8397 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8398 (build-system gnu-build-system)
9e1ede95
JL
8399 (arguments
8400 `(#:phases
8401 (modify-phases %standard-phases
8402 (add-after 'unpack 'disable-configure-during-bootstrap
8403 (lambda _
8404 (substitute* "autogen.sh"
8405 (("^\"\\$srcdir/configure\".*") ""))
8406 #t)))))
6fd8f8d6
DT
8407 (native-inputs
8408 `(("autoconf" ,autoconf)
8409 ("automake" ,automake)))
8410 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8411 (propagated-inputs
8412 `(("moka-icon-theme" ,moka-icon-theme)))
8413 (synopsis "Arc icon theme")
8414 (description "The Arc icon theme provides a set of icons matching the
8415style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8416the Moka icon theme.")
8417 (home-page "https://github.com/horst3180/arc-icon-theme")
8418 (license license:gpl3+)))
6064a4e8
LF
8419
8420(define-public folks
8421 (package
8422 (name "folks")
d23495fa 8423 (version "0.11.4")
6064a4e8
LF
8424 (source (origin
8425 (method url-fetch)
8426 (uri (string-append
e5f4796e 8427 "mirror://gnome/sources/folks/"
6064a4e8 8428 (version-major+minor version) "/"
e5f4796e 8429 "folks-" version ".tar.xz"))
6064a4e8
LF
8430 (sha256
8431 (base32
d23495fa 8432 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
8433 (build-system glib-or-gtk-build-system)
8434 (inputs
8435 `(("bdb" ,bdb)
8436 ("dbus-glib" ,dbus-glib)
8437 ("evolution-data-server" ,evolution-data-server)
8438 ("glib" ,glib)
8439 ("libgee" ,libgee)
8440 ("telepathy-glib" ,telepathy-glib)))
8441 (native-inputs
8442 `(("gobject-introspection" ,gobject-introspection)
8443 ("intltool" ,intltool)
8444 ("pkg-config" ,pkg-config)
8445 ("vala" ,vala)))
8446 (synopsis "Library to aggregate data about people")
8447 (description "Libfolks is a library that aggregates information about people
8448from multiple sources (e.g., Telepathy connection managers for IM contacts,
8449Evolution Data Server for local contacts, libsocialweb for web service contacts,
8450etc.) to create metacontacts. It's written in Vala, which generates C code when
8451compiled.")
8452 (home-page "https://wiki.gnome.org/Projects/Folks")
8453 (license license:lgpl2.1+)))
01ea778f
LF
8454
8455(define-public gfbgraph
8456 (package
8457 (name "gfbgraph")
8458 (version "0.2.3")
8459 (source (origin
8460 (method url-fetch)
8461 (uri (string-append
237d4cf7 8462 "mirror://gnome/sources/gfbgraph/"
01ea778f 8463 (version-major+minor version) "/"
237d4cf7 8464 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8465 (sha256
8466 (base32
8467 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8468 (build-system glib-or-gtk-build-system)
8469 (arguments
8470 `(#:tests? #f ; Tests appear to require the network.
8471 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8472 #:configure-flags '("--disable-gtk-doc"
8473 "--disable-static"
8474 "--enable-introspection")))
8475 (native-inputs
8476 `(("pkg-config" ,pkg-config)
8477 ("gobject-introspection" ,gobject-introspection)))
8478 (inputs
8479 `(("json-glib" ,json-glib)
14c297fd 8480 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8481 ("rest" ,rest)))
8482 (synopsis "GLib/GObject wrapper for the Facebook API")
8483 (description "This library allows you to use the Facebook API from
8484GLib/GObject code.")
8485 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8486 (license license:lgpl2.1+)))
3920868c 8487
8488(define-public libgnomekbd
8489 (package
8490 (name "libgnomekbd")
70f2b0f9 8491 (version "3.26.1")
3920868c 8492 (source (origin
8493 (method url-fetch)
d47fa82d 8494 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8495 (version-major+minor version) "/"
d47fa82d 8496 "libgnomekbd-" version ".tar.xz"))
3920868c 8497 (sha256
8498 (base32
70f2b0f9 8499 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8500 (build-system gnu-build-system)
8501 (native-inputs
8502 `(("pkg-config" ,pkg-config)
8503 ("glib" ,glib "bin")
8504 ("intltool" ,intltool)))
8505 (propagated-inputs
8506 ;; Referred to in .h files and .pc.
8507 `(("glib" ,glib)
8508 ("gtk+" ,gtk+)
8509 ("libxklavier" ,libxklavier)))
8510 (home-page "https://www.gnome.org")
8511 (synopsis "GNOME keyboard configuration library")
8512 (description
8513 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8514environment, which can notably display keyboard layouts.")
8515 (license license:lgpl2.0+)))
85327d0d 8516
8517;;; This package is no longer maintained:
8518;;; https://wiki.gnome.org/Attic/LibUnique
8519;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8520;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8521(define-public libunique
8522 (package
8523 (name "libunique")
8524 (version "3.0.2")
8525 (source (origin
8526 (method url-fetch)
8527 (uri (string-append "mirror://gnome/sources/" name "/"
8528 (version-major+minor version) "/"
8529 name "-" version ".tar.xz"))
8530 (sha256
8531 (base32
8532 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8533 (build-system glib-or-gtk-build-system)
8534 (arguments
8535 `(#:configure-flags '("--disable-static"
8536 "--disable-dbus" ; use gdbus
8537 "--enable-introspection")))
8538 (native-inputs
8539 `(("pkg-config" ,pkg-config)
8540 ("gobject-introspection" ,gobject-introspection)
8541 ("glib:bin" ,glib "bin")
8542 ("gtk-doc" ,gtk-doc)))
8543 (propagated-inputs
8544 ;; Referred to in .h files and .pc.
8545 `(("gtk+" ,gtk+)))
8546 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8547 (synopsis "Library for writing single instance applications")
8548 (description
8549 "Libunique is a library for writing single instance applications. If you
8550launch a single instance application twice, the second instance will either just
8551quit or will send a message to the running instance. Libunique makes it easy to
8552write this kind of application, by providing a base class, taking care of all
8553the IPC machinery needed to send messages to a running instance, and also
8554handling the startup notification side.")
8555 (license license:lgpl2.1+)))
54021cd8
RS
8556
8557(define-public gnome-calculator
8558 (package
8559 (name "gnome-calculator")
07ace641 8560 (version "3.32.2")
54021cd8
RS
8561 (source
8562 (origin
8563 (method url-fetch)
8564 (uri (string-append "mirror://gnome/sources/" name "/"
8565 (version-major+minor version) "/"
8566 name "-" version ".tar.xz"))
8567 (sha256
8568 (base32
07ace641 8569 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
2d475910
RW
8570 (build-system meson-build-system)
8571 (arguments '(#:glib-or-gtk? #t))
54021cd8
RS
8572 (native-inputs
8573 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8574 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8
RS
8575 ("intltool" ,intltool)
8576 ("itstool" ,itstool)
2d475910 8577 ("vala" ,vala)
54021cd8
RS
8578 ("pkg-config" ,pkg-config)))
8579 (inputs
112e9083 8580 `(("glib" ,glib)
07ace641 8581 ("gtksourceview" ,gtksourceview)
54021cd8 8582 ("libsoup" ,libsoup)
112e9083 8583 ("libxml2" ,libxml2)
2c2da7ec 8584 ("mpc" ,mpc)
54021cd8
RS
8585 ("mpfr" ,mpfr)))
8586 (home-page "https://wiki.gnome.org/Apps/Calculator")
8587 (synopsis "Desktop calculator")
8588 (description
8589 "Calculator is an application that solves mathematical equations and
8590is suitable as a default application in a Desktop environment.")
8591 (license license:gpl3)))
0bd69759
RS
8592
8593(define-public xpad
8594 (package
8595 (name "xpad")
c85626bb 8596 (version "5.1.0")
0bd69759
RS
8597 (source
8598 (origin
8599 (method url-fetch)
08fda9c6
R
8600 (uri (string-append "https://launchpad.net/xpad/trunk/"
8601 version "/+download/"
0bd69759
RS
8602 name "-" version ".tar.bz2"))
8603 (sha256
8604 (base32
c85626bb 8605 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8606 (build-system gnu-build-system)
8607 (native-inputs
08fda9c6
R
8608 `(("autoconf" ,autoconf)
8609 ("automake" ,automake)
8610 ("gtk+:bin" ,gtk+ "bin")
8611 ("intltool" ,intltool)
0bd69759
RS
8612 ("pkg-config" ,pkg-config)))
8613 (inputs
c72647fb 8614 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8615 ("libsm" ,libsm)))
8616 (home-page "https://wiki.gnome.org/Apps/Xpad")
8617 (synopsis "Virtual sticky note")
8618 (description
8619 "Xpad is a sticky note that strives to be simple, fault tolerant,
8620and customizable. Xpad consists of independent pad windows, each is
8621basically a text box in which notes can be written.")
8622 (license license:gpl3+)))
3ad7dce1
RS
8623
8624(define-public gucharmap
c60063ea
RW
8625 (let ((unicode-files
8626 '(("Blocks.txt"
1f8b5515 8627 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8628 ("DerivedAge.txt"
1f8b5515 8629 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8630 ("NamesList.txt"
1f8b5515 8631 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8632 ("Scripts.txt"
1f8b5515 8633 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8634 ("UnicodeData.txt"
1f8b5515 8635 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8636 ("Unihan.zip"
1f8b5515 8637 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8638 (package
8639 (name "gucharmap")
1f8b5515 8640 (version "12.0.1")
c60063ea
RW
8641 (source
8642 (origin
8643 (method url-fetch)
8644 (uri (string-append "mirror://gnome/sources/" name "/"
8645 (version-major+minor version) "/"
8646 name "-" version ".tar.xz"))
8647 (sha256
8648 (base32
1f8b5515 8649 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8650 (build-system glib-or-gtk-build-system)
8651 (arguments
8652 `(#:modules ((ice-9 match)
8653 (guix build glib-or-gtk-build-system)
8654 (guix build utils))
8655 #:configure-flags
8656 (list "--with-unicode-data=../unicode-data")
8657 #:phases
8658 (modify-phases %standard-phases
8659 (add-after 'unpack 'prepare-unicode-data
8660 (lambda* (#:key inputs #:allow-other-keys)
8661 (mkdir-p "../unicode-data")
8662 (with-directory-excursion "../unicode-data"
8663 (for-each (match-lambda
8664 ((file _)
8665 (install-file (assoc-ref inputs file) ".")))
8666 ',unicode-files))
8667 #t)))))
8668 (native-inputs
8669 `(("desktop-file-utils" ,desktop-file-utils)
8670 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8671 ("gobject-introspection" ,gobject-introspection)
8672 ("intltool" ,intltool)
8673 ("itstool" ,itstool)
8674 ("pkg-config" ,pkg-config)
8675 ,@(map (match-lambda
8676 ((file hash)
8677 `(,file
8678 ,(origin
8679 (method url-fetch)
8680 (uri (string-append
1f8b5515 8681 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8682 file))
8683 (sha256 (base32 hash))))))
8684 unicode-files)
8685 ("unzip" ,unzip)))
8686 (inputs
8687 `(("gtk+" ,gtk+)
8688 ("xmllint" ,libxml2)))
8689 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8690 (synopsis "Unicode character picker and font browser")
8691 (description
8692 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8693characters and categories for the installed fonts, and to examine their
8694detailed properties. It is an easy way to find the character you might
8695only know by its Unicode name or code point.")
c60063ea 8696 (license license:gpl3+))))
04ce840a
RS
8697
8698(define-public bluefish
8699 (package
8700 (name "bluefish")
290fe81d 8701 (version "2.2.11")
04ce840a
RS
8702 (source
8703 (origin
8704 (method url-fetch)
8705 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8706 "bluefish-" version ".tar.gz"))
04ce840a 8707 (sha256
290fe81d 8708 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8709 (build-system gnu-build-system)
8710 (native-inputs
8711 `(("desktop-file-utils" ,desktop-file-utils)
8712 ("intltool" ,intltool)
8713 ("pkg-config" ,pkg-config)))
8714 (inputs
8715 `(("enchant" ,enchant)
8716 ("gtk+" ,gtk+)
290fe81d 8717 ("python" ,python-wrapper)
04ce840a
RS
8718 ("xmllint" ,libxml2)
8719 ("gucharmap" ,gucharmap)))
8720 (home-page "http://bluefish.openoffice.nl")
8721 (synopsis "Web development studio")
8722 (description
8723 "Bluefish is an editor targeted towards programmers and web developers,
8724with many options to write web sites, scripts and other code.
8725Bluefish supports many programming and markup languages.")
8726 (license license:gpl3+)))
1f6a73ee
RS
8727
8728(define-public gnome-system-monitor
8729 (package
8730 (name "gnome-system-monitor")
083cffaf 8731 (version "3.32.1")
1f6a73ee
RS
8732 (source
8733 (origin
8734 (method url-fetch)
8735 (uri (string-append "mirror://gnome/sources/" name "/"
8736 (version-major+minor version) "/"
8737 name "-" version ".tar.xz"))
8738 (sha256
8739 (base32
083cffaf 8740 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8741 (build-system meson-build-system)
8742 (arguments
8743 '(#:glib-or-gtk? #t
8744 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8745 (native-inputs
8746 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8747 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8748 ("intltool" ,intltool)
8749 ("itstool" ,itstool)
8750 ("libgtop" ,libgtop)
4985d9aa 8751 ("polkit" ,polkit)
1f6a73ee
RS
8752 ("pkg-config" ,pkg-config)))
8753 (inputs
8754 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8755 ("gtk+" ,gtk+)
8756 ("gtkmm" ,gtkmm)
8757 ("librsvg" ,librsvg)
4985d9aa
RW
8758 ("libxml2" ,libxml2)
8759 ("libwnck" ,libwnck)))
1f6a73ee
RS
8760 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8761 (synopsis "Process viewer and system resource monitor for GNOME")
8762 (description
8763 "GNOME System Monitor is a GNOME process viewer and system monitor with
8764an attractive, easy-to-use interface. It has features, such as a tree view
8765for process dependencies, icons for processes, the ability to hide processes,
8766graphical time histories of CPU/memory/swap usage and the ability to
8767kill/reinice processes.")
8768 (license license:gpl2+)))
3e00ac47
SB
8769
8770(define-public python-pyatspi
8771 (package
8772 (name "python-pyatspi")
4f937a32 8773 (version "2.34.0")
3e00ac47
SB
8774 (source (origin
8775 (method url-fetch)
8776 (uri (string-append
8777 "mirror://gnome/sources/pyatspi/"
8778 (version-major+minor version)
8779 "/pyatspi-" version ".tar.xz"))
8780 (sha256
8781 (base32
4f937a32 8782 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8783 (build-system gnu-build-system)
b95af3f6
JL
8784 (arguments
8785 `(#:phases
8786 (modify-phases %standard-phases
8787 (add-before 'build 'fix-atk-load
8788 (lambda _
8789 (substitute* "pyatspi/__init__.py"
8790 (("from gi.repository import Atspi")
8791 "gi.require_version('Gtk', '3.0')
8792from gi.repository import Gtk
8793from gi.repository import Atspi"))
8794 #t)))))
3e00ac47
SB
8795 (native-inputs
8796 `(("pkg-config" ,pkg-config)))
8797 (inputs
8798 `(("python" ,python)
8799 ("python-pygobject" ,python-pygobject)))
8800 (synopsis "Python client bindings for D-Bus AT-SPI")
8801 (home-page "https://wiki.linuxfoundation.org/accessibility\
8802/atk/at-spi/at-spi_on_d-bus")
8803 (description
8804 "This package includes a python client library for the AT-SPI D-Bus
8805accessibility infrastructure.")
8806 (license license:lgpl2.0)
8807 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8808
8809(define-public orca
8810 (package
8811 (name "orca")
089e8585 8812 (version "3.32.0")
53201c0d
SB
8813 (source (origin
8814 (method url-fetch)
8815 (uri (string-append
8816 "mirror://gnome/sources/" name "/"
8817 (version-major+minor version) "/"
8818 name "-" version ".tar.xz"))
8819 (sha256
8820 (base32
089e8585 8821 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8822 (build-system glib-or-gtk-build-system)
8823 (arguments
8824 '(#:phases
8825 (modify-phases %standard-phases
8826 (add-before 'configure 'qualify-xkbcomp
8827 (lambda* (#:key inputs #:allow-other-keys)
8828 (let ((xkbcomp (string-append
8829 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8830 (substitute* "src/orca/orca.py"
8831 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8832 #t))
8833 (add-after 'install 'wrap-orca
8834 (lambda* (#:key outputs #:allow-other-keys)
8835 (let* ((out (assoc-ref outputs "out"))
8836 (prog (string-append out "/bin/orca")))
8837 (wrap-program prog
8838 `("GI_TYPELIB_PATH" ":" prefix
8839 (,(getenv "GI_TYPELIB_PATH")))
8840 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8841 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8842 `("PYTHONPATH" ":" prefix
8843 (,(getenv "PYTHONPATH")))))
8844 #t)))))
8845 (native-inputs
8846 `(("intltool" ,intltool)
8847 ("itstool" ,itstool)
8848 ("pkg-config" ,pkg-config)
8849 ("xmllint" ,libxml2)))
8850 (inputs
8851 `(("at-spi2-atk" ,at-spi2-atk)
8852 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8853 ("gstreamer" ,gstreamer)
8854 ("gst-plugins-base" ,gst-plugins-base)
8855 ("gst-plugins-good" ,gst-plugins-good)
8856 ("gtk+" ,gtk+)
8857 ("python" ,python)
8858 ("python-pygobject" ,python-pygobject)
8859 ("python-pyatspi" ,python-pyatspi)
8860 ("python-speechd" ,speech-dispatcher)
8861 ("xkbcomp" ,xkbcomp)))
8862 (synopsis
8863 "Screen reader for individuals who are blind or visually impaired")
8864 (home-page "https://wiki.gnome.org/Projects/Orca")
8865 (description
8866 "Orca is a screen reader that provides access to the graphical desktop
8867via speech and refreshable braille. Orca works with applications and toolkits
8868that support the Assistive Technology Service Provider Interface (AT-SPI).")
8869 (license license:lgpl2.1+)))
411ba511
LC
8870
8871(define-public gspell
8872 (package
8873 (name "gspell")
7a6bbe9b 8874 (version "1.8.2")
411ba511
LC
8875 (source (origin
8876 (method url-fetch)
8877 (uri (string-append "mirror://gnome/sources/" name "/"
8878 (version-major+minor version) "/"
8879 name "-" version ".tar.xz"))
8880 (sha256
8881 (base32
7a6bbe9b 8882 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8883 (patches (search-patches "gspell-dash-test.patch"))))
8884 (build-system glib-or-gtk-build-system)
8885 (arguments
d0f50164 8886 '(#:configure-flags (list "--enable-vala")
8887 #:phases
411ba511
LC
8888 (modify-phases %standard-phases
8889 (add-before 'check 'pre-check
8890 (lambda* (#:key inputs #:allow-other-keys)
8891 ;; Tests require a running X server.
8892 (system "Xvfb :1 &")
8893 (setenv "DISPLAY" ":1")
8894
8895 ;; For the missing /etc/machine-id.
8896 (setenv "DBUS_FATAL_WARNINGS" "0")
8897
8898 ;; Allow Enchant and its Aspell backend to find the en_US
8899 ;; dictionary.
8900 (setenv "ASPELL_DICT_DIR"
8901 (string-append (assoc-ref inputs "aspell-dict-en")
8902 "/lib/aspell"))
8903 #t)))))
8904 (inputs
eccd35be 8905 `(("gtk+" ,gtk+)
a801ae4c
TGR
8906 ("glib" ,glib)
8907 ("iso-codes" ,iso-codes)))
411ba511
LC
8908 (native-inputs
8909 `(("glib" ,glib "bin")
26ba3f07 8910 ("gobject-introspection" ,gobject-introspection)
411ba511 8911 ("pkg-config" ,pkg-config)
d0f50164 8912 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
8913 ("xmllint" ,libxml2)
8914
8915 ;; For tests.
a801ae4c 8916 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8917 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8918 (propagated-inputs
9b1bb757 8919 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8920 (home-page "https://wiki.gnome.org/Projects/gspell")
8921 (synopsis "GNOME's alternative spell checker")
8922 (description
8923 "gspell provides a flexible API to add spell-checking to a GTK+
8924application. It provides a GObject API, spell-checking to text entries and
8925text views, and buttons to choose the language.")
8926 (license license:gpl2+)))
d1d739fa
CM
8927
8928(define-public gnome-planner
8929 (package
8930 (name "gnome-planner")
8931 (version "0.14.6")
8932 (source (origin
8933 (method url-fetch)
8934 (uri (string-append "mirror://gnome/sources/planner/"
8935 (version-major+minor version) "/planner-"
8936 version ".tar.xz"))
8937 (sha256
8938 (base32
8939 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8940 (build-system glib-or-gtk-build-system)
8941 (arguments
8942 ;; Disable the Python bindings because the Planner program functions
8943 ;; without them, and (as of 2017-06-13) we have not packaged all of
8944 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8945 `(#:configure-flags
8946 (list "--disable-python"
8947 ,@(if (string=? "aarch64-linux" (%current-system))
8948 '("--build=aarch64-unknown-linux-gnu")
8949 '()))))
d1d739fa
CM
8950 (inputs
8951 `(("libgnomecanvas" ,libgnomecanvas)
8952 ("libgnomeui" ,libgnomeui)
8953 ("libglade" ,libglade)
8954 ("gnome-vfs" ,gnome-vfs)
8955 ("gconf" ,gconf)
8956 ("libxml2" ,libxml2)
8957 ("libxslt" ,libxslt)
8958 ("gtk+" ,gtk+)
8959 ("glib" ,glib)))
8960 (native-inputs
8961 `(("intltool" ,intltool)
8962 ("scrollkeeper" ,scrollkeeper)
8963 ("pkg-config" ,pkg-config)))
8964 (home-page "https://wiki.gnome.org/Apps/Planner")
8965 (synopsis "Project management software for the GNOME desktop")
8966 (description
8967 "GNOME Planner is a project management tool based on the Work Breakdown
8968Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8969the resources, tasks, and constraints that you define, Planner generates
8970various views into a project. For example, Planner can show a Gantt chart of
8971the project. It can show a detailed summary of tasks including their
8972duration, cost, and current progress. It can also show a report of resource
8973utilization that highlights under-utilized and over-utilized resources. These
8974views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8975 (license license:gpl2+)))
64fce637
RS
8976
8977(define-public lollypop
8978 (package
8979 (name "lollypop")
24b5d8f7 8980 (version "1.2.32")
64fce637
RS
8981 (source
8982 (origin
8983 (method url-fetch)
24b5d8f7 8984 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 8985 "lollypop-" version ".tar.xz"))
64fce637 8986 (sha256
24b5d8f7 8987 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 8988 (build-system meson-build-system)
64fce637 8989 (arguments
7a9543d7
TGR
8990 `(#:imported-modules
8991 (,@%meson-build-system-modules
8992 (guix build python-build-system))
8993 #:modules
8994 ((guix build meson-build-system)
8995 ((guix build python-build-system) #:prefix python:)
8996 (guix build utils))
aa498fc0 8997 #:glib-or-gtk? #t
7a9543d7 8998 #:tests? #f ; no test suite
5fc9b6c1
EF
8999 #:phases
9000 (modify-phases %standard-phases
5fc9b6c1
EF
9001 (add-after 'install 'wrap-program
9002 (lambda* (#:key outputs #:allow-other-keys)
9003 (let ((out (assoc-ref outputs "out"))
9004 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9005 (wrap-program (string-append out "/bin/lollypop")
9006 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9007 #t))
8ac8b3b3 9008 (add-after 'install 'wrap-python
7a9543d7 9009 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9010 (native-inputs
9011 `(("intltool" ,intltool)
9012 ("itstool" ,itstool)
aa498fc0
TD
9013 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9014 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9015 ("pkg-config" ,pkg-config)))
9016 (inputs
9017 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9018 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9019 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9020 ("libnotify" ,libnotify)
9021 ("libsecret" ,libsecret)
9022 ("libsoup" ,libsoup)
9023 ("python" ,python)
9024 ("python-beautifulsoup4" ,python-beautifulsoup4)
9025 ("python-gst" ,python-gst)
d029afdd 9026 ("python-pil" ,python-pillow)
64fce637 9027 ("python-pycairo" ,python-pycairo)
7460f346 9028 ("python-pygobject" ,python-pygobject-3.34)
64fce637
RS
9029 ("python-pylast" ,python-pylast)
9030 ("totem-pl-parser" ,totem-pl-parser)
9031 ("webkitgtk" ,webkitgtk)))
9032 (propagated-inputs
9033 `(;; gst-plugins-base is required to start Lollypop,
9034 ;; the others are required to play streaming.
64fce637
RS
9035 ("gst-plugins-good" ,gst-plugins-good)
9036 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9037 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9038 (synopsis "GNOME music playing application")
9039 (description
9040 "Lollypop is a music player designed to play well with GNOME desktop.
9041Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9042from artists and tracks from the web. It also fetches cover artworks
9043automatically and it can stream songs from online music services and charts.")
9044 (license license:gpl3+)))
d831d49d
AW
9045
9046(define-public gnome-video-effects
9047 (package
9048 (name "gnome-video-effects")
9049 (version "0.4.3")
9050 (source (origin
9051 (method url-fetch)
9052 (uri (string-append "mirror://gnome/sources/" name "/"
9053 (version-major+minor version) "/" name "-"
9054 version ".tar.xz"))
9055 (sha256
9056 (base32
9057 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9058 (build-system glib-or-gtk-build-system)
9059 (arguments
9060 `(#:out-of-source? #f))
9061 (native-inputs
9062 `(("glib:bin" ,glib "bin")
9063 ("intltool" ,intltool)
9064 ("gettext" ,gettext-minimal)
9065 ("pkg-config" ,pkg-config)))
9066 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9067 (synopsis "Video effects for Cheese and other GNOME applications")
9068 (description
9069 "A collection of GStreamer video filters and effects to be used in
9070photo-booth-like software, such as Cheese.")
9071 (license license:gpl2+)))
3511c780
AW
9072
9073(define-public cheese
9074 (package
9075 (name "cheese")
dd33b337 9076 (version "3.32.1")
3511c780
AW
9077 (source (origin
9078 (method url-fetch)
9079 (uri (string-append "mirror://gnome/sources/" name "/"
9080 (version-major+minor version) "/" name "-"
9081 version ".tar.xz"))
9082 (sha256
9083 (base32
dd33b337 9084 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
9085 (arguments
9086 ;; Tests require GDK.
9087 `(#:tests? #f
9088 #:phases
9089 (modify-phases %standard-phases
9090 (add-before 'install 'skip-gtk-update-icon-cache
9091 (lambda _
9092 ;; Don't create 'icon-theme.cache'
9093 (substitute* "Makefile"
9094 (("gtk-update-icon-cache") (which "true")))
9095 #t))
9096 (add-after 'install 'wrap-cheese
9097 (lambda* (#:key inputs outputs #:allow-other-keys)
9098 (let ((out (assoc-ref outputs "out"))
9099 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9100 (wrap-program (string-append out "/bin/cheese")
9101 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9102 #t)))))
9103 (build-system glib-or-gtk-build-system)
9104 (native-inputs
9105 `(("glib:bin" ,glib "bin")
9106 ("intltool" ,intltool)
9107 ("itstool" ,itstool)
9108 ("libxml2" ,libxml2)
9109 ("pkg-config" ,pkg-config)
9110 ("vala" ,vala)))
9111 (propagated-inputs
6a19f03e
RW
9112 `(("gnome-video-effects" ,gnome-video-effects)
9113 ("clutter" ,clutter)
3511c780
AW
9114 ("clutter-gst" ,clutter-gst)
9115 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9116 ("libcanberra" ,libcanberra)
3511c780
AW
9117 ("gdk-pixbuf" ,gdk-pixbuf)
9118 ("glib" ,glib)
6a19f03e
RW
9119 ("gstreamer" ,gstreamer)))
9120 (inputs
9121 `(("gnome-desktop" ,gnome-desktop)
3511c780 9122 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9123 ("gst-plugins-base" ,gst-plugins-base)
9124 ("gst-plugins-bad" ,gst-plugins-bad)
9125 ("gtk+" ,gtk+)
3511c780
AW
9126 ("libx11" ,libx11)
9127 ("libxtst" ,libxtst)))
9128 (home-page "https://wiki.gnome.org/Apps/Cheese")
9129 (synopsis "Webcam photo booth software for GNOME")
9130 (description
9131 "Cheese uses your webcam to take photos and videos. Cheese can also
9132apply fancy special effects and lets you share the fun with others.")
9133 (license license:gpl2+)))
3c5dbd2b 9134
9135(define-public sound-juicer
9136 (package
9137 (name "sound-juicer")
9138 (version "3.24.0")
9139 (source
9140 (origin
9141 (method url-fetch)
9142 (uri (string-append "mirror://gnome/sources/" name "/"
9143 (version-major+minor version) "/"
9144 name "-" version ".tar.xz"))
9145 (sha256
9146 (base32
9147 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9148 (build-system glib-or-gtk-build-system)
9149 (native-inputs
9150 `(("desktop-file-utils" ,desktop-file-utils)
9151 ("intltool" ,intltool)
9152 ("itstool" ,itstool)
9153 ("pkg-config" ,pkg-config)
9154 ("xmllint" ,libxml2)))
9155 (inputs
9156 `(("gtk+" ,gtk+)
9157 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9158 ("gstreamer" ,gstreamer)
9159 ("gst-plugins-base" ,gst-plugins-base)
9160 ("gst-plugins-good" ,gst-plugins-good)
9161 ("iso-codes" ,iso-codes)
9162 ("libbrasero-media3" ,brasero)
9163 ("libcanberra" ,libcanberra)
9164 ("libdiscid" ,libdiscid)
9165 ("libmusicbrainz" ,libmusicbrainz)
9166 ("neon" ,neon)))
9167 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9168 (synopsis "Audio music cd ripper")
9169 (description "Sound Juicer extracts audio from compact discs and convert it
9170into audio files that a personal computer or digital audio player can play.
9171It supports ripping to any audio codec supported by a GStreamer plugin, such as
9172mp3, Ogg Vorbis and FLAC")
9173 (license license:gpl2+)))
4e3fdeb7 9174
0d3f1708
CB
9175(define-public soundconverter
9176 (package
9177 (name "soundconverter")
fa75a213 9178 (version "3.0.1")
0d3f1708
CB
9179 (source
9180 (origin
9181 (method url-fetch)
9182 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9183 version "/+download/"
9184 "soundconverter-" version ".tar.xz"))
9185
9186 (sha256
fa75a213 9187 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
9188 (patches
9189 (search-patches
9190 "soundconverter-remove-gconf-dependency.patch"))))
9191 (build-system glib-or-gtk-build-system)
9192 (arguments
9193 `(#:imported-modules ((guix build python-build-system)
9194 (guix build glib-or-gtk-build-system)
9195 ,@%gnu-build-system-modules)
9196
9197 #:modules ((guix build glib-or-gtk-build-system)
9198 (guix build utils)
9199 ((guix build gnu-build-system) #:prefix gnu:)
9200 ((guix build python-build-system) #:prefix python:))
9201
9202 #:phases
9203 (modify-phases %standard-phases
0d3f1708
CB
9204 (add-after 'install 'wrap-soundconverter-for-python
9205 (assoc-ref python:%standard-phases 'wrap))
9206 (add-after 'install 'wrap-soundconverter
9207 (lambda* (#:key inputs outputs #:allow-other-keys)
9208 (let ((out (assoc-ref outputs "out"))
9209 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9210 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9211 (wrap-program (string-append out "/bin/soundconverter")
9212 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9213 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9214 #t)))))
9215 (native-inputs
9216 `(("intltool" ,intltool)
9217 ("pkg-config" ,pkg-config)
9218 ("glib:bin" ,glib "bin")))
9219 (inputs
9220 `(("gtk+" ,gtk+)
9221 ("python" ,python)
9222 ("python-pygobject" ,python-pygobject)
9223 ("gstreamer" ,gstreamer)
9224 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9225 (home-page "https://soundconverter.org/")
0d3f1708
CB
9226 (synopsis "Convert between audio formats with a graphical interface")
9227 (description
9228 "SoundConverter supports converting between many audio formats including
9229Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9230configurable file renaming. ")
9231 (license license:gpl3)))
9232
4e3fdeb7 9233(define-public workrave
89f2d736
TGR
9234 (package
9235 (name "workrave")
52fc6508 9236 (version "1.10.42")
89f2d736
TGR
9237 (source
9238 (origin
9239 (method git-fetch)
9240 (uri (git-reference
9241 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9242 (commit (string-append "v" (string-map
9243 (match-lambda (#\. #\_) (chr chr))
9244 version)))))
89f2d736
TGR
9245 (file-name (git-file-name name version))
9246 (sha256
52fc6508 9247 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9248 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9249 (arguments
9250 ;; The only tests are maintainer tests (in po/), which fail.
9251 `(#:tests? #f))
d1c96847
MC
9252 (inputs `(("glib" ,glib)
9253 ("gtk+" ,gtk+)
9254 ("gdk-pixbuf" ,gdk-pixbuf)
9255 ("gtkmm" ,gtkmm)
9256 ("glibmm" ,glibmm)
9257 ("libx11" ,libx11)
9258 ("libxtst" ,libxtst)
9259 ("dconf" ,dconf)
9260 ("libice" ,libice)
9261 ("libsm" ,libsm)
9262 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9263 (native-inputs `(("boost" ,boost)
89f2d736 9264 ("pkg-config" ,pkg-config)
f2d97d57 9265 ("gettext" ,gettext-minimal)
89f2d736
TGR
9266 ("autoconf" ,autoconf)
9267 ("autoconf-archive" , autoconf-archive)
9268 ("automake" ,automake)
9269 ("libtool" ,libtool)
9270 ("intltool" ,intltool)
89f2d736 9271 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9272 ("python3" ,python-3)
9273 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9274 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9275 (description
9276 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9277repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9278micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9279 (home-page "http://www.workrave.org")
9280 (license license:gpl3+)))
312afa7d
LC
9281
9282(define-public ghex
9283 (package
9284 (name "ghex")
3748992a 9285 (version "3.18.4")
312afa7d
LC
9286 (source (origin
9287 (method url-fetch)
2fbab848 9288 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9289 (version-major+minor version) "/"
2fbab848 9290 "ghex-" version ".tar.xz"))
312afa7d
LC
9291 (sha256
9292 (base32
3748992a
KK
9293 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9294 (build-system meson-build-system)
9295 (arguments
9296 '(#:glib-or-gtk? #t
9297 #:phases
9298 (modify-phases %standard-phases
9299 (add-after 'unpack 'skip-gtk-update-icon-cache
9300 ;; Don't create 'icon-theme.cache'.
9301 (lambda _
9302 (substitute* "meson_post_install.py"
9303 (("gtk-update-icon-cache") (which "true")))
9304 #t)))))
312afa7d
LC
9305 (native-inputs
9306 `(("pkg-config" ,pkg-config)
3748992a 9307 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9308 ("gnome-common" ,gnome-common)
9309 ("which" ,which)
9310 ("intltool" ,intltool)
9311 ("yelp-tools" ,yelp-tools)
2fbab848 9312 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9313 (inputs
9314 `(("atk" ,atk)
9315 ("gtk" ,gtk+)))
9316 (synopsis "GNOME hexadecimal editor")
9317 (description "The GHex program can view and edit files in two ways:
9318hexadecimal or ASCII. It is useful for editing binary files in general.")
9319 (home-page "https://wiki.gnome.org/Apps/Ghex")
9320 (license license:gpl2)))
4b2ed6c2
RW
9321
9322(define-public libdazzle
9323 (package
9324 (name "libdazzle")
64fa66ba 9325 (version "3.33.90")
4b2ed6c2
RW
9326 (source (origin
9327 (method url-fetch)
687b4909 9328 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9329 (version-major+minor version) "/"
687b4909 9330 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9331 (sha256
9332 (base32
64fa66ba 9333 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
9334 (build-system meson-build-system)
9335 (arguments
9336 `(#:phases
9337 (modify-phases %standard-phases
4b2ed6c2
RW
9338 (add-before 'check 'pre-check
9339 (lambda _
9340 ;; Tests require a running X server.
9341 (system "Xvfb :1 &")
9342 (setenv "DISPLAY" ":1")
9343 #t)))))
9344 (native-inputs
687b4909 9345 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9346 ("pkg-config" ,pkg-config)
687b4909 9347 ;; For tests.
ff337525 9348 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9349 (inputs
9350 `(("glib" ,glib)
9351 ("gobject-introspection" ,gobject-introspection)
9352 ("gtk+" ,gtk+)
9353 ("vala" ,vala)))
9354 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9355 (synopsis "Companion library to GObject and Gtk+")
9356 (description "The libdazzle library is a companion library to GObject and
9357Gtk+. It provides various features that the authors wish were in the
9358underlying library but cannot for various reasons. In most cases, they are
9359wildly out of scope for those libraries. In other cases, they are not quite
9360generic enough to work for everyone.")
9361 (license license:gpl3+)))
7d3bb433
RW
9362
9363(define-public evolution
9364 (package
9365 (name "evolution")
06141f83 9366 (version "3.32.4")
7d3bb433
RW
9367 (source (origin
9368 (method url-fetch)
9369 (uri (string-append "mirror://gnome/sources/evolution/"
9370 (version-major+minor version) "/"
9371 "evolution-" version ".tar.xz"))
9372 (sha256
9373 (base32
06141f83 9374 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
9375 (build-system cmake-build-system)
9376 (arguments
5229bea1
KK
9377 `(#:imported-modules (,@%cmake-build-system-modules
9378 (guix build glib-or-gtk-build-system))
9379 #:modules ((guix build cmake-build-system)
9380 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9381 (guix build utils))
9382 #:configure-flags
7d3bb433 9383 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9384 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9385 ; in four years and cannot be built.
5229bea1
KK
9386 #:phases
9387 (modify-phases %standard-phases
9388 ;; The build system attempts to install user interface modules to the
9389 ;; output directory of the "evolution-data-server" package. This
9390 ;; change redirects that change.
9391 (add-after 'unpack 'patch-ui-module-dir
9392 (lambda* (#:key outputs #:allow-other-keys)
9393 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9394 (("\\$\\{edsuimoduledir\\}")
9395 (string-append (assoc-ref outputs "out")
9396 "/lib/evolution-data-server/ui-modules")))
9397 #t))
9398 (add-after 'install 'glib-or-gtk-compile-schemas
9399 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9400 (add-after 'install 'glib-or-gtk-wrap
9401 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9402 (native-inputs
ad6e168b 9403 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9404 ("pkg-config" ,pkg-config)
9405 ("intltool" ,intltool)
9406 ("itstool" ,itstool)))
9407 (inputs
9408 `(("enchant" ,enchant)
9409 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9410 ("gcr" ,gcr)
ad6e168b 9411 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9412 ("gnome-autoar" ,gnome-autoar)
9413 ("gnome-desktop" ,gnome-desktop)
9414 ("gtkspell3" ,gtkspell3)
9415 ("highlight" ,highlight)
9416 ("libcanberra" ,libcanberra)
b63c06f1 9417 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
9418 ("libgweather" ,libgweather)
9419 ("libnotify" ,libnotify)
9420 ("libsoup" ,libsoup)
9421 ("nss" ,nss)
9422 ("openldap" ,openldap)
9423 ("webkitgtk" ,webkitgtk)
9424 ("ytnef" ,ytnef)))
9425 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9426 (synopsis "Manage your email, contacts and schedule")
9427 (description "Evolution is a personal information management application
9428that provides integrated mail, calendaring and address book
9429functionality.")
9430 ;; See COPYING for details.
23dbe621 9431 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9432 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9433 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9434
9435(define-public gthumb
9436 (package
9437 (name "gthumb")
8280676b 9438 (version "3.8.2")
169d63f5
AT
9439 (source (origin
9440 (method url-fetch)
9441 (uri (string-append "mirror://gnome/sources/gthumb/"
9442 (version-major+minor version) "/"
9443 "gthumb-" version ".tar.xz"))
9444 (sha256
9445 (base32
8280676b 9446 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9447 (build-system meson-build-system)
9448 (arguments
9449 `(#:glib-or-gtk? #t
9450 #:configure-flags
9451 ;; Ensure the RUNPATH contains all installed library locations.
9452 (list (string-append "-Dc_link_args=-Wl,-rpath="
9453 (assoc-ref %outputs "out")
9454 "/lib/gthumb/extensions")
9455 (string-append "-Dcpp_link_args=-Wl,-rpath="
9456 (assoc-ref %outputs "out")
9457 "/lib/gthumb/extensions"))))
9458 (native-inputs
9459 `(("pkg-config" ,pkg-config)
9460 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9461 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9462 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9463 ("intltool" ,intltool)
9464 ("itstool" ,itstool)))
9465 (inputs
9466 `(("exiv2" ,exiv2)
9467 ("gtk" ,gtk+)
9468 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9469 ("gstreamer" ,gstreamer)
9470 ("clutter" ,clutter)
9471 ("clutter-gst" ,clutter-gst)
9472 ("clutter-gtk" ,clutter-gtk)
9473 ("libjpeg" ,libjpeg)
9474 ("libtiff" ,libtiff)
9475 ("libraw" ,libraw)))
9476 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9477 (synopsis "GNOME image viewer and browser")
9478 (description "GThumb is an image viewer, browser, organizer, editor and
9479advanced image management tool")
9480 (license license:gpl2+)))
08be02be
AT
9481
9482(define-public terminator
9483 (package
9484 (name "terminator")
9485 (version "1.91")
9486 (source (origin
9487 (method url-fetch)
9488 (uri (string-append "https://launchpad.net/" name "/"
9489 "gtk3/" version "/" "+download/"
9490 name "-" version ".tar.gz"))
9491 (sha256
9492 (base32
9493 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9494 (build-system python-build-system)
9495 (native-inputs
9496 `(("intltool" ,intltool)
9497 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9498 ("gettext" ,gettext-minimal)
9499 ("pkg-config" ,pkg-config)))
9500 (inputs
9501 `(("cairo" ,cairo)
9502 ("gobject-introspection" ,gobject-introspection)
96681d4b 9503 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9504 ("python2-pycairo" ,python2-pycairo)
9505 ("python2-pygobject" ,python2-pygobject)
9506 ("python2-psutil" ,python2-psutil)
9507 ("vte" ,vte)))
9508 (arguments
96681d4b
TGR
9509 `(#:python ,python-2 ; Python 3 isn't supported
9510 #:imported-modules ((guix build glib-or-gtk-build-system)
9511 ,@%python-build-system-modules)
9512 #:modules ((guix build python-build-system)
9513 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9514 (guix build utils))
08be02be
AT
9515 #:phases
9516 (modify-phases %standard-phases
9517 (add-after
9518 'install 'wrap-program
9519 (lambda* (#:key outputs #:allow-other-keys)
9520 (let ((prog (string-append (assoc-ref outputs "out")
9521 "/bin/terminator")))
9522 (wrap-program prog
9523 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9524 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9525 #t)))
9526 (add-after 'wrap-program 'glib-or-gtk-wrap
9527 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9528 (home-page "https://gnometerminator.blogspot.com/")
9529 (synopsis "Store and run multiple GNOME terminals in one window")
9530 (description
9531 "Terminator allows you to run multiple GNOME terminals in a grid and
9532+tabs, and it supports drag and drop re-ordering of terminals.")
9533 (license license:gpl2)))
213315d4
JF
9534
9535(define-public libhandy
9536 (package
9537 (name "libhandy")
f6501b9f 9538 (version "0.0.12")
213315d4
JF
9539 (source
9540 (origin
9541 (method git-fetch)
9542 (uri (git-reference
9543 (url "https://source.puri.sm/Librem5/libhandy")
9544 (commit (string-append "v" version))))
9545 (file-name (git-file-name name version))
9546 (sha256
f6501b9f 9547 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9548 (build-system meson-build-system)
9549 (arguments
9550 `(#:configure-flags
9551 '("-Dglade_catalog=disabled"
9552 "-Dgtk_doc=true")
9553 #:phases
9554 (modify-phases %standard-phases
213315d4
JF
9555 (add-before 'check 'pre-check
9556 (lambda _
9557 ;; Tests require a running X server.
9558 (system "Xvfb :1 &")
9559 (setenv "DISPLAY" ":1")
9560 #t)))))
9561 (inputs
9562 `(("gtk+" ,gtk+)))
9563 (native-inputs
9564 `(("glib:bin" ,glib "bin")
9565 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9566 ("vala" ,vala)
9567 ("gtk-doc" ,gtk-doc)
9568 ("pkg-config" ,pkg-config)
9569 ("gettext" ,gettext-minimal)
d41ee146
TGR
9570
9571 ;; Test suite dependencies.
ff337525 9572 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9573 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9574 (home-page "https://source.puri.sm/Librem5/libhandy")
9575 (synopsis "Library full of GTK+ widgets for mobile phones")
9576 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9577interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9578for usage on small and big screens.")
213315d4 9579 (license license:lgpl2.1+)))
a830d14d
GL
9580
9581(define-public libgit2-glib
9582 (package
9583 (name "libgit2-glib")
6448c2e1 9584 (version "0.99.0.1")
a830d14d
GL
9585 (source (origin
9586 (method url-fetch)
9587 (uri (string-append "mirror://gnome/sources/" name "/"
9588 (version-major+minor version) "/"
9589 name "-" version ".tar.xz"))
9590 (sha256
9591 (base32
6448c2e1 9592 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9593 (build-system meson-build-system)
9594 (native-inputs
9595 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9596 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9597 ("pkg-config" ,pkg-config)
9598 ("python-pygobject" ,python-pygobject)
9599 ("python-wrapper" ,python-wrapper)
9600 ("vala" ,vala)))
9601 (inputs
9602 `(("glib" ,glib)
8c6aae46
MB
9603 ("libssh2" ,libssh2)))
9604 (propagated-inputs
9605 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9606 ("libgit2" ,libgit2)))
9607 (synopsis "GLib wrapper around the libgit2 Git access library")
9608 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9609access library. It only implements the core plumbing functions, not really the
9610higher level porcelain stuff.")
9611 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9612 (license license:gpl2+)))
93beace0 9613
08db81c9
LP
9614(define-public gitg
9615 (package
9616 (name "gitg")
9617 (version "3.32.1")
9618 (source (origin
9619 (method url-fetch)
9620 (uri (string-append "mirror://gnome/sources/" name "/"
9621 (version-major+minor version) "/"
9622 name "-" version ".tar.xz"))
9623 (sha256
9624 (base32
9625 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9626 (build-system meson-build-system)
9627 (arguments
9628 `(#:glib-or-gtk? #t
9629 #:phases
9630 (modify-phases %standard-phases
9631 (add-after 'unpack 'disable-post-install-partially
9632 (lambda _
9633 (substitute* "meson_post_install.py"
9634 (("'python'") ; there are no python sources to compile
9635 (string-append "'" (which "true") "'"))
9636 (("gtk-update-icon-cache") (which "true")))
9637 #t))
9638 (add-after 'unpack 'fix-test-sources
9639 (lambda _
9640 (substitute* "tests/libgitg/test-commit.vala"
9641 (("/bin/bash") (which "bash")))
9642 #t))
9643 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9644 (lambda* (#:key outputs #:allow-other-keys)
9645 (let ((prog (string-append (assoc-ref outputs "out")
9646 "/bin/gitg")))
9647 (wrap-program prog
9648 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9649 #t))))))
9650 (inputs
9651 `(("glib" ,glib)
9652 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9653 ("gtk+" ,gtk+)
9654 ("gtkspell3" ,gtkspell3)
9655 ("gtksourceview" ,gtksourceview-3)
9656 ("json-glib" ,json-glib)
9657 ("libdazzle" ,libdazzle)
9658 ("libgee" ,libgee)
08db81c9
LP
9659 ("libgit2-glib" ,libgit2-glib)
9660 ("libpeas" ,libpeas)
9661 ("libsecret" ,libsecret)
9662 ("libsoup" ,libsoup)
9663 ("libxml2" ,libxml2)))
9664 (native-inputs
9665 `(("glib:bin" ,glib "bin")
9666 ("gtk+:bin" ,gtk+ "bin")
9667 ("gobject-introspection" ,gobject-introspection)
9668 ("intltool" ,intltool)
9669 ("pkg-config" ,pkg-config)
9670 ("vala" ,vala)))
9671 (synopsis "Graphical user interface for git")
9672 (description
9673 "gitg is a graphical user interface for git. It aims at being a small,
9674fast and convenient tool to visualize the history of git repositories.
9675Besides visualization, gitg also provides several utilities to manage your
9676repository and commit your work.")
9677 (home-page "https://wiki.gnome.org/Apps/Gitg")
9678 (license license:gpl2+)))
9679
1e600ed0
RW
9680(define-public gamin
9681 (package
9682 (name "gamin")
9683 (version "0.1.10")
9684 (source (origin
9685 (method url-fetch)
9686 (uri (string-append "mirror://gnome/sources/" name "/"
9687 (version-major+minor version) "/"
9688 name "-" version ".tar.bz2"))
9689 (sha256
9690 (base32
9691 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9692 (build-system gnu-build-system)
9693 (arguments
9694 `(#:phases
9695 (modify-phases %standard-phases
9696 (add-after 'unpack 'remove-deprecated-macro
9697 (lambda _
9698 (substitute* '("server/gam_node.c"
9699 "server/gam_subscription.h"
9700 "server/gam_node.h"
9701 "server/gam_subscription.c")
9702 (("G_CONST_RETURN") "const"))
9703 #t)))))
9704 (inputs
9705 `(("glib" ,glib)))
9706 (native-inputs
9707 `(("intltool" ,intltool)
9708 ("pkg-config" ,pkg-config)))
9709 (home-page "https://people.gnome.org/~veillard/gamin/")
9710 (synopsis "File alteration monitor")
9711 (description
9712 "Gamin is a file and directory monitoring system defined to be a subset
9713of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9714library which detects when a file or a directory has been modified.")
1e600ed0
RW
9715 (license license:gpl2+)))
9716
93beace0
DW
9717(define-public gnome-mahjongg
9718 (package
9719 (name "gnome-mahjongg")
9720 (version "3.35.1")
9721 (source (origin
9722 (method git-fetch)
9723 (uri (git-reference
9724 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9725 (commit version)))
9726 (file-name (git-file-name name version))
9727 (sha256
9728 (base32
9729 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9730 (build-system meson-build-system)
9731 (arguments
9732 `(#:glib-or-gtk? #t))
9733 (native-inputs
9734 `(("appstream-glib" ,appstream-glib)
9735 ("gettext" ,gettext-minimal)
9736 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9737 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9738 ("itstool" ,itstool)
9739 ("pkg-config" ,pkg-config)
9740 ("vala" ,vala)))
9741 (propagated-inputs
9742 `(("dconf" ,dconf)))
9743 (inputs
9744 `(("glib" ,glib)
9745 ("gtk+" ,gtk+)
9746 ("librsvg" ,librsvg)))
9747 (synopsis "Mahjongg tile-matching game")
9748 (description "GNOME Mahjongg is a game based on the classic Chinese
9749tile-matching game Mahjong. It features multiple board layouts, tile themes,
9750and a high score table.")
9751 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9752 (license license:gpl2+)))
f825476c 9753
76ea7632
RG
9754(define-public gnome-themes-extra
9755 (package
9756 (name "gnome-themes-extra")
9757 (version "3.28")
9758 (source
9759 (origin
9760 (method url-fetch)
9761 (uri (string-append "mirror://gnome/sources/" name "/"
9762 (version-major+minor version) "/" name "-"
9763 version ".tar.xz"))
9764 (sha256
9765 (base32
9766 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9767 (build-system gnu-build-system)
885424bf
RG
9768 (arguments
9769 '(#:configure-flags
9770 ;; Don't create 'icon-theme.cache'.
9771 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9772 (true (string-append coreutils "/bin/true")))
9773 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9774 (native-inputs
9775 `(("glib:bin" ,glib "bin")
9776 ("intltool" ,intltool)
9777 ("pkg-config" ,pkg-config)))
9778 (inputs
9779 `(("glib" ,glib)
9780 ("gtk+" ,gtk+)
9781 ("gtk+-2" ,gtk+-2)
9782 ("librsvg" ,librsvg)
9783 ("libxml2" ,libxml2)))
9784 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9785 (synopsis "GNOME Extra Themes")
9786 (description "This package provides themes and related elements that don't
9787really fit in other upstream packages. It offers legacy support for GTK+ 2
9788versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9789index files needed for Adwaita to be used outside of GNOME.")
9790 (license license:lgpl2.1+)))
9791
f825476c
LP
9792(define-public polari
9793 (package
9794 (name "polari")
9795 (version "3.32.2")
9796 (source (origin
9797 (method url-fetch)
9798 (uri (string-append "mirror://gnome/sources/polari/"
9799 (version-major+minor version)
9800 "/polari-" version ".tar.xz"))
9801 (sha256
9802 (base32
9803 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9804 (build-system meson-build-system)
9805 (arguments
9806 `(#:glib-or-gtk? #t
9807 #:phases
9808 (modify-phases %standard-phases
9809 (add-after 'unpack 'skip-gtk-update-icon-cache
9810 (lambda _
9811 (substitute* "meson/meson-postinstall.sh"
9812 (("gtk-update-icon-cache") (which "true")))
9813 #t))
9814 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9815 (lambda* (#:key outputs #:allow-other-keys)
9816 (let ((prog (string-append (assoc-ref outputs "out")
9817 "/bin/polari")))
9818 (wrap-program prog
9819 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9820 #t))))))
9821 (inputs
9822 `(("glib" ,glib)
9823 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9824 ("gspell" ,gspell)
9825 ("gtk+" ,gtk+)
9826 ("gjs" ,gjs)
9827 ("libsecret" ,libsecret)
9828 ("libsoup" ,libsoup)
9829 ("telepathy-glib" ,telepathy-glib)
9830 ("telepathy-logger" ,telepathy-logger)))
9831 (native-inputs
9832 `(("glib:bin" ,glib "bin")
9833 ("gobject-introspection" ,gobject-introspection)
9834 ("intltool" ,intltool)
9835 ("pkg-config" ,pkg-config)
9836 ("yelp-tools" ,yelp-tools)))
9837 (propagated-inputs
9838 `(("telepathy-idle" ,telepathy-idle)
9839 ("telepathy-mission-control" ,telepathy-mission-control)))
9840 (synopsis "Simple IRC Client")
9841 (description
9842 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9843integrate seamlessly with the GNOME desktop.")
9844 (home-page "https://wiki.gnome.org/Apps/Polari")
9845 (license license:gpl2+)))
59d4c8c2
PN
9846
9847(define-public gnome-boxes
9848 (package
9849 (name "gnome-boxes")
9850 (version "3.35.91")
9851 (source
9852 (origin
9853 (method url-fetch)
9854 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9855 (version-major+minor version) "/"
9856 "gnome-boxes-" version ".tar.xz"))
9857 (sha256
9858 (base32
9859 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9860 (build-system meson-build-system)
9861 (arguments
9862 '(#:glib-or-gtk? #t
9863 #:configure-flags (list "-Drdp=false"
9864 (string-append "-Dc_link_args=-Wl,-rpath="
9865 (assoc-ref %outputs "out")
9866 "/lib/gnome-boxes"))))
9867 (native-inputs
9868 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9869 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9870 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9871 ("itstool" ,itstool)
9872 ("intltool" ,intltool)
9873 ("vala" ,vala)
9874 ("pkg-config" ,pkg-config)))
9875 (inputs
9876 `(("libarchive" ,libarchive)
9877 ("gtk" ,gtk+)
9878 ("gtk-vnc" ,gtk-vnc)
9879 ("libosinfo" ,libosinfo)
9880 ("libsecret" ,libsecret)
9881 ("libsoup" ,libsoup)
9882 ("libusb" ,libusb)
9883 ("libvirt" ,libvirt)
9884 ("libvirt-glib" ,libvirt-glib)
9885 ("libxml" ,libxml2)
9886 ("spice-gtk" ,spice-gtk)
9887 ("sparql-query" ,sparql-query)
9888 ("vte" ,vte)
9889 ("webkitgtk" ,webkitgtk)
9890 ("tracker" ,tracker)
9891 ("libgudev" ,libgudev)))
9892 (home-page "https://wiki.gnome.org/Apps/Boxes")
9893 (synopsis "View, access, and manage remote and virtual systems")
9894 (description "GNOME Boxes is a simple application to view, access, and
9895manage remote and virtual systems.")
9896 (license (list
9897 ;; For data/icons/empty-boxes.png.
9898 license:cc-by2.0
9899 ;; For all others.
9900 license:lgpl2.0+))))
0e26c3cf 9901
9902(define-public geary
9903 (package
9904 (name "geary")
9905 (version "3.34.1")
9906 (source (origin
9907 (method git-fetch)
9908 (uri (git-reference
9909 (url "https://gitlab.gnome.org/GNOME/geary")
9910 (commit version)))
9911 (file-name (git-file-name name version))
9912 (sha256
9913 (base32
9914 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9915 (build-system meson-build-system)
9916 (arguments
9917 `(#:glib-or-gtk? #t
9918 #:phases (modify-phases %standard-phases
9919 (add-after 'unpack 'disable-failing-tests
9920 (lambda _
9921 (substitute* "test/meson.build"
9922 (("test\\('client-tests', geary_test_client_bin\\)")
9923 ""))
9924 #t))
9925 (add-after 'unpack 'disable-postinstall-script
9926 (lambda _
9927 (substitute* "meson.build"
9928 (("meson.add_install_script\\(\
9929join_paths\\('build-aux', 'post_install.py'\\)\\)")
9930 ""))
9931 #t))
9932 (add-before 'check 'setup-xvfb
9933 (lambda _
9934 (system "Xvfb :1 &")
9935 (setenv "DISPLAY" ":1")
9936 #t)))))
9937 (inputs
9938 `(("enchant" ,enchant)
9939 ("folks" ,folks)
9940 ("gcr" ,gcr)
9941 ("glib" ,glib)
9942 ("gmime" ,gmime-2.6)
9943 ("gnome-online-accounts:lib"
9944 ,gnome-online-accounts "lib")
9945 ("gspell" ,gspell)
9946 ("gtk+" ,gtk+)
9947 ("iso-codes" ,iso-codes)
9948 ("json-glib" ,json-glib)
9949 ("libcanberra" ,libcanberra)
9950 ("libgee" ,libgee)
9951 ("libhandy" ,libhandy)
9952 ("libpeas" ,libpeas)
9953 ("libsecret" ,libsecret)
9954 ("libunwind" ,libunwind)
9955 ("sqlite" ,sqlite)
9956 ("webkitgtk" ,webkitgtk)
9957 ("ytnef" ,ytnef)))
9958 (native-inputs
9959 `(("appstream-glib" ,appstream-glib)
9960 ("cmake-minimal" ,cmake-minimal)
9961 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 9962 ("gettext" ,gettext-minimal)
0e26c3cf 9963 ("glib:bin" ,glib "bin")
9964 ("gobject-introspection" ,gobject-introspection)
9965 ("itstool" ,itstool)
9966 ("libarchive" ,libarchive)
9967 ("libxml2" ,libxml2)
9968 ("pkg-config" ,pkg-config)
9969 ("vala" ,vala)
9970 ("xvfb" ,xorg-server-for-tests)))
9971 (synopsis "GNOME email application built around conversations")
9972 (description
9973 "Geary collects related messages together into conversations,
9974making it easy to find and follow your discussions. Full-text and keyword
9975search makes it easy to find the email you are looking for. Geary's
9976full-featured composer lets you send rich, styled text with images, links, and
9977lists, but also send lightweight, easy to read text messages. Geary
9978automatically picks up your existing GNOME Online Accounts, and adding more is
9979easy. Geary has a clean, fast, modern interface that works like you want it
9980to.")
9981 (home-page "https://wiki.gnome.org/Apps/Geary")
9982 (license (list
9983 ;; geary
9984 license:lgpl2.1+
9985 ;; icons
9986 license:cc-by3.0
9987 license:cc-by-sa3.0
9988 license:public-domain
9989 ;; snowball
9990 license:bsd-2))))
1a17d21b 9991
2cd1de32
BT
9992(define-public libratbag
9993 (package
9994 (name "libratbag")
9995 (version "0.13")
9996 (source
9997 (origin
9998 (method git-fetch)
9999 (uri (git-reference
10000 (url "https://github.com/libratbag/libratbag.git")
10001 (commit (string-append "v" version))))
10002 (file-name (git-file-name name version))
10003 (sha256
10004 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10005 (build-system meson-build-system)
10006 (arguments
10007 `(#:configure-flags
10008 (list "-Dsystemd=false"
10009 "-Dlogind-provider=elogind")
10010 #:phases
10011 (modify-phases %standard-phases
10012 (add-after 'install 'wrap
10013 (lambda* (#:key inputs outputs #:allow-other-keys)
10014 (let* ((out (assoc-ref outputs "out"))
10015 (site (string-append
10016 "/lib/python"
10017 ,(version-major+minor (package-version python))
10018 "/site-packages"))
10019 (evdev (string-append
10020 (assoc-ref inputs "python-evdev") site))
10021 (pygo (string-append
10022 (assoc-ref inputs "python-pygobject") site))
10023 (python-wrap
10024 `("PYTHONPATH" = (,evdev ,pygo))))
10025 (wrap-program (string-append out "/bin/" "ratbagctl")
10026 python-wrap)
10027 #t))))))
10028 (native-inputs
10029 `(("check" ,check)
10030 ("pkg-config" ,pkg-config)
10031 ("swig" ,swig)
10032 ("valgrind" ,valgrind)))
10033 (inputs
10034 `(("glib" ,glib)
10035 ("json-glib" ,json-glib)
10036 ("libevdev" ,libevdev)
10037 ("libsystemd" ,elogind)
10038 ("libunistring" ,libunistring)
10039 ("python-evdev" ,python-evdev)
10040 ("python-pygobject" ,python-pygobject)
10041 ("udev" ,eudev)))
10042 (home-page "https://github.com/libratbag/libratbag")
10043 (synopsis "DBus daemon and utility for configuring gaming mice")
10044 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10045configure input devices, mainly gaming mice. The daemon provides a generic
10046way to access the various features exposed by these mice and abstracts away
10047hardware-specific and kernel-specific quirks. There is also the
10048@command{ratbagctl} command line interface for configuring devices.
10049
10050libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10051Steelseries.
10052
10053The ratbagd DBus service can be enabled by adding the following service to
10054your operating-system definition:
10055
10056 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10057 (license license:expat)))
10058
50d31a40
BT
10059(define-public piper
10060 (package
10061 (name "piper")
10062 (version "0.4")
10063 (source
10064 (origin
10065 (method git-fetch)
10066 (uri (git-reference
10067 (url "https://github.com/libratbag/piper.git")
10068 (commit version)))
10069 (sha256
10070 (base32 "17h06j8lxpbfygq8fzycl7lml4vv7r05bsyhh3gga2hp0zms4mvg"))))
10071 (build-system meson-build-system)
10072 (native-inputs
10073 `(("gettext" ,gettext-minimal)
10074 ("glib:bin" ,glib "bin")
10075 ("gobject-introspection" ,gobject-introspection)
10076 ("pkg-config" ,pkg-config)
10077 ("python-flake8" ,python-flake8)))
10078 (inputs
10079 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10080 ("gtk" ,gtk+)
10081 ("gtk:bin" ,gtk+ "bin")
10082 ("librsvg" ,librsvg)
10083 ("python-evdev" ,python-evdev)
10084 ("python-lxml" ,python-lxml)
10085 ("python-pycairo" ,python-pycairo)
10086 ("python-pygobject" ,python-pygobject)))
10087 (arguments
10088 `(#:imported-modules ((guix build python-build-system)
10089 ,@%meson-build-system-modules)
10090 #:modules (((guix build python-build-system) #:prefix python:)
10091 (guix build meson-build-system)
10092 (guix build utils))
10093 #:phases
10094 (modify-phases %standard-phases
10095 (add-after 'unpack 'dont-update-gtk-icon-cache
10096 (lambda _
10097 (substitute* "meson.build"
10098 (("meson.add_install_script('meson_install.sh')") ""))
10099 #t))
10100 ;; TODO: Switch to wrap-script when it is fixed.
10101 (add-after 'install 'wrap-python
10102 (assoc-ref python:%standard-phases 'wrap))
10103 (add-after 'wrap-python 'wrap
10104 (lambda* (#:key outputs #:allow-other-keys)
10105 (wrap-program
10106 (string-append (assoc-ref outputs "out" )"/bin/piper")
10107 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10108 #t)))))
10109 (home-page "https://github.com/libratbag/piper/")
10110 (synopsis "Configure bindings and LEDs on gaming mice")
10111 (description "Piper is a GTK+ application for configuring gaming mice with
10112onboard configuration for key bindings via libratbag. Piper requires
10113a @command{ratbagd} daemon running with root privileges. It can be run
10114manually as root, but is preferably configured as a DBus service that can
10115launch on demand. This can be configured by enabling the following service,
10116provided there is a DBus service present:
10117
10118 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10119 (license license:gpl2)))
10120
1a17d21b
NG
10121(define-public parlatype
10122 ;; This is one commit away from 2.0, because the latter introduced
10123 ;; a regression in ASR.
10124 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10125 (revision "0"))
10126 (package
10127 (name "parlatype")
10128 (version (git-version "2.0" revision commit))
10129 (source
10130 (origin
10131 (method git-fetch)
10132 (uri (git-reference
10133 (url "https://github.com/gkarsay/parlatype.git")
10134 (commit commit)))
10135 (file-name (git-file-name name version))
10136 (sha256
10137 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10138 (build-system meson-build-system)
10139 (arguments
10140 `(#:glib-or-gtk? #t
10141 #:tests? #f ;require internet access
10142 #:phases
10143 (modify-phases %standard-phases
10144 (add-after 'install 'wrap-parlatype
10145 ;; Add gstreamer plugin provided in this package to system's
10146 ;; plugins.
10147 (lambda* (#:key outputs #:allow-other-keys)
10148 (let* ((out (assoc-ref outputs "out"))
10149 (gst-plugin-path (string-append
10150 out "/lib/gstreamer-1.0/"
10151 ":"
10152 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10153 (wrap-program (string-append out "/bin/parlatype")
10154 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10155 #t)))))
10156 (native-inputs
10157 `(("appstream-glib" ,appstream-glib)
10158 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10159 ("gettext" ,gettext-minimal)
10160 ("glib" ,glib "bin") ;for glib-compile-resources
10161 ("pkg-config" ,pkg-config)
10162 ("yelp-tools" ,yelp-tools)))
10163 (inputs
10164 `(("gst-plugins-base" ,gst-plugins-base)
10165 ("gst-plugins-good" ,gst-plugins-good)
10166 ("gstreamer" ,gstreamer)
10167 ("gtk+" ,gtk+)
10168 ("pocketsphinx" ,pocketsphinx)
10169 ("pulseaudio" ,pulseaudio)
10170 ("sphinxbase" ,sphinxbase)))
10171 (home-page "http://gkarsay.github.io/parlatype/")
10172 (synopsis "GNOME audio player for transcription")
10173 (description "Parlatype is an audio player for the GNOME desktop
10174environment. Its main purpose is the manual transcription of spoken
10175audio files.")
10176 (license license:gpl3+))))
95856a6e
AT
10177
10178(define-public jsonrpc-glib
10179 (package
10180 (name "jsonrpc-glib")
10181 (version "3.34.0")
10182 (source (origin
10183 (method url-fetch)
10184 (uri (string-append "mirror://gnome/sources/" name "/"
10185 (version-major+minor version) "/"
10186 name "-" version ".tar.xz"))
10187 (sha256
10188 (base32
10189 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10190 (build-system meson-build-system)
10191 (inputs
10192 `(("json-glib" ,json-glib)
10193 ("glib" ,glib)))
10194 (native-inputs
10195 `(("pkg-config" ,pkg-config)
10196 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10197 ("gobject-introspection" ,gobject-introspection)
10198 ("vala" ,vala)))
10199 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10200 (synopsis "JSON-RPC library for GLib")
10201 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10202peers in either a synchronous or asynchronous fashion. It also allows
10203communicating using the GVariant serialization format instead of JSON when
10204both peers support it. You might want that when communicating on a single
10205host to avoid parser overhead and memory-allocator fragmentation.")
10206 (license license:lgpl2.1+)))