gnu: hosts: Clarify this script only works on a foreign distro.
[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")
3276e123 2355 (version "2.46.4")
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
2363 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2364 (modules '((guix build utils)))
2365 (snippet
2366 '(begin (delete-file-recursively "vendor")
2367 ;; Don't demand an exact version for string_cache
2368 (substitute* "rsvg_internals/Cargo.toml"
2369 (("\"=") "\""))
2370 #t))))
2371 (build-system cargo-build-system)
63016e7c 2372 (arguments
69568670
EF
2373 `(#:modules ((guix build cargo-build-system)
2374 (guix build utils)
2375 ((guix build gnu-build-system) #:prefix gnu:))
2376 #:vendor-dir "vendor"
2377 #:cargo-inputs
2378 (("rust-bitflags" ,rust-bitflags-1)
2379 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2380 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2381 ("rust-cssparser" ,rust-cssparser-0.25)
2382 ("rust-data-url" ,rust-data-url-0.1)
2383 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2384 ("rust-encoding" ,rust-encoding-0.2)
2385 ("rust-float-cmp" ,rust-float-cmp-0.5)
2386 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2387 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2388 ("rust-gio" ,rust-gio-0.7)
2389 ("rust-gio-sys" ,rust-gio-sys-0.9)
2390 ("rust-glib" ,rust-glib-0.8)
2391 ("rust-glib-sys" ,rust-glib-sys-0.9)
2392 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2393 ("rust-itertools" ,rust-itertools-0.8)
2394 ("rust-language-tags" ,rust-language-tags-0.2)
2395 ("rust-lazy-static" ,rust-lazy-static-1)
2396 ("rust-libc" ,rust-libc-0.2)
2397 ("rust-locale-config" ,rust-locale-config-0.3)
2398 ("rust-markup5ever" ,rust-markup5ever-0.9)
2399 ("rust-nalgebra" ,rust-nalgebra-0.18)
2400 ("rust-num-traits" ,rust-num-traits-0.2)
2401 ("rust-pkg-config" ,rust-pkg-config-0.3)
2402 ("rust-pango" ,rust-pango-0.7)
2403 ("rust-pango-sys" ,rust-pango-sys-0.9)
2404 ("rust-pangocairo" ,rust-pangocairo-0.8)
2405 ("rust-phf" ,rust-phf-0.7)
a5630553 2406 ("rust-rayon" ,rust-rayon-1)
69568670
EF
2407 ("rust-rctree" ,rust-rctree-0.3)
2408 ("rust-string-cache" ,rust-string-cache-0.7)
6cd7b355 2409 ("rust-regex" ,rust-regex-1)
69568670
EF
2410 ("rust-url" ,rust-url-2.1)
2411 ("rust-xml-rs" ,rust-xml-rs-0.8))
2412 #:cargo-development-inputs
2413 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2414 ("rust-criterion" ,rust-criterion-0.2))
ec47c07d 2415 #:phases
b6239e45 2416 (modify-phases %standard-phases
69568670 2417 (add-after 'unpack 'prepare-for-build
ec47c07d 2418 (lambda _
69568670
EF
2419 ;; In lieu of #:make-flags
2420 (setenv "CC" "gcc")
2421 ;; Something about the build environment resists building
2422 ;; successfully with the '--locked' flag.
2423 (substitute* '("Makefile.am"
2424 "Makefile.in")
2425 (("--locked") ""))
2426 #t))
b6239e45 2427 (add-before 'configure 'pre-configure
69568670 2428 (lambda _
b6239e45
EF
2429 (substitute* "gdk-pixbuf-loader/Makefile.in"
2430 ;; By default the gdk-pixbuf loader is installed under
2431 ;; gdk-pixbuf's prefix. Work around that.
2432 (("gdk_pixbuf_moduledir = .*$")
2433 (string-append "gdk_pixbuf_moduledir = "
2434 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2435 "loaders\n"))
2436 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2437 (("gdk_pixbuf_cache_file = .*$")
2438 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2439 #t))
69568670
EF
2440 (add-after 'configure 'gnu-configure
2441 (assoc-ref gnu:%standard-phases 'configure))
2442 ;(lambda* (#:key outputs #:allow-other-keys)
2443 ; ((assoc-ref gnu:%standard-phases 'configure)
2444 ; #:outputs outputs
2445 ; #:configure-flags ("--disable-static"
2446 ; "--enable-vala"))))
2447 (add-after 'configure 'dont-vendor-self
2448 (lambda* (#:key vendor-dir #:allow-other-keys)
2449 ;; Don't keep the whole tarball in the vendor directory
2450 (delete-file-recursively
2451 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2452 #t))
2453 (replace 'build
2454 (assoc-ref gnu:%standard-phases 'build))
2455 (replace 'check
2456 (lambda* args
2457 ((assoc-ref gnu:%standard-phases 'check)
2458 #:test-target "check")))
2459 (replace 'install
2460 (assoc-ref gnu:%standard-phases 'install))
ec47c07d 2461 (add-before 'check 'remove-failing-tests
b6239e45 2462 (lambda _
64a153bd
MW
2463 (with-directory-excursion "tests/fixtures/reftests"
2464 (for-each delete-file
ec47c07d
MB
2465 '(;; The images produced by these tests differ slightly
2466 ;; from their reference counterparts due to differences
2467 ;; in the build environment (missing fonts, etc). See
2468 ;; <tests/README.md> for details.
2469 ;; These fail on x86_64.
2470 "svg1.1/coords-viewattr-02-b.svg"
2471 "svg1.1/filters-composite-04-f.svg"
2472 "svg1.1/filters-image-01-b.svg"
2473 "svg1.1/filters-conv-02-f.svg"
2474 "svg1.1/filters-conv-04-f.svg"
2475 ;; This test fails on i686:
64a153bd 2476 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2477 ;; This test fails on armhf:
2478 "svg1.1/masking-mask-01-b.svg"
64a153bd 2479 ;; This test fails on aarch64:
ec47c07d 2480 "bugs/777834-empty-text-children.svg")))
b6239e45 2481 #t)))))
cf9dad6c 2482 (license license:lgpl2.1+)))
5698b8b8
JD
2483
2484(define-public libidl
2485 (package
2486 (name "libidl")
2487 (version "0.8.14")
2488 (source (origin
2489 (method url-fetch)
80a06e62
EF
2490 (uri (string-append "mirror://gnome/sources/libIDL/"
2491 (version-major+minor version) "/"
2492 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2493 (sha256
2494 (base32
2495 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2496 (build-system gnu-build-system)
2497 (inputs `(("glib" ,glib)))
2498 (native-inputs
2499 `(("pkg-config" ,pkg-config)
b3546174 2500 ("flex" ,flex)
5698b8b8
JD
2501 ("bison" ,bison)))
2502 (home-page "http://freecode.com/projects/libidl")
2503 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2504 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2505Definition Language (idl) files, which is a specification for defining
2506portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2507GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2508functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2509 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2510 (license license:lgpl2.0+)))
2511
2512
2513(define-public orbit2
2514 (package
2515 (name "orbit2")
2516 (version "2.14.19")
2517 (source (origin
2518 (method url-fetch)
2e6ecc5c 2519 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2520 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2521 (version-major+minor version) "/"
2522 upstream-name "-" version ".tar.bz2")))
5698b8b8 2523 (sha256
a124bbd2
SB
2524 (base32
2525 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2526 (build-system gnu-build-system)
2527 (arguments
c2d837b9
MB
2528 `(;; The "timeout-server" test hangs when run in parallel.
2529 #:parallel-tests? #f
2530 #:configure-flags
8aad2e32
LC
2531 '(;; We don't need static libraries, plus they don't build reproducibly
2532 ;; (non-deterministic ordering of .o files in the archive.)
2533 "--disable-static"
2534
2535 ;; The programmer kindly gives us a hook to turn off deprecation
2536 ;; warnings ...
2537 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2538 ;; ... which they then completly ignore !!
2539 #:phases
dc1d3cde
KK
2540 (modify-phases %standard-phases
2541 (add-before 'configure 'ignore-deprecations
2542 (lambda _
2543 (substitute* "linc2/src/Makefile.in"
2544 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2545 #t)))))
5698b8b8
JD
2546 (inputs `(("glib" ,glib)
2547 ("libidl" ,libidl)))
2548 (native-inputs
2549 `(("pkg-config" ,pkg-config)))
2550 (home-page "https://projects.gnome.org/orbit2/")
2551 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2552 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2553featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2554 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2555 ;; a version. SOME of the code files have licence notices for GPLv2+.
2556 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2557 (license license:gpl2+)
2558 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2559
2560
2561(define-public libbonobo
2562 (package
2563 (name "libbonobo")
2564 (version "2.32.1")
2565 (source (origin
2566 (method url-fetch)
5becd025 2567 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2568 (version-major+minor version)
5becd025 2569 "/" name "-" version ".tar.bz2"))
5698b8b8 2570 (sha256
f1fc45a9 2571 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2572 (patches (search-patches
2573 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2574 (build-system gnu-build-system)
2575 (arguments
2576 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2577 `(#:configure-flags
2578 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2579 ;; ... which they then completly ignore !!
2580 #:phases
dc1d3cde
KK
2581 (modify-phases %standard-phases
2582 (add-before 'configure 'ignore-deprecations
2583 (lambda _
2584 (substitute* "activation-server/Makefile.in"
2585 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2586 #t)))
2587
2588 ;; There's apparently a race condition between the server stub
2589 ;; generation and linking of the example under 'samples/echo' that can
2590 ;; lead do undefined references when building in parallel, as reported
2591 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2592 ;; Thus, disable parallel builds.
2593 #:parallel-build? #f))
5698b8b8
JD
2594 (inputs `(("popt" ,popt)
2595 ("libxml2" ,libxml2)))
2596 ;; The following are Required by the .pc file
44add1ce 2597 (propagated-inputs
5698b8b8
JD
2598 `(("glib" ,glib)
2599 ("orbit2" ,orbit2)))
2600 (native-inputs
2601 `(("intltool" ,intltool)
2602 ("pkg-config" ,pkg-config)
221ed17a 2603 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2604 ("flex" ,flex)
2605 ("bison" ,bison)))
2606 (home-page "https://developer.gnome.org/libbonobo/")
2607 (synopsis "Framework for creating reusable components for use in GNOME applications")
2608 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2609use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2610 ;; Licence not explicitly stated. Source files contain no licence notices.
2611 ;; Tarball contains text of both GPLv2 and LGPLv2
2612 ;; GPLv2 covers both conditions
2613 (license license:gpl2+)))
2614
2615
2616(define-public gconf
2617 (package
2618 (name "gconf")
2619 (version "3.2.6")
2620 (source (origin
2621 (method url-fetch)
a124bbd2
SB
2622 (uri
2623 (let ((upstream-name "GConf"))
2624 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2625 (version-major+minor version) "/"
2626 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2627 (sha256
2628 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2629 (build-system gnu-build-system)
2e88d113 2630 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2631 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2632 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2633 ("orbit2" ,orbit2)))
5698b8b8
JD
2634 (native-inputs
2635 `(("intltool" ,intltool)
221ed17a 2636 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2637 ("pkg-config" ,pkg-config)))
2638 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2639 (synopsis "Store application preferences")
2640 (description "Gconf is a system for storing application preferences. It
2641is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2642 (license license:lgpl2.0+)
2643 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2644
2645
2646(define-public gnome-mime-data
2647 (package
2648 (name "gnome-mime-data")
2649 (version "2.18.0")
2650 (source (origin
2651 (method url-fetch)
b38e45d8
EB
2652 (uri (string-append "mirror://gnome/sources/" name "/"
2653 (version-major+minor version) "/"
2654 name "-" version ".tar.bz2"))
5698b8b8
JD
2655 (sha256
2656 (base32
2657 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2658 (build-system gnu-build-system)
2659 (native-inputs
2660 `(("perl" ,perl)
2661 ("intltool" ,intltool)))
3e6add96
LC
2662 (arguments
2663 '(#:phases (modify-phases %standard-phases
2664 (add-after 'configure 'use-our-intltool
2665 (lambda _
2666 ;; Do not use the bundled intltool commands, which lack
2667 ;; the "dotless @INC" fixes of our 'intltool' package.
2668 (substitute* (find-files "." "^Makefile$")
2669 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2670 (string-append "INTLTOOL_" tool " = intltool-"
2671 (string-downcase tool) "\n")))
2672 #t)))))
f032d0be 2673 (home-page "https://www.gnome.org")
35b9e423 2674 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2675 (description "GNOME Mime Data is a module which contains the base MIME
2676and Application database for GNOME. The data stored by this module is
2677designed to be accessed through the MIME functions in GnomeVFS.")
2678 (license license:gpl2+)))
2679
2680
2681(define-public gnome-vfs
2682 (package
2683 (name "gnome-vfs")
2684 (version "2.24.4")
2685 (source (origin
2686 (method url-fetch)
b38e45d8
EB
2687 (uri (string-append "mirror://gnome/sources/" name "/"
2688 (version-major+minor version) "/"
2689 name "-" version ".tar.bz2"))
5698b8b8 2690 (sha256
9e12bc34
MW
2691 (base32
2692 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2693 (build-system gnu-build-system)
2694 (arguments
db5127d8 2695 `(#:phases
dc1d3cde
KK
2696 (modify-phases %standard-phases
2697 (add-before 'configure 'ignore-deprecations
2698 (lambda _
2699 (substitute* '("libgnomevfs/Makefile.in"
2700 "daemon/Makefile.in")
2701 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2702 #t))
2703 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2704 (lambda _
2705 (substitute* "test/test-async-cancel.c"
2706 (("EXIT_FAILURE") "77"))
2707 #t)))))
2e6ecc5c 2708 (inputs `(("libxml2" ,libxml2)
5698b8b8 2709 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2710 ("gconf" ,gconf)
2711 ("gnome-mime-data" ,gnome-mime-data)
2712 ("zlib" ,zlib)))
2713 (native-inputs
221ed17a
EB
2714 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2715 ("intltool" ,intltool)
5698b8b8
JD
2716 ("pkg-config" ,pkg-config)))
2717 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2718 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2719 (description
2720 "GnomeVFS is the core library used to access files and folders in GNOME
2721applications. It provides a file system abstraction which allows applications
2722to access local and remote files with a single consistent API.")
5698b8b8
JD
2723 (license license:lgpl2.0+)))
2724
2725
2726
2727(define-public libgnome
2728 (package
2729 (name "libgnome")
2730 (version "2.32.1")
2731 (source (origin
2732 (method url-fetch)
b38e45d8
EB
2733 (uri (string-append "mirror://gnome/sources/" name "/"
2734 (version-major+minor version) "/"
2735 name "-" version ".tar.bz2"))
5698b8b8
JD
2736 (sha256
2737 (base32
17c3eea7
LC
2738 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2739 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2740 (build-system gnu-build-system)
2741 (arguments
2742 `(#:phases
dc1d3cde
KK
2743 (modify-phases %standard-phases
2744 (add-before 'configure 'enable-deprecated
2745 (lambda _
2746 (substitute* "libgnome/Makefile.in"
2747 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2748 #t)))))
25338e9f 2749 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2750 (native-inputs
221ed17a
EB
2751 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2752 ("intltool" ,intltool)
5698b8b8
JD
2753 ("pkg-config" ,pkg-config)))
2754 ;; The following are listed as Required in the .pc file
2755 ;; (except for libcanberra -- which seems to be oversight on the part
2756 ;; of the upstream developers -- anything that links against libgnome,
2757 ;; must also link against libcanberra
2758 (propagated-inputs
2759 `(("libcanberra" ,libcanberra)
2760 ("libbonobo" ,libbonobo)
2761 ("gconf" ,gconf)
a640d3d5
LC
2762 ("gnome-vfs" ,gnome-vfs)
2763 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2764 (home-page "https://developer.gnome.org/libgnome/")
2765 (synopsis "Useful routines for building applications")
2766 (description "The libgnome library provides a number of useful routines
2767for building modern applications, including session management, activation of
2768files and URIs, and displaying help.")
2769 (license license:lgpl2.0+)))
2770
2771
2772(define-public libart-lgpl
2773 (package
2774 (name "libart-lgpl")
76c9b6aa 2775 (version "2.3.21")
5698b8b8
JD
2776 (source (origin
2777 (method url-fetch)
2778 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2779 (string-append "mirror://gnome/sources/" upstream-name "/"
2780 (version-major+minor version) "/"
2781 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2782 (sha256
2783 (base32
76c9b6aa 2784 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2785 (build-system gnu-build-system)
2786 (native-inputs
2787 `(("pkg-config" ,pkg-config)))
2788 (home-page "https://people.gnome.org/~mathieu/libart")
2789 (synopsis "2D drawing library")
2e6ecc5c 2790 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2791high-quality vector-based 2D library with antialiasing and alpha composition.")
2792 (license license:lgpl2.0+)))
2793
2794
2795
2796(define-public libgnomecanvas
2797 (package
2798 (name "libgnomecanvas")
2799 (version "2.30.3")
2800 (source (origin
2801 (method url-fetch)
b38e45d8
EB
2802 (uri (string-append "mirror://gnome/sources/" name "/"
2803 (version-major+minor version) "/"
2804 name "-" version ".tar.gz"))
5698b8b8
JD
2805 (sha256
2806 (base32
2807 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2808 (build-system gnu-build-system)
2809 ;; Mentioned as Required in the .pc file
2810 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2811 ("gtk+" ,gtk+-2)))
2812 (native-inputs
2813 `(("intltool" ,intltool)
221ed17a 2814 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2815 ("pkg-config" ,pkg-config)))
2816 (home-page "https://developer.gnome.org/libgnomecanvas/")
2817 (synopsis "Flexible widget for creating interactive structured graphics")
2818 (description "The GnomeCanvas widget provides a flexible widget for
2819creating interactive structured graphics.")
2820 (license license:lgpl2.0+)))
2821
eadc734e
RW
2822(define-public libgnomecanvasmm
2823 (package
2824 (name "libgnomecanvasmm")
2825 (version "2.26.0")
2826 (source (origin
2827 (method url-fetch)
2828 (uri (string-append "mirror://gnome/sources/" name "/"
2829 (version-major+minor version) "/"
2830 name "-" version ".tar.bz2"))
2831 (sha256
2832 (base32
2833 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2834 (build-system gnu-build-system)
2835 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2836 (native-inputs
2837 `(("gtkmm-2" ,gtkmm-2)
2838 ("pkg-config" ,pkg-config)))
8e933cb3 2839 (home-page "https://gtkmm.org")
eadc734e
RW
2840 (synopsis "C++ bindings to the GNOME Canvas library")
2841 (description "C++ bindings to the GNOME Canvas library.")
2842 (license license:lgpl2.0+)))
2843
5698b8b8
JD
2844(define-public libgnomeui
2845 (package
2846 (name "libgnomeui")
2847 (version "2.24.5")
2848 (source (origin
2849 (method url-fetch)
b38e45d8
EB
2850 (uri (string-append "mirror://gnome/sources/" name "/"
2851 (version-major+minor version) "/"
2852 name "-" version ".tar.bz2"))
8fa1872a 2853 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2854 (sha256
2855 (base32
2856 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2857 (build-system gnu-build-system)
2858 ;; Mentioned as Required in the .pc file
0a38a497
AE
2859 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2860 ("libgnome" ,libgnome)
2861 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2862 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2863 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2864 ("popt" ,popt)
2865 ("libbonobo" ,libbonobo)
2866 ("libxml2" ,libxml2)
2867 ("libglade" ,libglade)))
2868 (native-inputs
221ed17a
EB
2869 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2870 ("intltool" ,intltool)
5698b8b8
JD
2871 ("pkg-config" ,pkg-config)))
2872 (home-page "https://developer.gnome.org/libgnomeui/")
2873 (synopsis "Additional widgets for applications")
35b9e423 2874 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2875applications. Many of the widgets from libgnomeui have already been
2876ported to GTK+.")
5698b8b8
JD
2877 (license license:lgpl2.0+)))
2878
2879(define-public libglade
2880 (package
2881 (name "libglade")
2882 (version "2.6.4")
2883 (source (origin
2884 (method url-fetch)
b38e45d8
EB
2885 (uri (string-append "mirror://gnome/sources/" name "/"
2886 (version-major+minor version) "/"
2887 name "-" version ".tar.bz2"))
5698b8b8
JD
2888 (sha256
2889 (base32
2890 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2891 (build-system gnu-build-system)
2892 (inputs
92dcc23d
AE
2893 `(("python" ,python))) ;; needed for the optional libglade-convert program
2894 (propagated-inputs
5698b8b8 2895 `(("gtk+-2" ,gtk+-2)
92dcc23d 2896 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2897 (native-inputs
2898 `(("pkg-config" ,pkg-config)))
2899 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2900 (synopsis "Load glade interfaces and access the glade built widgets")
2901 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2902graphical interfaces described in glade files and for accessing the
2903widgets built in the loading process.")
2904 (license license:gpl2+))) ; This is correct. GPL not LGPL
2905
2906(define-public libgnomeprint
eb497b66
LC
2907 ;; This library has been deprecated since 2006; see
2908 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2909 (package
2910 (name "libgnomeprint")
d19db454 2911 (version "2.18.8")
5698b8b8
JD
2912 (source (origin
2913 (method url-fetch)
b38e45d8
EB
2914 (uri (string-append "mirror://gnome/sources/" name "/"
2915 (version-major+minor version) "/"
2916 name "-" version ".tar.bz2"))
5698b8b8
JD
2917 (sha256
2918 (base32
d19db454 2919 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2920 (build-system gnu-build-system)
2921 (inputs
2922 `(("popt" ,popt)
2923 ("libart-lgpl" ,libart-lgpl)
2924 ("gtk+" ,gtk+-2)
44add1ce 2925 ("libxml2" ,libxml2)))
5698b8b8
JD
2926 (native-inputs
2927 `(("intltool" ,intltool)
221ed17a 2928 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2929 ("pkg-config" ,pkg-config)))
2930 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2931 (synopsis "Printing framework for GNOME")
eb497b66
LC
2932 (description
2933 "GNOME-print was a printing framework for GNOME. It has been deprecated
2934since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2935 (license license:lgpl2.0+)))
2936
2937
2938(define-public libgnomeprintui
eb497b66 2939 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2940 (package
2941 (name "libgnomeprintui")
36053d7f 2942 (version "2.18.6")
5698b8b8
JD
2943 (source (origin
2944 (method url-fetch)
b38e45d8
EB
2945 (uri (string-append "mirror://gnome/sources/" name "/"
2946 (version-major+minor version) "/"
2947 name "-" version ".tar.bz2"))
5698b8b8
JD
2948 (sha256
2949 (base32
36053d7f 2950 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2951 (build-system gnu-build-system)
2952 ;; Mentioned as Required in the .pc file
2953 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2954 (inputs `(("gtk+" ,gtk+-2)
2955 ("glib" ,glib)
2956 ("gnome-icon-theme" ,gnome-icon-theme)
2957 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2958 ("libxml2" ,libxml2)))
5698b8b8
JD
2959 (native-inputs
2960 `(("intltool" ,intltool)
2961 ("pkg-config" ,pkg-config)))
2962 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2963 (synopsis "Printing framework for GNOME")
eb497b66 2964 (description (package-description libgnomeprint))
5698b8b8
JD
2965 (license license:lgpl2.0+)))
2966
5698b8b8
JD
2967(define-public libbonoboui
2968 (package
2969 (name "libbonoboui")
2970 (version "2.24.5")
2971 (source (origin
2972 (method url-fetch)
b38e45d8
EB
2973 (uri (string-append "mirror://gnome/sources/" name "/"
2974 (version-major+minor version) "/"
2975 name "-" version ".tar.bz2"))
5698b8b8
JD
2976 (sha256
2977 (base32
2978 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2979 (build-system gnu-build-system)
2980 (arguments
2981 `(#:phases
dc1d3cde
KK
2982 (modify-phases %standard-phases
2983 (add-before 'check 'start-xserver
2984 (lambda* (#:key inputs #:allow-other-keys)
2985 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2986 (disp ":1"))
2987
2988 (setenv "HOME" (getcwd))
2989 (setenv "DISPLAY" disp)
2990 ;; There must be a running X server and make check doesn't start one.
2991 ;; Therefore we must do it.
2992 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2993 ;; Mentioned as Required by the .pc file
2994 (propagated-inputs `(("libxml2" ,libxml2)))
2995 (inputs
2996 `(("popt" ,popt)
2997 ("pangox-compat" ,pangox-compat)
2998 ("libgnome" ,libgnome)
2999 ("libgnomecanvas" ,libgnomecanvas)
3000 ("libglade" ,libglade)))
3001 (native-inputs
221ed17a
EB
3002 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3003 ("intltool" ,intltool)
ff337525 3004 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
3005 ("pkg-config" ,pkg-config)))
3006 (home-page "https://developer.gnome.org/libbonoboui/")
3007 (synopsis "Some user interface controls using Bonobo")
3008 (description "The Bonobo UI library provides a number of user interface
3009controls using the Bonobo component framework.")
3010 (license license:lgpl2.0+)))
3011
fecbf86e
SB
3012(define-public libwnck
3013 (package
3014 (name "libwnck")
d3b40696 3015 (version "3.32.0")
fecbf86e
SB
3016 (source (origin
3017 (method url-fetch)
3018 (uri (string-append "mirror://gnome/sources/" name "/"
3019 (version-major+minor version) "/"
3020 name "-" version ".tar.xz"))
3021 (sha256
ad9b8987 3022 (base32
d3b40696
KK
3023 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3024 (build-system meson-build-system)
fecbf86e
SB
3025 (native-inputs
3026 `(("pkg-config" ,pkg-config)
d3b40696
KK
3027 ("glib" ,glib "bin") ; for glib-mkenums
3028 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
3029 ("intltool" ,intltool)))
3030 (propagated-inputs
427476d5
SB
3031 `(("gtk+" ,gtk+)
3032 ("libxres" ,libxres)
3033 ("startup-notification" ,startup-notification)))
fecbf86e
SB
3034 (home-page "https://developer.gnome.org/libwnck/")
3035 (synopsis "Window Navigator Construction Kit")
3036 (description
3037 "Libwnck is the Window Navigator Construction Kit, a library for use in
3038writing pagers, tasklists, and more generally applications that are dealing
3039with window management. It tries hard to respect the Extended Window Manager
3040Hints specification (EWMH).")
3041 (license license:lgpl2.0+)))
3042
3043;; stable version for gtk2, required by xfwm4.
dbb7a081 3044(define-public libwnck-2
fecbf86e
SB
3045 (package (inherit libwnck)
3046 (name "libwnck")
3047 (version "2.30.7")
3048 (source (origin
3049 (method url-fetch)
3050 (uri (string-append "mirror://gnome/sources/" name "/"
3051 (version-major+minor version) "/"
3052 name "-" version ".tar.xz"))
3053 (sha256
3054 (base32
3055 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
3056 (build-system gnu-build-system)
3057 (native-inputs
3058 `(("pkg-config" ,pkg-config)
3059 ("intltool" ,intltool)))
fecbf86e 3060 (propagated-inputs
427476d5
SB
3061 `(("gtk+" ,gtk+-2)
3062 ("libxres" ,libxres)
3063 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3064
3065(define-public goffice
3066 (package
3067 (name "goffice")
09abffcc 3068 (version "0.10.46")
b804c61e
JD
3069 (source (origin
3070 (method url-fetch)
16243f0b 3071 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3072 (version-major+minor version) "/"
16243f0b 3073 "goffice-" version ".tar.xz"))
b804c61e 3074 (sha256
09abffcc 3075 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3076 (build-system gnu-build-system)
72a06d3e 3077 (outputs '("out"
355420c6 3078 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3079 (arguments
3080 '(#:configure-flags (list (string-append "--with-html-dir="
3081 (assoc-ref %outputs "doc")
3082 "/share/gtk-doc/html"))))
b804c61e
JD
3083 (inputs
3084 `(("gtk+" ,gtk+)
3085 ("libgsf" ,libgsf)
3086 ("librsvg" ,librsvg)
3087 ("libxslt" ,libxslt)
3088 ("libxml2" ,libxml2)))
3089 (native-inputs
3090 `(("intltool" ,intltool)
f280cdb1 3091 ("glib" ,glib "bin")
b804c61e
JD
3092 ("pkg-config" ,pkg-config)))
3093 (home-page "https://developer.gnome.org/goffice/")
3094 (synopsis "Document-centric objects and utilities")
3095 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3096 (license
b804c61e
JD
3097 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3098 ;; Note: NOT LGPL
3099 (list license:gpl2 license:gpl3))))
3100
c024ae36
RW
3101(define-public goffice-0.8
3102 (package (inherit goffice)
3103 (version "0.8.17")
3104 (source (origin
3105 (method url-fetch)
3106 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3107 (version-major+minor version) "/"
3108 (package-name goffice) "-" version ".tar.xz"))
3109 (sha256
3110 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3111 (arguments
3112 `(#:phases
dc1d3cde
KK
3113 (modify-phases %standard-phases
3114 (add-after 'unpack 'fix-pcre-check
3115 (lambda _
3116 ;; Only glib.h can be included directly. See
3117 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3118 (substitute* "configure"
3119 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3120
3121 ,@(package-arguments goffice)))
c024ae36
RW
3122 (propagated-inputs
3123 ;; libgoffice-0.8.pc mentions libgsf-1
3124 `(("libgsf" ,libgsf)))
3125 (inputs
3126 `(("gtk" ,gtk+-2)
3127 ,@(alist-delete "gtk" (package-inputs goffice))))))
3128
b804c61e
JD
3129(define-public gnumeric
3130 (package
3131 (name "gnumeric")
f0517b5d 3132 (version "1.12.46")
b804c61e
JD
3133 (source (origin
3134 (method url-fetch)
b7fd0217 3135 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3136 (version-major+minor version) "/"
b7fd0217 3137 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3138 (sha256
3139 (base32
f0517b5d 3140 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3141 (build-system glib-or-gtk-build-system)
b804c61e
JD
3142 (arguments
3143 `(;; The gnumeric developers don't worry much about failing tests.
3144 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3145 #:tests? #f
b804c61e 3146 #:phases
7bcbd40d
EF
3147 (modify-phases %standard-phases
3148 (add-before
3149 'configure 'pre-conf
3150 (lambda* (#:key outputs #:allow-other-keys)
3151 ;; Make install tries to write into the directory of goffice
3152 ;; I am informed that this only affects the possibility to embed a
3153 ;; spreadsheet inside an Abiword document. So presumably when we
3154 ;; package Abiword we'll have to refer it to this directory.
3155 (substitute* "configure"
3156 (("^GOFFICE_PLUGINS_DIR=.*")
3157 (string-append "GOFFICE_PLUGINS_DIR="
3158 (assoc-ref outputs "out")
3159 "/goffice/plugins"))))))))
b804c61e
JD
3160 (inputs
3161 `(("glib" ,glib)
3162 ("gtk+" ,gtk+)
3163 ("goffice" ,goffice)
3164 ("libgsf" ,libgsf)
7bcbd40d 3165 ("librsvg" ,librsvg)
b804c61e 3166 ("libxml2" ,libxml2)
7bcbd40d 3167 ("libxslt" ,libxslt)
2e4c5457 3168 ("python" ,python-2)
6983ba56 3169 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3170 ("zlib" ,zlib)))
3171 (native-inputs
6983ba56 3172 `(("bison" ,bison)
1ed398d1 3173 ("docbook-xml" ,docbook-xml)
6983ba56 3174 ("intltool" ,intltool)
785fcb62 3175 ("itstool" ,itstool)
b9663471 3176 ("glib:bin" ,glib "bin")
b804c61e
JD
3177 ("pkg-config" ,pkg-config)))
3178 (home-page "http://www.gnumeric.org")
66672a45
LC
3179 (synopsis "Spreadsheet application")
3180 (description
3181 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3182interoperable with other spreadsheet applications. It has a vast array of
3183features beyond typical spreadsheet functionality, such as support for linear
3184and non-linear solvers, statistical analysis, and telecommunication
3185engineering.")
3186 (license
b804c61e
JD
3187 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3188 (list license:gpl2 license:gpl3))))
6f885c05
FB
3189
3190(define-public gnome-themes-standard
3191 (package
3192 (name "gnome-themes-standard")
0b7b8fb0 3193 (version "3.22.3")
6f885c05
FB
3194 (source
3195 (origin
3196 (method url-fetch)
2e6ecc5c 3197 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3198 (version-major+minor version) "/" name "-"
3199 version ".tar.xz"))
3200 (sha256
3201 (base32
0b7b8fb0 3202 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3203 (build-system gnu-build-system)
8ac70c7f
SB
3204 (arguments
3205 '(#:configure-flags
3206 ;; Don't create 'icon-theme.cache'.
3207 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3208 (true (string-append coreutils "/bin/true")))
3209 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3210 (inputs
3211 `(("gtk+" ,gtk+)
3212 ("gtk+-2" ,gtk+-2)
3213 ("librsvg" ,librsvg)
3214 ("libxml2" ,libxml2)
3215 ("glib" ,glib)))
3216 (native-inputs
3217 `(("intltool" ,intltool)
3218 ("glib:bin" ,glib "bin")
3219 ("pkg-config" ,pkg-config)))
6f885c05
FB
3220 (home-page "https://launchpad.net/gnome-themes-standard")
3221 (synopsis "Default GNOME 3 themes")
3222 (description
3223 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3224 (license license:lgpl2.1+)))
5a659a48 3225
df90c701
RW
3226(define-public seahorse
3227 (package
3228 (name "seahorse")
1efcf722 3229 (version "3.34")
df90c701
RW
3230 (source
3231 (origin
3232 (method url-fetch)
3233 (uri (string-append "mirror://gnome/sources/" name "/"
3234 (version-major+minor version) "/" name "-"
3235 version ".tar.xz"))
3236 (sha256
3237 (base32
1efcf722 3238 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3239 (build-system meson-build-system)
3240 (arguments
bcea3c11
KK
3241 '(#:glib-or-gtk? #t
3242 #:phases
af561664
MÁAV
3243 (modify-phases %standard-phases
3244 (add-after 'unpack 'skip-gtk-update-icon-cache
3245 ;; Don't create 'icon-theme.cache'.
3246 (lambda _
3247 (substitute* "build-aux/meson_post_install.py"
3248 (("gtk-update-icon-cache") "true"))
3249 #t)))))
df90c701
RW
3250 (inputs
3251 `(("gtk+" ,gtk+)
3252 ("gcr" ,gcr)
34b979b9 3253 ("gnupg" ,gnupg)
df90c701 3254 ("gpgme" ,gpgme)
34b979b9 3255 ("openldap" ,openldap)
4a1bf090 3256 ("openssh" ,openssh)
af561664 3257 ("avahi" ,avahi)
bcea3c11 3258 ("libpwquality" ,libpwquality)
34b979b9
EF
3259 ("libsecret" ,libsecret)
3260 ("libsoup" ,libsoup)))
df90c701 3261 (native-inputs
af561664 3262 `(("gettext" ,gettext-minimal)
df90c701
RW
3263 ("glib:bin" ,glib "bin")
3264 ("itstool" ,itstool)
bcb354ad 3265 ("pkg-config" ,pkg-config)
af561664 3266 ("vala" ,vala)
bcb354ad 3267 ("xmllint" ,libxml2)))
bcea3c11 3268 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3269 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3270 (description
3271 "Seahorse is a GNOME application for managing encryption keys and
3272passwords in the GNOME keyring.")
3273 (license license:gpl2+)))
3274
5a659a48
SB
3275(define-public vala
3276 (package
3277 (name "vala")
b92a36db 3278 (version "0.46.5")
5a659a48
SB
3279 (source (origin
3280 (method url-fetch)
3281 (uri (string-append "mirror://gnome/sources/" name "/"
3282 (version-major+minor version) "/"
3283 name "-" version ".tar.xz"))
3284 (sha256
3285 (base32
b92a36db 3286 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3287 (build-system gnu-build-system)
1ea90625
SB
3288 (arguments
3289 '(#:phases
3290 (modify-phases %standard-phases
f4925a4f 3291 (add-before 'check 'pre-check
1ea90625
SB
3292 (lambda _
3293 (setenv "CC" "gcc")
8839b6be
RW
3294 (substitute* "valadoc/tests/testrunner.sh"
3295 (("export PKG_CONFIG_PATH=" m)
3296 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3297 ;; For missing '/etc/machine-id'.
3298 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3299 #t)))))
5a659a48
SB
3300 (native-inputs
3301 `(("pkg-config" ,pkg-config)
3302 ("flex" ,flex)
3303 ("bison" ,bison)
3304 ("xsltproc" ,libxslt)
3305 ("dbus" ,dbus) ; for dbus tests
3306 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3307 (inputs
3308 `(("graphviz" ,graphviz)))
5a659a48 3309 (propagated-inputs
8839b6be 3310 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3311 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3312 (synopsis "Compiler for the GObject type system")
3313 (description
3314 "Vala is a programming language that aims to bring modern programming
3315language features to GNOME developers without imposing any additional runtime
3316requirements and without using a different ABI compared to applications and
3317libraries written in C.")
3318 (license license:lgpl2.1+)))
ea57378f 3319
2dcaa760
RP
3320(define-public vala-0.48
3321 (package
3322 (inherit vala)
3323 (version "0.48.6")
3324 (source (origin
3325 (method url-fetch)
3326 (uri (string-append "mirror://gnome/sources/vala/"
3327 (version-major+minor version) "/"
3328 "vala-" version ".tar.xz"))
3329 (sha256
3330 (base32
3331 "01wppzgacdmp8dgf8047myz1any2yffmrhgl8kqf1q0c0gnhi3fi"))))))
3332
ea57378f
SB
3333(define-public vte
3334 (package
3335 (name "vte")
663def11 3336 (version "0.60.2")
ea57378f
SB
3337 (source (origin
3338 (method url-fetch)
ac87ffb8 3339 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3340 (version-major+minor version) "/"
ac87ffb8 3341 "vte-" version ".tar.xz"))
ea57378f
SB
3342 (sha256
3343 (base32
663def11 3344 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
68c47474 3345 (build-system meson-build-system)
663def11
RPG
3346 (arguments
3347 `(#:configure-flags
11491e1b
DM
3348 '("-Dvapi=true"
3349 "-D_systemd=false")))
ea57378f
SB
3350 (native-inputs
3351 `(("pkg-config" ,pkg-config)
4684580a 3352 ("gettext" ,gettext-minimal)
ea57378f
SB
3353 ("vala" ,vala)
3354 ("gobject-introspection" ,gobject-introspection)
68c47474 3355 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3356 ("gperf" ,gperf)
ea57378f
SB
3357 ("xmllint" ,libxml2)))
3358 (propagated-inputs
68c47474
TGR
3359 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3360 ("gnutls" ,gnutls) ; ditto
3361 ("pcre2" ,pcre2))) ; ditto
f032d0be 3362 (home-page "https://www.gnome.org/")
ea57378f
SB
3363 (synopsis "Virtual Terminal Emulator")
3364 (description
3365 "VTE is a library (libvte) implementing a terminal emulator widget for
3366GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3367gnome-terminal, but can also be used to embed a console/terminal in games,
3368editors, IDEs, etc.")
3369 (license license:lgpl2.1+)))
3370
c44fb4df
MO
3371(define-public vte-ng
3372 (package
3373 (inherit vte)
3374 (name "vte-ng")
24f4fcbe 3375 (version "0.58.2.a")
afd90f8d 3376 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3377 (source (origin
3378 (method git-fetch)
3379 (uri (git-reference (url home-page) (commit version)))
3380 (file-name (git-file-name name version))
3381 (sha256
3382 (base32
24f4fcbe
MB
3383 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3384 (build-system meson-build-system)
c44fb4df
MO
3385 (native-inputs
3386 `(("gtk-doc" ,gtk-doc)
c44fb4df 3387 ,@(package-native-inputs vte)))
c44fb4df 3388 (arguments
24f4fcbe 3389 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3390 (synopsis "Enhanced VTE terminal widget")
3391 (description
3392 "VTE is a library (libvte) implementing a terminal emulator widget for
3393GTK+, this fork provides additional functions exposed for keyboard text
3394selection and URL hints.")))
3395
2776d72c
EF
3396;; provides vte 2.90, required for some terminal emulators
3397;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3398;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3399;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3400;; pantheon-terminal, roxterm are not currently packaged
3401(define-public vte-0.36
3402 (package (inherit vte)
3403 (name "vte")
3404 (version "0.36.5")
3405 (source (origin
3406 (method url-fetch)
3407 (uri (string-append "mirror://gnome/sources/" name "/"
3408 (version-major+minor version) "/"
3409 name "-" version ".tar.xz"))
3410 (sha256
3411 (base32
3412 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3413 (propagated-inputs
3414 `(("gtk" ,gtk+)
3415 ("ncurses" ,ncurses)))))
3416
ea57378f
SB
3417;; stable version for gtk2, required by xfce4-terminal.
3418(define-public vte/gtk+-2
3419 (package (inherit vte)
3420 (name "vte")
3421 (version "0.28.2")
3422 (source (origin
3423 (method url-fetch)
3424 (uri (string-append "mirror://gnome/sources/" name "/"
3425 (version-major+minor version) "/"
3426 name "-" version ".tar.xz"))
3427 (sha256
3428 (base32
7d48938a
EF
3429 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3430 (patches (search-patches
3431 "vte-CVE-2012-2738-pt1.patch"
3432 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3433 (build-system gnu-build-system)
ea57378f
SB
3434 (arguments
3435 '(#:configure-flags '("--disable-python")))
3436 (native-inputs
3437 `(("pkg-config" ,pkg-config)
3438 ("intltool" ,intltool)
3439 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3440 (propagated-inputs
3441 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3442 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3443
cce0da5e
TD
3444(define-public vinagre
3445 (package
3446 (name "vinagre")
3447 (version "3.22.0")
3448 (source (origin
3449 (method url-fetch)
3450 (uri (string-append "mirror://gnome/sources/" name "/"
3451 (version-major+minor version) "/"
3452 name "-" version ".tar.xz"))
684f97f8
EF
3453 (patches (search-patches "vinagre-newer-freerdp.patch"
3454 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3455 (sha256
3456 (base32
3457 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3458 (build-system glib-or-gtk-build-system)
684f97f8 3459 (arguments
7f486d25
MC
3460 ;; Disable -Werror and such, to avoid build failures on compilation
3461 ;; warnings.
3462 '(#:configure-flags '("--enable-compile-warnings=minimum")
3463 #:phases
684f97f8 3464 (modify-phases %standard-phases
1839768c
EF
3465 (add-before 'install 'skip-gtk-update-icon-cache
3466 (lambda _
3467 ;; Don't create 'icon-theme.cache'
3468 (substitute* (find-files "." "^Makefile$")
3469 (("gtk-update-icon-cache") (which "true")))
3470 #t))
684f97f8
EF
3471 (add-after 'unpack 'patch-configure
3472 (lambda _
3473 (substitute* "configure"
3474 (("freerdp") "freerdp2"))
3475 #t)))))
cce0da5e
TD
3476 (native-inputs
3477 `(("pkg-config" ,pkg-config)
3478 ("intltool" ,intltool)
3479 ("itstool" ,itstool)
1839768c 3480 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3481 (inputs
3482 `(("libxml2" ,libxml2)
3483 ("gtk-vnc" ,gtk-vnc)
3484 ("gnome-keyring" ,gnome-keyring)
3485 ("libsecret" ,libsecret)
3486 ("freerdp" ,freerdp)
3487 ("spice" ,spice)
3488 ("spice-gtk" ,spice-gtk)
3489 ("telepathy-glib" ,telepathy-glib)
3490 ("vte" ,vte)))
cce0da5e
TD
3491 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3492 (synopsis "Remote desktop viewer for GNOME")
3493 (description "Vinagre is a remote display client supporting the VNC, SPICE
3494and RDP protocols.")
3495 (license license:gpl3+)))
3496
b47e1b20
FB
3497(define-public dconf
3498 (package
3499 (name "dconf")
7f4d075d 3500 (version "0.34.0")
b47e1b20
FB
3501 (source (origin
3502 (method url-fetch)
3503 (uri (string-append
2e6ecc5c 3504 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3505 (version-major+minor version) "/"
3506 name "-" version ".tar.xz"))
46c3a08b 3507 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3508 (sha256
f05c809f 3509 (base32
7f4d075d 3510 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 3511 (build-system meson-build-system)
bc036f4c
MB
3512 (propagated-inputs
3513 ;; In Requires of dconf.pc.
3514 `(("glib" ,glib)))
b47e1b20
FB
3515 (inputs
3516 `(("gtk+" ,gtk+)
bc036f4c 3517 ("dbus" ,dbus)))
b47e1b20 3518 (native-inputs
1e33331c
MB
3519 `(("bash-completion" ,bash-completion)
3520 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3521 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3522 ("docbook-xml" ,docbook-xml-4.2)
3523 ("docbook-xsl" ,docbook-xsl)
35fa923d 3524 ("glib:bin" ,glib "bin")
03676d6f 3525 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3526 ("pkg-config" ,pkg-config)
3527 ("vala" ,vala)))
b47e1b20
FB
3528 (arguments
3529 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3530 ; or /etc/machine-id.
35fa923d
MB
3531 #:glib-or-gtk? #t
3532 #:configure-flags '("-Denable-gtk-doc=true")))
79d7b527 3533 (home-page "https://developer.gnome.org/dconf/")
b47e1b20
FB
3534 (synopsis "Low-level GNOME configuration system")
3535 (description "Dconf is a low-level configuration system. Its main purpose
3536is to provide a backend to GSettings on platforms that don't already have
3537configuration storage systems.")
e20e6b40 3538 (license license:lgpl2.1+)))
109da1c0
AE
3539
3540(define-public json-glib
3541 (package
3542 (name "json-glib")
4115e8ea 3543 (version "1.4.4")
109da1c0
AE
3544 (source (origin
3545 (method url-fetch)
3546 (uri (string-append "mirror://gnome/sources/" name "/"
3547 (version-major+minor version) "/"
3548 name "-" version ".tar.xz"))
3549 (sha256
3550 (base32
4115e8ea 3551 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3552 (build-system meson-build-system)
109da1c0 3553 (native-inputs
98afa184
MB
3554 `(("gettext" ,gettext-minimal)
3555 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3556 ("gobject-introspection" ,gobject-introspection)
3557 ("pkg-config" ,pkg-config)))
3558 (propagated-inputs
88c6b580 3559 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3560 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3561 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3562 (description
3563 "JSON-GLib is a C library based on GLib providing serialization and
3564deserialization support for the JavaScript Object Notation (JSON) format
3565described by RFC 4627. It provides parser and generator GObject classes and
3566various wrappers for the complex data types employed by JSON, such as arrays
3567and objects.")
109da1c0 3568 (license license:lgpl2.1+)))
6f96a359
SB
3569
3570(define-public libxklavier
3571 (package
3572 (name "libxklavier")
5f39050b 3573 (version "5.4")
6f96a359 3574 (source (origin
5f39050b 3575 ;; Note: There's no tarball at ftp.gnome.org for this version.
3576 (method git-fetch)
3577 (uri (git-reference
3578 (url "https://anongit.freedesktop.org/git/libxklavier")
3579 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3580 (sha256
3581 (base32
5f39050b 3582 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3583 (file-name (git-file-name name version))))
6f96a359
SB
3584 (build-system gnu-build-system)
3585 (arguments
778d6b52 3586 '(#:configure-flags
6f96a359
SB
3587 (list (string-append "--with-xkb-base="
3588 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3589 "/share/X11/xkb")
3590 "--disable-xmodmap-support")))
6f96a359
SB
3591 (native-inputs
3592 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3593 ("gobject-introspection" ,gobject-introspection)
5f39050b 3594 ("pkg-config" ,pkg-config)
3595 ("gtk-doc" ,gtk-doc)
3596 ("intltool" ,intltool)
3597 ("which" ,which)
3598 ("autoconf" ,autoconf)
3599 ("automake" ,automake)
3600 ("libtool" ,libtool)))
6f96a359
SB
3601 (propagated-inputs
3602 ;; Required by libxklavier.pc.
3603 `(("glib" ,glib)
3604 ("libxml2" ,libxml2)))
3605 (inputs
3606 `(("iso-codes" ,iso-codes)
3607 ("libxi" ,libxi)
3608 ("libxkbfile" ,libxkbfile)
3609 ("xkbcomp" ,xkbcomp)
3610 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3611 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3612 (synopsis "High-level API for X Keyboard Extension")
3613 (description
3614 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3615Extension known as XKB. This library is intended to support XFree86 and other
3616commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3617indicators etc).")
3618 (license license:lgpl2.0+)))
619936a4
LC
3619
3620(define-public python2-rsvg
3621 ;; XXX: This is actually a subset of gnome-python-desktop.
3622 (package
3623 (name "python2-rsvg")
3624 (version "2.32.0")
3625 (source
3626 (origin
3627 (method url-fetch)
3628 (uri (string-append
3629 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3630 version ".tar.bz2"))
3631 (sha256
3632 (base32
3633 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3634 (build-system gnu-build-system)
3635 (native-inputs
3636 `(("pkg-config" ,pkg-config)))
3637 (inputs
3638 `(("python" ,python-2)
3639 ("python2-pygtk" ,python2-pygtk)
3640 ("librsvg" ,librsvg)))
f032d0be 3641 (home-page "https://www.gnome.org")
619936a4
LC
3642 (synopsis "Python bindings to librsvg")
3643 (description
3ad75446 3644 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3645library.")
3646
3647 ;; This is the license of the rsvg bindings. The license of each module
3648 ;; of gnome-python-desktop is given in 'COPYING'.
3649 (license license:lgpl2.1+)))
a31a6d22 3650
f2ca414a
SB
3651(define-public glib-networking
3652 (package
3653 (name "glib-networking")
ea9f74b0 3654 (version "2.62.2")
f2ca414a
SB
3655 (source (origin
3656 (method url-fetch)
3657 (uri (string-append "mirror://gnome/sources/glib-networking/"
3658 (version-major+minor version) "/"
fb8fe1e8 3659 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3660 (sha256
3661 (base32
ea9f74b0 3662 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 3663 (build-system meson-build-system)
f2ca414a 3664 (arguments
0d75c64d 3665 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3666 (native-inputs
3667 `(("pkg-config" ,pkg-config)
3668 ("intltool" ,intltool)))
3669 (inputs
3670 `(("glib" ,glib)
3671 ("gnutls" ,gnutls)
4b8f1313 3672 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3673 (home-page "https://www.gnome.org")
f2ca414a
SB
3674 (synopsis "Network-related GIO modules")
3675 (description
3676 "This package contains various network related extensions for the GIO
3677library.")
3678 (license license:lgpl2.0+)))
3679
ca649680 3680(define-public rest
4510b2da 3681 (package
ca649680 3682 (name "rest")
a4194d16 3683 (version "0.8.1")
4510b2da
SB
3684 (source (origin
3685 (method url-fetch)
3686 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3687 (version-major+minor version) "/"
3688 name "-" version ".tar.xz"))
4510b2da
SB
3689 (sha256
3690 (base32
a4194d16 3691 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3692 (build-system gnu-build-system)
3693 (arguments
3694 '(#:tests? #f ; tests require internet connection
3695 #:configure-flags
3696 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3697 (native-inputs
3698 `(("glib-mkenums" ,glib "bin")
3699 ("gobject-introspection" ,gobject-introspection)
3700 ("pkg-config" ,pkg-config)))
3701 (propagated-inputs
3702 ;; rest-0.7.pc refers to all these.
3703 `(("glib" ,glib)
3704 ("libsoup" ,libsoup)
3705 ("libxml2" ,libxml2)))
24d6cc1d 3706 (home-page "https://www.gtk.org/")
4510b2da
SB
3707 (synopsis "RESTful web api query library")
3708 (description
3709 "This library was designed to make it easier to access web services that
3710claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3711libxml to ease remote use of the RESTful API.")
3712 (license license:lgpl2.1+)))
3713
6e1bb642
SB
3714(define-public libsoup
3715 (package
3716 (name "libsoup")
9a9cd9bc 3717 (version "2.70.0")
6e1bb642
SB
3718 (source (origin
3719 (method url-fetch)
3720 (uri (string-append "mirror://gnome/sources/libsoup/"
3721 (version-major+minor version) "/"
c1b79b36 3722 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3723 (sha256
3724 (base32
9a9cd9bc 3725 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3726 (build-system meson-build-system)
6e1bb642
SB
3727 (outputs '("out" "doc"))
3728 (arguments
2deb146f 3729 `(#:modules ((guix build utils)
eccaa8bf 3730 (guix build meson-build-system)
2deb146f
LC
3731 (ice-9 popen))
3732
f8026a79 3733 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3734 #:phases
3735 (modify-phases %standard-phases
eccaa8bf 3736 (add-after 'unpack 'adjust-tests
26c228f9 3737 (lambda _
eccaa8bf
MB
3738 ;; This test fails due to missing /etc/nsswitch.conf
3739 ;; in the build environment.
26c228f9
LC
3740 (substitute* "tests/socket-test.c"
3741 ((".*/sockets/unconnected.*") ""))
2deb146f 3742
f8026a79
MB
3743 ;; These fail because "subdomain.localhost" does not resolve in
3744 ;; the build environment.
3745 (substitute* "tests/hsts-test.c"
3746 ((".*/hsts/basic.*") "")
3747 ((".*/hsts/subdomains.*") "")
3748 ((".*/hsts/superdomain.*") "")
3749 ((".*/hsts/utf8-address.*") ""))
3750 (substitute* "tests/hsts-db-test.c"
3751 ((".*/hsts-db/subdomains.*") ""))
3752
2deb146f
LC
3753 ;; Generate a self-signed certificate that has "localhost" as its
3754 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3755 ;; 3.5.12, tests such as "ssl-tests" fail:
3756 ;;
3757 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3758 ;;
3759 ;; 'certtool' is interactive so we have to pipe it the answers.
3760 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3761 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3762 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3763 (for-each (lambda (line)
3764 (display line pipe)
3765 (newline pipe))
3766 '("" ;Common name
3767 "" ;UID
3768 "Guix" ;Organizational unit name
3769 "GNU" ;Organization name
3770 "" ;Locality name
3771 "" ;State or province
3772 "" ;Country
3773 "" ;subject's domain component (DC)
3774 "" ;E-mail
3775 "" ;serial number
3776 "-1" ;expiration time
3777 "N" ;belong to authority?
3778 "N" ;web client certificate?
3779 "N" ;IPsec IKE?
3780 "Y" ;web server certificate?
3781 "localhost" ;dnsName of subject
3782 "" ;dnsName of subject (end)
3783 "" ;URI of subject
3784 "127.0.0.1" ;IP address of subject
3785 "" ;signing?
06f5bc4e
MB
3786 "" ;encryption (RSA)?
3787 "" ;data encryption?
2deb146f
LC
3788 "" ;sign OCSP requests?
3789 "" ;sign code?
3790 "" ;time stamping?
3791 "" ;email protection?
3792 "" ;URI of the CRL distribution point
3793 "y" ;above info OK?
3794 ))
3795 (close-pipe pipe))
26c228f9 3796 #t))
eccaa8bf
MB
3797 (add-after 'install 'move-doc
3798 (lambda* (#:key outputs #:allow-other-keys)
3799 (let ((out (assoc-ref outputs "out"))
3800 (doc (assoc-ref outputs "doc")))
3801 (mkdir-p (string-append doc "/share"))
3802 (copy-recursively (string-append out "/share/gtk-doc")
3803 (string-append doc "/share/gtk-doc"))
3804 (delete-file-recursively (string-append out "/share/gtk-doc"))
3805 #t))))))
6e1bb642 3806 (native-inputs
26c228f9 3807 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3808 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3809 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3810 ("intltool" ,intltool)
3811 ("pkg-config" ,pkg-config)
3812 ("python" ,python-wrapper)
fd730590 3813 ("vala" ,vala)
53c41e95 3814 ("php" ,php)
6e1bb642 3815 ("curl" ,curl)
2deb146f 3816 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3817 ("httpd" ,httpd)))
3818 (propagated-inputs
3819 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3820 `(("brotli" ,google-brotli)
3821 ("glib" ,glib)
249846bf 3822 ("libpsl" ,libpsl)
eccaa8bf 3823 ("libxml2" ,libxml2)
f8026a79
MB
3824 ("sqlite" ,sqlite)
3825 ("zlib" ,zlib)))
eccaa8bf
MB
3826 (inputs
3827 `(("glib-networking" ,glib-networking)
3828 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3829 (home-page "https://live.gnome.org/LibSoup/")
3830 (synopsis "GLib-based HTTP Library")
3831 (description
3832 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3833and the GLib main loop, to integrate well with GNOME applications.")
3834 (license license:lgpl2.0+)))
3835
43b6b45e
MC
3836
3837;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3838(define-public libsoup-minimal
3839 (package
3840 (inherit libsoup)
3841 (name "libsoup-minimal")
3842 (outputs (delete "doc" (package-outputs libsoup)))
3843 (arguments
3844 (substitute-keyword-arguments (package-arguments libsoup)
3845 ((#:configure-flags configure-flags)
3846 `(delete "-Dgtk_doc=true" ,configure-flags))
3847 ((#:phases phases)
3848 `(modify-phases ,phases
3849 (delete 'move-doc)))))
3850 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3851
bba229a3
SB
3852(define-public libsecret
3853 (package
3854 (name "libsecret")
b05a2f62 3855 (version "0.20.3")
bba229a3
SB
3856 (source (origin
3857 (method url-fetch)
3858 (uri (string-append
896dcbc7
EF
3859 "mirror://gnome/sources/libsecret/"
3860 (version-major+minor version) "/"
0ada4e29 3861 "libsecret-" version ".tar.xz"))
bba229a3
SB
3862 (sha256
3863 (base32
b05a2f62 3864 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
3865 (build-system gnu-build-system)
3866 (outputs '("out" "doc"))
3867 (arguments
3868 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3869 #:configure-flags
3870 (list (string-append "--with-html-dir="
3871 (assoc-ref %outputs "doc")
3872 "/share/gtk-doc/html"))))
3873 (native-inputs
c06ef010
MB
3874 `(("gettext" ,gettext-minimal)
3875 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3876 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3877 ("pkg-config" ,pkg-config)
3878 ("vala" ,vala)
3879 ("xsltproc" ,libxslt)))
3880 ;; These are needed for the tests.
3881 ;; FIXME: Add gjs once available.
3882 ;("dbus" ,dbus)
3883 ;("python2" ,python-2)
3884 ;("python2-dbus" ,python2-dbus)
3885 ;("python2-pygobject" ,python2-pygobject)
3886 ;("python2-pygobject-2" ,python2-pygobject-2)))
3887 (propagated-inputs
3888 `(("glib" ,glib))) ; required by libsecret-1.pc
3889 (inputs
3890 `(("docbook-xsl" ,docbook-xsl)
3891 ("libgcrypt" ,libgcrypt)
3892 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3893 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3894 (synopsis "GObject bindings for \"Secret Service\" API")
3895 (description
3896 "Libsecret is a GObject based library for storing and retrieving passwords
3897and other secrets. It communicates with the \"Secret Service\" using DBus.")
3898 (license license:lgpl2.1+)))
3899
b6821ee0 3900(define-public five-or-more
3901 (package
3902 (name "five-or-more")
ee75b46f 3903 (version "3.32.2")
b6821ee0 3904 (source
3905 (origin
3906 (method url-fetch)
bf782bfc 3907 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3908 (version-major+minor version) "/"
bf782bfc 3909 "five-or-more-" version ".tar.xz"))
b6821ee0 3910 (sha256
ee75b46f 3911 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
3912 (build-system meson-build-system)
3913 (arguments
3914 '(#:glib-or-gtk? #t
3915 #:phases
3916 (modify-phases %standard-phases
3917 (add-after 'unpack 'skip-gtk-update-icon-cache
3918 (lambda _
3919 (substitute* "meson_post_install.py"
3920 (("gtk-update-icon-cache") (which "true")))
3921 #t)))))
b6821ee0 3922 (native-inputs
3923 `(("pkg-config" ,pkg-config)
d9795e93 3924 ("appstream-glib" ,appstream-glib)
b6821ee0 3925 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3926 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3927 ("intltool" ,intltool)
3928 ("itstool" ,itstool)
d9795e93 3929 ("vala" ,vala)
b6821ee0 3930 ("xmllint" ,libxml2)))
3931 (inputs
3932 `(("gtk+" ,gtk+)
d9795e93 3933 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3934 ("librsvg" ,librsvg)))
3935 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3936 (synopsis "Logic puzzle game")
3937 (description "Five or More is a game where you try to align
3938 five or more objects of the same color and shape causing them to disappear.
3939 On every turn more objects will appear, until the board is full.
3940 Try to last as long as possible.")
3941 (license license:gpl2+)))
3942
a31a6d22
SB
3943(define-public gnome-mines
3944 (package
3945 (name "gnome-mines")
d79e9b1b 3946 (version "3.34.0")
a31a6d22
SB
3947 (source
3948 (origin
3949 (method url-fetch)
3950 (uri (string-append "mirror://gnome/sources/" name "/"
3951 (version-major+minor version) "/"
3952 name "-" version ".tar.xz"))
3953 (sha256
3954 (base32
d79e9b1b 3955 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 3956 (build-system meson-build-system)
a31a6d22 3957 (arguments
2d817e41
KK
3958 '(#:glib-or-gtk? #t
3959 #:phases
a31a6d22 3960 (modify-phases %standard-phases
2d817e41
KK
3961 (add-after 'unpack 'skip-gtk-update-icon-cache
3962 (lambda _
3963 (substitute* "build-aux/meson_post_install.py"
3964 (("gtk-update-icon-cache") (which "true")))
3965 #t)))))
a31a6d22 3966 (native-inputs
8c0fab36
RW
3967 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3968 ("pkg-config" ,pkg-config)
a31a6d22
SB
3969 ("desktop-file-utils" ,desktop-file-utils)
3970 ("intltool" ,intltool)
bcb354ad 3971 ("itstool" ,itstool)
8c0fab36
RW
3972 ("vala" ,vala)
3973 ("yelp" ,yelp)
3974 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3975 (inputs
3976 `(("gtk+" ,gtk+)
73992962 3977 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3978 ("librsvg" ,librsvg)))
3979 (home-page "https://wiki.gnome.org/Apps/Mines")
3980 (synopsis "Minesweeper game")
3981 (description
3982 "Mines (previously gnomine) is a puzzle game where you locate mines
3983floating in an ocean using only your brain and a little bit of luck.")
3984 (license license:gpl2+)))
88f70665 3985
dfc407f3
KY
3986(define-public gnome-sudoku
3987 (package
3988 (name "gnome-sudoku")
857eb190 3989 (version "3.34.1")
dfc407f3
KY
3990 (source
3991 (origin
3992 (method url-fetch)
3993 (uri (string-append "mirror://gnome/sources/" name "/"
3994 (version-major+minor version) "/"
3995 name "-" version ".tar.xz"))
3996 (sha256
3997 (base32
857eb190 3998 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
3999 (build-system meson-build-system)
4000 (arguments
4001 '(#:glib-or-gtk? #t
4002 #:phases
4003 (modify-phases %standard-phases
4004 (add-after 'unpack 'skip-gtk-update-icon-cache
4005 (lambda _
4006 (substitute* "build-aux/post_install.py"
4007 (("gtk-update-icon-cache") (which "true")))
4008 #t)))))
dfc407f3
KY
4009 (native-inputs
4010 `(("pkg-config" ,pkg-config)
4011 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 4012 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
4013 ("intltool" ,intltool)
4014 ("itstool" ,itstool)
7dc728c4 4015 ("vala" ,vala)
dfc407f3
KY
4016 ("xmllint" ,libxml2)))
4017 (inputs
4018 `(("gtk+" ,gtk+)
4019 ("json-glib" ,json-glib)
4020 ("libgee" ,libgee)
4021 ("librsvg" ,librsvg)
4022 ("qqwing" ,qqwing)))
4023 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4024 (synopsis "Japanese logic game")
4025 (description
4026 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4027GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4028possible while still providing features that make playing difficult Sudoku
4029more fun.")
4030 (license license:gpl2+)))
4031
88f70665
AW
4032(define-public gnome-terminal
4033 (package
4034 (name "gnome-terminal")
80f6f9d8 4035 (version "3.34.2")
88f70665
AW
4036 (source
4037 (origin
4038 (method url-fetch)
4039 (uri (string-append "mirror://gnome/sources/" name "/"
4040 (version-major+minor version) "/"
4041 name "-" version ".tar.xz"))
4042 (sha256
4043 (base32
80f6f9d8 4044 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
4045 (build-system glib-or-gtk-build-system)
4046 (arguments
4047 '(#:configure-flags
4048 (list "--disable-migration" "--disable-search-provider"
4049 "--without-nautilus-extension")
4050 #:phases
4051 (modify-phases %standard-phases
3a4de6b2 4052 (add-before 'configure 'patch-/bin/true
88f70665
AW
4053 (lambda _
4054 (substitute* "configure"
4055 (("/bin/true") (which "true"))))))))
4056 (native-inputs
4057 `(("pkg-config" ,pkg-config)
4058 ("desktop-file-utils" ,desktop-file-utils)
4059 ("intltool" ,intltool)
bcb354ad
SB
4060 ("itstool" ,itstool)
4061 ("xmllint" ,libxml2)))
68702167
MW
4062 (propagated-inputs
4063 `(("dconf" ,dconf)))
88f70665
AW
4064 (inputs
4065 `(("gtk+" ,gtk+)
4066 ("vte" ,vte)
4067 ("gnutls" ,gnutls)
88f70665 4068 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 4069 ("util-linux" ,util-linux "lib")
88f70665
AW
4070 ("vala" ,vala)))
4071 (home-page "https://wiki.gnome.org/Apps/Terminal")
4072 (synopsis "Terminal emulator")
4073 (description
4074 "GNOME Terminal is a terminal emulator application for accessing a
4075UNIX shell environment which can be used to run programs available on
4076your system.
4077
4078It supports several profiles, multiple tabs and implements several
4079keyboard shortcuts.")
4080 (license license:gpl3+)))
75016d07
AW
4081
4082(define-public colord
4083 (package
4084 (name "colord")
f98be942 4085 (version "1.4.4")
75016d07
AW
4086 (source
4087 (origin
4088 (method url-fetch)
5cc3096c 4089 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4090 "colord-" version ".tar.xz"))
75016d07 4091 (sha256
f98be942 4092 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4093 (build-system meson-build-system)
75016d07 4094 (arguments
a68544a8
RW
4095 '(;; FIXME: One test fails:
4096 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4097 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4098 ;; application/x-zerosize
75016d07 4099 #:tests? #f
a68544a8
RW
4100 #:glib-or-gtk? #t
4101 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4102 ;; No dep on systemd.
a68544a8 4103 "-Dsystemd=false"
75016d07
AW
4104 ;; Wants to install to global completion dir;
4105 ;; punt.
a68544a8 4106 "-Dbash_completion=false"
a68544a8
RW
4107 "-Ddaemon_user=colord"
4108 "-Dsane=true"
dac26e22 4109 "-Dvapi=true"
6f20e2dc 4110 ;; Requires spotread.
a68544a8 4111 "-Dargyllcms_sensor=false"
6f20e2dc 4112 ;; TODO: Requires docbook2x.
a68544a8 4113 "-Dman=false")
75016d07
AW
4114 #:phases
4115 (modify-phases %standard-phases
a68544a8
RW
4116 (add-before 'configure 'patch-build-system
4117 (lambda* (#:key outputs #:allow-other-keys)
4118 (substitute* "rules/meson.build"
4119 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4120 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4121 #t))
4122 (add-before 'configure 'set-sqlite3-file-name
4123 (lambda* (#:key inputs #:allow-other-keys)
4124 ;; "colormgr dump" works by invoking the "sqlite3" command.
4125 ;; Record its absolute file name.
4126 (let ((sqlite (assoc-ref inputs "sqlite")))
4127 (substitute* "client/cd-util.c"
4128 (("\"sqlite3\"")
4129 (string-append "\"" sqlite "/bin/sqlite3\"")))
4130 #t))))))
75016d07 4131 (native-inputs
6f20e2dc 4132 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4133 ("gettext" ,gettext-minimal)
75016d07 4134 ("gobject-introspection" ,gobject-introspection)
a68544a8 4135 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4136 ("pkg-config" ,pkg-config)
4137 ("vala" ,vala)))
65cb2d61
SB
4138 (propagated-inputs
4139 ;; colord.pc refers to all these.
4140 `(("glib" ,glib)
6f20e2dc
TGR
4141 ("lcms" ,lcms)
4142 ("udev" ,eudev)))
75016d07 4143 (inputs
65cb2d61 4144 `(("dbus-glib" ,dbus-glib)
a68544a8 4145 ("gusb" ,gusb)
80c7dd1a 4146 ("libgudev" ,libgudev)
75016d07 4147 ("libusb" ,libusb)
75016d07 4148 ("polkit" ,polkit)
a68544a8 4149 ("python" ,python-wrapper)
6f20e2dc 4150 ("sqlite" ,sqlite)
4c928743 4151 ("sane-backends" ,sane-backends)))
57e7d748 4152 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4153 (synopsis "Color management service")
4154 (description "Colord is a system service that makes it easy to manage,
4155install and generate color profiles to accurately color manage input and
4156output devices.")
4157 (license license:gpl2+)))
7b2abd00
AW
4158
4159(define-public geoclue
4160 (package
4161 (name "geoclue")
2bf0a5cb 4162 (version "2.5.6")
7b2abd00
AW
4163 (source
4164 (origin
4165 (method url-fetch)
50e96d25
MB
4166 (uri
4167 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4168 version "/geoclue-" version ".tar.bz2"))
7b2abd00 4169 (sha256
2bf0a5cb 4170 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
fc1adab1 4171 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4172 (build-system meson-build-system)
7b2abd00 4173 (arguments
50e96d25 4174 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4175 (native-inputs
4176 `(("pkg-config" ,pkg-config)
758798a9 4177 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4178 ("modem-manager" ,modem-manager)
4179 ("libnotify" ,libnotify)
4180 ("gtk-doc", gtk-doc)
7b2abd00
AW
4181 ("intltool" ,intltool)))
4182 (inputs
54e911bc 4183 `(("avahi" ,avahi)
50e96d25
MB
4184 ("glib:bin" ,glib "bin")
4185 ("glib-networking" ,glib-networking)
7b2abd00
AW
4186 ("json-glib" ,json-glib)
4187 ("libsoup" ,libsoup)))
50e96d25 4188 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4189 (synopsis "Geolocation service")
4190 (description "Geoclue is a D-Bus service that provides location
4191information. The primary goal of the Geoclue project is to make creating
4192location-aware applications as simple as possible, while the secondary goal is
4193to ensure that no application can access location information without explicit
e881752c 4194permission from user.")
7b2abd00 4195 (license license:gpl2+)))
2bfe7437
AW
4196
4197(define-public geocode-glib
4198 (package
4199 (name "geocode-glib")
65de725f 4200 (version "3.26.1")
2bfe7437
AW
4201 (source (origin
4202 (method url-fetch)
4203 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4204 (version-major+minor version) "/"
d485cdc0 4205 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4206 (sha256
4207 (base32
65de725f 4208 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4209 (build-system meson-build-system)
2bfe7437 4210 (arguments
a7dd0c02
RW
4211 `(#:phases
4212 (modify-phases %standard-phases
4213 ;; The tests require a bunch of locales.
4214 (add-before 'check 'set-locales
4215 (lambda* (#:key inputs #:allow-other-keys)
4216 (setenv "GUIX_LOCPATH"
4217 (string-append (assoc-ref inputs "glibc-locales")
4218 "/lib/locale"))
4219 #t)))))
2bfe7437
AW
4220 (native-inputs
4221 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4222 ("glibc-locales" ,glibc-locales) ; for tests
4223 ("gettext" ,gettext-minimal)
2bfe7437 4224 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4225 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4226 ("pkg-config" ,pkg-config)
4227 ("json-glib" ,json-glib)))
4228 (propagated-inputs
4229 ;; geocode-glib-1.0.pc refers to GIO.
4230 `(("glib" ,glib)))
4231 (inputs
4232 `(("libsoup" ,libsoup)))
4233 (home-page "https://github.com/GNOME/geocode-glib/")
4234 (synopsis "Geocoding and reverse-geocoding library")
4235 (description
4236 "geocode-glib is a convenience library for geocoding (finding longitude,
4237and latitude from an address) and reverse geocoding (finding an address from
4238coordinates) using the Nominatim service. geocode-glib caches requests for
4239faster results and to avoid unnecessary server load.")
4240 (license license:lgpl2.0+)))
a1d5bb0e
AW
4241
4242(define-public upower
4243 (package
4244 (name "upower")
df45af90 4245 (version "0.99.11")
a1d5bb0e
AW
4246 (source (origin
4247 (method url-fetch)
df45af90 4248 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4249 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4250 (sha256
4251 (base32
df45af90 4252 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4253 (patches (search-patches "upower-builddir.patch"))
4254 (modules '((guix build utils)))
4255 (snippet
4256 '(begin
4257 ;; Upstream commit
4258 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4259 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4260 ;; 'dbus-configuration-directory' in (gnu services dbus)
4261 ;; expects it in etc/. Thus, move it back to its previous
4262 ;; location.
4263 (substitute* "src/Makefile.in"
4264 (("^dbusconfdir =.*$")
4265 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4266 #t))))
a1d5bb0e
AW
4267 (build-system glib-or-gtk-build-system)
4268 (arguments
6039031a
BW
4269 '(#:phases
4270 (modify-phases %standard-phases
4271 (add-before 'check 'pre-check
4272 (lambda* (#:key inputs #:allow-other-keys)
4273 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4274 "/lib")))
4275 (setenv "LD_LIBRARY_PATH" umockdev))
4276 #t)))
a1d5bb0e
AW
4277 #:configure-flags (list "--localstatedir=/var"
4278 (string-append "--with-udevrulesdir="
4279 (assoc-ref %outputs "out")
9ec54965 4280 "/lib/udev/rules.d"))))
a1d5bb0e 4281 (native-inputs
ebeabe2d
SB
4282 `(("gobject-introspection" ,gobject-introspection)
4283 ("pkg-config" ,pkg-config)
a1d5bb0e 4284 ("intltool" ,intltool)
55409295
LC
4285 ("python" ,python)
4286
6039031a
BW
4287 ;; For tests.
4288 ("python-dbus" ,python-dbus)
4289 ("python-dbusmock" ,python-dbusmock)
4290 ("python-pygobject" ,python-pygobject)
4291 ("umockdev" ,umockdev)
4292
55409295
LC
4293 ;; For man pages.
4294 ("libxslt" ,libxslt) ;for 'xsltproc'
4295 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4296 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4297 (inputs
ea226291
SB
4298 `(("dbus-glib" ,dbus-glib)
4299 ("libgudev" ,libgudev)
a1d5bb0e 4300 ("libusb" ,libusb)))
d7a503fc
MB
4301 (propagated-inputs
4302 ;; In Requires of upower-glib.pc.
4303 `(("glib" ,glib)))
57e7d748 4304 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4305 (synopsis "System daemon for managing power devices")
4306 (description
4307 "UPower is an abstraction for enumerating power devices,
4308listening to device events and querying history and statistics. Any
4309application or service on the system can access the org.freedesktop.UPower
4310service via the system message bus.")
4311 (license license:gpl2+)))
6a180f6f
AW
4312
4313(define-public libgweather
4314 (package
4315 (name "libgweather")
462d3416 4316 (version "3.34.0")
6a180f6f
AW
4317 (source (origin
4318 (method url-fetch)
4319 (uri (string-append "mirror://gnome/sources/" name "/"
4320 (version-major+minor version) "/"
4321 name "-" version ".tar.xz"))
4322 (sha256
4323 (base32
462d3416 4324 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 4325 (build-system meson-build-system)
6a180f6f 4326 (arguments
cf6cbc34
RW
4327 `(#:tests? #f ; one of two tests requires network access
4328 #:configure-flags
4329 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4330 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4331 "/share/zoneinfo"))))
6a180f6f
AW
4332 (native-inputs
4333 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4334 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4335 ("pkg-config" ,pkg-config)
1d3fcf94 4336 ("vala" ,vala)
6a180f6f
AW
4337 ("intltool" ,intltool)))
4338 (propagated-inputs
4339 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4340 ;; libsoup.
4341 `(("gtk+" ,gtk+)
4342 ("gdk-pixbuf" ,gdk-pixbuf)
4343 ("libxml2" ,libxml2)
cf6cbc34 4344 ("libsoup" ,libsoup)
6a180f6f 4345 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4346 (inputs
4347 `(("tzdata" ,tzdata)))
6a180f6f
AW
4348 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4349 (synopsis "Location, time zone, and weather library for GNOME")
4350 (description
4351 "libgweather is a library to access weather information from online
4352services for numerous locations.")
4353 (license license:gpl2+)))
23a22af6
AW
4354
4355(define-public gnome-settings-daemon
4356 (package
4357 (name "gnome-settings-daemon")
20154759 4358 (version "3.34.1")
23a22af6
AW
4359 (source
4360 (origin
4361 (method url-fetch)
4362 (uri (string-append "mirror://gnome/sources/" name "/"
4363 (version-major+minor version) "/"
4364 name "-" version ".tar.xz"))
4365 (sha256
4366 (base32
20154759 4367 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 4368 (build-system meson-build-system)
23a22af6 4369 (arguments
e644f9fa
RW
4370 `(#:glib-or-gtk? #t
4371 #:configure-flags
4372 (list (string-append "-Dudev_dir="
4373 (assoc-ref %outputs "out")
4d0e085b 4374 "/lib/udev/rules.d/")
20154759 4375 "-Dsystemd=false"
4d0e085b
RW
4376 ;; Otherwise, the RUNPATH will lack the final path component.
4377 (string-append "-Dc_link_args=-Wl,-rpath="
4378 (assoc-ref %outputs "out")
4379 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4380 ;; Color management test can't reach the colord system service.
23a22af6
AW
4381 #:tests? #f))
4382 (native-inputs
e644f9fa
RW
4383 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4384 ("pkg-config" ,pkg-config)
23a22af6
AW
4385 ("intltool" ,intltool)
4386 ("xsltproc" ,libxslt)
4387 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4388 ("docbook-xml" ,docbook-xml-4.2)
4389 ("docbook-xsl" ,docbook-xsl)))
4390 (inputs
e644f9fa
RW
4391 `(("alsa-lib" ,alsa-lib)
4392 ("colord" ,colord)
ea226291 4393 ("libgudev" ,libgudev)
23a22af6
AW
4394 ("upower" ,upower)
4395 ("polkit" ,polkit)
4396 ("pulseaudio" ,pulseaudio)
4397 ("libcanberra" ,libcanberra)
4398 ("libx11" ,libx11)
4399 ("libxtst" ,libxtst)
4400 ("lcms" ,lcms)
4401 ("libnotify" ,libnotify)
4402 ("geoclue" ,geoclue)
4403 ("geocode-glib" ,geocode-glib)
4404 ("libgweather" ,libgweather)
4405 ("gnome-desktop" ,gnome-desktop)
4406 ("nss" ,nss)
4407 ("cups" ,cups)
ec2b1921
AW
4408 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4409 ("libwacom" ,libwacom)
4410 ("librsvg" ,librsvg)
eee7878f 4411 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4412 ("wayland" ,wayland)
20154759
KK
4413 ("network-manager" ,network-manager)
4414 ("gcr" ,gcr)
4415 ("modem-manager" ,modem-manager)))
f032d0be 4416 (home-page "https://www.gnome.org")
23a22af6
AW
4417 (synopsis "GNOME settings daemon")
4418 (description
4419 "This package contains the daemon responsible for setting the various
4420parameters of a GNOME session and the applications that run under it. It
4421handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4422settings, themes, mouse settings, and startup of other daemons.")
4423 (license license:gpl2+)))
1e7464a9
DH
4424
4425(define-public totem-pl-parser
4426 (package
4427 (name "totem-pl-parser")
77425f04 4428 (version "3.26.3")
1e7464a9
DH
4429 (source (origin
4430 (method url-fetch)
e980cbe9
MW
4431 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4432 (version-major+minor version) "/"
1e7464a9
DH
4433 "totem-pl-parser-" version ".tar.xz"))
4434 (sha256
4435 (base32
77425f04 4436 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4437 (build-system meson-build-system)
1e7464a9
DH
4438 (arguments
4439 ;; FIXME: Tests require gvfs.
4440 `(#:tests? #f))
4441 (native-inputs
4442 `(("intltool" ,intltool)
4443 ("glib" ,glib "bin")
4d6d8281 4444 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4445 ("pkg-config" ,pkg-config)))
22a6ad6a 4446 (propagated-inputs
1e7464a9
DH
4447 `(("glib" ,glib)
4448 ("gmime" ,gmime)
1e9b19dd
RW
4449 ("libarchive" ,libarchive)
4450 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4451 ("libxml2" ,libxml2)))
4452 (inputs
0a6e9e13 4453 `(("libsoup" ,libsoup)))
1e7464a9
DH
4454 (home-page "https://projects.gnome.org/totem")
4455 (synopsis "Library to parse and save media playlists for GNOME")
4456 (description "Totem-pl-parser is a GObjects-based library to parse and save
4457playlists in a variety of formats.")
4458 (license license:lgpl2.0+)))
4459
6b888eff
SB
4460(define-public aisleriot
4461 (package
4462 (name "aisleriot")
36ed9b46 4463 (version "3.22.9")
6b888eff
SB
4464 (source (origin
4465 (method url-fetch)
e43f622a 4466 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4467 (version-major+minor version) "/"
e43f622a 4468 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4469 (sha256
4470 (base32
36ed9b46 4471 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4472 (build-system glib-or-gtk-build-system)
4473 (arguments
4474 '(#:configure-flags
4475 '("--with-platform=gtk-only"
4476 "--with-card-theme-formats=svg")))
4477 (native-inputs
4478 `(("desktop-file-utils" ,desktop-file-utils)
4479 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4480 ("intltool" ,intltool)
4481 ("itstool" ,itstool)
4482 ("pkg-config" ,pkg-config)
4483 ("xmllint" ,libxml2)))
4484 (inputs
4485 `(("gtk+" ,gtk+)
226e57d6 4486 ("guile" ,guile-2.2)
6b888eff
SB
4487 ("libcanberra" ,libcanberra)
4488 ("librsvg" ,librsvg)))
4489 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4490 (synopsis "Solitaire card games")
4491 (description
4492 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4493which are easy to play with the aid of a mouse.")
4494 (license license:gpl3+)))
4a79e256 4495
f828d05b
KK
4496(define-public amtk
4497 (package
4498 (name "amtk")
0e08ca14 4499 (version "5.0.2")
f828d05b
KK
4500 (source (origin
4501 (method url-fetch)
bf92ba6b 4502 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4503 (version-major+minor version) "/"
bf92ba6b 4504 "amtk-" version ".tar.xz"))
f828d05b
KK
4505 (sha256
4506 (base32
0e08ca14 4507 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4508 (build-system gnu-build-system)
4509 (arguments
4510 '(#:configure-flags '("--enable-gtk-doc")))
4511 (native-inputs
4512 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4513 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4514 ("gtk-doc" ,gtk-doc)
4515 ("pkg-config" ,pkg-config)))
4516 (inputs
4517 `(("glib" ,glib)
4518 ("gtk+" ,gtk+)))
4519 (home-page "https://wiki.gnome.org/Projects/Amtk")
4520 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4521 (description
4522 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4523It is a basic GtkUIManager replacement based on GAction. It is suitable for
4524both a traditional UI or a modern UI with a GtkHeaderBar.")
4525 (license license:lgpl2.1+)))
4526
4a79e256
SB
4527(define-public devhelp
4528 (package
4529 (name "devhelp")
8ae23a1d 4530 (version "3.34.0")
4a79e256
SB
4531 (source (origin
4532 (method url-fetch)
4533 (uri (string-append "mirror://gnome/sources/" name "/"
4534 (version-major+minor version) "/"
4535 name "-" version ".tar.xz"))
4536 (sha256
4537 (base32
8ae23a1d 4538 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 4539 (build-system meson-build-system)
35407f94 4540 (arguments
20db7a3d
KK
4541 '(#:glib-or-gtk? #t
4542 #:phases
35407f94
EF
4543 (modify-phases %standard-phases
4544 (add-after 'unpack 'skip-gtk-update-icon-cache
4545 ;; Don't create 'icon-theme.cache'.
4546 (lambda _
4547 (substitute* "meson_post_install.py"
4548 (("gtk-update-icon-cache") "true"))
4549 #t)))))
4a79e256
SB
4550 (native-inputs
4551 `(("intltool" ,intltool)
5dd12afc 4552 ("itstool" ,itstool)
11d28bd9
KK
4553 ("gobject-introspection" ,gobject-introspection)
4554 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4555 ("pkg-config" ,pkg-config)))
4556 (inputs
11d28bd9
KK
4557 `(("amtk" ,amtk)
4558 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4559 ("webkitgtk" ,webkitgtk)))
4560 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4561 (synopsis "API documentation browser for GNOME")
4562 (description
4563 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4564natively with GTK-Doc (the API reference system developed for GTK+ and used
4565throughout GNOME for API documentation).")
4566 (license license:gpl2+)))
ba421ab7
MW
4567
4568(define-public cogl
4569 (package
4570 (name "cogl")
c668a880 4571 (version "1.22.8")
ba421ab7
MW
4572 (source
4573 (origin
4574 (method url-fetch)
5754f0cf 4575 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4576 (version-major+minor version) "/"
5754f0cf 4577 "cogl-" version ".tar.xz"))
ba421ab7 4578 (sha256
c668a880 4579 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
a88d5a0c
MW
4580 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4581 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4582 (build-system gnu-build-system)
4583 (native-inputs
4584 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4585 ("gobject-introspection" ,gobject-introspection)
b4f04e0e 4586 ("xorg-server" ,xorg-server-for-tests)
ba421ab7
MW
4587 ("pkg-config" ,pkg-config)))
4588 (propagated-inputs
4589 `(("glib" ,glib)
4590 ("gdk-pixbuf" ,gdk-pixbuf)
4591 ("libx11" ,libx11)
4592 ("libxext" ,libxext)
4593 ("libxfixes" ,libxfixes)
4594 ("libxdamage" ,libxdamage)
4595 ("libxcomposite" ,libxcomposite)
4596 ("libxrandr" ,libxrandr)))
4597 (inputs
4598 `(("mesa" ,mesa)
4599 ("cairo" ,cairo)
4600 ("pango" ,pango)
4601 ("gstreamer" ,gstreamer)
31860852
KK
4602 ("gst-plugins-base" ,gst-plugins-base)
4603 ("wayland" ,wayland)))
ba421ab7 4604 (arguments
b4f04e0e
MB
4605 `(#:disallowed-references (,xorg-server-for-tests)
4606 #:configure-flags (list "--enable-cogl-gst"
31860852
KK
4607 "--enable-wayland-egl-platform"
4608 "--enable-wayland-egl-server"
4609
ba421ab7
MW
4610 ;; Arrange to pass an absolute file name to
4611 ;; dlopen for libGL.so.
4612 (string-append "--with-gl-libname="
4613 (assoc-ref %build-inputs "mesa")
4614 "/lib/libGL.so"))
b4f04e0e 4615 #:phases
ba421ab7 4616 (modify-phases %standard-phases
0c8a51c7
MB
4617 (add-after 'unpack 'fix-build-with-mesa-20
4618 (lambda _
4619 ;; Work around a problem with Mesa 20 where some macros used by
4620 ;; Cogl went missing from eglext.h. This can likely be removed
4621 ;; for newer versions of Cogl or Mesa.
4622 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
4623 (substitute* '("configure"
4624 "cogl/winsys/cogl-winsys-egl-kms.c")
4625 (("#include <EGL/eglext.h>" all)
4626 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
4627 #t))
ba421ab7 4628 (add-before 'check 'start-xorg-server
b4f04e0e
MB
4629 (lambda* (#:key tests? inputs #:allow-other-keys)
4630 (if tests?
4631 (begin
4632 ;; The test suite requires a running X server.
4633 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4634 (assoc-ref inputs "xorg-server")))
4635 (setenv "DISPLAY" ":1")
4636 #t)
4637 (format #t "test suite not run~%"))
ba421ab7 4638 #t)))))
89b49245 4639 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4640 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4641 (description
4642 "Cogl is a small library for using 3D graphics hardware to draw pretty
4643pictures. The API departs from the flat state machine style of OpenGL and is
4644designed to make it easy to write orthogonal components that can render
4645without stepping on each others toes.")
4646 (license (list license:expat ; most of the code
4647 license:bsd-3 ; cogl/cogl-point-in-poly.c
4648 license:sgifreeb2.0 ; cogl-path/tesselator/
4649 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4650
4651(define-public clutter
4652 (package
4653 (name "clutter")
6a88e4ee 4654 (version "1.26.2")
fb182b8a
MW
4655 (source
4656 (origin
4657 (method url-fetch)
4658 (uri (string-append "mirror://gnome/sources/" name "/"
4659 (version-major+minor version) "/"
4660 name "-" version ".tar.xz"))
4661 (sha256
4662 (base32
6a88e4ee 4663 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4664 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4665 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4666 (build-system gnu-build-system)
600233bd
LC
4667 (outputs '("out"
4668 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4669 (native-inputs
4670 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4671 ("gobject-introspection" ,gobject-introspection)
4672 ("pkg-config" ,pkg-config)
4673 ("xsltproc" ,libxslt)))
4674 (propagated-inputs
4675 `(("cogl" ,cogl)
4676 ("cairo" ,cairo)
4677 ("atk" ,atk)
4678 ("gtk+" ,gtk+)
4679 ("json-glib" ,json-glib)
4680 ("glib" ,glib)
4681 ("libxcomposite" ,libxcomposite)
4682 ("libxdamage" ,libxdamage)
4683 ("libxext" ,libxext)
4684 ("xinput" ,xinput)))
4685 (inputs
4686 `(("libxkbcommon" ,libxkbcommon)
4687 ("udev" ,eudev)))
4688 (arguments
600233bd
LC
4689 `(#:configure-flags (list "--enable-x11-backend=yes"
4690
4691 ;; This produces share/doc/{clutter,cally}.
4692 (string-append "--with-html-dir="
4693 (assoc-ref %outputs "doc")
4694 "/share/doc"))
fb182b8a
MW
4695 ;; XXX FIXME: Get test suite working. It would probably fail in the
4696 ;; same way the cogl tests fail, since clutter is based on cogl.
4697 #:tests? #f))
4698 (home-page "http://www.clutter-project.org")
476af713 4699 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4700 (description
476af713 4701 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4702creating fast, mainly 2D single window applications such as media box UIs,
4703presentations, kiosk style applications and so on.")
4704 (license license:lgpl2.0+)))
bf7f17ba
MW
4705
4706(define-public clutter-gtk
4707 (package
4708 (name "clutter-gtk")
5d1a3219 4709 (version "1.8.4")
bf7f17ba
MW
4710 (source
4711 (origin
4712 (method url-fetch)
4713 (uri (string-append "mirror://gnome/sources/" name "/"
4714 (version-major+minor version) "/"
4715 name "-" version ".tar.xz"))
4716 (sha256
4717 (base32
5d1a3219 4718 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4719 (build-system gnu-build-system)
4720 (native-inputs
4721 `(("pkg-config" ,pkg-config)
4722 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4723 (propagated-inputs
4724 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4725 `(("clutter" ,clutter)
4726 ("gtk+" ,gtk+)))
4727 (home-page "http://www.clutter-project.org")
476af713 4728 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4729 (description
476af713 4730 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4731creating fast, mainly 2D single window applications such as media box UIs,
4732presentations, kiosk style applications and so on.")
4733 (license license:lgpl2.0+)))
86d6a893
MW
4734
4735(define-public clutter-gst
4736 (package
4737 (name "clutter-gst")
ba07ac19 4738 (version "3.0.27")
86d6a893
MW
4739 (source
4740 (origin
4741 (method url-fetch)
f010f89b 4742 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4743 (version-major+minor version) "/"
f010f89b 4744 "clutter-gst-" version ".tar.xz"))
86d6a893 4745 (sha256
ba07ac19 4746 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4747 (build-system gnu-build-system)
4748 (native-inputs
ba07ac19 4749 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4750 ("pkg-config" ,pkg-config)
4751 ("gobject-introspection" ,gobject-introspection)))
4752 (inputs
4753 `(("clutter" ,clutter)
4754 ("gstreamer" ,gstreamer)
4755 ("gst-plugins-base" ,gst-plugins-base)))
4756 (home-page "http://www.clutter-project.org")
4757 (synopsis "Integration library for using GStreamer with Clutter")
4758 (description
4759 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4760It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4761implements the ClutterGstPlayer interface using playbin. Clutter is an
4762OpenGL-based interactive canvas library.")
86d6a893 4763 (license license:lgpl2.0+)))
607a04ae 4764
30dc88d9
LC
4765(define-public libchamplain
4766 (package
4767 (name "libchamplain")
5564b2c5 4768 (version "0.12.16")
30dc88d9
LC
4769 (source (origin
4770 (method url-fetch)
4771 (uri (string-append
4772 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4773 version ".tar.xz"))
4774 (sha256
4775 (base32
5564b2c5 4776 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4777 (build-system gnu-build-system)
f7c6833f
LF
4778 (arguments '(#:configure-flags '("--enable-vala")))
4779 (native-inputs
4780 `(("gobject-introspection" ,gobject-introspection)
4781 ("pkg-config" ,pkg-config)
4782 ("vala" ,vala)))
30dc88d9
LC
4783 (propagated-inputs
4784 `(("libsoup" ,libsoup)
4785 ("sqlite" ,sqlite)
4786 ("clutter" ,clutter)
4787 ("clutter-gtk" ,clutter-gtk)
4788 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4789 ("cairo" ,cairo)
4790 ("gtk+3" ,gtk+)
4791 ("glib" ,glib)))
f032d0be 4792 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4793 (synopsis "C library providing a ClutterActor to display maps")
4794 (description
4795 "libchamplain is a C library providing a ClutterActor to display maps.
4796It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4797and Perl bindings are also available. It supports numerous free map sources
4798such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4799 (license license:lgpl2.1+)))
4800
607a04ae
MW
4801(define-public gom
4802 (package
4803 (name "gom")
0510440b 4804 (version "0.3.2")
607a04ae
MW
4805 (source
4806 (origin
4807 (method url-fetch)
6c8a0b6f 4808 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4809 (version-major+minor version) "/"
6c8a0b6f 4810 "gom-" version ".tar.xz"))
607a04ae
MW
4811 (sha256
4812 (base32
0510440b 4813 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4814 (build-system gnu-build-system)
4815 (native-inputs
4816 `(("intltool" ,intltool)
4817 ("pkg-config" ,pkg-config)
4818 ("gobject-introspection" ,gobject-introspection)))
4819 (inputs
4820 `(("glib" ,glib)
4821 ("gdk-pixbuf" ,gdk-pixbuf)
4822 ("sqlite" ,sqlite)))
4823 ;; XXX TODO: Figure out how to run the test suite.
4824 (arguments `(#:tests? #f))
4825 (home-page "https://wiki.gnome.org/Projects/Gom")
4826 (synopsis "Object mapper from GObjects to SQLite")
4827 (description
4828 "Gom provides an object mapper from GObjects to SQLite. It helps you
4829write applications that need to store structured data as well as make complex
4830queries upon that data.")
4831 (license license:lgpl2.1+)))
b7a3cf11 4832
865aacc9 4833(define-public libgnome-games-support
f09520db 4834 (package
865aacc9 4835 (name "libgnome-games-support")
4c6d15cf 4836 (version "1.4.4")
f09520db
SB
4837 (source (origin
4838 (method url-fetch)
2d8dca9d 4839 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4840 (version-major+minor version) "/"
2d8dca9d 4841 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4842 (sha256
4843 (base32
4c6d15cf 4844 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4845 (build-system gnu-build-system)
4846 (arguments
4847 '(#:phases
4848 (modify-phases %standard-phases
4849 (add-before 'check 'pre-check
4850 (lambda _
865aacc9 4851 ;; Tests require a writable HOME.
f09520db
SB
4852 (setenv "HOME" (getcwd))
4853 #t)))))
4854 (native-inputs
4855 `(("intltool" ,intltool)
4856 ("pkg-config" ,pkg-config)
4857 ("vala" ,vala)))
4858 (propagated-inputs
865aacc9 4859 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4860 `(("gtk+" ,gtk+)
4861 ("libgee" ,libgee)))
4862 (home-page "https://www.gnome.org/")
4863 (synopsis "Useful functionality shared among GNOME games")
4864 (description
865aacc9 4865 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4866GNOME Games, but it may be used by others.")
4867 (license license:lgpl3+)))
4868
b7a3cf11
SB
4869(define-public gnome-klotski
4870 (package
4871 (name "gnome-klotski")
18364fbc 4872 (version "3.34.0")
b7a3cf11
SB
4873 (source (origin
4874 (method url-fetch)
4875 (uri (string-append "mirror://gnome/sources/" name "/"
4876 (version-major+minor version) "/"
4877 name "-" version ".tar.xz"))
4878 (sha256
4879 (base32
18364fbc 4880 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
4881 (build-system meson-build-system)
4882 (arguments
4883 '(#:glib-or-gtk? #t
4884 #:phases
4885 (modify-phases %standard-phases
4886 (add-after 'unpack 'skip-gtk-update-icon-cache
4887 ;; Don't create 'icon-theme.cache'.
4888 (lambda _
4889 (substitute* "build-aux/meson_post_install.py"
4890 (("gtk-update-icon-cache") (which "true")))
4891 #t)))))
b7a3cf11
SB
4892 (native-inputs
4893 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4894 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4895 ("intltool" ,intltool)
4896 ("itstool" ,itstool)
bcb354ad 4897 ("pkg-config" ,pkg-config)
c1e419c4 4898 ("vala" ,vala)
bcb354ad 4899 ("xmllint" ,libxml2)))
b7a3cf11
SB
4900 (inputs
4901 `(("gtk+" ,gtk+)
f4eae76f 4902 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4903 ("librsvg" ,librsvg)))
4904 (home-page "https://wiki.gnome.org/Apps/Klotski")
4905 (synopsis "Sliding block puzzles")
4906 (description
4907 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4908the patterned block to the area bordered by green markers. To do so, you will
4909need to slide other blocks out of the way. Complete each puzzle in as few moves
4910as possible!")
4911 (license license:gpl2+)))
8d4791bf
MW
4912
4913(define-public grilo
4914 (package
4915 (name "grilo")
a865e938 4916 (version "0.3.10")
8d4791bf
MW
4917 (source
4918 (origin
4919 (method url-fetch)
4920 (uri (string-append "mirror://gnome/sources/" name "/"
4921 (version-major+minor version) "/"
4922 name "-" version ".tar.xz"))
4923 (sha256
4924 (base32
a865e938 4925 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4926 (build-system meson-build-system)
8d4791bf
MW
4927 (native-inputs
4928 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4929 ("intltool" ,intltool)
4930 ("pkg-config" ,pkg-config)
d48d4c98
KK
4931 ("gobject-introspection" ,gobject-introspection)
4932 ("gtk-doc" ,gtk-doc)
4933 ("vala" ,vala)))
8d4791bf 4934 (inputs
6d7273a0
KK
4935 `(("cyrus-sasl" ,cyrus-sasl)
4936 ("glib" ,glib)
8d4791bf
MW
4937 ("gtk+" ,gtk+)
4938 ("libxml2" ,libxml2)
6d7273a0 4939 ("liboauth" ,liboauth)
8d4791bf
MW
4940 ("libsoup" ,libsoup)
4941 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4942 (native-search-paths
4943 (list (search-path-specification
4944 (variable "GRL_PLUGIN_PATH")
4945 (files (list (string-append "lib/grilo-"
4946 (version-major+minor version)))))))
d48d4c98 4947 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4948 (synopsis "Framework for discovering and browsing media")
4949 (description
4950 "Grilo is a framework focused on making media discovery and browsing easy
4951for application developers.")
4952 (license license:lgpl2.1+)))
7b212526
MW
4953
4954(define-public grilo-plugins
4955 (package
4956 (name "grilo-plugins")
281f6b3a 4957 (version "0.3.10")
7b212526
MW
4958 (source
4959 (origin
4960 (method url-fetch)
4961 (uri (string-append "mirror://gnome/sources/" name "/"
4962 (version-major+minor version) "/"
4963 name "-" version ".tar.xz"))
4964 (sha256
4965 (base32
281f6b3a
RG
4966 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4967 (build-system meson-build-system)
7b212526 4968 (native-inputs
281f6b3a
RG
4969 `(("gettext" ,gettext-minimal)
4970 ("glib:bin" ,glib "bin")
4971 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4972 ("itstool" ,itstool)
4973 ("pkg-config" ,pkg-config)))
281f6b3a 4974 ;; TODO: ahavi, gstreamer
7b212526
MW
4975 (inputs
4976 `(("grilo" ,grilo)
281f6b3a
RG
4977 ;("gmime" ,gmime) ; unused
4978 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4979 ("gom" ,gom)
281f6b3a
RG
4980 ;("gssdp" ,gssdp) ; unused
4981 ;("gupnp" ,gupnp) ; unused
4982 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4983 ("json-glib" ,json-glib)
4984 ("avahi" ,avahi)
281f6b3a
RG
4985 ("libgdata" ,libgdata)
4986 ("libmediaart" ,libmediaart)
4987 ;("librest" ,rest) ; unused
7b212526 4988 ("libsoup" ,libsoup)
281f6b3a
RG
4989 ("totam-pl-parser" ,totem-pl-parser)
4990 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4991 (arguments
281f6b3a
RG
4992 `(#:glib-or-gtk? #t
4993 ;;Disable lua-factory as it needs missing dependencies
4994 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4995 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4996 (synopsis "Plugins for the Grilo media discovery library")
4997 (description
4998 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4999for application developers. This package provides plugins for common media
5000discovery protocols.")
7b212526 5001 (license license:lgpl2.1+)))
4e3fc547
MW
5002
5003(define-public totem
5004 (package
5005 (name "totem")
961dc62d 5006 (version "3.34.1")
4e3fc547
MW
5007 (source
5008 (origin
5009 (method url-fetch)
2a9761b1 5010 (uri (string-append "mirror://gnome/sources/totem/"
4e3fc547 5011 (version-major+minor version) "/"
2a9761b1 5012 "totem-" version ".tar.xz"))
4e3fc547
MW
5013 (sha256
5014 (base32
961dc62d 5015 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 5016 (build-system meson-build-system)
4e3fc547
MW
5017 (native-inputs
5018 `(("pkg-config" ,pkg-config)
5019 ("desktop-file-utils" ,desktop-file-utils)
5020 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 5021 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 5022 ("intltool" ,intltool)
bcb354ad 5023 ("itstool" ,itstool)
995ef5ea 5024 ("xmllint" ,libxml2)
995ef5ea 5025 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
5026 (propagated-inputs
5027 `(("dconf" ,dconf)))
5028 (inputs
5029 `(("gtk+" ,gtk+)
5030 ("gdk-pixbuf" ,gdk-pixbuf)
5031 ("atk" ,atk)
5032 ("cairo" ,cairo)
5033 ("dbus-glib" ,dbus-glib)
5034 ("clutter" ,clutter)
5035 ("clutter-gtk" ,clutter-gtk)
5036 ("clutter-gst" ,clutter-gst)
6a6db57f 5037 ("xorgproto" ,xorgproto)
4e3fc547
MW
5038 ("libxxf86vm" ,libxxf86vm)
5039 ("libxtst" ,libxtst)
5040 ("libxrandr" ,libxrandr)
5041 ("libxml2" ,libxml2)
5042 ("libsoup" ,libsoup)
5043 ("libpeas" ,libpeas)
5044 ("librsvg" ,librsvg)
5045 ("lirc" ,lirc)
5046 ("gnome-desktop" ,gnome-desktop)
5047 ("gstreamer" ,gstreamer)
5048 ("gst-plugins-base" ,gst-plugins-base)
5049 ("gst-plugins-good" ,gst-plugins-good)
5050 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5051 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 5052 ("python" ,python)
995ef5ea 5053 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
5054 ("totem-pl-parser" ,totem-pl-parser)
5055 ("grilo" ,grilo)
5056 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
5057 ("vala" ,vala)))
5058 (arguments
7ad81b8b
LC
5059 `(#:glib-or-gtk? #t
5060
5061 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 5062 ;; all that.
7ad81b8b 5063 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
5064
5065 ;; Do not build .a files for the plugins, it's
5066 ;; completely useless. This saves 2 MiB.
7ad81b8b 5067 "--default-library" "shared")
ec5c24f9 5068 #:phases
4e3fc547 5069 (modify-phases %standard-phases
d51b19ad
EF
5070 (add-after 'unpack 'skip-gtk-update-icon-cache
5071 ;; Don't create 'icon-theme.cache'.
5072 (lambda _
5073 (substitute* "meson_post_install.py"
5074 (("gtk-update-icon-cache") "true"))
5075 #t))
6368eb39
DM
5076 (add-before
5077 'install 'disable-cache-generation
5078 (lambda _
5079 (setenv "DESTDIR" "/")
5080 #t))
995ef5ea
KK
5081 (add-before
5082 'check 'pre-check
5083 (lambda _
5084 ;; Tests require a running X server.
5085 (system "Xvfb :1 &")
5086 (setenv "DISPLAY" ":1")
5087 #t))
4e3fc547
MW
5088 (add-after
5089 'install 'wrap-totem
5090 (lambda* (#:key inputs outputs #:allow-other-keys)
5091 (let ((out (assoc-ref outputs "out"))
5092 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5093 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5094 (wrap-program (string-append out "/bin/totem")
5095 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
5096 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5097 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5098 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
5099 #t)))))
5100 (home-page "https://wiki.gnome.org/Apps/Videos")
5101 (synopsis "Simple media player for GNOME based on GStreamer")
5102 (description "Totem is a simple yet featureful media player for GNOME
5103which can read a large number of file formats.")
5104 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5105 ;; to be used and distributed together with GStreamer and Totem. See
5106 ;; file://COPYING in the source distribution for details.
5107 (license license:gpl2+)))
f0afb0c8
DH
5108
5109(define-public rhythmbox
5110 (package
5111 (name "rhythmbox")
eda580c0 5112 (version "3.4.4")
f0afb0c8
DH
5113 (source (origin
5114 (method url-fetch)
2588693d 5115 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 5116 (version-major+minor version) "/"
2588693d 5117 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
5118 (sha256
5119 (base32
eda580c0 5120 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
5121 (build-system glib-or-gtk-build-system)
5122 (arguments
5123 `(#:configure-flags
5124 (list "--enable-lirc"
5125 "--enable-python"
5126 "--enable-vala"
5127 "--with-brasero"
5128 "--with-gudev"
5129 "--with-libsecret")
5130 #:phases
5131 (modify-phases %standard-phases
5132 (add-after
5133 'install 'wrap-rhythmbox
5134 (lambda* (#:key inputs outputs #:allow-other-keys)
5135 (let ((out (assoc-ref outputs "out"))
5136 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5137 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5138 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5139 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5140 (wrap-program (string-append out "/bin/rhythmbox")
5141 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5142 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5143 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5144 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5145 #t)))))
5146 (propagated-inputs
5147 `(("dconf" ,dconf)))
5148 (native-inputs
bcb354ad
SB
5149 `(("itstool" ,itstool)
5150 ("intltool" ,intltool)
f0afb0c8
DH
5151 ("glib" ,glib "bin")
5152 ("gobject-introspection" ,gobject-introspection)
5153 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5154 ("pkg-config" ,pkg-config)
5155 ("xmllint" ,libxml2)))
f0afb0c8
DH
5156 (inputs
5157 `(("json-glib" ,json-glib)
5158 ("tdb" ,tdb)
5159 ("gnome-desktop" ,gnome-desktop)
5160 ("python" ,python)
5161 ("python-pygobject" ,python2-pygobject)
5162 ("vala" ,vala)
5163 ("gmime" ,gmime)
f0afb0c8
DH
5164 ("adwaita-icon-theme" ,adwaita-icon-theme)
5165 ("grilo" ,grilo)
5166 ("grilo-plugins" ,grilo-plugins)
5167 ("gstreamer" ,gstreamer)
5168 ("gst-plugins-base" ,gst-plugins-base)
5169 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5170 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5171 ("libgudev" ,libgudev)
f0afb0c8
DH
5172 ;;("libmtp" ,libmtp) FIXME: Not detected
5173 ("libsecret" ,libsecret)
5174 ("libsoup" ,libsoup)
5175 ("libnotify" ,libnotify)
5176 ("libpeas" ,libpeas)
5177 ("lirc" ,lirc)
5178 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5179 ;;("clutter" ,clutter)
5180 ;;("clutter-gtk" ,clutter-gtk)
5181 ;;("clutter-gst" ,clutter-gst)
5182 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5183 ("atk" ,atk)
5184 ("pango" ,pango)
5185 ("gtk+" ,gtk+)
5186 ;; TODO:
5187 ;; * libgpod
5188 ;; * mx
f0afb0c8
DH
5189 ("brasero" ,brasero)))
5190 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5191 (synopsis "Music player for GNOME")
5192 (description "Rhythmbox is a music playing application for GNOME. It
5193supports playlists, song ratings, and any codecs installed through gstreamer.")
5194 (license license:gpl2+)))
f70d8383
DH
5195
5196(define-public eog
5197 (package
5198 (name "eog")
0c9031fa 5199 (version "3.34.1")
f70d8383
DH
5200 (source (origin
5201 (method url-fetch)
5202 (uri (string-append "mirror://gnome/sources/" name "/"
5203 (version-major+minor version) "/"
5204 name "-" version ".tar.xz"))
5205 (sha256
5206 (base32
0c9031fa 5207 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5208 (build-system meson-build-system)
f70d8383 5209 (arguments
34c44a34
RW
5210 `(#:configure-flags
5211 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5212 (list (string-append "-Dc_link_args=-Wl,-rpath="
5213 (assoc-ref %outputs "out") "/lib/eog"))
5214 #:phases
f70d8383 5215 (modify-phases %standard-phases
7a034665
EF
5216 (add-after 'unpack 'skip-gtk-update-icon-cache
5217 ;; Don't create 'icon-theme.cache'.
5218 (lambda _
5219 (substitute* "meson_post_install.py"
5220 (("gtk-update-icon-cache") "true"))
5221 #t))
61fb581f
RW
5222 (add-after 'install 'wrap-eog
5223 (lambda* (#:key outputs #:allow-other-keys)
5224 (let ((out (assoc-ref outputs "out"))
5225 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5226 (wrap-program (string-append out "/bin/eog")
5227 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5228 #t)))))
f70d8383
DH
5229 (propagated-inputs
5230 `(("dconf" ,dconf)))
5231 (native-inputs
5232 `(("intltool" ,intltool)
b3546174 5233 ("itstool" ,itstool)
f70d8383
DH
5234 ("glib" ,glib "bin")
5235 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5236 ("pkg-config" ,pkg-config)
5237 ("xmllint" ,libxml2)))
f70d8383
DH
5238 (inputs
5239 `(("gnome-desktop" ,gnome-desktop)
5240 ("shared-mime-info" ,shared-mime-info)
5241 ("adwaita-icon-theme" ,adwaita-icon-theme)
5242 ("exempi" ,exempi)
5243 ("lcms" ,lcms)
5244 ("libexif" ,libexif)
5245 ("libpeas" ,libpeas)
4bd428a7 5246 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5247 ("librsvg" ,librsvg-next)
f70d8383
DH
5248 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5249 ("gtk+" ,gtk+)))
5250 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5251 (synopsis "GNOME image viewer")
5252 (description "Eye of GNOME is the GNOME image viewer. It
5253supports image conversion, rotation, and slideshows.")
5254 (license license:gpl2+)))
41af5e7b 5255
0c3f8cb8
LC
5256(define-public eog-plugins
5257 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5258 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5259 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5260 ;; 'XDG_DATA_DIRS' appropriately set.
5261 (package
5262 (name "eog-plugins")
54b74cc6 5263 (version "3.26.4")
0c3f8cb8
LC
5264 (source (origin
5265 (method url-fetch)
f3b88ed2 5266 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5267 (version-major+minor version) "/"
f3b88ed2 5268 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5269 (sha256
5270 (base32
54b74cc6 5271 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5272 (build-system gnu-build-system)
5273 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5274 (synopsis "Extensions for the Eye of GNOME image viewer")
5275 (native-inputs
5276 `(("pkg-config" ,pkg-config)
f2d97d57 5277 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5278 (inputs
5279 `(("eog" ,eog)
5280 ("glib" ,glib)
5281 ("gtk+" ,gtk+)
5282 ("libpeas" ,libpeas)
5283 ("libexif" ,libexif)
5284 ("libchamplain" ,libchamplain)))
5285 (description
5286 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5287notably:
5288
5289@itemize
5290@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5291@item @dfn{Map}, which displays a map of where the picture was taken on the
5292side panel;
5293@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5294@end itemize\n")
5295
5296 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5297 ;; long suspicious byte stream that goes to a
5298 ;; ".gresource.eog_postasa_plugin" ELF section.
5299 (license license:gpl2+)))
5300
41af5e7b
SB
5301(define-public libgudev
5302 (package
5303 (name "libgudev")
b78f5118 5304 (version "232")
41af5e7b
SB
5305 (source (origin
5306 (method url-fetch)
5307 (uri (string-append "mirror://gnome/sources/" name "/"
5308 version "/" name "-" version ".tar.xz"))
5309 (sha256
5310 (base32
b78f5118 5311 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5312 (build-system gnu-build-system)
b78f5118
RW
5313 (arguments
5314 '(#:configure-flags
5315 ;; umockdev depends on libgudev.
5316 (list "--disable-umockdev")))
41af5e7b
SB
5317 (native-inputs
5318 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5319 ("gobject-introspection" ,gobject-introspection)
5320 ("pkg-config" ,pkg-config)))
5321 (propagated-inputs
5322 `(("glib" ,glib))) ; required by gudev-1.0.pc
5323 (inputs
5324 `(("udev" ,eudev)))
5325 (home-page "https://wiki.gnome.org/Projects/libgudev")
5326 (synopsis "GObject bindings for libudev")
5327 (description
5328 "This library provides GObject bindings for libudev. It was originally
5329part of udev-extras, then udev, then systemd. It's now a project on its own.")
5330 (license license:lgpl2.1+)))
3dc8828f
SB
5331
5332(define-public gvfs
5333 (package
5334 (name "gvfs")
12fe4846 5335 (version "1.40.1")
3dc8828f
SB
5336 (source (origin
5337 (method url-fetch)
1d68eb32 5338 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5339 (version-major+minor version) "/"
1d68eb32 5340 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5341 (sha256
5342 (base32
12fe4846 5343 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5344 (build-system meson-build-system)
3dc8828f 5345 (arguments
e762d943
RW
5346 '(#:glib-or-gtk? #t
5347 #:configure-flags
5348 (list "-Dsystemduserunitdir=no"
5349 "-Dtmpfilesdir=no"
5350 ;; Otherwise, the RUNPATH will lack the final path component.
5351 (string-append "-Dc_link_args=-Wl,-rpath="
5352 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5353 (native-inputs
5354 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5355 ("gettext" ,gettext-minimal)
5356 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5357 ("pkg-config" ,pkg-config)
5358 ("xsltproc" ,libxslt)))
5359 (inputs
5360 `(("avahi" ,avahi)
5361 ("docbook-xml" ,docbook-xml-4.2)
5362 ("docbook-xsl" ,docbook-xsl)
5363 ("dbus" ,dbus)
e762d943 5364 ("elogind" ,elogind)
3dc8828f 5365 ("fuse" ,fuse)
24a78aa6 5366 ("gcr" ,gcr)
3dc8828f 5367 ("glib" ,glib)
e762d943 5368 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5369 ("libarchive" ,libarchive)
5370 ("libbluray" ,libbluray)
8852ca24 5371 ("libcap" ,libcap)
3dc8828f
SB
5372 ("libcdio-paranoia" ,libcdio-paranoia)
5373 ("libgcrypt" ,libgcrypt)
e762d943 5374 ("libgdata" ,libgdata)
3dc8828f
SB
5375 ("libgphoto2" ,libgphoto2)
5376 ("libgudev" ,libgudev)
0ab9f949 5377 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5378 ("libmtp" ,libmtp)
e762d943 5379 ("libnfs" ,libnfs)
3dc8828f
SB
5380 ("libsecret" ,libsecret)
5381 ("libsmbclient" ,samba)
5382 ("libsoup" ,libsoup)
5383 ("libxml2" ,libxml2)
e762d943 5384 ("openssh" ,openssh)
8852ca24 5385 ("polkit" ,polkit)
3dc8828f
SB
5386 ("udisks" ,udisks)))
5387 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5388 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5389 (description
8f65585b 5390 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5391abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5392to all applications using the GIO API. It also supports exposing the GVFS
5393mounts to non-GIO applications using FUSE.
5394
5395GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5396DAV, and others.")
5397 (license license:lgpl2.0+)))
7c88b6bd
AW
5398
5399(define-public gusb
5400 (package
5401 (name "gusb")
536b3274 5402 (version "0.3.0")
7c88b6bd 5403 (source (origin
bbfb36f9
EF
5404 (method git-fetch)
5405 (uri (git-reference
5406 (url "https://github.com/hughsie/libgusb.git")
5407 (commit version)))
5408 (file-name (git-file-name name version))
7c88b6bd
AW
5409 (sha256
5410 (base32
bbfb36f9 5411 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5412 (build-system meson-build-system)
7c88b6bd 5413 (native-inputs
536b3274 5414 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5415 ("pkg-config" ,pkg-config)
5416 ("vala" ,vala)
7c88b6bd
AW
5417 ("gtk-doc" ,gtk-doc)))
5418 (propagated-inputs
5419 ;; Both of these are required by gusb.pc.
5420 `(("glib" ,glib)
5421 ("libusb" ,libusb)))
5422 (arguments
536b3274 5423 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5424 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5425 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5426 (description
5427 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5428asynchronous control, bulk and interrupt transfers with proper cancellation
5429and integration into a mainloop. This makes it easy to integrate low level
5430USB transfers with your high-level application or system daemon.")
5431 (license license:lgpl2.1+)))
0abe1d86
AW
5432
5433(define-public simple-scan
5434 (package
5435 (name "simple-scan")
3f352df0 5436 (version "3.36.3")
d9f6d587
TGR
5437 (source
5438 (origin
5439 (method url-fetch)
5440 (uri (string-append "mirror://gnome/sources/simple-scan/"
5441 (version-major+minor version) "/"
5442 "simple-scan-" version ".tar.xz"))
5443 (sha256
3f352df0 5444 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
d9f6d587
TGR
5445 (build-system meson-build-system)
5446 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5447 (arguments
5448 '(#:glib-or-gtk? #t))
0abe1d86
AW
5449 (inputs
5450 `(("gtk" ,gtk+)
5451 ("zlib" ,zlib)
5452 ("cairo" ,cairo)
c501f592 5453 ("colord" ,colord)
0abe1d86
AW
5454 ("gdk-pixbuf" ,gdk-pixbuf)
5455 ("gusb" ,gusb)
4c928743 5456 ("libsane" ,sane-backends)))
0abe1d86 5457 (native-inputs
b94a6ca0 5458 `(("gettext" ,gettext-minimal)
0abe1d86 5459 ("itstool" ,itstool)
c501f592 5460 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5461 ("pkg-config" ,pkg-config)
bcb354ad
SB
5462 ("vala" ,vala)
5463 ("xmllint" ,libxml2)))
dff0eedb 5464 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5465 (synopsis "Document and image scanner")
d9f6d587
TGR
5466 (description
5467 "Document Scanner is an easy-to-use application that lets you connect your
5468scanner and quickly capture images and documents in an appropriate format. It
5469supports any scanner for which a suitable SANE driver is available, which is
5470almost all of them.")
0abe1d86 5471 (license license:gpl3+)))
7549f984 5472
ab466d79
RW
5473(define-public eolie
5474 (package
5475 (name "eolie")
ed783404 5476 (version "0.9.98.1")
ab466d79
RW
5477 (source (origin
5478 (method url-fetch)
ed783404
RW
5479 (uri (string-append "https://adishatz.org/eolie/eolie-"
5480 version ".tar.xz"))
ab466d79
RW
5481 (sha256
5482 (base32
ed783404 5483 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5484 (build-system meson-build-system)
ab466d79 5485 (arguments
00014781
RW
5486 `(#:glib-or-gtk? #t
5487 #:phases
ab466d79 5488 (modify-phases %standard-phases
f0c68100
EF
5489 (add-after 'unpack 'skip-gtk-update-icon-cache
5490 ;; Don't create 'icon-theme.cache'.
5491 (lambda _
5492 (substitute* "meson_post_install.py"
5493 (("gtk-update-icon-cache") "true"))
5494 #t))
ab466d79
RW
5495 (add-after 'wrap 'wrap-more
5496 (lambda* (#:key inputs outputs #:allow-other-keys)
5497 (let* ((out (assoc-ref outputs "out"))
5498 ;; These libraries must be on LD_LIBRARY_PATH.
5499 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5500 "atk" "gtk+" "gsettings-desktop-schemas"
5501 "gobject-introspection"))
5502 (path (string-join
5503 (map (lambda (lib)
5504 (string-append (assoc-ref inputs lib) "/lib"))
5505 libs)
5506 ":")))
5507 (wrap-program (string-append out "/bin/eolie")
5508 `("LD_LIBRARY_PATH" ":" prefix (,path))
5509 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5510 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5511 #t)))))
5512 (native-inputs
f85ca6ed 5513 `(("intltool" ,intltool)
ab466d79 5514 ("itstool" ,itstool)
d95f1041 5515 ("pkg-config" ,pkg-config)
d95f1041 5516 ("python" ,python)
f0c68100 5517 ("glib:bin" ,glib "bin")))
ab466d79
RW
5518 (inputs
5519 `(("gobject-introspection" ,gobject-introspection)
5520 ("glib-networking" ,glib-networking)
5521 ("cairo" ,cairo)
5522 ("gtk+" ,gtk+)
5523 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5524 ("python" ,python-wrapper)
d72f76df 5525 ("python-dateutil" ,python-dateutil)
00014781 5526 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5527 ("python-pygobject" ,python-pygobject)
5528 ("python-pycairo" ,python-pycairo)
00014781 5529 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5530 ("libsecret" ,libsecret)
5531 ("gtkspell3" ,gtkspell3)
5532 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5533 ("webkitgtk" ,webkitgtk)))
166b2c97 5534 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5535 (synopsis "Web browser for GNOME")
5536 (description
5537 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5538a secret password store, an adblocker, and a modern UI.")
5539 (license license:gpl3+)))
5540
7549f984
SB
5541(define-public epiphany
5542 (package
5543 (name "epiphany")
68fdd237 5544 (version "3.34.4")
7549f984
SB
5545 (source (origin
5546 (method url-fetch)
dd3266ec 5547 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5548 (version-major+minor version) "/"
dd3266ec 5549 "epiphany-" version ".tar.xz"))
7549f984
SB
5550 (sha256
5551 (base32
68fdd237 5552 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
5553
5554 (build-system meson-build-system)
7549f984 5555 (arguments
20710b91 5556 '(#:glib-or-gtk? #t
bb7ff88f
EF
5557 #:phases
5558 (modify-phases %standard-phases
5559 (add-after 'unpack 'skip-gtk-update-icon-cache
5560 ;; Don't create 'icon-theme.cache'.
5561 (lambda _
5562 (substitute* "post_install.py"
5563 (("gtk-update-icon-cache") "true"))
20710b91
LP
5564 #t))
5565 (add-after 'unpack 'disable-failing-tests
5566 (lambda _
5567 (substitute* "tests/meson.build"
5568 ;; embed_shell fails, because webkitgtk apparently no longer supports
5569 ;; overriding the ftp schema
5570 ;; web_app_utils fails due to missing network access
5571 (("(embed_shell|web_app_utils)_test,")
5572 "find_program('sh'), args: ['-c', 'exit 77'],"))
5573 #t))
5574 (add-before 'check 'pre-check
5575 (lambda _
5576 ;; Tests require a running X server.
5577 (system "Xvfb :1 &")
5578 (setenv "DISPLAY" ":1")
bb7ff88f 5579 #t)))
e19f9c24
LF
5580 #:configure-flags
5581 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5582 (list (string-append "-Dc_link_args=-Wl,-rpath="
5583 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5584 (propagated-inputs
5585 `(("dconf" ,dconf)))
7549f984 5586 (native-inputs
fc5c5b92
R
5587 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5588 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5589 ("intltool" ,intltool)
7549f984 5590 ("itstool" ,itstool)
bcb354ad 5591 ("pkg-config" ,pkg-config)
20710b91
LP
5592 ("xmllint" ,libxml2)
5593 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
5594 (inputs
5595 `(("avahi" ,avahi)
5596 ("gcr" ,gcr)
fc5c5b92 5597 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5598 ("glib-networking" ,glib-networking)
5599 ("gnome-desktop" ,gnome-desktop)
5600 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5601 ("json-glib" ,json-glib)
7549f984 5602 ("iso-codes" ,iso-codes)
8748e29c 5603 ("libdazzle" ,libdazzle)
7549f984
SB
5604 ("libnotify" ,libnotify)
5605 ("libsecret" ,libsecret)
7549f984 5606 ("libxslt" ,libxslt)
fc5c5b92 5607 ("nettle" ,nettle) ; for hogweed
7549f984 5608 ("sqlite" ,sqlite)
f85ca6ed 5609 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5610 (home-page "https://wiki.gnome.org/Apps/Web")
5611 (synopsis "GNOME web browser")
5612 (description
5613 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5614principles are simplicity and standards compliance.")
5615 (license license:gpl2+)))
a3856b2c
SB
5616
5617(define-public d-feet
5618 (package
5619 (name "d-feet")
458e9221 5620 (version "0.3.14")
a3856b2c
SB
5621 (source (origin
5622 (method url-fetch)
5623 (uri (string-append "mirror://gnome/sources/" name "/"
5624 (version-major+minor version) "/"
5625 name "-" version ".tar.xz"))
5626 (sha256
5627 (base32
458e9221 5628 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5629 (build-system glib-or-gtk-build-system)
5630 (arguments
5631 '(#:out-of-source? #f ; tests need to run in the source directory.
5632 #:phases
5633 (modify-phases %standard-phases
5634 (add-before
5635 'check 'pre-check
86aff791 5636 (lambda _
a3856b2c
SB
5637 ;; The test suite requires a running X server.
5638 (system "Xvfb :1 &")
5639 (setenv "DISPLAY" ":1")
5640 ;; Don't fail on missing '/etc/machine-id'.
5641 (setenv "DBUS_FATAL_WARNINGS" "0")
5642 ;; tests.py and window.py don't meet E402:
5643 ;; E402 module level import not at top of file
5644 (substitute* "src/tests/Makefile"
86aff791
MW
5645 (("--ignore=E123") "--ignore=E123,E402"))
5646 #t))
a3856b2c
SB
5647 (add-after
5648 'install 'wrap-program
5649 (lambda* (#:key outputs #:allow-other-keys)
5650 (let ((prog (string-append (assoc-ref outputs "out")
5651 "/bin/d-feet")))
5652 (wrap-program prog
5653 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5654 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5655 #t))))))
a3856b2c
SB
5656 (native-inputs
5657 `(("intltool" ,intltool)
5658 ("itstool" ,itstool)
5659 ("pkg-config" ,pkg-config)
5660 ("python-pep8" ,python-pep8)
5661 ("xmllint" ,libxml2)
ff337525 5662 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5663 (inputs
5664 `(("gobject-introspection" ,gobject-introspection)
5665 ("gtk+" ,gtk+)
5666 ("python" ,python-wrapper)
458e9221 5667 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5668 ("python-pygobject" ,python-pygobject)))
5669 (home-page "https://wiki.gnome.org/Apps/DFeet")
5670 (synopsis "D-Bus debugger")
5671 (description
5672 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5673of running programs and invoke methods on those interfaces.")
5674 (license license:gpl2+)))
c3b97bd9
SB
5675
5676(define-public yelp-xsl
5677 (package
5678 (name "yelp-xsl")
632a9b32 5679 (version "3.34.2")
c3b97bd9
SB
5680 (source (origin
5681 (method url-fetch)
5682 (uri (string-append "mirror://gnome/sources/" name "/"
5683 (version-major+minor version) "/"
5684 name "-" version ".tar.xz"))
5685 (sha256
5686 (base32
632a9b32 5687 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5688 (build-system gnu-build-system)
5689 (native-inputs
632a9b32 5690 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5691 ("itstool" ,itstool)
5692 ("xmllint" ,libxml2)))
5693 (home-page "https://wiki.gnome.org/Apps/Yelp")
5694 (synopsis "XSL stylesheets for Yelp")
5695 (description
5696 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5697to format Docbook and Mallard documents.")
5698 (license license:gpl2+)))
de3d612a
SB
5699
5700(define-public yelp
5701 (package
5702 (name "yelp")
1f1b6d60 5703 (version "3.32.2")
de3d612a
SB
5704 (source (origin
5705 (method url-fetch)
5706 (uri (string-append "mirror://gnome/sources/" name "/"
5707 (version-major+minor version) "/"
5708 name "-" version ".tar.xz"))
5709 (sha256
5710 (base32
1f1b6d60 5711 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5712 (build-system glib-or-gtk-build-system)
5713 (native-inputs
5714 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5715 ("intltool" ,intltool)
5716 ("itstool" ,itstool)
5717 ("pkg-config" ,pkg-config)))
5718 (propagated-inputs
5719 `(("dconf" ,dconf)))
5720 (inputs
ad1b7d8b
SB
5721 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5722 ("libxslt" ,libxslt)
de3d612a 5723 ("sqlite" ,sqlite)
4c28ca1d
SB
5724 ("webkitgtk" ,webkitgtk)
5725 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5726 (home-page "https://wiki.gnome.org/Apps/Yelp")
5727 (synopsis "GNOME help browser")
5728 (description
5729 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5730man, info, and HTML documents. It can locate documents according to the
5731freedesktop.org help system specification.")
5732 (license license:gpl2+)))
122d0d10
SB
5733
5734(define-public yelp-tools
5735 (package
5736 (name "yelp-tools")
8fe8a42a 5737 (version "3.32.2")
122d0d10
SB
5738 (source (origin
5739 (method url-fetch)
5740 (uri (string-append "mirror://gnome/sources/" name "/"
5741 (version-major+minor version) "/"
5742 name "-" version ".tar.xz"))
5743 (sha256
5744 (base32
8fe8a42a 5745 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5746 (build-system gnu-build-system)
5747 (native-inputs
5748 `(("pkg-config" ,pkg-config)))
5749 (propagated-inputs
5750 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5751 `(("itstool" ,itstool)
5752 ("xmllint" ,libxml2)
5753 ("xsltproc" ,libxslt)))
5754 (inputs
5755 `(("yelp-xsl" ,yelp-xsl)))
5756 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5757 (synopsis "Yelp documentation tools")
5758 (description
5759 "Yelp-tools is a collection of scripts and build utilities to help create,
5760manage, and publish documentation for Yelp and the web. Most of the heavy
5761lifting is done by packages like yelp-xsl and itstool. This package just
5762wraps things up in a developer-friendly way.")
5763 (license license:gpl2+)))
af8f9f23
RW
5764
5765(define-public libgee
5766 (package
5767 (name "libgee")
9cedae2a 5768 (version "0.20.3")
af8f9f23
RW
5769 (source (origin
5770 (method url-fetch)
84a1b007 5771 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5772 (version-major+minor version) "/"
84a1b007 5773 "libgee-" version ".tar.xz"))
af8f9f23
RW
5774 (sha256
5775 (base32
9cedae2a 5776 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5777 (build-system gnu-build-system)
5778 (arguments
5779 `(#:phases
5780 (modify-phases %standard-phases
5781 (add-after 'unpack 'fix-introspection-install-dir
5782 (lambda* (#:key outputs #:allow-other-keys)
5783 (let ((out (assoc-ref outputs "out")))
5784 (substitute* "gee/Makefile.in"
5785 (("@INTROSPECTION_GIRDIR@")
5786 (string-append out "/share/gir-1.0/"))
5787 (("@INTROSPECTION_TYPELIBDIR@")
5788 (string-append out "/lib/girepository-1.0/")))))))))
5789 (native-inputs
5790 `(("glib" ,glib "bin")
5791 ("pkg-config" ,pkg-config)))
5792 (inputs
5793 `(("glib" ,glib)
5794 ("gobject-introspection" ,gobject-introspection)))
5795 (home-page "https://wiki.gnome.org/Projects/Libgee")
5796 (synopsis "GObject collection library")
5797 (description
5798 "Libgee is a utility library providing GObject-based interfaces and
5799classes for commonly used data structures.")
5800 (license license:lgpl2.1+)))
b0f9c4b8
RW
5801
5802(define-public gexiv2
5803 (package
5804 (name "gexiv2")
b1a8b408 5805 (version "0.12.0")
b0f9c4b8
RW
5806 (source (origin
5807 (method url-fetch)
5808 (uri (string-append "mirror://gnome/sources/" name "/"
5809 (version-major+minor version) "/"
5810 name "-" version ".tar.xz"))
5811 (sha256
5812 (base32
b1a8b408 5813 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5814 (build-system meson-build-system)
b0f9c4b8 5815 (native-inputs
b1a8b408
KK
5816 `(("gcr" ,gcr)
5817 ("glib" ,glib "bin")
5818 ("pkg-config" ,pkg-config)
5819 ("vala" ,vala)))
b0f9c4b8
RW
5820 (propagated-inputs
5821 ;; Listed in "Requires" section of gexiv2.pc
5822 `(("exiv2" ,exiv2)))
5823 (inputs
5824 `(("glib" ,glib)
5825 ("gobject-introspection" ,gobject-introspection)))
5826 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5827 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5828 (description
5829 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5830allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5831metadata in photo and video files of various formats.")
5832 (license license:gpl2+)))
fed5a689
RW
5833
5834(define-public shotwell
5835 (package
5836 (name "shotwell")
b82a45d8 5837 (version "0.30.9")
fed5a689
RW
5838 (source (origin
5839 (method url-fetch)
5497d682 5840 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5841 (version-major+minor version) "/"
5497d682 5842 "shotwell-" version ".tar.xz"))
fed5a689
RW
5843 (sha256
5844 (base32
b82a45d8 5845 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
3b79afa6
KK
5846 (build-system meson-build-system)
5847 (arguments
5a0beca3
EF
5848 '(#:glib-or-gtk? #t
5849 #:phases
5850 (modify-phases %standard-phases
5851 (add-after 'unpack 'skip-gtk-update-icon-cache
5852 (lambda _
5853 (substitute* "build-aux/meson/postinstall.py"
5854 (("gtk-update-icon-cache") (which "true"))
5855 (("update-desktop-database") (which "true")))
5856 #t)))))
735b8db6
TGR
5857 (propagated-inputs
5858 `(("dconf" ,dconf)))
fed5a689 5859 (native-inputs
5a0beca3
EF
5860 `(("gettext" ,gettext-minimal)
5861 ("glib:bin" ,glib "bin")
735b8db6 5862 ("itstool" ,itstool)
3b79afa6 5863 ("pkg-config" ,pkg-config)
735b8db6 5864 ("vala" ,vala)))
fed5a689 5865 (inputs
5a0beca3
EF
5866 `(("gcr" ,gcr)
5867 ("gexiv2" ,gexiv2)
fed5a689 5868 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5869 ("gstreamer" ,gstreamer)
5870 ("json-glib" ,json-glib)
dfb0323d 5871 ("libgdata" ,libgdata)
fed5a689 5872 ("libgee" ,libgee)
5a0beca3
EF
5873 ("libgphoto2" ,libgphoto2)
5874 ("libgudev" ,libgudev)
fed5a689 5875 ("libraw" ,libraw)
fed5a689
RW
5876 ("libsoup" ,libsoup)
5877 ("libxml2" ,libxml2)
5a0beca3
EF
5878 ("sqlite" ,sqlite)
5879 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5880 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5881 (synopsis "Photo manager for GNOME 3")
5882 (description
5883 "Shotwell is a digital photo manager designed for the GNOME desktop
5884environment. It allows you to import photos from disk or camera, organize
5885them by keywords and events, view them in full-window or fullscreen mode, and
5886share them with others via social networking and more.")
5887 (license license:lgpl2.1+)))
293ff8b2
DT
5888
5889(define-public file-roller
5890 (package
5891 (name "file-roller")
dcae4270 5892 (version "3.32.3")
293ff8b2
DT
5893 (source (origin
5894 (method url-fetch)
f89a27c6 5895 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5896 (version-major+minor version) "/"
f89a27c6 5897 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5898 (sha256
5899 (base32
dcae4270 5900 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5901 (build-system meson-build-system)
293ff8b2 5902 (native-inputs
0a500745
RW
5903 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5904 ("intltool" ,intltool)
4c96e5d1 5905 ("itstool" ,itstool)
0a500745
RW
5906 ("pkg-config" ,pkg-config)
5907 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5908 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5909 ;; TODO: Add libnautilus.
5910 (inputs
5911 `(("gtk+" ,gtk+)
5912 ("gdk-pixbuf" ,gdk-pixbuf)
5913 ("json-glib" ,json-glib)
5914 ("libarchive" ,libarchive)
5915 ("libnotify" ,libnotify)
4c96e5d1 5916 ("nettle" ,nettle)
293ff8b2
DT
5917 ("libxml2" ,libxml2)))
5918 (synopsis "Graphical archive manager for GNOME")
5919 (description "File Roller is an archive manager for the GNOME desktop
5920environment that allows users to view, unpack, and create compressed archives
5921such as gzip tarballs.")
5922 (home-page "http://fileroller.sourceforge.net/")
5923 (license license:gpl2+)))
7ce49365
SB
5924
5925(define-public gnome-session
5926 (package
5927 (name "gnome-session")
f67ce006 5928 (version "3.34.2")
7ce49365
SB
5929 (source (origin
5930 (method url-fetch)
5931 (uri (string-append "mirror://gnome/sources/" name "/"
5932 (version-major+minor version) "/"
5933 name "-" version ".tar.xz"))
5934 (sha256
5935 (base32
f67ce006 5936 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 5937 (arguments
df278071
RW
5938 '(#:glib-or-gtk? #t
5939 #:phases
2914af3c
AW
5940 (modify-phases %standard-phases
5941 (add-before 'configure 'pre-configure
5942 (lambda* (#:key outputs #:allow-other-keys)
5943 ;; Use elogind instead of systemd.
df278071
RW
5944 (substitute* "meson.build"
5945 (("libsystemd-login") "libelogind")
5946 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5947 (substitute* "gnome-session/gsm-systemd.c"
5948 (("#include <systemd/sd-login.h>")
5949 "#include <elogind/sd-login.h>"))
df278071 5950 ;; Remove uses of the systemd daemon.
803ab416
SB
5951 (substitute* "gnome-session/gsm-autostart-app.c"
5952 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5953 #t))
5954 (add-after 'install 'wrap-gnome-session
5955 (lambda* (#:key inputs outputs #:allow-other-keys)
5956 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5957 (let ((glib (assoc-ref inputs "glib:bin"))
5958 (out (assoc-ref outputs "out")))
5959 (wrap-program (string-append out "/bin/gnome-session")
5960 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5961 #t))))
6cbc8d57 5962
2914af3c 5963 #:configure-flags
df278071
RW
5964 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5965 "-Dman=false" ; FIXME: disabled because of docbook validation error
5966 "-Dsystemd_journal=false")))
5967 (build-system meson-build-system)
7ce49365
SB
5968 (native-inputs
5969 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5970 ("pkg-config" ,pkg-config)
5971 ("intltool" ,intltool)
df278071
RW
5972 ("xsltproc" ,libxslt)
5973 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5974 ("docbook-xsl" ,docbook-xsl)
5975 ("docbook-xml" ,docbook-xml)
5976 ("xmlto" ,xmlto)))
7ce49365 5977 (inputs
2914af3c
AW
5978 `(("elogind" ,elogind)
5979 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5980 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5981 ("gtk+" ,gtk+)
5982 ("json-glib" ,json-glib)
5983 ("libsm" ,libsm)
5984 ("libxcomposite" ,libxcomposite)
5985 ("libxtst" ,libxtst)
5986 ("mesa" ,mesa)
5987 ("upower" ,upower)
5988 ("xtrans" ,xtrans)))
5989 (synopsis "Session manager for GNOME")
5990 (description
5991 "This package contains the GNOME session manager, as well as a
5992configuration program to choose applications starting on login.")
5993 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5994 (license license:gpl2+)))
f47ba77e
SB
5995
5996(define-public gjs
5997 (package
5998 (name "gjs")
76e1830c 5999 (version "1.58.3")
f47ba77e
SB
6000 (source (origin
6001 (method url-fetch)
6002 (uri (string-append "mirror://gnome/sources/" name "/"
6003 (version-major+minor version) "/"
6004 name "-" version ".tar.xz"))
6005 (sha256
6006 (base32
76e1830c 6007 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
6008 (build-system gnu-build-system)
6009 (arguments
6010 '(#:phases
6011 (modify-phases %standard-phases
6012 (add-before
6013 'check 'pre-check
6014 (lambda _
fc119619
MW
6015 ;; The test suite requires a running X server.
6016 (system "Xvfb :1 &")
6017 (setenv "DISPLAY" ":1")
6018
f47ba77e
SB
6019 ;; For the missing /etc/machine-id.
6020 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 6021
144f94d0
KK
6022 ;; Our mozjs-38 package does not compile the required Intl API
6023 ;; support for these failing tests.
6024 (substitute* "installed-tests/js/testLocale.js"
6025 ((".*toBeDefined.*") "")
6026 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
6027 (substitute* "installed-tests/scripts/testCommandLine.sh"
6028 (("Valentín") "")
6029 (("☭") ""))
f47ba77e
SB
6030 #t)))))
6031 (native-inputs
8a831c6f 6032 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
6033 ("pkg-config" ,pkg-config)
6034 ("xmllint" ,libxml2)
6035 ;; For testing
6036 ("dbus-launch" ,dbus)
76e1830c 6037 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 6038 ("uuidgen" ,util-linux)
ebebee94 6039 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
6040 (propagated-inputs
6041 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
6042 `(("cairo" ,cairo)
6043 ("gobject-introspection" ,gobject-introspection)
d054fbf5 6044 ("mozjs" ,mozjs-60)))
f47ba77e
SB
6045 (inputs
6046 `(("gtk+" ,gtk+)
6047 ("readline" ,readline)))
6048 (synopsis "Javascript bindings for GNOME")
f032d0be 6049 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
6050 (description
6051 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6052javascript engine and the GObject introspection framework.")
6053 (license license:gpl2+)))
329d731b
DH
6054
6055(define-public gedit
6056 (package
6057 (name "gedit")
edec7128 6058 (version "3.34.1")
329d731b
DH
6059 (source (origin
6060 (method url-fetch)
6061 (uri (string-append "mirror://gnome/sources/" name "/"
6062 (version-major+minor version) "/"
6063 name "-" version ".tar.xz"))
6064 (sha256
6065 (base32
edec7128 6066 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 6067 (build-system meson-build-system)
329d731b 6068 (arguments
480c9226
KK
6069 `(#:glib-or-gtk? #t
6070 #:configure-flags
6071 ;; Otherwise, the RUNPATH will lack the final path component.
6072 (list (string-append "-Dc_link_args=-Wl,-rpath="
6073 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
6074
6075 ;; XXX: Generated .h files are sometimes used before being built.
6076 #:parallel-build? #f
6077
480c9226 6078 #:phases
329d731b 6079 (modify-phases %standard-phases
480c9226
KK
6080 (add-after 'unpack 'skip-gtk-update-icon-cache
6081 ;; Don't create 'icon-theme.cache'.
6082 (lambda _
6083 (substitute* "build-aux/meson/post_install.py"
6084 (("gtk-update-icon-cache") (which "true")))
6085 #t))
6086 (add-after 'unpack 'patch-libgd-fetch
6087 (lambda* (#:key inputs #:allow-other-keys)
6088 (let ((libgd (assoc-ref inputs "libgd")))
6089 ;; Calling git is unnecessary because libgd is fetched as a
6090 ;; native input to this package.
6091 (substitute* "meson.build"
6092 ((".*git.*") ""))
6093 (copy-recursively libgd "subprojects/libgd")
6094 #t)))
6095 (add-after 'install 'wrap-gedit
6096 (lambda* (#:key inputs outputs #:allow-other-keys)
6097 (let ((out (assoc-ref outputs "out"))
6098 (gtksourceview (assoc-ref inputs "gtksourceview"))
6099 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6100 (python-path (getenv "PYTHONPATH")))
6101 (wrap-program (string-append out "/bin/gedit")
6102 ;; For plugins.
6103 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6104 `("PYTHONPATH" ":" prefix (,python-path))
6105 ;; For language-specs.
6106 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6107 "/share")))))
6108 #t)))))
329d731b
DH
6109 (propagated-inputs
6110 `(("dconf" ,dconf)))
6111 (native-inputs
480c9226
KK
6112 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6113 ("intltool" ,intltool)
b3546174 6114 ("itstool" ,itstool)
480c9226 6115 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6116 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6117 ("libgd"
6118 ,(origin
6119 (method git-fetch)
6120 (uri (git-reference
6121 (url "https://gitlab.gnome.org/GNOME/libgd")
6122 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6123 (file-name (git-file-name "libgd" version))
6124 (sha256
6125 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6126 ("pkg-config" ,pkg-config)))
6127 (inputs
6128 `(("glib" ,glib)
0d2df50c 6129 ("gspell" ,gspell)
329d731b 6130 ("gtk+" ,gtk+)
480c9226 6131 ("gtksourceview" ,gtksourceview)
329d731b
DH
6132 ("libpeas" ,libpeas)
6133 ("libxml2" ,libxml2)
329d731b
DH
6134 ("iso-codes" ,iso-codes)
6135 ("python-pygobject" ,python-pygobject)
6136 ("python" ,python)
6137 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6138 ("libx11" ,libx11)
6139 ("vala" ,vala)
6140 ("adwaita-icon-theme" ,adwaita-icon-theme)
6141 ("libsoup" ,libsoup)
6142 ("gnome-desktop" ,gnome-desktop)))
6143 (home-page "https://wiki.gnome.org/Apps/Gedit")
6144 (synopsis "GNOME text editor")
6145 (description "While aiming at simplicity and ease of use, gedit is a
6146powerful general purpose text editor.")
6147 (license license:gpl2+)))
b7179363
SB
6148
6149(define-public zenity
6150 (package
6151 (name "zenity")
4f581bd0 6152 (version "3.32.0")
b7179363
SB
6153 (source (origin
6154 (method url-fetch)
5958df04 6155 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6156 (version-major+minor version) "/"
5958df04 6157 "zenity-" version ".tar.xz"))
b7179363
SB
6158 (sha256
6159 (base32
4f581bd0 6160 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6161 (build-system gnu-build-system)
6162 (native-inputs
b94a6ca0 6163 `(("gettext" ,gettext-minimal)
b7179363
SB
6164 ("itstool" ,itstool)
6165 ("pkg-config" ,pkg-config)))
6166 (inputs
6167 `(("libnotify" ,libnotify)
6168 ("webkitgtk" ,webkitgtk)))
6169 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6170 (home-page "https://www.gnome.org")
b7179363
SB
6171 (description
6172 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6173to display dialog boxes from the commandline and shell scripts.")
6174 (license license:lgpl2.0+)))
60c3627c
SB
6175
6176(define-public mutter
6177 (package
6178 (name "mutter")
ec3ceabd 6179 (version "3.34.2")
60c3627c 6180 (source (origin
86c44e72
KK
6181 (method url-fetch)
6182 (uri (string-append "mirror://gnome/sources/" name "/"
6183 (version-major+minor version) "/"
6184 name "-" version ".tar.xz"))
60c3627c
SB
6185 (sha256
6186 (base32
ec3ceabd 6187 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6188 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6189 ;; versions of cogl and clutter. As a result, many of the inputs,
6190 ;; propagated-inputs, and configure flags used in cogl and clutter are
6191 ;; needed here as well.
edf43f68 6192 (build-system meson-build-system)
60c3627c 6193 (arguments
edf43f68
KK
6194 '(;; XXX: All mutter tests fail with the following error:
6195 ;; Settings schema 'org.gnome.mutter' is not installed
6196 #:tests? #f
6197 #:glib-or-gtk? #t
6198 #:configure-flags
ec3ceabd
KK
6199 ;; TODO: Enable profiler when Sysprof is packaged.
6200 (list "-Dprofiler=false"
6201 ;; Otherwise, the RUNPATH will lack the final path component.
6202 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6203 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6204 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6205
6206 ;; The following flags are needed for the bundled clutter
edf43f68 6207 (string-append "-Dxwayland_path="
d633f2f6
RH
6208 (assoc-ref %build-inputs "xorg-server-xwayland")
6209 "/bin/Xwayland")
6210
a88d5a0c 6211 ;; the remaining flags are needed for the bundled cogl
edf43f68 6212 (string-append "-Dopengl_libname="
a88d5a0c 6213 (assoc-ref %build-inputs "mesa")
682ae6f9
MB
6214 "/lib/libGL.so"))
6215 #:phases (modify-phases %standard-phases
6216 (add-after 'unpack 'fix-build-with-mesa-20
6217 (lambda _
6218 ;; Mimic upstream commit a444a4c5f58ea516ad for
6219 ;; compatibility with Mesa 20. Remove for 3.36.
6220 (substitute* '("src/backends/meta-egl-ext.h"
6221 "src/backends/meta-egl.c"
6222 "src/backends/meta-egl.h")
6223 (("#include <EGL/eglext\\.h>" all)
6224 (string-append all "\n#include <EGL/eglmesaext.h>")))
6225 (substitute* "cogl/cogl/meson.build"
6226 (("#include <EGL/eglext\\.h>" all)
6227 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6228 #t)))))
60c3627c 6229 (native-inputs
ec3ceabd
KK
6230 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6231 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6232 ("gobject-introspection" ,gobject-introspection)
6233 ("intltool" ,intltool)
f23052a6 6234 ("pkg-config" ,pkg-config)
edf43f68 6235 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6236 ;; For git build
6237 ("autoconf" ,autoconf)
6238 ("automake" ,automake)
6239 ("libtool" ,libtool)))
60c3627c 6240 (propagated-inputs
a88d5a0c
MW
6241 `(;; libmutter.pc refers to these:
6242 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6243 ("gtk+" ,gtk+)
6244 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6245 ("atk" ,atk)
6246 ("cairo" ,cairo)
6247 ("gdk-pixbuf" ,gdk-pixbuf)
6248 ("glib" ,glib)
a88d5a0c
MW
6249 ("json-glib" ,json-glib)
6250 ("libinput" ,libinput)
6251 ("libx11" ,libx11)
6252 ("libxcomposite" ,libxcomposite)
6253 ("libxdamage" ,libxdamage)
6254 ("libxext" ,libxext)
6255 ("libxfixes" ,libxfixes)
6256 ("libxkbcommon" ,libxkbcommon)
6257 ("libxrandr" ,libxrandr)
6258 ("mesa" ,mesa)
6259 ("pango" ,pango)
6260 ("udev" ,eudev)
a88d5a0c 6261 ("xinput" ,xinput)))
60c3627c 6262 (inputs
86c44e72
KK
6263 `(("elogind" ,elogind)
6264 ("gnome-desktop" ,gnome-desktop)
edf43f68 6265 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6266 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6267 ("libgudev" ,libgudev)
60c3627c
SB
6268 ("libice" ,libice)
6269 ("libsm" ,libsm)
edf43f68 6270 ("libwacom" ,libwacom)
60c3627c 6271 ("libxkbfile" ,libxkbfile)
a88d5a0c 6272 ("libxrandr" ,libxrandr)
86c44e72 6273 ("libxtst" ,libxtst)
edf43f68 6274 ("pipewire" ,pipewire)
60c3627c
SB
6275 ("startup-notification" ,startup-notification)
6276 ("upower-glib" ,upower)
6277 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6278 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6279 ("zenity" ,zenity)))
6280 (synopsis "Window and compositing manager")
f032d0be 6281 (home-page "https://www.gnome.org")
60c3627c
SB
6282 (description
6283 "Mutter is a window and compositing manager that displays and manages your
6284desktop via OpenGL. Mutter combines a sophisticated display engine using the
6285Clutter toolkit with solid window-management logic inherited from the Metacity
6286window manager.")
86c44e72 6287 (license license:gpl2+)))
685cee87
SB
6288
6289(define-public gnome-online-accounts
6290 (package
6291 (name "gnome-online-accounts")
dd233e4d 6292 (version "3.36.0")
685cee87
SB
6293 (source (origin
6294 (method url-fetch)
6295 (uri (string-append "mirror://gnome/sources/" name "/"
6296 (version-major+minor version) "/"
6297 name "-" version ".tar.xz"))
6298 (sha256
6299 (base32
dd233e4d 6300 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6301 (outputs '("out" "lib"))
685cee87 6302 (build-system glib-or-gtk-build-system)
14c297fd
TS
6303 (arguments
6304 `(#:configure-flags
6305 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6306 #:phases
6307 (modify-phases %standard-phases
6308 (add-before 'configure 'patch-libgoa-output
6309 (lambda* (#:key outputs #:allow-other-keys)
6310 (let ((lib (assoc-ref outputs "lib")))
6311 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6312 (("@prefix@") lib)
6313 (("@exec_prefix@") lib)
6314 (("@libdir@") (string-append lib "/lib"))
6315 (("@includedir@") (string-append lib "/include"))
6316 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6317 ;; Make sure gobject-introspection knows about the output
6318 ;; too (see <https://bugs.gnu.org/36535>).
6319 (setenv "outputs" "out lib")
14c297fd 6320 #t))))))
685cee87
SB
6321 (native-inputs
6322 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6323 ("gobject-introspection" ,gobject-introspection)
6324 ("intltool" ,intltool)
6325 ("pkg-config" ,pkg-config)
ebb2873d 6326 ("vala" ,vala)
685cee87
SB
6327 ("xsltproc" ,libxslt)))
6328 (propagated-inputs
6329 `(("glib" ,glib) ; required by goa-1.0.pc
6330 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6331 (inputs
6332 `(("docbook-xsl" ,docbook-xsl)
6333 ("json-glib" ,json-glib)
6334 ("libsecret" ,libsecret)
6335 ("rest" ,rest)
685cee87
SB
6336 ("webkitgtk" ,webkitgtk)))
6337 (synopsis "Single sign-on framework for GNOME")
6338 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6339 (description
6340 "GNOME Online Accounts provides interfaces so that applications and
6341libraries in GNOME can access the user's online accounts. It has providers for
6342Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6343Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6344 (license license:lgpl2.0+)))
df217748
SB
6345
6346(define-public evolution-data-server
6347 (package
6348 (name "evolution-data-server")
162048be 6349 (version "3.34.2")
df217748
SB
6350 (source (origin
6351 (method url-fetch)
6352 (uri (string-append "mirror://gnome/sources/" name "/"
6353 (version-major+minor version) "/"
6354 name "-" version ".tar.xz"))
43190ac6
MB
6355 (patches (search-patches "evolution-data-server-locales.patch"
6356 "evolution-data-server-libical-compat.patch"))
df217748
SB
6357 (sha256
6358 (base32
162048be 6359 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 6360 (build-system cmake-build-system)
df217748 6361 (arguments
b468eedc
RW
6362 '(#:configure-flags
6363 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6364 (runpaths (map (lambda (s)
6365 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6366 '("addressbook-backends" "calendar-backends"
6367 "camel-providers" "credential-modules"
6368 "registry-modules"))))
6369 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6370 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6371 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6372 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6373 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6374 (string-append lib "/evolution-data-server;")
6375 (string-join runpaths ";"))
6376 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6377 #:phases
6378 (modify-phases %standard-phases
b468eedc
RW
6379 (add-after 'unpack 'disable-failing-tests
6380 (lambda _
6381 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6382 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6383 (delete-file-recursively "tests/book-migration")
6384 (substitute* "tests/CMakeLists.txt"
6385 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 6386 #t))
743aebd7 6387 (add-after 'unpack 'patch-paths
df217748 6388 (lambda _
b468eedc
RW
6389 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6390 "tests/libedata-book/data-test-utils.c"
6391 "tests/libedata-book/test-book-cache-utils.c"
6392 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6393 (("/bin/rm") (which "rm")))
ac033c7b
MB
6394 #t))
6395 (add-before 'configure 'dont-override-rpath
6396 (lambda _
6397 (substitute* "CMakeLists.txt"
6398 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6399 ;; Remove it so the configure flag is respected.
6400 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6401 #t)))))
df217748
SB
6402 (native-inputs
6403 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6404 ("gobject-introspection" ,gobject-introspection)
6405 ("gperf" ,gperf)
6406 ("intltool" ,intltool)
6407 ("pkg-config" ,pkg-config)
a73c1cf8 6408 ("vala" ,vala)
743aebd7 6409 ("python" ,python-wrapper)))
df217748
SB
6410 (propagated-inputs
6411 ;; These are all in the Requires field of .pc files.
6412 `(("gtk+" ,gtk+)
6413 ("libical" ,libical)
6414 ("libsecret" ,libsecret)
6415 ("libsoup" ,libsoup)
6416 ("nss" ,nss)
6417 ("sqlite" ,sqlite)))
6418 (inputs
6419 `(("bdb" ,bdb)
6420 ("gcr" ,gcr)
14c297fd 6421 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6422 ("json-glib" ,json-glib)
b468eedc 6423 ("libcanberra" ,libcanberra)
743aebd7
MB
6424 ("libgweather" ,libgweather)
6425 ("mit-krb5" ,mit-krb5)
891199c6
MW
6426 ("openldap" ,openldap)
6427 ("webkitgtk" ,webkitgtk)))
df217748
SB
6428 (synopsis "Store address books and calendars")
6429 (home-page "https://wiki.gnome.org/Apps/Evolution")
6430 (description
6431 "This package provides a unified backend for programs that work with
6432contacts, tasks, and calendar information. It was originally developed for
6433Evolution (hence the name), but is now used by other packages as well.")
6434 (license license:lgpl2.0)))
bd7dfafa
SB
6435
6436(define-public caribou
6437 (package
6438 (name "caribou")
fe964bb5 6439 (version "0.4.21")
bd7dfafa
SB
6440 (source (origin
6441 (method url-fetch)
6442 (uri (string-append "mirror://gnome/sources/" name "/"
6443 (version-major+minor version) "/"
6444 name "-" version ".tar.xz"))
6445 (sha256
6446 (base32
fe964bb5 6447 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6448 (build-system glib-or-gtk-build-system)
6449 (arguments
6450 '(#:phases
6451 (modify-phases %standard-phases
6452 (add-before
6453 'build 'pre-build
6454 (lambda* (#:key outputs #:allow-other-keys)
6455 (let ((out (assoc-ref outputs "out")))
6456 ;; Use absolute shared library path in Caribou-1.0.typelib.
6457 (substitute* "libcaribou/Makefile"
6458 (("--shared-library=libcaribou.so")
6459 (string-append "--shared-library="
6460 out "/lib/libcaribou.so")))
6461 #t)))
6462 (add-after 'install 'wrap-programs
6463 (lambda* (#:key outputs #:allow-other-keys)
6464 (let* ((out (assoc-ref outputs "out"))
6465 (python-path (getenv "PYTHONPATH"))
6466 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6467 (for-each
6468 (lambda (prog)
6469 (wrap-program prog
6470 `("PYTHONPATH" ":" prefix (,python-path))
6471 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6472 (list (string-append out "/bin/caribou-preferences")
6473 (string-append out "/libexec/antler-keyboard"))))
6474 #t)))))
6475 (native-inputs
6476 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6477 ("gobject-introspection" ,gobject-introspection)
6478 ("intltool" ,intltool)
6479 ("pkg-config" ,pkg-config)
9f7f5ba2 6480 ("python" ,python)
bd7dfafa
SB
6481 ("vala" ,vala)
6482 ("xsltproc" ,libxslt)))
6483 (propagated-inputs
6484 ;; caribou-1.0.pc refers to all these.
6485 `(("libgee" ,libgee)
6486 ("libxklavier" ,libxklavier)
6487 ("libxtst" ,libxtst)
6488 ("gtk+" ,gtk+)))
6489 (inputs
6490 `(("clutter" ,clutter)
6491 ("dconf" ,dconf)
6492 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6493 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6494 (synopsis "Text entry and UI navigation application")
6495 (home-page "https://wiki.gnome.org/Projects/Caribou")
6496 (description
6497 "Caribou is an input assistive technology intended for switch and pointer
6498users.")
6499 (license license:lgpl2.1)))
ba5dd105 6500
ba5dd105
SB
6501(define-public network-manager
6502 (package
6503 (name "network-manager")
01c22be7 6504 (version "1.24.0")
ba5dd105
SB
6505 (source (origin
6506 (method url-fetch)
6507 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6508 (version-major+minor version) "/"
6509 "NetworkManager-" version ".tar.xz"))
8d0548fd 6510 (patches (search-patches "network-manager-plugin-path.patch"))
ba5dd105
SB
6511 (sha256
6512 (base32
01c22be7 6513 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
02710a9b 6514 (modules '((guix build utils)))
fd070f35 6515 (snippet
02710a9b
RW
6516 '(begin
6517 (substitute* "src/devices/wwan/nm-modem-manager.c"
6518 (("systemd") "elogind"))
6519 #t))))
255ff74f 6520 (build-system meson-build-system)
ba5dd105
SB
6521 (outputs '("out"
6522 "doc")) ; 8 MiB of gtk-doc HTML
6523 (arguments
255ff74f 6524 `(#:configure-flags
ba5dd105 6525 (let ((out (assoc-ref %outputs "out"))
ba5dd105
SB
6526 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6527 "/sbin/dhclient")))
255ff74f
BW
6528 (list
6529 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6530 ;; component.
6531 (string-append "-Dc_link_args=-Wl,-rpath="
6532 out "/lib:"
6533 out "/lib/NetworkManager/" ,version)
6534 "-Dsystemd_journal=false"
6535 "-Dsession_tracking=elogind"
6536 "-Dsuspend_resume=elogind"
6537 "-Dsystemdsystemunitdir=no"
6538 "-Dsession_tracking_consolekit=false"
6539 "-Ddhcpcd=no"
6540 "-Ddhcpcanon=no"
6541 "-Dcrypto=gnutls"
6542 "-Diwd=true"
6543 "-Dlibaudit=yes"
6544 "-Dqt=false"
6545 "-Ddocs=true"
6546 "--sysconfdir=/etc"
6547 "--localstatedir=/var"
6548 (string-append "-Dudev_dir="
6549 out "/lib/udev")
6550 (string-append "-Ddbus_conf_dir="
6551 out "/etc/dbus-1/system.d")
6552
6553 (string-append "-Ddhclient=" dhclient)))
ba5dd105
SB
6554 #:phases
6555 (modify-phases %standard-phases
b4f59d87
AW
6556 (add-before 'configure 'pre-configure
6557 (lambda _
6558 ;; These tests try to test aspects of network-manager's
6559 ;; functionality within restricted containers, but they don't
6560 ;; cope with being already in the Guix build jail as that jail
6561 ;; lacks some features that they would like to proxy over (like
6562 ;; a /sys mount).
255ff74f
BW
6563 (substitute* "src/platform/tests/meson.build"
6564 ((".*test-address-linux.*") "")
6565 ((".*test-cleanup-linux.*") "")
6566 ((".*test-link-linux.*") "")
6567 ((".*test-route-linux.*") ""))
6568 (substitute* "src/devices/tests/meson.build"
6569 ((".*test-acd.*") "")
6570 ((".*test-lldp.*") ""))
45f80fce 6571 #t))
255ff74f
BW
6572 (add-after 'unpack 'patch-docbook-xml
6573 (lambda* (#:key inputs #:allow-other-keys)
6574 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6575 "/xml/dtd/docbook")))
6576 (substitute* (find-files "." ".*\\.(xsl|xml)")
6577 (("http://.*/docbookx\\.dtd")
6578 (string-append xmldoc "/docbookx.dtd")))
6579 #t)))
ba5dd105
SB
6580 (add-before 'check 'pre-check
6581 (lambda _
6582 ;; For the missing /etc/machine-id.
6583 (setenv "DBUS_FATAL_WARNINGS" "0")
6584 #t))
255ff74f
BW
6585 (add-before 'install 'no-polkit-magic
6586 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
ba5dd105 6587 (lambda _
255ff74f
BW
6588 (setenv "PKEXEC_UID" "something")
6589 #t))
6590 (add-after 'install 'move-doc
6591 (lambda* (#:key outputs #:allow-other-keys)
6592 (let ((out (assoc-ref outputs "out"))
6593 (doc (assoc-ref outputs "doc")))
6594 (mkdir-p (string-append doc "/share"))
6595 (for-each (lambda (directory)
6596 (copy-recursively (string-append out directory)
6597 (string-append doc directory))
6598 (delete-file-recursively
6599 (string-append out directory)))
6600 '("/share/doc" "/share/gtk-doc"))
6601 #t))))))
b93502d6
DC
6602 (propagated-inputs
6603 `(("glib" ,glib)))
ba5dd105 6604 (native-inputs
255ff74f
BW
6605 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6606 ("gtk-doc" ,gtk-doc)
ba5dd105 6607 ("gobject-introspection" ,gobject-introspection)
255ff74f 6608 ("docbook-xml" ,docbook-xml)
d04687dc 6609 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6610 ("intltool" ,intltool)
d04687dc
HG
6611 ("libxslt" ,libxslt)
6612 ("libxml2" ,libxml2)
ba5dd105 6613 ("pkg-config" ,pkg-config)
255ff74f 6614 ("vala" ,vala)
ba5dd105
SB
6615 ;; For testing.
6616 ("python" ,python-wrapper)
6617 ("python-dbus" ,python-dbus)
6618 ("python-pygobject" ,python-pygobject)))
6619 (inputs
255ff74f 6620 `(("curl" ,curl)
856ca567
KK
6621 ("cyrus-sasl" ,cyrus-sasl)
6622 ("dbus-glib" ,dbus-glib)
ba5dd105 6623 ("dnsmasq" ,dnsmasq)
856ca567 6624 ("eudev" ,eudev)
ba5dd105
SB
6625 ("gnutls" ,gnutls)
6626 ("iptables" ,iptables)
6627 ("isc-dhcp" ,isc-dhcp)
c2f236fa 6628 ("iwd" ,iwd) ; wpa_supplicant alternative
d04687dc 6629 ("jansson" ,jansson)
c2f236fa 6630 ("libaudit" ,audit)
ba5dd105
SB
6631 ("libgcrypt" ,libgcrypt)
6632 ("libgudev" ,libgudev)
6633 ("libndp" ,libndp)
6634 ("libnl" ,libnl)
6635 ("libsoup" ,libsoup)
255ff74f 6636 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
142bdcbc 6637 ("modem-manager" ,modem-manager)
c27e02bf 6638 ("newt" ,newt) ;for the 'nmtui' console interface
c2f236fa 6639 ("openresolv" ,openresolv) ; alternative resolv.conf manager
ba5dd105
SB
6640 ("polkit" ,polkit)
6641 ("ppp" ,ppp)
6642 ("readline" ,readline)
fd070f35
CM
6643 ("util-linux" ,util-linux)
6644 ("elogind" ,elogind)))
ba5dd105 6645 (synopsis "Network connection manager")
8d0548fd 6646 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
ba5dd105
SB
6647 (description
6648 "NetworkManager is a system network service that manages your network
6649devices and connections, attempting to keep active network connectivity when
6650available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6651devices, and provides VPN integration with a variety of different VPN
6652services.")
255ff74f
BW
6653 ;; “This NetworkManager project consists of the daemon, client tools, and
6654 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6655 ;; GPL-2.0+.”
6656 (license (list license:gpl2+
6657 license:lgpl2.1+))
29d2f451 6658 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6659
f2b96b3a
LC
6660(define-public network-manager-openvpn
6661 (package
6662 (name "network-manager-openvpn")
3fe368c0 6663 (version "1.8.12")
f2b96b3a
LC
6664 (source (origin
6665 (method url-fetch)
6666 (uri (string-append
6667 "mirror://gnome/sources/NetworkManager-openvpn/"
6668 (version-major+minor version)
6669 "/NetworkManager-openvpn-" version ".tar.xz"))
6670 (sha256
6671 (base32
3fe368c0 6672 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
f2b96b3a
LC
6673 (build-system gnu-build-system)
6674 (arguments
633422b0
JL
6675 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6676 #:phases
6677 (modify-phases %standard-phases
6678 (add-after 'configure 'patch-path
6679 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6680 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6681 "/sbin/openvpn"))
6682 (modprobe (string-append (assoc-ref inputs "kmod")
6683 "/bin/modprobe"))
6684 (pretty-ovpn (string-append "\"" ovpn "\"")))
6685 (for-each
6686 (lambda (file)
6687 (substitute* file
6688 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6689 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6690 (("\"/sbin/openvpn\"") pretty-ovpn)
6691 (("/sbin/modprobe") modprobe)))
6692 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6693 #t)))))
f2b96b3a
LC
6694 (native-inputs
6695 `(("pkg-config" ,pkg-config)
6696 ("intltool" ,intltool)))
6697 (inputs
6698 `(("gtk+" ,gtk+)
633422b0 6699 ("kmod" ,kmod)
f2b96b3a
LC
6700 ("openvpn" ,openvpn)
6701 ("network-manager" ,network-manager)
3fe368c0 6702 ("libnma" ,libnma)
f2b96b3a
LC
6703 ("libsecret" ,libsecret)))
6704 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6705 (synopsis "OpenVPN plug-in for NetworkManager")
6706 (description
6707 "This extension of NetworkManager allows it to take care of connections
6708to virtual private networks (VPNs) via OpenVPN.")
6709 (license license:gpl2+)
6710 (properties `((upstream-name . "NetworkManager-openvpn")))))
6711
d376129f
JL
6712(define-public network-manager-vpnc
6713 (package
6714 (name "network-manager-vpnc")
6715 (version "1.2.6")
6716 (source (origin
6717 (method url-fetch)
6718 (uri (string-append
6719 "mirror://gnome/sources/NetworkManager-vpnc/"
6720 (version-major+minor version)
6721 "/NetworkManager-vpnc-" version ".tar.xz"))
6722 (sha256
6723 (base32
6724 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6725 (build-system gnu-build-system)
6726 (arguments
7c43b78d
BW
6727 `(#:configure-flags '("--enable-absolute-paths"
6728 "--localstatedir=/var"
6729 ;; libnm-glib has been removed from network-manager
6730 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6731 "--with-libnm-glib=no")
d376129f
JL
6732 #:phases
6733 (modify-phases %standard-phases
6734 (add-after 'configure 'patch-path
6735 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6736 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6737 "/sbin/vpnc"))
6738 (modprobe (string-append (assoc-ref inputs "kmod")
6739 "/bin/modprobe"))
6740 (pretty-ovpn (string-append "\"" vpnc "\"")))
6741 (substitute* "src/nm-vpnc-service.c"
6742 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6743 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6744 (("\"/sbin/vpnc\"") pretty-ovpn)
6745 (("/sbin/modprobe") modprobe)))
6746 #t)))))
6747 (native-inputs
6748 `(("pkg-config" ,pkg-config)
6749 ("intltool" ,intltool)))
6750 (inputs
6751 `(("gtk+" ,gtk+)
6752 ("kmod" ,kmod)
6753 ("vpnc" ,vpnc)
6754 ("network-manager" ,network-manager)
7c43b78d 6755 ("libnma" ,libnma)
d376129f
JL
6756 ("libsecret" ,libsecret)))
6757 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6758 (synopsis "VPNC plug-in for NetworkManager")
6759 (description
6760 "Support for configuring virtual private networks based on VPNC.
6761Compatible with Cisco VPN concentrators configured to use IPsec.")
6762 (license license:gpl2+)
6763 (properties `((upstream-name . "NetworkManager-vpnc")))))
6764
8378c87a
EF
6765(define-public network-manager-openconnect
6766 (package
6767 (name "network-manager-openconnect")
6768 (version "1.2.6")
6769 (source (origin
6770 (method url-fetch)
6771 (uri (string-append
6772 "mirror://gnome/sources/NetworkManager-openconnect/"
6773 (version-major+minor version)
6774 "/NetworkManager-openconnect-" version ".tar.xz"))
6775 (sha256
6776 (base32
6777 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6778 (build-system gnu-build-system)
6779 (arguments
6780 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6781 #:phases
6782 (modify-phases %standard-phases
6783 (add-after 'configure 'patch-path
6784 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6785 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6786 "/sbin/openconnect"))
6787 (modprobe (string-append (assoc-ref inputs "kmod")
6788 "/bin/modprobe"))
6789 (pretty-ovpn (string-append "\"" openconnect "\"")))
6790 (substitute* "src/nm-openconnect-service.c"
6791 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6792 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6793 (("/sbin/modprobe") modprobe)))
6794 #t)))))
6795 (native-inputs
6796 `(("intltool" ,intltool)
4ca449c5 6797 ("libnma" ,libnma)
8378c87a
EF
6798 ("pkg-config" ,pkg-config)))
6799 (inputs
6800 `(("gcr" ,gcr)
6801 ("gtk+" ,gtk+)
6802 ("kmod" ,kmod)
6803 ("libsecret" ,libsecret)
6804 ("libxml2" ,libxml2)
b4fe5dab 6805 ("lz4" ,lz4)
8378c87a
EF
6806 ("network-manager" ,network-manager)
6807 ("openconnect" ,openconnect)))
6808 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6809 (synopsis "OpenConnect plug-in for NetworkManager")
6810 (description
6811 "This extension of NetworkManager allows it to take care of connections
6812to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6813Cisco's AnyConnect SSL VPN.")
6814 (license license:gpl2+)
e52b9534
LC
6815 (properties `((upstream-name . "NetworkManager-openconnect")
6816
6817 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6818 ;; file refers to account "nm-openconnect". Specify it here
6819 ;; so that 'network-manager-service-type' creates it.
6820 (user-accounts . ("nm-openconnect"))))))
8378c87a 6821
e5e1df4d
DC
6822(define-public mobile-broadband-provider-info
6823 (package
6824 (name "mobile-broadband-provider-info")
310c89e3 6825 (version "20190116")
e5e1df4d
DC
6826 (source (origin
6827 (method url-fetch)
6828 (uri (string-append
6829 "mirror://gnome/sources/"
6830 "mobile-broadband-provider-info/" version "/"
6831 "mobile-broadband-provider-info-" version ".tar.xz"))
6832 (sha256
6833 (base32
310c89e3 6834 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6835 (build-system gnu-build-system)
6836 (arguments
310c89e3 6837 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6838 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6839 (synopsis "Database of broadband connection configuration")
6840 (description "Database of broadband connection configuration.")
6841 (license license:public-domain)))
6842
4d62a9d3
SB
6843(define-public network-manager-applet
6844 (package
6845 (name "network-manager-applet")
4c291112 6846 (version "1.16.0")
4d62a9d3
SB
6847 (source (origin
6848 (method url-fetch)
3df63444 6849 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6850 (version-major+minor version) "/"
3df63444 6851 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6852 (sha256
6853 (base32
4c291112 6854 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
cd7f718e
RW
6855 (build-system meson-build-system)
6856 (arguments
4c291112 6857 '(#:glib-or-gtk? #t))
4d62a9d3
SB
6858 (native-inputs
6859 `(("intltool" ,intltool)
cd7f718e 6860 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6861 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6862 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6863 ("pkg-config" ,pkg-config)))
6864 (propagated-inputs
6865 ;; libnm-gtk.pc refers to all these.
6866 `(("dbus-glib" ,dbus-glib)
6867 ("gtk+" ,gtk+)
415b90f2
BW
6868 ("network-manager" ,network-manager)
6869 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
6870 ("libnma" ,libnma)))
4d62a9d3 6871 (inputs
cd7f718e 6872 `(("gcr" ,gcr)
4d62a9d3
SB
6873 ("libgudev" ,libgudev)
6874 ("libnotify" ,libnotify)
2116bfb3 6875 ("libsecret" ,libsecret)
240cee8a
KK
6876 ("libselinux" ,libselinux)
6877 ("jansson" ,jansson) ; for team support
4c291112 6878 ("modem-manager" ,modem-manager)))
4d62a9d3 6879 (synopsis "Applet for managing network connections")
8ce78609 6880 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
4d62a9d3
SB
6881 (description
6882 "This package contains a systray applet for NetworkManager. It displays
6883the available networks and allows users to easily switch between them.")
6884 (license license:gpl2+)))
56196594
RW
6885
6886(define-public libxml++
6887 (package
6888 (name "libxml++")
8344a85e 6889 (version "3.0.1")
56196594
RW
6890 (source (origin
6891 (method url-fetch)
6892 (uri (string-append "mirror://gnome/sources/" name "/"
6893 (version-major+minor version) "/"
6894 name "-" version ".tar.xz"))
6895 (sha256
6896 (base32
8344a85e 6897 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6898 (build-system gnu-build-system)
6899 ;; libxml++-3.0.pc refers to all these.
6900 (propagated-inputs
6901 `(("libxml2" ,libxml2)
6902 ("glibmm" ,glibmm)))
6903 (native-inputs
6904 `(("perl" ,perl)
6905 ("pkg-config" ,pkg-config)))
6906 (home-page "http://libxmlplusplus.sourceforge.net/")
6907 (synopsis "C++ wrapper for XML parser library libxml2")
6908 (description
6909 "This package provides a C++ wrapper for the XML parser library
6910libxml2.")
6911 (license license:lgpl2.1+)))
df12f04a 6912
b61d9627
AW
6913(define-public libxml++-2
6914 (package
6915 (inherit libxml++)
6916 (name "libxml++")
6917 (version "2.40.1")
6918 (source (origin
6919 (method url-fetch)
6920 (uri (string-append "mirror://gnome/sources/" name "/"
6921 (version-major+minor version) "/"
6922 name "-" version ".tar.xz"))
6923 (sha256
6924 (base32
6925 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6926
df12f04a
SB
6927(define-public gdm
6928 (package
6929 (name "gdm")
0fda99c5 6930 (version "3.34.1")
df12f04a
SB
6931 (source (origin
6932 (method url-fetch)
6933 (uri (string-append "mirror://gnome/sources/" name "/"
6934 (version-major+minor version) "/"
6935 name "-" version ".tar.xz"))
6936 (sha256
6937 (base32
0fda99c5 6938 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 6939 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6940 (build-system glib-or-gtk-build-system)
df12f04a
SB
6941 (arguments
6942 '(#:configure-flags
af37e6bb 6943 `("--without-plymouth"
957dbc0a 6944 "--disable-systemd-journal"
51bc8357
TS
6945
6946 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6947 ;; instead of having to replace it (i.e., stopping the mingetty
6948 ;; service for TTY 1 before starting GDM).
6949 "--with-initial-vt=7"
6950
89c86562
TS
6951 ;; Use '/etc/environment' for locale settings instead of the
6952 ;; systemd-specific '/etc/locale.conf'.
6953 "--with-lang-file=/etc/environment"
6954
b74ef0ba
RW
6955 ,(string-append "--with-udevdir="
6956 (assoc-ref %outputs "out") "/lib/udev")
6957
af37e6bb
AW
6958 "--localstatedir=/var"
6959 ,(string-append "--with-default-path="
6960 (string-join '("/run/setuid-programs"
6961 "/run/current-system/profile/bin"
6962 "/run/current-system/profile/sbin")
957dbc0a
AW
6963 ":"))
6964 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6965 ;; XDG_DATA_DIRS so that it finds its schemas.
6966 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6967 #:phases
6968 (modify-phases %standard-phases
6969 (add-before
6970 'configure 'pre-configure
e8c6e771 6971 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6972 ;; We don't have <systemd/sd-daemon.h>.
6973 (substitute* '("common/gdm-log.c"
6974 "daemon/gdm-server.c"
6975 "daemon/gdm-session-worker.c"
6976 "daemon/gdm-session-worker-job.c")
6977 (("#include <systemd/sd-daemon\\.h>") ""))
6978 ;; Use elogind for sd-login.
6979 (substitute* '("common/gdm-common.c"
0fda99c5 6980 "daemon/gdm-local-display-factory.c"
df12f04a
SB
6981 "daemon/gdm-manager.c"
6982 "libgdm/gdm-user-switching.c")
6983 (("#include <systemd/sd-login\\.h>")
6984 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6985 ;; Check for elogind.
6986 (substitute* '("configure")
6987 (("libsystemd")
6988 "libelogind"))
af37e6bb
AW
6989 ;; Look for system-installed sessions in
6990 ;; /run/current-system/profile/share.
6991 (substitute* '("libgdm/gdm-sessions.c"
6992 "daemon/gdm-session.c"
6993 "daemon/gdm-display.c"
6994 "daemon/gdm-launch-environment.c")
6995 (("DATADIR \"/x")
6996 "\"/run/current-system/profile/share/x")
6997 (("DATADIR \"/wayland")
6998 "\"/run/current-system/profile/share/wayland")
6999 (("DATADIR \"/gnome")
7000 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 7001 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 7002 "GDM_DBUS_DAEMON"
c9ff92b5 7003 "GDM_X_SERVER"
41fa9f18 7004 "GDM_X_SESSION"
c9ff92b5
TS
7005 ;; XXX: Remove this once GNOME Shell is
7006 ;; a dependency of GDM.
7007 "XDG_DATA_DIRS")))
7008 (substitute* "daemon/gdm-session.c"
7009 (("set_up_session_environment \\(self\\);")
7010 (apply string-append
7011 "set_up_session_environment (self);\n"
7012 (map (lambda (name)
7013 (string-append
7014 "gdm_session_set_environment_variable "
7015 "(self, \"" name "\","
7016 "g_getenv (\"" name "\"));\n"))
7017 propagate)))))
a430a350
TS
7018 ;; Find the configuration file using an environment variable.
7019 (substitute* '("common/gdm-settings.c")
e0e6756f 7020 (("GDM_CUSTOM_CONF")
e57c2adb
TS
7021 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7022 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7023 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
7024 ;; Use service-supplied path to X.
7025 (substitute* '("daemon/gdm-server.c")
7026 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7027 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
7028 (substitute* '("daemon/gdm-wayland-session.c"
7029 "daemon/gdm-x-session.c")
1f564c15
TS
7030 (("\"dbus-daemon\"")
7031 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 7032 (("X_SERVER")
41fa9f18
TS
7033 "g_getenv (\"GDM_X_SERVER\")")
7034 (("GDMCONFDIR \"/Xsession\"")
7035 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
7036 ;; Use an absolute path for GNOME Session.
7037 (substitute* "daemon/gdm-launch-environment.c"
7038 (("\"gnome-session\"")
7039 (string-append "\"" (assoc-ref inputs "gnome-session")
7040 "/bin/gnome-session\"")))
e8c6e771
TS
7041 ;; Do not automatically select the placeholder session.
7042 (substitute* "daemon/gdm-session.c"
7043 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7044 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7045 "(g_strcmp0(search_dirs[i], \""
7046 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7047 "\") == 0 && "
7048 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7049 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 7050 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 7051 #t))
8caa4589
TS
7052 ;; GDM requires that there be at least one desktop entry
7053 ;; file. This phase installs a hidden one that simply
7054 ;; fails. This enables users to use GDM with a
7055 ;; '~/.xsession' script with no other desktop entry files.
7056 ;; See <https://bugs.gnu.org/35068>.
7057 (add-after 'install 'install-placeholder-desktop-entry
7058 (lambda* (#:key inputs outputs #:allow-other-keys)
7059 (let* ((out (assoc-ref outputs "out"))
7060 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7061 (fail (string-append sessions "/fail.desktop")))
7062 (mkdir-p sessions)
7063 (with-output-to-file fail
7064 (lambda ()
7065 (for-each
7066 display
7067 '("[Desktop Entry]\n"
7068 "Encoding=UTF-8\n"
7069 "Type=Application\n"
7070 "Name=Fail\n"
7071 "Comment=This session fails immediately.\n"
7072 "NoDisplay=true\n"
7073 "Exec=false\n"))))
7074 #t)))
69544798
TS
7075 ;; GDM needs GNOME Session to run these applications. We link
7076 ;; their autostart files in `share/gdm/greeter/autostart'
7077 ;; because GDM explicitly tells GNOME Session to look there.
7078 ;;
7079 ;; XXX: GNOME Shell should be linked here too, but currently
7080 ;; GNOME Shell depends on GDM.
7081 (add-after 'install 'link-autostart-files
7082 (lambda* (#:key inputs outputs #:allow-other-keys)
7083 (let* ((out (assoc-ref outputs "out"))
7084 (autostart (string-append out "/share/gdm/"
7085 "greeter/autostart"))
7086 (settings (assoc-ref inputs "gnome-settings-daemon")))
7087 (mkdir-p autostart)
7088 (with-directory-excursion autostart
7089 (for-each (lambda (desktop)
7090 (symlink desktop (basename desktop)))
7091 (find-files (string-append settings "/etc/xdg"))))
7092 #t))))))
df12f04a
SB
7093 (native-inputs
7094 `(("dconf" ,dconf)
7095 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7096 ("gobject-introspection" ,gobject-introspection)
7097 ("intltool" ,intltool)
7098 ("itstool" ,itstool)
7099 ("pkg-config" ,pkg-config)
7100 ("xmllint" ,libxml2)))
7101 (inputs
7102 `(("accountsservice" ,accountsservice)
7103 ("check" ,check) ; for testing
7104 ("elogind" ,elogind)
def6d6b6 7105 ("gnome-session" ,gnome-session)
69544798 7106 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
7107 ("gtk+" ,gtk+)
7108 ("iso-codes" ,iso-codes)
7109 ("libcanberra" ,libcanberra)
7110 ("linux-pam" ,linux-pam)))
7111 (synopsis "Display manager for GNOME")
f032d0be 7112 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
7113 (description
7114 "GNOME Display Manager is a system service that is responsible for
7115providing graphical log-ins and managing local and remote displays.")
7116 (license license:gpl2+)))
8e1dd04f
SB
7117
7118(define-public libgtop
7119 (package
7120 (name "libgtop")
015fc036 7121 (version "2.40.0")
8e1dd04f
SB
7122 (source (origin
7123 (method url-fetch)
59487fc2 7124 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7125 (version-major+minor version) "/"
59487fc2 7126 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7127 (sha256
7128 (base32
015fc036 7129 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7130 (build-system gnu-build-system)
7131 (native-inputs
7132 `(("gobject-introspection" ,gobject-introspection)
7133 ("intltool" ,intltool)
7134 ("perl" ,perl)
7135 ("pkg-config" ,pkg-config)))
7136 (propagated-inputs
7137 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7138 (synopsis "Portable system access library")
7139 (home-page "https://www.gnome.org/")
7140 (description
7141 "LibGTop is a library to get system specific data such as CPU and memory
7142usage and information about running processes.")
7143 (license license:gpl2+)))
b96c4260
SB
7144
7145(define-public gnome-bluetooth
7146 (package
7147 (name "gnome-bluetooth")
e8f4bf6b 7148 (version "3.34.0")
b96c4260
SB
7149 (source (origin
7150 (method url-fetch)
7151 (uri (string-append "mirror://gnome/sources/" name "/"
7152 (version-major+minor version) "/"
7153 name "-" version ".tar.xz"))
7154 (sha256
7155 (base32
e8f4bf6b 7156 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 7157 (build-system meson-build-system)
b96c4260
SB
7158 (native-inputs
7159 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7160 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7161 ("gobject-introspection" ,gobject-introspection)
7162 ("intltool" ,intltool)
7163 ("pkg-config" ,pkg-config)
7164 ("xmllint" ,libxml2)))
7165 (propagated-inputs
7166 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7167 `(("glib" ,glib)
7168 ("gtk+" ,gtk+)))
b96c4260 7169 (inputs
723afae6
KK
7170 `(("eudev" ,eudev)
7171 ("libcanberra" ,libcanberra)
b96c4260
SB
7172 ("libnotify" ,libnotify)))
7173 (synopsis "GNOME Bluetooth subsystem")
7174 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7175 (description
7176 "This package contains tools for managing and manipulating Bluetooth
7177devices using the GNOME desktop.")
7178 (license license:lgpl2.1+)))
b645146f
SB
7179
7180(define-public gnome-control-center
7181 (package
7182 (name "gnome-control-center")
c576328d 7183 (version "3.34.2")
b645146f
SB
7184 (source (origin
7185 (method url-fetch)
7186 (uri (string-append "mirror://gnome/sources/" name "/"
7187 (version-major+minor version) "/"
7188 name "-" version ".tar.xz"))
7189 (sha256
7190 (base32
c576328d 7191 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7192 (build-system meson-build-system)
b645146f 7193 (arguments
59dac026
RW
7194 '(#:glib-or-gtk? #t
7195 #:configure-flags
64c70430
KK
7196 (list "-Dcheese=false"
7197 (string-append "-Dgnome_session_libexecdir="
7198 (assoc-ref %build-inputs "gnome-session")
7199 "/libexec"))
59dac026 7200 #:phases
b645146f
SB
7201 (modify-phases %standard-phases
7202 (add-before 'configure 'patch-paths
7203 (lambda* (#:key inputs #:allow-other-keys)
7204 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7205 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7206 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7207 (nm-applet (assoc-ref inputs "network-manager-applet"))
7208 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7209 (substitute* "panels/datetime/tz.h"
7210 (("/usr/share/zoneinfo/zone.tab")
7211 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7212 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7213 (("/usr/share/locale")
7214 (string-append libc "/share/locale")))
1df38cfc
LC
7215 (substitute* "panels/region/cc-region-panel.c"
7216 (("\"gkbd-keyboard-display")
7217 (string-append "\"" libgnomekbd
7218 "/bin/gkbd-keyboard-display")))
341225ac
LC
7219 (substitute* '("panels/network/net-device-wifi.c"
7220 "panels/network/net-device.c"
7221 "panels/network/connection-editor/net-connection-editor.c")
7222 (("\"nm-connection-editor")
7223 (string-append "\"" nm-applet
7224 "/bin/nm-connection-editor")))
1acd107c
FP
7225 (substitute* '("panels/user-accounts/run-passwd.c")
7226 (("/usr/bin/passwd")
7227 "/run/setuid-programs/passwd"))
64c70430
KK
7228 (substitute* "panels/info/cc-info-overview-panel.c"
7229 (("DATADIR \"/gnome/gnome-version.xml\"")
7230 (string-append "\"" gnome-desktop
7231 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7232 #t)))
7233 (add-after 'unpack 'skip-gtk-update-icon-cache
7234 ;; Don't create 'icon-theme.cache'.
7235 (lambda _
7236 (substitute* "build-aux/meson/meson_post_install.py"
7237 (("gtk-update-icon-cache") (which "true")))
7238 #t)))))
b645146f
SB
7239 (native-inputs
7240 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7241 ("intltool" ,intltool)
7242 ("pkg-config" ,pkg-config)
a6938bac
KK
7243 ("xsltproc" ,libxslt)
7244 ;; For tests
7245 ("hicolor-icon-theme" ,hicolor-icon-theme)
7246 ("python-dbusmock" ,python-dbusmock)
7247 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7248 (inputs
7249 `(("accountsservice" ,accountsservice)
7250 ("clutter-gtk" ,clutter-gtk)
7251 ("colord-gtk" ,colord-gtk)
7252 ("cups" ,cups)
7253 ("dconf" ,dconf)
7254 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7255 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7256 ("gnome-bluetooth" ,gnome-bluetooth)
7257 ("gnome-desktop" ,gnome-desktop)
7258 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7259 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7260 ("gnome-session" ,gnome-session)
b645146f
SB
7261 ("gnome-settings-daemon" ,gnome-settings-daemon)
7262 ("grilo" ,grilo)
a6938bac 7263 ("gsound" ,gsound)
b645146f
SB
7264 ("ibus" ,ibus)
7265 ("libcanberra" ,libcanberra)
1df38cfc 7266 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7267 ("libgudev" ,libgudev)
7268 ("libgtop" ,libgtop)
46cf3434 7269 ("libnma" ,libnma)
b645146f 7270 ("libpwquality" ,libpwquality)
982c0b36 7271 ("libsecret" ,libsecret)
b645146f
SB
7272 ("libsoup" ,libsoup)
7273 ("libxml2" ,libxml2)
7274 ("libwacom" ,libwacom)
7275 ("mesa" ,mesa)
7276 ("mit-krb5" ,mit-krb5)
7277 ("modem-manager" ,modem-manager)
7278 ("network-manager-applet" ,network-manager-applet)
7279 ("polkit" ,polkit)
7280 ("pulseaudio" ,pulseaudio)
7281 ("smbclient" ,samba)
7282 ("tzdata" ,tzdata)
982c0b36 7283 ("udisks" ,udisks)
b645146f
SB
7284 ("upower" ,upower)))
7285 (synopsis "Utilities to configure the GNOME desktop")
7286 (home-page "https://www.gnome.org/")
7287 (description
7288 "This package contains configuration applets for the GNOME desktop,
7289allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7290properties, sound setup, desktop theme and background, user interface
7291properties, screen resolution, and other GNOME parameters.")
7292 (license license:gpl2+)))
a4df5756
SB
7293
7294(define-public gnome-shell
7295 (package
7296 (name "gnome-shell")
28457ae6 7297 (version "3.34.2")
a4df5756
SB
7298 (source (origin
7299 (method url-fetch)
7300 (uri (string-append "mirror://gnome/sources/" name "/"
7301 (version-major+minor version) "/"
7302 name "-" version ".tar.xz"))
7303 (sha256
7304 (base32
28457ae6
KK
7305 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7306 (patches (search-patches "gnome-shell-theme.patch"
7307 "gnome-shell-disable-test.patch"))
a76d0f03
LC
7308 (modules '((guix build utils)))
7309 (snippet
7310 #~(begin
a76d0f03
LC
7311 ;; Copy images for use on the GDM log-in screen.
7312 (copy-file #$(file-append %artwork-repository
7313 "/slim/0.x/background.png")
7314 "data/theme/guix-background.png")
45fef894
LC
7315 (copy-file #$(file-append %artwork-repository
7316 "/logo/Guix-horizontal-white.svg")
7317 "data/theme/guix-logo.svg")
a76d0f03 7318 #t))))
2b0c755d 7319 (build-system meson-build-system)
a4df5756 7320 (arguments
08185081
MB
7321 `(#:glib-or-gtk? #t
7322 #:disallowed-references ((,glib "bin")
11e1df56
LC
7323 ,inkscape ,libxslt
7324 ,ruby-sass)
2b0c755d
RW
7325 #:configure-flags
7326 (list "-Dsystemd=false"
7327 ;; Otherwise, the RUNPATH will lack the final path component.
7328 (string-append "-Dc_link_args=-Wl,-rpath="
7329 (assoc-ref %outputs "out")
7330 "/lib/gnome-shell"))
11e1df56 7331
08185081 7332 #:modules ((guix build meson-build-system)
11e1df56
LC
7333 (guix build utils)
7334 (srfi srfi-1))
7335
2b0c755d 7336 #:phases
a4df5756 7337 (modify-phases %standard-phases
2b0c755d 7338 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7339 (lambda* (#:key outputs #:allow-other-keys)
7340 (let* ((out (assoc-ref outputs "out"))
7341 (keysdir (string-append
7342 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7343 (substitute* "meson.build"
7344 (("keysdir =.*")
7345 (string-append "keysdir = '" keysdir "'\n")))
7346 #t)))
ebfe259f
MB
7347 (add-before 'configure 'convert-logo-to-png
7348 (lambda* (#:key inputs #:allow-other-keys)
7349 ;; Convert the logo from SVG to PNG.
7350 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7351 "data/theme/guix-logo.svg")))
ba00235a 7352 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7353 (lambda* (#:key inputs #:allow-other-keys)
7354 (substitute* "js/misc/ibusManager.js"
7355 (("'ibus-daemon'")
7356 (string-append "'" (assoc-ref inputs "ibus")
7357 "/bin/ibus-daemon'")))
d6fda4d3
LC
7358 (substitute* "js/ui/status/keyboard.js"
7359 (("'gkbd-keyboard-display'")
7360 (string-append "'" (assoc-ref inputs "libgnomekbd")
7361 "/bin/gkbd-keyboard-display'")))
2472cdec 7362 #t))
2b0c755d
RW
7363 (add-before 'check 'pre-check
7364 (lambda* (#:key inputs #:allow-other-keys)
7365 ;; Tests require a running X server.
7366 (system "Xvfb :1 &")
7367 (setenv "DISPLAY" ":1")
7368 #t))
7369 (add-after 'install 'wrap-programs
7370 (lambda* (#:key inputs outputs #:allow-other-keys)
7371 (let ((out (assoc-ref outputs "out"))
7372 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7373 (python-path (getenv "PYTHONPATH")))
7374 (wrap-program (string-append out "/bin/gnome-shell")
7375 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7376 ;; FIXME: gnome-shell loads these libraries with unqualified
7377 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7378 ;; alternative might be to patch gnome-shell.
7379 `("LD_LIBRARY_PATH" ":" prefix
7380 ,(map (lambda (pkg)
7381 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7382 '("gdk-pixbuf"
7383 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7384 (for-each
7385 (lambda (prog)
7386 (wrap-program (string-append out "/bin/" prog)
7387 `("PYTHONPATH" ":" prefix (,python-path))
7388 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7389 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7390 #t)))
11e1df56
LC
7391 (replace 'glib-or-gtk-wrap
7392 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7393 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7394 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7395 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7396 ;; phase. Fix that since we don't need these.
7397 (wrap #:inputs (fold alist-delete inputs
7398 '("inkscape" "intltool" "glib:bin"))
7399 #:outputs outputs)))))))
a4df5756 7400 (native-inputs
28457ae6
KK
7401 `(("asciidoc" ,asciidoc)
7402 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7403 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7404 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7405 ("inkscape" ,inkscape)
a4df5756
SB
7406 ("intltool" ,intltool)
7407 ("pkg-config" ,pkg-config)
7408 ("python" ,python)
2b0c755d
RW
7409 ("ruby-sass" ,ruby-sass)
7410 ("sassc" ,sassc)
a76d0f03 7411 ("xsltproc" ,libxslt)
2b0c755d 7412 ;; For tests
0b4504f6 7413 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7414 (inputs
7415 `(("accountsservice" ,accountsservice)
7416 ("caribou" ,caribou)
7417 ("docbook-xsl" ,docbook-xsl)
7418 ("evolution-data-server" ,evolution-data-server)
7419 ("gcr" ,gcr)
7420 ("gdm" ,gdm)
c5db31d4 7421 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 7422 ("gjs" ,gjs)
28457ae6 7423 ("gnome-autoar" ,gnome-autoar)
a4df5756 7424 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7425 ("gnome-desktop" ,gnome-desktop)
7426 ("gnome-settings-daemon" ,gnome-settings-daemon)
7427 ("gst-plugins-base" ,gst-plugins-base)
7428 ("ibus" ,ibus)
7429 ("libcanberra" ,libcanberra)
7430 ("libcroco" ,libcroco)
d6fda4d3 7431 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756 7432 ("libgweather" ,libgweather)
e24d311f 7433 ("libnma" ,libnma)
a4df5756
SB
7434 ("libsoup" ,libsoup)
7435 ("mesa-headers" ,mesa-headers)
7436 ("mutter" ,mutter)
7437 ("network-manager-applet" ,network-manager-applet)
7438 ("polkit" ,polkit)
7439 ("pulseaudio" ,pulseaudio)
7440 ("python-pygobject" ,python-pygobject)
7441 ("startup-notification" ,startup-notification)
7442 ("telepathy-logger" ,telepathy-logger)
7443 ("upower" ,upower)
30e760f0
MB
7444 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7445 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7446 ("librsvg" ,librsvg)
2b0c755d 7447 ("geoclue" ,geoclue)))
a4df5756
SB
7448 (synopsis "Desktop shell for GNOME")
7449 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7450 (description
7451 "GNOME Shell provides core user interface functions for the GNOME desktop,
7452like switching to windows and launching applications.")
7453 (license license:gpl2+)))
c3f29bc9
RS
7454
7455(define-public gtk-vnc
7456 (package
7457 (name "gtk-vnc")
965ff023 7458 (version "0.9.0")
c3f29bc9
RS
7459 (source
7460 (origin
7461 (method url-fetch)
7462 (uri (string-append "mirror://gnome/sources/" name "/"
7463 (version-major+minor version) "/"
7464 name "-" version ".tar.xz"))
7465 (sha256
7466 (base32
965ff023 7467 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7468 (build-system gnu-build-system)
7469 (arguments
7470 '(#:configure-flags '("--with-gtk=3.0")))
7471 (propagated-inputs
7472 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7473 (inputs
7474 `(("cyrus-sasl" ,cyrus-sasl)
7475 ("gnutls" ,gnutls)
7476 ("libgcrypt" ,libgcrypt)
7477 ("pulseaudio" ,pulseaudio)))
7478 (native-inputs
7479 `(("glib:bin" ,glib "bin")
7480 ("gobject-introspection" ,gobject-introspection)
7481 ("intltool" ,intltool)
7482 ("pkg-config" ,pkg-config)
2f17e939 7483 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7484 ("vala" ,vala)))
7485 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7486 (synopsis "VNC viewer widget for GTK+")
7487 (description
7488 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7489applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7490GTK-VNC implements client side RFB protocol and authentication extensions such
7491as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7492 (license license:lgpl2.1+)))
8b877545 7493
dc69fe18
MW
7494(define-public gnome-autoar
7495 (package
7496 (name "gnome-autoar")
17969940 7497 (version "0.2.4")
dc69fe18
MW
7498 (source (origin
7499 (method url-fetch)
7500 (uri (string-append "mirror://gnome/sources/" name "/"
7501 (version-major+minor version) "/"
7502 name "-" version ".tar.xz"))
7503 (sha256
7504 (base32
17969940 7505 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
7506 (build-system glib-or-gtk-build-system)
7507 (native-inputs
17969940 7508 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
7509 ("pkg-config" ,pkg-config)))
7510 (propagated-inputs
17969940 7511 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 7512 (inputs
0a6e9e13 7513 `(("gtk+" ,gtk+)))
dc69fe18
MW
7514 (synopsis "Archives integration support for GNOME")
7515 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7516 (description
7517 "GNOME Autoar is a library which makes creating and extracting archives
7518easy, safe, and automatic.")
7519 (license license:lgpl2.1+)))
7520
b64e217f
MW
7521(define-public tracker
7522 (package
7523 (name "tracker")
caaefa40 7524 (version "2.3.4")
b64e217f
MW
7525 (source (origin
7526 (method url-fetch)
b5b0fd23 7527 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7528 (version-major+minor version) "/"
b5b0fd23 7529 "tracker-" version ".tar.xz"))
b64e217f
MW
7530 (sha256
7531 (base32
caaefa40 7532 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7533 (build-system meson-build-system)
c8bdf589 7534 (arguments
5ada561c
KK
7535 `(#:glib-or-gtk? #t
7536 #:configure-flags
7537 ;; Otherwise, the RUNPATH will lack the final path component.
7538 (list (string-append "-Dc_link_args=-Wl,-rpath="
7539 (assoc-ref %outputs "out") "/lib:"
7540 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7541 #:phases
c8bdf589 7542 (modify-phases %standard-phases
c8bdf589
RW
7543 (add-before 'check 'pre-check
7544 (lambda _
63db190a
PN
7545 ;; Some tests expect to write to $HOME.
7546 (setenv "HOME" "/tmp")
c8bdf589 7547 #t)))))
b64e217f 7548 (native-inputs
5ada561c 7549 `(("glib:bin" ,glib "bin")
b64e217f 7550 ("gobject-introspection" ,gobject-introspection)
5ada561c 7551 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7552 ("intltool" ,intltool)
7553 ("pkg-config" ,pkg-config)
7554 ("vala" ,vala)))
7555 (inputs
63db190a 7556 `(("dbus" ,dbus)
44ed6284 7557 ("sqlite" ,sqlite)
b64e217f 7558 ("libxml2" ,libxml2)
63db190a 7559 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7560 ("json-glib" ,json-glib)
63db190a 7561 ("libsoup" ,libsoup)))
b64e217f
MW
7562 (synopsis "Metadata database, indexer and search tool")
7563 (home-page "https://wiki.gnome.org/Projects/Tracker")
7564 (description
63db190a
PN
7565 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7566
7567It is a middleware component aimed at desktop application developers who want
7568their apps to browse and search user content. It's not designed to be used
7569directly by desktop users, but it provides a commandline tool named
7570@command{tracker} for the adventurous.
7571
7572Tracker allows your application to instantly perform full-text searches across
7573all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7574example. This is achieved by indexing the user's home directory in the
7575background.
7576
7577Tracker also allows your application to query and list content that the user
7578has stored. For example, GNOME Music displays all the music files that are
7579found by Tracker. This means that GNOME Music doesn't need to maintain a
7580database of its own.
7581
7582If you need to go beyond simple searches, Tracker is also a linked data
7583endpoint and it understands SPARQL. ")
7584 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7585 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7586 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7587 (license (list license:gpl2+
63db190a
PN
7588 license:bsd-3
7589 license:lgpl2.1+))))
b64e217f 7590
03be9874
KK
7591(define-public tracker-miners
7592 (package
7593 (name "tracker-miners")
de60ac2f 7594 (version "2.3.3")
03be9874
KK
7595 (source (origin
7596 (method url-fetch)
7597 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7598 (version-major+minor version)
7599 "/tracker-miners-" version ".tar.xz"))
7600 (sha256
7601 (base32
de60ac2f 7602 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7603 (build-system meson-build-system)
7604 (arguments
7605 `(#:glib-or-gtk? #t
7606 #:configure-flags
7607 (list "-Dminer_rss=false" ; libgrss is required.
7608 ;; Ensure the RUNPATH contains all installed library locations.
7609 (string-append "-Dc_link_args=-Wl,-rpath="
7610 (assoc-ref %outputs "out")
7611 "/lib/tracker-miners-2.0")
7612 ;; TODO: Enable functional tests. Currently, the following error
7613 ;; appears:
7614 ;; Exception: The functional tests require DConf to be the default
7615 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7616 "-Dfunctional_tests=false")))
7617 (native-inputs
7618 `(("dbus" ,dbus)
7619 ("intltool" ,intltool)
7620 ("glib:bin" ,glib "bin")
7621 ("gobject-introspection" ,gobject-introspection)
7622 ("pkg-config" ,pkg-config)
7623 ("python-pygobject" ,python-pygobject)))
7624 (inputs
7625 `(("exempi" ,exempi)
7626 ("ffmpeg" ,ffmpeg)
7627 ("flac" ,flac)
7628 ("giflib" ,giflib)
7629 ("glib" ,glib)
7630 ("gstreamer" ,gstreamer)
7631 ("icu4c" ,icu4c)
7632 ("libcue" ,libcue)
7633 ("libexif" ,libexif)
7634 ("libgsf" ,libgsf)
7635 ("libgxps" ,libgxps)
7636 ("libiptcdata" ,libiptcdata)
4bd428a7 7637 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7638 ("libosinfo" ,libosinfo)
7639 ("libpng" ,libpng)
7640 ("libseccomp" ,libseccomp)
7641 ("libtiff" ,libtiff)
7642 ("libvorbis" ,libvorbis)
7643 ("libxml2" ,libxml2)
7644 ("poppler" ,poppler)
7645 ("taglib" ,taglib)
7646 ("totem-pl-parser" ,totem-pl-parser)
7647 ("tracker" ,tracker)
7648 ("upower" ,upower)
7649 ("zlib" ,zlib)))
b64e217f
MW
7650 (synopsis "Metadata database, indexer and search tool")
7651 (home-page "https://wiki.gnome.org/Projects/Tracker")
7652 (description
7653 "Tracker is an advanced framework for first class objects with associated
7654metadata and tags. It provides a one stop solution for all metadata, tags,
7655shared object databases, search tools and indexing.")
7656 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7657 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7658 (license (list license:gpl2+
7659 license:lgpl2.1+
7660 license:lgpl2.0+))))
7661
8b877545
RS
7662(define-public nautilus
7663 (package
7664 (name "nautilus")
8069ff0b 7665 (version "3.34.2")
8b877545
RS
7666 (source (origin
7667 (method url-fetch)
7668 (uri (string-append "mirror://gnome/sources/" name "/"
7669 (version-major+minor version) "/"
7670 name "-" version ".tar.xz"))
7671 (sha256
7672 (base32
8069ff0b 7673 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 7674 (build-system meson-build-system)
8b877545 7675 (arguments
35e2d0cf 7676 '(#:glib-or-gtk? #t
8069ff0b
KK
7677 #:phases
7678 (modify-phases %standard-phases
7679 (add-after 'unpack 'skip-gtk-update-icon-cache
7680 ;; Don't create 'icon-theme.cache'.
7681 (lambda _
7682 (substitute* "build-aux/meson/postinstall.py"
7683 (("gtk-update-icon-cache") "true"))
7684 #t)))
8b877545
RS
7685 ;; XXX: FAIL: check-nautilus
7686 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7687 #:tests? #f))
7688 (native-inputs
35e2d0cf
R
7689 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7690 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
7691 ("gobject-introspection" ,gobject-introspection)
7692 ("intltool" ,intltool)
7693 ("pkg-config" ,pkg-config)))
8b877545 7694 (inputs
8b877545 7695 `(("dconf" ,dconf)
caf6c363 7696 ("gexiv2" ,gexiv2)
dd05e731 7697 ("gvfs" ,gvfs)
8b877545
RS
7698 ("exempi" ,exempi)
7699 ("gnome-desktop" ,gnome-desktop)
09d88905 7700 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7701 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7702 ("libseccomp" ,libseccomp)
35e2d0cf 7703 ("libselinux" ,libselinux)
09d88905 7704 ("tracker" ,tracker)
3cafb9d4 7705 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7706 ;; XXX: gtk+ is required by libnautilus-extension.pc
7707 ;;
7708 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7709 ;; package. See:
7710 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7711 ("gtk+" ,gtk+)
8b877545
RS
7712 ("libexif" ,libexif)
7713 ("libxml2" ,libxml2)))
7714 (synopsis "File manager for GNOME")
7715 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7716 (description
7717 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7718design and behaviour, giving the user a simple way to navigate and manage its
7719files.")
7720 (license license:gpl2+)))
3c697ffd
JR
7721
7722(define-public baobab
7723 (package
7724 (name "baobab")
e0c5f20c 7725 (version "3.32.0")
3c697ffd
JR
7726 (source (origin
7727 (method url-fetch)
7728 (uri (string-append
7729 "mirror://gnome/sources/" name "/"
7730 (version-major+minor version) "/"
7731 name "-" version ".tar.xz"))
7732 (sha256
7733 (base32
e0c5f20c 7734 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7735 (build-system meson-build-system)
7736 (arguments
7737 '(#:glib-or-gtk? #t))
3c697ffd
JR
7738 (native-inputs
7739 `(("intltool" ,intltool)
7740 ("pkg-config" ,pkg-config)
d233d373
RJ
7741 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7742 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7743 ("itstool" ,itstool)
7744 ("xmllint" ,libxml2)
7745 ("glib" ,glib "bin")
7746 ("vala" ,vala)))
7747 (inputs
7748 `(("gtk+" ,gtk+)))
7749 (synopsis "Disk usage analyzer for GNOME")
7750 (description
7751 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7752usage in the GNOME desktop environment. It can easily scan device volumes or
7753a specific user-requested directory branch (local or remote). Once the scan
7754is complete it provides a graphical representation of each selected folder.")
7755 (home-page "https://wiki.gnome.org/Apps/Baobab")
7756 (license license:gpl2+)))
dc050251 7757
fdba447c
RS
7758(define-public gnome-backgrounds
7759 (package
7760 (name "gnome-backgrounds")
0856b0d9 7761 (version "3.34.0")
fdba447c
RS
7762 (source
7763 (origin
7764 (method url-fetch)
7765 (uri (string-append "mirror://gnome/sources/" name "/"
7766 (version-major+minor version) "/"
7767 name "-" version ".tar.xz"))
7768 (sha256
7769 (base32
0856b0d9 7770 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 7771 (build-system meson-build-system)
fdba447c
RS
7772 (native-inputs
7773 `(("intltool" ,intltool)))
e04e8a8c 7774 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7775 (synopsis "Background images for the GNOME desktop")
7776 (description
7777 "GNOME backgrounds package contains a collection of graphics files which
7778can be used as backgrounds in the GNOME Desktop environment. Additionally,
7779the package creates the proper framework and directory structure so that you
7780can add your own files to the collection.")
7781 (license (list license:gpl2+
7782 license:cc-by2.0
7783 license:cc-by-sa2.0
7784 license:cc-by-sa3.0))))
7785
b784b1a9
RS
7786(define-public gnome-screenshot
7787 (package
7788 (name "gnome-screenshot")
d5101dab 7789 (version "3.34.0")
b784b1a9
RS
7790 (source
7791 (origin
7792 (method url-fetch)
7793 (uri (string-append "mirror://gnome/sources/" name "/"
7794 (version-major+minor version) "/"
7795 name "-" version ".tar.xz"))
7796 (sha256
7797 (base32
d5101dab 7798 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 7799 (build-system meson-build-system)
d5101dab
KK
7800 (arguments
7801 '(#:phases
7802 (modify-phases %standard-phases
7803 (add-after 'unpack 'skip-gtk-update-icon-cache
7804 ;; Don't create 'icon-theme.cache'.
7805 (lambda _
7806 (substitute* "build-aux/postinstall.py"
7807 (("gtk-update-icon-cache") "true"))
7808 #t)))))
b784b1a9
RS
7809 (native-inputs
7810 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 7811 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7812 ("intltool" ,intltool)
8356aefa 7813 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7814 ("pkg-config" ,pkg-config)))
7815 (inputs
7816 `(("gtk+" ,gtk+)
7817 ("libcanberra" ,libcanberra)
7818 ("libx11" ,libx11)
7819 ("libxext" ,libxext)))
676e7cb4 7820 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7821 (synopsis "Take pictures of your screen")
7822 (description
7823 "GNOME Screenshot is a utility used for taking screenshots of the entire
7824screen, a window or a user defined area of the screen, with optional
7825beautifying border effects.")
7826 (license license:gpl2+)))
7827
66d59111
RS
7828(define-public dconf-editor
7829 (package
7830 (name "dconf-editor")
720aa20f 7831 (version "3.34.2")
66d59111
RS
7832 (source
7833 (origin
7834 (method url-fetch)
7835 (uri (string-append "mirror://gnome/sources/" name "/"
7836 (version-major+minor version) "/"
7837 name "-" version ".tar.xz"))
7838 (sha256
7839 (base32
720aa20f 7840 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 7841 (build-system meson-build-system)
66d59111
RS
7842 (native-inputs
7843 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7844 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7845 ("intltool" ,intltool)
294ff39d
RW
7846 ("pkg-config" ,pkg-config)
7847 ("vala" ,vala)))
66d59111
RS
7848 (inputs
7849 `(("dconf" ,dconf)
7850 ("gtk+" ,gtk+)
7851 ("libxml2" ,libxml2)))
720aa20f 7852 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
7853 (synopsis "Graphical editor for GNOME's dconf configuration system")
7854 (description
7855 "Dconf-editor is a graphical tool for browsing and editing the dconf
7856configuration system for GNOME. It allows users to configure desktop
7857software that do not provide their own configuration interface.")
7858 (license license:lgpl2.1+)))
7859
96d36f38
AW
7860(define-public gnome-default-applications
7861 (package
7862 (name "gnome-default-applications")
7863 (version "0")
7864 (build-system trivial-build-system)
7865 (source #f)
7866 (propagated-inputs
8ad4f0aa
LC
7867 `(("nautilus" ,nautilus)
7868 ("evince" ,evince)))
96d36f38
AW
7869 (arguments
7870 `(#:modules ((guix build utils))
7871 #:builder
7872 (begin
7873 (use-modules (guix build utils))
7874 (let* ((out (assoc-ref %outputs "out"))
7875 (apps (string-append out "/share/applications")))
7876 (mkdir-p apps)
a6ac679f 7877 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7878 (lambda (port)
7879 (format port "[Default Applications]\n")
8ad4f0aa
LC
7880 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7881 (format port "application/pdf=evince.desktop\n")
7882 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7883 #t))))
7884 (synopsis "Default MIME type associations for the GNOME desktop")
7885 (description
7886 "Given many installed packages which might handle a given MIME type, a
7887user running the GNOME desktop probably has some preferences: for example,
7888that folders be opened by default by the Nautilus file manager, not the Baobab
7889disk usage analyzer. This package establishes that set of default MIME type
7890associations for GNOME.")
7891 (license license:gpl3+)
7892 (home-page #f)))
7893
3f1ed953
RG
7894(define-public libgovirt
7895 (package
7896 (name "libgovirt")
7897 (version "0.3.6")
7898 (source (origin
7899 (method url-fetch)
7900 (uri (string-append "mirror://gnome/sources/" name "/"
7901 (version-major+minor version) "/"
7902 name "-" version ".tar.xz"))
7903 (sha256
7904 (base32
7905 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7906 (build-system glib-or-gtk-build-system)
7907 (native-inputs
7908 `(("gettext" ,gettext-minimal)
7909 ("glib:bin" ,glib "bin")
7910 ("gobject-introspection" ,gobject-introspection)
7911 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7912 ("gtk+:bin" ,gtk+ "bin")
7913 ("pkg-config" ,pkg-config)))
7914 (inputs
7915 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7916 ("librest" ,rest)))
7917 (synopsis "GoVirt Library")
7918 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7919 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7920 (license license:gpl2+)))
7921
8672e5e9
RG
7922(define-public gnome-weather
7923 (package
7924 (name "gnome-weather")
7925 (version "3.34.0")
7926 (source (origin
7927 (method url-fetch)
7928 (uri (string-append "mirror://gnome/sources/" name "/"
7929 (version-major+minor version) "/"
7930 name "-" version ".tar.xz"))
7931 (sha256
7932 (base32
7933 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7934 (build-system meson-build-system)
7935 (native-inputs
7936 `(("gettext" ,gettext-minimal)
7937 ("glib:bin" ,glib "bin")
7938 ("gobject-introspection" ,gobject-introspection)
7939 ("gtk+:bin" ,gtk+ "bin")
7940 ("pkg-config" ,pkg-config)))
7941 (inputs
7942 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7943 ("appstream-glib" ,appstream-glib)
7944 ("geoclue" ,geoclue)
7945 ("gdk-pixbuf" ,gdk-pixbuf)
7946 ("gjs" ,gjs)
7947 ("gnome-desktop" ,gnome-desktop)
7948 ("libgweather" ,libgweather)))
4391fefc 7949 (arguments
2b68ba72
MB
7950 `(#:glib-or-gtk? #t
7951 #:phases
4391fefc
PN
7952 (modify-phases %standard-phases
7953 (add-after 'install 'fix-desktop-file
7954 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7955 ;; See https://issues.guix.gnu.org/issue/39324.
7956 (lambda* (#:key outputs #:allow-other-keys)
7957 (let* ((out (assoc-ref outputs "out"))
7958 (applications (string-append out "/share/applications")))
7959 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
7960 (("Exec=.*") "Exec=gnome-weather\n"))
7961 #t)))
7962 (add-after 'install 'wrap
7963 (lambda* (#:key inputs outputs #:allow-other-keys)
7964 (let ((out (assoc-ref outputs "out"))
7965 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7966 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7967 (wrap-program (string-append out "/bin/gnome-weather")
7968 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7969 #t))))))
8672e5e9
RG
7970 (synopsis "Weather monitoring for GNOME desktop")
7971 (description "GNOME Weather is a small application that allows you to
7972monitor the current weather conditions for your city, or anywhere in the
7973world.")
7974 (home-page "https://wiki.gnome.org/Apps/Weather")
7975 (license license:gpl2+)))
7976
dc050251
SB
7977(define-public gnome
7978 (package
7979 (name "gnome")
7980 (version (package-version gnome-shell))
7981 (source #f)
7982 (build-system trivial-build-system)
e3cfef22 7983 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7984 (propagated-inputs
8d8c6bff 7985 ;; TODO: Add or remove packages according to:
a8cda7f5 7986 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7987 `(
8d8c6bff 7988 ;; GNOME-Core-OS-Services
7922b6f7 7989 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7990 ("network-manager" ,network-manager)
7991 ("packagekit" ,packagekit)
7992 ("upower" ,upower)
7993 ;; GNOME-Core-Shell
7994 ("adwaita-icon-theme" ,adwaita-icon-theme)
7995 ("gdm" ,gdm)
7996 ("glib-networking" ,glib-networking)
7997 ("gnome-backgrounds" ,gnome-backgrounds)
7998 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7999 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
8000 ("gnome-control-center" ,gnome-control-center)
8001 ("gnome-desktop" ,gnome-desktop)
7922b6f7 8002 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 8003 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 8004 ("gnome-keyring" ,gnome-keyring)
7922b6f7 8005 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
8006 ("gnome-session" ,gnome-session)
8007 ("gnome-settings-daemon" ,gnome-settings-daemon)
8008 ("gnome-shell-extensions" ,gnome-shell-extensions)
8009 ("gnome-shell" ,gnome-shell)
8010 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 8011 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 8012 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 8013 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
8014 ("gvfs" ,gvfs)
8015 ("mutter" ,mutter)
8016 ("orca" ,orca)
d36fa50f
RG
8017 ("rygel" ,rygel)
8018 ("sushi" ,sushi)
8d8c6bff
RG
8019 ;; GNOME-Core-Utilities
8020 ("baobab" ,baobab)
8021 ("cheese" ,cheese)
ce784e6c
MB
8022 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8023 ;; only works on x86_64, so exclude it on other architectures.
8024 ,@(if (string-prefix? "x86_64" (%current-system))
8025 `(("eog" ,eog))
8026 '())
8d8c6bff
RG
8027 ("epiphany" ,epiphany)
8028 ("evince" ,evince)
8029 ("file-roller" ,file-roller)
8030 ("gedit" ,gedit)
897897bd 8031 ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
8032 ("gnome-calculator" ,gnome-calculator)
8033 ("gnome-calendar" ,gnome-calendar)
8034 ("gnome-characters" ,gnome-characters)
8035 ("gnome-clocks" ,gnome-clocks)
8036 ("gnome-contacts" ,gnome-contacts)
8037 ("gnome-disk-utility" ,gnome-disk-utility)
8038 ("gnome-font-viewer" ,gnome-font-viewer)
8039 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
8040 ; TODO: ("gnome-music" ,gnome-music)
8041 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
8042 ("gnome-screenshot" ,gnome-screenshot)
8043 ("gnome-system-monitor" ,gnome-system-monitor)
8044 ("gnome-terminal" ,gnome-terminal)
d36fa50f 8045 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
8046 ("nautilus" ,nautilus)
8047 ("simple-scan" ,simple-scan)
8048 ("totem" ,totem)
7922b6f7
RG
8049 ("yelp" ,yelp)
8050 ;; Others
8051 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
8052 ("gnome-online-accounts" ,gnome-online-accounts)
8053
8054 ;; Packages not part of GNOME proper but that are needed for a good
8055 ;; experience. See <https://bugs.gnu.org/39646>.
8056 ;; XXX: Find out exactly which ones are needed and why.
8057 ("font-cantarell" ,font-cantarell)
8058 ("font-dejavu" ,font-dejavu)
8059 ("at-spi2-core" ,at-spi2-core)
8060 ("dbus" ,dbus)
8061 ("dconf" ,dconf)
8062 ("desktop-file-utils" ,desktop-file-utils)
8063 ("gnome-default-applications" ,gnome-default-applications)
8064 ("gnome-themes-standard" ,gnome-themes-standard)
8065 ("gst-plugins-base" ,gst-plugins-base)
8066 ("gst-plugins-good" ,gst-plugins-good)
8067 ("gucharmap" ,gucharmap)
8068 ("pinentry-gnome3" ,pinentry-gnome3)
8069 ("pulseaudio" ,pulseaudio)
8070 ("shared-mime-info" ,shared-mime-info)
8071 ("system-config-printer" ,system-config-printer)
8072 ("xdg-user-dirs" ,xdg-user-dirs)
8073 ("yelp" ,yelp)
8074 ("zenity" ,zenity)))
fe4e698d 8075 (synopsis "The GNU desktop environment")
dc050251
SB
8076 (home-page "https://www.gnome.org/")
8077 (description
fe4e698d
LC
8078 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8079applications for browsing the web, editing text and images, creating
8080documents and diagrams, playing media, scanning, and much more.")
dc050251 8081 (license license:gpl2+)))
4a526711
DT
8082
8083(define-public byzanz
8084 ;; The last stable release of Byzanz was in 2011, but there have been many
8085 ;; useful commits made to the Byzanz repository since then that it would be
8086 ;; silly to use such an old release.
8087 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8088 (package
8089 (name "byzanz")
8090 (version (string-append "0.2-1." (string-take commit 7)))
8091 (source (origin
8092 (method git-fetch)
8093 (uri (git-reference
5f13bf09 8094 (url "https://git.gnome.org/browse/byzanz")
4a526711 8095 (commit commit)))
5a6527e4 8096 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
8097 (sha256
8098 (base32
8099 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8100 (build-system glib-or-gtk-build-system)
8101 (arguments
8102 '(#:phases
8103 (modify-phases %standard-phases
778d6b52 8104 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
8105 (lambda _
8106 ;; The build system cleverly detects that we're not building from
8107 ;; a release tarball and turns on -Werror for GCC.
8108 ;; Unsurprisingly, there is a warning during compilation that
8109 ;; causes the build to fail unnecessarily, so we remove the flag.
8110 (substitute* '("configure.ac")
8111 (("-Werror") ""))
778d6b52 8112 #t)))))
4a526711
DT
8113 (native-inputs
8114 `(("autoconf" ,autoconf)
8115 ("automake" ,automake)
8116 ("gnome-common" ,gnome-common)
8117 ("intltool" ,intltool)
8118 ("libtool" ,libtool)
8119 ("pkg-config" ,pkg-config)
8120 ("which" ,which)))
8121 (inputs
8122 `(("glib" ,glib)
8123 ("gstreamer" ,gstreamer)
8124 ("gst-plugins-base" ,gst-plugins-base)
8125 ("gtk+" ,gtk+)))
8126 (synopsis "Desktop recording program")
8127 (description "Byzanz is a simple desktop recording program with a
8128command-line interface. It can record part or all of an X display for a
8129specified duration and save it as a GIF encoded animated image file.")
8130 (home-page "https://git.gnome.org/browse/byzanz")
8131 (license license:gpl2+))))
3a9a4c51 8132
0ec171ec
MS
8133(define-public gsound
8134 (package
8135 (name "gsound")
8136 (version "1.0.2")
8137 (source (origin
8138 (method url-fetch)
8139 (uri (string-append "mirror://gnome/sources/" name "/"
8140 (version-major+minor version) "/"
8141 name "-" version ".tar.xz"))
8142 (sha256
8143 (base32
8144 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8145 (build-system glib-or-gtk-build-system)
8146 (native-inputs
8147 `(("pkg-config" ,pkg-config)
8148 ("gobject-introspection" ,gobject-introspection)
8149 ("vala" ,vala)))
8150 (inputs
8151 `(("glib" ,glib)
8152 ("libcanberra" ,libcanberra)))
8153 (home-page "https://wiki.gnome.org/Projects/GSound")
8154 (synopsis "GObject wrapper for libcanberra")
8155 (description
8156 "GSound is a small library for playing system sounds. It's designed to be
8157used via GObject Introspection, and is a thin wrapper around the libcanberra C
8158library.")
8159 (license license:lgpl2.1+)))
8160
3a9a4c51
RS
8161(define-public libzapojit
8162 (package
8163 (name "libzapojit")
8164 (version "0.0.3")
8165 (source (origin
8166 (method url-fetch)
8167 (uri (string-append "mirror://gnome/sources/" name "/"
8168 (version-major+minor version) "/"
8169 name "-" version ".tar.xz"))
8170 (sha256
8171 (base32
8172 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8173 (build-system gnu-build-system)
8174 (native-inputs
8175 `(("gobject-introspection" ,gobject-introspection)
8176 ("intltool" ,intltool)
8177 ("pkg-config" ,pkg-config)))
8178 (inputs
14c297fd 8179 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8180 ("json-glib" ,json-glib)
8181 ("rest" ,rest)))
8182 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8183 (synopsis "Library for accessing SkyDrive and Hotmail")
8184 (description
8185 "Libzapojit is a GLib-based library for accessing online service APIs of
8186Microsoft SkyDrive and Hotmail, using their REST protocols.")
8187 (license license:lgpl2.1+)))
9365ee1c 8188
60e2a9ae
MS
8189(define-public gnome-clocks
8190 (package
8191 (name "gnome-clocks")
feee5ff5 8192 (version "3.34.0")
60e2a9ae
MS
8193 (source (origin
8194 (method url-fetch)
8195 (uri (string-append "mirror://gnome/sources/" name "/"
8196 (version-major+minor version) "/"
8197 name "-" version ".tar.xz"))
8198 (sha256
8199 (base32
feee5ff5 8200 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8201 (build-system meson-build-system)
8202 (arguments
feee5ff5
KK
8203 '(#:glib-or-gtk? #t
8204 #:phases
8205 (modify-phases %standard-phases
8206 (add-after 'unpack 'skip-gtk-update-icon-cache
8207 ;; Don't create 'icon-theme.cache'.
8208 (lambda _
8209 (substitute* "build-aux/post-install.py"
8210 (("gtk-update-icon-cache") "true"))
8211 #t)))))
60e2a9ae
MS
8212 (native-inputs
8213 `(("vala" ,vala)
8214 ("pkg-config" ,pkg-config)
8215 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8216 ("desktop-file-utils" ,desktop-file-utils)
8217 ("gettext" ,gettext-minimal)
8218 ("itstool" ,itstool)))
8219 (inputs
8220 `(("glib" ,glib)
8221 ("gtk+" ,gtk+)
8222 ("gsound" ,gsound)
8223 ("geoclue" ,geoclue)
8224 ("geocode-glib" ,geocode-glib)
8225 ("libgweather" ,libgweather)
8226 ("gnome-desktop" ,gnome-desktop)))
8227 (home-page "https://wiki.gnome.org/Apps/Clocks")
8228 (synopsis "GNOME's clock application")
8229 (description
8230 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8231desktop. It supports world clock, stop watch, alarms, and count down timer.")
8232 (license license:gpl3+)))
8233
3c474897
KY
8234(define-public gnome-calendar
8235 (package
8236 (name "gnome-calendar")
27dd1d76 8237 (version "3.34.2")
3c474897
KY
8238 (source (origin
8239 (method url-fetch)
8240 (uri (string-append "mirror://gnome/sources/" name "/"
8241 (version-major+minor version) "/"
8242 name "-" version ".tar.xz"))
8243 (sha256
8244 (base32
27dd1d76 8245 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8246 (build-system meson-build-system)
8247 (arguments
8248 '(#:glib-or-gtk? #t
8249 ;; gnome-calendar has to be installed before the tests can be run
8250 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8251 #:tests? #f
8252 #:phases
8253 (modify-phases %standard-phases
8254 (add-after 'unpack 'skip-gtk-update-icon-cache
8255 ;; Don't create 'icon-theme.cache'.
8256 (lambda _
8257 (substitute* "build-aux/meson/meson_post_install.py"
8258 (("gtk-update-icon-cache") "true"))
8259 #t)))))
3c474897 8260 (native-inputs
a49d3e37
MS
8261 `(("gettext" ,gettext-minimal)
8262 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8263 ("pkg-config" ,pkg-config)))
8264 (inputs
27cb52a2 8265 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8266 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8267 ("libdazzle" ,libdazzle)
b63c06f1 8268 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8269 ("libgweather" ,libgweather)
8270 ("geoclue" ,geoclue)))
27cb52a2
RG
8271 (propagated-inputs
8272 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8273 (home-page "https://wiki.gnome.org/Apps/Calendar")
8274 (synopsis "GNOME's calendar application")
8275 (description
8276 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8277desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8278 (license license:gpl3+)))
8279
57b14665
MS
8280(define-public gnome-todo
8281 (package
8282 (name "gnome-todo")
9f3c6c88 8283 (version "3.28.1")
57b14665
MS
8284 (source (origin
8285 (method url-fetch)
8286 (uri (string-append "mirror://gnome/sources/" name "/"
8287 (version-major+minor version) "/"
8288 name "-" version ".tar.xz"))
8289 (sha256
8290 (base32
b17b2945
DM
8291 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8292 (patches
8293 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8294 (build-system meson-build-system)
8295 (arguments
8296 '(#:glib-or-gtk? #t
8297 #:phases (modify-phases %standard-phases
8298 (add-after
8299 'install 'wrap-gnome-todo
8300 (lambda* (#:key inputs outputs #:allow-other-keys)
8301 (let ((out (assoc-ref outputs "out"))
8302 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8303 (python-path (getenv "PYTHONPATH")))
8304 (wrap-program (string-append out "/bin/gnome-todo")
8305 ;; XXX: gi plugins are broken.
8306 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8307 ;; For plugins.
8308 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8309 `("PYTHONPATH" ":" prefix (,python-path))))
8310 #t)))))
8311 (native-inputs
8312 `(("gettext" ,gettext-minimal)
8313 ("gobject-introspection" ,gobject-introspection)
8314 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8315 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8316 ("pkg-config" ,pkg-config)))
8317 (inputs
8318 `(("rest" ,rest) ; For Todoist plugin
8319 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8320 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8321 ("libical" ,libical)
8322 ("libpeas" ,libpeas)
8323 ("python-pygobject" ,python-pygobject)
8324 ("evolution-data-server" ,evolution-data-server)
14c297fd 8325 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8326 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8327 (home-page "https://wiki.gnome.org/Apps/Todo")
8328 (synopsis "GNOME's ToDo Application")
8329 (description
8330 "GNOME To Do is a simplistic personal task manager designed to perfectly
8331fit the GNOME desktop.")
8332 (license license:gpl3+)))
8333
ab179eaf
SB
8334(define-public gnome-dictionary
8335 (package
8336 (name "gnome-dictionary")
cf81ddef 8337 (version "3.26.1")
ab179eaf
SB
8338 (source (origin
8339 (method url-fetch)
8340 (uri (string-append "mirror://gnome/sources/" name "/"
8341 (version-major+minor version) "/"
8342 name "-" version ".tar.xz"))
8343 (sha256
8344 (base32
cf81ddef
LC
8345 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8346 (build-system meson-build-system)
2776b5d5
MB
8347 (arguments '(#:glib-or-gtk? #t
8348 #:phases (modify-phases %standard-phases
8349 (add-after 'unpack 'patch-install-script
8350 (lambda _
8351 ;; This script attempts to compile glib schemas
8352 ;; and create an empty MIME database. We do
8353 ;; that elsewhere, so prevent it from running.
8354 (substitute* "build-aux/post-install.sh"
8355 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8356 #t)))))
ab179eaf
SB
8357 (native-inputs
8358 `(("glib:bin" ,glib "bin")
8359 ("gobject-introspection" ,gobject-introspection)
8360 ("intltool" ,intltool)
8361 ("itstool" ,itstool)
8362 ("pkg-config" ,pkg-config)
8363 ("xmllint" ,libxml2)))
8364 (inputs
8365 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8366 ("gtk+" ,gtk+)))
8367 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8368 (synopsis "Look up words in dictionary sources")
8369 (description
8370 "GNOME Dictionary can look for the definition or translation of a word in
8371existing databases over the internet.")
8372 (license license:gpl3+)))
8373
d13f3a03 8374(define-public gnome-tweaks
9365ee1c 8375 (package
d13f3a03 8376 (name "gnome-tweaks")
4add1bae 8377 (version "3.34.0")
9365ee1c
JN
8378 (source (origin
8379 (method url-fetch)
d13f3a03 8380 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8381 (version-major+minor version) "/"
d13f3a03
RW
8382 "gnome-tweaks-" version ".tar.xz"))
8383 (patches
8384 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8385 (sha256
8386 (base32
4add1bae 8387 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 8388 (build-system meson-build-system)
9365ee1c 8389 (arguments
d13f3a03
RW
8390 `(#:glib-or-gtk? #t
8391 #:configure-flags '("-Dlocalstatedir=/tmp"
8392 "-Dsysconfdir=/tmp")
9365ee1c 8393 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8394 ,@%meson-build-system-modules)
8395 #:phases
8396 (modify-phases %standard-phases
4add1bae
KK
8397 (add-after 'unpack 'skip-gtk-update-icon-cache
8398 ;; Don't create 'icon-theme.cache'.
8399 (lambda _
8400 (substitute* "meson-postinstall.py"
8401 (("gtk-update-icon-cache") "true"))
8402 #t))
d13f3a03
RW
8403 (add-after 'install 'wrap
8404 (@@ (guix build python-build-system) wrap))
8405 (add-after 'wrap 'wrap-gi-typelib
8406 (lambda* (#:key inputs outputs #:allow-other-keys)
8407 (let ((out (assoc-ref outputs "out"))
8408 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8409 (wrap-program (string-append out "/bin/gnome-tweaks")
8410 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8411 #t)))))
9365ee1c 8412 (native-inputs
4add1bae 8413 `(("intltool" ,intltool)
9365ee1c
JN
8414 ("pkg-config" ,pkg-config)))
8415 (inputs
c7fc414e
RH
8416 `(("gnome-desktop" ,gnome-desktop)
8417 ("gtk+" ,gtk+)
9365ee1c
JN
8418 ("gobject-introspection" ,gobject-introspection)
8419 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 8420 ("libhandy" ,libhandy)
c7fc414e
RH
8421 ("libnotify" ,libnotify)
8422 ("libsoup" ,libsoup)
8423 ("nautilus" ,nautilus)
8424 ("python" ,python)
8425 ("python-pygobject" ,python-pygobject)))
9365ee1c 8426 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8427 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8428 (description
d13f3a03 8429 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8430GNOME 3. This includes things like the fonts used in user interface elements,
8431alternative user interface themes, changes in window management behavior,
8432GNOME Shell appearance and extension, etc.")
8433 (license license:gpl3+)))
813f814a 8434
32ac717c
DT
8435(define-public gnome-shell-extensions
8436 (package
8437 (name "gnome-shell-extensions")
c7305466 8438 (version "3.34.2")
32ac717c
DT
8439 (source (origin
8440 (method url-fetch)
8441 (uri (string-append "mirror://gnome/sources/" name "/"
8442 (version-major+minor version) "/"
8443 name "-" version ".tar.xz"))
8444 (sha256
8445 (base32
c7305466 8446 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 8447 (build-system meson-build-system)
32ac717c 8448 (arguments
100f625b 8449 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8450 (native-inputs
c9ea8873
LP
8451 `(("glib:bin" ,glib "bin")
8452 ("intltool" ,intltool)
32ac717c
DT
8453 ("pkg-config" ,pkg-config)))
8454 (propagated-inputs
c9ea8873 8455 `(("glib" ,glib)))
32ac717c
DT
8456 (synopsis "Extensions for GNOME Shell")
8457 (description "GNOME Shell extensions modify and extend GNOME Shell
8458functionality and behavior.")
8459 (home-page "https://extensions.gnome.org/")
8460 (license license:gpl3+)))
8461
813f814a
DT
8462(define-public arc-theme
8463 (package
8464 (name "arc-theme")
37781323 8465 (version "20190917")
813f814a 8466 (source (origin
a18f8eaf
BH
8467 (method git-fetch)
8468 (uri (git-reference
8469 (url "https://github.com/NicoHood/arc-theme.git")
8470 (commit version)))
8471 (file-name (git-file-name name version))
813f814a
DT
8472 (sha256
8473 (base32
37781323 8474 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8475 (build-system gnu-build-system)
d88884fa
EF
8476 (arguments
8477 '(#:phases
8478 (modify-phases %standard-phases
8479 ;; autogen.sh calls configure at the end of the script.
8480 (replace 'bootstrap
4690e3a4
MC
8481 (lambda _ (invoke "autoreconf" "-vfi")))
8482 (add-before 'build 'set-home ;placate Inkscape
8483 (lambda _
8484 (setenv "HOME" (getcwd))
8485 #t)))))
813f814a
DT
8486 (native-inputs
8487 `(("autoconf" ,autoconf)
8488 ("automake" ,automake)
a18f8eaf
BH
8489 ("glib" ,glib "bin") ; for glib-compile-resources
8490 ("gnome-shell" ,gnome-shell)
8491 ("gtk+" ,gtk+)
8492 ("inkscape" ,inkscape)
8493 ("optipng" ,optipng)
8494 ("pkg-config" ,pkg-config)
bed24ecf 8495 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8496 (synopsis "A flat GTK+ theme with transparent elements")
8497 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
84982, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8499like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8500 (home-page "https://github.com/horst3180/arc-theme")
8501 ;; No "or later" language found.
a18f8eaf 8502 (license license:gpl3+)))
9987c57c 8503
d935e6a1 8504(define-public faba-icon-theme
9987c57c 8505 (package
d935e6a1 8506 (name "faba-icon-theme")
2eee7ee3 8507 (version "4.3")
d935e6a1
BT
8508 (source
8509 (origin
757e4027
TGR
8510 (method git-fetch)
8511 (uri (git-reference
8512 (url "https://github.com/snwh/faba-icon-theme.git")
8513 (commit (string-append "v" version))))
8514 (file-name (git-file-name name version))
d935e6a1 8515 (sha256
757e4027 8516 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8517 (build-system meson-build-system)
9987c57c 8518 (arguments
82da291a 8519 `(#:phases
9987c57c 8520 (modify-phases %standard-phases
82da291a 8521 (add-before 'configure 'disable-post-install
9987c57c 8522 (lambda _
82da291a
JL
8523 (substitute* "meson.build"
8524 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8525 (native-inputs
8526 `(("autoconf" ,autoconf)
8527 ("automake" ,automake)))
d935e6a1
BT
8528 (synopsis "Faba icon theme")
8529 (description
8530 "Faba is a minimal icon set used as a basis for other themes such as
8531Moka")
8532 (home-page "https://snwh.org/moka")
8533 (license (list license:lgpl3+
8534 license:cc-by-sa4.0))))
8535
9987c57c
DT
8536(define-public moka-icon-theme
8537 (package
8b0e4177 8538 (inherit faba-icon-theme)
9987c57c 8539 (name "moka-icon-theme")
105a3625 8540 (version "5.4.0")
8c3f2170
TGR
8541 (source
8542 (origin
8543 (method git-fetch)
8544 (uri (git-reference
8545 (url "https://github.com/snwh/moka-icon-theme.git")
8546 (commit (string-append "v" version))))
8547 (file-name (git-file-name name version))
8548 (sha256
8549 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8550 (propagated-inputs
8551 ;; Moka is based on Faba by using it as a fallback icon set instead of
8552 ;; bundling it, so we need to add it as a propagated input.
8553 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8554 (synopsis "Moka icon theme")
8555 (description "Moka is a stylized desktop icon set, designed to be clear,
8556simple and consistent.")
fedde43b
BT
8557 (license (list license:gpl3+
8558 license:cc-by-sa4.0))))
6fd8f8d6
DT
8559
8560(define-public arc-icon-theme
8561 (package
8562 (name "arc-icon-theme")
c4180240 8563 (version "20161122")
bbf66cbf
TGR
8564 (source
8565 (origin
8566 (method git-fetch)
8567 (uri (git-reference
8568 (url "https://github.com/horst3180/arc-icon-theme.git")
8569 (commit version)))
8570 (file-name (git-file-name name version))
8571 (sha256
8572 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8573 (build-system gnu-build-system)
9e1ede95
JL
8574 (arguments
8575 `(#:phases
8576 (modify-phases %standard-phases
8577 (add-after 'unpack 'disable-configure-during-bootstrap
8578 (lambda _
8579 (substitute* "autogen.sh"
8580 (("^\"\\$srcdir/configure\".*") ""))
8581 #t)))))
6fd8f8d6
DT
8582 (native-inputs
8583 `(("autoconf" ,autoconf)
8584 ("automake" ,automake)))
8585 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8586 (propagated-inputs
8587 `(("moka-icon-theme" ,moka-icon-theme)))
8588 (synopsis "Arc icon theme")
8589 (description "The Arc icon theme provides a set of icons matching the
8590style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8591the Moka icon theme.")
8592 (home-page "https://github.com/horst3180/arc-icon-theme")
8593 (license license:gpl3+)))
6064a4e8
LF
8594
8595(define-public folks
8596 (package
8597 (name "folks")
fd11f6f3 8598 (version "0.13.1")
6064a4e8
LF
8599 (source (origin
8600 (method url-fetch)
8601 (uri (string-append
e5f4796e 8602 "mirror://gnome/sources/folks/"
6064a4e8 8603 (version-major+minor version) "/"
e5f4796e 8604 "folks-" version ".tar.xz"))
6064a4e8
LF
8605 (sha256
8606 (base32
fd11f6f3
KK
8607 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8608 (build-system meson-build-system)
8609 (arguments
8610 '(#:phases
8611 (modify-phases %standard-phases
8612 (add-after 'unpack 'skip-gtk-update-icon-cache
8613 ;; Don't create 'icon-theme.cache'.
8614 (lambda _
8615 (substitute* "meson_post_install.py"
8616 (("gtk-update-icon-cache") "true"))
8617 #t)))))
6064a4e8
LF
8618 (inputs
8619 `(("bdb" ,bdb)
8620 ("dbus-glib" ,dbus-glib)
8621 ("evolution-data-server" ,evolution-data-server)
8622 ("glib" ,glib)
8623 ("libgee" ,libgee)
fd11f6f3 8624 ("readline" ,readline)
6064a4e8
LF
8625 ("telepathy-glib" ,telepathy-glib)))
8626 (native-inputs
fd11f6f3
KK
8627 `(("glib:bin" ,glib "bin")
8628 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
8629 ("intltool" ,intltool)
8630 ("pkg-config" ,pkg-config)
8631 ("vala" ,vala)))
8632 (synopsis "Library to aggregate data about people")
8633 (description "Libfolks is a library that aggregates information about people
8634from multiple sources (e.g., Telepathy connection managers for IM contacts,
8635Evolution Data Server for local contacts, libsocialweb for web service contacts,
8636etc.) to create metacontacts. It's written in Vala, which generates C code when
8637compiled.")
8638 (home-page "https://wiki.gnome.org/Projects/Folks")
8639 (license license:lgpl2.1+)))
01ea778f
LF
8640
8641(define-public gfbgraph
8642 (package
8643 (name "gfbgraph")
8644 (version "0.2.3")
8645 (source (origin
8646 (method url-fetch)
8647 (uri (string-append
237d4cf7 8648 "mirror://gnome/sources/gfbgraph/"
01ea778f 8649 (version-major+minor version) "/"
237d4cf7 8650 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8651 (sha256
8652 (base32
8653 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8654 (build-system glib-or-gtk-build-system)
8655 (arguments
8656 `(#:tests? #f ; Tests appear to require the network.
8657 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8658 #:configure-flags '("--disable-gtk-doc"
8659 "--disable-static"
8660 "--enable-introspection")))
8661 (native-inputs
8662 `(("pkg-config" ,pkg-config)
8663 ("gobject-introspection" ,gobject-introspection)))
8664 (inputs
8665 `(("json-glib" ,json-glib)
14c297fd 8666 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8667 ("rest" ,rest)))
8668 (synopsis "GLib/GObject wrapper for the Facebook API")
8669 (description "This library allows you to use the Facebook API from
8670GLib/GObject code.")
8671 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8672 (license license:lgpl2.1+)))
3920868c 8673
8674(define-public libgnomekbd
8675 (package
8676 (name "libgnomekbd")
70f2b0f9 8677 (version "3.26.1")
3920868c 8678 (source (origin
8679 (method url-fetch)
d47fa82d 8680 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8681 (version-major+minor version) "/"
d47fa82d 8682 "libgnomekbd-" version ".tar.xz"))
3920868c 8683 (sha256
8684 (base32
70f2b0f9 8685 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8686 (build-system gnu-build-system)
8687 (native-inputs
8688 `(("pkg-config" ,pkg-config)
8689 ("glib" ,glib "bin")
8690 ("intltool" ,intltool)))
8691 (propagated-inputs
8692 ;; Referred to in .h files and .pc.
8693 `(("glib" ,glib)
8694 ("gtk+" ,gtk+)
8695 ("libxklavier" ,libxklavier)))
8696 (home-page "https://www.gnome.org")
8697 (synopsis "GNOME keyboard configuration library")
8698 (description
8699 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8700environment, which can notably display keyboard layouts.")
8701 (license license:lgpl2.0+)))
85327d0d 8702
8703;;; This package is no longer maintained:
8704;;; https://wiki.gnome.org/Attic/LibUnique
8705;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8706;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8707(define-public libunique
8708 (package
8709 (name "libunique")
8710 (version "3.0.2")
8711 (source (origin
8712 (method url-fetch)
8713 (uri (string-append "mirror://gnome/sources/" name "/"
8714 (version-major+minor version) "/"
8715 name "-" version ".tar.xz"))
8716 (sha256
8717 (base32
8718 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8719 (build-system glib-or-gtk-build-system)
8720 (arguments
8721 `(#:configure-flags '("--disable-static"
8722 "--disable-dbus" ; use gdbus
8723 "--enable-introspection")))
8724 (native-inputs
8725 `(("pkg-config" ,pkg-config)
8726 ("gobject-introspection" ,gobject-introspection)
8727 ("glib:bin" ,glib "bin")
8728 ("gtk-doc" ,gtk-doc)))
8729 (propagated-inputs
8730 ;; Referred to in .h files and .pc.
8731 `(("gtk+" ,gtk+)))
8732 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8733 (synopsis "Library for writing single instance applications")
8734 (description
8735 "Libunique is a library for writing single instance applications. If you
8736launch a single instance application twice, the second instance will either just
8737quit or will send a message to the running instance. Libunique makes it easy to
8738write this kind of application, by providing a base class, taking care of all
8739the IPC machinery needed to send messages to a running instance, and also
8740handling the startup notification side.")
8741 (license license:lgpl2.1+)))
54021cd8
RS
8742
8743(define-public gnome-calculator
8744 (package
8745 (name "gnome-calculator")
4cb09502 8746 (version "3.34.1")
54021cd8
RS
8747 (source
8748 (origin
8749 (method url-fetch)
8750 (uri (string-append "mirror://gnome/sources/" name "/"
8751 (version-major+minor version) "/"
8752 name "-" version ".tar.xz"))
8753 (sha256
8754 (base32
4cb09502 8755 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8756 (build-system meson-build-system)
8757 (arguments '(#:glib-or-gtk? #t))
54021cd8 8758 (native-inputs
4cb09502
MB
8759 `(("gettext" ,gettext-minimal)
8760 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8761 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8762 ("itstool" ,itstool)
2d475910 8763 ("vala" ,vala)
54021cd8
RS
8764 ("pkg-config" ,pkg-config)))
8765 (inputs
112e9083 8766 `(("glib" ,glib)
07ace641 8767 ("gtksourceview" ,gtksourceview)
4cb09502 8768 ("libgee" ,libgee)
54021cd8 8769 ("libsoup" ,libsoup)
112e9083 8770 ("libxml2" ,libxml2)
2c2da7ec 8771 ("mpc" ,mpc)
54021cd8
RS
8772 ("mpfr" ,mpfr)))
8773 (home-page "https://wiki.gnome.org/Apps/Calculator")
8774 (synopsis "Desktop calculator")
8775 (description
8776 "Calculator is an application that solves mathematical equations and
8777is suitable as a default application in a Desktop environment.")
8778 (license license:gpl3)))
0bd69759
RS
8779
8780(define-public xpad
8781 (package
8782 (name "xpad")
c85626bb 8783 (version "5.1.0")
0bd69759
RS
8784 (source
8785 (origin
8786 (method url-fetch)
08fda9c6
R
8787 (uri (string-append "https://launchpad.net/xpad/trunk/"
8788 version "/+download/"
0bd69759
RS
8789 name "-" version ".tar.bz2"))
8790 (sha256
8791 (base32
c85626bb 8792 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8793 (build-system gnu-build-system)
8794 (native-inputs
08fda9c6
R
8795 `(("autoconf" ,autoconf)
8796 ("automake" ,automake)
8797 ("gtk+:bin" ,gtk+ "bin")
8798 ("intltool" ,intltool)
0bd69759
RS
8799 ("pkg-config" ,pkg-config)))
8800 (inputs
c72647fb 8801 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8802 ("libsm" ,libsm)))
8803 (home-page "https://wiki.gnome.org/Apps/Xpad")
8804 (synopsis "Virtual sticky note")
8805 (description
8806 "Xpad is a sticky note that strives to be simple, fault tolerant,
8807and customizable. Xpad consists of independent pad windows, each is
8808basically a text box in which notes can be written.")
8809 (license license:gpl3+)))
3ad7dce1
RS
8810
8811(define-public gucharmap
c60063ea
RW
8812 (let ((unicode-files
8813 '(("Blocks.txt"
1f8b5515 8814 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8815 ("DerivedAge.txt"
1f8b5515 8816 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8817 ("NamesList.txt"
1f8b5515 8818 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8819 ("Scripts.txt"
1f8b5515 8820 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8821 ("UnicodeData.txt"
1f8b5515 8822 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8823 ("Unihan.zip"
1f8b5515 8824 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8825 (package
8826 (name "gucharmap")
1f8b5515 8827 (version "12.0.1")
c60063ea
RW
8828 (source
8829 (origin
8830 (method url-fetch)
8831 (uri (string-append "mirror://gnome/sources/" name "/"
8832 (version-major+minor version) "/"
8833 name "-" version ".tar.xz"))
8834 (sha256
8835 (base32
1f8b5515 8836 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8837 (build-system glib-or-gtk-build-system)
8838 (arguments
8839 `(#:modules ((ice-9 match)
8840 (guix build glib-or-gtk-build-system)
8841 (guix build utils))
8842 #:configure-flags
8843 (list "--with-unicode-data=../unicode-data")
8844 #:phases
8845 (modify-phases %standard-phases
8846 (add-after 'unpack 'prepare-unicode-data
8847 (lambda* (#:key inputs #:allow-other-keys)
8848 (mkdir-p "../unicode-data")
8849 (with-directory-excursion "../unicode-data"
8850 (for-each (match-lambda
8851 ((file _)
8852 (install-file (assoc-ref inputs file) ".")))
8853 ',unicode-files))
8854 #t)))))
8855 (native-inputs
8856 `(("desktop-file-utils" ,desktop-file-utils)
8857 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8858 ("gobject-introspection" ,gobject-introspection)
8859 ("intltool" ,intltool)
8860 ("itstool" ,itstool)
8861 ("pkg-config" ,pkg-config)
8862 ,@(map (match-lambda
8863 ((file hash)
8864 `(,file
8865 ,(origin
8866 (method url-fetch)
8867 (uri (string-append
1f8b5515 8868 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8869 file))
8870 (sha256 (base32 hash))))))
8871 unicode-files)
8872 ("unzip" ,unzip)))
8873 (inputs
8874 `(("gtk+" ,gtk+)
8875 ("xmllint" ,libxml2)))
8876 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8877 (synopsis "Unicode character picker and font browser")
8878 (description
8879 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8880characters and categories for the installed fonts, and to examine their
8881detailed properties. It is an easy way to find the character you might
8882only know by its Unicode name or code point.")
c60063ea 8883 (license license:gpl3+))))
04ce840a
RS
8884
8885(define-public bluefish
8886 (package
8887 (name "bluefish")
290fe81d 8888 (version "2.2.11")
04ce840a
RS
8889 (source
8890 (origin
8891 (method url-fetch)
8892 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8893 "bluefish-" version ".tar.gz"))
04ce840a 8894 (sha256
290fe81d 8895 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8896 (build-system gnu-build-system)
8897 (native-inputs
8898 `(("desktop-file-utils" ,desktop-file-utils)
8899 ("intltool" ,intltool)
8900 ("pkg-config" ,pkg-config)))
8901 (inputs
8902 `(("enchant" ,enchant)
8903 ("gtk+" ,gtk+)
290fe81d 8904 ("python" ,python-wrapper)
04ce840a
RS
8905 ("xmllint" ,libxml2)
8906 ("gucharmap" ,gucharmap)))
8907 (home-page "http://bluefish.openoffice.nl")
8908 (synopsis "Web development studio")
8909 (description
8910 "Bluefish is an editor targeted towards programmers and web developers,
8911with many options to write web sites, scripts and other code.
8912Bluefish supports many programming and markup languages.")
8913 (license license:gpl3+)))
1f6a73ee
RS
8914
8915(define-public gnome-system-monitor
8916 (package
8917 (name "gnome-system-monitor")
083cffaf 8918 (version "3.32.1")
1f6a73ee
RS
8919 (source
8920 (origin
8921 (method url-fetch)
8922 (uri (string-append "mirror://gnome/sources/" name "/"
8923 (version-major+minor version) "/"
8924 name "-" version ".tar.xz"))
8925 (sha256
8926 (base32
083cffaf 8927 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8928 (build-system meson-build-system)
8929 (arguments
8930 '(#:glib-or-gtk? #t
8931 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8932 (native-inputs
8933 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8934 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8935 ("intltool" ,intltool)
8936 ("itstool" ,itstool)
8937 ("libgtop" ,libgtop)
4985d9aa 8938 ("polkit" ,polkit)
1f6a73ee
RS
8939 ("pkg-config" ,pkg-config)))
8940 (inputs
8941 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8942 ("gtk+" ,gtk+)
8943 ("gtkmm" ,gtkmm)
8944 ("librsvg" ,librsvg)
4985d9aa
RW
8945 ("libxml2" ,libxml2)
8946 ("libwnck" ,libwnck)))
1f6a73ee
RS
8947 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8948 (synopsis "Process viewer and system resource monitor for GNOME")
8949 (description
8950 "GNOME System Monitor is a GNOME process viewer and system monitor with
8951an attractive, easy-to-use interface. It has features, such as a tree view
8952for process dependencies, icons for processes, the ability to hide processes,
8953graphical time histories of CPU/memory/swap usage and the ability to
8954kill/reinice processes.")
8955 (license license:gpl2+)))
3e00ac47
SB
8956
8957(define-public python-pyatspi
8958 (package
8959 (name "python-pyatspi")
4f937a32 8960 (version "2.34.0")
3e00ac47
SB
8961 (source (origin
8962 (method url-fetch)
8963 (uri (string-append
8964 "mirror://gnome/sources/pyatspi/"
8965 (version-major+minor version)
8966 "/pyatspi-" version ".tar.xz"))
8967 (sha256
8968 (base32
4f937a32 8969 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8970 (build-system gnu-build-system)
b95af3f6
JL
8971 (arguments
8972 `(#:phases
8973 (modify-phases %standard-phases
8974 (add-before 'build 'fix-atk-load
8975 (lambda _
8976 (substitute* "pyatspi/__init__.py"
8977 (("from gi.repository import Atspi")
8978 "gi.require_version('Gtk', '3.0')
8979from gi.repository import Gtk
8980from gi.repository import Atspi"))
8981 #t)))))
3e00ac47
SB
8982 (native-inputs
8983 `(("pkg-config" ,pkg-config)))
8984 (inputs
06fe35cf
CB
8985 `(("python" ,python)))
8986 (propagated-inputs
8987 `(("python-pygobject" ,python-pygobject)))
3e00ac47
SB
8988 (synopsis "Python client bindings for D-Bus AT-SPI")
8989 (home-page "https://wiki.linuxfoundation.org/accessibility\
8990/atk/at-spi/at-spi_on_d-bus")
8991 (description
8992 "This package includes a python client library for the AT-SPI D-Bus
8993accessibility infrastructure.")
8994 (license license:lgpl2.0)
8995 (properties '((upstream-name . "pyatspi")))))
53201c0d 8996
5d31933e
CB
8997(define-public python2-pyatspi
8998 (package
8999 (inherit python-pyatspi)
9000 (name "python2-pyatspi")
9001 (inputs
06fe35cf
CB
9002 `(("python" ,python-2)))
9003 (propagated-inputs
9004 `(("python-pygobject" ,python2-pygobject)))))
5d31933e 9005
53201c0d
SB
9006(define-public orca
9007 (package
9008 (name "orca")
30e76da1 9009 (version "3.34.1")
53201c0d
SB
9010 (source (origin
9011 (method url-fetch)
9012 (uri (string-append
9013 "mirror://gnome/sources/" name "/"
9014 (version-major+minor version) "/"
9015 name "-" version ".tar.xz"))
9016 (sha256
9017 (base32
30e76da1 9018 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
9019 (build-system glib-or-gtk-build-system)
9020 (arguments
9021 '(#:phases
9022 (modify-phases %standard-phases
9023 (add-before 'configure 'qualify-xkbcomp
9024 (lambda* (#:key inputs #:allow-other-keys)
9025 (let ((xkbcomp (string-append
9026 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9027 (substitute* "src/orca/orca.py"
9028 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9029 #t))
9030 (add-after 'install 'wrap-orca
9031 (lambda* (#:key outputs #:allow-other-keys)
9032 (let* ((out (assoc-ref outputs "out"))
9033 (prog (string-append out "/bin/orca")))
9034 (wrap-program prog
9035 `("GI_TYPELIB_PATH" ":" prefix
9036 (,(getenv "GI_TYPELIB_PATH")))
9037 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9038 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9039 `("PYTHONPATH" ":" prefix
9040 (,(getenv "PYTHONPATH")))))
9041 #t)))))
9042 (native-inputs
9043 `(("intltool" ,intltool)
9044 ("itstool" ,itstool)
9045 ("pkg-config" ,pkg-config)
9046 ("xmllint" ,libxml2)))
9047 (inputs
9048 `(("at-spi2-atk" ,at-spi2-atk)
9049 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9050 ("gstreamer" ,gstreamer)
9051 ("gst-plugins-base" ,gst-plugins-base)
9052 ("gst-plugins-good" ,gst-plugins-good)
9053 ("gtk+" ,gtk+)
9054 ("python" ,python)
9055 ("python-pygobject" ,python-pygobject)
9056 ("python-pyatspi" ,python-pyatspi)
9057 ("python-speechd" ,speech-dispatcher)
9058 ("xkbcomp" ,xkbcomp)))
9059 (synopsis
9060 "Screen reader for individuals who are blind or visually impaired")
9061 (home-page "https://wiki.gnome.org/Projects/Orca")
9062 (description
9063 "Orca is a screen reader that provides access to the graphical desktop
9064via speech and refreshable braille. Orca works with applications and toolkits
9065that support the Assistive Technology Service Provider Interface (AT-SPI).")
9066 (license license:lgpl2.1+)))
411ba511
LC
9067
9068(define-public gspell
9069 (package
9070 (name "gspell")
7a6bbe9b 9071 (version "1.8.2")
411ba511
LC
9072 (source (origin
9073 (method url-fetch)
9074 (uri (string-append "mirror://gnome/sources/" name "/"
9075 (version-major+minor version) "/"
9076 name "-" version ".tar.xz"))
9077 (sha256
9078 (base32
7a6bbe9b 9079 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
9080 (patches (search-patches "gspell-dash-test.patch"))))
9081 (build-system glib-or-gtk-build-system)
9082 (arguments
d0f50164 9083 '(#:configure-flags (list "--enable-vala")
9084 #:phases
411ba511
LC
9085 (modify-phases %standard-phases
9086 (add-before 'check 'pre-check
9087 (lambda* (#:key inputs #:allow-other-keys)
9088 ;; Tests require a running X server.
9089 (system "Xvfb :1 &")
9090 (setenv "DISPLAY" ":1")
9091
9092 ;; For the missing /etc/machine-id.
9093 (setenv "DBUS_FATAL_WARNINGS" "0")
9094
9095 ;; Allow Enchant and its Aspell backend to find the en_US
9096 ;; dictionary.
9097 (setenv "ASPELL_DICT_DIR"
9098 (string-append (assoc-ref inputs "aspell-dict-en")
9099 "/lib/aspell"))
9100 #t)))))
9101 (inputs
eccd35be 9102 `(("gtk+" ,gtk+)
a801ae4c
TGR
9103 ("glib" ,glib)
9104 ("iso-codes" ,iso-codes)))
411ba511
LC
9105 (native-inputs
9106 `(("glib" ,glib "bin")
26ba3f07 9107 ("gobject-introspection" ,gobject-introspection)
411ba511 9108 ("pkg-config" ,pkg-config)
d0f50164 9109 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
9110 ("xmllint" ,libxml2)
9111
9112 ;; For tests.
a801ae4c 9113 ("aspell-dict-en" ,aspell-dict-en)
ff337525 9114 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 9115 (propagated-inputs
9b1bb757 9116 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
9117 (home-page "https://wiki.gnome.org/Projects/gspell")
9118 (synopsis "GNOME's alternative spell checker")
9119 (description
9120 "gspell provides a flexible API to add spell-checking to a GTK+
9121application. It provides a GObject API, spell-checking to text entries and
9122text views, and buttons to choose the language.")
9123 (license license:gpl2+)))
d1d739fa
CM
9124
9125(define-public gnome-planner
9126 (package
9127 (name "gnome-planner")
9128 (version "0.14.6")
9129 (source (origin
9130 (method url-fetch)
9131 (uri (string-append "mirror://gnome/sources/planner/"
9132 (version-major+minor version) "/planner-"
9133 version ".tar.xz"))
9134 (sha256
9135 (base32
9136 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9137 (build-system glib-or-gtk-build-system)
9138 (arguments
9139 ;; Disable the Python bindings because the Planner program functions
9140 ;; without them, and (as of 2017-06-13) we have not packaged all of
9141 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
9142 `(#:configure-flags
9143 (list "--disable-python"
9144 ,@(if (string=? "aarch64-linux" (%current-system))
9145 '("--build=aarch64-unknown-linux-gnu")
9146 '()))))
d1d739fa
CM
9147 (inputs
9148 `(("libgnomecanvas" ,libgnomecanvas)
9149 ("libgnomeui" ,libgnomeui)
9150 ("libglade" ,libglade)
9151 ("gnome-vfs" ,gnome-vfs)
9152 ("gconf" ,gconf)
9153 ("libxml2" ,libxml2)
9154 ("libxslt" ,libxslt)
9155 ("gtk+" ,gtk+)
9156 ("glib" ,glib)))
9157 (native-inputs
9158 `(("intltool" ,intltool)
9159 ("scrollkeeper" ,scrollkeeper)
9160 ("pkg-config" ,pkg-config)))
9161 (home-page "https://wiki.gnome.org/Apps/Planner")
9162 (synopsis "Project management software for the GNOME desktop")
9163 (description
9164 "GNOME Planner is a project management tool based on the Work Breakdown
9165Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9166the resources, tasks, and constraints that you define, Planner generates
9167various views into a project. For example, Planner can show a Gantt chart of
9168the project. It can show a detailed summary of tasks including their
9169duration, cost, and current progress. It can also show a report of resource
9170utilization that highlights under-utilized and over-utilized resources. These
9171views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9172 (license license:gpl2+)))
64fce637
RS
9173
9174(define-public lollypop
9175 (package
9176 (name "lollypop")
24b5d8f7 9177 (version "1.2.32")
64fce637
RS
9178 (source
9179 (origin
9180 (method url-fetch)
24b5d8f7 9181 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9182 "lollypop-" version ".tar.xz"))
64fce637 9183 (sha256
24b5d8f7 9184 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9185 (build-system meson-build-system)
64fce637 9186 (arguments
7a9543d7
TGR
9187 `(#:imported-modules
9188 (,@%meson-build-system-modules
9189 (guix build python-build-system))
9190 #:modules
9191 ((guix build meson-build-system)
9192 ((guix build python-build-system) #:prefix python:)
9193 (guix build utils))
aa498fc0 9194 #:glib-or-gtk? #t
7a9543d7 9195 #:tests? #f ; no test suite
5fc9b6c1
EF
9196 #:phases
9197 (modify-phases %standard-phases
5fc9b6c1
EF
9198 (add-after 'install 'wrap-program
9199 (lambda* (#:key outputs #:allow-other-keys)
9200 (let ((out (assoc-ref outputs "out"))
9201 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9202 (wrap-program (string-append out "/bin/lollypop")
9203 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9204 #t))
8ac8b3b3 9205 (add-after 'install 'wrap-python
7a9543d7 9206 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9207 (native-inputs
9208 `(("intltool" ,intltool)
9209 ("itstool" ,itstool)
aa498fc0
TD
9210 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9211 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9212 ("pkg-config" ,pkg-config)))
9213 (inputs
9214 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9215 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9216 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9217 ("libnotify" ,libnotify)
9218 ("libsecret" ,libsecret)
9219 ("libsoup" ,libsoup)
9220 ("python" ,python)
9221 ("python-beautifulsoup4" ,python-beautifulsoup4)
9222 ("python-gst" ,python-gst)
d029afdd 9223 ("python-pil" ,python-pillow)
64fce637 9224 ("python-pycairo" ,python-pycairo)
cc9c83c5 9225 ("python-pygobject" ,python-pygobject)
64fce637
RS
9226 ("python-pylast" ,python-pylast)
9227 ("totem-pl-parser" ,totem-pl-parser)
9228 ("webkitgtk" ,webkitgtk)))
9229 (propagated-inputs
9230 `(;; gst-plugins-base is required to start Lollypop,
9231 ;; the others are required to play streaming.
64fce637
RS
9232 ("gst-plugins-good" ,gst-plugins-good)
9233 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9234 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9235 (synopsis "GNOME music playing application")
9236 (description
9237 "Lollypop is a music player designed to play well with GNOME desktop.
9238Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9239from artists and tracks from the web. It also fetches cover artworks
9240automatically and it can stream songs from online music services and charts.")
9241 (license license:gpl3+)))
d831d49d
AW
9242
9243(define-public gnome-video-effects
9244 (package
9245 (name "gnome-video-effects")
9246 (version "0.4.3")
9247 (source (origin
9248 (method url-fetch)
9249 (uri (string-append "mirror://gnome/sources/" name "/"
9250 (version-major+minor version) "/" name "-"
9251 version ".tar.xz"))
9252 (sha256
9253 (base32
9254 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9255 (build-system glib-or-gtk-build-system)
9256 (arguments
9257 `(#:out-of-source? #f))
9258 (native-inputs
9259 `(("glib:bin" ,glib "bin")
9260 ("intltool" ,intltool)
9261 ("gettext" ,gettext-minimal)
9262 ("pkg-config" ,pkg-config)))
9263 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9264 (synopsis "Video effects for Cheese and other GNOME applications")
9265 (description
9266 "A collection of GStreamer video filters and effects to be used in
9267photo-booth-like software, such as Cheese.")
9268 (license license:gpl2+)))
3511c780
AW
9269
9270(define-public cheese
9271 (package
9272 (name "cheese")
3a7e066f 9273 (version "3.34.0")
3511c780
AW
9274 (source (origin
9275 (method url-fetch)
9276 (uri (string-append "mirror://gnome/sources/" name "/"
9277 (version-major+minor version) "/" name "-"
9278 version ".tar.xz"))
9279 (sha256
9280 (base32
3a7e066f 9281 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9282 (arguments
3a7e066f
KK
9283 `(#:glib-or-gtk? #t
9284 ;; Tests require GDK.
9285 #:tests? #f
3511c780
AW
9286 #:phases
9287 (modify-phases %standard-phases
3a7e066f 9288 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9289 (lambda _
9290 ;; Don't create 'icon-theme.cache'
3a7e066f 9291 (substitute* "meson_post_install.py"
3511c780
AW
9292 (("gtk-update-icon-cache") (which "true")))
9293 #t))
9294 (add-after 'install 'wrap-cheese
9295 (lambda* (#:key inputs outputs #:allow-other-keys)
9296 (let ((out (assoc-ref outputs "out"))
9297 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9298 (wrap-program (string-append out "/bin/cheese")
9299 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9300 #t)))))
3a7e066f 9301 (build-system meson-build-system)
3511c780 9302 (native-inputs
3a7e066f
KK
9303 `(("docbook-xsl" ,docbook-xsl)
9304 ("glib:bin" ,glib "bin")
9305 ("gtk-doc" ,gtk-doc)
3511c780
AW
9306 ("intltool" ,intltool)
9307 ("itstool" ,itstool)
9308 ("libxml2" ,libxml2)
3a7e066f 9309 ("libxslt" ,libxslt)
3511c780
AW
9310 ("pkg-config" ,pkg-config)
9311 ("vala" ,vala)))
9312 (propagated-inputs
6a19f03e
RW
9313 `(("gnome-video-effects" ,gnome-video-effects)
9314 ("clutter" ,clutter)
3511c780
AW
9315 ("clutter-gst" ,clutter-gst)
9316 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9317 ("libcanberra" ,libcanberra)
3511c780
AW
9318 ("gdk-pixbuf" ,gdk-pixbuf)
9319 ("glib" ,glib)
6a19f03e
RW
9320 ("gstreamer" ,gstreamer)))
9321 (inputs
9322 `(("gnome-desktop" ,gnome-desktop)
3511c780 9323 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9324 ("gst-plugins-base" ,gst-plugins-base)
9325 ("gst-plugins-bad" ,gst-plugins-bad)
9326 ("gtk+" ,gtk+)
3511c780
AW
9327 ("libx11" ,libx11)
9328 ("libxtst" ,libxtst)))
9329 (home-page "https://wiki.gnome.org/Apps/Cheese")
9330 (synopsis "Webcam photo booth software for GNOME")
9331 (description
9332 "Cheese uses your webcam to take photos and videos. Cheese can also
9333apply fancy special effects and lets you share the fun with others.")
9334 (license license:gpl2+)))
3c5dbd2b 9335
9336(define-public sound-juicer
9337 (package
9338 (name "sound-juicer")
9339 (version "3.24.0")
9340 (source
9341 (origin
9342 (method url-fetch)
9343 (uri (string-append "mirror://gnome/sources/" name "/"
9344 (version-major+minor version) "/"
9345 name "-" version ".tar.xz"))
9346 (sha256
9347 (base32
9348 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9349 (build-system glib-or-gtk-build-system)
9350 (native-inputs
9351 `(("desktop-file-utils" ,desktop-file-utils)
9352 ("intltool" ,intltool)
9353 ("itstool" ,itstool)
9354 ("pkg-config" ,pkg-config)
9355 ("xmllint" ,libxml2)))
9356 (inputs
9357 `(("gtk+" ,gtk+)
9358 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9359 ("gstreamer" ,gstreamer)
9360 ("gst-plugins-base" ,gst-plugins-base)
9361 ("gst-plugins-good" ,gst-plugins-good)
9362 ("iso-codes" ,iso-codes)
9363 ("libbrasero-media3" ,brasero)
9364 ("libcanberra" ,libcanberra)
9365 ("libdiscid" ,libdiscid)
9366 ("libmusicbrainz" ,libmusicbrainz)
9367 ("neon" ,neon)))
9368 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9369 (synopsis "Audio music cd ripper")
9370 (description "Sound Juicer extracts audio from compact discs and convert it
9371into audio files that a personal computer or digital audio player can play.
9372It supports ripping to any audio codec supported by a GStreamer plugin, such as
9373mp3, Ogg Vorbis and FLAC")
9374 (license license:gpl2+)))
4e3fdeb7 9375
0d3f1708
CB
9376(define-public soundconverter
9377 (package
9378 (name "soundconverter")
7f4b45a3 9379 (version "3.0.2")
0d3f1708
CB
9380 (source
9381 (origin
9382 (method url-fetch)
9383 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9384 version "/+download/"
9385 "soundconverter-" version ".tar.xz"))
9386
9387 (sha256
7f4b45a3 9388 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
9389 (build-system glib-or-gtk-build-system)
9390 (arguments
9391 `(#:imported-modules ((guix build python-build-system)
9392 (guix build glib-or-gtk-build-system)
9393 ,@%gnu-build-system-modules)
9394
9395 #:modules ((guix build glib-or-gtk-build-system)
9396 (guix build utils)
9397 ((guix build gnu-build-system) #:prefix gnu:)
9398 ((guix build python-build-system) #:prefix python:))
9399
9400 #:phases
9401 (modify-phases %standard-phases
0d3f1708
CB
9402 (add-after 'install 'wrap-soundconverter-for-python
9403 (assoc-ref python:%standard-phases 'wrap))
9404 (add-after 'install 'wrap-soundconverter
9405 (lambda* (#:key inputs outputs #:allow-other-keys)
9406 (let ((out (assoc-ref outputs "out"))
9407 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9408 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9409 (wrap-program (string-append out "/bin/soundconverter")
9410 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9411 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9412 #t)))))
9413 (native-inputs
9414 `(("intltool" ,intltool)
9415 ("pkg-config" ,pkg-config)
9416 ("glib:bin" ,glib "bin")))
9417 (inputs
9418 `(("gtk+" ,gtk+)
9419 ("python" ,python)
9420 ("python-pygobject" ,python-pygobject)
9421 ("gstreamer" ,gstreamer)
9422 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9423 (home-page "https://soundconverter.org/")
0d3f1708
CB
9424 (synopsis "Convert between audio formats with a graphical interface")
9425 (description
9426 "SoundConverter supports converting between many audio formats including
9427Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9428configurable file renaming. ")
9429 (license license:gpl3)))
9430
4e3fdeb7 9431(define-public workrave
89f2d736
TGR
9432 (package
9433 (name "workrave")
52fc6508 9434 (version "1.10.42")
89f2d736
TGR
9435 (source
9436 (origin
9437 (method git-fetch)
9438 (uri (git-reference
9439 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9440 (commit (string-append "v" (string-map
9441 (match-lambda (#\. #\_) (chr chr))
9442 version)))))
89f2d736
TGR
9443 (file-name (git-file-name name version))
9444 (sha256
52fc6508 9445 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9446 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9447 (arguments
9448 ;; The only tests are maintainer tests (in po/), which fail.
9449 `(#:tests? #f))
d1c96847
MC
9450 (inputs `(("glib" ,glib)
9451 ("gtk+" ,gtk+)
9452 ("gdk-pixbuf" ,gdk-pixbuf)
9453 ("gtkmm" ,gtkmm)
9454 ("glibmm" ,glibmm)
9455 ("libx11" ,libx11)
9456 ("libxtst" ,libxtst)
9457 ("dconf" ,dconf)
9458 ("libice" ,libice)
9459 ("libsm" ,libsm)
9460 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9461 (native-inputs `(("boost" ,boost)
89f2d736 9462 ("pkg-config" ,pkg-config)
f2d97d57 9463 ("gettext" ,gettext-minimal)
89f2d736
TGR
9464 ("autoconf" ,autoconf)
9465 ("autoconf-archive" , autoconf-archive)
9466 ("automake" ,automake)
9467 ("libtool" ,libtool)
9468 ("intltool" ,intltool)
89f2d736 9469 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9470 ("python3" ,python-3)
9471 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9472 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9473 (description
9474 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9475repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9476micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9477 (home-page "http://www.workrave.org")
9478 (license license:gpl3+)))
312afa7d
LC
9479
9480(define-public ghex
9481 (package
9482 (name "ghex")
3748992a 9483 (version "3.18.4")
312afa7d
LC
9484 (source (origin
9485 (method url-fetch)
2fbab848 9486 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9487 (version-major+minor version) "/"
2fbab848 9488 "ghex-" version ".tar.xz"))
312afa7d
LC
9489 (sha256
9490 (base32
3748992a
KK
9491 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9492 (build-system meson-build-system)
9493 (arguments
9494 '(#:glib-or-gtk? #t
9495 #:phases
9496 (modify-phases %standard-phases
9497 (add-after 'unpack 'skip-gtk-update-icon-cache
9498 ;; Don't create 'icon-theme.cache'.
9499 (lambda _
9500 (substitute* "meson_post_install.py"
9501 (("gtk-update-icon-cache") (which "true")))
9502 #t)))))
312afa7d
LC
9503 (native-inputs
9504 `(("pkg-config" ,pkg-config)
3748992a 9505 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9506 ("gnome-common" ,gnome-common)
9507 ("which" ,which)
9508 ("intltool" ,intltool)
9509 ("yelp-tools" ,yelp-tools)
2fbab848 9510 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9511 (inputs
9512 `(("atk" ,atk)
9513 ("gtk" ,gtk+)))
9514 (synopsis "GNOME hexadecimal editor")
9515 (description "The GHex program can view and edit files in two ways:
9516hexadecimal or ASCII. It is useful for editing binary files in general.")
9517 (home-page "https://wiki.gnome.org/Apps/Ghex")
9518 (license license:gpl2)))
4b2ed6c2
RW
9519
9520(define-public libdazzle
9521 (package
9522 (name "libdazzle")
c94db354 9523 (version "3.34.1")
4b2ed6c2
RW
9524 (source (origin
9525 (method url-fetch)
687b4909 9526 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9527 (version-major+minor version) "/"
687b4909 9528 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9529 (sha256
9530 (base32
c94db354 9531 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
9532 (build-system meson-build-system)
9533 (arguments
9534 `(#:phases
9535 (modify-phases %standard-phases
4b2ed6c2
RW
9536 (add-before 'check 'pre-check
9537 (lambda _
9538 ;; Tests require a running X server.
9539 (system "Xvfb :1 &")
9540 (setenv "DISPLAY" ":1")
9541 #t)))))
9542 (native-inputs
687b4909 9543 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9544 ("pkg-config" ,pkg-config)
687b4909 9545 ;; For tests.
ff337525 9546 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9547 (inputs
9548 `(("glib" ,glib)
9549 ("gobject-introspection" ,gobject-introspection)
9550 ("gtk+" ,gtk+)
9551 ("vala" ,vala)))
9552 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9553 (synopsis "Companion library to GObject and Gtk+")
9554 (description "The libdazzle library is a companion library to GObject and
9555Gtk+. It provides various features that the authors wish were in the
9556underlying library but cannot for various reasons. In most cases, they are
9557wildly out of scope for those libraries. In other cases, they are not quite
9558generic enough to work for everyone.")
9559 (license license:gpl3+)))
7d3bb433
RW
9560
9561(define-public evolution
9562 (package
9563 (name "evolution")
0662fe86 9564 (version "3.34.2")
7d3bb433
RW
9565 (source (origin
9566 (method url-fetch)
9567 (uri (string-append "mirror://gnome/sources/evolution/"
9568 (version-major+minor version) "/"
9569 "evolution-" version ".tar.xz"))
9570 (sha256
9571 (base32
0662fe86 9572 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
9573 (build-system cmake-build-system)
9574 (arguments
5229bea1
KK
9575 `(#:imported-modules (,@%cmake-build-system-modules
9576 (guix build glib-or-gtk-build-system))
9577 #:modules ((guix build cmake-build-system)
9578 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9579 (guix build utils))
9580 #:configure-flags
7d3bb433 9581 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9582 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9583 ; in four years and cannot be built.
5229bea1
KK
9584 #:phases
9585 (modify-phases %standard-phases
9586 ;; The build system attempts to install user interface modules to the
9587 ;; output directory of the "evolution-data-server" package. This
9588 ;; change redirects that change.
9589 (add-after 'unpack 'patch-ui-module-dir
9590 (lambda* (#:key outputs #:allow-other-keys)
9591 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9592 (("\\$\\{edsuimoduledir\\}")
9593 (string-append (assoc-ref outputs "out")
9594 "/lib/evolution-data-server/ui-modules")))
9595 #t))
9596 (add-after 'install 'glib-or-gtk-compile-schemas
9597 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9598 (add-after 'install 'glib-or-gtk-wrap
9599 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9600 (native-inputs
ad6e168b 9601 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9602 ("pkg-config" ,pkg-config)
9603 ("intltool" ,intltool)
9604 ("itstool" ,itstool)))
9605 (inputs
9606 `(("enchant" ,enchant)
9607 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9608 ("gcr" ,gcr)
ad6e168b 9609 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9610 ("gnome-autoar" ,gnome-autoar)
9611 ("gnome-desktop" ,gnome-desktop)
0662fe86 9612 ("gspell" ,gspell)
7d3bb433
RW
9613 ("highlight" ,highlight)
9614 ("libcanberra" ,libcanberra)
9615 ("libgweather" ,libgweather)
9616 ("libnotify" ,libnotify)
9617 ("libsoup" ,libsoup)
9618 ("nss" ,nss)
9619 ("openldap" ,openldap)
9620 ("webkitgtk" ,webkitgtk)
9621 ("ytnef" ,ytnef)))
9622 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9623 (synopsis "Manage your email, contacts and schedule")
9624 (description "Evolution is a personal information management application
9625that provides integrated mail, calendaring and address book
9626functionality.")
9627 ;; See COPYING for details.
23dbe621 9628 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9629 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9630 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9631
9632(define-public gthumb
9633 (package
9634 (name "gthumb")
8280676b 9635 (version "3.8.2")
169d63f5
AT
9636 (source (origin
9637 (method url-fetch)
9638 (uri (string-append "mirror://gnome/sources/gthumb/"
9639 (version-major+minor version) "/"
9640 "gthumb-" version ".tar.xz"))
9641 (sha256
9642 (base32
8280676b 9643 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9644 (build-system meson-build-system)
9645 (arguments
9646 `(#:glib-or-gtk? #t
9647 #:configure-flags
9648 ;; Ensure the RUNPATH contains all installed library locations.
9649 (list (string-append "-Dc_link_args=-Wl,-rpath="
9650 (assoc-ref %outputs "out")
9651 "/lib/gthumb/extensions")
9652 (string-append "-Dcpp_link_args=-Wl,-rpath="
9653 (assoc-ref %outputs "out")
9654 "/lib/gthumb/extensions"))))
9655 (native-inputs
9656 `(("pkg-config" ,pkg-config)
9657 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9658 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9659 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9660 ("intltool" ,intltool)
9661 ("itstool" ,itstool)))
9662 (inputs
9663 `(("exiv2" ,exiv2)
9664 ("gtk" ,gtk+)
9665 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9666 ("gstreamer" ,gstreamer)
9667 ("clutter" ,clutter)
9668 ("clutter-gst" ,clutter-gst)
9669 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9670 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9671 ("libtiff" ,libtiff)
9672 ("libraw" ,libraw)))
9673 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9674 (synopsis "GNOME image viewer and browser")
9675 (description "GThumb is an image viewer, browser, organizer, editor and
9676advanced image management tool")
9677 (license license:gpl2+)))
08be02be
AT
9678
9679(define-public terminator
9680 (package
9681 (name "terminator")
9682 (version "1.91")
9683 (source (origin
9684 (method url-fetch)
9685 (uri (string-append "https://launchpad.net/" name "/"
9686 "gtk3/" version "/" "+download/"
9687 name "-" version ".tar.gz"))
9688 (sha256
9689 (base32
9690 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9691 (build-system python-build-system)
9692 (native-inputs
9693 `(("intltool" ,intltool)
9694 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9695 ("gettext" ,gettext-minimal)
9696 ("pkg-config" ,pkg-config)))
9697 (inputs
9698 `(("cairo" ,cairo)
9699 ("gobject-introspection" ,gobject-introspection)
96681d4b 9700 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9701 ("python2-pycairo" ,python2-pycairo)
9702 ("python2-pygobject" ,python2-pygobject)
9703 ("python2-psutil" ,python2-psutil)
9704 ("vte" ,vte)))
9705 (arguments
96681d4b
TGR
9706 `(#:python ,python-2 ; Python 3 isn't supported
9707 #:imported-modules ((guix build glib-or-gtk-build-system)
9708 ,@%python-build-system-modules)
9709 #:modules ((guix build python-build-system)
9710 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9711 (guix build utils))
08be02be
AT
9712 #:phases
9713 (modify-phases %standard-phases
9714 (add-after
9715 'install 'wrap-program
9716 (lambda* (#:key outputs #:allow-other-keys)
9717 (let ((prog (string-append (assoc-ref outputs "out")
9718 "/bin/terminator")))
9719 (wrap-program prog
9720 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9721 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9722 #t)))
9723 (add-after 'wrap-program 'glib-or-gtk-wrap
9724 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9725 (home-page "https://gnometerminator.blogspot.com/")
9726 (synopsis "Store and run multiple GNOME terminals in one window")
9727 (description
9728 "Terminator allows you to run multiple GNOME terminals in a grid and
9729+tabs, and it supports drag and drop re-ordering of terminals.")
9730 (license license:gpl2)))
213315d4
JF
9731
9732(define-public libhandy
9733 (package
9734 (name "libhandy")
f6501b9f 9735 (version "0.0.12")
213315d4
JF
9736 (source
9737 (origin
9738 (method git-fetch)
9739 (uri (git-reference
9740 (url "https://source.puri.sm/Librem5/libhandy")
9741 (commit (string-append "v" version))))
9742 (file-name (git-file-name name version))
9743 (sha256
f6501b9f 9744 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9745 (build-system meson-build-system)
9746 (arguments
9747 `(#:configure-flags
9748 '("-Dglade_catalog=disabled"
9749 "-Dgtk_doc=true")
9750 #:phases
9751 (modify-phases %standard-phases
213315d4
JF
9752 (add-before 'check 'pre-check
9753 (lambda _
9754 ;; Tests require a running X server.
9755 (system "Xvfb :1 &")
9756 (setenv "DISPLAY" ":1")
9757 #t)))))
9758 (inputs
9759 `(("gtk+" ,gtk+)))
9760 (native-inputs
9761 `(("glib:bin" ,glib "bin")
9762 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9763 ("vala" ,vala)
9764 ("gtk-doc" ,gtk-doc)
9765 ("pkg-config" ,pkg-config)
9766 ("gettext" ,gettext-minimal)
d41ee146
TGR
9767
9768 ;; Test suite dependencies.
ff337525 9769 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9770 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9771 (home-page "https://source.puri.sm/Librem5/libhandy")
9772 (synopsis "Library full of GTK+ widgets for mobile phones")
9773 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9774interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9775for usage on small and big screens.")
213315d4 9776 (license license:lgpl2.1+)))
a830d14d
GL
9777
9778(define-public libgit2-glib
9779 (package
9780 (name "libgit2-glib")
6448c2e1 9781 (version "0.99.0.1")
a830d14d
GL
9782 (source (origin
9783 (method url-fetch)
9784 (uri (string-append "mirror://gnome/sources/" name "/"
9785 (version-major+minor version) "/"
9786 name "-" version ".tar.xz"))
9787 (sha256
9788 (base32
6448c2e1 9789 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9790 (build-system meson-build-system)
9791 (native-inputs
9792 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9793 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9794 ("pkg-config" ,pkg-config)
9795 ("python-pygobject" ,python-pygobject)
9796 ("python-wrapper" ,python-wrapper)
9797 ("vala" ,vala)))
9798 (inputs
9799 `(("glib" ,glib)
8c6aae46
MB
9800 ("libssh2" ,libssh2)))
9801 (propagated-inputs
9802 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9803 ("libgit2" ,libgit2)))
9804 (synopsis "GLib wrapper around the libgit2 Git access library")
9805 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9806access library. It only implements the core plumbing functions, not really the
9807higher level porcelain stuff.")
9808 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9809 (license license:gpl2+)))
93beace0 9810
08db81c9
LP
9811(define-public gitg
9812 (package
9813 (name "gitg")
9814 (version "3.32.1")
9815 (source (origin
9816 (method url-fetch)
9817 (uri (string-append "mirror://gnome/sources/" name "/"
9818 (version-major+minor version) "/"
9819 name "-" version ".tar.xz"))
9820 (sha256
9821 (base32
9822 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9823 (build-system meson-build-system)
9824 (arguments
9825 `(#:glib-or-gtk? #t
9826 #:phases
9827 (modify-phases %standard-phases
9828 (add-after 'unpack 'disable-post-install-partially
9829 (lambda _
9830 (substitute* "meson_post_install.py"
9831 (("'python'") ; there are no python sources to compile
9832 (string-append "'" (which "true") "'"))
9833 (("gtk-update-icon-cache") (which "true")))
9834 #t))
9835 (add-after 'unpack 'fix-test-sources
9836 (lambda _
9837 (substitute* "tests/libgitg/test-commit.vala"
9838 (("/bin/bash") (which "bash")))
9839 #t))
9840 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9841 (lambda* (#:key outputs #:allow-other-keys)
9842 (let ((prog (string-append (assoc-ref outputs "out")
9843 "/bin/gitg")))
9844 (wrap-program prog
9845 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9846 #t))))))
9847 (inputs
9848 `(("glib" ,glib)
9849 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9850 ("gtk+" ,gtk+)
9851 ("gtkspell3" ,gtkspell3)
9852 ("gtksourceview" ,gtksourceview-3)
9853 ("json-glib" ,json-glib)
9854 ("libdazzle" ,libdazzle)
9855 ("libgee" ,libgee)
08db81c9
LP
9856 ("libgit2-glib" ,libgit2-glib)
9857 ("libpeas" ,libpeas)
9858 ("libsecret" ,libsecret)
9859 ("libsoup" ,libsoup)
9860 ("libxml2" ,libxml2)))
9861 (native-inputs
9862 `(("glib:bin" ,glib "bin")
9863 ("gtk+:bin" ,gtk+ "bin")
9864 ("gobject-introspection" ,gobject-introspection)
9865 ("intltool" ,intltool)
9866 ("pkg-config" ,pkg-config)
9867 ("vala" ,vala)))
9868 (synopsis "Graphical user interface for git")
9869 (description
9870 "gitg is a graphical user interface for git. It aims at being a small,
9871fast and convenient tool to visualize the history of git repositories.
9872Besides visualization, gitg also provides several utilities to manage your
9873repository and commit your work.")
9874 (home-page "https://wiki.gnome.org/Apps/Gitg")
9875 (license license:gpl2+)))
9876
1e600ed0
RW
9877(define-public gamin
9878 (package
9879 (name "gamin")
9880 (version "0.1.10")
9881 (source (origin
9882 (method url-fetch)
9883 (uri (string-append "mirror://gnome/sources/" name "/"
9884 (version-major+minor version) "/"
9885 name "-" version ".tar.bz2"))
9886 (sha256
9887 (base32
9888 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9889 (build-system gnu-build-system)
9890 (arguments
9891 `(#:phases
9892 (modify-phases %standard-phases
9893 (add-after 'unpack 'remove-deprecated-macro
9894 (lambda _
9895 (substitute* '("server/gam_node.c"
9896 "server/gam_subscription.h"
9897 "server/gam_node.h"
9898 "server/gam_subscription.c")
9899 (("G_CONST_RETURN") "const"))
9900 #t)))))
9901 (inputs
9902 `(("glib" ,glib)))
9903 (native-inputs
9904 `(("intltool" ,intltool)
9905 ("pkg-config" ,pkg-config)))
9906 (home-page "https://people.gnome.org/~veillard/gamin/")
9907 (synopsis "File alteration monitor")
9908 (description
9909 "Gamin is a file and directory monitoring system defined to be a subset
9910of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9911library which detects when a file or a directory has been modified.")
1e600ed0
RW
9912 (license license:gpl2+)))
9913
93beace0
DW
9914(define-public gnome-mahjongg
9915 (package
9916 (name "gnome-mahjongg")
9917 (version "3.35.1")
9918 (source (origin
9919 (method git-fetch)
9920 (uri (git-reference
9921 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9922 (commit version)))
9923 (file-name (git-file-name name version))
9924 (sha256
9925 (base32
9926 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9927 (build-system meson-build-system)
9928 (arguments
9929 `(#:glib-or-gtk? #t))
9930 (native-inputs
9931 `(("appstream-glib" ,appstream-glib)
9932 ("gettext" ,gettext-minimal)
9933 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9934 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9935 ("itstool" ,itstool)
9936 ("pkg-config" ,pkg-config)
9937 ("vala" ,vala)))
9938 (propagated-inputs
9939 `(("dconf" ,dconf)))
9940 (inputs
9941 `(("glib" ,glib)
9942 ("gtk+" ,gtk+)
9943 ("librsvg" ,librsvg)))
9944 (synopsis "Mahjongg tile-matching game")
9945 (description "GNOME Mahjongg is a game based on the classic Chinese
9946tile-matching game Mahjong. It features multiple board layouts, tile themes,
9947and a high score table.")
9948 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9949 (license license:gpl2+)))
f825476c 9950
76ea7632
RG
9951(define-public gnome-themes-extra
9952 (package
9953 (name "gnome-themes-extra")
9954 (version "3.28")
9955 (source
9956 (origin
9957 (method url-fetch)
9958 (uri (string-append "mirror://gnome/sources/" name "/"
9959 (version-major+minor version) "/" name "-"
9960 version ".tar.xz"))
9961 (sha256
9962 (base32
9963 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9964 (build-system gnu-build-system)
885424bf
RG
9965 (arguments
9966 '(#:configure-flags
9967 ;; Don't create 'icon-theme.cache'.
9968 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9969 (true (string-append coreutils "/bin/true")))
9970 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9971 (native-inputs
9972 `(("glib:bin" ,glib "bin")
9973 ("intltool" ,intltool)
9974 ("pkg-config" ,pkg-config)))
9975 (inputs
9976 `(("glib" ,glib)
9977 ("gtk+" ,gtk+)
9978 ("gtk+-2" ,gtk+-2)
9979 ("librsvg" ,librsvg)
9980 ("libxml2" ,libxml2)))
9981 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9982 (synopsis "GNOME Extra Themes")
9983 (description "This package provides themes and related elements that don't
9984really fit in other upstream packages. It offers legacy support for GTK+ 2
9985versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9986index files needed for Adwaita to be used outside of GNOME.")
9987 (license license:lgpl2.1+)))
9988
f825476c
LP
9989(define-public polari
9990 (package
9991 (name "polari")
9992 (version "3.32.2")
9993 (source (origin
9994 (method url-fetch)
9995 (uri (string-append "mirror://gnome/sources/polari/"
9996 (version-major+minor version)
9997 "/polari-" version ".tar.xz"))
9998 (sha256
9999 (base32
10000 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10001 (build-system meson-build-system)
10002 (arguments
10003 `(#:glib-or-gtk? #t
10004 #:phases
10005 (modify-phases %standard-phases
10006 (add-after 'unpack 'skip-gtk-update-icon-cache
10007 (lambda _
10008 (substitute* "meson/meson-postinstall.sh"
10009 (("gtk-update-icon-cache") (which "true")))
10010 #t))
10011 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10012 (lambda* (#:key outputs #:allow-other-keys)
10013 (let ((prog (string-append (assoc-ref outputs "out")
10014 "/bin/polari")))
10015 (wrap-program prog
10016 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10017 #t))))))
10018 (inputs
10019 `(("glib" ,glib)
10020 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10021 ("gspell" ,gspell)
10022 ("gtk+" ,gtk+)
10023 ("gjs" ,gjs)
10024 ("libsecret" ,libsecret)
10025 ("libsoup" ,libsoup)
10026 ("telepathy-glib" ,telepathy-glib)
10027 ("telepathy-logger" ,telepathy-logger)))
10028 (native-inputs
10029 `(("glib:bin" ,glib "bin")
10030 ("gobject-introspection" ,gobject-introspection)
10031 ("intltool" ,intltool)
10032 ("pkg-config" ,pkg-config)
10033 ("yelp-tools" ,yelp-tools)))
10034 (propagated-inputs
10035 `(("telepathy-idle" ,telepathy-idle)
10036 ("telepathy-mission-control" ,telepathy-mission-control)))
10037 (synopsis "Simple IRC Client")
10038 (description
10039 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10040integrate seamlessly with the GNOME desktop.")
10041 (home-page "https://wiki.gnome.org/Apps/Polari")
10042 (license license:gpl2+)))
59d4c8c2
PN
10043
10044(define-public gnome-boxes
10045 (package
10046 (name "gnome-boxes")
69300c0d 10047 (version "3.36.5")
59d4c8c2
PN
10048 (source
10049 (origin
10050 (method url-fetch)
10051 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10052 (version-major+minor version) "/"
10053 "gnome-boxes-" version ".tar.xz"))
10054 (sha256
69300c0d 10055 (base32 "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c"))))
59d4c8c2
PN
10056 (build-system meson-build-system)
10057 (arguments
10058 '(#:glib-or-gtk? #t
10059 #:configure-flags (list "-Drdp=false"
10060 (string-append "-Dc_link_args=-Wl,-rpath="
10061 (assoc-ref %outputs "out")
10062 "/lib/gnome-boxes"))))
10063 (native-inputs
10064 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10065 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10066 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10067 ("itstool" ,itstool)
10068 ("intltool" ,intltool)
10069 ("vala" ,vala)
10070 ("pkg-config" ,pkg-config)))
10071 (inputs
10072 `(("libarchive" ,libarchive)
10073 ("gtk" ,gtk+)
10074 ("gtk-vnc" ,gtk-vnc)
10075 ("libosinfo" ,libosinfo)
10076 ("libsecret" ,libsecret)
10077 ("libsoup" ,libsoup)
10078 ("libusb" ,libusb)
10079 ("libvirt" ,libvirt)
10080 ("libvirt-glib" ,libvirt-glib)
10081 ("libxml" ,libxml2)
10082 ("spice-gtk" ,spice-gtk)
10083 ("sparql-query" ,sparql-query)
10084 ("vte" ,vte)
10085 ("webkitgtk" ,webkitgtk)
10086 ("tracker" ,tracker)
10087 ("libgudev" ,libgudev)))
10088 (home-page "https://wiki.gnome.org/Apps/Boxes")
10089 (synopsis "View, access, and manage remote and virtual systems")
10090 (description "GNOME Boxes is a simple application to view, access, and
10091manage remote and virtual systems.")
10092 (license (list
10093 ;; For data/icons/empty-boxes.png.
10094 license:cc-by2.0
10095 ;; For all others.
10096 license:lgpl2.0+))))
0e26c3cf 10097
10098(define-public geary
10099 (package
10100 (name "geary")
10101 (version "3.34.1")
10102 (source (origin
10103 (method git-fetch)
10104 (uri (git-reference
10105 (url "https://gitlab.gnome.org/GNOME/geary")
10106 (commit version)))
10107 (file-name (git-file-name name version))
10108 (sha256
10109 (base32
10110 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10111 (build-system meson-build-system)
10112 (arguments
10113 `(#:glib-or-gtk? #t
10114 #:phases (modify-phases %standard-phases
10115 (add-after 'unpack 'disable-failing-tests
10116 (lambda _
10117 (substitute* "test/meson.build"
10118 (("test\\('client-tests', geary_test_client_bin\\)")
10119 ""))
10120 #t))
10121 (add-after 'unpack 'disable-postinstall-script
10122 (lambda _
10123 (substitute* "meson.build"
10124 (("meson.add_install_script\\(\
10125join_paths\\('build-aux', 'post_install.py'\\)\\)")
10126 ""))
10127 #t))
10128 (add-before 'check 'setup-xvfb
10129 (lambda _
10130 (system "Xvfb :1 &")
10131 (setenv "DISPLAY" ":1")
10132 #t)))))
10133 (inputs
10134 `(("enchant" ,enchant)
10135 ("folks" ,folks)
10136 ("gcr" ,gcr)
10137 ("glib" ,glib)
10138 ("gmime" ,gmime-2.6)
10139 ("gnome-online-accounts:lib"
10140 ,gnome-online-accounts "lib")
10141 ("gspell" ,gspell)
10142 ("gtk+" ,gtk+)
10143 ("iso-codes" ,iso-codes)
10144 ("json-glib" ,json-glib)
10145 ("libcanberra" ,libcanberra)
10146 ("libgee" ,libgee)
10147 ("libhandy" ,libhandy)
10148 ("libpeas" ,libpeas)
10149 ("libsecret" ,libsecret)
10150 ("libunwind" ,libunwind)
10151 ("sqlite" ,sqlite)
10152 ("webkitgtk" ,webkitgtk)
10153 ("ytnef" ,ytnef)))
10154 (native-inputs
10155 `(("appstream-glib" ,appstream-glib)
10156 ("cmake-minimal" ,cmake-minimal)
10157 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 10158 ("gettext" ,gettext-minimal)
0e26c3cf 10159 ("glib:bin" ,glib "bin")
10160 ("gobject-introspection" ,gobject-introspection)
10161 ("itstool" ,itstool)
10162 ("libarchive" ,libarchive)
10163 ("libxml2" ,libxml2)
10164 ("pkg-config" ,pkg-config)
10165 ("vala" ,vala)
10166 ("xvfb" ,xorg-server-for-tests)))
10167 (synopsis "GNOME email application built around conversations")
10168 (description
10169 "Geary collects related messages together into conversations,
10170making it easy to find and follow your discussions. Full-text and keyword
10171search makes it easy to find the email you are looking for. Geary's
10172full-featured composer lets you send rich, styled text with images, links, and
10173lists, but also send lightweight, easy to read text messages. Geary
10174automatically picks up your existing GNOME Online Accounts, and adding more is
10175easy. Geary has a clean, fast, modern interface that works like you want it
10176to.")
10177 (home-page "https://wiki.gnome.org/Apps/Geary")
10178 (license (list
10179 ;; geary
10180 license:lgpl2.1+
10181 ;; icons
10182 license:cc-by3.0
10183 license:cc-by-sa3.0
10184 license:public-domain
10185 ;; snowball
10186 license:bsd-2))))
1a17d21b 10187
21051eb7
VM
10188(define-public glabels
10189 (package
10190 (name "glabels")
10191 (version "3.4.1")
10192 (source
10193 (origin
10194 (method url-fetch)
10195 (uri (string-append "mirror://gnome/sources/" name "/"
10196 (version-major+minor version) "/"
10197 "glabels-" version ".tar.xz"))
10198 (sha256
10199 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10200 (build-system glib-or-gtk-build-system)
10201 (native-inputs
10202 `(("gettext" ,gettext-minimal)
10203 ("glib:bin" ,glib "bin")
10204 ("intltool" ,intltool)
10205 ("itstool" ,itstool)
10206 ("pkg-config" ,pkg-config)))
10207 (inputs
10208 `(("gtk+" ,gtk+)
10209 ("librsvg" ,librsvg)
10210 ("libxml2" ,libxml2)))
10211 (home-page "https://glabels.org/")
10212 (synopsis "Program for creating labels and business cards")
10213 (description
10214 "gLabels is a program for creating labels and business cards. It is
10215designed to work with various laser/ink-jet peel-off label and business
10216card sheets that you’ll find at most office supply stores.")
10217 (license license:gpl3+)))
10218
2cd1de32
BT
10219(define-public libratbag
10220 (package
10221 (name "libratbag")
10222 (version "0.13")
10223 (source
10224 (origin
10225 (method git-fetch)
10226 (uri (git-reference
10227 (url "https://github.com/libratbag/libratbag.git")
10228 (commit (string-append "v" version))))
10229 (file-name (git-file-name name version))
10230 (sha256
10231 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10232 (build-system meson-build-system)
10233 (arguments
10234 `(#:configure-flags
10235 (list "-Dsystemd=false"
10236 "-Dlogind-provider=elogind")
10237 #:phases
10238 (modify-phases %standard-phases
10239 (add-after 'install 'wrap
10240 (lambda* (#:key inputs outputs #:allow-other-keys)
10241 (let* ((out (assoc-ref outputs "out"))
10242 (site (string-append
10243 "/lib/python"
10244 ,(version-major+minor (package-version python))
10245 "/site-packages"))
10246 (evdev (string-append
10247 (assoc-ref inputs "python-evdev") site))
10248 (pygo (string-append
10249 (assoc-ref inputs "python-pygobject") site))
10250 (python-wrap
10251 `("PYTHONPATH" = (,evdev ,pygo))))
10252 (wrap-program (string-append out "/bin/" "ratbagctl")
10253 python-wrap)
10254 #t))))))
10255 (native-inputs
10256 `(("check" ,check)
10257 ("pkg-config" ,pkg-config)
10258 ("swig" ,swig)
10259 ("valgrind" ,valgrind)))
10260 (inputs
10261 `(("glib" ,glib)
10262 ("json-glib" ,json-glib)
10263 ("libevdev" ,libevdev)
10264 ("libsystemd" ,elogind)
10265 ("libunistring" ,libunistring)
10266 ("python-evdev" ,python-evdev)
10267 ("python-pygobject" ,python-pygobject)
10268 ("udev" ,eudev)))
10269 (home-page "https://github.com/libratbag/libratbag")
10270 (synopsis "DBus daemon and utility for configuring gaming mice")
10271 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10272configure input devices, mainly gaming mice. The daemon provides a generic
10273way to access the various features exposed by these mice and abstracts away
10274hardware-specific and kernel-specific quirks. There is also the
10275@command{ratbagctl} command line interface for configuring devices.
10276
10277libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10278Steelseries.
10279
10280The ratbagd DBus service can be enabled by adding the following service to
10281your operating-system definition:
10282
10283 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10284 (license license:expat)))
10285
50d31a40
BT
10286(define-public piper
10287 (package
10288 (name "piper")
73014984 10289 (version "0.5")
50d31a40
BT
10290 (source
10291 (origin
10292 (method git-fetch)
10293 (uri (git-reference
10294 (url "https://github.com/libratbag/piper.git")
10295 (commit version)))
10296 (sha256
81af0de9
TGR
10297 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10298 (file-name (git-file-name name version))))
50d31a40
BT
10299 (build-system meson-build-system)
10300 (native-inputs
10301 `(("gettext" ,gettext-minimal)
10302 ("glib:bin" ,glib "bin")
10303 ("gobject-introspection" ,gobject-introspection)
10304 ("pkg-config" ,pkg-config)
10305 ("python-flake8" ,python-flake8)))
10306 (inputs
10307 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10308 ("gtk" ,gtk+)
10309 ("gtk:bin" ,gtk+ "bin")
10310 ("librsvg" ,librsvg)
10311 ("python-evdev" ,python-evdev)
10312 ("python-lxml" ,python-lxml)
10313 ("python-pycairo" ,python-pycairo)
10314 ("python-pygobject" ,python-pygobject)))
10315 (arguments
10316 `(#:imported-modules ((guix build python-build-system)
10317 ,@%meson-build-system-modules)
10318 #:modules (((guix build python-build-system) #:prefix python:)
10319 (guix build meson-build-system)
10320 (guix build utils))
10321 #:phases
10322 (modify-phases %standard-phases
10323 (add-after 'unpack 'dont-update-gtk-icon-cache
10324 (lambda _
10325 (substitute* "meson.build"
10326 (("meson.add_install_script('meson_install.sh')") ""))
10327 #t))
10328 ;; TODO: Switch to wrap-script when it is fixed.
10329 (add-after 'install 'wrap-python
10330 (assoc-ref python:%standard-phases 'wrap))
10331 (add-after 'wrap-python 'wrap
10332 (lambda* (#:key outputs #:allow-other-keys)
10333 (wrap-program
10334 (string-append (assoc-ref outputs "out" )"/bin/piper")
10335 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10336 #t)))))
10337 (home-page "https://github.com/libratbag/piper/")
10338 (synopsis "Configure bindings and LEDs on gaming mice")
10339 (description "Piper is a GTK+ application for configuring gaming mice with
10340onboard configuration for key bindings via libratbag. Piper requires
10341a @command{ratbagd} daemon running with root privileges. It can be run
10342manually as root, but is preferably configured as a DBus service that can
10343launch on demand. This can be configured by enabling the following service,
10344provided there is a DBus service present:
10345
10346 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10347 (license license:gpl2)))
10348
1a17d21b
NG
10349(define-public parlatype
10350 ;; This is one commit away from 2.0, because the latter introduced
10351 ;; a regression in ASR.
10352 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10353 (revision "0"))
10354 (package
10355 (name "parlatype")
10356 (version (git-version "2.0" revision commit))
10357 (source
10358 (origin
10359 (method git-fetch)
10360 (uri (git-reference
10361 (url "https://github.com/gkarsay/parlatype.git")
10362 (commit commit)))
10363 (file-name (git-file-name name version))
10364 (sha256
10365 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10366 (build-system meson-build-system)
10367 (arguments
10368 `(#:glib-or-gtk? #t
10369 #:tests? #f ;require internet access
10370 #:phases
10371 (modify-phases %standard-phases
10372 (add-after 'install 'wrap-parlatype
10373 ;; Add gstreamer plugin provided in this package to system's
10374 ;; plugins.
10375 (lambda* (#:key outputs #:allow-other-keys)
10376 (let* ((out (assoc-ref outputs "out"))
10377 (gst-plugin-path (string-append
10378 out "/lib/gstreamer-1.0/"
10379 ":"
10380 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10381 (wrap-program (string-append out "/bin/parlatype")
10382 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10383 #t)))))
10384 (native-inputs
10385 `(("appstream-glib" ,appstream-glib)
10386 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10387 ("gettext" ,gettext-minimal)
10388 ("glib" ,glib "bin") ;for glib-compile-resources
10389 ("pkg-config" ,pkg-config)
10390 ("yelp-tools" ,yelp-tools)))
10391 (inputs
10392 `(("gst-plugins-base" ,gst-plugins-base)
10393 ("gst-plugins-good" ,gst-plugins-good)
10394 ("gstreamer" ,gstreamer)
10395 ("gtk+" ,gtk+)
10396 ("pocketsphinx" ,pocketsphinx)
10397 ("pulseaudio" ,pulseaudio)
10398 ("sphinxbase" ,sphinxbase)))
10399 (home-page "http://gkarsay.github.io/parlatype/")
10400 (synopsis "GNOME audio player for transcription")
10401 (description "Parlatype is an audio player for the GNOME desktop
10402environment. Its main purpose is the manual transcription of spoken
10403audio files.")
10404 (license license:gpl3+))))
95856a6e
AT
10405
10406(define-public jsonrpc-glib
10407 (package
10408 (name "jsonrpc-glib")
10409 (version "3.34.0")
10410 (source (origin
10411 (method url-fetch)
10412 (uri (string-append "mirror://gnome/sources/" name "/"
10413 (version-major+minor version) "/"
10414 name "-" version ".tar.xz"))
10415 (sha256
10416 (base32
10417 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10418 (build-system meson-build-system)
10419 (inputs
10420 `(("json-glib" ,json-glib)
10421 ("glib" ,glib)))
10422 (native-inputs
10423 `(("pkg-config" ,pkg-config)
10424 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10425 ("gobject-introspection" ,gobject-introspection)
10426 ("vala" ,vala)))
10427 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10428 (synopsis "JSON-RPC library for GLib")
10429 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10430peers in either a synchronous or asynchronous fashion. It also allows
10431communicating using the GVariant serialization format instead of JSON when
10432both peers support it. You might want that when communicating on a single
10433host to avoid parser overhead and memory-allocator fragmentation.")
10434 (license license:lgpl2.1+)))
0faed399
JB
10435
10436(define-public feedbackd
10437 (package
10438 (name "feedbackd")
10439 (version "0.0.0+git20200527")
10440 (source (origin
10441 (method git-fetch)
10442 (uri (git-reference
10443 (url "https://source.puri.sm/Librem5/feedbackd.git")
10444 (commit (string-append "v" version))))
10445 (file-name (git-file-name name version))
10446 (sha256
10447 (base32
10448 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
10449 (build-system meson-build-system)
10450 (native-inputs
10451 `(("glib:bin" ,glib "bin")
10452 ("gobject-introspection" ,gobject-introspection)
10453 ("pkg-config" ,pkg-config)
10454 ("vala" ,vala)))
10455 (inputs
10456 `(("dbus" ,dbus)
10457 ("gsound" ,gsound)
10458 ("json-glib" ,json-glib)
10459 ("libgudev" ,libgudev)))
10460 (propagated-inputs
10461 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
10462 (synopsis "Haptic/visual/audio feedback via DBus")
10463 (description "Feedbackd provides a DBus daemon to act on events to provide
10464haptic, visual and audio feedback. It offers the libfeedbackd library and
10465GObject introspection bindings.")
10466 (home-page "https://source.puri.sm/Librem5/feedbackd")
10467 (license (list license:lgpl2.1+ ; libfeedbackd
10468 license:lgpl3+)))) ; the rest