gnu: lcalc: Don't rename the include directory.
[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>
3c986a7d 22;;; Copyright © 2016, 2017 Nikita <nikita@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>
0faed399 46;;; Copyright © 2019, 2020 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>
663def11 53;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
21051eb7 54;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
01c22be7 55;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
031315e4 56;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
995b7261
AE
57;;;
58;;; This file is part of GNU Guix.
59;;;
60;;; GNU Guix is free software; you can redistribute it and/or modify it
61;;; under the terms of the GNU General Public License as published by
62;;; the Free Software Foundation; either version 3 of the License, or (at
63;;; your option) any later version.
64;;;
65;;; GNU Guix is distributed in the hope that it will be useful, but
66;;; WITHOUT ANY WARRANTY; without even the implied warranty of
67;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
68;;; GNU General Public License for more details.
69;;;
70;;; You should have received a copy of the GNU General Public License
71;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
72
73(define-module (gnu packages gnome)
ed19903d 74 #:use-module (gnu packages)
ba5dd105 75 #:use-module (gnu packages admin)
411ba511 76 #:use-module (gnu packages aspell)
75016d07 77 #:use-module (gnu packages autotools)
7b212526 78 #:use-module (gnu packages avahi)
b29909b4 79 #:use-module (gnu packages backup)
6a180f6f 80 #:use-module (gnu packages base)
1e33331c 81 #:use-module (gnu packages bash)
5698b8b8 82 #:use-module (gnu packages bison)
aa51d92c 83 #:use-module (gnu packages boost)
5fc9b6c1 84 #:use-module (gnu packages build-tools)
df217748 85 #:use-module (gnu packages calendar)
b29909b4 86 #:use-module (gnu packages cdrom)
df12f04a 87 #:use-module (gnu packages check)
d61a894b 88 #:use-module (gnu packages cmake)
b29909b4 89 #:use-module (gnu packages compression)
8f523eb9 90 #:use-module (gnu packages crates-io)
23a22af6 91 #:use-module (gnu packages cups)
6e1bb642 92 #:use-module (gnu packages curl)
c3f29bc9 93 #:use-module (gnu packages cyrus-sasl)
6e1bb642 94 #:use-module (gnu packages databases)
255d1bbe 95 #:use-module (gnu packages dbm)
c769cf9f 96 #:use-module (gnu packages djvu)
ba5dd105 97 #:use-module (gnu packages dns)
b4ce6300 98 #:use-module (gnu packages docbook)
b29909b4 99 #:use-module (gnu packages documentation)
329d731b 100 #:use-module (gnu packages enchant)
b29909b4
TGR
101 #:use-module (gnu packages flex)
102 #:use-module (gnu packages fonts)
e762d943 103 #:use-module (gnu packages file-systems)
a56be436 104 #:use-module (gnu packages fontutils)
b29909b4 105 #:use-module (gnu packages freedesktop)
dfc407f3 106 #:use-module (gnu packages game-development)
fed5a689 107 #:use-module (gnu packages gettext)
b29909b4
TGR
108 #:use-module (gnu packages ghostscript)
109 #:use-module (gnu packages gl)
995b7261 110 #:use-module (gnu packages glib)
c1354b90 111 #:use-module (gnu packages gnupg)
23a22af6 112 #:use-module (gnu packages gnuzilla)
8d8c6bff 113 #:use-module (gnu packages geo)
b29909b4
TGR
114 #:use-module (gnu packages gperf)
115 #:use-module (gnu packages graphviz)
85f5dc19 116 #:use-module (gnu packages gstreamer)
d9c1a22b 117 #:use-module (gnu packages gtk)
6b888eff 118 #:use-module (gnu packages guile)
b645146f 119 #:use-module (gnu packages ibus)
03be9874 120 #:use-module (gnu packages icu4c)
b29909b4
TGR
121 #:use-module (gnu packages image)
122 #:use-module (gnu packages imagemagick)
123 #:use-module (gnu packages inkscape)
9cc98f8a 124 #:use-module (gnu packages iso-codes)
b29909b4 125 #:use-module (gnu packages kerberos)
85f5dc19 126 #:use-module (gnu packages libcanberra)
b64e217f 127 #:use-module (gnu packages libunistring)
0e26c3cf 128 #:use-module (gnu packages libunwind)
75016d07 129 #:use-module (gnu packages libusb)
b29909b4 130 #:use-module (gnu packages linux)
4e3fc547 131 #:use-module (gnu packages lirc)
7b212526 132 #:use-module (gnu packages lua)
b29909b4 133 #:use-module (gnu packages mail)
03be9874 134 #:use-module (gnu packages mp3)
b29909b4 135 #:use-module (gnu packages multiprecision)
64fce637 136 #:use-module (gnu packages music)
b29909b4
TGR
137 #:use-module (gnu packages ncurses)
138 #:use-module (gnu packages nettle)
ba5dd105 139 #:use-module (gnu packages networking)
5fc9b6c1 140 #:use-module (gnu packages ninja)
aff0cce9 141 #:use-module (gnu packages nss)
b29909b4 142 #:use-module (gnu packages openldap)
b645146f 143 #:use-module (gnu packages password-utils)
de1215e2 144 #:use-module (gnu packages pcre)
b29909b4 145 #:use-module (gnu packages pdf)
27477d2d 146 #:use-module (gnu packages perl)
f70d8383 147 #:use-module (gnu packages photo)
53c41e95 148 #:use-module (gnu packages php)
995b7261 149 #:use-module (gnu packages pkg-config)
b29909b4
TGR
150 #:use-module (gnu packages polkit)
151 #:use-module (gnu packages popt)
7d3bb433 152 #:use-module (gnu packages pretty-print)
23a22af6 153 #:use-module (gnu packages pulseaudio)
995b7261 154 #:use-module (gnu packages python)
00014781
RW
155 #:use-module (gnu packages python-crypto)
156 #:use-module (gnu packages python-web)
44d10b1f 157 #:use-module (gnu packages python-xyz)
cce0da5e 158 #:use-module (gnu packages rdesktop)
b29909b4 159 #:use-module (gnu packages readline)
a76d0f03 160 #:use-module (gnu packages ruby)
ec47c07d 161 #:use-module (gnu packages rust)
b29909b4 162 #:use-module (gnu packages samba)
75016d07 163 #:use-module (gnu packages scanner)
240cee8a 164 #:use-module (gnu packages selinux)
c27e02bf 165 #:use-module (gnu packages slang)
b29909b4
TGR
166 #:use-module (gnu packages speech)
167 #:use-module (gnu packages spice)
cd0322a3 168 #:use-module (gnu packages sqlite)
4a1bf090 169 #:use-module (gnu packages ssh)
2cd1de32 170 #:use-module (gnu packages swig)
8f9ac901 171 #:use-module (gnu packages tex)
33dc54b0 172 #:use-module (gnu packages time)
a7fd7b68 173 #:use-module (gnu packages tls)
2cd1de32 174 #:use-module (gnu packages valgrind)
3c5dbd2b 175 #:use-module (gnu packages version-control)
b29909b4 176 #:use-module (gnu packages video)
59132b80 177 #:use-module (gnu packages virtualization)
f2b96b3a 178 #:use-module (gnu packages vpn)
a18f8eaf 179 #:use-module (gnu packages web)
b29909b4
TGR
180 #:use-module (gnu packages webkit)
181 #:use-module (gnu packages xdisorg)
182 #:use-module (gnu packages xiph)
183 #:use-module (gnu packages xml)
d633f2f6 184 #:use-module (gnu packages xorg)
a76d0f03 185 #:use-module (gnu artwork)
43b6b45e 186 #:use-module ((guix build utils) #:select (modify-phases))
8f523eb9 187 #:use-module (guix build-system cargo)
b29909b4
TGR
188 #:use-module (guix build-system cmake)
189 #:use-module (guix build-system glib-or-gtk)
190 #:use-module (guix build-system gnu)
191 #:use-module (guix build-system meson)
08be02be 192 #:use-module (guix build-system python)
b29909b4
TGR
193 #:use-module (guix build-system trivial)
194 #:use-module (guix download)
195 #:use-module (guix git-download)
196 #:use-module ((guix licenses) #:prefix license:)
197 #:use-module (guix packages)
198 #:use-module (guix utils)
a76d0f03 199 #:use-module (guix gexp)
8f523eb9
EF
200 #:use-module (guix monads)
201 #:use-module (guix store)
4e3fdeb7 202 #:use-module (ice-9 match)
c024ae36 203 #:use-module (srfi srfi-1))
85f5dc19
AE
204
205(define-public brasero
206 (package
207 (name "brasero")
e2bf423a 208 (version "3.12.2")
85f5dc19
AE
209 (source (origin
210 (method url-fetch)
d1df7554 211 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 212 (version-major+minor version) "/"
d1df7554 213 "brasero-" version ".tar.xz"))
85f5dc19
AE
214 (sha256
215 (base32
e2bf423a 216 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 217 (build-system glib-or-gtk-build-system)
e8627cd9
DH
218 (arguments
219 `(#:configure-flags (list
220 (string-append "--with-girdir="
221 (assoc-ref %outputs "out")
222 "/share/gir-1.0")
223 (string-append "--with-typelibdir="
224 (assoc-ref %outputs "out")
ce426deb
TD
225 "/lib/girepository-1.0"))
226 #:phases
227 (modify-phases %standard-phases
228 (add-before 'configure 'embed-growisofs
229 (lambda* (#:key inputs #:allow-other-keys)
230 (substitute* "plugins/growisofs/burn-growisofs.c"
231 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 232 #t)))))
85f5dc19
AE
233 (propagated-inputs
234 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
235 (native-inputs
236 `(("intltool" ,intltool)
ba549e17 237 ("itstool" ,itstool)
426adbe8 238 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 239 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 240 ("pkg-config" ,pkg-config)))
85f5dc19 241 (inputs
ce426deb
TD
242 `(("dvd+rw-tools" ,dvd+rw-tools)
243 ("glib" ,glib)
85f5dc19
AE
244 ("gnome-doc-utils" ,gnome-doc-utils)
245 ("gstreamer" ,gstreamer)
246 ("gst-plugins-base" ,gst-plugins-base)
247 ("gtk+" ,gtk+)
85f5dc19
AE
248 ("libcanberra" ,libcanberra)
249 ("libice" ,libice)
250 ("libnotify" ,libnotify)
251 ("libsm" ,libsm)
e8627cd9 252 ("libxml2" ,libxml2)
e8627cd9 253 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 254 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
255 (synopsis "CD/DVD burning tool for Gnome")
256 (description "Brasero is an application to burn CD/DVD for the Gnome
257Desktop. It is designed to be as simple as possible and has some unique
258features to enable users to create their discs easily and quickly.")
1dd26275 259 (license license:gpl2+)))
995b7261 260
a3cbcbaf
RG
261(define-public notification-daemon
262 (package
263 (name "notification-daemon")
264 (version "3.20.0")
265 (source
266 (origin
267 (method url-fetch)
268 (uri
269 (string-append "mirror://gnome/sources/" name "/"
270 (version-major+minor version) "/"
271 name "-" version ".tar.xz"))
272 (sha256
273 (base32
274 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
275 (build-system glib-or-gtk-build-system)
276 (native-inputs
277 `(("intltool" ,intltool)
278 ("pkg-config" ,pkg-config)))
279 (inputs
280 `(("glib" ,glib)
281 ("gtk+" ,gtk+)
282 ("x11" ,libx11)))
283 (synopsis "Notification Daemon for GNOME Desktop")
284 (description "Notification-Daemon is the server implementation of the
285freedesktop.org desktop notification specification.")
286 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
287 (license license:gpl2+)))
288
4e8bdbf8
RG
289(define-public mm-common
290 (package
291 (name "mm-common")
553f2f3f 292 (version "1.0.1")
4e8bdbf8
RG
293 (source (origin
294 (method url-fetch)
02cb4ca7 295 (uri (string-append "mirror://gnome/sources/mm-common/"
4e8bdbf8 296 (version-major+minor version) "/"
02cb4ca7 297 "mm-common-" version ".tar.xz"))
4e8bdbf8
RG
298 (sha256
299 (base32
553f2f3f 300 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
4e8bdbf8
RG
301 (build-system meson-build-system)
302 (arguments
303 `(#:phases
304 (modify-phases %standard-phases
305 (add-after 'unpack 'patch
306 (lambda* (#:key inputs #:allow-other-keys)
307 (substitute* "util/mm-common-prepare.in"
308 (("ln") (string-append (assoc-ref inputs "coreutils")
309 "/bin/ln"))
310 (("cp") (string-append (assoc-ref inputs "coreutils")
311 "/bin/cp"))
312 (("sed") (string-append (assoc-ref inputs "sed")
313 "/bin/sed"))
314 (("cat") (string-append (assoc-ref inputs "coreutils")
315 "/bin/cat")))
316 #t)))))
317 (native-inputs
4e8bdbf8 318 `(("coreutils" ,coreutils)
74a65885
DM
319 ("gettext" ,gettext-minimal)
320 ("pkg-config" ,pkg-config)
4e8bdbf8 321 ("sed" ,sed)))
74a65885
DM
322 (inputs
323 `(("python" ,python)))
4e8bdbf8
RG
324 (synopsis "Module of GNOME C++ bindings")
325 (description "The mm-common module provides the build infrastructure
326and utilities shared among the GNOME C++ binding libraries. Release
327archives of mm-common include the Doxygen tag file for the GNU C++
328Library reference documentation.")
329 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
330 (license license:gpl2+)))
331
e05ce17d
RG
332(define-public phodav
333 (package
334 (name "phodav")
335 (version "2.4")
336 (source (origin
337 (method url-fetch)
338 (uri (string-append "mirror://gnome/sources/" name "/"
339 (version-major+minor version) "/"
340 name "-" version ".tar.xz"))
341 (sha256
342 (base32
343 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
344 (build-system meson-build-system)
345 (native-inputs
346 `(("gettext" ,gettext-minimal)
347 ("glib:bin" ,glib "bin")
348 ("gtk-doc" ,gtk-doc)
349 ("pkg-config" ,pkg-config)))
350 (inputs
351 `(("avahi" ,avahi)
352 ("libgudev" ,libgudev)
353 ("libsoup" ,libsoup)))
354 (synopsis "WebDav server implementation using libsoup")
355 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
356but it is generic enough to be reused in other projects,
357in particular in the GNOME desktop.")
358 (home-page "https://wiki.gnome.org/phodav")
359 (license license:lgpl2.1+)))
360
29ae18db
RG
361(define-public gnome-color-manager
362 (package
363 (name "gnome-color-manager")
364 (version "3.32.0")
365 (source (origin
366 (method url-fetch)
367 (uri (string-append "mirror://gnome/sources/" name "/"
368 (version-major+minor version) "/"
369 name "-" version ".tar.xz"))
370 (sha256
371 (base32
372 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
373 (build-system meson-build-system)
374 (arguments
375 `(#:glib-or-gtk? #t
376 #:phases
377 (modify-phases %standard-phases
378 (add-before
379 'check 'pre-check
380 (lambda _
381 ;; Tests require a running X server.
382 (system "Xvfb :1 &")
383 (setenv "DISPLAY" ":1")
384 #t)))))
385 (native-inputs
386 `(("desktop-file-utils" ,desktop-file-utils)
387 ("gettext" ,gettext-minimal)
388 ("glib:bin" ,glib "bin")
389 ("gtk+:bin" ,gtk+ "bin")
390 ("itstool" ,itstool)
391 ("pkg-config" ,pkg-config)
392 ("xorg-server" ,xorg-server-for-tests)))
393 (inputs
394 `(("adwaita-icon-theme" ,adwaita-icon-theme)
395 ("appstream-glib" ,appstream-glib)
396 ("colord-gtk" ,colord-gtk)
397 ("exiv2" ,exiv2)
398 ("gnome-desktop" ,gnome-desktop)
399 ("libcanberra" ,libcanberra)
400 ("libexif" ,libexif)
401 ("libtiff" ,libtiff)
402 ("libxrandr" ,libxrandr)
403 ("libxtst" ,libxtst)
404 ("libxxf86vm" ,libxxf86vm)
405 ("vte" ,vte)
406 ("xorgproto" ,xorgproto)))
407 (synopsis "Color profile manager for the GNOME desktop")
408 (description "GNOME Color Manager is a session framework that makes
409it easy to manage, install and generate color profiles
410in the GNOME desktop.")
411 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 412 (license license:gpl2+)))
29ae18db 413
e05471a1
RG
414(define-public gnome-online-miners
415 (package
416 (name "gnome-online-miners")
49dcd7fc 417 (version "3.34.0")
e05471a1
RG
418 (source (origin
419 (method url-fetch)
420 (uri (string-append "mirror://gnome/sources/" name "/"
421 (version-major+minor version) "/"
422 name "-" version ".tar.xz"))
423 (sha256
424 (base32
49dcd7fc 425 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
e05471a1
RG
426 (build-system glib-or-gtk-build-system)
427 (native-inputs
428 `(("gettext" ,gettext-minimal)
429 ("glib:bin" ,glib "bin")
29ae18db 430 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
431 ("gtk+:bin" ,gtk+ "bin")
432 ("pkg-config" ,pkg-config)))
433 (inputs
434 `(("gnome-online-accounts" ,gnome-online-accounts)
435 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
436 ("grilo" ,grilo)
437 ("libgdata" ,libgdata)
438 ("libgfbgraph" ,gfbgraph)
439 ("libzapojit" ,libzapojit)
440 ("rest" ,rest)
441 ("tracker" ,tracker)))
442 (synopsis "Web Crawlers for GNOME")
443 (description "GNOME Online Miners provides a set of crawlers that
444go through your online content and index them locally in Tracker.
445It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
446 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 447 (license license:gpl2+)))
e05471a1 448
e2aed29c
RG
449(define-public gssdp
450 (package
451 (name "gssdp")
452 (version "1.2.2")
453 (source (origin
454 (method url-fetch)
455 (uri (string-append "mirror://gnome/sources/" name "/"
456 (version-major+minor version) "/"
457 name "-" version ".tar.xz"))
458 (sha256
459 (base32
460 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
461 (build-system meson-build-system)
462 (native-inputs
463 `(("gettext" ,gettext-minimal)
464 ("glib:bin" ,glib "bin")
465 ("gobject-introspection" ,gobject-introspection)
466 ("gtk-doc" ,gtk-doc)
467 ("pkg-config" ,pkg-config)
468 ("vala" ,vala)))
469 (inputs
470 `(("gtk+" ,gtk+)
471 ("libsoup" ,libsoup)))
472 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
473Protocol} for GNOME")
474 (description "This package provides a library to handle resource discovery
475and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
476a debugging tool, @command{gssdp-device-sniffer}.")
477 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
478 (license license:lgpl2.0+)))
479
291a85b2
RG
480(define-public gupnp
481 (package
482 (name "gupnp")
483 (version "1.2.2")
484 (source (origin
485 (method url-fetch)
486 (uri (string-append "mirror://gnome/sources/" name "/"
487 (version-major+minor version) "/"
488 name "-" version ".tar.xz"))
489 (sha256
490 (base32
491 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
492 (build-system meson-build-system)
493 (native-inputs
494 `(("gettext" ,gettext-minimal)
495 ("glib:bin" ,glib "bin")
496 ("gobject-introspection" ,gobject-introspection)
497 ("gtk-doc" ,gtk-doc)
498 ("pkg-config" ,pkg-config)
499 ("vala" ,vala)))
500 (inputs
501 `(("gssdp" ,gssdp)
502 ("gtk+" ,gtk+)
503 ("libsoup" ,libsoup)))
504 (synopsis "PnP API for GNOME")
505 (description "This package provides GUPnP, an object-oriented framework
506for creating UPnP devices and control points, written in C using
507@code{GObject} and @code{libsoup}.")
508 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
509 (license license:lgpl2.0+)))
510
747d7fe4
RG
511(define-public gupnp-dlna
512 (package
513 (name "gupnp-dlna")
514 (version "0.10.5")
515 (source (origin
516 (method url-fetch)
517 (uri (string-append "mirror://gnome/sources/" name "/"
518 (version-major+minor version) "/"
519 name "-" version ".tar.xz"))
520 (sha256
521 (base32
522 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
523 (build-system gnu-build-system)
524 (native-inputs
525 `(("gettext" ,gettext-minimal)
526 ("glib:bin" ,glib "bin")
527 ("gobject-introspection" ,gobject-introspection)
528 ("gtk-doc" ,gtk-doc)
529 ("libxml" ,libxml2)
530 ("pkg-config" ,pkg-config)
531 ("vala" ,vala)))
532 (inputs
533 `(("gstreamer" ,gstreamer)
534 ("gupnp" ,gupnp)))
535 (propagated-inputs
536 `(("gst-plugins-base" ,gst-plugins-base)
537 ("gst-plugins-good" ,gst-plugins-good)))
538 (synopsis "GUPnP DLNA for GNOME")
539 (description "This package provides a small utility library to
540support DLNA-related tasks such as media profile guessing, transcoding to a
541given profile, etc. DLNA is a subset of UPnP A/V.")
542 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
543 (license license:lgpl2.0+)))
544
1b4cb628
RG
545(define-public gupnp-av
546 (package
547 (name "gupnp-av")
548 (version "0.12.11")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
557 (build-system gnu-build-system)
558 (native-inputs
559 `(("gettext" ,gettext-minimal)
560 ("glib:bin" ,glib "bin")
561 ("gobject-introspection" ,gobject-introspection)
562 ("gtk-doc" ,gtk-doc)
563 ("libxml" ,libxml2)
564 ("pkg-config" ,pkg-config)))
565 (inputs
566 `(("gtk+" ,gtk+)
567 ("gupnp" ,gupnp)))
568 (synopsis "GUPnP A/V for GNOME")
569 (description "This package provides a small library for handling
570and implementation of UPnP A/V profiles.")
571 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
572 (license license:lgpl2.0+)))
e05471a1 573
02ebbca8
RG
574(define-public libmediaart
575 (package
576 (name "libmediaart")
577 (version "1.9.4")
578 (source (origin
579 (method url-fetch)
580 (uri (string-append "mirror://gnome/sources/" name "/"
581 (version-major+minor version) "/"
582 name "-" version ".tar.xz"))
583 (sha256
584 (base32
585 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
586 (build-system gnu-build-system)
587 (native-inputs
588 `(("glib:bin" ,glib "bin")
589 ("pkg-config" ,pkg-config)))
590 (inputs
591 `(("gdk-pixbuf" ,gdk-pixbuf)
592 ("gettext" ,gettext-minimal)
593 ("gobject-introspection" ,gobject-introspection)
594 ("gtk+:doc", gtk+ "doc")
595 ("vala" ,vala)))
596 (synopsis "Media art library for the GNOME desktop")
597 (description
598 "The libmediaart library is the foundation for media art caching,
599extraction, and lookup for applications on the desktop.")
600 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
601 (license license:lgpl2.1+)))
602
a26680eb
RG
603(define-public gnome-initial-setup
604 (package
605 (name "gnome-initial-setup")
606 (version "3.32.1")
607 (source (origin
608 (method url-fetch)
609 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
610 (version-major+minor version)
611 "/gnome-initial-setup-" version ".tar.xz"))
612 (sha256
613 (base32
614 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
615 (build-system meson-build-system)
616 (arguments
a65cc579
DM
617 '(#:configure-flags '(;; Enable camera support for user selfie.
618 "-Dcheese=auto"
c627e2cb
LC
619 "-Dsystemd=false")
620 #:phases (modify-phases %standard-phases
621 (add-after 'unpack 'set-gkbd-file-name
622 (lambda* (#:key inputs #:allow-other-keys)
623 ;; Allow the "Preview" button in the keyboard layout
624 ;; selection dialog to display the layout.
625 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
626 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
627 (("\"gkbd-keyboard-display")
628 (string-append "\"" libgnomekbd
629 "/bin/gkbd-keyboard-display")))
630 #t))))))
a26680eb
RG
631 (native-inputs
632 `(("gettext" ,gettext-minimal)
633 ("glib:bin" ,glib "bin")
634 ("gobject-introspection" ,gobject-introspection)
635 ("gtk+:bin" ,gtk+ "bin")
636 ("pkg-config" ,pkg-config)))
637 (inputs
638 `(("accountsservice" ,accountsservice)
639 ;("adwaita-icon-theme" ,adwaita-icon-theme)
640 ("gdm" ,gdm)
641 ("geoclue" ,geoclue)
642 ("gnome-desktop" ,gnome-desktop)
643 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
644 ("gnome-online-accounts" ,gnome-online-accounts)
645 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
646 ("gstreamer" ,gstreamer)
647 ("ibus" ,ibus)
648 ("json-glib" ,json-glib)
649 ("krb5" ,mit-krb5)
650 ("libgweather" ,libgweather)
8d9477b8 651 ("libnma" ,libnma)
a26680eb
RG
652 ("libsecret" ,libsecret)
653 ("network-manager" ,network-manager)
a26680eb
RG
654 ("packagekit" ,packagekit)
655 ("polkit" ,polkit)
656 ("pwquality" ,libpwquality)
657 ("rest" ,rest)
658 ("upower" ,upower)
c627e2cb
LC
659 ("webkitgtk" ,webkitgtk)
660 ("libgnomekbd" ,libgnomekbd)))
a26680eb 661 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
662 (description "This package provides a set-up wizard when a
663user logs into GNOME for the first time. It typically provides a
664tour of all gnome components and allows the user to set them up.")
a26680eb
RG
665 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
666 (license license:gpl2)))
667
b5f01392
RG
668(define-public gnome-user-share
669 (package
670 (name "gnome-user-share")
671 (version "3.33.1")
672 (source (origin
673 (method url-fetch)
674 (uri (string-append "mirror://gnome/sources/" name "/"
675 (version-major+minor version) "/"
676 name "-" version ".tar.xz"))
677 (sha256
678 (base32
679 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
680 (build-system meson-build-system)
681 (arguments
682 `(#:glib-or-gtk? #t
683 #:configure-flags
684 `("-Dsystemd=false"
685 ;; Enable nautilus extension for file sharing.
686 "-Dnautilus_extension=true")))
687 (native-inputs
688 `(("gettext" ,gettext-minimal)
689 ("glib:bin" ,glib "bin")
690 ("gobject-introspection" ,gobject-introspection)
691 ("gtk+:bin" ,gtk+ "bin")
692 ("pkg-config" ,pkg-config)
693 ("yelp-tools" ,yelp-tools)))
694 (inputs
695 `(("glib" ,glib)
696 ("gnome-bluetooth" ,gnome-bluetooth)
697 ("gtk+" ,gtk+)
698 ("libcanberra" ,libcanberra)
699 ("libnotify" ,libnotify)
700 ("nautilus" ,nautilus))) ; For nautilus extension.
701 (synopsis "File sharing for GNOME desktop")
702 (description "GNOME User Share is a small package that binds together
703various free software projects to bring easy to use user-level file
704sharing to the masses.")
705 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 706 (license license:gpl2+)))
b5f01392 707
04b201bb
RG
708(define-public sushi
709 (package
710 (name "sushi")
711 (version "3.32.1")
712 (source (origin
713 (method url-fetch)
714 (uri (string-append "mirror://gnome/sources/" name "/"
715 (version-major+minor version) "/"
716 name "-" version ".tar.xz"))
717 (sha256
718 (base32
719 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
720 (build-system meson-build-system)
721 (arguments
722 `(#:glib-or-gtk? #t
723 #:phases
724 (modify-phases %standard-phases
725 (add-after 'glib-or-gtk-wrap 'wrap-typelib
726 (lambda* (#:key outputs #:allow-other-keys)
727 (let ((prog (string-append (assoc-ref outputs "out")
728 "/bin/sushi")))
729 ;; Put existing typelibs before sushi's deps, so as to correctly
730 ;; infer gdk-pixbuf
731 (wrap-program prog
732 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
733 #t))))))
734 (native-inputs
735 `(("glib:bin" ,glib "bin")
736 ("gettext" ,gettext-minimal)
737 ("gobject-introspection" ,gobject-introspection)
738 ("pkg-config" ,pkg-config)))
739 (inputs
740 `(("clutter" ,clutter)
741 ("clutter-gst" ,clutter-gst)
742 ("clutter-gtk" ,clutter-gtk)
743 ("evince" ,evince) ; For file previewing.
744 ("freetype" ,freetype)
745 ("gdk-pixbuf" ,gdk-pixbuf)
746 ("gjs" ,gjs)
747 ("gst-plugins-base" ,gst-plugins-base)
748 ("gstreamer" ,gstreamer)
749 ("gtksourceview" ,gtksourceview-3)
750 ("harfbuzz" ,harfbuzz)
751 ("libepoxy" ,libepoxy)
752 ("libmusicbrainz" ,libmusicbrainz)
753 ("libxml2" ,libxml2)
754 ("neon" ,neon)
755 ("webkitgtk" ,webkitgtk)))
756 (synopsis "File previewer for the GNOME desktop")
757 (description "Sushi is a DBus-activated service that allows applications to
758preview files on the GNOME desktop.")
759 (home-page "https://gitlab.gnome.org/GNOME/sushi")
760 (license license:gpl2+)))
761
89af0902
RG
762(define-public rygel
763 (package
764 (name "rygel")
765 (version "0.38.3")
766 (source (origin
767 (method url-fetch)
768 (uri (string-append "mirror://gnome/sources/" name "/"
769 (version-major+minor version) "/"
770 name "-" version ".tar.xz"))
771 (sha256
772 (base32
773 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
774 (build-system gnu-build-system)
775 (native-inputs
776 `(("gettext" ,gettext-minimal)
777 ("gobject-introspection" ,gobject-introspection)
778 ("gtk-doc" ,gtk-doc)
779 ("pkg-config" ,pkg-config)
780 ("vala" ,vala)))
781 (inputs
782 `(("gdk-pixbuf" ,gdk-pixbuf)
783 ("gssdp" ,gssdp)
784 ("gstreamer" ,gstreamer)
785 ("gst-plugins-base" ,gst-plugins-base)
786 ("gtk+" ,gtk+)
787 ("gupnp" ,gupnp)
788 ("gupnp-av" ,gupnp-av)
789 ("gupnp-dlna" ,gupnp-dlna)
790 ("libgee" ,libgee)
791 ("libmediaart" ,libmediaart)
792 ("libsoup" ,libsoup)
793 ("libxslt" ,libxslt)
794 ("libunistring" ,libunistring)
795 ("tracker" ,tracker)))
796 (synopsis "Share audio, video, and pictures with other devices")
797 (description
798 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
799MediaRenderer}) for GNOME that allows you to easily share audio, video, and
800pictures, and to control a media player on your home network.
801
802Rygel achieves interoperability with other devices by trying to conform to the
803strict requirements of DLNA and by converting media on-the-fly to formats that
804client devices can handle.")
805 (home-page "https://wiki.gnome.org/Projects/Rygel")
806 (license (list
807 ;; For logo (data/icons/*).
808 license:cc-by-sa3.0
809 ;; For all others.
810 license:lgpl2.1+))))
811
47e87093
RG
812(define-public libnma
813 (package
b1da33d9
BW
814 (name "libnma")
815 (version "1.8.28")
816 (source (origin
817 (method url-fetch)
818 (uri (string-append "mirror://gnome/sources/" name "/"
819 (version-major+minor version) "/"
820 name "-" version ".tar.xz"))
821 (sha256
822 (base32
823 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
824 (build-system meson-build-system)
825 (arguments
826 `(#:phases
827 (modify-phases %standard-phases
828 (add-after 'unpack 'patch-docbook-xml
829 (lambda* (#:key inputs #:allow-other-keys)
830 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
831 "/xml/dtd/docbook")))
832 (substitute* "libnma-docs.xml"
833 (("http://.*/docbookx\\.dtd")
834 (string-append xmldoc "/docbookx.dtd")))
835 #t))))))
836 (native-inputs
837 `(("docbook-xml" ,docbook-xml-4.3)
838 ("gettext" ,gettext-minimal)
839 ("glib:bin" ,glib "bin")
840 ("gtk-doc" ,gtk-doc)
841 ("gobject-introspection" ,gobject-introspection)
842 ("pkg-config" ,pkg-config)
843 ("vala" ,vala)))
844 (inputs
845 `(("gcr" ,gcr)
846 ("gtk+" ,gtk+)
847 ("iso-codes" ,iso-codes)
848 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
849 ("network-manager" ,network-manager)))
850 (synopsis "Network Manager's applet library")
851 (description "Libnma is an applet library for Network Manager. It was
47e87093
RG
852initially part of network-manager-applet and has now become a separate
853project.")
c25ca6b7
BW
854 (home-page "https://gitlab.gnome.org/GNOME/libnma")
855 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
856 ;; "LGPL-2.1+".
857 (license license:gpl2+)))
47e87093 858
30416265
RG
859(define-public gnome-menus
860 (package
861 (name "gnome-menus")
862 (version "3.32.0")
863 (source (origin
864 (method url-fetch)
865 (uri (string-append "mirror://gnome/sources/gnome-menus/"
866 (version-major+minor version) "/"
867 name "-" version ".tar.xz"))
868 (sha256
869 (base32
870 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
871 (build-system gnu-build-system)
872 (native-inputs
873 `(("gettext" ,gettext-minimal)
874 ("glib" ,glib)
875 ("pkg-config" ,pkg-config)))
876 (synopsis "Menu support for GNOME desktop")
877 (description "GNOME Menus contains the libgnome-menu library, the layout
878configuration files for the GNOME menu, as well as a simple menu editor.")
879 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 880 (license license:lgpl2.0+)))
30416265 881
d61a894b
CB
882(define-public deja-dup
883 (package
884 (name "deja-dup")
899ffa13 885 (version "40.6")
d61a894b 886 (source (origin
899ffa13
BW
887 (method url-fetch)
888 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
889 version "/deja-dup-" version ".tar.bz2"))
890 (sha256
891 (base32
892 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
893 (build-system meson-build-system)
d61a894b 894 (arguments
899ffa13
BW
895 `(#:glib-or-gtk? #t
896 #:configure-flags
897 (list
898 ;; Otherwise, the RUNPATH will lack the final path component.
899 (string-append "-Dc_link_args=-Wl,-rpath="
900 (assoc-ref %outputs "out") "/lib/deja-dup"))
d61a894b
CB
901 #:phases
902 (modify-phases %standard-phases
899ffa13
BW
903 (add-after 'unpack 'patch-paths
904 (lambda* (#:key inputs #:allow-other-keys)
905 (let ((python (assoc-ref inputs "python")))
906 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
907 "libdeja/tests/scripts/instance-error.test")
908 (("/bin/rm")
909 (which "rm")))
910 (substitute* "libdeja/tests/runner.vala"
911 (("/bin/sh")
912 (which "sh")))
913 (substitute* "libdeja/tests/scripts/instance-error.test"
914 (("`which python3`")
915 (string-append python "/bin/python3"))))))
916 (add-after 'unpack 'patch-libgpg-error
917 (lambda* (#:key inputs #:allow-other-keys)
918 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
919 (substitute* "meson.build"
920 (("(gpgerror_libs = ).*" _ var)
921 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
922 #t))
923 (add-after 'unpack 'skip-gtk-update-icon-cache
924 ;; Don't create 'icon-theme.cache'.
925 (lambda _
926 (substitute* "data/post-install.sh"
927 (("gtk-update-icon-cache") "true"))
928 #t)))))
d61a894b
CB
929 (inputs
930 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
d61a894b 931 ("duplicity" ,duplicity)
899ffa13
BW
932 ("python" ,python)
933 ("python-pygobject" ,python-pygobject)
d61a894b 934 ("gtk+" ,gtk+)
899ffa13 935 ("json-glib" ,json-glib)
d61a894b 936 ("libnotify" ,libnotify)
899ffa13 937 ("libgpg-error" ,libgpg-error)
d61a894b 938 ("libsecret" ,libsecret)
899ffa13 939 ("libsoup" ,libsoup)
d61a894b
CB
940 ("packagekit" ,packagekit)))
941 (native-inputs
899ffa13
BW
942 `(("appstream-glib" ,appstream-glib)
943 ("desktop-file-utils" ,desktop-file-utils)
d61a894b 944 ("gettext" ,gettext-minimal)
899ffa13
BW
945 ("glib" ,glib "bin") ; for glib-compile-schemas.
946 ("gobject-introspection" ,gobject-introspection)
d61a894b 947 ("itstool" ,itstool)
899ffa13
BW
948 ("pkg-config" ,pkg-config)
949 ("vala" ,vala)))
950 (home-page "https://wiki.gnome.org/Apps/DejaDup")
d61a894b
CB
951 (synopsis "Simple backup tool, for regular encrypted backups")
952 (description
953 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
954uses duplicity as the backend, which supports incremental backups and storage
955either on a local, or remote machine via a number of methods.")
956 (license license:gpl3+)))
957
823b77fb
RG
958(define-public gnome-user-docs
959 (package
960 (name "gnome-user-docs")
961 (version "3.32.3")
962 (source
963 (origin
964 (method url-fetch)
965 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
966 (version-major+minor version)
967 "/gnome-user-docs-" version ".tar.xz"))
968 (sha256
969 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
970 (build-system gnu-build-system)
971 (native-inputs
972 `(("gettext" ,gettext-minimal)
973 ("itstool" ,itstool)
974 ("pkg-config" ,pkg-config)
975 ("xmllint" ,libxml2)))
976 (synopsis "User documentation for the GNOME desktop")
977 (description
978 "The GNOME User Documentation explains how to use the GNOME desktop and its
979components. It covers usage and setup of the core GNOME programs by end-users
980and system administrators.")
981 (home-page "https://live.gnome.org/DocumentationProject")
982 (license license:cc-by3.0)))
983
be93299d
RG
984(define-public gnome-getting-started-docs
985 (package
986 (name "gnome-getting-started-docs")
987 (version "3.32.2")
988 (source
989 (origin
990 (method url-fetch)
991 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
992 (version-major+minor version)
993 "/gnome-getting-started-docs-" version ".tar.xz"))
994 (sha256
995 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
996 (build-system gnu-build-system)
997 (native-inputs
998 `(("gettext" ,gettext-minimal)
999 ("itstool" ,itstool)
1000 ("pkg-config" ,pkg-config)
1001 ("xmllint" ,libxml2)))
1002 (synopsis "Help to get new users started with the GNOME desktop")
1003 (description
1004 "The GNOME Getting Started Documentation contains GNOME's intuitive
1005\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1006
1007It is normally used together with @command{gnome-initial-setup}, but is also
1008useful as a tutorial and users' guide for new or less experienced users.")
1009 (home-page "https://live.gnome.org/DocumentationProject")
1010 (license license:cc-by-sa3.0)))
1011
a56be436
RJ
1012(define-public dia
1013 ;; This version from GNOME's repository includes fixes for compiling with
1014 ;; recent versions of the build tools. The latest activity on the
1015 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
f8687cb2
TGR
1016 ;; fixes since.
1017 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1018 (revision "2"))
a56be436
RJ
1019 (package
1020 (name "dia")
f8687cb2 1021 (version (git-version "0.97.3" revision commit))
a56be436
RJ
1022 (source (origin
1023 (method git-fetch)
1024 (uri (git-reference
914c8cdf 1025 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1026 (commit commit)))
914c8cdf 1027 (file-name (git-file-name name version))
a56be436
RJ
1028 (sha256
1029 (base32
f8687cb2
TGR
1030 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1031 (build-system meson-build-system)
a56be436 1032 (inputs
f8687cb2 1033 `(("graphene" ,graphene)
a56be436
RJ
1034 ("gtk+" ,gtk+-2)
1035 ("libxml2" ,libxml2)
f8687cb2
TGR
1036 ("libxslt" ,libxslt)
1037 ("poppler" ,poppler)
1038 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1039 ;; ERROR: Unknown method "dependency" in object.
1040 ("python-2" ,python-2)))
a56be436 1041 (native-inputs
f8687cb2
TGR
1042 `(("appstream-glib" ,appstream-glib)
1043 ("docbook-xsl" ,docbook-xsl)
a315afa3 1044 ("glib" ,glib "bin")
f8687cb2
TGR
1045 ("intltool" ,intltool)
1046 ("pkg-config" ,pkg-config)))
a56be436
RJ
1047 (home-page "https://wiki.gnome.org/Apps/Dia")
1048 (synopsis "Diagram creation for GNOME")
1049 (description "Dia can be used to draw different types of diagrams, and
1050includes support for UML static structure diagrams (class diagrams), entity
1051relationship modeling, and network diagrams. The program supports various file
1052formats like PNG, SVG, PDF and EPS.")
1053 (license license:gpl2+))))
1054
d0b19e44
RW
1055;; This is the unstable release, but it is required for the current stable
1056;; release of gvfs (1.38.1).
adc5cb1b
KK
1057(define-public libgdata
1058 (package
1059 (name "libgdata")
d0b19e44 1060 (version "0.17.9")
adc5cb1b
KK
1061 (source (origin
1062 (method url-fetch)
1063 (uri (string-append "mirror://gnome/sources/" name "/"
1064 (version-major+minor version) "/"
1065 name "-" version ".tar.xz"))
1066 (sha256
1067 (base32
d0b19e44 1068 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1069 (build-system gnu-build-system)
1070 (arguments
1071 '(#:phases
1072 (modify-phases %standard-phases
448052b7
TGR
1073 (add-before 'check 'disable-failing-tests
1074 (lambda _
1075 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1076 ;; They have been removed in libgdata 0.17.6, so just do the same.
1077 (substitute* "gdata/tests/Makefile"
1078 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1079 #t)))))
1080 (native-inputs
1081 `(("glib:bin" ,glib "bin")
1082 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1083 ("intltool" ,intltool)
1084 ("pkg-config" ,pkg-config)
1085 ("uhttpmock" ,uhttpmock)))
1086 (inputs
1087 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1088 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1089 (propagated-inputs
1090 `(("gcr" ,gcr)
d0b19e44 1091 ("glib" ,glib)
14c297fd 1092 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1093 ("json-glib" ,json-glib)
adc5cb1b 1094 ("liboauth" ,liboauth)
d0b19e44 1095 ("libsoup" ,libsoup)
adc5cb1b
KK
1096 ("libxml2" ,libxml2)))
1097 (home-page "https://wiki.gnome.org/Projects/libgdata")
1098 (synopsis "Library for accessing online service APIs")
1099 (description
1100 "libgdata is a GLib-based library for accessing online service APIs using
1101the GData protocol — most notably, Google's services. It provides APIs to
1102access the common Google services, and has full asynchronous support.")
1103 (license license:lgpl2.1+)))
1104
94e10cf4
KK
1105(define-public libgxps
1106 (package
1107 (name "libgxps")
66470a5a 1108 (version "0.3.1")
94e10cf4
KK
1109 (source (origin
1110 (method url-fetch)
7f10628c 1111 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1112 (version-major+minor version) "/"
1113 name "-" version ".tar.xz"))
1114 (sha256
1115 (base32
66470a5a 1116 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1117 (build-system meson-build-system)
94e10cf4
KK
1118 (native-inputs
1119 `(("gobject-introspection" ,gobject-introspection)
1120 ("pkg-config" ,pkg-config)))
1121 (inputs
c8d62d93 1122 `(("gtk+" ,gtk+)
b6b3e512 1123 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1124 ("lcms" ,lcms)
0a6e9e13 1125 ("libtiff" ,libtiff)))
c8d62d93
MB
1126 (propagated-inputs
1127 ;; In Requires of libgxps.pc.
1128 `(("cairo" ,cairo)
1129 ("glib" ,glib)
1130 ("libarchive" ,libarchive)))
94e10cf4
KK
1131 (home-page "https://wiki.gnome.org/Projects/libgxps")
1132 (synopsis "GObject-based library for handling and rendering XPS documents")
1133 (description
1134 "libgxps is a GObject-based library for handling and rendering XPS
1135documents. This package also contains binaries that can convert XPS documents
1136to other formats.")
1137 (license license:lgpl2.1+)))
1138
4e09f57a
RG
1139(define-public gnome-characters
1140 (package
1141 (name "gnome-characters")
1142 (version "3.30.0")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri (string-append "mirror://gnome/sources/"
1147 "gnome-characters/" (version-major+minor version)
1148 "/gnome-characters-" version ".tar.xz"))
1149 (sha256
1150 (base32
1151 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1152 (build-system meson-build-system)
5757c641 1153 (arguments
1154 `(#:glib-or-gtk? #t
1155 #:phases (modify-phases %standard-phases
1156 (add-after 'install 'wrap
1157 (lambda* (#:key outputs #:allow-other-keys)
1158 ;; GNOME Characters needs Typelib files from GTK and
1159 ;; gnome-desktop.
1160 (wrap-program (string-append (assoc-ref outputs "out")
1161 "/bin/gnome-characters")
1162 `("GI_TYPELIB_PATH" ":" prefix
1163 (,(getenv "GI_TYPELIB_PATH"))))
1164 #t)))))
4e09f57a
RG
1165 (native-inputs
1166 `(("gettext" ,gettext-minimal)
1167 ("glib:bin" ,glib "bin")
1168 ("gtk+:bin" ,gtk+ "bin")
1169 ("pkg-config" ,pkg-config)
1170 ("python" ,python-minimal)))
1171 (inputs
1172 `(("gjs" ,gjs)
1173 ("gtk+" ,gtk+)
5757c641 1174 ("libunistring" ,libunistring)
1175 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1176 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1177 (synopsis "Find and insert unusual characters")
1178 (description "Characters is a simple utility application to find
1179and insert unusual characters. It allows you to quickly find the
1180character you are looking for by searching for keywords.")
1181 (license license:bsd-3)))
1182
7aab13f1
ML
1183(define-public gnome-common
1184 (package
1185 (name "gnome-common")
af83490d 1186 (version "3.18.0")
7aab13f1
ML
1187 (source
1188 (origin
1189 (method url-fetch)
1190 (uri (string-append "mirror://gnome/sources/" name "/"
1191 (version-major+minor version) "/"
1192 name "-" version ".tar.xz"))
1193 (sha256
1194 (base32
af83490d 1195 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1196 (build-system gnu-build-system)
1197 (home-page "https://www.gnome.org/")
1198 (synopsis "Bootstrap GNOME modules built from Git")
1199 (description "gnome-common contains various files needed to bootstrap
1200GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1201can be used to configure a source directory checked out from Git and some
1202commonly used macros.")
1203 (license license:gpl2+)))
1204
4e868d22
RG
1205(define-public gnome-contacts
1206 (package
1207 (name "gnome-contacts")
b3492e39 1208 (version "3.34")
4e868d22
RG
1209 (source (origin
1210 (method url-fetch)
1211 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1212 (version-major+minor version) "/"
1213 name "-" version ".tar.xz"))
1214 (sha256
1215 (base32
b3492e39 1216 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
4e868d22
RG
1217 (build-system meson-build-system)
1218 (arguments
b3492e39
KK
1219 `(#:configure-flags '("-Dcheese=false")
1220 #:phases
4e868d22
RG
1221 (modify-phases %standard-phases
1222 (add-after 'unpack 'generate-vapis
1223 (lambda* (#:key inputs #:allow-other-keys)
1224 ;; To generate goa's missing .vapi file
1225 (define goa
1226 (assoc-ref inputs "gnome-online-accounts:lib"))
1227
1228 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1229 "--library=goa-1.0"
1230 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
b3492e39
KK
1231 #t))
1232 (add-after 'unpack 'skip-gtk-update-icon-cache
1233 ;; Don't create 'icon-theme.cache'.
1234 (lambda _
1235 (substitute* "build-aux/meson_post_install.py"
1236 (("gtk-update-icon-cache") "true"))
4e868d22
RG
1237 #t)))))
1238 (native-inputs
1239 `(("glib:bin" ,glib "bin")
4e868d22
RG
1240 ("pkg-config" ,pkg-config)))
1241 (inputs
b3492e39 1242 `(("docbook-xml" ,docbook-xml)
4e868d22
RG
1243 ("dockbook-xsl" ,docbook-xsl)
1244 ("evolution-data-server" ,evolution-data-server)
1245 ("gettext" ,gettext-minimal)
1246 ("gnome-desktop" ,gnome-desktop)
1247 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1248 ("gobject-introspection" ,gobject-introspection)
1249 ("gst-plugins-base" ,gst-plugins-base)
1250 ("gtk+" ,gtk+)
1251 ("libgee" ,libgee)
1252 ("libxslt" ,libxslt)
1253 ("telepathy-glib" ,telepathy-glib)
1254 ("vala" ,vala)))
1255 (propagated-inputs
1256 `(("folks", folks)
1257 ("telepathy-mission-control" ,telepathy-mission-control)))
1258 (synopsis "GNOME's integrated address book")
1259 (description
1260 "GNOME Contacts organizes your contact information from online and
1261offline sources, providing a centralized place for managing your contacts.")
1262 (home-page "https://wiki.gnome.org/Apps/Contacts")
1263 (license license:gpl2+)))
1264
9cc98f8a
CR
1265(define-public gnome-desktop
1266 (package
1267 (name "gnome-desktop")
8a7afc81 1268 (version "3.34.2")
9cc98f8a
CR
1269 (source
1270 (origin
1271 (method url-fetch)
b38e45d8
EB
1272 (uri (string-append "mirror://gnome/sources/" name "/"
1273 (version-major+minor version) "/"
9cc98f8a
CR
1274 name "-" version ".tar.xz"))
1275 (sha256
1276 (base32
8a7afc81 1277 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
e8a26caa 1278 (build-system meson-build-system)
a0fe7c06
CB
1279 (arguments
1280 '(#:phases
1281 (modify-phases %standard-phases
1282 (add-before 'configure 'patch-path
1283 (lambda* (#:key inputs #:allow-other-keys)
1284 (let ((libc (assoc-ref inputs "libc")))
1285 (substitute* "libgnome-desktop/gnome-languages.c"
1286 (("\"locale\"")
1287 (string-append "\"" libc "/bin/locale\"")))
e8a26caa 1288 #t)))
3857aba7
CB
1289 (add-before 'configure 'patch-bubblewrap
1290 (lambda* (#:key inputs #:allow-other-keys)
1291 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
1292 (("\"bwrap\",")
1293 (string-append "\"" (which "bwrap") "\","))
1294 (("\"--ro-bind\", \"/usr\", \"/usr\",")
1295 (string-append "\"--ro-bind\", \""
1296 (%store-directory)
1297 "\", \""
1298 (%store-directory)
1299 "\","))
1300 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
1301 #t))
e8a26caa
KK
1302 (add-before 'check 'pre-check
1303 (lambda* (#:key inputs #:allow-other-keys)
1304 ;; Tests require a running X server and locales.
1305 (system "Xvfb :1 &")
1306 (setenv "DISPLAY" ":1")
1307 (setenv "GUIX_LOCPATH"
1308 (string-append (assoc-ref inputs "glibc-locales")
1309 "/lib/locale"))
1310 #t)))))
9cc98f8a 1311 (native-inputs
e8a26caa
KK
1312 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1313 ("glibc-locales" ,glibc-locales) ; for tests
1314 ("gobject-introspection" ,gobject-introspection)
a8340482 1315 ("itstool" ,itstool)
bcb354ad
SB
1316 ("intltool" ,intltool)
1317 ("pkg-config" ,pkg-config)
e8a26caa
KK
1318 ("xmllint" ,libxml2)
1319 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1320 (propagated-inputs
1321 ;; Required by gnome-desktop-3.0.pc.
1322 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1323 ("gtk+" ,gtk+)
9cc98f8a 1324 ("iso-codes" ,iso-codes)
9863ce20 1325 ("libseccomp" ,libseccomp)
9cc98f8a 1326 ("libx11" ,libx11)
e8a26caa
KK
1327 ("xkeyboard-config" ,xkeyboard-config)))
1328 (inputs
1329 `(("gdk-pixbuf" ,gdk-pixbuf)
1330 ("glib" ,glib)
3857aba7 1331 ("bubblewrap" ,bubblewrap)
9cc98f8a
CR
1332 ("libxext" ,libxext)
1333 ("libxkbfile" ,libxkbfile)
e8a26caa 1334 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1335 (home-page "https://www.gnome.org/")
1336 (synopsis
35b9e423 1337 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1338 (description
1339 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1340on the desktop, but that cannot live in the platform for various reasons.
1341There is no API or ABI guarantee, although we are doing our best to provide
1342stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1343
1344The gnome-about program helps find which version of GNOME is installed.")
1345 ; Some bits under the LGPL.
1dd26275 1346 (license license:gpl2+)))
9cc98f8a 1347
995b7261
AE
1348(define-public gnome-doc-utils
1349 (package
1350 (name "gnome-doc-utils")
1351 (version "0.20.10")
1352 (source
1353 (origin
1354 (method url-fetch)
b38e45d8
EB
1355 (uri (string-append "mirror://gnome/sources/" name "/"
1356 (version-major+minor version) "/"
995b7261
AE
1357 name "-" version ".tar.xz"))
1358 (sha256
1359 (base32
1360 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1361 (build-system gnu-build-system)
c4c4cc05 1362 (native-inputs
995b7261 1363 `(("intltool" ,intltool)
b4ce6300 1364 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1365 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1366 ("libxml2" ,libxml2)
1367 ("libxslt" ,libxslt)
1368 ("pkg-config" ,pkg-config)
1369 ("python-2" ,python-2)))
995b7261
AE
1370 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1371 (synopsis
1372 "Documentation utilities for the Gnome project")
1373 (description
1374 "Gnome-doc-utils is a collection of documentation utilities for the
1375Gnome project. It includes xml2po tool which makes it easier to translate
1376and keep up to date translations of documentation.")
1dd26275 1377 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1378
6c4f7022
DC
1379(define-public gnome-disk-utility
1380 (package
1381 (name "gnome-disk-utility")
262e660e 1382 (version "3.34.0")
6c4f7022
DC
1383 (source (origin
1384 (method url-fetch)
1385 (uri (string-append "mirror://gnome/sources/" name "/"
1386 (version-major+minor version) "/"
1387 name "-" version ".tar.xz"))
1388 (sha256
1389 (base32
262e660e 1390 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
4b9a65bf 1391 (build-system meson-build-system)
321c73c3 1392 (arguments
262e660e
KK
1393 '(#:configure-flags '("-Dlogind=libelogind")
1394 #:phases
321c73c3
EF
1395 (modify-phases %standard-phases
1396 (add-after 'unpack 'skip-gtk-update-icon-cache
1397 ;; Don't create 'icon-theme.cache'.
1398 (lambda _
1399 (substitute* "meson_post_install.py"
1400 (("gtk-update-icon-cache") "true"))
1401 #t)))))
6c4f7022
DC
1402 (native-inputs
1403 `(("glib:bin" ,glib "bin")
1404 ("intltool" ,intltool)
1405 ("pkg-config" ,pkg-config)
1406 ("docbook-xml" ,docbook-xml)
1407 ("docbook-xsl" ,docbook-xsl)
1408 ("libxml2" ,libxml2)
1409 ("libxslt" ,libxslt)))
1410 (inputs
262e660e
KK
1411 `(("elogind" ,elogind)
1412 ("glib" ,glib)
6c4f7022
DC
1413 ("appstream-glib" ,appstream-glib)
1414 ("gnome-settings-daemon" ,gnome-settings-daemon)
1415 ("gtk+" ,gtk+)
1416 ("libcanberra" ,libcanberra)
1417 ("libdvdread" ,libdvdread)
1418 ("libnotify" ,libnotify)
1419 ("libpwquality" ,libpwquality)
1420 ("libsecret" ,libsecret)
1421 ("udisks" ,udisks)))
1422 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1423 (synopsis "Disk management utility for GNOME")
1424 (description "Disk management utility for GNOME.")
1425 (license license:gpl2+)))
1426
3d217317
RG
1427(define-public gnome-font-viewer
1428 (package
1429 (name "gnome-font-viewer")
1430 (version "3.30.0")
1431 (source (origin
1432 (method url-fetch)
1433 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1434 (version-major+minor version)
1435 "/gnome-font-viewer-" version ".tar.xz"))
1436 (sha256
1437 (base32
1438 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1439 (build-system meson-build-system)
1440 (arguments
1441 '(#:phases
1442 (modify-phases %standard-phases
1443 (add-after 'unpack 'patch-post-install-script
1444 (lambda _
1445 (substitute* "meson-postinstall.sh"
1446 (("update-desktop-database") (which "true")))
1447 #t)))))
1448 (native-inputs
1449 `(("gettext" ,gettext-minimal)
1450 ("glib:bin" ,glib "bin")
1451 ("pkg-config" ,pkg-config)))
1452 (inputs
1453 `(("glib" ,glib)
1454 ("gnome-desktop" ,gnome-desktop)
1455 ("gtk+" ,gtk+)))
1456 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1457 (synopsis "GNOME Fonts")
1458 (description "Application to show you the fonts installed on your computer
1459for your use as thumbnails. Selecting any thumbnails shows the full view of how
1460the font would look under various sizes.")
1461 (license license:gpl2+)))
1462
8ff49011
RW
1463(define-public gcr
1464 (package
1465 (name "gcr")
1de804da 1466 (version "3.34.0")
8ff49011 1467 (source (origin
0daf0efb
RW
1468 (method url-fetch)
1469 (uri (string-append "mirror://gnome/sources/" name "/"
1470 (version-major+minor version) "/"
1471 name "-" version ".tar.xz"))
1472 (sha256
1473 (base32
1de804da 1474 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1475 (build-system gnu-build-system)
1476 (arguments
0daf0efb
RW
1477 '(#:phases
1478 (modify-phases %standard-phases
1479 ;; These fail because /var/lib/dbus/machine-id is not present in the
1480 ;; build environment.
1481 (add-after 'unpack 'disable-failing-tests
1482 (lambda _
1de804da
MB
1483 (substitute* "Makefile.in"
1484 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1485 ""))
0daf0efb
RW
1486 #t))
1487 (add-before 'check 'pre-check
1488 (lambda _
1489 ;; Some tests expect to write to $HOME.
1490 (setenv "HOME" "/tmp")
1491 #t)))))
8ff49011
RW
1492 (inputs
1493 `(("dbus" ,dbus)
0daf0efb 1494 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1495 ("libgcrypt" ,libgcrypt)))
1496 (native-inputs
1de804da 1497 `(("python" ,python-wrapper) ;for tests
8ff49011 1498 ("pkg-config" ,pkg-config)
1de804da 1499 ("gettext" ,gettext-minimal)
8ff49011 1500 ("glib" ,glib "bin")
2af4f5b0 1501 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1502 ("libxml2" ,libxml2)
bea6b829 1503 ("vala" ,vala)
2af4f5b0 1504 ("xsltproc" ,libxslt)))
8ff49011
RW
1505 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1506 (propagated-inputs
1507 `(("p11-kit" ,p11-kit)
1508 ("glib" ,glib)
1509 ("gtk+" ,gtk+)))
f032d0be 1510 (home-page "https://www.gnome.org")
8ff49011
RW
1511 (synopsis "Libraries for displaying certificates and accessing key stores")
1512 (description
1513 "The GCR package contains libraries used for displaying certificates and
1514accessing key stores. It also provides the viewer for crypto files on the
1515GNOME Desktop.")
1516 (license license:lgpl2.1+)))
1517
88e61bd4
MC
1518(define-public gdl
1519 (package
1520 (name "gdl")
1521 (version "3.34.0")
1522 (source (origin
1523 (method git-fetch)
1524 (uri (git-reference
1525 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1526 (commit (string-append "GDL_" (string-map (match-lambda
1527 (#\. #\_)
1528 (c c))
1529 version)))))
1530 (file-name (git-file-name name version))
1531 (sha256
1532 (base32
1533 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1534 (build-system gnu-build-system)
88e61bd4
MC
1535 (native-inputs
1536 `(("autoconf" ,autoconf)
1537 ("automake" ,automake)
1538 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1539 ("gnome-common" ,gnome-common)
1540 ("gtk-doc" ,gtk-doc)
1541 ("intltool" ,intltool)
1542 ("pkg-config" ,pkg-config)
1543 ("libtool" ,libtool)
1544 ("which" ,which)))
1545 (inputs
1546 `(("libxml2" ,libxml2)))
1547 (propagated-inputs
1548 ;; The gdl-3.0.pc file 'Requires' GTK+.
1549 `(("gtk+" ,gtk+)))
1550 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1551 (synopsis "GNOME docking library")
1552 (description "This library provides docking features for gtk+.")
1553 (license license:lgpl2.1+)))
1554
ca3adf26
MC
1555;;; A minimal variant used to break a cycle with Inkscape.
1556(define-public gdl-minimal
1557 (package
1558 (inherit gdl)
1559 (name "gdl-minimal")
1560 (arguments
70cf0113
EF
1561 '(#:phases
1562 (modify-phases %standard-phases
1563 (add-after 'unpack 'disable-doc-generation
1564 ;; XXX: There is no easy way to disable generating the
1565 ;; documentation.
1566 (lambda _
1567 (substitute* "configure.in"
1568 (("GTK_DOC_CHECK.*") "")
1569 (("docs/.*") ""))
1570 (substitute* "Makefile.am"
1571 (("gdl docs po") "gdl po"))
1572 #t)))))
ca3adf26
MC
1573 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
1574
c1354b90
LC
1575(define-public libgnome-keyring
1576 (package
1577 (name "libgnome-keyring")
5e8aec2c 1578 (version "3.12.0")
c1354b90
LC
1579 (source (origin
1580 (method url-fetch)
b38e45d8
EB
1581 (uri (string-append "mirror://gnome/sources/" name "/"
1582 (version-major+minor version) "/"
1583 name "-" version ".tar.xz"))
c1354b90
LC
1584 (sha256
1585 (base32
5e8aec2c 1586 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1587 (build-system gnu-build-system)
c1354b90 1588 (inputs
c4c4cc05 1589 `(("libgcrypt" ,libgcrypt)
c1354b90 1590 ("dbus" ,dbus)))
c4c4cc05
JD
1591 (native-inputs
1592 `(("pkg-config" ,pkg-config)
426adbe8 1593 ("glib" ,glib "bin")
c4c4cc05 1594 ("intltool" ,intltool)))
c1354b90
LC
1595 (propagated-inputs
1596 ;; Referred to in .h files and .pc.
1597 `(("glib" ,glib)))
f032d0be 1598 (home-page "https://www.gnome.org")
c1354b90
LC
1599 (synopsis "Accessing passwords from the GNOME keyring")
1600 (description
1601 "Client library to access passwords from the GNOME keyring.")
1602
1603 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1604 (license license:lgpl2.0+)))
c1354b90 1605
e99a3d6f
RW
1606(define-public gnome-keyring
1607 (package
1608 (name "gnome-keyring")
14faeadd 1609 (version "3.34.0")
e99a3d6f
RW
1610 (source (origin
1611 (method url-fetch)
1612 (uri (string-append "mirror://gnome/sources/" name "/"
1613 (version-major+minor version) "/"
1614 name "-" version ".tar.xz"))
1615 (sha256
1616 (base32
14faeadd 1617 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
e99a3d6f
RW
1618 (build-system gnu-build-system)
1619 (arguments
1620 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1621 ;not exist
1622 #:configure-flags
1623 (list
1624 (string-append "--with-pkcs11-config="
1625 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1626 (string-append "--with-pkcs11-modules="
1627 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1628 #:phases
1629 (modify-phases %standard-phases
ab35cc6e
RW
1630 (add-after 'unpack 'fix-/bin/sh-reference
1631 (lambda _
1632 (substitute* "po/Makefile.in.in"
1633 (("/bin/sh") (which "sh")))
1634 #t))
5120f24f
RW
1635 (add-after 'unpack 'fix-docbook
1636 (lambda* (#:key inputs #:allow-other-keys)
1637 (substitute* "docs/Makefile.am"
1638 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1639 (string-append (assoc-ref inputs "docbook-xsl")
1640 "/xml/xsl/docbook-xsl-"
1641 ,(package-version docbook-xsl)
1642 "/manpages/docbook.xsl")))
1643 (setenv "XML_CATALOG_FILES"
1644 (string-append (assoc-ref inputs "docbook-xml")
1645 "/xml/dtd/docbook/catalog.xml"))
1646 ;; Rerun the whole thing to avoid version mismatch ("This is
1647 ;; Automake 1.15.1, but the definition used by this
1648 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1649 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1650 (invoke "autoconf")
1651 (invoke "aclocal")
1652 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1653 (inputs
1654 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1655 ("linux-pam" ,linux-pam)
ab35cc6e 1656 ("openssh" ,openssh)
e99a3d6f
RW
1657 ("dbus" ,dbus)
1658 ("gcr" ,gcr)))
1659 (native-inputs
1660 `(("pkg-config" ,pkg-config)
1661 ("glib" ,glib "bin")
5120f24f 1662 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1663 ("python" ,python-2) ;for tests
1664 ("intltool" ,intltool)
1665 ("autoconf" ,autoconf)
1666 ("automake" ,automake)
1667 ("libxslt" ,libxslt) ;for documentation
1668 ("docbook-xml" ,docbook-xml-4.2)
1669 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1670 (home-page "https://www.gnome.org")
e99a3d6f
RW
1671 (synopsis "Daemon to store passwords and encryption keys")
1672 (description
1673 "gnome-keyring is a program that keeps passwords and other secrets for
1674users. It is run as a daemon in the session, similar to ssh-agent, and other
1675applications locate it via an environment variable or D-Bus.
1676
1677The program can manage several keyrings, each with its own master password,
1678and there is also a session keyring which is never stored to disk, but
1679forgotten when the session ends.")
1680 (license license:lgpl2.1+)))
1681
c1354b90
LC
1682(define-public evince
1683 (package
1684 (name "evince")
de08b5b2 1685 (version "3.36.5")
c1354b90
LC
1686 (source (origin
1687 (method url-fetch)
ac631328 1688 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1689 (version-major+minor version) "/"
ac631328 1690 "evince-" version ".tar.xz"))
c1354b90
LC
1691 (sha256
1692 (base32
de08b5b2 1693 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
121de2e1 1694 (build-system glib-or-gtk-build-system)
c1354b90 1695 (arguments
169b8f77 1696 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1697 #:phases
1698 (modify-phases %standard-phases
1699 (add-before 'install 'skip-gtk-update-icon-cache
1700 ;; Don't create 'icon-theme.cache'.
1701 (lambda _
1702 (substitute* "data/Makefile"
1703 (("gtk-update-icon-cache") "true"))
1704 #t)))))
c1354b90 1705 (inputs
9a096881
KK
1706 `(("libarchive" ,libarchive)
1707 ("libgxps" ,libgxps)
1708 ("libspectre" ,libspectre)
c769cf9f 1709 ("djvulibre" ,djvulibre)
c1354b90
LC
1710 ("ghostscript" ,ghostscript)
1711 ("poppler" ,poppler)
c769cf9f
SB
1712 ("libtiff" ,libtiff)
1713 ;; TODO:
c769cf9f
SB
1714 ;; Build libkpathsea as a shared library for DVI support.
1715 ;; ("libkpathsea" ,texlive-bin)
1716 ("gnome-desktop" ,gnome-desktop)
c1354b90 1717 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1718 ("gspell" ,gspell)
c1354b90 1719 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1720 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1721 ("gdk-pixbuf" ,gdk-pixbuf)
1722 ("atk" ,atk)
1723 ("pango" ,pango)
1724 ("gtk+" ,gtk+)
1725 ("glib" ,glib)
1726 ("libxml2" ,libxml2)
c1354b90
LC
1727 ("libsm" ,libsm)
1728 ("libice" ,libice)
96e42467 1729 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1730 ("dconf" ,dconf)
1731 ("libcanberra" ,libcanberra)
c769cf9f 1732 ("libsecret" ,libsecret)
a271096b 1733
c1354b90
LC
1734 ;; For tests.
1735 ("dogtail" ,python2-dogtail)))
96e42467 1736 (native-inputs
bcb354ad
SB
1737 `(("itstool" ,itstool)
1738 ("intltool" ,intltool)
426adbe8 1739 ("glib" ,glib "bin")
169b8f77 1740 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1741 ("pkg-config" ,pkg-config)
1742 ("xmllint" ,libxml2)))
6f64a05e 1743 (home-page "https://www.gnome.org/projects/evince/")
c1354b90
LC
1744 (synopsis "GNOME's document viewer")
1745 (description
1746 "Evince is a document viewer for multiple document formats. It
1747currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1748of Evince is to replace the multiple document viewers that exist
96e42467 1749on the GNOME Desktop with a single simple application.")
1dd26275 1750 (license license:gpl2+)))
c1354b90 1751
22e32e69
AE
1752(define-public gsettings-desktop-schemas
1753 (package
1754 (name "gsettings-desktop-schemas")
8468117e 1755 (version "3.34.0")
22e32e69
AE
1756 (source
1757 (origin
1758 (method url-fetch)
1759 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1760 (version-major+minor version) "/"
22e32e69
AE
1761 name "-" version ".tar.xz"))
1762 (sha256
1763 (base32
8468117e 1764 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
c900dabd 1765 (build-system meson-build-system)
65209ffa
LC
1766 (arguments
1767 '(#:phases (modify-phases %standard-phases
3861fb1c 1768 (add-after 'unpack 'patch-schemas
65209ffa 1769 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1770 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1771 (substitute* (find-files "schemas"
1772 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1773 ;; Provide the correct file name of the default GNOME
1774 ;; background, 'adwaita-timed.xml'.
65209ffa 1775 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1776 (string-append theme "/share/backgrounds/gnome"))
1777 ;; Do not reference fonts, that may not exist.
1778 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1779 #t))))))
22e32e69 1780 (inputs
65209ffa
LC
1781 `(("glib" ,glib)
1782 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1783 (native-inputs
1784 `(("intltool" ,intltool)
426adbe8 1785 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1786 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1787 ("pkg-config" ,pkg-config)))
1788 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1789 (synopsis
1790 "GNOME settings for various desktop components")
1791 (description
1792 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1793for settings shared by various components of the GNOME desktop.")
1dd26275 1794 (license license:lgpl2.1+)))
22e32e69 1795
27477d2d
AE
1796(define-public icon-naming-utils
1797 (package
1798 (name "icon-naming-utils")
1799 (version "0.8.90")
1800 (source
1801 (origin
1802 (method url-fetch)
5cc3096c 1803 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1804 version ".tar.bz2"))
1805 (sha256
1806 (base32
1807 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1808 (build-system gnu-build-system)
1809 (inputs
1810 `(("perl" ,perl)
1811 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1812 (arguments
1813 '(#:phases
dc1d3cde
KK
1814 (modify-phases %standard-phases
1815 (add-after 'install 'set-load-paths
1816 ;; Tell 'icon-name-mapping' where XML::Simple is.
1817 (lambda* (#:key outputs #:allow-other-keys)
1818 (let* ((out (assoc-ref outputs "out"))
1819 (prog (string-append out "/libexec/icon-name-mapping")))
1820 (wrap-program
1821 prog
1822 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1823 #t)))))
27477d2d
AE
1824 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1825 (synopsis
1826 "Utility to implement the Freedesktop Icon Naming Specification")
1827 (description
1828 "To help with the transition to the Freedesktop Icon Naming
1829Specification, the icon naming utility maps the icon names used by the
1830GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1831 (license license:lgpl2.1+)))
27477d2d 1832
7d3f3651
AE
1833(define-public gnome-icon-theme
1834 (package
1835 (name "gnome-icon-theme")
b32f58dd 1836 (version "3.12.0")
7d3f3651
AE
1837 (source
1838 (origin
1839 (method url-fetch)
1840 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1841 (version-major+minor version) "/"
7d3f3651
AE
1842 name "-" version ".tar.xz"))
1843 (sha256
1844 (base32
b32f58dd 1845 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1846 (build-system gnu-build-system)
5613c27d
SB
1847 (arguments
1848 '(#:configure-flags
1849 ;; Don't create 'icon-theme.cache'.
1850 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1851 (true (string-append coreutils "/bin/true")))
1852 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1853 (native-inputs
5613c27d 1854 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1855 ("intltool" ,intltool)
1856 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1857 (home-page "https://wiki.gnome.org/Personalization")
1858 (synopsis "GNOME icon theme")
1859 (description "Icons for the GNOME desktop.")
1dd26275 1860 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1861
14eeefa2
SB
1862;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1863(define-public adwaita-icon-theme
1864 (package (inherit gnome-icon-theme)
1865 (name "adwaita-icon-theme")
e21788f2 1866 (version "3.34.3")
14eeefa2
SB
1867 (source (origin
1868 (method url-fetch)
1869 (uri (string-append "mirror://gnome/sources/" name "/"
1870 (version-major+minor version) "/"
1871 name "-" version ".tar.xz"))
1872 (sha256
1873 (base32
e21788f2 1874 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
5613c27d
SB
1875 (native-inputs
1876 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1877
ae792dba
RW
1878(define-public tango-icon-theme
1879 (package
1880 (name "tango-icon-theme")
1881 (version "0.8.90")
1882 (source (origin
1883 (method url-fetch)
1884 (uri (string-append "http://tango.freedesktop.org/releases/"
1885 "tango-icon-theme-" version ".tar.bz2"))
1886 (sha256
1887 (base32
1888 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1889 (build-system gnu-build-system)
1890 (native-inputs
1891 `(("icon-naming-utils" ,icon-naming-utils)
1892 ("intltool" ,intltool)
1893 ("imagemagick" ,imagemagick)
1894 ("pkg-config" ,pkg-config)))
1895 (home-page "http://tango-project.org/")
1896 (synopsis "Tango icon theme")
1897 (description "This is an icon theme that follows the Tango visual
1898guidelines.")
1899 (license license:public-domain)))
1900
9167f8e6
LC
1901(define-public shared-mime-info
1902 (package
1903 (name "shared-mime-info")
404e386e 1904 (version "1.15")
9167f8e6
LC
1905 (source (origin
1906 (method url-fetch)
404e386e
MB
1907 (uri (string-append
1908 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1909 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1910 ".tar.xz"))
9167f8e6
LC
1911 (sha256
1912 (base32
404e386e 1913 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1914 (build-system gnu-build-system)
1915 (arguments
1916 ;; The build system appears not to be parallel-safe.
1917 '(#:parallel-build? #f))
1918 (inputs
1919 `(("glib" ,glib)
c4c4cc05 1920 ("libxml2" ,libxml2)))
9167f8e6 1921 (native-inputs
404e386e
MB
1922 `(("gettext" ,gettext-minimal)
1923 ("itstool" ,itstool)
c4c4cc05 1924 ("pkg-config" ,pkg-config)))
57e7d748 1925 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1926 (synopsis "Database of common MIME types")
1927 (description
1928 "The shared-mime-info package contains the core database of common types
1929and the update-mime-database command used to extend it. It requires glib2 to
1930be installed for building the update command. Additionally, it uses intltool
1931for translations, though this is only a dependency for the maintainers. This
1932database is translated at Transifex.")
1dd26275 1933 (license license:gpl2+)))
9167f8e6 1934
dd1fcddc
CB
1935(define-public system-config-printer
1936 (package
1937 (name "system-config-printer")
fa01e10d 1938 (version "1.5.12")
a5643044
TGR
1939 (source
1940 (origin
1941 (method url-fetch)
1942 (uri (string-append
1943 "https://github.com/OpenPrinting/system-config-printer/releases/"
1944 "download/" version
1945 "/system-config-printer-" version ".tar.xz"))
1946 (sha256
fa01e10d 1947 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1948 (build-system glib-or-gtk-build-system)
1949 (arguments
1950 `(#:imported-modules ((guix build python-build-system)
1951 ,@%glib-or-gtk-build-system-modules)
1952 #:phases
1953 (modify-phases %standard-phases
1954 (add-after 'unpack 'patch-Makefile.am
1955 (lambda _
1956 ;; The Makefile generates some scripts, so set a valid shebang
1957 (substitute* "Makefile.am"
1958 (("/bin/bash") (which "bash")))
1959 (delete-file "configure")
1960 #t))
1961 (add-after 'unpack 'patch-docbook-xml
1962 (lambda* (#:key inputs #:allow-other-keys)
1963 ;; Modify the man XML otherwise xmlto tries to access the network
1964 (substitute* "man/system-config-printer.xml"
1965 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1966 (string-append (assoc-ref inputs "docbook-xml")
1967 "/xml/dtd/docbook/")))
1968 #t))
1969 (add-after 'install 'wrap-for-python
1970 (@@ (guix build python-build-system) wrap))
1971 (add-after 'install 'wrap
1972 (lambda* (#:key outputs #:allow-other-keys)
1973 (let ((out (assoc-ref outputs "out"))
1974 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1975 (for-each
1976 (lambda (program)
1977 (wrap-program program
1978 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1979 (map (lambda (name)
1980 (string-append out "/bin/" name))
1981 '("system-config-printer"
1982 "system-config-printer-applet"
1983 "install-printerdriver"
1984 "scp-dbus-service"))))
1985 #t)))))
1986 (inputs
1987 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1988 ("gobject-introspection" ,gobject-introspection)
1989 ("python" ,python)
1990 ("cups" ,cups)
1991 ("python-dbus" ,python-dbus)
1992 ("python-pygobject" ,python-pygobject)
1993 ("python-pycups" ,python-pycups)
1994 ("python-requests" ,python-requests)
1995 ("python-pycairo" ,python-pycairo)
1996 ("libnotify" ,libnotify)
1997 ("packagekit" ,packagekit)))
1998 (native-inputs
1999 `(("pkg-config" ,pkg-config)
2000 ("desktop-file-utils" ,desktop-file-utils)
2001 ("glib" ,glib)
2002 ("autoconf" ,autoconf)
2003 ("automake" ,automake)
2004 ("intltool" ,intltool)
2005 ("xmlto" ,xmlto)
2006 ("docbook-xml" ,docbook-xml-4.1.2)
2007 ("docbook-xsl" ,docbook-xsl)
2008 ("libxml2" ,libxml2)))
2009 (home-page "https://github.com/zdohnal/system-config-printer")
2010 (synopsis "CUPS administration tool")
2011 (description
2012 "system-config-printer is a CUPS administration tool. It's written in
2013Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2014configuring CUPS.")
2015 (license license:gpl2+)))
2016
bef4dd92
AE
2017(define-public hicolor-icon-theme
2018 (package
2019 (name "hicolor-icon-theme")
851cb6dd 2020 (version "0.17")
bef4dd92
AE
2021 (source
2022 (origin
2023 (method url-fetch)
5cc3096c 2024 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 2025 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
2026 (sha256
2027 (base32
851cb6dd 2028 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
2029 (build-system gnu-build-system)
2030 (arguments
2031 `(#:tests? #f)) ; no check target
57e7d748 2032 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
2033 (synopsis
2034 "Freedesktop icon theme")
2035 (description
2036 "Freedesktop icon theme.")
1dd26275 2037 (license license:gpl2)))
bef4dd92 2038
d9c1a22b
AE
2039(define-public libnotify
2040 (package
2041 (name "libnotify")
195bfa68 2042 (version "0.7.7")
d9c1a22b
AE
2043 (source
2044 (origin
2045 (method url-fetch)
2046 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2047 (version-major+minor version) "/"
d9c1a22b
AE
2048 name "-" version ".tar.xz"))
2049 (sha256
2050 (base32
195bfa68 2051 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 2052 (build-system gnu-build-system)
6acf6cec
MB
2053 (arguments
2054 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
2055 (propagated-inputs
2056 `(;; In Requires of libnotify.pc.
2057 ("gdk-pixbuf" ,gdk-pixbuf)
2058 ("glib" ,glib)))
d9c1a22b 2059 (inputs
7ef08efa 2060 `(("gtk+" ,gtk+)
c4c4cc05
JD
2061 ("libpng" ,libpng)))
2062 (native-inputs
426adbe8 2063 `(("pkg-config" ,pkg-config)
277a7d82
JN
2064 ("glib" ,glib "bin")
2065 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
2066 (home-page "https://developer-next.gnome.org/libnotify/")
2067 (synopsis
2068 "GNOME desktop notification library")
2069 (description
2070 "Libnotify is a library that sends desktop notifications to a
35b9e423 2071notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
2072notifications can be used to inform the user about an event or display
2073some form of information without getting in the user's way.")
1dd26275 2074 (license license:lgpl2.1+)))
7a8605ce
CR
2075
2076(define-public libpeas
2077 (package
2078 (name "libpeas")
f2d56e39 2079 (version "1.24.1")
7a8605ce
CR
2080 (source
2081 (origin
2082 (method url-fetch)
2083 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2084 (version-major+minor version) "/"
7a8605ce
CR
2085 name "-" version ".tar.xz"))
2086 (sha256
2087 (base32
f2d56e39
MB
2088 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2089 (build-system meson-build-system)
2090 (arguments
2091 '(#:phases
2092 (modify-phases %standard-phases
2093 (add-before 'check 'start-xserver
2094 (lambda* (#:key inputs #:allow-other-keys)
2095 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2096 (disp ":1"))
2097 (setenv "DISPLAY" disp)
2098 ;; Tests require a running X server.
2099 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2100 #t))))))
7a8605ce 2101 (inputs
2ed6522a
SB
2102 `(("gtk+" ,gtk+)
2103 ("glade" ,glade3)
2ed6522a
SB
2104 ("python" ,python)
2105 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2106 (native-inputs
2107 `(("pkg-config" ,pkg-config)
f2d56e39 2108 ("gettext" ,gettext-minimal)
93622993 2109 ("glib:bin" ,glib "bin")
141aed80 2110 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2111 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2112 (propagated-inputs
2113 ;; The .pc file "Requires" gobject-introspection.
2114 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2115 (home-page "https://wiki.gnome.org/Libpeas")
2116 (synopsis "GObject plugin system")
2117 (description
d1e4ad1b
TGR
2118 "Libpeas is a gobject-based plugin engine, targeted at giving every
2119application the chance to assume its own extensibility. It also has a set of
2120features including, but not limited to: multiple extension points; on-demand
2121(lazy) programming language support for C, Python and JS; simplicity of the
2122API.")
1dd26275 2123 (license license:lgpl2.0+)))
ed19903d
JD
2124
2125(define-public gtkglext
2126 (package
2127 (name "gtkglext")
2128 (version "1.2.0")
2129 (source (origin
2130 (method url-fetch)
0f971a04 2131 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2132 version "/gtkglext-" version ".tar.gz"))
2133 (sha256
2134 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2135 (patches (search-patches
2136 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2137 (build-system gnu-build-system)
14e2f61a
RW
2138 (arguments
2139 `(#:phases
2140 (modify-phases %standard-phases
2141 ;; Fix a collision between a local variable and a definition from
2142 ;; glibc's string.h.
2143 (add-after 'unpack 'fix-collision
2144 (lambda _
2145 (substitute* "gdk/gdkglshapes.c"
2146 ((" index") " triangle_index"))
2147 #t)))))
ed19903d
JD
2148 (inputs `(("gtk+" ,gtk+-2)
2149 ("mesa" ,mesa)
cc8b02f4 2150 ("glu" ,glu)
ed19903d
JD
2151 ("libx11" ,libx11)
2152 ("libxt" ,libxt)))
426adbe8
LC
2153 (native-inputs `(("pkg-config" ,pkg-config)
2154 ("glib" ,glib "bin")))
a83b6a06 2155 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2156 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2157 (synopsis "OpenGL extension to GTK+")
35b9e423 2158 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2159additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2160API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2161 (license license:lgpl2.1+)))
3600420e
JD
2162
2163(define-public glade3
2164 (package
2165 (name "glade")
031315e4 2166 (version "3.36.0")
b38e45d8
EB
2167 (source (origin
2168 (method url-fetch)
2169 (uri (string-append "mirror://gnome/sources/" name "/"
2170 (version-major+minor version) "/"
f5ca44b8 2171 name "-" version ".tar.xz"))
3600420e 2172 (sha256
f714d9fe 2173 (base32
031315e4 2174 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
6983ba56 2175 (build-system glib-or-gtk-build-system)
f5ca44b8 2176 (arguments
ec8e1c91 2177 `(#:phases
f5ca44b8
RW
2178 (modify-phases %standard-phases
2179 (add-before 'configure 'fix-docbook
2180 (lambda* (#:key inputs #:allow-other-keys)
2181 (substitute* "man/Makefile.in"
2182 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2183 (string-append (assoc-ref inputs "docbook-xsl")
2184 "/xml/xsl/docbook-xsl-"
2185 ,(package-version docbook-xsl)
2186 "/manpages/docbook.xsl")))
ec8e1c91
AI
2187 #t))
2188 (add-before 'check 'pre-check
2189 (lambda _
2190 (setenv "HOME" "/tmp")
2191 ;; Tests require a running X server.
2192 (system "Xvfb :1 &")
2193 (setenv "DISPLAY" ":1")
f5ca44b8 2194 #t)))))
3600420e 2195 (inputs
f5ca44b8 2196 `(("gtk+" ,gtk+)
3600420e
JD
2197 ("libxml2" ,libxml2)))
2198 (native-inputs
ec8e1c91
AI
2199 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2200 ("intltool" ,intltool)
f5ca44b8
RW
2201 ("itstool" ,itstool)
2202 ("libxslt" ,libxslt) ;for xsltproc
2203 ("docbook-xml" ,docbook-xml-4.2)
2204 ("docbook-xsl" ,docbook-xsl)
2205 ("python" ,python-2)
ec8e1c91
AI
2206 ("pkg-config" ,pkg-config)
2207 ("xorg-server" ,xorg-server-for-tests)))
3600420e
JD
2208 (home-page "https://glade.gnome.org")
2209 (synopsis "GTK+ rapid application development tool")
2210 (description "Glade is a rapid application development (RAD) tool to
2211enable quick & easy development of user interfaces for the GTK+ toolkit and
2212the GNOME desktop environment.")
1dd26275
LC
2213 (license license:lgpl2.0+)))
2214
2215(define-public libcroco
2216 (package
2217 (name "libcroco")
8bdacad2 2218 (version "0.6.13")
1dd26275
LC
2219 (source (origin
2220 (method url-fetch)
b38e45d8
EB
2221 (uri (string-append "mirror://gnome/sources/" name "/"
2222 (version-major+minor version) "/"
2223 name "-" version ".tar.xz"))
1dd26275
LC
2224 (sha256
2225 (base32
8bdacad2 2226 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2227 (build-system gnu-build-system)
2228 (native-inputs
2229 `(("pkg-config" ,pkg-config)))
2230 (inputs
2231 `(("glib" ,glib)
2232 ("libxml2" ,libxml2)
2233 ("zlib" ,zlib)))
2234 (home-page "https://github.com/GNOME/libcroco")
2235 (synopsis "CSS2 parsing and manipulation library")
2236 (description
2237 "Libcroco is a standalone CSS2 parsing and manipulation library.
2238The parser provides a low level event driven SAC-like API and a CSS object
2239model like API. Libcroco provides a CSS2 selection engine and an experimental
2240XML/CSS rendering engine.")
2241
2242 ;; LGPLv2.1-only.
2243 (license license:lgpl2.1)))
25178594
LC
2244
2245(define-public libgsf
2246 (package
2247 (name "libgsf")
2b9b854c 2248 (version "1.14.47")
25178594
LC
2249 (source (origin
2250 (method url-fetch)
b38e45d8
EB
2251 (uri (string-append "mirror://gnome/sources/" name "/"
2252 (version-major+minor version) "/"
2253 name "-" version ".tar.xz"))
25178594
LC
2254 (sha256
2255 (base32
2b9b854c 2256 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
25178594 2257 (build-system gnu-build-system)
23904adb
MB
2258 (arguments
2259 '(#:configure-flags '("--disable-static")))
25178594 2260 (native-inputs
0a1559cc
MB
2261 `(("pkg-config" ,pkg-config)
2262 ("gettext" ,gettext-minimal)
2263
2264 ;; For tests.
2265 ("perl" ,perl)
2266 ("perl-xml-parser" ,perl-xml-parser)))
25178594 2267 (inputs
4ffa9f6b 2268 `(("zlib" ,zlib)
25178594
LC
2269 ("bzip2" ,bzip2)))
2270 (propagated-inputs
2271 `(("gdk-pixbuf" ,gdk-pixbuf)
2272 ("glib" ,glib)
2273 ("libxml2" ,libxml2)))
f032d0be 2274 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2275 (synopsis "GNOME's Structured File Library")
2276 (description
2277 "Libgsf aims to provide an efficient extensible I/O abstraction for
2278dealing with different structured file formats.")
2279
2280 ;; LGPLv2.1-only.
2281 (license license:lgpl2.1)))
63016e7c
LC
2282
2283(define-public librsvg
f67417a1
MB
2284 (package
2285 (name "librsvg")
c1cc52a2 2286 (version "2.40.21")
f67417a1
MB
2287 (source (origin
2288 (method url-fetch)
2289 (uri (string-append "mirror://gnome/sources/" name "/"
2290 (version-major+minor version) "/"
2291 name "-" version ".tar.xz"))
2292 (sha256
2293 (base32
c1cc52a2 2294 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2295 (build-system gnu-build-system)
2296 (arguments
2297 `(#:configure-flags
2298 (list "--disable-static"
2299 "--enable-vala") ; needed for e.g. gnome-mines
2300 #:phases
2301 (modify-phases %standard-phases
2302 (add-before 'configure 'pre-configure
2303 (lambda* (#:key inputs #:allow-other-keys)
2304 (substitute* "gdk-pixbuf-loader/Makefile.in"
2305 ;; By default the gdk-pixbuf loader is installed under
2306 ;; gdk-pixbuf's prefix. Work around that.
2307 (("gdk_pixbuf_moduledir = .*$")
2308 (string-append "gdk_pixbuf_moduledir = "
2309 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2310 "loaders\n"))
2311 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2312 (("gdk_pixbuf_cache_file = .*$")
2313 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2314 #t))
2315 (add-before 'check 'remove-failing-tests
2316 (lambda _
2317 (with-directory-excursion "tests/fixtures/reftests"
2318 (for-each delete-file
2319 '(;; This test fails on i686:
2320 "svg1.1/masking-path-04-b.svg"
2321 ;; This test fails on armhf:
2322 "svg1.1/masking-mask-01-b.svg"
2323 ;; This test fails on aarch64:
2324 "bugs/777834-empty-text-children.svg")))
2325 #t)))))
2326 (native-inputs
2327 `(("pkg-config" ,pkg-config)
2328 ("vala" ,vala)
2329 ("glib" ,glib "bin") ; glib-mkenums, etc.
2330 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2331 (inputs
869b63cb
MB
2332 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2333 ;; this ancient version of librsvg.
2334 ("pango" ,pango-1.42)
f67417a1
MB
2335 ("libcroco" ,libcroco)
2336 ("bzip2" ,bzip2)
2337 ("libgsf" ,libgsf)
2338 ("libxml2" ,libxml2)))
2339 (propagated-inputs
2340 ;; librsvg-2.0.pc refers to all of that.
2341 `(("cairo" ,cairo)
2342 ("gdk-pixbuf" ,gdk-pixbuf)
2343 ("glib" ,glib)))
2344 (home-page "https://wiki.gnome.org/LibRsvg")
2345 (synopsis "Render SVG files using Cairo")
2346 (description
2347 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2348library.")
2349 (license license:lgpl2.0+)))
2350
2351(define-public librsvg-next
63016e7c 2352 (package
25d39a2a 2353 (inherit librsvg)
63016e7c 2354 (name "librsvg")
4f9db569 2355 (version "2.48.8")
69568670
EF
2356 (source (origin
2357 (method url-fetch)
2358 (uri (string-append "mirror://gnome/sources/librsvg/"
2359 (version-major+minor version) "/"
2360 "librsvg-" version ".tar.xz"))
2361 (sha256
2362 (base32
4f9db569 2363 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
69568670
EF
2364 (modules '((guix build utils)))
2365 (snippet
2366 '(begin (delete-file-recursively "vendor")
69568670
EF
2367 #t))))
2368 (build-system cargo-build-system)
63016e7c 2369 (arguments
69568670
EF
2370 `(#:modules ((guix build cargo-build-system)
2371 (guix build utils)
2372 ((guix build gnu-build-system) #:prefix gnu:))
2373 #:vendor-dir "vendor"
2374 #:cargo-inputs
2375 (("rust-bitflags" ,rust-bitflags-1)
4f9db569 2376 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
69568670 2377 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
4f9db569
EF
2378 ("rust-cast" ,rust-cast-0.2)
2379 ("rust-cssparser" ,rust-cssparser-0.27)
69568670
EF
2380 ("rust-data-url" ,rust-data-url-0.1)
2381 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2382 ("rust-encoding" ,rust-encoding-0.2)
4f9db569
EF
2383 ("rust-float-cmp" ,rust-float-cmp-0.6)
2384 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
69568670 2385 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
4f9db569 2386 ("rust-gio" ,rust-gio-0.8)
69568670 2387 ("rust-gio-sys" ,rust-gio-sys-0.9)
4f9db569 2388 ("rust-glib" ,rust-glib-0.9)
69568670
EF
2389 ("rust-glib-sys" ,rust-glib-sys-0.9)
2390 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2391 ("rust-itertools" ,rust-itertools-0.8)
2392 ("rust-language-tags" ,rust-language-tags-0.2)
69568670
EF
2393 ("rust-libc" ,rust-libc-0.2)
2394 ("rust-locale-config" ,rust-locale-config-0.3)
4f9db569
EF
2395 ("rust-markup5ever" ,rust-markup5ever-0.10)
2396 ("rust-nalgebra" ,rust-nalgebra-0.19)
69568670 2397 ("rust-num-traits" ,rust-num-traits-0.2)
4f9db569 2398 ("rust-once-cell" ,rust-once-cell-1.2)
69568670 2399 ("rust-pkg-config" ,rust-pkg-config-0.3)
4f9db569 2400 ("rust-pango" ,rust-pango-0.8)
69568670 2401 ("rust-pango-sys" ,rust-pango-sys-0.9)
4f9db569 2402 ("rust-pangocairo" ,rust-pangocairo-0.9)
a5630553 2403 ("rust-rayon" ,rust-rayon-1)
69568670 2404 ("rust-rctree" ,rust-rctree-0.3)
4f9db569 2405 ("rust-rgb" ,rust-rgb-0.8)
6cd7b355 2406 ("rust-regex" ,rust-regex-1)
4f9db569 2407 ("rust-selectors" ,rust-selectors-0.22)
69568670 2408 ("rust-url" ,rust-url-2.1)
4f9db569 2409 ("rust-xml5ever" ,rust-xml5ever-0.16))
69568670 2410 #:cargo-development-inputs
4f9db569
EF
2411 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
2412 ("rust-criterion" ,rust-criterion-0.3))
ec47c07d 2413 #:phases
b6239e45 2414 (modify-phases %standard-phases
69568670 2415 (add-after 'unpack 'prepare-for-build
ec47c07d 2416 (lambda _
69568670 2417 ;; In lieu of #:make-flags
4f9db569 2418 (setenv "CC" ,(cc-for-target))
69568670
EF
2419 ;; Something about the build environment resists building
2420 ;; successfully with the '--locked' flag.
2421 (substitute* '("Makefile.am"
2422 "Makefile.in")
2423 (("--locked") ""))
2424 #t))
b6239e45 2425 (add-before 'configure 'pre-configure
69568670 2426 (lambda _
b6239e45
EF
2427 (substitute* "gdk-pixbuf-loader/Makefile.in"
2428 ;; By default the gdk-pixbuf loader is installed under
2429 ;; gdk-pixbuf's prefix. Work around that.
2430 (("gdk_pixbuf_moduledir = .*$")
2431 (string-append "gdk_pixbuf_moduledir = "
2432 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2433 "loaders\n"))
2434 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2435 (("gdk_pixbuf_cache_file = .*$")
2436 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2437 #t))
69568670 2438 (add-after 'configure 'gnu-configure
4b16cb64
EF
2439 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
2440 ((assoc-ref gnu:%standard-phases 'configure)
2441 #:native-inputs native-inputs
2442 #:inputs inputs
2443 #:outputs outputs
2444 #:configure-flags (list "--disable-static"
2445 "--enable-vala"))))
69568670
EF
2446 (add-after 'configure 'dont-vendor-self
2447 (lambda* (#:key vendor-dir #:allow-other-keys)
2448 ;; Don't keep the whole tarball in the vendor directory
2449 (delete-file-recursively
2450 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2451 #t))
2452 (replace 'build
2453 (assoc-ref gnu:%standard-phases 'build))
2454 (replace 'check
2455 (lambda* args
2456 ((assoc-ref gnu:%standard-phases 'check)
2457 #:test-target "check")))
2458 (replace 'install
4f9db569
EF
2459 (assoc-ref gnu:%standard-phases 'install)))))
2460 (inputs
2461 `(("pango" ,pango)
2462 ,@(alist-delete "pango" (package-inputs librsvg))))
cf9dad6c 2463 (license license:lgpl2.1+)))
5698b8b8
JD
2464
2465(define-public libidl
2466 (package
2467 (name "libidl")
2468 (version "0.8.14")
2469 (source (origin
2470 (method url-fetch)
80a06e62
EF
2471 (uri (string-append "mirror://gnome/sources/libIDL/"
2472 (version-major+minor version) "/"
2473 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2474 (sha256
2475 (base32
2476 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2477 (build-system gnu-build-system)
2478 (inputs `(("glib" ,glib)))
2479 (native-inputs
2480 `(("pkg-config" ,pkg-config)
b3546174 2481 ("flex" ,flex)
5698b8b8
JD
2482 ("bison" ,bison)))
2483 (home-page "http://freecode.com/projects/libidl")
2484 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2485 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2486Definition Language (idl) files, which is a specification for defining
2487portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2488GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2489functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2490 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2491 (license license:lgpl2.0+)))
2492
2493
2494(define-public orbit2
2495 (package
2496 (name "orbit2")
2497 (version "2.14.19")
2498 (source (origin
2499 (method url-fetch)
2e6ecc5c 2500 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2501 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2502 (version-major+minor version) "/"
2503 upstream-name "-" version ".tar.bz2")))
5698b8b8 2504 (sha256
a124bbd2
SB
2505 (base32
2506 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2507 (build-system gnu-build-system)
2508 (arguments
c2d837b9
MB
2509 `(;; The "timeout-server" test hangs when run in parallel.
2510 #:parallel-tests? #f
2511 #:configure-flags
8aad2e32
LC
2512 '(;; We don't need static libraries, plus they don't build reproducibly
2513 ;; (non-deterministic ordering of .o files in the archive.)
2514 "--disable-static"
2515
2516 ;; The programmer kindly gives us a hook to turn off deprecation
2517 ;; warnings ...
2518 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2519 ;; ... which they then completly ignore !!
2520 #:phases
dc1d3cde
KK
2521 (modify-phases %standard-phases
2522 (add-before 'configure 'ignore-deprecations
2523 (lambda _
2524 (substitute* "linc2/src/Makefile.in"
2525 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2526 #t)))))
5698b8b8
JD
2527 (inputs `(("glib" ,glib)
2528 ("libidl" ,libidl)))
2529 (native-inputs
2530 `(("pkg-config" ,pkg-config)))
2531 (home-page "https://projects.gnome.org/orbit2/")
2532 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2533 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2534featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2535 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2536 ;; a version. SOME of the code files have licence notices for GPLv2+.
2537 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2538 (license license:gpl2+)
2539 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2540
2541
2542(define-public libbonobo
2543 (package
2544 (name "libbonobo")
2545 (version "2.32.1")
2546 (source (origin
2547 (method url-fetch)
5becd025 2548 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2549 (version-major+minor version)
5becd025 2550 "/" name "-" version ".tar.bz2"))
5698b8b8 2551 (sha256
f1fc45a9 2552 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2553 (patches (search-patches
2554 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2555 (build-system gnu-build-system)
2556 (arguments
2557 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2558 `(#:configure-flags
2559 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2560 ;; ... which they then completly ignore !!
2561 #:phases
dc1d3cde
KK
2562 (modify-phases %standard-phases
2563 (add-before 'configure 'ignore-deprecations
2564 (lambda _
2565 (substitute* "activation-server/Makefile.in"
2566 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2567 #t)))
2568
2569 ;; There's apparently a race condition between the server stub
2570 ;; generation and linking of the example under 'samples/echo' that can
2571 ;; lead do undefined references when building in parallel, as reported
2572 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2573 ;; Thus, disable parallel builds.
2574 #:parallel-build? #f))
5698b8b8
JD
2575 (inputs `(("popt" ,popt)
2576 ("libxml2" ,libxml2)))
2577 ;; The following are Required by the .pc file
44add1ce 2578 (propagated-inputs
5698b8b8
JD
2579 `(("glib" ,glib)
2580 ("orbit2" ,orbit2)))
2581 (native-inputs
2582 `(("intltool" ,intltool)
2583 ("pkg-config" ,pkg-config)
221ed17a 2584 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2585 ("flex" ,flex)
2586 ("bison" ,bison)))
2587 (home-page "https://developer.gnome.org/libbonobo/")
2588 (synopsis "Framework for creating reusable components for use in GNOME applications")
2589 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2590use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2591 ;; Licence not explicitly stated. Source files contain no licence notices.
2592 ;; Tarball contains text of both GPLv2 and LGPLv2
2593 ;; GPLv2 covers both conditions
2594 (license license:gpl2+)))
2595
2596
2597(define-public gconf
2598 (package
2599 (name "gconf")
2600 (version "3.2.6")
2601 (source (origin
2602 (method url-fetch)
a124bbd2
SB
2603 (uri
2604 (let ((upstream-name "GConf"))
2605 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2606 (version-major+minor version) "/"
2607 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2608 (sha256
2609 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2610 (build-system gnu-build-system)
2e88d113 2611 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2612 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2613 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2614 ("orbit2" ,orbit2)))
5698b8b8
JD
2615 (native-inputs
2616 `(("intltool" ,intltool)
221ed17a 2617 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2618 ("pkg-config" ,pkg-config)))
2619 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2620 (synopsis "Store application preferences")
2621 (description "Gconf is a system for storing application preferences. It
2622is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2623 (license license:lgpl2.0+)
2624 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2625
2626
2627(define-public gnome-mime-data
2628 (package
2629 (name "gnome-mime-data")
2630 (version "2.18.0")
2631 (source (origin
2632 (method url-fetch)
b38e45d8
EB
2633 (uri (string-append "mirror://gnome/sources/" name "/"
2634 (version-major+minor version) "/"
2635 name "-" version ".tar.bz2"))
5698b8b8
JD
2636 (sha256
2637 (base32
2638 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2639 (build-system gnu-build-system)
2640 (native-inputs
2641 `(("perl" ,perl)
2642 ("intltool" ,intltool)))
3e6add96
LC
2643 (arguments
2644 '(#:phases (modify-phases %standard-phases
2645 (add-after 'configure 'use-our-intltool
2646 (lambda _
2647 ;; Do not use the bundled intltool commands, which lack
2648 ;; the "dotless @INC" fixes of our 'intltool' package.
2649 (substitute* (find-files "." "^Makefile$")
2650 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2651 (string-append "INTLTOOL_" tool " = intltool-"
2652 (string-downcase tool) "\n")))
2653 #t)))))
f032d0be 2654 (home-page "https://www.gnome.org")
35b9e423 2655 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2656 (description "GNOME Mime Data is a module which contains the base MIME
2657and Application database for GNOME. The data stored by this module is
2658designed to be accessed through the MIME functions in GnomeVFS.")
2659 (license license:gpl2+)))
2660
2661
2662(define-public gnome-vfs
2663 (package
2664 (name "gnome-vfs")
2665 (version "2.24.4")
2666 (source (origin
2667 (method url-fetch)
b38e45d8
EB
2668 (uri (string-append "mirror://gnome/sources/" name "/"
2669 (version-major+minor version) "/"
2670 name "-" version ".tar.bz2"))
5698b8b8 2671 (sha256
9e12bc34
MW
2672 (base32
2673 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2674 (build-system gnu-build-system)
2675 (arguments
db5127d8 2676 `(#:phases
dc1d3cde
KK
2677 (modify-phases %standard-phases
2678 (add-before 'configure 'ignore-deprecations
2679 (lambda _
2680 (substitute* '("libgnomevfs/Makefile.in"
2681 "daemon/Makefile.in")
2682 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2683 #t))
2684 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2685 (lambda _
2686 (substitute* "test/test-async-cancel.c"
2687 (("EXIT_FAILURE") "77"))
2688 #t)))))
2e6ecc5c 2689 (inputs `(("libxml2" ,libxml2)
5698b8b8 2690 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2691 ("gconf" ,gconf)
2692 ("gnome-mime-data" ,gnome-mime-data)
2693 ("zlib" ,zlib)))
2694 (native-inputs
221ed17a
EB
2695 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2696 ("intltool" ,intltool)
5698b8b8
JD
2697 ("pkg-config" ,pkg-config)))
2698 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2699 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2700 (description
2701 "GnomeVFS is the core library used to access files and folders in GNOME
2702applications. It provides a file system abstraction which allows applications
2703to access local and remote files with a single consistent API.")
5698b8b8
JD
2704 (license license:lgpl2.0+)))
2705
2706
2707
2708(define-public libgnome
2709 (package
2710 (name "libgnome")
2711 (version "2.32.1")
2712 (source (origin
2713 (method url-fetch)
b38e45d8
EB
2714 (uri (string-append "mirror://gnome/sources/" name "/"
2715 (version-major+minor version) "/"
2716 name "-" version ".tar.bz2"))
5698b8b8
JD
2717 (sha256
2718 (base32
17c3eea7
LC
2719 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2720 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2721 (build-system gnu-build-system)
2722 (arguments
2723 `(#:phases
dc1d3cde
KK
2724 (modify-phases %standard-phases
2725 (add-before 'configure 'enable-deprecated
2726 (lambda _
2727 (substitute* "libgnome/Makefile.in"
2728 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2729 #t)))))
25338e9f 2730 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2731 (native-inputs
221ed17a
EB
2732 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2733 ("intltool" ,intltool)
5698b8b8
JD
2734 ("pkg-config" ,pkg-config)))
2735 ;; The following are listed as Required in the .pc file
2736 ;; (except for libcanberra -- which seems to be oversight on the part
2737 ;; of the upstream developers -- anything that links against libgnome,
2738 ;; must also link against libcanberra
2739 (propagated-inputs
2740 `(("libcanberra" ,libcanberra)
2741 ("libbonobo" ,libbonobo)
2742 ("gconf" ,gconf)
a640d3d5
LC
2743 ("gnome-vfs" ,gnome-vfs)
2744 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2745 (home-page "https://developer.gnome.org/libgnome/")
2746 (synopsis "Useful routines for building applications")
2747 (description "The libgnome library provides a number of useful routines
2748for building modern applications, including session management, activation of
2749files and URIs, and displaying help.")
2750 (license license:lgpl2.0+)))
2751
2752
2753(define-public libart-lgpl
2754 (package
2755 (name "libart-lgpl")
76c9b6aa 2756 (version "2.3.21")
5698b8b8
JD
2757 (source (origin
2758 (method url-fetch)
2759 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2760 (string-append "mirror://gnome/sources/" upstream-name "/"
2761 (version-major+minor version) "/"
2762 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2763 (sha256
2764 (base32
76c9b6aa 2765 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2766 (build-system gnu-build-system)
2767 (native-inputs
2768 `(("pkg-config" ,pkg-config)))
2769 (home-page "https://people.gnome.org/~mathieu/libart")
2770 (synopsis "2D drawing library")
2e6ecc5c 2771 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2772high-quality vector-based 2D library with antialiasing and alpha composition.")
2773 (license license:lgpl2.0+)))
2774
2775
2776
2777(define-public libgnomecanvas
2778 (package
2779 (name "libgnomecanvas")
2780 (version "2.30.3")
2781 (source (origin
2782 (method url-fetch)
b38e45d8
EB
2783 (uri (string-append "mirror://gnome/sources/" name "/"
2784 (version-major+minor version) "/"
2785 name "-" version ".tar.gz"))
5698b8b8
JD
2786 (sha256
2787 (base32
2788 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2789 (build-system gnu-build-system)
2790 ;; Mentioned as Required in the .pc file
2791 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2792 ("gtk+" ,gtk+-2)))
2793 (native-inputs
2794 `(("intltool" ,intltool)
221ed17a 2795 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2796 ("pkg-config" ,pkg-config)))
2797 (home-page "https://developer.gnome.org/libgnomecanvas/")
2798 (synopsis "Flexible widget for creating interactive structured graphics")
2799 (description "The GnomeCanvas widget provides a flexible widget for
2800creating interactive structured graphics.")
2801 (license license:lgpl2.0+)))
2802
eadc734e
RW
2803(define-public libgnomecanvasmm
2804 (package
2805 (name "libgnomecanvasmm")
2806 (version "2.26.0")
2807 (source (origin
2808 (method url-fetch)
2809 (uri (string-append "mirror://gnome/sources/" name "/"
2810 (version-major+minor version) "/"
2811 name "-" version ".tar.bz2"))
2812 (sha256
2813 (base32
2814 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2815 (build-system gnu-build-system)
2816 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2817 (native-inputs
2818 `(("gtkmm-2" ,gtkmm-2)
2819 ("pkg-config" ,pkg-config)))
8e933cb3 2820 (home-page "https://gtkmm.org")
eadc734e
RW
2821 (synopsis "C++ bindings to the GNOME Canvas library")
2822 (description "C++ bindings to the GNOME Canvas library.")
2823 (license license:lgpl2.0+)))
2824
5698b8b8
JD
2825(define-public libgnomeui
2826 (package
2827 (name "libgnomeui")
2828 (version "2.24.5")
2829 (source (origin
2830 (method url-fetch)
b38e45d8
EB
2831 (uri (string-append "mirror://gnome/sources/" name "/"
2832 (version-major+minor version) "/"
2833 name "-" version ".tar.bz2"))
8fa1872a 2834 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2835 (sha256
2836 (base32
2837 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2838 (build-system gnu-build-system)
2839 ;; Mentioned as Required in the .pc file
0a38a497
AE
2840 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2841 ("libgnome" ,libgnome)
2842 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2843 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2844 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2845 ("popt" ,popt)
2846 ("libbonobo" ,libbonobo)
2847 ("libxml2" ,libxml2)
2848 ("libglade" ,libglade)))
2849 (native-inputs
221ed17a
EB
2850 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2851 ("intltool" ,intltool)
5698b8b8
JD
2852 ("pkg-config" ,pkg-config)))
2853 (home-page "https://developer.gnome.org/libgnomeui/")
2854 (synopsis "Additional widgets for applications")
35b9e423 2855 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2856applications. Many of the widgets from libgnomeui have already been
2857ported to GTK+.")
5698b8b8
JD
2858 (license license:lgpl2.0+)))
2859
2860(define-public libglade
2861 (package
2862 (name "libglade")
2863 (version "2.6.4")
2864 (source (origin
2865 (method url-fetch)
b38e45d8
EB
2866 (uri (string-append "mirror://gnome/sources/" name "/"
2867 (version-major+minor version) "/"
2868 name "-" version ".tar.bz2"))
5698b8b8
JD
2869 (sha256
2870 (base32
2871 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2872 (build-system gnu-build-system)
2873 (inputs
92dcc23d
AE
2874 `(("python" ,python))) ;; needed for the optional libglade-convert program
2875 (propagated-inputs
5698b8b8 2876 `(("gtk+-2" ,gtk+-2)
92dcc23d 2877 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2878 (native-inputs
2879 `(("pkg-config" ,pkg-config)))
2880 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2881 (synopsis "Load glade interfaces and access the glade built widgets")
2882 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2883graphical interfaces described in glade files and for accessing the
2884widgets built in the loading process.")
2885 (license license:gpl2+))) ; This is correct. GPL not LGPL
2886
2887(define-public libgnomeprint
eb497b66
LC
2888 ;; This library has been deprecated since 2006; see
2889 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2890 (package
2891 (name "libgnomeprint")
d19db454 2892 (version "2.18.8")
5698b8b8
JD
2893 (source (origin
2894 (method url-fetch)
b38e45d8
EB
2895 (uri (string-append "mirror://gnome/sources/" name "/"
2896 (version-major+minor version) "/"
2897 name "-" version ".tar.bz2"))
5698b8b8
JD
2898 (sha256
2899 (base32
d19db454 2900 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2901 (build-system gnu-build-system)
2902 (inputs
2903 `(("popt" ,popt)
2904 ("libart-lgpl" ,libart-lgpl)
2905 ("gtk+" ,gtk+-2)
44add1ce 2906 ("libxml2" ,libxml2)))
5698b8b8
JD
2907 (native-inputs
2908 `(("intltool" ,intltool)
221ed17a 2909 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2910 ("pkg-config" ,pkg-config)))
2911 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2912 (synopsis "Printing framework for GNOME")
eb497b66
LC
2913 (description
2914 "GNOME-print was a printing framework for GNOME. It has been deprecated
2915since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2916 (license license:lgpl2.0+)))
2917
2918
2919(define-public libgnomeprintui
eb497b66 2920 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2921 (package
2922 (name "libgnomeprintui")
36053d7f 2923 (version "2.18.6")
5698b8b8
JD
2924 (source (origin
2925 (method url-fetch)
b38e45d8
EB
2926 (uri (string-append "mirror://gnome/sources/" name "/"
2927 (version-major+minor version) "/"
2928 name "-" version ".tar.bz2"))
5698b8b8
JD
2929 (sha256
2930 (base32
36053d7f 2931 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2932 (build-system gnu-build-system)
2933 ;; Mentioned as Required in the .pc file
2934 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2935 (inputs `(("gtk+" ,gtk+-2)
2936 ("glib" ,glib)
2937 ("gnome-icon-theme" ,gnome-icon-theme)
2938 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2939 ("libxml2" ,libxml2)))
5698b8b8
JD
2940 (native-inputs
2941 `(("intltool" ,intltool)
2942 ("pkg-config" ,pkg-config)))
2943 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2944 (synopsis "Printing framework for GNOME")
eb497b66 2945 (description (package-description libgnomeprint))
5698b8b8
JD
2946 (license license:lgpl2.0+)))
2947
5698b8b8
JD
2948(define-public libbonoboui
2949 (package
2950 (name "libbonoboui")
2951 (version "2.24.5")
2952 (source (origin
2953 (method url-fetch)
b38e45d8
EB
2954 (uri (string-append "mirror://gnome/sources/" name "/"
2955 (version-major+minor version) "/"
2956 name "-" version ".tar.bz2"))
5698b8b8
JD
2957 (sha256
2958 (base32
2959 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2960 (build-system gnu-build-system)
2961 (arguments
2962 `(#:phases
dc1d3cde
KK
2963 (modify-phases %standard-phases
2964 (add-before 'check 'start-xserver
2965 (lambda* (#:key inputs #:allow-other-keys)
2966 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2967 (disp ":1"))
2968
2969 (setenv "HOME" (getcwd))
2970 (setenv "DISPLAY" disp)
2971 ;; There must be a running X server and make check doesn't start one.
2972 ;; Therefore we must do it.
2973 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2974 ;; Mentioned as Required by the .pc file
2975 (propagated-inputs `(("libxml2" ,libxml2)))
2976 (inputs
2977 `(("popt" ,popt)
2978 ("pangox-compat" ,pangox-compat)
2979 ("libgnome" ,libgnome)
2980 ("libgnomecanvas" ,libgnomecanvas)
2981 ("libglade" ,libglade)))
2982 (native-inputs
221ed17a
EB
2983 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2984 ("intltool" ,intltool)
ff337525 2985 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2986 ("pkg-config" ,pkg-config)))
2987 (home-page "https://developer.gnome.org/libbonoboui/")
2988 (synopsis "Some user interface controls using Bonobo")
2989 (description "The Bonobo UI library provides a number of user interface
2990controls using the Bonobo component framework.")
2991 (license license:lgpl2.0+)))
2992
fecbf86e
SB
2993(define-public libwnck
2994 (package
2995 (name "libwnck")
d3b40696 2996 (version "3.32.0")
fecbf86e
SB
2997 (source (origin
2998 (method url-fetch)
2999 (uri (string-append "mirror://gnome/sources/" name "/"
3000 (version-major+minor version) "/"
3001 name "-" version ".tar.xz"))
3002 (sha256
ad9b8987 3003 (base32
d3b40696
KK
3004 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3005 (build-system meson-build-system)
fecbf86e
SB
3006 (native-inputs
3007 `(("pkg-config" ,pkg-config)
d3b40696
KK
3008 ("glib" ,glib "bin") ; for glib-mkenums
3009 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
3010 ("intltool" ,intltool)))
3011 (propagated-inputs
427476d5
SB
3012 `(("gtk+" ,gtk+)
3013 ("libxres" ,libxres)
3014 ("startup-notification" ,startup-notification)))
fecbf86e
SB
3015 (home-page "https://developer.gnome.org/libwnck/")
3016 (synopsis "Window Navigator Construction Kit")
3017 (description
3018 "Libwnck is the Window Navigator Construction Kit, a library for use in
3019writing pagers, tasklists, and more generally applications that are dealing
3020with window management. It tries hard to respect the Extended Window Manager
3021Hints specification (EWMH).")
3022 (license license:lgpl2.0+)))
3023
3024;; stable version for gtk2, required by xfwm4.
dbb7a081 3025(define-public libwnck-2
fecbf86e
SB
3026 (package (inherit libwnck)
3027 (name "libwnck")
3028 (version "2.30.7")
3029 (source (origin
3030 (method url-fetch)
3031 (uri (string-append "mirror://gnome/sources/" name "/"
3032 (version-major+minor version) "/"
3033 name "-" version ".tar.xz"))
3034 (sha256
3035 (base32
3036 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
3037 (build-system gnu-build-system)
3038 (native-inputs
3039 `(("pkg-config" ,pkg-config)
3040 ("intltool" ,intltool)))
fecbf86e 3041 (propagated-inputs
427476d5
SB
3042 `(("gtk+" ,gtk+-2)
3043 ("libxres" ,libxres)
3044 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3045
3046(define-public goffice
3047 (package
3048 (name "goffice")
09abffcc 3049 (version "0.10.46")
b804c61e
JD
3050 (source (origin
3051 (method url-fetch)
16243f0b 3052 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3053 (version-major+minor version) "/"
16243f0b 3054 "goffice-" version ".tar.xz"))
b804c61e 3055 (sha256
09abffcc 3056 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3057 (build-system gnu-build-system)
72a06d3e 3058 (outputs '("out"
355420c6 3059 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3060 (arguments
3061 '(#:configure-flags (list (string-append "--with-html-dir="
3062 (assoc-ref %outputs "doc")
3063 "/share/gtk-doc/html"))))
b804c61e
JD
3064 (inputs
3065 `(("gtk+" ,gtk+)
3066 ("libgsf" ,libgsf)
3067 ("librsvg" ,librsvg)
3068 ("libxslt" ,libxslt)
3069 ("libxml2" ,libxml2)))
3070 (native-inputs
3071 `(("intltool" ,intltool)
f280cdb1 3072 ("glib" ,glib "bin")
b804c61e
JD
3073 ("pkg-config" ,pkg-config)))
3074 (home-page "https://developer.gnome.org/goffice/")
3075 (synopsis "Document-centric objects and utilities")
3076 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3077 (license
b804c61e
JD
3078 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3079 ;; Note: NOT LGPL
3080 (list license:gpl2 license:gpl3))))
3081
c024ae36
RW
3082(define-public goffice-0.8
3083 (package (inherit goffice)
3084 (version "0.8.17")
3085 (source (origin
3086 (method url-fetch)
3087 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3088 (version-major+minor version) "/"
3089 (package-name goffice) "-" version ".tar.xz"))
3090 (sha256
3091 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3092 (arguments
3093 `(#:phases
dc1d3cde
KK
3094 (modify-phases %standard-phases
3095 (add-after 'unpack 'fix-pcre-check
3096 (lambda _
3097 ;; Only glib.h can be included directly. See
3098 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3099 (substitute* "configure"
3100 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3101
3102 ,@(package-arguments goffice)))
c024ae36
RW
3103 (propagated-inputs
3104 ;; libgoffice-0.8.pc mentions libgsf-1
3105 `(("libgsf" ,libgsf)))
3106 (inputs
3107 `(("gtk" ,gtk+-2)
3108 ,@(alist-delete "gtk" (package-inputs goffice))))))
3109
b804c61e
JD
3110(define-public gnumeric
3111 (package
3112 (name "gnumeric")
f0517b5d 3113 (version "1.12.46")
b804c61e
JD
3114 (source (origin
3115 (method url-fetch)
b7fd0217 3116 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3117 (version-major+minor version) "/"
b7fd0217 3118 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3119 (sha256
3120 (base32
f0517b5d 3121 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3122 (build-system glib-or-gtk-build-system)
b804c61e
JD
3123 (arguments
3124 `(;; The gnumeric developers don't worry much about failing tests.
3125 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3126 #:tests? #f
b804c61e 3127 #:phases
7bcbd40d
EF
3128 (modify-phases %standard-phases
3129 (add-before
3130 'configure 'pre-conf
3131 (lambda* (#:key outputs #:allow-other-keys)
3132 ;; Make install tries to write into the directory of goffice
3133 ;; I am informed that this only affects the possibility to embed a
3134 ;; spreadsheet inside an Abiword document. So presumably when we
3135 ;; package Abiword we'll have to refer it to this directory.
3136 (substitute* "configure"
3137 (("^GOFFICE_PLUGINS_DIR=.*")
3138 (string-append "GOFFICE_PLUGINS_DIR="
3139 (assoc-ref outputs "out")
3140 "/goffice/plugins"))))))))
b804c61e
JD
3141 (inputs
3142 `(("glib" ,glib)
3143 ("gtk+" ,gtk+)
3144 ("goffice" ,goffice)
3145 ("libgsf" ,libgsf)
7bcbd40d 3146 ("librsvg" ,librsvg)
b804c61e 3147 ("libxml2" ,libxml2)
7bcbd40d 3148 ("libxslt" ,libxslt)
2e4c5457 3149 ("python" ,python-2)
6983ba56 3150 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3151 ("zlib" ,zlib)))
3152 (native-inputs
6983ba56 3153 `(("bison" ,bison)
1ed398d1 3154 ("docbook-xml" ,docbook-xml)
6983ba56 3155 ("intltool" ,intltool)
785fcb62 3156 ("itstool" ,itstool)
b9663471 3157 ("glib:bin" ,glib "bin")
b804c61e
JD
3158 ("pkg-config" ,pkg-config)))
3159 (home-page "http://www.gnumeric.org")
66672a45
LC
3160 (synopsis "Spreadsheet application")
3161 (description
3162 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3163interoperable with other spreadsheet applications. It has a vast array of
3164features beyond typical spreadsheet functionality, such as support for linear
3165and non-linear solvers, statistical analysis, and telecommunication
3166engineering.")
3167 (license
b804c61e
JD
3168 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3169 (list license:gpl2 license:gpl3))))
6f885c05
FB
3170
3171(define-public gnome-themes-standard
3172 (package
3173 (name "gnome-themes-standard")
0b7b8fb0 3174 (version "3.22.3")
6f885c05
FB
3175 (source
3176 (origin
3177 (method url-fetch)
2e6ecc5c 3178 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3179 (version-major+minor version) "/" name "-"
3180 version ".tar.xz"))
3181 (sha256
3182 (base32
0b7b8fb0 3183 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3184 (build-system gnu-build-system)
8ac70c7f
SB
3185 (arguments
3186 '(#:configure-flags
3187 ;; Don't create 'icon-theme.cache'.
3188 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3189 (true (string-append coreutils "/bin/true")))
3190 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3191 (inputs
3192 `(("gtk+" ,gtk+)
3193 ("gtk+-2" ,gtk+-2)
3194 ("librsvg" ,librsvg)
3195 ("libxml2" ,libxml2)
3196 ("glib" ,glib)))
3197 (native-inputs
3198 `(("intltool" ,intltool)
3199 ("glib:bin" ,glib "bin")
3200 ("pkg-config" ,pkg-config)))
6f885c05
FB
3201 (home-page "https://launchpad.net/gnome-themes-standard")
3202 (synopsis "Default GNOME 3 themes")
3203 (description
3204 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3205 (license license:lgpl2.1+)))
5a659a48 3206
df90c701
RW
3207(define-public seahorse
3208 (package
3209 (name "seahorse")
1efcf722 3210 (version "3.34")
df90c701
RW
3211 (source
3212 (origin
3213 (method url-fetch)
3214 (uri (string-append "mirror://gnome/sources/" name "/"
3215 (version-major+minor version) "/" name "-"
3216 version ".tar.xz"))
3217 (sha256
3218 (base32
1efcf722 3219 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3220 (build-system meson-build-system)
3221 (arguments
bcea3c11
KK
3222 '(#:glib-or-gtk? #t
3223 #:phases
af561664
MÁAV
3224 (modify-phases %standard-phases
3225 (add-after 'unpack 'skip-gtk-update-icon-cache
3226 ;; Don't create 'icon-theme.cache'.
3227 (lambda _
3228 (substitute* "build-aux/meson_post_install.py"
3229 (("gtk-update-icon-cache") "true"))
3230 #t)))))
df90c701
RW
3231 (inputs
3232 `(("gtk+" ,gtk+)
3233 ("gcr" ,gcr)
34b979b9 3234 ("gnupg" ,gnupg)
df90c701 3235 ("gpgme" ,gpgme)
34b979b9 3236 ("openldap" ,openldap)
4a1bf090 3237 ("openssh" ,openssh)
af561664 3238 ("avahi" ,avahi)
bcea3c11 3239 ("libpwquality" ,libpwquality)
34b979b9
EF
3240 ("libsecret" ,libsecret)
3241 ("libsoup" ,libsoup)))
df90c701 3242 (native-inputs
af561664 3243 `(("gettext" ,gettext-minimal)
df90c701
RW
3244 ("glib:bin" ,glib "bin")
3245 ("itstool" ,itstool)
bcb354ad 3246 ("pkg-config" ,pkg-config)
af561664 3247 ("vala" ,vala)
bcb354ad 3248 ("xmllint" ,libxml2)))
bcea3c11 3249 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3250 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3251 (description
3252 "Seahorse is a GNOME application for managing encryption keys and
3253passwords in the GNOME keyring.")
3254 (license license:gpl2+)))
3255
5a659a48
SB
3256(define-public vala
3257 (package
3258 (name "vala")
b92a36db 3259 (version "0.46.5")
5a659a48
SB
3260 (source (origin
3261 (method url-fetch)
3262 (uri (string-append "mirror://gnome/sources/" name "/"
3263 (version-major+minor version) "/"
3264 name "-" version ".tar.xz"))
3265 (sha256
3266 (base32
b92a36db 3267 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3268 (build-system gnu-build-system)
1ea90625
SB
3269 (arguments
3270 '(#:phases
3271 (modify-phases %standard-phases
f4925a4f 3272 (add-before 'check 'pre-check
1ea90625
SB
3273 (lambda _
3274 (setenv "CC" "gcc")
8839b6be
RW
3275 (substitute* "valadoc/tests/testrunner.sh"
3276 (("export PKG_CONFIG_PATH=" m)
3277 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3278 ;; For missing '/etc/machine-id'.
3279 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3280 #t)))))
5a659a48
SB
3281 (native-inputs
3282 `(("pkg-config" ,pkg-config)
3283 ("flex" ,flex)
3284 ("bison" ,bison)
3285 ("xsltproc" ,libxslt)
3286 ("dbus" ,dbus) ; for dbus tests
3287 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3288 (inputs
3289 `(("graphviz" ,graphviz)))
5a659a48 3290 (propagated-inputs
8839b6be 3291 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3292 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3293 (synopsis "Compiler for the GObject type system")
3294 (description
3295 "Vala is a programming language that aims to bring modern programming
3296language features to GNOME developers without imposing any additional runtime
3297requirements and without using a different ABI compared to applications and
3298libraries written in C.")
3299 (license license:lgpl2.1+)))
ea57378f 3300
2dcaa760
RP
3301(define-public vala-0.48
3302 (package
3303 (inherit vala)
3304 (version "0.48.6")
3305 (source (origin
3306 (method url-fetch)
3307 (uri (string-append "mirror://gnome/sources/vala/"
3308 (version-major+minor version) "/"
3309 "vala-" version ".tar.xz"))
3310 (sha256
3311 (base32
3312 "01wppzgacdmp8dgf8047myz1any2yffmrhgl8kqf1q0c0gnhi3fi"))))))
3313
ea57378f
SB
3314(define-public vte
3315 (package
3316 (name "vte")
663def11 3317 (version "0.60.2")
ea57378f
SB
3318 (source (origin
3319 (method url-fetch)
ac87ffb8 3320 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3321 (version-major+minor version) "/"
ac87ffb8 3322 "vte-" version ".tar.xz"))
ea57378f
SB
3323 (sha256
3324 (base32
663def11 3325 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
68c47474 3326 (build-system meson-build-system)
663def11
RPG
3327 (arguments
3328 `(#:configure-flags
11491e1b
DM
3329 '("-Dvapi=true"
3330 "-D_systemd=false")))
ea57378f
SB
3331 (native-inputs
3332 `(("pkg-config" ,pkg-config)
4684580a 3333 ("gettext" ,gettext-minimal)
ea57378f
SB
3334 ("vala" ,vala)
3335 ("gobject-introspection" ,gobject-introspection)
68c47474 3336 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3337 ("gperf" ,gperf)
ea57378f
SB
3338 ("xmllint" ,libxml2)))
3339 (propagated-inputs
68c47474
TGR
3340 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3341 ("gnutls" ,gnutls) ; ditto
3342 ("pcre2" ,pcre2))) ; ditto
f032d0be 3343 (home-page "https://www.gnome.org/")
ea57378f
SB
3344 (synopsis "Virtual Terminal Emulator")
3345 (description
3346 "VTE is a library (libvte) implementing a terminal emulator widget for
3347GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3348gnome-terminal, but can also be used to embed a console/terminal in games,
3349editors, IDEs, etc.")
3350 (license license:lgpl2.1+)))
3351
c44fb4df
MO
3352(define-public vte-ng
3353 (package
3354 (inherit vte)
3355 (name "vte-ng")
24f4fcbe 3356 (version "0.58.2.a")
afd90f8d 3357 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3358 (source (origin
3359 (method git-fetch)
3360 (uri (git-reference (url home-page) (commit version)))
3361 (file-name (git-file-name name version))
3362 (sha256
3363 (base32
24f4fcbe
MB
3364 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3365 (build-system meson-build-system)
c44fb4df
MO
3366 (native-inputs
3367 `(("gtk-doc" ,gtk-doc)
c44fb4df 3368 ,@(package-native-inputs vte)))
c44fb4df 3369 (arguments
24f4fcbe 3370 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3371 (synopsis "Enhanced VTE terminal widget")
3372 (description
3373 "VTE is a library (libvte) implementing a terminal emulator widget for
3374GTK+, this fork provides additional functions exposed for keyboard text
3375selection and URL hints.")))
3376
2776d72c
EF
3377;; provides vte 2.90, required for some terminal emulators
3378;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3379;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3380;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3381;; pantheon-terminal, roxterm are not currently packaged
3382(define-public vte-0.36
3383 (package (inherit vte)
3384 (name "vte")
3385 (version "0.36.5")
3386 (source (origin
3387 (method url-fetch)
3388 (uri (string-append "mirror://gnome/sources/" name "/"
3389 (version-major+minor version) "/"
3390 name "-" version ".tar.xz"))
3391 (sha256
3392 (base32
3393 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3394 (propagated-inputs
3395 `(("gtk" ,gtk+)
3396 ("ncurses" ,ncurses)))))
3397
ea57378f
SB
3398;; stable version for gtk2, required by xfce4-terminal.
3399(define-public vte/gtk+-2
3400 (package (inherit vte)
3401 (name "vte")
3402 (version "0.28.2")
3403 (source (origin
3404 (method url-fetch)
3405 (uri (string-append "mirror://gnome/sources/" name "/"
3406 (version-major+minor version) "/"
3407 name "-" version ".tar.xz"))
3408 (sha256
3409 (base32
7d48938a
EF
3410 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3411 (patches (search-patches
3412 "vte-CVE-2012-2738-pt1.patch"
3413 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3414 (build-system gnu-build-system)
ea57378f
SB
3415 (arguments
3416 '(#:configure-flags '("--disable-python")))
3417 (native-inputs
3418 `(("pkg-config" ,pkg-config)
3419 ("intltool" ,intltool)
3420 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3421 (propagated-inputs
3422 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3423 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3424
cce0da5e
TD
3425(define-public vinagre
3426 (package
3427 (name "vinagre")
3428 (version "3.22.0")
3429 (source (origin
3430 (method url-fetch)
3431 (uri (string-append "mirror://gnome/sources/" name "/"
3432 (version-major+minor version) "/"
3433 name "-" version ".tar.xz"))
684f97f8
EF
3434 (patches (search-patches "vinagre-newer-freerdp.patch"
3435 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3436 (sha256
3437 (base32
3438 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3439 (build-system glib-or-gtk-build-system)
684f97f8 3440 (arguments
7f486d25
MC
3441 ;; Disable -Werror and such, to avoid build failures on compilation
3442 ;; warnings.
3443 '(#:configure-flags '("--enable-compile-warnings=minimum")
3444 #:phases
684f97f8 3445 (modify-phases %standard-phases
1839768c
EF
3446 (add-before 'install 'skip-gtk-update-icon-cache
3447 (lambda _
3448 ;; Don't create 'icon-theme.cache'
3449 (substitute* (find-files "." "^Makefile$")
3450 (("gtk-update-icon-cache") (which "true")))
3451 #t))
684f97f8
EF
3452 (add-after 'unpack 'patch-configure
3453 (lambda _
3454 (substitute* "configure"
3455 (("freerdp") "freerdp2"))
3456 #t)))))
cce0da5e
TD
3457 (native-inputs
3458 `(("pkg-config" ,pkg-config)
3459 ("intltool" ,intltool)
3460 ("itstool" ,itstool)
1839768c 3461 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3462 (inputs
3463 `(("libxml2" ,libxml2)
3464 ("gtk-vnc" ,gtk-vnc)
3465 ("gnome-keyring" ,gnome-keyring)
3466 ("libsecret" ,libsecret)
3467 ("freerdp" ,freerdp)
3468 ("spice" ,spice)
3469 ("spice-gtk" ,spice-gtk)
3470 ("telepathy-glib" ,telepathy-glib)
3471 ("vte" ,vte)))
cce0da5e
TD
3472 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3473 (synopsis "Remote desktop viewer for GNOME")
3474 (description "Vinagre is a remote display client supporting the VNC, SPICE
3475and RDP protocols.")
3476 (license license:gpl3+)))
3477
b47e1b20
FB
3478(define-public dconf
3479 (package
3480 (name "dconf")
7f4d075d 3481 (version "0.34.0")
b47e1b20
FB
3482 (source (origin
3483 (method url-fetch)
3484 (uri (string-append
2e6ecc5c 3485 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3486 (version-major+minor version) "/"
3487 name "-" version ".tar.xz"))
46c3a08b 3488 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3489 (sha256
f05c809f 3490 (base32
7f4d075d 3491 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 3492 (build-system meson-build-system)
bc036f4c
MB
3493 (propagated-inputs
3494 ;; In Requires of dconf.pc.
3495 `(("glib" ,glib)))
b47e1b20
FB
3496 (inputs
3497 `(("gtk+" ,gtk+)
bc036f4c 3498 ("dbus" ,dbus)))
b47e1b20 3499 (native-inputs
1e33331c
MB
3500 `(("bash-completion" ,bash-completion)
3501 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3502 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3503 ("docbook-xml" ,docbook-xml-4.2)
3504 ("docbook-xsl" ,docbook-xsl)
35fa923d 3505 ("glib:bin" ,glib "bin")
03676d6f 3506 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3507 ("pkg-config" ,pkg-config)
3508 ("vala" ,vala)))
b47e1b20
FB
3509 (arguments
3510 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3511 ; or /etc/machine-id.
35fa923d
MB
3512 #:glib-or-gtk? #t
3513 #:configure-flags '("-Denable-gtk-doc=true")))
79d7b527 3514 (home-page "https://developer.gnome.org/dconf/")
b47e1b20
FB
3515 (synopsis "Low-level GNOME configuration system")
3516 (description "Dconf is a low-level configuration system. Its main purpose
3517is to provide a backend to GSettings on platforms that don't already have
3518configuration storage systems.")
e20e6b40 3519 (license license:lgpl2.1+)))
109da1c0
AE
3520
3521(define-public json-glib
3522 (package
3523 (name "json-glib")
4115e8ea 3524 (version "1.4.4")
109da1c0
AE
3525 (source (origin
3526 (method url-fetch)
3527 (uri (string-append "mirror://gnome/sources/" name "/"
3528 (version-major+minor version) "/"
3529 name "-" version ".tar.xz"))
3530 (sha256
3531 (base32
4115e8ea 3532 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3533 (build-system meson-build-system)
109da1c0 3534 (native-inputs
98afa184
MB
3535 `(("gettext" ,gettext-minimal)
3536 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3537 ("gobject-introspection" ,gobject-introspection)
3538 ("pkg-config" ,pkg-config)))
3539 (propagated-inputs
88c6b580 3540 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3541 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3542 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3543 (description
3544 "JSON-GLib is a C library based on GLib providing serialization and
3545deserialization support for the JavaScript Object Notation (JSON) format
3546described by RFC 4627. It provides parser and generator GObject classes and
3547various wrappers for the complex data types employed by JSON, such as arrays
3548and objects.")
109da1c0 3549 (license license:lgpl2.1+)))
6f96a359
SB
3550
3551(define-public libxklavier
3552 (package
3553 (name "libxklavier")
5f39050b 3554 (version "5.4")
6f96a359 3555 (source (origin
5f39050b 3556 ;; Note: There's no tarball at ftp.gnome.org for this version.
3557 (method git-fetch)
3558 (uri (git-reference
3559 (url "https://anongit.freedesktop.org/git/libxklavier")
3560 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3561 (sha256
3562 (base32
5f39050b 3563 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3564 (file-name (git-file-name name version))))
6f96a359
SB
3565 (build-system gnu-build-system)
3566 (arguments
778d6b52 3567 '(#:configure-flags
6f96a359
SB
3568 (list (string-append "--with-xkb-base="
3569 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3570 "/share/X11/xkb")
3571 "--disable-xmodmap-support")))
6f96a359
SB
3572 (native-inputs
3573 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3574 ("gobject-introspection" ,gobject-introspection)
5f39050b 3575 ("pkg-config" ,pkg-config)
3576 ("gtk-doc" ,gtk-doc)
3577 ("intltool" ,intltool)
3578 ("which" ,which)
3579 ("autoconf" ,autoconf)
3580 ("automake" ,automake)
3581 ("libtool" ,libtool)))
6f96a359
SB
3582 (propagated-inputs
3583 ;; Required by libxklavier.pc.
3584 `(("glib" ,glib)
3585 ("libxml2" ,libxml2)))
3586 (inputs
3587 `(("iso-codes" ,iso-codes)
3588 ("libxi" ,libxi)
3589 ("libxkbfile" ,libxkbfile)
3590 ("xkbcomp" ,xkbcomp)
3591 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3592 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3593 (synopsis "High-level API for X Keyboard Extension")
3594 (description
3595 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3596Extension known as XKB. This library is intended to support XFree86 and other
3597commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3598indicators etc).")
3599 (license license:lgpl2.0+)))
619936a4
LC
3600
3601(define-public python2-rsvg
3602 ;; XXX: This is actually a subset of gnome-python-desktop.
3603 (package
3604 (name "python2-rsvg")
3605 (version "2.32.0")
3606 (source
3607 (origin
3608 (method url-fetch)
3609 (uri (string-append
3610 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3611 version ".tar.bz2"))
3612 (sha256
3613 (base32
3614 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3615 (build-system gnu-build-system)
3616 (native-inputs
3617 `(("pkg-config" ,pkg-config)))
3618 (inputs
3619 `(("python" ,python-2)
3620 ("python2-pygtk" ,python2-pygtk)
3621 ("librsvg" ,librsvg)))
f032d0be 3622 (home-page "https://www.gnome.org")
619936a4
LC
3623 (synopsis "Python bindings to librsvg")
3624 (description
3ad75446 3625 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3626library.")
3627
3628 ;; This is the license of the rsvg bindings. The license of each module
3629 ;; of gnome-python-desktop is given in 'COPYING'.
3630 (license license:lgpl2.1+)))
a31a6d22 3631
f2ca414a
SB
3632(define-public glib-networking
3633 (package
3634 (name "glib-networking")
ea9f74b0 3635 (version "2.62.2")
f2ca414a
SB
3636 (source (origin
3637 (method url-fetch)
3638 (uri (string-append "mirror://gnome/sources/glib-networking/"
3639 (version-major+minor version) "/"
fb8fe1e8 3640 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3641 (sha256
3642 (base32
ea9f74b0 3643 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 3644 (build-system meson-build-system)
f2ca414a 3645 (arguments
0d75c64d 3646 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3647 (native-inputs
3648 `(("pkg-config" ,pkg-config)
3649 ("intltool" ,intltool)))
3650 (inputs
3651 `(("glib" ,glib)
3652 ("gnutls" ,gnutls)
4b8f1313 3653 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3654 (home-page "https://www.gnome.org")
f2ca414a
SB
3655 (synopsis "Network-related GIO modules")
3656 (description
3657 "This package contains various network related extensions for the GIO
3658library.")
3659 (license license:lgpl2.0+)))
3660
ca649680 3661(define-public rest
4510b2da 3662 (package
ca649680 3663 (name "rest")
a4194d16 3664 (version "0.8.1")
4510b2da
SB
3665 (source (origin
3666 (method url-fetch)
3667 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3668 (version-major+minor version) "/"
3669 name "-" version ".tar.xz"))
4510b2da
SB
3670 (sha256
3671 (base32
a4194d16 3672 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3673 (build-system gnu-build-system)
3674 (arguments
3675 '(#:tests? #f ; tests require internet connection
3676 #:configure-flags
3677 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3678 (native-inputs
3679 `(("glib-mkenums" ,glib "bin")
3680 ("gobject-introspection" ,gobject-introspection)
3681 ("pkg-config" ,pkg-config)))
3682 (propagated-inputs
3683 ;; rest-0.7.pc refers to all these.
3684 `(("glib" ,glib)
3685 ("libsoup" ,libsoup)
3686 ("libxml2" ,libxml2)))
24d6cc1d 3687 (home-page "https://www.gtk.org/")
4510b2da
SB
3688 (synopsis "RESTful web api query library")
3689 (description
3690 "This library was designed to make it easier to access web services that
3691claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3692libxml to ease remote use of the RESTful API.")
3693 (license license:lgpl2.1+)))
3694
6e1bb642
SB
3695(define-public libsoup
3696 (package
3697 (name "libsoup")
9a9cd9bc 3698 (version "2.70.0")
6e1bb642
SB
3699 (source (origin
3700 (method url-fetch)
3701 (uri (string-append "mirror://gnome/sources/libsoup/"
3702 (version-major+minor version) "/"
c1b79b36 3703 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3704 (sha256
3705 (base32
9a9cd9bc 3706 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3707 (build-system meson-build-system)
6e1bb642
SB
3708 (outputs '("out" "doc"))
3709 (arguments
2deb146f 3710 `(#:modules ((guix build utils)
eccaa8bf 3711 (guix build meson-build-system)
2deb146f
LC
3712 (ice-9 popen))
3713
f8026a79 3714 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3715 #:phases
3716 (modify-phases %standard-phases
eccaa8bf 3717 (add-after 'unpack 'adjust-tests
26c228f9 3718 (lambda _
eccaa8bf
MB
3719 ;; This test fails due to missing /etc/nsswitch.conf
3720 ;; in the build environment.
26c228f9
LC
3721 (substitute* "tests/socket-test.c"
3722 ((".*/sockets/unconnected.*") ""))
2deb146f 3723
f8026a79
MB
3724 ;; These fail because "subdomain.localhost" does not resolve in
3725 ;; the build environment.
3726 (substitute* "tests/hsts-test.c"
3727 ((".*/hsts/basic.*") "")
3728 ((".*/hsts/subdomains.*") "")
3729 ((".*/hsts/superdomain.*") "")
3730 ((".*/hsts/utf8-address.*") ""))
3731 (substitute* "tests/hsts-db-test.c"
3732 ((".*/hsts-db/subdomains.*") ""))
3733
2deb146f
LC
3734 ;; Generate a self-signed certificate that has "localhost" as its
3735 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3736 ;; 3.5.12, tests such as "ssl-tests" fail:
3737 ;;
3738 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3739 ;;
3740 ;; 'certtool' is interactive so we have to pipe it the answers.
3741 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3742 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3743 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3744 (for-each (lambda (line)
3745 (display line pipe)
3746 (newline pipe))
3747 '("" ;Common name
3748 "" ;UID
3749 "Guix" ;Organizational unit name
3750 "GNU" ;Organization name
3751 "" ;Locality name
3752 "" ;State or province
3753 "" ;Country
3754 "" ;subject's domain component (DC)
3755 "" ;E-mail
3756 "" ;serial number
3757 "-1" ;expiration time
3758 "N" ;belong to authority?
3759 "N" ;web client certificate?
3760 "N" ;IPsec IKE?
3761 "Y" ;web server certificate?
3762 "localhost" ;dnsName of subject
3763 "" ;dnsName of subject (end)
3764 "" ;URI of subject
3765 "127.0.0.1" ;IP address of subject
3766 "" ;signing?
06f5bc4e
MB
3767 "" ;encryption (RSA)?
3768 "" ;data encryption?
2deb146f
LC
3769 "" ;sign OCSP requests?
3770 "" ;sign code?
3771 "" ;time stamping?
3772 "" ;email protection?
3773 "" ;URI of the CRL distribution point
3774 "y" ;above info OK?
3775 ))
3776 (close-pipe pipe))
26c228f9 3777 #t))
eccaa8bf
MB
3778 (add-after 'install 'move-doc
3779 (lambda* (#:key outputs #:allow-other-keys)
3780 (let ((out (assoc-ref outputs "out"))
3781 (doc (assoc-ref outputs "doc")))
3782 (mkdir-p (string-append doc "/share"))
3783 (copy-recursively (string-append out "/share/gtk-doc")
3784 (string-append doc "/share/gtk-doc"))
3785 (delete-file-recursively (string-append out "/share/gtk-doc"))
3786 #t))))))
6e1bb642 3787 (native-inputs
26c228f9 3788 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3789 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3790 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3791 ("intltool" ,intltool)
3792 ("pkg-config" ,pkg-config)
3793 ("python" ,python-wrapper)
fd730590 3794 ("vala" ,vala)
53c41e95 3795 ("php" ,php)
6e1bb642 3796 ("curl" ,curl)
2deb146f 3797 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3798 ("httpd" ,httpd)))
3799 (propagated-inputs
3800 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3801 `(("brotli" ,google-brotli)
3802 ("glib" ,glib)
249846bf 3803 ("libpsl" ,libpsl)
eccaa8bf 3804 ("libxml2" ,libxml2)
f8026a79
MB
3805 ("sqlite" ,sqlite)
3806 ("zlib" ,zlib)))
eccaa8bf
MB
3807 (inputs
3808 `(("glib-networking" ,glib-networking)
3809 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3810 (home-page "https://live.gnome.org/LibSoup/")
3811 (synopsis "GLib-based HTTP Library")
3812 (description
3813 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3814and the GLib main loop, to integrate well with GNOME applications.")
3815 (license license:lgpl2.0+)))
3816
43b6b45e
MC
3817
3818;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3819(define-public libsoup-minimal
3820 (package
3821 (inherit libsoup)
3822 (name "libsoup-minimal")
3823 (outputs (delete "doc" (package-outputs libsoup)))
3824 (arguments
3825 (substitute-keyword-arguments (package-arguments libsoup)
3826 ((#:configure-flags configure-flags)
3827 `(delete "-Dgtk_doc=true" ,configure-flags))
3828 ((#:phases phases)
3829 `(modify-phases ,phases
3830 (delete 'move-doc)))))
3831 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3832
bba229a3
SB
3833(define-public libsecret
3834 (package
3835 (name "libsecret")
b05a2f62 3836 (version "0.20.3")
bba229a3
SB
3837 (source (origin
3838 (method url-fetch)
3839 (uri (string-append
896dcbc7
EF
3840 "mirror://gnome/sources/libsecret/"
3841 (version-major+minor version) "/"
0ada4e29 3842 "libsecret-" version ".tar.xz"))
bba229a3
SB
3843 (sha256
3844 (base32
b05a2f62 3845 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
3846 (build-system gnu-build-system)
3847 (outputs '("out" "doc"))
3848 (arguments
3849 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3850 #:configure-flags
3851 (list (string-append "--with-html-dir="
3852 (assoc-ref %outputs "doc")
3853 "/share/gtk-doc/html"))))
3854 (native-inputs
c06ef010
MB
3855 `(("gettext" ,gettext-minimal)
3856 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3857 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3858 ("pkg-config" ,pkg-config)
3859 ("vala" ,vala)
3860 ("xsltproc" ,libxslt)))
3861 ;; These are needed for the tests.
3862 ;; FIXME: Add gjs once available.
3863 ;("dbus" ,dbus)
3864 ;("python2" ,python-2)
3865 ;("python2-dbus" ,python2-dbus)
3866 ;("python2-pygobject" ,python2-pygobject)
3867 ;("python2-pygobject-2" ,python2-pygobject-2)))
3868 (propagated-inputs
3869 `(("glib" ,glib))) ; required by libsecret-1.pc
3870 (inputs
3871 `(("docbook-xsl" ,docbook-xsl)
3872 ("libgcrypt" ,libgcrypt)
3873 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3874 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3875 (synopsis "GObject bindings for \"Secret Service\" API")
3876 (description
3877 "Libsecret is a GObject based library for storing and retrieving passwords
3878and other secrets. It communicates with the \"Secret Service\" using DBus.")
3879 (license license:lgpl2.1+)))
3880
b6821ee0 3881(define-public five-or-more
3882 (package
3883 (name "five-or-more")
ee75b46f 3884 (version "3.32.2")
b6821ee0 3885 (source
3886 (origin
3887 (method url-fetch)
bf782bfc 3888 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3889 (version-major+minor version) "/"
bf782bfc 3890 "five-or-more-" version ".tar.xz"))
b6821ee0 3891 (sha256
ee75b46f 3892 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
3893 (build-system meson-build-system)
3894 (arguments
3895 '(#:glib-or-gtk? #t
3896 #:phases
3897 (modify-phases %standard-phases
3898 (add-after 'unpack 'skip-gtk-update-icon-cache
3899 (lambda _
3900 (substitute* "meson_post_install.py"
3901 (("gtk-update-icon-cache") (which "true")))
3902 #t)))))
b6821ee0 3903 (native-inputs
3904 `(("pkg-config" ,pkg-config)
d9795e93 3905 ("appstream-glib" ,appstream-glib)
b6821ee0 3906 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3907 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3908 ("intltool" ,intltool)
3909 ("itstool" ,itstool)
d9795e93 3910 ("vala" ,vala)
b6821ee0 3911 ("xmllint" ,libxml2)))
3912 (inputs
3913 `(("gtk+" ,gtk+)
d9795e93 3914 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3915 ("librsvg" ,librsvg)))
3916 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3917 (synopsis "Logic puzzle game")
3918 (description "Five or More is a game where you try to align
3919 five or more objects of the same color and shape causing them to disappear.
3920 On every turn more objects will appear, until the board is full.
3921 Try to last as long as possible.")
3922 (license license:gpl2+)))
3923
a31a6d22
SB
3924(define-public gnome-mines
3925 (package
3926 (name "gnome-mines")
d79e9b1b 3927 (version "3.34.0")
a31a6d22
SB
3928 (source
3929 (origin
3930 (method url-fetch)
3931 (uri (string-append "mirror://gnome/sources/" name "/"
3932 (version-major+minor version) "/"
3933 name "-" version ".tar.xz"))
3934 (sha256
3935 (base32
d79e9b1b 3936 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 3937 (build-system meson-build-system)
a31a6d22 3938 (arguments
2d817e41
KK
3939 '(#:glib-or-gtk? #t
3940 #:phases
a31a6d22 3941 (modify-phases %standard-phases
2d817e41
KK
3942 (add-after 'unpack 'skip-gtk-update-icon-cache
3943 (lambda _
3944 (substitute* "build-aux/meson_post_install.py"
3945 (("gtk-update-icon-cache") (which "true")))
3946 #t)))))
a31a6d22 3947 (native-inputs
8c0fab36
RW
3948 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3949 ("pkg-config" ,pkg-config)
a31a6d22
SB
3950 ("desktop-file-utils" ,desktop-file-utils)
3951 ("intltool" ,intltool)
bcb354ad 3952 ("itstool" ,itstool)
8c0fab36
RW
3953 ("vala" ,vala)
3954 ("yelp" ,yelp)
3955 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3956 (inputs
3957 `(("gtk+" ,gtk+)
73992962 3958 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3959 ("librsvg" ,librsvg)))
3960 (home-page "https://wiki.gnome.org/Apps/Mines")
3961 (synopsis "Minesweeper game")
3962 (description
3963 "Mines (previously gnomine) is a puzzle game where you locate mines
3964floating in an ocean using only your brain and a little bit of luck.")
3965 (license license:gpl2+)))
88f70665 3966
dfc407f3
KY
3967(define-public gnome-sudoku
3968 (package
3969 (name "gnome-sudoku")
857eb190 3970 (version "3.34.1")
dfc407f3
KY
3971 (source
3972 (origin
3973 (method url-fetch)
3974 (uri (string-append "mirror://gnome/sources/" name "/"
3975 (version-major+minor version) "/"
3976 name "-" version ".tar.xz"))
3977 (sha256
3978 (base32
857eb190 3979 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
3980 (build-system meson-build-system)
3981 (arguments
3982 '(#:glib-or-gtk? #t
3983 #:phases
3984 (modify-phases %standard-phases
3985 (add-after 'unpack 'skip-gtk-update-icon-cache
3986 (lambda _
3987 (substitute* "build-aux/post_install.py"
3988 (("gtk-update-icon-cache") (which "true")))
3989 #t)))))
dfc407f3
KY
3990 (native-inputs
3991 `(("pkg-config" ,pkg-config)
3992 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3993 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3994 ("intltool" ,intltool)
3995 ("itstool" ,itstool)
7dc728c4 3996 ("vala" ,vala)
dfc407f3
KY
3997 ("xmllint" ,libxml2)))
3998 (inputs
3999 `(("gtk+" ,gtk+)
4000 ("json-glib" ,json-glib)
4001 ("libgee" ,libgee)
4002 ("librsvg" ,librsvg)
4003 ("qqwing" ,qqwing)))
4004 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4005 (synopsis "Japanese logic game")
4006 (description
4007 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4008GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4009possible while still providing features that make playing difficult Sudoku
4010more fun.")
4011 (license license:gpl2+)))
4012
88f70665
AW
4013(define-public gnome-terminal
4014 (package
4015 (name "gnome-terminal")
80f6f9d8 4016 (version "3.34.2")
88f70665
AW
4017 (source
4018 (origin
4019 (method url-fetch)
4020 (uri (string-append "mirror://gnome/sources/" name "/"
4021 (version-major+minor version) "/"
4022 name "-" version ".tar.xz"))
4023 (sha256
4024 (base32
80f6f9d8 4025 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
4026 (build-system glib-or-gtk-build-system)
4027 (arguments
4028 '(#:configure-flags
4029 (list "--disable-migration" "--disable-search-provider"
4030 "--without-nautilus-extension")
4031 #:phases
4032 (modify-phases %standard-phases
3a4de6b2 4033 (add-before 'configure 'patch-/bin/true
88f70665
AW
4034 (lambda _
4035 (substitute* "configure"
4036 (("/bin/true") (which "true"))))))))
4037 (native-inputs
4038 `(("pkg-config" ,pkg-config)
4039 ("desktop-file-utils" ,desktop-file-utils)
4040 ("intltool" ,intltool)
bcb354ad
SB
4041 ("itstool" ,itstool)
4042 ("xmllint" ,libxml2)))
68702167
MW
4043 (propagated-inputs
4044 `(("dconf" ,dconf)))
88f70665
AW
4045 (inputs
4046 `(("gtk+" ,gtk+)
4047 ("vte" ,vte)
4048 ("gnutls" ,gnutls)
88f70665 4049 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 4050 ("util-linux" ,util-linux "lib")
88f70665
AW
4051 ("vala" ,vala)))
4052 (home-page "https://wiki.gnome.org/Apps/Terminal")
4053 (synopsis "Terminal emulator")
4054 (description
4055 "GNOME Terminal is a terminal emulator application for accessing a
4056UNIX shell environment which can be used to run programs available on
4057your system.
4058
4059It supports several profiles, multiple tabs and implements several
4060keyboard shortcuts.")
4061 (license license:gpl3+)))
75016d07
AW
4062
4063(define-public colord
4064 (package
4065 (name "colord")
f98be942 4066 (version "1.4.4")
75016d07
AW
4067 (source
4068 (origin
4069 (method url-fetch)
5cc3096c 4070 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4071 "colord-" version ".tar.xz"))
75016d07 4072 (sha256
f98be942 4073 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4074 (build-system meson-build-system)
75016d07 4075 (arguments
a68544a8
RW
4076 '(;; FIXME: One test fails:
4077 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4078 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4079 ;; application/x-zerosize
75016d07 4080 #:tests? #f
a68544a8
RW
4081 #:glib-or-gtk? #t
4082 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4083 ;; No dep on systemd.
a68544a8 4084 "-Dsystemd=false"
75016d07
AW
4085 ;; Wants to install to global completion dir;
4086 ;; punt.
a68544a8 4087 "-Dbash_completion=false"
a68544a8
RW
4088 "-Ddaemon_user=colord"
4089 "-Dsane=true"
dac26e22 4090 "-Dvapi=true"
6f20e2dc 4091 ;; Requires spotread.
a68544a8 4092 "-Dargyllcms_sensor=false"
6f20e2dc 4093 ;; TODO: Requires docbook2x.
a68544a8 4094 "-Dman=false")
75016d07
AW
4095 #:phases
4096 (modify-phases %standard-phases
a68544a8
RW
4097 (add-before 'configure 'patch-build-system
4098 (lambda* (#:key outputs #:allow-other-keys)
4099 (substitute* "rules/meson.build"
4100 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4101 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4102 #t))
4103 (add-before 'configure 'set-sqlite3-file-name
4104 (lambda* (#:key inputs #:allow-other-keys)
4105 ;; "colormgr dump" works by invoking the "sqlite3" command.
4106 ;; Record its absolute file name.
4107 (let ((sqlite (assoc-ref inputs "sqlite")))
4108 (substitute* "client/cd-util.c"
4109 (("\"sqlite3\"")
4110 (string-append "\"" sqlite "/bin/sqlite3\"")))
4111 #t))))))
75016d07 4112 (native-inputs
6f20e2dc 4113 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4114 ("gettext" ,gettext-minimal)
75016d07 4115 ("gobject-introspection" ,gobject-introspection)
a68544a8 4116 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4117 ("pkg-config" ,pkg-config)
4118 ("vala" ,vala)))
65cb2d61
SB
4119 (propagated-inputs
4120 ;; colord.pc refers to all these.
4121 `(("glib" ,glib)
6f20e2dc
TGR
4122 ("lcms" ,lcms)
4123 ("udev" ,eudev)))
75016d07 4124 (inputs
65cb2d61 4125 `(("dbus-glib" ,dbus-glib)
a68544a8 4126 ("gusb" ,gusb)
80c7dd1a 4127 ("libgudev" ,libgudev)
75016d07 4128 ("libusb" ,libusb)
75016d07 4129 ("polkit" ,polkit)
a68544a8 4130 ("python" ,python-wrapper)
6f20e2dc 4131 ("sqlite" ,sqlite)
4c928743 4132 ("sane-backends" ,sane-backends)))
57e7d748 4133 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4134 (synopsis "Color management service")
4135 (description "Colord is a system service that makes it easy to manage,
4136install and generate color profiles to accurately color manage input and
4137output devices.")
4138 (license license:gpl2+)))
7b2abd00
AW
4139
4140(define-public geoclue
4141 (package
4142 (name "geoclue")
2bf0a5cb 4143 (version "2.5.6")
7b2abd00
AW
4144 (source
4145 (origin
4146 (method url-fetch)
50e96d25
MB
4147 (uri
4148 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4149 version "/geoclue-" version ".tar.bz2"))
7b2abd00 4150 (sha256
2bf0a5cb 4151 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
fc1adab1 4152 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4153 (build-system meson-build-system)
7b2abd00 4154 (arguments
50e96d25 4155 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4156 (native-inputs
4157 `(("pkg-config" ,pkg-config)
758798a9 4158 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4159 ("modem-manager" ,modem-manager)
4160 ("libnotify" ,libnotify)
4161 ("gtk-doc", gtk-doc)
7b2abd00
AW
4162 ("intltool" ,intltool)))
4163 (inputs
54e911bc 4164 `(("avahi" ,avahi)
50e96d25
MB
4165 ("glib:bin" ,glib "bin")
4166 ("glib-networking" ,glib-networking)
7b2abd00
AW
4167 ("json-glib" ,json-glib)
4168 ("libsoup" ,libsoup)))
50e96d25 4169 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4170 (synopsis "Geolocation service")
4171 (description "Geoclue is a D-Bus service that provides location
4172information. The primary goal of the Geoclue project is to make creating
4173location-aware applications as simple as possible, while the secondary goal is
4174to ensure that no application can access location information without explicit
e881752c 4175permission from user.")
7b2abd00 4176 (license license:gpl2+)))
2bfe7437
AW
4177
4178(define-public geocode-glib
4179 (package
4180 (name "geocode-glib")
65de725f 4181 (version "3.26.1")
2bfe7437
AW
4182 (source (origin
4183 (method url-fetch)
4184 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4185 (version-major+minor version) "/"
d485cdc0 4186 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4187 (sha256
4188 (base32
65de725f 4189 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4190 (build-system meson-build-system)
2bfe7437 4191 (arguments
a7dd0c02
RW
4192 `(#:phases
4193 (modify-phases %standard-phases
4194 ;; The tests require a bunch of locales.
4195 (add-before 'check 'set-locales
4196 (lambda* (#:key inputs #:allow-other-keys)
4197 (setenv "GUIX_LOCPATH"
4198 (string-append (assoc-ref inputs "glibc-locales")
4199 "/lib/locale"))
4200 #t)))))
2bfe7437
AW
4201 (native-inputs
4202 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4203 ("glibc-locales" ,glibc-locales) ; for tests
4204 ("gettext" ,gettext-minimal)
2bfe7437 4205 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4206 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4207 ("pkg-config" ,pkg-config)
4208 ("json-glib" ,json-glib)))
4209 (propagated-inputs
4210 ;; geocode-glib-1.0.pc refers to GIO.
4211 `(("glib" ,glib)))
4212 (inputs
4213 `(("libsoup" ,libsoup)))
4214 (home-page "https://github.com/GNOME/geocode-glib/")
4215 (synopsis "Geocoding and reverse-geocoding library")
4216 (description
4217 "geocode-glib is a convenience library for geocoding (finding longitude,
4218and latitude from an address) and reverse geocoding (finding an address from
4219coordinates) using the Nominatim service. geocode-glib caches requests for
4220faster results and to avoid unnecessary server load.")
4221 (license license:lgpl2.0+)))
a1d5bb0e
AW
4222
4223(define-public upower
4224 (package
4225 (name "upower")
df45af90 4226 (version "0.99.11")
a1d5bb0e
AW
4227 (source (origin
4228 (method url-fetch)
df45af90 4229 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4230 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4231 (sha256
4232 (base32
df45af90 4233 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4234 (patches (search-patches "upower-builddir.patch"))
4235 (modules '((guix build utils)))
4236 (snippet
4237 '(begin
4238 ;; Upstream commit
4239 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4240 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4241 ;; 'dbus-configuration-directory' in (gnu services dbus)
4242 ;; expects it in etc/. Thus, move it back to its previous
4243 ;; location.
4244 (substitute* "src/Makefile.in"
4245 (("^dbusconfdir =.*$")
4246 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4247 #t))))
a1d5bb0e
AW
4248 (build-system glib-or-gtk-build-system)
4249 (arguments
6039031a
BW
4250 '(#:phases
4251 (modify-phases %standard-phases
4252 (add-before 'check 'pre-check
4253 (lambda* (#:key inputs #:allow-other-keys)
4254 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4255 "/lib")))
4256 (setenv "LD_LIBRARY_PATH" umockdev))
4257 #t)))
a1d5bb0e
AW
4258 #:configure-flags (list "--localstatedir=/var"
4259 (string-append "--with-udevrulesdir="
4260 (assoc-ref %outputs "out")
9ec54965 4261 "/lib/udev/rules.d"))))
a1d5bb0e 4262 (native-inputs
ebeabe2d
SB
4263 `(("gobject-introspection" ,gobject-introspection)
4264 ("pkg-config" ,pkg-config)
a1d5bb0e 4265 ("intltool" ,intltool)
55409295
LC
4266 ("python" ,python)
4267
6039031a
BW
4268 ;; For tests.
4269 ("python-dbus" ,python-dbus)
4270 ("python-dbusmock" ,python-dbusmock)
4271 ("python-pygobject" ,python-pygobject)
4272 ("umockdev" ,umockdev)
4273
55409295
LC
4274 ;; For man pages.
4275 ("libxslt" ,libxslt) ;for 'xsltproc'
4276 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4277 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4278 (inputs
ea226291
SB
4279 `(("dbus-glib" ,dbus-glib)
4280 ("libgudev" ,libgudev)
a1d5bb0e 4281 ("libusb" ,libusb)))
d7a503fc
MB
4282 (propagated-inputs
4283 ;; In Requires of upower-glib.pc.
4284 `(("glib" ,glib)))
57e7d748 4285 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4286 (synopsis "System daemon for managing power devices")
4287 (description
4288 "UPower is an abstraction for enumerating power devices,
4289listening to device events and querying history and statistics. Any
4290application or service on the system can access the org.freedesktop.UPower
4291service via the system message bus.")
4292 (license license:gpl2+)))
6a180f6f
AW
4293
4294(define-public libgweather
4295 (package
4296 (name "libgweather")
462d3416 4297 (version "3.34.0")
6a180f6f
AW
4298 (source (origin
4299 (method url-fetch)
4300 (uri (string-append "mirror://gnome/sources/" name "/"
4301 (version-major+minor version) "/"
4302 name "-" version ".tar.xz"))
4303 (sha256
4304 (base32
462d3416 4305 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 4306 (build-system meson-build-system)
6a180f6f 4307 (arguments
cf6cbc34
RW
4308 `(#:tests? #f ; one of two tests requires network access
4309 #:configure-flags
4310 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4311 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4312 "/share/zoneinfo"))))
6a180f6f
AW
4313 (native-inputs
4314 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4315 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4316 ("pkg-config" ,pkg-config)
1d3fcf94 4317 ("vala" ,vala)
6a180f6f
AW
4318 ("intltool" ,intltool)))
4319 (propagated-inputs
4320 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4321 ;; libsoup.
4322 `(("gtk+" ,gtk+)
4323 ("gdk-pixbuf" ,gdk-pixbuf)
4324 ("libxml2" ,libxml2)
cf6cbc34 4325 ("libsoup" ,libsoup)
6a180f6f 4326 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4327 (inputs
4328 `(("tzdata" ,tzdata)))
6a180f6f
AW
4329 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4330 (synopsis "Location, time zone, and weather library for GNOME")
4331 (description
4332 "libgweather is a library to access weather information from online
4333services for numerous locations.")
4334 (license license:gpl2+)))
23a22af6
AW
4335
4336(define-public gnome-settings-daemon
4337 (package
4338 (name "gnome-settings-daemon")
20154759 4339 (version "3.34.1")
23a22af6
AW
4340 (source
4341 (origin
4342 (method url-fetch)
4343 (uri (string-append "mirror://gnome/sources/" name "/"
4344 (version-major+minor version) "/"
4345 name "-" version ".tar.xz"))
4346 (sha256
4347 (base32
20154759 4348 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 4349 (build-system meson-build-system)
23a22af6 4350 (arguments
e644f9fa
RW
4351 `(#:glib-or-gtk? #t
4352 #:configure-flags
4353 (list (string-append "-Dudev_dir="
4354 (assoc-ref %outputs "out")
4d0e085b 4355 "/lib/udev/rules.d/")
20154759 4356 "-Dsystemd=false"
4d0e085b
RW
4357 ;; Otherwise, the RUNPATH will lack the final path component.
4358 (string-append "-Dc_link_args=-Wl,-rpath="
4359 (assoc-ref %outputs "out")
4360 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4361 ;; Color management test can't reach the colord system service.
23a22af6
AW
4362 #:tests? #f))
4363 (native-inputs
e644f9fa
RW
4364 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4365 ("pkg-config" ,pkg-config)
23a22af6
AW
4366 ("intltool" ,intltool)
4367 ("xsltproc" ,libxslt)
4368 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4369 ("docbook-xml" ,docbook-xml-4.2)
4370 ("docbook-xsl" ,docbook-xsl)))
4371 (inputs
e644f9fa
RW
4372 `(("alsa-lib" ,alsa-lib)
4373 ("colord" ,colord)
ea226291 4374 ("libgudev" ,libgudev)
23a22af6
AW
4375 ("upower" ,upower)
4376 ("polkit" ,polkit)
4377 ("pulseaudio" ,pulseaudio)
4378 ("libcanberra" ,libcanberra)
4379 ("libx11" ,libx11)
4380 ("libxtst" ,libxtst)
4381 ("lcms" ,lcms)
4382 ("libnotify" ,libnotify)
4383 ("geoclue" ,geoclue)
4384 ("geocode-glib" ,geocode-glib)
4385 ("libgweather" ,libgweather)
4386 ("gnome-desktop" ,gnome-desktop)
4387 ("nss" ,nss)
4388 ("cups" ,cups)
ec2b1921
AW
4389 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4390 ("libwacom" ,libwacom)
4391 ("librsvg" ,librsvg)
eee7878f 4392 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4393 ("wayland" ,wayland)
20154759
KK
4394 ("network-manager" ,network-manager)
4395 ("gcr" ,gcr)
4396 ("modem-manager" ,modem-manager)))
f032d0be 4397 (home-page "https://www.gnome.org")
23a22af6
AW
4398 (synopsis "GNOME settings daemon")
4399 (description
4400 "This package contains the daemon responsible for setting the various
4401parameters of a GNOME session and the applications that run under it. It
4402handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4403settings, themes, mouse settings, and startup of other daemons.")
4404 (license license:gpl2+)))
1e7464a9
DH
4405
4406(define-public totem-pl-parser
4407 (package
4408 (name "totem-pl-parser")
77425f04 4409 (version "3.26.3")
1e7464a9
DH
4410 (source (origin
4411 (method url-fetch)
e980cbe9
MW
4412 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4413 (version-major+minor version) "/"
1e7464a9
DH
4414 "totem-pl-parser-" version ".tar.xz"))
4415 (sha256
4416 (base32
77425f04 4417 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4418 (build-system meson-build-system)
1e7464a9
DH
4419 (arguments
4420 ;; FIXME: Tests require gvfs.
4421 `(#:tests? #f))
4422 (native-inputs
4423 `(("intltool" ,intltool)
4424 ("glib" ,glib "bin")
4d6d8281 4425 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4426 ("pkg-config" ,pkg-config)))
22a6ad6a 4427 (propagated-inputs
1e7464a9
DH
4428 `(("glib" ,glib)
4429 ("gmime" ,gmime)
1e9b19dd
RW
4430 ("libarchive" ,libarchive)
4431 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4432 ("libxml2" ,libxml2)))
4433 (inputs
0a6e9e13 4434 `(("libsoup" ,libsoup)))
1e7464a9
DH
4435 (home-page "https://projects.gnome.org/totem")
4436 (synopsis "Library to parse and save media playlists for GNOME")
4437 (description "Totem-pl-parser is a GObjects-based library to parse and save
4438playlists in a variety of formats.")
4439 (license license:lgpl2.0+)))
4440
6b888eff
SB
4441(define-public aisleriot
4442 (package
4443 (name "aisleriot")
36ed9b46 4444 (version "3.22.9")
6b888eff
SB
4445 (source (origin
4446 (method url-fetch)
e43f622a 4447 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4448 (version-major+minor version) "/"
e43f622a 4449 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4450 (sha256
4451 (base32
36ed9b46 4452 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4453 (build-system glib-or-gtk-build-system)
4454 (arguments
4455 '(#:configure-flags
4456 '("--with-platform=gtk-only"
4457 "--with-card-theme-formats=svg")))
4458 (native-inputs
4459 `(("desktop-file-utils" ,desktop-file-utils)
4460 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4461 ("intltool" ,intltool)
4462 ("itstool" ,itstool)
4463 ("pkg-config" ,pkg-config)
4464 ("xmllint" ,libxml2)))
4465 (inputs
4466 `(("gtk+" ,gtk+)
226e57d6 4467 ("guile" ,guile-2.2)
6b888eff
SB
4468 ("libcanberra" ,libcanberra)
4469 ("librsvg" ,librsvg)))
4470 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4471 (synopsis "Solitaire card games")
4472 (description
4473 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4474which are easy to play with the aid of a mouse.")
4475 (license license:gpl3+)))
4a79e256 4476
f828d05b
KK
4477(define-public amtk
4478 (package
4479 (name "amtk")
0e08ca14 4480 (version "5.0.2")
f828d05b
KK
4481 (source (origin
4482 (method url-fetch)
bf92ba6b 4483 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4484 (version-major+minor version) "/"
bf92ba6b 4485 "amtk-" version ".tar.xz"))
f828d05b
KK
4486 (sha256
4487 (base32
0e08ca14 4488 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4489 (build-system gnu-build-system)
4490 (arguments
4491 '(#:configure-flags '("--enable-gtk-doc")))
4492 (native-inputs
4493 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4494 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4495 ("gtk-doc" ,gtk-doc)
4496 ("pkg-config" ,pkg-config)))
4497 (inputs
4498 `(("glib" ,glib)
4499 ("gtk+" ,gtk+)))
4500 (home-page "https://wiki.gnome.org/Projects/Amtk")
4501 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4502 (description
4503 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4504It is a basic GtkUIManager replacement based on GAction. It is suitable for
4505both a traditional UI or a modern UI with a GtkHeaderBar.")
4506 (license license:lgpl2.1+)))
4507
4a79e256
SB
4508(define-public devhelp
4509 (package
4510 (name "devhelp")
8ae23a1d 4511 (version "3.34.0")
4a79e256
SB
4512 (source (origin
4513 (method url-fetch)
4514 (uri (string-append "mirror://gnome/sources/" name "/"
4515 (version-major+minor version) "/"
4516 name "-" version ".tar.xz"))
4517 (sha256
4518 (base32
8ae23a1d 4519 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 4520 (build-system meson-build-system)
35407f94 4521 (arguments
20db7a3d
KK
4522 '(#:glib-or-gtk? #t
4523 #:phases
35407f94
EF
4524 (modify-phases %standard-phases
4525 (add-after 'unpack 'skip-gtk-update-icon-cache
4526 ;; Don't create 'icon-theme.cache'.
4527 (lambda _
4528 (substitute* "meson_post_install.py"
4529 (("gtk-update-icon-cache") "true"))
4530 #t)))))
4a79e256
SB
4531 (native-inputs
4532 `(("intltool" ,intltool)
5dd12afc 4533 ("itstool" ,itstool)
11d28bd9
KK
4534 ("gobject-introspection" ,gobject-introspection)
4535 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4536 ("pkg-config" ,pkg-config)))
4537 (inputs
11d28bd9
KK
4538 `(("amtk" ,amtk)
4539 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4540 ("webkitgtk" ,webkitgtk)))
4541 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4542 (synopsis "API documentation browser for GNOME")
4543 (description
4544 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4545natively with GTK-Doc (the API reference system developed for GTK+ and used
4546throughout GNOME for API documentation).")
4547 (license license:gpl2+)))
ba421ab7
MW
4548
4549(define-public cogl
4550 (package
4551 (name "cogl")
c668a880 4552 (version "1.22.8")
ba421ab7
MW
4553 (source
4554 (origin
4555 (method url-fetch)
5754f0cf 4556 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4557 (version-major+minor version) "/"
5754f0cf 4558 "cogl-" version ".tar.xz"))
ba421ab7 4559 (sha256
c668a880 4560 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
a88d5a0c
MW
4561 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4562 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4563 (build-system gnu-build-system)
4564 (native-inputs
4565 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4566 ("gobject-introspection" ,gobject-introspection)
b4f04e0e 4567 ("xorg-server" ,xorg-server-for-tests)
ba421ab7
MW
4568 ("pkg-config" ,pkg-config)))
4569 (propagated-inputs
4570 `(("glib" ,glib)
4571 ("gdk-pixbuf" ,gdk-pixbuf)
4572 ("libx11" ,libx11)
4573 ("libxext" ,libxext)
4574 ("libxfixes" ,libxfixes)
4575 ("libxdamage" ,libxdamage)
4576 ("libxcomposite" ,libxcomposite)
4577 ("libxrandr" ,libxrandr)))
4578 (inputs
4579 `(("mesa" ,mesa)
4580 ("cairo" ,cairo)
4581 ("pango" ,pango)
4582 ("gstreamer" ,gstreamer)
31860852
KK
4583 ("gst-plugins-base" ,gst-plugins-base)
4584 ("wayland" ,wayland)))
ba421ab7 4585 (arguments
b4f04e0e
MB
4586 `(#:disallowed-references (,xorg-server-for-tests)
4587 #:configure-flags (list "--enable-cogl-gst"
31860852
KK
4588 "--enable-wayland-egl-platform"
4589 "--enable-wayland-egl-server"
4590
ba421ab7
MW
4591 ;; Arrange to pass an absolute file name to
4592 ;; dlopen for libGL.so.
4593 (string-append "--with-gl-libname="
4594 (assoc-ref %build-inputs "mesa")
4595 "/lib/libGL.so"))
b4f04e0e 4596 #:phases
ba421ab7 4597 (modify-phases %standard-phases
0c8a51c7
MB
4598 (add-after 'unpack 'fix-build-with-mesa-20
4599 (lambda _
4600 ;; Work around a problem with Mesa 20 where some macros used by
4601 ;; Cogl went missing from eglext.h. This can likely be removed
4602 ;; for newer versions of Cogl or Mesa.
4603 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
4604 (substitute* '("configure"
4605 "cogl/winsys/cogl-winsys-egl-kms.c")
4606 (("#include <EGL/eglext.h>" all)
4607 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
4608 #t))
ba421ab7 4609 (add-before 'check 'start-xorg-server
b4f04e0e
MB
4610 (lambda* (#:key tests? inputs #:allow-other-keys)
4611 (if tests?
4612 (begin
4613 ;; The test suite requires a running X server.
4614 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4615 (assoc-ref inputs "xorg-server")))
4616 (setenv "DISPLAY" ":1")
4617 #t)
4618 (format #t "test suite not run~%"))
ba421ab7 4619 #t)))))
89b49245 4620 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4621 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4622 (description
4623 "Cogl is a small library for using 3D graphics hardware to draw pretty
4624pictures. The API departs from the flat state machine style of OpenGL and is
4625designed to make it easy to write orthogonal components that can render
4626without stepping on each others toes.")
4627 (license (list license:expat ; most of the code
4628 license:bsd-3 ; cogl/cogl-point-in-poly.c
4629 license:sgifreeb2.0 ; cogl-path/tesselator/
4630 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4631
4632(define-public clutter
4633 (package
4634 (name "clutter")
6a88e4ee 4635 (version "1.26.2")
fb182b8a
MW
4636 (source
4637 (origin
4638 (method url-fetch)
4639 (uri (string-append "mirror://gnome/sources/" name "/"
4640 (version-major+minor version) "/"
4641 name "-" version ".tar.xz"))
4642 (sha256
4643 (base32
6a88e4ee 4644 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4645 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4646 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4647 (build-system gnu-build-system)
600233bd
LC
4648 (outputs '("out"
4649 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4650 (native-inputs
4651 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4652 ("gobject-introspection" ,gobject-introspection)
4653 ("pkg-config" ,pkg-config)
4654 ("xsltproc" ,libxslt)))
4655 (propagated-inputs
4656 `(("cogl" ,cogl)
4657 ("cairo" ,cairo)
4658 ("atk" ,atk)
4659 ("gtk+" ,gtk+)
4660 ("json-glib" ,json-glib)
4661 ("glib" ,glib)
4662 ("libxcomposite" ,libxcomposite)
4663 ("libxdamage" ,libxdamage)
4664 ("libxext" ,libxext)
4665 ("xinput" ,xinput)))
4666 (inputs
4667 `(("libxkbcommon" ,libxkbcommon)
4668 ("udev" ,eudev)))
4669 (arguments
600233bd
LC
4670 `(#:configure-flags (list "--enable-x11-backend=yes"
4671
4672 ;; This produces share/doc/{clutter,cally}.
4673 (string-append "--with-html-dir="
4674 (assoc-ref %outputs "doc")
4675 "/share/doc"))
fb182b8a
MW
4676 ;; XXX FIXME: Get test suite working. It would probably fail in the
4677 ;; same way the cogl tests fail, since clutter is based on cogl.
4678 #:tests? #f))
4679 (home-page "http://www.clutter-project.org")
476af713 4680 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4681 (description
476af713 4682 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4683creating fast, mainly 2D single window applications such as media box UIs,
4684presentations, kiosk style applications and so on.")
4685 (license license:lgpl2.0+)))
bf7f17ba
MW
4686
4687(define-public clutter-gtk
4688 (package
4689 (name "clutter-gtk")
5d1a3219 4690 (version "1.8.4")
bf7f17ba
MW
4691 (source
4692 (origin
4693 (method url-fetch)
4694 (uri (string-append "mirror://gnome/sources/" name "/"
4695 (version-major+minor version) "/"
4696 name "-" version ".tar.xz"))
4697 (sha256
4698 (base32
5d1a3219 4699 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4700 (build-system gnu-build-system)
4701 (native-inputs
4702 `(("pkg-config" ,pkg-config)
4703 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4704 (propagated-inputs
4705 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4706 `(("clutter" ,clutter)
4707 ("gtk+" ,gtk+)))
4708 (home-page "http://www.clutter-project.org")
476af713 4709 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4710 (description
476af713 4711 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4712creating fast, mainly 2D single window applications such as media box UIs,
4713presentations, kiosk style applications and so on.")
4714 (license license:lgpl2.0+)))
86d6a893
MW
4715
4716(define-public clutter-gst
4717 (package
4718 (name "clutter-gst")
ba07ac19 4719 (version "3.0.27")
86d6a893
MW
4720 (source
4721 (origin
4722 (method url-fetch)
f010f89b 4723 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4724 (version-major+minor version) "/"
f010f89b 4725 "clutter-gst-" version ".tar.xz"))
86d6a893 4726 (sha256
ba07ac19 4727 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4728 (build-system gnu-build-system)
4729 (native-inputs
ba07ac19 4730 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4731 ("pkg-config" ,pkg-config)
4732 ("gobject-introspection" ,gobject-introspection)))
4733 (inputs
4734 `(("clutter" ,clutter)
4735 ("gstreamer" ,gstreamer)
4736 ("gst-plugins-base" ,gst-plugins-base)))
4737 (home-page "http://www.clutter-project.org")
4738 (synopsis "Integration library for using GStreamer with Clutter")
4739 (description
4740 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4741It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4742implements the ClutterGstPlayer interface using playbin. Clutter is an
4743OpenGL-based interactive canvas library.")
86d6a893 4744 (license license:lgpl2.0+)))
607a04ae 4745
30dc88d9
LC
4746(define-public libchamplain
4747 (package
4748 (name "libchamplain")
5564b2c5 4749 (version "0.12.16")
30dc88d9
LC
4750 (source (origin
4751 (method url-fetch)
4752 (uri (string-append
4753 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4754 version ".tar.xz"))
4755 (sha256
4756 (base32
5564b2c5 4757 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4758 (build-system gnu-build-system)
f7c6833f
LF
4759 (arguments '(#:configure-flags '("--enable-vala")))
4760 (native-inputs
4761 `(("gobject-introspection" ,gobject-introspection)
4762 ("pkg-config" ,pkg-config)
4763 ("vala" ,vala)))
30dc88d9
LC
4764 (propagated-inputs
4765 `(("libsoup" ,libsoup)
4766 ("sqlite" ,sqlite)
4767 ("clutter" ,clutter)
4768 ("clutter-gtk" ,clutter-gtk)
4769 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4770 ("cairo" ,cairo)
4771 ("gtk+3" ,gtk+)
4772 ("glib" ,glib)))
f032d0be 4773 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4774 (synopsis "C library providing a ClutterActor to display maps")
4775 (description
4776 "libchamplain is a C library providing a ClutterActor to display maps.
4777It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4778and Perl bindings are also available. It supports numerous free map sources
4779such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4780 (license license:lgpl2.1+)))
4781
607a04ae
MW
4782(define-public gom
4783 (package
4784 (name "gom")
0510440b 4785 (version "0.3.2")
607a04ae
MW
4786 (source
4787 (origin
4788 (method url-fetch)
6c8a0b6f 4789 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4790 (version-major+minor version) "/"
6c8a0b6f 4791 "gom-" version ".tar.xz"))
607a04ae
MW
4792 (sha256
4793 (base32
0510440b 4794 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4795 (build-system gnu-build-system)
4796 (native-inputs
4797 `(("intltool" ,intltool)
4798 ("pkg-config" ,pkg-config)
4799 ("gobject-introspection" ,gobject-introspection)))
4800 (inputs
4801 `(("glib" ,glib)
4802 ("gdk-pixbuf" ,gdk-pixbuf)
4803 ("sqlite" ,sqlite)))
4804 ;; XXX TODO: Figure out how to run the test suite.
4805 (arguments `(#:tests? #f))
4806 (home-page "https://wiki.gnome.org/Projects/Gom")
4807 (synopsis "Object mapper from GObjects to SQLite")
4808 (description
4809 "Gom provides an object mapper from GObjects to SQLite. It helps you
4810write applications that need to store structured data as well as make complex
4811queries upon that data.")
4812 (license license:lgpl2.1+)))
b7a3cf11 4813
865aacc9 4814(define-public libgnome-games-support
f09520db 4815 (package
865aacc9 4816 (name "libgnome-games-support")
4c6d15cf 4817 (version "1.4.4")
f09520db
SB
4818 (source (origin
4819 (method url-fetch)
2d8dca9d 4820 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4821 (version-major+minor version) "/"
2d8dca9d 4822 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4823 (sha256
4824 (base32
4c6d15cf 4825 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4826 (build-system gnu-build-system)
4827 (arguments
4828 '(#:phases
4829 (modify-phases %standard-phases
4830 (add-before 'check 'pre-check
4831 (lambda _
865aacc9 4832 ;; Tests require a writable HOME.
f09520db
SB
4833 (setenv "HOME" (getcwd))
4834 #t)))))
4835 (native-inputs
4836 `(("intltool" ,intltool)
4837 ("pkg-config" ,pkg-config)
4838 ("vala" ,vala)))
4839 (propagated-inputs
865aacc9 4840 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4841 `(("gtk+" ,gtk+)
4842 ("libgee" ,libgee)))
4843 (home-page "https://www.gnome.org/")
4844 (synopsis "Useful functionality shared among GNOME games")
4845 (description
865aacc9 4846 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4847GNOME Games, but it may be used by others.")
4848 (license license:lgpl3+)))
4849
b7a3cf11
SB
4850(define-public gnome-klotski
4851 (package
4852 (name "gnome-klotski")
18364fbc 4853 (version "3.34.0")
b7a3cf11
SB
4854 (source (origin
4855 (method url-fetch)
4856 (uri (string-append "mirror://gnome/sources/" name "/"
4857 (version-major+minor version) "/"
4858 name "-" version ".tar.xz"))
4859 (sha256
4860 (base32
18364fbc 4861 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
4862 (build-system meson-build-system)
4863 (arguments
4864 '(#:glib-or-gtk? #t
4865 #:phases
4866 (modify-phases %standard-phases
4867 (add-after 'unpack 'skip-gtk-update-icon-cache
4868 ;; Don't create 'icon-theme.cache'.
4869 (lambda _
4870 (substitute* "build-aux/meson_post_install.py"
4871 (("gtk-update-icon-cache") (which "true")))
4872 #t)))))
b7a3cf11
SB
4873 (native-inputs
4874 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4875 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4876 ("intltool" ,intltool)
4877 ("itstool" ,itstool)
bcb354ad 4878 ("pkg-config" ,pkg-config)
c1e419c4 4879 ("vala" ,vala)
bcb354ad 4880 ("xmllint" ,libxml2)))
b7a3cf11
SB
4881 (inputs
4882 `(("gtk+" ,gtk+)
f4eae76f 4883 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4884 ("librsvg" ,librsvg)))
4885 (home-page "https://wiki.gnome.org/Apps/Klotski")
4886 (synopsis "Sliding block puzzles")
4887 (description
4888 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4889the patterned block to the area bordered by green markers. To do so, you will
4890need to slide other blocks out of the way. Complete each puzzle in as few moves
4891as possible!")
4892 (license license:gpl2+)))
8d4791bf
MW
4893
4894(define-public grilo
4895 (package
4896 (name "grilo")
a865e938 4897 (version "0.3.10")
8d4791bf
MW
4898 (source
4899 (origin
4900 (method url-fetch)
4901 (uri (string-append "mirror://gnome/sources/" name "/"
4902 (version-major+minor version) "/"
4903 name "-" version ".tar.xz"))
4904 (sha256
4905 (base32
a865e938 4906 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4907 (build-system meson-build-system)
8d4791bf
MW
4908 (native-inputs
4909 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4910 ("intltool" ,intltool)
4911 ("pkg-config" ,pkg-config)
d48d4c98
KK
4912 ("gobject-introspection" ,gobject-introspection)
4913 ("gtk-doc" ,gtk-doc)
4914 ("vala" ,vala)))
8d4791bf 4915 (inputs
6d7273a0
KK
4916 `(("cyrus-sasl" ,cyrus-sasl)
4917 ("glib" ,glib)
8d4791bf
MW
4918 ("gtk+" ,gtk+)
4919 ("libxml2" ,libxml2)
6d7273a0 4920 ("liboauth" ,liboauth)
8d4791bf
MW
4921 ("libsoup" ,libsoup)
4922 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4923 (native-search-paths
4924 (list (search-path-specification
4925 (variable "GRL_PLUGIN_PATH")
4926 (files (list (string-append "lib/grilo-"
4927 (version-major+minor version)))))))
d48d4c98 4928 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4929 (synopsis "Framework for discovering and browsing media")
4930 (description
4931 "Grilo is a framework focused on making media discovery and browsing easy
4932for application developers.")
4933 (license license:lgpl2.1+)))
7b212526
MW
4934
4935(define-public grilo-plugins
4936 (package
4937 (name "grilo-plugins")
281f6b3a 4938 (version "0.3.10")
7b212526
MW
4939 (source
4940 (origin
4941 (method url-fetch)
4942 (uri (string-append "mirror://gnome/sources/" name "/"
4943 (version-major+minor version) "/"
4944 name "-" version ".tar.xz"))
4945 (sha256
4946 (base32
281f6b3a
RG
4947 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4948 (build-system meson-build-system)
7b212526 4949 (native-inputs
281f6b3a
RG
4950 `(("gettext" ,gettext-minimal)
4951 ("glib:bin" ,glib "bin")
4952 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4953 ("itstool" ,itstool)
4954 ("pkg-config" ,pkg-config)))
281f6b3a 4955 ;; TODO: ahavi, gstreamer
7b212526
MW
4956 (inputs
4957 `(("grilo" ,grilo)
281f6b3a
RG
4958 ;("gmime" ,gmime) ; unused
4959 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4960 ("gom" ,gom)
281f6b3a
RG
4961 ;("gssdp" ,gssdp) ; unused
4962 ;("gupnp" ,gupnp) ; unused
4963 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4964 ("json-glib" ,json-glib)
4965 ("avahi" ,avahi)
281f6b3a
RG
4966 ("libgdata" ,libgdata)
4967 ("libmediaart" ,libmediaart)
4968 ;("librest" ,rest) ; unused
7b212526 4969 ("libsoup" ,libsoup)
281f6b3a
RG
4970 ("totam-pl-parser" ,totem-pl-parser)
4971 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4972 (arguments
281f6b3a
RG
4973 `(#:glib-or-gtk? #t
4974 ;;Disable lua-factory as it needs missing dependencies
4975 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4976 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4977 (synopsis "Plugins for the Grilo media discovery library")
4978 (description
4979 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4980for application developers. This package provides plugins for common media
4981discovery protocols.")
7b212526 4982 (license license:lgpl2.1+)))
4e3fc547
MW
4983
4984(define-public totem
4985 (package
4986 (name "totem")
961dc62d 4987 (version "3.34.1")
4e3fc547
MW
4988 (source
4989 (origin
4990 (method url-fetch)
2a9761b1 4991 (uri (string-append "mirror://gnome/sources/totem/"
4e3fc547 4992 (version-major+minor version) "/"
2a9761b1 4993 "totem-" version ".tar.xz"))
4e3fc547
MW
4994 (sha256
4995 (base32
961dc62d 4996 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 4997 (build-system meson-build-system)
4e3fc547
MW
4998 (native-inputs
4999 `(("pkg-config" ,pkg-config)
5000 ("desktop-file-utils" ,desktop-file-utils)
5001 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 5002 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 5003 ("intltool" ,intltool)
bcb354ad 5004 ("itstool" ,itstool)
995ef5ea 5005 ("xmllint" ,libxml2)
995ef5ea 5006 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
5007 (propagated-inputs
5008 `(("dconf" ,dconf)))
5009 (inputs
5010 `(("gtk+" ,gtk+)
5011 ("gdk-pixbuf" ,gdk-pixbuf)
5012 ("atk" ,atk)
5013 ("cairo" ,cairo)
5014 ("dbus-glib" ,dbus-glib)
5015 ("clutter" ,clutter)
5016 ("clutter-gtk" ,clutter-gtk)
5017 ("clutter-gst" ,clutter-gst)
6a6db57f 5018 ("xorgproto" ,xorgproto)
4e3fc547
MW
5019 ("libxxf86vm" ,libxxf86vm)
5020 ("libxtst" ,libxtst)
5021 ("libxrandr" ,libxrandr)
5022 ("libxml2" ,libxml2)
5023 ("libsoup" ,libsoup)
5024 ("libpeas" ,libpeas)
5025 ("librsvg" ,librsvg)
5026 ("lirc" ,lirc)
5027 ("gnome-desktop" ,gnome-desktop)
5028 ("gstreamer" ,gstreamer)
5029 ("gst-plugins-base" ,gst-plugins-base)
5030 ("gst-plugins-good" ,gst-plugins-good)
5031 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5032 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 5033 ("python" ,python)
995ef5ea 5034 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
5035 ("totem-pl-parser" ,totem-pl-parser)
5036 ("grilo" ,grilo)
5037 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
5038 ("vala" ,vala)))
5039 (arguments
7ad81b8b
LC
5040 `(#:glib-or-gtk? #t
5041
5042 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 5043 ;; all that.
7ad81b8b 5044 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
5045
5046 ;; Do not build .a files for the plugins, it's
5047 ;; completely useless. This saves 2 MiB.
7ad81b8b 5048 "--default-library" "shared")
ec5c24f9 5049 #:phases
4e3fc547 5050 (modify-phases %standard-phases
d51b19ad
EF
5051 (add-after 'unpack 'skip-gtk-update-icon-cache
5052 ;; Don't create 'icon-theme.cache'.
5053 (lambda _
5054 (substitute* "meson_post_install.py"
5055 (("gtk-update-icon-cache") "true"))
5056 #t))
6368eb39
DM
5057 (add-before
5058 'install 'disable-cache-generation
5059 (lambda _
5060 (setenv "DESTDIR" "/")
5061 #t))
995ef5ea
KK
5062 (add-before
5063 'check 'pre-check
5064 (lambda _
5065 ;; Tests require a running X server.
5066 (system "Xvfb :1 &")
5067 (setenv "DISPLAY" ":1")
5068 #t))
4e3fc547
MW
5069 (add-after
5070 'install 'wrap-totem
5071 (lambda* (#:key inputs outputs #:allow-other-keys)
5072 (let ((out (assoc-ref outputs "out"))
5073 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5074 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5075 (wrap-program (string-append out "/bin/totem")
5076 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
5077 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5078 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5079 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
5080 #t)))))
5081 (home-page "https://wiki.gnome.org/Apps/Videos")
5082 (synopsis "Simple media player for GNOME based on GStreamer")
5083 (description "Totem is a simple yet featureful media player for GNOME
5084which can read a large number of file formats.")
5085 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5086 ;; to be used and distributed together with GStreamer and Totem. See
5087 ;; file://COPYING in the source distribution for details.
5088 (license license:gpl2+)))
f0afb0c8
DH
5089
5090(define-public rhythmbox
5091 (package
5092 (name "rhythmbox")
eda580c0 5093 (version "3.4.4")
f0afb0c8
DH
5094 (source (origin
5095 (method url-fetch)
2588693d 5096 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 5097 (version-major+minor version) "/"
2588693d 5098 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
5099 (sha256
5100 (base32
eda580c0 5101 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
5102 (build-system glib-or-gtk-build-system)
5103 (arguments
5104 `(#:configure-flags
5105 (list "--enable-lirc"
5106 "--enable-python"
5107 "--enable-vala"
5108 "--with-brasero"
5109 "--with-gudev"
5110 "--with-libsecret")
5111 #:phases
5112 (modify-phases %standard-phases
5113 (add-after
5114 'install 'wrap-rhythmbox
5115 (lambda* (#:key inputs outputs #:allow-other-keys)
5116 (let ((out (assoc-ref outputs "out"))
5117 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5118 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5119 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5120 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5121 (wrap-program (string-append out "/bin/rhythmbox")
5122 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5123 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5124 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5125 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5126 #t)))))
5127 (propagated-inputs
5128 `(("dconf" ,dconf)))
5129 (native-inputs
bcb354ad
SB
5130 `(("itstool" ,itstool)
5131 ("intltool" ,intltool)
f0afb0c8
DH
5132 ("glib" ,glib "bin")
5133 ("gobject-introspection" ,gobject-introspection)
5134 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5135 ("pkg-config" ,pkg-config)
5136 ("xmllint" ,libxml2)))
f0afb0c8
DH
5137 (inputs
5138 `(("json-glib" ,json-glib)
5139 ("tdb" ,tdb)
5140 ("gnome-desktop" ,gnome-desktop)
5141 ("python" ,python)
5142 ("python-pygobject" ,python2-pygobject)
5143 ("vala" ,vala)
5144 ("gmime" ,gmime)
f0afb0c8
DH
5145 ("adwaita-icon-theme" ,adwaita-icon-theme)
5146 ("grilo" ,grilo)
5147 ("grilo-plugins" ,grilo-plugins)
5148 ("gstreamer" ,gstreamer)
5149 ("gst-plugins-base" ,gst-plugins-base)
5150 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5151 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5152 ("libgudev" ,libgudev)
f0afb0c8
DH
5153 ;;("libmtp" ,libmtp) FIXME: Not detected
5154 ("libsecret" ,libsecret)
5155 ("libsoup" ,libsoup)
5156 ("libnotify" ,libnotify)
5157 ("libpeas" ,libpeas)
5158 ("lirc" ,lirc)
5159 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5160 ;;("clutter" ,clutter)
5161 ;;("clutter-gtk" ,clutter-gtk)
5162 ;;("clutter-gst" ,clutter-gst)
5163 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5164 ("atk" ,atk)
5165 ("pango" ,pango)
5166 ("gtk+" ,gtk+)
5167 ;; TODO:
5168 ;; * libgpod
5169 ;; * mx
f0afb0c8
DH
5170 ("brasero" ,brasero)))
5171 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5172 (synopsis "Music player for GNOME")
5173 (description "Rhythmbox is a music playing application for GNOME. It
5174supports playlists, song ratings, and any codecs installed through gstreamer.")
5175 (license license:gpl2+)))
f70d8383
DH
5176
5177(define-public eog
5178 (package
5179 (name "eog")
0c9031fa 5180 (version "3.34.1")
f70d8383
DH
5181 (source (origin
5182 (method url-fetch)
5183 (uri (string-append "mirror://gnome/sources/" name "/"
5184 (version-major+minor version) "/"
5185 name "-" version ".tar.xz"))
5186 (sha256
5187 (base32
0c9031fa 5188 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5189 (build-system meson-build-system)
f70d8383 5190 (arguments
34c44a34
RW
5191 `(#:configure-flags
5192 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5193 (list (string-append "-Dc_link_args=-Wl,-rpath="
5194 (assoc-ref %outputs "out") "/lib/eog"))
5195 #:phases
f70d8383 5196 (modify-phases %standard-phases
7a034665
EF
5197 (add-after 'unpack 'skip-gtk-update-icon-cache
5198 ;; Don't create 'icon-theme.cache'.
5199 (lambda _
5200 (substitute* "meson_post_install.py"
5201 (("gtk-update-icon-cache") "true"))
5202 #t))
61fb581f
RW
5203 (add-after 'install 'wrap-eog
5204 (lambda* (#:key outputs #:allow-other-keys)
5205 (let ((out (assoc-ref outputs "out"))
5206 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5207 (wrap-program (string-append out "/bin/eog")
5208 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5209 #t)))))
f70d8383
DH
5210 (propagated-inputs
5211 `(("dconf" ,dconf)))
5212 (native-inputs
5213 `(("intltool" ,intltool)
b3546174 5214 ("itstool" ,itstool)
f70d8383
DH
5215 ("glib" ,glib "bin")
5216 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5217 ("pkg-config" ,pkg-config)
5218 ("xmllint" ,libxml2)))
f70d8383
DH
5219 (inputs
5220 `(("gnome-desktop" ,gnome-desktop)
5221 ("shared-mime-info" ,shared-mime-info)
5222 ("adwaita-icon-theme" ,adwaita-icon-theme)
5223 ("exempi" ,exempi)
5224 ("lcms" ,lcms)
5225 ("libexif" ,libexif)
5226 ("libpeas" ,libpeas)
4bd428a7 5227 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5228 ("librsvg" ,librsvg-next)
f70d8383
DH
5229 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5230 ("gtk+" ,gtk+)))
5231 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5232 (synopsis "GNOME image viewer")
5233 (description "Eye of GNOME is the GNOME image viewer. It
5234supports image conversion, rotation, and slideshows.")
5235 (license license:gpl2+)))
41af5e7b 5236
0c3f8cb8
LC
5237(define-public eog-plugins
5238 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5239 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5240 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5241 ;; 'XDG_DATA_DIRS' appropriately set.
5242 (package
5243 (name "eog-plugins")
54b74cc6 5244 (version "3.26.4")
0c3f8cb8
LC
5245 (source (origin
5246 (method url-fetch)
f3b88ed2 5247 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5248 (version-major+minor version) "/"
f3b88ed2 5249 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5250 (sha256
5251 (base32
54b74cc6 5252 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5253 (build-system gnu-build-system)
5254 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5255 (synopsis "Extensions for the Eye of GNOME image viewer")
5256 (native-inputs
5257 `(("pkg-config" ,pkg-config)
f2d97d57 5258 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5259 (inputs
5260 `(("eog" ,eog)
5261 ("glib" ,glib)
5262 ("gtk+" ,gtk+)
5263 ("libpeas" ,libpeas)
5264 ("libexif" ,libexif)
5265 ("libchamplain" ,libchamplain)))
5266 (description
5267 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5268notably:
5269
5270@itemize
5271@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5272@item @dfn{Map}, which displays a map of where the picture was taken on the
5273side panel;
5274@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5275@end itemize\n")
5276
5277 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5278 ;; long suspicious byte stream that goes to a
5279 ;; ".gresource.eog_postasa_plugin" ELF section.
5280 (license license:gpl2+)))
5281
41af5e7b
SB
5282(define-public libgudev
5283 (package
5284 (name "libgudev")
b78f5118 5285 (version "232")
41af5e7b
SB
5286 (source (origin
5287 (method url-fetch)
5288 (uri (string-append "mirror://gnome/sources/" name "/"
5289 version "/" name "-" version ".tar.xz"))
5290 (sha256
5291 (base32
b78f5118 5292 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5293 (build-system gnu-build-system)
b78f5118
RW
5294 (arguments
5295 '(#:configure-flags
5296 ;; umockdev depends on libgudev.
5297 (list "--disable-umockdev")))
41af5e7b
SB
5298 (native-inputs
5299 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5300 ("gobject-introspection" ,gobject-introspection)
5301 ("pkg-config" ,pkg-config)))
5302 (propagated-inputs
5303 `(("glib" ,glib))) ; required by gudev-1.0.pc
5304 (inputs
5305 `(("udev" ,eudev)))
5306 (home-page "https://wiki.gnome.org/Projects/libgudev")
5307 (synopsis "GObject bindings for libudev")
5308 (description
5309 "This library provides GObject bindings for libudev. It was originally
5310part of udev-extras, then udev, then systemd. It's now a project on its own.")
5311 (license license:lgpl2.1+)))
3dc8828f
SB
5312
5313(define-public gvfs
5314 (package
5315 (name "gvfs")
12fe4846 5316 (version "1.40.1")
3dc8828f
SB
5317 (source (origin
5318 (method url-fetch)
1d68eb32 5319 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5320 (version-major+minor version) "/"
1d68eb32 5321 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5322 (sha256
5323 (base32
12fe4846 5324 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5325 (build-system meson-build-system)
3dc8828f 5326 (arguments
e762d943
RW
5327 '(#:glib-or-gtk? #t
5328 #:configure-flags
5329 (list "-Dsystemduserunitdir=no"
5330 "-Dtmpfilesdir=no"
5331 ;; Otherwise, the RUNPATH will lack the final path component.
5332 (string-append "-Dc_link_args=-Wl,-rpath="
5333 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5334 (native-inputs
5335 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5336 ("gettext" ,gettext-minimal)
5337 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5338 ("pkg-config" ,pkg-config)
5339 ("xsltproc" ,libxslt)))
5340 (inputs
5341 `(("avahi" ,avahi)
5342 ("docbook-xml" ,docbook-xml-4.2)
5343 ("docbook-xsl" ,docbook-xsl)
5344 ("dbus" ,dbus)
e762d943 5345 ("elogind" ,elogind)
3dc8828f 5346 ("fuse" ,fuse)
24a78aa6 5347 ("gcr" ,gcr)
3dc8828f 5348 ("glib" ,glib)
e762d943 5349 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5350 ("libarchive" ,libarchive)
5351 ("libbluray" ,libbluray)
8852ca24 5352 ("libcap" ,libcap)
3dc8828f
SB
5353 ("libcdio-paranoia" ,libcdio-paranoia)
5354 ("libgcrypt" ,libgcrypt)
e762d943 5355 ("libgdata" ,libgdata)
3dc8828f
SB
5356 ("libgphoto2" ,libgphoto2)
5357 ("libgudev" ,libgudev)
0ab9f949 5358 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5359 ("libmtp" ,libmtp)
e762d943 5360 ("libnfs" ,libnfs)
3dc8828f
SB
5361 ("libsecret" ,libsecret)
5362 ("libsmbclient" ,samba)
5363 ("libsoup" ,libsoup)
5364 ("libxml2" ,libxml2)
e762d943 5365 ("openssh" ,openssh)
8852ca24 5366 ("polkit" ,polkit)
3dc8828f
SB
5367 ("udisks" ,udisks)))
5368 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5369 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5370 (description
8f65585b 5371 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5372abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5373to all applications using the GIO API. It also supports exposing the GVFS
5374mounts to non-GIO applications using FUSE.
5375
5376GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5377DAV, and others.")
5378 (license license:lgpl2.0+)))
7c88b6bd
AW
5379
5380(define-public gusb
5381 (package
5382 (name "gusb")
536b3274 5383 (version "0.3.0")
7c88b6bd 5384 (source (origin
bbfb36f9
EF
5385 (method git-fetch)
5386 (uri (git-reference
5387 (url "https://github.com/hughsie/libgusb.git")
5388 (commit version)))
5389 (file-name (git-file-name name version))
7c88b6bd
AW
5390 (sha256
5391 (base32
bbfb36f9 5392 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5393 (build-system meson-build-system)
7c88b6bd 5394 (native-inputs
536b3274 5395 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5396 ("pkg-config" ,pkg-config)
5397 ("vala" ,vala)
7c88b6bd
AW
5398 ("gtk-doc" ,gtk-doc)))
5399 (propagated-inputs
5400 ;; Both of these are required by gusb.pc.
5401 `(("glib" ,glib)
5402 ("libusb" ,libusb)))
5403 (arguments
536b3274 5404 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5405 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5406 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5407 (description
5408 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5409asynchronous control, bulk and interrupt transfers with proper cancellation
5410and integration into a mainloop. This makes it easy to integrate low level
5411USB transfers with your high-level application or system daemon.")
5412 (license license:lgpl2.1+)))
0abe1d86
AW
5413
5414(define-public simple-scan
5415 (package
5416 (name "simple-scan")
3f352df0 5417 (version "3.36.3")
d9f6d587
TGR
5418 (source
5419 (origin
5420 (method url-fetch)
5421 (uri (string-append "mirror://gnome/sources/simple-scan/"
5422 (version-major+minor version) "/"
5423 "simple-scan-" version ".tar.xz"))
5424 (sha256
3f352df0 5425 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
d9f6d587
TGR
5426 (build-system meson-build-system)
5427 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5428 (arguments
5429 '(#:glib-or-gtk? #t))
0abe1d86
AW
5430 (inputs
5431 `(("gtk" ,gtk+)
5432 ("zlib" ,zlib)
5433 ("cairo" ,cairo)
c501f592 5434 ("colord" ,colord)
0abe1d86
AW
5435 ("gdk-pixbuf" ,gdk-pixbuf)
5436 ("gusb" ,gusb)
4c928743 5437 ("libsane" ,sane-backends)))
0abe1d86 5438 (native-inputs
b94a6ca0 5439 `(("gettext" ,gettext-minimal)
0abe1d86 5440 ("itstool" ,itstool)
c501f592 5441 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5442 ("pkg-config" ,pkg-config)
bcb354ad
SB
5443 ("vala" ,vala)
5444 ("xmllint" ,libxml2)))
dff0eedb 5445 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5446 (synopsis "Document and image scanner")
d9f6d587
TGR
5447 (description
5448 "Document Scanner is an easy-to-use application that lets you connect your
5449scanner and quickly capture images and documents in an appropriate format. It
5450supports any scanner for which a suitable SANE driver is available, which is
5451almost all of them.")
0abe1d86 5452 (license license:gpl3+)))
7549f984 5453
ab466d79
RW
5454(define-public eolie
5455 (package
5456 (name "eolie")
ed783404 5457 (version "0.9.98.1")
ab466d79
RW
5458 (source (origin
5459 (method url-fetch)
ed783404
RW
5460 (uri (string-append "https://adishatz.org/eolie/eolie-"
5461 version ".tar.xz"))
ab466d79
RW
5462 (sha256
5463 (base32
ed783404 5464 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5465 (build-system meson-build-system)
ab466d79 5466 (arguments
00014781
RW
5467 `(#:glib-or-gtk? #t
5468 #:phases
ab466d79 5469 (modify-phases %standard-phases
f0c68100
EF
5470 (add-after 'unpack 'skip-gtk-update-icon-cache
5471 ;; Don't create 'icon-theme.cache'.
5472 (lambda _
5473 (substitute* "meson_post_install.py"
5474 (("gtk-update-icon-cache") "true"))
5475 #t))
ab466d79
RW
5476 (add-after 'wrap 'wrap-more
5477 (lambda* (#:key inputs outputs #:allow-other-keys)
5478 (let* ((out (assoc-ref outputs "out"))
5479 ;; These libraries must be on LD_LIBRARY_PATH.
5480 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5481 "atk" "gtk+" "gsettings-desktop-schemas"
5482 "gobject-introspection"))
5483 (path (string-join
5484 (map (lambda (lib)
5485 (string-append (assoc-ref inputs lib) "/lib"))
5486 libs)
5487 ":")))
5488 (wrap-program (string-append out "/bin/eolie")
5489 `("LD_LIBRARY_PATH" ":" prefix (,path))
5490 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5491 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5492 #t)))))
5493 (native-inputs
f85ca6ed 5494 `(("intltool" ,intltool)
ab466d79 5495 ("itstool" ,itstool)
d95f1041 5496 ("pkg-config" ,pkg-config)
d95f1041 5497 ("python" ,python)
f0c68100 5498 ("glib:bin" ,glib "bin")))
ab466d79
RW
5499 (inputs
5500 `(("gobject-introspection" ,gobject-introspection)
5501 ("glib-networking" ,glib-networking)
5502 ("cairo" ,cairo)
5503 ("gtk+" ,gtk+)
5504 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5505 ("python" ,python-wrapper)
d72f76df 5506 ("python-dateutil" ,python-dateutil)
00014781 5507 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5508 ("python-pygobject" ,python-pygobject)
5509 ("python-pycairo" ,python-pycairo)
00014781 5510 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5511 ("libsecret" ,libsecret)
5512 ("gtkspell3" ,gtkspell3)
5513 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5514 ("webkitgtk" ,webkitgtk)))
166b2c97 5515 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5516 (synopsis "Web browser for GNOME")
5517 (description
5518 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5519a secret password store, an adblocker, and a modern UI.")
5520 (license license:gpl3+)))
5521
7549f984
SB
5522(define-public epiphany
5523 (package
5524 (name "epiphany")
68fdd237 5525 (version "3.34.4")
7549f984
SB
5526 (source (origin
5527 (method url-fetch)
dd3266ec 5528 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5529 (version-major+minor version) "/"
dd3266ec 5530 "epiphany-" version ".tar.xz"))
7549f984
SB
5531 (sha256
5532 (base32
68fdd237 5533 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
5534
5535 (build-system meson-build-system)
7549f984 5536 (arguments
20710b91 5537 '(#:glib-or-gtk? #t
bb7ff88f
EF
5538 #:phases
5539 (modify-phases %standard-phases
5540 (add-after 'unpack 'skip-gtk-update-icon-cache
5541 ;; Don't create 'icon-theme.cache'.
5542 (lambda _
5543 (substitute* "post_install.py"
5544 (("gtk-update-icon-cache") "true"))
20710b91
LP
5545 #t))
5546 (add-after 'unpack 'disable-failing-tests
5547 (lambda _
5548 (substitute* "tests/meson.build"
5549 ;; embed_shell fails, because webkitgtk apparently no longer supports
5550 ;; overriding the ftp schema
5551 ;; web_app_utils fails due to missing network access
5552 (("(embed_shell|web_app_utils)_test,")
5553 "find_program('sh'), args: ['-c', 'exit 77'],"))
5554 #t))
5555 (add-before 'check 'pre-check
5556 (lambda _
5557 ;; Tests require a running X server.
5558 (system "Xvfb :1 &")
5559 (setenv "DISPLAY" ":1")
bb7ff88f 5560 #t)))
e19f9c24
LF
5561 #:configure-flags
5562 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5563 (list (string-append "-Dc_link_args=-Wl,-rpath="
5564 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5565 (propagated-inputs
5566 `(("dconf" ,dconf)))
7549f984 5567 (native-inputs
fc5c5b92
R
5568 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5569 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5570 ("intltool" ,intltool)
7549f984 5571 ("itstool" ,itstool)
bcb354ad 5572 ("pkg-config" ,pkg-config)
20710b91
LP
5573 ("xmllint" ,libxml2)
5574 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
5575 (inputs
5576 `(("avahi" ,avahi)
5577 ("gcr" ,gcr)
fc5c5b92 5578 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5579 ("glib-networking" ,glib-networking)
5580 ("gnome-desktop" ,gnome-desktop)
5581 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5582 ("json-glib" ,json-glib)
7549f984 5583 ("iso-codes" ,iso-codes)
8748e29c 5584 ("libdazzle" ,libdazzle)
7549f984
SB
5585 ("libnotify" ,libnotify)
5586 ("libsecret" ,libsecret)
7549f984 5587 ("libxslt" ,libxslt)
fc5c5b92 5588 ("nettle" ,nettle) ; for hogweed
7549f984 5589 ("sqlite" ,sqlite)
f85ca6ed 5590 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5591 (home-page "https://wiki.gnome.org/Apps/Web")
5592 (synopsis "GNOME web browser")
5593 (description
5594 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5595principles are simplicity and standards compliance.")
5596 (license license:gpl2+)))
a3856b2c
SB
5597
5598(define-public d-feet
5599 (package
5600 (name "d-feet")
458e9221 5601 (version "0.3.14")
a3856b2c
SB
5602 (source (origin
5603 (method url-fetch)
5604 (uri (string-append "mirror://gnome/sources/" name "/"
5605 (version-major+minor version) "/"
5606 name "-" version ".tar.xz"))
5607 (sha256
5608 (base32
458e9221 5609 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5610 (build-system glib-or-gtk-build-system)
5611 (arguments
5612 '(#:out-of-source? #f ; tests need to run in the source directory.
5613 #:phases
5614 (modify-phases %standard-phases
5615 (add-before
5616 'check 'pre-check
86aff791 5617 (lambda _
a3856b2c
SB
5618 ;; The test suite requires a running X server.
5619 (system "Xvfb :1 &")
5620 (setenv "DISPLAY" ":1")
5621 ;; Don't fail on missing '/etc/machine-id'.
5622 (setenv "DBUS_FATAL_WARNINGS" "0")
5623 ;; tests.py and window.py don't meet E402:
5624 ;; E402 module level import not at top of file
5625 (substitute* "src/tests/Makefile"
86aff791
MW
5626 (("--ignore=E123") "--ignore=E123,E402"))
5627 #t))
a3856b2c
SB
5628 (add-after
5629 'install 'wrap-program
5630 (lambda* (#:key outputs #:allow-other-keys)
5631 (let ((prog (string-append (assoc-ref outputs "out")
5632 "/bin/d-feet")))
5633 (wrap-program prog
5634 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5635 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5636 #t))))))
a3856b2c
SB
5637 (native-inputs
5638 `(("intltool" ,intltool)
5639 ("itstool" ,itstool)
5640 ("pkg-config" ,pkg-config)
5641 ("python-pep8" ,python-pep8)
5642 ("xmllint" ,libxml2)
ff337525 5643 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5644 (inputs
5645 `(("gobject-introspection" ,gobject-introspection)
5646 ("gtk+" ,gtk+)
5647 ("python" ,python-wrapper)
458e9221 5648 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5649 ("python-pygobject" ,python-pygobject)))
5650 (home-page "https://wiki.gnome.org/Apps/DFeet")
5651 (synopsis "D-Bus debugger")
5652 (description
5653 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5654of running programs and invoke methods on those interfaces.")
5655 (license license:gpl2+)))
c3b97bd9
SB
5656
5657(define-public yelp-xsl
5658 (package
5659 (name "yelp-xsl")
632a9b32 5660 (version "3.34.2")
c3b97bd9
SB
5661 (source (origin
5662 (method url-fetch)
5663 (uri (string-append "mirror://gnome/sources/" name "/"
5664 (version-major+minor version) "/"
5665 name "-" version ".tar.xz"))
5666 (sha256
5667 (base32
632a9b32 5668 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5669 (build-system gnu-build-system)
5670 (native-inputs
632a9b32 5671 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5672 ("itstool" ,itstool)
5673 ("xmllint" ,libxml2)))
5674 (home-page "https://wiki.gnome.org/Apps/Yelp")
5675 (synopsis "XSL stylesheets for Yelp")
5676 (description
5677 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5678to format Docbook and Mallard documents.")
5679 (license license:gpl2+)))
de3d612a
SB
5680
5681(define-public yelp
5682 (package
5683 (name "yelp")
1f1b6d60 5684 (version "3.32.2")
de3d612a
SB
5685 (source (origin
5686 (method url-fetch)
5687 (uri (string-append "mirror://gnome/sources/" name "/"
5688 (version-major+minor version) "/"
5689 name "-" version ".tar.xz"))
5690 (sha256
5691 (base32
1f1b6d60 5692 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5693 (build-system glib-or-gtk-build-system)
5694 (native-inputs
5695 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5696 ("intltool" ,intltool)
5697 ("itstool" ,itstool)
5698 ("pkg-config" ,pkg-config)))
5699 (propagated-inputs
5700 `(("dconf" ,dconf)))
5701 (inputs
ad1b7d8b
SB
5702 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5703 ("libxslt" ,libxslt)
de3d612a 5704 ("sqlite" ,sqlite)
4c28ca1d
SB
5705 ("webkitgtk" ,webkitgtk)
5706 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5707 (home-page "https://wiki.gnome.org/Apps/Yelp")
5708 (synopsis "GNOME help browser")
5709 (description
5710 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5711man, info, and HTML documents. It can locate documents according to the
5712freedesktop.org help system specification.")
5713 (license license:gpl2+)))
122d0d10
SB
5714
5715(define-public yelp-tools
5716 (package
5717 (name "yelp-tools")
8fe8a42a 5718 (version "3.32.2")
122d0d10
SB
5719 (source (origin
5720 (method url-fetch)
5721 (uri (string-append "mirror://gnome/sources/" name "/"
5722 (version-major+minor version) "/"
5723 name "-" version ".tar.xz"))
5724 (sha256
5725 (base32
8fe8a42a 5726 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5727 (build-system gnu-build-system)
5728 (native-inputs
5729 `(("pkg-config" ,pkg-config)))
5730 (propagated-inputs
5731 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5732 `(("itstool" ,itstool)
5733 ("xmllint" ,libxml2)
5734 ("xsltproc" ,libxslt)))
5735 (inputs
5736 `(("yelp-xsl" ,yelp-xsl)))
5737 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5738 (synopsis "Yelp documentation tools")
5739 (description
5740 "Yelp-tools is a collection of scripts and build utilities to help create,
5741manage, and publish documentation for Yelp and the web. Most of the heavy
5742lifting is done by packages like yelp-xsl and itstool. This package just
5743wraps things up in a developer-friendly way.")
5744 (license license:gpl2+)))
af8f9f23
RW
5745
5746(define-public libgee
5747 (package
5748 (name "libgee")
9cedae2a 5749 (version "0.20.3")
af8f9f23
RW
5750 (source (origin
5751 (method url-fetch)
84a1b007 5752 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5753 (version-major+minor version) "/"
84a1b007 5754 "libgee-" version ".tar.xz"))
af8f9f23
RW
5755 (sha256
5756 (base32
9cedae2a 5757 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5758 (build-system gnu-build-system)
5759 (arguments
5760 `(#:phases
5761 (modify-phases %standard-phases
5762 (add-after 'unpack 'fix-introspection-install-dir
5763 (lambda* (#:key outputs #:allow-other-keys)
5764 (let ((out (assoc-ref outputs "out")))
5765 (substitute* "gee/Makefile.in"
5766 (("@INTROSPECTION_GIRDIR@")
5767 (string-append out "/share/gir-1.0/"))
5768 (("@INTROSPECTION_TYPELIBDIR@")
5769 (string-append out "/lib/girepository-1.0/")))))))))
5770 (native-inputs
5771 `(("glib" ,glib "bin")
5772 ("pkg-config" ,pkg-config)))
5773 (inputs
5774 `(("glib" ,glib)
5775 ("gobject-introspection" ,gobject-introspection)))
5776 (home-page "https://wiki.gnome.org/Projects/Libgee")
5777 (synopsis "GObject collection library")
5778 (description
5779 "Libgee is a utility library providing GObject-based interfaces and
5780classes for commonly used data structures.")
5781 (license license:lgpl2.1+)))
b0f9c4b8
RW
5782
5783(define-public gexiv2
5784 (package
5785 (name "gexiv2")
efc396ef 5786 (version "0.12.1")
b0f9c4b8
RW
5787 (source (origin
5788 (method url-fetch)
5789 (uri (string-append "mirror://gnome/sources/" name "/"
5790 (version-major+minor version) "/"
5791 name "-" version ".tar.xz"))
5792 (sha256
5793 (base32
efc396ef 5794 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
51c482e4 5795 (build-system meson-build-system)
b0f9c4b8 5796 (native-inputs
b1a8b408
KK
5797 `(("gcr" ,gcr)
5798 ("glib" ,glib "bin")
5799 ("pkg-config" ,pkg-config)
5800 ("vala" ,vala)))
b0f9c4b8
RW
5801 (propagated-inputs
5802 ;; Listed in "Requires" section of gexiv2.pc
5803 `(("exiv2" ,exiv2)))
5804 (inputs
5805 `(("glib" ,glib)
5806 ("gobject-introspection" ,gobject-introspection)))
5807 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5808 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5809 (description
5810 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5811allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5812metadata in photo and video files of various formats.")
5813 (license license:gpl2+)))
fed5a689
RW
5814
5815(define-public shotwell
5816 (package
5817 (name "shotwell")
b82a45d8 5818 (version "0.30.9")
fed5a689
RW
5819 (source (origin
5820 (method url-fetch)
5497d682 5821 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5822 (version-major+minor version) "/"
5497d682 5823 "shotwell-" version ".tar.xz"))
fed5a689
RW
5824 (sha256
5825 (base32
b82a45d8 5826 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
3b79afa6
KK
5827 (build-system meson-build-system)
5828 (arguments
5a0beca3
EF
5829 '(#:glib-or-gtk? #t
5830 #:phases
5831 (modify-phases %standard-phases
5832 (add-after 'unpack 'skip-gtk-update-icon-cache
5833 (lambda _
5834 (substitute* "build-aux/meson/postinstall.py"
5835 (("gtk-update-icon-cache") (which "true"))
5836 (("update-desktop-database") (which "true")))
5837 #t)))))
735b8db6
TGR
5838 (propagated-inputs
5839 `(("dconf" ,dconf)))
fed5a689 5840 (native-inputs
5a0beca3
EF
5841 `(("gettext" ,gettext-minimal)
5842 ("glib:bin" ,glib "bin")
735b8db6 5843 ("itstool" ,itstool)
3b79afa6 5844 ("pkg-config" ,pkg-config)
735b8db6 5845 ("vala" ,vala)))
fed5a689 5846 (inputs
5a0beca3
EF
5847 `(("gcr" ,gcr)
5848 ("gexiv2" ,gexiv2)
fed5a689 5849 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5850 ("gstreamer" ,gstreamer)
5851 ("json-glib" ,json-glib)
dfb0323d 5852 ("libgdata" ,libgdata)
fed5a689 5853 ("libgee" ,libgee)
5a0beca3
EF
5854 ("libgphoto2" ,libgphoto2)
5855 ("libgudev" ,libgudev)
fed5a689 5856 ("libraw" ,libraw)
fed5a689
RW
5857 ("libsoup" ,libsoup)
5858 ("libxml2" ,libxml2)
5a0beca3
EF
5859 ("sqlite" ,sqlite)
5860 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5861 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5862 (synopsis "Photo manager for GNOME 3")
5863 (description
5864 "Shotwell is a digital photo manager designed for the GNOME desktop
5865environment. It allows you to import photos from disk or camera, organize
5866them by keywords and events, view them in full-window or fullscreen mode, and
5867share them with others via social networking and more.")
5868 (license license:lgpl2.1+)))
293ff8b2
DT
5869
5870(define-public file-roller
5871 (package
5872 (name "file-roller")
dcae4270 5873 (version "3.32.3")
293ff8b2
DT
5874 (source (origin
5875 (method url-fetch)
f89a27c6 5876 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5877 (version-major+minor version) "/"
f89a27c6 5878 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5879 (sha256
5880 (base32
dcae4270 5881 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5882 (build-system meson-build-system)
293ff8b2 5883 (native-inputs
0a500745
RW
5884 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5885 ("intltool" ,intltool)
4c96e5d1 5886 ("itstool" ,itstool)
0a500745
RW
5887 ("pkg-config" ,pkg-config)
5888 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5889 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5890 ;; TODO: Add libnautilus.
5891 (inputs
5892 `(("gtk+" ,gtk+)
5893 ("gdk-pixbuf" ,gdk-pixbuf)
5894 ("json-glib" ,json-glib)
5895 ("libarchive" ,libarchive)
5896 ("libnotify" ,libnotify)
4c96e5d1 5897 ("nettle" ,nettle)
293ff8b2
DT
5898 ("libxml2" ,libxml2)))
5899 (synopsis "Graphical archive manager for GNOME")
5900 (description "File Roller is an archive manager for the GNOME desktop
5901environment that allows users to view, unpack, and create compressed archives
5902such as gzip tarballs.")
5903 (home-page "http://fileroller.sourceforge.net/")
5904 (license license:gpl2+)))
7ce49365
SB
5905
5906(define-public gnome-session
5907 (package
5908 (name "gnome-session")
f67ce006 5909 (version "3.34.2")
7ce49365
SB
5910 (source (origin
5911 (method url-fetch)
5912 (uri (string-append "mirror://gnome/sources/" name "/"
5913 (version-major+minor version) "/"
5914 name "-" version ".tar.xz"))
5915 (sha256
5916 (base32
f67ce006 5917 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 5918 (arguments
df278071
RW
5919 '(#:glib-or-gtk? #t
5920 #:phases
2914af3c
AW
5921 (modify-phases %standard-phases
5922 (add-before 'configure 'pre-configure
5923 (lambda* (#:key outputs #:allow-other-keys)
5924 ;; Use elogind instead of systemd.
df278071
RW
5925 (substitute* "meson.build"
5926 (("libsystemd-login") "libelogind")
5927 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5928 (substitute* "gnome-session/gsm-systemd.c"
5929 (("#include <systemd/sd-login.h>")
5930 "#include <elogind/sd-login.h>"))
df278071 5931 ;; Remove uses of the systemd daemon.
803ab416
SB
5932 (substitute* "gnome-session/gsm-autostart-app.c"
5933 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5934 #t))
5935 (add-after 'install 'wrap-gnome-session
5936 (lambda* (#:key inputs outputs #:allow-other-keys)
5937 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5938 (let ((glib (assoc-ref inputs "glib:bin"))
5939 (out (assoc-ref outputs "out")))
5940 (wrap-program (string-append out "/bin/gnome-session")
5941 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5942 #t))))
6cbc8d57 5943
2914af3c 5944 #:configure-flags
df278071
RW
5945 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5946 "-Dman=false" ; FIXME: disabled because of docbook validation error
5947 "-Dsystemd_journal=false")))
5948 (build-system meson-build-system)
7ce49365
SB
5949 (native-inputs
5950 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5951 ("pkg-config" ,pkg-config)
5952 ("intltool" ,intltool)
df278071
RW
5953 ("xsltproc" ,libxslt)
5954 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5955 ("docbook-xsl" ,docbook-xsl)
5956 ("docbook-xml" ,docbook-xml)
5957 ("xmlto" ,xmlto)))
7ce49365 5958 (inputs
2914af3c
AW
5959 `(("elogind" ,elogind)
5960 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5961 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5962 ("gtk+" ,gtk+)
5963 ("json-glib" ,json-glib)
5964 ("libsm" ,libsm)
5965 ("libxcomposite" ,libxcomposite)
5966 ("libxtst" ,libxtst)
5967 ("mesa" ,mesa)
5968 ("upower" ,upower)
5969 ("xtrans" ,xtrans)))
5970 (synopsis "Session manager for GNOME")
5971 (description
5972 "This package contains the GNOME session manager, as well as a
5973configuration program to choose applications starting on login.")
5974 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5975 (license license:gpl2+)))
f47ba77e
SB
5976
5977(define-public gjs
5978 (package
5979 (name "gjs")
76e1830c 5980 (version "1.58.3")
f47ba77e
SB
5981 (source (origin
5982 (method url-fetch)
5983 (uri (string-append "mirror://gnome/sources/" name "/"
5984 (version-major+minor version) "/"
5985 name "-" version ".tar.xz"))
5986 (sha256
5987 (base32
76e1830c 5988 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
5989 (build-system gnu-build-system)
5990 (arguments
5991 '(#:phases
5992 (modify-phases %standard-phases
5993 (add-before
5994 'check 'pre-check
5995 (lambda _
fc119619
MW
5996 ;; The test suite requires a running X server.
5997 (system "Xvfb :1 &")
5998 (setenv "DISPLAY" ":1")
5999
f47ba77e
SB
6000 ;; For the missing /etc/machine-id.
6001 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 6002
144f94d0
KK
6003 ;; Our mozjs-38 package does not compile the required Intl API
6004 ;; support for these failing tests.
6005 (substitute* "installed-tests/js/testLocale.js"
6006 ((".*toBeDefined.*") "")
6007 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
6008 (substitute* "installed-tests/scripts/testCommandLine.sh"
6009 (("Valentín") "")
6010 (("☭") ""))
f47ba77e
SB
6011 #t)))))
6012 (native-inputs
8a831c6f 6013 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
6014 ("pkg-config" ,pkg-config)
6015 ("xmllint" ,libxml2)
6016 ;; For testing
6017 ("dbus-launch" ,dbus)
76e1830c 6018 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 6019 ("uuidgen" ,util-linux)
ebebee94 6020 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
6021 (propagated-inputs
6022 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
6023 `(("cairo" ,cairo)
6024 ("gobject-introspection" ,gobject-introspection)
d054fbf5 6025 ("mozjs" ,mozjs-60)))
f47ba77e
SB
6026 (inputs
6027 `(("gtk+" ,gtk+)
6028 ("readline" ,readline)))
6029 (synopsis "Javascript bindings for GNOME")
f032d0be 6030 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
6031 (description
6032 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6033javascript engine and the GObject introspection framework.")
6034 (license license:gpl2+)))
329d731b
DH
6035
6036(define-public gedit
6037 (package
6038 (name "gedit")
edec7128 6039 (version "3.34.1")
329d731b
DH
6040 (source (origin
6041 (method url-fetch)
6042 (uri (string-append "mirror://gnome/sources/" name "/"
6043 (version-major+minor version) "/"
6044 name "-" version ".tar.xz"))
6045 (sha256
6046 (base32
edec7128 6047 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 6048 (build-system meson-build-system)
329d731b 6049 (arguments
480c9226
KK
6050 `(#:glib-or-gtk? #t
6051 #:configure-flags
6052 ;; Otherwise, the RUNPATH will lack the final path component.
6053 (list (string-append "-Dc_link_args=-Wl,-rpath="
6054 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
6055
6056 ;; XXX: Generated .h files are sometimes used before being built.
6057 #:parallel-build? #f
6058
480c9226 6059 #:phases
329d731b 6060 (modify-phases %standard-phases
480c9226
KK
6061 (add-after 'unpack 'skip-gtk-update-icon-cache
6062 ;; Don't create 'icon-theme.cache'.
6063 (lambda _
6064 (substitute* "build-aux/meson/post_install.py"
6065 (("gtk-update-icon-cache") (which "true")))
6066 #t))
6067 (add-after 'unpack 'patch-libgd-fetch
6068 (lambda* (#:key inputs #:allow-other-keys)
6069 (let ((libgd (assoc-ref inputs "libgd")))
6070 ;; Calling git is unnecessary because libgd is fetched as a
6071 ;; native input to this package.
6072 (substitute* "meson.build"
6073 ((".*git.*") ""))
6074 (copy-recursively libgd "subprojects/libgd")
6075 #t)))
6076 (add-after 'install 'wrap-gedit
6077 (lambda* (#:key inputs outputs #:allow-other-keys)
6078 (let ((out (assoc-ref outputs "out"))
6079 (gtksourceview (assoc-ref inputs "gtksourceview"))
6080 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6081 (python-path (getenv "PYTHONPATH")))
6082 (wrap-program (string-append out "/bin/gedit")
6083 ;; For plugins.
6084 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6085 `("PYTHONPATH" ":" prefix (,python-path))
6086 ;; For language-specs.
6087 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6088 "/share")))))
6089 #t)))))
329d731b
DH
6090 (propagated-inputs
6091 `(("dconf" ,dconf)))
6092 (native-inputs
480c9226
KK
6093 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6094 ("intltool" ,intltool)
b3546174 6095 ("itstool" ,itstool)
480c9226 6096 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6097 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6098 ("libgd"
6099 ,(origin
6100 (method git-fetch)
6101 (uri (git-reference
6102 (url "https://gitlab.gnome.org/GNOME/libgd")
6103 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6104 (file-name (git-file-name "libgd" version))
6105 (sha256
6106 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6107 ("pkg-config" ,pkg-config)))
6108 (inputs
6109 `(("glib" ,glib)
0d2df50c 6110 ("gspell" ,gspell)
329d731b 6111 ("gtk+" ,gtk+)
480c9226 6112 ("gtksourceview" ,gtksourceview)
329d731b
DH
6113 ("libpeas" ,libpeas)
6114 ("libxml2" ,libxml2)
329d731b
DH
6115 ("iso-codes" ,iso-codes)
6116 ("python-pygobject" ,python-pygobject)
6117 ("python" ,python)
6118 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6119 ("libx11" ,libx11)
6120 ("vala" ,vala)
6121 ("adwaita-icon-theme" ,adwaita-icon-theme)
6122 ("libsoup" ,libsoup)
6123 ("gnome-desktop" ,gnome-desktop)))
6124 (home-page "https://wiki.gnome.org/Apps/Gedit")
6125 (synopsis "GNOME text editor")
6126 (description "While aiming at simplicity and ease of use, gedit is a
6127powerful general purpose text editor.")
6128 (license license:gpl2+)))
b7179363
SB
6129
6130(define-public zenity
6131 (package
6132 (name "zenity")
4f581bd0 6133 (version "3.32.0")
b7179363
SB
6134 (source (origin
6135 (method url-fetch)
5958df04 6136 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6137 (version-major+minor version) "/"
5958df04 6138 "zenity-" version ".tar.xz"))
b7179363
SB
6139 (sha256
6140 (base32
4f581bd0 6141 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6142 (build-system gnu-build-system)
6143 (native-inputs
b94a6ca0 6144 `(("gettext" ,gettext-minimal)
b7179363
SB
6145 ("itstool" ,itstool)
6146 ("pkg-config" ,pkg-config)))
6147 (inputs
6148 `(("libnotify" ,libnotify)
6149 ("webkitgtk" ,webkitgtk)))
6150 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6151 (home-page "https://www.gnome.org")
b7179363
SB
6152 (description
6153 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6154to display dialog boxes from the commandline and shell scripts.")
6155 (license license:lgpl2.0+)))
60c3627c
SB
6156
6157(define-public mutter
6158 (package
6159 (name "mutter")
ec3ceabd 6160 (version "3.34.2")
60c3627c 6161 (source (origin
86c44e72
KK
6162 (method url-fetch)
6163 (uri (string-append "mirror://gnome/sources/" name "/"
6164 (version-major+minor version) "/"
6165 name "-" version ".tar.xz"))
60c3627c
SB
6166 (sha256
6167 (base32
ec3ceabd 6168 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6169 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6170 ;; versions of cogl and clutter. As a result, many of the inputs,
6171 ;; propagated-inputs, and configure flags used in cogl and clutter are
6172 ;; needed here as well.
edf43f68 6173 (build-system meson-build-system)
60c3627c 6174 (arguments
edf43f68
KK
6175 '(;; XXX: All mutter tests fail with the following error:
6176 ;; Settings schema 'org.gnome.mutter' is not installed
6177 #:tests? #f
6178 #:glib-or-gtk? #t
6179 #:configure-flags
ec3ceabd
KK
6180 ;; TODO: Enable profiler when Sysprof is packaged.
6181 (list "-Dprofiler=false"
6182 ;; Otherwise, the RUNPATH will lack the final path component.
6183 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6184 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6185 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6186
6187 ;; The following flags are needed for the bundled clutter
edf43f68 6188 (string-append "-Dxwayland_path="
d633f2f6
RH
6189 (assoc-ref %build-inputs "xorg-server-xwayland")
6190 "/bin/Xwayland")
6191
a88d5a0c 6192 ;; the remaining flags are needed for the bundled cogl
edf43f68 6193 (string-append "-Dopengl_libname="
a88d5a0c 6194 (assoc-ref %build-inputs "mesa")
682ae6f9
MB
6195 "/lib/libGL.so"))
6196 #:phases (modify-phases %standard-phases
6197 (add-after 'unpack 'fix-build-with-mesa-20
6198 (lambda _
6199 ;; Mimic upstream commit a444a4c5f58ea516ad for
6200 ;; compatibility with Mesa 20. Remove for 3.36.
6201 (substitute* '("src/backends/meta-egl-ext.h"
6202 "src/backends/meta-egl.c"
6203 "src/backends/meta-egl.h")
6204 (("#include <EGL/eglext\\.h>" all)
6205 (string-append all "\n#include <EGL/eglmesaext.h>")))
6206 (substitute* "cogl/cogl/meson.build"
6207 (("#include <EGL/eglext\\.h>" all)
6208 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6209 #t)))))
60c3627c 6210 (native-inputs
ec3ceabd
KK
6211 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6212 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6213 ("gobject-introspection" ,gobject-introspection)
6214 ("intltool" ,intltool)
f23052a6 6215 ("pkg-config" ,pkg-config)
edf43f68 6216 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6217 ;; For git build
6218 ("autoconf" ,autoconf)
6219 ("automake" ,automake)
6220 ("libtool" ,libtool)))
60c3627c 6221 (propagated-inputs
a88d5a0c
MW
6222 `(;; libmutter.pc refers to these:
6223 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6224 ("gtk+" ,gtk+)
6225 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6226 ("atk" ,atk)
6227 ("cairo" ,cairo)
6228 ("gdk-pixbuf" ,gdk-pixbuf)
6229 ("glib" ,glib)
a88d5a0c
MW
6230 ("json-glib" ,json-glib)
6231 ("libinput" ,libinput)
6232 ("libx11" ,libx11)
6233 ("libxcomposite" ,libxcomposite)
6234 ("libxdamage" ,libxdamage)
6235 ("libxext" ,libxext)
6236 ("libxfixes" ,libxfixes)
6237 ("libxkbcommon" ,libxkbcommon)
6238 ("libxrandr" ,libxrandr)
6239 ("mesa" ,mesa)
6240 ("pango" ,pango)
6241 ("udev" ,eudev)
a88d5a0c 6242 ("xinput" ,xinput)))
60c3627c 6243 (inputs
86c44e72
KK
6244 `(("elogind" ,elogind)
6245 ("gnome-desktop" ,gnome-desktop)
edf43f68 6246 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6247 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6248 ("libgudev" ,libgudev)
60c3627c
SB
6249 ("libice" ,libice)
6250 ("libsm" ,libsm)
edf43f68 6251 ("libwacom" ,libwacom)
60c3627c 6252 ("libxkbfile" ,libxkbfile)
a88d5a0c 6253 ("libxrandr" ,libxrandr)
86c44e72 6254 ("libxtst" ,libxtst)
edf43f68 6255 ("pipewire" ,pipewire)
60c3627c
SB
6256 ("startup-notification" ,startup-notification)
6257 ("upower-glib" ,upower)
6258 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6259 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6260 ("zenity" ,zenity)))
6261 (synopsis "Window and compositing manager")
f032d0be 6262 (home-page "https://www.gnome.org")
60c3627c
SB
6263 (description
6264 "Mutter is a window and compositing manager that displays and manages your
6265desktop via OpenGL. Mutter combines a sophisticated display engine using the
6266Clutter toolkit with solid window-management logic inherited from the Metacity
6267window manager.")
86c44e72 6268 (license license:gpl2+)))
685cee87
SB
6269
6270(define-public gnome-online-accounts
6271 (package
6272 (name "gnome-online-accounts")
dd233e4d 6273 (version "3.36.0")
685cee87
SB
6274 (source (origin
6275 (method url-fetch)
6276 (uri (string-append "mirror://gnome/sources/" name "/"
6277 (version-major+minor version) "/"
6278 name "-" version ".tar.xz"))
6279 (sha256
6280 (base32
dd233e4d 6281 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6282 (outputs '("out" "lib"))
685cee87 6283 (build-system glib-or-gtk-build-system)
14c297fd
TS
6284 (arguments
6285 `(#:configure-flags
6286 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6287 #:phases
6288 (modify-phases %standard-phases
6289 (add-before 'configure 'patch-libgoa-output
6290 (lambda* (#:key outputs #:allow-other-keys)
6291 (let ((lib (assoc-ref outputs "lib")))
6292 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6293 (("@prefix@") lib)
6294 (("@exec_prefix@") lib)
6295 (("@libdir@") (string-append lib "/lib"))
6296 (("@includedir@") (string-append lib "/include"))
6297 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6298 ;; Make sure gobject-introspection knows about the output
6299 ;; too (see <https://bugs.gnu.org/36535>).
6300 (setenv "outputs" "out lib")
14c297fd 6301 #t))))))
685cee87
SB
6302 (native-inputs
6303 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6304 ("gobject-introspection" ,gobject-introspection)
6305 ("intltool" ,intltool)
6306 ("pkg-config" ,pkg-config)
ebb2873d 6307 ("vala" ,vala)
685cee87
SB
6308 ("xsltproc" ,libxslt)))
6309 (propagated-inputs
6310 `(("glib" ,glib) ; required by goa-1.0.pc
6311 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6312 (inputs
6313 `(("docbook-xsl" ,docbook-xsl)
6314 ("json-glib" ,json-glib)
6315 ("libsecret" ,libsecret)
6316 ("rest" ,rest)
685cee87
SB
6317 ("webkitgtk" ,webkitgtk)))
6318 (synopsis "Single sign-on framework for GNOME")
6319 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6320 (description
6321 "GNOME Online Accounts provides interfaces so that applications and
6322libraries in GNOME can access the user's online accounts. It has providers for
6323Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6324Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6325 (license license:lgpl2.0+)))
df217748
SB
6326
6327(define-public evolution-data-server
6328 (package
6329 (name "evolution-data-server")
162048be 6330 (version "3.34.2")
df217748
SB
6331 (source (origin
6332 (method url-fetch)
6333 (uri (string-append "mirror://gnome/sources/" name "/"
6334 (version-major+minor version) "/"
6335 name "-" version ".tar.xz"))
43190ac6
MB
6336 (patches (search-patches "evolution-data-server-locales.patch"
6337 "evolution-data-server-libical-compat.patch"))
df217748
SB
6338 (sha256
6339 (base32
162048be 6340 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 6341 (build-system cmake-build-system)
df217748 6342 (arguments
b468eedc
RW
6343 '(#:configure-flags
6344 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6345 (runpaths (map (lambda (s)
6346 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6347 '("addressbook-backends" "calendar-backends"
6348 "camel-providers" "credential-modules"
6349 "registry-modules"))))
6350 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6351 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6352 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6353 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6354 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6355 (string-append lib "/evolution-data-server;")
6356 (string-join runpaths ";"))
6357 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6358 #:phases
6359 (modify-phases %standard-phases
b468eedc
RW
6360 (add-after 'unpack 'disable-failing-tests
6361 (lambda _
6362 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6363 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6364 (delete-file-recursively "tests/book-migration")
6365 (substitute* "tests/CMakeLists.txt"
6366 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 6367 #t))
743aebd7 6368 (add-after 'unpack 'patch-paths
df217748 6369 (lambda _
b468eedc
RW
6370 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6371 "tests/libedata-book/data-test-utils.c"
6372 "tests/libedata-book/test-book-cache-utils.c"
6373 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6374 (("/bin/rm") (which "rm")))
ac033c7b
MB
6375 #t))
6376 (add-before 'configure 'dont-override-rpath
6377 (lambda _
6378 (substitute* "CMakeLists.txt"
6379 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6380 ;; Remove it so the configure flag is respected.
6381 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6382 #t)))))
df217748
SB
6383 (native-inputs
6384 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6385 ("gobject-introspection" ,gobject-introspection)
6386 ("gperf" ,gperf)
6387 ("intltool" ,intltool)
6388 ("pkg-config" ,pkg-config)
a73c1cf8 6389 ("vala" ,vala)
743aebd7 6390 ("python" ,python-wrapper)))
df217748
SB
6391 (propagated-inputs
6392 ;; These are all in the Requires field of .pc files.
6393 `(("gtk+" ,gtk+)
6394 ("libical" ,libical)
6395 ("libsecret" ,libsecret)
6396 ("libsoup" ,libsoup)
6397 ("nss" ,nss)
6398 ("sqlite" ,sqlite)))
6399 (inputs
6400 `(("bdb" ,bdb)
6401 ("gcr" ,gcr)
14c297fd 6402 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6403 ("json-glib" ,json-glib)
b468eedc 6404 ("libcanberra" ,libcanberra)
743aebd7
MB
6405 ("libgweather" ,libgweather)
6406 ("mit-krb5" ,mit-krb5)
891199c6
MW
6407 ("openldap" ,openldap)
6408 ("webkitgtk" ,webkitgtk)))
df217748
SB
6409 (synopsis "Store address books and calendars")
6410 (home-page "https://wiki.gnome.org/Apps/Evolution")
6411 (description
6412 "This package provides a unified backend for programs that work with
6413contacts, tasks, and calendar information. It was originally developed for
6414Evolution (hence the name), but is now used by other packages as well.")
6415 (license license:lgpl2.0)))
bd7dfafa
SB
6416
6417(define-public caribou
6418 (package
6419 (name "caribou")
fe964bb5 6420 (version "0.4.21")
bd7dfafa
SB
6421 (source (origin
6422 (method url-fetch)
6423 (uri (string-append "mirror://gnome/sources/" name "/"
6424 (version-major+minor version) "/"
6425 name "-" version ".tar.xz"))
6426 (sha256
6427 (base32
fe964bb5 6428 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6429 (build-system glib-or-gtk-build-system)
6430 (arguments
6431 '(#:phases
6432 (modify-phases %standard-phases
6433 (add-before
6434 'build 'pre-build
6435 (lambda* (#:key outputs #:allow-other-keys)
6436 (let ((out (assoc-ref outputs "out")))
6437 ;; Use absolute shared library path in Caribou-1.0.typelib.
6438 (substitute* "libcaribou/Makefile"
6439 (("--shared-library=libcaribou.so")
6440 (string-append "--shared-library="
6441 out "/lib/libcaribou.so")))
6442 #t)))
6443 (add-after 'install 'wrap-programs
6444 (lambda* (#:key outputs #:allow-other-keys)
6445 (let* ((out (assoc-ref outputs "out"))
6446 (python-path (getenv "PYTHONPATH"))
6447 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6448 (for-each
6449 (lambda (prog)
6450 (wrap-program prog
6451 `("PYTHONPATH" ":" prefix (,python-path))
6452 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6453 (list (string-append out "/bin/caribou-preferences")
6454 (string-append out "/libexec/antler-keyboard"))))
6455 #t)))))
6456 (native-inputs
6457 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6458 ("gobject-introspection" ,gobject-introspection)
6459 ("intltool" ,intltool)
6460 ("pkg-config" ,pkg-config)
9f7f5ba2 6461 ("python" ,python)
bd7dfafa
SB
6462 ("vala" ,vala)
6463 ("xsltproc" ,libxslt)))
6464 (propagated-inputs
6465 ;; caribou-1.0.pc refers to all these.
6466 `(("libgee" ,libgee)
6467 ("libxklavier" ,libxklavier)
6468 ("libxtst" ,libxtst)
6469 ("gtk+" ,gtk+)))
6470 (inputs
6471 `(("clutter" ,clutter)
6472 ("dconf" ,dconf)
6473 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6474 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6475 (synopsis "Text entry and UI navigation application")
6476 (home-page "https://wiki.gnome.org/Projects/Caribou")
6477 (description
6478 "Caribou is an input assistive technology intended for switch and pointer
6479users.")
6480 (license license:lgpl2.1)))
ba5dd105 6481
ba5dd105
SB
6482(define-public network-manager
6483 (package
6484 (name "network-manager")
01c22be7 6485 (version "1.24.0")
ba5dd105
SB
6486 (source (origin
6487 (method url-fetch)
6488 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6489 (version-major+minor version) "/"
6490 "NetworkManager-" version ".tar.xz"))
8d0548fd 6491 (patches (search-patches "network-manager-plugin-path.patch"))
ba5dd105
SB
6492 (sha256
6493 (base32
01c22be7 6494 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
02710a9b 6495 (modules '((guix build utils)))
fd070f35 6496 (snippet
02710a9b
RW
6497 '(begin
6498 (substitute* "src/devices/wwan/nm-modem-manager.c"
6499 (("systemd") "elogind"))
6500 #t))))
255ff74f 6501 (build-system meson-build-system)
ba5dd105
SB
6502 (outputs '("out"
6503 "doc")) ; 8 MiB of gtk-doc HTML
6504 (arguments
255ff74f 6505 `(#:configure-flags
ba5dd105 6506 (let ((out (assoc-ref %outputs "out"))
ba5dd105
SB
6507 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6508 "/sbin/dhclient")))
255ff74f
BW
6509 (list
6510 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6511 ;; component.
6512 (string-append "-Dc_link_args=-Wl,-rpath="
6513 out "/lib:"
6514 out "/lib/NetworkManager/" ,version)
6515 "-Dsystemd_journal=false"
6516 "-Dsession_tracking=elogind"
6517 "-Dsuspend_resume=elogind"
6518 "-Dsystemdsystemunitdir=no"
6519 "-Dsession_tracking_consolekit=false"
6520 "-Ddhcpcd=no"
6521 "-Ddhcpcanon=no"
6522 "-Dcrypto=gnutls"
6523 "-Diwd=true"
6524 "-Dlibaudit=yes"
6525 "-Dqt=false"
6526 "-Ddocs=true"
6527 "--sysconfdir=/etc"
6528 "--localstatedir=/var"
6529 (string-append "-Dudev_dir="
6530 out "/lib/udev")
6531 (string-append "-Ddbus_conf_dir="
6532 out "/etc/dbus-1/system.d")
6533
6534 (string-append "-Ddhclient=" dhclient)))
ba5dd105
SB
6535 #:phases
6536 (modify-phases %standard-phases
b4f59d87
AW
6537 (add-before 'configure 'pre-configure
6538 (lambda _
6539 ;; These tests try to test aspects of network-manager's
6540 ;; functionality within restricted containers, but they don't
6541 ;; cope with being already in the Guix build jail as that jail
6542 ;; lacks some features that they would like to proxy over (like
6543 ;; a /sys mount).
255ff74f
BW
6544 (substitute* "src/platform/tests/meson.build"
6545 ((".*test-address-linux.*") "")
6546 ((".*test-cleanup-linux.*") "")
6547 ((".*test-link-linux.*") "")
6548 ((".*test-route-linux.*") ""))
6549 (substitute* "src/devices/tests/meson.build"
6550 ((".*test-acd.*") "")
6551 ((".*test-lldp.*") ""))
45f80fce 6552 #t))
255ff74f
BW
6553 (add-after 'unpack 'patch-docbook-xml
6554 (lambda* (#:key inputs #:allow-other-keys)
6555 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6556 "/xml/dtd/docbook")))
6557 (substitute* (find-files "." ".*\\.(xsl|xml)")
6558 (("http://.*/docbookx\\.dtd")
6559 (string-append xmldoc "/docbookx.dtd")))
6560 #t)))
ba5dd105
SB
6561 (add-before 'check 'pre-check
6562 (lambda _
6563 ;; For the missing /etc/machine-id.
6564 (setenv "DBUS_FATAL_WARNINGS" "0")
6565 #t))
255ff74f
BW
6566 (add-before 'install 'no-polkit-magic
6567 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
ba5dd105 6568 (lambda _
255ff74f
BW
6569 (setenv "PKEXEC_UID" "something")
6570 #t))
6571 (add-after 'install 'move-doc
6572 (lambda* (#:key outputs #:allow-other-keys)
6573 (let ((out (assoc-ref outputs "out"))
6574 (doc (assoc-ref outputs "doc")))
6575 (mkdir-p (string-append doc "/share"))
6576 (for-each (lambda (directory)
6577 (copy-recursively (string-append out directory)
6578 (string-append doc directory))
6579 (delete-file-recursively
6580 (string-append out directory)))
6581 '("/share/doc" "/share/gtk-doc"))
6582 #t))))))
b93502d6
DC
6583 (propagated-inputs
6584 `(("glib" ,glib)))
ba5dd105 6585 (native-inputs
255ff74f
BW
6586 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6587 ("gtk-doc" ,gtk-doc)
ba5dd105 6588 ("gobject-introspection" ,gobject-introspection)
255ff74f 6589 ("docbook-xml" ,docbook-xml)
d04687dc 6590 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6591 ("intltool" ,intltool)
d04687dc
HG
6592 ("libxslt" ,libxslt)
6593 ("libxml2" ,libxml2)
ba5dd105 6594 ("pkg-config" ,pkg-config)
255ff74f 6595 ("vala" ,vala)
ba5dd105
SB
6596 ;; For testing.
6597 ("python" ,python-wrapper)
6598 ("python-dbus" ,python-dbus)
6599 ("python-pygobject" ,python-pygobject)))
6600 (inputs
255ff74f 6601 `(("curl" ,curl)
856ca567
KK
6602 ("cyrus-sasl" ,cyrus-sasl)
6603 ("dbus-glib" ,dbus-glib)
ba5dd105 6604 ("dnsmasq" ,dnsmasq)
856ca567 6605 ("eudev" ,eudev)
ba5dd105
SB
6606 ("gnutls" ,gnutls)
6607 ("iptables" ,iptables)
6608 ("isc-dhcp" ,isc-dhcp)
c2f236fa 6609 ("iwd" ,iwd) ; wpa_supplicant alternative
d04687dc 6610 ("jansson" ,jansson)
c2f236fa 6611 ("libaudit" ,audit)
ba5dd105
SB
6612 ("libgcrypt" ,libgcrypt)
6613 ("libgudev" ,libgudev)
6614 ("libndp" ,libndp)
6615 ("libnl" ,libnl)
6616 ("libsoup" ,libsoup)
255ff74f 6617 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
142bdcbc 6618 ("modem-manager" ,modem-manager)
c27e02bf 6619 ("newt" ,newt) ;for the 'nmtui' console interface
c2f236fa 6620 ("openresolv" ,openresolv) ; alternative resolv.conf manager
ba5dd105
SB
6621 ("polkit" ,polkit)
6622 ("ppp" ,ppp)
6623 ("readline" ,readline)
fd070f35
CM
6624 ("util-linux" ,util-linux)
6625 ("elogind" ,elogind)))
ba5dd105 6626 (synopsis "Network connection manager")
8d0548fd 6627 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
ba5dd105
SB
6628 (description
6629 "NetworkManager is a system network service that manages your network
6630devices and connections, attempting to keep active network connectivity when
6631available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6632devices, and provides VPN integration with a variety of different VPN
6633services.")
255ff74f
BW
6634 ;; “This NetworkManager project consists of the daemon, client tools, and
6635 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6636 ;; GPL-2.0+.”
6637 (license (list license:gpl2+
6638 license:lgpl2.1+))
29d2f451 6639 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6640
f2b96b3a
LC
6641(define-public network-manager-openvpn
6642 (package
6643 (name "network-manager-openvpn")
3fe368c0 6644 (version "1.8.12")
f2b96b3a
LC
6645 (source (origin
6646 (method url-fetch)
6647 (uri (string-append
6648 "mirror://gnome/sources/NetworkManager-openvpn/"
6649 (version-major+minor version)
6650 "/NetworkManager-openvpn-" version ".tar.xz"))
6651 (sha256
6652 (base32
3fe368c0 6653 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
f2b96b3a
LC
6654 (build-system gnu-build-system)
6655 (arguments
633422b0
JL
6656 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6657 #:phases
6658 (modify-phases %standard-phases
6659 (add-after 'configure 'patch-path
6660 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6661 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6662 "/sbin/openvpn"))
6663 (modprobe (string-append (assoc-ref inputs "kmod")
6664 "/bin/modprobe"))
6665 (pretty-ovpn (string-append "\"" ovpn "\"")))
6666 (for-each
6667 (lambda (file)
6668 (substitute* file
6669 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6670 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6671 (("\"/sbin/openvpn\"") pretty-ovpn)
6672 (("/sbin/modprobe") modprobe)))
6673 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6674 #t)))))
f2b96b3a
LC
6675 (native-inputs
6676 `(("pkg-config" ,pkg-config)
6677 ("intltool" ,intltool)))
6678 (inputs
6679 `(("gtk+" ,gtk+)
633422b0 6680 ("kmod" ,kmod)
f2b96b3a
LC
6681 ("openvpn" ,openvpn)
6682 ("network-manager" ,network-manager)
3fe368c0 6683 ("libnma" ,libnma)
f2b96b3a
LC
6684 ("libsecret" ,libsecret)))
6685 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6686 (synopsis "OpenVPN plug-in for NetworkManager")
6687 (description
6688 "This extension of NetworkManager allows it to take care of connections
6689to virtual private networks (VPNs) via OpenVPN.")
6690 (license license:gpl2+)
6691 (properties `((upstream-name . "NetworkManager-openvpn")))))
6692
d376129f
JL
6693(define-public network-manager-vpnc
6694 (package
6695 (name "network-manager-vpnc")
6696 (version "1.2.6")
6697 (source (origin
6698 (method url-fetch)
6699 (uri (string-append
6700 "mirror://gnome/sources/NetworkManager-vpnc/"
6701 (version-major+minor version)
6702 "/NetworkManager-vpnc-" version ".tar.xz"))
6703 (sha256
6704 (base32
6705 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6706 (build-system gnu-build-system)
6707 (arguments
7c43b78d
BW
6708 `(#:configure-flags '("--enable-absolute-paths"
6709 "--localstatedir=/var"
6710 ;; libnm-glib has been removed from network-manager
6711 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6712 "--with-libnm-glib=no")
d376129f
JL
6713 #:phases
6714 (modify-phases %standard-phases
6715 (add-after 'configure 'patch-path
6716 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6717 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6718 "/sbin/vpnc"))
6719 (modprobe (string-append (assoc-ref inputs "kmod")
6720 "/bin/modprobe"))
6721 (pretty-ovpn (string-append "\"" vpnc "\"")))
6722 (substitute* "src/nm-vpnc-service.c"
6723 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6724 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6725 (("\"/sbin/vpnc\"") pretty-ovpn)
6726 (("/sbin/modprobe") modprobe)))
6727 #t)))))
6728 (native-inputs
6729 `(("pkg-config" ,pkg-config)
6730 ("intltool" ,intltool)))
6731 (inputs
6732 `(("gtk+" ,gtk+)
6733 ("kmod" ,kmod)
6734 ("vpnc" ,vpnc)
6735 ("network-manager" ,network-manager)
7c43b78d 6736 ("libnma" ,libnma)
d376129f
JL
6737 ("libsecret" ,libsecret)))
6738 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6739 (synopsis "VPNC plug-in for NetworkManager")
6740 (description
6741 "Support for configuring virtual private networks based on VPNC.
6742Compatible with Cisco VPN concentrators configured to use IPsec.")
6743 (license license:gpl2+)
6744 (properties `((upstream-name . "NetworkManager-vpnc")))))
6745
8378c87a
EF
6746(define-public network-manager-openconnect
6747 (package
6748 (name "network-manager-openconnect")
6749 (version "1.2.6")
6750 (source (origin
6751 (method url-fetch)
6752 (uri (string-append
6753 "mirror://gnome/sources/NetworkManager-openconnect/"
6754 (version-major+minor version)
6755 "/NetworkManager-openconnect-" version ".tar.xz"))
6756 (sha256
6757 (base32
6758 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6759 (build-system gnu-build-system)
6760 (arguments
6761 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6762 #:phases
6763 (modify-phases %standard-phases
6764 (add-after 'configure 'patch-path
6765 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6766 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6767 "/sbin/openconnect"))
6768 (modprobe (string-append (assoc-ref inputs "kmod")
6769 "/bin/modprobe"))
6770 (pretty-ovpn (string-append "\"" openconnect "\"")))
6771 (substitute* "src/nm-openconnect-service.c"
2807a843 6772 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8378c87a
EF
6773 (("/sbin/modprobe") modprobe)))
6774 #t)))))
6775 (native-inputs
6776 `(("intltool" ,intltool)
4ca449c5 6777 ("libnma" ,libnma)
8378c87a
EF
6778 ("pkg-config" ,pkg-config)))
6779 (inputs
6780 `(("gcr" ,gcr)
6781 ("gtk+" ,gtk+)
6782 ("kmod" ,kmod)
6783 ("libsecret" ,libsecret)
6784 ("libxml2" ,libxml2)
b4fe5dab 6785 ("lz4" ,lz4)
8378c87a
EF
6786 ("network-manager" ,network-manager)
6787 ("openconnect" ,openconnect)))
6788 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6789 (synopsis "OpenConnect plug-in for NetworkManager")
6790 (description
6791 "This extension of NetworkManager allows it to take care of connections
6792to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6793Cisco's AnyConnect SSL VPN.")
6794 (license license:gpl2+)
e52b9534
LC
6795 (properties `((upstream-name . "NetworkManager-openconnect")
6796
6797 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6798 ;; file refers to account "nm-openconnect". Specify it here
6799 ;; so that 'network-manager-service-type' creates it.
6800 (user-accounts . ("nm-openconnect"))))))
8378c87a 6801
e5e1df4d
DC
6802(define-public mobile-broadband-provider-info
6803 (package
6804 (name "mobile-broadband-provider-info")
310c89e3 6805 (version "20190116")
e5e1df4d
DC
6806 (source (origin
6807 (method url-fetch)
6808 (uri (string-append
6809 "mirror://gnome/sources/"
6810 "mobile-broadband-provider-info/" version "/"
6811 "mobile-broadband-provider-info-" version ".tar.xz"))
6812 (sha256
6813 (base32
310c89e3 6814 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6815 (build-system gnu-build-system)
6816 (arguments
310c89e3 6817 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6818 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6819 (synopsis "Database of broadband connection configuration")
6820 (description "Database of broadband connection configuration.")
6821 (license license:public-domain)))
6822
4d62a9d3
SB
6823(define-public network-manager-applet
6824 (package
6825 (name "network-manager-applet")
4c291112 6826 (version "1.16.0")
4d62a9d3
SB
6827 (source (origin
6828 (method url-fetch)
3df63444 6829 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6830 (version-major+minor version) "/"
3df63444 6831 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6832 (sha256
6833 (base32
4c291112 6834 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
cd7f718e
RW
6835 (build-system meson-build-system)
6836 (arguments
4c291112 6837 '(#:glib-or-gtk? #t))
4d62a9d3
SB
6838 (native-inputs
6839 `(("intltool" ,intltool)
cd7f718e 6840 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6841 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6842 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6843 ("pkg-config" ,pkg-config)))
6844 (propagated-inputs
6845 ;; libnm-gtk.pc refers to all these.
6846 `(("dbus-glib" ,dbus-glib)
6847 ("gtk+" ,gtk+)
415b90f2
BW
6848 ("network-manager" ,network-manager)
6849 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
6850 ("libnma" ,libnma)))
4d62a9d3 6851 (inputs
cd7f718e 6852 `(("gcr" ,gcr)
4d62a9d3
SB
6853 ("libgudev" ,libgudev)
6854 ("libnotify" ,libnotify)
2116bfb3 6855 ("libsecret" ,libsecret)
240cee8a
KK
6856 ("libselinux" ,libselinux)
6857 ("jansson" ,jansson) ; for team support
4c291112 6858 ("modem-manager" ,modem-manager)))
4d62a9d3 6859 (synopsis "Applet for managing network connections")
8ce78609 6860 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
4d62a9d3
SB
6861 (description
6862 "This package contains a systray applet for NetworkManager. It displays
6863the available networks and allows users to easily switch between them.")
6864 (license license:gpl2+)))
56196594
RW
6865
6866(define-public libxml++
6867 (package
6868 (name "libxml++")
8344a85e 6869 (version "3.0.1")
56196594
RW
6870 (source (origin
6871 (method url-fetch)
6872 (uri (string-append "mirror://gnome/sources/" name "/"
6873 (version-major+minor version) "/"
6874 name "-" version ".tar.xz"))
6875 (sha256
6876 (base32
8344a85e 6877 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6878 (build-system gnu-build-system)
6879 ;; libxml++-3.0.pc refers to all these.
6880 (propagated-inputs
6881 `(("libxml2" ,libxml2)
6882 ("glibmm" ,glibmm)))
6883 (native-inputs
6884 `(("perl" ,perl)
6885 ("pkg-config" ,pkg-config)))
6886 (home-page "http://libxmlplusplus.sourceforge.net/")
6887 (synopsis "C++ wrapper for XML parser library libxml2")
6888 (description
6889 "This package provides a C++ wrapper for the XML parser library
6890libxml2.")
6891 (license license:lgpl2.1+)))
df12f04a 6892
b61d9627
AW
6893(define-public libxml++-2
6894 (package
6895 (inherit libxml++)
6896 (name "libxml++")
6897 (version "2.40.1")
6898 (source (origin
6899 (method url-fetch)
6900 (uri (string-append "mirror://gnome/sources/" name "/"
6901 (version-major+minor version) "/"
6902 name "-" version ".tar.xz"))
6903 (sha256
6904 (base32
6905 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6906
df12f04a
SB
6907(define-public gdm
6908 (package
6909 (name "gdm")
0fda99c5 6910 (version "3.34.1")
df12f04a
SB
6911 (source (origin
6912 (method url-fetch)
6913 (uri (string-append "mirror://gnome/sources/" name "/"
6914 (version-major+minor version) "/"
6915 name "-" version ".tar.xz"))
6916 (sha256
6917 (base32
0fda99c5 6918 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 6919 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6920 (build-system glib-or-gtk-build-system)
df12f04a
SB
6921 (arguments
6922 '(#:configure-flags
af37e6bb 6923 `("--without-plymouth"
957dbc0a 6924 "--disable-systemd-journal"
51bc8357
TS
6925
6926 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6927 ;; instead of having to replace it (i.e., stopping the mingetty
6928 ;; service for TTY 1 before starting GDM).
6929 "--with-initial-vt=7"
6930
89c86562
TS
6931 ;; Use '/etc/environment' for locale settings instead of the
6932 ;; systemd-specific '/etc/locale.conf'.
6933 "--with-lang-file=/etc/environment"
6934
b74ef0ba
RW
6935 ,(string-append "--with-udevdir="
6936 (assoc-ref %outputs "out") "/lib/udev")
6937
af37e6bb
AW
6938 "--localstatedir=/var"
6939 ,(string-append "--with-default-path="
6940 (string-join '("/run/setuid-programs"
6941 "/run/current-system/profile/bin"
6942 "/run/current-system/profile/sbin")
957dbc0a
AW
6943 ":"))
6944 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6945 ;; XDG_DATA_DIRS so that it finds its schemas.
6946 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6947 #:phases
6948 (modify-phases %standard-phases
6949 (add-before
6950 'configure 'pre-configure
e8c6e771 6951 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6952 ;; We don't have <systemd/sd-daemon.h>.
6953 (substitute* '("common/gdm-log.c"
6954 "daemon/gdm-server.c"
6955 "daemon/gdm-session-worker.c"
6956 "daemon/gdm-session-worker-job.c")
6957 (("#include <systemd/sd-daemon\\.h>") ""))
6958 ;; Use elogind for sd-login.
6959 (substitute* '("common/gdm-common.c"
0fda99c5 6960 "daemon/gdm-local-display-factory.c"
df12f04a
SB
6961 "daemon/gdm-manager.c"
6962 "libgdm/gdm-user-switching.c")
6963 (("#include <systemd/sd-login\\.h>")
6964 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6965 ;; Check for elogind.
6966 (substitute* '("configure")
6967 (("libsystemd")
6968 "libelogind"))
af37e6bb
AW
6969 ;; Look for system-installed sessions in
6970 ;; /run/current-system/profile/share.
6971 (substitute* '("libgdm/gdm-sessions.c"
6972 "daemon/gdm-session.c"
6973 "daemon/gdm-display.c"
6974 "daemon/gdm-launch-environment.c")
6975 (("DATADIR \"/x")
6976 "\"/run/current-system/profile/share/x")
6977 (("DATADIR \"/wayland")
6978 "\"/run/current-system/profile/share/wayland")
6979 (("DATADIR \"/gnome")
6980 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6981 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6982 "GDM_DBUS_DAEMON"
c9ff92b5 6983 "GDM_X_SERVER"
41fa9f18 6984 "GDM_X_SESSION"
c9ff92b5
TS
6985 ;; XXX: Remove this once GNOME Shell is
6986 ;; a dependency of GDM.
6987 "XDG_DATA_DIRS")))
6988 (substitute* "daemon/gdm-session.c"
6989 (("set_up_session_environment \\(self\\);")
6990 (apply string-append
6991 "set_up_session_environment (self);\n"
6992 (map (lambda (name)
6993 (string-append
6994 "gdm_session_set_environment_variable "
6995 "(self, \"" name "\","
6996 "g_getenv (\"" name "\"));\n"))
6997 propagate)))))
a430a350
TS
6998 ;; Find the configuration file using an environment variable.
6999 (substitute* '("common/gdm-settings.c")
e0e6756f 7000 (("GDM_CUSTOM_CONF")
e57c2adb
TS
7001 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7002 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7003 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
7004 ;; Use service-supplied path to X.
7005 (substitute* '("daemon/gdm-server.c")
7006 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7007 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
7008 (substitute* '("daemon/gdm-wayland-session.c"
7009 "daemon/gdm-x-session.c")
1f564c15
TS
7010 (("\"dbus-daemon\"")
7011 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 7012 (("X_SERVER")
41fa9f18
TS
7013 "g_getenv (\"GDM_X_SERVER\")")
7014 (("GDMCONFDIR \"/Xsession\"")
7015 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
7016 ;; Use an absolute path for GNOME Session.
7017 (substitute* "daemon/gdm-launch-environment.c"
7018 (("\"gnome-session\"")
7019 (string-append "\"" (assoc-ref inputs "gnome-session")
7020 "/bin/gnome-session\"")))
e8c6e771
TS
7021 ;; Do not automatically select the placeholder session.
7022 (substitute* "daemon/gdm-session.c"
7023 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7024 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7025 "(g_strcmp0(search_dirs[i], \""
7026 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7027 "\") == 0 && "
7028 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7029 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 7030 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 7031 #t))
8caa4589
TS
7032 ;; GDM requires that there be at least one desktop entry
7033 ;; file. This phase installs a hidden one that simply
7034 ;; fails. This enables users to use GDM with a
7035 ;; '~/.xsession' script with no other desktop entry files.
7036 ;; See <https://bugs.gnu.org/35068>.
7037 (add-after 'install 'install-placeholder-desktop-entry
7038 (lambda* (#:key inputs outputs #:allow-other-keys)
7039 (let* ((out (assoc-ref outputs "out"))
7040 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7041 (fail (string-append sessions "/fail.desktop")))
7042 (mkdir-p sessions)
7043 (with-output-to-file fail
7044 (lambda ()
7045 (for-each
7046 display
7047 '("[Desktop Entry]\n"
7048 "Encoding=UTF-8\n"
7049 "Type=Application\n"
7050 "Name=Fail\n"
7051 "Comment=This session fails immediately.\n"
7052 "NoDisplay=true\n"
7053 "Exec=false\n"))))
7054 #t)))
69544798
TS
7055 ;; GDM needs GNOME Session to run these applications. We link
7056 ;; their autostart files in `share/gdm/greeter/autostart'
7057 ;; because GDM explicitly tells GNOME Session to look there.
7058 ;;
7059 ;; XXX: GNOME Shell should be linked here too, but currently
7060 ;; GNOME Shell depends on GDM.
7061 (add-after 'install 'link-autostart-files
7062 (lambda* (#:key inputs outputs #:allow-other-keys)
7063 (let* ((out (assoc-ref outputs "out"))
7064 (autostart (string-append out "/share/gdm/"
7065 "greeter/autostart"))
7066 (settings (assoc-ref inputs "gnome-settings-daemon")))
7067 (mkdir-p autostart)
7068 (with-directory-excursion autostart
7069 (for-each (lambda (desktop)
7070 (symlink desktop (basename desktop)))
7071 (find-files (string-append settings "/etc/xdg"))))
7072 #t))))))
df12f04a
SB
7073 (native-inputs
7074 `(("dconf" ,dconf)
7075 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7076 ("gobject-introspection" ,gobject-introspection)
7077 ("intltool" ,intltool)
7078 ("itstool" ,itstool)
7079 ("pkg-config" ,pkg-config)
7080 ("xmllint" ,libxml2)))
7081 (inputs
7082 `(("accountsservice" ,accountsservice)
7083 ("check" ,check) ; for testing
7084 ("elogind" ,elogind)
def6d6b6 7085 ("gnome-session" ,gnome-session)
69544798 7086 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
7087 ("gtk+" ,gtk+)
7088 ("iso-codes" ,iso-codes)
7089 ("libcanberra" ,libcanberra)
7090 ("linux-pam" ,linux-pam)))
7091 (synopsis "Display manager for GNOME")
f032d0be 7092 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
7093 (description
7094 "GNOME Display Manager is a system service that is responsible for
7095providing graphical log-ins and managing local and remote displays.")
7096 (license license:gpl2+)))
8e1dd04f
SB
7097
7098(define-public libgtop
7099 (package
7100 (name "libgtop")
015fc036 7101 (version "2.40.0")
8e1dd04f
SB
7102 (source (origin
7103 (method url-fetch)
59487fc2 7104 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7105 (version-major+minor version) "/"
59487fc2 7106 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7107 (sha256
7108 (base32
015fc036 7109 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7110 (build-system gnu-build-system)
7111 (native-inputs
7112 `(("gobject-introspection" ,gobject-introspection)
7113 ("intltool" ,intltool)
7114 ("perl" ,perl)
7115 ("pkg-config" ,pkg-config)))
7116 (propagated-inputs
7117 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7118 (synopsis "Portable system access library")
7119 (home-page "https://www.gnome.org/")
7120 (description
7121 "LibGTop is a library to get system specific data such as CPU and memory
7122usage and information about running processes.")
7123 (license license:gpl2+)))
b96c4260
SB
7124
7125(define-public gnome-bluetooth
7126 (package
7127 (name "gnome-bluetooth")
e8f4bf6b 7128 (version "3.34.0")
b96c4260
SB
7129 (source (origin
7130 (method url-fetch)
7131 (uri (string-append "mirror://gnome/sources/" name "/"
7132 (version-major+minor version) "/"
7133 name "-" version ".tar.xz"))
7134 (sha256
7135 (base32
e8f4bf6b 7136 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 7137 (build-system meson-build-system)
b96c4260
SB
7138 (native-inputs
7139 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7140 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7141 ("gobject-introspection" ,gobject-introspection)
7142 ("intltool" ,intltool)
7143 ("pkg-config" ,pkg-config)
7144 ("xmllint" ,libxml2)))
7145 (propagated-inputs
7146 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7147 `(("glib" ,glib)
7148 ("gtk+" ,gtk+)))
b96c4260 7149 (inputs
723afae6
KK
7150 `(("eudev" ,eudev)
7151 ("libcanberra" ,libcanberra)
b96c4260
SB
7152 ("libnotify" ,libnotify)))
7153 (synopsis "GNOME Bluetooth subsystem")
7154 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7155 (description
7156 "This package contains tools for managing and manipulating Bluetooth
7157devices using the GNOME desktop.")
7158 (license license:lgpl2.1+)))
b645146f
SB
7159
7160(define-public gnome-control-center
7161 (package
7162 (name "gnome-control-center")
c576328d 7163 (version "3.34.2")
b645146f
SB
7164 (source (origin
7165 (method url-fetch)
7166 (uri (string-append "mirror://gnome/sources/" name "/"
7167 (version-major+minor version) "/"
7168 name "-" version ".tar.xz"))
7169 (sha256
7170 (base32
c576328d 7171 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7172 (build-system meson-build-system)
b645146f 7173 (arguments
59dac026
RW
7174 '(#:glib-or-gtk? #t
7175 #:configure-flags
64c70430
KK
7176 (list "-Dcheese=false"
7177 (string-append "-Dgnome_session_libexecdir="
7178 (assoc-ref %build-inputs "gnome-session")
7179 "/libexec"))
59dac026 7180 #:phases
b645146f
SB
7181 (modify-phases %standard-phases
7182 (add-before 'configure 'patch-paths
7183 (lambda* (#:key inputs #:allow-other-keys)
7184 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7185 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7186 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7187 (nm-applet (assoc-ref inputs "network-manager-applet"))
7188 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7189 (substitute* "panels/datetime/tz.h"
7190 (("/usr/share/zoneinfo/zone.tab")
7191 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7192 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7193 (("/usr/share/locale")
7194 (string-append libc "/share/locale")))
1df38cfc
LC
7195 (substitute* "panels/region/cc-region-panel.c"
7196 (("\"gkbd-keyboard-display")
7197 (string-append "\"" libgnomekbd
7198 "/bin/gkbd-keyboard-display")))
341225ac
LC
7199 (substitute* '("panels/network/net-device-wifi.c"
7200 "panels/network/net-device.c"
7201 "panels/network/connection-editor/net-connection-editor.c")
7202 (("\"nm-connection-editor")
7203 (string-append "\"" nm-applet
7204 "/bin/nm-connection-editor")))
1acd107c
FP
7205 (substitute* '("panels/user-accounts/run-passwd.c")
7206 (("/usr/bin/passwd")
7207 "/run/setuid-programs/passwd"))
64c70430
KK
7208 (substitute* "panels/info/cc-info-overview-panel.c"
7209 (("DATADIR \"/gnome/gnome-version.xml\"")
7210 (string-append "\"" gnome-desktop
7211 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7212 #t)))
7213 (add-after 'unpack 'skip-gtk-update-icon-cache
7214 ;; Don't create 'icon-theme.cache'.
7215 (lambda _
7216 (substitute* "build-aux/meson/meson_post_install.py"
7217 (("gtk-update-icon-cache") (which "true")))
7218 #t)))))
b645146f
SB
7219 (native-inputs
7220 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7221 ("intltool" ,intltool)
7222 ("pkg-config" ,pkg-config)
a6938bac
KK
7223 ("xsltproc" ,libxslt)
7224 ;; For tests
7225 ("hicolor-icon-theme" ,hicolor-icon-theme)
7226 ("python-dbusmock" ,python-dbusmock)
7227 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7228 (inputs
7229 `(("accountsservice" ,accountsservice)
7230 ("clutter-gtk" ,clutter-gtk)
7231 ("colord-gtk" ,colord-gtk)
7232 ("cups" ,cups)
7233 ("dconf" ,dconf)
7234 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7235 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7236 ("gnome-bluetooth" ,gnome-bluetooth)
7237 ("gnome-desktop" ,gnome-desktop)
7238 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7239 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7240 ("gnome-session" ,gnome-session)
b645146f
SB
7241 ("gnome-settings-daemon" ,gnome-settings-daemon)
7242 ("grilo" ,grilo)
a6938bac 7243 ("gsound" ,gsound)
b645146f
SB
7244 ("ibus" ,ibus)
7245 ("libcanberra" ,libcanberra)
1df38cfc 7246 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7247 ("libgudev" ,libgudev)
7248 ("libgtop" ,libgtop)
46cf3434 7249 ("libnma" ,libnma)
b645146f 7250 ("libpwquality" ,libpwquality)
982c0b36 7251 ("libsecret" ,libsecret)
b645146f
SB
7252 ("libsoup" ,libsoup)
7253 ("libxml2" ,libxml2)
7254 ("libwacom" ,libwacom)
7255 ("mesa" ,mesa)
7256 ("mit-krb5" ,mit-krb5)
7257 ("modem-manager" ,modem-manager)
7258 ("network-manager-applet" ,network-manager-applet)
7259 ("polkit" ,polkit)
7260 ("pulseaudio" ,pulseaudio)
7261 ("smbclient" ,samba)
7262 ("tzdata" ,tzdata)
982c0b36 7263 ("udisks" ,udisks)
b645146f
SB
7264 ("upower" ,upower)))
7265 (synopsis "Utilities to configure the GNOME desktop")
7266 (home-page "https://www.gnome.org/")
7267 (description
7268 "This package contains configuration applets for the GNOME desktop,
7269allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7270properties, sound setup, desktop theme and background, user interface
7271properties, screen resolution, and other GNOME parameters.")
7272 (license license:gpl2+)))
a4df5756
SB
7273
7274(define-public gnome-shell
7275 (package
7276 (name "gnome-shell")
28457ae6 7277 (version "3.34.2")
a4df5756
SB
7278 (source (origin
7279 (method url-fetch)
7280 (uri (string-append "mirror://gnome/sources/" name "/"
7281 (version-major+minor version) "/"
7282 name "-" version ".tar.xz"))
7283 (sha256
7284 (base32
28457ae6
KK
7285 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7286 (patches (search-patches "gnome-shell-theme.patch"
7287 "gnome-shell-disable-test.patch"))
a76d0f03
LC
7288 (modules '((guix build utils)))
7289 (snippet
7290 #~(begin
a76d0f03
LC
7291 ;; Copy images for use on the GDM log-in screen.
7292 (copy-file #$(file-append %artwork-repository
7293 "/slim/0.x/background.png")
7294 "data/theme/guix-background.png")
45fef894
LC
7295 (copy-file #$(file-append %artwork-repository
7296 "/logo/Guix-horizontal-white.svg")
7297 "data/theme/guix-logo.svg")
a76d0f03 7298 #t))))
2b0c755d 7299 (build-system meson-build-system)
a4df5756 7300 (arguments
08185081
MB
7301 `(#:glib-or-gtk? #t
7302 #:disallowed-references ((,glib "bin")
11e1df56
LC
7303 ,inkscape ,libxslt
7304 ,ruby-sass)
2b0c755d
RW
7305 #:configure-flags
7306 (list "-Dsystemd=false"
7307 ;; Otherwise, the RUNPATH will lack the final path component.
7308 (string-append "-Dc_link_args=-Wl,-rpath="
7309 (assoc-ref %outputs "out")
7310 "/lib/gnome-shell"))
11e1df56 7311
08185081 7312 #:modules ((guix build meson-build-system)
11e1df56
LC
7313 (guix build utils)
7314 (srfi srfi-1))
7315
2b0c755d 7316 #:phases
a4df5756 7317 (modify-phases %standard-phases
2b0c755d 7318 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7319 (lambda* (#:key outputs #:allow-other-keys)
7320 (let* ((out (assoc-ref outputs "out"))
7321 (keysdir (string-append
7322 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7323 (substitute* "meson.build"
7324 (("keysdir =.*")
7325 (string-append "keysdir = '" keysdir "'\n")))
7326 #t)))
ebfe259f
MB
7327 (add-before 'configure 'convert-logo-to-png
7328 (lambda* (#:key inputs #:allow-other-keys)
7329 ;; Convert the logo from SVG to PNG.
7330 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7331 "data/theme/guix-logo.svg")))
ba00235a 7332 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7333 (lambda* (#:key inputs #:allow-other-keys)
7334 (substitute* "js/misc/ibusManager.js"
7335 (("'ibus-daemon'")
7336 (string-append "'" (assoc-ref inputs "ibus")
7337 "/bin/ibus-daemon'")))
d6fda4d3
LC
7338 (substitute* "js/ui/status/keyboard.js"
7339 (("'gkbd-keyboard-display'")
7340 (string-append "'" (assoc-ref inputs "libgnomekbd")
7341 "/bin/gkbd-keyboard-display'")))
2472cdec 7342 #t))
2b0c755d
RW
7343 (add-before 'check 'pre-check
7344 (lambda* (#:key inputs #:allow-other-keys)
7345 ;; Tests require a running X server.
7346 (system "Xvfb :1 &")
7347 (setenv "DISPLAY" ":1")
7348 #t))
7349 (add-after 'install 'wrap-programs
7350 (lambda* (#:key inputs outputs #:allow-other-keys)
7351 (let ((out (assoc-ref outputs "out"))
7352 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7353 (python-path (getenv "PYTHONPATH")))
7354 (wrap-program (string-append out "/bin/gnome-shell")
7355 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7356 ;; FIXME: gnome-shell loads these libraries with unqualified
7357 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7358 ;; alternative might be to patch gnome-shell.
7359 `("LD_LIBRARY_PATH" ":" prefix
7360 ,(map (lambda (pkg)
7361 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7362 '("gdk-pixbuf"
7363 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7364 (for-each
7365 (lambda (prog)
7366 (wrap-program (string-append out "/bin/" prog)
7367 `("PYTHONPATH" ":" prefix (,python-path))
7368 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7369 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7370 #t)))
11e1df56
LC
7371 (replace 'glib-or-gtk-wrap
7372 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7373 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7374 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7375 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7376 ;; phase. Fix that since we don't need these.
7377 (wrap #:inputs (fold alist-delete inputs
7378 '("inkscape" "intltool" "glib:bin"))
7379 #:outputs outputs)))))))
a4df5756 7380 (native-inputs
28457ae6
KK
7381 `(("asciidoc" ,asciidoc)
7382 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7383 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7384 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7385 ("inkscape" ,inkscape)
a4df5756
SB
7386 ("intltool" ,intltool)
7387 ("pkg-config" ,pkg-config)
7388 ("python" ,python)
2b0c755d
RW
7389 ("ruby-sass" ,ruby-sass)
7390 ("sassc" ,sassc)
a76d0f03 7391 ("xsltproc" ,libxslt)
2b0c755d 7392 ;; For tests
0b4504f6 7393 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7394 (inputs
7395 `(("accountsservice" ,accountsservice)
7396 ("caribou" ,caribou)
7397 ("docbook-xsl" ,docbook-xsl)
7398 ("evolution-data-server" ,evolution-data-server)
7399 ("gcr" ,gcr)
7400 ("gdm" ,gdm)
c5db31d4 7401 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 7402 ("gjs" ,gjs)
28457ae6 7403 ("gnome-autoar" ,gnome-autoar)
a4df5756 7404 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7405 ("gnome-desktop" ,gnome-desktop)
7406 ("gnome-settings-daemon" ,gnome-settings-daemon)
7407 ("gst-plugins-base" ,gst-plugins-base)
7408 ("ibus" ,ibus)
7409 ("libcanberra" ,libcanberra)
7410 ("libcroco" ,libcroco)
d6fda4d3 7411 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756 7412 ("libgweather" ,libgweather)
e24d311f 7413 ("libnma" ,libnma)
a4df5756
SB
7414 ("libsoup" ,libsoup)
7415 ("mesa-headers" ,mesa-headers)
7416 ("mutter" ,mutter)
7417 ("network-manager-applet" ,network-manager-applet)
7418 ("polkit" ,polkit)
7419 ("pulseaudio" ,pulseaudio)
7420 ("python-pygobject" ,python-pygobject)
7421 ("startup-notification" ,startup-notification)
7422 ("telepathy-logger" ,telepathy-logger)
7423 ("upower" ,upower)
30e760f0
MB
7424 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7425 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7426 ("librsvg" ,librsvg)
2b0c755d 7427 ("geoclue" ,geoclue)))
a4df5756
SB
7428 (synopsis "Desktop shell for GNOME")
7429 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7430 (description
7431 "GNOME Shell provides core user interface functions for the GNOME desktop,
7432like switching to windows and launching applications.")
7433 (license license:gpl2+)))
c3f29bc9
RS
7434
7435(define-public gtk-vnc
7436 (package
7437 (name "gtk-vnc")
965ff023 7438 (version "0.9.0")
c3f29bc9
RS
7439 (source
7440 (origin
7441 (method url-fetch)
7442 (uri (string-append "mirror://gnome/sources/" name "/"
7443 (version-major+minor version) "/"
7444 name "-" version ".tar.xz"))
7445 (sha256
7446 (base32
965ff023 7447 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7448 (build-system gnu-build-system)
7449 (arguments
7450 '(#:configure-flags '("--with-gtk=3.0")))
7451 (propagated-inputs
7452 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7453 (inputs
7454 `(("cyrus-sasl" ,cyrus-sasl)
7455 ("gnutls" ,gnutls)
7456 ("libgcrypt" ,libgcrypt)
7457 ("pulseaudio" ,pulseaudio)))
7458 (native-inputs
7459 `(("glib:bin" ,glib "bin")
7460 ("gobject-introspection" ,gobject-introspection)
7461 ("intltool" ,intltool)
7462 ("pkg-config" ,pkg-config)
2f17e939 7463 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7464 ("vala" ,vala)))
7465 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7466 (synopsis "VNC viewer widget for GTK+")
7467 (description
7468 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7469applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7470GTK-VNC implements client side RFB protocol and authentication extensions such
7471as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7472 (license license:lgpl2.1+)))
8b877545 7473
dc69fe18
MW
7474(define-public gnome-autoar
7475 (package
7476 (name "gnome-autoar")
17969940 7477 (version "0.2.4")
dc69fe18
MW
7478 (source (origin
7479 (method url-fetch)
7480 (uri (string-append "mirror://gnome/sources/" name "/"
7481 (version-major+minor version) "/"
7482 name "-" version ".tar.xz"))
7483 (sha256
7484 (base32
17969940 7485 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
7486 (build-system glib-or-gtk-build-system)
7487 (native-inputs
17969940 7488 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
7489 ("pkg-config" ,pkg-config)))
7490 (propagated-inputs
17969940 7491 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 7492 (inputs
0a6e9e13 7493 `(("gtk+" ,gtk+)))
dc69fe18
MW
7494 (synopsis "Archives integration support for GNOME")
7495 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7496 (description
7497 "GNOME Autoar is a library which makes creating and extracting archives
7498easy, safe, and automatic.")
7499 (license license:lgpl2.1+)))
7500
b64e217f
MW
7501(define-public tracker
7502 (package
7503 (name "tracker")
caaefa40 7504 (version "2.3.4")
b64e217f
MW
7505 (source (origin
7506 (method url-fetch)
b5b0fd23 7507 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7508 (version-major+minor version) "/"
b5b0fd23 7509 "tracker-" version ".tar.xz"))
b64e217f
MW
7510 (sha256
7511 (base32
caaefa40 7512 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7513 (build-system meson-build-system)
c8bdf589 7514 (arguments
5ada561c
KK
7515 `(#:glib-or-gtk? #t
7516 #:configure-flags
7517 ;; Otherwise, the RUNPATH will lack the final path component.
7518 (list (string-append "-Dc_link_args=-Wl,-rpath="
7519 (assoc-ref %outputs "out") "/lib:"
7520 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7521 #:phases
c8bdf589 7522 (modify-phases %standard-phases
c8bdf589
RW
7523 (add-before 'check 'pre-check
7524 (lambda _
63db190a
PN
7525 ;; Some tests expect to write to $HOME.
7526 (setenv "HOME" "/tmp")
c8bdf589 7527 #t)))))
b64e217f 7528 (native-inputs
5ada561c 7529 `(("glib:bin" ,glib "bin")
b64e217f 7530 ("gobject-introspection" ,gobject-introspection)
5ada561c 7531 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7532 ("intltool" ,intltool)
7533 ("pkg-config" ,pkg-config)
7534 ("vala" ,vala)))
7535 (inputs
63db190a 7536 `(("dbus" ,dbus)
44ed6284 7537 ("sqlite" ,sqlite)
b64e217f 7538 ("libxml2" ,libxml2)
63db190a 7539 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7540 ("json-glib" ,json-glib)
63db190a 7541 ("libsoup" ,libsoup)))
b64e217f
MW
7542 (synopsis "Metadata database, indexer and search tool")
7543 (home-page "https://wiki.gnome.org/Projects/Tracker")
7544 (description
63db190a
PN
7545 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7546
7547It is a middleware component aimed at desktop application developers who want
7548their apps to browse and search user content. It's not designed to be used
7549directly by desktop users, but it provides a commandline tool named
7550@command{tracker} for the adventurous.
7551
7552Tracker allows your application to instantly perform full-text searches across
7553all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7554example. This is achieved by indexing the user's home directory in the
7555background.
7556
7557Tracker also allows your application to query and list content that the user
7558has stored. For example, GNOME Music displays all the music files that are
7559found by Tracker. This means that GNOME Music doesn't need to maintain a
7560database of its own.
7561
7562If you need to go beyond simple searches, Tracker is also a linked data
7563endpoint and it understands SPARQL. ")
7564 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7565 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7566 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7567 (license (list license:gpl2+
63db190a
PN
7568 license:bsd-3
7569 license:lgpl2.1+))))
b64e217f 7570
03be9874
KK
7571(define-public tracker-miners
7572 (package
7573 (name "tracker-miners")
de60ac2f 7574 (version "2.3.3")
03be9874
KK
7575 (source (origin
7576 (method url-fetch)
7577 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7578 (version-major+minor version)
7579 "/tracker-miners-" version ".tar.xz"))
7580 (sha256
7581 (base32
de60ac2f 7582 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7583 (build-system meson-build-system)
7584 (arguments
7585 `(#:glib-or-gtk? #t
7586 #:configure-flags
7587 (list "-Dminer_rss=false" ; libgrss is required.
7588 ;; Ensure the RUNPATH contains all installed library locations.
7589 (string-append "-Dc_link_args=-Wl,-rpath="
7590 (assoc-ref %outputs "out")
7591 "/lib/tracker-miners-2.0")
7592 ;; TODO: Enable functional tests. Currently, the following error
7593 ;; appears:
7594 ;; Exception: The functional tests require DConf to be the default
7595 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7596 "-Dfunctional_tests=false")))
7597 (native-inputs
7598 `(("dbus" ,dbus)
7599 ("intltool" ,intltool)
7600 ("glib:bin" ,glib "bin")
7601 ("gobject-introspection" ,gobject-introspection)
7602 ("pkg-config" ,pkg-config)
7603 ("python-pygobject" ,python-pygobject)))
7604 (inputs
7605 `(("exempi" ,exempi)
7606 ("ffmpeg" ,ffmpeg)
7607 ("flac" ,flac)
7608 ("giflib" ,giflib)
7609 ("glib" ,glib)
7610 ("gstreamer" ,gstreamer)
7611 ("icu4c" ,icu4c)
7612 ("libcue" ,libcue)
7613 ("libexif" ,libexif)
7614 ("libgsf" ,libgsf)
7615 ("libgxps" ,libgxps)
7616 ("libiptcdata" ,libiptcdata)
4bd428a7 7617 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7618 ("libosinfo" ,libosinfo)
7619 ("libpng" ,libpng)
7620 ("libseccomp" ,libseccomp)
7621 ("libtiff" ,libtiff)
7622 ("libvorbis" ,libvorbis)
7623 ("libxml2" ,libxml2)
7624 ("poppler" ,poppler)
7625 ("taglib" ,taglib)
7626 ("totem-pl-parser" ,totem-pl-parser)
7627 ("tracker" ,tracker)
7628 ("upower" ,upower)
7629 ("zlib" ,zlib)))
b64e217f
MW
7630 (synopsis "Metadata database, indexer and search tool")
7631 (home-page "https://wiki.gnome.org/Projects/Tracker")
7632 (description
7633 "Tracker is an advanced framework for first class objects with associated
7634metadata and tags. It provides a one stop solution for all metadata, tags,
7635shared object databases, search tools and indexing.")
7636 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7637 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7638 (license (list license:gpl2+
7639 license:lgpl2.1+
7640 license:lgpl2.0+))))
7641
8b877545
RS
7642(define-public nautilus
7643 (package
7644 (name "nautilus")
8069ff0b 7645 (version "3.34.2")
8b877545
RS
7646 (source (origin
7647 (method url-fetch)
7648 (uri (string-append "mirror://gnome/sources/" name "/"
7649 (version-major+minor version) "/"
7650 name "-" version ".tar.xz"))
7651 (sha256
7652 (base32
8069ff0b 7653 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 7654 (build-system meson-build-system)
8b877545 7655 (arguments
35e2d0cf 7656 '(#:glib-or-gtk? #t
8069ff0b
KK
7657 #:phases
7658 (modify-phases %standard-phases
7659 (add-after 'unpack 'skip-gtk-update-icon-cache
7660 ;; Don't create 'icon-theme.cache'.
7661 (lambda _
7662 (substitute* "build-aux/meson/postinstall.py"
7663 (("gtk-update-icon-cache") "true"))
7664 #t)))
8b877545
RS
7665 ;; XXX: FAIL: check-nautilus
7666 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7667 #:tests? #f))
7668 (native-inputs
35e2d0cf
R
7669 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7670 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
7671 ("gobject-introspection" ,gobject-introspection)
7672 ("intltool" ,intltool)
7673 ("pkg-config" ,pkg-config)))
8b877545 7674 (inputs
8b877545 7675 `(("dconf" ,dconf)
caf6c363 7676 ("gexiv2" ,gexiv2)
dd05e731 7677 ("gvfs" ,gvfs)
8b877545
RS
7678 ("exempi" ,exempi)
7679 ("gnome-desktop" ,gnome-desktop)
09d88905 7680 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7681 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7682 ("libseccomp" ,libseccomp)
35e2d0cf 7683 ("libselinux" ,libselinux)
09d88905 7684 ("tracker" ,tracker)
3cafb9d4 7685 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7686 ;; XXX: gtk+ is required by libnautilus-extension.pc
7687 ;;
7688 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7689 ;; package. See:
7690 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7691 ("gtk+" ,gtk+)
8b877545
RS
7692 ("libexif" ,libexif)
7693 ("libxml2" ,libxml2)))
7694 (synopsis "File manager for GNOME")
7695 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7696 (description
7697 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7698design and behaviour, giving the user a simple way to navigate and manage its
7699files.")
7700 (license license:gpl2+)))
3c697ffd
JR
7701
7702(define-public baobab
7703 (package
7704 (name "baobab")
e0c5f20c 7705 (version "3.32.0")
3c697ffd
JR
7706 (source (origin
7707 (method url-fetch)
7708 (uri (string-append
7709 "mirror://gnome/sources/" name "/"
7710 (version-major+minor version) "/"
7711 name "-" version ".tar.xz"))
7712 (sha256
7713 (base32
e0c5f20c 7714 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7715 (build-system meson-build-system)
7716 (arguments
7717 '(#:glib-or-gtk? #t))
3c697ffd
JR
7718 (native-inputs
7719 `(("intltool" ,intltool)
7720 ("pkg-config" ,pkg-config)
d233d373
RJ
7721 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7722 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7723 ("itstool" ,itstool)
7724 ("xmllint" ,libxml2)
7725 ("glib" ,glib "bin")
7726 ("vala" ,vala)))
7727 (inputs
7728 `(("gtk+" ,gtk+)))
7729 (synopsis "Disk usage analyzer for GNOME")
7730 (description
7731 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7732usage in the GNOME desktop environment. It can easily scan device volumes or
7733a specific user-requested directory branch (local or remote). Once the scan
7734is complete it provides a graphical representation of each selected folder.")
7735 (home-page "https://wiki.gnome.org/Apps/Baobab")
7736 (license license:gpl2+)))
dc050251 7737
fdba447c
RS
7738(define-public gnome-backgrounds
7739 (package
7740 (name "gnome-backgrounds")
0856b0d9 7741 (version "3.34.0")
fdba447c
RS
7742 (source
7743 (origin
7744 (method url-fetch)
7745 (uri (string-append "mirror://gnome/sources/" name "/"
7746 (version-major+minor version) "/"
7747 name "-" version ".tar.xz"))
7748 (sha256
7749 (base32
0856b0d9 7750 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 7751 (build-system meson-build-system)
fdba447c
RS
7752 (native-inputs
7753 `(("intltool" ,intltool)))
e04e8a8c 7754 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7755 (synopsis "Background images for the GNOME desktop")
7756 (description
7757 "GNOME backgrounds package contains a collection of graphics files which
7758can be used as backgrounds in the GNOME Desktop environment. Additionally,
7759the package creates the proper framework and directory structure so that you
7760can add your own files to the collection.")
7761 (license (list license:gpl2+
7762 license:cc-by2.0
7763 license:cc-by-sa2.0
7764 license:cc-by-sa3.0))))
7765
b784b1a9
RS
7766(define-public gnome-screenshot
7767 (package
7768 (name "gnome-screenshot")
d5101dab 7769 (version "3.34.0")
b784b1a9
RS
7770 (source
7771 (origin
7772 (method url-fetch)
7773 (uri (string-append "mirror://gnome/sources/" name "/"
7774 (version-major+minor version) "/"
7775 name "-" version ".tar.xz"))
7776 (sha256
7777 (base32
d5101dab 7778 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 7779 (build-system meson-build-system)
d5101dab
KK
7780 (arguments
7781 '(#:phases
7782 (modify-phases %standard-phases
7783 (add-after 'unpack 'skip-gtk-update-icon-cache
7784 ;; Don't create 'icon-theme.cache'.
7785 (lambda _
7786 (substitute* "build-aux/postinstall.py"
7787 (("gtk-update-icon-cache") "true"))
7788 #t)))))
b784b1a9
RS
7789 (native-inputs
7790 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 7791 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7792 ("intltool" ,intltool)
8356aefa 7793 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7794 ("pkg-config" ,pkg-config)))
7795 (inputs
7796 `(("gtk+" ,gtk+)
7797 ("libcanberra" ,libcanberra)
7798 ("libx11" ,libx11)
7799 ("libxext" ,libxext)))
676e7cb4 7800 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7801 (synopsis "Take pictures of your screen")
7802 (description
7803 "GNOME Screenshot is a utility used for taking screenshots of the entire
7804screen, a window or a user defined area of the screen, with optional
7805beautifying border effects.")
7806 (license license:gpl2+)))
7807
66d59111
RS
7808(define-public dconf-editor
7809 (package
7810 (name "dconf-editor")
720aa20f 7811 (version "3.34.2")
66d59111
RS
7812 (source
7813 (origin
7814 (method url-fetch)
7815 (uri (string-append "mirror://gnome/sources/" name "/"
7816 (version-major+minor version) "/"
7817 name "-" version ".tar.xz"))
7818 (sha256
7819 (base32
720aa20f 7820 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 7821 (build-system meson-build-system)
66d59111
RS
7822 (native-inputs
7823 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7824 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7825 ("intltool" ,intltool)
294ff39d
RW
7826 ("pkg-config" ,pkg-config)
7827 ("vala" ,vala)))
66d59111
RS
7828 (inputs
7829 `(("dconf" ,dconf)
7830 ("gtk+" ,gtk+)
7831 ("libxml2" ,libxml2)))
720aa20f 7832 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
7833 (synopsis "Graphical editor for GNOME's dconf configuration system")
7834 (description
7835 "Dconf-editor is a graphical tool for browsing and editing the dconf
7836configuration system for GNOME. It allows users to configure desktop
7837software that do not provide their own configuration interface.")
7838 (license license:lgpl2.1+)))
7839
96d36f38
AW
7840(define-public gnome-default-applications
7841 (package
7842 (name "gnome-default-applications")
7843 (version "0")
7844 (build-system trivial-build-system)
7845 (source #f)
7846 (propagated-inputs
8ad4f0aa
LC
7847 `(("nautilus" ,nautilus)
7848 ("evince" ,evince)))
96d36f38
AW
7849 (arguments
7850 `(#:modules ((guix build utils))
7851 #:builder
7852 (begin
7853 (use-modules (guix build utils))
7854 (let* ((out (assoc-ref %outputs "out"))
7855 (apps (string-append out "/share/applications")))
7856 (mkdir-p apps)
a6ac679f 7857 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7858 (lambda (port)
7859 (format port "[Default Applications]\n")
8ad4f0aa
LC
7860 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7861 (format port "application/pdf=evince.desktop\n")
7862 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7863 #t))))
7864 (synopsis "Default MIME type associations for the GNOME desktop")
7865 (description
7866 "Given many installed packages which might handle a given MIME type, a
7867user running the GNOME desktop probably has some preferences: for example,
7868that folders be opened by default by the Nautilus file manager, not the Baobab
7869disk usage analyzer. This package establishes that set of default MIME type
7870associations for GNOME.")
7871 (license license:gpl3+)
7872 (home-page #f)))
7873
3f1ed953
RG
7874(define-public libgovirt
7875 (package
7876 (name "libgovirt")
7877 (version "0.3.6")
7878 (source (origin
7879 (method url-fetch)
7880 (uri (string-append "mirror://gnome/sources/" name "/"
7881 (version-major+minor version) "/"
7882 name "-" version ".tar.xz"))
7883 (sha256
7884 (base32
7885 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7886 (build-system glib-or-gtk-build-system)
7887 (native-inputs
7888 `(("gettext" ,gettext-minimal)
7889 ("glib:bin" ,glib "bin")
7890 ("gobject-introspection" ,gobject-introspection)
7891 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7892 ("gtk+:bin" ,gtk+ "bin")
7893 ("pkg-config" ,pkg-config)))
7894 (inputs
7895 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7896 ("librest" ,rest)))
7897 (synopsis "GoVirt Library")
7898 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7899 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7900 (license license:gpl2+)))
7901
8672e5e9
RG
7902(define-public gnome-weather
7903 (package
7904 (name "gnome-weather")
7905 (version "3.34.0")
7906 (source (origin
7907 (method url-fetch)
7908 (uri (string-append "mirror://gnome/sources/" name "/"
7909 (version-major+minor version) "/"
7910 name "-" version ".tar.xz"))
7911 (sha256
7912 (base32
7913 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7914 (build-system meson-build-system)
7915 (native-inputs
7916 `(("gettext" ,gettext-minimal)
7917 ("glib:bin" ,glib "bin")
7918 ("gobject-introspection" ,gobject-introspection)
7919 ("gtk+:bin" ,gtk+ "bin")
7920 ("pkg-config" ,pkg-config)))
7921 (inputs
7922 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7923 ("appstream-glib" ,appstream-glib)
7924 ("geoclue" ,geoclue)
7925 ("gdk-pixbuf" ,gdk-pixbuf)
7926 ("gjs" ,gjs)
7927 ("gnome-desktop" ,gnome-desktop)
7928 ("libgweather" ,libgweather)))
4391fefc 7929 (arguments
2b68ba72
MB
7930 `(#:glib-or-gtk? #t
7931 #:phases
4391fefc
PN
7932 (modify-phases %standard-phases
7933 (add-after 'install 'fix-desktop-file
7934 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7935 ;; See https://issues.guix.gnu.org/issue/39324.
7936 (lambda* (#:key outputs #:allow-other-keys)
7937 (let* ((out (assoc-ref outputs "out"))
7938 (applications (string-append out "/share/applications")))
7939 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
7940 (("Exec=.*") "Exec=gnome-weather\n"))
7941 #t)))
7942 (add-after 'install 'wrap
7943 (lambda* (#:key inputs outputs #:allow-other-keys)
7944 (let ((out (assoc-ref outputs "out"))
7945 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7946 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7947 (wrap-program (string-append out "/bin/gnome-weather")
7948 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7949 #t))))))
8672e5e9
RG
7950 (synopsis "Weather monitoring for GNOME desktop")
7951 (description "GNOME Weather is a small application that allows you to
7952monitor the current weather conditions for your city, or anywhere in the
7953world.")
7954 (home-page "https://wiki.gnome.org/Apps/Weather")
7955 (license license:gpl2+)))
7956
dc050251
SB
7957(define-public gnome
7958 (package
7959 (name "gnome")
7960 (version (package-version gnome-shell))
7961 (source #f)
7962 (build-system trivial-build-system)
e3cfef22 7963 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7964 (propagated-inputs
8d8c6bff 7965 ;; TODO: Add or remove packages according to:
a8cda7f5 7966 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7967 `(
8d8c6bff 7968 ;; GNOME-Core-OS-Services
7922b6f7 7969 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7970 ("network-manager" ,network-manager)
7971 ("packagekit" ,packagekit)
7972 ("upower" ,upower)
7973 ;; GNOME-Core-Shell
7974 ("adwaita-icon-theme" ,adwaita-icon-theme)
7975 ("gdm" ,gdm)
7976 ("glib-networking" ,glib-networking)
7977 ("gnome-backgrounds" ,gnome-backgrounds)
7978 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7979 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7980 ("gnome-control-center" ,gnome-control-center)
7981 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7982 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 7983 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7984 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7985 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7986 ("gnome-session" ,gnome-session)
7987 ("gnome-settings-daemon" ,gnome-settings-daemon)
7988 ("gnome-shell-extensions" ,gnome-shell-extensions)
7989 ("gnome-shell" ,gnome-shell)
7990 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7991 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7992 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7993 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7994 ("gvfs" ,gvfs)
7995 ("mutter" ,mutter)
7996 ("orca" ,orca)
d36fa50f
RG
7997 ("rygel" ,rygel)
7998 ("sushi" ,sushi)
8d8c6bff
RG
7999 ;; GNOME-Core-Utilities
8000 ("baobab" ,baobab)
8001 ("cheese" ,cheese)
ce784e6c
MB
8002 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8003 ;; only works on x86_64, so exclude it on other architectures.
8004 ,@(if (string-prefix? "x86_64" (%current-system))
8005 `(("eog" ,eog))
8006 '())
8d8c6bff
RG
8007 ("epiphany" ,epiphany)
8008 ("evince" ,evince)
8009 ("file-roller" ,file-roller)
8010 ("gedit" ,gedit)
897897bd 8011 ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
8012 ("gnome-calculator" ,gnome-calculator)
8013 ("gnome-calendar" ,gnome-calendar)
8014 ("gnome-characters" ,gnome-characters)
8015 ("gnome-clocks" ,gnome-clocks)
8016 ("gnome-contacts" ,gnome-contacts)
8017 ("gnome-disk-utility" ,gnome-disk-utility)
8018 ("gnome-font-viewer" ,gnome-font-viewer)
8019 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
8020 ; TODO: ("gnome-music" ,gnome-music)
8021 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
8022 ("gnome-screenshot" ,gnome-screenshot)
8023 ("gnome-system-monitor" ,gnome-system-monitor)
8024 ("gnome-terminal" ,gnome-terminal)
d36fa50f 8025 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
8026 ("nautilus" ,nautilus)
8027 ("simple-scan" ,simple-scan)
8028 ("totem" ,totem)
7922b6f7
RG
8029 ("yelp" ,yelp)
8030 ;; Others
8031 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
8032 ("gnome-online-accounts" ,gnome-online-accounts)
8033
8034 ;; Packages not part of GNOME proper but that are needed for a good
8035 ;; experience. See <https://bugs.gnu.org/39646>.
8036 ;; XXX: Find out exactly which ones are needed and why.
8037 ("font-cantarell" ,font-cantarell)
8038 ("font-dejavu" ,font-dejavu)
8039 ("at-spi2-core" ,at-spi2-core)
8040 ("dbus" ,dbus)
8041 ("dconf" ,dconf)
8042 ("desktop-file-utils" ,desktop-file-utils)
8043 ("gnome-default-applications" ,gnome-default-applications)
8044 ("gnome-themes-standard" ,gnome-themes-standard)
8045 ("gst-plugins-base" ,gst-plugins-base)
8046 ("gst-plugins-good" ,gst-plugins-good)
8047 ("gucharmap" ,gucharmap)
8048 ("pinentry-gnome3" ,pinentry-gnome3)
8049 ("pulseaudio" ,pulseaudio)
8050 ("shared-mime-info" ,shared-mime-info)
8051 ("system-config-printer" ,system-config-printer)
8052 ("xdg-user-dirs" ,xdg-user-dirs)
8053 ("yelp" ,yelp)
8054 ("zenity" ,zenity)))
fe4e698d 8055 (synopsis "The GNU desktop environment")
dc050251
SB
8056 (home-page "https://www.gnome.org/")
8057 (description
fe4e698d
LC
8058 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8059applications for browsing the web, editing text and images, creating
8060documents and diagrams, playing media, scanning, and much more.")
dc050251 8061 (license license:gpl2+)))
4a526711
DT
8062
8063(define-public byzanz
8064 ;; The last stable release of Byzanz was in 2011, but there have been many
8065 ;; useful commits made to the Byzanz repository since then that it would be
8066 ;; silly to use such an old release.
8067 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8068 (package
8069 (name "byzanz")
8070 (version (string-append "0.2-1." (string-take commit 7)))
8071 (source (origin
8072 (method git-fetch)
8073 (uri (git-reference
5f13bf09 8074 (url "https://git.gnome.org/browse/byzanz")
4a526711 8075 (commit commit)))
5a6527e4 8076 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
8077 (sha256
8078 (base32
8079 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8080 (build-system glib-or-gtk-build-system)
8081 (arguments
8082 '(#:phases
8083 (modify-phases %standard-phases
778d6b52 8084 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
8085 (lambda _
8086 ;; The build system cleverly detects that we're not building from
8087 ;; a release tarball and turns on -Werror for GCC.
8088 ;; Unsurprisingly, there is a warning during compilation that
8089 ;; causes the build to fail unnecessarily, so we remove the flag.
8090 (substitute* '("configure.ac")
8091 (("-Werror") ""))
778d6b52 8092 #t)))))
4a526711
DT
8093 (native-inputs
8094 `(("autoconf" ,autoconf)
8095 ("automake" ,automake)
8096 ("gnome-common" ,gnome-common)
8097 ("intltool" ,intltool)
8098 ("libtool" ,libtool)
8099 ("pkg-config" ,pkg-config)
8100 ("which" ,which)))
8101 (inputs
8102 `(("glib" ,glib)
8103 ("gstreamer" ,gstreamer)
8104 ("gst-plugins-base" ,gst-plugins-base)
8105 ("gtk+" ,gtk+)))
8106 (synopsis "Desktop recording program")
8107 (description "Byzanz is a simple desktop recording program with a
8108command-line interface. It can record part or all of an X display for a
8109specified duration and save it as a GIF encoded animated image file.")
8110 (home-page "https://git.gnome.org/browse/byzanz")
8111 (license license:gpl2+))))
3a9a4c51 8112
0ec171ec
MS
8113(define-public gsound
8114 (package
8115 (name "gsound")
8116 (version "1.0.2")
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
8124 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8125 (build-system glib-or-gtk-build-system)
8126 (native-inputs
8127 `(("pkg-config" ,pkg-config)
8128 ("gobject-introspection" ,gobject-introspection)
8129 ("vala" ,vala)))
8130 (inputs
8131 `(("glib" ,glib)
8132 ("libcanberra" ,libcanberra)))
8133 (home-page "https://wiki.gnome.org/Projects/GSound")
8134 (synopsis "GObject wrapper for libcanberra")
8135 (description
8136 "GSound is a small library for playing system sounds. It's designed to be
8137used via GObject Introspection, and is a thin wrapper around the libcanberra C
8138library.")
8139 (license license:lgpl2.1+)))
8140
3a9a4c51
RS
8141(define-public libzapojit
8142 (package
8143 (name "libzapojit")
8144 (version "0.0.3")
8145 (source (origin
8146 (method url-fetch)
8147 (uri (string-append "mirror://gnome/sources/" name "/"
8148 (version-major+minor version) "/"
8149 name "-" version ".tar.xz"))
8150 (sha256
8151 (base32
8152 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8153 (build-system gnu-build-system)
8154 (native-inputs
8155 `(("gobject-introspection" ,gobject-introspection)
8156 ("intltool" ,intltool)
8157 ("pkg-config" ,pkg-config)))
8158 (inputs
14c297fd 8159 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8160 ("json-glib" ,json-glib)
8161 ("rest" ,rest)))
8162 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8163 (synopsis "Library for accessing SkyDrive and Hotmail")
8164 (description
8165 "Libzapojit is a GLib-based library for accessing online service APIs of
8166Microsoft SkyDrive and Hotmail, using their REST protocols.")
8167 (license license:lgpl2.1+)))
9365ee1c 8168
60e2a9ae
MS
8169(define-public gnome-clocks
8170 (package
8171 (name "gnome-clocks")
feee5ff5 8172 (version "3.34.0")
60e2a9ae
MS
8173 (source (origin
8174 (method url-fetch)
8175 (uri (string-append "mirror://gnome/sources/" name "/"
8176 (version-major+minor version) "/"
8177 name "-" version ".tar.xz"))
8178 (sha256
8179 (base32
feee5ff5 8180 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8181 (build-system meson-build-system)
8182 (arguments
feee5ff5
KK
8183 '(#:glib-or-gtk? #t
8184 #:phases
8185 (modify-phases %standard-phases
8186 (add-after 'unpack 'skip-gtk-update-icon-cache
8187 ;; Don't create 'icon-theme.cache'.
8188 (lambda _
8189 (substitute* "build-aux/post-install.py"
8190 (("gtk-update-icon-cache") "true"))
8191 #t)))))
60e2a9ae
MS
8192 (native-inputs
8193 `(("vala" ,vala)
8194 ("pkg-config" ,pkg-config)
8195 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8196 ("desktop-file-utils" ,desktop-file-utils)
8197 ("gettext" ,gettext-minimal)
8198 ("itstool" ,itstool)))
8199 (inputs
8200 `(("glib" ,glib)
8201 ("gtk+" ,gtk+)
8202 ("gsound" ,gsound)
8203 ("geoclue" ,geoclue)
8204 ("geocode-glib" ,geocode-glib)
8205 ("libgweather" ,libgweather)
8206 ("gnome-desktop" ,gnome-desktop)))
8207 (home-page "https://wiki.gnome.org/Apps/Clocks")
8208 (synopsis "GNOME's clock application")
8209 (description
8210 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8211desktop. It supports world clock, stop watch, alarms, and count down timer.")
8212 (license license:gpl3+)))
8213
3c474897
KY
8214(define-public gnome-calendar
8215 (package
8216 (name "gnome-calendar")
27dd1d76 8217 (version "3.34.2")
3c474897
KY
8218 (source (origin
8219 (method url-fetch)
8220 (uri (string-append "mirror://gnome/sources/" name "/"
8221 (version-major+minor version) "/"
8222 name "-" version ".tar.xz"))
8223 (sha256
8224 (base32
27dd1d76 8225 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8226 (build-system meson-build-system)
8227 (arguments
8228 '(#:glib-or-gtk? #t
8229 ;; gnome-calendar has to be installed before the tests can be run
8230 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8231 #:tests? #f
8232 #:phases
8233 (modify-phases %standard-phases
8234 (add-after 'unpack 'skip-gtk-update-icon-cache
8235 ;; Don't create 'icon-theme.cache'.
8236 (lambda _
8237 (substitute* "build-aux/meson/meson_post_install.py"
8238 (("gtk-update-icon-cache") "true"))
8239 #t)))))
3c474897 8240 (native-inputs
a49d3e37
MS
8241 `(("gettext" ,gettext-minimal)
8242 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8243 ("pkg-config" ,pkg-config)))
8244 (inputs
27cb52a2 8245 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8246 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8247 ("libdazzle" ,libdazzle)
b63c06f1 8248 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8249 ("libgweather" ,libgweather)
8250 ("geoclue" ,geoclue)))
27cb52a2
RG
8251 (propagated-inputs
8252 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8253 (home-page "https://wiki.gnome.org/Apps/Calendar")
8254 (synopsis "GNOME's calendar application")
8255 (description
8256 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8257desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8258 (license license:gpl3+)))
8259
57b14665
MS
8260(define-public gnome-todo
8261 (package
8262 (name "gnome-todo")
9f3c6c88 8263 (version "3.28.1")
57b14665
MS
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
b17b2945
DM
8271 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8272 (patches
8273 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8274 (build-system meson-build-system)
8275 (arguments
8276 '(#:glib-or-gtk? #t
8277 #:phases (modify-phases %standard-phases
8278 (add-after
8279 'install 'wrap-gnome-todo
8280 (lambda* (#:key inputs outputs #:allow-other-keys)
8281 (let ((out (assoc-ref outputs "out"))
8282 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8283 (python-path (getenv "PYTHONPATH")))
8284 (wrap-program (string-append out "/bin/gnome-todo")
8285 ;; XXX: gi plugins are broken.
8286 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8287 ;; For plugins.
8288 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8289 `("PYTHONPATH" ":" prefix (,python-path))))
8290 #t)))))
8291 (native-inputs
8292 `(("gettext" ,gettext-minimal)
8293 ("gobject-introspection" ,gobject-introspection)
8294 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8295 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8296 ("pkg-config" ,pkg-config)))
8297 (inputs
8298 `(("rest" ,rest) ; For Todoist plugin
8299 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8300 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8301 ("libical" ,libical)
8302 ("libpeas" ,libpeas)
8303 ("python-pygobject" ,python-pygobject)
8304 ("evolution-data-server" ,evolution-data-server)
14c297fd 8305 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8306 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8307 (home-page "https://wiki.gnome.org/Apps/Todo")
8308 (synopsis "GNOME's ToDo Application")
8309 (description
8310 "GNOME To Do is a simplistic personal task manager designed to perfectly
8311fit the GNOME desktop.")
8312 (license license:gpl3+)))
8313
ab179eaf
SB
8314(define-public gnome-dictionary
8315 (package
8316 (name "gnome-dictionary")
cf81ddef 8317 (version "3.26.1")
ab179eaf
SB
8318 (source (origin
8319 (method url-fetch)
8320 (uri (string-append "mirror://gnome/sources/" name "/"
8321 (version-major+minor version) "/"
8322 name "-" version ".tar.xz"))
8323 (sha256
8324 (base32
cf81ddef
LC
8325 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8326 (build-system meson-build-system)
2776b5d5
MB
8327 (arguments '(#:glib-or-gtk? #t
8328 #:phases (modify-phases %standard-phases
8329 (add-after 'unpack 'patch-install-script
8330 (lambda _
8331 ;; This script attempts to compile glib schemas
8332 ;; and create an empty MIME database. We do
8333 ;; that elsewhere, so prevent it from running.
8334 (substitute* "build-aux/post-install.sh"
8335 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8336 #t)))))
ab179eaf
SB
8337 (native-inputs
8338 `(("glib:bin" ,glib "bin")
8339 ("gobject-introspection" ,gobject-introspection)
8340 ("intltool" ,intltool)
8341 ("itstool" ,itstool)
8342 ("pkg-config" ,pkg-config)
8343 ("xmllint" ,libxml2)))
8344 (inputs
8345 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8346 ("gtk+" ,gtk+)))
8347 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8348 (synopsis "Look up words in dictionary sources")
8349 (description
8350 "GNOME Dictionary can look for the definition or translation of a word in
8351existing databases over the internet.")
8352 (license license:gpl3+)))
8353
d13f3a03 8354(define-public gnome-tweaks
9365ee1c 8355 (package
d13f3a03 8356 (name "gnome-tweaks")
4add1bae 8357 (version "3.34.0")
9365ee1c
JN
8358 (source (origin
8359 (method url-fetch)
d13f3a03 8360 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8361 (version-major+minor version) "/"
d13f3a03
RW
8362 "gnome-tweaks-" version ".tar.xz"))
8363 (patches
8364 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8365 (sha256
8366 (base32
4add1bae 8367 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 8368 (build-system meson-build-system)
9365ee1c 8369 (arguments
d13f3a03
RW
8370 `(#:glib-or-gtk? #t
8371 #:configure-flags '("-Dlocalstatedir=/tmp"
8372 "-Dsysconfdir=/tmp")
9365ee1c 8373 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8374 ,@%meson-build-system-modules)
8375 #:phases
8376 (modify-phases %standard-phases
4add1bae
KK
8377 (add-after 'unpack 'skip-gtk-update-icon-cache
8378 ;; Don't create 'icon-theme.cache'.
8379 (lambda _
8380 (substitute* "meson-postinstall.py"
8381 (("gtk-update-icon-cache") "true"))
8382 #t))
d13f3a03
RW
8383 (add-after 'install 'wrap
8384 (@@ (guix build python-build-system) wrap))
8385 (add-after 'wrap 'wrap-gi-typelib
8386 (lambda* (#:key inputs outputs #:allow-other-keys)
8387 (let ((out (assoc-ref outputs "out"))
8388 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8389 (wrap-program (string-append out "/bin/gnome-tweaks")
8390 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8391 #t)))))
9365ee1c 8392 (native-inputs
4add1bae 8393 `(("intltool" ,intltool)
9365ee1c
JN
8394 ("pkg-config" ,pkg-config)))
8395 (inputs
c7fc414e
RH
8396 `(("gnome-desktop" ,gnome-desktop)
8397 ("gtk+" ,gtk+)
9365ee1c
JN
8398 ("gobject-introspection" ,gobject-introspection)
8399 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 8400 ("libhandy" ,libhandy)
c7fc414e
RH
8401 ("libnotify" ,libnotify)
8402 ("libsoup" ,libsoup)
8403 ("nautilus" ,nautilus)
8404 ("python" ,python)
8405 ("python-pygobject" ,python-pygobject)))
9365ee1c 8406 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8407 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8408 (description
d13f3a03 8409 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8410GNOME 3. This includes things like the fonts used in user interface elements,
8411alternative user interface themes, changes in window management behavior,
8412GNOME Shell appearance and extension, etc.")
8413 (license license:gpl3+)))
813f814a 8414
32ac717c
DT
8415(define-public gnome-shell-extensions
8416 (package
8417 (name "gnome-shell-extensions")
c7305466 8418 (version "3.34.2")
32ac717c
DT
8419 (source (origin
8420 (method url-fetch)
8421 (uri (string-append "mirror://gnome/sources/" name "/"
8422 (version-major+minor version) "/"
8423 name "-" version ".tar.xz"))
8424 (sha256
8425 (base32
c7305466 8426 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 8427 (build-system meson-build-system)
32ac717c 8428 (arguments
100f625b 8429 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8430 (native-inputs
c9ea8873
LP
8431 `(("glib:bin" ,glib "bin")
8432 ("intltool" ,intltool)
32ac717c
DT
8433 ("pkg-config" ,pkg-config)))
8434 (propagated-inputs
c9ea8873 8435 `(("glib" ,glib)))
32ac717c
DT
8436 (synopsis "Extensions for GNOME Shell")
8437 (description "GNOME Shell extensions modify and extend GNOME Shell
8438functionality and behavior.")
8439 (home-page "https://extensions.gnome.org/")
8440 (license license:gpl3+)))
8441
813f814a
DT
8442(define-public arc-theme
8443 (package
8444 (name "arc-theme")
37781323 8445 (version "20190917")
813f814a 8446 (source (origin
a18f8eaf
BH
8447 (method git-fetch)
8448 (uri (git-reference
8449 (url "https://github.com/NicoHood/arc-theme.git")
8450 (commit version)))
8451 (file-name (git-file-name name version))
813f814a
DT
8452 (sha256
8453 (base32
37781323 8454 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8455 (build-system gnu-build-system)
d88884fa
EF
8456 (arguments
8457 '(#:phases
8458 (modify-phases %standard-phases
8459 ;; autogen.sh calls configure at the end of the script.
8460 (replace 'bootstrap
4690e3a4
MC
8461 (lambda _ (invoke "autoreconf" "-vfi")))
8462 (add-before 'build 'set-home ;placate Inkscape
8463 (lambda _
8464 (setenv "HOME" (getcwd))
8465 #t)))))
813f814a
DT
8466 (native-inputs
8467 `(("autoconf" ,autoconf)
8468 ("automake" ,automake)
a18f8eaf
BH
8469 ("glib" ,glib "bin") ; for glib-compile-resources
8470 ("gnome-shell" ,gnome-shell)
8471 ("gtk+" ,gtk+)
8472 ("inkscape" ,inkscape)
8473 ("optipng" ,optipng)
8474 ("pkg-config" ,pkg-config)
bed24ecf 8475 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8476 (synopsis "A flat GTK+ theme with transparent elements")
8477 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
84782, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8479like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8480 (home-page "https://github.com/horst3180/arc-theme")
8481 ;; No "or later" language found.
a18f8eaf 8482 (license license:gpl3+)))
9987c57c 8483
d935e6a1 8484(define-public faba-icon-theme
9987c57c 8485 (package
d935e6a1 8486 (name "faba-icon-theme")
2eee7ee3 8487 (version "4.3")
d935e6a1
BT
8488 (source
8489 (origin
757e4027
TGR
8490 (method git-fetch)
8491 (uri (git-reference
8492 (url "https://github.com/snwh/faba-icon-theme.git")
8493 (commit (string-append "v" version))))
8494 (file-name (git-file-name name version))
d935e6a1 8495 (sha256
757e4027 8496 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8497 (build-system meson-build-system)
9987c57c 8498 (arguments
82da291a 8499 `(#:phases
9987c57c 8500 (modify-phases %standard-phases
82da291a 8501 (add-before 'configure 'disable-post-install
9987c57c 8502 (lambda _
82da291a
JL
8503 (substitute* "meson.build"
8504 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8505 (native-inputs
8506 `(("autoconf" ,autoconf)
8507 ("automake" ,automake)))
d935e6a1
BT
8508 (synopsis "Faba icon theme")
8509 (description
8510 "Faba is a minimal icon set used as a basis for other themes such as
8511Moka")
8512 (home-page "https://snwh.org/moka")
8513 (license (list license:lgpl3+
8514 license:cc-by-sa4.0))))
8515
9987c57c
DT
8516(define-public moka-icon-theme
8517 (package
8b0e4177 8518 (inherit faba-icon-theme)
9987c57c 8519 (name "moka-icon-theme")
105a3625 8520 (version "5.4.0")
8c3f2170
TGR
8521 (source
8522 (origin
8523 (method git-fetch)
8524 (uri (git-reference
8525 (url "https://github.com/snwh/moka-icon-theme.git")
8526 (commit (string-append "v" version))))
8527 (file-name (git-file-name name version))
8528 (sha256
8529 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8530 (propagated-inputs
8531 ;; Moka is based on Faba by using it as a fallback icon set instead of
8532 ;; bundling it, so we need to add it as a propagated input.
8533 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8534 (synopsis "Moka icon theme")
8535 (description "Moka is a stylized desktop icon set, designed to be clear,
8536simple and consistent.")
fedde43b
BT
8537 (license (list license:gpl3+
8538 license:cc-by-sa4.0))))
6fd8f8d6
DT
8539
8540(define-public arc-icon-theme
8541 (package
8542 (name "arc-icon-theme")
c4180240 8543 (version "20161122")
bbf66cbf
TGR
8544 (source
8545 (origin
8546 (method git-fetch)
8547 (uri (git-reference
8548 (url "https://github.com/horst3180/arc-icon-theme.git")
8549 (commit version)))
8550 (file-name (git-file-name name version))
8551 (sha256
8552 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8553 (build-system gnu-build-system)
9e1ede95
JL
8554 (arguments
8555 `(#:phases
8556 (modify-phases %standard-phases
8557 (add-after 'unpack 'disable-configure-during-bootstrap
8558 (lambda _
8559 (substitute* "autogen.sh"
8560 (("^\"\\$srcdir/configure\".*") ""))
8561 #t)))))
6fd8f8d6
DT
8562 (native-inputs
8563 `(("autoconf" ,autoconf)
8564 ("automake" ,automake)))
8565 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8566 (propagated-inputs
8567 `(("moka-icon-theme" ,moka-icon-theme)))
8568 (synopsis "Arc icon theme")
8569 (description "The Arc icon theme provides a set of icons matching the
8570style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8571the Moka icon theme.")
8572 (home-page "https://github.com/horst3180/arc-icon-theme")
8573 (license license:gpl3+)))
6064a4e8
LF
8574
8575(define-public folks
8576 (package
8577 (name "folks")
fd11f6f3 8578 (version "0.13.1")
6064a4e8
LF
8579 (source (origin
8580 (method url-fetch)
8581 (uri (string-append
e5f4796e 8582 "mirror://gnome/sources/folks/"
6064a4e8 8583 (version-major+minor version) "/"
e5f4796e 8584 "folks-" version ".tar.xz"))
6064a4e8
LF
8585 (sha256
8586 (base32
fd11f6f3
KK
8587 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8588 (build-system meson-build-system)
8589 (arguments
8590 '(#:phases
8591 (modify-phases %standard-phases
8592 (add-after 'unpack 'skip-gtk-update-icon-cache
8593 ;; Don't create 'icon-theme.cache'.
8594 (lambda _
8595 (substitute* "meson_post_install.py"
8596 (("gtk-update-icon-cache") "true"))
8597 #t)))))
6064a4e8
LF
8598 (inputs
8599 `(("bdb" ,bdb)
8600 ("dbus-glib" ,dbus-glib)
8601 ("evolution-data-server" ,evolution-data-server)
8602 ("glib" ,glib)
8603 ("libgee" ,libgee)
fd11f6f3 8604 ("readline" ,readline)
6064a4e8
LF
8605 ("telepathy-glib" ,telepathy-glib)))
8606 (native-inputs
fd11f6f3
KK
8607 `(("glib:bin" ,glib "bin")
8608 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
8609 ("intltool" ,intltool)
8610 ("pkg-config" ,pkg-config)
8611 ("vala" ,vala)))
8612 (synopsis "Library to aggregate data about people")
8613 (description "Libfolks is a library that aggregates information about people
8614from multiple sources (e.g., Telepathy connection managers for IM contacts,
8615Evolution Data Server for local contacts, libsocialweb for web service contacts,
8616etc.) to create metacontacts. It's written in Vala, which generates C code when
8617compiled.")
8618 (home-page "https://wiki.gnome.org/Projects/Folks")
8619 (license license:lgpl2.1+)))
01ea778f
LF
8620
8621(define-public gfbgraph
8622 (package
8623 (name "gfbgraph")
8624 (version "0.2.3")
8625 (source (origin
8626 (method url-fetch)
8627 (uri (string-append
237d4cf7 8628 "mirror://gnome/sources/gfbgraph/"
01ea778f 8629 (version-major+minor version) "/"
237d4cf7 8630 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8631 (sha256
8632 (base32
8633 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8634 (build-system glib-or-gtk-build-system)
8635 (arguments
8636 `(#:tests? #f ; Tests appear to require the network.
8637 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8638 #:configure-flags '("--disable-gtk-doc"
8639 "--disable-static"
8640 "--enable-introspection")))
8641 (native-inputs
8642 `(("pkg-config" ,pkg-config)
8643 ("gobject-introspection" ,gobject-introspection)))
8644 (inputs
8645 `(("json-glib" ,json-glib)
14c297fd 8646 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8647 ("rest" ,rest)))
8648 (synopsis "GLib/GObject wrapper for the Facebook API")
8649 (description "This library allows you to use the Facebook API from
8650GLib/GObject code.")
8651 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8652 (license license:lgpl2.1+)))
3920868c 8653
8654(define-public libgnomekbd
8655 (package
8656 (name "libgnomekbd")
70f2b0f9 8657 (version "3.26.1")
3920868c 8658 (source (origin
8659 (method url-fetch)
d47fa82d 8660 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8661 (version-major+minor version) "/"
d47fa82d 8662 "libgnomekbd-" version ".tar.xz"))
3920868c 8663 (sha256
8664 (base32
70f2b0f9 8665 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8666 (build-system gnu-build-system)
8667 (native-inputs
8668 `(("pkg-config" ,pkg-config)
8669 ("glib" ,glib "bin")
8670 ("intltool" ,intltool)))
8671 (propagated-inputs
8672 ;; Referred to in .h files and .pc.
8673 `(("glib" ,glib)
8674 ("gtk+" ,gtk+)
8675 ("libxklavier" ,libxklavier)))
8676 (home-page "https://www.gnome.org")
8677 (synopsis "GNOME keyboard configuration library")
8678 (description
8679 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8680environment, which can notably display keyboard layouts.")
8681 (license license:lgpl2.0+)))
85327d0d 8682
8683;;; This package is no longer maintained:
8684;;; https://wiki.gnome.org/Attic/LibUnique
8685;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8686;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8687(define-public libunique
8688 (package
8689 (name "libunique")
8690 (version "3.0.2")
8691 (source (origin
8692 (method url-fetch)
8693 (uri (string-append "mirror://gnome/sources/" name "/"
8694 (version-major+minor version) "/"
8695 name "-" version ".tar.xz"))
8696 (sha256
8697 (base32
8698 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8699 (build-system glib-or-gtk-build-system)
8700 (arguments
8701 `(#:configure-flags '("--disable-static"
8702 "--disable-dbus" ; use gdbus
8703 "--enable-introspection")))
8704 (native-inputs
8705 `(("pkg-config" ,pkg-config)
8706 ("gobject-introspection" ,gobject-introspection)
8707 ("glib:bin" ,glib "bin")
8708 ("gtk-doc" ,gtk-doc)))
8709 (propagated-inputs
8710 ;; Referred to in .h files and .pc.
8711 `(("gtk+" ,gtk+)))
8712 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8713 (synopsis "Library for writing single instance applications")
8714 (description
8715 "Libunique is a library for writing single instance applications. If you
8716launch a single instance application twice, the second instance will either just
8717quit or will send a message to the running instance. Libunique makes it easy to
8718write this kind of application, by providing a base class, taking care of all
8719the IPC machinery needed to send messages to a running instance, and also
8720handling the startup notification side.")
8721 (license license:lgpl2.1+)))
54021cd8
RS
8722
8723(define-public gnome-calculator
8724 (package
8725 (name "gnome-calculator")
4cb09502 8726 (version "3.34.1")
54021cd8
RS
8727 (source
8728 (origin
8729 (method url-fetch)
8730 (uri (string-append "mirror://gnome/sources/" name "/"
8731 (version-major+minor version) "/"
8732 name "-" version ".tar.xz"))
8733 (sha256
8734 (base32
4cb09502 8735 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8736 (build-system meson-build-system)
8737 (arguments '(#:glib-or-gtk? #t))
54021cd8 8738 (native-inputs
4cb09502
MB
8739 `(("gettext" ,gettext-minimal)
8740 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8741 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8742 ("itstool" ,itstool)
2d475910 8743 ("vala" ,vala)
54021cd8
RS
8744 ("pkg-config" ,pkg-config)))
8745 (inputs
112e9083 8746 `(("glib" ,glib)
07ace641 8747 ("gtksourceview" ,gtksourceview)
4cb09502 8748 ("libgee" ,libgee)
54021cd8 8749 ("libsoup" ,libsoup)
112e9083 8750 ("libxml2" ,libxml2)
2c2da7ec 8751 ("mpc" ,mpc)
54021cd8
RS
8752 ("mpfr" ,mpfr)))
8753 (home-page "https://wiki.gnome.org/Apps/Calculator")
8754 (synopsis "Desktop calculator")
8755 (description
8756 "Calculator is an application that solves mathematical equations and
8757is suitable as a default application in a Desktop environment.")
8758 (license license:gpl3)))
0bd69759
RS
8759
8760(define-public xpad
8761 (package
8762 (name "xpad")
c85626bb 8763 (version "5.1.0")
0bd69759
RS
8764 (source
8765 (origin
8766 (method url-fetch)
08fda9c6
R
8767 (uri (string-append "https://launchpad.net/xpad/trunk/"
8768 version "/+download/"
0bd69759
RS
8769 name "-" version ".tar.bz2"))
8770 (sha256
8771 (base32
c85626bb 8772 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8773 (build-system gnu-build-system)
8774 (native-inputs
08fda9c6
R
8775 `(("autoconf" ,autoconf)
8776 ("automake" ,automake)
8777 ("gtk+:bin" ,gtk+ "bin")
8778 ("intltool" ,intltool)
0bd69759
RS
8779 ("pkg-config" ,pkg-config)))
8780 (inputs
c72647fb 8781 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8782 ("libsm" ,libsm)))
8783 (home-page "https://wiki.gnome.org/Apps/Xpad")
8784 (synopsis "Virtual sticky note")
8785 (description
8786 "Xpad is a sticky note that strives to be simple, fault tolerant,
8787and customizable. Xpad consists of independent pad windows, each is
8788basically a text box in which notes can be written.")
8789 (license license:gpl3+)))
3ad7dce1
RS
8790
8791(define-public gucharmap
c60063ea
RW
8792 (let ((unicode-files
8793 '(("Blocks.txt"
1f8b5515 8794 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8795 ("DerivedAge.txt"
1f8b5515 8796 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8797 ("NamesList.txt"
1f8b5515 8798 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8799 ("Scripts.txt"
1f8b5515 8800 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8801 ("UnicodeData.txt"
1f8b5515 8802 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8803 ("Unihan.zip"
1f8b5515 8804 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8805 (package
8806 (name "gucharmap")
1f8b5515 8807 (version "12.0.1")
c60063ea
RW
8808 (source
8809 (origin
8810 (method url-fetch)
8811 (uri (string-append "mirror://gnome/sources/" name "/"
8812 (version-major+minor version) "/"
8813 name "-" version ".tar.xz"))
8814 (sha256
8815 (base32
1f8b5515 8816 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8817 (build-system glib-or-gtk-build-system)
8818 (arguments
8819 `(#:modules ((ice-9 match)
8820 (guix build glib-or-gtk-build-system)
8821 (guix build utils))
8822 #:configure-flags
8823 (list "--with-unicode-data=../unicode-data")
8824 #:phases
8825 (modify-phases %standard-phases
8826 (add-after 'unpack 'prepare-unicode-data
8827 (lambda* (#:key inputs #:allow-other-keys)
8828 (mkdir-p "../unicode-data")
8829 (with-directory-excursion "../unicode-data"
8830 (for-each (match-lambda
8831 ((file _)
8832 (install-file (assoc-ref inputs file) ".")))
8833 ',unicode-files))
8834 #t)))))
8835 (native-inputs
8836 `(("desktop-file-utils" ,desktop-file-utils)
8837 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8838 ("gobject-introspection" ,gobject-introspection)
8839 ("intltool" ,intltool)
8840 ("itstool" ,itstool)
8841 ("pkg-config" ,pkg-config)
8842 ,@(map (match-lambda
8843 ((file hash)
8844 `(,file
8845 ,(origin
8846 (method url-fetch)
8847 (uri (string-append
1f8b5515 8848 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8849 file))
8850 (sha256 (base32 hash))))))
8851 unicode-files)
8852 ("unzip" ,unzip)))
8853 (inputs
8854 `(("gtk+" ,gtk+)
8855 ("xmllint" ,libxml2)))
8856 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8857 (synopsis "Unicode character picker and font browser")
8858 (description
8859 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8860characters and categories for the installed fonts, and to examine their
8861detailed properties. It is an easy way to find the character you might
8862only know by its Unicode name or code point.")
c60063ea 8863 (license license:gpl3+))))
04ce840a
RS
8864
8865(define-public bluefish
8866 (package
8867 (name "bluefish")
290fe81d 8868 (version "2.2.11")
04ce840a
RS
8869 (source
8870 (origin
8871 (method url-fetch)
8872 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8873 "bluefish-" version ".tar.gz"))
04ce840a 8874 (sha256
290fe81d 8875 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8876 (build-system gnu-build-system)
8877 (native-inputs
8878 `(("desktop-file-utils" ,desktop-file-utils)
8879 ("intltool" ,intltool)
8880 ("pkg-config" ,pkg-config)))
8881 (inputs
8882 `(("enchant" ,enchant)
8883 ("gtk+" ,gtk+)
290fe81d 8884 ("python" ,python-wrapper)
04ce840a
RS
8885 ("xmllint" ,libxml2)
8886 ("gucharmap" ,gucharmap)))
8887 (home-page "http://bluefish.openoffice.nl")
8888 (synopsis "Web development studio")
8889 (description
8890 "Bluefish is an editor targeted towards programmers and web developers,
8891with many options to write web sites, scripts and other code.
8892Bluefish supports many programming and markup languages.")
8893 (license license:gpl3+)))
1f6a73ee
RS
8894
8895(define-public gnome-system-monitor
8896 (package
8897 (name "gnome-system-monitor")
083cffaf 8898 (version "3.32.1")
1f6a73ee
RS
8899 (source
8900 (origin
8901 (method url-fetch)
8902 (uri (string-append "mirror://gnome/sources/" name "/"
8903 (version-major+minor version) "/"
8904 name "-" version ".tar.xz"))
8905 (sha256
8906 (base32
083cffaf 8907 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8908 (build-system meson-build-system)
8909 (arguments
8910 '(#:glib-or-gtk? #t
8911 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8912 (native-inputs
8913 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8914 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8915 ("intltool" ,intltool)
8916 ("itstool" ,itstool)
8917 ("libgtop" ,libgtop)
4985d9aa 8918 ("polkit" ,polkit)
1f6a73ee
RS
8919 ("pkg-config" ,pkg-config)))
8920 (inputs
8921 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8922 ("gtk+" ,gtk+)
8923 ("gtkmm" ,gtkmm)
8924 ("librsvg" ,librsvg)
4985d9aa
RW
8925 ("libxml2" ,libxml2)
8926 ("libwnck" ,libwnck)))
1f6a73ee
RS
8927 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8928 (synopsis "Process viewer and system resource monitor for GNOME")
8929 (description
8930 "GNOME System Monitor is a GNOME process viewer and system monitor with
8931an attractive, easy-to-use interface. It has features, such as a tree view
8932for process dependencies, icons for processes, the ability to hide processes,
8933graphical time histories of CPU/memory/swap usage and the ability to
8934kill/reinice processes.")
8935 (license license:gpl2+)))
3e00ac47
SB
8936
8937(define-public python-pyatspi
8938 (package
8939 (name "python-pyatspi")
4f937a32 8940 (version "2.34.0")
3e00ac47
SB
8941 (source (origin
8942 (method url-fetch)
8943 (uri (string-append
8944 "mirror://gnome/sources/pyatspi/"
8945 (version-major+minor version)
8946 "/pyatspi-" version ".tar.xz"))
8947 (sha256
8948 (base32
4f937a32 8949 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8950 (build-system gnu-build-system)
b95af3f6
JL
8951 (arguments
8952 `(#:phases
8953 (modify-phases %standard-phases
8954 (add-before 'build 'fix-atk-load
8955 (lambda _
8956 (substitute* "pyatspi/__init__.py"
8957 (("from gi.repository import Atspi")
8958 "gi.require_version('Gtk', '3.0')
8959from gi.repository import Gtk
8960from gi.repository import Atspi"))
8961 #t)))))
3e00ac47
SB
8962 (native-inputs
8963 `(("pkg-config" ,pkg-config)))
8964 (inputs
06fe35cf
CB
8965 `(("python" ,python)))
8966 (propagated-inputs
8967 `(("python-pygobject" ,python-pygobject)))
3e00ac47
SB
8968 (synopsis "Python client bindings for D-Bus AT-SPI")
8969 (home-page "https://wiki.linuxfoundation.org/accessibility\
8970/atk/at-spi/at-spi_on_d-bus")
8971 (description
8972 "This package includes a python client library for the AT-SPI D-Bus
8973accessibility infrastructure.")
8974 (license license:lgpl2.0)
8975 (properties '((upstream-name . "pyatspi")))))
53201c0d 8976
5d31933e
CB
8977(define-public python2-pyatspi
8978 (package
8979 (inherit python-pyatspi)
8980 (name "python2-pyatspi")
8981 (inputs
06fe35cf
CB
8982 `(("python" ,python-2)))
8983 (propagated-inputs
8984 `(("python-pygobject" ,python2-pygobject)))))
5d31933e 8985
53201c0d
SB
8986(define-public orca
8987 (package
8988 (name "orca")
30e76da1 8989 (version "3.34.1")
53201c0d
SB
8990 (source (origin
8991 (method url-fetch)
8992 (uri (string-append
8993 "mirror://gnome/sources/" name "/"
8994 (version-major+minor version) "/"
8995 name "-" version ".tar.xz"))
8996 (sha256
8997 (base32
30e76da1 8998 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
8999 (build-system glib-or-gtk-build-system)
9000 (arguments
9001 '(#:phases
9002 (modify-phases %standard-phases
9003 (add-before 'configure 'qualify-xkbcomp
9004 (lambda* (#:key inputs #:allow-other-keys)
9005 (let ((xkbcomp (string-append
9006 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9007 (substitute* "src/orca/orca.py"
9008 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9009 #t))
9010 (add-after 'install 'wrap-orca
9011 (lambda* (#:key outputs #:allow-other-keys)
9012 (let* ((out (assoc-ref outputs "out"))
9013 (prog (string-append out "/bin/orca")))
9014 (wrap-program prog
9015 `("GI_TYPELIB_PATH" ":" prefix
9016 (,(getenv "GI_TYPELIB_PATH")))
9017 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9018 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9019 `("PYTHONPATH" ":" prefix
9020 (,(getenv "PYTHONPATH")))))
9021 #t)))))
9022 (native-inputs
9023 `(("intltool" ,intltool)
9024 ("itstool" ,itstool)
9025 ("pkg-config" ,pkg-config)
9026 ("xmllint" ,libxml2)))
9027 (inputs
9028 `(("at-spi2-atk" ,at-spi2-atk)
9029 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9030 ("gstreamer" ,gstreamer)
9031 ("gst-plugins-base" ,gst-plugins-base)
9032 ("gst-plugins-good" ,gst-plugins-good)
9033 ("gtk+" ,gtk+)
9034 ("python" ,python)
9035 ("python-pygobject" ,python-pygobject)
9036 ("python-pyatspi" ,python-pyatspi)
9037 ("python-speechd" ,speech-dispatcher)
9038 ("xkbcomp" ,xkbcomp)))
9039 (synopsis
9040 "Screen reader for individuals who are blind or visually impaired")
9041 (home-page "https://wiki.gnome.org/Projects/Orca")
9042 (description
9043 "Orca is a screen reader that provides access to the graphical desktop
9044via speech and refreshable braille. Orca works with applications and toolkits
9045that support the Assistive Technology Service Provider Interface (AT-SPI).")
9046 (license license:lgpl2.1+)))
411ba511
LC
9047
9048(define-public gspell
9049 (package
9050 (name "gspell")
7a6bbe9b 9051 (version "1.8.2")
411ba511
LC
9052 (source (origin
9053 (method url-fetch)
9054 (uri (string-append "mirror://gnome/sources/" name "/"
9055 (version-major+minor version) "/"
9056 name "-" version ".tar.xz"))
9057 (sha256
9058 (base32
7a6bbe9b 9059 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
9060 (patches (search-patches "gspell-dash-test.patch"))))
9061 (build-system glib-or-gtk-build-system)
9062 (arguments
d0f50164 9063 '(#:configure-flags (list "--enable-vala")
9064 #:phases
411ba511
LC
9065 (modify-phases %standard-phases
9066 (add-before 'check 'pre-check
9067 (lambda* (#:key inputs #:allow-other-keys)
9068 ;; Tests require a running X server.
9069 (system "Xvfb :1 &")
9070 (setenv "DISPLAY" ":1")
9071
9072 ;; For the missing /etc/machine-id.
9073 (setenv "DBUS_FATAL_WARNINGS" "0")
9074
9075 ;; Allow Enchant and its Aspell backend to find the en_US
9076 ;; dictionary.
9077 (setenv "ASPELL_DICT_DIR"
9078 (string-append (assoc-ref inputs "aspell-dict-en")
9079 "/lib/aspell"))
9080 #t)))))
9081 (inputs
eccd35be 9082 `(("gtk+" ,gtk+)
a801ae4c
TGR
9083 ("glib" ,glib)
9084 ("iso-codes" ,iso-codes)))
411ba511
LC
9085 (native-inputs
9086 `(("glib" ,glib "bin")
26ba3f07 9087 ("gobject-introspection" ,gobject-introspection)
411ba511 9088 ("pkg-config" ,pkg-config)
d0f50164 9089 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
9090 ("xmllint" ,libxml2)
9091
9092 ;; For tests.
a801ae4c 9093 ("aspell-dict-en" ,aspell-dict-en)
ff337525 9094 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 9095 (propagated-inputs
9b1bb757 9096 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
9097 (home-page "https://wiki.gnome.org/Projects/gspell")
9098 (synopsis "GNOME's alternative spell checker")
9099 (description
9100 "gspell provides a flexible API to add spell-checking to a GTK+
9101application. It provides a GObject API, spell-checking to text entries and
9102text views, and buttons to choose the language.")
9103 (license license:gpl2+)))
d1d739fa
CM
9104
9105(define-public gnome-planner
9106 (package
9107 (name "gnome-planner")
9108 (version "0.14.6")
9109 (source (origin
9110 (method url-fetch)
9111 (uri (string-append "mirror://gnome/sources/planner/"
9112 (version-major+minor version) "/planner-"
9113 version ".tar.xz"))
9114 (sha256
9115 (base32
9116 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9117 (build-system glib-or-gtk-build-system)
9118 (arguments
9119 ;; Disable the Python bindings because the Planner program functions
9120 ;; without them, and (as of 2017-06-13) we have not packaged all of
9121 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
9122 `(#:configure-flags
9123 (list "--disable-python"
9124 ,@(if (string=? "aarch64-linux" (%current-system))
9125 '("--build=aarch64-unknown-linux-gnu")
9126 '()))))
d1d739fa
CM
9127 (inputs
9128 `(("libgnomecanvas" ,libgnomecanvas)
9129 ("libgnomeui" ,libgnomeui)
9130 ("libglade" ,libglade)
9131 ("gnome-vfs" ,gnome-vfs)
9132 ("gconf" ,gconf)
9133 ("libxml2" ,libxml2)
9134 ("libxslt" ,libxslt)
9135 ("gtk+" ,gtk+)
9136 ("glib" ,glib)))
9137 (native-inputs
9138 `(("intltool" ,intltool)
9139 ("scrollkeeper" ,scrollkeeper)
9140 ("pkg-config" ,pkg-config)))
9141 (home-page "https://wiki.gnome.org/Apps/Planner")
9142 (synopsis "Project management software for the GNOME desktop")
9143 (description
9144 "GNOME Planner is a project management tool based on the Work Breakdown
9145Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9146the resources, tasks, and constraints that you define, Planner generates
9147various views into a project. For example, Planner can show a Gantt chart of
9148the project. It can show a detailed summary of tasks including their
9149duration, cost, and current progress. It can also show a report of resource
9150utilization that highlights under-utilized and over-utilized resources. These
9151views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9152 (license license:gpl2+)))
64fce637
RS
9153
9154(define-public lollypop
9155 (package
9156 (name "lollypop")
24b5d8f7 9157 (version "1.2.32")
64fce637
RS
9158 (source
9159 (origin
9160 (method url-fetch)
24b5d8f7 9161 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9162 "lollypop-" version ".tar.xz"))
64fce637 9163 (sha256
24b5d8f7 9164 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9165 (build-system meson-build-system)
64fce637 9166 (arguments
7a9543d7
TGR
9167 `(#:imported-modules
9168 (,@%meson-build-system-modules
9169 (guix build python-build-system))
9170 #:modules
9171 ((guix build meson-build-system)
9172 ((guix build python-build-system) #:prefix python:)
9173 (guix build utils))
aa498fc0 9174 #:glib-or-gtk? #t
7a9543d7 9175 #:tests? #f ; no test suite
5fc9b6c1
EF
9176 #:phases
9177 (modify-phases %standard-phases
5fc9b6c1
EF
9178 (add-after 'install 'wrap-program
9179 (lambda* (#:key outputs #:allow-other-keys)
9180 (let ((out (assoc-ref outputs "out"))
9181 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9182 (wrap-program (string-append out "/bin/lollypop")
9183 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9184 #t))
8ac8b3b3 9185 (add-after 'install 'wrap-python
7a9543d7 9186 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9187 (native-inputs
9188 `(("intltool" ,intltool)
9189 ("itstool" ,itstool)
aa498fc0
TD
9190 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9191 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9192 ("pkg-config" ,pkg-config)))
9193 (inputs
9194 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9195 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9196 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9197 ("libnotify" ,libnotify)
9198 ("libsecret" ,libsecret)
9199 ("libsoup" ,libsoup)
9200 ("python" ,python)
9201 ("python-beautifulsoup4" ,python-beautifulsoup4)
9202 ("python-gst" ,python-gst)
d029afdd 9203 ("python-pil" ,python-pillow)
64fce637 9204 ("python-pycairo" ,python-pycairo)
cc9c83c5 9205 ("python-pygobject" ,python-pygobject)
64fce637
RS
9206 ("python-pylast" ,python-pylast)
9207 ("totem-pl-parser" ,totem-pl-parser)
9208 ("webkitgtk" ,webkitgtk)))
9209 (propagated-inputs
9210 `(;; gst-plugins-base is required to start Lollypop,
9211 ;; the others are required to play streaming.
64fce637
RS
9212 ("gst-plugins-good" ,gst-plugins-good)
9213 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9214 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9215 (synopsis "GNOME music playing application")
9216 (description
9217 "Lollypop is a music player designed to play well with GNOME desktop.
9218Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9219from artists and tracks from the web. It also fetches cover artworks
9220automatically and it can stream songs from online music services and charts.")
9221 (license license:gpl3+)))
d831d49d
AW
9222
9223(define-public gnome-video-effects
9224 (package
9225 (name "gnome-video-effects")
9226 (version "0.4.3")
9227 (source (origin
9228 (method url-fetch)
9229 (uri (string-append "mirror://gnome/sources/" name "/"
9230 (version-major+minor version) "/" name "-"
9231 version ".tar.xz"))
9232 (sha256
9233 (base32
9234 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9235 (build-system glib-or-gtk-build-system)
9236 (arguments
9237 `(#:out-of-source? #f))
9238 (native-inputs
9239 `(("glib:bin" ,glib "bin")
9240 ("intltool" ,intltool)
9241 ("gettext" ,gettext-minimal)
9242 ("pkg-config" ,pkg-config)))
9243 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9244 (synopsis "Video effects for Cheese and other GNOME applications")
9245 (description
9246 "A collection of GStreamer video filters and effects to be used in
9247photo-booth-like software, such as Cheese.")
9248 (license license:gpl2+)))
3511c780
AW
9249
9250(define-public cheese
9251 (package
9252 (name "cheese")
3a7e066f 9253 (version "3.34.0")
3511c780
AW
9254 (source (origin
9255 (method url-fetch)
9256 (uri (string-append "mirror://gnome/sources/" name "/"
9257 (version-major+minor version) "/" name "-"
9258 version ".tar.xz"))
9259 (sha256
9260 (base32
3a7e066f 9261 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9262 (arguments
3a7e066f
KK
9263 `(#:glib-or-gtk? #t
9264 ;; Tests require GDK.
9265 #:tests? #f
3511c780
AW
9266 #:phases
9267 (modify-phases %standard-phases
3a7e066f 9268 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9269 (lambda _
9270 ;; Don't create 'icon-theme.cache'
3a7e066f 9271 (substitute* "meson_post_install.py"
3511c780
AW
9272 (("gtk-update-icon-cache") (which "true")))
9273 #t))
9274 (add-after 'install 'wrap-cheese
9275 (lambda* (#:key inputs outputs #:allow-other-keys)
9276 (let ((out (assoc-ref outputs "out"))
9277 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9278 (wrap-program (string-append out "/bin/cheese")
9279 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9280 #t)))))
3a7e066f 9281 (build-system meson-build-system)
3511c780 9282 (native-inputs
3a7e066f
KK
9283 `(("docbook-xsl" ,docbook-xsl)
9284 ("glib:bin" ,glib "bin")
9285 ("gtk-doc" ,gtk-doc)
3511c780
AW
9286 ("intltool" ,intltool)
9287 ("itstool" ,itstool)
9288 ("libxml2" ,libxml2)
3a7e066f 9289 ("libxslt" ,libxslt)
3511c780
AW
9290 ("pkg-config" ,pkg-config)
9291 ("vala" ,vala)))
9292 (propagated-inputs
6a19f03e
RW
9293 `(("gnome-video-effects" ,gnome-video-effects)
9294 ("clutter" ,clutter)
3511c780
AW
9295 ("clutter-gst" ,clutter-gst)
9296 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9297 ("libcanberra" ,libcanberra)
3511c780
AW
9298 ("gdk-pixbuf" ,gdk-pixbuf)
9299 ("glib" ,glib)
6a19f03e
RW
9300 ("gstreamer" ,gstreamer)))
9301 (inputs
9302 `(("gnome-desktop" ,gnome-desktop)
3511c780 9303 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9304 ("gst-plugins-base" ,gst-plugins-base)
9305 ("gst-plugins-bad" ,gst-plugins-bad)
9306 ("gtk+" ,gtk+)
3511c780
AW
9307 ("libx11" ,libx11)
9308 ("libxtst" ,libxtst)))
9309 (home-page "https://wiki.gnome.org/Apps/Cheese")
9310 (synopsis "Webcam photo booth software for GNOME")
9311 (description
9312 "Cheese uses your webcam to take photos and videos. Cheese can also
9313apply fancy special effects and lets you share the fun with others.")
9314 (license license:gpl2+)))
3c5dbd2b 9315
9316(define-public sound-juicer
9317 (package
9318 (name "sound-juicer")
9319 (version "3.24.0")
9320 (source
9321 (origin
9322 (method url-fetch)
9323 (uri (string-append "mirror://gnome/sources/" name "/"
9324 (version-major+minor version) "/"
9325 name "-" version ".tar.xz"))
9326 (sha256
9327 (base32
9328 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9329 (build-system glib-or-gtk-build-system)
9330 (native-inputs
9331 `(("desktop-file-utils" ,desktop-file-utils)
9332 ("intltool" ,intltool)
9333 ("itstool" ,itstool)
9334 ("pkg-config" ,pkg-config)
9335 ("xmllint" ,libxml2)))
9336 (inputs
9337 `(("gtk+" ,gtk+)
9338 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9339 ("gstreamer" ,gstreamer)
9340 ("gst-plugins-base" ,gst-plugins-base)
9341 ("gst-plugins-good" ,gst-plugins-good)
9342 ("iso-codes" ,iso-codes)
9343 ("libbrasero-media3" ,brasero)
9344 ("libcanberra" ,libcanberra)
9345 ("libdiscid" ,libdiscid)
9346 ("libmusicbrainz" ,libmusicbrainz)
9347 ("neon" ,neon)))
9348 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9349 (synopsis "Audio music cd ripper")
9350 (description "Sound Juicer extracts audio from compact discs and convert it
9351into audio files that a personal computer or digital audio player can play.
9352It supports ripping to any audio codec supported by a GStreamer plugin, such as
9353mp3, Ogg Vorbis and FLAC")
9354 (license license:gpl2+)))
4e3fdeb7 9355
0d3f1708
CB
9356(define-public soundconverter
9357 (package
9358 (name "soundconverter")
7f4b45a3 9359 (version "3.0.2")
0d3f1708
CB
9360 (source
9361 (origin
9362 (method url-fetch)
9363 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9364 version "/+download/"
9365 "soundconverter-" version ".tar.xz"))
9366
9367 (sha256
7f4b45a3 9368 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
9369 (build-system glib-or-gtk-build-system)
9370 (arguments
9371 `(#:imported-modules ((guix build python-build-system)
9372 (guix build glib-or-gtk-build-system)
9373 ,@%gnu-build-system-modules)
9374
9375 #:modules ((guix build glib-or-gtk-build-system)
9376 (guix build utils)
9377 ((guix build gnu-build-system) #:prefix gnu:)
9378 ((guix build python-build-system) #:prefix python:))
9379
9380 #:phases
9381 (modify-phases %standard-phases
0d3f1708
CB
9382 (add-after 'install 'wrap-soundconverter-for-python
9383 (assoc-ref python:%standard-phases 'wrap))
9384 (add-after 'install 'wrap-soundconverter
9385 (lambda* (#:key inputs outputs #:allow-other-keys)
9386 (let ((out (assoc-ref outputs "out"))
9387 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9388 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9389 (wrap-program (string-append out "/bin/soundconverter")
9390 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9391 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9392 #t)))))
9393 (native-inputs
9394 `(("intltool" ,intltool)
9395 ("pkg-config" ,pkg-config)
9396 ("glib:bin" ,glib "bin")))
9397 (inputs
9398 `(("gtk+" ,gtk+)
9399 ("python" ,python)
9400 ("python-pygobject" ,python-pygobject)
9401 ("gstreamer" ,gstreamer)
9402 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9403 (home-page "https://soundconverter.org/")
0d3f1708
CB
9404 (synopsis "Convert between audio formats with a graphical interface")
9405 (description
9406 "SoundConverter supports converting between many audio formats including
9407Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9408configurable file renaming. ")
9409 (license license:gpl3)))
9410
4e3fdeb7 9411(define-public workrave
89f2d736
TGR
9412 (package
9413 (name "workrave")
52fc6508 9414 (version "1.10.42")
89f2d736
TGR
9415 (source
9416 (origin
9417 (method git-fetch)
9418 (uri (git-reference
9419 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9420 (commit (string-append "v" (string-map
9421 (match-lambda (#\. #\_) (chr chr))
9422 version)))))
89f2d736
TGR
9423 (file-name (git-file-name name version))
9424 (sha256
52fc6508 9425 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9426 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9427 (arguments
9428 ;; The only tests are maintainer tests (in po/), which fail.
9429 `(#:tests? #f))
d1c96847
MC
9430 (inputs `(("glib" ,glib)
9431 ("gtk+" ,gtk+)
9432 ("gdk-pixbuf" ,gdk-pixbuf)
9433 ("gtkmm" ,gtkmm)
9434 ("glibmm" ,glibmm)
9435 ("libx11" ,libx11)
9436 ("libxtst" ,libxtst)
9437 ("dconf" ,dconf)
9438 ("libice" ,libice)
9439 ("libsm" ,libsm)
9440 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9441 (native-inputs `(("boost" ,boost)
89f2d736 9442 ("pkg-config" ,pkg-config)
f2d97d57 9443 ("gettext" ,gettext-minimal)
89f2d736
TGR
9444 ("autoconf" ,autoconf)
9445 ("autoconf-archive" , autoconf-archive)
9446 ("automake" ,automake)
9447 ("libtool" ,libtool)
9448 ("intltool" ,intltool)
89f2d736 9449 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9450 ("python3" ,python-3)
9451 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9452 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9453 (description
9454 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9455repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9456micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9457 (home-page "http://www.workrave.org")
9458 (license license:gpl3+)))
312afa7d
LC
9459
9460(define-public ghex
9461 (package
9462 (name "ghex")
3748992a 9463 (version "3.18.4")
312afa7d
LC
9464 (source (origin
9465 (method url-fetch)
2fbab848 9466 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9467 (version-major+minor version) "/"
2fbab848 9468 "ghex-" version ".tar.xz"))
312afa7d
LC
9469 (sha256
9470 (base32
3748992a
KK
9471 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9472 (build-system meson-build-system)
9473 (arguments
9474 '(#:glib-or-gtk? #t
9475 #:phases
9476 (modify-phases %standard-phases
9477 (add-after 'unpack 'skip-gtk-update-icon-cache
9478 ;; Don't create 'icon-theme.cache'.
9479 (lambda _
9480 (substitute* "meson_post_install.py"
9481 (("gtk-update-icon-cache") (which "true")))
9482 #t)))))
312afa7d
LC
9483 (native-inputs
9484 `(("pkg-config" ,pkg-config)
3748992a 9485 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9486 ("gnome-common" ,gnome-common)
9487 ("which" ,which)
9488 ("intltool" ,intltool)
9489 ("yelp-tools" ,yelp-tools)
2fbab848 9490 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9491 (inputs
9492 `(("atk" ,atk)
9493 ("gtk" ,gtk+)))
9494 (synopsis "GNOME hexadecimal editor")
9495 (description "The GHex program can view and edit files in two ways:
9496hexadecimal or ASCII. It is useful for editing binary files in general.")
9497 (home-page "https://wiki.gnome.org/Apps/Ghex")
9498 (license license:gpl2)))
4b2ed6c2
RW
9499
9500(define-public libdazzle
9501 (package
9502 (name "libdazzle")
c94db354 9503 (version "3.34.1")
4b2ed6c2
RW
9504 (source (origin
9505 (method url-fetch)
687b4909 9506 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9507 (version-major+minor version) "/"
687b4909 9508 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9509 (sha256
9510 (base32
c94db354 9511 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
9512 (build-system meson-build-system)
9513 (arguments
9514 `(#:phases
9515 (modify-phases %standard-phases
4b2ed6c2
RW
9516 (add-before 'check 'pre-check
9517 (lambda _
9518 ;; Tests require a running X server.
9519 (system "Xvfb :1 &")
9520 (setenv "DISPLAY" ":1")
9521 #t)))))
9522 (native-inputs
687b4909 9523 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9524 ("pkg-config" ,pkg-config)
687b4909 9525 ;; For tests.
ff337525 9526 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9527 (inputs
9528 `(("glib" ,glib)
9529 ("gobject-introspection" ,gobject-introspection)
9530 ("gtk+" ,gtk+)
9531 ("vala" ,vala)))
9532 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9533 (synopsis "Companion library to GObject and Gtk+")
9534 (description "The libdazzle library is a companion library to GObject and
9535Gtk+. It provides various features that the authors wish were in the
9536underlying library but cannot for various reasons. In most cases, they are
9537wildly out of scope for those libraries. In other cases, they are not quite
9538generic enough to work for everyone.")
9539 (license license:gpl3+)))
7d3bb433
RW
9540
9541(define-public evolution
9542 (package
9543 (name "evolution")
0662fe86 9544 (version "3.34.2")
7d3bb433
RW
9545 (source (origin
9546 (method url-fetch)
9547 (uri (string-append "mirror://gnome/sources/evolution/"
9548 (version-major+minor version) "/"
9549 "evolution-" version ".tar.xz"))
9550 (sha256
9551 (base32
0662fe86 9552 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
9553 (build-system cmake-build-system)
9554 (arguments
5229bea1
KK
9555 `(#:imported-modules (,@%cmake-build-system-modules
9556 (guix build glib-or-gtk-build-system))
9557 #:modules ((guix build cmake-build-system)
9558 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9559 (guix build utils))
9560 #:configure-flags
7d3bb433 9561 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9562 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9563 ; in four years and cannot be built.
5229bea1
KK
9564 #:phases
9565 (modify-phases %standard-phases
9566 ;; The build system attempts to install user interface modules to the
9567 ;; output directory of the "evolution-data-server" package. This
9568 ;; change redirects that change.
9569 (add-after 'unpack 'patch-ui-module-dir
9570 (lambda* (#:key outputs #:allow-other-keys)
9571 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9572 (("\\$\\{edsuimoduledir\\}")
9573 (string-append (assoc-ref outputs "out")
9574 "/lib/evolution-data-server/ui-modules")))
9575 #t))
9576 (add-after 'install 'glib-or-gtk-compile-schemas
9577 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9578 (add-after 'install 'glib-or-gtk-wrap
9579 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9580 (native-inputs
ad6e168b 9581 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9582 ("pkg-config" ,pkg-config)
9583 ("intltool" ,intltool)
9584 ("itstool" ,itstool)))
9585 (inputs
9586 `(("enchant" ,enchant)
9587 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9588 ("gcr" ,gcr)
ad6e168b 9589 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9590 ("gnome-autoar" ,gnome-autoar)
9591 ("gnome-desktop" ,gnome-desktop)
0662fe86 9592 ("gspell" ,gspell)
7d3bb433
RW
9593 ("highlight" ,highlight)
9594 ("libcanberra" ,libcanberra)
9595 ("libgweather" ,libgweather)
9596 ("libnotify" ,libnotify)
9597 ("libsoup" ,libsoup)
9598 ("nss" ,nss)
9599 ("openldap" ,openldap)
9600 ("webkitgtk" ,webkitgtk)
9601 ("ytnef" ,ytnef)))
9602 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9603 (synopsis "Manage your email, contacts and schedule")
9604 (description "Evolution is a personal information management application
9605that provides integrated mail, calendaring and address book
9606functionality.")
9607 ;; See COPYING for details.
23dbe621 9608 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9609 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9610 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9611
9612(define-public gthumb
9613 (package
9614 (name "gthumb")
8280676b 9615 (version "3.8.2")
169d63f5
AT
9616 (source (origin
9617 (method url-fetch)
9618 (uri (string-append "mirror://gnome/sources/gthumb/"
9619 (version-major+minor version) "/"
9620 "gthumb-" version ".tar.xz"))
9621 (sha256
9622 (base32
8280676b 9623 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9624 (build-system meson-build-system)
9625 (arguments
9626 `(#:glib-or-gtk? #t
9627 #:configure-flags
9628 ;; Ensure the RUNPATH contains all installed library locations.
9629 (list (string-append "-Dc_link_args=-Wl,-rpath="
9630 (assoc-ref %outputs "out")
9631 "/lib/gthumb/extensions")
9632 (string-append "-Dcpp_link_args=-Wl,-rpath="
9633 (assoc-ref %outputs "out")
9634 "/lib/gthumb/extensions"))))
9635 (native-inputs
9636 `(("pkg-config" ,pkg-config)
9637 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9638 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9639 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9640 ("intltool" ,intltool)
9641 ("itstool" ,itstool)))
9642 (inputs
9643 `(("exiv2" ,exiv2)
9644 ("gtk" ,gtk+)
9645 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9646 ("gstreamer" ,gstreamer)
9647 ("clutter" ,clutter)
9648 ("clutter-gst" ,clutter-gst)
9649 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9650 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9651 ("libtiff" ,libtiff)
9652 ("libraw" ,libraw)))
9653 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9654 (synopsis "GNOME image viewer and browser")
9655 (description "GThumb is an image viewer, browser, organizer, editor and
9656advanced image management tool")
9657 (license license:gpl2+)))
08be02be
AT
9658
9659(define-public terminator
9660 (package
9661 (name "terminator")
9662 (version "1.91")
9663 (source (origin
9664 (method url-fetch)
9665 (uri (string-append "https://launchpad.net/" name "/"
9666 "gtk3/" version "/" "+download/"
9667 name "-" version ".tar.gz"))
9668 (sha256
9669 (base32
9670 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9671 (build-system python-build-system)
9672 (native-inputs
9673 `(("intltool" ,intltool)
9674 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9675 ("gettext" ,gettext-minimal)
9676 ("pkg-config" ,pkg-config)))
9677 (inputs
9678 `(("cairo" ,cairo)
9679 ("gobject-introspection" ,gobject-introspection)
96681d4b 9680 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9681 ("python2-pycairo" ,python2-pycairo)
9682 ("python2-pygobject" ,python2-pygobject)
9683 ("python2-psutil" ,python2-psutil)
9684 ("vte" ,vte)))
9685 (arguments
96681d4b
TGR
9686 `(#:python ,python-2 ; Python 3 isn't supported
9687 #:imported-modules ((guix build glib-or-gtk-build-system)
9688 ,@%python-build-system-modules)
9689 #:modules ((guix build python-build-system)
9690 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9691 (guix build utils))
08be02be
AT
9692 #:phases
9693 (modify-phases %standard-phases
9694 (add-after
9695 'install 'wrap-program
9696 (lambda* (#:key outputs #:allow-other-keys)
9697 (let ((prog (string-append (assoc-ref outputs "out")
9698 "/bin/terminator")))
9699 (wrap-program prog
9700 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9701 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9702 #t)))
9703 (add-after 'wrap-program 'glib-or-gtk-wrap
9704 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9705 (home-page "https://gnometerminator.blogspot.com/")
9706 (synopsis "Store and run multiple GNOME terminals in one window")
9707 (description
9708 "Terminator allows you to run multiple GNOME terminals in a grid and
9709+tabs, and it supports drag and drop re-ordering of terminals.")
9710 (license license:gpl2)))
213315d4
JF
9711
9712(define-public libhandy
9713 (package
9714 (name "libhandy")
f6501b9f 9715 (version "0.0.12")
213315d4
JF
9716 (source
9717 (origin
9718 (method git-fetch)
9719 (uri (git-reference
9720 (url "https://source.puri.sm/Librem5/libhandy")
9721 (commit (string-append "v" version))))
9722 (file-name (git-file-name name version))
9723 (sha256
f6501b9f 9724 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9725 (build-system meson-build-system)
9726 (arguments
9727 `(#:configure-flags
9728 '("-Dglade_catalog=disabled"
9729 "-Dgtk_doc=true")
9730 #:phases
9731 (modify-phases %standard-phases
213315d4
JF
9732 (add-before 'check 'pre-check
9733 (lambda _
9734 ;; Tests require a running X server.
9735 (system "Xvfb :1 &")
9736 (setenv "DISPLAY" ":1")
9737 #t)))))
9738 (inputs
9739 `(("gtk+" ,gtk+)))
9740 (native-inputs
9741 `(("glib:bin" ,glib "bin")
9742 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9743 ("vala" ,vala)
9744 ("gtk-doc" ,gtk-doc)
9745 ("pkg-config" ,pkg-config)
9746 ("gettext" ,gettext-minimal)
d41ee146
TGR
9747
9748 ;; Test suite dependencies.
ff337525 9749 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9750 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9751 (home-page "https://source.puri.sm/Librem5/libhandy")
9752 (synopsis "Library full of GTK+ widgets for mobile phones")
9753 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9754interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9755for usage on small and big screens.")
213315d4 9756 (license license:lgpl2.1+)))
a830d14d
GL
9757
9758(define-public libgit2-glib
9759 (package
9760 (name "libgit2-glib")
6448c2e1 9761 (version "0.99.0.1")
a830d14d
GL
9762 (source (origin
9763 (method url-fetch)
9764 (uri (string-append "mirror://gnome/sources/" name "/"
9765 (version-major+minor version) "/"
9766 name "-" version ".tar.xz"))
9767 (sha256
9768 (base32
6448c2e1 9769 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9770 (build-system meson-build-system)
9771 (native-inputs
9772 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9773 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9774 ("pkg-config" ,pkg-config)
9775 ("python-pygobject" ,python-pygobject)
9776 ("python-wrapper" ,python-wrapper)
9777 ("vala" ,vala)))
9778 (inputs
9779 `(("glib" ,glib)
8c6aae46
MB
9780 ("libssh2" ,libssh2)))
9781 (propagated-inputs
9782 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9783 ("libgit2" ,libgit2)))
9784 (synopsis "GLib wrapper around the libgit2 Git access library")
9785 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9786access library. It only implements the core plumbing functions, not really the
9787higher level porcelain stuff.")
9788 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9789 (license license:gpl2+)))
93beace0 9790
08db81c9
LP
9791(define-public gitg
9792 (package
9793 (name "gitg")
9794 (version "3.32.1")
9795 (source (origin
9796 (method url-fetch)
9797 (uri (string-append "mirror://gnome/sources/" name "/"
9798 (version-major+minor version) "/"
9799 name "-" version ".tar.xz"))
9800 (sha256
9801 (base32
9802 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9803 (build-system meson-build-system)
9804 (arguments
9805 `(#:glib-or-gtk? #t
9806 #:phases
9807 (modify-phases %standard-phases
9808 (add-after 'unpack 'disable-post-install-partially
9809 (lambda _
9810 (substitute* "meson_post_install.py"
9811 (("'python'") ; there are no python sources to compile
9812 (string-append "'" (which "true") "'"))
9813 (("gtk-update-icon-cache") (which "true")))
9814 #t))
9815 (add-after 'unpack 'fix-test-sources
9816 (lambda _
9817 (substitute* "tests/libgitg/test-commit.vala"
9818 (("/bin/bash") (which "bash")))
9819 #t))
9820 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9821 (lambda* (#:key outputs #:allow-other-keys)
9822 (let ((prog (string-append (assoc-ref outputs "out")
9823 "/bin/gitg")))
9824 (wrap-program prog
9825 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9826 #t))))))
9827 (inputs
9828 `(("glib" ,glib)
9829 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9830 ("gtk+" ,gtk+)
9831 ("gtkspell3" ,gtkspell3)
9832 ("gtksourceview" ,gtksourceview-3)
9833 ("json-glib" ,json-glib)
9834 ("libdazzle" ,libdazzle)
9835 ("libgee" ,libgee)
08db81c9
LP
9836 ("libgit2-glib" ,libgit2-glib)
9837 ("libpeas" ,libpeas)
9838 ("libsecret" ,libsecret)
9839 ("libsoup" ,libsoup)
9840 ("libxml2" ,libxml2)))
9841 (native-inputs
9842 `(("glib:bin" ,glib "bin")
9843 ("gtk+:bin" ,gtk+ "bin")
9844 ("gobject-introspection" ,gobject-introspection)
9845 ("intltool" ,intltool)
9846 ("pkg-config" ,pkg-config)
9847 ("vala" ,vala)))
9848 (synopsis "Graphical user interface for git")
9849 (description
9850 "gitg is a graphical user interface for git. It aims at being a small,
9851fast and convenient tool to visualize the history of git repositories.
9852Besides visualization, gitg also provides several utilities to manage your
9853repository and commit your work.")
9854 (home-page "https://wiki.gnome.org/Apps/Gitg")
9855 (license license:gpl2+)))
9856
1e600ed0
RW
9857(define-public gamin
9858 (package
9859 (name "gamin")
9860 (version "0.1.10")
9861 (source (origin
9862 (method url-fetch)
9863 (uri (string-append "mirror://gnome/sources/" name "/"
9864 (version-major+minor version) "/"
9865 name "-" version ".tar.bz2"))
9866 (sha256
9867 (base32
9868 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9869 (build-system gnu-build-system)
9870 (arguments
9871 `(#:phases
9872 (modify-phases %standard-phases
9873 (add-after 'unpack 'remove-deprecated-macro
9874 (lambda _
9875 (substitute* '("server/gam_node.c"
9876 "server/gam_subscription.h"
9877 "server/gam_node.h"
9878 "server/gam_subscription.c")
9879 (("G_CONST_RETURN") "const"))
9880 #t)))))
9881 (inputs
9882 `(("glib" ,glib)))
9883 (native-inputs
9884 `(("intltool" ,intltool)
9885 ("pkg-config" ,pkg-config)))
9886 (home-page "https://people.gnome.org/~veillard/gamin/")
9887 (synopsis "File alteration monitor")
9888 (description
9889 "Gamin is a file and directory monitoring system defined to be a subset
9890of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9891library which detects when a file or a directory has been modified.")
1e600ed0
RW
9892 (license license:gpl2+)))
9893
93beace0
DW
9894(define-public gnome-mahjongg
9895 (package
9896 (name "gnome-mahjongg")
9897 (version "3.35.1")
9898 (source (origin
9899 (method git-fetch)
9900 (uri (git-reference
9901 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9902 (commit version)))
9903 (file-name (git-file-name name version))
9904 (sha256
9905 (base32
9906 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9907 (build-system meson-build-system)
9908 (arguments
9909 `(#:glib-or-gtk? #t))
9910 (native-inputs
9911 `(("appstream-glib" ,appstream-glib)
9912 ("gettext" ,gettext-minimal)
9913 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9914 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9915 ("itstool" ,itstool)
9916 ("pkg-config" ,pkg-config)
9917 ("vala" ,vala)))
9918 (propagated-inputs
9919 `(("dconf" ,dconf)))
9920 (inputs
9921 `(("glib" ,glib)
9922 ("gtk+" ,gtk+)
9923 ("librsvg" ,librsvg)))
9924 (synopsis "Mahjongg tile-matching game")
9925 (description "GNOME Mahjongg is a game based on the classic Chinese
9926tile-matching game Mahjong. It features multiple board layouts, tile themes,
9927and a high score table.")
9928 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9929 (license license:gpl2+)))
f825476c 9930
76ea7632
RG
9931(define-public gnome-themes-extra
9932 (package
9933 (name "gnome-themes-extra")
9934 (version "3.28")
9935 (source
9936 (origin
9937 (method url-fetch)
9938 (uri (string-append "mirror://gnome/sources/" name "/"
9939 (version-major+minor version) "/" name "-"
9940 version ".tar.xz"))
9941 (sha256
9942 (base32
9943 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9944 (build-system gnu-build-system)
885424bf
RG
9945 (arguments
9946 '(#:configure-flags
9947 ;; Don't create 'icon-theme.cache'.
9948 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9949 (true (string-append coreutils "/bin/true")))
9950 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9951 (native-inputs
9952 `(("glib:bin" ,glib "bin")
9953 ("intltool" ,intltool)
9954 ("pkg-config" ,pkg-config)))
9955 (inputs
9956 `(("glib" ,glib)
9957 ("gtk+" ,gtk+)
9958 ("gtk+-2" ,gtk+-2)
9959 ("librsvg" ,librsvg)
9960 ("libxml2" ,libxml2)))
9961 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9962 (synopsis "GNOME Extra Themes")
9963 (description "This package provides themes and related elements that don't
9964really fit in other upstream packages. It offers legacy support for GTK+ 2
9965versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9966index files needed for Adwaita to be used outside of GNOME.")
9967 (license license:lgpl2.1+)))
9968
f825476c
LP
9969(define-public polari
9970 (package
9971 (name "polari")
9972 (version "3.32.2")
9973 (source (origin
9974 (method url-fetch)
9975 (uri (string-append "mirror://gnome/sources/polari/"
9976 (version-major+minor version)
9977 "/polari-" version ".tar.xz"))
9978 (sha256
9979 (base32
9980 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9981 (build-system meson-build-system)
9982 (arguments
9983 `(#:glib-or-gtk? #t
9984 #:phases
9985 (modify-phases %standard-phases
9986 (add-after 'unpack 'skip-gtk-update-icon-cache
9987 (lambda _
9988 (substitute* "meson/meson-postinstall.sh"
9989 (("gtk-update-icon-cache") (which "true")))
9990 #t))
9991 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9992 (lambda* (#:key outputs #:allow-other-keys)
9993 (let ((prog (string-append (assoc-ref outputs "out")
9994 "/bin/polari")))
9995 (wrap-program prog
9996 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9997 #t))))))
9998 (inputs
9999 `(("glib" ,glib)
10000 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10001 ("gspell" ,gspell)
10002 ("gtk+" ,gtk+)
10003 ("gjs" ,gjs)
10004 ("libsecret" ,libsecret)
10005 ("libsoup" ,libsoup)
10006 ("telepathy-glib" ,telepathy-glib)
10007 ("telepathy-logger" ,telepathy-logger)))
10008 (native-inputs
10009 `(("glib:bin" ,glib "bin")
10010 ("gobject-introspection" ,gobject-introspection)
10011 ("intltool" ,intltool)
10012 ("pkg-config" ,pkg-config)
10013 ("yelp-tools" ,yelp-tools)))
10014 (propagated-inputs
10015 `(("telepathy-idle" ,telepathy-idle)
10016 ("telepathy-mission-control" ,telepathy-mission-control)))
10017 (synopsis "Simple IRC Client")
10018 (description
10019 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10020integrate seamlessly with the GNOME desktop.")
10021 (home-page "https://wiki.gnome.org/Apps/Polari")
10022 (license license:gpl2+)))
59d4c8c2
PN
10023
10024(define-public gnome-boxes
10025 (package
10026 (name "gnome-boxes")
69300c0d 10027 (version "3.36.5")
59d4c8c2
PN
10028 (source
10029 (origin
10030 (method url-fetch)
10031 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10032 (version-major+minor version) "/"
10033 "gnome-boxes-" version ".tar.xz"))
10034 (sha256
69300c0d 10035 (base32 "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c"))))
59d4c8c2
PN
10036 (build-system meson-build-system)
10037 (arguments
10038 '(#:glib-or-gtk? #t
10039 #:configure-flags (list "-Drdp=false"
10040 (string-append "-Dc_link_args=-Wl,-rpath="
10041 (assoc-ref %outputs "out")
10042 "/lib/gnome-boxes"))))
10043 (native-inputs
10044 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10045 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10046 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10047 ("itstool" ,itstool)
10048 ("intltool" ,intltool)
10049 ("vala" ,vala)
10050 ("pkg-config" ,pkg-config)))
10051 (inputs
10052 `(("libarchive" ,libarchive)
10053 ("gtk" ,gtk+)
10054 ("gtk-vnc" ,gtk-vnc)
10055 ("libosinfo" ,libosinfo)
10056 ("libsecret" ,libsecret)
10057 ("libsoup" ,libsoup)
10058 ("libusb" ,libusb)
10059 ("libvirt" ,libvirt)
10060 ("libvirt-glib" ,libvirt-glib)
10061 ("libxml" ,libxml2)
10062 ("spice-gtk" ,spice-gtk)
10063 ("sparql-query" ,sparql-query)
10064 ("vte" ,vte)
10065 ("webkitgtk" ,webkitgtk)
10066 ("tracker" ,tracker)
10067 ("libgudev" ,libgudev)))
10068 (home-page "https://wiki.gnome.org/Apps/Boxes")
10069 (synopsis "View, access, and manage remote and virtual systems")
10070 (description "GNOME Boxes is a simple application to view, access, and
10071manage remote and virtual systems.")
10072 (license (list
10073 ;; For data/icons/empty-boxes.png.
10074 license:cc-by2.0
10075 ;; For all others.
10076 license:lgpl2.0+))))
0e26c3cf 10077
10078(define-public geary
10079 (package
10080 (name "geary")
10081 (version "3.34.1")
10082 (source (origin
10083 (method git-fetch)
10084 (uri (git-reference
10085 (url "https://gitlab.gnome.org/GNOME/geary")
10086 (commit version)))
10087 (file-name (git-file-name name version))
10088 (sha256
10089 (base32
10090 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10091 (build-system meson-build-system)
10092 (arguments
10093 `(#:glib-or-gtk? #t
10094 #:phases (modify-phases %standard-phases
10095 (add-after 'unpack 'disable-failing-tests
10096 (lambda _
10097 (substitute* "test/meson.build"
10098 (("test\\('client-tests', geary_test_client_bin\\)")
10099 ""))
10100 #t))
10101 (add-after 'unpack 'disable-postinstall-script
10102 (lambda _
10103 (substitute* "meson.build"
10104 (("meson.add_install_script\\(\
10105join_paths\\('build-aux', 'post_install.py'\\)\\)")
10106 ""))
10107 #t))
10108 (add-before 'check 'setup-xvfb
10109 (lambda _
10110 (system "Xvfb :1 &")
10111 (setenv "DISPLAY" ":1")
10112 #t)))))
10113 (inputs
10114 `(("enchant" ,enchant)
10115 ("folks" ,folks)
10116 ("gcr" ,gcr)
10117 ("glib" ,glib)
10118 ("gmime" ,gmime-2.6)
10119 ("gnome-online-accounts:lib"
10120 ,gnome-online-accounts "lib")
10121 ("gspell" ,gspell)
10122 ("gtk+" ,gtk+)
10123 ("iso-codes" ,iso-codes)
10124 ("json-glib" ,json-glib)
10125 ("libcanberra" ,libcanberra)
10126 ("libgee" ,libgee)
10127 ("libhandy" ,libhandy)
10128 ("libpeas" ,libpeas)
10129 ("libsecret" ,libsecret)
10130 ("libunwind" ,libunwind)
10131 ("sqlite" ,sqlite)
10132 ("webkitgtk" ,webkitgtk)
10133 ("ytnef" ,ytnef)))
10134 (native-inputs
10135 `(("appstream-glib" ,appstream-glib)
10136 ("cmake-minimal" ,cmake-minimal)
10137 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 10138 ("gettext" ,gettext-minimal)
0e26c3cf 10139 ("glib:bin" ,glib "bin")
10140 ("gobject-introspection" ,gobject-introspection)
10141 ("itstool" ,itstool)
10142 ("libarchive" ,libarchive)
10143 ("libxml2" ,libxml2)
10144 ("pkg-config" ,pkg-config)
10145 ("vala" ,vala)
10146 ("xvfb" ,xorg-server-for-tests)))
10147 (synopsis "GNOME email application built around conversations")
10148 (description
10149 "Geary collects related messages together into conversations,
10150making it easy to find and follow your discussions. Full-text and keyword
10151search makes it easy to find the email you are looking for. Geary's
10152full-featured composer lets you send rich, styled text with images, links, and
10153lists, but also send lightweight, easy to read text messages. Geary
10154automatically picks up your existing GNOME Online Accounts, and adding more is
10155easy. Geary has a clean, fast, modern interface that works like you want it
10156to.")
10157 (home-page "https://wiki.gnome.org/Apps/Geary")
10158 (license (list
10159 ;; geary
10160 license:lgpl2.1+
10161 ;; icons
10162 license:cc-by3.0
10163 license:cc-by-sa3.0
10164 license:public-domain
10165 ;; snowball
10166 license:bsd-2))))
1a17d21b 10167
21051eb7
VM
10168(define-public glabels
10169 (package
10170 (name "glabels")
10171 (version "3.4.1")
10172 (source
10173 (origin
10174 (method url-fetch)
10175 (uri (string-append "mirror://gnome/sources/" name "/"
10176 (version-major+minor version) "/"
10177 "glabels-" version ".tar.xz"))
10178 (sha256
10179 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10180 (build-system glib-or-gtk-build-system)
10181 (native-inputs
10182 `(("gettext" ,gettext-minimal)
10183 ("glib:bin" ,glib "bin")
10184 ("intltool" ,intltool)
10185 ("itstool" ,itstool)
10186 ("pkg-config" ,pkg-config)))
10187 (inputs
10188 `(("gtk+" ,gtk+)
10189 ("librsvg" ,librsvg)
10190 ("libxml2" ,libxml2)))
10191 (home-page "https://glabels.org/")
10192 (synopsis "Program for creating labels and business cards")
10193 (description
10194 "gLabels is a program for creating labels and business cards. It is
10195designed to work with various laser/ink-jet peel-off label and business
10196card sheets that you’ll find at most office supply stores.")
10197 (license license:gpl3+)))
10198
2cd1de32
BT
10199(define-public libratbag
10200 (package
10201 (name "libratbag")
10202 (version "0.13")
10203 (source
10204 (origin
10205 (method git-fetch)
10206 (uri (git-reference
10207 (url "https://github.com/libratbag/libratbag.git")
10208 (commit (string-append "v" version))))
10209 (file-name (git-file-name name version))
10210 (sha256
10211 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10212 (build-system meson-build-system)
10213 (arguments
10214 `(#:configure-flags
10215 (list "-Dsystemd=false"
10216 "-Dlogind-provider=elogind")
10217 #:phases
10218 (modify-phases %standard-phases
10219 (add-after 'install 'wrap
10220 (lambda* (#:key inputs outputs #:allow-other-keys)
10221 (let* ((out (assoc-ref outputs "out"))
10222 (site (string-append
10223 "/lib/python"
10224 ,(version-major+minor (package-version python))
10225 "/site-packages"))
10226 (evdev (string-append
10227 (assoc-ref inputs "python-evdev") site))
10228 (pygo (string-append
10229 (assoc-ref inputs "python-pygobject") site))
10230 (python-wrap
10231 `("PYTHONPATH" = (,evdev ,pygo))))
10232 (wrap-program (string-append out "/bin/" "ratbagctl")
10233 python-wrap)
10234 #t))))))
10235 (native-inputs
10236 `(("check" ,check)
10237 ("pkg-config" ,pkg-config)
10238 ("swig" ,swig)
10239 ("valgrind" ,valgrind)))
10240 (inputs
10241 `(("glib" ,glib)
10242 ("json-glib" ,json-glib)
10243 ("libevdev" ,libevdev)
10244 ("libsystemd" ,elogind)
10245 ("libunistring" ,libunistring)
10246 ("python-evdev" ,python-evdev)
10247 ("python-pygobject" ,python-pygobject)
10248 ("udev" ,eudev)))
10249 (home-page "https://github.com/libratbag/libratbag")
10250 (synopsis "DBus daemon and utility for configuring gaming mice")
10251 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10252configure input devices, mainly gaming mice. The daemon provides a generic
10253way to access the various features exposed by these mice and abstracts away
10254hardware-specific and kernel-specific quirks. There is also the
10255@command{ratbagctl} command line interface for configuring devices.
10256
10257libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10258Steelseries.
10259
10260The ratbagd DBus service can be enabled by adding the following service to
10261your operating-system definition:
10262
10263 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10264 (license license:expat)))
10265
50d31a40
BT
10266(define-public piper
10267 (package
10268 (name "piper")
73014984 10269 (version "0.5")
50d31a40
BT
10270 (source
10271 (origin
10272 (method git-fetch)
10273 (uri (git-reference
10274 (url "https://github.com/libratbag/piper.git")
10275 (commit version)))
10276 (sha256
81af0de9
TGR
10277 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10278 (file-name (git-file-name name version))))
50d31a40
BT
10279 (build-system meson-build-system)
10280 (native-inputs
10281 `(("gettext" ,gettext-minimal)
10282 ("glib:bin" ,glib "bin")
10283 ("gobject-introspection" ,gobject-introspection)
10284 ("pkg-config" ,pkg-config)
10285 ("python-flake8" ,python-flake8)))
10286 (inputs
10287 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10288 ("gtk" ,gtk+)
10289 ("gtk:bin" ,gtk+ "bin")
10290 ("librsvg" ,librsvg)
10291 ("python-evdev" ,python-evdev)
10292 ("python-lxml" ,python-lxml)
10293 ("python-pycairo" ,python-pycairo)
10294 ("python-pygobject" ,python-pygobject)))
10295 (arguments
10296 `(#:imported-modules ((guix build python-build-system)
10297 ,@%meson-build-system-modules)
10298 #:modules (((guix build python-build-system) #:prefix python:)
10299 (guix build meson-build-system)
10300 (guix build utils))
10301 #:phases
10302 (modify-phases %standard-phases
10303 (add-after 'unpack 'dont-update-gtk-icon-cache
10304 (lambda _
10305 (substitute* "meson.build"
10306 (("meson.add_install_script('meson_install.sh')") ""))
10307 #t))
10308 ;; TODO: Switch to wrap-script when it is fixed.
10309 (add-after 'install 'wrap-python
10310 (assoc-ref python:%standard-phases 'wrap))
10311 (add-after 'wrap-python 'wrap
10312 (lambda* (#:key outputs #:allow-other-keys)
10313 (wrap-program
10314 (string-append (assoc-ref outputs "out" )"/bin/piper")
10315 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10316 #t)))))
10317 (home-page "https://github.com/libratbag/piper/")
10318 (synopsis "Configure bindings and LEDs on gaming mice")
10319 (description "Piper is a GTK+ application for configuring gaming mice with
10320onboard configuration for key bindings via libratbag. Piper requires
10321a @command{ratbagd} daemon running with root privileges. It can be run
10322manually as root, but is preferably configured as a DBus service that can
10323launch on demand. This can be configured by enabling the following service,
10324provided there is a DBus service present:
10325
10326 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10327 (license license:gpl2)))
10328
1a17d21b
NG
10329(define-public parlatype
10330 ;; This is one commit away from 2.0, because the latter introduced
10331 ;; a regression in ASR.
10332 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10333 (revision "0"))
10334 (package
10335 (name "parlatype")
10336 (version (git-version "2.0" revision commit))
10337 (source
10338 (origin
10339 (method git-fetch)
10340 (uri (git-reference
10341 (url "https://github.com/gkarsay/parlatype.git")
10342 (commit commit)))
10343 (file-name (git-file-name name version))
10344 (sha256
10345 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10346 (build-system meson-build-system)
10347 (arguments
10348 `(#:glib-or-gtk? #t
10349 #:tests? #f ;require internet access
10350 #:phases
10351 (modify-phases %standard-phases
10352 (add-after 'install 'wrap-parlatype
10353 ;; Add gstreamer plugin provided in this package to system's
10354 ;; plugins.
10355 (lambda* (#:key outputs #:allow-other-keys)
10356 (let* ((out (assoc-ref outputs "out"))
10357 (gst-plugin-path (string-append
10358 out "/lib/gstreamer-1.0/"
10359 ":"
10360 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10361 (wrap-program (string-append out "/bin/parlatype")
10362 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10363 #t)))))
10364 (native-inputs
10365 `(("appstream-glib" ,appstream-glib)
10366 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10367 ("gettext" ,gettext-minimal)
10368 ("glib" ,glib "bin") ;for glib-compile-resources
10369 ("pkg-config" ,pkg-config)
10370 ("yelp-tools" ,yelp-tools)))
10371 (inputs
10372 `(("gst-plugins-base" ,gst-plugins-base)
10373 ("gst-plugins-good" ,gst-plugins-good)
10374 ("gstreamer" ,gstreamer)
10375 ("gtk+" ,gtk+)
10376 ("pocketsphinx" ,pocketsphinx)
10377 ("pulseaudio" ,pulseaudio)
10378 ("sphinxbase" ,sphinxbase)))
10379 (home-page "http://gkarsay.github.io/parlatype/")
10380 (synopsis "GNOME audio player for transcription")
10381 (description "Parlatype is an audio player for the GNOME desktop
10382environment. Its main purpose is the manual transcription of spoken
10383audio files.")
10384 (license license:gpl3+))))
95856a6e
AT
10385
10386(define-public jsonrpc-glib
10387 (package
10388 (name "jsonrpc-glib")
10389 (version "3.34.0")
10390 (source (origin
10391 (method url-fetch)
10392 (uri (string-append "mirror://gnome/sources/" name "/"
10393 (version-major+minor version) "/"
10394 name "-" version ".tar.xz"))
10395 (sha256
10396 (base32
10397 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10398 (build-system meson-build-system)
10399 (inputs
10400 `(("json-glib" ,json-glib)
10401 ("glib" ,glib)))
10402 (native-inputs
10403 `(("pkg-config" ,pkg-config)
10404 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10405 ("gobject-introspection" ,gobject-introspection)
10406 ("vala" ,vala)))
10407 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10408 (synopsis "JSON-RPC library for GLib")
10409 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10410peers in either a synchronous or asynchronous fashion. It also allows
10411communicating using the GVariant serialization format instead of JSON when
10412both peers support it. You might want that when communicating on a single
10413host to avoid parser overhead and memory-allocator fragmentation.")
10414 (license license:lgpl2.1+)))
0faed399
JB
10415
10416(define-public feedbackd
10417 (package
10418 (name "feedbackd")
10419 (version "0.0.0+git20200527")
10420 (source (origin
10421 (method git-fetch)
10422 (uri (git-reference
10423 (url "https://source.puri.sm/Librem5/feedbackd.git")
10424 (commit (string-append "v" version))))
10425 (file-name (git-file-name name version))
10426 (sha256
10427 (base32
10428 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
10429 (build-system meson-build-system)
10430 (native-inputs
10431 `(("glib:bin" ,glib "bin")
10432 ("gobject-introspection" ,gobject-introspection)
10433 ("pkg-config" ,pkg-config)
10434 ("vala" ,vala)))
10435 (inputs
10436 `(("dbus" ,dbus)
10437 ("gsound" ,gsound)
10438 ("json-glib" ,json-glib)
10439 ("libgudev" ,libgudev)))
10440 (propagated-inputs
10441 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
10442 (synopsis "Haptic/visual/audio feedback via DBus")
10443 (description "Feedbackd provides a DBus daemon to act on events to provide
10444haptic, visual and audio feedback. It offers the libfeedbackd library and
10445GObject introspection bindings.")
10446 (home-page "https://source.puri.sm/Librem5/feedbackd")
10447 (license (list license:lgpl2.1+ ; libfeedbackd
10448 license:lgpl3+)))) ; the rest