gnu: dconf: Appease 'guix lint'.
[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>
f6501b9f 46;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
3861fb1c 47;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
fa01e10d 48;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
63db190a 49;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
0e26c3cf 50;;; Copyright © 2020 raingloom <raingloom@riseup.net>
1a17d21b 51;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
dd233e4d 52;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
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>
995b7261
AE
56;;;
57;;; This file is part of GNU Guix.
58;;;
59;;; GNU Guix is free software; you can redistribute it and/or modify it
60;;; under the terms of the GNU General Public License as published by
61;;; the Free Software Foundation; either version 3 of the License, or (at
62;;; your option) any later version.
63;;;
64;;; GNU Guix is distributed in the hope that it will be useful, but
65;;; WITHOUT ANY WARRANTY; without even the implied warranty of
66;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
67;;; GNU General Public License for more details.
68;;;
69;;; You should have received a copy of the GNU General Public License
70;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
71
72(define-module (gnu packages gnome)
ed19903d 73 #:use-module (gnu packages)
ba5dd105 74 #:use-module (gnu packages admin)
411ba511 75 #:use-module (gnu packages aspell)
75016d07 76 #:use-module (gnu packages autotools)
7b212526 77 #:use-module (gnu packages avahi)
b29909b4 78 #:use-module (gnu packages backup)
6a180f6f 79 #:use-module (gnu packages base)
1e33331c 80 #:use-module (gnu packages bash)
5698b8b8 81 #:use-module (gnu packages bison)
aa51d92c 82 #:use-module (gnu packages boost)
5fc9b6c1 83 #:use-module (gnu packages build-tools)
df217748 84 #:use-module (gnu packages calendar)
b29909b4 85 #:use-module (gnu packages cdrom)
df12f04a 86 #:use-module (gnu packages check)
d61a894b 87 #:use-module (gnu packages cmake)
b29909b4 88 #:use-module (gnu packages compression)
8f523eb9 89 #:use-module (gnu packages crates-io)
23a22af6 90 #:use-module (gnu packages cups)
6e1bb642 91 #:use-module (gnu packages curl)
c3f29bc9 92 #:use-module (gnu packages cyrus-sasl)
6e1bb642 93 #:use-module (gnu packages databases)
255d1bbe 94 #:use-module (gnu packages dbm)
c769cf9f 95 #:use-module (gnu packages djvu)
ba5dd105 96 #:use-module (gnu packages dns)
b4ce6300 97 #:use-module (gnu packages docbook)
b29909b4 98 #:use-module (gnu packages documentation)
329d731b 99 #:use-module (gnu packages enchant)
b29909b4
TGR
100 #:use-module (gnu packages flex)
101 #:use-module (gnu packages fonts)
e762d943 102 #:use-module (gnu packages file-systems)
a56be436 103 #:use-module (gnu packages fontutils)
b29909b4 104 #:use-module (gnu packages freedesktop)
dfc407f3 105 #:use-module (gnu packages game-development)
fed5a689 106 #:use-module (gnu packages gettext)
b29909b4
TGR
107 #:use-module (gnu packages ghostscript)
108 #:use-module (gnu packages gl)
995b7261 109 #:use-module (gnu packages glib)
c1354b90 110 #:use-module (gnu packages gnupg)
23a22af6 111 #:use-module (gnu packages gnuzilla)
8d8c6bff 112 #:use-module (gnu packages geo)
b29909b4
TGR
113 #:use-module (gnu packages gperf)
114 #:use-module (gnu packages graphviz)
85f5dc19 115 #:use-module (gnu packages gstreamer)
d9c1a22b 116 #:use-module (gnu packages gtk)
6b888eff 117 #:use-module (gnu packages guile)
b645146f 118 #:use-module (gnu packages ibus)
03be9874 119 #:use-module (gnu packages icu4c)
b29909b4
TGR
120 #:use-module (gnu packages image)
121 #:use-module (gnu packages imagemagick)
122 #:use-module (gnu packages inkscape)
9cc98f8a 123 #:use-module (gnu packages iso-codes)
b29909b4 124 #:use-module (gnu packages kerberos)
85f5dc19 125 #:use-module (gnu packages libcanberra)
b64e217f 126 #:use-module (gnu packages libunistring)
0e26c3cf 127 #:use-module (gnu packages libunwind)
75016d07 128 #:use-module (gnu packages libusb)
b29909b4 129 #:use-module (gnu packages linux)
4e3fc547 130 #:use-module (gnu packages lirc)
7b212526 131 #:use-module (gnu packages lua)
b29909b4 132 #:use-module (gnu packages mail)
03be9874 133 #:use-module (gnu packages mp3)
b29909b4 134 #:use-module (gnu packages multiprecision)
64fce637 135 #:use-module (gnu packages music)
b29909b4
TGR
136 #:use-module (gnu packages ncurses)
137 #:use-module (gnu packages nettle)
ba5dd105 138 #:use-module (gnu packages networking)
5fc9b6c1 139 #:use-module (gnu packages ninja)
aff0cce9 140 #:use-module (gnu packages nss)
b29909b4 141 #:use-module (gnu packages openldap)
b645146f 142 #:use-module (gnu packages password-utils)
de1215e2 143 #:use-module (gnu packages pcre)
b29909b4 144 #:use-module (gnu packages pdf)
27477d2d 145 #:use-module (gnu packages perl)
f70d8383 146 #:use-module (gnu packages photo)
995b7261 147 #:use-module (gnu packages pkg-config)
b29909b4
TGR
148 #:use-module (gnu packages polkit)
149 #:use-module (gnu packages popt)
7d3bb433 150 #:use-module (gnu packages pretty-print)
23a22af6 151 #:use-module (gnu packages pulseaudio)
995b7261 152 #:use-module (gnu packages python)
00014781
RW
153 #:use-module (gnu packages python-crypto)
154 #:use-module (gnu packages python-web)
44d10b1f 155 #:use-module (gnu packages python-xyz)
cce0da5e 156 #:use-module (gnu packages rdesktop)
b29909b4 157 #:use-module (gnu packages readline)
a76d0f03 158 #:use-module (gnu packages ruby)
ec47c07d 159 #:use-module (gnu packages rust)
b29909b4 160 #:use-module (gnu packages samba)
75016d07 161 #:use-module (gnu packages scanner)
240cee8a 162 #:use-module (gnu packages selinux)
c27e02bf 163 #:use-module (gnu packages slang)
b29909b4
TGR
164 #:use-module (gnu packages speech)
165 #:use-module (gnu packages spice)
cd0322a3 166 #:use-module (gnu packages sqlite)
4a1bf090 167 #:use-module (gnu packages ssh)
2cd1de32 168 #:use-module (gnu packages swig)
8f9ac901 169 #:use-module (gnu packages tex)
33dc54b0 170 #:use-module (gnu packages time)
a7fd7b68 171 #:use-module (gnu packages tls)
2cd1de32 172 #:use-module (gnu packages valgrind)
3c5dbd2b 173 #:use-module (gnu packages version-control)
b29909b4 174 #:use-module (gnu packages video)
59132b80 175 #:use-module (gnu packages virtualization)
f2b96b3a 176 #:use-module (gnu packages vpn)
a18f8eaf 177 #:use-module (gnu packages web)
b29909b4
TGR
178 #:use-module (gnu packages webkit)
179 #:use-module (gnu packages xdisorg)
180 #:use-module (gnu packages xiph)
181 #:use-module (gnu packages xml)
d633f2f6 182 #:use-module (gnu packages xorg)
a76d0f03 183 #:use-module (gnu artwork)
8f523eb9 184 #:use-module (guix build-system cargo)
b29909b4
TGR
185 #:use-module (guix build-system cmake)
186 #:use-module (guix build-system glib-or-gtk)
187 #:use-module (guix build-system gnu)
188 #:use-module (guix build-system meson)
08be02be 189 #:use-module (guix build-system python)
b29909b4
TGR
190 #:use-module (guix build-system trivial)
191 #:use-module (guix download)
192 #:use-module (guix git-download)
193 #:use-module ((guix licenses) #:prefix license:)
194 #:use-module (guix packages)
195 #:use-module (guix utils)
a76d0f03 196 #:use-module (guix gexp)
8f523eb9
EF
197 #:use-module (guix monads)
198 #:use-module (guix store)
4e3fdeb7 199 #:use-module (ice-9 match)
c024ae36 200 #:use-module (srfi srfi-1))
85f5dc19
AE
201
202(define-public brasero
203 (package
204 (name "brasero")
e2bf423a 205 (version "3.12.2")
85f5dc19
AE
206 (source (origin
207 (method url-fetch)
d1df7554 208 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 209 (version-major+minor version) "/"
d1df7554 210 "brasero-" version ".tar.xz"))
85f5dc19
AE
211 (sha256
212 (base32
e2bf423a 213 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 214 (build-system glib-or-gtk-build-system)
e8627cd9
DH
215 (arguments
216 `(#:configure-flags (list
217 (string-append "--with-girdir="
218 (assoc-ref %outputs "out")
219 "/share/gir-1.0")
220 (string-append "--with-typelibdir="
221 (assoc-ref %outputs "out")
ce426deb
TD
222 "/lib/girepository-1.0"))
223 #:phases
224 (modify-phases %standard-phases
225 (add-before 'configure 'embed-growisofs
226 (lambda* (#:key inputs #:allow-other-keys)
227 (substitute* "plugins/growisofs/burn-growisofs.c"
228 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 229 #t)))))
85f5dc19
AE
230 (propagated-inputs
231 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
232 (native-inputs
233 `(("intltool" ,intltool)
ba549e17 234 ("itstool" ,itstool)
426adbe8 235 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 236 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 237 ("pkg-config" ,pkg-config)))
85f5dc19 238 (inputs
ce426deb
TD
239 `(("dvd+rw-tools" ,dvd+rw-tools)
240 ("glib" ,glib)
85f5dc19
AE
241 ("gnome-doc-utils" ,gnome-doc-utils)
242 ("gstreamer" ,gstreamer)
243 ("gst-plugins-base" ,gst-plugins-base)
244 ("gtk+" ,gtk+)
85f5dc19
AE
245 ("libcanberra" ,libcanberra)
246 ("libice" ,libice)
247 ("libnotify" ,libnotify)
248 ("libsm" ,libsm)
e8627cd9 249 ("libxml2" ,libxml2)
e8627cd9 250 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 251 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
252 (synopsis "CD/DVD burning tool for Gnome")
253 (description "Brasero is an application to burn CD/DVD for the Gnome
254Desktop. It is designed to be as simple as possible and has some unique
255features to enable users to create their discs easily and quickly.")
1dd26275 256 (license license:gpl2+)))
995b7261 257
a3cbcbaf
RG
258(define-public notification-daemon
259 (package
260 (name "notification-daemon")
261 (version "3.20.0")
262 (source
263 (origin
264 (method url-fetch)
265 (uri
266 (string-append "mirror://gnome/sources/" name "/"
267 (version-major+minor version) "/"
268 name "-" version ".tar.xz"))
269 (sha256
270 (base32
271 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
272 (build-system glib-or-gtk-build-system)
273 (native-inputs
274 `(("intltool" ,intltool)
275 ("pkg-config" ,pkg-config)))
276 (inputs
277 `(("glib" ,glib)
278 ("gtk+" ,gtk+)
279 ("x11" ,libx11)))
280 (synopsis "Notification Daemon for GNOME Desktop")
281 (description "Notification-Daemon is the server implementation of the
282freedesktop.org desktop notification specification.")
283 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
284 (license license:gpl2+)))
285
4e8bdbf8
RG
286(define-public mm-common
287 (package
288 (name "mm-common")
289 (version "1.0.0")
290 (source (origin
291 (method url-fetch)
292 (uri (string-append "mirror://gnome/sources/" name "/"
293 (version-major+minor version) "/"
294 name "-" version ".tar.xz"))
295 (sha256
296 (base32
297 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
298 (build-system meson-build-system)
299 (arguments
300 `(#:phases
301 (modify-phases %standard-phases
302 (add-after 'unpack 'patch
303 (lambda* (#:key inputs #:allow-other-keys)
304 (substitute* "util/mm-common-prepare.in"
305 (("ln") (string-append (assoc-ref inputs "coreutils")
306 "/bin/ln"))
307 (("cp") (string-append (assoc-ref inputs "coreutils")
308 "/bin/cp"))
309 (("sed") (string-append (assoc-ref inputs "sed")
310 "/bin/sed"))
311 (("cat") (string-append (assoc-ref inputs "coreutils")
312 "/bin/cat")))
313 #t)))))
314 (native-inputs
4e8bdbf8 315 `(("coreutils" ,coreutils)
74a65885
DM
316 ("gettext" ,gettext-minimal)
317 ("pkg-config" ,pkg-config)
4e8bdbf8 318 ("sed" ,sed)))
74a65885
DM
319 (inputs
320 `(("python" ,python)))
4e8bdbf8
RG
321 (synopsis "Module of GNOME C++ bindings")
322 (description "The mm-common module provides the build infrastructure
323and utilities shared among the GNOME C++ binding libraries. Release
324archives of mm-common include the Doxygen tag file for the GNU C++
325Library reference documentation.")
326 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
327 (license license:gpl2+)))
328
e05ce17d
RG
329(define-public phodav
330 (package
331 (name "phodav")
332 (version "2.4")
333 (source (origin
334 (method url-fetch)
335 (uri (string-append "mirror://gnome/sources/" name "/"
336 (version-major+minor version) "/"
337 name "-" version ".tar.xz"))
338 (sha256
339 (base32
340 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
341 (build-system meson-build-system)
342 (native-inputs
343 `(("gettext" ,gettext-minimal)
344 ("glib:bin" ,glib "bin")
345 ("gtk-doc" ,gtk-doc)
346 ("pkg-config" ,pkg-config)))
347 (inputs
348 `(("avahi" ,avahi)
349 ("libgudev" ,libgudev)
350 ("libsoup" ,libsoup)))
351 (synopsis "WebDav server implementation using libsoup")
352 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
353but it is generic enough to be reused in other projects,
354in particular in the GNOME desktop.")
355 (home-page "https://wiki.gnome.org/phodav")
356 (license license:lgpl2.1+)))
357
29ae18db
RG
358(define-public gnome-color-manager
359 (package
360 (name "gnome-color-manager")
361 (version "3.32.0")
362 (source (origin
363 (method url-fetch)
364 (uri (string-append "mirror://gnome/sources/" name "/"
365 (version-major+minor version) "/"
366 name "-" version ".tar.xz"))
367 (sha256
368 (base32
369 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
370 (build-system meson-build-system)
371 (arguments
372 `(#:glib-or-gtk? #t
373 #:phases
374 (modify-phases %standard-phases
375 (add-before
376 'check 'pre-check
377 (lambda _
378 ;; Tests require a running X server.
379 (system "Xvfb :1 &")
380 (setenv "DISPLAY" ":1")
381 #t)))))
382 (native-inputs
383 `(("desktop-file-utils" ,desktop-file-utils)
384 ("gettext" ,gettext-minimal)
385 ("glib:bin" ,glib "bin")
386 ("gtk+:bin" ,gtk+ "bin")
387 ("itstool" ,itstool)
388 ("pkg-config" ,pkg-config)
389 ("xorg-server" ,xorg-server-for-tests)))
390 (inputs
391 `(("adwaita-icon-theme" ,adwaita-icon-theme)
392 ("appstream-glib" ,appstream-glib)
393 ("colord-gtk" ,colord-gtk)
394 ("exiv2" ,exiv2)
395 ("gnome-desktop" ,gnome-desktop)
396 ("libcanberra" ,libcanberra)
397 ("libexif" ,libexif)
398 ("libtiff" ,libtiff)
399 ("libxrandr" ,libxrandr)
400 ("libxtst" ,libxtst)
401 ("libxxf86vm" ,libxxf86vm)
402 ("vte" ,vte)
403 ("xorgproto" ,xorgproto)))
404 (synopsis "Color profile manager for the GNOME desktop")
405 (description "GNOME Color Manager is a session framework that makes
406it easy to manage, install and generate color profiles
407in the GNOME desktop.")
408 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 409 (license license:gpl2+)))
29ae18db 410
e05471a1
RG
411(define-public gnome-online-miners
412 (package
413 (name "gnome-online-miners")
49dcd7fc 414 (version "3.34.0")
e05471a1
RG
415 (source (origin
416 (method url-fetch)
417 (uri (string-append "mirror://gnome/sources/" name "/"
418 (version-major+minor version) "/"
419 name "-" version ".tar.xz"))
420 (sha256
421 (base32
49dcd7fc 422 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
e05471a1
RG
423 (build-system glib-or-gtk-build-system)
424 (native-inputs
425 `(("gettext" ,gettext-minimal)
426 ("glib:bin" ,glib "bin")
29ae18db 427 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
428 ("gtk+:bin" ,gtk+ "bin")
429 ("pkg-config" ,pkg-config)))
430 (inputs
431 `(("gnome-online-accounts" ,gnome-online-accounts)
432 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
433 ("grilo" ,grilo)
434 ("libgdata" ,libgdata)
435 ("libgfbgraph" ,gfbgraph)
436 ("libzapojit" ,libzapojit)
437 ("rest" ,rest)
438 ("tracker" ,tracker)))
439 (synopsis "Web Crawlers for GNOME")
440 (description "GNOME Online Miners provides a set of crawlers that
441go through your online content and index them locally in Tracker.
442It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
443 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 444 (license license:gpl2+)))
e05471a1 445
e2aed29c
RG
446(define-public gssdp
447 (package
448 (name "gssdp")
449 (version "1.2.2")
450 (source (origin
451 (method url-fetch)
452 (uri (string-append "mirror://gnome/sources/" name "/"
453 (version-major+minor version) "/"
454 name "-" version ".tar.xz"))
455 (sha256
456 (base32
457 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
458 (build-system meson-build-system)
459 (native-inputs
460 `(("gettext" ,gettext-minimal)
461 ("glib:bin" ,glib "bin")
462 ("gobject-introspection" ,gobject-introspection)
463 ("gtk-doc" ,gtk-doc)
464 ("pkg-config" ,pkg-config)
465 ("vala" ,vala)))
466 (inputs
467 `(("gtk+" ,gtk+)
468 ("libsoup" ,libsoup)))
469 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
470Protocol} for GNOME")
471 (description "This package provides a library to handle resource discovery
472and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
473a debugging tool, @command{gssdp-device-sniffer}.")
474 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
475 (license license:lgpl2.0+)))
476
291a85b2
RG
477(define-public gupnp
478 (package
479 (name "gupnp")
480 (version "1.2.2")
481 (source (origin
482 (method url-fetch)
483 (uri (string-append "mirror://gnome/sources/" name "/"
484 (version-major+minor version) "/"
485 name "-" version ".tar.xz"))
486 (sha256
487 (base32
488 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
489 (build-system meson-build-system)
490 (native-inputs
491 `(("gettext" ,gettext-minimal)
492 ("glib:bin" ,glib "bin")
493 ("gobject-introspection" ,gobject-introspection)
494 ("gtk-doc" ,gtk-doc)
495 ("pkg-config" ,pkg-config)
496 ("vala" ,vala)))
497 (inputs
498 `(("gssdp" ,gssdp)
499 ("gtk+" ,gtk+)
500 ("libsoup" ,libsoup)))
501 (synopsis "PnP API for GNOME")
502 (description "This package provides GUPnP, an object-oriented framework
503for creating UPnP devices and control points, written in C using
504@code{GObject} and @code{libsoup}.")
505 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
506 (license license:lgpl2.0+)))
507
747d7fe4
RG
508(define-public gupnp-dlna
509 (package
510 (name "gupnp-dlna")
511 (version "0.10.5")
512 (source (origin
513 (method url-fetch)
514 (uri (string-append "mirror://gnome/sources/" name "/"
515 (version-major+minor version) "/"
516 name "-" version ".tar.xz"))
517 (sha256
518 (base32
519 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
520 (build-system gnu-build-system)
521 (native-inputs
522 `(("gettext" ,gettext-minimal)
523 ("glib:bin" ,glib "bin")
524 ("gobject-introspection" ,gobject-introspection)
525 ("gtk-doc" ,gtk-doc)
526 ("libxml" ,libxml2)
527 ("pkg-config" ,pkg-config)
528 ("vala" ,vala)))
529 (inputs
530 `(("gstreamer" ,gstreamer)
531 ("gupnp" ,gupnp)))
532 (propagated-inputs
533 `(("gst-plugins-base" ,gst-plugins-base)
534 ("gst-plugins-good" ,gst-plugins-good)))
535 (synopsis "GUPnP DLNA for GNOME")
536 (description "This package provides a small utility library to
537support DLNA-related tasks such as media profile guessing, transcoding to a
538given profile, etc. DLNA is a subset of UPnP A/V.")
539 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
540 (license license:lgpl2.0+)))
541
1b4cb628
RG
542(define-public gupnp-av
543 (package
544 (name "gupnp-av")
545 (version "0.12.11")
546 (source (origin
547 (method url-fetch)
548 (uri (string-append "mirror://gnome/sources/" name "/"
549 (version-major+minor version) "/"
550 name "-" version ".tar.xz"))
551 (sha256
552 (base32
553 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
554 (build-system gnu-build-system)
555 (native-inputs
556 `(("gettext" ,gettext-minimal)
557 ("glib:bin" ,glib "bin")
558 ("gobject-introspection" ,gobject-introspection)
559 ("gtk-doc" ,gtk-doc)
560 ("libxml" ,libxml2)
561 ("pkg-config" ,pkg-config)))
562 (inputs
563 `(("gtk+" ,gtk+)
564 ("gupnp" ,gupnp)))
565 (synopsis "GUPnP A/V for GNOME")
566 (description "This package provides a small library for handling
567and implementation of UPnP A/V profiles.")
568 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
569 (license license:lgpl2.0+)))
e05471a1 570
02ebbca8
RG
571(define-public libmediaart
572 (package
573 (name "libmediaart")
574 (version "1.9.4")
575 (source (origin
576 (method url-fetch)
577 (uri (string-append "mirror://gnome/sources/" name "/"
578 (version-major+minor version) "/"
579 name "-" version ".tar.xz"))
580 (sha256
581 (base32
582 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
583 (build-system gnu-build-system)
584 (native-inputs
585 `(("glib:bin" ,glib "bin")
586 ("pkg-config" ,pkg-config)))
587 (inputs
588 `(("gdk-pixbuf" ,gdk-pixbuf)
589 ("gettext" ,gettext-minimal)
590 ("gobject-introspection" ,gobject-introspection)
591 ("gtk+:doc", gtk+ "doc")
592 ("vala" ,vala)))
593 (synopsis "Media art library for the GNOME desktop")
594 (description
595 "The libmediaart library is the foundation for media art caching,
596extraction, and lookup for applications on the desktop.")
597 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
598 (license license:lgpl2.1+)))
599
a26680eb
RG
600(define-public gnome-initial-setup
601 (package
602 (name "gnome-initial-setup")
603 (version "3.32.1")
604 (source (origin
605 (method url-fetch)
606 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
607 (version-major+minor version)
608 "/gnome-initial-setup-" version ".tar.xz"))
609 (sha256
610 (base32
611 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
612 (build-system meson-build-system)
613 (arguments
a65cc579
DM
614 '(#:configure-flags '(;; Enable camera support for user selfie.
615 "-Dcheese=auto"
c627e2cb
LC
616 "-Dsystemd=false")
617 #:phases (modify-phases %standard-phases
618 (add-after 'unpack 'set-gkbd-file-name
619 (lambda* (#:key inputs #:allow-other-keys)
620 ;; Allow the "Preview" button in the keyboard layout
621 ;; selection dialog to display the layout.
622 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
623 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
624 (("\"gkbd-keyboard-display")
625 (string-append "\"" libgnomekbd
626 "/bin/gkbd-keyboard-display")))
627 #t))))))
a26680eb
RG
628 (native-inputs
629 `(("gettext" ,gettext-minimal)
630 ("glib:bin" ,glib "bin")
631 ("gobject-introspection" ,gobject-introspection)
632 ("gtk+:bin" ,gtk+ "bin")
633 ("pkg-config" ,pkg-config)))
634 (inputs
635 `(("accountsservice" ,accountsservice)
636 ;("adwaita-icon-theme" ,adwaita-icon-theme)
637 ("gdm" ,gdm)
638 ("geoclue" ,geoclue)
639 ("gnome-desktop" ,gnome-desktop)
640 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
641 ("gnome-online-accounts" ,gnome-online-accounts)
642 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
643 ("gstreamer" ,gstreamer)
644 ("ibus" ,ibus)
645 ("json-glib" ,json-glib)
646 ("krb5" ,mit-krb5)
647 ("libgweather" ,libgweather)
8d9477b8 648 ("libnma" ,libnma)
a26680eb
RG
649 ("libsecret" ,libsecret)
650 ("network-manager" ,network-manager)
a26680eb
RG
651 ("packagekit" ,packagekit)
652 ("polkit" ,polkit)
653 ("pwquality" ,libpwquality)
654 ("rest" ,rest)
655 ("upower" ,upower)
c627e2cb
LC
656 ("webkitgtk" ,webkitgtk)
657 ("libgnomekbd" ,libgnomekbd)))
a26680eb 658 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
659 (description "This package provides a set-up wizard when a
660user logs into GNOME for the first time. It typically provides a
661tour of all gnome components and allows the user to set them up.")
a26680eb
RG
662 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
663 (license license:gpl2)))
664
b5f01392
RG
665(define-public gnome-user-share
666 (package
667 (name "gnome-user-share")
668 (version "3.33.1")
669 (source (origin
670 (method url-fetch)
671 (uri (string-append "mirror://gnome/sources/" name "/"
672 (version-major+minor version) "/"
673 name "-" version ".tar.xz"))
674 (sha256
675 (base32
676 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
677 (build-system meson-build-system)
678 (arguments
679 `(#:glib-or-gtk? #t
680 #:configure-flags
681 `("-Dsystemd=false"
682 ;; Enable nautilus extension for file sharing.
683 "-Dnautilus_extension=true")))
684 (native-inputs
685 `(("gettext" ,gettext-minimal)
686 ("glib:bin" ,glib "bin")
687 ("gobject-introspection" ,gobject-introspection)
688 ("gtk+:bin" ,gtk+ "bin")
689 ("pkg-config" ,pkg-config)
690 ("yelp-tools" ,yelp-tools)))
691 (inputs
692 `(("glib" ,glib)
693 ("gnome-bluetooth" ,gnome-bluetooth)
694 ("gtk+" ,gtk+)
695 ("libcanberra" ,libcanberra)
696 ("libnotify" ,libnotify)
697 ("nautilus" ,nautilus))) ; For nautilus extension.
698 (synopsis "File sharing for GNOME desktop")
699 (description "GNOME User Share is a small package that binds together
700various free software projects to bring easy to use user-level file
701sharing to the masses.")
702 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 703 (license license:gpl2+)))
b5f01392 704
04b201bb
RG
705(define-public sushi
706 (package
707 (name "sushi")
708 (version "3.32.1")
709 (source (origin
710 (method url-fetch)
711 (uri (string-append "mirror://gnome/sources/" name "/"
712 (version-major+minor version) "/"
713 name "-" version ".tar.xz"))
714 (sha256
715 (base32
716 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
717 (build-system meson-build-system)
718 (arguments
719 `(#:glib-or-gtk? #t
720 #:phases
721 (modify-phases %standard-phases
722 (add-after 'glib-or-gtk-wrap 'wrap-typelib
723 (lambda* (#:key outputs #:allow-other-keys)
724 (let ((prog (string-append (assoc-ref outputs "out")
725 "/bin/sushi")))
726 ;; Put existing typelibs before sushi's deps, so as to correctly
727 ;; infer gdk-pixbuf
728 (wrap-program prog
729 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
730 #t))))))
731 (native-inputs
732 `(("glib:bin" ,glib "bin")
733 ("gettext" ,gettext-minimal)
734 ("gobject-introspection" ,gobject-introspection)
735 ("pkg-config" ,pkg-config)))
736 (inputs
737 `(("clutter" ,clutter)
738 ("clutter-gst" ,clutter-gst)
739 ("clutter-gtk" ,clutter-gtk)
740 ("evince" ,evince) ; For file previewing.
741 ("freetype" ,freetype)
742 ("gdk-pixbuf" ,gdk-pixbuf)
743 ("gjs" ,gjs)
744 ("gst-plugins-base" ,gst-plugins-base)
745 ("gstreamer" ,gstreamer)
746 ("gtksourceview" ,gtksourceview-3)
747 ("harfbuzz" ,harfbuzz)
748 ("libepoxy" ,libepoxy)
749 ("libmusicbrainz" ,libmusicbrainz)
750 ("libxml2" ,libxml2)
751 ("neon" ,neon)
752 ("webkitgtk" ,webkitgtk)))
753 (synopsis "File previewer for the GNOME desktop")
754 (description "Sushi is a DBus-activated service that allows applications to
755preview files on the GNOME desktop.")
756 (home-page "https://gitlab.gnome.org/GNOME/sushi")
757 (license license:gpl2+)))
758
89af0902
RG
759(define-public rygel
760 (package
761 (name "rygel")
762 (version "0.38.3")
763 (source (origin
764 (method url-fetch)
765 (uri (string-append "mirror://gnome/sources/" name "/"
766 (version-major+minor version) "/"
767 name "-" version ".tar.xz"))
768 (sha256
769 (base32
770 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
771 (build-system gnu-build-system)
772 (native-inputs
773 `(("gettext" ,gettext-minimal)
774 ("gobject-introspection" ,gobject-introspection)
775 ("gtk-doc" ,gtk-doc)
776 ("pkg-config" ,pkg-config)
777 ("vala" ,vala)))
778 (inputs
779 `(("gdk-pixbuf" ,gdk-pixbuf)
780 ("gssdp" ,gssdp)
781 ("gstreamer" ,gstreamer)
782 ("gst-plugins-base" ,gst-plugins-base)
783 ("gtk+" ,gtk+)
784 ("gupnp" ,gupnp)
785 ("gupnp-av" ,gupnp-av)
786 ("gupnp-dlna" ,gupnp-dlna)
787 ("libgee" ,libgee)
788 ("libmediaart" ,libmediaart)
789 ("libsoup" ,libsoup)
790 ("libxslt" ,libxslt)
791 ("libunistring" ,libunistring)
792 ("tracker" ,tracker)))
793 (synopsis "Share audio, video, and pictures with other devices")
794 (description
795 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
796MediaRenderer}) for GNOME that allows you to easily share audio, video, and
797pictures, and to control a media player on your home network.
798
799Rygel achieves interoperability with other devices by trying to conform to the
800strict requirements of DLNA and by converting media on-the-fly to formats that
801client devices can handle.")
802 (home-page "https://wiki.gnome.org/Projects/Rygel")
803 (license (list
804 ;; For logo (data/icons/*).
805 license:cc-by-sa3.0
806 ;; For all others.
807 license:lgpl2.1+))))
808
47e87093
RG
809(define-public libnma
810 (package
b1da33d9
BW
811 (name "libnma")
812 (version "1.8.28")
813 (source (origin
814 (method url-fetch)
815 (uri (string-append "mirror://gnome/sources/" name "/"
816 (version-major+minor version) "/"
817 name "-" version ".tar.xz"))
818 (sha256
819 (base32
820 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
821 (build-system meson-build-system)
822 (arguments
823 `(#:phases
824 (modify-phases %standard-phases
825 (add-after 'unpack 'patch-docbook-xml
826 (lambda* (#:key inputs #:allow-other-keys)
827 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
828 "/xml/dtd/docbook")))
829 (substitute* "libnma-docs.xml"
830 (("http://.*/docbookx\\.dtd")
831 (string-append xmldoc "/docbookx.dtd")))
832 #t))))))
833 (native-inputs
834 `(("docbook-xml" ,docbook-xml-4.3)
835 ("gettext" ,gettext-minimal)
836 ("glib:bin" ,glib "bin")
837 ("gtk-doc" ,gtk-doc)
838 ("gobject-introspection" ,gobject-introspection)
839 ("pkg-config" ,pkg-config)
840 ("vala" ,vala)))
841 (inputs
842 `(("gcr" ,gcr)
843 ("gtk+" ,gtk+)
844 ("iso-codes" ,iso-codes)
845 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
846 ("network-manager" ,network-manager)))
847 (synopsis "Network Manager's applet library")
848 (description "Libnma is an applet library for Network Manager. It was
47e87093
RG
849initially part of network-manager-applet and has now become a separate
850project.")
c25ca6b7
BW
851 (home-page "https://gitlab.gnome.org/GNOME/libnma")
852 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
853 ;; "LGPL-2.1+".
854 (license license:gpl2+)))
47e87093 855
30416265
RG
856(define-public gnome-menus
857 (package
858 (name "gnome-menus")
859 (version "3.32.0")
860 (source (origin
861 (method url-fetch)
862 (uri (string-append "mirror://gnome/sources/gnome-menus/"
863 (version-major+minor version) "/"
864 name "-" version ".tar.xz"))
865 (sha256
866 (base32
867 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
868 (build-system gnu-build-system)
869 (native-inputs
870 `(("gettext" ,gettext-minimal)
871 ("glib" ,glib)
872 ("pkg-config" ,pkg-config)))
873 (synopsis "Menu support for GNOME desktop")
874 (description "GNOME Menus contains the libgnome-menu library, the layout
875configuration files for the GNOME menu, as well as a simple menu editor.")
876 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 877 (license license:lgpl2.0+)))
30416265 878
d61a894b
CB
879(define-public deja-dup
880 (package
881 (name "deja-dup")
899ffa13 882 (version "40.6")
d61a894b 883 (source (origin
899ffa13
BW
884 (method url-fetch)
885 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
886 version "/deja-dup-" version ".tar.bz2"))
887 (sha256
888 (base32
889 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
890 (build-system meson-build-system)
d61a894b 891 (arguments
899ffa13
BW
892 `(#:glib-or-gtk? #t
893 #:configure-flags
894 (list
895 ;; Otherwise, the RUNPATH will lack the final path component.
896 (string-append "-Dc_link_args=-Wl,-rpath="
897 (assoc-ref %outputs "out") "/lib/deja-dup"))
d61a894b
CB
898 #:phases
899 (modify-phases %standard-phases
899ffa13
BW
900 (add-after 'unpack 'patch-paths
901 (lambda* (#:key inputs #:allow-other-keys)
902 (let ((python (assoc-ref inputs "python")))
903 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
904 "libdeja/tests/scripts/instance-error.test")
905 (("/bin/rm")
906 (which "rm")))
907 (substitute* "libdeja/tests/runner.vala"
908 (("/bin/sh")
909 (which "sh")))
910 (substitute* "libdeja/tests/scripts/instance-error.test"
911 (("`which python3`")
912 (string-append python "/bin/python3"))))))
913 (add-after 'unpack 'patch-libgpg-error
914 (lambda* (#:key inputs #:allow-other-keys)
915 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
916 (substitute* "meson.build"
917 (("(gpgerror_libs = ).*" _ var)
918 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
919 #t))
920 (add-after 'unpack 'skip-gtk-update-icon-cache
921 ;; Don't create 'icon-theme.cache'.
922 (lambda _
923 (substitute* "data/post-install.sh"
924 (("gtk-update-icon-cache") "true"))
925 #t)))))
d61a894b
CB
926 (inputs
927 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
d61a894b 928 ("duplicity" ,duplicity)
899ffa13
BW
929 ("python" ,python)
930 ("python-pygobject" ,python-pygobject)
d61a894b 931 ("gtk+" ,gtk+)
899ffa13 932 ("json-glib" ,json-glib)
d61a894b 933 ("libnotify" ,libnotify)
899ffa13 934 ("libgpg-error" ,libgpg-error)
d61a894b 935 ("libsecret" ,libsecret)
899ffa13 936 ("libsoup" ,libsoup)
d61a894b
CB
937 ("packagekit" ,packagekit)))
938 (native-inputs
899ffa13
BW
939 `(("appstream-glib" ,appstream-glib)
940 ("desktop-file-utils" ,desktop-file-utils)
d61a894b 941 ("gettext" ,gettext-minimal)
899ffa13
BW
942 ("glib" ,glib "bin") ; for glib-compile-schemas.
943 ("gobject-introspection" ,gobject-introspection)
d61a894b 944 ("itstool" ,itstool)
899ffa13
BW
945 ("pkg-config" ,pkg-config)
946 ("vala" ,vala)))
947 (home-page "https://wiki.gnome.org/Apps/DejaDup")
d61a894b
CB
948 (synopsis "Simple backup tool, for regular encrypted backups")
949 (description
950 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
951uses duplicity as the backend, which supports incremental backups and storage
952either on a local, or remote machine via a number of methods.")
953 (license license:gpl3+)))
954
823b77fb
RG
955(define-public gnome-user-docs
956 (package
957 (name "gnome-user-docs")
958 (version "3.32.3")
959 (source
960 (origin
961 (method url-fetch)
962 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
963 (version-major+minor version)
964 "/gnome-user-docs-" version ".tar.xz"))
965 (sha256
966 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
967 (build-system gnu-build-system)
968 (native-inputs
969 `(("gettext" ,gettext-minimal)
970 ("itstool" ,itstool)
971 ("pkg-config" ,pkg-config)
972 ("xmllint" ,libxml2)))
973 (synopsis "User documentation for the GNOME desktop")
974 (description
975 "The GNOME User Documentation explains how to use the GNOME desktop and its
976components. It covers usage and setup of the core GNOME programs by end-users
977and system administrators.")
978 (home-page "https://live.gnome.org/DocumentationProject")
979 (license license:cc-by3.0)))
980
be93299d
RG
981(define-public gnome-getting-started-docs
982 (package
983 (name "gnome-getting-started-docs")
984 (version "3.32.2")
985 (source
986 (origin
987 (method url-fetch)
988 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
989 (version-major+minor version)
990 "/gnome-getting-started-docs-" version ".tar.xz"))
991 (sha256
992 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
993 (build-system gnu-build-system)
994 (native-inputs
995 `(("gettext" ,gettext-minimal)
996 ("itstool" ,itstool)
997 ("pkg-config" ,pkg-config)
998 ("xmllint" ,libxml2)))
999 (synopsis "Help to get new users started with the GNOME desktop")
1000 (description
1001 "The GNOME Getting Started Documentation contains GNOME's intuitive
1002\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1003
1004It is normally used together with @command{gnome-initial-setup}, but is also
1005useful as a tutorial and users' guide for new or less experienced users.")
1006 (home-page "https://live.gnome.org/DocumentationProject")
1007 (license license:cc-by-sa3.0)))
1008
a56be436
RJ
1009(define-public dia
1010 ;; This version from GNOME's repository includes fixes for compiling with
1011 ;; recent versions of the build tools. The latest activity on the
1012 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1013 ;; fixes in 2016.
1014 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
1015 (package
1016 (name "dia")
914c8cdf 1017 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
1018 (source (origin
1019 (method git-fetch)
1020 (uri (git-reference
914c8cdf 1021 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1022 (commit commit)))
914c8cdf 1023 (file-name (git-file-name name version))
a56be436
RJ
1024 (sha256
1025 (base32
1026 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
1027 (build-system gnu-build-system)
1028 (inputs
a315afa3 1029 `(("freetype" ,freetype)
a56be436
RJ
1030 ("gdk-pixbuf" ,gdk-pixbuf)
1031 ("gtk+" ,gtk+-2)
a315afa3 1032 ("libart-lgpl" ,libart-lgpl)
a56be436 1033 ("libxml2" ,libxml2)
a315afa3 1034 ("pango" ,pango)))
a56be436 1035 (native-inputs
a315afa3 1036 `(("autoconf" ,autoconf)
a56be436 1037 ("automake" ,automake)
a315afa3
EF
1038 ("intltool" ,intltool)
1039 ("glib" ,glib "bin")
a56be436
RJ
1040 ("libtool" ,libtool)
1041 ("perl" ,perl)
a315afa3 1042 ("pkg-config" ,pkg-config)
a56be436 1043 ("python-wrapper" ,python-wrapper)))
a56be436
RJ
1044 (home-page "https://wiki.gnome.org/Apps/Dia")
1045 (synopsis "Diagram creation for GNOME")
1046 (description "Dia can be used to draw different types of diagrams, and
1047includes support for UML static structure diagrams (class diagrams), entity
1048relationship modeling, and network diagrams. The program supports various file
1049formats like PNG, SVG, PDF and EPS.")
1050 (license license:gpl2+))))
1051
d0b19e44
RW
1052;; This is the unstable release, but it is required for the current stable
1053;; release of gvfs (1.38.1).
adc5cb1b
KK
1054(define-public libgdata
1055 (package
1056 (name "libgdata")
d0b19e44 1057 (version "0.17.9")
adc5cb1b
KK
1058 (source (origin
1059 (method url-fetch)
1060 (uri (string-append "mirror://gnome/sources/" name "/"
1061 (version-major+minor version) "/"
1062 name "-" version ".tar.xz"))
1063 (sha256
1064 (base32
d0b19e44 1065 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1066 (build-system gnu-build-system)
1067 (arguments
1068 '(#:phases
1069 (modify-phases %standard-phases
448052b7
TGR
1070 (add-before 'check 'disable-failing-tests
1071 (lambda _
1072 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1073 ;; They have been removed in libgdata 0.17.6, so just do the same.
1074 (substitute* "gdata/tests/Makefile"
1075 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1076 #t)))))
1077 (native-inputs
1078 `(("glib:bin" ,glib "bin")
1079 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1080 ("intltool" ,intltool)
1081 ("pkg-config" ,pkg-config)
1082 ("uhttpmock" ,uhttpmock)))
1083 (inputs
1084 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1085 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1086 (propagated-inputs
1087 `(("gcr" ,gcr)
d0b19e44 1088 ("glib" ,glib)
14c297fd 1089 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1090 ("json-glib" ,json-glib)
adc5cb1b 1091 ("liboauth" ,liboauth)
d0b19e44 1092 ("libsoup" ,libsoup)
adc5cb1b
KK
1093 ("libxml2" ,libxml2)))
1094 (home-page "https://wiki.gnome.org/Projects/libgdata")
1095 (synopsis "Library for accessing online service APIs")
1096 (description
1097 "libgdata is a GLib-based library for accessing online service APIs using
1098the GData protocol — most notably, Google's services. It provides APIs to
1099access the common Google services, and has full asynchronous support.")
1100 (license license:lgpl2.1+)))
1101
94e10cf4
KK
1102(define-public libgxps
1103 (package
1104 (name "libgxps")
66470a5a 1105 (version "0.3.1")
94e10cf4
KK
1106 (source (origin
1107 (method url-fetch)
7f10628c 1108 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1109 (version-major+minor version) "/"
1110 name "-" version ".tar.xz"))
1111 (sha256
1112 (base32
66470a5a 1113 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1114 (build-system meson-build-system)
94e10cf4
KK
1115 (native-inputs
1116 `(("gobject-introspection" ,gobject-introspection)
1117 ("pkg-config" ,pkg-config)))
1118 (inputs
c8d62d93 1119 `(("gtk+" ,gtk+)
b6b3e512 1120 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1121 ("lcms" ,lcms)
0a6e9e13 1122 ("libtiff" ,libtiff)))
c8d62d93
MB
1123 (propagated-inputs
1124 ;; In Requires of libgxps.pc.
1125 `(("cairo" ,cairo)
1126 ("glib" ,glib)
1127 ("libarchive" ,libarchive)))
94e10cf4
KK
1128 (home-page "https://wiki.gnome.org/Projects/libgxps")
1129 (synopsis "GObject-based library for handling and rendering XPS documents")
1130 (description
1131 "libgxps is a GObject-based library for handling and rendering XPS
1132documents. This package also contains binaries that can convert XPS documents
1133to other formats.")
1134 (license license:lgpl2.1+)))
1135
4e09f57a
RG
1136(define-public gnome-characters
1137 (package
1138 (name "gnome-characters")
1139 (version "3.30.0")
1140 (source
1141 (origin
1142 (method url-fetch)
1143 (uri (string-append "mirror://gnome/sources/"
1144 "gnome-characters/" (version-major+minor version)
1145 "/gnome-characters-" version ".tar.xz"))
1146 (sha256
1147 (base32
1148 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1149 (build-system meson-build-system)
5757c641 1150 (arguments
1151 `(#:glib-or-gtk? #t
1152 #:phases (modify-phases %standard-phases
1153 (add-after 'install 'wrap
1154 (lambda* (#:key outputs #:allow-other-keys)
1155 ;; GNOME Characters needs Typelib files from GTK and
1156 ;; gnome-desktop.
1157 (wrap-program (string-append (assoc-ref outputs "out")
1158 "/bin/gnome-characters")
1159 `("GI_TYPELIB_PATH" ":" prefix
1160 (,(getenv "GI_TYPELIB_PATH"))))
1161 #t)))))
4e09f57a
RG
1162 (native-inputs
1163 `(("gettext" ,gettext-minimal)
1164 ("glib:bin" ,glib "bin")
1165 ("gtk+:bin" ,gtk+ "bin")
1166 ("pkg-config" ,pkg-config)
1167 ("python" ,python-minimal)))
1168 (inputs
1169 `(("gjs" ,gjs)
1170 ("gtk+" ,gtk+)
5757c641 1171 ("libunistring" ,libunistring)
1172 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1173 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1174 (synopsis "Find and insert unusual characters")
1175 (description "Characters is a simple utility application to find
1176and insert unusual characters. It allows you to quickly find the
1177character you are looking for by searching for keywords.")
1178 (license license:bsd-3)))
1179
7aab13f1
ML
1180(define-public gnome-common
1181 (package
1182 (name "gnome-common")
af83490d 1183 (version "3.18.0")
7aab13f1
ML
1184 (source
1185 (origin
1186 (method url-fetch)
1187 (uri (string-append "mirror://gnome/sources/" name "/"
1188 (version-major+minor version) "/"
1189 name "-" version ".tar.xz"))
1190 (sha256
1191 (base32
af83490d 1192 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1193 (build-system gnu-build-system)
1194 (home-page "https://www.gnome.org/")
1195 (synopsis "Bootstrap GNOME modules built from Git")
1196 (description "gnome-common contains various files needed to bootstrap
1197GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1198can be used to configure a source directory checked out from Git and some
1199commonly used macros.")
1200 (license license:gpl2+)))
1201
4e868d22
RG
1202(define-public gnome-contacts
1203 (package
1204 (name "gnome-contacts")
b3492e39 1205 (version "3.34")
4e868d22
RG
1206 (source (origin
1207 (method url-fetch)
1208 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1209 (version-major+minor version) "/"
1210 name "-" version ".tar.xz"))
1211 (sha256
1212 (base32
b3492e39 1213 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
4e868d22
RG
1214 (build-system meson-build-system)
1215 (arguments
b3492e39
KK
1216 `(#:configure-flags '("-Dcheese=false")
1217 #:phases
4e868d22
RG
1218 (modify-phases %standard-phases
1219 (add-after 'unpack 'generate-vapis
1220 (lambda* (#:key inputs #:allow-other-keys)
1221 ;; To generate goa's missing .vapi file
1222 (define goa
1223 (assoc-ref inputs "gnome-online-accounts:lib"))
1224
1225 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1226 "--library=goa-1.0"
1227 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
b3492e39
KK
1228 #t))
1229 (add-after 'unpack 'skip-gtk-update-icon-cache
1230 ;; Don't create 'icon-theme.cache'.
1231 (lambda _
1232 (substitute* "build-aux/meson_post_install.py"
1233 (("gtk-update-icon-cache") "true"))
4e868d22
RG
1234 #t)))))
1235 (native-inputs
1236 `(("glib:bin" ,glib "bin")
4e868d22
RG
1237 ("pkg-config" ,pkg-config)))
1238 (inputs
b3492e39 1239 `(("docbook-xml" ,docbook-xml)
4e868d22
RG
1240 ("dockbook-xsl" ,docbook-xsl)
1241 ("evolution-data-server" ,evolution-data-server)
1242 ("gettext" ,gettext-minimal)
1243 ("gnome-desktop" ,gnome-desktop)
1244 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1245 ("gobject-introspection" ,gobject-introspection)
1246 ("gst-plugins-base" ,gst-plugins-base)
1247 ("gtk+" ,gtk+)
1248 ("libgee" ,libgee)
1249 ("libxslt" ,libxslt)
1250 ("telepathy-glib" ,telepathy-glib)
1251 ("vala" ,vala)))
1252 (propagated-inputs
1253 `(("folks", folks)
1254 ("telepathy-mission-control" ,telepathy-mission-control)))
1255 (synopsis "GNOME's integrated address book")
1256 (description
1257 "GNOME Contacts organizes your contact information from online and
1258offline sources, providing a centralized place for managing your contacts.")
1259 (home-page "https://wiki.gnome.org/Apps/Contacts")
1260 (license license:gpl2+)))
1261
9cc98f8a
CR
1262(define-public gnome-desktop
1263 (package
1264 (name "gnome-desktop")
8a7afc81 1265 (version "3.34.2")
9cc98f8a
CR
1266 (source
1267 (origin
1268 (method url-fetch)
b38e45d8
EB
1269 (uri (string-append "mirror://gnome/sources/" name "/"
1270 (version-major+minor version) "/"
9cc98f8a
CR
1271 name "-" version ".tar.xz"))
1272 (sha256
1273 (base32
8a7afc81 1274 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
e8a26caa 1275 (build-system meson-build-system)
a0fe7c06
CB
1276 (arguments
1277 '(#:phases
1278 (modify-phases %standard-phases
1279 (add-before 'configure 'patch-path
1280 (lambda* (#:key inputs #:allow-other-keys)
1281 (let ((libc (assoc-ref inputs "libc")))
1282 (substitute* "libgnome-desktop/gnome-languages.c"
1283 (("\"locale\"")
1284 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1285 #t)))
1286 (add-before 'check 'pre-check
1287 (lambda* (#:key inputs #:allow-other-keys)
1288 ;; Tests require a running X server and locales.
1289 (system "Xvfb :1 &")
1290 (setenv "DISPLAY" ":1")
1291 (setenv "GUIX_LOCPATH"
1292 (string-append (assoc-ref inputs "glibc-locales")
1293 "/lib/locale"))
1294 #t)))))
9cc98f8a 1295 (native-inputs
e8a26caa
KK
1296 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1297 ("glibc-locales" ,glibc-locales) ; for tests
1298 ("gobject-introspection" ,gobject-introspection)
a8340482 1299 ("itstool" ,itstool)
bcb354ad
SB
1300 ("intltool" ,intltool)
1301 ("pkg-config" ,pkg-config)
e8a26caa
KK
1302 ("xmllint" ,libxml2)
1303 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1304 (propagated-inputs
1305 ;; Required by gnome-desktop-3.0.pc.
1306 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1307 ("gtk+" ,gtk+)
9cc98f8a 1308 ("iso-codes" ,iso-codes)
9863ce20 1309 ("libseccomp" ,libseccomp)
9cc98f8a 1310 ("libx11" ,libx11)
e8a26caa
KK
1311 ("xkeyboard-config" ,xkeyboard-config)))
1312 (inputs
1313 `(("gdk-pixbuf" ,gdk-pixbuf)
1314 ("glib" ,glib)
9cc98f8a
CR
1315 ("libxext" ,libxext)
1316 ("libxkbfile" ,libxkbfile)
e8a26caa 1317 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1318 (home-page "https://www.gnome.org/")
1319 (synopsis
35b9e423 1320 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1321 (description
1322 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1323on the desktop, but that cannot live in the platform for various reasons.
1324There is no API or ABI guarantee, although we are doing our best to provide
1325stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1326
1327The gnome-about program helps find which version of GNOME is installed.")
1328 ; Some bits under the LGPL.
1dd26275 1329 (license license:gpl2+)))
9cc98f8a 1330
995b7261
AE
1331(define-public gnome-doc-utils
1332 (package
1333 (name "gnome-doc-utils")
1334 (version "0.20.10")
1335 (source
1336 (origin
1337 (method url-fetch)
b38e45d8
EB
1338 (uri (string-append "mirror://gnome/sources/" name "/"
1339 (version-major+minor version) "/"
995b7261
AE
1340 name "-" version ".tar.xz"))
1341 (sha256
1342 (base32
1343 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1344 (build-system gnu-build-system)
c4c4cc05 1345 (native-inputs
995b7261 1346 `(("intltool" ,intltool)
b4ce6300 1347 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1348 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1349 ("libxml2" ,libxml2)
1350 ("libxslt" ,libxslt)
1351 ("pkg-config" ,pkg-config)
1352 ("python-2" ,python-2)))
995b7261
AE
1353 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1354 (synopsis
1355 "Documentation utilities for the Gnome project")
1356 (description
1357 "Gnome-doc-utils is a collection of documentation utilities for the
1358Gnome project. It includes xml2po tool which makes it easier to translate
1359and keep up to date translations of documentation.")
1dd26275 1360 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1361
6c4f7022
DC
1362(define-public gnome-disk-utility
1363 (package
1364 (name "gnome-disk-utility")
262e660e 1365 (version "3.34.0")
6c4f7022
DC
1366 (source (origin
1367 (method url-fetch)
1368 (uri (string-append "mirror://gnome/sources/" name "/"
1369 (version-major+minor version) "/"
1370 name "-" version ".tar.xz"))
1371 (sha256
1372 (base32
262e660e 1373 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
4b9a65bf 1374 (build-system meson-build-system)
321c73c3 1375 (arguments
262e660e
KK
1376 '(#:configure-flags '("-Dlogind=libelogind")
1377 #:phases
321c73c3
EF
1378 (modify-phases %standard-phases
1379 (add-after 'unpack 'skip-gtk-update-icon-cache
1380 ;; Don't create 'icon-theme.cache'.
1381 (lambda _
1382 (substitute* "meson_post_install.py"
1383 (("gtk-update-icon-cache") "true"))
1384 #t)))))
6c4f7022
DC
1385 (native-inputs
1386 `(("glib:bin" ,glib "bin")
1387 ("intltool" ,intltool)
1388 ("pkg-config" ,pkg-config)
1389 ("docbook-xml" ,docbook-xml)
1390 ("docbook-xsl" ,docbook-xsl)
1391 ("libxml2" ,libxml2)
1392 ("libxslt" ,libxslt)))
1393 (inputs
262e660e
KK
1394 `(("elogind" ,elogind)
1395 ("glib" ,glib)
6c4f7022
DC
1396 ("appstream-glib" ,appstream-glib)
1397 ("gnome-settings-daemon" ,gnome-settings-daemon)
1398 ("gtk+" ,gtk+)
1399 ("libcanberra" ,libcanberra)
1400 ("libdvdread" ,libdvdread)
1401 ("libnotify" ,libnotify)
1402 ("libpwquality" ,libpwquality)
1403 ("libsecret" ,libsecret)
1404 ("udisks" ,udisks)))
1405 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1406 (synopsis "Disk management utility for GNOME")
1407 (description "Disk management utility for GNOME.")
1408 (license license:gpl2+)))
1409
3d217317
RG
1410(define-public gnome-font-viewer
1411 (package
1412 (name "gnome-font-viewer")
1413 (version "3.30.0")
1414 (source (origin
1415 (method url-fetch)
1416 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1417 (version-major+minor version)
1418 "/gnome-font-viewer-" version ".tar.xz"))
1419 (sha256
1420 (base32
1421 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1422 (build-system meson-build-system)
1423 (arguments
1424 '(#:phases
1425 (modify-phases %standard-phases
1426 (add-after 'unpack 'patch-post-install-script
1427 (lambda _
1428 (substitute* "meson-postinstall.sh"
1429 (("update-desktop-database") (which "true")))
1430 #t)))))
1431 (native-inputs
1432 `(("gettext" ,gettext-minimal)
1433 ("glib:bin" ,glib "bin")
1434 ("pkg-config" ,pkg-config)))
1435 (inputs
1436 `(("glib" ,glib)
1437 ("gnome-desktop" ,gnome-desktop)
1438 ("gtk+" ,gtk+)))
1439 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1440 (synopsis "GNOME Fonts")
1441 (description "Application to show you the fonts installed on your computer
1442for your use as thumbnails. Selecting any thumbnails shows the full view of how
1443the font would look under various sizes.")
1444 (license license:gpl2+)))
1445
8ff49011
RW
1446(define-public gcr
1447 (package
1448 (name "gcr")
1de804da 1449 (version "3.34.0")
8ff49011 1450 (source (origin
0daf0efb
RW
1451 (method url-fetch)
1452 (uri (string-append "mirror://gnome/sources/" name "/"
1453 (version-major+minor version) "/"
1454 name "-" version ".tar.xz"))
1455 (sha256
1456 (base32
1de804da 1457 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1458 (build-system gnu-build-system)
1459 (arguments
0daf0efb
RW
1460 '(#:phases
1461 (modify-phases %standard-phases
1462 ;; These fail because /var/lib/dbus/machine-id is not present in the
1463 ;; build environment.
1464 (add-after 'unpack 'disable-failing-tests
1465 (lambda _
1de804da
MB
1466 (substitute* "Makefile.in"
1467 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1468 ""))
0daf0efb
RW
1469 #t))
1470 (add-before 'check 'pre-check
1471 (lambda _
1472 ;; Some tests expect to write to $HOME.
1473 (setenv "HOME" "/tmp")
1474 #t)))))
8ff49011
RW
1475 (inputs
1476 `(("dbus" ,dbus)
0daf0efb 1477 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1478 ("libgcrypt" ,libgcrypt)))
1479 (native-inputs
1de804da 1480 `(("python" ,python-wrapper) ;for tests
8ff49011 1481 ("pkg-config" ,pkg-config)
1de804da 1482 ("gettext" ,gettext-minimal)
8ff49011 1483 ("glib" ,glib "bin")
2af4f5b0 1484 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1485 ("libxml2" ,libxml2)
bea6b829 1486 ("vala" ,vala)
2af4f5b0 1487 ("xsltproc" ,libxslt)))
8ff49011
RW
1488 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1489 (propagated-inputs
1490 `(("p11-kit" ,p11-kit)
1491 ("glib" ,glib)
1492 ("gtk+" ,gtk+)))
f032d0be 1493 (home-page "https://www.gnome.org")
8ff49011
RW
1494 (synopsis "Libraries for displaying certificates and accessing key stores")
1495 (description
1496 "The GCR package contains libraries used for displaying certificates and
1497accessing key stores. It also provides the viewer for crypto files on the
1498GNOME Desktop.")
1499 (license license:lgpl2.1+)))
1500
c1354b90
LC
1501(define-public libgnome-keyring
1502 (package
1503 (name "libgnome-keyring")
5e8aec2c 1504 (version "3.12.0")
c1354b90
LC
1505 (source (origin
1506 (method url-fetch)
b38e45d8
EB
1507 (uri (string-append "mirror://gnome/sources/" name "/"
1508 (version-major+minor version) "/"
1509 name "-" version ".tar.xz"))
c1354b90
LC
1510 (sha256
1511 (base32
5e8aec2c 1512 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1513 (build-system gnu-build-system)
c1354b90 1514 (inputs
c4c4cc05 1515 `(("libgcrypt" ,libgcrypt)
c1354b90 1516 ("dbus" ,dbus)))
c4c4cc05
JD
1517 (native-inputs
1518 `(("pkg-config" ,pkg-config)
426adbe8 1519 ("glib" ,glib "bin")
c4c4cc05 1520 ("intltool" ,intltool)))
c1354b90
LC
1521 (propagated-inputs
1522 ;; Referred to in .h files and .pc.
1523 `(("glib" ,glib)))
f032d0be 1524 (home-page "https://www.gnome.org")
c1354b90
LC
1525 (synopsis "Accessing passwords from the GNOME keyring")
1526 (description
1527 "Client library to access passwords from the GNOME keyring.")
1528
1529 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1530 (license license:lgpl2.0+)))
c1354b90 1531
e99a3d6f
RW
1532(define-public gnome-keyring
1533 (package
1534 (name "gnome-keyring")
14faeadd 1535 (version "3.34.0")
e99a3d6f
RW
1536 (source (origin
1537 (method url-fetch)
1538 (uri (string-append "mirror://gnome/sources/" name "/"
1539 (version-major+minor version) "/"
1540 name "-" version ".tar.xz"))
1541 (sha256
1542 (base32
14faeadd 1543 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
e99a3d6f
RW
1544 (build-system gnu-build-system)
1545 (arguments
1546 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1547 ;not exist
1548 #:configure-flags
1549 (list
1550 (string-append "--with-pkcs11-config="
1551 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1552 (string-append "--with-pkcs11-modules="
1553 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1554 #:phases
1555 (modify-phases %standard-phases
ab35cc6e
RW
1556 (add-after 'unpack 'fix-/bin/sh-reference
1557 (lambda _
1558 (substitute* "po/Makefile.in.in"
1559 (("/bin/sh") (which "sh")))
1560 #t))
5120f24f
RW
1561 (add-after 'unpack 'fix-docbook
1562 (lambda* (#:key inputs #:allow-other-keys)
1563 (substitute* "docs/Makefile.am"
1564 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1565 (string-append (assoc-ref inputs "docbook-xsl")
1566 "/xml/xsl/docbook-xsl-"
1567 ,(package-version docbook-xsl)
1568 "/manpages/docbook.xsl")))
1569 (setenv "XML_CATALOG_FILES"
1570 (string-append (assoc-ref inputs "docbook-xml")
1571 "/xml/dtd/docbook/catalog.xml"))
1572 ;; Rerun the whole thing to avoid version mismatch ("This is
1573 ;; Automake 1.15.1, but the definition used by this
1574 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1575 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1576 (invoke "autoconf")
1577 (invoke "aclocal")
1578 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1579 (inputs
1580 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1581 ("linux-pam" ,linux-pam)
ab35cc6e 1582 ("openssh" ,openssh)
e99a3d6f
RW
1583 ("dbus" ,dbus)
1584 ("gcr" ,gcr)))
1585 (native-inputs
1586 `(("pkg-config" ,pkg-config)
1587 ("glib" ,glib "bin")
5120f24f 1588 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1589 ("python" ,python-2) ;for tests
1590 ("intltool" ,intltool)
1591 ("autoconf" ,autoconf)
1592 ("automake" ,automake)
1593 ("libxslt" ,libxslt) ;for documentation
1594 ("docbook-xml" ,docbook-xml-4.2)
1595 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1596 (home-page "https://www.gnome.org")
e99a3d6f
RW
1597 (synopsis "Daemon to store passwords and encryption keys")
1598 (description
1599 "gnome-keyring is a program that keeps passwords and other secrets for
1600users. It is run as a daemon in the session, similar to ssh-agent, and other
1601applications locate it via an environment variable or D-Bus.
1602
1603The program can manage several keyrings, each with its own master password,
1604and there is also a session keyring which is never stored to disk, but
1605forgotten when the session ends.")
1606 (license license:lgpl2.1+)))
1607
c1354b90
LC
1608(define-public evince
1609 (package
1610 (name "evince")
936d5642 1611 (version "3.34.2")
c1354b90
LC
1612 (source (origin
1613 (method url-fetch)
ac631328 1614 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1615 (version-major+minor version) "/"
ac631328 1616 "evince-" version ".tar.xz"))
c1354b90
LC
1617 (sha256
1618 (base32
936d5642 1619 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1620 (build-system glib-or-gtk-build-system)
c1354b90 1621 (arguments
169b8f77 1622 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1623 #:phases
1624 (modify-phases %standard-phases
1625 (add-before 'install 'skip-gtk-update-icon-cache
1626 ;; Don't create 'icon-theme.cache'.
1627 (lambda _
1628 (substitute* "data/Makefile"
1629 (("gtk-update-icon-cache") "true"))
1630 #t)))))
c1354b90 1631 (inputs
9a096881
KK
1632 `(("libarchive" ,libarchive)
1633 ("libgxps" ,libgxps)
1634 ("libspectre" ,libspectre)
c769cf9f 1635 ("djvulibre" ,djvulibre)
c1354b90
LC
1636 ("ghostscript" ,ghostscript)
1637 ("poppler" ,poppler)
c769cf9f
SB
1638 ("libtiff" ,libtiff)
1639 ;; TODO:
c769cf9f
SB
1640 ;; Build libkpathsea as a shared library for DVI support.
1641 ;; ("libkpathsea" ,texlive-bin)
1642 ("gnome-desktop" ,gnome-desktop)
c1354b90 1643 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1644 ("gspell" ,gspell)
c1354b90 1645 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1646 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1647 ("gdk-pixbuf" ,gdk-pixbuf)
1648 ("atk" ,atk)
1649 ("pango" ,pango)
1650 ("gtk+" ,gtk+)
1651 ("glib" ,glib)
1652 ("libxml2" ,libxml2)
c1354b90
LC
1653 ("libsm" ,libsm)
1654 ("libice" ,libice)
96e42467 1655 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1656 ("dconf" ,dconf)
1657 ("libcanberra" ,libcanberra)
c769cf9f 1658 ("libsecret" ,libsecret)
a271096b 1659
c1354b90
LC
1660 ;; For tests.
1661 ("dogtail" ,python2-dogtail)))
96e42467 1662 (native-inputs
bcb354ad
SB
1663 `(("itstool" ,itstool)
1664 ("intltool" ,intltool)
426adbe8 1665 ("glib" ,glib "bin")
169b8f77 1666 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1667 ("pkg-config" ,pkg-config)
1668 ("xmllint" ,libxml2)))
c1354b90 1669 (home-page
f032d0be 1670 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1671 (synopsis "GNOME's document viewer")
1672 (description
1673 "Evince is a document viewer for multiple document formats. It
1674currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1675of Evince is to replace the multiple document viewers that exist
96e42467 1676on the GNOME Desktop with a single simple application.")
1dd26275 1677 (license license:gpl2+)))
c1354b90 1678
22e32e69
AE
1679(define-public gsettings-desktop-schemas
1680 (package
1681 (name "gsettings-desktop-schemas")
8468117e 1682 (version "3.34.0")
22e32e69
AE
1683 (source
1684 (origin
1685 (method url-fetch)
1686 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1687 (version-major+minor version) "/"
22e32e69
AE
1688 name "-" version ".tar.xz"))
1689 (sha256
1690 (base32
8468117e 1691 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
c900dabd 1692 (build-system meson-build-system)
65209ffa
LC
1693 (arguments
1694 '(#:phases (modify-phases %standard-phases
3861fb1c 1695 (add-after 'unpack 'patch-schemas
65209ffa 1696 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1697 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1698 (substitute* (find-files "schemas"
1699 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1700 ;; Provide the correct file name of the default GNOME
1701 ;; background, 'adwaita-timed.xml'.
65209ffa 1702 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1703 (string-append theme "/share/backgrounds/gnome"))
1704 ;; Do not reference fonts, that may not exist.
1705 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1706 #t))))))
22e32e69 1707 (inputs
65209ffa
LC
1708 `(("glib" ,glib)
1709 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1710 (native-inputs
1711 `(("intltool" ,intltool)
426adbe8 1712 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1713 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1714 ("pkg-config" ,pkg-config)))
1715 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1716 (synopsis
1717 "GNOME settings for various desktop components")
1718 (description
1719 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1720for settings shared by various components of the GNOME desktop.")
1dd26275 1721 (license license:lgpl2.1+)))
22e32e69 1722
27477d2d
AE
1723(define-public icon-naming-utils
1724 (package
1725 (name "icon-naming-utils")
1726 (version "0.8.90")
1727 (source
1728 (origin
1729 (method url-fetch)
5cc3096c 1730 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1731 version ".tar.bz2"))
1732 (sha256
1733 (base32
1734 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1735 (build-system gnu-build-system)
1736 (inputs
1737 `(("perl" ,perl)
1738 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1739 (arguments
1740 '(#:phases
dc1d3cde
KK
1741 (modify-phases %standard-phases
1742 (add-after 'install 'set-load-paths
1743 ;; Tell 'icon-name-mapping' where XML::Simple is.
1744 (lambda* (#:key outputs #:allow-other-keys)
1745 (let* ((out (assoc-ref outputs "out"))
1746 (prog (string-append out "/libexec/icon-name-mapping")))
1747 (wrap-program
1748 prog
1749 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1750 #t)))))
27477d2d
AE
1751 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1752 (synopsis
1753 "Utility to implement the Freedesktop Icon Naming Specification")
1754 (description
1755 "To help with the transition to the Freedesktop Icon Naming
1756Specification, the icon naming utility maps the icon names used by the
1757GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1758 (license license:lgpl2.1+)))
27477d2d 1759
7d3f3651
AE
1760(define-public gnome-icon-theme
1761 (package
1762 (name "gnome-icon-theme")
b32f58dd 1763 (version "3.12.0")
7d3f3651
AE
1764 (source
1765 (origin
1766 (method url-fetch)
1767 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1768 (version-major+minor version) "/"
7d3f3651
AE
1769 name "-" version ".tar.xz"))
1770 (sha256
1771 (base32
b32f58dd 1772 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1773 (build-system gnu-build-system)
5613c27d
SB
1774 (arguments
1775 '(#:configure-flags
1776 ;; Don't create 'icon-theme.cache'.
1777 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1778 (true (string-append coreutils "/bin/true")))
1779 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1780 (native-inputs
5613c27d 1781 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1782 ("intltool" ,intltool)
1783 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1784 (home-page "https://wiki.gnome.org/Personalization")
1785 (synopsis "GNOME icon theme")
1786 (description "Icons for the GNOME desktop.")
1dd26275 1787 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1788
14eeefa2
SB
1789;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1790(define-public adwaita-icon-theme
1791 (package (inherit gnome-icon-theme)
1792 (name "adwaita-icon-theme")
e21788f2 1793 (version "3.34.3")
14eeefa2
SB
1794 (source (origin
1795 (method url-fetch)
1796 (uri (string-append "mirror://gnome/sources/" name "/"
1797 (version-major+minor version) "/"
1798 name "-" version ".tar.xz"))
1799 (sha256
1800 (base32
e21788f2 1801 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
5613c27d
SB
1802 (native-inputs
1803 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1804
ae792dba
RW
1805(define-public tango-icon-theme
1806 (package
1807 (name "tango-icon-theme")
1808 (version "0.8.90")
1809 (source (origin
1810 (method url-fetch)
1811 (uri (string-append "http://tango.freedesktop.org/releases/"
1812 "tango-icon-theme-" version ".tar.bz2"))
1813 (sha256
1814 (base32
1815 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1816 (build-system gnu-build-system)
1817 (native-inputs
1818 `(("icon-naming-utils" ,icon-naming-utils)
1819 ("intltool" ,intltool)
1820 ("imagemagick" ,imagemagick)
1821 ("pkg-config" ,pkg-config)))
1822 (home-page "http://tango-project.org/")
1823 (synopsis "Tango icon theme")
1824 (description "This is an icon theme that follows the Tango visual
1825guidelines.")
1826 (license license:public-domain)))
1827
9167f8e6
LC
1828(define-public shared-mime-info
1829 (package
1830 (name "shared-mime-info")
404e386e 1831 (version "1.15")
9167f8e6
LC
1832 (source (origin
1833 (method url-fetch)
404e386e
MB
1834 (uri (string-append
1835 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1836 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1837 ".tar.xz"))
9167f8e6
LC
1838 (sha256
1839 (base32
404e386e 1840 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1841 (build-system gnu-build-system)
1842 (arguments
1843 ;; The build system appears not to be parallel-safe.
1844 '(#:parallel-build? #f))
1845 (inputs
1846 `(("glib" ,glib)
c4c4cc05 1847 ("libxml2" ,libxml2)))
9167f8e6 1848 (native-inputs
404e386e
MB
1849 `(("gettext" ,gettext-minimal)
1850 ("itstool" ,itstool)
c4c4cc05 1851 ("pkg-config" ,pkg-config)))
57e7d748 1852 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1853 (synopsis "Database of common MIME types")
1854 (description
1855 "The shared-mime-info package contains the core database of common types
1856and the update-mime-database command used to extend it. It requires glib2 to
1857be installed for building the update command. Additionally, it uses intltool
1858for translations, though this is only a dependency for the maintainers. This
1859database is translated at Transifex.")
1dd26275 1860 (license license:gpl2+)))
9167f8e6 1861
dd1fcddc
CB
1862(define-public system-config-printer
1863 (package
1864 (name "system-config-printer")
fa01e10d 1865 (version "1.5.12")
a5643044
TGR
1866 (source
1867 (origin
1868 (method url-fetch)
1869 (uri (string-append
1870 "https://github.com/OpenPrinting/system-config-printer/releases/"
1871 "download/" version
1872 "/system-config-printer-" version ".tar.xz"))
1873 (sha256
fa01e10d 1874 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1875 (build-system glib-or-gtk-build-system)
1876 (arguments
1877 `(#:imported-modules ((guix build python-build-system)
1878 ,@%glib-or-gtk-build-system-modules)
1879 #:phases
1880 (modify-phases %standard-phases
1881 (add-after 'unpack 'patch-Makefile.am
1882 (lambda _
1883 ;; The Makefile generates some scripts, so set a valid shebang
1884 (substitute* "Makefile.am"
1885 (("/bin/bash") (which "bash")))
1886 (delete-file "configure")
1887 #t))
1888 (add-after 'unpack 'patch-docbook-xml
1889 (lambda* (#:key inputs #:allow-other-keys)
1890 ;; Modify the man XML otherwise xmlto tries to access the network
1891 (substitute* "man/system-config-printer.xml"
1892 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1893 (string-append (assoc-ref inputs "docbook-xml")
1894 "/xml/dtd/docbook/")))
1895 #t))
1896 (add-after 'install 'wrap-for-python
1897 (@@ (guix build python-build-system) wrap))
1898 (add-after 'install 'wrap
1899 (lambda* (#:key outputs #:allow-other-keys)
1900 (let ((out (assoc-ref outputs "out"))
1901 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1902 (for-each
1903 (lambda (program)
1904 (wrap-program program
1905 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1906 (map (lambda (name)
1907 (string-append out "/bin/" name))
1908 '("system-config-printer"
1909 "system-config-printer-applet"
1910 "install-printerdriver"
1911 "scp-dbus-service"))))
1912 #t)))))
1913 (inputs
1914 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1915 ("gobject-introspection" ,gobject-introspection)
1916 ("python" ,python)
1917 ("cups" ,cups)
1918 ("python-dbus" ,python-dbus)
1919 ("python-pygobject" ,python-pygobject)
1920 ("python-pycups" ,python-pycups)
1921 ("python-requests" ,python-requests)
1922 ("python-pycairo" ,python-pycairo)
1923 ("libnotify" ,libnotify)
1924 ("packagekit" ,packagekit)))
1925 (native-inputs
1926 `(("pkg-config" ,pkg-config)
1927 ("desktop-file-utils" ,desktop-file-utils)
1928 ("glib" ,glib)
1929 ("autoconf" ,autoconf)
1930 ("automake" ,automake)
1931 ("intltool" ,intltool)
1932 ("xmlto" ,xmlto)
1933 ("docbook-xml" ,docbook-xml-4.1.2)
1934 ("docbook-xsl" ,docbook-xsl)
1935 ("libxml2" ,libxml2)))
1936 (home-page "https://github.com/zdohnal/system-config-printer")
1937 (synopsis "CUPS administration tool")
1938 (description
1939 "system-config-printer is a CUPS administration tool. It's written in
1940Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1941configuring CUPS.")
1942 (license license:gpl2+)))
1943
bef4dd92
AE
1944(define-public hicolor-icon-theme
1945 (package
1946 (name "hicolor-icon-theme")
851cb6dd 1947 (version "0.17")
bef4dd92
AE
1948 (source
1949 (origin
1950 (method url-fetch)
5cc3096c 1951 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1952 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1953 (sha256
1954 (base32
851cb6dd 1955 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1956 (build-system gnu-build-system)
1957 (arguments
1958 `(#:tests? #f)) ; no check target
57e7d748 1959 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1960 (synopsis
1961 "Freedesktop icon theme")
1962 (description
1963 "Freedesktop icon theme.")
1dd26275 1964 (license license:gpl2)))
bef4dd92 1965
d9c1a22b
AE
1966(define-public libnotify
1967 (package
1968 (name "libnotify")
195bfa68 1969 (version "0.7.7")
d9c1a22b
AE
1970 (source
1971 (origin
1972 (method url-fetch)
1973 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1974 (version-major+minor version) "/"
d9c1a22b
AE
1975 name "-" version ".tar.xz"))
1976 (sha256
1977 (base32
195bfa68 1978 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1979 (build-system gnu-build-system)
6acf6cec
MB
1980 (arguments
1981 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1982 (propagated-inputs
1983 `(;; In Requires of libnotify.pc.
1984 ("gdk-pixbuf" ,gdk-pixbuf)
1985 ("glib" ,glib)))
d9c1a22b 1986 (inputs
7ef08efa 1987 `(("gtk+" ,gtk+)
c4c4cc05
JD
1988 ("libpng" ,libpng)))
1989 (native-inputs
426adbe8 1990 `(("pkg-config" ,pkg-config)
277a7d82
JN
1991 ("glib" ,glib "bin")
1992 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1993 (home-page "https://developer-next.gnome.org/libnotify/")
1994 (synopsis
1995 "GNOME desktop notification library")
1996 (description
1997 "Libnotify is a library that sends desktop notifications to a
35b9e423 1998notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1999notifications can be used to inform the user about an event or display
2000some form of information without getting in the user's way.")
1dd26275 2001 (license license:lgpl2.1+)))
7a8605ce
CR
2002
2003(define-public libpeas
2004 (package
2005 (name "libpeas")
f2d56e39 2006 (version "1.24.1")
7a8605ce
CR
2007 (source
2008 (origin
2009 (method url-fetch)
2010 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2011 (version-major+minor version) "/"
7a8605ce
CR
2012 name "-" version ".tar.xz"))
2013 (sha256
2014 (base32
f2d56e39
MB
2015 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2016 (build-system meson-build-system)
2017 (arguments
2018 '(#:phases
2019 (modify-phases %standard-phases
2020 (add-before 'check 'start-xserver
2021 (lambda* (#:key inputs #:allow-other-keys)
2022 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2023 (disp ":1"))
2024 (setenv "DISPLAY" disp)
2025 ;; Tests require a running X server.
2026 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2027 #t))))))
7a8605ce 2028 (inputs
2ed6522a
SB
2029 `(("gtk+" ,gtk+)
2030 ("glade" ,glade3)
2ed6522a
SB
2031 ("python" ,python)
2032 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2033 (native-inputs
2034 `(("pkg-config" ,pkg-config)
f2d56e39 2035 ("gettext" ,gettext-minimal)
93622993 2036 ("glib:bin" ,glib "bin")
141aed80 2037 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2038 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2039 (propagated-inputs
2040 ;; The .pc file "Requires" gobject-introspection.
2041 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2042 (home-page "https://wiki.gnome.org/Libpeas")
2043 (synopsis "GObject plugin system")
2044 (description
d1e4ad1b
TGR
2045 "Libpeas is a gobject-based plugin engine, targeted at giving every
2046application the chance to assume its own extensibility. It also has a set of
2047features including, but not limited to: multiple extension points; on-demand
2048(lazy) programming language support for C, Python and JS; simplicity of the
2049API.")
1dd26275 2050 (license license:lgpl2.0+)))
ed19903d
JD
2051
2052(define-public gtkglext
2053 (package
2054 (name "gtkglext")
2055 (version "1.2.0")
2056 (source (origin
2057 (method url-fetch)
0f971a04 2058 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2059 version "/gtkglext-" version ".tar.gz"))
2060 (sha256
2061 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2062 (patches (search-patches
2063 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2064 (build-system gnu-build-system)
14e2f61a
RW
2065 (arguments
2066 `(#:phases
2067 (modify-phases %standard-phases
2068 ;; Fix a collision between a local variable and a definition from
2069 ;; glibc's string.h.
2070 (add-after 'unpack 'fix-collision
2071 (lambda _
2072 (substitute* "gdk/gdkglshapes.c"
2073 ((" index") " triangle_index"))
2074 #t)))))
ed19903d
JD
2075 (inputs `(("gtk+" ,gtk+-2)
2076 ("mesa" ,mesa)
cc8b02f4 2077 ("glu" ,glu)
ed19903d
JD
2078 ("libx11" ,libx11)
2079 ("libxt" ,libxt)))
426adbe8
LC
2080 (native-inputs `(("pkg-config" ,pkg-config)
2081 ("glib" ,glib "bin")))
a83b6a06 2082 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2083 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2084 (synopsis "OpenGL extension to GTK+")
35b9e423 2085 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2086additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2087API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2088 (license license:lgpl2.1+)))
3600420e
JD
2089
2090(define-public glade3
2091 (package
2092 (name "glade")
c6571adb 2093 (version "3.22.1")
b38e45d8
EB
2094 (source (origin
2095 (method url-fetch)
2096 (uri (string-append "mirror://gnome/sources/" name "/"
2097 (version-major+minor version) "/"
f5ca44b8 2098 name "-" version ".tar.xz"))
3600420e 2099 (sha256
f714d9fe 2100 (base32
c6571adb 2101 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 2102 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
2103 (arguments
2104 `(#:tests? #f ; needs X, GL, and software rendering
2105 #:phases
2106 (modify-phases %standard-phases
2107 (add-before 'configure 'fix-docbook
2108 (lambda* (#:key inputs #:allow-other-keys)
2109 (substitute* "man/Makefile.in"
2110 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2111 (string-append (assoc-ref inputs "docbook-xsl")
2112 "/xml/xsl/docbook-xsl-"
2113 ,(package-version docbook-xsl)
2114 "/manpages/docbook.xsl")))
2115 #t)))))
3600420e 2116 (inputs
f5ca44b8 2117 `(("gtk+" ,gtk+)
3600420e
JD
2118 ("libxml2" ,libxml2)))
2119 (native-inputs
2120 `(("intltool" ,intltool)
f5ca44b8
RW
2121 ("itstool" ,itstool)
2122 ("libxslt" ,libxslt) ;for xsltproc
2123 ("docbook-xml" ,docbook-xml-4.2)
2124 ("docbook-xsl" ,docbook-xsl)
2125 ("python" ,python-2)
3600420e
JD
2126 ("pkg-config" ,pkg-config)))
2127 (home-page "https://glade.gnome.org")
2128 (synopsis "GTK+ rapid application development tool")
2129 (description "Glade is a rapid application development (RAD) tool to
2130enable quick & easy development of user interfaces for the GTK+ toolkit and
2131the GNOME desktop environment.")
1dd26275
LC
2132 (license license:lgpl2.0+)))
2133
2134(define-public libcroco
2135 (package
2136 (name "libcroco")
8bdacad2 2137 (version "0.6.13")
1dd26275
LC
2138 (source (origin
2139 (method url-fetch)
b38e45d8
EB
2140 (uri (string-append "mirror://gnome/sources/" name "/"
2141 (version-major+minor version) "/"
2142 name "-" version ".tar.xz"))
1dd26275
LC
2143 (sha256
2144 (base32
8bdacad2 2145 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2146 (build-system gnu-build-system)
2147 (native-inputs
2148 `(("pkg-config" ,pkg-config)))
2149 (inputs
2150 `(("glib" ,glib)
2151 ("libxml2" ,libxml2)
2152 ("zlib" ,zlib)))
2153 (home-page "https://github.com/GNOME/libcroco")
2154 (synopsis "CSS2 parsing and manipulation library")
2155 (description
2156 "Libcroco is a standalone CSS2 parsing and manipulation library.
2157The parser provides a low level event driven SAC-like API and a CSS object
2158model like API. Libcroco provides a CSS2 selection engine and an experimental
2159XML/CSS rendering engine.")
2160
2161 ;; LGPLv2.1-only.
2162 (license license:lgpl2.1)))
25178594
LC
2163
2164(define-public libgsf
2165 (package
2166 (name "libgsf")
2b9b854c 2167 (version "1.14.47")
25178594
LC
2168 (source (origin
2169 (method url-fetch)
b38e45d8
EB
2170 (uri (string-append "mirror://gnome/sources/" name "/"
2171 (version-major+minor version) "/"
2172 name "-" version ".tar.xz"))
25178594
LC
2173 (sha256
2174 (base32
2b9b854c 2175 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
25178594 2176 (build-system gnu-build-system)
23904adb
MB
2177 (arguments
2178 '(#:configure-flags '("--disable-static")))
25178594 2179 (native-inputs
0a1559cc
MB
2180 `(("pkg-config" ,pkg-config)
2181 ("gettext" ,gettext-minimal)
2182
2183 ;; For tests.
2184 ("perl" ,perl)
2185 ("perl-xml-parser" ,perl-xml-parser)))
25178594 2186 (inputs
4ffa9f6b 2187 `(("zlib" ,zlib)
25178594
LC
2188 ("bzip2" ,bzip2)))
2189 (propagated-inputs
2190 `(("gdk-pixbuf" ,gdk-pixbuf)
2191 ("glib" ,glib)
2192 ("libxml2" ,libxml2)))
f032d0be 2193 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2194 (synopsis "GNOME's Structured File Library")
2195 (description
2196 "Libgsf aims to provide an efficient extensible I/O abstraction for
2197dealing with different structured file formats.")
2198
2199 ;; LGPLv2.1-only.
2200 (license license:lgpl2.1)))
63016e7c
LC
2201
2202(define-public librsvg
f67417a1
MB
2203 (package
2204 (name "librsvg")
c1cc52a2 2205 (version "2.40.21")
f67417a1
MB
2206 (source (origin
2207 (method url-fetch)
2208 (uri (string-append "mirror://gnome/sources/" name "/"
2209 (version-major+minor version) "/"
2210 name "-" version ".tar.xz"))
2211 (sha256
2212 (base32
c1cc52a2 2213 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2214 (build-system gnu-build-system)
2215 (arguments
2216 `(#:configure-flags
2217 (list "--disable-static"
2218 "--enable-vala") ; needed for e.g. gnome-mines
2219 #:phases
2220 (modify-phases %standard-phases
2221 (add-before 'configure 'pre-configure
2222 (lambda* (#:key inputs #:allow-other-keys)
2223 (substitute* "gdk-pixbuf-loader/Makefile.in"
2224 ;; By default the gdk-pixbuf loader is installed under
2225 ;; gdk-pixbuf's prefix. Work around that.
2226 (("gdk_pixbuf_moduledir = .*$")
2227 (string-append "gdk_pixbuf_moduledir = "
2228 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2229 "loaders\n"))
2230 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2231 (("gdk_pixbuf_cache_file = .*$")
2232 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2233 #t))
2234 (add-before 'check 'remove-failing-tests
2235 (lambda _
2236 (with-directory-excursion "tests/fixtures/reftests"
2237 (for-each delete-file
2238 '(;; This test fails on i686:
2239 "svg1.1/masking-path-04-b.svg"
2240 ;; This test fails on armhf:
2241 "svg1.1/masking-mask-01-b.svg"
2242 ;; This test fails on aarch64:
2243 "bugs/777834-empty-text-children.svg")))
2244 #t)))))
2245 (native-inputs
2246 `(("pkg-config" ,pkg-config)
2247 ("vala" ,vala)
2248 ("glib" ,glib "bin") ; glib-mkenums, etc.
2249 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2250 (inputs
869b63cb
MB
2251 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2252 ;; this ancient version of librsvg.
2253 ("pango" ,pango-1.42)
f67417a1
MB
2254 ("libcroco" ,libcroco)
2255 ("bzip2" ,bzip2)
2256 ("libgsf" ,libgsf)
2257 ("libxml2" ,libxml2)))
2258 (propagated-inputs
2259 ;; librsvg-2.0.pc refers to all of that.
2260 `(("cairo" ,cairo)
2261 ("gdk-pixbuf" ,gdk-pixbuf)
2262 ("glib" ,glib)))
2263 (home-page "https://wiki.gnome.org/LibRsvg")
2264 (synopsis "Render SVG files using Cairo")
2265 (description
2266 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2267library.")
2268 (license license:lgpl2.0+)))
2269
2270(define-public librsvg-next
63016e7c 2271 (package
25d39a2a 2272 (inherit librsvg)
63016e7c 2273 (name "librsvg")
3276e123 2274 (version "2.46.4")
69568670
EF
2275 (source (origin
2276 (method url-fetch)
2277 (uri (string-append "mirror://gnome/sources/librsvg/"
2278 (version-major+minor version) "/"
2279 "librsvg-" version ".tar.xz"))
2280 (sha256
2281 (base32
2282 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2283 (modules '((guix build utils)))
2284 (snippet
2285 '(begin (delete-file-recursively "vendor")
2286 ;; Don't demand an exact version for string_cache
2287 (substitute* "rsvg_internals/Cargo.toml"
2288 (("\"=") "\""))
2289 #t))))
2290 (build-system cargo-build-system)
63016e7c 2291 (arguments
69568670
EF
2292 `(#:modules ((guix build cargo-build-system)
2293 (guix build utils)
2294 ((guix build gnu-build-system) #:prefix gnu:))
2295 #:vendor-dir "vendor"
2296 #:cargo-inputs
2297 (("rust-bitflags" ,rust-bitflags-1)
2298 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2299 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2300 ("rust-cssparser" ,rust-cssparser-0.25)
2301 ("rust-data-url" ,rust-data-url-0.1)
2302 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2303 ("rust-encoding" ,rust-encoding-0.2)
2304 ("rust-float-cmp" ,rust-float-cmp-0.5)
2305 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2306 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2307 ("rust-gio" ,rust-gio-0.7)
2308 ("rust-gio-sys" ,rust-gio-sys-0.9)
2309 ("rust-glib" ,rust-glib-0.8)
2310 ("rust-glib-sys" ,rust-glib-sys-0.9)
2311 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2312 ("rust-itertools" ,rust-itertools-0.8)
2313 ("rust-language-tags" ,rust-language-tags-0.2)
2314 ("rust-lazy-static" ,rust-lazy-static-1)
2315 ("rust-libc" ,rust-libc-0.2)
2316 ("rust-locale-config" ,rust-locale-config-0.3)
2317 ("rust-markup5ever" ,rust-markup5ever-0.9)
2318 ("rust-nalgebra" ,rust-nalgebra-0.18)
2319 ("rust-num-traits" ,rust-num-traits-0.2)
2320 ("rust-pkg-config" ,rust-pkg-config-0.3)
2321 ("rust-pango" ,rust-pango-0.7)
2322 ("rust-pango-sys" ,rust-pango-sys-0.9)
2323 ("rust-pangocairo" ,rust-pangocairo-0.8)
2324 ("rust-phf" ,rust-phf-0.7)
2325 ("rust-rayon" ,rust-rayon-1.3)
2326 ("rust-rctree" ,rust-rctree-0.3)
2327 ("rust-string-cache" ,rust-string-cache-0.7)
2328 ("rust-regex" ,rust-regex-1.3)
2329 ("rust-url" ,rust-url-2.1)
2330 ("rust-xml-rs" ,rust-xml-rs-0.8))
2331 #:cargo-development-inputs
2332 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2333 ("rust-criterion" ,rust-criterion-0.2))
ec47c07d 2334 #:phases
b6239e45 2335 (modify-phases %standard-phases
69568670 2336 (add-after 'unpack 'prepare-for-build
ec47c07d 2337 (lambda _
69568670
EF
2338 ;; In lieu of #:make-flags
2339 (setenv "CC" "gcc")
2340 ;; Something about the build environment resists building
2341 ;; successfully with the '--locked' flag.
2342 (substitute* '("Makefile.am"
2343 "Makefile.in")
2344 (("--locked") ""))
2345 #t))
b6239e45 2346 (add-before 'configure 'pre-configure
69568670 2347 (lambda _
b6239e45
EF
2348 (substitute* "gdk-pixbuf-loader/Makefile.in"
2349 ;; By default the gdk-pixbuf loader is installed under
2350 ;; gdk-pixbuf's prefix. Work around that.
2351 (("gdk_pixbuf_moduledir = .*$")
2352 (string-append "gdk_pixbuf_moduledir = "
2353 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2354 "loaders\n"))
2355 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2356 (("gdk_pixbuf_cache_file = .*$")
2357 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2358 #t))
69568670
EF
2359 (add-after 'configure 'gnu-configure
2360 (assoc-ref gnu:%standard-phases 'configure))
2361 ;(lambda* (#:key outputs #:allow-other-keys)
2362 ; ((assoc-ref gnu:%standard-phases 'configure)
2363 ; #:outputs outputs
2364 ; #:configure-flags ("--disable-static"
2365 ; "--enable-vala"))))
2366 (add-after 'configure 'dont-vendor-self
2367 (lambda* (#:key vendor-dir #:allow-other-keys)
2368 ;; Don't keep the whole tarball in the vendor directory
2369 (delete-file-recursively
2370 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2371 #t))
2372 (replace 'build
2373 (assoc-ref gnu:%standard-phases 'build))
2374 (replace 'check
2375 (lambda* args
2376 ((assoc-ref gnu:%standard-phases 'check)
2377 #:test-target "check")))
2378 (replace 'install
2379 (assoc-ref gnu:%standard-phases 'install))
ec47c07d 2380 (add-before 'check 'remove-failing-tests
b6239e45 2381 (lambda _
64a153bd
MW
2382 (with-directory-excursion "tests/fixtures/reftests"
2383 (for-each delete-file
ec47c07d
MB
2384 '(;; The images produced by these tests differ slightly
2385 ;; from their reference counterparts due to differences
2386 ;; in the build environment (missing fonts, etc). See
2387 ;; <tests/README.md> for details.
2388 ;; These fail on x86_64.
2389 "svg1.1/coords-viewattr-02-b.svg"
2390 "svg1.1/filters-composite-04-f.svg"
2391 "svg1.1/filters-image-01-b.svg"
2392 "svg1.1/filters-conv-02-f.svg"
2393 "svg1.1/filters-conv-04-f.svg"
2394 ;; This test fails on i686:
64a153bd 2395 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2396 ;; This test fails on armhf:
2397 "svg1.1/masking-mask-01-b.svg"
64a153bd 2398 ;; This test fails on aarch64:
ec47c07d 2399 "bugs/777834-empty-text-children.svg")))
b6239e45 2400 #t)))))
cf9dad6c 2401 (license license:lgpl2.1+)))
5698b8b8
JD
2402
2403(define-public libidl
2404 (package
2405 (name "libidl")
2406 (version "0.8.14")
2407 (source (origin
2408 (method url-fetch)
80a06e62
EF
2409 (uri (string-append "mirror://gnome/sources/libIDL/"
2410 (version-major+minor version) "/"
2411 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2412 (sha256
2413 (base32
2414 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2415 (build-system gnu-build-system)
2416 (inputs `(("glib" ,glib)))
2417 (native-inputs
2418 `(("pkg-config" ,pkg-config)
b3546174 2419 ("flex" ,flex)
5698b8b8
JD
2420 ("bison" ,bison)))
2421 (home-page "http://freecode.com/projects/libidl")
2422 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2423 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2424Definition Language (idl) files, which is a specification for defining
2425portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2426GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2427functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2428 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2429 (license license:lgpl2.0+)))
2430
2431
2432(define-public orbit2
2433 (package
2434 (name "orbit2")
2435 (version "2.14.19")
2436 (source (origin
2437 (method url-fetch)
2e6ecc5c 2438 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2439 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2440 (version-major+minor version) "/"
2441 upstream-name "-" version ".tar.bz2")))
5698b8b8 2442 (sha256
a124bbd2
SB
2443 (base32
2444 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2445 (build-system gnu-build-system)
2446 (arguments
c2d837b9
MB
2447 `(;; The "timeout-server" test hangs when run in parallel.
2448 #:parallel-tests? #f
2449 #:configure-flags
8aad2e32
LC
2450 '(;; We don't need static libraries, plus they don't build reproducibly
2451 ;; (non-deterministic ordering of .o files in the archive.)
2452 "--disable-static"
2453
2454 ;; The programmer kindly gives us a hook to turn off deprecation
2455 ;; warnings ...
2456 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2457 ;; ... which they then completly ignore !!
2458 #:phases
dc1d3cde
KK
2459 (modify-phases %standard-phases
2460 (add-before 'configure 'ignore-deprecations
2461 (lambda _
2462 (substitute* "linc2/src/Makefile.in"
2463 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2464 #t)))))
5698b8b8
JD
2465 (inputs `(("glib" ,glib)
2466 ("libidl" ,libidl)))
2467 (native-inputs
2468 `(("pkg-config" ,pkg-config)))
2469 (home-page "https://projects.gnome.org/orbit2/")
2470 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2471 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2472featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2473 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2474 ;; a version. SOME of the code files have licence notices for GPLv2+.
2475 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2476 (license license:gpl2+)
2477 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2478
2479
2480(define-public libbonobo
2481 (package
2482 (name "libbonobo")
2483 (version "2.32.1")
2484 (source (origin
2485 (method url-fetch)
5becd025 2486 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2487 (version-major+minor version)
5becd025 2488 "/" name "-" version ".tar.bz2"))
5698b8b8 2489 (sha256
f1fc45a9 2490 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2491 (patches (search-patches
2492 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2493 (build-system gnu-build-system)
2494 (arguments
2495 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2496 `(#:configure-flags
2497 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2498 ;; ... which they then completly ignore !!
2499 #:phases
dc1d3cde
KK
2500 (modify-phases %standard-phases
2501 (add-before 'configure 'ignore-deprecations
2502 (lambda _
2503 (substitute* "activation-server/Makefile.in"
2504 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2505 #t)))
2506
2507 ;; There's apparently a race condition between the server stub
2508 ;; generation and linking of the example under 'samples/echo' that can
2509 ;; lead do undefined references when building in parallel, as reported
2510 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2511 ;; Thus, disable parallel builds.
2512 #:parallel-build? #f))
5698b8b8
JD
2513 (inputs `(("popt" ,popt)
2514 ("libxml2" ,libxml2)))
2515 ;; The following are Required by the .pc file
44add1ce 2516 (propagated-inputs
5698b8b8
JD
2517 `(("glib" ,glib)
2518 ("orbit2" ,orbit2)))
2519 (native-inputs
2520 `(("intltool" ,intltool)
2521 ("pkg-config" ,pkg-config)
221ed17a 2522 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2523 ("flex" ,flex)
2524 ("bison" ,bison)))
2525 (home-page "https://developer.gnome.org/libbonobo/")
2526 (synopsis "Framework for creating reusable components for use in GNOME applications")
2527 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2528use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2529 ;; Licence not explicitly stated. Source files contain no licence notices.
2530 ;; Tarball contains text of both GPLv2 and LGPLv2
2531 ;; GPLv2 covers both conditions
2532 (license license:gpl2+)))
2533
2534
2535(define-public gconf
2536 (package
2537 (name "gconf")
2538 (version "3.2.6")
2539 (source (origin
2540 (method url-fetch)
a124bbd2
SB
2541 (uri
2542 (let ((upstream-name "GConf"))
2543 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2544 (version-major+minor version) "/"
2545 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2546 (sha256
2547 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2548 (build-system gnu-build-system)
2e88d113 2549 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2550 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2551 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2552 ("orbit2" ,orbit2)))
5698b8b8
JD
2553 (native-inputs
2554 `(("intltool" ,intltool)
221ed17a 2555 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2556 ("pkg-config" ,pkg-config)))
2557 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2558 (synopsis "Store application preferences")
2559 (description "Gconf is a system for storing application preferences. It
2560is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2561 (license license:lgpl2.0+)
2562 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2563
2564
2565(define-public gnome-mime-data
2566 (package
2567 (name "gnome-mime-data")
2568 (version "2.18.0")
2569 (source (origin
2570 (method url-fetch)
b38e45d8
EB
2571 (uri (string-append "mirror://gnome/sources/" name "/"
2572 (version-major+minor version) "/"
2573 name "-" version ".tar.bz2"))
5698b8b8
JD
2574 (sha256
2575 (base32
2576 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2577 (build-system gnu-build-system)
2578 (native-inputs
2579 `(("perl" ,perl)
2580 ("intltool" ,intltool)))
3e6add96
LC
2581 (arguments
2582 '(#:phases (modify-phases %standard-phases
2583 (add-after 'configure 'use-our-intltool
2584 (lambda _
2585 ;; Do not use the bundled intltool commands, which lack
2586 ;; the "dotless @INC" fixes of our 'intltool' package.
2587 (substitute* (find-files "." "^Makefile$")
2588 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2589 (string-append "INTLTOOL_" tool " = intltool-"
2590 (string-downcase tool) "\n")))
2591 #t)))))
f032d0be 2592 (home-page "https://www.gnome.org")
35b9e423 2593 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2594 (description "GNOME Mime Data is a module which contains the base MIME
2595and Application database for GNOME. The data stored by this module is
2596designed to be accessed through the MIME functions in GnomeVFS.")
2597 (license license:gpl2+)))
2598
2599
2600(define-public gnome-vfs
2601 (package
2602 (name "gnome-vfs")
2603 (version "2.24.4")
2604 (source (origin
2605 (method url-fetch)
b38e45d8
EB
2606 (uri (string-append "mirror://gnome/sources/" name "/"
2607 (version-major+minor version) "/"
2608 name "-" version ".tar.bz2"))
5698b8b8 2609 (sha256
9e12bc34
MW
2610 (base32
2611 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2612 (build-system gnu-build-system)
2613 (arguments
db5127d8 2614 `(#:phases
dc1d3cde
KK
2615 (modify-phases %standard-phases
2616 (add-before 'configure 'ignore-deprecations
2617 (lambda _
2618 (substitute* '("libgnomevfs/Makefile.in"
2619 "daemon/Makefile.in")
2620 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2621 #t))
2622 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2623 (lambda _
2624 (substitute* "test/test-async-cancel.c"
2625 (("EXIT_FAILURE") "77"))
2626 #t)))))
2e6ecc5c 2627 (inputs `(("libxml2" ,libxml2)
5698b8b8 2628 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2629 ("gconf" ,gconf)
2630 ("gnome-mime-data" ,gnome-mime-data)
2631 ("zlib" ,zlib)))
2632 (native-inputs
221ed17a
EB
2633 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2634 ("intltool" ,intltool)
5698b8b8
JD
2635 ("pkg-config" ,pkg-config)))
2636 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2637 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2638 (description
2639 "GnomeVFS is the core library used to access files and folders in GNOME
2640applications. It provides a file system abstraction which allows applications
2641to access local and remote files with a single consistent API.")
5698b8b8
JD
2642 (license license:lgpl2.0+)))
2643
2644
2645
2646(define-public libgnome
2647 (package
2648 (name "libgnome")
2649 (version "2.32.1")
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
17c3eea7
LC
2657 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2658 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2659 (build-system gnu-build-system)
2660 (arguments
2661 `(#:phases
dc1d3cde
KK
2662 (modify-phases %standard-phases
2663 (add-before 'configure 'enable-deprecated
2664 (lambda _
2665 (substitute* "libgnome/Makefile.in"
2666 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2667 #t)))))
25338e9f 2668 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2669 (native-inputs
221ed17a
EB
2670 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2671 ("intltool" ,intltool)
5698b8b8
JD
2672 ("pkg-config" ,pkg-config)))
2673 ;; The following are listed as Required in the .pc file
2674 ;; (except for libcanberra -- which seems to be oversight on the part
2675 ;; of the upstream developers -- anything that links against libgnome,
2676 ;; must also link against libcanberra
2677 (propagated-inputs
2678 `(("libcanberra" ,libcanberra)
2679 ("libbonobo" ,libbonobo)
2680 ("gconf" ,gconf)
a640d3d5
LC
2681 ("gnome-vfs" ,gnome-vfs)
2682 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2683 (home-page "https://developer.gnome.org/libgnome/")
2684 (synopsis "Useful routines for building applications")
2685 (description "The libgnome library provides a number of useful routines
2686for building modern applications, including session management, activation of
2687files and URIs, and displaying help.")
2688 (license license:lgpl2.0+)))
2689
2690
2691(define-public libart-lgpl
2692 (package
2693 (name "libart-lgpl")
76c9b6aa 2694 (version "2.3.21")
5698b8b8
JD
2695 (source (origin
2696 (method url-fetch)
2697 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2698 (string-append "mirror://gnome/sources/" upstream-name "/"
2699 (version-major+minor version) "/"
2700 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2701 (sha256
2702 (base32
76c9b6aa 2703 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2704 (build-system gnu-build-system)
2705 (native-inputs
2706 `(("pkg-config" ,pkg-config)))
2707 (home-page "https://people.gnome.org/~mathieu/libart")
2708 (synopsis "2D drawing library")
2e6ecc5c 2709 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2710high-quality vector-based 2D library with antialiasing and alpha composition.")
2711 (license license:lgpl2.0+)))
2712
2713
2714
2715(define-public libgnomecanvas
2716 (package
2717 (name "libgnomecanvas")
2718 (version "2.30.3")
2719 (source (origin
2720 (method url-fetch)
b38e45d8
EB
2721 (uri (string-append "mirror://gnome/sources/" name "/"
2722 (version-major+minor version) "/"
2723 name "-" version ".tar.gz"))
5698b8b8
JD
2724 (sha256
2725 (base32
2726 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2727 (build-system gnu-build-system)
2728 ;; Mentioned as Required in the .pc file
2729 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2730 ("gtk+" ,gtk+-2)))
2731 (native-inputs
2732 `(("intltool" ,intltool)
221ed17a 2733 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2734 ("pkg-config" ,pkg-config)))
2735 (home-page "https://developer.gnome.org/libgnomecanvas/")
2736 (synopsis "Flexible widget for creating interactive structured graphics")
2737 (description "The GnomeCanvas widget provides a flexible widget for
2738creating interactive structured graphics.")
2739 (license license:lgpl2.0+)))
2740
eadc734e
RW
2741(define-public libgnomecanvasmm
2742 (package
2743 (name "libgnomecanvasmm")
2744 (version "2.26.0")
2745 (source (origin
2746 (method url-fetch)
2747 (uri (string-append "mirror://gnome/sources/" name "/"
2748 (version-major+minor version) "/"
2749 name "-" version ".tar.bz2"))
2750 (sha256
2751 (base32
2752 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2753 (build-system gnu-build-system)
2754 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2755 (native-inputs
2756 `(("gtkmm-2" ,gtkmm-2)
2757 ("pkg-config" ,pkg-config)))
8e933cb3 2758 (home-page "https://gtkmm.org")
eadc734e
RW
2759 (synopsis "C++ bindings to the GNOME Canvas library")
2760 (description "C++ bindings to the GNOME Canvas library.")
2761 (license license:lgpl2.0+)))
2762
5698b8b8
JD
2763(define-public libgnomeui
2764 (package
2765 (name "libgnomeui")
2766 (version "2.24.5")
2767 (source (origin
2768 (method url-fetch)
b38e45d8
EB
2769 (uri (string-append "mirror://gnome/sources/" name "/"
2770 (version-major+minor version) "/"
2771 name "-" version ".tar.bz2"))
8fa1872a 2772 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2773 (sha256
2774 (base32
2775 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2776 (build-system gnu-build-system)
2777 ;; Mentioned as Required in the .pc file
0a38a497
AE
2778 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2779 ("libgnome" ,libgnome)
2780 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2781 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2782 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2783 ("popt" ,popt)
2784 ("libbonobo" ,libbonobo)
2785 ("libxml2" ,libxml2)
2786 ("libglade" ,libglade)))
2787 (native-inputs
221ed17a
EB
2788 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2789 ("intltool" ,intltool)
5698b8b8
JD
2790 ("pkg-config" ,pkg-config)))
2791 (home-page "https://developer.gnome.org/libgnomeui/")
2792 (synopsis "Additional widgets for applications")
35b9e423 2793 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2794applications. Many of the widgets from libgnomeui have already been
2795ported to GTK+.")
5698b8b8
JD
2796 (license license:lgpl2.0+)))
2797
2798(define-public libglade
2799 (package
2800 (name "libglade")
2801 (version "2.6.4")
2802 (source (origin
2803 (method url-fetch)
b38e45d8
EB
2804 (uri (string-append "mirror://gnome/sources/" name "/"
2805 (version-major+minor version) "/"
2806 name "-" version ".tar.bz2"))
5698b8b8
JD
2807 (sha256
2808 (base32
2809 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2810 (build-system gnu-build-system)
2811 (inputs
92dcc23d
AE
2812 `(("python" ,python))) ;; needed for the optional libglade-convert program
2813 (propagated-inputs
5698b8b8 2814 `(("gtk+-2" ,gtk+-2)
92dcc23d 2815 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2816 (native-inputs
2817 `(("pkg-config" ,pkg-config)))
2818 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2819 (synopsis "Load glade interfaces and access the glade built widgets")
2820 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2821graphical interfaces described in glade files and for accessing the
2822widgets built in the loading process.")
2823 (license license:gpl2+))) ; This is correct. GPL not LGPL
2824
2825(define-public libgnomeprint
eb497b66
LC
2826 ;; This library has been deprecated since 2006; see
2827 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2828 (package
2829 (name "libgnomeprint")
d19db454 2830 (version "2.18.8")
5698b8b8
JD
2831 (source (origin
2832 (method url-fetch)
b38e45d8
EB
2833 (uri (string-append "mirror://gnome/sources/" name "/"
2834 (version-major+minor version) "/"
2835 name "-" version ".tar.bz2"))
5698b8b8
JD
2836 (sha256
2837 (base32
d19db454 2838 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2839 (build-system gnu-build-system)
2840 (inputs
2841 `(("popt" ,popt)
2842 ("libart-lgpl" ,libart-lgpl)
2843 ("gtk+" ,gtk+-2)
44add1ce 2844 ("libxml2" ,libxml2)))
5698b8b8
JD
2845 (native-inputs
2846 `(("intltool" ,intltool)
221ed17a 2847 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2848 ("pkg-config" ,pkg-config)))
2849 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2850 (synopsis "Printing framework for GNOME")
eb497b66
LC
2851 (description
2852 "GNOME-print was a printing framework for GNOME. It has been deprecated
2853since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2854 (license license:lgpl2.0+)))
2855
2856
2857(define-public libgnomeprintui
eb497b66 2858 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2859 (package
2860 (name "libgnomeprintui")
36053d7f 2861 (version "2.18.6")
5698b8b8
JD
2862 (source (origin
2863 (method url-fetch)
b38e45d8
EB
2864 (uri (string-append "mirror://gnome/sources/" name "/"
2865 (version-major+minor version) "/"
2866 name "-" version ".tar.bz2"))
5698b8b8
JD
2867 (sha256
2868 (base32
36053d7f 2869 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2870 (build-system gnu-build-system)
2871 ;; Mentioned as Required in the .pc file
2872 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2873 (inputs `(("gtk+" ,gtk+-2)
2874 ("glib" ,glib)
2875 ("gnome-icon-theme" ,gnome-icon-theme)
2876 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2877 ("libxml2" ,libxml2)))
5698b8b8
JD
2878 (native-inputs
2879 `(("intltool" ,intltool)
2880 ("pkg-config" ,pkg-config)))
2881 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2882 (synopsis "Printing framework for GNOME")
eb497b66 2883 (description (package-description libgnomeprint))
5698b8b8
JD
2884 (license license:lgpl2.0+)))
2885
5698b8b8
JD
2886(define-public libbonoboui
2887 (package
2888 (name "libbonoboui")
2889 (version "2.24.5")
2890 (source (origin
2891 (method url-fetch)
b38e45d8
EB
2892 (uri (string-append "mirror://gnome/sources/" name "/"
2893 (version-major+minor version) "/"
2894 name "-" version ".tar.bz2"))
5698b8b8
JD
2895 (sha256
2896 (base32
2897 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2898 (build-system gnu-build-system)
2899 (arguments
2900 `(#:phases
dc1d3cde
KK
2901 (modify-phases %standard-phases
2902 (add-before 'check 'start-xserver
2903 (lambda* (#:key inputs #:allow-other-keys)
2904 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2905 (disp ":1"))
2906
2907 (setenv "HOME" (getcwd))
2908 (setenv "DISPLAY" disp)
2909 ;; There must be a running X server and make check doesn't start one.
2910 ;; Therefore we must do it.
2911 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2912 ;; Mentioned as Required by the .pc file
2913 (propagated-inputs `(("libxml2" ,libxml2)))
2914 (inputs
2915 `(("popt" ,popt)
2916 ("pangox-compat" ,pangox-compat)
2917 ("libgnome" ,libgnome)
2918 ("libgnomecanvas" ,libgnomecanvas)
2919 ("libglade" ,libglade)))
2920 (native-inputs
221ed17a
EB
2921 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2922 ("intltool" ,intltool)
ff337525 2923 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2924 ("pkg-config" ,pkg-config)))
2925 (home-page "https://developer.gnome.org/libbonoboui/")
2926 (synopsis "Some user interface controls using Bonobo")
2927 (description "The Bonobo UI library provides a number of user interface
2928controls using the Bonobo component framework.")
2929 (license license:lgpl2.0+)))
2930
fecbf86e
SB
2931(define-public libwnck
2932 (package
2933 (name "libwnck")
d3b40696 2934 (version "3.32.0")
fecbf86e
SB
2935 (source (origin
2936 (method url-fetch)
2937 (uri (string-append "mirror://gnome/sources/" name "/"
2938 (version-major+minor version) "/"
2939 name "-" version ".tar.xz"))
2940 (sha256
ad9b8987 2941 (base32
d3b40696
KK
2942 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2943 (build-system meson-build-system)
fecbf86e
SB
2944 (native-inputs
2945 `(("pkg-config" ,pkg-config)
d3b40696
KK
2946 ("glib" ,glib "bin") ; for glib-mkenums
2947 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2948 ("intltool" ,intltool)))
2949 (propagated-inputs
427476d5
SB
2950 `(("gtk+" ,gtk+)
2951 ("libxres" ,libxres)
2952 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2953 (home-page "https://developer.gnome.org/libwnck/")
2954 (synopsis "Window Navigator Construction Kit")
2955 (description
2956 "Libwnck is the Window Navigator Construction Kit, a library for use in
2957writing pagers, tasklists, and more generally applications that are dealing
2958with window management. It tries hard to respect the Extended Window Manager
2959Hints specification (EWMH).")
2960 (license license:lgpl2.0+)))
2961
2962;; stable version for gtk2, required by xfwm4.
dbb7a081 2963(define-public libwnck-2
fecbf86e
SB
2964 (package (inherit libwnck)
2965 (name "libwnck")
2966 (version "2.30.7")
2967 (source (origin
2968 (method url-fetch)
2969 (uri (string-append "mirror://gnome/sources/" name "/"
2970 (version-major+minor version) "/"
2971 name "-" version ".tar.xz"))
2972 (sha256
2973 (base32
2974 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2975 (build-system gnu-build-system)
2976 (native-inputs
2977 `(("pkg-config" ,pkg-config)
2978 ("intltool" ,intltool)))
fecbf86e 2979 (propagated-inputs
427476d5
SB
2980 `(("gtk+" ,gtk+-2)
2981 ("libxres" ,libxres)
2982 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2983
2984(define-public goffice
2985 (package
2986 (name "goffice")
09abffcc 2987 (version "0.10.46")
b804c61e
JD
2988 (source (origin
2989 (method url-fetch)
16243f0b 2990 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2991 (version-major+minor version) "/"
16243f0b 2992 "goffice-" version ".tar.xz"))
b804c61e 2993 (sha256
09abffcc 2994 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 2995 (build-system gnu-build-system)
72a06d3e 2996 (outputs '("out"
355420c6 2997 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
2998 (arguments
2999 '(#:configure-flags (list (string-append "--with-html-dir="
3000 (assoc-ref %outputs "doc")
3001 "/share/gtk-doc/html"))))
b804c61e
JD
3002 (inputs
3003 `(("gtk+" ,gtk+)
3004 ("libgsf" ,libgsf)
3005 ("librsvg" ,librsvg)
3006 ("libxslt" ,libxslt)
3007 ("libxml2" ,libxml2)))
3008 (native-inputs
3009 `(("intltool" ,intltool)
f280cdb1 3010 ("glib" ,glib "bin")
b804c61e
JD
3011 ("pkg-config" ,pkg-config)))
3012 (home-page "https://developer.gnome.org/goffice/")
3013 (synopsis "Document-centric objects and utilities")
3014 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3015 (license
b804c61e
JD
3016 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3017 ;; Note: NOT LGPL
3018 (list license:gpl2 license:gpl3))))
3019
c024ae36
RW
3020(define-public goffice-0.8
3021 (package (inherit goffice)
3022 (version "0.8.17")
3023 (source (origin
3024 (method url-fetch)
3025 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3026 (version-major+minor version) "/"
3027 (package-name goffice) "-" version ".tar.xz"))
3028 (sha256
3029 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3030 (arguments
3031 `(#:phases
dc1d3cde
KK
3032 (modify-phases %standard-phases
3033 (add-after 'unpack 'fix-pcre-check
3034 (lambda _
3035 ;; Only glib.h can be included directly. See
3036 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3037 (substitute* "configure"
3038 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3039
3040 ,@(package-arguments goffice)))
c024ae36
RW
3041 (propagated-inputs
3042 ;; libgoffice-0.8.pc mentions libgsf-1
3043 `(("libgsf" ,libgsf)))
3044 (inputs
3045 `(("gtk" ,gtk+-2)
3046 ,@(alist-delete "gtk" (package-inputs goffice))))))
3047
b804c61e
JD
3048(define-public gnumeric
3049 (package
3050 (name "gnumeric")
f0517b5d 3051 (version "1.12.46")
b804c61e
JD
3052 (source (origin
3053 (method url-fetch)
b7fd0217 3054 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3055 (version-major+minor version) "/"
b7fd0217 3056 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3057 (sha256
3058 (base32
f0517b5d 3059 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3060 (build-system glib-or-gtk-build-system)
b804c61e
JD
3061 (arguments
3062 `(;; The gnumeric developers don't worry much about failing tests.
3063 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3064 #:tests? #f
b804c61e 3065 #:phases
7bcbd40d
EF
3066 (modify-phases %standard-phases
3067 (add-before
3068 'configure 'pre-conf
3069 (lambda* (#:key outputs #:allow-other-keys)
3070 ;; Make install tries to write into the directory of goffice
3071 ;; I am informed that this only affects the possibility to embed a
3072 ;; spreadsheet inside an Abiword document. So presumably when we
3073 ;; package Abiword we'll have to refer it to this directory.
3074 (substitute* "configure"
3075 (("^GOFFICE_PLUGINS_DIR=.*")
3076 (string-append "GOFFICE_PLUGINS_DIR="
3077 (assoc-ref outputs "out")
3078 "/goffice/plugins"))))))))
b804c61e
JD
3079 (inputs
3080 `(("glib" ,glib)
3081 ("gtk+" ,gtk+)
3082 ("goffice" ,goffice)
3083 ("libgsf" ,libgsf)
7bcbd40d 3084 ("librsvg" ,librsvg)
b804c61e 3085 ("libxml2" ,libxml2)
7bcbd40d 3086 ("libxslt" ,libxslt)
2e4c5457 3087 ("python" ,python-2)
6983ba56 3088 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3089 ("zlib" ,zlib)))
3090 (native-inputs
6983ba56 3091 `(("bison" ,bison)
1ed398d1 3092 ("docbook-xml" ,docbook-xml)
6983ba56 3093 ("intltool" ,intltool)
785fcb62 3094 ("itstool" ,itstool)
b9663471 3095 ("glib:bin" ,glib "bin")
b804c61e
JD
3096 ("pkg-config" ,pkg-config)))
3097 (home-page "http://www.gnumeric.org")
66672a45
LC
3098 (synopsis "Spreadsheet application")
3099 (description
3100 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3101interoperable with other spreadsheet applications. It has a vast array of
3102features beyond typical spreadsheet functionality, such as support for linear
3103and non-linear solvers, statistical analysis, and telecommunication
3104engineering.")
3105 (license
b804c61e
JD
3106 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3107 (list license:gpl2 license:gpl3))))
6f885c05
FB
3108
3109(define-public gnome-themes-standard
3110 (package
3111 (name "gnome-themes-standard")
0b7b8fb0 3112 (version "3.22.3")
6f885c05
FB
3113 (source
3114 (origin
3115 (method url-fetch)
2e6ecc5c 3116 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3117 (version-major+minor version) "/" name "-"
3118 version ".tar.xz"))
3119 (sha256
3120 (base32
0b7b8fb0 3121 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3122 (build-system gnu-build-system)
8ac70c7f
SB
3123 (arguments
3124 '(#:configure-flags
3125 ;; Don't create 'icon-theme.cache'.
3126 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3127 (true (string-append coreutils "/bin/true")))
3128 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3129 (inputs
3130 `(("gtk+" ,gtk+)
3131 ("gtk+-2" ,gtk+-2)
3132 ("librsvg" ,librsvg)
3133 ("libxml2" ,libxml2)
3134 ("glib" ,glib)))
3135 (native-inputs
3136 `(("intltool" ,intltool)
3137 ("glib:bin" ,glib "bin")
3138 ("pkg-config" ,pkg-config)))
6f885c05
FB
3139 (home-page "https://launchpad.net/gnome-themes-standard")
3140 (synopsis "Default GNOME 3 themes")
3141 (description
3142 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3143 (license license:lgpl2.1+)))
5a659a48 3144
df90c701
RW
3145(define-public seahorse
3146 (package
3147 (name "seahorse")
1efcf722 3148 (version "3.34")
df90c701
RW
3149 (source
3150 (origin
3151 (method url-fetch)
3152 (uri (string-append "mirror://gnome/sources/" name "/"
3153 (version-major+minor version) "/" name "-"
3154 version ".tar.xz"))
3155 (sha256
3156 (base32
1efcf722 3157 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3158 (build-system meson-build-system)
3159 (arguments
bcea3c11
KK
3160 '(#:glib-or-gtk? #t
3161 #:phases
af561664
MÁAV
3162 (modify-phases %standard-phases
3163 (add-after 'unpack 'skip-gtk-update-icon-cache
3164 ;; Don't create 'icon-theme.cache'.
3165 (lambda _
3166 (substitute* "build-aux/meson_post_install.py"
3167 (("gtk-update-icon-cache") "true"))
3168 #t)))))
df90c701
RW
3169 (inputs
3170 `(("gtk+" ,gtk+)
3171 ("gcr" ,gcr)
34b979b9 3172 ("gnupg" ,gnupg)
df90c701 3173 ("gpgme" ,gpgme)
34b979b9 3174 ("openldap" ,openldap)
4a1bf090 3175 ("openssh" ,openssh)
af561664 3176 ("avahi" ,avahi)
bcea3c11 3177 ("libpwquality" ,libpwquality)
34b979b9
EF
3178 ("libsecret" ,libsecret)
3179 ("libsoup" ,libsoup)))
df90c701 3180 (native-inputs
af561664 3181 `(("gettext" ,gettext-minimal)
df90c701
RW
3182 ("glib:bin" ,glib "bin")
3183 ("itstool" ,itstool)
bcb354ad 3184 ("pkg-config" ,pkg-config)
af561664 3185 ("vala" ,vala)
bcb354ad 3186 ("xmllint" ,libxml2)))
bcea3c11 3187 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3188 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3189 (description
3190 "Seahorse is a GNOME application for managing encryption keys and
3191passwords in the GNOME keyring.")
3192 (license license:gpl2+)))
3193
5a659a48
SB
3194(define-public vala
3195 (package
3196 (name "vala")
b92a36db 3197 (version "0.46.5")
5a659a48
SB
3198 (source (origin
3199 (method url-fetch)
3200 (uri (string-append "mirror://gnome/sources/" name "/"
3201 (version-major+minor version) "/"
3202 name "-" version ".tar.xz"))
3203 (sha256
3204 (base32
b92a36db 3205 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3206 (build-system gnu-build-system)
1ea90625
SB
3207 (arguments
3208 '(#:phases
3209 (modify-phases %standard-phases
f4925a4f 3210 (add-before 'check 'pre-check
1ea90625
SB
3211 (lambda _
3212 (setenv "CC" "gcc")
8839b6be
RW
3213 (substitute* "valadoc/tests/testrunner.sh"
3214 (("export PKG_CONFIG_PATH=" m)
3215 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3216 ;; For missing '/etc/machine-id'.
3217 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3218 #t)))))
5a659a48
SB
3219 (native-inputs
3220 `(("pkg-config" ,pkg-config)
3221 ("flex" ,flex)
3222 ("bison" ,bison)
3223 ("xsltproc" ,libxslt)
3224 ("dbus" ,dbus) ; for dbus tests
3225 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3226 (inputs
3227 `(("graphviz" ,graphviz)))
5a659a48 3228 (propagated-inputs
8839b6be 3229 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3230 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3231 (synopsis "Compiler for the GObject type system")
3232 (description
3233 "Vala is a programming language that aims to bring modern programming
3234language features to GNOME developers without imposing any additional runtime
3235requirements and without using a different ABI compared to applications and
3236libraries written in C.")
3237 (license license:lgpl2.1+)))
ea57378f
SB
3238
3239(define-public vte
3240 (package
3241 (name "vte")
663def11 3242 (version "0.60.2")
ea57378f
SB
3243 (source (origin
3244 (method url-fetch)
ac87ffb8 3245 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3246 (version-major+minor version) "/"
ac87ffb8 3247 "vte-" version ".tar.xz"))
ea57378f
SB
3248 (sha256
3249 (base32
663def11 3250 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
68c47474 3251 (build-system meson-build-system)
663def11
RPG
3252 (arguments
3253 `(#:configure-flags
11491e1b
DM
3254 '("-Dvapi=true"
3255 "-D_systemd=false")))
ea57378f
SB
3256 (native-inputs
3257 `(("pkg-config" ,pkg-config)
4684580a 3258 ("gettext" ,gettext-minimal)
ea57378f
SB
3259 ("vala" ,vala)
3260 ("gobject-introspection" ,gobject-introspection)
68c47474 3261 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3262 ("gperf" ,gperf)
ea57378f
SB
3263 ("xmllint" ,libxml2)))
3264 (propagated-inputs
68c47474
TGR
3265 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3266 ("gnutls" ,gnutls) ; ditto
3267 ("pcre2" ,pcre2))) ; ditto
f032d0be 3268 (home-page "https://www.gnome.org/")
ea57378f
SB
3269 (synopsis "Virtual Terminal Emulator")
3270 (description
3271 "VTE is a library (libvte) implementing a terminal emulator widget for
3272GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3273gnome-terminal, but can also be used to embed a console/terminal in games,
3274editors, IDEs, etc.")
3275 (license license:lgpl2.1+)))
3276
c44fb4df
MO
3277(define-public vte-ng
3278 (package
3279 (inherit vte)
3280 (name "vte-ng")
24f4fcbe 3281 (version "0.58.2.a")
afd90f8d 3282 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3283 (source (origin
3284 (method git-fetch)
3285 (uri (git-reference (url home-page) (commit version)))
3286 (file-name (git-file-name name version))
3287 (sha256
3288 (base32
24f4fcbe
MB
3289 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3290 (build-system meson-build-system)
c44fb4df
MO
3291 (native-inputs
3292 `(("gtk-doc" ,gtk-doc)
c44fb4df 3293 ,@(package-native-inputs vte)))
c44fb4df 3294 (arguments
24f4fcbe 3295 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3296 (synopsis "Enhanced VTE terminal widget")
3297 (description
3298 "VTE is a library (libvte) implementing a terminal emulator widget for
3299GTK+, this fork provides additional functions exposed for keyboard text
3300selection and URL hints.")))
3301
2776d72c
EF
3302;; provides vte 2.90, required for some terminal emulators
3303;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3304;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3305;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3306;; pantheon-terminal, roxterm are not currently packaged
3307(define-public vte-0.36
3308 (package (inherit vte)
3309 (name "vte")
3310 (version "0.36.5")
3311 (source (origin
3312 (method url-fetch)
3313 (uri (string-append "mirror://gnome/sources/" name "/"
3314 (version-major+minor version) "/"
3315 name "-" version ".tar.xz"))
3316 (sha256
3317 (base32
3318 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3319 (propagated-inputs
3320 `(("gtk" ,gtk+)
3321 ("ncurses" ,ncurses)))))
3322
ea57378f
SB
3323;; stable version for gtk2, required by xfce4-terminal.
3324(define-public vte/gtk+-2
3325 (package (inherit vte)
3326 (name "vte")
3327 (version "0.28.2")
3328 (source (origin
3329 (method url-fetch)
3330 (uri (string-append "mirror://gnome/sources/" name "/"
3331 (version-major+minor version) "/"
3332 name "-" version ".tar.xz"))
3333 (sha256
3334 (base32
7d48938a
EF
3335 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3336 (patches (search-patches
3337 "vte-CVE-2012-2738-pt1.patch"
3338 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3339 (build-system gnu-build-system)
ea57378f
SB
3340 (arguments
3341 '(#:configure-flags '("--disable-python")))
3342 (native-inputs
3343 `(("pkg-config" ,pkg-config)
3344 ("intltool" ,intltool)
3345 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3346 (propagated-inputs
3347 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3348 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3349
cce0da5e
TD
3350(define-public vinagre
3351 (package
3352 (name "vinagre")
3353 (version "3.22.0")
3354 (source (origin
3355 (method url-fetch)
3356 (uri (string-append "mirror://gnome/sources/" name "/"
3357 (version-major+minor version) "/"
3358 name "-" version ".tar.xz"))
684f97f8
EF
3359 (patches (search-patches "vinagre-newer-freerdp.patch"
3360 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3361 (sha256
3362 (base32
3363 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3364 (build-system glib-or-gtk-build-system)
684f97f8 3365 (arguments
7f486d25
MC
3366 ;; Disable -Werror and such, to avoid build failures on compilation
3367 ;; warnings.
3368 '(#:configure-flags '("--enable-compile-warnings=minimum")
3369 #:phases
684f97f8 3370 (modify-phases %standard-phases
1839768c
EF
3371 (add-before 'install 'skip-gtk-update-icon-cache
3372 (lambda _
3373 ;; Don't create 'icon-theme.cache'
3374 (substitute* (find-files "." "^Makefile$")
3375 (("gtk-update-icon-cache") (which "true")))
3376 #t))
684f97f8
EF
3377 (add-after 'unpack 'patch-configure
3378 (lambda _
3379 (substitute* "configure"
3380 (("freerdp") "freerdp2"))
3381 #t)))))
cce0da5e
TD
3382 (native-inputs
3383 `(("pkg-config" ,pkg-config)
3384 ("intltool" ,intltool)
3385 ("itstool" ,itstool)
1839768c 3386 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3387 (inputs
3388 `(("libxml2" ,libxml2)
3389 ("gtk-vnc" ,gtk-vnc)
3390 ("gnome-keyring" ,gnome-keyring)
3391 ("libsecret" ,libsecret)
3392 ("freerdp" ,freerdp)
3393 ("spice" ,spice)
3394 ("spice-gtk" ,spice-gtk)
3395 ("telepathy-glib" ,telepathy-glib)
3396 ("vte" ,vte)))
cce0da5e
TD
3397 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3398 (synopsis "Remote desktop viewer for GNOME")
3399 (description "Vinagre is a remote display client supporting the VNC, SPICE
3400and RDP protocols.")
3401 (license license:gpl3+)))
3402
b47e1b20
FB
3403(define-public dconf
3404 (package
3405 (name "dconf")
7f4d075d 3406 (version "0.34.0")
b47e1b20
FB
3407 (source (origin
3408 (method url-fetch)
3409 (uri (string-append
2e6ecc5c 3410 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3411 (version-major+minor version) "/"
3412 name "-" version ".tar.xz"))
46c3a08b 3413 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3414 (sha256
f05c809f 3415 (base32
7f4d075d 3416 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 3417 (build-system meson-build-system)
bc036f4c
MB
3418 (propagated-inputs
3419 ;; In Requires of dconf.pc.
3420 `(("glib" ,glib)))
b47e1b20
FB
3421 (inputs
3422 `(("gtk+" ,gtk+)
bc036f4c 3423 ("dbus" ,dbus)))
b47e1b20 3424 (native-inputs
1e33331c
MB
3425 `(("bash-completion" ,bash-completion)
3426 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3427 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3428 ("docbook-xml" ,docbook-xml-4.2)
3429 ("docbook-xsl" ,docbook-xsl)
35fa923d 3430 ("glib:bin" ,glib "bin")
03676d6f 3431 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3432 ("pkg-config" ,pkg-config)
3433 ("vala" ,vala)))
b47e1b20
FB
3434 (arguments
3435 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3436 ; or /etc/machine-id.
35fa923d
MB
3437 #:glib-or-gtk? #t
3438 #:configure-flags '("-Denable-gtk-doc=true")))
79d7b527 3439 (home-page "https://developer.gnome.org/dconf/")
b47e1b20
FB
3440 (synopsis "Low-level GNOME configuration system")
3441 (description "Dconf is a low-level configuration system. Its main purpose
3442is to provide a backend to GSettings on platforms that don't already have
3443configuration storage systems.")
e20e6b40 3444 (license license:lgpl2.1+)))
109da1c0
AE
3445
3446(define-public json-glib
3447 (package
3448 (name "json-glib")
4115e8ea 3449 (version "1.4.4")
109da1c0
AE
3450 (source (origin
3451 (method url-fetch)
3452 (uri (string-append "mirror://gnome/sources/" name "/"
3453 (version-major+minor version) "/"
3454 name "-" version ".tar.xz"))
3455 (sha256
3456 (base32
4115e8ea 3457 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3458 (build-system meson-build-system)
109da1c0 3459 (native-inputs
98afa184
MB
3460 `(("gettext" ,gettext-minimal)
3461 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3462 ("gobject-introspection" ,gobject-introspection)
3463 ("pkg-config" ,pkg-config)))
3464 (propagated-inputs
88c6b580 3465 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3466 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3467 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3468 (description
3469 "JSON-GLib is a C library based on GLib providing serialization and
3470deserialization support for the JavaScript Object Notation (JSON) format
3471described by RFC 4627. It provides parser and generator GObject classes and
3472various wrappers for the complex data types employed by JSON, such as arrays
3473and objects.")
109da1c0 3474 (license license:lgpl2.1+)))
6f96a359
SB
3475
3476(define-public libxklavier
3477 (package
3478 (name "libxklavier")
5f39050b 3479 (version "5.4")
6f96a359 3480 (source (origin
5f39050b 3481 ;; Note: There's no tarball at ftp.gnome.org for this version.
3482 (method git-fetch)
3483 (uri (git-reference
3484 (url "https://anongit.freedesktop.org/git/libxklavier")
3485 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3486 (sha256
3487 (base32
5f39050b 3488 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3489 (file-name (git-file-name name version))))
6f96a359
SB
3490 (build-system gnu-build-system)
3491 (arguments
778d6b52 3492 '(#:configure-flags
6f96a359
SB
3493 (list (string-append "--with-xkb-base="
3494 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3495 "/share/X11/xkb")
3496 "--disable-xmodmap-support")))
6f96a359
SB
3497 (native-inputs
3498 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3499 ("gobject-introspection" ,gobject-introspection)
5f39050b 3500 ("pkg-config" ,pkg-config)
3501 ("gtk-doc" ,gtk-doc)
3502 ("intltool" ,intltool)
3503 ("which" ,which)
3504 ("autoconf" ,autoconf)
3505 ("automake" ,automake)
3506 ("libtool" ,libtool)))
6f96a359
SB
3507 (propagated-inputs
3508 ;; Required by libxklavier.pc.
3509 `(("glib" ,glib)
3510 ("libxml2" ,libxml2)))
3511 (inputs
3512 `(("iso-codes" ,iso-codes)
3513 ("libxi" ,libxi)
3514 ("libxkbfile" ,libxkbfile)
3515 ("xkbcomp" ,xkbcomp)
3516 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3517 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3518 (synopsis "High-level API for X Keyboard Extension")
3519 (description
3520 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3521Extension known as XKB. This library is intended to support XFree86 and other
3522commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3523indicators etc).")
3524 (license license:lgpl2.0+)))
619936a4
LC
3525
3526(define-public python2-rsvg
3527 ;; XXX: This is actually a subset of gnome-python-desktop.
3528 (package
3529 (name "python2-rsvg")
3530 (version "2.32.0")
3531 (source
3532 (origin
3533 (method url-fetch)
3534 (uri (string-append
3535 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3536 version ".tar.bz2"))
3537 (sha256
3538 (base32
3539 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3540 (build-system gnu-build-system)
3541 (native-inputs
3542 `(("pkg-config" ,pkg-config)))
3543 (inputs
3544 `(("python" ,python-2)
3545 ("python2-pygtk" ,python2-pygtk)
3546 ("librsvg" ,librsvg)))
f032d0be 3547 (home-page "https://www.gnome.org")
619936a4
LC
3548 (synopsis "Python bindings to librsvg")
3549 (description
3ad75446 3550 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3551library.")
3552
3553 ;; This is the license of the rsvg bindings. The license of each module
3554 ;; of gnome-python-desktop is given in 'COPYING'.
3555 (license license:lgpl2.1+)))
a31a6d22 3556
f2ca414a
SB
3557(define-public glib-networking
3558 (package
3559 (name "glib-networking")
ea9f74b0 3560 (version "2.62.2")
f2ca414a
SB
3561 (source (origin
3562 (method url-fetch)
3563 (uri (string-append "mirror://gnome/sources/glib-networking/"
3564 (version-major+minor version) "/"
fb8fe1e8 3565 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3566 (sha256
3567 (base32
ea9f74b0 3568 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 3569 (build-system meson-build-system)
f2ca414a 3570 (arguments
0d75c64d 3571 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3572 (native-inputs
3573 `(("pkg-config" ,pkg-config)
3574 ("intltool" ,intltool)))
3575 (inputs
3576 `(("glib" ,glib)
3577 ("gnutls" ,gnutls)
4b8f1313 3578 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3579 (home-page "https://www.gnome.org")
f2ca414a
SB
3580 (synopsis "Network-related GIO modules")
3581 (description
3582 "This package contains various network related extensions for the GIO
3583library.")
3584 (license license:lgpl2.0+)))
3585
ca649680 3586(define-public rest
4510b2da 3587 (package
ca649680 3588 (name "rest")
a4194d16 3589 (version "0.8.1")
4510b2da
SB
3590 (source (origin
3591 (method url-fetch)
3592 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3593 (version-major+minor version) "/"
3594 name "-" version ".tar.xz"))
4510b2da
SB
3595 (sha256
3596 (base32
a4194d16 3597 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3598 (build-system gnu-build-system)
3599 (arguments
3600 '(#:tests? #f ; tests require internet connection
3601 #:configure-flags
3602 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3603 (native-inputs
3604 `(("glib-mkenums" ,glib "bin")
3605 ("gobject-introspection" ,gobject-introspection)
3606 ("pkg-config" ,pkg-config)))
3607 (propagated-inputs
3608 ;; rest-0.7.pc refers to all these.
3609 `(("glib" ,glib)
3610 ("libsoup" ,libsoup)
3611 ("libxml2" ,libxml2)))
24d6cc1d 3612 (home-page "https://www.gtk.org/")
4510b2da
SB
3613 (synopsis "RESTful web api query library")
3614 (description
3615 "This library was designed to make it easier to access web services that
3616claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3617libxml to ease remote use of the RESTful API.")
3618 (license license:lgpl2.1+)))
3619
6e1bb642
SB
3620(define-public libsoup
3621 (package
3622 (name "libsoup")
9a9cd9bc 3623 (version "2.70.0")
6e1bb642
SB
3624 (source (origin
3625 (method url-fetch)
3626 (uri (string-append "mirror://gnome/sources/libsoup/"
3627 (version-major+minor version) "/"
c1b79b36 3628 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3629 (sha256
3630 (base32
9a9cd9bc 3631 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3632 (build-system meson-build-system)
6e1bb642
SB
3633 (outputs '("out" "doc"))
3634 (arguments
2deb146f 3635 `(#:modules ((guix build utils)
eccaa8bf 3636 (guix build meson-build-system)
2deb146f
LC
3637 (ice-9 popen))
3638
f8026a79 3639 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3640 #:phases
3641 (modify-phases %standard-phases
eccaa8bf 3642 (add-after 'unpack 'adjust-tests
26c228f9 3643 (lambda _
eccaa8bf
MB
3644 ;; This test fails due to missing /etc/nsswitch.conf
3645 ;; in the build environment.
26c228f9
LC
3646 (substitute* "tests/socket-test.c"
3647 ((".*/sockets/unconnected.*") ""))
2deb146f 3648
f8026a79
MB
3649 ;; These fail because "subdomain.localhost" does not resolve in
3650 ;; the build environment.
3651 (substitute* "tests/hsts-test.c"
3652 ((".*/hsts/basic.*") "")
3653 ((".*/hsts/subdomains.*") "")
3654 ((".*/hsts/superdomain.*") "")
3655 ((".*/hsts/utf8-address.*") ""))
3656 (substitute* "tests/hsts-db-test.c"
3657 ((".*/hsts-db/subdomains.*") ""))
3658
2deb146f
LC
3659 ;; Generate a self-signed certificate that has "localhost" as its
3660 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3661 ;; 3.5.12, tests such as "ssl-tests" fail:
3662 ;;
3663 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3664 ;;
3665 ;; 'certtool' is interactive so we have to pipe it the answers.
3666 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3667 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3668 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3669 (for-each (lambda (line)
3670 (display line pipe)
3671 (newline pipe))
3672 '("" ;Common name
3673 "" ;UID
3674 "Guix" ;Organizational unit name
3675 "GNU" ;Organization name
3676 "" ;Locality name
3677 "" ;State or province
3678 "" ;Country
3679 "" ;subject's domain component (DC)
3680 "" ;E-mail
3681 "" ;serial number
3682 "-1" ;expiration time
3683 "N" ;belong to authority?
3684 "N" ;web client certificate?
3685 "N" ;IPsec IKE?
3686 "Y" ;web server certificate?
3687 "localhost" ;dnsName of subject
3688 "" ;dnsName of subject (end)
3689 "" ;URI of subject
3690 "127.0.0.1" ;IP address of subject
3691 "" ;signing?
06f5bc4e
MB
3692 "" ;encryption (RSA)?
3693 "" ;data encryption?
2deb146f
LC
3694 "" ;sign OCSP requests?
3695 "" ;sign code?
3696 "" ;time stamping?
3697 "" ;email protection?
3698 "" ;URI of the CRL distribution point
3699 "y" ;above info OK?
3700 ))
3701 (close-pipe pipe))
26c228f9 3702 #t))
eccaa8bf
MB
3703 (add-after 'install 'move-doc
3704 (lambda* (#:key outputs #:allow-other-keys)
3705 (let ((out (assoc-ref outputs "out"))
3706 (doc (assoc-ref outputs "doc")))
3707 (mkdir-p (string-append doc "/share"))
3708 (copy-recursively (string-append out "/share/gtk-doc")
3709 (string-append doc "/share/gtk-doc"))
3710 (delete-file-recursively (string-append out "/share/gtk-doc"))
3711 #t))))))
6e1bb642 3712 (native-inputs
26c228f9 3713 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3714 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3715 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3716 ("intltool" ,intltool)
3717 ("pkg-config" ,pkg-config)
3718 ("python" ,python-wrapper)
fd730590 3719 ("vala" ,vala)
6e1bb642
SB
3720 ;; These are needed for the tests.
3721 ;; FIXME: Add PHP once available.
3722 ("curl" ,curl)
2deb146f 3723 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3724 ("httpd" ,httpd)))
3725 (propagated-inputs
3726 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3727 `(("brotli" ,google-brotli)
3728 ("glib" ,glib)
249846bf 3729 ("libpsl" ,libpsl)
eccaa8bf 3730 ("libxml2" ,libxml2)
f8026a79
MB
3731 ("sqlite" ,sqlite)
3732 ("zlib" ,zlib)))
eccaa8bf
MB
3733 (inputs
3734 `(("glib-networking" ,glib-networking)
3735 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3736 (home-page "https://live.gnome.org/LibSoup/")
3737 (synopsis "GLib-based HTTP Library")
3738 (description
3739 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3740and the GLib main loop, to integrate well with GNOME applications.")
3741 (license license:lgpl2.0+)))
3742
bba229a3
SB
3743(define-public libsecret
3744 (package
3745 (name "libsecret")
b05a2f62 3746 (version "0.20.3")
bba229a3
SB
3747 (source (origin
3748 (method url-fetch)
3749 (uri (string-append
896dcbc7
EF
3750 "mirror://gnome/sources/libsecret/"
3751 (version-major+minor version) "/"
0ada4e29 3752 "libsecret-" version ".tar.xz"))
bba229a3
SB
3753 (sha256
3754 (base32
b05a2f62 3755 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
3756 (build-system gnu-build-system)
3757 (outputs '("out" "doc"))
3758 (arguments
3759 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3760 #:configure-flags
3761 (list (string-append "--with-html-dir="
3762 (assoc-ref %outputs "doc")
3763 "/share/gtk-doc/html"))))
3764 (native-inputs
c06ef010
MB
3765 `(("gettext" ,gettext-minimal)
3766 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3767 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3768 ("pkg-config" ,pkg-config)
3769 ("vala" ,vala)
3770 ("xsltproc" ,libxslt)))
3771 ;; These are needed for the tests.
3772 ;; FIXME: Add gjs once available.
3773 ;("dbus" ,dbus)
3774 ;("python2" ,python-2)
3775 ;("python2-dbus" ,python2-dbus)
3776 ;("python2-pygobject" ,python2-pygobject)
3777 ;("python2-pygobject-2" ,python2-pygobject-2)))
3778 (propagated-inputs
3779 `(("glib" ,glib))) ; required by libsecret-1.pc
3780 (inputs
3781 `(("docbook-xsl" ,docbook-xsl)
3782 ("libgcrypt" ,libgcrypt)
3783 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3784 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3785 (synopsis "GObject bindings for \"Secret Service\" API")
3786 (description
3787 "Libsecret is a GObject based library for storing and retrieving passwords
3788and other secrets. It communicates with the \"Secret Service\" using DBus.")
3789 (license license:lgpl2.1+)))
3790
b6821ee0 3791(define-public five-or-more
3792 (package
3793 (name "five-or-more")
ee75b46f 3794 (version "3.32.2")
b6821ee0 3795 (source
3796 (origin
3797 (method url-fetch)
bf782bfc 3798 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3799 (version-major+minor version) "/"
bf782bfc 3800 "five-or-more-" version ".tar.xz"))
b6821ee0 3801 (sha256
ee75b46f 3802 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
3803 (build-system meson-build-system)
3804 (arguments
3805 '(#:glib-or-gtk? #t
3806 #:phases
3807 (modify-phases %standard-phases
3808 (add-after 'unpack 'skip-gtk-update-icon-cache
3809 (lambda _
3810 (substitute* "meson_post_install.py"
3811 (("gtk-update-icon-cache") (which "true")))
3812 #t)))))
b6821ee0 3813 (native-inputs
3814 `(("pkg-config" ,pkg-config)
d9795e93 3815 ("appstream-glib" ,appstream-glib)
b6821ee0 3816 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3817 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3818 ("intltool" ,intltool)
3819 ("itstool" ,itstool)
d9795e93 3820 ("vala" ,vala)
b6821ee0 3821 ("xmllint" ,libxml2)))
3822 (inputs
3823 `(("gtk+" ,gtk+)
d9795e93 3824 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3825 ("librsvg" ,librsvg)))
3826 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3827 (synopsis "Logic puzzle game")
3828 (description "Five or More is a game where you try to align
3829 five or more objects of the same color and shape causing them to disappear.
3830 On every turn more objects will appear, until the board is full.
3831 Try to last as long as possible.")
3832 (license license:gpl2+)))
3833
a31a6d22
SB
3834(define-public gnome-mines
3835 (package
3836 (name "gnome-mines")
d79e9b1b 3837 (version "3.34.0")
a31a6d22
SB
3838 (source
3839 (origin
3840 (method url-fetch)
3841 (uri (string-append "mirror://gnome/sources/" name "/"
3842 (version-major+minor version) "/"
3843 name "-" version ".tar.xz"))
3844 (sha256
3845 (base32
d79e9b1b 3846 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 3847 (build-system meson-build-system)
a31a6d22 3848 (arguments
2d817e41
KK
3849 '(#:glib-or-gtk? #t
3850 #:phases
a31a6d22 3851 (modify-phases %standard-phases
2d817e41
KK
3852 (add-after 'unpack 'skip-gtk-update-icon-cache
3853 (lambda _
3854 (substitute* "build-aux/meson_post_install.py"
3855 (("gtk-update-icon-cache") (which "true")))
3856 #t)))))
a31a6d22 3857 (native-inputs
8c0fab36
RW
3858 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3859 ("pkg-config" ,pkg-config)
a31a6d22
SB
3860 ("desktop-file-utils" ,desktop-file-utils)
3861 ("intltool" ,intltool)
bcb354ad 3862 ("itstool" ,itstool)
8c0fab36
RW
3863 ("vala" ,vala)
3864 ("yelp" ,yelp)
3865 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3866 (inputs
3867 `(("gtk+" ,gtk+)
73992962 3868 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3869 ("librsvg" ,librsvg)))
3870 (home-page "https://wiki.gnome.org/Apps/Mines")
3871 (synopsis "Minesweeper game")
3872 (description
3873 "Mines (previously gnomine) is a puzzle game where you locate mines
3874floating in an ocean using only your brain and a little bit of luck.")
3875 (license license:gpl2+)))
88f70665 3876
dfc407f3
KY
3877(define-public gnome-sudoku
3878 (package
3879 (name "gnome-sudoku")
857eb190 3880 (version "3.34.1")
dfc407f3
KY
3881 (source
3882 (origin
3883 (method url-fetch)
3884 (uri (string-append "mirror://gnome/sources/" name "/"
3885 (version-major+minor version) "/"
3886 name "-" version ".tar.xz"))
3887 (sha256
3888 (base32
857eb190 3889 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
3890 (build-system meson-build-system)
3891 (arguments
3892 '(#:glib-or-gtk? #t
3893 #:phases
3894 (modify-phases %standard-phases
3895 (add-after 'unpack 'skip-gtk-update-icon-cache
3896 (lambda _
3897 (substitute* "build-aux/post_install.py"
3898 (("gtk-update-icon-cache") (which "true")))
3899 #t)))))
dfc407f3
KY
3900 (native-inputs
3901 `(("pkg-config" ,pkg-config)
3902 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3903 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3904 ("intltool" ,intltool)
3905 ("itstool" ,itstool)
7dc728c4 3906 ("vala" ,vala)
dfc407f3
KY
3907 ("xmllint" ,libxml2)))
3908 (inputs
3909 `(("gtk+" ,gtk+)
3910 ("json-glib" ,json-glib)
3911 ("libgee" ,libgee)
3912 ("librsvg" ,librsvg)
3913 ("qqwing" ,qqwing)))
3914 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3915 (synopsis "Japanese logic game")
3916 (description
3917 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3918GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3919possible while still providing features that make playing difficult Sudoku
3920more fun.")
3921 (license license:gpl2+)))
3922
88f70665
AW
3923(define-public gnome-terminal
3924 (package
3925 (name "gnome-terminal")
80f6f9d8 3926 (version "3.34.2")
88f70665
AW
3927 (source
3928 (origin
3929 (method url-fetch)
3930 (uri (string-append "mirror://gnome/sources/" name "/"
3931 (version-major+minor version) "/"
3932 name "-" version ".tar.xz"))
3933 (sha256
3934 (base32
80f6f9d8 3935 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
3936 (build-system glib-or-gtk-build-system)
3937 (arguments
3938 '(#:configure-flags
3939 (list "--disable-migration" "--disable-search-provider"
3940 "--without-nautilus-extension")
3941 #:phases
3942 (modify-phases %standard-phases
3a4de6b2 3943 (add-before 'configure 'patch-/bin/true
88f70665
AW
3944 (lambda _
3945 (substitute* "configure"
3946 (("/bin/true") (which "true"))))))))
3947 (native-inputs
3948 `(("pkg-config" ,pkg-config)
3949 ("desktop-file-utils" ,desktop-file-utils)
3950 ("intltool" ,intltool)
bcb354ad
SB
3951 ("itstool" ,itstool)
3952 ("xmllint" ,libxml2)))
68702167
MW
3953 (propagated-inputs
3954 `(("dconf" ,dconf)))
88f70665
AW
3955 (inputs
3956 `(("gtk+" ,gtk+)
3957 ("vte" ,vte)
3958 ("gnutls" ,gnutls)
88f70665 3959 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 3960 ("util-linux" ,util-linux "lib")
88f70665
AW
3961 ("vala" ,vala)))
3962 (home-page "https://wiki.gnome.org/Apps/Terminal")
3963 (synopsis "Terminal emulator")
3964 (description
3965 "GNOME Terminal is a terminal emulator application for accessing a
3966UNIX shell environment which can be used to run programs available on
3967your system.
3968
3969It supports several profiles, multiple tabs and implements several
3970keyboard shortcuts.")
3971 (license license:gpl3+)))
75016d07
AW
3972
3973(define-public colord
3974 (package
3975 (name "colord")
f98be942 3976 (version "1.4.4")
75016d07
AW
3977 (source
3978 (origin
3979 (method url-fetch)
5cc3096c 3980 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3981 "colord-" version ".tar.xz"))
75016d07 3982 (sha256
f98be942 3983 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3984 (build-system meson-build-system)
75016d07 3985 (arguments
a68544a8
RW
3986 '(;; FIXME: One test fails:
3987 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3988 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3989 ;; application/x-zerosize
75016d07 3990 #:tests? #f
a68544a8
RW
3991 #:glib-or-gtk? #t
3992 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 3993 ;; No dep on systemd.
a68544a8 3994 "-Dsystemd=false"
75016d07
AW
3995 ;; Wants to install to global completion dir;
3996 ;; punt.
a68544a8 3997 "-Dbash_completion=false"
a68544a8
RW
3998 "-Ddaemon_user=colord"
3999 "-Dsane=true"
dac26e22 4000 "-Dvapi=true"
6f20e2dc 4001 ;; Requires spotread.
a68544a8 4002 "-Dargyllcms_sensor=false"
6f20e2dc 4003 ;; TODO: Requires docbook2x.
a68544a8 4004 "-Dman=false")
75016d07
AW
4005 #:phases
4006 (modify-phases %standard-phases
a68544a8
RW
4007 (add-before 'configure 'patch-build-system
4008 (lambda* (#:key outputs #:allow-other-keys)
4009 (substitute* "rules/meson.build"
4010 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4011 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4012 #t))
4013 (add-before 'configure 'set-sqlite3-file-name
4014 (lambda* (#:key inputs #:allow-other-keys)
4015 ;; "colormgr dump" works by invoking the "sqlite3" command.
4016 ;; Record its absolute file name.
4017 (let ((sqlite (assoc-ref inputs "sqlite")))
4018 (substitute* "client/cd-util.c"
4019 (("\"sqlite3\"")
4020 (string-append "\"" sqlite "/bin/sqlite3\"")))
4021 #t))))))
75016d07 4022 (native-inputs
6f20e2dc 4023 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4024 ("gettext" ,gettext-minimal)
75016d07 4025 ("gobject-introspection" ,gobject-introspection)
a68544a8 4026 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4027 ("pkg-config" ,pkg-config)
4028 ("vala" ,vala)))
65cb2d61
SB
4029 (propagated-inputs
4030 ;; colord.pc refers to all these.
4031 `(("glib" ,glib)
6f20e2dc
TGR
4032 ("lcms" ,lcms)
4033 ("udev" ,eudev)))
75016d07 4034 (inputs
65cb2d61 4035 `(("dbus-glib" ,dbus-glib)
a68544a8 4036 ("gusb" ,gusb)
80c7dd1a 4037 ("libgudev" ,libgudev)
75016d07 4038 ("libusb" ,libusb)
75016d07 4039 ("polkit" ,polkit)
a68544a8 4040 ("python" ,python-wrapper)
6f20e2dc 4041 ("sqlite" ,sqlite)
4c928743 4042 ("sane-backends" ,sane-backends)))
57e7d748 4043 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4044 (synopsis "Color management service")
4045 (description "Colord is a system service that makes it easy to manage,
4046install and generate color profiles to accurately color manage input and
4047output devices.")
4048 (license license:gpl2+)))
7b2abd00
AW
4049
4050(define-public geoclue
4051 (package
4052 (name "geoclue")
50e96d25 4053 (version "2.5.5")
7b2abd00
AW
4054 (source
4055 (origin
4056 (method url-fetch)
50e96d25
MB
4057 (uri
4058 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4059 version "/geoclue-" version ".tar.bz2"))
7b2abd00
AW
4060 (sha256
4061 (base32
50e96d25 4062 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
fc1adab1 4063 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4064 (build-system meson-build-system)
7b2abd00 4065 (arguments
50e96d25 4066 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4067 (native-inputs
4068 `(("pkg-config" ,pkg-config)
758798a9 4069 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4070 ("modem-manager" ,modem-manager)
4071 ("libnotify" ,libnotify)
4072 ("gtk-doc", gtk-doc)
7b2abd00
AW
4073 ("intltool" ,intltool)))
4074 (inputs
54e911bc 4075 `(("avahi" ,avahi)
50e96d25
MB
4076 ("glib:bin" ,glib "bin")
4077 ("glib-networking" ,glib-networking)
7b2abd00
AW
4078 ("json-glib" ,json-glib)
4079 ("libsoup" ,libsoup)))
50e96d25 4080 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4081 (synopsis "Geolocation service")
4082 (description "Geoclue is a D-Bus service that provides location
4083information. The primary goal of the Geoclue project is to make creating
4084location-aware applications as simple as possible, while the secondary goal is
4085to ensure that no application can access location information without explicit
e881752c 4086permission from user.")
7b2abd00 4087 (license license:gpl2+)))
2bfe7437
AW
4088
4089(define-public geocode-glib
4090 (package
4091 (name "geocode-glib")
65de725f 4092 (version "3.26.1")
2bfe7437
AW
4093 (source (origin
4094 (method url-fetch)
4095 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4096 (version-major+minor version) "/"
d485cdc0 4097 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4098 (sha256
4099 (base32
65de725f 4100 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4101 (build-system meson-build-system)
2bfe7437 4102 (arguments
a7dd0c02
RW
4103 `(#:phases
4104 (modify-phases %standard-phases
4105 ;; The tests require a bunch of locales.
4106 (add-before 'check 'set-locales
4107 (lambda* (#:key inputs #:allow-other-keys)
4108 (setenv "GUIX_LOCPATH"
4109 (string-append (assoc-ref inputs "glibc-locales")
4110 "/lib/locale"))
4111 #t)))))
2bfe7437
AW
4112 (native-inputs
4113 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4114 ("glibc-locales" ,glibc-locales) ; for tests
4115 ("gettext" ,gettext-minimal)
2bfe7437 4116 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4117 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4118 ("pkg-config" ,pkg-config)
4119 ("json-glib" ,json-glib)))
4120 (propagated-inputs
4121 ;; geocode-glib-1.0.pc refers to GIO.
4122 `(("glib" ,glib)))
4123 (inputs
4124 `(("libsoup" ,libsoup)))
4125 (home-page "https://github.com/GNOME/geocode-glib/")
4126 (synopsis "Geocoding and reverse-geocoding library")
4127 (description
4128 "geocode-glib is a convenience library for geocoding (finding longitude,
4129and latitude from an address) and reverse geocoding (finding an address from
4130coordinates) using the Nominatim service. geocode-glib caches requests for
4131faster results and to avoid unnecessary server load.")
4132 (license license:lgpl2.0+)))
a1d5bb0e
AW
4133
4134(define-public upower
4135 (package
4136 (name "upower")
df45af90 4137 (version "0.99.11")
a1d5bb0e
AW
4138 (source (origin
4139 (method url-fetch)
df45af90 4140 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4141 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4142 (sha256
4143 (base32
df45af90 4144 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4145 (patches (search-patches "upower-builddir.patch"))
4146 (modules '((guix build utils)))
4147 (snippet
4148 '(begin
4149 ;; Upstream commit
4150 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4151 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4152 ;; 'dbus-configuration-directory' in (gnu services dbus)
4153 ;; expects it in etc/. Thus, move it back to its previous
4154 ;; location.
4155 (substitute* "src/Makefile.in"
4156 (("^dbusconfdir =.*$")
4157 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4158 #t))))
a1d5bb0e
AW
4159 (build-system glib-or-gtk-build-system)
4160 (arguments
6039031a
BW
4161 '(#:phases
4162 (modify-phases %standard-phases
4163 (add-before 'check 'pre-check
4164 (lambda* (#:key inputs #:allow-other-keys)
4165 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4166 "/lib")))
4167 (setenv "LD_LIBRARY_PATH" umockdev))
4168 #t)))
a1d5bb0e
AW
4169 #:configure-flags (list "--localstatedir=/var"
4170 (string-append "--with-udevrulesdir="
4171 (assoc-ref %outputs "out")
9ec54965 4172 "/lib/udev/rules.d"))))
a1d5bb0e 4173 (native-inputs
ebeabe2d
SB
4174 `(("gobject-introspection" ,gobject-introspection)
4175 ("pkg-config" ,pkg-config)
a1d5bb0e 4176 ("intltool" ,intltool)
55409295
LC
4177 ("python" ,python)
4178
6039031a
BW
4179 ;; For tests.
4180 ("python-dbus" ,python-dbus)
4181 ("python-dbusmock" ,python-dbusmock)
4182 ("python-pygobject" ,python-pygobject)
4183 ("umockdev" ,umockdev)
4184
55409295
LC
4185 ;; For man pages.
4186 ("libxslt" ,libxslt) ;for 'xsltproc'
4187 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4188 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4189 (inputs
ea226291
SB
4190 `(("dbus-glib" ,dbus-glib)
4191 ("libgudev" ,libgudev)
a1d5bb0e 4192 ("libusb" ,libusb)))
d7a503fc
MB
4193 (propagated-inputs
4194 ;; In Requires of upower-glib.pc.
4195 `(("glib" ,glib)))
57e7d748 4196 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4197 (synopsis "System daemon for managing power devices")
4198 (description
4199 "UPower is an abstraction for enumerating power devices,
4200listening to device events and querying history and statistics. Any
4201application or service on the system can access the org.freedesktop.UPower
4202service via the system message bus.")
4203 (license license:gpl2+)))
6a180f6f
AW
4204
4205(define-public libgweather
4206 (package
4207 (name "libgweather")
462d3416 4208 (version "3.34.0")
6a180f6f
AW
4209 (source (origin
4210 (method url-fetch)
4211 (uri (string-append "mirror://gnome/sources/" name "/"
4212 (version-major+minor version) "/"
4213 name "-" version ".tar.xz"))
4214 (sha256
4215 (base32
462d3416 4216 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 4217 (build-system meson-build-system)
6a180f6f 4218 (arguments
cf6cbc34
RW
4219 `(#:tests? #f ; one of two tests requires network access
4220 #:configure-flags
4221 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4222 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4223 "/share/zoneinfo"))))
6a180f6f
AW
4224 (native-inputs
4225 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4226 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4227 ("pkg-config" ,pkg-config)
1d3fcf94 4228 ("vala" ,vala)
6a180f6f
AW
4229 ("intltool" ,intltool)))
4230 (propagated-inputs
4231 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4232 ;; libsoup.
4233 `(("gtk+" ,gtk+)
4234 ("gdk-pixbuf" ,gdk-pixbuf)
4235 ("libxml2" ,libxml2)
cf6cbc34 4236 ("libsoup" ,libsoup)
6a180f6f 4237 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4238 (inputs
4239 `(("tzdata" ,tzdata)))
6a180f6f
AW
4240 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4241 (synopsis "Location, time zone, and weather library for GNOME")
4242 (description
4243 "libgweather is a library to access weather information from online
4244services for numerous locations.")
4245 (license license:gpl2+)))
23a22af6
AW
4246
4247(define-public gnome-settings-daemon
4248 (package
4249 (name "gnome-settings-daemon")
20154759 4250 (version "3.34.1")
23a22af6
AW
4251 (source
4252 (origin
4253 (method url-fetch)
4254 (uri (string-append "mirror://gnome/sources/" name "/"
4255 (version-major+minor version) "/"
4256 name "-" version ".tar.xz"))
4257 (sha256
4258 (base32
20154759 4259 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 4260 (build-system meson-build-system)
23a22af6 4261 (arguments
e644f9fa
RW
4262 `(#:glib-or-gtk? #t
4263 #:configure-flags
4264 (list (string-append "-Dudev_dir="
4265 (assoc-ref %outputs "out")
4d0e085b 4266 "/lib/udev/rules.d/")
20154759 4267 "-Dsystemd=false"
4d0e085b
RW
4268 ;; Otherwise, the RUNPATH will lack the final path component.
4269 (string-append "-Dc_link_args=-Wl,-rpath="
4270 (assoc-ref %outputs "out")
4271 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4272 ;; Color management test can't reach the colord system service.
23a22af6
AW
4273 #:tests? #f))
4274 (native-inputs
e644f9fa
RW
4275 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4276 ("pkg-config" ,pkg-config)
23a22af6
AW
4277 ("intltool" ,intltool)
4278 ("xsltproc" ,libxslt)
4279 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4280 ("docbook-xml" ,docbook-xml-4.2)
4281 ("docbook-xsl" ,docbook-xsl)))
4282 (inputs
e644f9fa
RW
4283 `(("alsa-lib" ,alsa-lib)
4284 ("colord" ,colord)
ea226291 4285 ("libgudev" ,libgudev)
23a22af6
AW
4286 ("upower" ,upower)
4287 ("polkit" ,polkit)
4288 ("pulseaudio" ,pulseaudio)
4289 ("libcanberra" ,libcanberra)
4290 ("libx11" ,libx11)
4291 ("libxtst" ,libxtst)
4292 ("lcms" ,lcms)
4293 ("libnotify" ,libnotify)
4294 ("geoclue" ,geoclue)
4295 ("geocode-glib" ,geocode-glib)
4296 ("libgweather" ,libgweather)
4297 ("gnome-desktop" ,gnome-desktop)
4298 ("nss" ,nss)
4299 ("cups" ,cups)
ec2b1921
AW
4300 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4301 ("libwacom" ,libwacom)
4302 ("librsvg" ,librsvg)
eee7878f 4303 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4304 ("wayland" ,wayland)
20154759
KK
4305 ("network-manager" ,network-manager)
4306 ("gcr" ,gcr)
4307 ("modem-manager" ,modem-manager)))
f032d0be 4308 (home-page "https://www.gnome.org")
23a22af6
AW
4309 (synopsis "GNOME settings daemon")
4310 (description
4311 "This package contains the daemon responsible for setting the various
4312parameters of a GNOME session and the applications that run under it. It
4313handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4314settings, themes, mouse settings, and startup of other daemons.")
4315 (license license:gpl2+)))
1e7464a9
DH
4316
4317(define-public totem-pl-parser
4318 (package
4319 (name "totem-pl-parser")
77425f04 4320 (version "3.26.3")
1e7464a9
DH
4321 (source (origin
4322 (method url-fetch)
e980cbe9
MW
4323 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4324 (version-major+minor version) "/"
1e7464a9
DH
4325 "totem-pl-parser-" version ".tar.xz"))
4326 (sha256
4327 (base32
77425f04 4328 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4329 (build-system meson-build-system)
1e7464a9
DH
4330 (arguments
4331 ;; FIXME: Tests require gvfs.
4332 `(#:tests? #f))
4333 (native-inputs
4334 `(("intltool" ,intltool)
4335 ("glib" ,glib "bin")
4d6d8281 4336 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4337 ("pkg-config" ,pkg-config)))
22a6ad6a 4338 (propagated-inputs
1e7464a9
DH
4339 `(("glib" ,glib)
4340 ("gmime" ,gmime)
1e9b19dd
RW
4341 ("libarchive" ,libarchive)
4342 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4343 ("libxml2" ,libxml2)))
4344 (inputs
0a6e9e13 4345 `(("libsoup" ,libsoup)))
1e7464a9
DH
4346 (home-page "https://projects.gnome.org/totem")
4347 (synopsis "Library to parse and save media playlists for GNOME")
4348 (description "Totem-pl-parser is a GObjects-based library to parse and save
4349playlists in a variety of formats.")
4350 (license license:lgpl2.0+)))
4351
6b888eff
SB
4352(define-public aisleriot
4353 (package
4354 (name "aisleriot")
36ed9b46 4355 (version "3.22.9")
6b888eff
SB
4356 (source (origin
4357 (method url-fetch)
e43f622a 4358 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4359 (version-major+minor version) "/"
e43f622a 4360 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4361 (sha256
4362 (base32
36ed9b46 4363 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4364 (build-system glib-or-gtk-build-system)
4365 (arguments
4366 '(#:configure-flags
4367 '("--with-platform=gtk-only"
4368 "--with-card-theme-formats=svg")))
4369 (native-inputs
4370 `(("desktop-file-utils" ,desktop-file-utils)
4371 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4372 ("intltool" ,intltool)
4373 ("itstool" ,itstool)
4374 ("pkg-config" ,pkg-config)
4375 ("xmllint" ,libxml2)))
4376 (inputs
4377 `(("gtk+" ,gtk+)
226e57d6 4378 ("guile" ,guile-2.2)
6b888eff
SB
4379 ("libcanberra" ,libcanberra)
4380 ("librsvg" ,librsvg)))
4381 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4382 (synopsis "Solitaire card games")
4383 (description
4384 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4385which are easy to play with the aid of a mouse.")
4386 (license license:gpl3+)))
4a79e256 4387
f828d05b
KK
4388(define-public amtk
4389 (package
4390 (name "amtk")
0e08ca14 4391 (version "5.0.2")
f828d05b
KK
4392 (source (origin
4393 (method url-fetch)
bf92ba6b 4394 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4395 (version-major+minor version) "/"
bf92ba6b 4396 "amtk-" version ".tar.xz"))
f828d05b
KK
4397 (sha256
4398 (base32
0e08ca14 4399 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4400 (build-system gnu-build-system)
4401 (arguments
4402 '(#:configure-flags '("--enable-gtk-doc")))
4403 (native-inputs
4404 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4405 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4406 ("gtk-doc" ,gtk-doc)
4407 ("pkg-config" ,pkg-config)))
4408 (inputs
4409 `(("glib" ,glib)
4410 ("gtk+" ,gtk+)))
4411 (home-page "https://wiki.gnome.org/Projects/Amtk")
4412 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4413 (description
4414 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4415It is a basic GtkUIManager replacement based on GAction. It is suitable for
4416both a traditional UI or a modern UI with a GtkHeaderBar.")
4417 (license license:lgpl2.1+)))
4418
4a79e256
SB
4419(define-public devhelp
4420 (package
4421 (name "devhelp")
8ae23a1d 4422 (version "3.34.0")
4a79e256
SB
4423 (source (origin
4424 (method url-fetch)
4425 (uri (string-append "mirror://gnome/sources/" name "/"
4426 (version-major+minor version) "/"
4427 name "-" version ".tar.xz"))
4428 (sha256
4429 (base32
8ae23a1d 4430 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 4431 (build-system meson-build-system)
35407f94 4432 (arguments
20db7a3d
KK
4433 '(#:glib-or-gtk? #t
4434 #:phases
35407f94
EF
4435 (modify-phases %standard-phases
4436 (add-after 'unpack 'skip-gtk-update-icon-cache
4437 ;; Don't create 'icon-theme.cache'.
4438 (lambda _
4439 (substitute* "meson_post_install.py"
4440 (("gtk-update-icon-cache") "true"))
4441 #t)))))
4a79e256
SB
4442 (native-inputs
4443 `(("intltool" ,intltool)
5dd12afc 4444 ("itstool" ,itstool)
11d28bd9
KK
4445 ("gobject-introspection" ,gobject-introspection)
4446 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4447 ("pkg-config" ,pkg-config)))
4448 (inputs
11d28bd9
KK
4449 `(("amtk" ,amtk)
4450 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4451 ("webkitgtk" ,webkitgtk)))
4452 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4453 (synopsis "API documentation browser for GNOME")
4454 (description
4455 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4456natively with GTK-Doc (the API reference system developed for GTK+ and used
4457throughout GNOME for API documentation).")
4458 (license license:gpl2+)))
ba421ab7
MW
4459
4460(define-public cogl
4461 (package
4462 (name "cogl")
29f4bb2e 4463 (version "1.22.6")
ba421ab7
MW
4464 (source
4465 (origin
4466 (method url-fetch)
5754f0cf 4467 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4468 (version-major+minor version) "/"
5754f0cf 4469 "cogl-" version ".tar.xz"))
ba421ab7 4470 (sha256
29f4bb2e 4471 (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
a88d5a0c
MW
4472 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4473 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4474 (build-system gnu-build-system)
4475 (native-inputs
4476 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4477 ("gobject-introspection" ,gobject-introspection)
b4f04e0e 4478 ("xorg-server" ,xorg-server-for-tests)
ba421ab7
MW
4479 ("pkg-config" ,pkg-config)))
4480 (propagated-inputs
4481 `(("glib" ,glib)
4482 ("gdk-pixbuf" ,gdk-pixbuf)
4483 ("libx11" ,libx11)
4484 ("libxext" ,libxext)
4485 ("libxfixes" ,libxfixes)
4486 ("libxdamage" ,libxdamage)
4487 ("libxcomposite" ,libxcomposite)
4488 ("libxrandr" ,libxrandr)))
4489 (inputs
4490 `(("mesa" ,mesa)
4491 ("cairo" ,cairo)
4492 ("pango" ,pango)
4493 ("gstreamer" ,gstreamer)
31860852
KK
4494 ("gst-plugins-base" ,gst-plugins-base)
4495 ("wayland" ,wayland)))
ba421ab7 4496 (arguments
b4f04e0e
MB
4497 `(#:disallowed-references (,xorg-server-for-tests)
4498 #:configure-flags (list "--enable-cogl-gst"
31860852
KK
4499 "--enable-wayland-egl-platform"
4500 "--enable-wayland-egl-server"
4501
ba421ab7
MW
4502 ;; Arrange to pass an absolute file name to
4503 ;; dlopen for libGL.so.
4504 (string-append "--with-gl-libname="
4505 (assoc-ref %build-inputs "mesa")
4506 "/lib/libGL.so"))
b4f04e0e 4507 #:phases
ba421ab7
MW
4508 (modify-phases %standard-phases
4509 (add-before 'check 'start-xorg-server
b4f04e0e
MB
4510 (lambda* (#:key tests? inputs #:allow-other-keys)
4511 (if tests?
4512 (begin
4513 ;; The test suite requires a running X server.
4514 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4515 (assoc-ref inputs "xorg-server")))
4516 (setenv "DISPLAY" ":1")
4517 #t)
4518 (format #t "test suite not run~%"))
ba421ab7 4519 #t)))))
89b49245 4520 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4521 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4522 (description
4523 "Cogl is a small library for using 3D graphics hardware to draw pretty
4524pictures. The API departs from the flat state machine style of OpenGL and is
4525designed to make it easy to write orthogonal components that can render
4526without stepping on each others toes.")
4527 (license (list license:expat ; most of the code
4528 license:bsd-3 ; cogl/cogl-point-in-poly.c
4529 license:sgifreeb2.0 ; cogl-path/tesselator/
4530 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4531
4532(define-public clutter
4533 (package
4534 (name "clutter")
6a88e4ee 4535 (version "1.26.2")
fb182b8a
MW
4536 (source
4537 (origin
4538 (method url-fetch)
4539 (uri (string-append "mirror://gnome/sources/" name "/"
4540 (version-major+minor version) "/"
4541 name "-" version ".tar.xz"))
4542 (sha256
4543 (base32
6a88e4ee 4544 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4545 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4546 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4547 (build-system gnu-build-system)
600233bd
LC
4548 (outputs '("out"
4549 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4550 (native-inputs
4551 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4552 ("gobject-introspection" ,gobject-introspection)
4553 ("pkg-config" ,pkg-config)
4554 ("xsltproc" ,libxslt)))
4555 (propagated-inputs
4556 `(("cogl" ,cogl)
4557 ("cairo" ,cairo)
4558 ("atk" ,atk)
4559 ("gtk+" ,gtk+)
4560 ("json-glib" ,json-glib)
4561 ("glib" ,glib)
4562 ("libxcomposite" ,libxcomposite)
4563 ("libxdamage" ,libxdamage)
4564 ("libxext" ,libxext)
4565 ("xinput" ,xinput)))
4566 (inputs
4567 `(("libxkbcommon" ,libxkbcommon)
4568 ("udev" ,eudev)))
4569 (arguments
600233bd
LC
4570 `(#:configure-flags (list "--enable-x11-backend=yes"
4571
4572 ;; This produces share/doc/{clutter,cally}.
4573 (string-append "--with-html-dir="
4574 (assoc-ref %outputs "doc")
4575 "/share/doc"))
fb182b8a
MW
4576 ;; XXX FIXME: Get test suite working. It would probably fail in the
4577 ;; same way the cogl tests fail, since clutter is based on cogl.
4578 #:tests? #f))
4579 (home-page "http://www.clutter-project.org")
476af713 4580 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4581 (description
476af713 4582 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4583creating fast, mainly 2D single window applications such as media box UIs,
4584presentations, kiosk style applications and so on.")
4585 (license license:lgpl2.0+)))
bf7f17ba
MW
4586
4587(define-public clutter-gtk
4588 (package
4589 (name "clutter-gtk")
5d1a3219 4590 (version "1.8.4")
bf7f17ba
MW
4591 (source
4592 (origin
4593 (method url-fetch)
4594 (uri (string-append "mirror://gnome/sources/" name "/"
4595 (version-major+minor version) "/"
4596 name "-" version ".tar.xz"))
4597 (sha256
4598 (base32
5d1a3219 4599 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4600 (build-system gnu-build-system)
4601 (native-inputs
4602 `(("pkg-config" ,pkg-config)
4603 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4604 (propagated-inputs
4605 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4606 `(("clutter" ,clutter)
4607 ("gtk+" ,gtk+)))
4608 (home-page "http://www.clutter-project.org")
476af713 4609 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4610 (description
476af713 4611 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4612creating fast, mainly 2D single window applications such as media box UIs,
4613presentations, kiosk style applications and so on.")
4614 (license license:lgpl2.0+)))
86d6a893
MW
4615
4616(define-public clutter-gst
4617 (package
4618 (name "clutter-gst")
ba07ac19 4619 (version "3.0.27")
86d6a893
MW
4620 (source
4621 (origin
4622 (method url-fetch)
f010f89b 4623 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4624 (version-major+minor version) "/"
f010f89b 4625 "clutter-gst-" version ".tar.xz"))
86d6a893 4626 (sha256
ba07ac19 4627 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4628 (build-system gnu-build-system)
4629 (native-inputs
ba07ac19 4630 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4631 ("pkg-config" ,pkg-config)
4632 ("gobject-introspection" ,gobject-introspection)))
4633 (inputs
4634 `(("clutter" ,clutter)
4635 ("gstreamer" ,gstreamer)
4636 ("gst-plugins-base" ,gst-plugins-base)))
4637 (home-page "http://www.clutter-project.org")
4638 (synopsis "Integration library for using GStreamer with Clutter")
4639 (description
4640 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4641It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4642implements the ClutterGstPlayer interface using playbin. Clutter is an
4643OpenGL-based interactive canvas library.")
86d6a893 4644 (license license:lgpl2.0+)))
607a04ae 4645
30dc88d9
LC
4646(define-public libchamplain
4647 (package
4648 (name "libchamplain")
5564b2c5 4649 (version "0.12.16")
30dc88d9
LC
4650 (source (origin
4651 (method url-fetch)
4652 (uri (string-append
4653 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4654 version ".tar.xz"))
4655 (sha256
4656 (base32
5564b2c5 4657 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4658 (build-system gnu-build-system)
f7c6833f
LF
4659 (arguments '(#:configure-flags '("--enable-vala")))
4660 (native-inputs
4661 `(("gobject-introspection" ,gobject-introspection)
4662 ("pkg-config" ,pkg-config)
4663 ("vala" ,vala)))
30dc88d9
LC
4664 (propagated-inputs
4665 `(("libsoup" ,libsoup)
4666 ("sqlite" ,sqlite)
4667 ("clutter" ,clutter)
4668 ("clutter-gtk" ,clutter-gtk)
4669 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4670 ("cairo" ,cairo)
4671 ("gtk+3" ,gtk+)
4672 ("glib" ,glib)))
f032d0be 4673 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4674 (synopsis "C library providing a ClutterActor to display maps")
4675 (description
4676 "libchamplain is a C library providing a ClutterActor to display maps.
4677It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4678and Perl bindings are also available. It supports numerous free map sources
4679such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4680 (license license:lgpl2.1+)))
4681
607a04ae
MW
4682(define-public gom
4683 (package
4684 (name "gom")
0510440b 4685 (version "0.3.2")
607a04ae
MW
4686 (source
4687 (origin
4688 (method url-fetch)
6c8a0b6f 4689 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4690 (version-major+minor version) "/"
6c8a0b6f 4691 "gom-" version ".tar.xz"))
607a04ae
MW
4692 (sha256
4693 (base32
0510440b 4694 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4695 (build-system gnu-build-system)
4696 (native-inputs
4697 `(("intltool" ,intltool)
4698 ("pkg-config" ,pkg-config)
4699 ("gobject-introspection" ,gobject-introspection)))
4700 (inputs
4701 `(("glib" ,glib)
4702 ("gdk-pixbuf" ,gdk-pixbuf)
4703 ("sqlite" ,sqlite)))
4704 ;; XXX TODO: Figure out how to run the test suite.
4705 (arguments `(#:tests? #f))
4706 (home-page "https://wiki.gnome.org/Projects/Gom")
4707 (synopsis "Object mapper from GObjects to SQLite")
4708 (description
4709 "Gom provides an object mapper from GObjects to SQLite. It helps you
4710write applications that need to store structured data as well as make complex
4711queries upon that data.")
4712 (license license:lgpl2.1+)))
b7a3cf11 4713
865aacc9 4714(define-public libgnome-games-support
f09520db 4715 (package
865aacc9 4716 (name "libgnome-games-support")
4c6d15cf 4717 (version "1.4.4")
f09520db
SB
4718 (source (origin
4719 (method url-fetch)
2d8dca9d 4720 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4721 (version-major+minor version) "/"
2d8dca9d 4722 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4723 (sha256
4724 (base32
4c6d15cf 4725 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4726 (build-system gnu-build-system)
4727 (arguments
4728 '(#:phases
4729 (modify-phases %standard-phases
4730 (add-before 'check 'pre-check
4731 (lambda _
865aacc9 4732 ;; Tests require a writable HOME.
f09520db
SB
4733 (setenv "HOME" (getcwd))
4734 #t)))))
4735 (native-inputs
4736 `(("intltool" ,intltool)
4737 ("pkg-config" ,pkg-config)
4738 ("vala" ,vala)))
4739 (propagated-inputs
865aacc9 4740 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4741 `(("gtk+" ,gtk+)
4742 ("libgee" ,libgee)))
4743 (home-page "https://www.gnome.org/")
4744 (synopsis "Useful functionality shared among GNOME games")
4745 (description
865aacc9 4746 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4747GNOME Games, but it may be used by others.")
4748 (license license:lgpl3+)))
4749
b7a3cf11
SB
4750(define-public gnome-klotski
4751 (package
4752 (name "gnome-klotski")
18364fbc 4753 (version "3.34.0")
b7a3cf11
SB
4754 (source (origin
4755 (method url-fetch)
4756 (uri (string-append "mirror://gnome/sources/" name "/"
4757 (version-major+minor version) "/"
4758 name "-" version ".tar.xz"))
4759 (sha256
4760 (base32
18364fbc 4761 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
4762 (build-system meson-build-system)
4763 (arguments
4764 '(#:glib-or-gtk? #t
4765 #:phases
4766 (modify-phases %standard-phases
4767 (add-after 'unpack 'skip-gtk-update-icon-cache
4768 ;; Don't create 'icon-theme.cache'.
4769 (lambda _
4770 (substitute* "build-aux/meson_post_install.py"
4771 (("gtk-update-icon-cache") (which "true")))
4772 #t)))))
b7a3cf11
SB
4773 (native-inputs
4774 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4775 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4776 ("intltool" ,intltool)
4777 ("itstool" ,itstool)
bcb354ad 4778 ("pkg-config" ,pkg-config)
c1e419c4 4779 ("vala" ,vala)
bcb354ad 4780 ("xmllint" ,libxml2)))
b7a3cf11
SB
4781 (inputs
4782 `(("gtk+" ,gtk+)
f4eae76f 4783 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4784 ("librsvg" ,librsvg)))
4785 (home-page "https://wiki.gnome.org/Apps/Klotski")
4786 (synopsis "Sliding block puzzles")
4787 (description
4788 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4789the patterned block to the area bordered by green markers. To do so, you will
4790need to slide other blocks out of the way. Complete each puzzle in as few moves
4791as possible!")
4792 (license license:gpl2+)))
8d4791bf
MW
4793
4794(define-public grilo
4795 (package
4796 (name "grilo")
a865e938 4797 (version "0.3.10")
8d4791bf
MW
4798 (source
4799 (origin
4800 (method url-fetch)
4801 (uri (string-append "mirror://gnome/sources/" name "/"
4802 (version-major+minor version) "/"
4803 name "-" version ".tar.xz"))
4804 (sha256
4805 (base32
a865e938 4806 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4807 (build-system meson-build-system)
8d4791bf
MW
4808 (native-inputs
4809 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4810 ("intltool" ,intltool)
4811 ("pkg-config" ,pkg-config)
d48d4c98
KK
4812 ("gobject-introspection" ,gobject-introspection)
4813 ("gtk-doc" ,gtk-doc)
4814 ("vala" ,vala)))
8d4791bf 4815 (inputs
6d7273a0
KK
4816 `(("cyrus-sasl" ,cyrus-sasl)
4817 ("glib" ,glib)
8d4791bf
MW
4818 ("gtk+" ,gtk+)
4819 ("libxml2" ,libxml2)
6d7273a0 4820 ("liboauth" ,liboauth)
8d4791bf
MW
4821 ("libsoup" ,libsoup)
4822 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4823 (native-search-paths
4824 (list (search-path-specification
4825 (variable "GRL_PLUGIN_PATH")
4826 (files (list (string-append "lib/grilo-"
4827 (version-major+minor version)))))))
d48d4c98 4828 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4829 (synopsis "Framework for discovering and browsing media")
4830 (description
4831 "Grilo is a framework focused on making media discovery and browsing easy
4832for application developers.")
4833 (license license:lgpl2.1+)))
7b212526
MW
4834
4835(define-public grilo-plugins
4836 (package
4837 (name "grilo-plugins")
281f6b3a 4838 (version "0.3.10")
7b212526
MW
4839 (source
4840 (origin
4841 (method url-fetch)
4842 (uri (string-append "mirror://gnome/sources/" name "/"
4843 (version-major+minor version) "/"
4844 name "-" version ".tar.xz"))
4845 (sha256
4846 (base32
281f6b3a
RG
4847 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4848 (build-system meson-build-system)
7b212526 4849 (native-inputs
281f6b3a
RG
4850 `(("gettext" ,gettext-minimal)
4851 ("glib:bin" ,glib "bin")
4852 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4853 ("itstool" ,itstool)
4854 ("pkg-config" ,pkg-config)))
281f6b3a 4855 ;; TODO: ahavi, gstreamer
7b212526
MW
4856 (inputs
4857 `(("grilo" ,grilo)
281f6b3a
RG
4858 ;("gmime" ,gmime) ; unused
4859 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4860 ("gom" ,gom)
281f6b3a
RG
4861 ;("gssdp" ,gssdp) ; unused
4862 ;("gupnp" ,gupnp) ; unused
4863 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4864 ("json-glib" ,json-glib)
4865 ("avahi" ,avahi)
281f6b3a
RG
4866 ("libgdata" ,libgdata)
4867 ("libmediaart" ,libmediaart)
4868 ;("librest" ,rest) ; unused
7b212526 4869 ("libsoup" ,libsoup)
281f6b3a
RG
4870 ("totam-pl-parser" ,totem-pl-parser)
4871 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4872 (arguments
281f6b3a
RG
4873 `(#:glib-or-gtk? #t
4874 ;;Disable lua-factory as it needs missing dependencies
4875 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4876 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4877 (synopsis "Plugins for the Grilo media discovery library")
4878 (description
4879 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4880for application developers. This package provides plugins for common media
4881discovery protocols.")
7b212526 4882 (license license:lgpl2.1+)))
4e3fc547
MW
4883
4884(define-public totem
4885 (package
4886 (name "totem")
961dc62d 4887 (version "3.34.1")
4e3fc547
MW
4888 (source
4889 (origin
4890 (method url-fetch)
4891 (uri (string-append "mirror://gnome/sources/" name "/"
4892 (version-major+minor version) "/"
4893 name "-" version ".tar.xz"))
4894 (sha256
4895 (base32
961dc62d 4896 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 4897 (build-system meson-build-system)
4e3fc547
MW
4898 (native-inputs
4899 `(("pkg-config" ,pkg-config)
4900 ("desktop-file-utils" ,desktop-file-utils)
4901 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4902 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4903 ("intltool" ,intltool)
bcb354ad 4904 ("itstool" ,itstool)
995ef5ea
KK
4905 ("xmllint" ,libxml2)
4906 ("python-pylint" ,python-pylint)
4907 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4908 (propagated-inputs
4909 `(("dconf" ,dconf)))
4910 (inputs
4911 `(("gtk+" ,gtk+)
4912 ("gdk-pixbuf" ,gdk-pixbuf)
4913 ("atk" ,atk)
4914 ("cairo" ,cairo)
4915 ("dbus-glib" ,dbus-glib)
4916 ("clutter" ,clutter)
4917 ("clutter-gtk" ,clutter-gtk)
4918 ("clutter-gst" ,clutter-gst)
6a6db57f 4919 ("xorgproto" ,xorgproto)
4e3fc547
MW
4920 ("libxxf86vm" ,libxxf86vm)
4921 ("libxtst" ,libxtst)
4922 ("libxrandr" ,libxrandr)
4923 ("libxml2" ,libxml2)
4924 ("libsoup" ,libsoup)
4925 ("libpeas" ,libpeas)
4926 ("librsvg" ,librsvg)
4927 ("lirc" ,lirc)
4928 ("gnome-desktop" ,gnome-desktop)
4929 ("gstreamer" ,gstreamer)
4930 ("gst-plugins-base" ,gst-plugins-base)
4931 ("gst-plugins-good" ,gst-plugins-good)
4932 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4933 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4934 ("python" ,python)
995ef5ea 4935 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4936 ("totem-pl-parser" ,totem-pl-parser)
4937 ("grilo" ,grilo)
4938 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4939 ("vala" ,vala)))
4940 (arguments
7ad81b8b
LC
4941 `(#:glib-or-gtk? #t
4942
4943 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4944 ;; all that.
7ad81b8b 4945 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4946
4947 ;; Do not build .a files for the plugins, it's
4948 ;; completely useless. This saves 2 MiB.
7ad81b8b 4949 "--default-library" "shared")
ec5c24f9 4950 #:phases
4e3fc547 4951 (modify-phases %standard-phases
d51b19ad
EF
4952 (add-after 'unpack 'skip-gtk-update-icon-cache
4953 ;; Don't create 'icon-theme.cache'.
4954 (lambda _
4955 (substitute* "meson_post_install.py"
4956 (("gtk-update-icon-cache") "true"))
4957 #t))
6368eb39
DM
4958 (add-before
4959 'install 'disable-cache-generation
4960 (lambda _
4961 (setenv "DESTDIR" "/")
4962 #t))
995ef5ea
KK
4963 (add-before
4964 'check 'pre-check
4965 (lambda _
4966 ;; Tests require a running X server.
4967 (system "Xvfb :1 &")
4968 (setenv "DISPLAY" ":1")
4969 #t))
4e3fc547
MW
4970 (add-after
4971 'install 'wrap-totem
4972 (lambda* (#:key inputs outputs #:allow-other-keys)
4973 (let ((out (assoc-ref outputs "out"))
4974 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4975 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4976 (wrap-program (string-append out "/bin/totem")
4977 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4978 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4979 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4980 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4981 #t)))))
4982 (home-page "https://wiki.gnome.org/Apps/Videos")
4983 (synopsis "Simple media player for GNOME based on GStreamer")
4984 (description "Totem is a simple yet featureful media player for GNOME
4985which can read a large number of file formats.")
4986 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4987 ;; to be used and distributed together with GStreamer and Totem. See
4988 ;; file://COPYING in the source distribution for details.
4989 (license license:gpl2+)))
f0afb0c8
DH
4990
4991(define-public rhythmbox
4992 (package
4993 (name "rhythmbox")
eda580c0 4994 (version "3.4.4")
f0afb0c8
DH
4995 (source (origin
4996 (method url-fetch)
2588693d 4997 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 4998 (version-major+minor version) "/"
2588693d 4999 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
5000 (sha256
5001 (base32
eda580c0 5002 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
5003 (build-system glib-or-gtk-build-system)
5004 (arguments
5005 `(#:configure-flags
5006 (list "--enable-lirc"
5007 "--enable-python"
5008 "--enable-vala"
5009 "--with-brasero"
5010 "--with-gudev"
5011 "--with-libsecret")
5012 #:phases
5013 (modify-phases %standard-phases
5014 (add-after
5015 'install 'wrap-rhythmbox
5016 (lambda* (#:key inputs outputs #:allow-other-keys)
5017 (let ((out (assoc-ref outputs "out"))
5018 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5019 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5020 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5021 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5022 (wrap-program (string-append out "/bin/rhythmbox")
5023 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5024 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5025 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5026 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5027 #t)))))
5028 (propagated-inputs
5029 `(("dconf" ,dconf)))
5030 (native-inputs
bcb354ad
SB
5031 `(("itstool" ,itstool)
5032 ("intltool" ,intltool)
f0afb0c8
DH
5033 ("glib" ,glib "bin")
5034 ("gobject-introspection" ,gobject-introspection)
5035 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5036 ("pkg-config" ,pkg-config)
5037 ("xmllint" ,libxml2)))
f0afb0c8
DH
5038 (inputs
5039 `(("json-glib" ,json-glib)
5040 ("tdb" ,tdb)
5041 ("gnome-desktop" ,gnome-desktop)
5042 ("python" ,python)
5043 ("python-pygobject" ,python2-pygobject)
5044 ("vala" ,vala)
5045 ("gmime" ,gmime)
f0afb0c8
DH
5046 ("adwaita-icon-theme" ,adwaita-icon-theme)
5047 ("grilo" ,grilo)
5048 ("grilo-plugins" ,grilo-plugins)
5049 ("gstreamer" ,gstreamer)
5050 ("gst-plugins-base" ,gst-plugins-base)
5051 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5052 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5053 ("libgudev" ,libgudev)
f0afb0c8
DH
5054 ;;("libmtp" ,libmtp) FIXME: Not detected
5055 ("libsecret" ,libsecret)
5056 ("libsoup" ,libsoup)
5057 ("libnotify" ,libnotify)
5058 ("libpeas" ,libpeas)
5059 ("lirc" ,lirc)
5060 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5061 ;;("clutter" ,clutter)
5062 ;;("clutter-gtk" ,clutter-gtk)
5063 ;;("clutter-gst" ,clutter-gst)
5064 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5065 ("atk" ,atk)
5066 ("pango" ,pango)
5067 ("gtk+" ,gtk+)
5068 ;; TODO:
5069 ;; * libgpod
5070 ;; * mx
f0afb0c8
DH
5071 ("brasero" ,brasero)))
5072 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5073 (synopsis "Music player for GNOME")
5074 (description "Rhythmbox is a music playing application for GNOME. It
5075supports playlists, song ratings, and any codecs installed through gstreamer.")
5076 (license license:gpl2+)))
f70d8383
DH
5077
5078(define-public eog
5079 (package
5080 (name "eog")
0c9031fa 5081 (version "3.34.1")
f70d8383
DH
5082 (source (origin
5083 (method url-fetch)
5084 (uri (string-append "mirror://gnome/sources/" name "/"
5085 (version-major+minor version) "/"
5086 name "-" version ".tar.xz"))
5087 (sha256
5088 (base32
0c9031fa 5089 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5090 (build-system meson-build-system)
f70d8383 5091 (arguments
34c44a34
RW
5092 `(#:configure-flags
5093 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5094 (list (string-append "-Dc_link_args=-Wl,-rpath="
5095 (assoc-ref %outputs "out") "/lib/eog"))
5096 #:phases
f70d8383 5097 (modify-phases %standard-phases
7a034665
EF
5098 (add-after 'unpack 'skip-gtk-update-icon-cache
5099 ;; Don't create 'icon-theme.cache'.
5100 (lambda _
5101 (substitute* "meson_post_install.py"
5102 (("gtk-update-icon-cache") "true"))
5103 #t))
61fb581f
RW
5104 (add-after 'install 'wrap-eog
5105 (lambda* (#:key outputs #:allow-other-keys)
5106 (let ((out (assoc-ref outputs "out"))
5107 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5108 (wrap-program (string-append out "/bin/eog")
5109 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5110 #t)))))
f70d8383
DH
5111 (propagated-inputs
5112 `(("dconf" ,dconf)))
5113 (native-inputs
5114 `(("intltool" ,intltool)
b3546174 5115 ("itstool" ,itstool)
f70d8383
DH
5116 ("glib" ,glib "bin")
5117 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5118 ("pkg-config" ,pkg-config)
5119 ("xmllint" ,libxml2)))
f70d8383
DH
5120 (inputs
5121 `(("gnome-desktop" ,gnome-desktop)
5122 ("shared-mime-info" ,shared-mime-info)
5123 ("adwaita-icon-theme" ,adwaita-icon-theme)
5124 ("exempi" ,exempi)
5125 ("lcms" ,lcms)
5126 ("libexif" ,libexif)
5127 ("libpeas" ,libpeas)
4bd428a7 5128 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5129 ("librsvg" ,librsvg-next)
f70d8383
DH
5130 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5131 ("gtk+" ,gtk+)))
5132 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5133 (synopsis "GNOME image viewer")
5134 (description "Eye of GNOME is the GNOME image viewer. It
5135supports image conversion, rotation, and slideshows.")
5136 (license license:gpl2+)))
41af5e7b 5137
0c3f8cb8
LC
5138(define-public eog-plugins
5139 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5140 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5141 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5142 ;; 'XDG_DATA_DIRS' appropriately set.
5143 (package
5144 (name "eog-plugins")
54b74cc6 5145 (version "3.26.4")
0c3f8cb8
LC
5146 (source (origin
5147 (method url-fetch)
f3b88ed2 5148 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5149 (version-major+minor version) "/"
f3b88ed2 5150 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5151 (sha256
5152 (base32
54b74cc6 5153 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5154 (build-system gnu-build-system)
5155 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5156 (synopsis "Extensions for the Eye of GNOME image viewer")
5157 (native-inputs
5158 `(("pkg-config" ,pkg-config)
f2d97d57 5159 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5160 (inputs
5161 `(("eog" ,eog)
5162 ("glib" ,glib)
5163 ("gtk+" ,gtk+)
5164 ("libpeas" ,libpeas)
5165 ("libexif" ,libexif)
5166 ("libchamplain" ,libchamplain)))
5167 (description
5168 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5169notably:
5170
5171@itemize
5172@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5173@item @dfn{Map}, which displays a map of where the picture was taken on the
5174side panel;
5175@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5176@end itemize\n")
5177
5178 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5179 ;; long suspicious byte stream that goes to a
5180 ;; ".gresource.eog_postasa_plugin" ELF section.
5181 (license license:gpl2+)))
5182
41af5e7b
SB
5183(define-public libgudev
5184 (package
5185 (name "libgudev")
b78f5118 5186 (version "232")
41af5e7b
SB
5187 (source (origin
5188 (method url-fetch)
5189 (uri (string-append "mirror://gnome/sources/" name "/"
5190 version "/" name "-" version ".tar.xz"))
5191 (sha256
5192 (base32
b78f5118 5193 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5194 (build-system gnu-build-system)
b78f5118
RW
5195 (arguments
5196 '(#:configure-flags
5197 ;; umockdev depends on libgudev.
5198 (list "--disable-umockdev")))
41af5e7b
SB
5199 (native-inputs
5200 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5201 ("gobject-introspection" ,gobject-introspection)
5202 ("pkg-config" ,pkg-config)))
5203 (propagated-inputs
5204 `(("glib" ,glib))) ; required by gudev-1.0.pc
5205 (inputs
5206 `(("udev" ,eudev)))
5207 (home-page "https://wiki.gnome.org/Projects/libgudev")
5208 (synopsis "GObject bindings for libudev")
5209 (description
5210 "This library provides GObject bindings for libudev. It was originally
5211part of udev-extras, then udev, then systemd. It's now a project on its own.")
5212 (license license:lgpl2.1+)))
3dc8828f
SB
5213
5214(define-public gvfs
5215 (package
5216 (name "gvfs")
12fe4846 5217 (version "1.40.1")
3dc8828f
SB
5218 (source (origin
5219 (method url-fetch)
1d68eb32 5220 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5221 (version-major+minor version) "/"
1d68eb32 5222 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5223 (sha256
5224 (base32
12fe4846 5225 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5226 (build-system meson-build-system)
3dc8828f 5227 (arguments
e762d943
RW
5228 '(#:glib-or-gtk? #t
5229 #:configure-flags
5230 (list "-Dsystemduserunitdir=no"
5231 "-Dtmpfilesdir=no"
5232 ;; Otherwise, the RUNPATH will lack the final path component.
5233 (string-append "-Dc_link_args=-Wl,-rpath="
5234 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5235 (native-inputs
5236 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5237 ("gettext" ,gettext-minimal)
5238 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5239 ("pkg-config" ,pkg-config)
5240 ("xsltproc" ,libxslt)))
5241 (inputs
5242 `(("avahi" ,avahi)
5243 ("docbook-xml" ,docbook-xml-4.2)
5244 ("docbook-xsl" ,docbook-xsl)
5245 ("dbus" ,dbus)
e762d943 5246 ("elogind" ,elogind)
3dc8828f 5247 ("fuse" ,fuse)
24a78aa6 5248 ("gcr" ,gcr)
3dc8828f 5249 ("glib" ,glib)
e762d943 5250 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5251 ("libarchive" ,libarchive)
5252 ("libbluray" ,libbluray)
8852ca24 5253 ("libcap" ,libcap)
3dc8828f
SB
5254 ("libcdio-paranoia" ,libcdio-paranoia)
5255 ("libgcrypt" ,libgcrypt)
e762d943 5256 ("libgdata" ,libgdata)
3dc8828f
SB
5257 ("libgphoto2" ,libgphoto2)
5258 ("libgudev" ,libgudev)
0ab9f949 5259 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5260 ("libmtp" ,libmtp)
e762d943 5261 ("libnfs" ,libnfs)
3dc8828f
SB
5262 ("libsecret" ,libsecret)
5263 ("libsmbclient" ,samba)
5264 ("libsoup" ,libsoup)
5265 ("libxml2" ,libxml2)
e762d943 5266 ("openssh" ,openssh)
8852ca24 5267 ("polkit" ,polkit)
3dc8828f
SB
5268 ("udisks" ,udisks)))
5269 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5270 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5271 (description
8f65585b 5272 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5273abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5274to all applications using the GIO API. It also supports exposing the GVFS
5275mounts to non-GIO applications using FUSE.
5276
5277GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5278DAV, and others.")
5279 (license license:lgpl2.0+)))
7c88b6bd
AW
5280
5281(define-public gusb
5282 (package
5283 (name "gusb")
536b3274 5284 (version "0.3.0")
7c88b6bd 5285 (source (origin
bbfb36f9
EF
5286 (method git-fetch)
5287 (uri (git-reference
5288 (url "https://github.com/hughsie/libgusb.git")
5289 (commit version)))
5290 (file-name (git-file-name name version))
7c88b6bd
AW
5291 (sha256
5292 (base32
bbfb36f9 5293 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5294 (build-system meson-build-system)
7c88b6bd 5295 (native-inputs
536b3274 5296 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5297 ("pkg-config" ,pkg-config)
5298 ("vala" ,vala)
7c88b6bd
AW
5299 ("gtk-doc" ,gtk-doc)))
5300 (propagated-inputs
5301 ;; Both of these are required by gusb.pc.
5302 `(("glib" ,glib)
5303 ("libusb" ,libusb)))
5304 (arguments
536b3274 5305 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5306 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5307 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5308 (description
5309 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5310asynchronous control, bulk and interrupt transfers with proper cancellation
5311and integration into a mainloop. This makes it easy to integrate low level
5312USB transfers with your high-level application or system daemon.")
5313 (license license:lgpl2.1+)))
0abe1d86
AW
5314
5315(define-public simple-scan
5316 (package
5317 (name "simple-scan")
f9e5313c 5318 (version "3.36.2.1")
d9f6d587
TGR
5319 (source
5320 (origin
5321 (method url-fetch)
5322 (uri (string-append "mirror://gnome/sources/simple-scan/"
5323 (version-major+minor version) "/"
5324 "simple-scan-" version ".tar.xz"))
5325 (sha256
f9e5313c 5326 (base32 "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v"))))
d9f6d587
TGR
5327 (build-system meson-build-system)
5328 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5329 (arguments
5330 '(#:glib-or-gtk? #t))
0abe1d86
AW
5331 (inputs
5332 `(("gtk" ,gtk+)
5333 ("zlib" ,zlib)
5334 ("cairo" ,cairo)
c501f592 5335 ("colord" ,colord)
0abe1d86
AW
5336 ("gdk-pixbuf" ,gdk-pixbuf)
5337 ("gusb" ,gusb)
4c928743 5338 ("libsane" ,sane-backends)))
0abe1d86 5339 (native-inputs
b94a6ca0 5340 `(("gettext" ,gettext-minimal)
0abe1d86 5341 ("itstool" ,itstool)
c501f592 5342 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5343 ("pkg-config" ,pkg-config)
bcb354ad
SB
5344 ("vala" ,vala)
5345 ("xmllint" ,libxml2)))
dff0eedb 5346 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5347 (synopsis "Document and image scanner")
d9f6d587
TGR
5348 (description
5349 "Document Scanner is an easy-to-use application that lets you connect your
5350scanner and quickly capture images and documents in an appropriate format. It
5351supports any scanner for which a suitable SANE driver is available, which is
5352almost all of them.")
0abe1d86 5353 (license license:gpl3+)))
7549f984 5354
ab466d79
RW
5355(define-public eolie
5356 (package
5357 (name "eolie")
ed783404 5358 (version "0.9.98.1")
ab466d79
RW
5359 (source (origin
5360 (method url-fetch)
ed783404
RW
5361 (uri (string-append "https://adishatz.org/eolie/eolie-"
5362 version ".tar.xz"))
ab466d79
RW
5363 (sha256
5364 (base32
ed783404 5365 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5366 (build-system meson-build-system)
ab466d79 5367 (arguments
00014781
RW
5368 `(#:glib-or-gtk? #t
5369 #:phases
ab466d79 5370 (modify-phases %standard-phases
f0c68100
EF
5371 (add-after 'unpack 'skip-gtk-update-icon-cache
5372 ;; Don't create 'icon-theme.cache'.
5373 (lambda _
5374 (substitute* "meson_post_install.py"
5375 (("gtk-update-icon-cache") "true"))
5376 #t))
ab466d79
RW
5377 (add-after 'wrap 'wrap-more
5378 (lambda* (#:key inputs outputs #:allow-other-keys)
5379 (let* ((out (assoc-ref outputs "out"))
5380 ;; These libraries must be on LD_LIBRARY_PATH.
5381 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5382 "atk" "gtk+" "gsettings-desktop-schemas"
5383 "gobject-introspection"))
5384 (path (string-join
5385 (map (lambda (lib)
5386 (string-append (assoc-ref inputs lib) "/lib"))
5387 libs)
5388 ":")))
5389 (wrap-program (string-append out "/bin/eolie")
5390 `("LD_LIBRARY_PATH" ":" prefix (,path))
5391 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5392 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5393 #t)))))
5394 (native-inputs
f85ca6ed 5395 `(("intltool" ,intltool)
ab466d79 5396 ("itstool" ,itstool)
d95f1041 5397 ("pkg-config" ,pkg-config)
d95f1041 5398 ("python" ,python)
f0c68100 5399 ("glib:bin" ,glib "bin")))
ab466d79
RW
5400 (inputs
5401 `(("gobject-introspection" ,gobject-introspection)
5402 ("glib-networking" ,glib-networking)
5403 ("cairo" ,cairo)
5404 ("gtk+" ,gtk+)
5405 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5406 ("python" ,python-wrapper)
d72f76df 5407 ("python-dateutil" ,python-dateutil)
00014781 5408 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5409 ("python-pygobject" ,python-pygobject)
5410 ("python-pycairo" ,python-pycairo)
00014781 5411 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5412 ("libsecret" ,libsecret)
5413 ("gtkspell3" ,gtkspell3)
5414 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5415 ("webkitgtk" ,webkitgtk)))
166b2c97 5416 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5417 (synopsis "Web browser for GNOME")
5418 (description
5419 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5420a secret password store, an adblocker, and a modern UI.")
5421 (license license:gpl3+)))
5422
7549f984
SB
5423(define-public epiphany
5424 (package
5425 (name "epiphany")
68fdd237 5426 (version "3.34.4")
7549f984
SB
5427 (source (origin
5428 (method url-fetch)
dd3266ec 5429 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5430 (version-major+minor version) "/"
dd3266ec 5431 "epiphany-" version ".tar.xz"))
7549f984
SB
5432 (sha256
5433 (base32
68fdd237 5434 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
5435
5436 (build-system meson-build-system)
7549f984 5437 (arguments
20710b91 5438 '(#:glib-or-gtk? #t
bb7ff88f
EF
5439 #:phases
5440 (modify-phases %standard-phases
5441 (add-after 'unpack 'skip-gtk-update-icon-cache
5442 ;; Don't create 'icon-theme.cache'.
5443 (lambda _
5444 (substitute* "post_install.py"
5445 (("gtk-update-icon-cache") "true"))
20710b91
LP
5446 #t))
5447 (add-after 'unpack 'disable-failing-tests
5448 (lambda _
5449 (substitute* "tests/meson.build"
5450 ;; embed_shell fails, because webkitgtk apparently no longer supports
5451 ;; overriding the ftp schema
5452 ;; web_app_utils fails due to missing network access
5453 (("(embed_shell|web_app_utils)_test,")
5454 "find_program('sh'), args: ['-c', 'exit 77'],"))
5455 #t))
5456 (add-before 'check 'pre-check
5457 (lambda _
5458 ;; Tests require a running X server.
5459 (system "Xvfb :1 &")
5460 (setenv "DISPLAY" ":1")
bb7ff88f 5461 #t)))
e19f9c24
LF
5462 #:configure-flags
5463 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5464 (list (string-append "-Dc_link_args=-Wl,-rpath="
5465 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5466 (propagated-inputs
5467 `(("dconf" ,dconf)))
7549f984 5468 (native-inputs
fc5c5b92
R
5469 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5470 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5471 ("intltool" ,intltool)
7549f984 5472 ("itstool" ,itstool)
bcb354ad 5473 ("pkg-config" ,pkg-config)
20710b91
LP
5474 ("xmllint" ,libxml2)
5475 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
5476 (inputs
5477 `(("avahi" ,avahi)
5478 ("gcr" ,gcr)
fc5c5b92 5479 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5480 ("glib-networking" ,glib-networking)
5481 ("gnome-desktop" ,gnome-desktop)
5482 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5483 ("json-glib" ,json-glib)
7549f984 5484 ("iso-codes" ,iso-codes)
8748e29c 5485 ("libdazzle" ,libdazzle)
7549f984
SB
5486 ("libnotify" ,libnotify)
5487 ("libsecret" ,libsecret)
7549f984 5488 ("libxslt" ,libxslt)
fc5c5b92 5489 ("nettle" ,nettle) ; for hogweed
7549f984 5490 ("sqlite" ,sqlite)
f85ca6ed 5491 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5492 (home-page "https://wiki.gnome.org/Apps/Web")
5493 (synopsis "GNOME web browser")
5494 (description
5495 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5496principles are simplicity and standards compliance.")
5497 (license license:gpl2+)))
a3856b2c
SB
5498
5499(define-public d-feet
5500 (package
5501 (name "d-feet")
458e9221 5502 (version "0.3.14")
a3856b2c
SB
5503 (source (origin
5504 (method url-fetch)
5505 (uri (string-append "mirror://gnome/sources/" name "/"
5506 (version-major+minor version) "/"
5507 name "-" version ".tar.xz"))
5508 (sha256
5509 (base32
458e9221 5510 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5511 (build-system glib-or-gtk-build-system)
5512 (arguments
5513 '(#:out-of-source? #f ; tests need to run in the source directory.
5514 #:phases
5515 (modify-phases %standard-phases
5516 (add-before
5517 'check 'pre-check
86aff791 5518 (lambda _
a3856b2c
SB
5519 ;; The test suite requires a running X server.
5520 (system "Xvfb :1 &")
5521 (setenv "DISPLAY" ":1")
5522 ;; Don't fail on missing '/etc/machine-id'.
5523 (setenv "DBUS_FATAL_WARNINGS" "0")
5524 ;; tests.py and window.py don't meet E402:
5525 ;; E402 module level import not at top of file
5526 (substitute* "src/tests/Makefile"
86aff791
MW
5527 (("--ignore=E123") "--ignore=E123,E402"))
5528 #t))
a3856b2c
SB
5529 (add-after
5530 'install 'wrap-program
5531 (lambda* (#:key outputs #:allow-other-keys)
5532 (let ((prog (string-append (assoc-ref outputs "out")
5533 "/bin/d-feet")))
5534 (wrap-program prog
5535 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5536 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5537 #t))))))
a3856b2c
SB
5538 (native-inputs
5539 `(("intltool" ,intltool)
5540 ("itstool" ,itstool)
5541 ("pkg-config" ,pkg-config)
5542 ("python-pep8" ,python-pep8)
5543 ("xmllint" ,libxml2)
ff337525 5544 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5545 (inputs
5546 `(("gobject-introspection" ,gobject-introspection)
5547 ("gtk+" ,gtk+)
5548 ("python" ,python-wrapper)
458e9221 5549 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5550 ("python-pygobject" ,python-pygobject)))
5551 (home-page "https://wiki.gnome.org/Apps/DFeet")
5552 (synopsis "D-Bus debugger")
5553 (description
5554 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5555of running programs and invoke methods on those interfaces.")
5556 (license license:gpl2+)))
c3b97bd9
SB
5557
5558(define-public yelp-xsl
5559 (package
5560 (name "yelp-xsl")
632a9b32 5561 (version "3.34.2")
c3b97bd9
SB
5562 (source (origin
5563 (method url-fetch)
5564 (uri (string-append "mirror://gnome/sources/" name "/"
5565 (version-major+minor version) "/"
5566 name "-" version ".tar.xz"))
5567 (sha256
5568 (base32
632a9b32 5569 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5570 (build-system gnu-build-system)
5571 (native-inputs
632a9b32 5572 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5573 ("itstool" ,itstool)
5574 ("xmllint" ,libxml2)))
5575 (home-page "https://wiki.gnome.org/Apps/Yelp")
5576 (synopsis "XSL stylesheets for Yelp")
5577 (description
5578 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5579to format Docbook and Mallard documents.")
5580 (license license:gpl2+)))
de3d612a
SB
5581
5582(define-public yelp
5583 (package
5584 (name "yelp")
1f1b6d60 5585 (version "3.32.2")
de3d612a
SB
5586 (source (origin
5587 (method url-fetch)
5588 (uri (string-append "mirror://gnome/sources/" name "/"
5589 (version-major+minor version) "/"
5590 name "-" version ".tar.xz"))
5591 (sha256
5592 (base32
1f1b6d60 5593 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5594 (build-system glib-or-gtk-build-system)
5595 (native-inputs
5596 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5597 ("intltool" ,intltool)
5598 ("itstool" ,itstool)
5599 ("pkg-config" ,pkg-config)))
5600 (propagated-inputs
5601 `(("dconf" ,dconf)))
5602 (inputs
ad1b7d8b
SB
5603 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5604 ("libxslt" ,libxslt)
de3d612a 5605 ("sqlite" ,sqlite)
4c28ca1d
SB
5606 ("webkitgtk" ,webkitgtk)
5607 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5608 (home-page "https://wiki.gnome.org/Apps/Yelp")
5609 (synopsis "GNOME help browser")
5610 (description
5611 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5612man, info, and HTML documents. It can locate documents according to the
5613freedesktop.org help system specification.")
5614 (license license:gpl2+)))
122d0d10
SB
5615
5616(define-public yelp-tools
5617 (package
5618 (name "yelp-tools")
8fe8a42a 5619 (version "3.32.2")
122d0d10
SB
5620 (source (origin
5621 (method url-fetch)
5622 (uri (string-append "mirror://gnome/sources/" name "/"
5623 (version-major+minor version) "/"
5624 name "-" version ".tar.xz"))
5625 (sha256
5626 (base32
8fe8a42a 5627 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5628 (build-system gnu-build-system)
5629 (native-inputs
5630 `(("pkg-config" ,pkg-config)))
5631 (propagated-inputs
5632 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5633 `(("itstool" ,itstool)
5634 ("xmllint" ,libxml2)
5635 ("xsltproc" ,libxslt)))
5636 (inputs
5637 `(("yelp-xsl" ,yelp-xsl)))
5638 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5639 (synopsis "Yelp documentation tools")
5640 (description
5641 "Yelp-tools is a collection of scripts and build utilities to help create,
5642manage, and publish documentation for Yelp and the web. Most of the heavy
5643lifting is done by packages like yelp-xsl and itstool. This package just
5644wraps things up in a developer-friendly way.")
5645 (license license:gpl2+)))
af8f9f23
RW
5646
5647(define-public libgee
5648 (package
5649 (name "libgee")
9cedae2a 5650 (version "0.20.3")
af8f9f23
RW
5651 (source (origin
5652 (method url-fetch)
84a1b007 5653 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5654 (version-major+minor version) "/"
84a1b007 5655 "libgee-" version ".tar.xz"))
af8f9f23
RW
5656 (sha256
5657 (base32
9cedae2a 5658 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5659 (build-system gnu-build-system)
5660 (arguments
5661 `(#:phases
5662 (modify-phases %standard-phases
5663 (add-after 'unpack 'fix-introspection-install-dir
5664 (lambda* (#:key outputs #:allow-other-keys)
5665 (let ((out (assoc-ref outputs "out")))
5666 (substitute* "gee/Makefile.in"
5667 (("@INTROSPECTION_GIRDIR@")
5668 (string-append out "/share/gir-1.0/"))
5669 (("@INTROSPECTION_TYPELIBDIR@")
5670 (string-append out "/lib/girepository-1.0/")))))))))
5671 (native-inputs
5672 `(("glib" ,glib "bin")
5673 ("pkg-config" ,pkg-config)))
5674 (inputs
5675 `(("glib" ,glib)
5676 ("gobject-introspection" ,gobject-introspection)))
5677 (home-page "https://wiki.gnome.org/Projects/Libgee")
5678 (synopsis "GObject collection library")
5679 (description
5680 "Libgee is a utility library providing GObject-based interfaces and
5681classes for commonly used data structures.")
5682 (license license:lgpl2.1+)))
b0f9c4b8
RW
5683
5684(define-public gexiv2
5685 (package
5686 (name "gexiv2")
b1a8b408 5687 (version "0.12.0")
b0f9c4b8
RW
5688 (source (origin
5689 (method url-fetch)
5690 (uri (string-append "mirror://gnome/sources/" name "/"
5691 (version-major+minor version) "/"
5692 name "-" version ".tar.xz"))
5693 (sha256
5694 (base32
b1a8b408 5695 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5696 (build-system meson-build-system)
b0f9c4b8 5697 (native-inputs
b1a8b408
KK
5698 `(("gcr" ,gcr)
5699 ("glib" ,glib "bin")
5700 ("pkg-config" ,pkg-config)
5701 ("vala" ,vala)))
b0f9c4b8
RW
5702 (propagated-inputs
5703 ;; Listed in "Requires" section of gexiv2.pc
5704 `(("exiv2" ,exiv2)))
5705 (inputs
5706 `(("glib" ,glib)
5707 ("gobject-introspection" ,gobject-introspection)))
5708 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5709 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5710 (description
5711 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5712allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5713metadata in photo and video files of various formats.")
5714 (license license:gpl2+)))
fed5a689
RW
5715
5716(define-public shotwell
5717 (package
5718 (name "shotwell")
b82a45d8 5719 (version "0.30.9")
fed5a689
RW
5720 (source (origin
5721 (method url-fetch)
5497d682 5722 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5723 (version-major+minor version) "/"
5497d682 5724 "shotwell-" version ".tar.xz"))
fed5a689
RW
5725 (sha256
5726 (base32
b82a45d8 5727 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
3b79afa6
KK
5728 (build-system meson-build-system)
5729 (arguments
5a0beca3
EF
5730 '(#:glib-or-gtk? #t
5731 #:phases
5732 (modify-phases %standard-phases
5733 (add-after 'unpack 'skip-gtk-update-icon-cache
5734 (lambda _
5735 (substitute* "build-aux/meson/postinstall.py"
5736 (("gtk-update-icon-cache") (which "true"))
5737 (("update-desktop-database") (which "true")))
5738 #t)))))
735b8db6
TGR
5739 (propagated-inputs
5740 `(("dconf" ,dconf)))
fed5a689 5741 (native-inputs
5a0beca3
EF
5742 `(("gettext" ,gettext-minimal)
5743 ("glib:bin" ,glib "bin")
735b8db6 5744 ("itstool" ,itstool)
3b79afa6 5745 ("pkg-config" ,pkg-config)
735b8db6 5746 ("vala" ,vala)))
fed5a689 5747 (inputs
5a0beca3
EF
5748 `(("gcr" ,gcr)
5749 ("gexiv2" ,gexiv2)
fed5a689 5750 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5751 ("gstreamer" ,gstreamer)
5752 ("json-glib" ,json-glib)
dfb0323d 5753 ("libgdata" ,libgdata)
fed5a689 5754 ("libgee" ,libgee)
5a0beca3
EF
5755 ("libgphoto2" ,libgphoto2)
5756 ("libgudev" ,libgudev)
fed5a689 5757 ("libraw" ,libraw)
fed5a689
RW
5758 ("libsoup" ,libsoup)
5759 ("libxml2" ,libxml2)
5a0beca3
EF
5760 ("sqlite" ,sqlite)
5761 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5762 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5763 (synopsis "Photo manager for GNOME 3")
5764 (description
5765 "Shotwell is a digital photo manager designed for the GNOME desktop
5766environment. It allows you to import photos from disk or camera, organize
5767them by keywords and events, view them in full-window or fullscreen mode, and
5768share them with others via social networking and more.")
5769 (license license:lgpl2.1+)))
293ff8b2
DT
5770
5771(define-public file-roller
5772 (package
5773 (name "file-roller")
dcae4270 5774 (version "3.32.3")
293ff8b2
DT
5775 (source (origin
5776 (method url-fetch)
f89a27c6 5777 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5778 (version-major+minor version) "/"
f89a27c6 5779 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5780 (sha256
5781 (base32
dcae4270 5782 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5783 (build-system meson-build-system)
293ff8b2 5784 (native-inputs
0a500745
RW
5785 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5786 ("intltool" ,intltool)
4c96e5d1 5787 ("itstool" ,itstool)
0a500745
RW
5788 ("pkg-config" ,pkg-config)
5789 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5790 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5791 ;; TODO: Add libnautilus.
5792 (inputs
5793 `(("gtk+" ,gtk+)
5794 ("gdk-pixbuf" ,gdk-pixbuf)
5795 ("json-glib" ,json-glib)
5796 ("libarchive" ,libarchive)
5797 ("libnotify" ,libnotify)
4c96e5d1 5798 ("nettle" ,nettle)
293ff8b2
DT
5799 ("libxml2" ,libxml2)))
5800 (synopsis "Graphical archive manager for GNOME")
5801 (description "File Roller is an archive manager for the GNOME desktop
5802environment that allows users to view, unpack, and create compressed archives
5803such as gzip tarballs.")
5804 (home-page "http://fileroller.sourceforge.net/")
5805 (license license:gpl2+)))
7ce49365
SB
5806
5807(define-public gnome-session
5808 (package
5809 (name "gnome-session")
f67ce006 5810 (version "3.34.2")
7ce49365
SB
5811 (source (origin
5812 (method url-fetch)
5813 (uri (string-append "mirror://gnome/sources/" name "/"
5814 (version-major+minor version) "/"
5815 name "-" version ".tar.xz"))
5816 (sha256
5817 (base32
f67ce006 5818 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 5819 (arguments
df278071
RW
5820 '(#:glib-or-gtk? #t
5821 #:phases
2914af3c
AW
5822 (modify-phases %standard-phases
5823 (add-before 'configure 'pre-configure
5824 (lambda* (#:key outputs #:allow-other-keys)
5825 ;; Use elogind instead of systemd.
df278071
RW
5826 (substitute* "meson.build"
5827 (("libsystemd-login") "libelogind")
5828 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5829 (substitute* "gnome-session/gsm-systemd.c"
5830 (("#include <systemd/sd-login.h>")
5831 "#include <elogind/sd-login.h>"))
df278071 5832 ;; Remove uses of the systemd daemon.
803ab416
SB
5833 (substitute* "gnome-session/gsm-autostart-app.c"
5834 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5835 #t))
5836 (add-after 'install 'wrap-gnome-session
5837 (lambda* (#:key inputs outputs #:allow-other-keys)
5838 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5839 (let ((glib (assoc-ref inputs "glib:bin"))
5840 (out (assoc-ref outputs "out")))
5841 (wrap-program (string-append out "/bin/gnome-session")
5842 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5843 #t))))
6cbc8d57 5844
2914af3c 5845 #:configure-flags
df278071
RW
5846 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5847 "-Dman=false" ; FIXME: disabled because of docbook validation error
5848 "-Dsystemd_journal=false")))
5849 (build-system meson-build-system)
7ce49365
SB
5850 (native-inputs
5851 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5852 ("pkg-config" ,pkg-config)
5853 ("intltool" ,intltool)
df278071
RW
5854 ("xsltproc" ,libxslt)
5855 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5856 ("docbook-xsl" ,docbook-xsl)
5857 ("docbook-xml" ,docbook-xml)
5858 ("xmlto" ,xmlto)))
7ce49365 5859 (inputs
2914af3c
AW
5860 `(("elogind" ,elogind)
5861 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5862 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5863 ("gtk+" ,gtk+)
5864 ("json-glib" ,json-glib)
5865 ("libsm" ,libsm)
5866 ("libxcomposite" ,libxcomposite)
5867 ("libxtst" ,libxtst)
5868 ("mesa" ,mesa)
5869 ("upower" ,upower)
5870 ("xtrans" ,xtrans)))
5871 (synopsis "Session manager for GNOME")
5872 (description
5873 "This package contains the GNOME session manager, as well as a
5874configuration program to choose applications starting on login.")
5875 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5876 (license license:gpl2+)))
f47ba77e
SB
5877
5878(define-public gjs
5879 (package
5880 (name "gjs")
76e1830c 5881 (version "1.58.3")
f47ba77e
SB
5882 (source (origin
5883 (method url-fetch)
5884 (uri (string-append "mirror://gnome/sources/" name "/"
5885 (version-major+minor version) "/"
5886 name "-" version ".tar.xz"))
5887 (sha256
5888 (base32
76e1830c 5889 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
5890 (build-system gnu-build-system)
5891 (arguments
5892 '(#:phases
5893 (modify-phases %standard-phases
5894 (add-before
5895 'check 'pre-check
5896 (lambda _
fc119619
MW
5897 ;; The test suite requires a running X server.
5898 (system "Xvfb :1 &")
5899 (setenv "DISPLAY" ":1")
5900
f47ba77e
SB
5901 ;; For the missing /etc/machine-id.
5902 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5903
144f94d0
KK
5904 ;; Our mozjs-38 package does not compile the required Intl API
5905 ;; support for these failing tests.
5906 (substitute* "installed-tests/js/testLocale.js"
5907 ((".*toBeDefined.*") "")
5908 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5909 (substitute* "installed-tests/scripts/testCommandLine.sh"
5910 (("Valentín") "")
5911 (("☭") ""))
f47ba77e
SB
5912 #t)))))
5913 (native-inputs
8a831c6f 5914 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5915 ("pkg-config" ,pkg-config)
5916 ("xmllint" ,libxml2)
5917 ;; For testing
5918 ("dbus-launch" ,dbus)
76e1830c 5919 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 5920 ("uuidgen" ,util-linux)
ebebee94 5921 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5922 (propagated-inputs
5923 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5924 `(("cairo" ,cairo)
5925 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5926 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5927 (inputs
5928 `(("gtk+" ,gtk+)
5929 ("readline" ,readline)))
5930 (synopsis "Javascript bindings for GNOME")
f032d0be 5931 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5932 (description
5933 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5934javascript engine and the GObject introspection framework.")
5935 (license license:gpl2+)))
329d731b
DH
5936
5937(define-public gedit
5938 (package
5939 (name "gedit")
edec7128 5940 (version "3.34.1")
329d731b
DH
5941 (source (origin
5942 (method url-fetch)
5943 (uri (string-append "mirror://gnome/sources/" name "/"
5944 (version-major+minor version) "/"
5945 name "-" version ".tar.xz"))
5946 (sha256
5947 (base32
edec7128 5948 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 5949 (build-system meson-build-system)
329d731b 5950 (arguments
480c9226
KK
5951 `(#:glib-or-gtk? #t
5952 #:configure-flags
5953 ;; Otherwise, the RUNPATH will lack the final path component.
5954 (list (string-append "-Dc_link_args=-Wl,-rpath="
5955 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5956
5957 ;; XXX: Generated .h files are sometimes used before being built.
5958 #:parallel-build? #f
5959
480c9226 5960 #:phases
329d731b 5961 (modify-phases %standard-phases
480c9226
KK
5962 (add-after 'unpack 'skip-gtk-update-icon-cache
5963 ;; Don't create 'icon-theme.cache'.
5964 (lambda _
5965 (substitute* "build-aux/meson/post_install.py"
5966 (("gtk-update-icon-cache") (which "true")))
5967 #t))
5968 (add-after 'unpack 'patch-libgd-fetch
5969 (lambda* (#:key inputs #:allow-other-keys)
5970 (let ((libgd (assoc-ref inputs "libgd")))
5971 ;; Calling git is unnecessary because libgd is fetched as a
5972 ;; native input to this package.
5973 (substitute* "meson.build"
5974 ((".*git.*") ""))
5975 (copy-recursively libgd "subprojects/libgd")
5976 #t)))
5977 (add-after 'install 'wrap-gedit
5978 (lambda* (#:key inputs outputs #:allow-other-keys)
5979 (let ((out (assoc-ref outputs "out"))
5980 (gtksourceview (assoc-ref inputs "gtksourceview"))
5981 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5982 (python-path (getenv "PYTHONPATH")))
5983 (wrap-program (string-append out "/bin/gedit")
5984 ;; For plugins.
5985 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5986 `("PYTHONPATH" ":" prefix (,python-path))
5987 ;; For language-specs.
5988 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5989 "/share")))))
5990 #t)))))
329d731b
DH
5991 (propagated-inputs
5992 `(("dconf" ,dconf)))
5993 (native-inputs
480c9226
KK
5994 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5995 ("intltool" ,intltool)
b3546174 5996 ("itstool" ,itstool)
480c9226 5997 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5998 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5999 ("libgd"
6000 ,(origin
6001 (method git-fetch)
6002 (uri (git-reference
6003 (url "https://gitlab.gnome.org/GNOME/libgd")
6004 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6005 (file-name (git-file-name "libgd" version))
6006 (sha256
6007 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6008 ("pkg-config" ,pkg-config)))
6009 (inputs
6010 `(("glib" ,glib)
0d2df50c 6011 ("gspell" ,gspell)
329d731b 6012 ("gtk+" ,gtk+)
480c9226 6013 ("gtksourceview" ,gtksourceview)
329d731b
DH
6014 ("libpeas" ,libpeas)
6015 ("libxml2" ,libxml2)
329d731b
DH
6016 ("iso-codes" ,iso-codes)
6017 ("python-pygobject" ,python-pygobject)
6018 ("python" ,python)
6019 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6020 ("libx11" ,libx11)
6021 ("vala" ,vala)
6022 ("adwaita-icon-theme" ,adwaita-icon-theme)
6023 ("libsoup" ,libsoup)
6024 ("gnome-desktop" ,gnome-desktop)))
6025 (home-page "https://wiki.gnome.org/Apps/Gedit")
6026 (synopsis "GNOME text editor")
6027 (description "While aiming at simplicity and ease of use, gedit is a
6028powerful general purpose text editor.")
6029 (license license:gpl2+)))
b7179363
SB
6030
6031(define-public zenity
6032 (package
6033 (name "zenity")
4f581bd0 6034 (version "3.32.0")
b7179363
SB
6035 (source (origin
6036 (method url-fetch)
5958df04 6037 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6038 (version-major+minor version) "/"
5958df04 6039 "zenity-" version ".tar.xz"))
b7179363
SB
6040 (sha256
6041 (base32
4f581bd0 6042 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6043 (build-system gnu-build-system)
6044 (native-inputs
b94a6ca0 6045 `(("gettext" ,gettext-minimal)
b7179363
SB
6046 ("itstool" ,itstool)
6047 ("pkg-config" ,pkg-config)))
6048 (inputs
6049 `(("libnotify" ,libnotify)
6050 ("webkitgtk" ,webkitgtk)))
6051 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6052 (home-page "https://www.gnome.org")
b7179363
SB
6053 (description
6054 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6055to display dialog boxes from the commandline and shell scripts.")
6056 (license license:lgpl2.0+)))
60c3627c
SB
6057
6058(define-public mutter
6059 (package
6060 (name "mutter")
ec3ceabd 6061 (version "3.34.2")
60c3627c 6062 (source (origin
86c44e72
KK
6063 (method url-fetch)
6064 (uri (string-append "mirror://gnome/sources/" name "/"
6065 (version-major+minor version) "/"
6066 name "-" version ".tar.xz"))
60c3627c
SB
6067 (sha256
6068 (base32
ec3ceabd 6069 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6070 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6071 ;; versions of cogl and clutter. As a result, many of the inputs,
6072 ;; propagated-inputs, and configure flags used in cogl and clutter are
6073 ;; needed here as well.
edf43f68 6074 (build-system meson-build-system)
60c3627c 6075 (arguments
edf43f68
KK
6076 '(;; XXX: All mutter tests fail with the following error:
6077 ;; Settings schema 'org.gnome.mutter' is not installed
6078 #:tests? #f
6079 #:glib-or-gtk? #t
6080 #:configure-flags
ec3ceabd
KK
6081 ;; TODO: Enable profiler when Sysprof is packaged.
6082 (list "-Dprofiler=false"
6083 ;; Otherwise, the RUNPATH will lack the final path component.
6084 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6085 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6086 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6087
6088 ;; The following flags are needed for the bundled clutter
edf43f68 6089 (string-append "-Dxwayland_path="
d633f2f6
RH
6090 (assoc-ref %build-inputs "xorg-server-xwayland")
6091 "/bin/Xwayland")
6092
a88d5a0c 6093 ;; the remaining flags are needed for the bundled cogl
edf43f68 6094 (string-append "-Dopengl_libname="
a88d5a0c 6095 (assoc-ref %build-inputs "mesa")
ec3ceabd 6096 "/lib/libGL.so"))))
60c3627c 6097 (native-inputs
ec3ceabd
KK
6098 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6099 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6100 ("gobject-introspection" ,gobject-introspection)
6101 ("intltool" ,intltool)
f23052a6 6102 ("pkg-config" ,pkg-config)
edf43f68 6103 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6104 ;; For git build
6105 ("autoconf" ,autoconf)
6106 ("automake" ,automake)
6107 ("libtool" ,libtool)))
60c3627c 6108 (propagated-inputs
a88d5a0c
MW
6109 `(;; libmutter.pc refers to these:
6110 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6111 ("gtk+" ,gtk+)
6112 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6113 ("atk" ,atk)
6114 ("cairo" ,cairo)
6115 ("gdk-pixbuf" ,gdk-pixbuf)
6116 ("glib" ,glib)
a88d5a0c
MW
6117 ("json-glib" ,json-glib)
6118 ("libinput" ,libinput)
6119 ("libx11" ,libx11)
6120 ("libxcomposite" ,libxcomposite)
6121 ("libxdamage" ,libxdamage)
6122 ("libxext" ,libxext)
6123 ("libxfixes" ,libxfixes)
6124 ("libxkbcommon" ,libxkbcommon)
6125 ("libxrandr" ,libxrandr)
6126 ("mesa" ,mesa)
6127 ("pango" ,pango)
6128 ("udev" ,eudev)
a88d5a0c 6129 ("xinput" ,xinput)))
60c3627c 6130 (inputs
86c44e72
KK
6131 `(("elogind" ,elogind)
6132 ("gnome-desktop" ,gnome-desktop)
edf43f68 6133 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6134 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6135 ("libgudev" ,libgudev)
60c3627c
SB
6136 ("libice" ,libice)
6137 ("libsm" ,libsm)
edf43f68 6138 ("libwacom" ,libwacom)
60c3627c 6139 ("libxkbfile" ,libxkbfile)
a88d5a0c 6140 ("libxrandr" ,libxrandr)
86c44e72 6141 ("libxtst" ,libxtst)
edf43f68 6142 ("pipewire" ,pipewire)
60c3627c
SB
6143 ("startup-notification" ,startup-notification)
6144 ("upower-glib" ,upower)
6145 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6146 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6147 ("zenity" ,zenity)))
6148 (synopsis "Window and compositing manager")
f032d0be 6149 (home-page "https://www.gnome.org")
60c3627c
SB
6150 (description
6151 "Mutter is a window and compositing manager that displays and manages your
6152desktop via OpenGL. Mutter combines a sophisticated display engine using the
6153Clutter toolkit with solid window-management logic inherited from the Metacity
6154window manager.")
86c44e72 6155 (license license:gpl2+)))
685cee87
SB
6156
6157(define-public gnome-online-accounts
6158 (package
6159 (name "gnome-online-accounts")
dd233e4d 6160 (version "3.36.0")
685cee87
SB
6161 (source (origin
6162 (method url-fetch)
6163 (uri (string-append "mirror://gnome/sources/" name "/"
6164 (version-major+minor version) "/"
6165 name "-" version ".tar.xz"))
6166 (sha256
6167 (base32
dd233e4d 6168 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6169 (outputs '("out" "lib"))
685cee87 6170 (build-system glib-or-gtk-build-system)
14c297fd
TS
6171 (arguments
6172 `(#:configure-flags
6173 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6174 #:phases
6175 (modify-phases %standard-phases
6176 (add-before 'configure 'patch-libgoa-output
6177 (lambda* (#:key outputs #:allow-other-keys)
6178 (let ((lib (assoc-ref outputs "lib")))
6179 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6180 (("@prefix@") lib)
6181 (("@exec_prefix@") lib)
6182 (("@libdir@") (string-append lib "/lib"))
6183 (("@includedir@") (string-append lib "/include"))
6184 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6185 ;; Make sure gobject-introspection knows about the output
6186 ;; too (see <https://bugs.gnu.org/36535>).
6187 (setenv "outputs" "out lib")
14c297fd 6188 #t))))))
685cee87
SB
6189 (native-inputs
6190 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6191 ("gobject-introspection" ,gobject-introspection)
6192 ("intltool" ,intltool)
6193 ("pkg-config" ,pkg-config)
ebb2873d 6194 ("vala" ,vala)
685cee87
SB
6195 ("xsltproc" ,libxslt)))
6196 (propagated-inputs
6197 `(("glib" ,glib) ; required by goa-1.0.pc
6198 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6199 (inputs
6200 `(("docbook-xsl" ,docbook-xsl)
6201 ("json-glib" ,json-glib)
6202 ("libsecret" ,libsecret)
6203 ("rest" ,rest)
685cee87
SB
6204 ("webkitgtk" ,webkitgtk)))
6205 (synopsis "Single sign-on framework for GNOME")
6206 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6207 (description
6208 "GNOME Online Accounts provides interfaces so that applications and
6209libraries in GNOME can access the user's online accounts. It has providers for
6210Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6211Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6212 (license license:lgpl2.0+)))
df217748
SB
6213
6214(define-public evolution-data-server
6215 (package
6216 (name "evolution-data-server")
162048be 6217 (version "3.34.2")
df217748
SB
6218 (source (origin
6219 (method url-fetch)
6220 (uri (string-append "mirror://gnome/sources/" name "/"
6221 (version-major+minor version) "/"
6222 name "-" version ".tar.xz"))
43190ac6
MB
6223 (patches (search-patches "evolution-data-server-locales.patch"
6224 "evolution-data-server-libical-compat.patch"))
df217748
SB
6225 (sha256
6226 (base32
162048be 6227 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 6228 (build-system cmake-build-system)
df217748 6229 (arguments
b468eedc
RW
6230 '(#:configure-flags
6231 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6232 (runpaths (map (lambda (s)
6233 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6234 '("addressbook-backends" "calendar-backends"
6235 "camel-providers" "credential-modules"
6236 "registry-modules"))))
6237 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6238 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6239 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6240 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6241 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6242 (string-append lib "/evolution-data-server;")
6243 (string-join runpaths ";"))
6244 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6245 #:phases
6246 (modify-phases %standard-phases
b468eedc
RW
6247 (add-after 'unpack 'disable-failing-tests
6248 (lambda _
6249 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6250 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6251 (delete-file-recursively "tests/book-migration")
6252 (substitute* "tests/CMakeLists.txt"
6253 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 6254 #t))
743aebd7 6255 (add-after 'unpack 'patch-paths
df217748 6256 (lambda _
b468eedc
RW
6257 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6258 "tests/libedata-book/data-test-utils.c"
6259 "tests/libedata-book/test-book-cache-utils.c"
6260 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6261 (("/bin/rm") (which "rm")))
ac033c7b
MB
6262 #t))
6263 (add-before 'configure 'dont-override-rpath
6264 (lambda _
6265 (substitute* "CMakeLists.txt"
6266 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6267 ;; Remove it so the configure flag is respected.
6268 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6269 #t)))))
df217748
SB
6270 (native-inputs
6271 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6272 ("gobject-introspection" ,gobject-introspection)
6273 ("gperf" ,gperf)
6274 ("intltool" ,intltool)
6275 ("pkg-config" ,pkg-config)
a73c1cf8 6276 ("vala" ,vala)
743aebd7 6277 ("python" ,python-wrapper)))
df217748
SB
6278 (propagated-inputs
6279 ;; These are all in the Requires field of .pc files.
6280 `(("gtk+" ,gtk+)
6281 ("libical" ,libical)
6282 ("libsecret" ,libsecret)
6283 ("libsoup" ,libsoup)
6284 ("nss" ,nss)
6285 ("sqlite" ,sqlite)))
6286 (inputs
6287 `(("bdb" ,bdb)
6288 ("gcr" ,gcr)
14c297fd 6289 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6290 ("json-glib" ,json-glib)
b468eedc 6291 ("libcanberra" ,libcanberra)
743aebd7
MB
6292 ("libgweather" ,libgweather)
6293 ("mit-krb5" ,mit-krb5)
891199c6
MW
6294 ("openldap" ,openldap)
6295 ("webkitgtk" ,webkitgtk)))
df217748
SB
6296 (synopsis "Store address books and calendars")
6297 (home-page "https://wiki.gnome.org/Apps/Evolution")
6298 (description
6299 "This package provides a unified backend for programs that work with
6300contacts, tasks, and calendar information. It was originally developed for
6301Evolution (hence the name), but is now used by other packages as well.")
6302 (license license:lgpl2.0)))
bd7dfafa
SB
6303
6304(define-public caribou
6305 (package
6306 (name "caribou")
fe964bb5 6307 (version "0.4.21")
bd7dfafa
SB
6308 (source (origin
6309 (method url-fetch)
6310 (uri (string-append "mirror://gnome/sources/" name "/"
6311 (version-major+minor version) "/"
6312 name "-" version ".tar.xz"))
6313 (sha256
6314 (base32
fe964bb5 6315 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6316 (build-system glib-or-gtk-build-system)
6317 (arguments
6318 '(#:phases
6319 (modify-phases %standard-phases
6320 (add-before
6321 'build 'pre-build
6322 (lambda* (#:key outputs #:allow-other-keys)
6323 (let ((out (assoc-ref outputs "out")))
6324 ;; Use absolute shared library path in Caribou-1.0.typelib.
6325 (substitute* "libcaribou/Makefile"
6326 (("--shared-library=libcaribou.so")
6327 (string-append "--shared-library="
6328 out "/lib/libcaribou.so")))
6329 #t)))
6330 (add-after 'install 'wrap-programs
6331 (lambda* (#:key outputs #:allow-other-keys)
6332 (let* ((out (assoc-ref outputs "out"))
6333 (python-path (getenv "PYTHONPATH"))
6334 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6335 (for-each
6336 (lambda (prog)
6337 (wrap-program prog
6338 `("PYTHONPATH" ":" prefix (,python-path))
6339 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6340 (list (string-append out "/bin/caribou-preferences")
6341 (string-append out "/libexec/antler-keyboard"))))
6342 #t)))))
6343 (native-inputs
6344 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6345 ("gobject-introspection" ,gobject-introspection)
6346 ("intltool" ,intltool)
6347 ("pkg-config" ,pkg-config)
9f7f5ba2 6348 ("python" ,python)
bd7dfafa
SB
6349 ("vala" ,vala)
6350 ("xsltproc" ,libxslt)))
6351 (propagated-inputs
6352 ;; caribou-1.0.pc refers to all these.
6353 `(("libgee" ,libgee)
6354 ("libxklavier" ,libxklavier)
6355 ("libxtst" ,libxtst)
6356 ("gtk+" ,gtk+)))
6357 (inputs
6358 `(("clutter" ,clutter)
6359 ("dconf" ,dconf)
6360 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6361 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6362 (synopsis "Text entry and UI navigation application")
6363 (home-page "https://wiki.gnome.org/Projects/Caribou")
6364 (description
6365 "Caribou is an input assistive technology intended for switch and pointer
6366users.")
6367 (license license:lgpl2.1)))
ba5dd105 6368
ba5dd105
SB
6369(define-public network-manager
6370 (package
6371 (name "network-manager")
01c22be7 6372 (version "1.24.0")
ba5dd105
SB
6373 (source (origin
6374 (method url-fetch)
6375 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6376 (version-major+minor version) "/"
6377 "NetworkManager-" version ".tar.xz"))
8d0548fd 6378 (patches (search-patches "network-manager-plugin-path.patch"))
ba5dd105
SB
6379 (sha256
6380 (base32
01c22be7 6381 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
02710a9b 6382 (modules '((guix build utils)))
fd070f35 6383 (snippet
02710a9b
RW
6384 '(begin
6385 (substitute* "src/devices/wwan/nm-modem-manager.c"
6386 (("systemd") "elogind"))
6387 #t))))
255ff74f 6388 (build-system meson-build-system)
ba5dd105
SB
6389 (outputs '("out"
6390 "doc")) ; 8 MiB of gtk-doc HTML
6391 (arguments
255ff74f 6392 `(#:configure-flags
ba5dd105 6393 (let ((out (assoc-ref %outputs "out"))
ba5dd105
SB
6394 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6395 "/sbin/dhclient")))
255ff74f
BW
6396 (list
6397 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6398 ;; component.
6399 (string-append "-Dc_link_args=-Wl,-rpath="
6400 out "/lib:"
6401 out "/lib/NetworkManager/" ,version)
6402 "-Dsystemd_journal=false"
6403 "-Dsession_tracking=elogind"
6404 "-Dsuspend_resume=elogind"
6405 "-Dsystemdsystemunitdir=no"
6406 "-Dsession_tracking_consolekit=false"
6407 "-Ddhcpcd=no"
6408 "-Ddhcpcanon=no"
6409 "-Dcrypto=gnutls"
6410 "-Diwd=true"
6411 "-Dlibaudit=yes"
6412 "-Dqt=false"
6413 "-Ddocs=true"
6414 "--sysconfdir=/etc"
6415 "--localstatedir=/var"
6416 (string-append "-Dudev_dir="
6417 out "/lib/udev")
6418 (string-append "-Ddbus_conf_dir="
6419 out "/etc/dbus-1/system.d")
6420
6421 (string-append "-Ddhclient=" dhclient)))
ba5dd105
SB
6422 #:phases
6423 (modify-phases %standard-phases
b4f59d87
AW
6424 (add-before 'configure 'pre-configure
6425 (lambda _
6426 ;; These tests try to test aspects of network-manager's
6427 ;; functionality within restricted containers, but they don't
6428 ;; cope with being already in the Guix build jail as that jail
6429 ;; lacks some features that they would like to proxy over (like
6430 ;; a /sys mount).
255ff74f
BW
6431 (substitute* "src/platform/tests/meson.build"
6432 ((".*test-address-linux.*") "")
6433 ((".*test-cleanup-linux.*") "")
6434 ((".*test-link-linux.*") "")
6435 ((".*test-route-linux.*") ""))
6436 (substitute* "src/devices/tests/meson.build"
6437 ((".*test-acd.*") "")
6438 ((".*test-lldp.*") ""))
45f80fce 6439 #t))
255ff74f
BW
6440 (add-after 'unpack 'patch-docbook-xml
6441 (lambda* (#:key inputs #:allow-other-keys)
6442 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6443 "/xml/dtd/docbook")))
6444 (substitute* (find-files "." ".*\\.(xsl|xml)")
6445 (("http://.*/docbookx\\.dtd")
6446 (string-append xmldoc "/docbookx.dtd")))
6447 #t)))
ba5dd105
SB
6448 (add-before 'check 'pre-check
6449 (lambda _
6450 ;; For the missing /etc/machine-id.
6451 (setenv "DBUS_FATAL_WARNINGS" "0")
6452 #t))
255ff74f
BW
6453 (add-before 'install 'no-polkit-magic
6454 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
ba5dd105 6455 (lambda _
255ff74f
BW
6456 (setenv "PKEXEC_UID" "something")
6457 #t))
6458 (add-after 'install 'move-doc
6459 (lambda* (#:key outputs #:allow-other-keys)
6460 (let ((out (assoc-ref outputs "out"))
6461 (doc (assoc-ref outputs "doc")))
6462 (mkdir-p (string-append doc "/share"))
6463 (for-each (lambda (directory)
6464 (copy-recursively (string-append out directory)
6465 (string-append doc directory))
6466 (delete-file-recursively
6467 (string-append out directory)))
6468 '("/share/doc" "/share/gtk-doc"))
6469 #t))))))
b93502d6
DC
6470 (propagated-inputs
6471 `(("glib" ,glib)))
ba5dd105 6472 (native-inputs
255ff74f
BW
6473 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6474 ("gtk-doc" ,gtk-doc)
ba5dd105 6475 ("gobject-introspection" ,gobject-introspection)
255ff74f 6476 ("docbook-xml" ,docbook-xml)
d04687dc 6477 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6478 ("intltool" ,intltool)
d04687dc
HG
6479 ("libxslt" ,libxslt)
6480 ("libxml2" ,libxml2)
ba5dd105 6481 ("pkg-config" ,pkg-config)
255ff74f 6482 ("vala" ,vala)
ba5dd105
SB
6483 ;; For testing.
6484 ("python" ,python-wrapper)
6485 ("python-dbus" ,python-dbus)
6486 ("python-pygobject" ,python-pygobject)))
6487 (inputs
255ff74f 6488 `(("curl" ,curl)
856ca567
KK
6489 ("cyrus-sasl" ,cyrus-sasl)
6490 ("dbus-glib" ,dbus-glib)
ba5dd105 6491 ("dnsmasq" ,dnsmasq)
856ca567 6492 ("eudev" ,eudev)
ba5dd105
SB
6493 ("gnutls" ,gnutls)
6494 ("iptables" ,iptables)
6495 ("isc-dhcp" ,isc-dhcp)
c2f236fa 6496 ("iwd" ,iwd) ; wpa_supplicant alternative
d04687dc 6497 ("jansson" ,jansson)
c2f236fa 6498 ("libaudit" ,audit)
ba5dd105
SB
6499 ("libgcrypt" ,libgcrypt)
6500 ("libgudev" ,libgudev)
6501 ("libndp" ,libndp)
6502 ("libnl" ,libnl)
6503 ("libsoup" ,libsoup)
255ff74f 6504 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
142bdcbc 6505 ("modem-manager" ,modem-manager)
c27e02bf 6506 ("newt" ,newt) ;for the 'nmtui' console interface
c2f236fa 6507 ("openresolv" ,openresolv) ; alternative resolv.conf manager
ba5dd105
SB
6508 ("polkit" ,polkit)
6509 ("ppp" ,ppp)
6510 ("readline" ,readline)
fd070f35
CM
6511 ("util-linux" ,util-linux)
6512 ("elogind" ,elogind)))
ba5dd105 6513 (synopsis "Network connection manager")
8d0548fd 6514 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
ba5dd105
SB
6515 (description
6516 "NetworkManager is a system network service that manages your network
6517devices and connections, attempting to keep active network connectivity when
6518available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6519devices, and provides VPN integration with a variety of different VPN
6520services.")
255ff74f
BW
6521 ;; “This NetworkManager project consists of the daemon, client tools, and
6522 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6523 ;; GPL-2.0+.”
6524 (license (list license:gpl2+
6525 license:lgpl2.1+))
29d2f451 6526 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6527
f2b96b3a
LC
6528(define-public network-manager-openvpn
6529 (package
6530 (name "network-manager-openvpn")
3fe368c0 6531 (version "1.8.12")
f2b96b3a
LC
6532 (source (origin
6533 (method url-fetch)
6534 (uri (string-append
6535 "mirror://gnome/sources/NetworkManager-openvpn/"
6536 (version-major+minor version)
6537 "/NetworkManager-openvpn-" version ".tar.xz"))
6538 (sha256
6539 (base32
3fe368c0 6540 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
f2b96b3a
LC
6541 (build-system gnu-build-system)
6542 (arguments
633422b0
JL
6543 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6544 #:phases
6545 (modify-phases %standard-phases
6546 (add-after 'configure 'patch-path
6547 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6548 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6549 "/sbin/openvpn"))
6550 (modprobe (string-append (assoc-ref inputs "kmod")
6551 "/bin/modprobe"))
6552 (pretty-ovpn (string-append "\"" ovpn "\"")))
6553 (for-each
6554 (lambda (file)
6555 (substitute* file
6556 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6557 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6558 (("\"/sbin/openvpn\"") pretty-ovpn)
6559 (("/sbin/modprobe") modprobe)))
6560 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6561 #t)))))
f2b96b3a
LC
6562 (native-inputs
6563 `(("pkg-config" ,pkg-config)
6564 ("intltool" ,intltool)))
6565 (inputs
6566 `(("gtk+" ,gtk+)
633422b0 6567 ("kmod" ,kmod)
f2b96b3a
LC
6568 ("openvpn" ,openvpn)
6569 ("network-manager" ,network-manager)
3fe368c0 6570 ("libnma" ,libnma)
f2b96b3a
LC
6571 ("libsecret" ,libsecret)))
6572 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6573 (synopsis "OpenVPN plug-in for NetworkManager")
6574 (description
6575 "This extension of NetworkManager allows it to take care of connections
6576to virtual private networks (VPNs) via OpenVPN.")
6577 (license license:gpl2+)
6578 (properties `((upstream-name . "NetworkManager-openvpn")))))
6579
d376129f
JL
6580(define-public network-manager-vpnc
6581 (package
6582 (name "network-manager-vpnc")
6583 (version "1.2.6")
6584 (source (origin
6585 (method url-fetch)
6586 (uri (string-append
6587 "mirror://gnome/sources/NetworkManager-vpnc/"
6588 (version-major+minor version)
6589 "/NetworkManager-vpnc-" version ".tar.xz"))
6590 (sha256
6591 (base32
6592 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6593 (build-system gnu-build-system)
6594 (arguments
7c43b78d
BW
6595 `(#:configure-flags '("--enable-absolute-paths"
6596 "--localstatedir=/var"
6597 ;; libnm-glib has been removed from network-manager
6598 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6599 "--with-libnm-glib=no")
d376129f
JL
6600 #:phases
6601 (modify-phases %standard-phases
6602 (add-after 'configure 'patch-path
6603 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6604 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6605 "/sbin/vpnc"))
6606 (modprobe (string-append (assoc-ref inputs "kmod")
6607 "/bin/modprobe"))
6608 (pretty-ovpn (string-append "\"" vpnc "\"")))
6609 (substitute* "src/nm-vpnc-service.c"
6610 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6611 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6612 (("\"/sbin/vpnc\"") pretty-ovpn)
6613 (("/sbin/modprobe") modprobe)))
6614 #t)))))
6615 (native-inputs
6616 `(("pkg-config" ,pkg-config)
6617 ("intltool" ,intltool)))
6618 (inputs
6619 `(("gtk+" ,gtk+)
6620 ("kmod" ,kmod)
6621 ("vpnc" ,vpnc)
6622 ("network-manager" ,network-manager)
7c43b78d 6623 ("libnma" ,libnma)
d376129f
JL
6624 ("libsecret" ,libsecret)))
6625 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6626 (synopsis "VPNC plug-in for NetworkManager")
6627 (description
6628 "Support for configuring virtual private networks based on VPNC.
6629Compatible with Cisco VPN concentrators configured to use IPsec.")
6630 (license license:gpl2+)
6631 (properties `((upstream-name . "NetworkManager-vpnc")))))
6632
8378c87a
EF
6633(define-public network-manager-openconnect
6634 (package
6635 (name "network-manager-openconnect")
6636 (version "1.2.6")
6637 (source (origin
6638 (method url-fetch)
6639 (uri (string-append
6640 "mirror://gnome/sources/NetworkManager-openconnect/"
6641 (version-major+minor version)
6642 "/NetworkManager-openconnect-" version ".tar.xz"))
6643 (sha256
6644 (base32
6645 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6646 (build-system gnu-build-system)
6647 (arguments
6648 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6649 #:phases
6650 (modify-phases %standard-phases
6651 (add-after 'configure 'patch-path
6652 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6653 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6654 "/sbin/openconnect"))
6655 (modprobe (string-append (assoc-ref inputs "kmod")
6656 "/bin/modprobe"))
6657 (pretty-ovpn (string-append "\"" openconnect "\"")))
6658 (substitute* "src/nm-openconnect-service.c"
6659 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6660 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6661 (("/sbin/modprobe") modprobe)))
6662 #t)))))
6663 (native-inputs
6664 `(("intltool" ,intltool)
4ca449c5 6665 ("libnma" ,libnma)
8378c87a
EF
6666 ("pkg-config" ,pkg-config)))
6667 (inputs
6668 `(("gcr" ,gcr)
6669 ("gtk+" ,gtk+)
6670 ("kmod" ,kmod)
6671 ("libsecret" ,libsecret)
6672 ("libxml2" ,libxml2)
b4fe5dab 6673 ("lz4" ,lz4)
8378c87a
EF
6674 ("network-manager" ,network-manager)
6675 ("openconnect" ,openconnect)))
6676 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6677 (synopsis "OpenConnect plug-in for NetworkManager")
6678 (description
6679 "This extension of NetworkManager allows it to take care of connections
6680to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6681Cisco's AnyConnect SSL VPN.")
6682 (license license:gpl2+)
e52b9534
LC
6683 (properties `((upstream-name . "NetworkManager-openconnect")
6684
6685 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6686 ;; file refers to account "nm-openconnect". Specify it here
6687 ;; so that 'network-manager-service-type' creates it.
6688 (user-accounts . ("nm-openconnect"))))))
8378c87a 6689
e5e1df4d
DC
6690(define-public mobile-broadband-provider-info
6691 (package
6692 (name "mobile-broadband-provider-info")
310c89e3 6693 (version "20190116")
e5e1df4d
DC
6694 (source (origin
6695 (method url-fetch)
6696 (uri (string-append
6697 "mirror://gnome/sources/"
6698 "mobile-broadband-provider-info/" version "/"
6699 "mobile-broadband-provider-info-" version ".tar.xz"))
6700 (sha256
6701 (base32
310c89e3 6702 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6703 (build-system gnu-build-system)
6704 (arguments
310c89e3 6705 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6706 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6707 (synopsis "Database of broadband connection configuration")
6708 (description "Database of broadband connection configuration.")
6709 (license license:public-domain)))
6710
4d62a9d3
SB
6711(define-public network-manager-applet
6712 (package
6713 (name "network-manager-applet")
4c291112 6714 (version "1.16.0")
4d62a9d3
SB
6715 (source (origin
6716 (method url-fetch)
3df63444 6717 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6718 (version-major+minor version) "/"
3df63444 6719 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6720 (sha256
6721 (base32
4c291112 6722 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
cd7f718e
RW
6723 (build-system meson-build-system)
6724 (arguments
4c291112 6725 '(#:glib-or-gtk? #t))
4d62a9d3
SB
6726 (native-inputs
6727 `(("intltool" ,intltool)
cd7f718e 6728 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6729 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6730 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6731 ("pkg-config" ,pkg-config)))
6732 (propagated-inputs
6733 ;; libnm-gtk.pc refers to all these.
6734 `(("dbus-glib" ,dbus-glib)
6735 ("gtk+" ,gtk+)
6736 ("network-manager" ,network-manager)))
6737 (inputs
cd7f718e 6738 `(("gcr" ,gcr)
4c291112 6739 ("libnma" ,libnma)
4d62a9d3
SB
6740 ("libgudev" ,libgudev)
6741 ("libnotify" ,libnotify)
2116bfb3 6742 ("libsecret" ,libsecret)
240cee8a
KK
6743 ("libselinux" ,libselinux)
6744 ("jansson" ,jansson) ; for team support
4c291112 6745 ("modem-manager" ,modem-manager)))
4d62a9d3 6746 (synopsis "Applet for managing network connections")
8ce78609 6747 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
4d62a9d3
SB
6748 (description
6749 "This package contains a systray applet for NetworkManager. It displays
6750the available networks and allows users to easily switch between them.")
6751 (license license:gpl2+)))
56196594
RW
6752
6753(define-public libxml++
6754 (package
6755 (name "libxml++")
8344a85e 6756 (version "3.0.1")
56196594
RW
6757 (source (origin
6758 (method url-fetch)
6759 (uri (string-append "mirror://gnome/sources/" name "/"
6760 (version-major+minor version) "/"
6761 name "-" version ".tar.xz"))
6762 (sha256
6763 (base32
8344a85e 6764 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6765 (build-system gnu-build-system)
6766 ;; libxml++-3.0.pc refers to all these.
6767 (propagated-inputs
6768 `(("libxml2" ,libxml2)
6769 ("glibmm" ,glibmm)))
6770 (native-inputs
6771 `(("perl" ,perl)
6772 ("pkg-config" ,pkg-config)))
6773 (home-page "http://libxmlplusplus.sourceforge.net/")
6774 (synopsis "C++ wrapper for XML parser library libxml2")
6775 (description
6776 "This package provides a C++ wrapper for the XML parser library
6777libxml2.")
6778 (license license:lgpl2.1+)))
df12f04a 6779
b61d9627
AW
6780(define-public libxml++-2
6781 (package
6782 (inherit libxml++)
6783 (name "libxml++")
6784 (version "2.40.1")
6785 (source (origin
6786 (method url-fetch)
6787 (uri (string-append "mirror://gnome/sources/" name "/"
6788 (version-major+minor version) "/"
6789 name "-" version ".tar.xz"))
6790 (sha256
6791 (base32
6792 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6793
df12f04a
SB
6794(define-public gdm
6795 (package
6796 (name "gdm")
0fda99c5 6797 (version "3.34.1")
df12f04a
SB
6798 (source (origin
6799 (method url-fetch)
6800 (uri (string-append "mirror://gnome/sources/" name "/"
6801 (version-major+minor version) "/"
6802 name "-" version ".tar.xz"))
6803 (sha256
6804 (base32
0fda99c5 6805 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 6806 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6807 (build-system glib-or-gtk-build-system)
df12f04a
SB
6808 (arguments
6809 '(#:configure-flags
af37e6bb 6810 `("--without-plymouth"
957dbc0a 6811 "--disable-systemd-journal"
51bc8357
TS
6812
6813 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6814 ;; instead of having to replace it (i.e., stopping the mingetty
6815 ;; service for TTY 1 before starting GDM).
6816 "--with-initial-vt=7"
6817
89c86562
TS
6818 ;; Use '/etc/environment' for locale settings instead of the
6819 ;; systemd-specific '/etc/locale.conf'.
6820 "--with-lang-file=/etc/environment"
6821
b74ef0ba
RW
6822 ,(string-append "--with-udevdir="
6823 (assoc-ref %outputs "out") "/lib/udev")
6824
af37e6bb
AW
6825 "--localstatedir=/var"
6826 ,(string-append "--with-default-path="
6827 (string-join '("/run/setuid-programs"
6828 "/run/current-system/profile/bin"
6829 "/run/current-system/profile/sbin")
957dbc0a
AW
6830 ":"))
6831 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6832 ;; XDG_DATA_DIRS so that it finds its schemas.
6833 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6834 #:phases
6835 (modify-phases %standard-phases
6836 (add-before
6837 'configure 'pre-configure
e8c6e771 6838 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6839 ;; We don't have <systemd/sd-daemon.h>.
6840 (substitute* '("common/gdm-log.c"
6841 "daemon/gdm-server.c"
6842 "daemon/gdm-session-worker.c"
6843 "daemon/gdm-session-worker-job.c")
6844 (("#include <systemd/sd-daemon\\.h>") ""))
6845 ;; Use elogind for sd-login.
6846 (substitute* '("common/gdm-common.c"
0fda99c5 6847 "daemon/gdm-local-display-factory.c"
df12f04a
SB
6848 "daemon/gdm-manager.c"
6849 "libgdm/gdm-user-switching.c")
6850 (("#include <systemd/sd-login\\.h>")
6851 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6852 ;; Check for elogind.
6853 (substitute* '("configure")
6854 (("libsystemd")
6855 "libelogind"))
af37e6bb
AW
6856 ;; Look for system-installed sessions in
6857 ;; /run/current-system/profile/share.
6858 (substitute* '("libgdm/gdm-sessions.c"
6859 "daemon/gdm-session.c"
6860 "daemon/gdm-display.c"
6861 "daemon/gdm-launch-environment.c")
6862 (("DATADIR \"/x")
6863 "\"/run/current-system/profile/share/x")
6864 (("DATADIR \"/wayland")
6865 "\"/run/current-system/profile/share/wayland")
6866 (("DATADIR \"/gnome")
6867 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6868 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6869 "GDM_DBUS_DAEMON"
c9ff92b5 6870 "GDM_X_SERVER"
41fa9f18 6871 "GDM_X_SESSION"
c9ff92b5
TS
6872 ;; XXX: Remove this once GNOME Shell is
6873 ;; a dependency of GDM.
6874 "XDG_DATA_DIRS")))
6875 (substitute* "daemon/gdm-session.c"
6876 (("set_up_session_environment \\(self\\);")
6877 (apply string-append
6878 "set_up_session_environment (self);\n"
6879 (map (lambda (name)
6880 (string-append
6881 "gdm_session_set_environment_variable "
6882 "(self, \"" name "\","
6883 "g_getenv (\"" name "\"));\n"))
6884 propagate)))))
a430a350
TS
6885 ;; Find the configuration file using an environment variable.
6886 (substitute* '("common/gdm-settings.c")
e0e6756f 6887 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6888 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6889 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6890 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6891 ;; Use service-supplied path to X.
6892 (substitute* '("daemon/gdm-server.c")
6893 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6894 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
6895 (substitute* '("daemon/gdm-wayland-session.c"
6896 "daemon/gdm-x-session.c")
1f564c15
TS
6897 (("\"dbus-daemon\"")
6898 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6899 (("X_SERVER")
41fa9f18
TS
6900 "g_getenv (\"GDM_X_SERVER\")")
6901 (("GDMCONFDIR \"/Xsession\"")
6902 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6903 ;; Use an absolute path for GNOME Session.
6904 (substitute* "daemon/gdm-launch-environment.c"
6905 (("\"gnome-session\"")
6906 (string-append "\"" (assoc-ref inputs "gnome-session")
6907 "/bin/gnome-session\"")))
e8c6e771
TS
6908 ;; Do not automatically select the placeholder session.
6909 (substitute* "daemon/gdm-session.c"
6910 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6911 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6912 "(g_strcmp0(search_dirs[i], \""
6913 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6914 "\") == 0 && "
6915 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6916 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6917 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6918 #t))
8caa4589
TS
6919 ;; GDM requires that there be at least one desktop entry
6920 ;; file. This phase installs a hidden one that simply
6921 ;; fails. This enables users to use GDM with a
6922 ;; '~/.xsession' script with no other desktop entry files.
6923 ;; See <https://bugs.gnu.org/35068>.
6924 (add-after 'install 'install-placeholder-desktop-entry
6925 (lambda* (#:key inputs outputs #:allow-other-keys)
6926 (let* ((out (assoc-ref outputs "out"))
6927 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6928 (fail (string-append sessions "/fail.desktop")))
6929 (mkdir-p sessions)
6930 (with-output-to-file fail
6931 (lambda ()
6932 (for-each
6933 display
6934 '("[Desktop Entry]\n"
6935 "Encoding=UTF-8\n"
6936 "Type=Application\n"
6937 "Name=Fail\n"
6938 "Comment=This session fails immediately.\n"
6939 "NoDisplay=true\n"
6940 "Exec=false\n"))))
6941 #t)))
69544798
TS
6942 ;; GDM needs GNOME Session to run these applications. We link
6943 ;; their autostart files in `share/gdm/greeter/autostart'
6944 ;; because GDM explicitly tells GNOME Session to look there.
6945 ;;
6946 ;; XXX: GNOME Shell should be linked here too, but currently
6947 ;; GNOME Shell depends on GDM.
6948 (add-after 'install 'link-autostart-files
6949 (lambda* (#:key inputs outputs #:allow-other-keys)
6950 (let* ((out (assoc-ref outputs "out"))
6951 (autostart (string-append out "/share/gdm/"
6952 "greeter/autostart"))
6953 (settings (assoc-ref inputs "gnome-settings-daemon")))
6954 (mkdir-p autostart)
6955 (with-directory-excursion autostart
6956 (for-each (lambda (desktop)
6957 (symlink desktop (basename desktop)))
6958 (find-files (string-append settings "/etc/xdg"))))
6959 #t))))))
df12f04a
SB
6960 (native-inputs
6961 `(("dconf" ,dconf)
6962 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6963 ("gobject-introspection" ,gobject-introspection)
6964 ("intltool" ,intltool)
6965 ("itstool" ,itstool)
6966 ("pkg-config" ,pkg-config)
6967 ("xmllint" ,libxml2)))
6968 (inputs
6969 `(("accountsservice" ,accountsservice)
6970 ("check" ,check) ; for testing
6971 ("elogind" ,elogind)
def6d6b6 6972 ("gnome-session" ,gnome-session)
69544798 6973 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6974 ("gtk+" ,gtk+)
6975 ("iso-codes" ,iso-codes)
6976 ("libcanberra" ,libcanberra)
6977 ("linux-pam" ,linux-pam)))
6978 (synopsis "Display manager for GNOME")
f032d0be 6979 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6980 (description
6981 "GNOME Display Manager is a system service that is responsible for
6982providing graphical log-ins and managing local and remote displays.")
6983 (license license:gpl2+)))
8e1dd04f
SB
6984
6985(define-public libgtop
6986 (package
6987 (name "libgtop")
015fc036 6988 (version "2.40.0")
8e1dd04f
SB
6989 (source (origin
6990 (method url-fetch)
59487fc2 6991 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6992 (version-major+minor version) "/"
59487fc2 6993 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6994 (sha256
6995 (base32
015fc036 6996 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
6997 (build-system gnu-build-system)
6998 (native-inputs
6999 `(("gobject-introspection" ,gobject-introspection)
7000 ("intltool" ,intltool)
7001 ("perl" ,perl)
7002 ("pkg-config" ,pkg-config)))
7003 (propagated-inputs
7004 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7005 (synopsis "Portable system access library")
7006 (home-page "https://www.gnome.org/")
7007 (description
7008 "LibGTop is a library to get system specific data such as CPU and memory
7009usage and information about running processes.")
7010 (license license:gpl2+)))
b96c4260
SB
7011
7012(define-public gnome-bluetooth
7013 (package
7014 (name "gnome-bluetooth")
e8f4bf6b 7015 (version "3.34.0")
b96c4260
SB
7016 (source (origin
7017 (method url-fetch)
7018 (uri (string-append "mirror://gnome/sources/" name "/"
7019 (version-major+minor version) "/"
7020 name "-" version ".tar.xz"))
7021 (sha256
7022 (base32
e8f4bf6b 7023 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 7024 (build-system meson-build-system)
b96c4260
SB
7025 (native-inputs
7026 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7027 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7028 ("gobject-introspection" ,gobject-introspection)
7029 ("intltool" ,intltool)
7030 ("pkg-config" ,pkg-config)
7031 ("xmllint" ,libxml2)))
7032 (propagated-inputs
7033 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7034 `(("glib" ,glib)
7035 ("gtk+" ,gtk+)))
b96c4260 7036 (inputs
723afae6
KK
7037 `(("eudev" ,eudev)
7038 ("libcanberra" ,libcanberra)
b96c4260
SB
7039 ("libnotify" ,libnotify)))
7040 (synopsis "GNOME Bluetooth subsystem")
7041 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7042 (description
7043 "This package contains tools for managing and manipulating Bluetooth
7044devices using the GNOME desktop.")
7045 (license license:lgpl2.1+)))
b645146f
SB
7046
7047(define-public gnome-control-center
7048 (package
7049 (name "gnome-control-center")
c576328d 7050 (version "3.34.2")
b645146f
SB
7051 (source (origin
7052 (method url-fetch)
7053 (uri (string-append "mirror://gnome/sources/" name "/"
7054 (version-major+minor version) "/"
7055 name "-" version ".tar.xz"))
7056 (sha256
7057 (base32
c576328d 7058 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7059 (build-system meson-build-system)
b645146f 7060 (arguments
59dac026
RW
7061 '(#:glib-or-gtk? #t
7062 #:configure-flags
64c70430
KK
7063 (list "-Dcheese=false"
7064 (string-append "-Dgnome_session_libexecdir="
7065 (assoc-ref %build-inputs "gnome-session")
7066 "/libexec"))
59dac026 7067 #:phases
b645146f
SB
7068 (modify-phases %standard-phases
7069 (add-before 'configure 'patch-paths
7070 (lambda* (#:key inputs #:allow-other-keys)
7071 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7072 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7073 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7074 (nm-applet (assoc-ref inputs "network-manager-applet"))
7075 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7076 (substitute* "panels/datetime/tz.h"
7077 (("/usr/share/zoneinfo/zone.tab")
7078 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7079 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7080 (("/usr/share/locale")
7081 (string-append libc "/share/locale")))
1df38cfc
LC
7082 (substitute* "panels/region/cc-region-panel.c"
7083 (("\"gkbd-keyboard-display")
7084 (string-append "\"" libgnomekbd
7085 "/bin/gkbd-keyboard-display")))
341225ac
LC
7086 (substitute* '("panels/network/net-device-wifi.c"
7087 "panels/network/net-device.c"
7088 "panels/network/connection-editor/net-connection-editor.c")
7089 (("\"nm-connection-editor")
7090 (string-append "\"" nm-applet
7091 "/bin/nm-connection-editor")))
1acd107c
FP
7092 (substitute* '("panels/user-accounts/run-passwd.c")
7093 (("/usr/bin/passwd")
7094 "/run/setuid-programs/passwd"))
64c70430
KK
7095 (substitute* "panels/info/cc-info-overview-panel.c"
7096 (("DATADIR \"/gnome/gnome-version.xml\"")
7097 (string-append "\"" gnome-desktop
7098 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7099 #t)))
7100 (add-after 'unpack 'skip-gtk-update-icon-cache
7101 ;; Don't create 'icon-theme.cache'.
7102 (lambda _
7103 (substitute* "build-aux/meson/meson_post_install.py"
7104 (("gtk-update-icon-cache") (which "true")))
7105 #t)))))
b645146f
SB
7106 (native-inputs
7107 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7108 ("intltool" ,intltool)
7109 ("pkg-config" ,pkg-config)
a6938bac
KK
7110 ("xsltproc" ,libxslt)
7111 ;; For tests
7112 ("hicolor-icon-theme" ,hicolor-icon-theme)
7113 ("python-dbusmock" ,python-dbusmock)
7114 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7115 (inputs
7116 `(("accountsservice" ,accountsservice)
7117 ("clutter-gtk" ,clutter-gtk)
7118 ("colord-gtk" ,colord-gtk)
7119 ("cups" ,cups)
7120 ("dconf" ,dconf)
7121 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7122 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7123 ("gnome-bluetooth" ,gnome-bluetooth)
7124 ("gnome-desktop" ,gnome-desktop)
7125 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7126 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7127 ("gnome-session" ,gnome-session)
b645146f
SB
7128 ("gnome-settings-daemon" ,gnome-settings-daemon)
7129 ("grilo" ,grilo)
a6938bac 7130 ("gsound" ,gsound)
b645146f
SB
7131 ("ibus" ,ibus)
7132 ("libcanberra" ,libcanberra)
1df38cfc 7133 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7134 ("libgudev" ,libgudev)
7135 ("libgtop" ,libgtop)
46cf3434 7136 ("libnma" ,libnma)
b645146f 7137 ("libpwquality" ,libpwquality)
982c0b36 7138 ("libsecret" ,libsecret)
b645146f
SB
7139 ("libsoup" ,libsoup)
7140 ("libxml2" ,libxml2)
7141 ("libwacom" ,libwacom)
7142 ("mesa" ,mesa)
7143 ("mit-krb5" ,mit-krb5)
7144 ("modem-manager" ,modem-manager)
7145 ("network-manager-applet" ,network-manager-applet)
7146 ("polkit" ,polkit)
7147 ("pulseaudio" ,pulseaudio)
7148 ("smbclient" ,samba)
7149 ("tzdata" ,tzdata)
982c0b36 7150 ("udisks" ,udisks)
b645146f
SB
7151 ("upower" ,upower)))
7152 (synopsis "Utilities to configure the GNOME desktop")
7153 (home-page "https://www.gnome.org/")
7154 (description
7155 "This package contains configuration applets for the GNOME desktop,
7156allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7157properties, sound setup, desktop theme and background, user interface
7158properties, screen resolution, and other GNOME parameters.")
7159 (license license:gpl2+)))
a4df5756
SB
7160
7161(define-public gnome-shell
7162 (package
7163 (name "gnome-shell")
28457ae6 7164 (version "3.34.2")
a4df5756
SB
7165 (source (origin
7166 (method url-fetch)
7167 (uri (string-append "mirror://gnome/sources/" name "/"
7168 (version-major+minor version) "/"
7169 name "-" version ".tar.xz"))
7170 (sha256
7171 (base32
28457ae6
KK
7172 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7173 (patches (search-patches "gnome-shell-theme.patch"
7174 "gnome-shell-disable-test.patch"))
a76d0f03
LC
7175 (modules '((guix build utils)))
7176 (snippet
7177 #~(begin
a76d0f03
LC
7178 ;; Copy images for use on the GDM log-in screen.
7179 (copy-file #$(file-append %artwork-repository
7180 "/slim/0.x/background.png")
7181 "data/theme/guix-background.png")
45fef894
LC
7182 (copy-file #$(file-append %artwork-repository
7183 "/logo/Guix-horizontal-white.svg")
7184 "data/theme/guix-logo.svg")
a76d0f03 7185 #t))))
2b0c755d 7186 (build-system meson-build-system)
a4df5756 7187 (arguments
08185081
MB
7188 `(#:glib-or-gtk? #t
7189 #:disallowed-references ((,glib "bin")
11e1df56
LC
7190 ,inkscape ,libxslt
7191 ,ruby-sass)
2b0c755d
RW
7192 #:configure-flags
7193 (list "-Dsystemd=false"
7194 ;; Otherwise, the RUNPATH will lack the final path component.
7195 (string-append "-Dc_link_args=-Wl,-rpath="
7196 (assoc-ref %outputs "out")
7197 "/lib/gnome-shell"))
11e1df56 7198
08185081 7199 #:modules ((guix build meson-build-system)
11e1df56
LC
7200 (guix build utils)
7201 (srfi srfi-1))
7202
2b0c755d 7203 #:phases
a4df5756 7204 (modify-phases %standard-phases
2b0c755d 7205 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7206 (lambda* (#:key outputs #:allow-other-keys)
7207 (let* ((out (assoc-ref outputs "out"))
7208 (keysdir (string-append
7209 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7210 (substitute* "meson.build"
7211 (("keysdir =.*")
7212 (string-append "keysdir = '" keysdir "'\n")))
7213 #t)))
ebfe259f
MB
7214 (add-before 'configure 'convert-logo-to-png
7215 (lambda* (#:key inputs #:allow-other-keys)
7216 ;; Convert the logo from SVG to PNG.
7217 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7218 "data/theme/guix-logo.svg")))
ba00235a 7219 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7220 (lambda* (#:key inputs #:allow-other-keys)
7221 (substitute* "js/misc/ibusManager.js"
7222 (("'ibus-daemon'")
7223 (string-append "'" (assoc-ref inputs "ibus")
7224 "/bin/ibus-daemon'")))
d6fda4d3
LC
7225 (substitute* "js/ui/status/keyboard.js"
7226 (("'gkbd-keyboard-display'")
7227 (string-append "'" (assoc-ref inputs "libgnomekbd")
7228 "/bin/gkbd-keyboard-display'")))
2472cdec 7229 #t))
2b0c755d
RW
7230 (add-before 'check 'pre-check
7231 (lambda* (#:key inputs #:allow-other-keys)
7232 ;; Tests require a running X server.
7233 (system "Xvfb :1 &")
7234 (setenv "DISPLAY" ":1")
7235 #t))
7236 (add-after 'install 'wrap-programs
7237 (lambda* (#:key inputs outputs #:allow-other-keys)
7238 (let ((out (assoc-ref outputs "out"))
7239 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7240 (python-path (getenv "PYTHONPATH")))
7241 (wrap-program (string-append out "/bin/gnome-shell")
7242 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7243 ;; FIXME: gnome-shell loads these libraries with unqualified
7244 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7245 ;; alternative might be to patch gnome-shell.
7246 `("LD_LIBRARY_PATH" ":" prefix
7247 ,(map (lambda (pkg)
7248 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7249 '("gdk-pixbuf"
7250 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7251 (for-each
7252 (lambda (prog)
7253 (wrap-program (string-append out "/bin/" prog)
7254 `("PYTHONPATH" ":" prefix (,python-path))
7255 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7256 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7257 #t)))
11e1df56
LC
7258 (replace 'glib-or-gtk-wrap
7259 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7260 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7261 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7262 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7263 ;; phase. Fix that since we don't need these.
7264 (wrap #:inputs (fold alist-delete inputs
7265 '("inkscape" "intltool" "glib:bin"))
7266 #:outputs outputs)))))))
a4df5756 7267 (native-inputs
28457ae6
KK
7268 `(("asciidoc" ,asciidoc)
7269 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7270 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7271 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7272 ("inkscape" ,inkscape)
a4df5756
SB
7273 ("intltool" ,intltool)
7274 ("pkg-config" ,pkg-config)
7275 ("python" ,python)
2b0c755d
RW
7276 ("ruby-sass" ,ruby-sass)
7277 ("sassc" ,sassc)
a76d0f03 7278 ("xsltproc" ,libxslt)
2b0c755d 7279 ;; For tests
0b4504f6 7280 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7281 (inputs
7282 `(("accountsservice" ,accountsservice)
7283 ("caribou" ,caribou)
7284 ("docbook-xsl" ,docbook-xsl)
7285 ("evolution-data-server" ,evolution-data-server)
7286 ("gcr" ,gcr)
7287 ("gdm" ,gdm)
c5db31d4 7288 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 7289 ("gjs" ,gjs)
28457ae6 7290 ("gnome-autoar" ,gnome-autoar)
a4df5756 7291 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7292 ("gnome-desktop" ,gnome-desktop)
7293 ("gnome-settings-daemon" ,gnome-settings-daemon)
7294 ("gst-plugins-base" ,gst-plugins-base)
7295 ("ibus" ,ibus)
7296 ("libcanberra" ,libcanberra)
7297 ("libcroco" ,libcroco)
d6fda4d3 7298 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7299 ("libgweather" ,libgweather)
7300 ("libsoup" ,libsoup)
7301 ("mesa-headers" ,mesa-headers)
7302 ("mutter" ,mutter)
7303 ("network-manager-applet" ,network-manager-applet)
7304 ("polkit" ,polkit)
7305 ("pulseaudio" ,pulseaudio)
7306 ("python-pygobject" ,python-pygobject)
7307 ("startup-notification" ,startup-notification)
7308 ("telepathy-logger" ,telepathy-logger)
7309 ("upower" ,upower)
30e760f0
MB
7310 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7311 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7312 ("librsvg" ,librsvg)
2b0c755d 7313 ("geoclue" ,geoclue)))
a4df5756
SB
7314 (synopsis "Desktop shell for GNOME")
7315 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7316 (description
7317 "GNOME Shell provides core user interface functions for the GNOME desktop,
7318like switching to windows and launching applications.")
7319 (license license:gpl2+)))
c3f29bc9
RS
7320
7321(define-public gtk-vnc
7322 (package
7323 (name "gtk-vnc")
965ff023 7324 (version "0.9.0")
c3f29bc9
RS
7325 (source
7326 (origin
7327 (method url-fetch)
7328 (uri (string-append "mirror://gnome/sources/" name "/"
7329 (version-major+minor version) "/"
7330 name "-" version ".tar.xz"))
7331 (sha256
7332 (base32
965ff023 7333 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7334 (build-system gnu-build-system)
7335 (arguments
7336 '(#:configure-flags '("--with-gtk=3.0")))
7337 (propagated-inputs
7338 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7339 (inputs
7340 `(("cyrus-sasl" ,cyrus-sasl)
7341 ("gnutls" ,gnutls)
7342 ("libgcrypt" ,libgcrypt)
7343 ("pulseaudio" ,pulseaudio)))
7344 (native-inputs
7345 `(("glib:bin" ,glib "bin")
7346 ("gobject-introspection" ,gobject-introspection)
7347 ("intltool" ,intltool)
7348 ("pkg-config" ,pkg-config)
2f17e939 7349 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7350 ("vala" ,vala)))
7351 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7352 (synopsis "VNC viewer widget for GTK+")
7353 (description
7354 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7355applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7356GTK-VNC implements client side RFB protocol and authentication extensions such
7357as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7358 (license license:lgpl2.1+)))
8b877545 7359
dc69fe18
MW
7360(define-public gnome-autoar
7361 (package
7362 (name "gnome-autoar")
17969940 7363 (version "0.2.4")
dc69fe18
MW
7364 (source (origin
7365 (method url-fetch)
7366 (uri (string-append "mirror://gnome/sources/" name "/"
7367 (version-major+minor version) "/"
7368 name "-" version ".tar.xz"))
7369 (sha256
7370 (base32
17969940 7371 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
7372 (build-system glib-or-gtk-build-system)
7373 (native-inputs
17969940 7374 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
7375 ("pkg-config" ,pkg-config)))
7376 (propagated-inputs
17969940 7377 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 7378 (inputs
0a6e9e13 7379 `(("gtk+" ,gtk+)))
dc69fe18
MW
7380 (synopsis "Archives integration support for GNOME")
7381 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7382 (description
7383 "GNOME Autoar is a library which makes creating and extracting archives
7384easy, safe, and automatic.")
7385 (license license:lgpl2.1+)))
7386
b64e217f
MW
7387(define-public tracker
7388 (package
7389 (name "tracker")
caaefa40 7390 (version "2.3.4")
b64e217f
MW
7391 (source (origin
7392 (method url-fetch)
b5b0fd23 7393 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7394 (version-major+minor version) "/"
b5b0fd23 7395 "tracker-" version ".tar.xz"))
b64e217f
MW
7396 (sha256
7397 (base32
caaefa40 7398 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7399 (build-system meson-build-system)
c8bdf589 7400 (arguments
5ada561c
KK
7401 `(#:glib-or-gtk? #t
7402 #:configure-flags
7403 ;; Otherwise, the RUNPATH will lack the final path component.
7404 (list (string-append "-Dc_link_args=-Wl,-rpath="
7405 (assoc-ref %outputs "out") "/lib:"
7406 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7407 #:phases
c8bdf589 7408 (modify-phases %standard-phases
c8bdf589
RW
7409 (add-before 'check 'pre-check
7410 (lambda _
63db190a
PN
7411 ;; Some tests expect to write to $HOME.
7412 (setenv "HOME" "/tmp")
c8bdf589 7413 #t)))))
b64e217f 7414 (native-inputs
5ada561c 7415 `(("glib:bin" ,glib "bin")
b64e217f 7416 ("gobject-introspection" ,gobject-introspection)
5ada561c 7417 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7418 ("intltool" ,intltool)
7419 ("pkg-config" ,pkg-config)
7420 ("vala" ,vala)))
7421 (inputs
63db190a 7422 `(("dbus" ,dbus)
44ed6284 7423 ("sqlite" ,sqlite)
b64e217f 7424 ("libxml2" ,libxml2)
63db190a 7425 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7426 ("json-glib" ,json-glib)
63db190a 7427 ("libsoup" ,libsoup)))
b64e217f
MW
7428 (synopsis "Metadata database, indexer and search tool")
7429 (home-page "https://wiki.gnome.org/Projects/Tracker")
7430 (description
63db190a
PN
7431 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7432
7433It is a middleware component aimed at desktop application developers who want
7434their apps to browse and search user content. It's not designed to be used
7435directly by desktop users, but it provides a commandline tool named
7436@command{tracker} for the adventurous.
7437
7438Tracker allows your application to instantly perform full-text searches across
7439all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7440example. This is achieved by indexing the user's home directory in the
7441background.
7442
7443Tracker also allows your application to query and list content that the user
7444has stored. For example, GNOME Music displays all the music files that are
7445found by Tracker. This means that GNOME Music doesn't need to maintain a
7446database of its own.
7447
7448If you need to go beyond simple searches, Tracker is also a linked data
7449endpoint and it understands SPARQL. ")
7450 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7451 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7452 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7453 (license (list license:gpl2+
63db190a
PN
7454 license:bsd-3
7455 license:lgpl2.1+))))
b64e217f 7456
03be9874
KK
7457(define-public tracker-miners
7458 (package
7459 (name "tracker-miners")
de60ac2f 7460 (version "2.3.3")
03be9874
KK
7461 (source (origin
7462 (method url-fetch)
7463 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7464 (version-major+minor version)
7465 "/tracker-miners-" version ".tar.xz"))
7466 (sha256
7467 (base32
de60ac2f 7468 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7469 (build-system meson-build-system)
7470 (arguments
7471 `(#:glib-or-gtk? #t
7472 #:configure-flags
7473 (list "-Dminer_rss=false" ; libgrss is required.
7474 ;; Ensure the RUNPATH contains all installed library locations.
7475 (string-append "-Dc_link_args=-Wl,-rpath="
7476 (assoc-ref %outputs "out")
7477 "/lib/tracker-miners-2.0")
7478 ;; TODO: Enable functional tests. Currently, the following error
7479 ;; appears:
7480 ;; Exception: The functional tests require DConf to be the default
7481 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7482 "-Dfunctional_tests=false")))
7483 (native-inputs
7484 `(("dbus" ,dbus)
7485 ("intltool" ,intltool)
7486 ("glib:bin" ,glib "bin")
7487 ("gobject-introspection" ,gobject-introspection)
7488 ("pkg-config" ,pkg-config)
7489 ("python-pygobject" ,python-pygobject)))
7490 (inputs
7491 `(("exempi" ,exempi)
7492 ("ffmpeg" ,ffmpeg)
7493 ("flac" ,flac)
7494 ("giflib" ,giflib)
7495 ("glib" ,glib)
7496 ("gstreamer" ,gstreamer)
7497 ("icu4c" ,icu4c)
7498 ("libcue" ,libcue)
7499 ("libexif" ,libexif)
7500 ("libgsf" ,libgsf)
7501 ("libgxps" ,libgxps)
7502 ("libiptcdata" ,libiptcdata)
4bd428a7 7503 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7504 ("libosinfo" ,libosinfo)
7505 ("libpng" ,libpng)
7506 ("libseccomp" ,libseccomp)
7507 ("libtiff" ,libtiff)
7508 ("libvorbis" ,libvorbis)
7509 ("libxml2" ,libxml2)
7510 ("poppler" ,poppler)
7511 ("taglib" ,taglib)
7512 ("totem-pl-parser" ,totem-pl-parser)
7513 ("tracker" ,tracker)
7514 ("upower" ,upower)
7515 ("zlib" ,zlib)))
b64e217f
MW
7516 (synopsis "Metadata database, indexer and search tool")
7517 (home-page "https://wiki.gnome.org/Projects/Tracker")
7518 (description
7519 "Tracker is an advanced framework for first class objects with associated
7520metadata and tags. It provides a one stop solution for all metadata, tags,
7521shared object databases, search tools and indexing.")
7522 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7523 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7524 (license (list license:gpl2+
7525 license:lgpl2.1+
7526 license:lgpl2.0+))))
7527
8b877545
RS
7528(define-public nautilus
7529 (package
7530 (name "nautilus")
8069ff0b 7531 (version "3.34.2")
8b877545
RS
7532 (source (origin
7533 (method url-fetch)
7534 (uri (string-append "mirror://gnome/sources/" name "/"
7535 (version-major+minor version) "/"
7536 name "-" version ".tar.xz"))
7537 (sha256
7538 (base32
8069ff0b 7539 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 7540 (build-system meson-build-system)
8b877545 7541 (arguments
35e2d0cf 7542 '(#:glib-or-gtk? #t
8069ff0b
KK
7543 #:phases
7544 (modify-phases %standard-phases
7545 (add-after 'unpack 'skip-gtk-update-icon-cache
7546 ;; Don't create 'icon-theme.cache'.
7547 (lambda _
7548 (substitute* "build-aux/meson/postinstall.py"
7549 (("gtk-update-icon-cache") "true"))
7550 #t)))
8b877545
RS
7551 ;; XXX: FAIL: check-nautilus
7552 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7553 #:tests? #f))
7554 (native-inputs
35e2d0cf
R
7555 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7556 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
7557 ("gobject-introspection" ,gobject-introspection)
7558 ("intltool" ,intltool)
7559 ("pkg-config" ,pkg-config)))
8b877545 7560 (inputs
8b877545 7561 `(("dconf" ,dconf)
caf6c363 7562 ("gexiv2" ,gexiv2)
dd05e731 7563 ("gvfs" ,gvfs)
8b877545
RS
7564 ("exempi" ,exempi)
7565 ("gnome-desktop" ,gnome-desktop)
09d88905 7566 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7567 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7568 ("libseccomp" ,libseccomp)
35e2d0cf 7569 ("libselinux" ,libselinux)
09d88905 7570 ("tracker" ,tracker)
3cafb9d4 7571 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7572 ;; XXX: gtk+ is required by libnautilus-extension.pc
7573 ;;
7574 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7575 ;; package. See:
7576 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7577 ("gtk+" ,gtk+)
8b877545
RS
7578 ("libexif" ,libexif)
7579 ("libxml2" ,libxml2)))
7580 (synopsis "File manager for GNOME")
7581 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7582 (description
7583 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7584design and behaviour, giving the user a simple way to navigate and manage its
7585files.")
7586 (license license:gpl2+)))
3c697ffd
JR
7587
7588(define-public baobab
7589 (package
7590 (name "baobab")
e0c5f20c 7591 (version "3.32.0")
3c697ffd
JR
7592 (source (origin
7593 (method url-fetch)
7594 (uri (string-append
7595 "mirror://gnome/sources/" name "/"
7596 (version-major+minor version) "/"
7597 name "-" version ".tar.xz"))
7598 (sha256
7599 (base32
e0c5f20c 7600 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7601 (build-system meson-build-system)
7602 (arguments
7603 '(#:glib-or-gtk? #t))
3c697ffd
JR
7604 (native-inputs
7605 `(("intltool" ,intltool)
7606 ("pkg-config" ,pkg-config)
d233d373
RJ
7607 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7608 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7609 ("itstool" ,itstool)
7610 ("xmllint" ,libxml2)
7611 ("glib" ,glib "bin")
7612 ("vala" ,vala)))
7613 (inputs
7614 `(("gtk+" ,gtk+)))
7615 (synopsis "Disk usage analyzer for GNOME")
7616 (description
7617 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7618usage in the GNOME desktop environment. It can easily scan device volumes or
7619a specific user-requested directory branch (local or remote). Once the scan
7620is complete it provides a graphical representation of each selected folder.")
7621 (home-page "https://wiki.gnome.org/Apps/Baobab")
7622 (license license:gpl2+)))
dc050251 7623
fdba447c
RS
7624(define-public gnome-backgrounds
7625 (package
7626 (name "gnome-backgrounds")
0856b0d9 7627 (version "3.34.0")
fdba447c
RS
7628 (source
7629 (origin
7630 (method url-fetch)
7631 (uri (string-append "mirror://gnome/sources/" name "/"
7632 (version-major+minor version) "/"
7633 name "-" version ".tar.xz"))
7634 (sha256
7635 (base32
0856b0d9 7636 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 7637 (build-system meson-build-system)
fdba447c
RS
7638 (native-inputs
7639 `(("intltool" ,intltool)))
e04e8a8c 7640 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7641 (synopsis "Background images for the GNOME desktop")
7642 (description
7643 "GNOME backgrounds package contains a collection of graphics files which
7644can be used as backgrounds in the GNOME Desktop environment. Additionally,
7645the package creates the proper framework and directory structure so that you
7646can add your own files to the collection.")
7647 (license (list license:gpl2+
7648 license:cc-by2.0
7649 license:cc-by-sa2.0
7650 license:cc-by-sa3.0))))
7651
b784b1a9
RS
7652(define-public gnome-screenshot
7653 (package
7654 (name "gnome-screenshot")
d5101dab 7655 (version "3.34.0")
b784b1a9
RS
7656 (source
7657 (origin
7658 (method url-fetch)
7659 (uri (string-append "mirror://gnome/sources/" name "/"
7660 (version-major+minor version) "/"
7661 name "-" version ".tar.xz"))
7662 (sha256
7663 (base32
d5101dab 7664 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 7665 (build-system meson-build-system)
d5101dab
KK
7666 (arguments
7667 '(#:phases
7668 (modify-phases %standard-phases
7669 (add-after 'unpack 'skip-gtk-update-icon-cache
7670 ;; Don't create 'icon-theme.cache'.
7671 (lambda _
7672 (substitute* "build-aux/postinstall.py"
7673 (("gtk-update-icon-cache") "true"))
7674 #t)))))
b784b1a9
RS
7675 (native-inputs
7676 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 7677 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7678 ("intltool" ,intltool)
8356aefa 7679 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7680 ("pkg-config" ,pkg-config)))
7681 (inputs
7682 `(("gtk+" ,gtk+)
7683 ("libcanberra" ,libcanberra)
7684 ("libx11" ,libx11)
7685 ("libxext" ,libxext)))
676e7cb4 7686 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7687 (synopsis "Take pictures of your screen")
7688 (description
7689 "GNOME Screenshot is a utility used for taking screenshots of the entire
7690screen, a window or a user defined area of the screen, with optional
7691beautifying border effects.")
7692 (license license:gpl2+)))
7693
66d59111
RS
7694(define-public dconf-editor
7695 (package
7696 (name "dconf-editor")
720aa20f 7697 (version "3.34.2")
66d59111
RS
7698 (source
7699 (origin
7700 (method url-fetch)
7701 (uri (string-append "mirror://gnome/sources/" name "/"
7702 (version-major+minor version) "/"
7703 name "-" version ".tar.xz"))
7704 (sha256
7705 (base32
720aa20f 7706 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 7707 (build-system meson-build-system)
66d59111
RS
7708 (native-inputs
7709 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7710 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7711 ("intltool" ,intltool)
294ff39d
RW
7712 ("pkg-config" ,pkg-config)
7713 ("vala" ,vala)))
66d59111
RS
7714 (inputs
7715 `(("dconf" ,dconf)
7716 ("gtk+" ,gtk+)
7717 ("libxml2" ,libxml2)))
720aa20f 7718 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
7719 (synopsis "Graphical editor for GNOME's dconf configuration system")
7720 (description
7721 "Dconf-editor is a graphical tool for browsing and editing the dconf
7722configuration system for GNOME. It allows users to configure desktop
7723software that do not provide their own configuration interface.")
7724 (license license:lgpl2.1+)))
7725
96d36f38
AW
7726(define-public gnome-default-applications
7727 (package
7728 (name "gnome-default-applications")
7729 (version "0")
7730 (build-system trivial-build-system)
7731 (source #f)
7732 (propagated-inputs
8ad4f0aa
LC
7733 `(("nautilus" ,nautilus)
7734 ("evince" ,evince)))
96d36f38
AW
7735 (arguments
7736 `(#:modules ((guix build utils))
7737 #:builder
7738 (begin
7739 (use-modules (guix build utils))
7740 (let* ((out (assoc-ref %outputs "out"))
7741 (apps (string-append out "/share/applications")))
7742 (mkdir-p apps)
a6ac679f 7743 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7744 (lambda (port)
7745 (format port "[Default Applications]\n")
8ad4f0aa
LC
7746 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7747 (format port "application/pdf=evince.desktop\n")
7748 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7749 #t))))
7750 (synopsis "Default MIME type associations for the GNOME desktop")
7751 (description
7752 "Given many installed packages which might handle a given MIME type, a
7753user running the GNOME desktop probably has some preferences: for example,
7754that folders be opened by default by the Nautilus file manager, not the Baobab
7755disk usage analyzer. This package establishes that set of default MIME type
7756associations for GNOME.")
7757 (license license:gpl3+)
7758 (home-page #f)))
7759
3f1ed953
RG
7760(define-public libgovirt
7761 (package
7762 (name "libgovirt")
7763 (version "0.3.6")
7764 (source (origin
7765 (method url-fetch)
7766 (uri (string-append "mirror://gnome/sources/" name "/"
7767 (version-major+minor version) "/"
7768 name "-" version ".tar.xz"))
7769 (sha256
7770 (base32
7771 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7772 (build-system glib-or-gtk-build-system)
7773 (native-inputs
7774 `(("gettext" ,gettext-minimal)
7775 ("glib:bin" ,glib "bin")
7776 ("gobject-introspection" ,gobject-introspection)
7777 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7778 ("gtk+:bin" ,gtk+ "bin")
7779 ("pkg-config" ,pkg-config)))
7780 (inputs
7781 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7782 ("librest" ,rest)))
7783 (synopsis "GoVirt Library")
7784 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7785 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7786 (license license:gpl2+)))
7787
8672e5e9
RG
7788(define-public gnome-weather
7789 (package
7790 (name "gnome-weather")
7791 (version "3.34.0")
7792 (source (origin
7793 (method url-fetch)
7794 (uri (string-append "mirror://gnome/sources/" name "/"
7795 (version-major+minor version) "/"
7796 name "-" version ".tar.xz"))
7797 (sha256
7798 (base32
7799 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7800 (build-system meson-build-system)
7801 (native-inputs
7802 `(("gettext" ,gettext-minimal)
7803 ("glib:bin" ,glib "bin")
7804 ("gobject-introspection" ,gobject-introspection)
7805 ("gtk+:bin" ,gtk+ "bin")
7806 ("pkg-config" ,pkg-config)))
7807 (inputs
7808 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7809 ("appstream-glib" ,appstream-glib)
7810 ("geoclue" ,geoclue)
7811 ("gdk-pixbuf" ,gdk-pixbuf)
7812 ("gjs" ,gjs)
7813 ("gnome-desktop" ,gnome-desktop)
7814 ("libgweather" ,libgweather)))
4391fefc 7815 (arguments
2b68ba72
MB
7816 `(#:glib-or-gtk? #t
7817 #:phases
4391fefc
PN
7818 (modify-phases %standard-phases
7819 (add-after 'install 'fix-desktop-file
7820 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7821 ;; See https://issues.guix.gnu.org/issue/39324.
7822 (lambda* (#:key outputs #:allow-other-keys)
7823 (let* ((out (assoc-ref outputs "out"))
7824 (applications (string-append out "/share/applications")))
7825 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
7826 (("Exec=.*") "Exec=gnome-weather\n"))
7827 #t)))
7828 (add-after 'install 'wrap
7829 (lambda* (#:key inputs outputs #:allow-other-keys)
7830 (let ((out (assoc-ref outputs "out"))
7831 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7832 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7833 (wrap-program (string-append out "/bin/gnome-weather")
7834 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7835 #t))))))
8672e5e9
RG
7836 (synopsis "Weather monitoring for GNOME desktop")
7837 (description "GNOME Weather is a small application that allows you to
7838monitor the current weather conditions for your city, or anywhere in the
7839world.")
7840 (home-page "https://wiki.gnome.org/Apps/Weather")
7841 (license license:gpl2+)))
7842
dc050251
SB
7843(define-public gnome
7844 (package
7845 (name "gnome")
7846 (version (package-version gnome-shell))
7847 (source #f)
7848 (build-system trivial-build-system)
e3cfef22 7849 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7850 (propagated-inputs
8d8c6bff 7851 ;; TODO: Add or remove packages according to:
a8cda7f5 7852 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7853 `(
8d8c6bff 7854 ;; GNOME-Core-OS-Services
7922b6f7 7855 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7856 ("network-manager" ,network-manager)
7857 ("packagekit" ,packagekit)
7858 ("upower" ,upower)
7859 ;; GNOME-Core-Shell
7860 ("adwaita-icon-theme" ,adwaita-icon-theme)
7861 ("gdm" ,gdm)
7862 ("glib-networking" ,glib-networking)
7863 ("gnome-backgrounds" ,gnome-backgrounds)
7864 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7865 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7866 ("gnome-control-center" ,gnome-control-center)
7867 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7868 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 7869 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7870 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7871 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7872 ("gnome-session" ,gnome-session)
7873 ("gnome-settings-daemon" ,gnome-settings-daemon)
7874 ("gnome-shell-extensions" ,gnome-shell-extensions)
7875 ("gnome-shell" ,gnome-shell)
7876 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7877 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7878 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7879 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7880 ("gvfs" ,gvfs)
7881 ("mutter" ,mutter)
7882 ("orca" ,orca)
d36fa50f
RG
7883 ("rygel" ,rygel)
7884 ("sushi" ,sushi)
8d8c6bff
RG
7885 ;; GNOME-Core-Utilities
7886 ("baobab" ,baobab)
7887 ("cheese" ,cheese)
ce784e6c
MB
7888 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7889 ;; only works on x86_64, so exclude it on other architectures.
7890 ,@(if (string-prefix? "x86_64" (%current-system))
7891 `(("eog" ,eog))
7892 '())
8d8c6bff
RG
7893 ("epiphany" ,epiphany)
7894 ("evince" ,evince)
7895 ("file-roller" ,file-roller)
7896 ("gedit" ,gedit)
d36fa50f 7897 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7898 ("gnome-calculator" ,gnome-calculator)
7899 ("gnome-calendar" ,gnome-calendar)
7900 ("gnome-characters" ,gnome-characters)
7901 ("gnome-clocks" ,gnome-clocks)
7902 ("gnome-contacts" ,gnome-contacts)
7903 ("gnome-disk-utility" ,gnome-disk-utility)
7904 ("gnome-font-viewer" ,gnome-font-viewer)
7905 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7906 ; TODO: ("gnome-music" ,gnome-music)
7907 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7908 ("gnome-screenshot" ,gnome-screenshot)
7909 ("gnome-system-monitor" ,gnome-system-monitor)
7910 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7911 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7912 ("nautilus" ,nautilus)
7913 ("simple-scan" ,simple-scan)
7914 ("totem" ,totem)
7922b6f7
RG
7915 ("yelp" ,yelp)
7916 ;; Others
7917 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
7918 ("gnome-online-accounts" ,gnome-online-accounts)
7919
7920 ;; Packages not part of GNOME proper but that are needed for a good
7921 ;; experience. See <https://bugs.gnu.org/39646>.
7922 ;; XXX: Find out exactly which ones are needed and why.
7923 ("font-cantarell" ,font-cantarell)
7924 ("font-dejavu" ,font-dejavu)
7925 ("at-spi2-core" ,at-spi2-core)
7926 ("dbus" ,dbus)
7927 ("dconf" ,dconf)
7928 ("desktop-file-utils" ,desktop-file-utils)
7929 ("gnome-default-applications" ,gnome-default-applications)
7930 ("gnome-themes-standard" ,gnome-themes-standard)
7931 ("gst-plugins-base" ,gst-plugins-base)
7932 ("gst-plugins-good" ,gst-plugins-good)
7933 ("gucharmap" ,gucharmap)
7934 ("pinentry-gnome3" ,pinentry-gnome3)
7935 ("pulseaudio" ,pulseaudio)
7936 ("shared-mime-info" ,shared-mime-info)
7937 ("system-config-printer" ,system-config-printer)
7938 ("xdg-user-dirs" ,xdg-user-dirs)
7939 ("yelp" ,yelp)
7940 ("zenity" ,zenity)))
fe4e698d 7941 (synopsis "The GNU desktop environment")
dc050251
SB
7942 (home-page "https://www.gnome.org/")
7943 (description
fe4e698d
LC
7944 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7945applications for browsing the web, editing text and images, creating
7946documents and diagrams, playing media, scanning, and much more.")
dc050251 7947 (license license:gpl2+)))
4a526711
DT
7948
7949(define-public byzanz
7950 ;; The last stable release of Byzanz was in 2011, but there have been many
7951 ;; useful commits made to the Byzanz repository since then that it would be
7952 ;; silly to use such an old release.
7953 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7954 (package
7955 (name "byzanz")
7956 (version (string-append "0.2-1." (string-take commit 7)))
7957 (source (origin
7958 (method git-fetch)
7959 (uri (git-reference
5f13bf09 7960 (url "https://git.gnome.org/browse/byzanz")
4a526711 7961 (commit commit)))
5a6527e4 7962 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7963 (sha256
7964 (base32
7965 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7966 (build-system glib-or-gtk-build-system)
7967 (arguments
7968 '(#:phases
7969 (modify-phases %standard-phases
778d6b52 7970 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
7971 (lambda _
7972 ;; The build system cleverly detects that we're not building from
7973 ;; a release tarball and turns on -Werror for GCC.
7974 ;; Unsurprisingly, there is a warning during compilation that
7975 ;; causes the build to fail unnecessarily, so we remove the flag.
7976 (substitute* '("configure.ac")
7977 (("-Werror") ""))
778d6b52 7978 #t)))))
4a526711
DT
7979 (native-inputs
7980 `(("autoconf" ,autoconf)
7981 ("automake" ,automake)
7982 ("gnome-common" ,gnome-common)
7983 ("intltool" ,intltool)
7984 ("libtool" ,libtool)
7985 ("pkg-config" ,pkg-config)
7986 ("which" ,which)))
7987 (inputs
7988 `(("glib" ,glib)
7989 ("gstreamer" ,gstreamer)
7990 ("gst-plugins-base" ,gst-plugins-base)
7991 ("gtk+" ,gtk+)))
7992 (synopsis "Desktop recording program")
7993 (description "Byzanz is a simple desktop recording program with a
7994command-line interface. It can record part or all of an X display for a
7995specified duration and save it as a GIF encoded animated image file.")
7996 (home-page "https://git.gnome.org/browse/byzanz")
7997 (license license:gpl2+))))
3a9a4c51 7998
0ec171ec
MS
7999(define-public gsound
8000 (package
8001 (name "gsound")
8002 (version "1.0.2")
8003 (source (origin
8004 (method url-fetch)
8005 (uri (string-append "mirror://gnome/sources/" name "/"
8006 (version-major+minor version) "/"
8007 name "-" version ".tar.xz"))
8008 (sha256
8009 (base32
8010 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8011 (build-system glib-or-gtk-build-system)
8012 (native-inputs
8013 `(("pkg-config" ,pkg-config)
8014 ("gobject-introspection" ,gobject-introspection)
8015 ("vala" ,vala)))
8016 (inputs
8017 `(("glib" ,glib)
8018 ("libcanberra" ,libcanberra)))
8019 (home-page "https://wiki.gnome.org/Projects/GSound")
8020 (synopsis "GObject wrapper for libcanberra")
8021 (description
8022 "GSound is a small library for playing system sounds. It's designed to be
8023used via GObject Introspection, and is a thin wrapper around the libcanberra C
8024library.")
8025 (license license:lgpl2.1+)))
8026
3a9a4c51
RS
8027(define-public libzapojit
8028 (package
8029 (name "libzapojit")
8030 (version "0.0.3")
8031 (source (origin
8032 (method url-fetch)
8033 (uri (string-append "mirror://gnome/sources/" name "/"
8034 (version-major+minor version) "/"
8035 name "-" version ".tar.xz"))
8036 (sha256
8037 (base32
8038 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8039 (build-system gnu-build-system)
8040 (native-inputs
8041 `(("gobject-introspection" ,gobject-introspection)
8042 ("intltool" ,intltool)
8043 ("pkg-config" ,pkg-config)))
8044 (inputs
14c297fd 8045 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8046 ("json-glib" ,json-glib)
8047 ("rest" ,rest)))
8048 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8049 (synopsis "Library for accessing SkyDrive and Hotmail")
8050 (description
8051 "Libzapojit is a GLib-based library for accessing online service APIs of
8052Microsoft SkyDrive and Hotmail, using their REST protocols.")
8053 (license license:lgpl2.1+)))
9365ee1c 8054
60e2a9ae
MS
8055(define-public gnome-clocks
8056 (package
8057 (name "gnome-clocks")
feee5ff5 8058 (version "3.34.0")
60e2a9ae
MS
8059 (source (origin
8060 (method url-fetch)
8061 (uri (string-append "mirror://gnome/sources/" name "/"
8062 (version-major+minor version) "/"
8063 name "-" version ".tar.xz"))
8064 (sha256
8065 (base32
feee5ff5 8066 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8067 (build-system meson-build-system)
8068 (arguments
feee5ff5
KK
8069 '(#:glib-or-gtk? #t
8070 #:phases
8071 (modify-phases %standard-phases
8072 (add-after 'unpack 'skip-gtk-update-icon-cache
8073 ;; Don't create 'icon-theme.cache'.
8074 (lambda _
8075 (substitute* "build-aux/post-install.py"
8076 (("gtk-update-icon-cache") "true"))
8077 #t)))))
60e2a9ae
MS
8078 (native-inputs
8079 `(("vala" ,vala)
8080 ("pkg-config" ,pkg-config)
8081 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8082 ("desktop-file-utils" ,desktop-file-utils)
8083 ("gettext" ,gettext-minimal)
8084 ("itstool" ,itstool)))
8085 (inputs
8086 `(("glib" ,glib)
8087 ("gtk+" ,gtk+)
8088 ("gsound" ,gsound)
8089 ("geoclue" ,geoclue)
8090 ("geocode-glib" ,geocode-glib)
8091 ("libgweather" ,libgweather)
8092 ("gnome-desktop" ,gnome-desktop)))
8093 (home-page "https://wiki.gnome.org/Apps/Clocks")
8094 (synopsis "GNOME's clock application")
8095 (description
8096 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8097desktop. It supports world clock, stop watch, alarms, and count down timer.")
8098 (license license:gpl3+)))
8099
3c474897
KY
8100(define-public gnome-calendar
8101 (package
8102 (name "gnome-calendar")
27dd1d76 8103 (version "3.34.2")
3c474897
KY
8104 (source (origin
8105 (method url-fetch)
8106 (uri (string-append "mirror://gnome/sources/" name "/"
8107 (version-major+minor version) "/"
8108 name "-" version ".tar.xz"))
8109 (sha256
8110 (base32
27dd1d76 8111 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8112 (build-system meson-build-system)
8113 (arguments
8114 '(#:glib-or-gtk? #t
8115 ;; gnome-calendar has to be installed before the tests can be run
8116 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8117 #:tests? #f
8118 #:phases
8119 (modify-phases %standard-phases
8120 (add-after 'unpack 'skip-gtk-update-icon-cache
8121 ;; Don't create 'icon-theme.cache'.
8122 (lambda _
8123 (substitute* "build-aux/meson/meson_post_install.py"
8124 (("gtk-update-icon-cache") "true"))
8125 #t)))))
3c474897 8126 (native-inputs
a49d3e37
MS
8127 `(("gettext" ,gettext-minimal)
8128 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8129 ("pkg-config" ,pkg-config)))
8130 (inputs
27cb52a2 8131 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8132 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8133 ("libdazzle" ,libdazzle)
b63c06f1 8134 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8135 ("libgweather" ,libgweather)
8136 ("geoclue" ,geoclue)))
27cb52a2
RG
8137 (propagated-inputs
8138 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8139 (home-page "https://wiki.gnome.org/Apps/Calendar")
8140 (synopsis "GNOME's calendar application")
8141 (description
8142 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8143desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8144 (license license:gpl3+)))
8145
57b14665
MS
8146(define-public gnome-todo
8147 (package
8148 (name "gnome-todo")
9f3c6c88 8149 (version "3.28.1")
57b14665
MS
8150 (source (origin
8151 (method url-fetch)
8152 (uri (string-append "mirror://gnome/sources/" name "/"
8153 (version-major+minor version) "/"
8154 name "-" version ".tar.xz"))
8155 (sha256
8156 (base32
b17b2945
DM
8157 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8158 (patches
8159 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8160 (build-system meson-build-system)
8161 (arguments
8162 '(#:glib-or-gtk? #t
8163 #:phases (modify-phases %standard-phases
8164 (add-after
8165 'install 'wrap-gnome-todo
8166 (lambda* (#:key inputs outputs #:allow-other-keys)
8167 (let ((out (assoc-ref outputs "out"))
8168 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8169 (python-path (getenv "PYTHONPATH")))
8170 (wrap-program (string-append out "/bin/gnome-todo")
8171 ;; XXX: gi plugins are broken.
8172 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8173 ;; For plugins.
8174 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8175 `("PYTHONPATH" ":" prefix (,python-path))))
8176 #t)))))
8177 (native-inputs
8178 `(("gettext" ,gettext-minimal)
8179 ("gobject-introspection" ,gobject-introspection)
8180 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8181 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8182 ("pkg-config" ,pkg-config)))
8183 (inputs
8184 `(("rest" ,rest) ; For Todoist plugin
8185 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8186 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8187 ("libical" ,libical)
8188 ("libpeas" ,libpeas)
8189 ("python-pygobject" ,python-pygobject)
8190 ("evolution-data-server" ,evolution-data-server)
14c297fd 8191 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8192 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8193 (home-page "https://wiki.gnome.org/Apps/Todo")
8194 (synopsis "GNOME's ToDo Application")
8195 (description
8196 "GNOME To Do is a simplistic personal task manager designed to perfectly
8197fit the GNOME desktop.")
8198 (license license:gpl3+)))
8199
ab179eaf
SB
8200(define-public gnome-dictionary
8201 (package
8202 (name "gnome-dictionary")
cf81ddef 8203 (version "3.26.1")
ab179eaf
SB
8204 (source (origin
8205 (method url-fetch)
8206 (uri (string-append "mirror://gnome/sources/" name "/"
8207 (version-major+minor version) "/"
8208 name "-" version ".tar.xz"))
8209 (sha256
8210 (base32
cf81ddef
LC
8211 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8212 (build-system meson-build-system)
2776b5d5
MB
8213 (arguments '(#:glib-or-gtk? #t
8214 #:phases (modify-phases %standard-phases
8215 (add-after 'unpack 'patch-install-script
8216 (lambda _
8217 ;; This script attempts to compile glib schemas
8218 ;; and create an empty MIME database. We do
8219 ;; that elsewhere, so prevent it from running.
8220 (substitute* "build-aux/post-install.sh"
8221 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8222 #t)))))
ab179eaf
SB
8223 (native-inputs
8224 `(("glib:bin" ,glib "bin")
8225 ("gobject-introspection" ,gobject-introspection)
8226 ("intltool" ,intltool)
8227 ("itstool" ,itstool)
8228 ("pkg-config" ,pkg-config)
8229 ("xmllint" ,libxml2)))
8230 (inputs
8231 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8232 ("gtk+" ,gtk+)))
8233 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8234 (synopsis "Look up words in dictionary sources")
8235 (description
8236 "GNOME Dictionary can look for the definition or translation of a word in
8237existing databases over the internet.")
8238 (license license:gpl3+)))
8239
d13f3a03 8240(define-public gnome-tweaks
9365ee1c 8241 (package
d13f3a03 8242 (name "gnome-tweaks")
4add1bae 8243 (version "3.34.0")
9365ee1c
JN
8244 (source (origin
8245 (method url-fetch)
d13f3a03 8246 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8247 (version-major+minor version) "/"
d13f3a03
RW
8248 "gnome-tweaks-" version ".tar.xz"))
8249 (patches
8250 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8251 (sha256
8252 (base32
4add1bae 8253 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 8254 (build-system meson-build-system)
9365ee1c 8255 (arguments
d13f3a03
RW
8256 `(#:glib-or-gtk? #t
8257 #:configure-flags '("-Dlocalstatedir=/tmp"
8258 "-Dsysconfdir=/tmp")
9365ee1c 8259 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8260 ,@%meson-build-system-modules)
8261 #:phases
8262 (modify-phases %standard-phases
4add1bae
KK
8263 (add-after 'unpack 'skip-gtk-update-icon-cache
8264 ;; Don't create 'icon-theme.cache'.
8265 (lambda _
8266 (substitute* "meson-postinstall.py"
8267 (("gtk-update-icon-cache") "true"))
8268 #t))
d13f3a03
RW
8269 (add-after 'install 'wrap
8270 (@@ (guix build python-build-system) wrap))
8271 (add-after 'wrap 'wrap-gi-typelib
8272 (lambda* (#:key inputs outputs #:allow-other-keys)
8273 (let ((out (assoc-ref outputs "out"))
8274 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8275 (wrap-program (string-append out "/bin/gnome-tweaks")
8276 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8277 #t)))))
9365ee1c 8278 (native-inputs
4add1bae 8279 `(("intltool" ,intltool)
9365ee1c
JN
8280 ("pkg-config" ,pkg-config)))
8281 (inputs
c7fc414e
RH
8282 `(("gnome-desktop" ,gnome-desktop)
8283 ("gtk+" ,gtk+)
9365ee1c
JN
8284 ("gobject-introspection" ,gobject-introspection)
8285 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 8286 ("libhandy" ,libhandy)
c7fc414e
RH
8287 ("libnotify" ,libnotify)
8288 ("libsoup" ,libsoup)
8289 ("nautilus" ,nautilus)
8290 ("python" ,python)
8291 ("python-pygobject" ,python-pygobject)))
9365ee1c 8292 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8293 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8294 (description
d13f3a03 8295 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8296GNOME 3. This includes things like the fonts used in user interface elements,
8297alternative user interface themes, changes in window management behavior,
8298GNOME Shell appearance and extension, etc.")
8299 (license license:gpl3+)))
813f814a 8300
32ac717c
DT
8301(define-public gnome-shell-extensions
8302 (package
8303 (name "gnome-shell-extensions")
c7305466 8304 (version "3.34.2")
32ac717c
DT
8305 (source (origin
8306 (method url-fetch)
8307 (uri (string-append "mirror://gnome/sources/" name "/"
8308 (version-major+minor version) "/"
8309 name "-" version ".tar.xz"))
8310 (sha256
8311 (base32
c7305466 8312 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 8313 (build-system meson-build-system)
32ac717c 8314 (arguments
100f625b 8315 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8316 (native-inputs
c9ea8873
LP
8317 `(("glib:bin" ,glib "bin")
8318 ("intltool" ,intltool)
32ac717c
DT
8319 ("pkg-config" ,pkg-config)))
8320 (propagated-inputs
c9ea8873 8321 `(("glib" ,glib)))
32ac717c
DT
8322 (synopsis "Extensions for GNOME Shell")
8323 (description "GNOME Shell extensions modify and extend GNOME Shell
8324functionality and behavior.")
8325 (home-page "https://extensions.gnome.org/")
8326 (license license:gpl3+)))
8327
813f814a
DT
8328(define-public arc-theme
8329 (package
8330 (name "arc-theme")
37781323 8331 (version "20190917")
813f814a 8332 (source (origin
a18f8eaf
BH
8333 (method git-fetch)
8334 (uri (git-reference
8335 (url "https://github.com/NicoHood/arc-theme.git")
8336 (commit version)))
8337 (file-name (git-file-name name version))
813f814a
DT
8338 (sha256
8339 (base32
37781323 8340 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8341 (build-system gnu-build-system)
d88884fa
EF
8342 (arguments
8343 '(#:phases
8344 (modify-phases %standard-phases
8345 ;; autogen.sh calls configure at the end of the script.
8346 (replace 'bootstrap
4690e3a4
MC
8347 (lambda _ (invoke "autoreconf" "-vfi")))
8348 (add-before 'build 'set-home ;placate Inkscape
8349 (lambda _
8350 (setenv "HOME" (getcwd))
8351 #t)))))
813f814a
DT
8352 (native-inputs
8353 `(("autoconf" ,autoconf)
8354 ("automake" ,automake)
a18f8eaf
BH
8355 ("glib" ,glib "bin") ; for glib-compile-resources
8356 ("gnome-shell" ,gnome-shell)
8357 ("gtk+" ,gtk+)
8358 ("inkscape" ,inkscape)
8359 ("optipng" ,optipng)
8360 ("pkg-config" ,pkg-config)
bed24ecf 8361 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8362 (synopsis "A flat GTK+ theme with transparent elements")
8363 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
83642, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8365like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8366 (home-page "https://github.com/horst3180/arc-theme")
8367 ;; No "or later" language found.
a18f8eaf 8368 (license license:gpl3+)))
9987c57c 8369
d935e6a1 8370(define-public faba-icon-theme
9987c57c 8371 (package
d935e6a1 8372 (name "faba-icon-theme")
2eee7ee3 8373 (version "4.3")
d935e6a1
BT
8374 (source
8375 (origin
757e4027
TGR
8376 (method git-fetch)
8377 (uri (git-reference
8378 (url "https://github.com/snwh/faba-icon-theme.git")
8379 (commit (string-append "v" version))))
8380 (file-name (git-file-name name version))
d935e6a1 8381 (sha256
757e4027 8382 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8383 (build-system meson-build-system)
9987c57c 8384 (arguments
82da291a 8385 `(#:phases
9987c57c 8386 (modify-phases %standard-phases
82da291a 8387 (add-before 'configure 'disable-post-install
9987c57c 8388 (lambda _
82da291a
JL
8389 (substitute* "meson.build"
8390 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8391 (native-inputs
8392 `(("autoconf" ,autoconf)
8393 ("automake" ,automake)))
d935e6a1
BT
8394 (synopsis "Faba icon theme")
8395 (description
8396 "Faba is a minimal icon set used as a basis for other themes such as
8397Moka")
8398 (home-page "https://snwh.org/moka")
8399 (license (list license:lgpl3+
8400 license:cc-by-sa4.0))))
8401
9987c57c
DT
8402(define-public moka-icon-theme
8403 (package
8b0e4177 8404 (inherit faba-icon-theme)
9987c57c 8405 (name "moka-icon-theme")
105a3625 8406 (version "5.4.0")
8c3f2170
TGR
8407 (source
8408 (origin
8409 (method git-fetch)
8410 (uri (git-reference
8411 (url "https://github.com/snwh/moka-icon-theme.git")
8412 (commit (string-append "v" version))))
8413 (file-name (git-file-name name version))
8414 (sha256
8415 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8416 (propagated-inputs
8417 ;; Moka is based on Faba by using it as a fallback icon set instead of
8418 ;; bundling it, so we need to add it as a propagated input.
8419 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8420 (synopsis "Moka icon theme")
8421 (description "Moka is a stylized desktop icon set, designed to be clear,
8422simple and consistent.")
fedde43b
BT
8423 (license (list license:gpl3+
8424 license:cc-by-sa4.0))))
6fd8f8d6
DT
8425
8426(define-public arc-icon-theme
8427 (package
8428 (name "arc-icon-theme")
c4180240 8429 (version "20161122")
bbf66cbf
TGR
8430 (source
8431 (origin
8432 (method git-fetch)
8433 (uri (git-reference
8434 (url "https://github.com/horst3180/arc-icon-theme.git")
8435 (commit version)))
8436 (file-name (git-file-name name version))
8437 (sha256
8438 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8439 (build-system gnu-build-system)
9e1ede95
JL
8440 (arguments
8441 `(#:phases
8442 (modify-phases %standard-phases
8443 (add-after 'unpack 'disable-configure-during-bootstrap
8444 (lambda _
8445 (substitute* "autogen.sh"
8446 (("^\"\\$srcdir/configure\".*") ""))
8447 #t)))))
6fd8f8d6
DT
8448 (native-inputs
8449 `(("autoconf" ,autoconf)
8450 ("automake" ,automake)))
8451 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8452 (propagated-inputs
8453 `(("moka-icon-theme" ,moka-icon-theme)))
8454 (synopsis "Arc icon theme")
8455 (description "The Arc icon theme provides a set of icons matching the
8456style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8457the Moka icon theme.")
8458 (home-page "https://github.com/horst3180/arc-icon-theme")
8459 (license license:gpl3+)))
6064a4e8
LF
8460
8461(define-public folks
8462 (package
8463 (name "folks")
fd11f6f3 8464 (version "0.13.1")
6064a4e8
LF
8465 (source (origin
8466 (method url-fetch)
8467 (uri (string-append
e5f4796e 8468 "mirror://gnome/sources/folks/"
6064a4e8 8469 (version-major+minor version) "/"
e5f4796e 8470 "folks-" version ".tar.xz"))
6064a4e8
LF
8471 (sha256
8472 (base32
fd11f6f3
KK
8473 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8474 (build-system meson-build-system)
8475 (arguments
8476 '(#:phases
8477 (modify-phases %standard-phases
8478 (add-after 'unpack 'skip-gtk-update-icon-cache
8479 ;; Don't create 'icon-theme.cache'.
8480 (lambda _
8481 (substitute* "meson_post_install.py"
8482 (("gtk-update-icon-cache") "true"))
8483 #t)))))
6064a4e8
LF
8484 (inputs
8485 `(("bdb" ,bdb)
8486 ("dbus-glib" ,dbus-glib)
8487 ("evolution-data-server" ,evolution-data-server)
8488 ("glib" ,glib)
8489 ("libgee" ,libgee)
fd11f6f3 8490 ("readline" ,readline)
6064a4e8
LF
8491 ("telepathy-glib" ,telepathy-glib)))
8492 (native-inputs
fd11f6f3
KK
8493 `(("glib:bin" ,glib "bin")
8494 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
8495 ("intltool" ,intltool)
8496 ("pkg-config" ,pkg-config)
8497 ("vala" ,vala)))
8498 (synopsis "Library to aggregate data about people")
8499 (description "Libfolks is a library that aggregates information about people
8500from multiple sources (e.g., Telepathy connection managers for IM contacts,
8501Evolution Data Server for local contacts, libsocialweb for web service contacts,
8502etc.) to create metacontacts. It's written in Vala, which generates C code when
8503compiled.")
8504 (home-page "https://wiki.gnome.org/Projects/Folks")
8505 (license license:lgpl2.1+)))
01ea778f
LF
8506
8507(define-public gfbgraph
8508 (package
8509 (name "gfbgraph")
8510 (version "0.2.3")
8511 (source (origin
8512 (method url-fetch)
8513 (uri (string-append
237d4cf7 8514 "mirror://gnome/sources/gfbgraph/"
01ea778f 8515 (version-major+minor version) "/"
237d4cf7 8516 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8517 (sha256
8518 (base32
8519 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8520 (build-system glib-or-gtk-build-system)
8521 (arguments
8522 `(#:tests? #f ; Tests appear to require the network.
8523 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8524 #:configure-flags '("--disable-gtk-doc"
8525 "--disable-static"
8526 "--enable-introspection")))
8527 (native-inputs
8528 `(("pkg-config" ,pkg-config)
8529 ("gobject-introspection" ,gobject-introspection)))
8530 (inputs
8531 `(("json-glib" ,json-glib)
14c297fd 8532 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8533 ("rest" ,rest)))
8534 (synopsis "GLib/GObject wrapper for the Facebook API")
8535 (description "This library allows you to use the Facebook API from
8536GLib/GObject code.")
8537 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8538 (license license:lgpl2.1+)))
3920868c 8539
8540(define-public libgnomekbd
8541 (package
8542 (name "libgnomekbd")
70f2b0f9 8543 (version "3.26.1")
3920868c 8544 (source (origin
8545 (method url-fetch)
d47fa82d 8546 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8547 (version-major+minor version) "/"
d47fa82d 8548 "libgnomekbd-" version ".tar.xz"))
3920868c 8549 (sha256
8550 (base32
70f2b0f9 8551 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8552 (build-system gnu-build-system)
8553 (native-inputs
8554 `(("pkg-config" ,pkg-config)
8555 ("glib" ,glib "bin")
8556 ("intltool" ,intltool)))
8557 (propagated-inputs
8558 ;; Referred to in .h files and .pc.
8559 `(("glib" ,glib)
8560 ("gtk+" ,gtk+)
8561 ("libxklavier" ,libxklavier)))
8562 (home-page "https://www.gnome.org")
8563 (synopsis "GNOME keyboard configuration library")
8564 (description
8565 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8566environment, which can notably display keyboard layouts.")
8567 (license license:lgpl2.0+)))
85327d0d 8568
8569;;; This package is no longer maintained:
8570;;; https://wiki.gnome.org/Attic/LibUnique
8571;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8572;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8573(define-public libunique
8574 (package
8575 (name "libunique")
8576 (version "3.0.2")
8577 (source (origin
8578 (method url-fetch)
8579 (uri (string-append "mirror://gnome/sources/" name "/"
8580 (version-major+minor version) "/"
8581 name "-" version ".tar.xz"))
8582 (sha256
8583 (base32
8584 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8585 (build-system glib-or-gtk-build-system)
8586 (arguments
8587 `(#:configure-flags '("--disable-static"
8588 "--disable-dbus" ; use gdbus
8589 "--enable-introspection")))
8590 (native-inputs
8591 `(("pkg-config" ,pkg-config)
8592 ("gobject-introspection" ,gobject-introspection)
8593 ("glib:bin" ,glib "bin")
8594 ("gtk-doc" ,gtk-doc)))
8595 (propagated-inputs
8596 ;; Referred to in .h files and .pc.
8597 `(("gtk+" ,gtk+)))
8598 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8599 (synopsis "Library for writing single instance applications")
8600 (description
8601 "Libunique is a library for writing single instance applications. If you
8602launch a single instance application twice, the second instance will either just
8603quit or will send a message to the running instance. Libunique makes it easy to
8604write this kind of application, by providing a base class, taking care of all
8605the IPC machinery needed to send messages to a running instance, and also
8606handling the startup notification side.")
8607 (license license:lgpl2.1+)))
54021cd8
RS
8608
8609(define-public gnome-calculator
8610 (package
8611 (name "gnome-calculator")
4cb09502 8612 (version "3.34.1")
54021cd8
RS
8613 (source
8614 (origin
8615 (method url-fetch)
8616 (uri (string-append "mirror://gnome/sources/" name "/"
8617 (version-major+minor version) "/"
8618 name "-" version ".tar.xz"))
8619 (sha256
8620 (base32
4cb09502 8621 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8622 (build-system meson-build-system)
8623 (arguments '(#:glib-or-gtk? #t))
54021cd8 8624 (native-inputs
4cb09502
MB
8625 `(("gettext" ,gettext-minimal)
8626 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8627 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8628 ("itstool" ,itstool)
2d475910 8629 ("vala" ,vala)
54021cd8
RS
8630 ("pkg-config" ,pkg-config)))
8631 (inputs
112e9083 8632 `(("glib" ,glib)
07ace641 8633 ("gtksourceview" ,gtksourceview)
4cb09502 8634 ("libgee" ,libgee)
54021cd8 8635 ("libsoup" ,libsoup)
112e9083 8636 ("libxml2" ,libxml2)
2c2da7ec 8637 ("mpc" ,mpc)
54021cd8
RS
8638 ("mpfr" ,mpfr)))
8639 (home-page "https://wiki.gnome.org/Apps/Calculator")
8640 (synopsis "Desktop calculator")
8641 (description
8642 "Calculator is an application that solves mathematical equations and
8643is suitable as a default application in a Desktop environment.")
8644 (license license:gpl3)))
0bd69759
RS
8645
8646(define-public xpad
8647 (package
8648 (name "xpad")
c85626bb 8649 (version "5.1.0")
0bd69759
RS
8650 (source
8651 (origin
8652 (method url-fetch)
08fda9c6
R
8653 (uri (string-append "https://launchpad.net/xpad/trunk/"
8654 version "/+download/"
0bd69759
RS
8655 name "-" version ".tar.bz2"))
8656 (sha256
8657 (base32
c85626bb 8658 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8659 (build-system gnu-build-system)
8660 (native-inputs
08fda9c6
R
8661 `(("autoconf" ,autoconf)
8662 ("automake" ,automake)
8663 ("gtk+:bin" ,gtk+ "bin")
8664 ("intltool" ,intltool)
0bd69759
RS
8665 ("pkg-config" ,pkg-config)))
8666 (inputs
c72647fb 8667 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8668 ("libsm" ,libsm)))
8669 (home-page "https://wiki.gnome.org/Apps/Xpad")
8670 (synopsis "Virtual sticky note")
8671 (description
8672 "Xpad is a sticky note that strives to be simple, fault tolerant,
8673and customizable. Xpad consists of independent pad windows, each is
8674basically a text box in which notes can be written.")
8675 (license license:gpl3+)))
3ad7dce1
RS
8676
8677(define-public gucharmap
c60063ea
RW
8678 (let ((unicode-files
8679 '(("Blocks.txt"
1f8b5515 8680 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8681 ("DerivedAge.txt"
1f8b5515 8682 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8683 ("NamesList.txt"
1f8b5515 8684 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8685 ("Scripts.txt"
1f8b5515 8686 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8687 ("UnicodeData.txt"
1f8b5515 8688 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8689 ("Unihan.zip"
1f8b5515 8690 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8691 (package
8692 (name "gucharmap")
1f8b5515 8693 (version "12.0.1")
c60063ea
RW
8694 (source
8695 (origin
8696 (method url-fetch)
8697 (uri (string-append "mirror://gnome/sources/" name "/"
8698 (version-major+minor version) "/"
8699 name "-" version ".tar.xz"))
8700 (sha256
8701 (base32
1f8b5515 8702 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8703 (build-system glib-or-gtk-build-system)
8704 (arguments
8705 `(#:modules ((ice-9 match)
8706 (guix build glib-or-gtk-build-system)
8707 (guix build utils))
8708 #:configure-flags
8709 (list "--with-unicode-data=../unicode-data")
8710 #:phases
8711 (modify-phases %standard-phases
8712 (add-after 'unpack 'prepare-unicode-data
8713 (lambda* (#:key inputs #:allow-other-keys)
8714 (mkdir-p "../unicode-data")
8715 (with-directory-excursion "../unicode-data"
8716 (for-each (match-lambda
8717 ((file _)
8718 (install-file (assoc-ref inputs file) ".")))
8719 ',unicode-files))
8720 #t)))))
8721 (native-inputs
8722 `(("desktop-file-utils" ,desktop-file-utils)
8723 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8724 ("gobject-introspection" ,gobject-introspection)
8725 ("intltool" ,intltool)
8726 ("itstool" ,itstool)
8727 ("pkg-config" ,pkg-config)
8728 ,@(map (match-lambda
8729 ((file hash)
8730 `(,file
8731 ,(origin
8732 (method url-fetch)
8733 (uri (string-append
1f8b5515 8734 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8735 file))
8736 (sha256 (base32 hash))))))
8737 unicode-files)
8738 ("unzip" ,unzip)))
8739 (inputs
8740 `(("gtk+" ,gtk+)
8741 ("xmllint" ,libxml2)))
8742 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8743 (synopsis "Unicode character picker and font browser")
8744 (description
8745 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8746characters and categories for the installed fonts, and to examine their
8747detailed properties. It is an easy way to find the character you might
8748only know by its Unicode name or code point.")
c60063ea 8749 (license license:gpl3+))))
04ce840a
RS
8750
8751(define-public bluefish
8752 (package
8753 (name "bluefish")
290fe81d 8754 (version "2.2.11")
04ce840a
RS
8755 (source
8756 (origin
8757 (method url-fetch)
8758 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8759 "bluefish-" version ".tar.gz"))
04ce840a 8760 (sha256
290fe81d 8761 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8762 (build-system gnu-build-system)
8763 (native-inputs
8764 `(("desktop-file-utils" ,desktop-file-utils)
8765 ("intltool" ,intltool)
8766 ("pkg-config" ,pkg-config)))
8767 (inputs
8768 `(("enchant" ,enchant)
8769 ("gtk+" ,gtk+)
290fe81d 8770 ("python" ,python-wrapper)
04ce840a
RS
8771 ("xmllint" ,libxml2)
8772 ("gucharmap" ,gucharmap)))
8773 (home-page "http://bluefish.openoffice.nl")
8774 (synopsis "Web development studio")
8775 (description
8776 "Bluefish is an editor targeted towards programmers and web developers,
8777with many options to write web sites, scripts and other code.
8778Bluefish supports many programming and markup languages.")
8779 (license license:gpl3+)))
1f6a73ee
RS
8780
8781(define-public gnome-system-monitor
8782 (package
8783 (name "gnome-system-monitor")
083cffaf 8784 (version "3.32.1")
1f6a73ee
RS
8785 (source
8786 (origin
8787 (method url-fetch)
8788 (uri (string-append "mirror://gnome/sources/" name "/"
8789 (version-major+minor version) "/"
8790 name "-" version ".tar.xz"))
8791 (sha256
8792 (base32
083cffaf 8793 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8794 (build-system meson-build-system)
8795 (arguments
8796 '(#:glib-or-gtk? #t
8797 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8798 (native-inputs
8799 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8800 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8801 ("intltool" ,intltool)
8802 ("itstool" ,itstool)
8803 ("libgtop" ,libgtop)
4985d9aa 8804 ("polkit" ,polkit)
1f6a73ee
RS
8805 ("pkg-config" ,pkg-config)))
8806 (inputs
8807 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8808 ("gtk+" ,gtk+)
8809 ("gtkmm" ,gtkmm)
8810 ("librsvg" ,librsvg)
4985d9aa
RW
8811 ("libxml2" ,libxml2)
8812 ("libwnck" ,libwnck)))
1f6a73ee
RS
8813 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8814 (synopsis "Process viewer and system resource monitor for GNOME")
8815 (description
8816 "GNOME System Monitor is a GNOME process viewer and system monitor with
8817an attractive, easy-to-use interface. It has features, such as a tree view
8818for process dependencies, icons for processes, the ability to hide processes,
8819graphical time histories of CPU/memory/swap usage and the ability to
8820kill/reinice processes.")
8821 (license license:gpl2+)))
3e00ac47
SB
8822
8823(define-public python-pyatspi
8824 (package
8825 (name "python-pyatspi")
4f937a32 8826 (version "2.34.0")
3e00ac47
SB
8827 (source (origin
8828 (method url-fetch)
8829 (uri (string-append
8830 "mirror://gnome/sources/pyatspi/"
8831 (version-major+minor version)
8832 "/pyatspi-" version ".tar.xz"))
8833 (sha256
8834 (base32
4f937a32 8835 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8836 (build-system gnu-build-system)
b95af3f6
JL
8837 (arguments
8838 `(#:phases
8839 (modify-phases %standard-phases
8840 (add-before 'build 'fix-atk-load
8841 (lambda _
8842 (substitute* "pyatspi/__init__.py"
8843 (("from gi.repository import Atspi")
8844 "gi.require_version('Gtk', '3.0')
8845from gi.repository import Gtk
8846from gi.repository import Atspi"))
8847 #t)))))
3e00ac47
SB
8848 (native-inputs
8849 `(("pkg-config" ,pkg-config)))
8850 (inputs
8851 `(("python" ,python)
8852 ("python-pygobject" ,python-pygobject)))
8853 (synopsis "Python client bindings for D-Bus AT-SPI")
8854 (home-page "https://wiki.linuxfoundation.org/accessibility\
8855/atk/at-spi/at-spi_on_d-bus")
8856 (description
8857 "This package includes a python client library for the AT-SPI D-Bus
8858accessibility infrastructure.")
8859 (license license:lgpl2.0)
8860 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8861
8862(define-public orca
8863 (package
8864 (name "orca")
30e76da1 8865 (version "3.34.1")
53201c0d
SB
8866 (source (origin
8867 (method url-fetch)
8868 (uri (string-append
8869 "mirror://gnome/sources/" name "/"
8870 (version-major+minor version) "/"
8871 name "-" version ".tar.xz"))
8872 (sha256
8873 (base32
30e76da1 8874 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
8875 (build-system glib-or-gtk-build-system)
8876 (arguments
8877 '(#:phases
8878 (modify-phases %standard-phases
8879 (add-before 'configure 'qualify-xkbcomp
8880 (lambda* (#:key inputs #:allow-other-keys)
8881 (let ((xkbcomp (string-append
8882 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8883 (substitute* "src/orca/orca.py"
8884 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8885 #t))
8886 (add-after 'install 'wrap-orca
8887 (lambda* (#:key outputs #:allow-other-keys)
8888 (let* ((out (assoc-ref outputs "out"))
8889 (prog (string-append out "/bin/orca")))
8890 (wrap-program prog
8891 `("GI_TYPELIB_PATH" ":" prefix
8892 (,(getenv "GI_TYPELIB_PATH")))
8893 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8894 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8895 `("PYTHONPATH" ":" prefix
8896 (,(getenv "PYTHONPATH")))))
8897 #t)))))
8898 (native-inputs
8899 `(("intltool" ,intltool)
8900 ("itstool" ,itstool)
8901 ("pkg-config" ,pkg-config)
8902 ("xmllint" ,libxml2)))
8903 (inputs
8904 `(("at-spi2-atk" ,at-spi2-atk)
8905 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8906 ("gstreamer" ,gstreamer)
8907 ("gst-plugins-base" ,gst-plugins-base)
8908 ("gst-plugins-good" ,gst-plugins-good)
8909 ("gtk+" ,gtk+)
8910 ("python" ,python)
8911 ("python-pygobject" ,python-pygobject)
8912 ("python-pyatspi" ,python-pyatspi)
8913 ("python-speechd" ,speech-dispatcher)
8914 ("xkbcomp" ,xkbcomp)))
8915 (synopsis
8916 "Screen reader for individuals who are blind or visually impaired")
8917 (home-page "https://wiki.gnome.org/Projects/Orca")
8918 (description
8919 "Orca is a screen reader that provides access to the graphical desktop
8920via speech and refreshable braille. Orca works with applications and toolkits
8921that support the Assistive Technology Service Provider Interface (AT-SPI).")
8922 (license license:lgpl2.1+)))
411ba511
LC
8923
8924(define-public gspell
8925 (package
8926 (name "gspell")
7a6bbe9b 8927 (version "1.8.2")
411ba511
LC
8928 (source (origin
8929 (method url-fetch)
8930 (uri (string-append "mirror://gnome/sources/" name "/"
8931 (version-major+minor version) "/"
8932 name "-" version ".tar.xz"))
8933 (sha256
8934 (base32
7a6bbe9b 8935 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8936 (patches (search-patches "gspell-dash-test.patch"))))
8937 (build-system glib-or-gtk-build-system)
8938 (arguments
d0f50164 8939 '(#:configure-flags (list "--enable-vala")
8940 #:phases
411ba511
LC
8941 (modify-phases %standard-phases
8942 (add-before 'check 'pre-check
8943 (lambda* (#:key inputs #:allow-other-keys)
8944 ;; Tests require a running X server.
8945 (system "Xvfb :1 &")
8946 (setenv "DISPLAY" ":1")
8947
8948 ;; For the missing /etc/machine-id.
8949 (setenv "DBUS_FATAL_WARNINGS" "0")
8950
8951 ;; Allow Enchant and its Aspell backend to find the en_US
8952 ;; dictionary.
8953 (setenv "ASPELL_DICT_DIR"
8954 (string-append (assoc-ref inputs "aspell-dict-en")
8955 "/lib/aspell"))
8956 #t)))))
8957 (inputs
eccd35be 8958 `(("gtk+" ,gtk+)
a801ae4c
TGR
8959 ("glib" ,glib)
8960 ("iso-codes" ,iso-codes)))
411ba511
LC
8961 (native-inputs
8962 `(("glib" ,glib "bin")
26ba3f07 8963 ("gobject-introspection" ,gobject-introspection)
411ba511 8964 ("pkg-config" ,pkg-config)
d0f50164 8965 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
8966 ("xmllint" ,libxml2)
8967
8968 ;; For tests.
a801ae4c 8969 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8970 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8971 (propagated-inputs
9b1bb757 8972 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8973 (home-page "https://wiki.gnome.org/Projects/gspell")
8974 (synopsis "GNOME's alternative spell checker")
8975 (description
8976 "gspell provides a flexible API to add spell-checking to a GTK+
8977application. It provides a GObject API, spell-checking to text entries and
8978text views, and buttons to choose the language.")
8979 (license license:gpl2+)))
d1d739fa
CM
8980
8981(define-public gnome-planner
8982 (package
8983 (name "gnome-planner")
8984 (version "0.14.6")
8985 (source (origin
8986 (method url-fetch)
8987 (uri (string-append "mirror://gnome/sources/planner/"
8988 (version-major+minor version) "/planner-"
8989 version ".tar.xz"))
8990 (sha256
8991 (base32
8992 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8993 (build-system glib-or-gtk-build-system)
8994 (arguments
8995 ;; Disable the Python bindings because the Planner program functions
8996 ;; without them, and (as of 2017-06-13) we have not packaged all of
8997 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8998 `(#:configure-flags
8999 (list "--disable-python"
9000 ,@(if (string=? "aarch64-linux" (%current-system))
9001 '("--build=aarch64-unknown-linux-gnu")
9002 '()))))
d1d739fa
CM
9003 (inputs
9004 `(("libgnomecanvas" ,libgnomecanvas)
9005 ("libgnomeui" ,libgnomeui)
9006 ("libglade" ,libglade)
9007 ("gnome-vfs" ,gnome-vfs)
9008 ("gconf" ,gconf)
9009 ("libxml2" ,libxml2)
9010 ("libxslt" ,libxslt)
9011 ("gtk+" ,gtk+)
9012 ("glib" ,glib)))
9013 (native-inputs
9014 `(("intltool" ,intltool)
9015 ("scrollkeeper" ,scrollkeeper)
9016 ("pkg-config" ,pkg-config)))
9017 (home-page "https://wiki.gnome.org/Apps/Planner")
9018 (synopsis "Project management software for the GNOME desktop")
9019 (description
9020 "GNOME Planner is a project management tool based on the Work Breakdown
9021Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9022the resources, tasks, and constraints that you define, Planner generates
9023various views into a project. For example, Planner can show a Gantt chart of
9024the project. It can show a detailed summary of tasks including their
9025duration, cost, and current progress. It can also show a report of resource
9026utilization that highlights under-utilized and over-utilized resources. These
9027views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9028 (license license:gpl2+)))
64fce637
RS
9029
9030(define-public lollypop
9031 (package
9032 (name "lollypop")
24b5d8f7 9033 (version "1.2.32")
64fce637
RS
9034 (source
9035 (origin
9036 (method url-fetch)
24b5d8f7 9037 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9038 "lollypop-" version ".tar.xz"))
64fce637 9039 (sha256
24b5d8f7 9040 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9041 (build-system meson-build-system)
64fce637 9042 (arguments
7a9543d7
TGR
9043 `(#:imported-modules
9044 (,@%meson-build-system-modules
9045 (guix build python-build-system))
9046 #:modules
9047 ((guix build meson-build-system)
9048 ((guix build python-build-system) #:prefix python:)
9049 (guix build utils))
aa498fc0 9050 #:glib-or-gtk? #t
7a9543d7 9051 #:tests? #f ; no test suite
5fc9b6c1
EF
9052 #:phases
9053 (modify-phases %standard-phases
5fc9b6c1
EF
9054 (add-after 'install 'wrap-program
9055 (lambda* (#:key outputs #:allow-other-keys)
9056 (let ((out (assoc-ref outputs "out"))
9057 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9058 (wrap-program (string-append out "/bin/lollypop")
9059 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9060 #t))
8ac8b3b3 9061 (add-after 'install 'wrap-python
7a9543d7 9062 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9063 (native-inputs
9064 `(("intltool" ,intltool)
9065 ("itstool" ,itstool)
aa498fc0
TD
9066 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9067 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9068 ("pkg-config" ,pkg-config)))
9069 (inputs
9070 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9071 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9072 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9073 ("libnotify" ,libnotify)
9074 ("libsecret" ,libsecret)
9075 ("libsoup" ,libsoup)
9076 ("python" ,python)
9077 ("python-beautifulsoup4" ,python-beautifulsoup4)
9078 ("python-gst" ,python-gst)
d029afdd 9079 ("python-pil" ,python-pillow)
64fce637 9080 ("python-pycairo" ,python-pycairo)
cc9c83c5 9081 ("python-pygobject" ,python-pygobject)
64fce637
RS
9082 ("python-pylast" ,python-pylast)
9083 ("totem-pl-parser" ,totem-pl-parser)
9084 ("webkitgtk" ,webkitgtk)))
9085 (propagated-inputs
9086 `(;; gst-plugins-base is required to start Lollypop,
9087 ;; the others are required to play streaming.
64fce637
RS
9088 ("gst-plugins-good" ,gst-plugins-good)
9089 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9090 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9091 (synopsis "GNOME music playing application")
9092 (description
9093 "Lollypop is a music player designed to play well with GNOME desktop.
9094Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9095from artists and tracks from the web. It also fetches cover artworks
9096automatically and it can stream songs from online music services and charts.")
9097 (license license:gpl3+)))
d831d49d
AW
9098
9099(define-public gnome-video-effects
9100 (package
9101 (name "gnome-video-effects")
9102 (version "0.4.3")
9103 (source (origin
9104 (method url-fetch)
9105 (uri (string-append "mirror://gnome/sources/" name "/"
9106 (version-major+minor version) "/" name "-"
9107 version ".tar.xz"))
9108 (sha256
9109 (base32
9110 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9111 (build-system glib-or-gtk-build-system)
9112 (arguments
9113 `(#:out-of-source? #f))
9114 (native-inputs
9115 `(("glib:bin" ,glib "bin")
9116 ("intltool" ,intltool)
9117 ("gettext" ,gettext-minimal)
9118 ("pkg-config" ,pkg-config)))
9119 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9120 (synopsis "Video effects for Cheese and other GNOME applications")
9121 (description
9122 "A collection of GStreamer video filters and effects to be used in
9123photo-booth-like software, such as Cheese.")
9124 (license license:gpl2+)))
3511c780
AW
9125
9126(define-public cheese
9127 (package
9128 (name "cheese")
3a7e066f 9129 (version "3.34.0")
3511c780
AW
9130 (source (origin
9131 (method url-fetch)
9132 (uri (string-append "mirror://gnome/sources/" name "/"
9133 (version-major+minor version) "/" name "-"
9134 version ".tar.xz"))
9135 (sha256
9136 (base32
3a7e066f 9137 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9138 (arguments
3a7e066f
KK
9139 `(#:glib-or-gtk? #t
9140 ;; Tests require GDK.
9141 #:tests? #f
3511c780
AW
9142 #:phases
9143 (modify-phases %standard-phases
3a7e066f 9144 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9145 (lambda _
9146 ;; Don't create 'icon-theme.cache'
3a7e066f 9147 (substitute* "meson_post_install.py"
3511c780
AW
9148 (("gtk-update-icon-cache") (which "true")))
9149 #t))
9150 (add-after 'install 'wrap-cheese
9151 (lambda* (#:key inputs outputs #:allow-other-keys)
9152 (let ((out (assoc-ref outputs "out"))
9153 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9154 (wrap-program (string-append out "/bin/cheese")
9155 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9156 #t)))))
3a7e066f 9157 (build-system meson-build-system)
3511c780 9158 (native-inputs
3a7e066f
KK
9159 `(("docbook-xsl" ,docbook-xsl)
9160 ("glib:bin" ,glib "bin")
9161 ("gtk-doc" ,gtk-doc)
3511c780
AW
9162 ("intltool" ,intltool)
9163 ("itstool" ,itstool)
9164 ("libxml2" ,libxml2)
3a7e066f 9165 ("libxslt" ,libxslt)
3511c780
AW
9166 ("pkg-config" ,pkg-config)
9167 ("vala" ,vala)))
9168 (propagated-inputs
6a19f03e
RW
9169 `(("gnome-video-effects" ,gnome-video-effects)
9170 ("clutter" ,clutter)
3511c780
AW
9171 ("clutter-gst" ,clutter-gst)
9172 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9173 ("libcanberra" ,libcanberra)
3511c780
AW
9174 ("gdk-pixbuf" ,gdk-pixbuf)
9175 ("glib" ,glib)
6a19f03e
RW
9176 ("gstreamer" ,gstreamer)))
9177 (inputs
9178 `(("gnome-desktop" ,gnome-desktop)
3511c780 9179 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9180 ("gst-plugins-base" ,gst-plugins-base)
9181 ("gst-plugins-bad" ,gst-plugins-bad)
9182 ("gtk+" ,gtk+)
3511c780
AW
9183 ("libx11" ,libx11)
9184 ("libxtst" ,libxtst)))
9185 (home-page "https://wiki.gnome.org/Apps/Cheese")
9186 (synopsis "Webcam photo booth software for GNOME")
9187 (description
9188 "Cheese uses your webcam to take photos and videos. Cheese can also
9189apply fancy special effects and lets you share the fun with others.")
9190 (license license:gpl2+)))
3c5dbd2b 9191
9192(define-public sound-juicer
9193 (package
9194 (name "sound-juicer")
9195 (version "3.24.0")
9196 (source
9197 (origin
9198 (method url-fetch)
9199 (uri (string-append "mirror://gnome/sources/" name "/"
9200 (version-major+minor version) "/"
9201 name "-" version ".tar.xz"))
9202 (sha256
9203 (base32
9204 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9205 (build-system glib-or-gtk-build-system)
9206 (native-inputs
9207 `(("desktop-file-utils" ,desktop-file-utils)
9208 ("intltool" ,intltool)
9209 ("itstool" ,itstool)
9210 ("pkg-config" ,pkg-config)
9211 ("xmllint" ,libxml2)))
9212 (inputs
9213 `(("gtk+" ,gtk+)
9214 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9215 ("gstreamer" ,gstreamer)
9216 ("gst-plugins-base" ,gst-plugins-base)
9217 ("gst-plugins-good" ,gst-plugins-good)
9218 ("iso-codes" ,iso-codes)
9219 ("libbrasero-media3" ,brasero)
9220 ("libcanberra" ,libcanberra)
9221 ("libdiscid" ,libdiscid)
9222 ("libmusicbrainz" ,libmusicbrainz)
9223 ("neon" ,neon)))
9224 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9225 (synopsis "Audio music cd ripper")
9226 (description "Sound Juicer extracts audio from compact discs and convert it
9227into audio files that a personal computer or digital audio player can play.
9228It supports ripping to any audio codec supported by a GStreamer plugin, such as
9229mp3, Ogg Vorbis and FLAC")
9230 (license license:gpl2+)))
4e3fdeb7 9231
0d3f1708
CB
9232(define-public soundconverter
9233 (package
9234 (name "soundconverter")
7f4b45a3 9235 (version "3.0.2")
0d3f1708
CB
9236 (source
9237 (origin
9238 (method url-fetch)
9239 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9240 version "/+download/"
9241 "soundconverter-" version ".tar.xz"))
9242
9243 (sha256
7f4b45a3 9244 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
9245 (build-system glib-or-gtk-build-system)
9246 (arguments
9247 `(#:imported-modules ((guix build python-build-system)
9248 (guix build glib-or-gtk-build-system)
9249 ,@%gnu-build-system-modules)
9250
9251 #:modules ((guix build glib-or-gtk-build-system)
9252 (guix build utils)
9253 ((guix build gnu-build-system) #:prefix gnu:)
9254 ((guix build python-build-system) #:prefix python:))
9255
9256 #:phases
9257 (modify-phases %standard-phases
0d3f1708
CB
9258 (add-after 'install 'wrap-soundconverter-for-python
9259 (assoc-ref python:%standard-phases 'wrap))
9260 (add-after 'install 'wrap-soundconverter
9261 (lambda* (#:key inputs outputs #:allow-other-keys)
9262 (let ((out (assoc-ref outputs "out"))
9263 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9264 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9265 (wrap-program (string-append out "/bin/soundconverter")
9266 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9267 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9268 #t)))))
9269 (native-inputs
9270 `(("intltool" ,intltool)
9271 ("pkg-config" ,pkg-config)
9272 ("glib:bin" ,glib "bin")))
9273 (inputs
9274 `(("gtk+" ,gtk+)
9275 ("python" ,python)
9276 ("python-pygobject" ,python-pygobject)
9277 ("gstreamer" ,gstreamer)
9278 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9279 (home-page "https://soundconverter.org/")
0d3f1708
CB
9280 (synopsis "Convert between audio formats with a graphical interface")
9281 (description
9282 "SoundConverter supports converting between many audio formats including
9283Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9284configurable file renaming. ")
9285 (license license:gpl3)))
9286
4e3fdeb7 9287(define-public workrave
89f2d736
TGR
9288 (package
9289 (name "workrave")
52fc6508 9290 (version "1.10.42")
89f2d736
TGR
9291 (source
9292 (origin
9293 (method git-fetch)
9294 (uri (git-reference
9295 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9296 (commit (string-append "v" (string-map
9297 (match-lambda (#\. #\_) (chr chr))
9298 version)))))
89f2d736
TGR
9299 (file-name (git-file-name name version))
9300 (sha256
52fc6508 9301 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9302 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9303 (arguments
9304 ;; The only tests are maintainer tests (in po/), which fail.
9305 `(#:tests? #f))
d1c96847
MC
9306 (inputs `(("glib" ,glib)
9307 ("gtk+" ,gtk+)
9308 ("gdk-pixbuf" ,gdk-pixbuf)
9309 ("gtkmm" ,gtkmm)
9310 ("glibmm" ,glibmm)
9311 ("libx11" ,libx11)
9312 ("libxtst" ,libxtst)
9313 ("dconf" ,dconf)
9314 ("libice" ,libice)
9315 ("libsm" ,libsm)
9316 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9317 (native-inputs `(("boost" ,boost)
89f2d736 9318 ("pkg-config" ,pkg-config)
f2d97d57 9319 ("gettext" ,gettext-minimal)
89f2d736
TGR
9320 ("autoconf" ,autoconf)
9321 ("autoconf-archive" , autoconf-archive)
9322 ("automake" ,automake)
9323 ("libtool" ,libtool)
9324 ("intltool" ,intltool)
89f2d736 9325 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9326 ("python3" ,python-3)
9327 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9328 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9329 (description
9330 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9331repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9332micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9333 (home-page "http://www.workrave.org")
9334 (license license:gpl3+)))
312afa7d
LC
9335
9336(define-public ghex
9337 (package
9338 (name "ghex")
3748992a 9339 (version "3.18.4")
312afa7d
LC
9340 (source (origin
9341 (method url-fetch)
2fbab848 9342 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9343 (version-major+minor version) "/"
2fbab848 9344 "ghex-" version ".tar.xz"))
312afa7d
LC
9345 (sha256
9346 (base32
3748992a
KK
9347 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9348 (build-system meson-build-system)
9349 (arguments
9350 '(#:glib-or-gtk? #t
9351 #:phases
9352 (modify-phases %standard-phases
9353 (add-after 'unpack 'skip-gtk-update-icon-cache
9354 ;; Don't create 'icon-theme.cache'.
9355 (lambda _
9356 (substitute* "meson_post_install.py"
9357 (("gtk-update-icon-cache") (which "true")))
9358 #t)))))
312afa7d
LC
9359 (native-inputs
9360 `(("pkg-config" ,pkg-config)
3748992a 9361 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9362 ("gnome-common" ,gnome-common)
9363 ("which" ,which)
9364 ("intltool" ,intltool)
9365 ("yelp-tools" ,yelp-tools)
2fbab848 9366 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9367 (inputs
9368 `(("atk" ,atk)
9369 ("gtk" ,gtk+)))
9370 (synopsis "GNOME hexadecimal editor")
9371 (description "The GHex program can view and edit files in two ways:
9372hexadecimal or ASCII. It is useful for editing binary files in general.")
9373 (home-page "https://wiki.gnome.org/Apps/Ghex")
9374 (license license:gpl2)))
4b2ed6c2
RW
9375
9376(define-public libdazzle
9377 (package
9378 (name "libdazzle")
c94db354 9379 (version "3.34.1")
4b2ed6c2
RW
9380 (source (origin
9381 (method url-fetch)
687b4909 9382 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9383 (version-major+minor version) "/"
687b4909 9384 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9385 (sha256
9386 (base32
c94db354 9387 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
9388 (build-system meson-build-system)
9389 (arguments
9390 `(#:phases
9391 (modify-phases %standard-phases
4b2ed6c2
RW
9392 (add-before 'check 'pre-check
9393 (lambda _
9394 ;; Tests require a running X server.
9395 (system "Xvfb :1 &")
9396 (setenv "DISPLAY" ":1")
9397 #t)))))
9398 (native-inputs
687b4909 9399 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9400 ("pkg-config" ,pkg-config)
687b4909 9401 ;; For tests.
ff337525 9402 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9403 (inputs
9404 `(("glib" ,glib)
9405 ("gobject-introspection" ,gobject-introspection)
9406 ("gtk+" ,gtk+)
9407 ("vala" ,vala)))
9408 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9409 (synopsis "Companion library to GObject and Gtk+")
9410 (description "The libdazzle library is a companion library to GObject and
9411Gtk+. It provides various features that the authors wish were in the
9412underlying library but cannot for various reasons. In most cases, they are
9413wildly out of scope for those libraries. In other cases, they are not quite
9414generic enough to work for everyone.")
9415 (license license:gpl3+)))
7d3bb433
RW
9416
9417(define-public evolution
9418 (package
9419 (name "evolution")
0662fe86 9420 (version "3.34.2")
7d3bb433
RW
9421 (source (origin
9422 (method url-fetch)
9423 (uri (string-append "mirror://gnome/sources/evolution/"
9424 (version-major+minor version) "/"
9425 "evolution-" version ".tar.xz"))
9426 (sha256
9427 (base32
0662fe86 9428 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
9429 (build-system cmake-build-system)
9430 (arguments
5229bea1
KK
9431 `(#:imported-modules (,@%cmake-build-system-modules
9432 (guix build glib-or-gtk-build-system))
9433 #:modules ((guix build cmake-build-system)
9434 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9435 (guix build utils))
9436 #:configure-flags
7d3bb433 9437 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9438 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9439 ; in four years and cannot be built.
5229bea1
KK
9440 #:phases
9441 (modify-phases %standard-phases
9442 ;; The build system attempts to install user interface modules to the
9443 ;; output directory of the "evolution-data-server" package. This
9444 ;; change redirects that change.
9445 (add-after 'unpack 'patch-ui-module-dir
9446 (lambda* (#:key outputs #:allow-other-keys)
9447 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9448 (("\\$\\{edsuimoduledir\\}")
9449 (string-append (assoc-ref outputs "out")
9450 "/lib/evolution-data-server/ui-modules")))
9451 #t))
9452 (add-after 'install 'glib-or-gtk-compile-schemas
9453 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9454 (add-after 'install 'glib-or-gtk-wrap
9455 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9456 (native-inputs
ad6e168b 9457 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9458 ("pkg-config" ,pkg-config)
9459 ("intltool" ,intltool)
9460 ("itstool" ,itstool)))
9461 (inputs
9462 `(("enchant" ,enchant)
9463 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9464 ("gcr" ,gcr)
ad6e168b 9465 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9466 ("gnome-autoar" ,gnome-autoar)
9467 ("gnome-desktop" ,gnome-desktop)
0662fe86 9468 ("gspell" ,gspell)
7d3bb433
RW
9469 ("highlight" ,highlight)
9470 ("libcanberra" ,libcanberra)
9471 ("libgweather" ,libgweather)
9472 ("libnotify" ,libnotify)
9473 ("libsoup" ,libsoup)
9474 ("nss" ,nss)
9475 ("openldap" ,openldap)
9476 ("webkitgtk" ,webkitgtk)
9477 ("ytnef" ,ytnef)))
9478 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9479 (synopsis "Manage your email, contacts and schedule")
9480 (description "Evolution is a personal information management application
9481that provides integrated mail, calendaring and address book
9482functionality.")
9483 ;; See COPYING for details.
23dbe621 9484 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9485 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9486 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9487
9488(define-public gthumb
9489 (package
9490 (name "gthumb")
8280676b 9491 (version "3.8.2")
169d63f5
AT
9492 (source (origin
9493 (method url-fetch)
9494 (uri (string-append "mirror://gnome/sources/gthumb/"
9495 (version-major+minor version) "/"
9496 "gthumb-" version ".tar.xz"))
9497 (sha256
9498 (base32
8280676b 9499 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9500 (build-system meson-build-system)
9501 (arguments
9502 `(#:glib-or-gtk? #t
9503 #:configure-flags
9504 ;; Ensure the RUNPATH contains all installed library locations.
9505 (list (string-append "-Dc_link_args=-Wl,-rpath="
9506 (assoc-ref %outputs "out")
9507 "/lib/gthumb/extensions")
9508 (string-append "-Dcpp_link_args=-Wl,-rpath="
9509 (assoc-ref %outputs "out")
9510 "/lib/gthumb/extensions"))))
9511 (native-inputs
9512 `(("pkg-config" ,pkg-config)
9513 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9514 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9515 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9516 ("intltool" ,intltool)
9517 ("itstool" ,itstool)))
9518 (inputs
9519 `(("exiv2" ,exiv2)
9520 ("gtk" ,gtk+)
9521 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9522 ("gstreamer" ,gstreamer)
9523 ("clutter" ,clutter)
9524 ("clutter-gst" ,clutter-gst)
9525 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9526 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9527 ("libtiff" ,libtiff)
9528 ("libraw" ,libraw)))
9529 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9530 (synopsis "GNOME image viewer and browser")
9531 (description "GThumb is an image viewer, browser, organizer, editor and
9532advanced image management tool")
9533 (license license:gpl2+)))
08be02be
AT
9534
9535(define-public terminator
9536 (package
9537 (name "terminator")
9538 (version "1.91")
9539 (source (origin
9540 (method url-fetch)
9541 (uri (string-append "https://launchpad.net/" name "/"
9542 "gtk3/" version "/" "+download/"
9543 name "-" version ".tar.gz"))
9544 (sha256
9545 (base32
9546 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9547 (build-system python-build-system)
9548 (native-inputs
9549 `(("intltool" ,intltool)
9550 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9551 ("gettext" ,gettext-minimal)
9552 ("pkg-config" ,pkg-config)))
9553 (inputs
9554 `(("cairo" ,cairo)
9555 ("gobject-introspection" ,gobject-introspection)
96681d4b 9556 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9557 ("python2-pycairo" ,python2-pycairo)
9558 ("python2-pygobject" ,python2-pygobject)
9559 ("python2-psutil" ,python2-psutil)
9560 ("vte" ,vte)))
9561 (arguments
96681d4b
TGR
9562 `(#:python ,python-2 ; Python 3 isn't supported
9563 #:imported-modules ((guix build glib-or-gtk-build-system)
9564 ,@%python-build-system-modules)
9565 #:modules ((guix build python-build-system)
9566 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9567 (guix build utils))
08be02be
AT
9568 #:phases
9569 (modify-phases %standard-phases
9570 (add-after
9571 'install 'wrap-program
9572 (lambda* (#:key outputs #:allow-other-keys)
9573 (let ((prog (string-append (assoc-ref outputs "out")
9574 "/bin/terminator")))
9575 (wrap-program prog
9576 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9577 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9578 #t)))
9579 (add-after 'wrap-program 'glib-or-gtk-wrap
9580 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9581 (home-page "https://gnometerminator.blogspot.com/")
9582 (synopsis "Store and run multiple GNOME terminals in one window")
9583 (description
9584 "Terminator allows you to run multiple GNOME terminals in a grid and
9585+tabs, and it supports drag and drop re-ordering of terminals.")
9586 (license license:gpl2)))
213315d4
JF
9587
9588(define-public libhandy
9589 (package
9590 (name "libhandy")
f6501b9f 9591 (version "0.0.12")
213315d4
JF
9592 (source
9593 (origin
9594 (method git-fetch)
9595 (uri (git-reference
9596 (url "https://source.puri.sm/Librem5/libhandy")
9597 (commit (string-append "v" version))))
9598 (file-name (git-file-name name version))
9599 (sha256
f6501b9f 9600 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9601 (build-system meson-build-system)
9602 (arguments
9603 `(#:configure-flags
9604 '("-Dglade_catalog=disabled"
9605 "-Dgtk_doc=true")
9606 #:phases
9607 (modify-phases %standard-phases
213315d4
JF
9608 (add-before 'check 'pre-check
9609 (lambda _
9610 ;; Tests require a running X server.
9611 (system "Xvfb :1 &")
9612 (setenv "DISPLAY" ":1")
9613 #t)))))
9614 (inputs
9615 `(("gtk+" ,gtk+)))
9616 (native-inputs
9617 `(("glib:bin" ,glib "bin")
9618 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9619 ("vala" ,vala)
9620 ("gtk-doc" ,gtk-doc)
9621 ("pkg-config" ,pkg-config)
9622 ("gettext" ,gettext-minimal)
d41ee146
TGR
9623
9624 ;; Test suite dependencies.
ff337525 9625 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9626 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9627 (home-page "https://source.puri.sm/Librem5/libhandy")
9628 (synopsis "Library full of GTK+ widgets for mobile phones")
9629 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9630interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9631for usage on small and big screens.")
213315d4 9632 (license license:lgpl2.1+)))
a830d14d
GL
9633
9634(define-public libgit2-glib
9635 (package
9636 (name "libgit2-glib")
6448c2e1 9637 (version "0.99.0.1")
a830d14d
GL
9638 (source (origin
9639 (method url-fetch)
9640 (uri (string-append "mirror://gnome/sources/" name "/"
9641 (version-major+minor version) "/"
9642 name "-" version ".tar.xz"))
9643 (sha256
9644 (base32
6448c2e1 9645 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9646 (build-system meson-build-system)
9647 (native-inputs
9648 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9649 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9650 ("pkg-config" ,pkg-config)
9651 ("python-pygobject" ,python-pygobject)
9652 ("python-wrapper" ,python-wrapper)
9653 ("vala" ,vala)))
9654 (inputs
9655 `(("glib" ,glib)
8c6aae46
MB
9656 ("libssh2" ,libssh2)))
9657 (propagated-inputs
9658 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9659 ("libgit2" ,libgit2)))
9660 (synopsis "GLib wrapper around the libgit2 Git access library")
9661 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9662access library. It only implements the core plumbing functions, not really the
9663higher level porcelain stuff.")
9664 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9665 (license license:gpl2+)))
93beace0 9666
08db81c9
LP
9667(define-public gitg
9668 (package
9669 (name "gitg")
9670 (version "3.32.1")
9671 (source (origin
9672 (method url-fetch)
9673 (uri (string-append "mirror://gnome/sources/" name "/"
9674 (version-major+minor version) "/"
9675 name "-" version ".tar.xz"))
9676 (sha256
9677 (base32
9678 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9679 (build-system meson-build-system)
9680 (arguments
9681 `(#:glib-or-gtk? #t
9682 #:phases
9683 (modify-phases %standard-phases
9684 (add-after 'unpack 'disable-post-install-partially
9685 (lambda _
9686 (substitute* "meson_post_install.py"
9687 (("'python'") ; there are no python sources to compile
9688 (string-append "'" (which "true") "'"))
9689 (("gtk-update-icon-cache") (which "true")))
9690 #t))
9691 (add-after 'unpack 'fix-test-sources
9692 (lambda _
9693 (substitute* "tests/libgitg/test-commit.vala"
9694 (("/bin/bash") (which "bash")))
9695 #t))
9696 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9697 (lambda* (#:key outputs #:allow-other-keys)
9698 (let ((prog (string-append (assoc-ref outputs "out")
9699 "/bin/gitg")))
9700 (wrap-program prog
9701 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9702 #t))))))
9703 (inputs
9704 `(("glib" ,glib)
9705 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9706 ("gtk+" ,gtk+)
9707 ("gtkspell3" ,gtkspell3)
9708 ("gtksourceview" ,gtksourceview-3)
9709 ("json-glib" ,json-glib)
9710 ("libdazzle" ,libdazzle)
9711 ("libgee" ,libgee)
08db81c9
LP
9712 ("libgit2-glib" ,libgit2-glib)
9713 ("libpeas" ,libpeas)
9714 ("libsecret" ,libsecret)
9715 ("libsoup" ,libsoup)
9716 ("libxml2" ,libxml2)))
9717 (native-inputs
9718 `(("glib:bin" ,glib "bin")
9719 ("gtk+:bin" ,gtk+ "bin")
9720 ("gobject-introspection" ,gobject-introspection)
9721 ("intltool" ,intltool)
9722 ("pkg-config" ,pkg-config)
9723 ("vala" ,vala)))
9724 (synopsis "Graphical user interface for git")
9725 (description
9726 "gitg is a graphical user interface for git. It aims at being a small,
9727fast and convenient tool to visualize the history of git repositories.
9728Besides visualization, gitg also provides several utilities to manage your
9729repository and commit your work.")
9730 (home-page "https://wiki.gnome.org/Apps/Gitg")
9731 (license license:gpl2+)))
9732
1e600ed0
RW
9733(define-public gamin
9734 (package
9735 (name "gamin")
9736 (version "0.1.10")
9737 (source (origin
9738 (method url-fetch)
9739 (uri (string-append "mirror://gnome/sources/" name "/"
9740 (version-major+minor version) "/"
9741 name "-" version ".tar.bz2"))
9742 (sha256
9743 (base32
9744 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9745 (build-system gnu-build-system)
9746 (arguments
9747 `(#:phases
9748 (modify-phases %standard-phases
9749 (add-after 'unpack 'remove-deprecated-macro
9750 (lambda _
9751 (substitute* '("server/gam_node.c"
9752 "server/gam_subscription.h"
9753 "server/gam_node.h"
9754 "server/gam_subscription.c")
9755 (("G_CONST_RETURN") "const"))
9756 #t)))))
9757 (inputs
9758 `(("glib" ,glib)))
9759 (native-inputs
9760 `(("intltool" ,intltool)
9761 ("pkg-config" ,pkg-config)))
9762 (home-page "https://people.gnome.org/~veillard/gamin/")
9763 (synopsis "File alteration monitor")
9764 (description
9765 "Gamin is a file and directory monitoring system defined to be a subset
9766of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9767library which detects when a file or a directory has been modified.")
1e600ed0
RW
9768 (license license:gpl2+)))
9769
93beace0
DW
9770(define-public gnome-mahjongg
9771 (package
9772 (name "gnome-mahjongg")
9773 (version "3.35.1")
9774 (source (origin
9775 (method git-fetch)
9776 (uri (git-reference
9777 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9778 (commit version)))
9779 (file-name (git-file-name name version))
9780 (sha256
9781 (base32
9782 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9783 (build-system meson-build-system)
9784 (arguments
9785 `(#:glib-or-gtk? #t))
9786 (native-inputs
9787 `(("appstream-glib" ,appstream-glib)
9788 ("gettext" ,gettext-minimal)
9789 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9790 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9791 ("itstool" ,itstool)
9792 ("pkg-config" ,pkg-config)
9793 ("vala" ,vala)))
9794 (propagated-inputs
9795 `(("dconf" ,dconf)))
9796 (inputs
9797 `(("glib" ,glib)
9798 ("gtk+" ,gtk+)
9799 ("librsvg" ,librsvg)))
9800 (synopsis "Mahjongg tile-matching game")
9801 (description "GNOME Mahjongg is a game based on the classic Chinese
9802tile-matching game Mahjong. It features multiple board layouts, tile themes,
9803and a high score table.")
9804 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9805 (license license:gpl2+)))
f825476c 9806
76ea7632
RG
9807(define-public gnome-themes-extra
9808 (package
9809 (name "gnome-themes-extra")
9810 (version "3.28")
9811 (source
9812 (origin
9813 (method url-fetch)
9814 (uri (string-append "mirror://gnome/sources/" name "/"
9815 (version-major+minor version) "/" name "-"
9816 version ".tar.xz"))
9817 (sha256
9818 (base32
9819 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9820 (build-system gnu-build-system)
885424bf
RG
9821 (arguments
9822 '(#:configure-flags
9823 ;; Don't create 'icon-theme.cache'.
9824 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9825 (true (string-append coreutils "/bin/true")))
9826 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9827 (native-inputs
9828 `(("glib:bin" ,glib "bin")
9829 ("intltool" ,intltool)
9830 ("pkg-config" ,pkg-config)))
9831 (inputs
9832 `(("glib" ,glib)
9833 ("gtk+" ,gtk+)
9834 ("gtk+-2" ,gtk+-2)
9835 ("librsvg" ,librsvg)
9836 ("libxml2" ,libxml2)))
9837 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9838 (synopsis "GNOME Extra Themes")
9839 (description "This package provides themes and related elements that don't
9840really fit in other upstream packages. It offers legacy support for GTK+ 2
9841versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9842index files needed for Adwaita to be used outside of GNOME.")
9843 (license license:lgpl2.1+)))
9844
f825476c
LP
9845(define-public polari
9846 (package
9847 (name "polari")
9848 (version "3.32.2")
9849 (source (origin
9850 (method url-fetch)
9851 (uri (string-append "mirror://gnome/sources/polari/"
9852 (version-major+minor version)
9853 "/polari-" version ".tar.xz"))
9854 (sha256
9855 (base32
9856 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9857 (build-system meson-build-system)
9858 (arguments
9859 `(#:glib-or-gtk? #t
9860 #:phases
9861 (modify-phases %standard-phases
9862 (add-after 'unpack 'skip-gtk-update-icon-cache
9863 (lambda _
9864 (substitute* "meson/meson-postinstall.sh"
9865 (("gtk-update-icon-cache") (which "true")))
9866 #t))
9867 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9868 (lambda* (#:key outputs #:allow-other-keys)
9869 (let ((prog (string-append (assoc-ref outputs "out")
9870 "/bin/polari")))
9871 (wrap-program prog
9872 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9873 #t))))))
9874 (inputs
9875 `(("glib" ,glib)
9876 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9877 ("gspell" ,gspell)
9878 ("gtk+" ,gtk+)
9879 ("gjs" ,gjs)
9880 ("libsecret" ,libsecret)
9881 ("libsoup" ,libsoup)
9882 ("telepathy-glib" ,telepathy-glib)
9883 ("telepathy-logger" ,telepathy-logger)))
9884 (native-inputs
9885 `(("glib:bin" ,glib "bin")
9886 ("gobject-introspection" ,gobject-introspection)
9887 ("intltool" ,intltool)
9888 ("pkg-config" ,pkg-config)
9889 ("yelp-tools" ,yelp-tools)))
9890 (propagated-inputs
9891 `(("telepathy-idle" ,telepathy-idle)
9892 ("telepathy-mission-control" ,telepathy-mission-control)))
9893 (synopsis "Simple IRC Client")
9894 (description
9895 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9896integrate seamlessly with the GNOME desktop.")
9897 (home-page "https://wiki.gnome.org/Apps/Polari")
9898 (license license:gpl2+)))
59d4c8c2
PN
9899
9900(define-public gnome-boxes
9901 (package
9902 (name "gnome-boxes")
9903 (version "3.35.91")
9904 (source
9905 (origin
9906 (method url-fetch)
9907 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9908 (version-major+minor version) "/"
9909 "gnome-boxes-" version ".tar.xz"))
9910 (sha256
9911 (base32
9912 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9913 (build-system meson-build-system)
9914 (arguments
9915 '(#:glib-or-gtk? #t
9916 #:configure-flags (list "-Drdp=false"
9917 (string-append "-Dc_link_args=-Wl,-rpath="
9918 (assoc-ref %outputs "out")
9919 "/lib/gnome-boxes"))))
9920 (native-inputs
9921 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9922 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9923 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9924 ("itstool" ,itstool)
9925 ("intltool" ,intltool)
9926 ("vala" ,vala)
9927 ("pkg-config" ,pkg-config)))
9928 (inputs
9929 `(("libarchive" ,libarchive)
9930 ("gtk" ,gtk+)
9931 ("gtk-vnc" ,gtk-vnc)
9932 ("libosinfo" ,libosinfo)
9933 ("libsecret" ,libsecret)
9934 ("libsoup" ,libsoup)
9935 ("libusb" ,libusb)
9936 ("libvirt" ,libvirt)
9937 ("libvirt-glib" ,libvirt-glib)
9938 ("libxml" ,libxml2)
9939 ("spice-gtk" ,spice-gtk)
9940 ("sparql-query" ,sparql-query)
9941 ("vte" ,vte)
9942 ("webkitgtk" ,webkitgtk)
9943 ("tracker" ,tracker)
9944 ("libgudev" ,libgudev)))
9945 (home-page "https://wiki.gnome.org/Apps/Boxes")
9946 (synopsis "View, access, and manage remote and virtual systems")
9947 (description "GNOME Boxes is a simple application to view, access, and
9948manage remote and virtual systems.")
9949 (license (list
9950 ;; For data/icons/empty-boxes.png.
9951 license:cc-by2.0
9952 ;; For all others.
9953 license:lgpl2.0+))))
0e26c3cf 9954
9955(define-public geary
9956 (package
9957 (name "geary")
9958 (version "3.34.1")
9959 (source (origin
9960 (method git-fetch)
9961 (uri (git-reference
9962 (url "https://gitlab.gnome.org/GNOME/geary")
9963 (commit version)))
9964 (file-name (git-file-name name version))
9965 (sha256
9966 (base32
9967 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9968 (build-system meson-build-system)
9969 (arguments
9970 `(#:glib-or-gtk? #t
9971 #:phases (modify-phases %standard-phases
9972 (add-after 'unpack 'disable-failing-tests
9973 (lambda _
9974 (substitute* "test/meson.build"
9975 (("test\\('client-tests', geary_test_client_bin\\)")
9976 ""))
9977 #t))
9978 (add-after 'unpack 'disable-postinstall-script
9979 (lambda _
9980 (substitute* "meson.build"
9981 (("meson.add_install_script\\(\
9982join_paths\\('build-aux', 'post_install.py'\\)\\)")
9983 ""))
9984 #t))
9985 (add-before 'check 'setup-xvfb
9986 (lambda _
9987 (system "Xvfb :1 &")
9988 (setenv "DISPLAY" ":1")
9989 #t)))))
9990 (inputs
9991 `(("enchant" ,enchant)
9992 ("folks" ,folks)
9993 ("gcr" ,gcr)
9994 ("glib" ,glib)
9995 ("gmime" ,gmime-2.6)
9996 ("gnome-online-accounts:lib"
9997 ,gnome-online-accounts "lib")
9998 ("gspell" ,gspell)
9999 ("gtk+" ,gtk+)
10000 ("iso-codes" ,iso-codes)
10001 ("json-glib" ,json-glib)
10002 ("libcanberra" ,libcanberra)
10003 ("libgee" ,libgee)
10004 ("libhandy" ,libhandy)
10005 ("libpeas" ,libpeas)
10006 ("libsecret" ,libsecret)
10007 ("libunwind" ,libunwind)
10008 ("sqlite" ,sqlite)
10009 ("webkitgtk" ,webkitgtk)
10010 ("ytnef" ,ytnef)))
10011 (native-inputs
10012 `(("appstream-glib" ,appstream-glib)
10013 ("cmake-minimal" ,cmake-minimal)
10014 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 10015 ("gettext" ,gettext-minimal)
0e26c3cf 10016 ("glib:bin" ,glib "bin")
10017 ("gobject-introspection" ,gobject-introspection)
10018 ("itstool" ,itstool)
10019 ("libarchive" ,libarchive)
10020 ("libxml2" ,libxml2)
10021 ("pkg-config" ,pkg-config)
10022 ("vala" ,vala)
10023 ("xvfb" ,xorg-server-for-tests)))
10024 (synopsis "GNOME email application built around conversations")
10025 (description
10026 "Geary collects related messages together into conversations,
10027making it easy to find and follow your discussions. Full-text and keyword
10028search makes it easy to find the email you are looking for. Geary's
10029full-featured composer lets you send rich, styled text with images, links, and
10030lists, but also send lightweight, easy to read text messages. Geary
10031automatically picks up your existing GNOME Online Accounts, and adding more is
10032easy. Geary has a clean, fast, modern interface that works like you want it
10033to.")
10034 (home-page "https://wiki.gnome.org/Apps/Geary")
10035 (license (list
10036 ;; geary
10037 license:lgpl2.1+
10038 ;; icons
10039 license:cc-by3.0
10040 license:cc-by-sa3.0
10041 license:public-domain
10042 ;; snowball
10043 license:bsd-2))))
1a17d21b 10044
21051eb7
VM
10045(define-public glabels
10046 (package
10047 (name "glabels")
10048 (version "3.4.1")
10049 (source
10050 (origin
10051 (method url-fetch)
10052 (uri (string-append "mirror://gnome/sources/" name "/"
10053 (version-major+minor version) "/"
10054 "glabels-" version ".tar.xz"))
10055 (sha256
10056 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10057 (build-system glib-or-gtk-build-system)
10058 (native-inputs
10059 `(("gettext" ,gettext-minimal)
10060 ("glib:bin" ,glib "bin")
10061 ("intltool" ,intltool)
10062 ("itstool" ,itstool)
10063 ("pkg-config" ,pkg-config)))
10064 (inputs
10065 `(("gtk+" ,gtk+)
10066 ("librsvg" ,librsvg)
10067 ("libxml2" ,libxml2)))
10068 (home-page "https://glabels.org/")
10069 (synopsis "Program for creating labels and business cards")
10070 (description
10071 "gLabels is a program for creating labels and business cards. It is
10072designed to work with various laser/ink-jet peel-off label and business
10073card sheets that you’ll find at most office supply stores.")
10074 (license license:gpl3+)))
10075
2cd1de32
BT
10076(define-public libratbag
10077 (package
10078 (name "libratbag")
10079 (version "0.13")
10080 (source
10081 (origin
10082 (method git-fetch)
10083 (uri (git-reference
10084 (url "https://github.com/libratbag/libratbag.git")
10085 (commit (string-append "v" version))))
10086 (file-name (git-file-name name version))
10087 (sha256
10088 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10089 (build-system meson-build-system)
10090 (arguments
10091 `(#:configure-flags
10092 (list "-Dsystemd=false"
10093 "-Dlogind-provider=elogind")
10094 #:phases
10095 (modify-phases %standard-phases
10096 (add-after 'install 'wrap
10097 (lambda* (#:key inputs outputs #:allow-other-keys)
10098 (let* ((out (assoc-ref outputs "out"))
10099 (site (string-append
10100 "/lib/python"
10101 ,(version-major+minor (package-version python))
10102 "/site-packages"))
10103 (evdev (string-append
10104 (assoc-ref inputs "python-evdev") site))
10105 (pygo (string-append
10106 (assoc-ref inputs "python-pygobject") site))
10107 (python-wrap
10108 `("PYTHONPATH" = (,evdev ,pygo))))
10109 (wrap-program (string-append out "/bin/" "ratbagctl")
10110 python-wrap)
10111 #t))))))
10112 (native-inputs
10113 `(("check" ,check)
10114 ("pkg-config" ,pkg-config)
10115 ("swig" ,swig)
10116 ("valgrind" ,valgrind)))
10117 (inputs
10118 `(("glib" ,glib)
10119 ("json-glib" ,json-glib)
10120 ("libevdev" ,libevdev)
10121 ("libsystemd" ,elogind)
10122 ("libunistring" ,libunistring)
10123 ("python-evdev" ,python-evdev)
10124 ("python-pygobject" ,python-pygobject)
10125 ("udev" ,eudev)))
10126 (home-page "https://github.com/libratbag/libratbag")
10127 (synopsis "DBus daemon and utility for configuring gaming mice")
10128 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10129configure input devices, mainly gaming mice. The daemon provides a generic
10130way to access the various features exposed by these mice and abstracts away
10131hardware-specific and kernel-specific quirks. There is also the
10132@command{ratbagctl} command line interface for configuring devices.
10133
10134libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10135Steelseries.
10136
10137The ratbagd DBus service can be enabled by adding the following service to
10138your operating-system definition:
10139
10140 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10141 (license license:expat)))
10142
50d31a40
BT
10143(define-public piper
10144 (package
10145 (name "piper")
10146 (version "0.4")
10147 (source
10148 (origin
10149 (method git-fetch)
10150 (uri (git-reference
10151 (url "https://github.com/libratbag/piper.git")
10152 (commit version)))
10153 (sha256
10154 (base32 "17h06j8lxpbfygq8fzycl7lml4vv7r05bsyhh3gga2hp0zms4mvg"))))
10155 (build-system meson-build-system)
10156 (native-inputs
10157 `(("gettext" ,gettext-minimal)
10158 ("glib:bin" ,glib "bin")
10159 ("gobject-introspection" ,gobject-introspection)
10160 ("pkg-config" ,pkg-config)
10161 ("python-flake8" ,python-flake8)))
10162 (inputs
10163 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10164 ("gtk" ,gtk+)
10165 ("gtk:bin" ,gtk+ "bin")
10166 ("librsvg" ,librsvg)
10167 ("python-evdev" ,python-evdev)
10168 ("python-lxml" ,python-lxml)
10169 ("python-pycairo" ,python-pycairo)
10170 ("python-pygobject" ,python-pygobject)))
10171 (arguments
10172 `(#:imported-modules ((guix build python-build-system)
10173 ,@%meson-build-system-modules)
10174 #:modules (((guix build python-build-system) #:prefix python:)
10175 (guix build meson-build-system)
10176 (guix build utils))
10177 #:phases
10178 (modify-phases %standard-phases
10179 (add-after 'unpack 'dont-update-gtk-icon-cache
10180 (lambda _
10181 (substitute* "meson.build"
10182 (("meson.add_install_script('meson_install.sh')") ""))
10183 #t))
10184 ;; TODO: Switch to wrap-script when it is fixed.
10185 (add-after 'install 'wrap-python
10186 (assoc-ref python:%standard-phases 'wrap))
10187 (add-after 'wrap-python 'wrap
10188 (lambda* (#:key outputs #:allow-other-keys)
10189 (wrap-program
10190 (string-append (assoc-ref outputs "out" )"/bin/piper")
10191 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10192 #t)))))
10193 (home-page "https://github.com/libratbag/piper/")
10194 (synopsis "Configure bindings and LEDs on gaming mice")
10195 (description "Piper is a GTK+ application for configuring gaming mice with
10196onboard configuration for key bindings via libratbag. Piper requires
10197a @command{ratbagd} daemon running with root privileges. It can be run
10198manually as root, but is preferably configured as a DBus service that can
10199launch on demand. This can be configured by enabling the following service,
10200provided there is a DBus service present:
10201
10202 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10203 (license license:gpl2)))
10204
1a17d21b
NG
10205(define-public parlatype
10206 ;; This is one commit away from 2.0, because the latter introduced
10207 ;; a regression in ASR.
10208 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10209 (revision "0"))
10210 (package
10211 (name "parlatype")
10212 (version (git-version "2.0" revision commit))
10213 (source
10214 (origin
10215 (method git-fetch)
10216 (uri (git-reference
10217 (url "https://github.com/gkarsay/parlatype.git")
10218 (commit commit)))
10219 (file-name (git-file-name name version))
10220 (sha256
10221 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10222 (build-system meson-build-system)
10223 (arguments
10224 `(#:glib-or-gtk? #t
10225 #:tests? #f ;require internet access
10226 #:phases
10227 (modify-phases %standard-phases
10228 (add-after 'install 'wrap-parlatype
10229 ;; Add gstreamer plugin provided in this package to system's
10230 ;; plugins.
10231 (lambda* (#:key outputs #:allow-other-keys)
10232 (let* ((out (assoc-ref outputs "out"))
10233 (gst-plugin-path (string-append
10234 out "/lib/gstreamer-1.0/"
10235 ":"
10236 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10237 (wrap-program (string-append out "/bin/parlatype")
10238 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10239 #t)))))
10240 (native-inputs
10241 `(("appstream-glib" ,appstream-glib)
10242 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10243 ("gettext" ,gettext-minimal)
10244 ("glib" ,glib "bin") ;for glib-compile-resources
10245 ("pkg-config" ,pkg-config)
10246 ("yelp-tools" ,yelp-tools)))
10247 (inputs
10248 `(("gst-plugins-base" ,gst-plugins-base)
10249 ("gst-plugins-good" ,gst-plugins-good)
10250 ("gstreamer" ,gstreamer)
10251 ("gtk+" ,gtk+)
10252 ("pocketsphinx" ,pocketsphinx)
10253 ("pulseaudio" ,pulseaudio)
10254 ("sphinxbase" ,sphinxbase)))
10255 (home-page "http://gkarsay.github.io/parlatype/")
10256 (synopsis "GNOME audio player for transcription")
10257 (description "Parlatype is an audio player for the GNOME desktop
10258environment. Its main purpose is the manual transcription of spoken
10259audio files.")
10260 (license license:gpl3+))))
95856a6e
AT
10261
10262(define-public jsonrpc-glib
10263 (package
10264 (name "jsonrpc-glib")
10265 (version "3.34.0")
10266 (source (origin
10267 (method url-fetch)
10268 (uri (string-append "mirror://gnome/sources/" name "/"
10269 (version-major+minor version) "/"
10270 name "-" version ".tar.xz"))
10271 (sha256
10272 (base32
10273 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10274 (build-system meson-build-system)
10275 (inputs
10276 `(("json-glib" ,json-glib)
10277 ("glib" ,glib)))
10278 (native-inputs
10279 `(("pkg-config" ,pkg-config)
10280 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10281 ("gobject-introspection" ,gobject-introspection)
10282 ("vala" ,vala)))
10283 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10284 (synopsis "JSON-RPC library for GLib")
10285 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10286peers in either a synchronous or asynchronous fashion. It also allows
10287communicating using the GVariant serialization format instead of JSON when
10288both peers support it. You might want that when communicating on a single
10289host to avoid parser overhead and memory-allocator fragmentation.")
10290 (license license:lgpl2.1+)))