gnu: network-manager: Switch to meson-build-system.
[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)
648 ("libsecret" ,libsecret)
649 ("network-manager" ,network-manager)
650 ("network-manager-applet" ,network-manager-applet)
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
811 (name "libnma")
812 (version "1.8.26")
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 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
821 (build-system meson-build-system)
822 (arguments
823 `(#:glib-or-gtk? #t))
824 (native-inputs
825 `(("gettext" ,gettext-minimal)
826 ("glib:bin" ,glib "bin")
827 ("gtk-doc" ,gtk-doc)
828 ("gobject-introspection" ,gobject-introspection)
829 ("pkg-config" ,pkg-config)))
830 (inputs
831 `(("adwaita-icon-theme" ,adwaita-icon-theme)
832 ("gcr" ,gcr)
833 ("gtk+" ,gtk+)
834 ("iso-codes" ,iso-codes)
835 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
836 ("network-manager" ,network-manager)))
837 (synopsis "Network Manager's applet library")
838 (description "Libnma is an applet library for Network Manager. It was
839initially part of network-manager-applet and has now become a separate
840project.")
841 (home-page "https://gitlab.gnome.org/GNOME/libnma")
842
843 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
844 ;; "LGPL-2.1+".
845 (license license:gpl2+)))
846
30416265
RG
847(define-public gnome-menus
848 (package
849 (name "gnome-menus")
850 (version "3.32.0")
851 (source (origin
852 (method url-fetch)
853 (uri (string-append "mirror://gnome/sources/gnome-menus/"
854 (version-major+minor version) "/"
855 name "-" version ".tar.xz"))
856 (sha256
857 (base32
858 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
859 (build-system gnu-build-system)
860 (native-inputs
861 `(("gettext" ,gettext-minimal)
862 ("glib" ,glib)
863 ("pkg-config" ,pkg-config)))
864 (synopsis "Menu support for GNOME desktop")
865 (description "GNOME Menus contains the libgnome-menu library, the layout
866configuration files for the GNOME menu, as well as a simple menu editor.")
867 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 868 (license license:lgpl2.0+)))
30416265 869
d61a894b
CB
870(define-public deja-dup
871 (package
872 (name "deja-dup")
873 (version "34.3")
874 (source (origin
875 (method url-fetch)
876 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
877 (sha256
878 (base32
879 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
880 (patches
881 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
882 (build-system glib-or-gtk-build-system)
883 (arguments
884 `(#:modules ((guix build gnu-build-system)
885 ((guix build cmake-build-system) #:prefix cmake:)
886 (guix build glib-or-gtk-build-system)
887 (guix build utils))
888 #:imported-modules (,@%glib-or-gtk-build-system-modules
889 (guix build cmake-build-system))
890 #:test-target "test"
891 #:configure-flags (list (string-append
892 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
893 (string-append
894 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
895 #:phases
896 (modify-phases %standard-phases
897 (add-after 'unpack 'patch-lockfile-deletion
898 (lambda rest
899 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
900 (("/bin/rm")
901 (which "rm")))))
902 (replace 'configure
903 (assoc-ref cmake:%standard-phases 'configure))
904 (delete 'check) ;; Fails due to issues with DBus
905 (add-after 'install 'wrap-deja-dup
906 (lambda* (#:key inputs outputs #:allow-other-keys)
907 (let ((python (assoc-ref inputs "python"))
908 (python-path (getenv "PYTHONPATH"))
909 (duplicity (assoc-ref inputs "duplicity"))
910 (out (assoc-ref outputs "out")))
911 (for-each
912 (lambda (program)
913 (wrap-program program
914 `("PATH" ":" prefix (,(string-append python "/bin")
915 ,(string-append duplicity "/bin"))))
916 (wrap-program program
917 `("PYTHONPATH" ":" prefix (,python-path))))
918
919 (find-files (string-append out "/bin")))
920 #t))))))
921 (inputs
922 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
923 ("gobject-introspection" ,gobject-introspection)
924 ("duplicity" ,duplicity)
61506fe5 925 ("python" ,python-2)
d61a894b
CB
926 ("python-pygobject" ,python2-pygobject)
927 ("gtk+" ,gtk+)
928 ("libnotify" ,libnotify)
929 ("libpeas" ,libpeas)
930 ("libsecret" ,libsecret)
931 ("packagekit" ,packagekit)))
932 (native-inputs
933 `(("pkg-config" ,pkg-config)
934 ("vala" ,vala)
935 ("gettext" ,gettext-minimal)
936 ("itstool" ,itstool)
937 ("intltool" ,intltool)
c69959f0 938 ("cmake" ,cmake-minimal)))
d61a894b
CB
939 (home-page "https://launchpad.net/deja-dup")
940 (synopsis "Simple backup tool, for regular encrypted backups")
941 (description
942 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
943uses duplicity as the backend, which supports incremental backups and storage
944either on a local, or remote machine via a number of methods.")
945 (license license:gpl3+)))
946
823b77fb
RG
947(define-public gnome-user-docs
948 (package
949 (name "gnome-user-docs")
950 (version "3.32.3")
951 (source
952 (origin
953 (method url-fetch)
954 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
955 (version-major+minor version)
956 "/gnome-user-docs-" version ".tar.xz"))
957 (sha256
958 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
959 (build-system gnu-build-system)
960 (native-inputs
961 `(("gettext" ,gettext-minimal)
962 ("itstool" ,itstool)
963 ("pkg-config" ,pkg-config)
964 ("xmllint" ,libxml2)))
965 (synopsis "User documentation for the GNOME desktop")
966 (description
967 "The GNOME User Documentation explains how to use the GNOME desktop and its
968components. It covers usage and setup of the core GNOME programs by end-users
969and system administrators.")
970 (home-page "https://live.gnome.org/DocumentationProject")
971 (license license:cc-by3.0)))
972
be93299d
RG
973(define-public gnome-getting-started-docs
974 (package
975 (name "gnome-getting-started-docs")
976 (version "3.32.2")
977 (source
978 (origin
979 (method url-fetch)
980 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
981 (version-major+minor version)
982 "/gnome-getting-started-docs-" version ".tar.xz"))
983 (sha256
984 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
985 (build-system gnu-build-system)
986 (native-inputs
987 `(("gettext" ,gettext-minimal)
988 ("itstool" ,itstool)
989 ("pkg-config" ,pkg-config)
990 ("xmllint" ,libxml2)))
991 (synopsis "Help to get new users started with the GNOME desktop")
992 (description
993 "The GNOME Getting Started Documentation contains GNOME's intuitive
994\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
995
996It is normally used together with @command{gnome-initial-setup}, but is also
997useful as a tutorial and users' guide for new or less experienced users.")
998 (home-page "https://live.gnome.org/DocumentationProject")
999 (license license:cc-by-sa3.0)))
1000
a56be436
RJ
1001(define-public dia
1002 ;; This version from GNOME's repository includes fixes for compiling with
1003 ;; recent versions of the build tools. The latest activity on the
1004 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1005 ;; fixes in 2016.
1006 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
1007 (package
1008 (name "dia")
914c8cdf 1009 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
1010 (source (origin
1011 (method git-fetch)
1012 (uri (git-reference
914c8cdf 1013 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1014 (commit commit)))
914c8cdf 1015 (file-name (git-file-name name version))
a56be436
RJ
1016 (sha256
1017 (base32
1018 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
1019 (build-system gnu-build-system)
1020 (inputs
a315afa3 1021 `(("freetype" ,freetype)
a56be436
RJ
1022 ("gdk-pixbuf" ,gdk-pixbuf)
1023 ("gtk+" ,gtk+-2)
a315afa3 1024 ("libart-lgpl" ,libart-lgpl)
a56be436 1025 ("libxml2" ,libxml2)
a315afa3 1026 ("pango" ,pango)))
a56be436 1027 (native-inputs
a315afa3 1028 `(("autoconf" ,autoconf)
a56be436 1029 ("automake" ,automake)
a315afa3
EF
1030 ("intltool" ,intltool)
1031 ("glib" ,glib "bin")
a56be436
RJ
1032 ("libtool" ,libtool)
1033 ("perl" ,perl)
a315afa3 1034 ("pkg-config" ,pkg-config)
a56be436 1035 ("python-wrapper" ,python-wrapper)))
a56be436
RJ
1036 (home-page "https://wiki.gnome.org/Apps/Dia")
1037 (synopsis "Diagram creation for GNOME")
1038 (description "Dia can be used to draw different types of diagrams, and
1039includes support for UML static structure diagrams (class diagrams), entity
1040relationship modeling, and network diagrams. The program supports various file
1041formats like PNG, SVG, PDF and EPS.")
1042 (license license:gpl2+))))
1043
d0b19e44
RW
1044;; This is the unstable release, but it is required for the current stable
1045;; release of gvfs (1.38.1).
adc5cb1b
KK
1046(define-public libgdata
1047 (package
1048 (name "libgdata")
d0b19e44 1049 (version "0.17.9")
adc5cb1b
KK
1050 (source (origin
1051 (method url-fetch)
1052 (uri (string-append "mirror://gnome/sources/" name "/"
1053 (version-major+minor version) "/"
1054 name "-" version ".tar.xz"))
1055 (sha256
1056 (base32
d0b19e44 1057 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1058 (build-system gnu-build-system)
1059 (arguments
1060 '(#:phases
1061 (modify-phases %standard-phases
448052b7
TGR
1062 (add-before 'check 'disable-failing-tests
1063 (lambda _
1064 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1065 ;; They have been removed in libgdata 0.17.6, so just do the same.
1066 (substitute* "gdata/tests/Makefile"
1067 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1068 #t)))))
1069 (native-inputs
1070 `(("glib:bin" ,glib "bin")
1071 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1072 ("intltool" ,intltool)
1073 ("pkg-config" ,pkg-config)
1074 ("uhttpmock" ,uhttpmock)))
1075 (inputs
1076 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1077 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1078 (propagated-inputs
1079 `(("gcr" ,gcr)
d0b19e44 1080 ("glib" ,glib)
14c297fd 1081 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1082 ("json-glib" ,json-glib)
adc5cb1b 1083 ("liboauth" ,liboauth)
d0b19e44 1084 ("libsoup" ,libsoup)
adc5cb1b
KK
1085 ("libxml2" ,libxml2)))
1086 (home-page "https://wiki.gnome.org/Projects/libgdata")
1087 (synopsis "Library for accessing online service APIs")
1088 (description
1089 "libgdata is a GLib-based library for accessing online service APIs using
1090the GData protocol — most notably, Google's services. It provides APIs to
1091access the common Google services, and has full asynchronous support.")
1092 (license license:lgpl2.1+)))
1093
94e10cf4
KK
1094(define-public libgxps
1095 (package
1096 (name "libgxps")
66470a5a 1097 (version "0.3.1")
94e10cf4
KK
1098 (source (origin
1099 (method url-fetch)
7f10628c 1100 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1101 (version-major+minor version) "/"
1102 name "-" version ".tar.xz"))
1103 (sha256
1104 (base32
66470a5a 1105 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1106 (build-system meson-build-system)
94e10cf4
KK
1107 (native-inputs
1108 `(("gobject-introspection" ,gobject-introspection)
1109 ("pkg-config" ,pkg-config)))
1110 (inputs
c8d62d93 1111 `(("gtk+" ,gtk+)
b6b3e512 1112 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1113 ("lcms" ,lcms)
0a6e9e13 1114 ("libtiff" ,libtiff)))
c8d62d93
MB
1115 (propagated-inputs
1116 ;; In Requires of libgxps.pc.
1117 `(("cairo" ,cairo)
1118 ("glib" ,glib)
1119 ("libarchive" ,libarchive)))
94e10cf4
KK
1120 (home-page "https://wiki.gnome.org/Projects/libgxps")
1121 (synopsis "GObject-based library for handling and rendering XPS documents")
1122 (description
1123 "libgxps is a GObject-based library for handling and rendering XPS
1124documents. This package also contains binaries that can convert XPS documents
1125to other formats.")
1126 (license license:lgpl2.1+)))
1127
4e09f57a
RG
1128(define-public gnome-characters
1129 (package
1130 (name "gnome-characters")
1131 (version "3.30.0")
1132 (source
1133 (origin
1134 (method url-fetch)
1135 (uri (string-append "mirror://gnome/sources/"
1136 "gnome-characters/" (version-major+minor version)
1137 "/gnome-characters-" version ".tar.xz"))
1138 (sha256
1139 (base32
1140 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1141 (build-system meson-build-system)
5757c641 1142 (arguments
1143 `(#:glib-or-gtk? #t
1144 #:phases (modify-phases %standard-phases
1145 (add-after 'install 'wrap
1146 (lambda* (#:key outputs #:allow-other-keys)
1147 ;; GNOME Characters needs Typelib files from GTK and
1148 ;; gnome-desktop.
1149 (wrap-program (string-append (assoc-ref outputs "out")
1150 "/bin/gnome-characters")
1151 `("GI_TYPELIB_PATH" ":" prefix
1152 (,(getenv "GI_TYPELIB_PATH"))))
1153 #t)))))
4e09f57a
RG
1154 (native-inputs
1155 `(("gettext" ,gettext-minimal)
1156 ("glib:bin" ,glib "bin")
1157 ("gtk+:bin" ,gtk+ "bin")
1158 ("pkg-config" ,pkg-config)
1159 ("python" ,python-minimal)))
1160 (inputs
1161 `(("gjs" ,gjs)
1162 ("gtk+" ,gtk+)
5757c641 1163 ("libunistring" ,libunistring)
1164 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1165 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1166 (synopsis "Find and insert unusual characters")
1167 (description "Characters is a simple utility application to find
1168and insert unusual characters. It allows you to quickly find the
1169character you are looking for by searching for keywords.")
1170 (license license:bsd-3)))
1171
7aab13f1
ML
1172(define-public gnome-common
1173 (package
1174 (name "gnome-common")
af83490d 1175 (version "3.18.0")
7aab13f1
ML
1176 (source
1177 (origin
1178 (method url-fetch)
1179 (uri (string-append "mirror://gnome/sources/" name "/"
1180 (version-major+minor version) "/"
1181 name "-" version ".tar.xz"))
1182 (sha256
1183 (base32
af83490d 1184 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1185 (build-system gnu-build-system)
1186 (home-page "https://www.gnome.org/")
1187 (synopsis "Bootstrap GNOME modules built from Git")
1188 (description "gnome-common contains various files needed to bootstrap
1189GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1190can be used to configure a source directory checked out from Git and some
1191commonly used macros.")
1192 (license license:gpl2+)))
1193
4e868d22
RG
1194(define-public gnome-contacts
1195 (package
1196 (name "gnome-contacts")
b3492e39 1197 (version "3.34")
4e868d22
RG
1198 (source (origin
1199 (method url-fetch)
1200 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1201 (version-major+minor version) "/"
1202 name "-" version ".tar.xz"))
1203 (sha256
1204 (base32
b3492e39 1205 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
4e868d22
RG
1206 (build-system meson-build-system)
1207 (arguments
b3492e39
KK
1208 `(#:configure-flags '("-Dcheese=false")
1209 #:phases
4e868d22
RG
1210 (modify-phases %standard-phases
1211 (add-after 'unpack 'generate-vapis
1212 (lambda* (#:key inputs #:allow-other-keys)
1213 ;; To generate goa's missing .vapi file
1214 (define goa
1215 (assoc-ref inputs "gnome-online-accounts:lib"))
1216
1217 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1218 "--library=goa-1.0"
1219 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
b3492e39
KK
1220 #t))
1221 (add-after 'unpack 'skip-gtk-update-icon-cache
1222 ;; Don't create 'icon-theme.cache'.
1223 (lambda _
1224 (substitute* "build-aux/meson_post_install.py"
1225 (("gtk-update-icon-cache") "true"))
4e868d22
RG
1226 #t)))))
1227 (native-inputs
1228 `(("glib:bin" ,glib "bin")
4e868d22
RG
1229 ("pkg-config" ,pkg-config)))
1230 (inputs
b3492e39 1231 `(("docbook-xml" ,docbook-xml)
4e868d22
RG
1232 ("dockbook-xsl" ,docbook-xsl)
1233 ("evolution-data-server" ,evolution-data-server)
1234 ("gettext" ,gettext-minimal)
1235 ("gnome-desktop" ,gnome-desktop)
1236 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1237 ("gobject-introspection" ,gobject-introspection)
1238 ("gst-plugins-base" ,gst-plugins-base)
1239 ("gtk+" ,gtk+)
1240 ("libgee" ,libgee)
1241 ("libxslt" ,libxslt)
1242 ("telepathy-glib" ,telepathy-glib)
1243 ("vala" ,vala)))
1244 (propagated-inputs
1245 `(("folks", folks)
1246 ("telepathy-mission-control" ,telepathy-mission-control)))
1247 (synopsis "GNOME's integrated address book")
1248 (description
1249 "GNOME Contacts organizes your contact information from online and
1250offline sources, providing a centralized place for managing your contacts.")
1251 (home-page "https://wiki.gnome.org/Apps/Contacts")
1252 (license license:gpl2+)))
1253
9cc98f8a
CR
1254(define-public gnome-desktop
1255 (package
1256 (name "gnome-desktop")
8a7afc81 1257 (version "3.34.2")
9cc98f8a
CR
1258 (source
1259 (origin
1260 (method url-fetch)
b38e45d8
EB
1261 (uri (string-append "mirror://gnome/sources/" name "/"
1262 (version-major+minor version) "/"
9cc98f8a
CR
1263 name "-" version ".tar.xz"))
1264 (sha256
1265 (base32
8a7afc81 1266 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
e8a26caa 1267 (build-system meson-build-system)
a0fe7c06
CB
1268 (arguments
1269 '(#:phases
1270 (modify-phases %standard-phases
1271 (add-before 'configure 'patch-path
1272 (lambda* (#:key inputs #:allow-other-keys)
1273 (let ((libc (assoc-ref inputs "libc")))
1274 (substitute* "libgnome-desktop/gnome-languages.c"
1275 (("\"locale\"")
1276 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1277 #t)))
1278 (add-before 'check 'pre-check
1279 (lambda* (#:key inputs #:allow-other-keys)
1280 ;; Tests require a running X server and locales.
1281 (system "Xvfb :1 &")
1282 (setenv "DISPLAY" ":1")
1283 (setenv "GUIX_LOCPATH"
1284 (string-append (assoc-ref inputs "glibc-locales")
1285 "/lib/locale"))
1286 #t)))))
9cc98f8a 1287 (native-inputs
e8a26caa
KK
1288 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1289 ("glibc-locales" ,glibc-locales) ; for tests
1290 ("gobject-introspection" ,gobject-introspection)
a8340482 1291 ("itstool" ,itstool)
bcb354ad
SB
1292 ("intltool" ,intltool)
1293 ("pkg-config" ,pkg-config)
e8a26caa
KK
1294 ("xmllint" ,libxml2)
1295 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1296 (propagated-inputs
1297 ;; Required by gnome-desktop-3.0.pc.
1298 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1299 ("gtk+" ,gtk+)
9cc98f8a 1300 ("iso-codes" ,iso-codes)
9863ce20 1301 ("libseccomp" ,libseccomp)
9cc98f8a 1302 ("libx11" ,libx11)
e8a26caa
KK
1303 ("xkeyboard-config" ,xkeyboard-config)))
1304 (inputs
1305 `(("gdk-pixbuf" ,gdk-pixbuf)
1306 ("glib" ,glib)
9cc98f8a
CR
1307 ("libxext" ,libxext)
1308 ("libxkbfile" ,libxkbfile)
e8a26caa 1309 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1310 (home-page "https://www.gnome.org/")
1311 (synopsis
35b9e423 1312 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1313 (description
1314 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1315on the desktop, but that cannot live in the platform for various reasons.
1316There is no API or ABI guarantee, although we are doing our best to provide
1317stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1318
1319The gnome-about program helps find which version of GNOME is installed.")
1320 ; Some bits under the LGPL.
1dd26275 1321 (license license:gpl2+)))
9cc98f8a 1322
995b7261
AE
1323(define-public gnome-doc-utils
1324 (package
1325 (name "gnome-doc-utils")
1326 (version "0.20.10")
1327 (source
1328 (origin
1329 (method url-fetch)
b38e45d8
EB
1330 (uri (string-append "mirror://gnome/sources/" name "/"
1331 (version-major+minor version) "/"
995b7261
AE
1332 name "-" version ".tar.xz"))
1333 (sha256
1334 (base32
1335 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1336 (build-system gnu-build-system)
c4c4cc05 1337 (native-inputs
995b7261 1338 `(("intltool" ,intltool)
b4ce6300 1339 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1340 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1341 ("libxml2" ,libxml2)
1342 ("libxslt" ,libxslt)
1343 ("pkg-config" ,pkg-config)
1344 ("python-2" ,python-2)))
995b7261
AE
1345 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1346 (synopsis
1347 "Documentation utilities for the Gnome project")
1348 (description
1349 "Gnome-doc-utils is a collection of documentation utilities for the
1350Gnome project. It includes xml2po tool which makes it easier to translate
1351and keep up to date translations of documentation.")
1dd26275 1352 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1353
6c4f7022
DC
1354(define-public gnome-disk-utility
1355 (package
1356 (name "gnome-disk-utility")
262e660e 1357 (version "3.34.0")
6c4f7022
DC
1358 (source (origin
1359 (method url-fetch)
1360 (uri (string-append "mirror://gnome/sources/" name "/"
1361 (version-major+minor version) "/"
1362 name "-" version ".tar.xz"))
1363 (sha256
1364 (base32
262e660e 1365 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
4b9a65bf 1366 (build-system meson-build-system)
321c73c3 1367 (arguments
262e660e
KK
1368 '(#:configure-flags '("-Dlogind=libelogind")
1369 #:phases
321c73c3
EF
1370 (modify-phases %standard-phases
1371 (add-after 'unpack 'skip-gtk-update-icon-cache
1372 ;; Don't create 'icon-theme.cache'.
1373 (lambda _
1374 (substitute* "meson_post_install.py"
1375 (("gtk-update-icon-cache") "true"))
1376 #t)))))
6c4f7022
DC
1377 (native-inputs
1378 `(("glib:bin" ,glib "bin")
1379 ("intltool" ,intltool)
1380 ("pkg-config" ,pkg-config)
1381 ("docbook-xml" ,docbook-xml)
1382 ("docbook-xsl" ,docbook-xsl)
1383 ("libxml2" ,libxml2)
1384 ("libxslt" ,libxslt)))
1385 (inputs
262e660e
KK
1386 `(("elogind" ,elogind)
1387 ("glib" ,glib)
6c4f7022
DC
1388 ("appstream-glib" ,appstream-glib)
1389 ("gnome-settings-daemon" ,gnome-settings-daemon)
1390 ("gtk+" ,gtk+)
1391 ("libcanberra" ,libcanberra)
1392 ("libdvdread" ,libdvdread)
1393 ("libnotify" ,libnotify)
1394 ("libpwquality" ,libpwquality)
1395 ("libsecret" ,libsecret)
1396 ("udisks" ,udisks)))
1397 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1398 (synopsis "Disk management utility for GNOME")
1399 (description "Disk management utility for GNOME.")
1400 (license license:gpl2+)))
1401
3d217317
RG
1402(define-public gnome-font-viewer
1403 (package
1404 (name "gnome-font-viewer")
1405 (version "3.30.0")
1406 (source (origin
1407 (method url-fetch)
1408 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1409 (version-major+minor version)
1410 "/gnome-font-viewer-" version ".tar.xz"))
1411 (sha256
1412 (base32
1413 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1414 (build-system meson-build-system)
1415 (arguments
1416 '(#:phases
1417 (modify-phases %standard-phases
1418 (add-after 'unpack 'patch-post-install-script
1419 (lambda _
1420 (substitute* "meson-postinstall.sh"
1421 (("update-desktop-database") (which "true")))
1422 #t)))))
1423 (native-inputs
1424 `(("gettext" ,gettext-minimal)
1425 ("glib:bin" ,glib "bin")
1426 ("pkg-config" ,pkg-config)))
1427 (inputs
1428 `(("glib" ,glib)
1429 ("gnome-desktop" ,gnome-desktop)
1430 ("gtk+" ,gtk+)))
1431 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1432 (synopsis "GNOME Fonts")
1433 (description "Application to show you the fonts installed on your computer
1434for your use as thumbnails. Selecting any thumbnails shows the full view of how
1435the font would look under various sizes.")
1436 (license license:gpl2+)))
1437
8ff49011
RW
1438(define-public gcr
1439 (package
1440 (name "gcr")
1de804da 1441 (version "3.34.0")
8ff49011 1442 (source (origin
0daf0efb
RW
1443 (method url-fetch)
1444 (uri (string-append "mirror://gnome/sources/" name "/"
1445 (version-major+minor version) "/"
1446 name "-" version ".tar.xz"))
1447 (sha256
1448 (base32
1de804da 1449 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1450 (build-system gnu-build-system)
1451 (arguments
0daf0efb
RW
1452 '(#:phases
1453 (modify-phases %standard-phases
1454 ;; These fail because /var/lib/dbus/machine-id is not present in the
1455 ;; build environment.
1456 (add-after 'unpack 'disable-failing-tests
1457 (lambda _
1de804da
MB
1458 (substitute* "Makefile.in"
1459 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1460 ""))
0daf0efb
RW
1461 #t))
1462 (add-before 'check 'pre-check
1463 (lambda _
1464 ;; Some tests expect to write to $HOME.
1465 (setenv "HOME" "/tmp")
1466 #t)))))
8ff49011
RW
1467 (inputs
1468 `(("dbus" ,dbus)
0daf0efb 1469 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1470 ("libgcrypt" ,libgcrypt)))
1471 (native-inputs
1de804da 1472 `(("python" ,python-wrapper) ;for tests
8ff49011 1473 ("pkg-config" ,pkg-config)
1de804da 1474 ("gettext" ,gettext-minimal)
8ff49011 1475 ("glib" ,glib "bin")
2af4f5b0 1476 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1477 ("libxml2" ,libxml2)
bea6b829 1478 ("vala" ,vala)
2af4f5b0 1479 ("xsltproc" ,libxslt)))
8ff49011
RW
1480 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1481 (propagated-inputs
1482 `(("p11-kit" ,p11-kit)
1483 ("glib" ,glib)
1484 ("gtk+" ,gtk+)))
f032d0be 1485 (home-page "https://www.gnome.org")
8ff49011
RW
1486 (synopsis "Libraries for displaying certificates and accessing key stores")
1487 (description
1488 "The GCR package contains libraries used for displaying certificates and
1489accessing key stores. It also provides the viewer for crypto files on the
1490GNOME Desktop.")
1491 (license license:lgpl2.1+)))
1492
c1354b90
LC
1493(define-public libgnome-keyring
1494 (package
1495 (name "libgnome-keyring")
5e8aec2c 1496 (version "3.12.0")
c1354b90
LC
1497 (source (origin
1498 (method url-fetch)
b38e45d8
EB
1499 (uri (string-append "mirror://gnome/sources/" name "/"
1500 (version-major+minor version) "/"
1501 name "-" version ".tar.xz"))
c1354b90
LC
1502 (sha256
1503 (base32
5e8aec2c 1504 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1505 (build-system gnu-build-system)
c1354b90 1506 (inputs
c4c4cc05 1507 `(("libgcrypt" ,libgcrypt)
c1354b90 1508 ("dbus" ,dbus)))
c4c4cc05
JD
1509 (native-inputs
1510 `(("pkg-config" ,pkg-config)
426adbe8 1511 ("glib" ,glib "bin")
c4c4cc05 1512 ("intltool" ,intltool)))
c1354b90
LC
1513 (propagated-inputs
1514 ;; Referred to in .h files and .pc.
1515 `(("glib" ,glib)))
f032d0be 1516 (home-page "https://www.gnome.org")
c1354b90
LC
1517 (synopsis "Accessing passwords from the GNOME keyring")
1518 (description
1519 "Client library to access passwords from the GNOME keyring.")
1520
1521 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1522 (license license:lgpl2.0+)))
c1354b90 1523
e99a3d6f
RW
1524(define-public gnome-keyring
1525 (package
1526 (name "gnome-keyring")
14faeadd 1527 (version "3.34.0")
e99a3d6f
RW
1528 (source (origin
1529 (method url-fetch)
1530 (uri (string-append "mirror://gnome/sources/" name "/"
1531 (version-major+minor version) "/"
1532 name "-" version ".tar.xz"))
1533 (sha256
1534 (base32
14faeadd 1535 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
e99a3d6f
RW
1536 (build-system gnu-build-system)
1537 (arguments
1538 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1539 ;not exist
1540 #:configure-flags
1541 (list
1542 (string-append "--with-pkcs11-config="
1543 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1544 (string-append "--with-pkcs11-modules="
1545 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1546 #:phases
1547 (modify-phases %standard-phases
ab35cc6e
RW
1548 (add-after 'unpack 'fix-/bin/sh-reference
1549 (lambda _
1550 (substitute* "po/Makefile.in.in"
1551 (("/bin/sh") (which "sh")))
1552 #t))
5120f24f
RW
1553 (add-after 'unpack 'fix-docbook
1554 (lambda* (#:key inputs #:allow-other-keys)
1555 (substitute* "docs/Makefile.am"
1556 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1557 (string-append (assoc-ref inputs "docbook-xsl")
1558 "/xml/xsl/docbook-xsl-"
1559 ,(package-version docbook-xsl)
1560 "/manpages/docbook.xsl")))
1561 (setenv "XML_CATALOG_FILES"
1562 (string-append (assoc-ref inputs "docbook-xml")
1563 "/xml/dtd/docbook/catalog.xml"))
1564 ;; Rerun the whole thing to avoid version mismatch ("This is
1565 ;; Automake 1.15.1, but the definition used by this
1566 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1567 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1568 (invoke "autoconf")
1569 (invoke "aclocal")
1570 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1571 (inputs
1572 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1573 ("linux-pam" ,linux-pam)
ab35cc6e 1574 ("openssh" ,openssh)
e99a3d6f
RW
1575 ("dbus" ,dbus)
1576 ("gcr" ,gcr)))
1577 (native-inputs
1578 `(("pkg-config" ,pkg-config)
1579 ("glib" ,glib "bin")
5120f24f 1580 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1581 ("python" ,python-2) ;for tests
1582 ("intltool" ,intltool)
1583 ("autoconf" ,autoconf)
1584 ("automake" ,automake)
1585 ("libxslt" ,libxslt) ;for documentation
1586 ("docbook-xml" ,docbook-xml-4.2)
1587 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1588 (home-page "https://www.gnome.org")
e99a3d6f
RW
1589 (synopsis "Daemon to store passwords and encryption keys")
1590 (description
1591 "gnome-keyring is a program that keeps passwords and other secrets for
1592users. It is run as a daemon in the session, similar to ssh-agent, and other
1593applications locate it via an environment variable or D-Bus.
1594
1595The program can manage several keyrings, each with its own master password,
1596and there is also a session keyring which is never stored to disk, but
1597forgotten when the session ends.")
1598 (license license:lgpl2.1+)))
1599
c1354b90
LC
1600(define-public evince
1601 (package
1602 (name "evince")
936d5642 1603 (version "3.34.2")
c1354b90
LC
1604 (source (origin
1605 (method url-fetch)
ac631328 1606 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1607 (version-major+minor version) "/"
ac631328 1608 "evince-" version ".tar.xz"))
c1354b90
LC
1609 (sha256
1610 (base32
936d5642 1611 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1612 (build-system glib-or-gtk-build-system)
c1354b90 1613 (arguments
169b8f77 1614 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1615 #:phases
1616 (modify-phases %standard-phases
1617 (add-before 'install 'skip-gtk-update-icon-cache
1618 ;; Don't create 'icon-theme.cache'.
1619 (lambda _
1620 (substitute* "data/Makefile"
1621 (("gtk-update-icon-cache") "true"))
1622 #t)))))
c1354b90 1623 (inputs
9a096881
KK
1624 `(("libarchive" ,libarchive)
1625 ("libgxps" ,libgxps)
1626 ("libspectre" ,libspectre)
c769cf9f 1627 ("djvulibre" ,djvulibre)
c1354b90
LC
1628 ("ghostscript" ,ghostscript)
1629 ("poppler" ,poppler)
c769cf9f
SB
1630 ("libtiff" ,libtiff)
1631 ;; TODO:
c769cf9f
SB
1632 ;; Build libkpathsea as a shared library for DVI support.
1633 ;; ("libkpathsea" ,texlive-bin)
1634 ("gnome-desktop" ,gnome-desktop)
c1354b90 1635 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1636 ("gspell" ,gspell)
c1354b90 1637 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1638 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1639 ("gdk-pixbuf" ,gdk-pixbuf)
1640 ("atk" ,atk)
1641 ("pango" ,pango)
1642 ("gtk+" ,gtk+)
1643 ("glib" ,glib)
1644 ("libxml2" ,libxml2)
c1354b90
LC
1645 ("libsm" ,libsm)
1646 ("libice" ,libice)
96e42467 1647 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1648 ("dconf" ,dconf)
1649 ("libcanberra" ,libcanberra)
c769cf9f 1650 ("libsecret" ,libsecret)
a271096b 1651
c1354b90
LC
1652 ;; For tests.
1653 ("dogtail" ,python2-dogtail)))
96e42467 1654 (native-inputs
bcb354ad
SB
1655 `(("itstool" ,itstool)
1656 ("intltool" ,intltool)
426adbe8 1657 ("glib" ,glib "bin")
169b8f77 1658 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1659 ("pkg-config" ,pkg-config)
1660 ("xmllint" ,libxml2)))
c1354b90 1661 (home-page
f032d0be 1662 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1663 (synopsis "GNOME's document viewer")
1664 (description
1665 "Evince is a document viewer for multiple document formats. It
1666currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1667of Evince is to replace the multiple document viewers that exist
96e42467 1668on the GNOME Desktop with a single simple application.")
1dd26275 1669 (license license:gpl2+)))
c1354b90 1670
22e32e69
AE
1671(define-public gsettings-desktop-schemas
1672 (package
1673 (name "gsettings-desktop-schemas")
8468117e 1674 (version "3.34.0")
22e32e69
AE
1675 (source
1676 (origin
1677 (method url-fetch)
1678 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1679 (version-major+minor version) "/"
22e32e69
AE
1680 name "-" version ".tar.xz"))
1681 (sha256
1682 (base32
8468117e 1683 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
c900dabd 1684 (build-system meson-build-system)
65209ffa
LC
1685 (arguments
1686 '(#:phases (modify-phases %standard-phases
3861fb1c 1687 (add-after 'unpack 'patch-schemas
65209ffa 1688 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1689 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1690 (substitute* (find-files "schemas"
1691 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1692 ;; Provide the correct file name of the default GNOME
1693 ;; background, 'adwaita-timed.xml'.
65209ffa 1694 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1695 (string-append theme "/share/backgrounds/gnome"))
1696 ;; Do not reference fonts, that may not exist.
1697 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1698 #t))))))
22e32e69 1699 (inputs
65209ffa
LC
1700 `(("glib" ,glib)
1701 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1702 (native-inputs
1703 `(("intltool" ,intltool)
426adbe8 1704 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1705 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1706 ("pkg-config" ,pkg-config)))
1707 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1708 (synopsis
1709 "GNOME settings for various desktop components")
1710 (description
1711 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1712for settings shared by various components of the GNOME desktop.")
1dd26275 1713 (license license:lgpl2.1+)))
22e32e69 1714
27477d2d
AE
1715(define-public icon-naming-utils
1716 (package
1717 (name "icon-naming-utils")
1718 (version "0.8.90")
1719 (source
1720 (origin
1721 (method url-fetch)
5cc3096c 1722 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1723 version ".tar.bz2"))
1724 (sha256
1725 (base32
1726 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1727 (build-system gnu-build-system)
1728 (inputs
1729 `(("perl" ,perl)
1730 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1731 (arguments
1732 '(#:phases
dc1d3cde
KK
1733 (modify-phases %standard-phases
1734 (add-after 'install 'set-load-paths
1735 ;; Tell 'icon-name-mapping' where XML::Simple is.
1736 (lambda* (#:key outputs #:allow-other-keys)
1737 (let* ((out (assoc-ref outputs "out"))
1738 (prog (string-append out "/libexec/icon-name-mapping")))
1739 (wrap-program
1740 prog
1741 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1742 #t)))))
27477d2d
AE
1743 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1744 (synopsis
1745 "Utility to implement the Freedesktop Icon Naming Specification")
1746 (description
1747 "To help with the transition to the Freedesktop Icon Naming
1748Specification, the icon naming utility maps the icon names used by the
1749GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1750 (license license:lgpl2.1+)))
27477d2d 1751
7d3f3651
AE
1752(define-public gnome-icon-theme
1753 (package
1754 (name "gnome-icon-theme")
b32f58dd 1755 (version "3.12.0")
7d3f3651
AE
1756 (source
1757 (origin
1758 (method url-fetch)
1759 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1760 (version-major+minor version) "/"
7d3f3651
AE
1761 name "-" version ".tar.xz"))
1762 (sha256
1763 (base32
b32f58dd 1764 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1765 (build-system gnu-build-system)
5613c27d
SB
1766 (arguments
1767 '(#:configure-flags
1768 ;; Don't create 'icon-theme.cache'.
1769 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1770 (true (string-append coreutils "/bin/true")))
1771 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1772 (native-inputs
5613c27d 1773 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1774 ("intltool" ,intltool)
1775 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1776 (home-page "https://wiki.gnome.org/Personalization")
1777 (synopsis "GNOME icon theme")
1778 (description "Icons for the GNOME desktop.")
1dd26275 1779 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1780
14eeefa2
SB
1781;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1782(define-public adwaita-icon-theme
1783 (package (inherit gnome-icon-theme)
1784 (name "adwaita-icon-theme")
e21788f2 1785 (version "3.34.3")
14eeefa2
SB
1786 (source (origin
1787 (method url-fetch)
1788 (uri (string-append "mirror://gnome/sources/" name "/"
1789 (version-major+minor version) "/"
1790 name "-" version ".tar.xz"))
1791 (sha256
1792 (base32
e21788f2 1793 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
5613c27d
SB
1794 (native-inputs
1795 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1796
ae792dba
RW
1797(define-public tango-icon-theme
1798 (package
1799 (name "tango-icon-theme")
1800 (version "0.8.90")
1801 (source (origin
1802 (method url-fetch)
1803 (uri (string-append "http://tango.freedesktop.org/releases/"
1804 "tango-icon-theme-" version ".tar.bz2"))
1805 (sha256
1806 (base32
1807 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1808 (build-system gnu-build-system)
1809 (native-inputs
1810 `(("icon-naming-utils" ,icon-naming-utils)
1811 ("intltool" ,intltool)
1812 ("imagemagick" ,imagemagick)
1813 ("pkg-config" ,pkg-config)))
1814 (home-page "http://tango-project.org/")
1815 (synopsis "Tango icon theme")
1816 (description "This is an icon theme that follows the Tango visual
1817guidelines.")
1818 (license license:public-domain)))
1819
9167f8e6
LC
1820(define-public shared-mime-info
1821 (package
1822 (name "shared-mime-info")
404e386e 1823 (version "1.15")
9167f8e6
LC
1824 (source (origin
1825 (method url-fetch)
404e386e
MB
1826 (uri (string-append
1827 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1828 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1829 ".tar.xz"))
9167f8e6
LC
1830 (sha256
1831 (base32
404e386e 1832 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1833 (build-system gnu-build-system)
1834 (arguments
1835 ;; The build system appears not to be parallel-safe.
1836 '(#:parallel-build? #f))
1837 (inputs
1838 `(("glib" ,glib)
c4c4cc05 1839 ("libxml2" ,libxml2)))
9167f8e6 1840 (native-inputs
404e386e
MB
1841 `(("gettext" ,gettext-minimal)
1842 ("itstool" ,itstool)
c4c4cc05 1843 ("pkg-config" ,pkg-config)))
57e7d748 1844 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1845 (synopsis "Database of common MIME types")
1846 (description
1847 "The shared-mime-info package contains the core database of common types
1848and the update-mime-database command used to extend it. It requires glib2 to
1849be installed for building the update command. Additionally, it uses intltool
1850for translations, though this is only a dependency for the maintainers. This
1851database is translated at Transifex.")
1dd26275 1852 (license license:gpl2+)))
9167f8e6 1853
dd1fcddc
CB
1854(define-public system-config-printer
1855 (package
1856 (name "system-config-printer")
fa01e10d 1857 (version "1.5.12")
a5643044
TGR
1858 (source
1859 (origin
1860 (method url-fetch)
1861 (uri (string-append
1862 "https://github.com/OpenPrinting/system-config-printer/releases/"
1863 "download/" version
1864 "/system-config-printer-" version ".tar.xz"))
1865 (sha256
fa01e10d 1866 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1867 (build-system glib-or-gtk-build-system)
1868 (arguments
1869 `(#:imported-modules ((guix build python-build-system)
1870 ,@%glib-or-gtk-build-system-modules)
1871 #:phases
1872 (modify-phases %standard-phases
1873 (add-after 'unpack 'patch-Makefile.am
1874 (lambda _
1875 ;; The Makefile generates some scripts, so set a valid shebang
1876 (substitute* "Makefile.am"
1877 (("/bin/bash") (which "bash")))
1878 (delete-file "configure")
1879 #t))
1880 (add-after 'unpack 'patch-docbook-xml
1881 (lambda* (#:key inputs #:allow-other-keys)
1882 ;; Modify the man XML otherwise xmlto tries to access the network
1883 (substitute* "man/system-config-printer.xml"
1884 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1885 (string-append (assoc-ref inputs "docbook-xml")
1886 "/xml/dtd/docbook/")))
1887 #t))
1888 (add-after 'install 'wrap-for-python
1889 (@@ (guix build python-build-system) wrap))
1890 (add-after 'install 'wrap
1891 (lambda* (#:key outputs #:allow-other-keys)
1892 (let ((out (assoc-ref outputs "out"))
1893 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1894 (for-each
1895 (lambda (program)
1896 (wrap-program program
1897 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1898 (map (lambda (name)
1899 (string-append out "/bin/" name))
1900 '("system-config-printer"
1901 "system-config-printer-applet"
1902 "install-printerdriver"
1903 "scp-dbus-service"))))
1904 #t)))))
1905 (inputs
1906 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1907 ("gobject-introspection" ,gobject-introspection)
1908 ("python" ,python)
1909 ("cups" ,cups)
1910 ("python-dbus" ,python-dbus)
1911 ("python-pygobject" ,python-pygobject)
1912 ("python-pycups" ,python-pycups)
1913 ("python-requests" ,python-requests)
1914 ("python-pycairo" ,python-pycairo)
1915 ("libnotify" ,libnotify)
1916 ("packagekit" ,packagekit)))
1917 (native-inputs
1918 `(("pkg-config" ,pkg-config)
1919 ("desktop-file-utils" ,desktop-file-utils)
1920 ("glib" ,glib)
1921 ("autoconf" ,autoconf)
1922 ("automake" ,automake)
1923 ("intltool" ,intltool)
1924 ("xmlto" ,xmlto)
1925 ("docbook-xml" ,docbook-xml-4.1.2)
1926 ("docbook-xsl" ,docbook-xsl)
1927 ("libxml2" ,libxml2)))
1928 (home-page "https://github.com/zdohnal/system-config-printer")
1929 (synopsis "CUPS administration tool")
1930 (description
1931 "system-config-printer is a CUPS administration tool. It's written in
1932Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1933configuring CUPS.")
1934 (license license:gpl2+)))
1935
bef4dd92
AE
1936(define-public hicolor-icon-theme
1937 (package
1938 (name "hicolor-icon-theme")
851cb6dd 1939 (version "0.17")
bef4dd92
AE
1940 (source
1941 (origin
1942 (method url-fetch)
5cc3096c 1943 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1944 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1945 (sha256
1946 (base32
851cb6dd 1947 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1948 (build-system gnu-build-system)
1949 (arguments
1950 `(#:tests? #f)) ; no check target
57e7d748 1951 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1952 (synopsis
1953 "Freedesktop icon theme")
1954 (description
1955 "Freedesktop icon theme.")
1dd26275 1956 (license license:gpl2)))
bef4dd92 1957
d9c1a22b
AE
1958(define-public libnotify
1959 (package
1960 (name "libnotify")
195bfa68 1961 (version "0.7.7")
d9c1a22b
AE
1962 (source
1963 (origin
1964 (method url-fetch)
1965 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1966 (version-major+minor version) "/"
d9c1a22b
AE
1967 name "-" version ".tar.xz"))
1968 (sha256
1969 (base32
195bfa68 1970 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1971 (build-system gnu-build-system)
6acf6cec
MB
1972 (arguments
1973 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1974 (propagated-inputs
1975 `(;; In Requires of libnotify.pc.
1976 ("gdk-pixbuf" ,gdk-pixbuf)
1977 ("glib" ,glib)))
d9c1a22b 1978 (inputs
7ef08efa 1979 `(("gtk+" ,gtk+)
c4c4cc05
JD
1980 ("libpng" ,libpng)))
1981 (native-inputs
426adbe8 1982 `(("pkg-config" ,pkg-config)
277a7d82
JN
1983 ("glib" ,glib "bin")
1984 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1985 (home-page "https://developer-next.gnome.org/libnotify/")
1986 (synopsis
1987 "GNOME desktop notification library")
1988 (description
1989 "Libnotify is a library that sends desktop notifications to a
35b9e423 1990notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1991notifications can be used to inform the user about an event or display
1992some form of information without getting in the user's way.")
1dd26275 1993 (license license:lgpl2.1+)))
7a8605ce
CR
1994
1995(define-public libpeas
1996 (package
1997 (name "libpeas")
f2d56e39 1998 (version "1.24.1")
7a8605ce
CR
1999 (source
2000 (origin
2001 (method url-fetch)
2002 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2003 (version-major+minor version) "/"
7a8605ce
CR
2004 name "-" version ".tar.xz"))
2005 (sha256
2006 (base32
f2d56e39
MB
2007 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2008 (build-system meson-build-system)
2009 (arguments
2010 '(#:phases
2011 (modify-phases %standard-phases
2012 (add-before 'check 'start-xserver
2013 (lambda* (#:key inputs #:allow-other-keys)
2014 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2015 (disp ":1"))
2016 (setenv "DISPLAY" disp)
2017 ;; Tests require a running X server.
2018 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2019 #t))))))
7a8605ce 2020 (inputs
2ed6522a
SB
2021 `(("gtk+" ,gtk+)
2022 ("glade" ,glade3)
2ed6522a
SB
2023 ("python" ,python)
2024 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2025 (native-inputs
2026 `(("pkg-config" ,pkg-config)
f2d56e39 2027 ("gettext" ,gettext-minimal)
93622993 2028 ("glib:bin" ,glib "bin")
141aed80 2029 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2030 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2031 (propagated-inputs
2032 ;; The .pc file "Requires" gobject-introspection.
2033 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2034 (home-page "https://wiki.gnome.org/Libpeas")
2035 (synopsis "GObject plugin system")
2036 (description
d1e4ad1b
TGR
2037 "Libpeas is a gobject-based plugin engine, targeted at giving every
2038application the chance to assume its own extensibility. It also has a set of
2039features including, but not limited to: multiple extension points; on-demand
2040(lazy) programming language support for C, Python and JS; simplicity of the
2041API.")
1dd26275 2042 (license license:lgpl2.0+)))
ed19903d
JD
2043
2044(define-public gtkglext
2045 (package
2046 (name "gtkglext")
2047 (version "1.2.0")
2048 (source (origin
2049 (method url-fetch)
0f971a04 2050 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2051 version "/gtkglext-" version ".tar.gz"))
2052 (sha256
2053 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2054 (patches (search-patches
2055 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2056 (build-system gnu-build-system)
14e2f61a
RW
2057 (arguments
2058 `(#:phases
2059 (modify-phases %standard-phases
2060 ;; Fix a collision between a local variable and a definition from
2061 ;; glibc's string.h.
2062 (add-after 'unpack 'fix-collision
2063 (lambda _
2064 (substitute* "gdk/gdkglshapes.c"
2065 ((" index") " triangle_index"))
2066 #t)))))
ed19903d
JD
2067 (inputs `(("gtk+" ,gtk+-2)
2068 ("mesa" ,mesa)
cc8b02f4 2069 ("glu" ,glu)
ed19903d
JD
2070 ("libx11" ,libx11)
2071 ("libxt" ,libxt)))
426adbe8
LC
2072 (native-inputs `(("pkg-config" ,pkg-config)
2073 ("glib" ,glib "bin")))
a83b6a06 2074 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2075 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2076 (synopsis "OpenGL extension to GTK+")
35b9e423 2077 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2078additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2079API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2080 (license license:lgpl2.1+)))
3600420e
JD
2081
2082(define-public glade3
2083 (package
2084 (name "glade")
c6571adb 2085 (version "3.22.1")
b38e45d8
EB
2086 (source (origin
2087 (method url-fetch)
2088 (uri (string-append "mirror://gnome/sources/" name "/"
2089 (version-major+minor version) "/"
f5ca44b8 2090 name "-" version ".tar.xz"))
3600420e 2091 (sha256
f714d9fe 2092 (base32
c6571adb 2093 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 2094 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
2095 (arguments
2096 `(#:tests? #f ; needs X, GL, and software rendering
2097 #:phases
2098 (modify-phases %standard-phases
2099 (add-before 'configure 'fix-docbook
2100 (lambda* (#:key inputs #:allow-other-keys)
2101 (substitute* "man/Makefile.in"
2102 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2103 (string-append (assoc-ref inputs "docbook-xsl")
2104 "/xml/xsl/docbook-xsl-"
2105 ,(package-version docbook-xsl)
2106 "/manpages/docbook.xsl")))
2107 #t)))))
3600420e 2108 (inputs
f5ca44b8 2109 `(("gtk+" ,gtk+)
3600420e
JD
2110 ("libxml2" ,libxml2)))
2111 (native-inputs
2112 `(("intltool" ,intltool)
f5ca44b8
RW
2113 ("itstool" ,itstool)
2114 ("libxslt" ,libxslt) ;for xsltproc
2115 ("docbook-xml" ,docbook-xml-4.2)
2116 ("docbook-xsl" ,docbook-xsl)
2117 ("python" ,python-2)
3600420e
JD
2118 ("pkg-config" ,pkg-config)))
2119 (home-page "https://glade.gnome.org")
2120 (synopsis "GTK+ rapid application development tool")
2121 (description "Glade is a rapid application development (RAD) tool to
2122enable quick & easy development of user interfaces for the GTK+ toolkit and
2123the GNOME desktop environment.")
1dd26275
LC
2124 (license license:lgpl2.0+)))
2125
2126(define-public libcroco
2127 (package
2128 (name "libcroco")
8bdacad2 2129 (version "0.6.13")
1dd26275
LC
2130 (source (origin
2131 (method url-fetch)
b38e45d8
EB
2132 (uri (string-append "mirror://gnome/sources/" name "/"
2133 (version-major+minor version) "/"
2134 name "-" version ".tar.xz"))
1dd26275
LC
2135 (sha256
2136 (base32
8bdacad2 2137 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2138 (build-system gnu-build-system)
2139 (native-inputs
2140 `(("pkg-config" ,pkg-config)))
2141 (inputs
2142 `(("glib" ,glib)
2143 ("libxml2" ,libxml2)
2144 ("zlib" ,zlib)))
2145 (home-page "https://github.com/GNOME/libcroco")
2146 (synopsis "CSS2 parsing and manipulation library")
2147 (description
2148 "Libcroco is a standalone CSS2 parsing and manipulation library.
2149The parser provides a low level event driven SAC-like API and a CSS object
2150model like API. Libcroco provides a CSS2 selection engine and an experimental
2151XML/CSS rendering engine.")
2152
2153 ;; LGPLv2.1-only.
2154 (license license:lgpl2.1)))
25178594
LC
2155
2156(define-public libgsf
2157 (package
2158 (name "libgsf")
2b9b854c 2159 (version "1.14.47")
25178594
LC
2160 (source (origin
2161 (method url-fetch)
b38e45d8
EB
2162 (uri (string-append "mirror://gnome/sources/" name "/"
2163 (version-major+minor version) "/"
2164 name "-" version ".tar.xz"))
25178594
LC
2165 (sha256
2166 (base32
2b9b854c 2167 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
25178594 2168 (build-system gnu-build-system)
23904adb
MB
2169 (arguments
2170 '(#:configure-flags '("--disable-static")))
25178594 2171 (native-inputs
0a1559cc
MB
2172 `(("pkg-config" ,pkg-config)
2173 ("gettext" ,gettext-minimal)
2174
2175 ;; For tests.
2176 ("perl" ,perl)
2177 ("perl-xml-parser" ,perl-xml-parser)))
25178594 2178 (inputs
4ffa9f6b 2179 `(("zlib" ,zlib)
25178594
LC
2180 ("bzip2" ,bzip2)))
2181 (propagated-inputs
2182 `(("gdk-pixbuf" ,gdk-pixbuf)
2183 ("glib" ,glib)
2184 ("libxml2" ,libxml2)))
f032d0be 2185 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2186 (synopsis "GNOME's Structured File Library")
2187 (description
2188 "Libgsf aims to provide an efficient extensible I/O abstraction for
2189dealing with different structured file formats.")
2190
2191 ;; LGPLv2.1-only.
2192 (license license:lgpl2.1)))
63016e7c
LC
2193
2194(define-public librsvg
f67417a1
MB
2195 (package
2196 (name "librsvg")
c1cc52a2 2197 (version "2.40.21")
f67417a1
MB
2198 (source (origin
2199 (method url-fetch)
2200 (uri (string-append "mirror://gnome/sources/" name "/"
2201 (version-major+minor version) "/"
2202 name "-" version ".tar.xz"))
2203 (sha256
2204 (base32
c1cc52a2 2205 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2206 (build-system gnu-build-system)
2207 (arguments
2208 `(#:configure-flags
2209 (list "--disable-static"
2210 "--enable-vala") ; needed for e.g. gnome-mines
2211 #:phases
2212 (modify-phases %standard-phases
2213 (add-before 'configure 'pre-configure
2214 (lambda* (#:key inputs #:allow-other-keys)
2215 (substitute* "gdk-pixbuf-loader/Makefile.in"
2216 ;; By default the gdk-pixbuf loader is installed under
2217 ;; gdk-pixbuf's prefix. Work around that.
2218 (("gdk_pixbuf_moduledir = .*$")
2219 (string-append "gdk_pixbuf_moduledir = "
2220 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2221 "loaders\n"))
2222 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2223 (("gdk_pixbuf_cache_file = .*$")
2224 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2225 #t))
2226 (add-before 'check 'remove-failing-tests
2227 (lambda _
2228 (with-directory-excursion "tests/fixtures/reftests"
2229 (for-each delete-file
2230 '(;; This test fails on i686:
2231 "svg1.1/masking-path-04-b.svg"
2232 ;; This test fails on armhf:
2233 "svg1.1/masking-mask-01-b.svg"
2234 ;; This test fails on aarch64:
2235 "bugs/777834-empty-text-children.svg")))
2236 #t)))))
2237 (native-inputs
2238 `(("pkg-config" ,pkg-config)
2239 ("vala" ,vala)
2240 ("glib" ,glib "bin") ; glib-mkenums, etc.
2241 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2242 (inputs
869b63cb
MB
2243 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2244 ;; this ancient version of librsvg.
2245 ("pango" ,pango-1.42)
f67417a1
MB
2246 ("libcroco" ,libcroco)
2247 ("bzip2" ,bzip2)
2248 ("libgsf" ,libgsf)
2249 ("libxml2" ,libxml2)))
2250 (propagated-inputs
2251 ;; librsvg-2.0.pc refers to all of that.
2252 `(("cairo" ,cairo)
2253 ("gdk-pixbuf" ,gdk-pixbuf)
2254 ("glib" ,glib)))
2255 (home-page "https://wiki.gnome.org/LibRsvg")
2256 (synopsis "Render SVG files using Cairo")
2257 (description
2258 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2259library.")
2260 (license license:lgpl2.0+)))
2261
2262(define-public librsvg-next
63016e7c 2263 (package
25d39a2a 2264 (inherit librsvg)
63016e7c 2265 (name "librsvg")
3276e123 2266 (version "2.46.4")
69568670
EF
2267 (source (origin
2268 (method url-fetch)
2269 (uri (string-append "mirror://gnome/sources/librsvg/"
2270 (version-major+minor version) "/"
2271 "librsvg-" version ".tar.xz"))
2272 (sha256
2273 (base32
2274 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2275 (modules '((guix build utils)))
2276 (snippet
2277 '(begin (delete-file-recursively "vendor")
2278 ;; Don't demand an exact version for string_cache
2279 (substitute* "rsvg_internals/Cargo.toml"
2280 (("\"=") "\""))
2281 #t))))
2282 (build-system cargo-build-system)
63016e7c 2283 (arguments
69568670
EF
2284 `(#:modules ((guix build cargo-build-system)
2285 (guix build utils)
2286 ((guix build gnu-build-system) #:prefix gnu:))
2287 #:vendor-dir "vendor"
2288 #:cargo-inputs
2289 (("rust-bitflags" ,rust-bitflags-1)
2290 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2291 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2292 ("rust-cssparser" ,rust-cssparser-0.25)
2293 ("rust-data-url" ,rust-data-url-0.1)
2294 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2295 ("rust-encoding" ,rust-encoding-0.2)
2296 ("rust-float-cmp" ,rust-float-cmp-0.5)
2297 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2298 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2299 ("rust-gio" ,rust-gio-0.7)
2300 ("rust-gio-sys" ,rust-gio-sys-0.9)
2301 ("rust-glib" ,rust-glib-0.8)
2302 ("rust-glib-sys" ,rust-glib-sys-0.9)
2303 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2304 ("rust-itertools" ,rust-itertools-0.8)
2305 ("rust-language-tags" ,rust-language-tags-0.2)
2306 ("rust-lazy-static" ,rust-lazy-static-1)
2307 ("rust-libc" ,rust-libc-0.2)
2308 ("rust-locale-config" ,rust-locale-config-0.3)
2309 ("rust-markup5ever" ,rust-markup5ever-0.9)
2310 ("rust-nalgebra" ,rust-nalgebra-0.18)
2311 ("rust-num-traits" ,rust-num-traits-0.2)
2312 ("rust-pkg-config" ,rust-pkg-config-0.3)
2313 ("rust-pango" ,rust-pango-0.7)
2314 ("rust-pango-sys" ,rust-pango-sys-0.9)
2315 ("rust-pangocairo" ,rust-pangocairo-0.8)
2316 ("rust-phf" ,rust-phf-0.7)
2317 ("rust-rayon" ,rust-rayon-1.3)
2318 ("rust-rctree" ,rust-rctree-0.3)
2319 ("rust-string-cache" ,rust-string-cache-0.7)
2320 ("rust-regex" ,rust-regex-1.3)
2321 ("rust-url" ,rust-url-2.1)
2322 ("rust-xml-rs" ,rust-xml-rs-0.8))
2323 #:cargo-development-inputs
2324 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2325 ("rust-criterion" ,rust-criterion-0.2))
ec47c07d 2326 #:phases
b6239e45 2327 (modify-phases %standard-phases
69568670 2328 (add-after 'unpack 'prepare-for-build
ec47c07d 2329 (lambda _
69568670
EF
2330 ;; In lieu of #:make-flags
2331 (setenv "CC" "gcc")
2332 ;; Something about the build environment resists building
2333 ;; successfully with the '--locked' flag.
2334 (substitute* '("Makefile.am"
2335 "Makefile.in")
2336 (("--locked") ""))
2337 #t))
b6239e45 2338 (add-before 'configure 'pre-configure
69568670 2339 (lambda _
b6239e45
EF
2340 (substitute* "gdk-pixbuf-loader/Makefile.in"
2341 ;; By default the gdk-pixbuf loader is installed under
2342 ;; gdk-pixbuf's prefix. Work around that.
2343 (("gdk_pixbuf_moduledir = .*$")
2344 (string-append "gdk_pixbuf_moduledir = "
2345 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2346 "loaders\n"))
2347 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2348 (("gdk_pixbuf_cache_file = .*$")
2349 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2350 #t))
69568670
EF
2351 (add-after 'configure 'gnu-configure
2352 (assoc-ref gnu:%standard-phases 'configure))
2353 ;(lambda* (#:key outputs #:allow-other-keys)
2354 ; ((assoc-ref gnu:%standard-phases 'configure)
2355 ; #:outputs outputs
2356 ; #:configure-flags ("--disable-static"
2357 ; "--enable-vala"))))
2358 (add-after 'configure 'dont-vendor-self
2359 (lambda* (#:key vendor-dir #:allow-other-keys)
2360 ;; Don't keep the whole tarball in the vendor directory
2361 (delete-file-recursively
2362 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2363 #t))
2364 (replace 'build
2365 (assoc-ref gnu:%standard-phases 'build))
2366 (replace 'check
2367 (lambda* args
2368 ((assoc-ref gnu:%standard-phases 'check)
2369 #:test-target "check")))
2370 (replace 'install
2371 (assoc-ref gnu:%standard-phases 'install))
ec47c07d 2372 (add-before 'check 'remove-failing-tests
b6239e45 2373 (lambda _
64a153bd
MW
2374 (with-directory-excursion "tests/fixtures/reftests"
2375 (for-each delete-file
ec47c07d
MB
2376 '(;; The images produced by these tests differ slightly
2377 ;; from their reference counterparts due to differences
2378 ;; in the build environment (missing fonts, etc). See
2379 ;; <tests/README.md> for details.
2380 ;; These fail on x86_64.
2381 "svg1.1/coords-viewattr-02-b.svg"
2382 "svg1.1/filters-composite-04-f.svg"
2383 "svg1.1/filters-image-01-b.svg"
2384 "svg1.1/filters-conv-02-f.svg"
2385 "svg1.1/filters-conv-04-f.svg"
2386 ;; This test fails on i686:
64a153bd 2387 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2388 ;; This test fails on armhf:
2389 "svg1.1/masking-mask-01-b.svg"
64a153bd 2390 ;; This test fails on aarch64:
ec47c07d 2391 "bugs/777834-empty-text-children.svg")))
b6239e45 2392 #t)))))
cf9dad6c 2393 (license license:lgpl2.1+)))
5698b8b8
JD
2394
2395(define-public libidl
2396 (package
2397 (name "libidl")
2398 (version "0.8.14")
2399 (source (origin
2400 (method url-fetch)
80a06e62
EF
2401 (uri (string-append "mirror://gnome/sources/libIDL/"
2402 (version-major+minor version) "/"
2403 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2404 (sha256
2405 (base32
2406 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2407 (build-system gnu-build-system)
2408 (inputs `(("glib" ,glib)))
2409 (native-inputs
2410 `(("pkg-config" ,pkg-config)
b3546174 2411 ("flex" ,flex)
5698b8b8
JD
2412 ("bison" ,bison)))
2413 (home-page "http://freecode.com/projects/libidl")
2414 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2415 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2416Definition Language (idl) files, which is a specification for defining
2417portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2418GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2419functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2420 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2421 (license license:lgpl2.0+)))
2422
2423
2424(define-public orbit2
2425 (package
2426 (name "orbit2")
2427 (version "2.14.19")
2428 (source (origin
2429 (method url-fetch)
2e6ecc5c 2430 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2431 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2432 (version-major+minor version) "/"
2433 upstream-name "-" version ".tar.bz2")))
5698b8b8 2434 (sha256
a124bbd2
SB
2435 (base32
2436 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2437 (build-system gnu-build-system)
2438 (arguments
c2d837b9
MB
2439 `(;; The "timeout-server" test hangs when run in parallel.
2440 #:parallel-tests? #f
2441 #:configure-flags
8aad2e32
LC
2442 '(;; We don't need static libraries, plus they don't build reproducibly
2443 ;; (non-deterministic ordering of .o files in the archive.)
2444 "--disable-static"
2445
2446 ;; The programmer kindly gives us a hook to turn off deprecation
2447 ;; warnings ...
2448 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2449 ;; ... which they then completly ignore !!
2450 #:phases
dc1d3cde
KK
2451 (modify-phases %standard-phases
2452 (add-before 'configure 'ignore-deprecations
2453 (lambda _
2454 (substitute* "linc2/src/Makefile.in"
2455 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2456 #t)))))
5698b8b8
JD
2457 (inputs `(("glib" ,glib)
2458 ("libidl" ,libidl)))
2459 (native-inputs
2460 `(("pkg-config" ,pkg-config)))
2461 (home-page "https://projects.gnome.org/orbit2/")
2462 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2463 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2464featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2465 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2466 ;; a version. SOME of the code files have licence notices for GPLv2+.
2467 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2468 (license license:gpl2+)
2469 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2470
2471
2472(define-public libbonobo
2473 (package
2474 (name "libbonobo")
2475 (version "2.32.1")
2476 (source (origin
2477 (method url-fetch)
5becd025 2478 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2479 (version-major+minor version)
5becd025 2480 "/" name "-" version ".tar.bz2"))
5698b8b8 2481 (sha256
f1fc45a9 2482 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2483 (patches (search-patches
2484 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2485 (build-system gnu-build-system)
2486 (arguments
2487 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2488 `(#:configure-flags
2489 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2490 ;; ... which they then completly ignore !!
2491 #:phases
dc1d3cde
KK
2492 (modify-phases %standard-phases
2493 (add-before 'configure 'ignore-deprecations
2494 (lambda _
2495 (substitute* "activation-server/Makefile.in"
2496 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2497 #t)))
2498
2499 ;; There's apparently a race condition between the server stub
2500 ;; generation and linking of the example under 'samples/echo' that can
2501 ;; lead do undefined references when building in parallel, as reported
2502 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2503 ;; Thus, disable parallel builds.
2504 #:parallel-build? #f))
5698b8b8
JD
2505 (inputs `(("popt" ,popt)
2506 ("libxml2" ,libxml2)))
2507 ;; The following are Required by the .pc file
44add1ce 2508 (propagated-inputs
5698b8b8
JD
2509 `(("glib" ,glib)
2510 ("orbit2" ,orbit2)))
2511 (native-inputs
2512 `(("intltool" ,intltool)
2513 ("pkg-config" ,pkg-config)
221ed17a 2514 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2515 ("flex" ,flex)
2516 ("bison" ,bison)))
2517 (home-page "https://developer.gnome.org/libbonobo/")
2518 (synopsis "Framework for creating reusable components for use in GNOME applications")
2519 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2520use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2521 ;; Licence not explicitly stated. Source files contain no licence notices.
2522 ;; Tarball contains text of both GPLv2 and LGPLv2
2523 ;; GPLv2 covers both conditions
2524 (license license:gpl2+)))
2525
2526
2527(define-public gconf
2528 (package
2529 (name "gconf")
2530 (version "3.2.6")
2531 (source (origin
2532 (method url-fetch)
a124bbd2
SB
2533 (uri
2534 (let ((upstream-name "GConf"))
2535 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2536 (version-major+minor version) "/"
2537 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2538 (sha256
2539 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2540 (build-system gnu-build-system)
2e88d113 2541 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2542 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2543 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2544 ("orbit2" ,orbit2)))
5698b8b8
JD
2545 (native-inputs
2546 `(("intltool" ,intltool)
221ed17a 2547 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2548 ("pkg-config" ,pkg-config)))
2549 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2550 (synopsis "Store application preferences")
2551 (description "Gconf is a system for storing application preferences. It
2552is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2553 (license license:lgpl2.0+)
2554 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2555
2556
2557(define-public gnome-mime-data
2558 (package
2559 (name "gnome-mime-data")
2560 (version "2.18.0")
2561 (source (origin
2562 (method url-fetch)
b38e45d8
EB
2563 (uri (string-append "mirror://gnome/sources/" name "/"
2564 (version-major+minor version) "/"
2565 name "-" version ".tar.bz2"))
5698b8b8
JD
2566 (sha256
2567 (base32
2568 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2569 (build-system gnu-build-system)
2570 (native-inputs
2571 `(("perl" ,perl)
2572 ("intltool" ,intltool)))
3e6add96
LC
2573 (arguments
2574 '(#:phases (modify-phases %standard-phases
2575 (add-after 'configure 'use-our-intltool
2576 (lambda _
2577 ;; Do not use the bundled intltool commands, which lack
2578 ;; the "dotless @INC" fixes of our 'intltool' package.
2579 (substitute* (find-files "." "^Makefile$")
2580 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2581 (string-append "INTLTOOL_" tool " = intltool-"
2582 (string-downcase tool) "\n")))
2583 #t)))))
f032d0be 2584 (home-page "https://www.gnome.org")
35b9e423 2585 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2586 (description "GNOME Mime Data is a module which contains the base MIME
2587and Application database for GNOME. The data stored by this module is
2588designed to be accessed through the MIME functions in GnomeVFS.")
2589 (license license:gpl2+)))
2590
2591
2592(define-public gnome-vfs
2593 (package
2594 (name "gnome-vfs")
2595 (version "2.24.4")
2596 (source (origin
2597 (method url-fetch)
b38e45d8
EB
2598 (uri (string-append "mirror://gnome/sources/" name "/"
2599 (version-major+minor version) "/"
2600 name "-" version ".tar.bz2"))
5698b8b8 2601 (sha256
9e12bc34
MW
2602 (base32
2603 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2604 (build-system gnu-build-system)
2605 (arguments
db5127d8 2606 `(#:phases
dc1d3cde
KK
2607 (modify-phases %standard-phases
2608 (add-before 'configure 'ignore-deprecations
2609 (lambda _
2610 (substitute* '("libgnomevfs/Makefile.in"
2611 "daemon/Makefile.in")
2612 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2613 #t))
2614 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2615 (lambda _
2616 (substitute* "test/test-async-cancel.c"
2617 (("EXIT_FAILURE") "77"))
2618 #t)))))
2e6ecc5c 2619 (inputs `(("libxml2" ,libxml2)
5698b8b8 2620 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2621 ("gconf" ,gconf)
2622 ("gnome-mime-data" ,gnome-mime-data)
2623 ("zlib" ,zlib)))
2624 (native-inputs
221ed17a
EB
2625 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2626 ("intltool" ,intltool)
5698b8b8
JD
2627 ("pkg-config" ,pkg-config)))
2628 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2629 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2630 (description
2631 "GnomeVFS is the core library used to access files and folders in GNOME
2632applications. It provides a file system abstraction which allows applications
2633to access local and remote files with a single consistent API.")
5698b8b8
JD
2634 (license license:lgpl2.0+)))
2635
2636
2637
2638(define-public libgnome
2639 (package
2640 (name "libgnome")
2641 (version "2.32.1")
2642 (source (origin
2643 (method url-fetch)
b38e45d8
EB
2644 (uri (string-append "mirror://gnome/sources/" name "/"
2645 (version-major+minor version) "/"
2646 name "-" version ".tar.bz2"))
5698b8b8
JD
2647 (sha256
2648 (base32
17c3eea7
LC
2649 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2650 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2651 (build-system gnu-build-system)
2652 (arguments
2653 `(#:phases
dc1d3cde
KK
2654 (modify-phases %standard-phases
2655 (add-before 'configure 'enable-deprecated
2656 (lambda _
2657 (substitute* "libgnome/Makefile.in"
2658 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2659 #t)))))
25338e9f 2660 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2661 (native-inputs
221ed17a
EB
2662 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2663 ("intltool" ,intltool)
5698b8b8
JD
2664 ("pkg-config" ,pkg-config)))
2665 ;; The following are listed as Required in the .pc file
2666 ;; (except for libcanberra -- which seems to be oversight on the part
2667 ;; of the upstream developers -- anything that links against libgnome,
2668 ;; must also link against libcanberra
2669 (propagated-inputs
2670 `(("libcanberra" ,libcanberra)
2671 ("libbonobo" ,libbonobo)
2672 ("gconf" ,gconf)
a640d3d5
LC
2673 ("gnome-vfs" ,gnome-vfs)
2674 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2675 (home-page "https://developer.gnome.org/libgnome/")
2676 (synopsis "Useful routines for building applications")
2677 (description "The libgnome library provides a number of useful routines
2678for building modern applications, including session management, activation of
2679files and URIs, and displaying help.")
2680 (license license:lgpl2.0+)))
2681
2682
2683(define-public libart-lgpl
2684 (package
2685 (name "libart-lgpl")
76c9b6aa 2686 (version "2.3.21")
5698b8b8
JD
2687 (source (origin
2688 (method url-fetch)
2689 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2690 (string-append "mirror://gnome/sources/" upstream-name "/"
2691 (version-major+minor version) "/"
2692 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2693 (sha256
2694 (base32
76c9b6aa 2695 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2696 (build-system gnu-build-system)
2697 (native-inputs
2698 `(("pkg-config" ,pkg-config)))
2699 (home-page "https://people.gnome.org/~mathieu/libart")
2700 (synopsis "2D drawing library")
2e6ecc5c 2701 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2702high-quality vector-based 2D library with antialiasing and alpha composition.")
2703 (license license:lgpl2.0+)))
2704
2705
2706
2707(define-public libgnomecanvas
2708 (package
2709 (name "libgnomecanvas")
2710 (version "2.30.3")
2711 (source (origin
2712 (method url-fetch)
b38e45d8
EB
2713 (uri (string-append "mirror://gnome/sources/" name "/"
2714 (version-major+minor version) "/"
2715 name "-" version ".tar.gz"))
5698b8b8
JD
2716 (sha256
2717 (base32
2718 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2719 (build-system gnu-build-system)
2720 ;; Mentioned as Required in the .pc file
2721 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2722 ("gtk+" ,gtk+-2)))
2723 (native-inputs
2724 `(("intltool" ,intltool)
221ed17a 2725 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2726 ("pkg-config" ,pkg-config)))
2727 (home-page "https://developer.gnome.org/libgnomecanvas/")
2728 (synopsis "Flexible widget for creating interactive structured graphics")
2729 (description "The GnomeCanvas widget provides a flexible widget for
2730creating interactive structured graphics.")
2731 (license license:lgpl2.0+)))
2732
eadc734e
RW
2733(define-public libgnomecanvasmm
2734 (package
2735 (name "libgnomecanvasmm")
2736 (version "2.26.0")
2737 (source (origin
2738 (method url-fetch)
2739 (uri (string-append "mirror://gnome/sources/" name "/"
2740 (version-major+minor version) "/"
2741 name "-" version ".tar.bz2"))
2742 (sha256
2743 (base32
2744 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2745 (build-system gnu-build-system)
2746 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2747 (native-inputs
2748 `(("gtkmm-2" ,gtkmm-2)
2749 ("pkg-config" ,pkg-config)))
8e933cb3 2750 (home-page "https://gtkmm.org")
eadc734e
RW
2751 (synopsis "C++ bindings to the GNOME Canvas library")
2752 (description "C++ bindings to the GNOME Canvas library.")
2753 (license license:lgpl2.0+)))
2754
5698b8b8
JD
2755(define-public libgnomeui
2756 (package
2757 (name "libgnomeui")
2758 (version "2.24.5")
2759 (source (origin
2760 (method url-fetch)
b38e45d8
EB
2761 (uri (string-append "mirror://gnome/sources/" name "/"
2762 (version-major+minor version) "/"
2763 name "-" version ".tar.bz2"))
8fa1872a 2764 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2765 (sha256
2766 (base32
2767 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2768 (build-system gnu-build-system)
2769 ;; Mentioned as Required in the .pc file
0a38a497
AE
2770 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2771 ("libgnome" ,libgnome)
2772 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2773 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2774 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2775 ("popt" ,popt)
2776 ("libbonobo" ,libbonobo)
2777 ("libxml2" ,libxml2)
2778 ("libglade" ,libglade)))
2779 (native-inputs
221ed17a
EB
2780 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2781 ("intltool" ,intltool)
5698b8b8
JD
2782 ("pkg-config" ,pkg-config)))
2783 (home-page "https://developer.gnome.org/libgnomeui/")
2784 (synopsis "Additional widgets for applications")
35b9e423 2785 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2786applications. Many of the widgets from libgnomeui have already been
2787ported to GTK+.")
5698b8b8
JD
2788 (license license:lgpl2.0+)))
2789
2790(define-public libglade
2791 (package
2792 (name "libglade")
2793 (version "2.6.4")
2794 (source (origin
2795 (method url-fetch)
b38e45d8
EB
2796 (uri (string-append "mirror://gnome/sources/" name "/"
2797 (version-major+minor version) "/"
2798 name "-" version ".tar.bz2"))
5698b8b8
JD
2799 (sha256
2800 (base32
2801 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2802 (build-system gnu-build-system)
2803 (inputs
92dcc23d
AE
2804 `(("python" ,python))) ;; needed for the optional libglade-convert program
2805 (propagated-inputs
5698b8b8 2806 `(("gtk+-2" ,gtk+-2)
92dcc23d 2807 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2808 (native-inputs
2809 `(("pkg-config" ,pkg-config)))
2810 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2811 (synopsis "Load glade interfaces and access the glade built widgets")
2812 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2813graphical interfaces described in glade files and for accessing the
2814widgets built in the loading process.")
2815 (license license:gpl2+))) ; This is correct. GPL not LGPL
2816
2817(define-public libgnomeprint
eb497b66
LC
2818 ;; This library has been deprecated since 2006; see
2819 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2820 (package
2821 (name "libgnomeprint")
d19db454 2822 (version "2.18.8")
5698b8b8
JD
2823 (source (origin
2824 (method url-fetch)
b38e45d8
EB
2825 (uri (string-append "mirror://gnome/sources/" name "/"
2826 (version-major+minor version) "/"
2827 name "-" version ".tar.bz2"))
5698b8b8
JD
2828 (sha256
2829 (base32
d19db454 2830 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2831 (build-system gnu-build-system)
2832 (inputs
2833 `(("popt" ,popt)
2834 ("libart-lgpl" ,libart-lgpl)
2835 ("gtk+" ,gtk+-2)
44add1ce 2836 ("libxml2" ,libxml2)))
5698b8b8
JD
2837 (native-inputs
2838 `(("intltool" ,intltool)
221ed17a 2839 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2840 ("pkg-config" ,pkg-config)))
2841 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2842 (synopsis "Printing framework for GNOME")
eb497b66
LC
2843 (description
2844 "GNOME-print was a printing framework for GNOME. It has been deprecated
2845since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2846 (license license:lgpl2.0+)))
2847
2848
2849(define-public libgnomeprintui
eb497b66 2850 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2851 (package
2852 (name "libgnomeprintui")
36053d7f 2853 (version "2.18.6")
5698b8b8
JD
2854 (source (origin
2855 (method url-fetch)
b38e45d8
EB
2856 (uri (string-append "mirror://gnome/sources/" name "/"
2857 (version-major+minor version) "/"
2858 name "-" version ".tar.bz2"))
5698b8b8
JD
2859 (sha256
2860 (base32
36053d7f 2861 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2862 (build-system gnu-build-system)
2863 ;; Mentioned as Required in the .pc file
2864 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2865 (inputs `(("gtk+" ,gtk+-2)
2866 ("glib" ,glib)
2867 ("gnome-icon-theme" ,gnome-icon-theme)
2868 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2869 ("libxml2" ,libxml2)))
5698b8b8
JD
2870 (native-inputs
2871 `(("intltool" ,intltool)
2872 ("pkg-config" ,pkg-config)))
2873 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2874 (synopsis "Printing framework for GNOME")
eb497b66 2875 (description (package-description libgnomeprint))
5698b8b8
JD
2876 (license license:lgpl2.0+)))
2877
5698b8b8
JD
2878(define-public libbonoboui
2879 (package
2880 (name "libbonoboui")
2881 (version "2.24.5")
2882 (source (origin
2883 (method url-fetch)
b38e45d8
EB
2884 (uri (string-append "mirror://gnome/sources/" name "/"
2885 (version-major+minor version) "/"
2886 name "-" version ".tar.bz2"))
5698b8b8
JD
2887 (sha256
2888 (base32
2889 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2890 (build-system gnu-build-system)
2891 (arguments
2892 `(#:phases
dc1d3cde
KK
2893 (modify-phases %standard-phases
2894 (add-before 'check 'start-xserver
2895 (lambda* (#:key inputs #:allow-other-keys)
2896 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2897 (disp ":1"))
2898
2899 (setenv "HOME" (getcwd))
2900 (setenv "DISPLAY" disp)
2901 ;; There must be a running X server and make check doesn't start one.
2902 ;; Therefore we must do it.
2903 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2904 ;; Mentioned as Required by the .pc file
2905 (propagated-inputs `(("libxml2" ,libxml2)))
2906 (inputs
2907 `(("popt" ,popt)
2908 ("pangox-compat" ,pangox-compat)
2909 ("libgnome" ,libgnome)
2910 ("libgnomecanvas" ,libgnomecanvas)
2911 ("libglade" ,libglade)))
2912 (native-inputs
221ed17a
EB
2913 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2914 ("intltool" ,intltool)
ff337525 2915 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2916 ("pkg-config" ,pkg-config)))
2917 (home-page "https://developer.gnome.org/libbonoboui/")
2918 (synopsis "Some user interface controls using Bonobo")
2919 (description "The Bonobo UI library provides a number of user interface
2920controls using the Bonobo component framework.")
2921 (license license:lgpl2.0+)))
2922
fecbf86e
SB
2923(define-public libwnck
2924 (package
2925 (name "libwnck")
d3b40696 2926 (version "3.32.0")
fecbf86e
SB
2927 (source (origin
2928 (method url-fetch)
2929 (uri (string-append "mirror://gnome/sources/" name "/"
2930 (version-major+minor version) "/"
2931 name "-" version ".tar.xz"))
2932 (sha256
ad9b8987 2933 (base32
d3b40696
KK
2934 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2935 (build-system meson-build-system)
fecbf86e
SB
2936 (native-inputs
2937 `(("pkg-config" ,pkg-config)
d3b40696
KK
2938 ("glib" ,glib "bin") ; for glib-mkenums
2939 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2940 ("intltool" ,intltool)))
2941 (propagated-inputs
427476d5
SB
2942 `(("gtk+" ,gtk+)
2943 ("libxres" ,libxres)
2944 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2945 (home-page "https://developer.gnome.org/libwnck/")
2946 (synopsis "Window Navigator Construction Kit")
2947 (description
2948 "Libwnck is the Window Navigator Construction Kit, a library for use in
2949writing pagers, tasklists, and more generally applications that are dealing
2950with window management. It tries hard to respect the Extended Window Manager
2951Hints specification (EWMH).")
2952 (license license:lgpl2.0+)))
2953
2954;; stable version for gtk2, required by xfwm4.
dbb7a081 2955(define-public libwnck-2
fecbf86e
SB
2956 (package (inherit libwnck)
2957 (name "libwnck")
2958 (version "2.30.7")
2959 (source (origin
2960 (method url-fetch)
2961 (uri (string-append "mirror://gnome/sources/" name "/"
2962 (version-major+minor version) "/"
2963 name "-" version ".tar.xz"))
2964 (sha256
2965 (base32
2966 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2967 (build-system gnu-build-system)
2968 (native-inputs
2969 `(("pkg-config" ,pkg-config)
2970 ("intltool" ,intltool)))
fecbf86e 2971 (propagated-inputs
427476d5
SB
2972 `(("gtk+" ,gtk+-2)
2973 ("libxres" ,libxres)
2974 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2975
2976(define-public goffice
2977 (package
2978 (name "goffice")
09abffcc 2979 (version "0.10.46")
b804c61e
JD
2980 (source (origin
2981 (method url-fetch)
16243f0b 2982 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2983 (version-major+minor version) "/"
16243f0b 2984 "goffice-" version ".tar.xz"))
b804c61e 2985 (sha256
09abffcc 2986 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 2987 (build-system gnu-build-system)
72a06d3e 2988 (outputs '("out"
355420c6 2989 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
2990 (arguments
2991 '(#:configure-flags (list (string-append "--with-html-dir="
2992 (assoc-ref %outputs "doc")
2993 "/share/gtk-doc/html"))))
b804c61e
JD
2994 (inputs
2995 `(("gtk+" ,gtk+)
2996 ("libgsf" ,libgsf)
2997 ("librsvg" ,librsvg)
2998 ("libxslt" ,libxslt)
2999 ("libxml2" ,libxml2)))
3000 (native-inputs
3001 `(("intltool" ,intltool)
f280cdb1 3002 ("glib" ,glib "bin")
b804c61e
JD
3003 ("pkg-config" ,pkg-config)))
3004 (home-page "https://developer.gnome.org/goffice/")
3005 (synopsis "Document-centric objects and utilities")
3006 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3007 (license
b804c61e
JD
3008 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3009 ;; Note: NOT LGPL
3010 (list license:gpl2 license:gpl3))))
3011
c024ae36
RW
3012(define-public goffice-0.8
3013 (package (inherit goffice)
3014 (version "0.8.17")
3015 (source (origin
3016 (method url-fetch)
3017 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3018 (version-major+minor version) "/"
3019 (package-name goffice) "-" version ".tar.xz"))
3020 (sha256
3021 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3022 (arguments
3023 `(#:phases
dc1d3cde
KK
3024 (modify-phases %standard-phases
3025 (add-after 'unpack 'fix-pcre-check
3026 (lambda _
3027 ;; Only glib.h can be included directly. See
3028 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3029 (substitute* "configure"
3030 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3031
3032 ,@(package-arguments goffice)))
c024ae36
RW
3033 (propagated-inputs
3034 ;; libgoffice-0.8.pc mentions libgsf-1
3035 `(("libgsf" ,libgsf)))
3036 (inputs
3037 `(("gtk" ,gtk+-2)
3038 ,@(alist-delete "gtk" (package-inputs goffice))))))
3039
b804c61e
JD
3040(define-public gnumeric
3041 (package
3042 (name "gnumeric")
f0517b5d 3043 (version "1.12.46")
b804c61e
JD
3044 (source (origin
3045 (method url-fetch)
b7fd0217 3046 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3047 (version-major+minor version) "/"
b7fd0217 3048 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3049 (sha256
3050 (base32
f0517b5d 3051 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3052 (build-system glib-or-gtk-build-system)
b804c61e
JD
3053 (arguments
3054 `(;; The gnumeric developers don't worry much about failing tests.
3055 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3056 #:tests? #f
b804c61e 3057 #:phases
7bcbd40d
EF
3058 (modify-phases %standard-phases
3059 (add-before
3060 'configure 'pre-conf
3061 (lambda* (#:key outputs #:allow-other-keys)
3062 ;; Make install tries to write into the directory of goffice
3063 ;; I am informed that this only affects the possibility to embed a
3064 ;; spreadsheet inside an Abiword document. So presumably when we
3065 ;; package Abiword we'll have to refer it to this directory.
3066 (substitute* "configure"
3067 (("^GOFFICE_PLUGINS_DIR=.*")
3068 (string-append "GOFFICE_PLUGINS_DIR="
3069 (assoc-ref outputs "out")
3070 "/goffice/plugins"))))))))
b804c61e
JD
3071 (inputs
3072 `(("glib" ,glib)
3073 ("gtk+" ,gtk+)
3074 ("goffice" ,goffice)
3075 ("libgsf" ,libgsf)
7bcbd40d 3076 ("librsvg" ,librsvg)
b804c61e 3077 ("libxml2" ,libxml2)
7bcbd40d 3078 ("libxslt" ,libxslt)
2e4c5457 3079 ("python" ,python-2)
6983ba56 3080 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3081 ("zlib" ,zlib)))
3082 (native-inputs
6983ba56 3083 `(("bison" ,bison)
1ed398d1 3084 ("docbook-xml" ,docbook-xml)
6983ba56 3085 ("intltool" ,intltool)
785fcb62 3086 ("itstool" ,itstool)
b9663471 3087 ("glib:bin" ,glib "bin")
b804c61e
JD
3088 ("pkg-config" ,pkg-config)))
3089 (home-page "http://www.gnumeric.org")
66672a45
LC
3090 (synopsis "Spreadsheet application")
3091 (description
3092 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3093interoperable with other spreadsheet applications. It has a vast array of
3094features beyond typical spreadsheet functionality, such as support for linear
3095and non-linear solvers, statistical analysis, and telecommunication
3096engineering.")
3097 (license
b804c61e
JD
3098 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3099 (list license:gpl2 license:gpl3))))
6f885c05
FB
3100
3101(define-public gnome-themes-standard
3102 (package
3103 (name "gnome-themes-standard")
0b7b8fb0 3104 (version "3.22.3")
6f885c05
FB
3105 (source
3106 (origin
3107 (method url-fetch)
2e6ecc5c 3108 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3109 (version-major+minor version) "/" name "-"
3110 version ".tar.xz"))
3111 (sha256
3112 (base32
0b7b8fb0 3113 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3114 (build-system gnu-build-system)
8ac70c7f
SB
3115 (arguments
3116 '(#:configure-flags
3117 ;; Don't create 'icon-theme.cache'.
3118 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3119 (true (string-append coreutils "/bin/true")))
3120 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3121 (inputs
3122 `(("gtk+" ,gtk+)
3123 ("gtk+-2" ,gtk+-2)
3124 ("librsvg" ,librsvg)
3125 ("libxml2" ,libxml2)
3126 ("glib" ,glib)))
3127 (native-inputs
3128 `(("intltool" ,intltool)
3129 ("glib:bin" ,glib "bin")
3130 ("pkg-config" ,pkg-config)))
6f885c05
FB
3131 (home-page "https://launchpad.net/gnome-themes-standard")
3132 (synopsis "Default GNOME 3 themes")
3133 (description
3134 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3135 (license license:lgpl2.1+)))
5a659a48 3136
df90c701
RW
3137(define-public seahorse
3138 (package
3139 (name "seahorse")
1efcf722 3140 (version "3.34")
df90c701
RW
3141 (source
3142 (origin
3143 (method url-fetch)
3144 (uri (string-append "mirror://gnome/sources/" name "/"
3145 (version-major+minor version) "/" name "-"
3146 version ".tar.xz"))
3147 (sha256
3148 (base32
1efcf722 3149 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3150 (build-system meson-build-system)
3151 (arguments
bcea3c11
KK
3152 '(#:glib-or-gtk? #t
3153 #:phases
af561664
MÁAV
3154 (modify-phases %standard-phases
3155 (add-after 'unpack 'skip-gtk-update-icon-cache
3156 ;; Don't create 'icon-theme.cache'.
3157 (lambda _
3158 (substitute* "build-aux/meson_post_install.py"
3159 (("gtk-update-icon-cache") "true"))
3160 #t)))))
df90c701
RW
3161 (inputs
3162 `(("gtk+" ,gtk+)
3163 ("gcr" ,gcr)
34b979b9 3164 ("gnupg" ,gnupg)
df90c701 3165 ("gpgme" ,gpgme)
34b979b9 3166 ("openldap" ,openldap)
4a1bf090 3167 ("openssh" ,openssh)
af561664 3168 ("avahi" ,avahi)
bcea3c11 3169 ("libpwquality" ,libpwquality)
34b979b9
EF
3170 ("libsecret" ,libsecret)
3171 ("libsoup" ,libsoup)))
df90c701 3172 (native-inputs
af561664 3173 `(("gettext" ,gettext-minimal)
df90c701
RW
3174 ("glib:bin" ,glib "bin")
3175 ("itstool" ,itstool)
bcb354ad 3176 ("pkg-config" ,pkg-config)
af561664 3177 ("vala" ,vala)
bcb354ad 3178 ("xmllint" ,libxml2)))
bcea3c11 3179 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3180 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3181 (description
3182 "Seahorse is a GNOME application for managing encryption keys and
3183passwords in the GNOME keyring.")
3184 (license license:gpl2+)))
3185
5a659a48
SB
3186(define-public vala
3187 (package
3188 (name "vala")
b92a36db 3189 (version "0.46.5")
5a659a48
SB
3190 (source (origin
3191 (method url-fetch)
3192 (uri (string-append "mirror://gnome/sources/" name "/"
3193 (version-major+minor version) "/"
3194 name "-" version ".tar.xz"))
3195 (sha256
3196 (base32
b92a36db 3197 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3198 (build-system gnu-build-system)
1ea90625
SB
3199 (arguments
3200 '(#:phases
3201 (modify-phases %standard-phases
f4925a4f 3202 (add-before 'check 'pre-check
1ea90625
SB
3203 (lambda _
3204 (setenv "CC" "gcc")
8839b6be
RW
3205 (substitute* "valadoc/tests/testrunner.sh"
3206 (("export PKG_CONFIG_PATH=" m)
3207 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3208 ;; For missing '/etc/machine-id'.
3209 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3210 #t)))))
5a659a48
SB
3211 (native-inputs
3212 `(("pkg-config" ,pkg-config)
3213 ("flex" ,flex)
3214 ("bison" ,bison)
3215 ("xsltproc" ,libxslt)
3216 ("dbus" ,dbus) ; for dbus tests
3217 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3218 (inputs
3219 `(("graphviz" ,graphviz)))
5a659a48 3220 (propagated-inputs
8839b6be 3221 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3222 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3223 (synopsis "Compiler for the GObject type system")
3224 (description
3225 "Vala is a programming language that aims to bring modern programming
3226language features to GNOME developers without imposing any additional runtime
3227requirements and without using a different ABI compared to applications and
3228libraries written in C.")
3229 (license license:lgpl2.1+)))
ea57378f
SB
3230
3231(define-public vte
3232 (package
3233 (name "vte")
663def11 3234 (version "0.60.2")
ea57378f
SB
3235 (source (origin
3236 (method url-fetch)
ac87ffb8 3237 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3238 (version-major+minor version) "/"
ac87ffb8 3239 "vte-" version ".tar.xz"))
ea57378f
SB
3240 (sha256
3241 (base32
663def11 3242 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
68c47474 3243 (build-system meson-build-system)
663def11
RPG
3244 (arguments
3245 `(#:configure-flags
11491e1b
DM
3246 '("-Dvapi=true"
3247 "-D_systemd=false")))
ea57378f
SB
3248 (native-inputs
3249 `(("pkg-config" ,pkg-config)
4684580a 3250 ("gettext" ,gettext-minimal)
ea57378f
SB
3251 ("vala" ,vala)
3252 ("gobject-introspection" ,gobject-introspection)
68c47474 3253 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3254 ("gperf" ,gperf)
ea57378f
SB
3255 ("xmllint" ,libxml2)))
3256 (propagated-inputs
68c47474
TGR
3257 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3258 ("gnutls" ,gnutls) ; ditto
3259 ("pcre2" ,pcre2))) ; ditto
f032d0be 3260 (home-page "https://www.gnome.org/")
ea57378f
SB
3261 (synopsis "Virtual Terminal Emulator")
3262 (description
3263 "VTE is a library (libvte) implementing a terminal emulator widget for
3264GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3265gnome-terminal, but can also be used to embed a console/terminal in games,
3266editors, IDEs, etc.")
3267 (license license:lgpl2.1+)))
3268
c44fb4df
MO
3269(define-public vte-ng
3270 (package
3271 (inherit vte)
3272 (name "vte-ng")
24f4fcbe 3273 (version "0.58.2.a")
afd90f8d 3274 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3275 (source (origin
3276 (method git-fetch)
3277 (uri (git-reference (url home-page) (commit version)))
3278 (file-name (git-file-name name version))
3279 (sha256
3280 (base32
24f4fcbe
MB
3281 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3282 (build-system meson-build-system)
c44fb4df
MO
3283 (native-inputs
3284 `(("gtk-doc" ,gtk-doc)
c44fb4df 3285 ,@(package-native-inputs vte)))
c44fb4df 3286 (arguments
24f4fcbe 3287 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3288 (synopsis "Enhanced VTE terminal widget")
3289 (description
3290 "VTE is a library (libvte) implementing a terminal emulator widget for
3291GTK+, this fork provides additional functions exposed for keyboard text
3292selection and URL hints.")))
3293
2776d72c
EF
3294;; provides vte 2.90, required for some terminal emulators
3295;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3296;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3297;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3298;; pantheon-terminal, roxterm are not currently packaged
3299(define-public vte-0.36
3300 (package (inherit vte)
3301 (name "vte")
3302 (version "0.36.5")
3303 (source (origin
3304 (method url-fetch)
3305 (uri (string-append "mirror://gnome/sources/" name "/"
3306 (version-major+minor version) "/"
3307 name "-" version ".tar.xz"))
3308 (sha256
3309 (base32
3310 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3311 (propagated-inputs
3312 `(("gtk" ,gtk+)
3313 ("ncurses" ,ncurses)))))
3314
ea57378f
SB
3315;; stable version for gtk2, required by xfce4-terminal.
3316(define-public vte/gtk+-2
3317 (package (inherit vte)
3318 (name "vte")
3319 (version "0.28.2")
3320 (source (origin
3321 (method url-fetch)
3322 (uri (string-append "mirror://gnome/sources/" name "/"
3323 (version-major+minor version) "/"
3324 name "-" version ".tar.xz"))
3325 (sha256
3326 (base32
7d48938a
EF
3327 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3328 (patches (search-patches
3329 "vte-CVE-2012-2738-pt1.patch"
3330 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3331 (build-system gnu-build-system)
ea57378f
SB
3332 (arguments
3333 '(#:configure-flags '("--disable-python")))
3334 (native-inputs
3335 `(("pkg-config" ,pkg-config)
3336 ("intltool" ,intltool)
3337 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3338 (propagated-inputs
3339 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3340 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3341
cce0da5e
TD
3342(define-public vinagre
3343 (package
3344 (name "vinagre")
3345 (version "3.22.0")
3346 (source (origin
3347 (method url-fetch)
3348 (uri (string-append "mirror://gnome/sources/" name "/"
3349 (version-major+minor version) "/"
3350 name "-" version ".tar.xz"))
684f97f8
EF
3351 (patches (search-patches "vinagre-newer-freerdp.patch"
3352 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3353 (sha256
3354 (base32
3355 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3356 (build-system glib-or-gtk-build-system)
684f97f8 3357 (arguments
7f486d25
MC
3358 ;; Disable -Werror and such, to avoid build failures on compilation
3359 ;; warnings.
3360 '(#:configure-flags '("--enable-compile-warnings=minimum")
3361 #:phases
684f97f8 3362 (modify-phases %standard-phases
1839768c
EF
3363 (add-before 'install 'skip-gtk-update-icon-cache
3364 (lambda _
3365 ;; Don't create 'icon-theme.cache'
3366 (substitute* (find-files "." "^Makefile$")
3367 (("gtk-update-icon-cache") (which "true")))
3368 #t))
684f97f8
EF
3369 (add-after 'unpack 'patch-configure
3370 (lambda _
3371 (substitute* "configure"
3372 (("freerdp") "freerdp2"))
3373 #t)))))
cce0da5e
TD
3374 (native-inputs
3375 `(("pkg-config" ,pkg-config)
3376 ("intltool" ,intltool)
3377 ("itstool" ,itstool)
1839768c 3378 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3379 (inputs
3380 `(("libxml2" ,libxml2)
3381 ("gtk-vnc" ,gtk-vnc)
3382 ("gnome-keyring" ,gnome-keyring)
3383 ("libsecret" ,libsecret)
3384 ("freerdp" ,freerdp)
3385 ("spice" ,spice)
3386 ("spice-gtk" ,spice-gtk)
3387 ("telepathy-glib" ,telepathy-glib)
3388 ("vte" ,vte)))
cce0da5e
TD
3389 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3390 (synopsis "Remote desktop viewer for GNOME")
3391 (description "Vinagre is a remote display client supporting the VNC, SPICE
3392and RDP protocols.")
3393 (license license:gpl3+)))
3394
b47e1b20
FB
3395(define-public dconf
3396 (package
3397 (name "dconf")
7f4d075d 3398 (version "0.34.0")
b47e1b20
FB
3399 (source (origin
3400 (method url-fetch)
3401 (uri (string-append
2e6ecc5c 3402 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3403 (version-major+minor version) "/"
3404 name "-" version ".tar.xz"))
46c3a08b 3405 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3406 (sha256
f05c809f 3407 (base32
7f4d075d 3408 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 3409 (build-system meson-build-system)
bc036f4c
MB
3410 (propagated-inputs
3411 ;; In Requires of dconf.pc.
3412 `(("glib" ,glib)))
b47e1b20
FB
3413 (inputs
3414 `(("gtk+" ,gtk+)
bc036f4c 3415 ("dbus" ,dbus)))
b47e1b20 3416 (native-inputs
1e33331c
MB
3417 `(("bash-completion" ,bash-completion)
3418 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3419 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3420 ("docbook-xml" ,docbook-xml-4.2)
3421 ("docbook-xsl" ,docbook-xsl)
35fa923d 3422 ("glib:bin" ,glib "bin")
03676d6f 3423 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3424 ("pkg-config" ,pkg-config)
3425 ("vala" ,vala)))
b47e1b20
FB
3426 (arguments
3427 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3428 ; or /etc/machine-id.
35fa923d
MB
3429 #:glib-or-gtk? #t
3430 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3431 (home-page "https://developer.gnome.org/dconf")
3432 (synopsis "Low-level GNOME configuration system")
3433 (description "Dconf is a low-level configuration system. Its main purpose
3434is to provide a backend to GSettings on platforms that don't already have
3435configuration storage systems.")
e20e6b40 3436 (license license:lgpl2.1+)))
109da1c0
AE
3437
3438(define-public json-glib
3439 (package
3440 (name "json-glib")
4115e8ea 3441 (version "1.4.4")
109da1c0
AE
3442 (source (origin
3443 (method url-fetch)
3444 (uri (string-append "mirror://gnome/sources/" name "/"
3445 (version-major+minor version) "/"
3446 name "-" version ".tar.xz"))
3447 (sha256
3448 (base32
4115e8ea 3449 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3450 (build-system meson-build-system)
109da1c0 3451 (native-inputs
98afa184
MB
3452 `(("gettext" ,gettext-minimal)
3453 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3454 ("gobject-introspection" ,gobject-introspection)
3455 ("pkg-config" ,pkg-config)))
3456 (propagated-inputs
88c6b580 3457 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3458 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3459 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3460 (description
3461 "JSON-GLib is a C library based on GLib providing serialization and
3462deserialization support for the JavaScript Object Notation (JSON) format
3463described by RFC 4627. It provides parser and generator GObject classes and
3464various wrappers for the complex data types employed by JSON, such as arrays
3465and objects.")
109da1c0 3466 (license license:lgpl2.1+)))
6f96a359
SB
3467
3468(define-public libxklavier
3469 (package
3470 (name "libxklavier")
5f39050b 3471 (version "5.4")
6f96a359 3472 (source (origin
5f39050b 3473 ;; Note: There's no tarball at ftp.gnome.org for this version.
3474 (method git-fetch)
3475 (uri (git-reference
3476 (url "https://anongit.freedesktop.org/git/libxklavier")
3477 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3478 (sha256
3479 (base32
5f39050b 3480 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3481 (file-name (git-file-name name version))))
6f96a359
SB
3482 (build-system gnu-build-system)
3483 (arguments
778d6b52 3484 '(#:configure-flags
6f96a359
SB
3485 (list (string-append "--with-xkb-base="
3486 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3487 "/share/X11/xkb")
3488 "--disable-xmodmap-support")))
6f96a359
SB
3489 (native-inputs
3490 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3491 ("gobject-introspection" ,gobject-introspection)
5f39050b 3492 ("pkg-config" ,pkg-config)
3493 ("gtk-doc" ,gtk-doc)
3494 ("intltool" ,intltool)
3495 ("which" ,which)
3496 ("autoconf" ,autoconf)
3497 ("automake" ,automake)
3498 ("libtool" ,libtool)))
6f96a359
SB
3499 (propagated-inputs
3500 ;; Required by libxklavier.pc.
3501 `(("glib" ,glib)
3502 ("libxml2" ,libxml2)))
3503 (inputs
3504 `(("iso-codes" ,iso-codes)
3505 ("libxi" ,libxi)
3506 ("libxkbfile" ,libxkbfile)
3507 ("xkbcomp" ,xkbcomp)
3508 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3509 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3510 (synopsis "High-level API for X Keyboard Extension")
3511 (description
3512 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3513Extension known as XKB. This library is intended to support XFree86 and other
3514commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3515indicators etc).")
3516 (license license:lgpl2.0+)))
619936a4
LC
3517
3518(define-public python2-rsvg
3519 ;; XXX: This is actually a subset of gnome-python-desktop.
3520 (package
3521 (name "python2-rsvg")
3522 (version "2.32.0")
3523 (source
3524 (origin
3525 (method url-fetch)
3526 (uri (string-append
3527 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3528 version ".tar.bz2"))
3529 (sha256
3530 (base32
3531 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3532 (build-system gnu-build-system)
3533 (native-inputs
3534 `(("pkg-config" ,pkg-config)))
3535 (inputs
3536 `(("python" ,python-2)
3537 ("python2-pygtk" ,python2-pygtk)
3538 ("librsvg" ,librsvg)))
f032d0be 3539 (home-page "https://www.gnome.org")
619936a4
LC
3540 (synopsis "Python bindings to librsvg")
3541 (description
3ad75446 3542 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3543library.")
3544
3545 ;; This is the license of the rsvg bindings. The license of each module
3546 ;; of gnome-python-desktop is given in 'COPYING'.
3547 (license license:lgpl2.1+)))
a31a6d22 3548
f2ca414a
SB
3549(define-public glib-networking
3550 (package
3551 (name "glib-networking")
ea9f74b0 3552 (version "2.62.2")
f2ca414a
SB
3553 (source (origin
3554 (method url-fetch)
3555 (uri (string-append "mirror://gnome/sources/glib-networking/"
3556 (version-major+minor version) "/"
fb8fe1e8 3557 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3558 (sha256
3559 (base32
ea9f74b0 3560 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 3561 (build-system meson-build-system)
f2ca414a 3562 (arguments
0d75c64d 3563 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3564 (native-inputs
3565 `(("pkg-config" ,pkg-config)
3566 ("intltool" ,intltool)))
3567 (inputs
3568 `(("glib" ,glib)
3569 ("gnutls" ,gnutls)
4b8f1313 3570 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3571 (home-page "https://www.gnome.org")
f2ca414a
SB
3572 (synopsis "Network-related GIO modules")
3573 (description
3574 "This package contains various network related extensions for the GIO
3575library.")
3576 (license license:lgpl2.0+)))
3577
ca649680 3578(define-public rest
4510b2da 3579 (package
ca649680 3580 (name "rest")
a4194d16 3581 (version "0.8.1")
4510b2da
SB
3582 (source (origin
3583 (method url-fetch)
3584 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3585 (version-major+minor version) "/"
3586 name "-" version ".tar.xz"))
4510b2da
SB
3587 (sha256
3588 (base32
a4194d16 3589 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3590 (build-system gnu-build-system)
3591 (arguments
3592 '(#:tests? #f ; tests require internet connection
3593 #:configure-flags
3594 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3595 (native-inputs
3596 `(("glib-mkenums" ,glib "bin")
3597 ("gobject-introspection" ,gobject-introspection)
3598 ("pkg-config" ,pkg-config)))
3599 (propagated-inputs
3600 ;; rest-0.7.pc refers to all these.
3601 `(("glib" ,glib)
3602 ("libsoup" ,libsoup)
3603 ("libxml2" ,libxml2)))
24d6cc1d 3604 (home-page "https://www.gtk.org/")
4510b2da
SB
3605 (synopsis "RESTful web api query library")
3606 (description
3607 "This library was designed to make it easier to access web services that
3608claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3609libxml to ease remote use of the RESTful API.")
3610 (license license:lgpl2.1+)))
3611
6e1bb642
SB
3612(define-public libsoup
3613 (package
3614 (name "libsoup")
9a9cd9bc 3615 (version "2.70.0")
6e1bb642
SB
3616 (source (origin
3617 (method url-fetch)
3618 (uri (string-append "mirror://gnome/sources/libsoup/"
3619 (version-major+minor version) "/"
c1b79b36 3620 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3621 (sha256
3622 (base32
9a9cd9bc 3623 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3624 (build-system meson-build-system)
6e1bb642
SB
3625 (outputs '("out" "doc"))
3626 (arguments
2deb146f 3627 `(#:modules ((guix build utils)
eccaa8bf 3628 (guix build meson-build-system)
2deb146f
LC
3629 (ice-9 popen))
3630
f8026a79 3631 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3632 #:phases
3633 (modify-phases %standard-phases
eccaa8bf 3634 (add-after 'unpack 'adjust-tests
26c228f9 3635 (lambda _
eccaa8bf
MB
3636 ;; This test fails due to missing /etc/nsswitch.conf
3637 ;; in the build environment.
26c228f9
LC
3638 (substitute* "tests/socket-test.c"
3639 ((".*/sockets/unconnected.*") ""))
2deb146f 3640
f8026a79
MB
3641 ;; These fail because "subdomain.localhost" does not resolve in
3642 ;; the build environment.
3643 (substitute* "tests/hsts-test.c"
3644 ((".*/hsts/basic.*") "")
3645 ((".*/hsts/subdomains.*") "")
3646 ((".*/hsts/superdomain.*") "")
3647 ((".*/hsts/utf8-address.*") ""))
3648 (substitute* "tests/hsts-db-test.c"
3649 ((".*/hsts-db/subdomains.*") ""))
3650
2deb146f
LC
3651 ;; Generate a self-signed certificate that has "localhost" as its
3652 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3653 ;; 3.5.12, tests such as "ssl-tests" fail:
3654 ;;
3655 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3656 ;;
3657 ;; 'certtool' is interactive so we have to pipe it the answers.
3658 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3659 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3660 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3661 (for-each (lambda (line)
3662 (display line pipe)
3663 (newline pipe))
3664 '("" ;Common name
3665 "" ;UID
3666 "Guix" ;Organizational unit name
3667 "GNU" ;Organization name
3668 "" ;Locality name
3669 "" ;State or province
3670 "" ;Country
3671 "" ;subject's domain component (DC)
3672 "" ;E-mail
3673 "" ;serial number
3674 "-1" ;expiration time
3675 "N" ;belong to authority?
3676 "N" ;web client certificate?
3677 "N" ;IPsec IKE?
3678 "Y" ;web server certificate?
3679 "localhost" ;dnsName of subject
3680 "" ;dnsName of subject (end)
3681 "" ;URI of subject
3682 "127.0.0.1" ;IP address of subject
3683 "" ;signing?
06f5bc4e
MB
3684 "" ;encryption (RSA)?
3685 "" ;data encryption?
2deb146f
LC
3686 "" ;sign OCSP requests?
3687 "" ;sign code?
3688 "" ;time stamping?
3689 "" ;email protection?
3690 "" ;URI of the CRL distribution point
3691 "y" ;above info OK?
3692 ))
3693 (close-pipe pipe))
26c228f9 3694 #t))
eccaa8bf
MB
3695 (add-after 'install 'move-doc
3696 (lambda* (#:key outputs #:allow-other-keys)
3697 (let ((out (assoc-ref outputs "out"))
3698 (doc (assoc-ref outputs "doc")))
3699 (mkdir-p (string-append doc "/share"))
3700 (copy-recursively (string-append out "/share/gtk-doc")
3701 (string-append doc "/share/gtk-doc"))
3702 (delete-file-recursively (string-append out "/share/gtk-doc"))
3703 #t))))))
6e1bb642 3704 (native-inputs
26c228f9 3705 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3706 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3707 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3708 ("intltool" ,intltool)
3709 ("pkg-config" ,pkg-config)
3710 ("python" ,python-wrapper)
fd730590 3711 ("vala" ,vala)
6e1bb642
SB
3712 ;; These are needed for the tests.
3713 ;; FIXME: Add PHP once available.
3714 ("curl" ,curl)
2deb146f 3715 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3716 ("httpd" ,httpd)))
3717 (propagated-inputs
3718 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3719 `(("brotli" ,google-brotli)
3720 ("glib" ,glib)
249846bf 3721 ("libpsl" ,libpsl)
eccaa8bf 3722 ("libxml2" ,libxml2)
f8026a79
MB
3723 ("sqlite" ,sqlite)
3724 ("zlib" ,zlib)))
eccaa8bf
MB
3725 (inputs
3726 `(("glib-networking" ,glib-networking)
3727 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3728 (home-page "https://live.gnome.org/LibSoup/")
3729 (synopsis "GLib-based HTTP Library")
3730 (description
3731 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3732and the GLib main loop, to integrate well with GNOME applications.")
3733 (license license:lgpl2.0+)))
3734
bba229a3
SB
3735(define-public libsecret
3736 (package
3737 (name "libsecret")
b05a2f62 3738 (version "0.20.3")
bba229a3
SB
3739 (source (origin
3740 (method url-fetch)
3741 (uri (string-append
896dcbc7
EF
3742 "mirror://gnome/sources/libsecret/"
3743 (version-major+minor version) "/"
0ada4e29 3744 "libsecret-" version ".tar.xz"))
bba229a3
SB
3745 (sha256
3746 (base32
b05a2f62 3747 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
3748 (build-system gnu-build-system)
3749 (outputs '("out" "doc"))
3750 (arguments
3751 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3752 #:configure-flags
3753 (list (string-append "--with-html-dir="
3754 (assoc-ref %outputs "doc")
3755 "/share/gtk-doc/html"))))
3756 (native-inputs
c06ef010
MB
3757 `(("gettext" ,gettext-minimal)
3758 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3759 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3760 ("pkg-config" ,pkg-config)
3761 ("vala" ,vala)
3762 ("xsltproc" ,libxslt)))
3763 ;; These are needed for the tests.
3764 ;; FIXME: Add gjs once available.
3765 ;("dbus" ,dbus)
3766 ;("python2" ,python-2)
3767 ;("python2-dbus" ,python2-dbus)
3768 ;("python2-pygobject" ,python2-pygobject)
3769 ;("python2-pygobject-2" ,python2-pygobject-2)))
3770 (propagated-inputs
3771 `(("glib" ,glib))) ; required by libsecret-1.pc
3772 (inputs
3773 `(("docbook-xsl" ,docbook-xsl)
3774 ("libgcrypt" ,libgcrypt)
3775 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3776 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3777 (synopsis "GObject bindings for \"Secret Service\" API")
3778 (description
3779 "Libsecret is a GObject based library for storing and retrieving passwords
3780and other secrets. It communicates with the \"Secret Service\" using DBus.")
3781 (license license:lgpl2.1+)))
3782
b6821ee0 3783(define-public five-or-more
3784 (package
3785 (name "five-or-more")
ee75b46f 3786 (version "3.32.2")
b6821ee0 3787 (source
3788 (origin
3789 (method url-fetch)
bf782bfc 3790 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3791 (version-major+minor version) "/"
bf782bfc 3792 "five-or-more-" version ".tar.xz"))
b6821ee0 3793 (sha256
ee75b46f 3794 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
3795 (build-system meson-build-system)
3796 (arguments
3797 '(#:glib-or-gtk? #t
3798 #:phases
3799 (modify-phases %standard-phases
3800 (add-after 'unpack 'skip-gtk-update-icon-cache
3801 (lambda _
3802 (substitute* "meson_post_install.py"
3803 (("gtk-update-icon-cache") (which "true")))
3804 #t)))))
b6821ee0 3805 (native-inputs
3806 `(("pkg-config" ,pkg-config)
d9795e93 3807 ("appstream-glib" ,appstream-glib)
b6821ee0 3808 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3809 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3810 ("intltool" ,intltool)
3811 ("itstool" ,itstool)
d9795e93 3812 ("vala" ,vala)
b6821ee0 3813 ("xmllint" ,libxml2)))
3814 (inputs
3815 `(("gtk+" ,gtk+)
d9795e93 3816 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3817 ("librsvg" ,librsvg)))
3818 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3819 (synopsis "Logic puzzle game")
3820 (description "Five or More is a game where you try to align
3821 five or more objects of the same color and shape causing them to disappear.
3822 On every turn more objects will appear, until the board is full.
3823 Try to last as long as possible.")
3824 (license license:gpl2+)))
3825
a31a6d22
SB
3826(define-public gnome-mines
3827 (package
3828 (name "gnome-mines")
d79e9b1b 3829 (version "3.34.0")
a31a6d22
SB
3830 (source
3831 (origin
3832 (method url-fetch)
3833 (uri (string-append "mirror://gnome/sources/" name "/"
3834 (version-major+minor version) "/"
3835 name "-" version ".tar.xz"))
3836 (sha256
3837 (base32
d79e9b1b 3838 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 3839 (build-system meson-build-system)
a31a6d22 3840 (arguments
2d817e41
KK
3841 '(#:glib-or-gtk? #t
3842 #:phases
a31a6d22 3843 (modify-phases %standard-phases
2d817e41
KK
3844 (add-after 'unpack 'skip-gtk-update-icon-cache
3845 (lambda _
3846 (substitute* "build-aux/meson_post_install.py"
3847 (("gtk-update-icon-cache") (which "true")))
3848 #t)))))
a31a6d22 3849 (native-inputs
8c0fab36
RW
3850 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3851 ("pkg-config" ,pkg-config)
a31a6d22
SB
3852 ("desktop-file-utils" ,desktop-file-utils)
3853 ("intltool" ,intltool)
bcb354ad 3854 ("itstool" ,itstool)
8c0fab36
RW
3855 ("vala" ,vala)
3856 ("yelp" ,yelp)
3857 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3858 (inputs
3859 `(("gtk+" ,gtk+)
73992962 3860 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3861 ("librsvg" ,librsvg)))
3862 (home-page "https://wiki.gnome.org/Apps/Mines")
3863 (synopsis "Minesweeper game")
3864 (description
3865 "Mines (previously gnomine) is a puzzle game where you locate mines
3866floating in an ocean using only your brain and a little bit of luck.")
3867 (license license:gpl2+)))
88f70665 3868
dfc407f3
KY
3869(define-public gnome-sudoku
3870 (package
3871 (name "gnome-sudoku")
857eb190 3872 (version "3.34.1")
dfc407f3
KY
3873 (source
3874 (origin
3875 (method url-fetch)
3876 (uri (string-append "mirror://gnome/sources/" name "/"
3877 (version-major+minor version) "/"
3878 name "-" version ".tar.xz"))
3879 (sha256
3880 (base32
857eb190 3881 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
3882 (build-system meson-build-system)
3883 (arguments
3884 '(#:glib-or-gtk? #t
3885 #:phases
3886 (modify-phases %standard-phases
3887 (add-after 'unpack 'skip-gtk-update-icon-cache
3888 (lambda _
3889 (substitute* "build-aux/post_install.py"
3890 (("gtk-update-icon-cache") (which "true")))
3891 #t)))))
dfc407f3
KY
3892 (native-inputs
3893 `(("pkg-config" ,pkg-config)
3894 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3895 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3896 ("intltool" ,intltool)
3897 ("itstool" ,itstool)
7dc728c4 3898 ("vala" ,vala)
dfc407f3
KY
3899 ("xmllint" ,libxml2)))
3900 (inputs
3901 `(("gtk+" ,gtk+)
3902 ("json-glib" ,json-glib)
3903 ("libgee" ,libgee)
3904 ("librsvg" ,librsvg)
3905 ("qqwing" ,qqwing)))
3906 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3907 (synopsis "Japanese logic game")
3908 (description
3909 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3910GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3911possible while still providing features that make playing difficult Sudoku
3912more fun.")
3913 (license license:gpl2+)))
3914
88f70665
AW
3915(define-public gnome-terminal
3916 (package
3917 (name "gnome-terminal")
80f6f9d8 3918 (version "3.34.2")
88f70665
AW
3919 (source
3920 (origin
3921 (method url-fetch)
3922 (uri (string-append "mirror://gnome/sources/" name "/"
3923 (version-major+minor version) "/"
3924 name "-" version ".tar.xz"))
3925 (sha256
3926 (base32
80f6f9d8 3927 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
3928 (build-system glib-or-gtk-build-system)
3929 (arguments
3930 '(#:configure-flags
3931 (list "--disable-migration" "--disable-search-provider"
3932 "--without-nautilus-extension")
3933 #:phases
3934 (modify-phases %standard-phases
3a4de6b2 3935 (add-before 'configure 'patch-/bin/true
88f70665
AW
3936 (lambda _
3937 (substitute* "configure"
3938 (("/bin/true") (which "true"))))))))
3939 (native-inputs
3940 `(("pkg-config" ,pkg-config)
3941 ("desktop-file-utils" ,desktop-file-utils)
3942 ("intltool" ,intltool)
bcb354ad
SB
3943 ("itstool" ,itstool)
3944 ("xmllint" ,libxml2)))
68702167
MW
3945 (propagated-inputs
3946 `(("dconf" ,dconf)))
88f70665
AW
3947 (inputs
3948 `(("gtk+" ,gtk+)
3949 ("vte" ,vte)
3950 ("gnutls" ,gnutls)
88f70665 3951 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 3952 ("util-linux" ,util-linux "lib")
88f70665
AW
3953 ("vala" ,vala)))
3954 (home-page "https://wiki.gnome.org/Apps/Terminal")
3955 (synopsis "Terminal emulator")
3956 (description
3957 "GNOME Terminal is a terminal emulator application for accessing a
3958UNIX shell environment which can be used to run programs available on
3959your system.
3960
3961It supports several profiles, multiple tabs and implements several
3962keyboard shortcuts.")
3963 (license license:gpl3+)))
75016d07
AW
3964
3965(define-public colord
3966 (package
3967 (name "colord")
f98be942 3968 (version "1.4.4")
75016d07
AW
3969 (source
3970 (origin
3971 (method url-fetch)
5cc3096c 3972 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3973 "colord-" version ".tar.xz"))
75016d07 3974 (sha256
f98be942 3975 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3976 (build-system meson-build-system)
75016d07 3977 (arguments
a68544a8
RW
3978 '(;; FIXME: One test fails:
3979 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3980 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3981 ;; application/x-zerosize
75016d07 3982 #:tests? #f
a68544a8
RW
3983 #:glib-or-gtk? #t
3984 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 3985 ;; No dep on systemd.
a68544a8 3986 "-Dsystemd=false"
75016d07
AW
3987 ;; Wants to install to global completion dir;
3988 ;; punt.
a68544a8 3989 "-Dbash_completion=false"
a68544a8
RW
3990 "-Ddaemon_user=colord"
3991 "-Dsane=true"
dac26e22 3992 "-Dvapi=true"
6f20e2dc 3993 ;; Requires spotread.
a68544a8 3994 "-Dargyllcms_sensor=false"
6f20e2dc 3995 ;; TODO: Requires docbook2x.
a68544a8 3996 "-Dman=false")
75016d07
AW
3997 #:phases
3998 (modify-phases %standard-phases
a68544a8
RW
3999 (add-before 'configure 'patch-build-system
4000 (lambda* (#:key outputs #:allow-other-keys)
4001 (substitute* "rules/meson.build"
4002 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4003 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4004 #t))
4005 (add-before 'configure 'set-sqlite3-file-name
4006 (lambda* (#:key inputs #:allow-other-keys)
4007 ;; "colormgr dump" works by invoking the "sqlite3" command.
4008 ;; Record its absolute file name.
4009 (let ((sqlite (assoc-ref inputs "sqlite")))
4010 (substitute* "client/cd-util.c"
4011 (("\"sqlite3\"")
4012 (string-append "\"" sqlite "/bin/sqlite3\"")))
4013 #t))))))
75016d07 4014 (native-inputs
6f20e2dc 4015 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4016 ("gettext" ,gettext-minimal)
75016d07 4017 ("gobject-introspection" ,gobject-introspection)
a68544a8 4018 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4019 ("pkg-config" ,pkg-config)
4020 ("vala" ,vala)))
65cb2d61
SB
4021 (propagated-inputs
4022 ;; colord.pc refers to all these.
4023 `(("glib" ,glib)
6f20e2dc
TGR
4024 ("lcms" ,lcms)
4025 ("udev" ,eudev)))
75016d07 4026 (inputs
65cb2d61 4027 `(("dbus-glib" ,dbus-glib)
a68544a8 4028 ("gusb" ,gusb)
80c7dd1a 4029 ("libgudev" ,libgudev)
75016d07 4030 ("libusb" ,libusb)
75016d07 4031 ("polkit" ,polkit)
a68544a8 4032 ("python" ,python-wrapper)
6f20e2dc 4033 ("sqlite" ,sqlite)
4c928743 4034 ("sane-backends" ,sane-backends)))
57e7d748 4035 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4036 (synopsis "Color management service")
4037 (description "Colord is a system service that makes it easy to manage,
4038install and generate color profiles to accurately color manage input and
4039output devices.")
4040 (license license:gpl2+)))
7b2abd00
AW
4041
4042(define-public geoclue
4043 (package
4044 (name "geoclue")
50e96d25 4045 (version "2.5.5")
7b2abd00
AW
4046 (source
4047 (origin
4048 (method url-fetch)
50e96d25
MB
4049 (uri
4050 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4051 version "/geoclue-" version ".tar.bz2"))
7b2abd00
AW
4052 (sha256
4053 (base32
50e96d25 4054 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
fc1adab1 4055 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4056 (build-system meson-build-system)
7b2abd00 4057 (arguments
50e96d25 4058 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4059 (native-inputs
4060 `(("pkg-config" ,pkg-config)
758798a9 4061 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4062 ("modem-manager" ,modem-manager)
4063 ("libnotify" ,libnotify)
4064 ("gtk-doc", gtk-doc)
7b2abd00
AW
4065 ("intltool" ,intltool)))
4066 (inputs
54e911bc 4067 `(("avahi" ,avahi)
50e96d25
MB
4068 ("glib:bin" ,glib "bin")
4069 ("glib-networking" ,glib-networking)
7b2abd00
AW
4070 ("json-glib" ,json-glib)
4071 ("libsoup" ,libsoup)))
50e96d25 4072 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4073 (synopsis "Geolocation service")
4074 (description "Geoclue is a D-Bus service that provides location
4075information. The primary goal of the Geoclue project is to make creating
4076location-aware applications as simple as possible, while the secondary goal is
4077to ensure that no application can access location information without explicit
e881752c 4078permission from user.")
7b2abd00 4079 (license license:gpl2+)))
2bfe7437
AW
4080
4081(define-public geocode-glib
4082 (package
4083 (name "geocode-glib")
65de725f 4084 (version "3.26.1")
2bfe7437
AW
4085 (source (origin
4086 (method url-fetch)
4087 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4088 (version-major+minor version) "/"
d485cdc0 4089 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4090 (sha256
4091 (base32
65de725f 4092 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4093 (build-system meson-build-system)
2bfe7437 4094 (arguments
a7dd0c02
RW
4095 `(#:phases
4096 (modify-phases %standard-phases
4097 ;; The tests require a bunch of locales.
4098 (add-before 'check 'set-locales
4099 (lambda* (#:key inputs #:allow-other-keys)
4100 (setenv "GUIX_LOCPATH"
4101 (string-append (assoc-ref inputs "glibc-locales")
4102 "/lib/locale"))
4103 #t)))))
2bfe7437
AW
4104 (native-inputs
4105 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4106 ("glibc-locales" ,glibc-locales) ; for tests
4107 ("gettext" ,gettext-minimal)
2bfe7437 4108 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4109 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4110 ("pkg-config" ,pkg-config)
4111 ("json-glib" ,json-glib)))
4112 (propagated-inputs
4113 ;; geocode-glib-1.0.pc refers to GIO.
4114 `(("glib" ,glib)))
4115 (inputs
4116 `(("libsoup" ,libsoup)))
4117 (home-page "https://github.com/GNOME/geocode-glib/")
4118 (synopsis "Geocoding and reverse-geocoding library")
4119 (description
4120 "geocode-glib is a convenience library for geocoding (finding longitude,
4121and latitude from an address) and reverse geocoding (finding an address from
4122coordinates) using the Nominatim service. geocode-glib caches requests for
4123faster results and to avoid unnecessary server load.")
4124 (license license:lgpl2.0+)))
a1d5bb0e
AW
4125
4126(define-public upower
4127 (package
4128 (name "upower")
df45af90 4129 (version "0.99.11")
a1d5bb0e
AW
4130 (source (origin
4131 (method url-fetch)
df45af90 4132 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4133 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4134 (sha256
4135 (base32
df45af90 4136 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4137 (patches (search-patches "upower-builddir.patch"))
4138 (modules '((guix build utils)))
4139 (snippet
4140 '(begin
4141 ;; Upstream commit
4142 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4143 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4144 ;; 'dbus-configuration-directory' in (gnu services dbus)
4145 ;; expects it in etc/. Thus, move it back to its previous
4146 ;; location.
4147 (substitute* "src/Makefile.in"
4148 (("^dbusconfdir =.*$")
4149 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4150 #t))))
a1d5bb0e
AW
4151 (build-system glib-or-gtk-build-system)
4152 (arguments
4153 '( ;; The tests want to contact the system bus, which can't be done in the
4154 ;; build environment. The integration test can run, but the last of
4155 ;; the up-self-tests doesn't. Disable tests for now.
4156 #:tests? #f
4157 #:configure-flags (list "--localstatedir=/var"
4158 (string-append "--with-udevrulesdir="
4159 (assoc-ref %outputs "out")
9ec54965 4160 "/lib/udev/rules.d"))))
a1d5bb0e 4161 (native-inputs
ebeabe2d
SB
4162 `(("gobject-introspection" ,gobject-introspection)
4163 ("pkg-config" ,pkg-config)
a1d5bb0e 4164 ("intltool" ,intltool)
55409295
LC
4165 ("python" ,python)
4166
4167 ;; For man pages.
4168 ("libxslt" ,libxslt) ;for 'xsltproc'
4169 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4170 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4171 (inputs
ea226291
SB
4172 `(("dbus-glib" ,dbus-glib)
4173 ("libgudev" ,libgudev)
a1d5bb0e 4174 ("libusb" ,libusb)))
d7a503fc
MB
4175 (propagated-inputs
4176 ;; In Requires of upower-glib.pc.
4177 `(("glib" ,glib)))
57e7d748 4178 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4179 (synopsis "System daemon for managing power devices")
4180 (description
4181 "UPower is an abstraction for enumerating power devices,
4182listening to device events and querying history and statistics. Any
4183application or service on the system can access the org.freedesktop.UPower
4184service via the system message bus.")
4185 (license license:gpl2+)))
6a180f6f
AW
4186
4187(define-public libgweather
4188 (package
4189 (name "libgweather")
462d3416 4190 (version "3.34.0")
6a180f6f
AW
4191 (source (origin
4192 (method url-fetch)
4193 (uri (string-append "mirror://gnome/sources/" name "/"
4194 (version-major+minor version) "/"
4195 name "-" version ".tar.xz"))
4196 (sha256
4197 (base32
462d3416 4198 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 4199 (build-system meson-build-system)
6a180f6f 4200 (arguments
cf6cbc34
RW
4201 `(#:tests? #f ; one of two tests requires network access
4202 #:configure-flags
4203 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4204 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4205 "/share/zoneinfo"))))
6a180f6f
AW
4206 (native-inputs
4207 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4208 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4209 ("pkg-config" ,pkg-config)
1d3fcf94 4210 ("vala" ,vala)
6a180f6f
AW
4211 ("intltool" ,intltool)))
4212 (propagated-inputs
4213 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4214 ;; libsoup.
4215 `(("gtk+" ,gtk+)
4216 ("gdk-pixbuf" ,gdk-pixbuf)
4217 ("libxml2" ,libxml2)
cf6cbc34 4218 ("libsoup" ,libsoup)
6a180f6f 4219 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4220 (inputs
4221 `(("tzdata" ,tzdata)))
6a180f6f
AW
4222 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4223 (synopsis "Location, time zone, and weather library for GNOME")
4224 (description
4225 "libgweather is a library to access weather information from online
4226services for numerous locations.")
4227 (license license:gpl2+)))
23a22af6
AW
4228
4229(define-public gnome-settings-daemon
4230 (package
4231 (name "gnome-settings-daemon")
20154759 4232 (version "3.34.1")
23a22af6
AW
4233 (source
4234 (origin
4235 (method url-fetch)
4236 (uri (string-append "mirror://gnome/sources/" name "/"
4237 (version-major+minor version) "/"
4238 name "-" version ".tar.xz"))
4239 (sha256
4240 (base32
20154759 4241 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 4242 (build-system meson-build-system)
23a22af6 4243 (arguments
e644f9fa
RW
4244 `(#:glib-or-gtk? #t
4245 #:configure-flags
4246 (list (string-append "-Dudev_dir="
4247 (assoc-ref %outputs "out")
4d0e085b 4248 "/lib/udev/rules.d/")
20154759 4249 "-Dsystemd=false"
4d0e085b
RW
4250 ;; Otherwise, the RUNPATH will lack the final path component.
4251 (string-append "-Dc_link_args=-Wl,-rpath="
4252 (assoc-ref %outputs "out")
4253 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4254 ;; Color management test can't reach the colord system service.
23a22af6
AW
4255 #:tests? #f))
4256 (native-inputs
e644f9fa
RW
4257 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4258 ("pkg-config" ,pkg-config)
23a22af6
AW
4259 ("intltool" ,intltool)
4260 ("xsltproc" ,libxslt)
4261 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4262 ("docbook-xml" ,docbook-xml-4.2)
4263 ("docbook-xsl" ,docbook-xsl)))
4264 (inputs
e644f9fa
RW
4265 `(("alsa-lib" ,alsa-lib)
4266 ("colord" ,colord)
ea226291 4267 ("libgudev" ,libgudev)
23a22af6
AW
4268 ("upower" ,upower)
4269 ("polkit" ,polkit)
4270 ("pulseaudio" ,pulseaudio)
4271 ("libcanberra" ,libcanberra)
4272 ("libx11" ,libx11)
4273 ("libxtst" ,libxtst)
4274 ("lcms" ,lcms)
4275 ("libnotify" ,libnotify)
4276 ("geoclue" ,geoclue)
4277 ("geocode-glib" ,geocode-glib)
4278 ("libgweather" ,libgweather)
4279 ("gnome-desktop" ,gnome-desktop)
4280 ("nss" ,nss)
4281 ("cups" ,cups)
ec2b1921
AW
4282 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4283 ("libwacom" ,libwacom)
4284 ("librsvg" ,librsvg)
eee7878f 4285 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4286 ("wayland" ,wayland)
20154759
KK
4287 ("network-manager" ,network-manager)
4288 ("gcr" ,gcr)
4289 ("modem-manager" ,modem-manager)))
f032d0be 4290 (home-page "https://www.gnome.org")
23a22af6
AW
4291 (synopsis "GNOME settings daemon")
4292 (description
4293 "This package contains the daemon responsible for setting the various
4294parameters of a GNOME session and the applications that run under it. It
4295handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4296settings, themes, mouse settings, and startup of other daemons.")
4297 (license license:gpl2+)))
1e7464a9
DH
4298
4299(define-public totem-pl-parser
4300 (package
4301 (name "totem-pl-parser")
77425f04 4302 (version "3.26.3")
1e7464a9
DH
4303 (source (origin
4304 (method url-fetch)
e980cbe9
MW
4305 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4306 (version-major+minor version) "/"
1e7464a9
DH
4307 "totem-pl-parser-" version ".tar.xz"))
4308 (sha256
4309 (base32
77425f04 4310 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4311 (build-system meson-build-system)
1e7464a9
DH
4312 (arguments
4313 ;; FIXME: Tests require gvfs.
4314 `(#:tests? #f))
4315 (native-inputs
4316 `(("intltool" ,intltool)
4317 ("glib" ,glib "bin")
4d6d8281 4318 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4319 ("pkg-config" ,pkg-config)))
22a6ad6a 4320 (propagated-inputs
1e7464a9
DH
4321 `(("glib" ,glib)
4322 ("gmime" ,gmime)
1e9b19dd
RW
4323 ("libarchive" ,libarchive)
4324 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4325 ("libxml2" ,libxml2)))
4326 (inputs
0a6e9e13 4327 `(("libsoup" ,libsoup)))
1e7464a9
DH
4328 (home-page "https://projects.gnome.org/totem")
4329 (synopsis "Library to parse and save media playlists for GNOME")
4330 (description "Totem-pl-parser is a GObjects-based library to parse and save
4331playlists in a variety of formats.")
4332 (license license:lgpl2.0+)))
4333
6b888eff
SB
4334(define-public aisleriot
4335 (package
4336 (name "aisleriot")
36ed9b46 4337 (version "3.22.9")
6b888eff
SB
4338 (source (origin
4339 (method url-fetch)
e43f622a 4340 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4341 (version-major+minor version) "/"
e43f622a 4342 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4343 (sha256
4344 (base32
36ed9b46 4345 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4346 (build-system glib-or-gtk-build-system)
4347 (arguments
4348 '(#:configure-flags
4349 '("--with-platform=gtk-only"
4350 "--with-card-theme-formats=svg")))
4351 (native-inputs
4352 `(("desktop-file-utils" ,desktop-file-utils)
4353 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4354 ("intltool" ,intltool)
4355 ("itstool" ,itstool)
4356 ("pkg-config" ,pkg-config)
4357 ("xmllint" ,libxml2)))
4358 (inputs
4359 `(("gtk+" ,gtk+)
226e57d6 4360 ("guile" ,guile-2.2)
6b888eff
SB
4361 ("libcanberra" ,libcanberra)
4362 ("librsvg" ,librsvg)))
4363 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4364 (synopsis "Solitaire card games")
4365 (description
4366 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4367which are easy to play with the aid of a mouse.")
4368 (license license:gpl3+)))
4a79e256 4369
f828d05b
KK
4370(define-public amtk
4371 (package
4372 (name "amtk")
0e08ca14 4373 (version "5.0.2")
f828d05b
KK
4374 (source (origin
4375 (method url-fetch)
bf92ba6b 4376 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4377 (version-major+minor version) "/"
bf92ba6b 4378 "amtk-" version ".tar.xz"))
f828d05b
KK
4379 (sha256
4380 (base32
0e08ca14 4381 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4382 (build-system gnu-build-system)
4383 (arguments
4384 '(#:configure-flags '("--enable-gtk-doc")))
4385 (native-inputs
4386 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4387 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4388 ("gtk-doc" ,gtk-doc)
4389 ("pkg-config" ,pkg-config)))
4390 (inputs
4391 `(("glib" ,glib)
4392 ("gtk+" ,gtk+)))
4393 (home-page "https://wiki.gnome.org/Projects/Amtk")
4394 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4395 (description
4396 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4397It is a basic GtkUIManager replacement based on GAction. It is suitable for
4398both a traditional UI or a modern UI with a GtkHeaderBar.")
4399 (license license:lgpl2.1+)))
4400
4a79e256
SB
4401(define-public devhelp
4402 (package
4403 (name "devhelp")
8ae23a1d 4404 (version "3.34.0")
4a79e256
SB
4405 (source (origin
4406 (method url-fetch)
4407 (uri (string-append "mirror://gnome/sources/" name "/"
4408 (version-major+minor version) "/"
4409 name "-" version ".tar.xz"))
4410 (sha256
4411 (base32
8ae23a1d 4412 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 4413 (build-system meson-build-system)
35407f94 4414 (arguments
20db7a3d
KK
4415 '(#:glib-or-gtk? #t
4416 #:phases
35407f94
EF
4417 (modify-phases %standard-phases
4418 (add-after 'unpack 'skip-gtk-update-icon-cache
4419 ;; Don't create 'icon-theme.cache'.
4420 (lambda _
4421 (substitute* "meson_post_install.py"
4422 (("gtk-update-icon-cache") "true"))
4423 #t)))))
4a79e256
SB
4424 (native-inputs
4425 `(("intltool" ,intltool)
5dd12afc 4426 ("itstool" ,itstool)
11d28bd9
KK
4427 ("gobject-introspection" ,gobject-introspection)
4428 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4429 ("pkg-config" ,pkg-config)))
4430 (inputs
11d28bd9
KK
4431 `(("amtk" ,amtk)
4432 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4433 ("webkitgtk" ,webkitgtk)))
4434 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4435 (synopsis "API documentation browser for GNOME")
4436 (description
4437 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4438natively with GTK-Doc (the API reference system developed for GTK+ and used
4439throughout GNOME for API documentation).")
4440 (license license:gpl2+)))
ba421ab7
MW
4441
4442(define-public cogl
4443 (package
4444 (name "cogl")
29f4bb2e 4445 (version "1.22.6")
ba421ab7
MW
4446 (source
4447 (origin
4448 (method url-fetch)
5754f0cf 4449 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4450 (version-major+minor version) "/"
5754f0cf 4451 "cogl-" version ".tar.xz"))
ba421ab7 4452 (sha256
29f4bb2e 4453 (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
a88d5a0c
MW
4454 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4455 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4456 (build-system gnu-build-system)
4457 (native-inputs
4458 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4459 ("gobject-introspection" ,gobject-introspection)
b4f04e0e 4460 ("xorg-server" ,xorg-server-for-tests)
ba421ab7
MW
4461 ("pkg-config" ,pkg-config)))
4462 (propagated-inputs
4463 `(("glib" ,glib)
4464 ("gdk-pixbuf" ,gdk-pixbuf)
4465 ("libx11" ,libx11)
4466 ("libxext" ,libxext)
4467 ("libxfixes" ,libxfixes)
4468 ("libxdamage" ,libxdamage)
4469 ("libxcomposite" ,libxcomposite)
4470 ("libxrandr" ,libxrandr)))
4471 (inputs
4472 `(("mesa" ,mesa)
4473 ("cairo" ,cairo)
4474 ("pango" ,pango)
4475 ("gstreamer" ,gstreamer)
31860852
KK
4476 ("gst-plugins-base" ,gst-plugins-base)
4477 ("wayland" ,wayland)))
ba421ab7 4478 (arguments
b4f04e0e
MB
4479 `(#:disallowed-references (,xorg-server-for-tests)
4480 #:configure-flags (list "--enable-cogl-gst"
31860852
KK
4481 "--enable-wayland-egl-platform"
4482 "--enable-wayland-egl-server"
4483
ba421ab7
MW
4484 ;; Arrange to pass an absolute file name to
4485 ;; dlopen for libGL.so.
4486 (string-append "--with-gl-libname="
4487 (assoc-ref %build-inputs "mesa")
4488 "/lib/libGL.so"))
b4f04e0e 4489 #:phases
ba421ab7
MW
4490 (modify-phases %standard-phases
4491 (add-before 'check 'start-xorg-server
b4f04e0e
MB
4492 (lambda* (#:key tests? inputs #:allow-other-keys)
4493 (if tests?
4494 (begin
4495 ;; The test suite requires a running X server.
4496 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4497 (assoc-ref inputs "xorg-server")))
4498 (setenv "DISPLAY" ":1")
4499 #t)
4500 (format #t "test suite not run~%"))
ba421ab7 4501 #t)))))
89b49245 4502 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4503 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4504 (description
4505 "Cogl is a small library for using 3D graphics hardware to draw pretty
4506pictures. The API departs from the flat state machine style of OpenGL and is
4507designed to make it easy to write orthogonal components that can render
4508without stepping on each others toes.")
4509 (license (list license:expat ; most of the code
4510 license:bsd-3 ; cogl/cogl-point-in-poly.c
4511 license:sgifreeb2.0 ; cogl-path/tesselator/
4512 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4513
4514(define-public clutter
4515 (package
4516 (name "clutter")
6a88e4ee 4517 (version "1.26.2")
fb182b8a
MW
4518 (source
4519 (origin
4520 (method url-fetch)
4521 (uri (string-append "mirror://gnome/sources/" name "/"
4522 (version-major+minor version) "/"
4523 name "-" version ".tar.xz"))
4524 (sha256
4525 (base32
6a88e4ee 4526 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4527 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4528 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4529 (build-system gnu-build-system)
600233bd
LC
4530 (outputs '("out"
4531 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4532 (native-inputs
4533 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4534 ("gobject-introspection" ,gobject-introspection)
4535 ("pkg-config" ,pkg-config)
4536 ("xsltproc" ,libxslt)))
4537 (propagated-inputs
4538 `(("cogl" ,cogl)
4539 ("cairo" ,cairo)
4540 ("atk" ,atk)
4541 ("gtk+" ,gtk+)
4542 ("json-glib" ,json-glib)
4543 ("glib" ,glib)
4544 ("libxcomposite" ,libxcomposite)
4545 ("libxdamage" ,libxdamage)
4546 ("libxext" ,libxext)
4547 ("xinput" ,xinput)))
4548 (inputs
4549 `(("libxkbcommon" ,libxkbcommon)
4550 ("udev" ,eudev)))
4551 (arguments
600233bd
LC
4552 `(#:configure-flags (list "--enable-x11-backend=yes"
4553
4554 ;; This produces share/doc/{clutter,cally}.
4555 (string-append "--with-html-dir="
4556 (assoc-ref %outputs "doc")
4557 "/share/doc"))
fb182b8a
MW
4558 ;; XXX FIXME: Get test suite working. It would probably fail in the
4559 ;; same way the cogl tests fail, since clutter is based on cogl.
4560 #:tests? #f))
4561 (home-page "http://www.clutter-project.org")
476af713 4562 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4563 (description
476af713 4564 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4565creating fast, mainly 2D single window applications such as media box UIs,
4566presentations, kiosk style applications and so on.")
4567 (license license:lgpl2.0+)))
bf7f17ba
MW
4568
4569(define-public clutter-gtk
4570 (package
4571 (name "clutter-gtk")
5d1a3219 4572 (version "1.8.4")
bf7f17ba
MW
4573 (source
4574 (origin
4575 (method url-fetch)
4576 (uri (string-append "mirror://gnome/sources/" name "/"
4577 (version-major+minor version) "/"
4578 name "-" version ".tar.xz"))
4579 (sha256
4580 (base32
5d1a3219 4581 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4582 (build-system gnu-build-system)
4583 (native-inputs
4584 `(("pkg-config" ,pkg-config)
4585 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4586 (propagated-inputs
4587 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4588 `(("clutter" ,clutter)
4589 ("gtk+" ,gtk+)))
4590 (home-page "http://www.clutter-project.org")
476af713 4591 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4592 (description
476af713 4593 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4594creating fast, mainly 2D single window applications such as media box UIs,
4595presentations, kiosk style applications and so on.")
4596 (license license:lgpl2.0+)))
86d6a893
MW
4597
4598(define-public clutter-gst
4599 (package
4600 (name "clutter-gst")
ba07ac19 4601 (version "3.0.27")
86d6a893
MW
4602 (source
4603 (origin
4604 (method url-fetch)
f010f89b 4605 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4606 (version-major+minor version) "/"
f010f89b 4607 "clutter-gst-" version ".tar.xz"))
86d6a893 4608 (sha256
ba07ac19 4609 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4610 (build-system gnu-build-system)
4611 (native-inputs
ba07ac19 4612 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4613 ("pkg-config" ,pkg-config)
4614 ("gobject-introspection" ,gobject-introspection)))
4615 (inputs
4616 `(("clutter" ,clutter)
4617 ("gstreamer" ,gstreamer)
4618 ("gst-plugins-base" ,gst-plugins-base)))
4619 (home-page "http://www.clutter-project.org")
4620 (synopsis "Integration library for using GStreamer with Clutter")
4621 (description
4622 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4623It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4624implements the ClutterGstPlayer interface using playbin. Clutter is an
4625OpenGL-based interactive canvas library.")
86d6a893 4626 (license license:lgpl2.0+)))
607a04ae 4627
30dc88d9
LC
4628(define-public libchamplain
4629 (package
4630 (name "libchamplain")
5564b2c5 4631 (version "0.12.16")
30dc88d9
LC
4632 (source (origin
4633 (method url-fetch)
4634 (uri (string-append
4635 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4636 version ".tar.xz"))
4637 (sha256
4638 (base32
5564b2c5 4639 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4640 (build-system gnu-build-system)
f7c6833f
LF
4641 (arguments '(#:configure-flags '("--enable-vala")))
4642 (native-inputs
4643 `(("gobject-introspection" ,gobject-introspection)
4644 ("pkg-config" ,pkg-config)
4645 ("vala" ,vala)))
30dc88d9
LC
4646 (propagated-inputs
4647 `(("libsoup" ,libsoup)
4648 ("sqlite" ,sqlite)
4649 ("clutter" ,clutter)
4650 ("clutter-gtk" ,clutter-gtk)
4651 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4652 ("cairo" ,cairo)
4653 ("gtk+3" ,gtk+)
4654 ("glib" ,glib)))
f032d0be 4655 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4656 (synopsis "C library providing a ClutterActor to display maps")
4657 (description
4658 "libchamplain is a C library providing a ClutterActor to display maps.
4659It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4660and Perl bindings are also available. It supports numerous free map sources
4661such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4662 (license license:lgpl2.1+)))
4663
607a04ae
MW
4664(define-public gom
4665 (package
4666 (name "gom")
0510440b 4667 (version "0.3.2")
607a04ae
MW
4668 (source
4669 (origin
4670 (method url-fetch)
6c8a0b6f 4671 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4672 (version-major+minor version) "/"
6c8a0b6f 4673 "gom-" version ".tar.xz"))
607a04ae
MW
4674 (sha256
4675 (base32
0510440b 4676 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4677 (build-system gnu-build-system)
4678 (native-inputs
4679 `(("intltool" ,intltool)
4680 ("pkg-config" ,pkg-config)
4681 ("gobject-introspection" ,gobject-introspection)))
4682 (inputs
4683 `(("glib" ,glib)
4684 ("gdk-pixbuf" ,gdk-pixbuf)
4685 ("sqlite" ,sqlite)))
4686 ;; XXX TODO: Figure out how to run the test suite.
4687 (arguments `(#:tests? #f))
4688 (home-page "https://wiki.gnome.org/Projects/Gom")
4689 (synopsis "Object mapper from GObjects to SQLite")
4690 (description
4691 "Gom provides an object mapper from GObjects to SQLite. It helps you
4692write applications that need to store structured data as well as make complex
4693queries upon that data.")
4694 (license license:lgpl2.1+)))
b7a3cf11 4695
865aacc9 4696(define-public libgnome-games-support
f09520db 4697 (package
865aacc9 4698 (name "libgnome-games-support")
4c6d15cf 4699 (version "1.4.4")
f09520db
SB
4700 (source (origin
4701 (method url-fetch)
2d8dca9d 4702 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4703 (version-major+minor version) "/"
2d8dca9d 4704 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4705 (sha256
4706 (base32
4c6d15cf 4707 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4708 (build-system gnu-build-system)
4709 (arguments
4710 '(#:phases
4711 (modify-phases %standard-phases
4712 (add-before 'check 'pre-check
4713 (lambda _
865aacc9 4714 ;; Tests require a writable HOME.
f09520db
SB
4715 (setenv "HOME" (getcwd))
4716 #t)))))
4717 (native-inputs
4718 `(("intltool" ,intltool)
4719 ("pkg-config" ,pkg-config)
4720 ("vala" ,vala)))
4721 (propagated-inputs
865aacc9 4722 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4723 `(("gtk+" ,gtk+)
4724 ("libgee" ,libgee)))
4725 (home-page "https://www.gnome.org/")
4726 (synopsis "Useful functionality shared among GNOME games")
4727 (description
865aacc9 4728 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4729GNOME Games, but it may be used by others.")
4730 (license license:lgpl3+)))
4731
b7a3cf11
SB
4732(define-public gnome-klotski
4733 (package
4734 (name "gnome-klotski")
18364fbc 4735 (version "3.34.0")
b7a3cf11
SB
4736 (source (origin
4737 (method url-fetch)
4738 (uri (string-append "mirror://gnome/sources/" name "/"
4739 (version-major+minor version) "/"
4740 name "-" version ".tar.xz"))
4741 (sha256
4742 (base32
18364fbc 4743 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
4744 (build-system meson-build-system)
4745 (arguments
4746 '(#:glib-or-gtk? #t
4747 #:phases
4748 (modify-phases %standard-phases
4749 (add-after 'unpack 'skip-gtk-update-icon-cache
4750 ;; Don't create 'icon-theme.cache'.
4751 (lambda _
4752 (substitute* "build-aux/meson_post_install.py"
4753 (("gtk-update-icon-cache") (which "true")))
4754 #t)))))
b7a3cf11
SB
4755 (native-inputs
4756 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4757 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4758 ("intltool" ,intltool)
4759 ("itstool" ,itstool)
bcb354ad 4760 ("pkg-config" ,pkg-config)
c1e419c4 4761 ("vala" ,vala)
bcb354ad 4762 ("xmllint" ,libxml2)))
b7a3cf11
SB
4763 (inputs
4764 `(("gtk+" ,gtk+)
f4eae76f 4765 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4766 ("librsvg" ,librsvg)))
4767 (home-page "https://wiki.gnome.org/Apps/Klotski")
4768 (synopsis "Sliding block puzzles")
4769 (description
4770 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4771the patterned block to the area bordered by green markers. To do so, you will
4772need to slide other blocks out of the way. Complete each puzzle in as few moves
4773as possible!")
4774 (license license:gpl2+)))
8d4791bf
MW
4775
4776(define-public grilo
4777 (package
4778 (name "grilo")
a865e938 4779 (version "0.3.10")
8d4791bf
MW
4780 (source
4781 (origin
4782 (method url-fetch)
4783 (uri (string-append "mirror://gnome/sources/" name "/"
4784 (version-major+minor version) "/"
4785 name "-" version ".tar.xz"))
4786 (sha256
4787 (base32
a865e938 4788 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4789 (build-system meson-build-system)
8d4791bf
MW
4790 (native-inputs
4791 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4792 ("intltool" ,intltool)
4793 ("pkg-config" ,pkg-config)
d48d4c98
KK
4794 ("gobject-introspection" ,gobject-introspection)
4795 ("gtk-doc" ,gtk-doc)
4796 ("vala" ,vala)))
8d4791bf 4797 (inputs
6d7273a0
KK
4798 `(("cyrus-sasl" ,cyrus-sasl)
4799 ("glib" ,glib)
8d4791bf
MW
4800 ("gtk+" ,gtk+)
4801 ("libxml2" ,libxml2)
6d7273a0 4802 ("liboauth" ,liboauth)
8d4791bf
MW
4803 ("libsoup" ,libsoup)
4804 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4805 (native-search-paths
4806 (list (search-path-specification
4807 (variable "GRL_PLUGIN_PATH")
4808 (files (list (string-append "lib/grilo-"
4809 (version-major+minor version)))))))
d48d4c98 4810 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4811 (synopsis "Framework for discovering and browsing media")
4812 (description
4813 "Grilo is a framework focused on making media discovery and browsing easy
4814for application developers.")
4815 (license license:lgpl2.1+)))
7b212526
MW
4816
4817(define-public grilo-plugins
4818 (package
4819 (name "grilo-plugins")
281f6b3a 4820 (version "0.3.10")
7b212526
MW
4821 (source
4822 (origin
4823 (method url-fetch)
4824 (uri (string-append "mirror://gnome/sources/" name "/"
4825 (version-major+minor version) "/"
4826 name "-" version ".tar.xz"))
4827 (sha256
4828 (base32
281f6b3a
RG
4829 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4830 (build-system meson-build-system)
7b212526 4831 (native-inputs
281f6b3a
RG
4832 `(("gettext" ,gettext-minimal)
4833 ("glib:bin" ,glib "bin")
4834 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4835 ("itstool" ,itstool)
4836 ("pkg-config" ,pkg-config)))
281f6b3a 4837 ;; TODO: ahavi, gstreamer
7b212526
MW
4838 (inputs
4839 `(("grilo" ,grilo)
281f6b3a
RG
4840 ;("gmime" ,gmime) ; unused
4841 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4842 ("gom" ,gom)
281f6b3a
RG
4843 ;("gssdp" ,gssdp) ; unused
4844 ;("gupnp" ,gupnp) ; unused
4845 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4846 ("json-glib" ,json-glib)
4847 ("avahi" ,avahi)
281f6b3a
RG
4848 ("libgdata" ,libgdata)
4849 ("libmediaart" ,libmediaart)
4850 ;("librest" ,rest) ; unused
7b212526 4851 ("libsoup" ,libsoup)
281f6b3a
RG
4852 ("totam-pl-parser" ,totem-pl-parser)
4853 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4854 (arguments
281f6b3a
RG
4855 `(#:glib-or-gtk? #t
4856 ;;Disable lua-factory as it needs missing dependencies
4857 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4858 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4859 (synopsis "Plugins for the Grilo media discovery library")
4860 (description
4861 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4862for application developers. This package provides plugins for common media
4863discovery protocols.")
7b212526 4864 (license license:lgpl2.1+)))
4e3fc547
MW
4865
4866(define-public totem
4867 (package
4868 (name "totem")
961dc62d 4869 (version "3.34.1")
4e3fc547
MW
4870 (source
4871 (origin
4872 (method url-fetch)
4873 (uri (string-append "mirror://gnome/sources/" name "/"
4874 (version-major+minor version) "/"
4875 name "-" version ".tar.xz"))
4876 (sha256
4877 (base32
961dc62d 4878 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 4879 (build-system meson-build-system)
4e3fc547
MW
4880 (native-inputs
4881 `(("pkg-config" ,pkg-config)
4882 ("desktop-file-utils" ,desktop-file-utils)
4883 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4884 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4885 ("intltool" ,intltool)
bcb354ad 4886 ("itstool" ,itstool)
995ef5ea
KK
4887 ("xmllint" ,libxml2)
4888 ("python-pylint" ,python-pylint)
4889 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4890 (propagated-inputs
4891 `(("dconf" ,dconf)))
4892 (inputs
4893 `(("gtk+" ,gtk+)
4894 ("gdk-pixbuf" ,gdk-pixbuf)
4895 ("atk" ,atk)
4896 ("cairo" ,cairo)
4897 ("dbus-glib" ,dbus-glib)
4898 ("clutter" ,clutter)
4899 ("clutter-gtk" ,clutter-gtk)
4900 ("clutter-gst" ,clutter-gst)
6a6db57f 4901 ("xorgproto" ,xorgproto)
4e3fc547
MW
4902 ("libxxf86vm" ,libxxf86vm)
4903 ("libxtst" ,libxtst)
4904 ("libxrandr" ,libxrandr)
4905 ("libxml2" ,libxml2)
4906 ("libsoup" ,libsoup)
4907 ("libpeas" ,libpeas)
4908 ("librsvg" ,librsvg)
4909 ("lirc" ,lirc)
4910 ("gnome-desktop" ,gnome-desktop)
4911 ("gstreamer" ,gstreamer)
4912 ("gst-plugins-base" ,gst-plugins-base)
4913 ("gst-plugins-good" ,gst-plugins-good)
4914 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4915 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4916 ("python" ,python)
995ef5ea 4917 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4918 ("totem-pl-parser" ,totem-pl-parser)
4919 ("grilo" ,grilo)
4920 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4921 ("vala" ,vala)))
4922 (arguments
7ad81b8b
LC
4923 `(#:glib-or-gtk? #t
4924
4925 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4926 ;; all that.
7ad81b8b 4927 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4928
4929 ;; Do not build .a files for the plugins, it's
4930 ;; completely useless. This saves 2 MiB.
7ad81b8b 4931 "--default-library" "shared")
ec5c24f9 4932 #:phases
4e3fc547 4933 (modify-phases %standard-phases
d51b19ad
EF
4934 (add-after 'unpack 'skip-gtk-update-icon-cache
4935 ;; Don't create 'icon-theme.cache'.
4936 (lambda _
4937 (substitute* "meson_post_install.py"
4938 (("gtk-update-icon-cache") "true"))
4939 #t))
6368eb39
DM
4940 (add-before
4941 'install 'disable-cache-generation
4942 (lambda _
4943 (setenv "DESTDIR" "/")
4944 #t))
995ef5ea
KK
4945 (add-before
4946 'check 'pre-check
4947 (lambda _
4948 ;; Tests require a running X server.
4949 (system "Xvfb :1 &")
4950 (setenv "DISPLAY" ":1")
4951 #t))
4e3fc547
MW
4952 (add-after
4953 'install 'wrap-totem
4954 (lambda* (#:key inputs outputs #:allow-other-keys)
4955 (let ((out (assoc-ref outputs "out"))
4956 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4957 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4958 (wrap-program (string-append out "/bin/totem")
4959 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4960 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4961 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4962 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4963 #t)))))
4964 (home-page "https://wiki.gnome.org/Apps/Videos")
4965 (synopsis "Simple media player for GNOME based on GStreamer")
4966 (description "Totem is a simple yet featureful media player for GNOME
4967which can read a large number of file formats.")
4968 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4969 ;; to be used and distributed together with GStreamer and Totem. See
4970 ;; file://COPYING in the source distribution for details.
4971 (license license:gpl2+)))
f0afb0c8
DH
4972
4973(define-public rhythmbox
4974 (package
4975 (name "rhythmbox")
eda580c0 4976 (version "3.4.4")
f0afb0c8
DH
4977 (source (origin
4978 (method url-fetch)
2588693d 4979 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 4980 (version-major+minor version) "/"
2588693d 4981 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
4982 (sha256
4983 (base32
eda580c0 4984 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
4985 (build-system glib-or-gtk-build-system)
4986 (arguments
4987 `(#:configure-flags
4988 (list "--enable-lirc"
4989 "--enable-python"
4990 "--enable-vala"
4991 "--with-brasero"
4992 "--with-gudev"
4993 "--with-libsecret")
4994 #:phases
4995 (modify-phases %standard-phases
4996 (add-after
4997 'install 'wrap-rhythmbox
4998 (lambda* (#:key inputs outputs #:allow-other-keys)
4999 (let ((out (assoc-ref outputs "out"))
5000 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5001 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5002 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5003 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5004 (wrap-program (string-append out "/bin/rhythmbox")
5005 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5006 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5007 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5008 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5009 #t)))))
5010 (propagated-inputs
5011 `(("dconf" ,dconf)))
5012 (native-inputs
bcb354ad
SB
5013 `(("itstool" ,itstool)
5014 ("intltool" ,intltool)
f0afb0c8
DH
5015 ("glib" ,glib "bin")
5016 ("gobject-introspection" ,gobject-introspection)
5017 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5018 ("pkg-config" ,pkg-config)
5019 ("xmllint" ,libxml2)))
f0afb0c8
DH
5020 (inputs
5021 `(("json-glib" ,json-glib)
5022 ("tdb" ,tdb)
5023 ("gnome-desktop" ,gnome-desktop)
5024 ("python" ,python)
5025 ("python-pygobject" ,python2-pygobject)
5026 ("vala" ,vala)
5027 ("gmime" ,gmime)
f0afb0c8
DH
5028 ("adwaita-icon-theme" ,adwaita-icon-theme)
5029 ("grilo" ,grilo)
5030 ("grilo-plugins" ,grilo-plugins)
5031 ("gstreamer" ,gstreamer)
5032 ("gst-plugins-base" ,gst-plugins-base)
5033 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5034 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5035 ("libgudev" ,libgudev)
f0afb0c8
DH
5036 ;;("libmtp" ,libmtp) FIXME: Not detected
5037 ("libsecret" ,libsecret)
5038 ("libsoup" ,libsoup)
5039 ("libnotify" ,libnotify)
5040 ("libpeas" ,libpeas)
5041 ("lirc" ,lirc)
5042 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5043 ;;("clutter" ,clutter)
5044 ;;("clutter-gtk" ,clutter-gtk)
5045 ;;("clutter-gst" ,clutter-gst)
5046 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5047 ("atk" ,atk)
5048 ("pango" ,pango)
5049 ("gtk+" ,gtk+)
5050 ;; TODO:
5051 ;; * libgpod
5052 ;; * mx
f0afb0c8
DH
5053 ("brasero" ,brasero)))
5054 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5055 (synopsis "Music player for GNOME")
5056 (description "Rhythmbox is a music playing application for GNOME. It
5057supports playlists, song ratings, and any codecs installed through gstreamer.")
5058 (license license:gpl2+)))
f70d8383
DH
5059
5060(define-public eog
5061 (package
5062 (name "eog")
0c9031fa 5063 (version "3.34.1")
f70d8383
DH
5064 (source (origin
5065 (method url-fetch)
5066 (uri (string-append "mirror://gnome/sources/" name "/"
5067 (version-major+minor version) "/"
5068 name "-" version ".tar.xz"))
5069 (sha256
5070 (base32
0c9031fa 5071 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5072 (build-system meson-build-system)
f70d8383 5073 (arguments
34c44a34
RW
5074 `(#:configure-flags
5075 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5076 (list (string-append "-Dc_link_args=-Wl,-rpath="
5077 (assoc-ref %outputs "out") "/lib/eog"))
5078 #:phases
f70d8383 5079 (modify-phases %standard-phases
7a034665
EF
5080 (add-after 'unpack 'skip-gtk-update-icon-cache
5081 ;; Don't create 'icon-theme.cache'.
5082 (lambda _
5083 (substitute* "meson_post_install.py"
5084 (("gtk-update-icon-cache") "true"))
5085 #t))
61fb581f
RW
5086 (add-after 'install 'wrap-eog
5087 (lambda* (#:key outputs #:allow-other-keys)
5088 (let ((out (assoc-ref outputs "out"))
5089 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5090 (wrap-program (string-append out "/bin/eog")
5091 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5092 #t)))))
f70d8383
DH
5093 (propagated-inputs
5094 `(("dconf" ,dconf)))
5095 (native-inputs
5096 `(("intltool" ,intltool)
b3546174 5097 ("itstool" ,itstool)
f70d8383
DH
5098 ("glib" ,glib "bin")
5099 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5100 ("pkg-config" ,pkg-config)
5101 ("xmllint" ,libxml2)))
f70d8383
DH
5102 (inputs
5103 `(("gnome-desktop" ,gnome-desktop)
5104 ("shared-mime-info" ,shared-mime-info)
5105 ("adwaita-icon-theme" ,adwaita-icon-theme)
5106 ("exempi" ,exempi)
5107 ("lcms" ,lcms)
5108 ("libexif" ,libexif)
5109 ("libpeas" ,libpeas)
4bd428a7 5110 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5111 ("librsvg" ,librsvg-next)
f70d8383
DH
5112 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5113 ("gtk+" ,gtk+)))
5114 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5115 (synopsis "GNOME image viewer")
5116 (description "Eye of GNOME is the GNOME image viewer. It
5117supports image conversion, rotation, and slideshows.")
5118 (license license:gpl2+)))
41af5e7b 5119
0c3f8cb8
LC
5120(define-public eog-plugins
5121 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5122 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5123 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5124 ;; 'XDG_DATA_DIRS' appropriately set.
5125 (package
5126 (name "eog-plugins")
54b74cc6 5127 (version "3.26.4")
0c3f8cb8
LC
5128 (source (origin
5129 (method url-fetch)
f3b88ed2 5130 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5131 (version-major+minor version) "/"
f3b88ed2 5132 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5133 (sha256
5134 (base32
54b74cc6 5135 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5136 (build-system gnu-build-system)
5137 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5138 (synopsis "Extensions for the Eye of GNOME image viewer")
5139 (native-inputs
5140 `(("pkg-config" ,pkg-config)
f2d97d57 5141 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5142 (inputs
5143 `(("eog" ,eog)
5144 ("glib" ,glib)
5145 ("gtk+" ,gtk+)
5146 ("libpeas" ,libpeas)
5147 ("libexif" ,libexif)
5148 ("libchamplain" ,libchamplain)))
5149 (description
5150 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5151notably:
5152
5153@itemize
5154@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5155@item @dfn{Map}, which displays a map of where the picture was taken on the
5156side panel;
5157@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5158@end itemize\n")
5159
5160 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5161 ;; long suspicious byte stream that goes to a
5162 ;; ".gresource.eog_postasa_plugin" ELF section.
5163 (license license:gpl2+)))
5164
41af5e7b
SB
5165(define-public libgudev
5166 (package
5167 (name "libgudev")
b78f5118 5168 (version "232")
41af5e7b
SB
5169 (source (origin
5170 (method url-fetch)
5171 (uri (string-append "mirror://gnome/sources/" name "/"
5172 version "/" name "-" version ".tar.xz"))
5173 (sha256
5174 (base32
b78f5118 5175 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5176 (build-system gnu-build-system)
b78f5118
RW
5177 (arguments
5178 '(#:configure-flags
5179 ;; umockdev depends on libgudev.
5180 (list "--disable-umockdev")))
41af5e7b
SB
5181 (native-inputs
5182 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5183 ("gobject-introspection" ,gobject-introspection)
5184 ("pkg-config" ,pkg-config)))
5185 (propagated-inputs
5186 `(("glib" ,glib))) ; required by gudev-1.0.pc
5187 (inputs
5188 `(("udev" ,eudev)))
5189 (home-page "https://wiki.gnome.org/Projects/libgudev")
5190 (synopsis "GObject bindings for libudev")
5191 (description
5192 "This library provides GObject bindings for libudev. It was originally
5193part of udev-extras, then udev, then systemd. It's now a project on its own.")
5194 (license license:lgpl2.1+)))
3dc8828f
SB
5195
5196(define-public gvfs
5197 (package
5198 (name "gvfs")
12fe4846 5199 (version "1.40.1")
3dc8828f
SB
5200 (source (origin
5201 (method url-fetch)
1d68eb32 5202 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5203 (version-major+minor version) "/"
1d68eb32 5204 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5205 (sha256
5206 (base32
12fe4846 5207 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5208 (build-system meson-build-system)
3dc8828f 5209 (arguments
e762d943
RW
5210 '(#:glib-or-gtk? #t
5211 #:configure-flags
5212 (list "-Dsystemduserunitdir=no"
5213 "-Dtmpfilesdir=no"
5214 ;; Otherwise, the RUNPATH will lack the final path component.
5215 (string-append "-Dc_link_args=-Wl,-rpath="
5216 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5217 (native-inputs
5218 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5219 ("gettext" ,gettext-minimal)
5220 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5221 ("pkg-config" ,pkg-config)
5222 ("xsltproc" ,libxslt)))
5223 (inputs
5224 `(("avahi" ,avahi)
5225 ("docbook-xml" ,docbook-xml-4.2)
5226 ("docbook-xsl" ,docbook-xsl)
5227 ("dbus" ,dbus)
e762d943 5228 ("elogind" ,elogind)
3dc8828f 5229 ("fuse" ,fuse)
24a78aa6 5230 ("gcr" ,gcr)
3dc8828f 5231 ("glib" ,glib)
e762d943 5232 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5233 ("libarchive" ,libarchive)
5234 ("libbluray" ,libbluray)
8852ca24 5235 ("libcap" ,libcap)
3dc8828f
SB
5236 ("libcdio-paranoia" ,libcdio-paranoia)
5237 ("libgcrypt" ,libgcrypt)
e762d943 5238 ("libgdata" ,libgdata)
3dc8828f
SB
5239 ("libgphoto2" ,libgphoto2)
5240 ("libgudev" ,libgudev)
0ab9f949 5241 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5242 ("libmtp" ,libmtp)
e762d943 5243 ("libnfs" ,libnfs)
3dc8828f
SB
5244 ("libsecret" ,libsecret)
5245 ("libsmbclient" ,samba)
5246 ("libsoup" ,libsoup)
5247 ("libxml2" ,libxml2)
e762d943 5248 ("openssh" ,openssh)
8852ca24 5249 ("polkit" ,polkit)
3dc8828f
SB
5250 ("udisks" ,udisks)))
5251 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5252 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5253 (description
8f65585b 5254 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5255abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5256to all applications using the GIO API. It also supports exposing the GVFS
5257mounts to non-GIO applications using FUSE.
5258
5259GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5260DAV, and others.")
5261 (license license:lgpl2.0+)))
7c88b6bd
AW
5262
5263(define-public gusb
5264 (package
5265 (name "gusb")
536b3274 5266 (version "0.3.0")
7c88b6bd 5267 (source (origin
bbfb36f9
EF
5268 (method git-fetch)
5269 (uri (git-reference
5270 (url "https://github.com/hughsie/libgusb.git")
5271 (commit version)))
5272 (file-name (git-file-name name version))
7c88b6bd
AW
5273 (sha256
5274 (base32
bbfb36f9 5275 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5276 (build-system meson-build-system)
7c88b6bd 5277 (native-inputs
536b3274 5278 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5279 ("pkg-config" ,pkg-config)
5280 ("vala" ,vala)
7c88b6bd
AW
5281 ("gtk-doc" ,gtk-doc)))
5282 (propagated-inputs
5283 ;; Both of these are required by gusb.pc.
5284 `(("glib" ,glib)
5285 ("libusb" ,libusb)))
5286 (arguments
536b3274 5287 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5288 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5289 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5290 (description
5291 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5292asynchronous control, bulk and interrupt transfers with proper cancellation
5293and integration into a mainloop. This makes it easy to integrate low level
5294USB transfers with your high-level application or system daemon.")
5295 (license license:lgpl2.1+)))
0abe1d86
AW
5296
5297(define-public simple-scan
5298 (package
5299 (name "simple-scan")
f9e5313c 5300 (version "3.36.2.1")
d9f6d587
TGR
5301 (source
5302 (origin
5303 (method url-fetch)
5304 (uri (string-append "mirror://gnome/sources/simple-scan/"
5305 (version-major+minor version) "/"
5306 "simple-scan-" version ".tar.xz"))
5307 (sha256
f9e5313c 5308 (base32 "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v"))))
d9f6d587
TGR
5309 (build-system meson-build-system)
5310 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5311 (arguments
5312 '(#:glib-or-gtk? #t))
0abe1d86
AW
5313 (inputs
5314 `(("gtk" ,gtk+)
5315 ("zlib" ,zlib)
5316 ("cairo" ,cairo)
c501f592 5317 ("colord" ,colord)
0abe1d86
AW
5318 ("gdk-pixbuf" ,gdk-pixbuf)
5319 ("gusb" ,gusb)
4c928743 5320 ("libsane" ,sane-backends)))
0abe1d86 5321 (native-inputs
b94a6ca0 5322 `(("gettext" ,gettext-minimal)
0abe1d86 5323 ("itstool" ,itstool)
c501f592 5324 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5325 ("pkg-config" ,pkg-config)
bcb354ad
SB
5326 ("vala" ,vala)
5327 ("xmllint" ,libxml2)))
dff0eedb 5328 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5329 (synopsis "Document and image scanner")
d9f6d587
TGR
5330 (description
5331 "Document Scanner is an easy-to-use application that lets you connect your
5332scanner and quickly capture images and documents in an appropriate format. It
5333supports any scanner for which a suitable SANE driver is available, which is
5334almost all of them.")
0abe1d86 5335 (license license:gpl3+)))
7549f984 5336
ab466d79
RW
5337(define-public eolie
5338 (package
5339 (name "eolie")
ed783404 5340 (version "0.9.98.1")
ab466d79
RW
5341 (source (origin
5342 (method url-fetch)
ed783404
RW
5343 (uri (string-append "https://adishatz.org/eolie/eolie-"
5344 version ".tar.xz"))
ab466d79
RW
5345 (sha256
5346 (base32
ed783404 5347 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5348 (build-system meson-build-system)
ab466d79 5349 (arguments
00014781
RW
5350 `(#:glib-or-gtk? #t
5351 #:phases
ab466d79 5352 (modify-phases %standard-phases
f0c68100
EF
5353 (add-after 'unpack 'skip-gtk-update-icon-cache
5354 ;; Don't create 'icon-theme.cache'.
5355 (lambda _
5356 (substitute* "meson_post_install.py"
5357 (("gtk-update-icon-cache") "true"))
5358 #t))
ab466d79
RW
5359 (add-after 'wrap 'wrap-more
5360 (lambda* (#:key inputs outputs #:allow-other-keys)
5361 (let* ((out (assoc-ref outputs "out"))
5362 ;; These libraries must be on LD_LIBRARY_PATH.
5363 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5364 "atk" "gtk+" "gsettings-desktop-schemas"
5365 "gobject-introspection"))
5366 (path (string-join
5367 (map (lambda (lib)
5368 (string-append (assoc-ref inputs lib) "/lib"))
5369 libs)
5370 ":")))
5371 (wrap-program (string-append out "/bin/eolie")
5372 `("LD_LIBRARY_PATH" ":" prefix (,path))
5373 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5374 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5375 #t)))))
5376 (native-inputs
f85ca6ed 5377 `(("intltool" ,intltool)
ab466d79 5378 ("itstool" ,itstool)
d95f1041 5379 ("pkg-config" ,pkg-config)
d95f1041 5380 ("python" ,python)
f0c68100 5381 ("glib:bin" ,glib "bin")))
ab466d79
RW
5382 (inputs
5383 `(("gobject-introspection" ,gobject-introspection)
5384 ("glib-networking" ,glib-networking)
5385 ("cairo" ,cairo)
5386 ("gtk+" ,gtk+)
5387 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5388 ("python" ,python-wrapper)
d72f76df 5389 ("python-dateutil" ,python-dateutil)
00014781 5390 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5391 ("python-pygobject" ,python-pygobject)
5392 ("python-pycairo" ,python-pycairo)
00014781 5393 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5394 ("libsecret" ,libsecret)
5395 ("gtkspell3" ,gtkspell3)
5396 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5397 ("webkitgtk" ,webkitgtk)))
166b2c97 5398 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5399 (synopsis "Web browser for GNOME")
5400 (description
5401 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5402a secret password store, an adblocker, and a modern UI.")
5403 (license license:gpl3+)))
5404
7549f984
SB
5405(define-public epiphany
5406 (package
5407 (name "epiphany")
68fdd237 5408 (version "3.34.4")
7549f984
SB
5409 (source (origin
5410 (method url-fetch)
dd3266ec 5411 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5412 (version-major+minor version) "/"
dd3266ec 5413 "epiphany-" version ".tar.xz"))
7549f984
SB
5414 (sha256
5415 (base32
68fdd237 5416 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
5417
5418 (build-system meson-build-system)
7549f984 5419 (arguments
20710b91 5420 '(#:glib-or-gtk? #t
bb7ff88f
EF
5421 #:phases
5422 (modify-phases %standard-phases
5423 (add-after 'unpack 'skip-gtk-update-icon-cache
5424 ;; Don't create 'icon-theme.cache'.
5425 (lambda _
5426 (substitute* "post_install.py"
5427 (("gtk-update-icon-cache") "true"))
20710b91
LP
5428 #t))
5429 (add-after 'unpack 'disable-failing-tests
5430 (lambda _
5431 (substitute* "tests/meson.build"
5432 ;; embed_shell fails, because webkitgtk apparently no longer supports
5433 ;; overriding the ftp schema
5434 ;; web_app_utils fails due to missing network access
5435 (("(embed_shell|web_app_utils)_test,")
5436 "find_program('sh'), args: ['-c', 'exit 77'],"))
5437 #t))
5438 (add-before 'check 'pre-check
5439 (lambda _
5440 ;; Tests require a running X server.
5441 (system "Xvfb :1 &")
5442 (setenv "DISPLAY" ":1")
bb7ff88f 5443 #t)))
e19f9c24
LF
5444 #:configure-flags
5445 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5446 (list (string-append "-Dc_link_args=-Wl,-rpath="
5447 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5448 (propagated-inputs
5449 `(("dconf" ,dconf)))
7549f984 5450 (native-inputs
fc5c5b92
R
5451 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5452 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5453 ("intltool" ,intltool)
7549f984 5454 ("itstool" ,itstool)
bcb354ad 5455 ("pkg-config" ,pkg-config)
20710b91
LP
5456 ("xmllint" ,libxml2)
5457 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
5458 (inputs
5459 `(("avahi" ,avahi)
5460 ("gcr" ,gcr)
fc5c5b92 5461 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5462 ("glib-networking" ,glib-networking)
5463 ("gnome-desktop" ,gnome-desktop)
5464 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5465 ("json-glib" ,json-glib)
7549f984 5466 ("iso-codes" ,iso-codes)
8748e29c 5467 ("libdazzle" ,libdazzle)
7549f984
SB
5468 ("libnotify" ,libnotify)
5469 ("libsecret" ,libsecret)
7549f984 5470 ("libxslt" ,libxslt)
fc5c5b92 5471 ("nettle" ,nettle) ; for hogweed
7549f984 5472 ("sqlite" ,sqlite)
f85ca6ed 5473 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5474 (home-page "https://wiki.gnome.org/Apps/Web")
5475 (synopsis "GNOME web browser")
5476 (description
5477 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5478principles are simplicity and standards compliance.")
5479 (license license:gpl2+)))
a3856b2c
SB
5480
5481(define-public d-feet
5482 (package
5483 (name "d-feet")
458e9221 5484 (version "0.3.14")
a3856b2c
SB
5485 (source (origin
5486 (method url-fetch)
5487 (uri (string-append "mirror://gnome/sources/" name "/"
5488 (version-major+minor version) "/"
5489 name "-" version ".tar.xz"))
5490 (sha256
5491 (base32
458e9221 5492 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5493 (build-system glib-or-gtk-build-system)
5494 (arguments
5495 '(#:out-of-source? #f ; tests need to run in the source directory.
5496 #:phases
5497 (modify-phases %standard-phases
5498 (add-before
5499 'check 'pre-check
86aff791 5500 (lambda _
a3856b2c
SB
5501 ;; The test suite requires a running X server.
5502 (system "Xvfb :1 &")
5503 (setenv "DISPLAY" ":1")
5504 ;; Don't fail on missing '/etc/machine-id'.
5505 (setenv "DBUS_FATAL_WARNINGS" "0")
5506 ;; tests.py and window.py don't meet E402:
5507 ;; E402 module level import not at top of file
5508 (substitute* "src/tests/Makefile"
86aff791
MW
5509 (("--ignore=E123") "--ignore=E123,E402"))
5510 #t))
a3856b2c
SB
5511 (add-after
5512 'install 'wrap-program
5513 (lambda* (#:key outputs #:allow-other-keys)
5514 (let ((prog (string-append (assoc-ref outputs "out")
5515 "/bin/d-feet")))
5516 (wrap-program prog
5517 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5518 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5519 #t))))))
a3856b2c
SB
5520 (native-inputs
5521 `(("intltool" ,intltool)
5522 ("itstool" ,itstool)
5523 ("pkg-config" ,pkg-config)
5524 ("python-pep8" ,python-pep8)
5525 ("xmllint" ,libxml2)
ff337525 5526 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5527 (inputs
5528 `(("gobject-introspection" ,gobject-introspection)
5529 ("gtk+" ,gtk+)
5530 ("python" ,python-wrapper)
458e9221 5531 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5532 ("python-pygobject" ,python-pygobject)))
5533 (home-page "https://wiki.gnome.org/Apps/DFeet")
5534 (synopsis "D-Bus debugger")
5535 (description
5536 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5537of running programs and invoke methods on those interfaces.")
5538 (license license:gpl2+)))
c3b97bd9
SB
5539
5540(define-public yelp-xsl
5541 (package
5542 (name "yelp-xsl")
632a9b32 5543 (version "3.34.2")
c3b97bd9
SB
5544 (source (origin
5545 (method url-fetch)
5546 (uri (string-append "mirror://gnome/sources/" name "/"
5547 (version-major+minor version) "/"
5548 name "-" version ".tar.xz"))
5549 (sha256
5550 (base32
632a9b32 5551 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5552 (build-system gnu-build-system)
5553 (native-inputs
632a9b32 5554 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5555 ("itstool" ,itstool)
5556 ("xmllint" ,libxml2)))
5557 (home-page "https://wiki.gnome.org/Apps/Yelp")
5558 (synopsis "XSL stylesheets for Yelp")
5559 (description
5560 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5561to format Docbook and Mallard documents.")
5562 (license license:gpl2+)))
de3d612a
SB
5563
5564(define-public yelp
5565 (package
5566 (name "yelp")
1f1b6d60 5567 (version "3.32.2")
de3d612a
SB
5568 (source (origin
5569 (method url-fetch)
5570 (uri (string-append "mirror://gnome/sources/" name "/"
5571 (version-major+minor version) "/"
5572 name "-" version ".tar.xz"))
5573 (sha256
5574 (base32
1f1b6d60 5575 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5576 (build-system glib-or-gtk-build-system)
5577 (native-inputs
5578 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5579 ("intltool" ,intltool)
5580 ("itstool" ,itstool)
5581 ("pkg-config" ,pkg-config)))
5582 (propagated-inputs
5583 `(("dconf" ,dconf)))
5584 (inputs
ad1b7d8b
SB
5585 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5586 ("libxslt" ,libxslt)
de3d612a 5587 ("sqlite" ,sqlite)
4c28ca1d
SB
5588 ("webkitgtk" ,webkitgtk)
5589 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5590 (home-page "https://wiki.gnome.org/Apps/Yelp")
5591 (synopsis "GNOME help browser")
5592 (description
5593 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5594man, info, and HTML documents. It can locate documents according to the
5595freedesktop.org help system specification.")
5596 (license license:gpl2+)))
122d0d10
SB
5597
5598(define-public yelp-tools
5599 (package
5600 (name "yelp-tools")
8fe8a42a 5601 (version "3.32.2")
122d0d10
SB
5602 (source (origin
5603 (method url-fetch)
5604 (uri (string-append "mirror://gnome/sources/" name "/"
5605 (version-major+minor version) "/"
5606 name "-" version ".tar.xz"))
5607 (sha256
5608 (base32
8fe8a42a 5609 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5610 (build-system gnu-build-system)
5611 (native-inputs
5612 `(("pkg-config" ,pkg-config)))
5613 (propagated-inputs
5614 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5615 `(("itstool" ,itstool)
5616 ("xmllint" ,libxml2)
5617 ("xsltproc" ,libxslt)))
5618 (inputs
5619 `(("yelp-xsl" ,yelp-xsl)))
5620 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5621 (synopsis "Yelp documentation tools")
5622 (description
5623 "Yelp-tools is a collection of scripts and build utilities to help create,
5624manage, and publish documentation for Yelp and the web. Most of the heavy
5625lifting is done by packages like yelp-xsl and itstool. This package just
5626wraps things up in a developer-friendly way.")
5627 (license license:gpl2+)))
af8f9f23
RW
5628
5629(define-public libgee
5630 (package
5631 (name "libgee")
9cedae2a 5632 (version "0.20.3")
af8f9f23
RW
5633 (source (origin
5634 (method url-fetch)
84a1b007 5635 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5636 (version-major+minor version) "/"
84a1b007 5637 "libgee-" version ".tar.xz"))
af8f9f23
RW
5638 (sha256
5639 (base32
9cedae2a 5640 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5641 (build-system gnu-build-system)
5642 (arguments
5643 `(#:phases
5644 (modify-phases %standard-phases
5645 (add-after 'unpack 'fix-introspection-install-dir
5646 (lambda* (#:key outputs #:allow-other-keys)
5647 (let ((out (assoc-ref outputs "out")))
5648 (substitute* "gee/Makefile.in"
5649 (("@INTROSPECTION_GIRDIR@")
5650 (string-append out "/share/gir-1.0/"))
5651 (("@INTROSPECTION_TYPELIBDIR@")
5652 (string-append out "/lib/girepository-1.0/")))))))))
5653 (native-inputs
5654 `(("glib" ,glib "bin")
5655 ("pkg-config" ,pkg-config)))
5656 (inputs
5657 `(("glib" ,glib)
5658 ("gobject-introspection" ,gobject-introspection)))
5659 (home-page "https://wiki.gnome.org/Projects/Libgee")
5660 (synopsis "GObject collection library")
5661 (description
5662 "Libgee is a utility library providing GObject-based interfaces and
5663classes for commonly used data structures.")
5664 (license license:lgpl2.1+)))
b0f9c4b8
RW
5665
5666(define-public gexiv2
5667 (package
5668 (name "gexiv2")
b1a8b408 5669 (version "0.12.0")
b0f9c4b8
RW
5670 (source (origin
5671 (method url-fetch)
5672 (uri (string-append "mirror://gnome/sources/" name "/"
5673 (version-major+minor version) "/"
5674 name "-" version ".tar.xz"))
5675 (sha256
5676 (base32
b1a8b408 5677 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5678 (build-system meson-build-system)
b0f9c4b8 5679 (native-inputs
b1a8b408
KK
5680 `(("gcr" ,gcr)
5681 ("glib" ,glib "bin")
5682 ("pkg-config" ,pkg-config)
5683 ("vala" ,vala)))
b0f9c4b8
RW
5684 (propagated-inputs
5685 ;; Listed in "Requires" section of gexiv2.pc
5686 `(("exiv2" ,exiv2)))
5687 (inputs
5688 `(("glib" ,glib)
5689 ("gobject-introspection" ,gobject-introspection)))
5690 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5691 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5692 (description
5693 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5694allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5695metadata in photo and video files of various formats.")
5696 (license license:gpl2+)))
fed5a689
RW
5697
5698(define-public shotwell
5699 (package
5700 (name "shotwell")
b82a45d8 5701 (version "0.30.9")
fed5a689
RW
5702 (source (origin
5703 (method url-fetch)
5497d682 5704 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5705 (version-major+minor version) "/"
5497d682 5706 "shotwell-" version ".tar.xz"))
fed5a689
RW
5707 (sha256
5708 (base32
b82a45d8 5709 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
3b79afa6
KK
5710 (build-system meson-build-system)
5711 (arguments
5a0beca3
EF
5712 '(#:glib-or-gtk? #t
5713 #:phases
5714 (modify-phases %standard-phases
5715 (add-after 'unpack 'skip-gtk-update-icon-cache
5716 (lambda _
5717 (substitute* "build-aux/meson/postinstall.py"
5718 (("gtk-update-icon-cache") (which "true"))
5719 (("update-desktop-database") (which "true")))
5720 #t)))))
735b8db6
TGR
5721 (propagated-inputs
5722 `(("dconf" ,dconf)))
fed5a689 5723 (native-inputs
5a0beca3
EF
5724 `(("gettext" ,gettext-minimal)
5725 ("glib:bin" ,glib "bin")
735b8db6 5726 ("itstool" ,itstool)
3b79afa6 5727 ("pkg-config" ,pkg-config)
735b8db6 5728 ("vala" ,vala)))
fed5a689 5729 (inputs
5a0beca3
EF
5730 `(("gcr" ,gcr)
5731 ("gexiv2" ,gexiv2)
fed5a689 5732 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5733 ("gstreamer" ,gstreamer)
5734 ("json-glib" ,json-glib)
dfb0323d 5735 ("libgdata" ,libgdata)
fed5a689 5736 ("libgee" ,libgee)
5a0beca3
EF
5737 ("libgphoto2" ,libgphoto2)
5738 ("libgudev" ,libgudev)
fed5a689 5739 ("libraw" ,libraw)
fed5a689
RW
5740 ("libsoup" ,libsoup)
5741 ("libxml2" ,libxml2)
5a0beca3
EF
5742 ("sqlite" ,sqlite)
5743 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5744 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5745 (synopsis "Photo manager for GNOME 3")
5746 (description
5747 "Shotwell is a digital photo manager designed for the GNOME desktop
5748environment. It allows you to import photos from disk or camera, organize
5749them by keywords and events, view them in full-window or fullscreen mode, and
5750share them with others via social networking and more.")
5751 (license license:lgpl2.1+)))
293ff8b2
DT
5752
5753(define-public file-roller
5754 (package
5755 (name "file-roller")
dcae4270 5756 (version "3.32.3")
293ff8b2
DT
5757 (source (origin
5758 (method url-fetch)
f89a27c6 5759 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5760 (version-major+minor version) "/"
f89a27c6 5761 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5762 (sha256
5763 (base32
dcae4270 5764 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5765 (build-system meson-build-system)
293ff8b2 5766 (native-inputs
0a500745
RW
5767 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5768 ("intltool" ,intltool)
4c96e5d1 5769 ("itstool" ,itstool)
0a500745
RW
5770 ("pkg-config" ,pkg-config)
5771 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5772 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5773 ;; TODO: Add libnautilus.
5774 (inputs
5775 `(("gtk+" ,gtk+)
5776 ("gdk-pixbuf" ,gdk-pixbuf)
5777 ("json-glib" ,json-glib)
5778 ("libarchive" ,libarchive)
5779 ("libnotify" ,libnotify)
4c96e5d1 5780 ("nettle" ,nettle)
293ff8b2
DT
5781 ("libxml2" ,libxml2)))
5782 (synopsis "Graphical archive manager for GNOME")
5783 (description "File Roller is an archive manager for the GNOME desktop
5784environment that allows users to view, unpack, and create compressed archives
5785such as gzip tarballs.")
5786 (home-page "http://fileroller.sourceforge.net/")
5787 (license license:gpl2+)))
7ce49365
SB
5788
5789(define-public gnome-session
5790 (package
5791 (name "gnome-session")
f67ce006 5792 (version "3.34.2")
7ce49365
SB
5793 (source (origin
5794 (method url-fetch)
5795 (uri (string-append "mirror://gnome/sources/" name "/"
5796 (version-major+minor version) "/"
5797 name "-" version ".tar.xz"))
5798 (sha256
5799 (base32
f67ce006 5800 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 5801 (arguments
df278071
RW
5802 '(#:glib-or-gtk? #t
5803 #:phases
2914af3c
AW
5804 (modify-phases %standard-phases
5805 (add-before 'configure 'pre-configure
5806 (lambda* (#:key outputs #:allow-other-keys)
5807 ;; Use elogind instead of systemd.
df278071
RW
5808 (substitute* "meson.build"
5809 (("libsystemd-login") "libelogind")
5810 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5811 (substitute* "gnome-session/gsm-systemd.c"
5812 (("#include <systemd/sd-login.h>")
5813 "#include <elogind/sd-login.h>"))
df278071 5814 ;; Remove uses of the systemd daemon.
803ab416
SB
5815 (substitute* "gnome-session/gsm-autostart-app.c"
5816 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5817 #t))
5818 (add-after 'install 'wrap-gnome-session
5819 (lambda* (#:key inputs outputs #:allow-other-keys)
5820 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5821 (let ((glib (assoc-ref inputs "glib:bin"))
5822 (out (assoc-ref outputs "out")))
5823 (wrap-program (string-append out "/bin/gnome-session")
5824 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5825 #t))))
6cbc8d57 5826
2914af3c 5827 #:configure-flags
df278071
RW
5828 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5829 "-Dman=false" ; FIXME: disabled because of docbook validation error
5830 "-Dsystemd_journal=false")))
5831 (build-system meson-build-system)
7ce49365
SB
5832 (native-inputs
5833 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5834 ("pkg-config" ,pkg-config)
5835 ("intltool" ,intltool)
df278071
RW
5836 ("xsltproc" ,libxslt)
5837 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5838 ("docbook-xsl" ,docbook-xsl)
5839 ("docbook-xml" ,docbook-xml)
5840 ("xmlto" ,xmlto)))
7ce49365 5841 (inputs
2914af3c
AW
5842 `(("elogind" ,elogind)
5843 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5844 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5845 ("gtk+" ,gtk+)
5846 ("json-glib" ,json-glib)
5847 ("libsm" ,libsm)
5848 ("libxcomposite" ,libxcomposite)
5849 ("libxtst" ,libxtst)
5850 ("mesa" ,mesa)
5851 ("upower" ,upower)
5852 ("xtrans" ,xtrans)))
5853 (synopsis "Session manager for GNOME")
5854 (description
5855 "This package contains the GNOME session manager, as well as a
5856configuration program to choose applications starting on login.")
5857 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5858 (license license:gpl2+)))
f47ba77e
SB
5859
5860(define-public gjs
5861 (package
5862 (name "gjs")
76e1830c 5863 (version "1.58.3")
f47ba77e
SB
5864 (source (origin
5865 (method url-fetch)
5866 (uri (string-append "mirror://gnome/sources/" name "/"
5867 (version-major+minor version) "/"
5868 name "-" version ".tar.xz"))
5869 (sha256
5870 (base32
76e1830c 5871 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
5872 (build-system gnu-build-system)
5873 (arguments
5874 '(#:phases
5875 (modify-phases %standard-phases
5876 (add-before
5877 'check 'pre-check
5878 (lambda _
fc119619
MW
5879 ;; The test suite requires a running X server.
5880 (system "Xvfb :1 &")
5881 (setenv "DISPLAY" ":1")
5882
f47ba77e
SB
5883 ;; For the missing /etc/machine-id.
5884 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5885
144f94d0
KK
5886 ;; Our mozjs-38 package does not compile the required Intl API
5887 ;; support for these failing tests.
5888 (substitute* "installed-tests/js/testLocale.js"
5889 ((".*toBeDefined.*") "")
5890 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5891 (substitute* "installed-tests/scripts/testCommandLine.sh"
5892 (("Valentín") "")
5893 (("☭") ""))
f47ba77e
SB
5894 #t)))))
5895 (native-inputs
8a831c6f 5896 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5897 ("pkg-config" ,pkg-config)
5898 ("xmllint" ,libxml2)
5899 ;; For testing
5900 ("dbus-launch" ,dbus)
76e1830c 5901 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 5902 ("uuidgen" ,util-linux)
ebebee94 5903 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5904 (propagated-inputs
5905 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5906 `(("cairo" ,cairo)
5907 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5908 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5909 (inputs
5910 `(("gtk+" ,gtk+)
5911 ("readline" ,readline)))
5912 (synopsis "Javascript bindings for GNOME")
f032d0be 5913 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5914 (description
5915 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5916javascript engine and the GObject introspection framework.")
5917 (license license:gpl2+)))
329d731b
DH
5918
5919(define-public gedit
5920 (package
5921 (name "gedit")
edec7128 5922 (version "3.34.1")
329d731b
DH
5923 (source (origin
5924 (method url-fetch)
5925 (uri (string-append "mirror://gnome/sources/" name "/"
5926 (version-major+minor version) "/"
5927 name "-" version ".tar.xz"))
5928 (sha256
5929 (base32
edec7128 5930 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 5931 (build-system meson-build-system)
329d731b 5932 (arguments
480c9226
KK
5933 `(#:glib-or-gtk? #t
5934 #:configure-flags
5935 ;; Otherwise, the RUNPATH will lack the final path component.
5936 (list (string-append "-Dc_link_args=-Wl,-rpath="
5937 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5938
5939 ;; XXX: Generated .h files are sometimes used before being built.
5940 #:parallel-build? #f
5941
480c9226 5942 #:phases
329d731b 5943 (modify-phases %standard-phases
480c9226
KK
5944 (add-after 'unpack 'skip-gtk-update-icon-cache
5945 ;; Don't create 'icon-theme.cache'.
5946 (lambda _
5947 (substitute* "build-aux/meson/post_install.py"
5948 (("gtk-update-icon-cache") (which "true")))
5949 #t))
5950 (add-after 'unpack 'patch-libgd-fetch
5951 (lambda* (#:key inputs #:allow-other-keys)
5952 (let ((libgd (assoc-ref inputs "libgd")))
5953 ;; Calling git is unnecessary because libgd is fetched as a
5954 ;; native input to this package.
5955 (substitute* "meson.build"
5956 ((".*git.*") ""))
5957 (copy-recursively libgd "subprojects/libgd")
5958 #t)))
5959 (add-after 'install 'wrap-gedit
5960 (lambda* (#:key inputs outputs #:allow-other-keys)
5961 (let ((out (assoc-ref outputs "out"))
5962 (gtksourceview (assoc-ref inputs "gtksourceview"))
5963 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5964 (python-path (getenv "PYTHONPATH")))
5965 (wrap-program (string-append out "/bin/gedit")
5966 ;; For plugins.
5967 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5968 `("PYTHONPATH" ":" prefix (,python-path))
5969 ;; For language-specs.
5970 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5971 "/share")))))
5972 #t)))))
329d731b
DH
5973 (propagated-inputs
5974 `(("dconf" ,dconf)))
5975 (native-inputs
480c9226
KK
5976 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5977 ("intltool" ,intltool)
b3546174 5978 ("itstool" ,itstool)
480c9226 5979 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5980 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5981 ("libgd"
5982 ,(origin
5983 (method git-fetch)
5984 (uri (git-reference
5985 (url "https://gitlab.gnome.org/GNOME/libgd")
5986 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5987 (file-name (git-file-name "libgd" version))
5988 (sha256
5989 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
5990 ("pkg-config" ,pkg-config)))
5991 (inputs
5992 `(("glib" ,glib)
0d2df50c 5993 ("gspell" ,gspell)
329d731b 5994 ("gtk+" ,gtk+)
480c9226 5995 ("gtksourceview" ,gtksourceview)
329d731b
DH
5996 ("libpeas" ,libpeas)
5997 ("libxml2" ,libxml2)
329d731b
DH
5998 ("iso-codes" ,iso-codes)
5999 ("python-pygobject" ,python-pygobject)
6000 ("python" ,python)
6001 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6002 ("libx11" ,libx11)
6003 ("vala" ,vala)
6004 ("adwaita-icon-theme" ,adwaita-icon-theme)
6005 ("libsoup" ,libsoup)
6006 ("gnome-desktop" ,gnome-desktop)))
6007 (home-page "https://wiki.gnome.org/Apps/Gedit")
6008 (synopsis "GNOME text editor")
6009 (description "While aiming at simplicity and ease of use, gedit is a
6010powerful general purpose text editor.")
6011 (license license:gpl2+)))
b7179363
SB
6012
6013(define-public zenity
6014 (package
6015 (name "zenity")
4f581bd0 6016 (version "3.32.0")
b7179363
SB
6017 (source (origin
6018 (method url-fetch)
5958df04 6019 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6020 (version-major+minor version) "/"
5958df04 6021 "zenity-" version ".tar.xz"))
b7179363
SB
6022 (sha256
6023 (base32
4f581bd0 6024 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6025 (build-system gnu-build-system)
6026 (native-inputs
b94a6ca0 6027 `(("gettext" ,gettext-minimal)
b7179363
SB
6028 ("itstool" ,itstool)
6029 ("pkg-config" ,pkg-config)))
6030 (inputs
6031 `(("libnotify" ,libnotify)
6032 ("webkitgtk" ,webkitgtk)))
6033 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6034 (home-page "https://www.gnome.org")
b7179363
SB
6035 (description
6036 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6037to display dialog boxes from the commandline and shell scripts.")
6038 (license license:lgpl2.0+)))
60c3627c
SB
6039
6040(define-public mutter
6041 (package
6042 (name "mutter")
ec3ceabd 6043 (version "3.34.2")
60c3627c 6044 (source (origin
86c44e72
KK
6045 (method url-fetch)
6046 (uri (string-append "mirror://gnome/sources/" name "/"
6047 (version-major+minor version) "/"
6048 name "-" version ".tar.xz"))
60c3627c
SB
6049 (sha256
6050 (base32
ec3ceabd 6051 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6052 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6053 ;; versions of cogl and clutter. As a result, many of the inputs,
6054 ;; propagated-inputs, and configure flags used in cogl and clutter are
6055 ;; needed here as well.
edf43f68 6056 (build-system meson-build-system)
60c3627c 6057 (arguments
edf43f68
KK
6058 '(;; XXX: All mutter tests fail with the following error:
6059 ;; Settings schema 'org.gnome.mutter' is not installed
6060 #:tests? #f
6061 #:glib-or-gtk? #t
6062 #:configure-flags
ec3ceabd
KK
6063 ;; TODO: Enable profiler when Sysprof is packaged.
6064 (list "-Dprofiler=false"
6065 ;; Otherwise, the RUNPATH will lack the final path component.
6066 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6067 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6068 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6069
6070 ;; The following flags are needed for the bundled clutter
edf43f68 6071 (string-append "-Dxwayland_path="
d633f2f6
RH
6072 (assoc-ref %build-inputs "xorg-server-xwayland")
6073 "/bin/Xwayland")
6074
a88d5a0c 6075 ;; the remaining flags are needed for the bundled cogl
edf43f68 6076 (string-append "-Dopengl_libname="
a88d5a0c 6077 (assoc-ref %build-inputs "mesa")
ec3ceabd 6078 "/lib/libGL.so"))))
60c3627c 6079 (native-inputs
ec3ceabd
KK
6080 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6081 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6082 ("gobject-introspection" ,gobject-introspection)
6083 ("intltool" ,intltool)
f23052a6 6084 ("pkg-config" ,pkg-config)
edf43f68 6085 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6086 ;; For git build
6087 ("autoconf" ,autoconf)
6088 ("automake" ,automake)
6089 ("libtool" ,libtool)))
60c3627c 6090 (propagated-inputs
a88d5a0c
MW
6091 `(;; libmutter.pc refers to these:
6092 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6093 ("gtk+" ,gtk+)
6094 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6095 ("atk" ,atk)
6096 ("cairo" ,cairo)
6097 ("gdk-pixbuf" ,gdk-pixbuf)
6098 ("glib" ,glib)
a88d5a0c
MW
6099 ("json-glib" ,json-glib)
6100 ("libinput" ,libinput)
6101 ("libx11" ,libx11)
6102 ("libxcomposite" ,libxcomposite)
6103 ("libxdamage" ,libxdamage)
6104 ("libxext" ,libxext)
6105 ("libxfixes" ,libxfixes)
6106 ("libxkbcommon" ,libxkbcommon)
6107 ("libxrandr" ,libxrandr)
6108 ("mesa" ,mesa)
6109 ("pango" ,pango)
6110 ("udev" ,eudev)
a88d5a0c 6111 ("xinput" ,xinput)))
60c3627c 6112 (inputs
86c44e72
KK
6113 `(("elogind" ,elogind)
6114 ("gnome-desktop" ,gnome-desktop)
edf43f68 6115 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6116 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6117 ("libgudev" ,libgudev)
60c3627c
SB
6118 ("libice" ,libice)
6119 ("libsm" ,libsm)
edf43f68 6120 ("libwacom" ,libwacom)
60c3627c 6121 ("libxkbfile" ,libxkbfile)
a88d5a0c 6122 ("libxrandr" ,libxrandr)
86c44e72 6123 ("libxtst" ,libxtst)
edf43f68 6124 ("pipewire" ,pipewire)
60c3627c
SB
6125 ("startup-notification" ,startup-notification)
6126 ("upower-glib" ,upower)
6127 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6128 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6129 ("zenity" ,zenity)))
6130 (synopsis "Window and compositing manager")
f032d0be 6131 (home-page "https://www.gnome.org")
60c3627c
SB
6132 (description
6133 "Mutter is a window and compositing manager that displays and manages your
6134desktop via OpenGL. Mutter combines a sophisticated display engine using the
6135Clutter toolkit with solid window-management logic inherited from the Metacity
6136window manager.")
86c44e72 6137 (license license:gpl2+)))
685cee87
SB
6138
6139(define-public gnome-online-accounts
6140 (package
6141 (name "gnome-online-accounts")
dd233e4d 6142 (version "3.36.0")
685cee87
SB
6143 (source (origin
6144 (method url-fetch)
6145 (uri (string-append "mirror://gnome/sources/" name "/"
6146 (version-major+minor version) "/"
6147 name "-" version ".tar.xz"))
6148 (sha256
6149 (base32
dd233e4d 6150 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6151 (outputs '("out" "lib"))
685cee87 6152 (build-system glib-or-gtk-build-system)
14c297fd
TS
6153 (arguments
6154 `(#:configure-flags
6155 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6156 #:phases
6157 (modify-phases %standard-phases
6158 (add-before 'configure 'patch-libgoa-output
6159 (lambda* (#:key outputs #:allow-other-keys)
6160 (let ((lib (assoc-ref outputs "lib")))
6161 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6162 (("@prefix@") lib)
6163 (("@exec_prefix@") lib)
6164 (("@libdir@") (string-append lib "/lib"))
6165 (("@includedir@") (string-append lib "/include"))
6166 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6167 ;; Make sure gobject-introspection knows about the output
6168 ;; too (see <https://bugs.gnu.org/36535>).
6169 (setenv "outputs" "out lib")
14c297fd 6170 #t))))))
685cee87
SB
6171 (native-inputs
6172 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6173 ("gobject-introspection" ,gobject-introspection)
6174 ("intltool" ,intltool)
6175 ("pkg-config" ,pkg-config)
ebb2873d 6176 ("vala" ,vala)
685cee87
SB
6177 ("xsltproc" ,libxslt)))
6178 (propagated-inputs
6179 `(("glib" ,glib) ; required by goa-1.0.pc
6180 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6181 (inputs
6182 `(("docbook-xsl" ,docbook-xsl)
6183 ("json-glib" ,json-glib)
6184 ("libsecret" ,libsecret)
6185 ("rest" ,rest)
685cee87
SB
6186 ("webkitgtk" ,webkitgtk)))
6187 (synopsis "Single sign-on framework for GNOME")
6188 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6189 (description
6190 "GNOME Online Accounts provides interfaces so that applications and
6191libraries in GNOME can access the user's online accounts. It has providers for
6192Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6193Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6194 (license license:lgpl2.0+)))
df217748
SB
6195
6196(define-public evolution-data-server
6197 (package
6198 (name "evolution-data-server")
162048be 6199 (version "3.34.2")
df217748
SB
6200 (source (origin
6201 (method url-fetch)
6202 (uri (string-append "mirror://gnome/sources/" name "/"
6203 (version-major+minor version) "/"
6204 name "-" version ".tar.xz"))
43190ac6
MB
6205 (patches (search-patches "evolution-data-server-locales.patch"
6206 "evolution-data-server-libical-compat.patch"))
df217748
SB
6207 (sha256
6208 (base32
162048be 6209 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 6210 (build-system cmake-build-system)
df217748 6211 (arguments
b468eedc
RW
6212 '(#:configure-flags
6213 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6214 (runpaths (map (lambda (s)
6215 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6216 '("addressbook-backends" "calendar-backends"
6217 "camel-providers" "credential-modules"
6218 "registry-modules"))))
6219 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6220 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6221 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6222 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6223 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6224 (string-append lib "/evolution-data-server;")
6225 (string-join runpaths ";"))
6226 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6227 #:phases
6228 (modify-phases %standard-phases
b468eedc
RW
6229 (add-after 'unpack 'disable-failing-tests
6230 (lambda _
6231 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6232 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6233 (delete-file-recursively "tests/book-migration")
6234 (substitute* "tests/CMakeLists.txt"
6235 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 6236 #t))
743aebd7 6237 (add-after 'unpack 'patch-paths
df217748 6238 (lambda _
b468eedc
RW
6239 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6240 "tests/libedata-book/data-test-utils.c"
6241 "tests/libedata-book/test-book-cache-utils.c"
6242 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6243 (("/bin/rm") (which "rm")))
ac033c7b
MB
6244 #t))
6245 (add-before 'configure 'dont-override-rpath
6246 (lambda _
6247 (substitute* "CMakeLists.txt"
6248 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6249 ;; Remove it so the configure flag is respected.
6250 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6251 #t)))))
df217748
SB
6252 (native-inputs
6253 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6254 ("gobject-introspection" ,gobject-introspection)
6255 ("gperf" ,gperf)
6256 ("intltool" ,intltool)
6257 ("pkg-config" ,pkg-config)
a73c1cf8 6258 ("vala" ,vala)
743aebd7 6259 ("python" ,python-wrapper)))
df217748
SB
6260 (propagated-inputs
6261 ;; These are all in the Requires field of .pc files.
6262 `(("gtk+" ,gtk+)
6263 ("libical" ,libical)
6264 ("libsecret" ,libsecret)
6265 ("libsoup" ,libsoup)
6266 ("nss" ,nss)
6267 ("sqlite" ,sqlite)))
6268 (inputs
6269 `(("bdb" ,bdb)
6270 ("gcr" ,gcr)
14c297fd 6271 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6272 ("json-glib" ,json-glib)
b468eedc 6273 ("libcanberra" ,libcanberra)
743aebd7
MB
6274 ("libgweather" ,libgweather)
6275 ("mit-krb5" ,mit-krb5)
891199c6
MW
6276 ("openldap" ,openldap)
6277 ("webkitgtk" ,webkitgtk)))
df217748
SB
6278 (synopsis "Store address books and calendars")
6279 (home-page "https://wiki.gnome.org/Apps/Evolution")
6280 (description
6281 "This package provides a unified backend for programs that work with
6282contacts, tasks, and calendar information. It was originally developed for
6283Evolution (hence the name), but is now used by other packages as well.")
6284 (license license:lgpl2.0)))
bd7dfafa
SB
6285
6286(define-public caribou
6287 (package
6288 (name "caribou")
fe964bb5 6289 (version "0.4.21")
bd7dfafa
SB
6290 (source (origin
6291 (method url-fetch)
6292 (uri (string-append "mirror://gnome/sources/" name "/"
6293 (version-major+minor version) "/"
6294 name "-" version ".tar.xz"))
6295 (sha256
6296 (base32
fe964bb5 6297 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6298 (build-system glib-or-gtk-build-system)
6299 (arguments
6300 '(#:phases
6301 (modify-phases %standard-phases
6302 (add-before
6303 'build 'pre-build
6304 (lambda* (#:key outputs #:allow-other-keys)
6305 (let ((out (assoc-ref outputs "out")))
6306 ;; Use absolute shared library path in Caribou-1.0.typelib.
6307 (substitute* "libcaribou/Makefile"
6308 (("--shared-library=libcaribou.so")
6309 (string-append "--shared-library="
6310 out "/lib/libcaribou.so")))
6311 #t)))
6312 (add-after 'install 'wrap-programs
6313 (lambda* (#:key outputs #:allow-other-keys)
6314 (let* ((out (assoc-ref outputs "out"))
6315 (python-path (getenv "PYTHONPATH"))
6316 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6317 (for-each
6318 (lambda (prog)
6319 (wrap-program prog
6320 `("PYTHONPATH" ":" prefix (,python-path))
6321 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6322 (list (string-append out "/bin/caribou-preferences")
6323 (string-append out "/libexec/antler-keyboard"))))
6324 #t)))))
6325 (native-inputs
6326 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6327 ("gobject-introspection" ,gobject-introspection)
6328 ("intltool" ,intltool)
6329 ("pkg-config" ,pkg-config)
9f7f5ba2 6330 ("python" ,python)
bd7dfafa
SB
6331 ("vala" ,vala)
6332 ("xsltproc" ,libxslt)))
6333 (propagated-inputs
6334 ;; caribou-1.0.pc refers to all these.
6335 `(("libgee" ,libgee)
6336 ("libxklavier" ,libxklavier)
6337 ("libxtst" ,libxtst)
6338 ("gtk+" ,gtk+)))
6339 (inputs
6340 `(("clutter" ,clutter)
6341 ("dconf" ,dconf)
6342 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6343 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6344 (synopsis "Text entry and UI navigation application")
6345 (home-page "https://wiki.gnome.org/Projects/Caribou")
6346 (description
6347 "Caribou is an input assistive technology intended for switch and pointer
6348users.")
6349 (license license:lgpl2.1)))
ba5dd105 6350
ba5dd105
SB
6351(define-public network-manager
6352 (package
6353 (name "network-manager")
01c22be7 6354 (version "1.24.0")
ba5dd105
SB
6355 (source (origin
6356 (method url-fetch)
6357 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6358 (version-major+minor version) "/"
6359 "NetworkManager-" version ".tar.xz"))
9d3b6a5d 6360 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
6361 (sha256
6362 (base32
01c22be7 6363 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
02710a9b 6364 (modules '((guix build utils)))
fd070f35 6365 (snippet
02710a9b
RW
6366 '(begin
6367 (substitute* "src/devices/wwan/nm-modem-manager.c"
6368 (("systemd") "elogind"))
6369 #t))))
255ff74f 6370 (build-system meson-build-system)
ba5dd105
SB
6371 (outputs '("out"
6372 "doc")) ; 8 MiB of gtk-doc HTML
6373 (arguments
255ff74f 6374 `(#:configure-flags
ba5dd105 6375 (let ((out (assoc-ref %outputs "out"))
ba5dd105
SB
6376 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6377 "/sbin/dhclient")))
255ff74f
BW
6378 (list
6379 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6380 ;; component.
6381 (string-append "-Dc_link_args=-Wl,-rpath="
6382 out "/lib:"
6383 out "/lib/NetworkManager/" ,version)
6384 "-Dsystemd_journal=false"
6385 "-Dsession_tracking=elogind"
6386 "-Dsuspend_resume=elogind"
6387 "-Dsystemdsystemunitdir=no"
6388 "-Dsession_tracking_consolekit=false"
6389 "-Ddhcpcd=no"
6390 "-Ddhcpcanon=no"
6391 "-Dcrypto=gnutls"
6392 "-Diwd=true"
6393 "-Dlibaudit=yes"
6394 "-Dqt=false"
6395 "-Ddocs=true"
6396 "--sysconfdir=/etc"
6397 "--localstatedir=/var"
6398 (string-append "-Dudev_dir="
6399 out "/lib/udev")
6400 (string-append "-Ddbus_conf_dir="
6401 out "/etc/dbus-1/system.d")
6402
6403 (string-append "-Ddhclient=" dhclient)))
ba5dd105
SB
6404 #:phases
6405 (modify-phases %standard-phases
b4f59d87
AW
6406 (add-before 'configure 'pre-configure
6407 (lambda _
6408 ;; These tests try to test aspects of network-manager's
6409 ;; functionality within restricted containers, but they don't
6410 ;; cope with being already in the Guix build jail as that jail
6411 ;; lacks some features that they would like to proxy over (like
6412 ;; a /sys mount).
255ff74f
BW
6413 (substitute* "src/platform/tests/meson.build"
6414 ((".*test-address-linux.*") "")
6415 ((".*test-cleanup-linux.*") "")
6416 ((".*test-link-linux.*") "")
6417 ((".*test-route-linux.*") ""))
6418 (substitute* "src/devices/tests/meson.build"
6419 ((".*test-acd.*") "")
6420 ((".*test-lldp.*") ""))
45f80fce 6421 #t))
255ff74f
BW
6422 (add-after 'unpack 'patch-docbook-xml
6423 (lambda* (#:key inputs #:allow-other-keys)
6424 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6425 "/xml/dtd/docbook")))
6426 (substitute* (find-files "." ".*\\.(xsl|xml)")
6427 (("http://.*/docbookx\\.dtd")
6428 (string-append xmldoc "/docbookx.dtd")))
6429 #t)))
ba5dd105
SB
6430 (add-before 'check 'pre-check
6431 (lambda _
6432 ;; For the missing /etc/machine-id.
6433 (setenv "DBUS_FATAL_WARNINGS" "0")
6434 #t))
255ff74f
BW
6435 (add-before 'install 'no-polkit-magic
6436 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
ba5dd105 6437 (lambda _
255ff74f
BW
6438 (setenv "PKEXEC_UID" "something")
6439 #t))
6440 (add-after 'install 'move-doc
6441 (lambda* (#:key outputs #:allow-other-keys)
6442 (let ((out (assoc-ref outputs "out"))
6443 (doc (assoc-ref outputs "doc")))
6444 (mkdir-p (string-append doc "/share"))
6445 (for-each (lambda (directory)
6446 (copy-recursively (string-append out directory)
6447 (string-append doc directory))
6448 (delete-file-recursively
6449 (string-append out directory)))
6450 '("/share/doc" "/share/gtk-doc"))
6451 #t))))))
b93502d6
DC
6452 (propagated-inputs
6453 `(("glib" ,glib)))
ba5dd105 6454 (native-inputs
255ff74f
BW
6455 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6456 ("gtk-doc" ,gtk-doc)
ba5dd105 6457 ("gobject-introspection" ,gobject-introspection)
255ff74f 6458 ("docbook-xml" ,docbook-xml)
d04687dc 6459 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6460 ("intltool" ,intltool)
d04687dc
HG
6461 ("libxslt" ,libxslt)
6462 ("libxml2" ,libxml2)
ba5dd105 6463 ("pkg-config" ,pkg-config)
255ff74f 6464 ("vala" ,vala)
ba5dd105
SB
6465 ;; For testing.
6466 ("python" ,python-wrapper)
6467 ("python-dbus" ,python-dbus)
6468 ("python-pygobject" ,python-pygobject)))
6469 (inputs
255ff74f 6470 `(("curl" ,curl)
856ca567
KK
6471 ("cyrus-sasl" ,cyrus-sasl)
6472 ("dbus-glib" ,dbus-glib)
ba5dd105 6473 ("dnsmasq" ,dnsmasq)
856ca567 6474 ("eudev" ,eudev)
ba5dd105
SB
6475 ("gnutls" ,gnutls)
6476 ("iptables" ,iptables)
6477 ("isc-dhcp" ,isc-dhcp)
c2f236fa 6478 ("iwd" ,iwd) ; wpa_supplicant alternative
d04687dc 6479 ("jansson" ,jansson)
c2f236fa 6480 ("libaudit" ,audit)
ba5dd105
SB
6481 ("libgcrypt" ,libgcrypt)
6482 ("libgudev" ,libgudev)
6483 ("libndp" ,libndp)
6484 ("libnl" ,libnl)
6485 ("libsoup" ,libsoup)
255ff74f 6486 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
142bdcbc 6487 ("modem-manager" ,modem-manager)
c27e02bf 6488 ("newt" ,newt) ;for the 'nmtui' console interface
c2f236fa 6489 ("openresolv" ,openresolv) ; alternative resolv.conf manager
ba5dd105
SB
6490 ("polkit" ,polkit)
6491 ("ppp" ,ppp)
6492 ("readline" ,readline)
fd070f35
CM
6493 ("util-linux" ,util-linux)
6494 ("elogind" ,elogind)))
ba5dd105 6495 (synopsis "Network connection manager")
f032d0be 6496 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6497 (description
6498 "NetworkManager is a system network service that manages your network
6499devices and connections, attempting to keep active network connectivity when
6500available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6501devices, and provides VPN integration with a variety of different VPN
6502services.")
255ff74f
BW
6503 ;; “This NetworkManager project consists of the daemon, client tools, and
6504 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6505 ;; GPL-2.0+.”
6506 (license (list license:gpl2+
6507 license:lgpl2.1+))
29d2f451 6508 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6509
f2b96b3a
LC
6510(define-public network-manager-openvpn
6511 (package
6512 (name "network-manager-openvpn")
be1c4b07 6513 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6514 (version "1.8.10")
f2b96b3a
LC
6515 (source (origin
6516 (method url-fetch)
6517 (uri (string-append
6518 "mirror://gnome/sources/NetworkManager-openvpn/"
6519 (version-major+minor version)
6520 "/NetworkManager-openvpn-" version ".tar.xz"))
6521 (sha256
6522 (base32
7d87eede 6523 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6524 (build-system gnu-build-system)
6525 (arguments
633422b0
JL
6526 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6527 #:phases
6528 (modify-phases %standard-phases
6529 (add-after 'configure 'patch-path
6530 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6531 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6532 "/sbin/openvpn"))
6533 (modprobe (string-append (assoc-ref inputs "kmod")
6534 "/bin/modprobe"))
6535 (pretty-ovpn (string-append "\"" ovpn "\"")))
6536 (for-each
6537 (lambda (file)
6538 (substitute* file
6539 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6540 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6541 (("\"/sbin/openvpn\"") pretty-ovpn)
6542 (("/sbin/modprobe") modprobe)))
6543 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6544 #t)))))
f2b96b3a
LC
6545 (native-inputs
6546 `(("pkg-config" ,pkg-config)
6547 ("intltool" ,intltool)))
6548 (inputs
6549 `(("gtk+" ,gtk+)
633422b0 6550 ("kmod" ,kmod)
f2b96b3a
LC
6551 ("openvpn" ,openvpn)
6552 ("network-manager" ,network-manager)
6553 ("network-manager-applet" ,network-manager-applet) ;for libnma
6554 ("libsecret" ,libsecret)))
6555 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6556 (synopsis "OpenVPN plug-in for NetworkManager")
6557 (description
6558 "This extension of NetworkManager allows it to take care of connections
6559to virtual private networks (VPNs) via OpenVPN.")
6560 (license license:gpl2+)
6561 (properties `((upstream-name . "NetworkManager-openvpn")))))
6562
d376129f
JL
6563(define-public network-manager-vpnc
6564 (package
6565 (name "network-manager-vpnc")
6566 (version "1.2.6")
6567 (source (origin
6568 (method url-fetch)
6569 (uri (string-append
6570 "mirror://gnome/sources/NetworkManager-vpnc/"
6571 (version-major+minor version)
6572 "/NetworkManager-vpnc-" version ".tar.xz"))
6573 (sha256
6574 (base32
6575 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6576 (build-system gnu-build-system)
6577 (arguments
6578 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6579 #:phases
6580 (modify-phases %standard-phases
6581 (add-after 'configure 'patch-path
6582 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6583 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6584 "/sbin/vpnc"))
6585 (modprobe (string-append (assoc-ref inputs "kmod")
6586 "/bin/modprobe"))
6587 (pretty-ovpn (string-append "\"" vpnc "\"")))
6588 (substitute* "src/nm-vpnc-service.c"
6589 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6590 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6591 (("\"/sbin/vpnc\"") pretty-ovpn)
6592 (("/sbin/modprobe") modprobe)))
6593 #t)))))
6594 (native-inputs
6595 `(("pkg-config" ,pkg-config)
6596 ("intltool" ,intltool)))
6597 (inputs
6598 `(("gtk+" ,gtk+)
6599 ("kmod" ,kmod)
6600 ("vpnc" ,vpnc)
6601 ("network-manager" ,network-manager)
6602 ("network-manager-applet" ,network-manager-applet) ;for libnma
6603 ("libsecret" ,libsecret)))
6604 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6605 (synopsis "VPNC plug-in for NetworkManager")
6606 (description
6607 "Support for configuring virtual private networks based on VPNC.
6608Compatible with Cisco VPN concentrators configured to use IPsec.")
6609 (license license:gpl2+)
6610 (properties `((upstream-name . "NetworkManager-vpnc")))))
6611
8378c87a
EF
6612(define-public network-manager-openconnect
6613 (package
6614 (name "network-manager-openconnect")
6615 (version "1.2.6")
6616 (source (origin
6617 (method url-fetch)
6618 (uri (string-append
6619 "mirror://gnome/sources/NetworkManager-openconnect/"
6620 (version-major+minor version)
6621 "/NetworkManager-openconnect-" version ".tar.xz"))
6622 (sha256
6623 (base32
6624 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6625 (build-system gnu-build-system)
6626 (arguments
6627 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6628 #:phases
6629 (modify-phases %standard-phases
6630 (add-after 'configure 'patch-path
6631 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6632 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6633 "/sbin/openconnect"))
6634 (modprobe (string-append (assoc-ref inputs "kmod")
6635 "/bin/modprobe"))
6636 (pretty-ovpn (string-append "\"" openconnect "\"")))
6637 (substitute* "src/nm-openconnect-service.c"
6638 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6639 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6640 (("/sbin/modprobe") modprobe)))
6641 #t)))))
6642 (native-inputs
6643 `(("intltool" ,intltool)
6644 ("network-manager-applet" ,network-manager-applet) ;for libnma
6645 ("pkg-config" ,pkg-config)))
6646 (inputs
6647 `(("gcr" ,gcr)
6648 ("gtk+" ,gtk+)
6649 ("kmod" ,kmod)
6650 ("libsecret" ,libsecret)
6651 ("libxml2" ,libxml2)
b4fe5dab 6652 ("lz4" ,lz4)
8378c87a
EF
6653 ("network-manager" ,network-manager)
6654 ("openconnect" ,openconnect)))
6655 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6656 (synopsis "OpenConnect plug-in for NetworkManager")
6657 (description
6658 "This extension of NetworkManager allows it to take care of connections
6659to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6660Cisco's AnyConnect SSL VPN.")
6661 (license license:gpl2+)
e52b9534
LC
6662 (properties `((upstream-name . "NetworkManager-openconnect")
6663
6664 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6665 ;; file refers to account "nm-openconnect". Specify it here
6666 ;; so that 'network-manager-service-type' creates it.
6667 (user-accounts . ("nm-openconnect"))))))
8378c87a 6668
e5e1df4d
DC
6669(define-public mobile-broadband-provider-info
6670 (package
6671 (name "mobile-broadband-provider-info")
310c89e3 6672 (version "20190116")
e5e1df4d
DC
6673 (source (origin
6674 (method url-fetch)
6675 (uri (string-append
6676 "mirror://gnome/sources/"
6677 "mobile-broadband-provider-info/" version "/"
6678 "mobile-broadband-provider-info-" version ".tar.xz"))
6679 (sha256
6680 (base32
310c89e3 6681 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6682 (build-system gnu-build-system)
6683 (arguments
310c89e3 6684 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6685 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6686 (synopsis "Database of broadband connection configuration")
6687 (description "Database of broadband connection configuration.")
6688 (license license:public-domain)))
6689
4d62a9d3
SB
6690(define-public network-manager-applet
6691 (package
6692 (name "network-manager-applet")
8fc3a337 6693 (version "1.8.24")
4d62a9d3
SB
6694 (source (origin
6695 (method url-fetch)
3df63444 6696 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6697 (version-major+minor version) "/"
3df63444 6698 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6699 (sha256
6700 (base32
8fc3a337 6701 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6702 (build-system meson-build-system)
6703 (arguments
be1c4b07
TGR
6704 '(#:configure-flags
6705 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6706 (list "-Dlibnm_gtk=true")
6707 #:glib-or-gtk? #t))
4d62a9d3
SB
6708 (native-inputs
6709 `(("intltool" ,intltool)
cd7f718e 6710 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6711 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6712 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6713 ("pkg-config" ,pkg-config)))
6714 (propagated-inputs
6715 ;; libnm-gtk.pc refers to all these.
6716 `(("dbus-glib" ,dbus-glib)
6717 ("gtk+" ,gtk+)
6718 ("network-manager" ,network-manager)))
6719 (inputs
cd7f718e
RW
6720 `(("gcr" ,gcr)
6721 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6722 ("libgudev" ,libgudev)
6723 ("libnotify" ,libnotify)
2116bfb3 6724 ("libsecret" ,libsecret)
240cee8a
KK
6725 ("libselinux" ,libselinux)
6726 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6727 ("modem-manager" ,modem-manager)
6728 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6729 (synopsis "Applet for managing network connections")
f032d0be 6730 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6731 (description
6732 "This package contains a systray applet for NetworkManager. It displays
6733the available networks and allows users to easily switch between them.")
6734 (license license:gpl2+)))
56196594
RW
6735
6736(define-public libxml++
6737 (package
6738 (name "libxml++")
8344a85e 6739 (version "3.0.1")
56196594
RW
6740 (source (origin
6741 (method url-fetch)
6742 (uri (string-append "mirror://gnome/sources/" name "/"
6743 (version-major+minor version) "/"
6744 name "-" version ".tar.xz"))
6745 (sha256
6746 (base32
8344a85e 6747 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6748 (build-system gnu-build-system)
6749 ;; libxml++-3.0.pc refers to all these.
6750 (propagated-inputs
6751 `(("libxml2" ,libxml2)
6752 ("glibmm" ,glibmm)))
6753 (native-inputs
6754 `(("perl" ,perl)
6755 ("pkg-config" ,pkg-config)))
6756 (home-page "http://libxmlplusplus.sourceforge.net/")
6757 (synopsis "C++ wrapper for XML parser library libxml2")
6758 (description
6759 "This package provides a C++ wrapper for the XML parser library
6760libxml2.")
6761 (license license:lgpl2.1+)))
df12f04a 6762
b61d9627
AW
6763(define-public libxml++-2
6764 (package
6765 (inherit libxml++)
6766 (name "libxml++")
6767 (version "2.40.1")
6768 (source (origin
6769 (method url-fetch)
6770 (uri (string-append "mirror://gnome/sources/" name "/"
6771 (version-major+minor version) "/"
6772 name "-" version ".tar.xz"))
6773 (sha256
6774 (base32
6775 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6776
df12f04a
SB
6777(define-public gdm
6778 (package
6779 (name "gdm")
0fda99c5 6780 (version "3.34.1")
df12f04a
SB
6781 (source (origin
6782 (method url-fetch)
6783 (uri (string-append "mirror://gnome/sources/" name "/"
6784 (version-major+minor version) "/"
6785 name "-" version ".tar.xz"))
6786 (sha256
6787 (base32
0fda99c5 6788 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 6789 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6790 (build-system glib-or-gtk-build-system)
df12f04a
SB
6791 (arguments
6792 '(#:configure-flags
af37e6bb 6793 `("--without-plymouth"
957dbc0a 6794 "--disable-systemd-journal"
51bc8357
TS
6795
6796 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6797 ;; instead of having to replace it (i.e., stopping the mingetty
6798 ;; service for TTY 1 before starting GDM).
6799 "--with-initial-vt=7"
6800
89c86562
TS
6801 ;; Use '/etc/environment' for locale settings instead of the
6802 ;; systemd-specific '/etc/locale.conf'.
6803 "--with-lang-file=/etc/environment"
6804
b74ef0ba
RW
6805 ,(string-append "--with-udevdir="
6806 (assoc-ref %outputs "out") "/lib/udev")
6807
af37e6bb
AW
6808 "--localstatedir=/var"
6809 ,(string-append "--with-default-path="
6810 (string-join '("/run/setuid-programs"
6811 "/run/current-system/profile/bin"
6812 "/run/current-system/profile/sbin")
957dbc0a
AW
6813 ":"))
6814 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6815 ;; XDG_DATA_DIRS so that it finds its schemas.
6816 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6817 #:phases
6818 (modify-phases %standard-phases
6819 (add-before
6820 'configure 'pre-configure
e8c6e771 6821 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6822 ;; We don't have <systemd/sd-daemon.h>.
6823 (substitute* '("common/gdm-log.c"
6824 "daemon/gdm-server.c"
6825 "daemon/gdm-session-worker.c"
6826 "daemon/gdm-session-worker-job.c")
6827 (("#include <systemd/sd-daemon\\.h>") ""))
6828 ;; Use elogind for sd-login.
6829 (substitute* '("common/gdm-common.c"
0fda99c5 6830 "daemon/gdm-local-display-factory.c"
df12f04a
SB
6831 "daemon/gdm-manager.c"
6832 "libgdm/gdm-user-switching.c")
6833 (("#include <systemd/sd-login\\.h>")
6834 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6835 ;; Check for elogind.
6836 (substitute* '("configure")
6837 (("libsystemd")
6838 "libelogind"))
af37e6bb
AW
6839 ;; Look for system-installed sessions in
6840 ;; /run/current-system/profile/share.
6841 (substitute* '("libgdm/gdm-sessions.c"
6842 "daemon/gdm-session.c"
6843 "daemon/gdm-display.c"
6844 "daemon/gdm-launch-environment.c")
6845 (("DATADIR \"/x")
6846 "\"/run/current-system/profile/share/x")
6847 (("DATADIR \"/wayland")
6848 "\"/run/current-system/profile/share/wayland")
6849 (("DATADIR \"/gnome")
6850 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6851 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6852 "GDM_DBUS_DAEMON"
c9ff92b5 6853 "GDM_X_SERVER"
41fa9f18 6854 "GDM_X_SESSION"
c9ff92b5
TS
6855 ;; XXX: Remove this once GNOME Shell is
6856 ;; a dependency of GDM.
6857 "XDG_DATA_DIRS")))
6858 (substitute* "daemon/gdm-session.c"
6859 (("set_up_session_environment \\(self\\);")
6860 (apply string-append
6861 "set_up_session_environment (self);\n"
6862 (map (lambda (name)
6863 (string-append
6864 "gdm_session_set_environment_variable "
6865 "(self, \"" name "\","
6866 "g_getenv (\"" name "\"));\n"))
6867 propagate)))))
a430a350
TS
6868 ;; Find the configuration file using an environment variable.
6869 (substitute* '("common/gdm-settings.c")
e0e6756f 6870 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6871 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6872 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6873 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6874 ;; Use service-supplied path to X.
6875 (substitute* '("daemon/gdm-server.c")
6876 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6877 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
6878 (substitute* '("daemon/gdm-wayland-session.c"
6879 "daemon/gdm-x-session.c")
1f564c15
TS
6880 (("\"dbus-daemon\"")
6881 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6882 (("X_SERVER")
41fa9f18
TS
6883 "g_getenv (\"GDM_X_SERVER\")")
6884 (("GDMCONFDIR \"/Xsession\"")
6885 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6886 ;; Use an absolute path for GNOME Session.
6887 (substitute* "daemon/gdm-launch-environment.c"
6888 (("\"gnome-session\"")
6889 (string-append "\"" (assoc-ref inputs "gnome-session")
6890 "/bin/gnome-session\"")))
e8c6e771
TS
6891 ;; Do not automatically select the placeholder session.
6892 (substitute* "daemon/gdm-session.c"
6893 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6894 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6895 "(g_strcmp0(search_dirs[i], \""
6896 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6897 "\") == 0 && "
6898 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6899 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6900 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6901 #t))
8caa4589
TS
6902 ;; GDM requires that there be at least one desktop entry
6903 ;; file. This phase installs a hidden one that simply
6904 ;; fails. This enables users to use GDM with a
6905 ;; '~/.xsession' script with no other desktop entry files.
6906 ;; See <https://bugs.gnu.org/35068>.
6907 (add-after 'install 'install-placeholder-desktop-entry
6908 (lambda* (#:key inputs outputs #:allow-other-keys)
6909 (let* ((out (assoc-ref outputs "out"))
6910 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6911 (fail (string-append sessions "/fail.desktop")))
6912 (mkdir-p sessions)
6913 (with-output-to-file fail
6914 (lambda ()
6915 (for-each
6916 display
6917 '("[Desktop Entry]\n"
6918 "Encoding=UTF-8\n"
6919 "Type=Application\n"
6920 "Name=Fail\n"
6921 "Comment=This session fails immediately.\n"
6922 "NoDisplay=true\n"
6923 "Exec=false\n"))))
6924 #t)))
69544798
TS
6925 ;; GDM needs GNOME Session to run these applications. We link
6926 ;; their autostart files in `share/gdm/greeter/autostart'
6927 ;; because GDM explicitly tells GNOME Session to look there.
6928 ;;
6929 ;; XXX: GNOME Shell should be linked here too, but currently
6930 ;; GNOME Shell depends on GDM.
6931 (add-after 'install 'link-autostart-files
6932 (lambda* (#:key inputs outputs #:allow-other-keys)
6933 (let* ((out (assoc-ref outputs "out"))
6934 (autostart (string-append out "/share/gdm/"
6935 "greeter/autostart"))
6936 (settings (assoc-ref inputs "gnome-settings-daemon")))
6937 (mkdir-p autostart)
6938 (with-directory-excursion autostart
6939 (for-each (lambda (desktop)
6940 (symlink desktop (basename desktop)))
6941 (find-files (string-append settings "/etc/xdg"))))
6942 #t))))))
df12f04a
SB
6943 (native-inputs
6944 `(("dconf" ,dconf)
6945 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6946 ("gobject-introspection" ,gobject-introspection)
6947 ("intltool" ,intltool)
6948 ("itstool" ,itstool)
6949 ("pkg-config" ,pkg-config)
6950 ("xmllint" ,libxml2)))
6951 (inputs
6952 `(("accountsservice" ,accountsservice)
6953 ("check" ,check) ; for testing
6954 ("elogind" ,elogind)
def6d6b6 6955 ("gnome-session" ,gnome-session)
69544798 6956 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6957 ("gtk+" ,gtk+)
6958 ("iso-codes" ,iso-codes)
6959 ("libcanberra" ,libcanberra)
6960 ("linux-pam" ,linux-pam)))
6961 (synopsis "Display manager for GNOME")
f032d0be 6962 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6963 (description
6964 "GNOME Display Manager is a system service that is responsible for
6965providing graphical log-ins and managing local and remote displays.")
6966 (license license:gpl2+)))
8e1dd04f
SB
6967
6968(define-public libgtop
6969 (package
6970 (name "libgtop")
015fc036 6971 (version "2.40.0")
8e1dd04f
SB
6972 (source (origin
6973 (method url-fetch)
59487fc2 6974 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6975 (version-major+minor version) "/"
59487fc2 6976 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6977 (sha256
6978 (base32
015fc036 6979 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
6980 (build-system gnu-build-system)
6981 (native-inputs
6982 `(("gobject-introspection" ,gobject-introspection)
6983 ("intltool" ,intltool)
6984 ("perl" ,perl)
6985 ("pkg-config" ,pkg-config)))
6986 (propagated-inputs
6987 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6988 (synopsis "Portable system access library")
6989 (home-page "https://www.gnome.org/")
6990 (description
6991 "LibGTop is a library to get system specific data such as CPU and memory
6992usage and information about running processes.")
6993 (license license:gpl2+)))
b96c4260
SB
6994
6995(define-public gnome-bluetooth
6996 (package
6997 (name "gnome-bluetooth")
e8f4bf6b 6998 (version "3.34.0")
b96c4260
SB
6999 (source (origin
7000 (method url-fetch)
7001 (uri (string-append "mirror://gnome/sources/" name "/"
7002 (version-major+minor version) "/"
7003 name "-" version ".tar.xz"))
7004 (sha256
7005 (base32
e8f4bf6b 7006 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 7007 (build-system meson-build-system)
b96c4260
SB
7008 (native-inputs
7009 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7010 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7011 ("gobject-introspection" ,gobject-introspection)
7012 ("intltool" ,intltool)
7013 ("pkg-config" ,pkg-config)
7014 ("xmllint" ,libxml2)))
7015 (propagated-inputs
7016 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7017 `(("glib" ,glib)
7018 ("gtk+" ,gtk+)))
b96c4260 7019 (inputs
723afae6
KK
7020 `(("eudev" ,eudev)
7021 ("libcanberra" ,libcanberra)
b96c4260
SB
7022 ("libnotify" ,libnotify)))
7023 (synopsis "GNOME Bluetooth subsystem")
7024 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7025 (description
7026 "This package contains tools for managing and manipulating Bluetooth
7027devices using the GNOME desktop.")
7028 (license license:lgpl2.1+)))
b645146f
SB
7029
7030(define-public gnome-control-center
7031 (package
7032 (name "gnome-control-center")
c576328d 7033 (version "3.34.2")
b645146f
SB
7034 (source (origin
7035 (method url-fetch)
7036 (uri (string-append "mirror://gnome/sources/" name "/"
7037 (version-major+minor version) "/"
7038 name "-" version ".tar.xz"))
7039 (sha256
7040 (base32
c576328d 7041 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7042 (build-system meson-build-system)
b645146f 7043 (arguments
59dac026
RW
7044 '(#:glib-or-gtk? #t
7045 #:configure-flags
64c70430
KK
7046 (list "-Dcheese=false"
7047 (string-append "-Dgnome_session_libexecdir="
7048 (assoc-ref %build-inputs "gnome-session")
7049 "/libexec"))
59dac026 7050 #:phases
b645146f
SB
7051 (modify-phases %standard-phases
7052 (add-before 'configure 'patch-paths
7053 (lambda* (#:key inputs #:allow-other-keys)
7054 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7055 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7056 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7057 (nm-applet (assoc-ref inputs "network-manager-applet"))
7058 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7059 (substitute* "panels/datetime/tz.h"
7060 (("/usr/share/zoneinfo/zone.tab")
7061 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7062 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7063 (("/usr/share/locale")
7064 (string-append libc "/share/locale")))
1df38cfc
LC
7065 (substitute* "panels/region/cc-region-panel.c"
7066 (("\"gkbd-keyboard-display")
7067 (string-append "\"" libgnomekbd
7068 "/bin/gkbd-keyboard-display")))
341225ac
LC
7069 (substitute* '("panels/network/net-device-wifi.c"
7070 "panels/network/net-device.c"
7071 "panels/network/connection-editor/net-connection-editor.c")
7072 (("\"nm-connection-editor")
7073 (string-append "\"" nm-applet
7074 "/bin/nm-connection-editor")))
1acd107c
FP
7075 (substitute* '("panels/user-accounts/run-passwd.c")
7076 (("/usr/bin/passwd")
7077 "/run/setuid-programs/passwd"))
64c70430
KK
7078 (substitute* "panels/info/cc-info-overview-panel.c"
7079 (("DATADIR \"/gnome/gnome-version.xml\"")
7080 (string-append "\"" gnome-desktop
7081 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7082 #t)))
7083 (add-after 'unpack 'skip-gtk-update-icon-cache
7084 ;; Don't create 'icon-theme.cache'.
7085 (lambda _
7086 (substitute* "build-aux/meson/meson_post_install.py"
7087 (("gtk-update-icon-cache") (which "true")))
7088 #t)))))
b645146f
SB
7089 (native-inputs
7090 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7091 ("intltool" ,intltool)
7092 ("pkg-config" ,pkg-config)
a6938bac
KK
7093 ("xsltproc" ,libxslt)
7094 ;; For tests
7095 ("hicolor-icon-theme" ,hicolor-icon-theme)
7096 ("python-dbusmock" ,python-dbusmock)
7097 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7098 (inputs
7099 `(("accountsservice" ,accountsservice)
7100 ("clutter-gtk" ,clutter-gtk)
7101 ("colord-gtk" ,colord-gtk)
7102 ("cups" ,cups)
7103 ("dconf" ,dconf)
7104 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7105 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7106 ("gnome-bluetooth" ,gnome-bluetooth)
7107 ("gnome-desktop" ,gnome-desktop)
7108 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7109 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7110 ("gnome-session" ,gnome-session)
b645146f
SB
7111 ("gnome-settings-daemon" ,gnome-settings-daemon)
7112 ("grilo" ,grilo)
a6938bac 7113 ("gsound" ,gsound)
b645146f
SB
7114 ("ibus" ,ibus)
7115 ("libcanberra" ,libcanberra)
1df38cfc 7116 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7117 ("libgudev" ,libgudev)
7118 ("libgtop" ,libgtop)
7119 ("libpwquality" ,libpwquality)
982c0b36 7120 ("libsecret" ,libsecret)
b645146f
SB
7121 ("libsoup" ,libsoup)
7122 ("libxml2" ,libxml2)
7123 ("libwacom" ,libwacom)
7124 ("mesa" ,mesa)
7125 ("mit-krb5" ,mit-krb5)
7126 ("modem-manager" ,modem-manager)
7127 ("network-manager-applet" ,network-manager-applet)
7128 ("polkit" ,polkit)
7129 ("pulseaudio" ,pulseaudio)
7130 ("smbclient" ,samba)
7131 ("tzdata" ,tzdata)
982c0b36 7132 ("udisks" ,udisks)
b645146f
SB
7133 ("upower" ,upower)))
7134 (synopsis "Utilities to configure the GNOME desktop")
7135 (home-page "https://www.gnome.org/")
7136 (description
7137 "This package contains configuration applets for the GNOME desktop,
7138allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7139properties, sound setup, desktop theme and background, user interface
7140properties, screen resolution, and other GNOME parameters.")
7141 (license license:gpl2+)))
a4df5756
SB
7142
7143(define-public gnome-shell
7144 (package
7145 (name "gnome-shell")
28457ae6 7146 (version "3.34.2")
a4df5756
SB
7147 (source (origin
7148 (method url-fetch)
7149 (uri (string-append "mirror://gnome/sources/" name "/"
7150 (version-major+minor version) "/"
7151 name "-" version ".tar.xz"))
7152 (sha256
7153 (base32
28457ae6
KK
7154 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7155 (patches (search-patches "gnome-shell-theme.patch"
7156 "gnome-shell-disable-test.patch"))
a76d0f03
LC
7157 (modules '((guix build utils)))
7158 (snippet
7159 #~(begin
a76d0f03
LC
7160 ;; Copy images for use on the GDM log-in screen.
7161 (copy-file #$(file-append %artwork-repository
7162 "/slim/0.x/background.png")
7163 "data/theme/guix-background.png")
45fef894
LC
7164 (copy-file #$(file-append %artwork-repository
7165 "/logo/Guix-horizontal-white.svg")
7166 "data/theme/guix-logo.svg")
a76d0f03 7167 #t))))
2b0c755d 7168 (build-system meson-build-system)
a4df5756 7169 (arguments
08185081
MB
7170 `(#:glib-or-gtk? #t
7171 #:disallowed-references ((,glib "bin")
11e1df56
LC
7172 ,inkscape ,libxslt
7173 ,ruby-sass)
2b0c755d
RW
7174 #:configure-flags
7175 (list "-Dsystemd=false"
7176 ;; Otherwise, the RUNPATH will lack the final path component.
7177 (string-append "-Dc_link_args=-Wl,-rpath="
7178 (assoc-ref %outputs "out")
7179 "/lib/gnome-shell"))
11e1df56 7180
08185081 7181 #:modules ((guix build meson-build-system)
11e1df56
LC
7182 (guix build utils)
7183 (srfi srfi-1))
7184
2b0c755d 7185 #:phases
a4df5756 7186 (modify-phases %standard-phases
2b0c755d 7187 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7188 (lambda* (#:key outputs #:allow-other-keys)
7189 (let* ((out (assoc-ref outputs "out"))
7190 (keysdir (string-append
7191 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7192 (substitute* "meson.build"
7193 (("keysdir =.*")
7194 (string-append "keysdir = '" keysdir "'\n")))
7195 #t)))
ebfe259f
MB
7196 (add-before 'configure 'convert-logo-to-png
7197 (lambda* (#:key inputs #:allow-other-keys)
7198 ;; Convert the logo from SVG to PNG.
7199 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7200 "data/theme/guix-logo.svg")))
ba00235a 7201 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7202 (lambda* (#:key inputs #:allow-other-keys)
7203 (substitute* "js/misc/ibusManager.js"
7204 (("'ibus-daemon'")
7205 (string-append "'" (assoc-ref inputs "ibus")
7206 "/bin/ibus-daemon'")))
d6fda4d3
LC
7207 (substitute* "js/ui/status/keyboard.js"
7208 (("'gkbd-keyboard-display'")
7209 (string-append "'" (assoc-ref inputs "libgnomekbd")
7210 "/bin/gkbd-keyboard-display'")))
2472cdec 7211 #t))
2b0c755d
RW
7212 (add-before 'check 'pre-check
7213 (lambda* (#:key inputs #:allow-other-keys)
7214 ;; Tests require a running X server.
7215 (system "Xvfb :1 &")
7216 (setenv "DISPLAY" ":1")
7217 #t))
7218 (add-after 'install 'wrap-programs
7219 (lambda* (#:key inputs outputs #:allow-other-keys)
7220 (let ((out (assoc-ref outputs "out"))
7221 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7222 (python-path (getenv "PYTHONPATH")))
7223 (wrap-program (string-append out "/bin/gnome-shell")
7224 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7225 ;; FIXME: gnome-shell loads these libraries with unqualified
7226 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7227 ;; alternative might be to patch gnome-shell.
7228 `("LD_LIBRARY_PATH" ":" prefix
7229 ,(map (lambda (pkg)
7230 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7231 '("gdk-pixbuf"
7232 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7233 (for-each
7234 (lambda (prog)
7235 (wrap-program (string-append out "/bin/" prog)
7236 `("PYTHONPATH" ":" prefix (,python-path))
7237 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7238 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7239 #t)))
11e1df56
LC
7240 (replace 'glib-or-gtk-wrap
7241 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7242 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7243 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7244 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7245 ;; phase. Fix that since we don't need these.
7246 (wrap #:inputs (fold alist-delete inputs
7247 '("inkscape" "intltool" "glib:bin"))
7248 #:outputs outputs)))))))
a4df5756 7249 (native-inputs
28457ae6
KK
7250 `(("asciidoc" ,asciidoc)
7251 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7252 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7253 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7254 ("inkscape" ,inkscape)
a4df5756
SB
7255 ("intltool" ,intltool)
7256 ("pkg-config" ,pkg-config)
7257 ("python" ,python)
2b0c755d
RW
7258 ("ruby-sass" ,ruby-sass)
7259 ("sassc" ,sassc)
a76d0f03 7260 ("xsltproc" ,libxslt)
2b0c755d 7261 ;; For tests
0b4504f6 7262 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7263 (inputs
7264 `(("accountsservice" ,accountsservice)
7265 ("caribou" ,caribou)
7266 ("docbook-xsl" ,docbook-xsl)
7267 ("evolution-data-server" ,evolution-data-server)
7268 ("gcr" ,gcr)
7269 ("gdm" ,gdm)
c5db31d4 7270 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 7271 ("gjs" ,gjs)
28457ae6 7272 ("gnome-autoar" ,gnome-autoar)
a4df5756 7273 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7274 ("gnome-desktop" ,gnome-desktop)
7275 ("gnome-settings-daemon" ,gnome-settings-daemon)
7276 ("gst-plugins-base" ,gst-plugins-base)
7277 ("ibus" ,ibus)
7278 ("libcanberra" ,libcanberra)
7279 ("libcroco" ,libcroco)
d6fda4d3 7280 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7281 ("libgweather" ,libgweather)
7282 ("libsoup" ,libsoup)
7283 ("mesa-headers" ,mesa-headers)
7284 ("mutter" ,mutter)
7285 ("network-manager-applet" ,network-manager-applet)
7286 ("polkit" ,polkit)
7287 ("pulseaudio" ,pulseaudio)
7288 ("python-pygobject" ,python-pygobject)
7289 ("startup-notification" ,startup-notification)
7290 ("telepathy-logger" ,telepathy-logger)
7291 ("upower" ,upower)
30e760f0
MB
7292 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7293 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7294 ("librsvg" ,librsvg)
2b0c755d 7295 ("geoclue" ,geoclue)))
a4df5756
SB
7296 (synopsis "Desktop shell for GNOME")
7297 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7298 (description
7299 "GNOME Shell provides core user interface functions for the GNOME desktop,
7300like switching to windows and launching applications.")
7301 (license license:gpl2+)))
c3f29bc9
RS
7302
7303(define-public gtk-vnc
7304 (package
7305 (name "gtk-vnc")
965ff023 7306 (version "0.9.0")
c3f29bc9
RS
7307 (source
7308 (origin
7309 (method url-fetch)
7310 (uri (string-append "mirror://gnome/sources/" name "/"
7311 (version-major+minor version) "/"
7312 name "-" version ".tar.xz"))
7313 (sha256
7314 (base32
965ff023 7315 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7316 (build-system gnu-build-system)
7317 (arguments
7318 '(#:configure-flags '("--with-gtk=3.0")))
7319 (propagated-inputs
7320 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7321 (inputs
7322 `(("cyrus-sasl" ,cyrus-sasl)
7323 ("gnutls" ,gnutls)
7324 ("libgcrypt" ,libgcrypt)
7325 ("pulseaudio" ,pulseaudio)))
7326 (native-inputs
7327 `(("glib:bin" ,glib "bin")
7328 ("gobject-introspection" ,gobject-introspection)
7329 ("intltool" ,intltool)
7330 ("pkg-config" ,pkg-config)
2f17e939 7331 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7332 ("vala" ,vala)))
7333 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7334 (synopsis "VNC viewer widget for GTK+")
7335 (description
7336 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7337applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7338GTK-VNC implements client side RFB protocol and authentication extensions such
7339as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7340 (license license:lgpl2.1+)))
8b877545 7341
dc69fe18
MW
7342(define-public gnome-autoar
7343 (package
7344 (name "gnome-autoar")
17969940 7345 (version "0.2.4")
dc69fe18
MW
7346 (source (origin
7347 (method url-fetch)
7348 (uri (string-append "mirror://gnome/sources/" name "/"
7349 (version-major+minor version) "/"
7350 name "-" version ".tar.xz"))
7351 (sha256
7352 (base32
17969940 7353 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
7354 (build-system glib-or-gtk-build-system)
7355 (native-inputs
17969940 7356 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
7357 ("pkg-config" ,pkg-config)))
7358 (propagated-inputs
17969940 7359 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 7360 (inputs
0a6e9e13 7361 `(("gtk+" ,gtk+)))
dc69fe18
MW
7362 (synopsis "Archives integration support for GNOME")
7363 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7364 (description
7365 "GNOME Autoar is a library which makes creating and extracting archives
7366easy, safe, and automatic.")
7367 (license license:lgpl2.1+)))
7368
b64e217f
MW
7369(define-public tracker
7370 (package
7371 (name "tracker")
caaefa40 7372 (version "2.3.4")
b64e217f
MW
7373 (source (origin
7374 (method url-fetch)
b5b0fd23 7375 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7376 (version-major+minor version) "/"
b5b0fd23 7377 "tracker-" version ".tar.xz"))
b64e217f
MW
7378 (sha256
7379 (base32
caaefa40 7380 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7381 (build-system meson-build-system)
c8bdf589 7382 (arguments
5ada561c
KK
7383 `(#:glib-or-gtk? #t
7384 #:configure-flags
7385 ;; Otherwise, the RUNPATH will lack the final path component.
7386 (list (string-append "-Dc_link_args=-Wl,-rpath="
7387 (assoc-ref %outputs "out") "/lib:"
7388 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7389 #:phases
c8bdf589 7390 (modify-phases %standard-phases
c8bdf589
RW
7391 (add-before 'check 'pre-check
7392 (lambda _
63db190a
PN
7393 ;; Some tests expect to write to $HOME.
7394 (setenv "HOME" "/tmp")
c8bdf589 7395 #t)))))
b64e217f 7396 (native-inputs
5ada561c 7397 `(("glib:bin" ,glib "bin")
b64e217f 7398 ("gobject-introspection" ,gobject-introspection)
5ada561c 7399 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7400 ("intltool" ,intltool)
7401 ("pkg-config" ,pkg-config)
7402 ("vala" ,vala)))
7403 (inputs
63db190a 7404 `(("dbus" ,dbus)
44ed6284 7405 ("sqlite" ,sqlite)
b64e217f 7406 ("libxml2" ,libxml2)
63db190a 7407 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7408 ("json-glib" ,json-glib)
63db190a 7409 ("libsoup" ,libsoup)))
b64e217f
MW
7410 (synopsis "Metadata database, indexer and search tool")
7411 (home-page "https://wiki.gnome.org/Projects/Tracker")
7412 (description
63db190a
PN
7413 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7414
7415It is a middleware component aimed at desktop application developers who want
7416their apps to browse and search user content. It's not designed to be used
7417directly by desktop users, but it provides a commandline tool named
7418@command{tracker} for the adventurous.
7419
7420Tracker allows your application to instantly perform full-text searches across
7421all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7422example. This is achieved by indexing the user's home directory in the
7423background.
7424
7425Tracker also allows your application to query and list content that the user
7426has stored. For example, GNOME Music displays all the music files that are
7427found by Tracker. This means that GNOME Music doesn't need to maintain a
7428database of its own.
7429
7430If you need to go beyond simple searches, Tracker is also a linked data
7431endpoint and it understands SPARQL. ")
7432 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7433 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7434 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7435 (license (list license:gpl2+
63db190a
PN
7436 license:bsd-3
7437 license:lgpl2.1+))))
b64e217f 7438
03be9874
KK
7439(define-public tracker-miners
7440 (package
7441 (name "tracker-miners")
de60ac2f 7442 (version "2.3.3")
03be9874
KK
7443 (source (origin
7444 (method url-fetch)
7445 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7446 (version-major+minor version)
7447 "/tracker-miners-" version ".tar.xz"))
7448 (sha256
7449 (base32
de60ac2f 7450 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7451 (build-system meson-build-system)
7452 (arguments
7453 `(#:glib-or-gtk? #t
7454 #:configure-flags
7455 (list "-Dminer_rss=false" ; libgrss is required.
7456 ;; Ensure the RUNPATH contains all installed library locations.
7457 (string-append "-Dc_link_args=-Wl,-rpath="
7458 (assoc-ref %outputs "out")
7459 "/lib/tracker-miners-2.0")
7460 ;; TODO: Enable functional tests. Currently, the following error
7461 ;; appears:
7462 ;; Exception: The functional tests require DConf to be the default
7463 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7464 "-Dfunctional_tests=false")))
7465 (native-inputs
7466 `(("dbus" ,dbus)
7467 ("intltool" ,intltool)
7468 ("glib:bin" ,glib "bin")
7469 ("gobject-introspection" ,gobject-introspection)
7470 ("pkg-config" ,pkg-config)
7471 ("python-pygobject" ,python-pygobject)))
7472 (inputs
7473 `(("exempi" ,exempi)
7474 ("ffmpeg" ,ffmpeg)
7475 ("flac" ,flac)
7476 ("giflib" ,giflib)
7477 ("glib" ,glib)
7478 ("gstreamer" ,gstreamer)
7479 ("icu4c" ,icu4c)
7480 ("libcue" ,libcue)
7481 ("libexif" ,libexif)
7482 ("libgsf" ,libgsf)
7483 ("libgxps" ,libgxps)
7484 ("libiptcdata" ,libiptcdata)
4bd428a7 7485 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7486 ("libosinfo" ,libosinfo)
7487 ("libpng" ,libpng)
7488 ("libseccomp" ,libseccomp)
7489 ("libtiff" ,libtiff)
7490 ("libvorbis" ,libvorbis)
7491 ("libxml2" ,libxml2)
7492 ("poppler" ,poppler)
7493 ("taglib" ,taglib)
7494 ("totem-pl-parser" ,totem-pl-parser)
7495 ("tracker" ,tracker)
7496 ("upower" ,upower)
7497 ("zlib" ,zlib)))
b64e217f
MW
7498 (synopsis "Metadata database, indexer and search tool")
7499 (home-page "https://wiki.gnome.org/Projects/Tracker")
7500 (description
7501 "Tracker is an advanced framework for first class objects with associated
7502metadata and tags. It provides a one stop solution for all metadata, tags,
7503shared object databases, search tools and indexing.")
7504 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7505 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7506 (license (list license:gpl2+
7507 license:lgpl2.1+
7508 license:lgpl2.0+))))
7509
8b877545
RS
7510(define-public nautilus
7511 (package
7512 (name "nautilus")
8069ff0b 7513 (version "3.34.2")
8b877545
RS
7514 (source (origin
7515 (method url-fetch)
7516 (uri (string-append "mirror://gnome/sources/" name "/"
7517 (version-major+minor version) "/"
7518 name "-" version ".tar.xz"))
7519 (sha256
7520 (base32
8069ff0b 7521 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 7522 (build-system meson-build-system)
8b877545 7523 (arguments
35e2d0cf 7524 '(#:glib-or-gtk? #t
8069ff0b
KK
7525 #:phases
7526 (modify-phases %standard-phases
7527 (add-after 'unpack 'skip-gtk-update-icon-cache
7528 ;; Don't create 'icon-theme.cache'.
7529 (lambda _
7530 (substitute* "build-aux/meson/postinstall.py"
7531 (("gtk-update-icon-cache") "true"))
7532 #t)))
8b877545
RS
7533 ;; XXX: FAIL: check-nautilus
7534 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7535 #:tests? #f))
7536 (native-inputs
35e2d0cf
R
7537 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7538 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
7539 ("gobject-introspection" ,gobject-introspection)
7540 ("intltool" ,intltool)
7541 ("pkg-config" ,pkg-config)))
8b877545 7542 (inputs
8b877545 7543 `(("dconf" ,dconf)
caf6c363 7544 ("gexiv2" ,gexiv2)
dd05e731 7545 ("gvfs" ,gvfs)
8b877545
RS
7546 ("exempi" ,exempi)
7547 ("gnome-desktop" ,gnome-desktop)
09d88905 7548 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7549 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7550 ("libseccomp" ,libseccomp)
35e2d0cf 7551 ("libselinux" ,libselinux)
09d88905 7552 ("tracker" ,tracker)
3cafb9d4 7553 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7554 ;; XXX: gtk+ is required by libnautilus-extension.pc
7555 ;;
7556 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7557 ;; package. See:
7558 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7559 ("gtk+" ,gtk+)
8b877545
RS
7560 ("libexif" ,libexif)
7561 ("libxml2" ,libxml2)))
7562 (synopsis "File manager for GNOME")
7563 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7564 (description
7565 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7566design and behaviour, giving the user a simple way to navigate and manage its
7567files.")
7568 (license license:gpl2+)))
3c697ffd
JR
7569
7570(define-public baobab
7571 (package
7572 (name "baobab")
e0c5f20c 7573 (version "3.32.0")
3c697ffd
JR
7574 (source (origin
7575 (method url-fetch)
7576 (uri (string-append
7577 "mirror://gnome/sources/" name "/"
7578 (version-major+minor version) "/"
7579 name "-" version ".tar.xz"))
7580 (sha256
7581 (base32
e0c5f20c 7582 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7583 (build-system meson-build-system)
7584 (arguments
7585 '(#:glib-or-gtk? #t))
3c697ffd
JR
7586 (native-inputs
7587 `(("intltool" ,intltool)
7588 ("pkg-config" ,pkg-config)
d233d373
RJ
7589 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7590 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7591 ("itstool" ,itstool)
7592 ("xmllint" ,libxml2)
7593 ("glib" ,glib "bin")
7594 ("vala" ,vala)))
7595 (inputs
7596 `(("gtk+" ,gtk+)))
7597 (synopsis "Disk usage analyzer for GNOME")
7598 (description
7599 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7600usage in the GNOME desktop environment. It can easily scan device volumes or
7601a specific user-requested directory branch (local or remote). Once the scan
7602is complete it provides a graphical representation of each selected folder.")
7603 (home-page "https://wiki.gnome.org/Apps/Baobab")
7604 (license license:gpl2+)))
dc050251 7605
fdba447c
RS
7606(define-public gnome-backgrounds
7607 (package
7608 (name "gnome-backgrounds")
0856b0d9 7609 (version "3.34.0")
fdba447c
RS
7610 (source
7611 (origin
7612 (method url-fetch)
7613 (uri (string-append "mirror://gnome/sources/" name "/"
7614 (version-major+minor version) "/"
7615 name "-" version ".tar.xz"))
7616 (sha256
7617 (base32
0856b0d9 7618 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 7619 (build-system meson-build-system)
fdba447c
RS
7620 (native-inputs
7621 `(("intltool" ,intltool)))
e04e8a8c 7622 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7623 (synopsis "Background images for the GNOME desktop")
7624 (description
7625 "GNOME backgrounds package contains a collection of graphics files which
7626can be used as backgrounds in the GNOME Desktop environment. Additionally,
7627the package creates the proper framework and directory structure so that you
7628can add your own files to the collection.")
7629 (license (list license:gpl2+
7630 license:cc-by2.0
7631 license:cc-by-sa2.0
7632 license:cc-by-sa3.0))))
7633
b784b1a9
RS
7634(define-public gnome-screenshot
7635 (package
7636 (name "gnome-screenshot")
d5101dab 7637 (version "3.34.0")
b784b1a9
RS
7638 (source
7639 (origin
7640 (method url-fetch)
7641 (uri (string-append "mirror://gnome/sources/" name "/"
7642 (version-major+minor version) "/"
7643 name "-" version ".tar.xz"))
7644 (sha256
7645 (base32
d5101dab 7646 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 7647 (build-system meson-build-system)
d5101dab
KK
7648 (arguments
7649 '(#:phases
7650 (modify-phases %standard-phases
7651 (add-after 'unpack 'skip-gtk-update-icon-cache
7652 ;; Don't create 'icon-theme.cache'.
7653 (lambda _
7654 (substitute* "build-aux/postinstall.py"
7655 (("gtk-update-icon-cache") "true"))
7656 #t)))))
b784b1a9
RS
7657 (native-inputs
7658 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 7659 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7660 ("intltool" ,intltool)
8356aefa 7661 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7662 ("pkg-config" ,pkg-config)))
7663 (inputs
7664 `(("gtk+" ,gtk+)
7665 ("libcanberra" ,libcanberra)
7666 ("libx11" ,libx11)
7667 ("libxext" ,libxext)))
676e7cb4 7668 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7669 (synopsis "Take pictures of your screen")
7670 (description
7671 "GNOME Screenshot is a utility used for taking screenshots of the entire
7672screen, a window or a user defined area of the screen, with optional
7673beautifying border effects.")
7674 (license license:gpl2+)))
7675
66d59111
RS
7676(define-public dconf-editor
7677 (package
7678 (name "dconf-editor")
720aa20f 7679 (version "3.34.2")
66d59111
RS
7680 (source
7681 (origin
7682 (method url-fetch)
7683 (uri (string-append "mirror://gnome/sources/" name "/"
7684 (version-major+minor version) "/"
7685 name "-" version ".tar.xz"))
7686 (sha256
7687 (base32
720aa20f 7688 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 7689 (build-system meson-build-system)
66d59111
RS
7690 (native-inputs
7691 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7692 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7693 ("intltool" ,intltool)
294ff39d
RW
7694 ("pkg-config" ,pkg-config)
7695 ("vala" ,vala)))
66d59111
RS
7696 (inputs
7697 `(("dconf" ,dconf)
7698 ("gtk+" ,gtk+)
7699 ("libxml2" ,libxml2)))
720aa20f 7700 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
7701 (synopsis "Graphical editor for GNOME's dconf configuration system")
7702 (description
7703 "Dconf-editor is a graphical tool for browsing and editing the dconf
7704configuration system for GNOME. It allows users to configure desktop
7705software that do not provide their own configuration interface.")
7706 (license license:lgpl2.1+)))
7707
96d36f38
AW
7708(define-public gnome-default-applications
7709 (package
7710 (name "gnome-default-applications")
7711 (version "0")
7712 (build-system trivial-build-system)
7713 (source #f)
7714 (propagated-inputs
8ad4f0aa
LC
7715 `(("nautilus" ,nautilus)
7716 ("evince" ,evince)))
96d36f38
AW
7717 (arguments
7718 `(#:modules ((guix build utils))
7719 #:builder
7720 (begin
7721 (use-modules (guix build utils))
7722 (let* ((out (assoc-ref %outputs "out"))
7723 (apps (string-append out "/share/applications")))
7724 (mkdir-p apps)
a6ac679f 7725 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7726 (lambda (port)
7727 (format port "[Default Applications]\n")
8ad4f0aa
LC
7728 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7729 (format port "application/pdf=evince.desktop\n")
7730 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7731 #t))))
7732 (synopsis "Default MIME type associations for the GNOME desktop")
7733 (description
7734 "Given many installed packages which might handle a given MIME type, a
7735user running the GNOME desktop probably has some preferences: for example,
7736that folders be opened by default by the Nautilus file manager, not the Baobab
7737disk usage analyzer. This package establishes that set of default MIME type
7738associations for GNOME.")
7739 (license license:gpl3+)
7740 (home-page #f)))
7741
3f1ed953
RG
7742(define-public libgovirt
7743 (package
7744 (name "libgovirt")
7745 (version "0.3.6")
7746 (source (origin
7747 (method url-fetch)
7748 (uri (string-append "mirror://gnome/sources/" name "/"
7749 (version-major+minor version) "/"
7750 name "-" version ".tar.xz"))
7751 (sha256
7752 (base32
7753 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7754 (build-system glib-or-gtk-build-system)
7755 (native-inputs
7756 `(("gettext" ,gettext-minimal)
7757 ("glib:bin" ,glib "bin")
7758 ("gobject-introspection" ,gobject-introspection)
7759 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7760 ("gtk+:bin" ,gtk+ "bin")
7761 ("pkg-config" ,pkg-config)))
7762 (inputs
7763 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7764 ("librest" ,rest)))
7765 (synopsis "GoVirt Library")
7766 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7767 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7768 (license license:gpl2+)))
7769
8672e5e9
RG
7770(define-public gnome-weather
7771 (package
7772 (name "gnome-weather")
7773 (version "3.34.0")
7774 (source (origin
7775 (method url-fetch)
7776 (uri (string-append "mirror://gnome/sources/" name "/"
7777 (version-major+minor version) "/"
7778 name "-" version ".tar.xz"))
7779 (sha256
7780 (base32
7781 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7782 (build-system meson-build-system)
7783 (native-inputs
7784 `(("gettext" ,gettext-minimal)
7785 ("glib:bin" ,glib "bin")
7786 ("gobject-introspection" ,gobject-introspection)
7787 ("gtk+:bin" ,gtk+ "bin")
7788 ("pkg-config" ,pkg-config)))
7789 (inputs
7790 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7791 ("appstream-glib" ,appstream-glib)
7792 ("geoclue" ,geoclue)
7793 ("gdk-pixbuf" ,gdk-pixbuf)
7794 ("gjs" ,gjs)
7795 ("gnome-desktop" ,gnome-desktop)
7796 ("libgweather" ,libgweather)))
4391fefc 7797 (arguments
2b68ba72
MB
7798 `(#:glib-or-gtk? #t
7799 #:phases
4391fefc
PN
7800 (modify-phases %standard-phases
7801 (add-after 'install 'fix-desktop-file
7802 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7803 ;; See https://issues.guix.gnu.org/issue/39324.
7804 (lambda* (#:key outputs #:allow-other-keys)
7805 (let* ((out (assoc-ref outputs "out"))
7806 (applications (string-append out "/share/applications")))
7807 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
7808 (("Exec=.*") "Exec=gnome-weather\n"))
7809 #t)))
7810 (add-after 'install 'wrap
7811 (lambda* (#:key inputs outputs #:allow-other-keys)
7812 (let ((out (assoc-ref outputs "out"))
7813 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7814 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7815 (wrap-program (string-append out "/bin/gnome-weather")
7816 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7817 #t))))))
8672e5e9
RG
7818 (synopsis "Weather monitoring for GNOME desktop")
7819 (description "GNOME Weather is a small application that allows you to
7820monitor the current weather conditions for your city, or anywhere in the
7821world.")
7822 (home-page "https://wiki.gnome.org/Apps/Weather")
7823 (license license:gpl2+)))
7824
dc050251
SB
7825(define-public gnome
7826 (package
7827 (name "gnome")
7828 (version (package-version gnome-shell))
7829 (source #f)
7830 (build-system trivial-build-system)
e3cfef22 7831 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7832 (propagated-inputs
8d8c6bff 7833 ;; TODO: Add or remove packages according to:
a8cda7f5 7834 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7835 `(
8d8c6bff 7836 ;; GNOME-Core-OS-Services
7922b6f7 7837 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7838 ("network-manager" ,network-manager)
7839 ("packagekit" ,packagekit)
7840 ("upower" ,upower)
7841 ;; GNOME-Core-Shell
7842 ("adwaita-icon-theme" ,adwaita-icon-theme)
7843 ("gdm" ,gdm)
7844 ("glib-networking" ,glib-networking)
7845 ("gnome-backgrounds" ,gnome-backgrounds)
7846 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7847 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7848 ("gnome-control-center" ,gnome-control-center)
7849 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7850 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 7851 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7852 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7853 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7854 ("gnome-session" ,gnome-session)
7855 ("gnome-settings-daemon" ,gnome-settings-daemon)
7856 ("gnome-shell-extensions" ,gnome-shell-extensions)
7857 ("gnome-shell" ,gnome-shell)
7858 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7859 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7860 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7861 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7862 ("gvfs" ,gvfs)
7863 ("mutter" ,mutter)
7864 ("orca" ,orca)
d36fa50f
RG
7865 ("rygel" ,rygel)
7866 ("sushi" ,sushi)
8d8c6bff
RG
7867 ;; GNOME-Core-Utilities
7868 ("baobab" ,baobab)
7869 ("cheese" ,cheese)
ce784e6c
MB
7870 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7871 ;; only works on x86_64, so exclude it on other architectures.
7872 ,@(if (string-prefix? "x86_64" (%current-system))
7873 `(("eog" ,eog))
7874 '())
8d8c6bff
RG
7875 ("epiphany" ,epiphany)
7876 ("evince" ,evince)
7877 ("file-roller" ,file-roller)
7878 ("gedit" ,gedit)
d36fa50f 7879 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7880 ("gnome-calculator" ,gnome-calculator)
7881 ("gnome-calendar" ,gnome-calendar)
7882 ("gnome-characters" ,gnome-characters)
7883 ("gnome-clocks" ,gnome-clocks)
7884 ("gnome-contacts" ,gnome-contacts)
7885 ("gnome-disk-utility" ,gnome-disk-utility)
7886 ("gnome-font-viewer" ,gnome-font-viewer)
7887 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7888 ; TODO: ("gnome-music" ,gnome-music)
7889 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7890 ("gnome-screenshot" ,gnome-screenshot)
7891 ("gnome-system-monitor" ,gnome-system-monitor)
7892 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7893 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7894 ("nautilus" ,nautilus)
7895 ("simple-scan" ,simple-scan)
7896 ("totem" ,totem)
7922b6f7
RG
7897 ("yelp" ,yelp)
7898 ;; Others
7899 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
7900 ("gnome-online-accounts" ,gnome-online-accounts)
7901
7902 ;; Packages not part of GNOME proper but that are needed for a good
7903 ;; experience. See <https://bugs.gnu.org/39646>.
7904 ;; XXX: Find out exactly which ones are needed and why.
7905 ("font-cantarell" ,font-cantarell)
7906 ("font-dejavu" ,font-dejavu)
7907 ("at-spi2-core" ,at-spi2-core)
7908 ("dbus" ,dbus)
7909 ("dconf" ,dconf)
7910 ("desktop-file-utils" ,desktop-file-utils)
7911 ("gnome-default-applications" ,gnome-default-applications)
7912 ("gnome-themes-standard" ,gnome-themes-standard)
7913 ("gst-plugins-base" ,gst-plugins-base)
7914 ("gst-plugins-good" ,gst-plugins-good)
7915 ("gucharmap" ,gucharmap)
7916 ("pinentry-gnome3" ,pinentry-gnome3)
7917 ("pulseaudio" ,pulseaudio)
7918 ("shared-mime-info" ,shared-mime-info)
7919 ("system-config-printer" ,system-config-printer)
7920 ("xdg-user-dirs" ,xdg-user-dirs)
7921 ("yelp" ,yelp)
7922 ("zenity" ,zenity)))
fe4e698d 7923 (synopsis "The GNU desktop environment")
dc050251
SB
7924 (home-page "https://www.gnome.org/")
7925 (description
fe4e698d
LC
7926 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7927applications for browsing the web, editing text and images, creating
7928documents and diagrams, playing media, scanning, and much more.")
dc050251 7929 (license license:gpl2+)))
4a526711
DT
7930
7931(define-public byzanz
7932 ;; The last stable release of Byzanz was in 2011, but there have been many
7933 ;; useful commits made to the Byzanz repository since then that it would be
7934 ;; silly to use such an old release.
7935 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7936 (package
7937 (name "byzanz")
7938 (version (string-append "0.2-1." (string-take commit 7)))
7939 (source (origin
7940 (method git-fetch)
7941 (uri (git-reference
5f13bf09 7942 (url "https://git.gnome.org/browse/byzanz")
4a526711 7943 (commit commit)))
5a6527e4 7944 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7945 (sha256
7946 (base32
7947 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7948 (build-system glib-or-gtk-build-system)
7949 (arguments
7950 '(#:phases
7951 (modify-phases %standard-phases
778d6b52 7952 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
7953 (lambda _
7954 ;; The build system cleverly detects that we're not building from
7955 ;; a release tarball and turns on -Werror for GCC.
7956 ;; Unsurprisingly, there is a warning during compilation that
7957 ;; causes the build to fail unnecessarily, so we remove the flag.
7958 (substitute* '("configure.ac")
7959 (("-Werror") ""))
778d6b52 7960 #t)))))
4a526711
DT
7961 (native-inputs
7962 `(("autoconf" ,autoconf)
7963 ("automake" ,automake)
7964 ("gnome-common" ,gnome-common)
7965 ("intltool" ,intltool)
7966 ("libtool" ,libtool)
7967 ("pkg-config" ,pkg-config)
7968 ("which" ,which)))
7969 (inputs
7970 `(("glib" ,glib)
7971 ("gstreamer" ,gstreamer)
7972 ("gst-plugins-base" ,gst-plugins-base)
7973 ("gtk+" ,gtk+)))
7974 (synopsis "Desktop recording program")
7975 (description "Byzanz is a simple desktop recording program with a
7976command-line interface. It can record part or all of an X display for a
7977specified duration and save it as a GIF encoded animated image file.")
7978 (home-page "https://git.gnome.org/browse/byzanz")
7979 (license license:gpl2+))))
3a9a4c51 7980
0ec171ec
MS
7981(define-public gsound
7982 (package
7983 (name "gsound")
7984 (version "1.0.2")
7985 (source (origin
7986 (method url-fetch)
7987 (uri (string-append "mirror://gnome/sources/" name "/"
7988 (version-major+minor version) "/"
7989 name "-" version ".tar.xz"))
7990 (sha256
7991 (base32
7992 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7993 (build-system glib-or-gtk-build-system)
7994 (native-inputs
7995 `(("pkg-config" ,pkg-config)
7996 ("gobject-introspection" ,gobject-introspection)
7997 ("vala" ,vala)))
7998 (inputs
7999 `(("glib" ,glib)
8000 ("libcanberra" ,libcanberra)))
8001 (home-page "https://wiki.gnome.org/Projects/GSound")
8002 (synopsis "GObject wrapper for libcanberra")
8003 (description
8004 "GSound is a small library for playing system sounds. It's designed to be
8005used via GObject Introspection, and is a thin wrapper around the libcanberra C
8006library.")
8007 (license license:lgpl2.1+)))
8008
3a9a4c51
RS
8009(define-public libzapojit
8010 (package
8011 (name "libzapojit")
8012 (version "0.0.3")
8013 (source (origin
8014 (method url-fetch)
8015 (uri (string-append "mirror://gnome/sources/" name "/"
8016 (version-major+minor version) "/"
8017 name "-" version ".tar.xz"))
8018 (sha256
8019 (base32
8020 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8021 (build-system gnu-build-system)
8022 (native-inputs
8023 `(("gobject-introspection" ,gobject-introspection)
8024 ("intltool" ,intltool)
8025 ("pkg-config" ,pkg-config)))
8026 (inputs
14c297fd 8027 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8028 ("json-glib" ,json-glib)
8029 ("rest" ,rest)))
8030 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8031 (synopsis "Library for accessing SkyDrive and Hotmail")
8032 (description
8033 "Libzapojit is a GLib-based library for accessing online service APIs of
8034Microsoft SkyDrive and Hotmail, using their REST protocols.")
8035 (license license:lgpl2.1+)))
9365ee1c 8036
60e2a9ae
MS
8037(define-public gnome-clocks
8038 (package
8039 (name "gnome-clocks")
feee5ff5 8040 (version "3.34.0")
60e2a9ae
MS
8041 (source (origin
8042 (method url-fetch)
8043 (uri (string-append "mirror://gnome/sources/" name "/"
8044 (version-major+minor version) "/"
8045 name "-" version ".tar.xz"))
8046 (sha256
8047 (base32
feee5ff5 8048 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8049 (build-system meson-build-system)
8050 (arguments
feee5ff5
KK
8051 '(#:glib-or-gtk? #t
8052 #:phases
8053 (modify-phases %standard-phases
8054 (add-after 'unpack 'skip-gtk-update-icon-cache
8055 ;; Don't create 'icon-theme.cache'.
8056 (lambda _
8057 (substitute* "build-aux/post-install.py"
8058 (("gtk-update-icon-cache") "true"))
8059 #t)))))
60e2a9ae
MS
8060 (native-inputs
8061 `(("vala" ,vala)
8062 ("pkg-config" ,pkg-config)
8063 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8064 ("desktop-file-utils" ,desktop-file-utils)
8065 ("gettext" ,gettext-minimal)
8066 ("itstool" ,itstool)))
8067 (inputs
8068 `(("glib" ,glib)
8069 ("gtk+" ,gtk+)
8070 ("gsound" ,gsound)
8071 ("geoclue" ,geoclue)
8072 ("geocode-glib" ,geocode-glib)
8073 ("libgweather" ,libgweather)
8074 ("gnome-desktop" ,gnome-desktop)))
8075 (home-page "https://wiki.gnome.org/Apps/Clocks")
8076 (synopsis "GNOME's clock application")
8077 (description
8078 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8079desktop. It supports world clock, stop watch, alarms, and count down timer.")
8080 (license license:gpl3+)))
8081
3c474897
KY
8082(define-public gnome-calendar
8083 (package
8084 (name "gnome-calendar")
27dd1d76 8085 (version "3.34.2")
3c474897
KY
8086 (source (origin
8087 (method url-fetch)
8088 (uri (string-append "mirror://gnome/sources/" name "/"
8089 (version-major+minor version) "/"
8090 name "-" version ".tar.xz"))
8091 (sha256
8092 (base32
27dd1d76 8093 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8094 (build-system meson-build-system)
8095 (arguments
8096 '(#:glib-or-gtk? #t
8097 ;; gnome-calendar has to be installed before the tests can be run
8098 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8099 #:tests? #f
8100 #:phases
8101 (modify-phases %standard-phases
8102 (add-after 'unpack 'skip-gtk-update-icon-cache
8103 ;; Don't create 'icon-theme.cache'.
8104 (lambda _
8105 (substitute* "build-aux/meson/meson_post_install.py"
8106 (("gtk-update-icon-cache") "true"))
8107 #t)))))
3c474897 8108 (native-inputs
a49d3e37
MS
8109 `(("gettext" ,gettext-minimal)
8110 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8111 ("pkg-config" ,pkg-config)))
8112 (inputs
27cb52a2 8113 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8114 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8115 ("libdazzle" ,libdazzle)
b63c06f1 8116 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8117 ("libgweather" ,libgweather)
8118 ("geoclue" ,geoclue)))
27cb52a2
RG
8119 (propagated-inputs
8120 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8121 (home-page "https://wiki.gnome.org/Apps/Calendar")
8122 (synopsis "GNOME's calendar application")
8123 (description
8124 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8125desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8126 (license license:gpl3+)))
8127
57b14665
MS
8128(define-public gnome-todo
8129 (package
8130 (name "gnome-todo")
9f3c6c88 8131 (version "3.28.1")
57b14665
MS
8132 (source (origin
8133 (method url-fetch)
8134 (uri (string-append "mirror://gnome/sources/" name "/"
8135 (version-major+minor version) "/"
8136 name "-" version ".tar.xz"))
8137 (sha256
8138 (base32
b17b2945
DM
8139 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8140 (patches
8141 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8142 (build-system meson-build-system)
8143 (arguments
8144 '(#:glib-or-gtk? #t
8145 #:phases (modify-phases %standard-phases
8146 (add-after
8147 'install 'wrap-gnome-todo
8148 (lambda* (#:key inputs outputs #:allow-other-keys)
8149 (let ((out (assoc-ref outputs "out"))
8150 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8151 (python-path (getenv "PYTHONPATH")))
8152 (wrap-program (string-append out "/bin/gnome-todo")
8153 ;; XXX: gi plugins are broken.
8154 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8155 ;; For plugins.
8156 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8157 `("PYTHONPATH" ":" prefix (,python-path))))
8158 #t)))))
8159 (native-inputs
8160 `(("gettext" ,gettext-minimal)
8161 ("gobject-introspection" ,gobject-introspection)
8162 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8163 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8164 ("pkg-config" ,pkg-config)))
8165 (inputs
8166 `(("rest" ,rest) ; For Todoist plugin
8167 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8168 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8169 ("libical" ,libical)
8170 ("libpeas" ,libpeas)
8171 ("python-pygobject" ,python-pygobject)
8172 ("evolution-data-server" ,evolution-data-server)
14c297fd 8173 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8174 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8175 (home-page "https://wiki.gnome.org/Apps/Todo")
8176 (synopsis "GNOME's ToDo Application")
8177 (description
8178 "GNOME To Do is a simplistic personal task manager designed to perfectly
8179fit the GNOME desktop.")
8180 (license license:gpl3+)))
8181
ab179eaf
SB
8182(define-public gnome-dictionary
8183 (package
8184 (name "gnome-dictionary")
cf81ddef 8185 (version "3.26.1")
ab179eaf
SB
8186 (source (origin
8187 (method url-fetch)
8188 (uri (string-append "mirror://gnome/sources/" name "/"
8189 (version-major+minor version) "/"
8190 name "-" version ".tar.xz"))
8191 (sha256
8192 (base32
cf81ddef
LC
8193 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8194 (build-system meson-build-system)
2776b5d5
MB
8195 (arguments '(#:glib-or-gtk? #t
8196 #:phases (modify-phases %standard-phases
8197 (add-after 'unpack 'patch-install-script
8198 (lambda _
8199 ;; This script attempts to compile glib schemas
8200 ;; and create an empty MIME database. We do
8201 ;; that elsewhere, so prevent it from running.
8202 (substitute* "build-aux/post-install.sh"
8203 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8204 #t)))))
ab179eaf
SB
8205 (native-inputs
8206 `(("glib:bin" ,glib "bin")
8207 ("gobject-introspection" ,gobject-introspection)
8208 ("intltool" ,intltool)
8209 ("itstool" ,itstool)
8210 ("pkg-config" ,pkg-config)
8211 ("xmllint" ,libxml2)))
8212 (inputs
8213 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8214 ("gtk+" ,gtk+)))
8215 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8216 (synopsis "Look up words in dictionary sources")
8217 (description
8218 "GNOME Dictionary can look for the definition or translation of a word in
8219existing databases over the internet.")
8220 (license license:gpl3+)))
8221
d13f3a03 8222(define-public gnome-tweaks
9365ee1c 8223 (package
d13f3a03 8224 (name "gnome-tweaks")
4add1bae 8225 (version "3.34.0")
9365ee1c
JN
8226 (source (origin
8227 (method url-fetch)
d13f3a03 8228 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8229 (version-major+minor version) "/"
d13f3a03
RW
8230 "gnome-tweaks-" version ".tar.xz"))
8231 (patches
8232 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8233 (sha256
8234 (base32
4add1bae 8235 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 8236 (build-system meson-build-system)
9365ee1c 8237 (arguments
d13f3a03
RW
8238 `(#:glib-or-gtk? #t
8239 #:configure-flags '("-Dlocalstatedir=/tmp"
8240 "-Dsysconfdir=/tmp")
9365ee1c 8241 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8242 ,@%meson-build-system-modules)
8243 #:phases
8244 (modify-phases %standard-phases
4add1bae
KK
8245 (add-after 'unpack 'skip-gtk-update-icon-cache
8246 ;; Don't create 'icon-theme.cache'.
8247 (lambda _
8248 (substitute* "meson-postinstall.py"
8249 (("gtk-update-icon-cache") "true"))
8250 #t))
d13f3a03
RW
8251 (add-after 'install 'wrap
8252 (@@ (guix build python-build-system) wrap))
8253 (add-after 'wrap 'wrap-gi-typelib
8254 (lambda* (#:key inputs outputs #:allow-other-keys)
8255 (let ((out (assoc-ref outputs "out"))
8256 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8257 (wrap-program (string-append out "/bin/gnome-tweaks")
8258 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8259 #t)))))
9365ee1c 8260 (native-inputs
4add1bae 8261 `(("intltool" ,intltool)
9365ee1c
JN
8262 ("pkg-config" ,pkg-config)))
8263 (inputs
c7fc414e
RH
8264 `(("gnome-desktop" ,gnome-desktop)
8265 ("gtk+" ,gtk+)
9365ee1c
JN
8266 ("gobject-introspection" ,gobject-introspection)
8267 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 8268 ("libhandy" ,libhandy)
c7fc414e
RH
8269 ("libnotify" ,libnotify)
8270 ("libsoup" ,libsoup)
8271 ("nautilus" ,nautilus)
8272 ("python" ,python)
8273 ("python-pygobject" ,python-pygobject)))
9365ee1c 8274 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8275 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8276 (description
d13f3a03 8277 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8278GNOME 3. This includes things like the fonts used in user interface elements,
8279alternative user interface themes, changes in window management behavior,
8280GNOME Shell appearance and extension, etc.")
8281 (license license:gpl3+)))
813f814a 8282
32ac717c
DT
8283(define-public gnome-shell-extensions
8284 (package
8285 (name "gnome-shell-extensions")
c7305466 8286 (version "3.34.2")
32ac717c
DT
8287 (source (origin
8288 (method url-fetch)
8289 (uri (string-append "mirror://gnome/sources/" name "/"
8290 (version-major+minor version) "/"
8291 name "-" version ".tar.xz"))
8292 (sha256
8293 (base32
c7305466 8294 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 8295 (build-system meson-build-system)
32ac717c 8296 (arguments
100f625b 8297 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8298 (native-inputs
c9ea8873
LP
8299 `(("glib:bin" ,glib "bin")
8300 ("intltool" ,intltool)
32ac717c
DT
8301 ("pkg-config" ,pkg-config)))
8302 (propagated-inputs
c9ea8873 8303 `(("glib" ,glib)))
32ac717c
DT
8304 (synopsis "Extensions for GNOME Shell")
8305 (description "GNOME Shell extensions modify and extend GNOME Shell
8306functionality and behavior.")
8307 (home-page "https://extensions.gnome.org/")
8308 (license license:gpl3+)))
8309
813f814a
DT
8310(define-public arc-theme
8311 (package
8312 (name "arc-theme")
37781323 8313 (version "20190917")
813f814a 8314 (source (origin
a18f8eaf
BH
8315 (method git-fetch)
8316 (uri (git-reference
8317 (url "https://github.com/NicoHood/arc-theme.git")
8318 (commit version)))
8319 (file-name (git-file-name name version))
813f814a
DT
8320 (sha256
8321 (base32
37781323 8322 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8323 (build-system gnu-build-system)
d88884fa
EF
8324 (arguments
8325 '(#:phases
8326 (modify-phases %standard-phases
8327 ;; autogen.sh calls configure at the end of the script.
8328 (replace 'bootstrap
4690e3a4
MC
8329 (lambda _ (invoke "autoreconf" "-vfi")))
8330 (add-before 'build 'set-home ;placate Inkscape
8331 (lambda _
8332 (setenv "HOME" (getcwd))
8333 #t)))))
813f814a
DT
8334 (native-inputs
8335 `(("autoconf" ,autoconf)
8336 ("automake" ,automake)
a18f8eaf
BH
8337 ("glib" ,glib "bin") ; for glib-compile-resources
8338 ("gnome-shell" ,gnome-shell)
8339 ("gtk+" ,gtk+)
8340 ("inkscape" ,inkscape)
8341 ("optipng" ,optipng)
8342 ("pkg-config" ,pkg-config)
bed24ecf 8343 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8344 (synopsis "A flat GTK+ theme with transparent elements")
8345 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
83462, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8347like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8348 (home-page "https://github.com/horst3180/arc-theme")
8349 ;; No "or later" language found.
a18f8eaf 8350 (license license:gpl3+)))
9987c57c 8351
d935e6a1 8352(define-public faba-icon-theme
9987c57c 8353 (package
d935e6a1 8354 (name "faba-icon-theme")
2eee7ee3 8355 (version "4.3")
d935e6a1
BT
8356 (source
8357 (origin
757e4027
TGR
8358 (method git-fetch)
8359 (uri (git-reference
8360 (url "https://github.com/snwh/faba-icon-theme.git")
8361 (commit (string-append "v" version))))
8362 (file-name (git-file-name name version))
d935e6a1 8363 (sha256
757e4027 8364 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8365 (build-system meson-build-system)
9987c57c 8366 (arguments
82da291a 8367 `(#:phases
9987c57c 8368 (modify-phases %standard-phases
82da291a 8369 (add-before 'configure 'disable-post-install
9987c57c 8370 (lambda _
82da291a
JL
8371 (substitute* "meson.build"
8372 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8373 (native-inputs
8374 `(("autoconf" ,autoconf)
8375 ("automake" ,automake)))
d935e6a1
BT
8376 (synopsis "Faba icon theme")
8377 (description
8378 "Faba is a minimal icon set used as a basis for other themes such as
8379Moka")
8380 (home-page "https://snwh.org/moka")
8381 (license (list license:lgpl3+
8382 license:cc-by-sa4.0))))
8383
9987c57c
DT
8384(define-public moka-icon-theme
8385 (package
8b0e4177 8386 (inherit faba-icon-theme)
9987c57c 8387 (name "moka-icon-theme")
105a3625 8388 (version "5.4.0")
8c3f2170
TGR
8389 (source
8390 (origin
8391 (method git-fetch)
8392 (uri (git-reference
8393 (url "https://github.com/snwh/moka-icon-theme.git")
8394 (commit (string-append "v" version))))
8395 (file-name (git-file-name name version))
8396 (sha256
8397 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8398 (propagated-inputs
8399 ;; Moka is based on Faba by using it as a fallback icon set instead of
8400 ;; bundling it, so we need to add it as a propagated input.
8401 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8402 (synopsis "Moka icon theme")
8403 (description "Moka is a stylized desktop icon set, designed to be clear,
8404simple and consistent.")
fedde43b
BT
8405 (license (list license:gpl3+
8406 license:cc-by-sa4.0))))
6fd8f8d6
DT
8407
8408(define-public arc-icon-theme
8409 (package
8410 (name "arc-icon-theme")
c4180240 8411 (version "20161122")
bbf66cbf
TGR
8412 (source
8413 (origin
8414 (method git-fetch)
8415 (uri (git-reference
8416 (url "https://github.com/horst3180/arc-icon-theme.git")
8417 (commit version)))
8418 (file-name (git-file-name name version))
8419 (sha256
8420 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8421 (build-system gnu-build-system)
9e1ede95
JL
8422 (arguments
8423 `(#:phases
8424 (modify-phases %standard-phases
8425 (add-after 'unpack 'disable-configure-during-bootstrap
8426 (lambda _
8427 (substitute* "autogen.sh"
8428 (("^\"\\$srcdir/configure\".*") ""))
8429 #t)))))
6fd8f8d6
DT
8430 (native-inputs
8431 `(("autoconf" ,autoconf)
8432 ("automake" ,automake)))
8433 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8434 (propagated-inputs
8435 `(("moka-icon-theme" ,moka-icon-theme)))
8436 (synopsis "Arc icon theme")
8437 (description "The Arc icon theme provides a set of icons matching the
8438style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8439the Moka icon theme.")
8440 (home-page "https://github.com/horst3180/arc-icon-theme")
8441 (license license:gpl3+)))
6064a4e8
LF
8442
8443(define-public folks
8444 (package
8445 (name "folks")
fd11f6f3 8446 (version "0.13.1")
6064a4e8
LF
8447 (source (origin
8448 (method url-fetch)
8449 (uri (string-append
e5f4796e 8450 "mirror://gnome/sources/folks/"
6064a4e8 8451 (version-major+minor version) "/"
e5f4796e 8452 "folks-" version ".tar.xz"))
6064a4e8
LF
8453 (sha256
8454 (base32
fd11f6f3
KK
8455 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8456 (build-system meson-build-system)
8457 (arguments
8458 '(#:phases
8459 (modify-phases %standard-phases
8460 (add-after 'unpack 'skip-gtk-update-icon-cache
8461 ;; Don't create 'icon-theme.cache'.
8462 (lambda _
8463 (substitute* "meson_post_install.py"
8464 (("gtk-update-icon-cache") "true"))
8465 #t)))))
6064a4e8
LF
8466 (inputs
8467 `(("bdb" ,bdb)
8468 ("dbus-glib" ,dbus-glib)
8469 ("evolution-data-server" ,evolution-data-server)
8470 ("glib" ,glib)
8471 ("libgee" ,libgee)
fd11f6f3 8472 ("readline" ,readline)
6064a4e8
LF
8473 ("telepathy-glib" ,telepathy-glib)))
8474 (native-inputs
fd11f6f3
KK
8475 `(("glib:bin" ,glib "bin")
8476 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
8477 ("intltool" ,intltool)
8478 ("pkg-config" ,pkg-config)
8479 ("vala" ,vala)))
8480 (synopsis "Library to aggregate data about people")
8481 (description "Libfolks is a library that aggregates information about people
8482from multiple sources (e.g., Telepathy connection managers for IM contacts,
8483Evolution Data Server for local contacts, libsocialweb for web service contacts,
8484etc.) to create metacontacts. It's written in Vala, which generates C code when
8485compiled.")
8486 (home-page "https://wiki.gnome.org/Projects/Folks")
8487 (license license:lgpl2.1+)))
01ea778f
LF
8488
8489(define-public gfbgraph
8490 (package
8491 (name "gfbgraph")
8492 (version "0.2.3")
8493 (source (origin
8494 (method url-fetch)
8495 (uri (string-append
237d4cf7 8496 "mirror://gnome/sources/gfbgraph/"
01ea778f 8497 (version-major+minor version) "/"
237d4cf7 8498 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8499 (sha256
8500 (base32
8501 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8502 (build-system glib-or-gtk-build-system)
8503 (arguments
8504 `(#:tests? #f ; Tests appear to require the network.
8505 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8506 #:configure-flags '("--disable-gtk-doc"
8507 "--disable-static"
8508 "--enable-introspection")))
8509 (native-inputs
8510 `(("pkg-config" ,pkg-config)
8511 ("gobject-introspection" ,gobject-introspection)))
8512 (inputs
8513 `(("json-glib" ,json-glib)
14c297fd 8514 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8515 ("rest" ,rest)))
8516 (synopsis "GLib/GObject wrapper for the Facebook API")
8517 (description "This library allows you to use the Facebook API from
8518GLib/GObject code.")
8519 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8520 (license license:lgpl2.1+)))
3920868c 8521
8522(define-public libgnomekbd
8523 (package
8524 (name "libgnomekbd")
70f2b0f9 8525 (version "3.26.1")
3920868c 8526 (source (origin
8527 (method url-fetch)
d47fa82d 8528 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8529 (version-major+minor version) "/"
d47fa82d 8530 "libgnomekbd-" version ".tar.xz"))
3920868c 8531 (sha256
8532 (base32
70f2b0f9 8533 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8534 (build-system gnu-build-system)
8535 (native-inputs
8536 `(("pkg-config" ,pkg-config)
8537 ("glib" ,glib "bin")
8538 ("intltool" ,intltool)))
8539 (propagated-inputs
8540 ;; Referred to in .h files and .pc.
8541 `(("glib" ,glib)
8542 ("gtk+" ,gtk+)
8543 ("libxklavier" ,libxklavier)))
8544 (home-page "https://www.gnome.org")
8545 (synopsis "GNOME keyboard configuration library")
8546 (description
8547 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8548environment, which can notably display keyboard layouts.")
8549 (license license:lgpl2.0+)))
85327d0d 8550
8551;;; This package is no longer maintained:
8552;;; https://wiki.gnome.org/Attic/LibUnique
8553;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8554;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8555(define-public libunique
8556 (package
8557 (name "libunique")
8558 (version "3.0.2")
8559 (source (origin
8560 (method url-fetch)
8561 (uri (string-append "mirror://gnome/sources/" name "/"
8562 (version-major+minor version) "/"
8563 name "-" version ".tar.xz"))
8564 (sha256
8565 (base32
8566 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8567 (build-system glib-or-gtk-build-system)
8568 (arguments
8569 `(#:configure-flags '("--disable-static"
8570 "--disable-dbus" ; use gdbus
8571 "--enable-introspection")))
8572 (native-inputs
8573 `(("pkg-config" ,pkg-config)
8574 ("gobject-introspection" ,gobject-introspection)
8575 ("glib:bin" ,glib "bin")
8576 ("gtk-doc" ,gtk-doc)))
8577 (propagated-inputs
8578 ;; Referred to in .h files and .pc.
8579 `(("gtk+" ,gtk+)))
8580 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8581 (synopsis "Library for writing single instance applications")
8582 (description
8583 "Libunique is a library for writing single instance applications. If you
8584launch a single instance application twice, the second instance will either just
8585quit or will send a message to the running instance. Libunique makes it easy to
8586write this kind of application, by providing a base class, taking care of all
8587the IPC machinery needed to send messages to a running instance, and also
8588handling the startup notification side.")
8589 (license license:lgpl2.1+)))
54021cd8
RS
8590
8591(define-public gnome-calculator
8592 (package
8593 (name "gnome-calculator")
4cb09502 8594 (version "3.34.1")
54021cd8
RS
8595 (source
8596 (origin
8597 (method url-fetch)
8598 (uri (string-append "mirror://gnome/sources/" name "/"
8599 (version-major+minor version) "/"
8600 name "-" version ".tar.xz"))
8601 (sha256
8602 (base32
4cb09502 8603 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8604 (build-system meson-build-system)
8605 (arguments '(#:glib-or-gtk? #t))
54021cd8 8606 (native-inputs
4cb09502
MB
8607 `(("gettext" ,gettext-minimal)
8608 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8609 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8610 ("itstool" ,itstool)
2d475910 8611 ("vala" ,vala)
54021cd8
RS
8612 ("pkg-config" ,pkg-config)))
8613 (inputs
112e9083 8614 `(("glib" ,glib)
07ace641 8615 ("gtksourceview" ,gtksourceview)
4cb09502 8616 ("libgee" ,libgee)
54021cd8 8617 ("libsoup" ,libsoup)
112e9083 8618 ("libxml2" ,libxml2)
2c2da7ec 8619 ("mpc" ,mpc)
54021cd8
RS
8620 ("mpfr" ,mpfr)))
8621 (home-page "https://wiki.gnome.org/Apps/Calculator")
8622 (synopsis "Desktop calculator")
8623 (description
8624 "Calculator is an application that solves mathematical equations and
8625is suitable as a default application in a Desktop environment.")
8626 (license license:gpl3)))
0bd69759
RS
8627
8628(define-public xpad
8629 (package
8630 (name "xpad")
c85626bb 8631 (version "5.1.0")
0bd69759
RS
8632 (source
8633 (origin
8634 (method url-fetch)
08fda9c6
R
8635 (uri (string-append "https://launchpad.net/xpad/trunk/"
8636 version "/+download/"
0bd69759
RS
8637 name "-" version ".tar.bz2"))
8638 (sha256
8639 (base32
c85626bb 8640 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8641 (build-system gnu-build-system)
8642 (native-inputs
08fda9c6
R
8643 `(("autoconf" ,autoconf)
8644 ("automake" ,automake)
8645 ("gtk+:bin" ,gtk+ "bin")
8646 ("intltool" ,intltool)
0bd69759
RS
8647 ("pkg-config" ,pkg-config)))
8648 (inputs
c72647fb 8649 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8650 ("libsm" ,libsm)))
8651 (home-page "https://wiki.gnome.org/Apps/Xpad")
8652 (synopsis "Virtual sticky note")
8653 (description
8654 "Xpad is a sticky note that strives to be simple, fault tolerant,
8655and customizable. Xpad consists of independent pad windows, each is
8656basically a text box in which notes can be written.")
8657 (license license:gpl3+)))
3ad7dce1
RS
8658
8659(define-public gucharmap
c60063ea
RW
8660 (let ((unicode-files
8661 '(("Blocks.txt"
1f8b5515 8662 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8663 ("DerivedAge.txt"
1f8b5515 8664 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8665 ("NamesList.txt"
1f8b5515 8666 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8667 ("Scripts.txt"
1f8b5515 8668 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8669 ("UnicodeData.txt"
1f8b5515 8670 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8671 ("Unihan.zip"
1f8b5515 8672 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8673 (package
8674 (name "gucharmap")
1f8b5515 8675 (version "12.0.1")
c60063ea
RW
8676 (source
8677 (origin
8678 (method url-fetch)
8679 (uri (string-append "mirror://gnome/sources/" name "/"
8680 (version-major+minor version) "/"
8681 name "-" version ".tar.xz"))
8682 (sha256
8683 (base32
1f8b5515 8684 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8685 (build-system glib-or-gtk-build-system)
8686 (arguments
8687 `(#:modules ((ice-9 match)
8688 (guix build glib-or-gtk-build-system)
8689 (guix build utils))
8690 #:configure-flags
8691 (list "--with-unicode-data=../unicode-data")
8692 #:phases
8693 (modify-phases %standard-phases
8694 (add-after 'unpack 'prepare-unicode-data
8695 (lambda* (#:key inputs #:allow-other-keys)
8696 (mkdir-p "../unicode-data")
8697 (with-directory-excursion "../unicode-data"
8698 (for-each (match-lambda
8699 ((file _)
8700 (install-file (assoc-ref inputs file) ".")))
8701 ',unicode-files))
8702 #t)))))
8703 (native-inputs
8704 `(("desktop-file-utils" ,desktop-file-utils)
8705 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8706 ("gobject-introspection" ,gobject-introspection)
8707 ("intltool" ,intltool)
8708 ("itstool" ,itstool)
8709 ("pkg-config" ,pkg-config)
8710 ,@(map (match-lambda
8711 ((file hash)
8712 `(,file
8713 ,(origin
8714 (method url-fetch)
8715 (uri (string-append
1f8b5515 8716 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8717 file))
8718 (sha256 (base32 hash))))))
8719 unicode-files)
8720 ("unzip" ,unzip)))
8721 (inputs
8722 `(("gtk+" ,gtk+)
8723 ("xmllint" ,libxml2)))
8724 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8725 (synopsis "Unicode character picker and font browser")
8726 (description
8727 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8728characters and categories for the installed fonts, and to examine their
8729detailed properties. It is an easy way to find the character you might
8730only know by its Unicode name or code point.")
c60063ea 8731 (license license:gpl3+))))
04ce840a
RS
8732
8733(define-public bluefish
8734 (package
8735 (name "bluefish")
290fe81d 8736 (version "2.2.11")
04ce840a
RS
8737 (source
8738 (origin
8739 (method url-fetch)
8740 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8741 "bluefish-" version ".tar.gz"))
04ce840a 8742 (sha256
290fe81d 8743 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8744 (build-system gnu-build-system)
8745 (native-inputs
8746 `(("desktop-file-utils" ,desktop-file-utils)
8747 ("intltool" ,intltool)
8748 ("pkg-config" ,pkg-config)))
8749 (inputs
8750 `(("enchant" ,enchant)
8751 ("gtk+" ,gtk+)
290fe81d 8752 ("python" ,python-wrapper)
04ce840a
RS
8753 ("xmllint" ,libxml2)
8754 ("gucharmap" ,gucharmap)))
8755 (home-page "http://bluefish.openoffice.nl")
8756 (synopsis "Web development studio")
8757 (description
8758 "Bluefish is an editor targeted towards programmers and web developers,
8759with many options to write web sites, scripts and other code.
8760Bluefish supports many programming and markup languages.")
8761 (license license:gpl3+)))
1f6a73ee
RS
8762
8763(define-public gnome-system-monitor
8764 (package
8765 (name "gnome-system-monitor")
083cffaf 8766 (version "3.32.1")
1f6a73ee
RS
8767 (source
8768 (origin
8769 (method url-fetch)
8770 (uri (string-append "mirror://gnome/sources/" name "/"
8771 (version-major+minor version) "/"
8772 name "-" version ".tar.xz"))
8773 (sha256
8774 (base32
083cffaf 8775 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8776 (build-system meson-build-system)
8777 (arguments
8778 '(#:glib-or-gtk? #t
8779 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8780 (native-inputs
8781 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8782 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8783 ("intltool" ,intltool)
8784 ("itstool" ,itstool)
8785 ("libgtop" ,libgtop)
4985d9aa 8786 ("polkit" ,polkit)
1f6a73ee
RS
8787 ("pkg-config" ,pkg-config)))
8788 (inputs
8789 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8790 ("gtk+" ,gtk+)
8791 ("gtkmm" ,gtkmm)
8792 ("librsvg" ,librsvg)
4985d9aa
RW
8793 ("libxml2" ,libxml2)
8794 ("libwnck" ,libwnck)))
1f6a73ee
RS
8795 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8796 (synopsis "Process viewer and system resource monitor for GNOME")
8797 (description
8798 "GNOME System Monitor is a GNOME process viewer and system monitor with
8799an attractive, easy-to-use interface. It has features, such as a tree view
8800for process dependencies, icons for processes, the ability to hide processes,
8801graphical time histories of CPU/memory/swap usage and the ability to
8802kill/reinice processes.")
8803 (license license:gpl2+)))
3e00ac47
SB
8804
8805(define-public python-pyatspi
8806 (package
8807 (name "python-pyatspi")
4f937a32 8808 (version "2.34.0")
3e00ac47
SB
8809 (source (origin
8810 (method url-fetch)
8811 (uri (string-append
8812 "mirror://gnome/sources/pyatspi/"
8813 (version-major+minor version)
8814 "/pyatspi-" version ".tar.xz"))
8815 (sha256
8816 (base32
4f937a32 8817 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8818 (build-system gnu-build-system)
b95af3f6
JL
8819 (arguments
8820 `(#:phases
8821 (modify-phases %standard-phases
8822 (add-before 'build 'fix-atk-load
8823 (lambda _
8824 (substitute* "pyatspi/__init__.py"
8825 (("from gi.repository import Atspi")
8826 "gi.require_version('Gtk', '3.0')
8827from gi.repository import Gtk
8828from gi.repository import Atspi"))
8829 #t)))))
3e00ac47
SB
8830 (native-inputs
8831 `(("pkg-config" ,pkg-config)))
8832 (inputs
8833 `(("python" ,python)
8834 ("python-pygobject" ,python-pygobject)))
8835 (synopsis "Python client bindings for D-Bus AT-SPI")
8836 (home-page "https://wiki.linuxfoundation.org/accessibility\
8837/atk/at-spi/at-spi_on_d-bus")
8838 (description
8839 "This package includes a python client library for the AT-SPI D-Bus
8840accessibility infrastructure.")
8841 (license license:lgpl2.0)
8842 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8843
8844(define-public orca
8845 (package
8846 (name "orca")
30e76da1 8847 (version "3.34.1")
53201c0d
SB
8848 (source (origin
8849 (method url-fetch)
8850 (uri (string-append
8851 "mirror://gnome/sources/" name "/"
8852 (version-major+minor version) "/"
8853 name "-" version ".tar.xz"))
8854 (sha256
8855 (base32
30e76da1 8856 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
8857 (build-system glib-or-gtk-build-system)
8858 (arguments
8859 '(#:phases
8860 (modify-phases %standard-phases
8861 (add-before 'configure 'qualify-xkbcomp
8862 (lambda* (#:key inputs #:allow-other-keys)
8863 (let ((xkbcomp (string-append
8864 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8865 (substitute* "src/orca/orca.py"
8866 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8867 #t))
8868 (add-after 'install 'wrap-orca
8869 (lambda* (#:key outputs #:allow-other-keys)
8870 (let* ((out (assoc-ref outputs "out"))
8871 (prog (string-append out "/bin/orca")))
8872 (wrap-program prog
8873 `("GI_TYPELIB_PATH" ":" prefix
8874 (,(getenv "GI_TYPELIB_PATH")))
8875 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8876 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8877 `("PYTHONPATH" ":" prefix
8878 (,(getenv "PYTHONPATH")))))
8879 #t)))))
8880 (native-inputs
8881 `(("intltool" ,intltool)
8882 ("itstool" ,itstool)
8883 ("pkg-config" ,pkg-config)
8884 ("xmllint" ,libxml2)))
8885 (inputs
8886 `(("at-spi2-atk" ,at-spi2-atk)
8887 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8888 ("gstreamer" ,gstreamer)
8889 ("gst-plugins-base" ,gst-plugins-base)
8890 ("gst-plugins-good" ,gst-plugins-good)
8891 ("gtk+" ,gtk+)
8892 ("python" ,python)
8893 ("python-pygobject" ,python-pygobject)
8894 ("python-pyatspi" ,python-pyatspi)
8895 ("python-speechd" ,speech-dispatcher)
8896 ("xkbcomp" ,xkbcomp)))
8897 (synopsis
8898 "Screen reader for individuals who are blind or visually impaired")
8899 (home-page "https://wiki.gnome.org/Projects/Orca")
8900 (description
8901 "Orca is a screen reader that provides access to the graphical desktop
8902via speech and refreshable braille. Orca works with applications and toolkits
8903that support the Assistive Technology Service Provider Interface (AT-SPI).")
8904 (license license:lgpl2.1+)))
411ba511
LC
8905
8906(define-public gspell
8907 (package
8908 (name "gspell")
7a6bbe9b 8909 (version "1.8.2")
411ba511
LC
8910 (source (origin
8911 (method url-fetch)
8912 (uri (string-append "mirror://gnome/sources/" name "/"
8913 (version-major+minor version) "/"
8914 name "-" version ".tar.xz"))
8915 (sha256
8916 (base32
7a6bbe9b 8917 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8918 (patches (search-patches "gspell-dash-test.patch"))))
8919 (build-system glib-or-gtk-build-system)
8920 (arguments
d0f50164 8921 '(#:configure-flags (list "--enable-vala")
8922 #:phases
411ba511
LC
8923 (modify-phases %standard-phases
8924 (add-before 'check 'pre-check
8925 (lambda* (#:key inputs #:allow-other-keys)
8926 ;; Tests require a running X server.
8927 (system "Xvfb :1 &")
8928 (setenv "DISPLAY" ":1")
8929
8930 ;; For the missing /etc/machine-id.
8931 (setenv "DBUS_FATAL_WARNINGS" "0")
8932
8933 ;; Allow Enchant and its Aspell backend to find the en_US
8934 ;; dictionary.
8935 (setenv "ASPELL_DICT_DIR"
8936 (string-append (assoc-ref inputs "aspell-dict-en")
8937 "/lib/aspell"))
8938 #t)))))
8939 (inputs
eccd35be 8940 `(("gtk+" ,gtk+)
a801ae4c
TGR
8941 ("glib" ,glib)
8942 ("iso-codes" ,iso-codes)))
411ba511
LC
8943 (native-inputs
8944 `(("glib" ,glib "bin")
26ba3f07 8945 ("gobject-introspection" ,gobject-introspection)
411ba511 8946 ("pkg-config" ,pkg-config)
d0f50164 8947 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
8948 ("xmllint" ,libxml2)
8949
8950 ;; For tests.
a801ae4c 8951 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8952 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8953 (propagated-inputs
9b1bb757 8954 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8955 (home-page "https://wiki.gnome.org/Projects/gspell")
8956 (synopsis "GNOME's alternative spell checker")
8957 (description
8958 "gspell provides a flexible API to add spell-checking to a GTK+
8959application. It provides a GObject API, spell-checking to text entries and
8960text views, and buttons to choose the language.")
8961 (license license:gpl2+)))
d1d739fa
CM
8962
8963(define-public gnome-planner
8964 (package
8965 (name "gnome-planner")
8966 (version "0.14.6")
8967 (source (origin
8968 (method url-fetch)
8969 (uri (string-append "mirror://gnome/sources/planner/"
8970 (version-major+minor version) "/planner-"
8971 version ".tar.xz"))
8972 (sha256
8973 (base32
8974 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8975 (build-system glib-or-gtk-build-system)
8976 (arguments
8977 ;; Disable the Python bindings because the Planner program functions
8978 ;; without them, and (as of 2017-06-13) we have not packaged all of
8979 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8980 `(#:configure-flags
8981 (list "--disable-python"
8982 ,@(if (string=? "aarch64-linux" (%current-system))
8983 '("--build=aarch64-unknown-linux-gnu")
8984 '()))))
d1d739fa
CM
8985 (inputs
8986 `(("libgnomecanvas" ,libgnomecanvas)
8987 ("libgnomeui" ,libgnomeui)
8988 ("libglade" ,libglade)
8989 ("gnome-vfs" ,gnome-vfs)
8990 ("gconf" ,gconf)
8991 ("libxml2" ,libxml2)
8992 ("libxslt" ,libxslt)
8993 ("gtk+" ,gtk+)
8994 ("glib" ,glib)))
8995 (native-inputs
8996 `(("intltool" ,intltool)
8997 ("scrollkeeper" ,scrollkeeper)
8998 ("pkg-config" ,pkg-config)))
8999 (home-page "https://wiki.gnome.org/Apps/Planner")
9000 (synopsis "Project management software for the GNOME desktop")
9001 (description
9002 "GNOME Planner is a project management tool based on the Work Breakdown
9003Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9004the resources, tasks, and constraints that you define, Planner generates
9005various views into a project. For example, Planner can show a Gantt chart of
9006the project. It can show a detailed summary of tasks including their
9007duration, cost, and current progress. It can also show a report of resource
9008utilization that highlights under-utilized and over-utilized resources. These
9009views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9010 (license license:gpl2+)))
64fce637
RS
9011
9012(define-public lollypop
9013 (package
9014 (name "lollypop")
24b5d8f7 9015 (version "1.2.32")
64fce637
RS
9016 (source
9017 (origin
9018 (method url-fetch)
24b5d8f7 9019 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9020 "lollypop-" version ".tar.xz"))
64fce637 9021 (sha256
24b5d8f7 9022 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9023 (build-system meson-build-system)
64fce637 9024 (arguments
7a9543d7
TGR
9025 `(#:imported-modules
9026 (,@%meson-build-system-modules
9027 (guix build python-build-system))
9028 #:modules
9029 ((guix build meson-build-system)
9030 ((guix build python-build-system) #:prefix python:)
9031 (guix build utils))
aa498fc0 9032 #:glib-or-gtk? #t
7a9543d7 9033 #:tests? #f ; no test suite
5fc9b6c1
EF
9034 #:phases
9035 (modify-phases %standard-phases
5fc9b6c1
EF
9036 (add-after 'install 'wrap-program
9037 (lambda* (#:key outputs #:allow-other-keys)
9038 (let ((out (assoc-ref outputs "out"))
9039 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9040 (wrap-program (string-append out "/bin/lollypop")
9041 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9042 #t))
8ac8b3b3 9043 (add-after 'install 'wrap-python
7a9543d7 9044 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9045 (native-inputs
9046 `(("intltool" ,intltool)
9047 ("itstool" ,itstool)
aa498fc0
TD
9048 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9049 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9050 ("pkg-config" ,pkg-config)))
9051 (inputs
9052 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9053 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9054 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9055 ("libnotify" ,libnotify)
9056 ("libsecret" ,libsecret)
9057 ("libsoup" ,libsoup)
9058 ("python" ,python)
9059 ("python-beautifulsoup4" ,python-beautifulsoup4)
9060 ("python-gst" ,python-gst)
d029afdd 9061 ("python-pil" ,python-pillow)
64fce637 9062 ("python-pycairo" ,python-pycairo)
cc9c83c5 9063 ("python-pygobject" ,python-pygobject)
64fce637
RS
9064 ("python-pylast" ,python-pylast)
9065 ("totem-pl-parser" ,totem-pl-parser)
9066 ("webkitgtk" ,webkitgtk)))
9067 (propagated-inputs
9068 `(;; gst-plugins-base is required to start Lollypop,
9069 ;; the others are required to play streaming.
64fce637
RS
9070 ("gst-plugins-good" ,gst-plugins-good)
9071 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9072 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9073 (synopsis "GNOME music playing application")
9074 (description
9075 "Lollypop is a music player designed to play well with GNOME desktop.
9076Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9077from artists and tracks from the web. It also fetches cover artworks
9078automatically and it can stream songs from online music services and charts.")
9079 (license license:gpl3+)))
d831d49d
AW
9080
9081(define-public gnome-video-effects
9082 (package
9083 (name "gnome-video-effects")
9084 (version "0.4.3")
9085 (source (origin
9086 (method url-fetch)
9087 (uri (string-append "mirror://gnome/sources/" name "/"
9088 (version-major+minor version) "/" name "-"
9089 version ".tar.xz"))
9090 (sha256
9091 (base32
9092 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9093 (build-system glib-or-gtk-build-system)
9094 (arguments
9095 `(#:out-of-source? #f))
9096 (native-inputs
9097 `(("glib:bin" ,glib "bin")
9098 ("intltool" ,intltool)
9099 ("gettext" ,gettext-minimal)
9100 ("pkg-config" ,pkg-config)))
9101 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9102 (synopsis "Video effects for Cheese and other GNOME applications")
9103 (description
9104 "A collection of GStreamer video filters and effects to be used in
9105photo-booth-like software, such as Cheese.")
9106 (license license:gpl2+)))
3511c780
AW
9107
9108(define-public cheese
9109 (package
9110 (name "cheese")
3a7e066f 9111 (version "3.34.0")
3511c780
AW
9112 (source (origin
9113 (method url-fetch)
9114 (uri (string-append "mirror://gnome/sources/" name "/"
9115 (version-major+minor version) "/" name "-"
9116 version ".tar.xz"))
9117 (sha256
9118 (base32
3a7e066f 9119 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9120 (arguments
3a7e066f
KK
9121 `(#:glib-or-gtk? #t
9122 ;; Tests require GDK.
9123 #:tests? #f
3511c780
AW
9124 #:phases
9125 (modify-phases %standard-phases
3a7e066f 9126 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9127 (lambda _
9128 ;; Don't create 'icon-theme.cache'
3a7e066f 9129 (substitute* "meson_post_install.py"
3511c780
AW
9130 (("gtk-update-icon-cache") (which "true")))
9131 #t))
9132 (add-after 'install 'wrap-cheese
9133 (lambda* (#:key inputs outputs #:allow-other-keys)
9134 (let ((out (assoc-ref outputs "out"))
9135 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9136 (wrap-program (string-append out "/bin/cheese")
9137 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9138 #t)))))
3a7e066f 9139 (build-system meson-build-system)
3511c780 9140 (native-inputs
3a7e066f
KK
9141 `(("docbook-xsl" ,docbook-xsl)
9142 ("glib:bin" ,glib "bin")
9143 ("gtk-doc" ,gtk-doc)
3511c780
AW
9144 ("intltool" ,intltool)
9145 ("itstool" ,itstool)
9146 ("libxml2" ,libxml2)
3a7e066f 9147 ("libxslt" ,libxslt)
3511c780
AW
9148 ("pkg-config" ,pkg-config)
9149 ("vala" ,vala)))
9150 (propagated-inputs
6a19f03e
RW
9151 `(("gnome-video-effects" ,gnome-video-effects)
9152 ("clutter" ,clutter)
3511c780
AW
9153 ("clutter-gst" ,clutter-gst)
9154 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9155 ("libcanberra" ,libcanberra)
3511c780
AW
9156 ("gdk-pixbuf" ,gdk-pixbuf)
9157 ("glib" ,glib)
6a19f03e
RW
9158 ("gstreamer" ,gstreamer)))
9159 (inputs
9160 `(("gnome-desktop" ,gnome-desktop)
3511c780 9161 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9162 ("gst-plugins-base" ,gst-plugins-base)
9163 ("gst-plugins-bad" ,gst-plugins-bad)
9164 ("gtk+" ,gtk+)
3511c780
AW
9165 ("libx11" ,libx11)
9166 ("libxtst" ,libxtst)))
9167 (home-page "https://wiki.gnome.org/Apps/Cheese")
9168 (synopsis "Webcam photo booth software for GNOME")
9169 (description
9170 "Cheese uses your webcam to take photos and videos. Cheese can also
9171apply fancy special effects and lets you share the fun with others.")
9172 (license license:gpl2+)))
3c5dbd2b 9173
9174(define-public sound-juicer
9175 (package
9176 (name "sound-juicer")
9177 (version "3.24.0")
9178 (source
9179 (origin
9180 (method url-fetch)
9181 (uri (string-append "mirror://gnome/sources/" name "/"
9182 (version-major+minor version) "/"
9183 name "-" version ".tar.xz"))
9184 (sha256
9185 (base32
9186 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9187 (build-system glib-or-gtk-build-system)
9188 (native-inputs
9189 `(("desktop-file-utils" ,desktop-file-utils)
9190 ("intltool" ,intltool)
9191 ("itstool" ,itstool)
9192 ("pkg-config" ,pkg-config)
9193 ("xmllint" ,libxml2)))
9194 (inputs
9195 `(("gtk+" ,gtk+)
9196 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9197 ("gstreamer" ,gstreamer)
9198 ("gst-plugins-base" ,gst-plugins-base)
9199 ("gst-plugins-good" ,gst-plugins-good)
9200 ("iso-codes" ,iso-codes)
9201 ("libbrasero-media3" ,brasero)
9202 ("libcanberra" ,libcanberra)
9203 ("libdiscid" ,libdiscid)
9204 ("libmusicbrainz" ,libmusicbrainz)
9205 ("neon" ,neon)))
9206 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9207 (synopsis "Audio music cd ripper")
9208 (description "Sound Juicer extracts audio from compact discs and convert it
9209into audio files that a personal computer or digital audio player can play.
9210It supports ripping to any audio codec supported by a GStreamer plugin, such as
9211mp3, Ogg Vorbis and FLAC")
9212 (license license:gpl2+)))
4e3fdeb7 9213
0d3f1708
CB
9214(define-public soundconverter
9215 (package
9216 (name "soundconverter")
7f4b45a3 9217 (version "3.0.2")
0d3f1708
CB
9218 (source
9219 (origin
9220 (method url-fetch)
9221 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9222 version "/+download/"
9223 "soundconverter-" version ".tar.xz"))
9224
9225 (sha256
7f4b45a3 9226 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
9227 (build-system glib-or-gtk-build-system)
9228 (arguments
9229 `(#:imported-modules ((guix build python-build-system)
9230 (guix build glib-or-gtk-build-system)
9231 ,@%gnu-build-system-modules)
9232
9233 #:modules ((guix build glib-or-gtk-build-system)
9234 (guix build utils)
9235 ((guix build gnu-build-system) #:prefix gnu:)
9236 ((guix build python-build-system) #:prefix python:))
9237
9238 #:phases
9239 (modify-phases %standard-phases
0d3f1708
CB
9240 (add-after 'install 'wrap-soundconverter-for-python
9241 (assoc-ref python:%standard-phases 'wrap))
9242 (add-after 'install 'wrap-soundconverter
9243 (lambda* (#:key inputs outputs #:allow-other-keys)
9244 (let ((out (assoc-ref outputs "out"))
9245 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9246 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9247 (wrap-program (string-append out "/bin/soundconverter")
9248 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9249 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9250 #t)))))
9251 (native-inputs
9252 `(("intltool" ,intltool)
9253 ("pkg-config" ,pkg-config)
9254 ("glib:bin" ,glib "bin")))
9255 (inputs
9256 `(("gtk+" ,gtk+)
9257 ("python" ,python)
9258 ("python-pygobject" ,python-pygobject)
9259 ("gstreamer" ,gstreamer)
9260 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9261 (home-page "https://soundconverter.org/")
0d3f1708
CB
9262 (synopsis "Convert between audio formats with a graphical interface")
9263 (description
9264 "SoundConverter supports converting between many audio formats including
9265Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9266configurable file renaming. ")
9267 (license license:gpl3)))
9268
4e3fdeb7 9269(define-public workrave
89f2d736
TGR
9270 (package
9271 (name "workrave")
52fc6508 9272 (version "1.10.42")
89f2d736
TGR
9273 (source
9274 (origin
9275 (method git-fetch)
9276 (uri (git-reference
9277 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9278 (commit (string-append "v" (string-map
9279 (match-lambda (#\. #\_) (chr chr))
9280 version)))))
89f2d736
TGR
9281 (file-name (git-file-name name version))
9282 (sha256
52fc6508 9283 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9284 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9285 (arguments
9286 ;; The only tests are maintainer tests (in po/), which fail.
9287 `(#:tests? #f))
d1c96847
MC
9288 (inputs `(("glib" ,glib)
9289 ("gtk+" ,gtk+)
9290 ("gdk-pixbuf" ,gdk-pixbuf)
9291 ("gtkmm" ,gtkmm)
9292 ("glibmm" ,glibmm)
9293 ("libx11" ,libx11)
9294 ("libxtst" ,libxtst)
9295 ("dconf" ,dconf)
9296 ("libice" ,libice)
9297 ("libsm" ,libsm)
9298 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9299 (native-inputs `(("boost" ,boost)
89f2d736 9300 ("pkg-config" ,pkg-config)
f2d97d57 9301 ("gettext" ,gettext-minimal)
89f2d736
TGR
9302 ("autoconf" ,autoconf)
9303 ("autoconf-archive" , autoconf-archive)
9304 ("automake" ,automake)
9305 ("libtool" ,libtool)
9306 ("intltool" ,intltool)
89f2d736 9307 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9308 ("python3" ,python-3)
9309 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9310 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9311 (description
9312 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9313repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9314micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9315 (home-page "http://www.workrave.org")
9316 (license license:gpl3+)))
312afa7d
LC
9317
9318(define-public ghex
9319 (package
9320 (name "ghex")
3748992a 9321 (version "3.18.4")
312afa7d
LC
9322 (source (origin
9323 (method url-fetch)
2fbab848 9324 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9325 (version-major+minor version) "/"
2fbab848 9326 "ghex-" version ".tar.xz"))
312afa7d
LC
9327 (sha256
9328 (base32
3748992a
KK
9329 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9330 (build-system meson-build-system)
9331 (arguments
9332 '(#:glib-or-gtk? #t
9333 #:phases
9334 (modify-phases %standard-phases
9335 (add-after 'unpack 'skip-gtk-update-icon-cache
9336 ;; Don't create 'icon-theme.cache'.
9337 (lambda _
9338 (substitute* "meson_post_install.py"
9339 (("gtk-update-icon-cache") (which "true")))
9340 #t)))))
312afa7d
LC
9341 (native-inputs
9342 `(("pkg-config" ,pkg-config)
3748992a 9343 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9344 ("gnome-common" ,gnome-common)
9345 ("which" ,which)
9346 ("intltool" ,intltool)
9347 ("yelp-tools" ,yelp-tools)
2fbab848 9348 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9349 (inputs
9350 `(("atk" ,atk)
9351 ("gtk" ,gtk+)))
9352 (synopsis "GNOME hexadecimal editor")
9353 (description "The GHex program can view and edit files in two ways:
9354hexadecimal or ASCII. It is useful for editing binary files in general.")
9355 (home-page "https://wiki.gnome.org/Apps/Ghex")
9356 (license license:gpl2)))
4b2ed6c2
RW
9357
9358(define-public libdazzle
9359 (package
9360 (name "libdazzle")
c94db354 9361 (version "3.34.1")
4b2ed6c2
RW
9362 (source (origin
9363 (method url-fetch)
687b4909 9364 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9365 (version-major+minor version) "/"
687b4909 9366 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9367 (sha256
9368 (base32
c94db354 9369 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
9370 (build-system meson-build-system)
9371 (arguments
9372 `(#:phases
9373 (modify-phases %standard-phases
4b2ed6c2
RW
9374 (add-before 'check 'pre-check
9375 (lambda _
9376 ;; Tests require a running X server.
9377 (system "Xvfb :1 &")
9378 (setenv "DISPLAY" ":1")
9379 #t)))))
9380 (native-inputs
687b4909 9381 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9382 ("pkg-config" ,pkg-config)
687b4909 9383 ;; For tests.
ff337525 9384 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9385 (inputs
9386 `(("glib" ,glib)
9387 ("gobject-introspection" ,gobject-introspection)
9388 ("gtk+" ,gtk+)
9389 ("vala" ,vala)))
9390 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9391 (synopsis "Companion library to GObject and Gtk+")
9392 (description "The libdazzle library is a companion library to GObject and
9393Gtk+. It provides various features that the authors wish were in the
9394underlying library but cannot for various reasons. In most cases, they are
9395wildly out of scope for those libraries. In other cases, they are not quite
9396generic enough to work for everyone.")
9397 (license license:gpl3+)))
7d3bb433
RW
9398
9399(define-public evolution
9400 (package
9401 (name "evolution")
0662fe86 9402 (version "3.34.2")
7d3bb433
RW
9403 (source (origin
9404 (method url-fetch)
9405 (uri (string-append "mirror://gnome/sources/evolution/"
9406 (version-major+minor version) "/"
9407 "evolution-" version ".tar.xz"))
9408 (sha256
9409 (base32
0662fe86 9410 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
9411 (build-system cmake-build-system)
9412 (arguments
5229bea1
KK
9413 `(#:imported-modules (,@%cmake-build-system-modules
9414 (guix build glib-or-gtk-build-system))
9415 #:modules ((guix build cmake-build-system)
9416 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9417 (guix build utils))
9418 #:configure-flags
7d3bb433 9419 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9420 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9421 ; in four years and cannot be built.
5229bea1
KK
9422 #:phases
9423 (modify-phases %standard-phases
9424 ;; The build system attempts to install user interface modules to the
9425 ;; output directory of the "evolution-data-server" package. This
9426 ;; change redirects that change.
9427 (add-after 'unpack 'patch-ui-module-dir
9428 (lambda* (#:key outputs #:allow-other-keys)
9429 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9430 (("\\$\\{edsuimoduledir\\}")
9431 (string-append (assoc-ref outputs "out")
9432 "/lib/evolution-data-server/ui-modules")))
9433 #t))
9434 (add-after 'install 'glib-or-gtk-compile-schemas
9435 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9436 (add-after 'install 'glib-or-gtk-wrap
9437 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9438 (native-inputs
ad6e168b 9439 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9440 ("pkg-config" ,pkg-config)
9441 ("intltool" ,intltool)
9442 ("itstool" ,itstool)))
9443 (inputs
9444 `(("enchant" ,enchant)
9445 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9446 ("gcr" ,gcr)
ad6e168b 9447 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9448 ("gnome-autoar" ,gnome-autoar)
9449 ("gnome-desktop" ,gnome-desktop)
0662fe86 9450 ("gspell" ,gspell)
7d3bb433
RW
9451 ("highlight" ,highlight)
9452 ("libcanberra" ,libcanberra)
9453 ("libgweather" ,libgweather)
9454 ("libnotify" ,libnotify)
9455 ("libsoup" ,libsoup)
9456 ("nss" ,nss)
9457 ("openldap" ,openldap)
9458 ("webkitgtk" ,webkitgtk)
9459 ("ytnef" ,ytnef)))
9460 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9461 (synopsis "Manage your email, contacts and schedule")
9462 (description "Evolution is a personal information management application
9463that provides integrated mail, calendaring and address book
9464functionality.")
9465 ;; See COPYING for details.
23dbe621 9466 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9467 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9468 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9469
9470(define-public gthumb
9471 (package
9472 (name "gthumb")
8280676b 9473 (version "3.8.2")
169d63f5
AT
9474 (source (origin
9475 (method url-fetch)
9476 (uri (string-append "mirror://gnome/sources/gthumb/"
9477 (version-major+minor version) "/"
9478 "gthumb-" version ".tar.xz"))
9479 (sha256
9480 (base32
8280676b 9481 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9482 (build-system meson-build-system)
9483 (arguments
9484 `(#:glib-or-gtk? #t
9485 #:configure-flags
9486 ;; Ensure the RUNPATH contains all installed library locations.
9487 (list (string-append "-Dc_link_args=-Wl,-rpath="
9488 (assoc-ref %outputs "out")
9489 "/lib/gthumb/extensions")
9490 (string-append "-Dcpp_link_args=-Wl,-rpath="
9491 (assoc-ref %outputs "out")
9492 "/lib/gthumb/extensions"))))
9493 (native-inputs
9494 `(("pkg-config" ,pkg-config)
9495 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9496 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9497 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9498 ("intltool" ,intltool)
9499 ("itstool" ,itstool)))
9500 (inputs
9501 `(("exiv2" ,exiv2)
9502 ("gtk" ,gtk+)
9503 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9504 ("gstreamer" ,gstreamer)
9505 ("clutter" ,clutter)
9506 ("clutter-gst" ,clutter-gst)
9507 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9508 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9509 ("libtiff" ,libtiff)
9510 ("libraw" ,libraw)))
9511 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9512 (synopsis "GNOME image viewer and browser")
9513 (description "GThumb is an image viewer, browser, organizer, editor and
9514advanced image management tool")
9515 (license license:gpl2+)))
08be02be
AT
9516
9517(define-public terminator
9518 (package
9519 (name "terminator")
9520 (version "1.91")
9521 (source (origin
9522 (method url-fetch)
9523 (uri (string-append "https://launchpad.net/" name "/"
9524 "gtk3/" version "/" "+download/"
9525 name "-" version ".tar.gz"))
9526 (sha256
9527 (base32
9528 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9529 (build-system python-build-system)
9530 (native-inputs
9531 `(("intltool" ,intltool)
9532 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9533 ("gettext" ,gettext-minimal)
9534 ("pkg-config" ,pkg-config)))
9535 (inputs
9536 `(("cairo" ,cairo)
9537 ("gobject-introspection" ,gobject-introspection)
96681d4b 9538 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9539 ("python2-pycairo" ,python2-pycairo)
9540 ("python2-pygobject" ,python2-pygobject)
9541 ("python2-psutil" ,python2-psutil)
9542 ("vte" ,vte)))
9543 (arguments
96681d4b
TGR
9544 `(#:python ,python-2 ; Python 3 isn't supported
9545 #:imported-modules ((guix build glib-or-gtk-build-system)
9546 ,@%python-build-system-modules)
9547 #:modules ((guix build python-build-system)
9548 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9549 (guix build utils))
08be02be
AT
9550 #:phases
9551 (modify-phases %standard-phases
9552 (add-after
9553 'install 'wrap-program
9554 (lambda* (#:key outputs #:allow-other-keys)
9555 (let ((prog (string-append (assoc-ref outputs "out")
9556 "/bin/terminator")))
9557 (wrap-program prog
9558 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9559 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9560 #t)))
9561 (add-after 'wrap-program 'glib-or-gtk-wrap
9562 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9563 (home-page "https://gnometerminator.blogspot.com/")
9564 (synopsis "Store and run multiple GNOME terminals in one window")
9565 (description
9566 "Terminator allows you to run multiple GNOME terminals in a grid and
9567+tabs, and it supports drag and drop re-ordering of terminals.")
9568 (license license:gpl2)))
213315d4
JF
9569
9570(define-public libhandy
9571 (package
9572 (name "libhandy")
f6501b9f 9573 (version "0.0.12")
213315d4
JF
9574 (source
9575 (origin
9576 (method git-fetch)
9577 (uri (git-reference
9578 (url "https://source.puri.sm/Librem5/libhandy")
9579 (commit (string-append "v" version))))
9580 (file-name (git-file-name name version))
9581 (sha256
f6501b9f 9582 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9583 (build-system meson-build-system)
9584 (arguments
9585 `(#:configure-flags
9586 '("-Dglade_catalog=disabled"
9587 "-Dgtk_doc=true")
9588 #:phases
9589 (modify-phases %standard-phases
213315d4
JF
9590 (add-before 'check 'pre-check
9591 (lambda _
9592 ;; Tests require a running X server.
9593 (system "Xvfb :1 &")
9594 (setenv "DISPLAY" ":1")
9595 #t)))))
9596 (inputs
9597 `(("gtk+" ,gtk+)))
9598 (native-inputs
9599 `(("glib:bin" ,glib "bin")
9600 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9601 ("vala" ,vala)
9602 ("gtk-doc" ,gtk-doc)
9603 ("pkg-config" ,pkg-config)
9604 ("gettext" ,gettext-minimal)
d41ee146
TGR
9605
9606 ;; Test suite dependencies.
ff337525 9607 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9608 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9609 (home-page "https://source.puri.sm/Librem5/libhandy")
9610 (synopsis "Library full of GTK+ widgets for mobile phones")
9611 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9612interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9613for usage on small and big screens.")
213315d4 9614 (license license:lgpl2.1+)))
a830d14d
GL
9615
9616(define-public libgit2-glib
9617 (package
9618 (name "libgit2-glib")
6448c2e1 9619 (version "0.99.0.1")
a830d14d
GL
9620 (source (origin
9621 (method url-fetch)
9622 (uri (string-append "mirror://gnome/sources/" name "/"
9623 (version-major+minor version) "/"
9624 name "-" version ".tar.xz"))
9625 (sha256
9626 (base32
6448c2e1 9627 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9628 (build-system meson-build-system)
9629 (native-inputs
9630 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9631 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9632 ("pkg-config" ,pkg-config)
9633 ("python-pygobject" ,python-pygobject)
9634 ("python-wrapper" ,python-wrapper)
9635 ("vala" ,vala)))
9636 (inputs
9637 `(("glib" ,glib)
8c6aae46
MB
9638 ("libssh2" ,libssh2)))
9639 (propagated-inputs
9640 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9641 ("libgit2" ,libgit2)))
9642 (synopsis "GLib wrapper around the libgit2 Git access library")
9643 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9644access library. It only implements the core plumbing functions, not really the
9645higher level porcelain stuff.")
9646 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9647 (license license:gpl2+)))
93beace0 9648
08db81c9
LP
9649(define-public gitg
9650 (package
9651 (name "gitg")
9652 (version "3.32.1")
9653 (source (origin
9654 (method url-fetch)
9655 (uri (string-append "mirror://gnome/sources/" name "/"
9656 (version-major+minor version) "/"
9657 name "-" version ".tar.xz"))
9658 (sha256
9659 (base32
9660 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9661 (build-system meson-build-system)
9662 (arguments
9663 `(#:glib-or-gtk? #t
9664 #:phases
9665 (modify-phases %standard-phases
9666 (add-after 'unpack 'disable-post-install-partially
9667 (lambda _
9668 (substitute* "meson_post_install.py"
9669 (("'python'") ; there are no python sources to compile
9670 (string-append "'" (which "true") "'"))
9671 (("gtk-update-icon-cache") (which "true")))
9672 #t))
9673 (add-after 'unpack 'fix-test-sources
9674 (lambda _
9675 (substitute* "tests/libgitg/test-commit.vala"
9676 (("/bin/bash") (which "bash")))
9677 #t))
9678 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9679 (lambda* (#:key outputs #:allow-other-keys)
9680 (let ((prog (string-append (assoc-ref outputs "out")
9681 "/bin/gitg")))
9682 (wrap-program prog
9683 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9684 #t))))))
9685 (inputs
9686 `(("glib" ,glib)
9687 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9688 ("gtk+" ,gtk+)
9689 ("gtkspell3" ,gtkspell3)
9690 ("gtksourceview" ,gtksourceview-3)
9691 ("json-glib" ,json-glib)
9692 ("libdazzle" ,libdazzle)
9693 ("libgee" ,libgee)
08db81c9
LP
9694 ("libgit2-glib" ,libgit2-glib)
9695 ("libpeas" ,libpeas)
9696 ("libsecret" ,libsecret)
9697 ("libsoup" ,libsoup)
9698 ("libxml2" ,libxml2)))
9699 (native-inputs
9700 `(("glib:bin" ,glib "bin")
9701 ("gtk+:bin" ,gtk+ "bin")
9702 ("gobject-introspection" ,gobject-introspection)
9703 ("intltool" ,intltool)
9704 ("pkg-config" ,pkg-config)
9705 ("vala" ,vala)))
9706 (synopsis "Graphical user interface for git")
9707 (description
9708 "gitg is a graphical user interface for git. It aims at being a small,
9709fast and convenient tool to visualize the history of git repositories.
9710Besides visualization, gitg also provides several utilities to manage your
9711repository and commit your work.")
9712 (home-page "https://wiki.gnome.org/Apps/Gitg")
9713 (license license:gpl2+)))
9714
1e600ed0
RW
9715(define-public gamin
9716 (package
9717 (name "gamin")
9718 (version "0.1.10")
9719 (source (origin
9720 (method url-fetch)
9721 (uri (string-append "mirror://gnome/sources/" name "/"
9722 (version-major+minor version) "/"
9723 name "-" version ".tar.bz2"))
9724 (sha256
9725 (base32
9726 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9727 (build-system gnu-build-system)
9728 (arguments
9729 `(#:phases
9730 (modify-phases %standard-phases
9731 (add-after 'unpack 'remove-deprecated-macro
9732 (lambda _
9733 (substitute* '("server/gam_node.c"
9734 "server/gam_subscription.h"
9735 "server/gam_node.h"
9736 "server/gam_subscription.c")
9737 (("G_CONST_RETURN") "const"))
9738 #t)))))
9739 (inputs
9740 `(("glib" ,glib)))
9741 (native-inputs
9742 `(("intltool" ,intltool)
9743 ("pkg-config" ,pkg-config)))
9744 (home-page "https://people.gnome.org/~veillard/gamin/")
9745 (synopsis "File alteration monitor")
9746 (description
9747 "Gamin is a file and directory monitoring system defined to be a subset
9748of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9749library which detects when a file or a directory has been modified.")
1e600ed0
RW
9750 (license license:gpl2+)))
9751
93beace0
DW
9752(define-public gnome-mahjongg
9753 (package
9754 (name "gnome-mahjongg")
9755 (version "3.35.1")
9756 (source (origin
9757 (method git-fetch)
9758 (uri (git-reference
9759 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9760 (commit version)))
9761 (file-name (git-file-name name version))
9762 (sha256
9763 (base32
9764 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9765 (build-system meson-build-system)
9766 (arguments
9767 `(#:glib-or-gtk? #t))
9768 (native-inputs
9769 `(("appstream-glib" ,appstream-glib)
9770 ("gettext" ,gettext-minimal)
9771 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9772 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9773 ("itstool" ,itstool)
9774 ("pkg-config" ,pkg-config)
9775 ("vala" ,vala)))
9776 (propagated-inputs
9777 `(("dconf" ,dconf)))
9778 (inputs
9779 `(("glib" ,glib)
9780 ("gtk+" ,gtk+)
9781 ("librsvg" ,librsvg)))
9782 (synopsis "Mahjongg tile-matching game")
9783 (description "GNOME Mahjongg is a game based on the classic Chinese
9784tile-matching game Mahjong. It features multiple board layouts, tile themes,
9785and a high score table.")
9786 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9787 (license license:gpl2+)))
f825476c 9788
76ea7632
RG
9789(define-public gnome-themes-extra
9790 (package
9791 (name "gnome-themes-extra")
9792 (version "3.28")
9793 (source
9794 (origin
9795 (method url-fetch)
9796 (uri (string-append "mirror://gnome/sources/" name "/"
9797 (version-major+minor version) "/" name "-"
9798 version ".tar.xz"))
9799 (sha256
9800 (base32
9801 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9802 (build-system gnu-build-system)
885424bf
RG
9803 (arguments
9804 '(#:configure-flags
9805 ;; Don't create 'icon-theme.cache'.
9806 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9807 (true (string-append coreutils "/bin/true")))
9808 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9809 (native-inputs
9810 `(("glib:bin" ,glib "bin")
9811 ("intltool" ,intltool)
9812 ("pkg-config" ,pkg-config)))
9813 (inputs
9814 `(("glib" ,glib)
9815 ("gtk+" ,gtk+)
9816 ("gtk+-2" ,gtk+-2)
9817 ("librsvg" ,librsvg)
9818 ("libxml2" ,libxml2)))
9819 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9820 (synopsis "GNOME Extra Themes")
9821 (description "This package provides themes and related elements that don't
9822really fit in other upstream packages. It offers legacy support for GTK+ 2
9823versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9824index files needed for Adwaita to be used outside of GNOME.")
9825 (license license:lgpl2.1+)))
9826
f825476c
LP
9827(define-public polari
9828 (package
9829 (name "polari")
9830 (version "3.32.2")
9831 (source (origin
9832 (method url-fetch)
9833 (uri (string-append "mirror://gnome/sources/polari/"
9834 (version-major+minor version)
9835 "/polari-" version ".tar.xz"))
9836 (sha256
9837 (base32
9838 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9839 (build-system meson-build-system)
9840 (arguments
9841 `(#:glib-or-gtk? #t
9842 #:phases
9843 (modify-phases %standard-phases
9844 (add-after 'unpack 'skip-gtk-update-icon-cache
9845 (lambda _
9846 (substitute* "meson/meson-postinstall.sh"
9847 (("gtk-update-icon-cache") (which "true")))
9848 #t))
9849 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9850 (lambda* (#:key outputs #:allow-other-keys)
9851 (let ((prog (string-append (assoc-ref outputs "out")
9852 "/bin/polari")))
9853 (wrap-program prog
9854 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9855 #t))))))
9856 (inputs
9857 `(("glib" ,glib)
9858 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9859 ("gspell" ,gspell)
9860 ("gtk+" ,gtk+)
9861 ("gjs" ,gjs)
9862 ("libsecret" ,libsecret)
9863 ("libsoup" ,libsoup)
9864 ("telepathy-glib" ,telepathy-glib)
9865 ("telepathy-logger" ,telepathy-logger)))
9866 (native-inputs
9867 `(("glib:bin" ,glib "bin")
9868 ("gobject-introspection" ,gobject-introspection)
9869 ("intltool" ,intltool)
9870 ("pkg-config" ,pkg-config)
9871 ("yelp-tools" ,yelp-tools)))
9872 (propagated-inputs
9873 `(("telepathy-idle" ,telepathy-idle)
9874 ("telepathy-mission-control" ,telepathy-mission-control)))
9875 (synopsis "Simple IRC Client")
9876 (description
9877 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9878integrate seamlessly with the GNOME desktop.")
9879 (home-page "https://wiki.gnome.org/Apps/Polari")
9880 (license license:gpl2+)))
59d4c8c2
PN
9881
9882(define-public gnome-boxes
9883 (package
9884 (name "gnome-boxes")
9885 (version "3.35.91")
9886 (source
9887 (origin
9888 (method url-fetch)
9889 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9890 (version-major+minor version) "/"
9891 "gnome-boxes-" version ".tar.xz"))
9892 (sha256
9893 (base32
9894 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9895 (build-system meson-build-system)
9896 (arguments
9897 '(#:glib-or-gtk? #t
9898 #:configure-flags (list "-Drdp=false"
9899 (string-append "-Dc_link_args=-Wl,-rpath="
9900 (assoc-ref %outputs "out")
9901 "/lib/gnome-boxes"))))
9902 (native-inputs
9903 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9904 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9905 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9906 ("itstool" ,itstool)
9907 ("intltool" ,intltool)
9908 ("vala" ,vala)
9909 ("pkg-config" ,pkg-config)))
9910 (inputs
9911 `(("libarchive" ,libarchive)
9912 ("gtk" ,gtk+)
9913 ("gtk-vnc" ,gtk-vnc)
9914 ("libosinfo" ,libosinfo)
9915 ("libsecret" ,libsecret)
9916 ("libsoup" ,libsoup)
9917 ("libusb" ,libusb)
9918 ("libvirt" ,libvirt)
9919 ("libvirt-glib" ,libvirt-glib)
9920 ("libxml" ,libxml2)
9921 ("spice-gtk" ,spice-gtk)
9922 ("sparql-query" ,sparql-query)
9923 ("vte" ,vte)
9924 ("webkitgtk" ,webkitgtk)
9925 ("tracker" ,tracker)
9926 ("libgudev" ,libgudev)))
9927 (home-page "https://wiki.gnome.org/Apps/Boxes")
9928 (synopsis "View, access, and manage remote and virtual systems")
9929 (description "GNOME Boxes is a simple application to view, access, and
9930manage remote and virtual systems.")
9931 (license (list
9932 ;; For data/icons/empty-boxes.png.
9933 license:cc-by2.0
9934 ;; For all others.
9935 license:lgpl2.0+))))
0e26c3cf 9936
9937(define-public geary
9938 (package
9939 (name "geary")
9940 (version "3.34.1")
9941 (source (origin
9942 (method git-fetch)
9943 (uri (git-reference
9944 (url "https://gitlab.gnome.org/GNOME/geary")
9945 (commit version)))
9946 (file-name (git-file-name name version))
9947 (sha256
9948 (base32
9949 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9950 (build-system meson-build-system)
9951 (arguments
9952 `(#:glib-or-gtk? #t
9953 #:phases (modify-phases %standard-phases
9954 (add-after 'unpack 'disable-failing-tests
9955 (lambda _
9956 (substitute* "test/meson.build"
9957 (("test\\('client-tests', geary_test_client_bin\\)")
9958 ""))
9959 #t))
9960 (add-after 'unpack 'disable-postinstall-script
9961 (lambda _
9962 (substitute* "meson.build"
9963 (("meson.add_install_script\\(\
9964join_paths\\('build-aux', 'post_install.py'\\)\\)")
9965 ""))
9966 #t))
9967 (add-before 'check 'setup-xvfb
9968 (lambda _
9969 (system "Xvfb :1 &")
9970 (setenv "DISPLAY" ":1")
9971 #t)))))
9972 (inputs
9973 `(("enchant" ,enchant)
9974 ("folks" ,folks)
9975 ("gcr" ,gcr)
9976 ("glib" ,glib)
9977 ("gmime" ,gmime-2.6)
9978 ("gnome-online-accounts:lib"
9979 ,gnome-online-accounts "lib")
9980 ("gspell" ,gspell)
9981 ("gtk+" ,gtk+)
9982 ("iso-codes" ,iso-codes)
9983 ("json-glib" ,json-glib)
9984 ("libcanberra" ,libcanberra)
9985 ("libgee" ,libgee)
9986 ("libhandy" ,libhandy)
9987 ("libpeas" ,libpeas)
9988 ("libsecret" ,libsecret)
9989 ("libunwind" ,libunwind)
9990 ("sqlite" ,sqlite)
9991 ("webkitgtk" ,webkitgtk)
9992 ("ytnef" ,ytnef)))
9993 (native-inputs
9994 `(("appstream-glib" ,appstream-glib)
9995 ("cmake-minimal" ,cmake-minimal)
9996 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 9997 ("gettext" ,gettext-minimal)
0e26c3cf 9998 ("glib:bin" ,glib "bin")
9999 ("gobject-introspection" ,gobject-introspection)
10000 ("itstool" ,itstool)
10001 ("libarchive" ,libarchive)
10002 ("libxml2" ,libxml2)
10003 ("pkg-config" ,pkg-config)
10004 ("vala" ,vala)
10005 ("xvfb" ,xorg-server-for-tests)))
10006 (synopsis "GNOME email application built around conversations")
10007 (description
10008 "Geary collects related messages together into conversations,
10009making it easy to find and follow your discussions. Full-text and keyword
10010search makes it easy to find the email you are looking for. Geary's
10011full-featured composer lets you send rich, styled text with images, links, and
10012lists, but also send lightweight, easy to read text messages. Geary
10013automatically picks up your existing GNOME Online Accounts, and adding more is
10014easy. Geary has a clean, fast, modern interface that works like you want it
10015to.")
10016 (home-page "https://wiki.gnome.org/Apps/Geary")
10017 (license (list
10018 ;; geary
10019 license:lgpl2.1+
10020 ;; icons
10021 license:cc-by3.0
10022 license:cc-by-sa3.0
10023 license:public-domain
10024 ;; snowball
10025 license:bsd-2))))
1a17d21b 10026
21051eb7
VM
10027(define-public glabels
10028 (package
10029 (name "glabels")
10030 (version "3.4.1")
10031 (source
10032 (origin
10033 (method url-fetch)
10034 (uri (string-append "mirror://gnome/sources/" name "/"
10035 (version-major+minor version) "/"
10036 "glabels-" version ".tar.xz"))
10037 (sha256
10038 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10039 (build-system glib-or-gtk-build-system)
10040 (native-inputs
10041 `(("gettext" ,gettext-minimal)
10042 ("glib:bin" ,glib "bin")
10043 ("intltool" ,intltool)
10044 ("itstool" ,itstool)
10045 ("pkg-config" ,pkg-config)))
10046 (inputs
10047 `(("gtk+" ,gtk+)
10048 ("librsvg" ,librsvg)
10049 ("libxml2" ,libxml2)))
10050 (home-page "https://glabels.org/")
10051 (synopsis "Program for creating labels and business cards")
10052 (description
10053 "gLabels is a program for creating labels and business cards. It is
10054designed to work with various laser/ink-jet peel-off label and business
10055card sheets that you’ll find at most office supply stores.")
10056 (license license:gpl3+)))
10057
2cd1de32
BT
10058(define-public libratbag
10059 (package
10060 (name "libratbag")
10061 (version "0.13")
10062 (source
10063 (origin
10064 (method git-fetch)
10065 (uri (git-reference
10066 (url "https://github.com/libratbag/libratbag.git")
10067 (commit (string-append "v" version))))
10068 (file-name (git-file-name name version))
10069 (sha256
10070 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10071 (build-system meson-build-system)
10072 (arguments
10073 `(#:configure-flags
10074 (list "-Dsystemd=false"
10075 "-Dlogind-provider=elogind")
10076 #:phases
10077 (modify-phases %standard-phases
10078 (add-after 'install 'wrap
10079 (lambda* (#:key inputs outputs #:allow-other-keys)
10080 (let* ((out (assoc-ref outputs "out"))
10081 (site (string-append
10082 "/lib/python"
10083 ,(version-major+minor (package-version python))
10084 "/site-packages"))
10085 (evdev (string-append
10086 (assoc-ref inputs "python-evdev") site))
10087 (pygo (string-append
10088 (assoc-ref inputs "python-pygobject") site))
10089 (python-wrap
10090 `("PYTHONPATH" = (,evdev ,pygo))))
10091 (wrap-program (string-append out "/bin/" "ratbagctl")
10092 python-wrap)
10093 #t))))))
10094 (native-inputs
10095 `(("check" ,check)
10096 ("pkg-config" ,pkg-config)
10097 ("swig" ,swig)
10098 ("valgrind" ,valgrind)))
10099 (inputs
10100 `(("glib" ,glib)
10101 ("json-glib" ,json-glib)
10102 ("libevdev" ,libevdev)
10103 ("libsystemd" ,elogind)
10104 ("libunistring" ,libunistring)
10105 ("python-evdev" ,python-evdev)
10106 ("python-pygobject" ,python-pygobject)
10107 ("udev" ,eudev)))
10108 (home-page "https://github.com/libratbag/libratbag")
10109 (synopsis "DBus daemon and utility for configuring gaming mice")
10110 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10111configure input devices, mainly gaming mice. The daemon provides a generic
10112way to access the various features exposed by these mice and abstracts away
10113hardware-specific and kernel-specific quirks. There is also the
10114@command{ratbagctl} command line interface for configuring devices.
10115
10116libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10117Steelseries.
10118
10119The ratbagd DBus service can be enabled by adding the following service to
10120your operating-system definition:
10121
10122 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10123 (license license:expat)))
10124
50d31a40
BT
10125(define-public piper
10126 (package
10127 (name "piper")
10128 (version "0.4")
10129 (source
10130 (origin
10131 (method git-fetch)
10132 (uri (git-reference
10133 (url "https://github.com/libratbag/piper.git")
10134 (commit version)))
10135 (sha256
10136 (base32 "17h06j8lxpbfygq8fzycl7lml4vv7r05bsyhh3gga2hp0zms4mvg"))))
10137 (build-system meson-build-system)
10138 (native-inputs
10139 `(("gettext" ,gettext-minimal)
10140 ("glib:bin" ,glib "bin")
10141 ("gobject-introspection" ,gobject-introspection)
10142 ("pkg-config" ,pkg-config)
10143 ("python-flake8" ,python-flake8)))
10144 (inputs
10145 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10146 ("gtk" ,gtk+)
10147 ("gtk:bin" ,gtk+ "bin")
10148 ("librsvg" ,librsvg)
10149 ("python-evdev" ,python-evdev)
10150 ("python-lxml" ,python-lxml)
10151 ("python-pycairo" ,python-pycairo)
10152 ("python-pygobject" ,python-pygobject)))
10153 (arguments
10154 `(#:imported-modules ((guix build python-build-system)
10155 ,@%meson-build-system-modules)
10156 #:modules (((guix build python-build-system) #:prefix python:)
10157 (guix build meson-build-system)
10158 (guix build utils))
10159 #:phases
10160 (modify-phases %standard-phases
10161 (add-after 'unpack 'dont-update-gtk-icon-cache
10162 (lambda _
10163 (substitute* "meson.build"
10164 (("meson.add_install_script('meson_install.sh')") ""))
10165 #t))
10166 ;; TODO: Switch to wrap-script when it is fixed.
10167 (add-after 'install 'wrap-python
10168 (assoc-ref python:%standard-phases 'wrap))
10169 (add-after 'wrap-python 'wrap
10170 (lambda* (#:key outputs #:allow-other-keys)
10171 (wrap-program
10172 (string-append (assoc-ref outputs "out" )"/bin/piper")
10173 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10174 #t)))))
10175 (home-page "https://github.com/libratbag/piper/")
10176 (synopsis "Configure bindings and LEDs on gaming mice")
10177 (description "Piper is a GTK+ application for configuring gaming mice with
10178onboard configuration for key bindings via libratbag. Piper requires
10179a @command{ratbagd} daemon running with root privileges. It can be run
10180manually as root, but is preferably configured as a DBus service that can
10181launch on demand. This can be configured by enabling the following service,
10182provided there is a DBus service present:
10183
10184 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10185 (license license:gpl2)))
10186
1a17d21b
NG
10187(define-public parlatype
10188 ;; This is one commit away from 2.0, because the latter introduced
10189 ;; a regression in ASR.
10190 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10191 (revision "0"))
10192 (package
10193 (name "parlatype")
10194 (version (git-version "2.0" revision commit))
10195 (source
10196 (origin
10197 (method git-fetch)
10198 (uri (git-reference
10199 (url "https://github.com/gkarsay/parlatype.git")
10200 (commit commit)))
10201 (file-name (git-file-name name version))
10202 (sha256
10203 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10204 (build-system meson-build-system)
10205 (arguments
10206 `(#:glib-or-gtk? #t
10207 #:tests? #f ;require internet access
10208 #:phases
10209 (modify-phases %standard-phases
10210 (add-after 'install 'wrap-parlatype
10211 ;; Add gstreamer plugin provided in this package to system's
10212 ;; plugins.
10213 (lambda* (#:key outputs #:allow-other-keys)
10214 (let* ((out (assoc-ref outputs "out"))
10215 (gst-plugin-path (string-append
10216 out "/lib/gstreamer-1.0/"
10217 ":"
10218 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10219 (wrap-program (string-append out "/bin/parlatype")
10220 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10221 #t)))))
10222 (native-inputs
10223 `(("appstream-glib" ,appstream-glib)
10224 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10225 ("gettext" ,gettext-minimal)
10226 ("glib" ,glib "bin") ;for glib-compile-resources
10227 ("pkg-config" ,pkg-config)
10228 ("yelp-tools" ,yelp-tools)))
10229 (inputs
10230 `(("gst-plugins-base" ,gst-plugins-base)
10231 ("gst-plugins-good" ,gst-plugins-good)
10232 ("gstreamer" ,gstreamer)
10233 ("gtk+" ,gtk+)
10234 ("pocketsphinx" ,pocketsphinx)
10235 ("pulseaudio" ,pulseaudio)
10236 ("sphinxbase" ,sphinxbase)))
10237 (home-page "http://gkarsay.github.io/parlatype/")
10238 (synopsis "GNOME audio player for transcription")
10239 (description "Parlatype is an audio player for the GNOME desktop
10240environment. Its main purpose is the manual transcription of spoken
10241audio files.")
10242 (license license:gpl3+))))
95856a6e
AT
10243
10244(define-public jsonrpc-glib
10245 (package
10246 (name "jsonrpc-glib")
10247 (version "3.34.0")
10248 (source (origin
10249 (method url-fetch)
10250 (uri (string-append "mirror://gnome/sources/" name "/"
10251 (version-major+minor version) "/"
10252 name "-" version ".tar.xz"))
10253 (sha256
10254 (base32
10255 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10256 (build-system meson-build-system)
10257 (inputs
10258 `(("json-glib" ,json-glib)
10259 ("glib" ,glib)))
10260 (native-inputs
10261 `(("pkg-config" ,pkg-config)
10262 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10263 ("gobject-introspection" ,gobject-introspection)
10264 ("vala" ,vala)))
10265 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10266 (synopsis "JSON-RPC library for GLib")
10267 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10268peers in either a synchronous or asynchronous fashion. It also allows
10269communicating using the GVariant serialization format instead of JSON when
10270both peers support it. You might want that when communicating on a single
10271host to avoid parser overhead and memory-allocator fragmentation.")
10272 (license license:lgpl2.1+)))