gnu: simple-scan: Update to 3.36.3.
[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>
031315e4 56;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
995b7261
AE
57;;;
58;;; This file is part of GNU Guix.
59;;;
60;;; GNU Guix is free software; you can redistribute it and/or modify it
61;;; under the terms of the GNU General Public License as published by
62;;; the Free Software Foundation; either version 3 of the License, or (at
63;;; your option) any later version.
64;;;
65;;; GNU Guix is distributed in the hope that it will be useful, but
66;;; WITHOUT ANY WARRANTY; without even the implied warranty of
67;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
68;;; GNU General Public License for more details.
69;;;
70;;; You should have received a copy of the GNU General Public License
71;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
72
73(define-module (gnu packages gnome)
ed19903d 74 #:use-module (gnu packages)
ba5dd105 75 #:use-module (gnu packages admin)
411ba511 76 #:use-module (gnu packages aspell)
75016d07 77 #:use-module (gnu packages autotools)
7b212526 78 #:use-module (gnu packages avahi)
b29909b4 79 #:use-module (gnu packages backup)
6a180f6f 80 #:use-module (gnu packages base)
1e33331c 81 #:use-module (gnu packages bash)
5698b8b8 82 #:use-module (gnu packages bison)
aa51d92c 83 #:use-module (gnu packages boost)
5fc9b6c1 84 #:use-module (gnu packages build-tools)
df217748 85 #:use-module (gnu packages calendar)
b29909b4 86 #:use-module (gnu packages cdrom)
df12f04a 87 #:use-module (gnu packages check)
d61a894b 88 #:use-module (gnu packages cmake)
b29909b4 89 #:use-module (gnu packages compression)
8f523eb9 90 #:use-module (gnu packages crates-io)
23a22af6 91 #:use-module (gnu packages cups)
6e1bb642 92 #:use-module (gnu packages curl)
c3f29bc9 93 #:use-module (gnu packages cyrus-sasl)
6e1bb642 94 #:use-module (gnu packages databases)
255d1bbe 95 #:use-module (gnu packages dbm)
c769cf9f 96 #:use-module (gnu packages djvu)
ba5dd105 97 #:use-module (gnu packages dns)
b4ce6300 98 #:use-module (gnu packages docbook)
b29909b4 99 #:use-module (gnu packages documentation)
329d731b 100 #:use-module (gnu packages enchant)
b29909b4
TGR
101 #:use-module (gnu packages flex)
102 #:use-module (gnu packages fonts)
e762d943 103 #:use-module (gnu packages file-systems)
a56be436 104 #:use-module (gnu packages fontutils)
b29909b4 105 #:use-module (gnu packages freedesktop)
dfc407f3 106 #:use-module (gnu packages game-development)
fed5a689 107 #:use-module (gnu packages gettext)
b29909b4
TGR
108 #:use-module (gnu packages ghostscript)
109 #:use-module (gnu packages gl)
995b7261 110 #:use-module (gnu packages glib)
c1354b90 111 #:use-module (gnu packages gnupg)
23a22af6 112 #:use-module (gnu packages gnuzilla)
8d8c6bff 113 #:use-module (gnu packages geo)
b29909b4
TGR
114 #:use-module (gnu packages gperf)
115 #:use-module (gnu packages graphviz)
85f5dc19 116 #:use-module (gnu packages gstreamer)
d9c1a22b 117 #:use-module (gnu packages gtk)
6b888eff 118 #:use-module (gnu packages guile)
b645146f 119 #:use-module (gnu packages ibus)
03be9874 120 #:use-module (gnu packages icu4c)
b29909b4
TGR
121 #:use-module (gnu packages image)
122 #:use-module (gnu packages imagemagick)
123 #:use-module (gnu packages inkscape)
9cc98f8a 124 #:use-module (gnu packages iso-codes)
b29909b4 125 #:use-module (gnu packages kerberos)
85f5dc19 126 #:use-module (gnu packages libcanberra)
b64e217f 127 #:use-module (gnu packages libunistring)
0e26c3cf 128 #:use-module (gnu packages libunwind)
75016d07 129 #:use-module (gnu packages libusb)
b29909b4 130 #:use-module (gnu packages linux)
4e3fc547 131 #:use-module (gnu packages lirc)
7b212526 132 #:use-module (gnu packages lua)
b29909b4 133 #:use-module (gnu packages mail)
03be9874 134 #:use-module (gnu packages mp3)
b29909b4 135 #:use-module (gnu packages multiprecision)
64fce637 136 #:use-module (gnu packages music)
b29909b4
TGR
137 #:use-module (gnu packages ncurses)
138 #:use-module (gnu packages nettle)
ba5dd105 139 #:use-module (gnu packages networking)
5fc9b6c1 140 #:use-module (gnu packages ninja)
aff0cce9 141 #:use-module (gnu packages nss)
b29909b4 142 #:use-module (gnu packages openldap)
b645146f 143 #:use-module (gnu packages password-utils)
de1215e2 144 #:use-module (gnu packages pcre)
b29909b4 145 #:use-module (gnu packages pdf)
27477d2d 146 #:use-module (gnu packages perl)
f70d8383 147 #:use-module (gnu packages photo)
53c41e95 148 #:use-module (gnu packages php)
995b7261 149 #:use-module (gnu packages pkg-config)
b29909b4
TGR
150 #:use-module (gnu packages polkit)
151 #:use-module (gnu packages popt)
7d3bb433 152 #:use-module (gnu packages pretty-print)
23a22af6 153 #:use-module (gnu packages pulseaudio)
995b7261 154 #:use-module (gnu packages python)
00014781
RW
155 #:use-module (gnu packages python-crypto)
156 #:use-module (gnu packages python-web)
44d10b1f 157 #:use-module (gnu packages python-xyz)
cce0da5e 158 #:use-module (gnu packages rdesktop)
b29909b4 159 #:use-module (gnu packages readline)
a76d0f03 160 #:use-module (gnu packages ruby)
ec47c07d 161 #:use-module (gnu packages rust)
b29909b4 162 #:use-module (gnu packages samba)
75016d07 163 #:use-module (gnu packages scanner)
240cee8a 164 #:use-module (gnu packages selinux)
c27e02bf 165 #:use-module (gnu packages slang)
b29909b4
TGR
166 #:use-module (gnu packages speech)
167 #:use-module (gnu packages spice)
cd0322a3 168 #:use-module (gnu packages sqlite)
4a1bf090 169 #:use-module (gnu packages ssh)
2cd1de32 170 #:use-module (gnu packages swig)
8f9ac901 171 #:use-module (gnu packages tex)
33dc54b0 172 #:use-module (gnu packages time)
a7fd7b68 173 #:use-module (gnu packages tls)
2cd1de32 174 #:use-module (gnu packages valgrind)
3c5dbd2b 175 #:use-module (gnu packages version-control)
b29909b4 176 #:use-module (gnu packages video)
59132b80 177 #:use-module (gnu packages virtualization)
f2b96b3a 178 #:use-module (gnu packages vpn)
a18f8eaf 179 #:use-module (gnu packages web)
b29909b4
TGR
180 #:use-module (gnu packages webkit)
181 #:use-module (gnu packages xdisorg)
182 #:use-module (gnu packages xiph)
183 #:use-module (gnu packages xml)
d633f2f6 184 #:use-module (gnu packages xorg)
a76d0f03 185 #:use-module (gnu artwork)
43b6b45e 186 #:use-module ((guix build utils) #:select (modify-phases))
8f523eb9 187 #:use-module (guix build-system cargo)
b29909b4
TGR
188 #:use-module (guix build-system cmake)
189 #:use-module (guix build-system glib-or-gtk)
190 #:use-module (guix build-system gnu)
191 #:use-module (guix build-system meson)
08be02be 192 #:use-module (guix build-system python)
b29909b4
TGR
193 #:use-module (guix build-system trivial)
194 #:use-module (guix download)
195 #:use-module (guix git-download)
196 #:use-module ((guix licenses) #:prefix license:)
197 #:use-module (guix packages)
198 #:use-module (guix utils)
a76d0f03 199 #:use-module (guix gexp)
8f523eb9
EF
200 #:use-module (guix monads)
201 #:use-module (guix store)
4e3fdeb7 202 #:use-module (ice-9 match)
c024ae36 203 #:use-module (srfi srfi-1))
85f5dc19
AE
204
205(define-public brasero
206 (package
207 (name "brasero")
e2bf423a 208 (version "3.12.2")
85f5dc19
AE
209 (source (origin
210 (method url-fetch)
d1df7554 211 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 212 (version-major+minor version) "/"
d1df7554 213 "brasero-" version ".tar.xz"))
85f5dc19
AE
214 (sha256
215 (base32
e2bf423a 216 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 217 (build-system glib-or-gtk-build-system)
e8627cd9
DH
218 (arguments
219 `(#:configure-flags (list
220 (string-append "--with-girdir="
221 (assoc-ref %outputs "out")
222 "/share/gir-1.0")
223 (string-append "--with-typelibdir="
224 (assoc-ref %outputs "out")
ce426deb
TD
225 "/lib/girepository-1.0"))
226 #:phases
227 (modify-phases %standard-phases
228 (add-before 'configure 'embed-growisofs
229 (lambda* (#:key inputs #:allow-other-keys)
230 (substitute* "plugins/growisofs/burn-growisofs.c"
231 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 232 #t)))))
85f5dc19
AE
233 (propagated-inputs
234 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
235 (native-inputs
236 `(("intltool" ,intltool)
ba549e17 237 ("itstool" ,itstool)
426adbe8 238 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 239 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 240 ("pkg-config" ,pkg-config)))
85f5dc19 241 (inputs
ce426deb
TD
242 `(("dvd+rw-tools" ,dvd+rw-tools)
243 ("glib" ,glib)
85f5dc19
AE
244 ("gnome-doc-utils" ,gnome-doc-utils)
245 ("gstreamer" ,gstreamer)
246 ("gst-plugins-base" ,gst-plugins-base)
247 ("gtk+" ,gtk+)
85f5dc19
AE
248 ("libcanberra" ,libcanberra)
249 ("libice" ,libice)
250 ("libnotify" ,libnotify)
251 ("libsm" ,libsm)
e8627cd9 252 ("libxml2" ,libxml2)
e8627cd9 253 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 254 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
255 (synopsis "CD/DVD burning tool for Gnome")
256 (description "Brasero is an application to burn CD/DVD for the Gnome
257Desktop. It is designed to be as simple as possible and has some unique
258features to enable users to create their discs easily and quickly.")
1dd26275 259 (license license:gpl2+)))
995b7261 260
a3cbcbaf
RG
261(define-public notification-daemon
262 (package
263 (name "notification-daemon")
264 (version "3.20.0")
265 (source
266 (origin
267 (method url-fetch)
268 (uri
269 (string-append "mirror://gnome/sources/" name "/"
270 (version-major+minor version) "/"
271 name "-" version ".tar.xz"))
272 (sha256
273 (base32
274 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
275 (build-system glib-or-gtk-build-system)
276 (native-inputs
277 `(("intltool" ,intltool)
278 ("pkg-config" ,pkg-config)))
279 (inputs
280 `(("glib" ,glib)
281 ("gtk+" ,gtk+)
282 ("x11" ,libx11)))
283 (synopsis "Notification Daemon for GNOME Desktop")
284 (description "Notification-Daemon is the server implementation of the
285freedesktop.org desktop notification specification.")
286 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
287 (license license:gpl2+)))
288
4e8bdbf8
RG
289(define-public mm-common
290 (package
291 (name "mm-common")
292 (version "1.0.0")
293 (source (origin
294 (method url-fetch)
295 (uri (string-append "mirror://gnome/sources/" name "/"
296 (version-major+minor version) "/"
297 name "-" version ".tar.xz"))
298 (sha256
299 (base32
300 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
301 (build-system meson-build-system)
302 (arguments
303 `(#:phases
304 (modify-phases %standard-phases
305 (add-after 'unpack 'patch
306 (lambda* (#:key inputs #:allow-other-keys)
307 (substitute* "util/mm-common-prepare.in"
308 (("ln") (string-append (assoc-ref inputs "coreutils")
309 "/bin/ln"))
310 (("cp") (string-append (assoc-ref inputs "coreutils")
311 "/bin/cp"))
312 (("sed") (string-append (assoc-ref inputs "sed")
313 "/bin/sed"))
314 (("cat") (string-append (assoc-ref inputs "coreutils")
315 "/bin/cat")))
316 #t)))))
317 (native-inputs
4e8bdbf8 318 `(("coreutils" ,coreutils)
74a65885
DM
319 ("gettext" ,gettext-minimal)
320 ("pkg-config" ,pkg-config)
4e8bdbf8 321 ("sed" ,sed)))
74a65885
DM
322 (inputs
323 `(("python" ,python)))
4e8bdbf8
RG
324 (synopsis "Module of GNOME C++ bindings")
325 (description "The mm-common module provides the build infrastructure
326and utilities shared among the GNOME C++ binding libraries. Release
327archives of mm-common include the Doxygen tag file for the GNU C++
328Library reference documentation.")
329 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
330 (license license:gpl2+)))
331
e05ce17d
RG
332(define-public phodav
333 (package
334 (name "phodav")
335 (version "2.4")
336 (source (origin
337 (method url-fetch)
338 (uri (string-append "mirror://gnome/sources/" name "/"
339 (version-major+minor version) "/"
340 name "-" version ".tar.xz"))
341 (sha256
342 (base32
343 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
344 (build-system meson-build-system)
345 (native-inputs
346 `(("gettext" ,gettext-minimal)
347 ("glib:bin" ,glib "bin")
348 ("gtk-doc" ,gtk-doc)
349 ("pkg-config" ,pkg-config)))
350 (inputs
351 `(("avahi" ,avahi)
352 ("libgudev" ,libgudev)
353 ("libsoup" ,libsoup)))
354 (synopsis "WebDav server implementation using libsoup")
355 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
356but it is generic enough to be reused in other projects,
357in particular in the GNOME desktop.")
358 (home-page "https://wiki.gnome.org/phodav")
359 (license license:lgpl2.1+)))
360
29ae18db
RG
361(define-public gnome-color-manager
362 (package
363 (name "gnome-color-manager")
364 (version "3.32.0")
365 (source (origin
366 (method url-fetch)
367 (uri (string-append "mirror://gnome/sources/" name "/"
368 (version-major+minor version) "/"
369 name "-" version ".tar.xz"))
370 (sha256
371 (base32
372 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
373 (build-system meson-build-system)
374 (arguments
375 `(#:glib-or-gtk? #t
376 #:phases
377 (modify-phases %standard-phases
378 (add-before
379 'check 'pre-check
380 (lambda _
381 ;; Tests require a running X server.
382 (system "Xvfb :1 &")
383 (setenv "DISPLAY" ":1")
384 #t)))))
385 (native-inputs
386 `(("desktop-file-utils" ,desktop-file-utils)
387 ("gettext" ,gettext-minimal)
388 ("glib:bin" ,glib "bin")
389 ("gtk+:bin" ,gtk+ "bin")
390 ("itstool" ,itstool)
391 ("pkg-config" ,pkg-config)
392 ("xorg-server" ,xorg-server-for-tests)))
393 (inputs
394 `(("adwaita-icon-theme" ,adwaita-icon-theme)
395 ("appstream-glib" ,appstream-glib)
396 ("colord-gtk" ,colord-gtk)
397 ("exiv2" ,exiv2)
398 ("gnome-desktop" ,gnome-desktop)
399 ("libcanberra" ,libcanberra)
400 ("libexif" ,libexif)
401 ("libtiff" ,libtiff)
402 ("libxrandr" ,libxrandr)
403 ("libxtst" ,libxtst)
404 ("libxxf86vm" ,libxxf86vm)
405 ("vte" ,vte)
406 ("xorgproto" ,xorgproto)))
407 (synopsis "Color profile manager for the GNOME desktop")
408 (description "GNOME Color Manager is a session framework that makes
409it easy to manage, install and generate color profiles
410in the GNOME desktop.")
411 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 412 (license license:gpl2+)))
29ae18db 413
e05471a1
RG
414(define-public gnome-online-miners
415 (package
416 (name "gnome-online-miners")
49dcd7fc 417 (version "3.34.0")
e05471a1
RG
418 (source (origin
419 (method url-fetch)
420 (uri (string-append "mirror://gnome/sources/" name "/"
421 (version-major+minor version) "/"
422 name "-" version ".tar.xz"))
423 (sha256
424 (base32
49dcd7fc 425 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
e05471a1
RG
426 (build-system glib-or-gtk-build-system)
427 (native-inputs
428 `(("gettext" ,gettext-minimal)
429 ("glib:bin" ,glib "bin")
29ae18db 430 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
431 ("gtk+:bin" ,gtk+ "bin")
432 ("pkg-config" ,pkg-config)))
433 (inputs
434 `(("gnome-online-accounts" ,gnome-online-accounts)
435 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
436 ("grilo" ,grilo)
437 ("libgdata" ,libgdata)
438 ("libgfbgraph" ,gfbgraph)
439 ("libzapojit" ,libzapojit)
440 ("rest" ,rest)
441 ("tracker" ,tracker)))
442 (synopsis "Web Crawlers for GNOME")
443 (description "GNOME Online Miners provides a set of crawlers that
444go through your online content and index them locally in Tracker.
445It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
446 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 447 (license license:gpl2+)))
e05471a1 448
e2aed29c
RG
449(define-public gssdp
450 (package
451 (name "gssdp")
452 (version "1.2.2")
453 (source (origin
454 (method url-fetch)
455 (uri (string-append "mirror://gnome/sources/" name "/"
456 (version-major+minor version) "/"
457 name "-" version ".tar.xz"))
458 (sha256
459 (base32
460 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
461 (build-system meson-build-system)
462 (native-inputs
463 `(("gettext" ,gettext-minimal)
464 ("glib:bin" ,glib "bin")
465 ("gobject-introspection" ,gobject-introspection)
466 ("gtk-doc" ,gtk-doc)
467 ("pkg-config" ,pkg-config)
468 ("vala" ,vala)))
469 (inputs
470 `(("gtk+" ,gtk+)
471 ("libsoup" ,libsoup)))
472 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
473Protocol} for GNOME")
474 (description "This package provides a library to handle resource discovery
475and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
476a debugging tool, @command{gssdp-device-sniffer}.")
477 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
478 (license license:lgpl2.0+)))
479
291a85b2
RG
480(define-public gupnp
481 (package
482 (name "gupnp")
483 (version "1.2.2")
484 (source (origin
485 (method url-fetch)
486 (uri (string-append "mirror://gnome/sources/" name "/"
487 (version-major+minor version) "/"
488 name "-" version ".tar.xz"))
489 (sha256
490 (base32
491 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
492 (build-system meson-build-system)
493 (native-inputs
494 `(("gettext" ,gettext-minimal)
495 ("glib:bin" ,glib "bin")
496 ("gobject-introspection" ,gobject-introspection)
497 ("gtk-doc" ,gtk-doc)
498 ("pkg-config" ,pkg-config)
499 ("vala" ,vala)))
500 (inputs
501 `(("gssdp" ,gssdp)
502 ("gtk+" ,gtk+)
503 ("libsoup" ,libsoup)))
504 (synopsis "PnP API for GNOME")
505 (description "This package provides GUPnP, an object-oriented framework
506for creating UPnP devices and control points, written in C using
507@code{GObject} and @code{libsoup}.")
508 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
509 (license license:lgpl2.0+)))
510
747d7fe4
RG
511(define-public gupnp-dlna
512 (package
513 (name "gupnp-dlna")
514 (version "0.10.5")
515 (source (origin
516 (method url-fetch)
517 (uri (string-append "mirror://gnome/sources/" name "/"
518 (version-major+minor version) "/"
519 name "-" version ".tar.xz"))
520 (sha256
521 (base32
522 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
523 (build-system gnu-build-system)
524 (native-inputs
525 `(("gettext" ,gettext-minimal)
526 ("glib:bin" ,glib "bin")
527 ("gobject-introspection" ,gobject-introspection)
528 ("gtk-doc" ,gtk-doc)
529 ("libxml" ,libxml2)
530 ("pkg-config" ,pkg-config)
531 ("vala" ,vala)))
532 (inputs
533 `(("gstreamer" ,gstreamer)
534 ("gupnp" ,gupnp)))
535 (propagated-inputs
536 `(("gst-plugins-base" ,gst-plugins-base)
537 ("gst-plugins-good" ,gst-plugins-good)))
538 (synopsis "GUPnP DLNA for GNOME")
539 (description "This package provides a small utility library to
540support DLNA-related tasks such as media profile guessing, transcoding to a
541given profile, etc. DLNA is a subset of UPnP A/V.")
542 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
543 (license license:lgpl2.0+)))
544
1b4cb628
RG
545(define-public gupnp-av
546 (package
547 (name "gupnp-av")
548 (version "0.12.11")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
557 (build-system gnu-build-system)
558 (native-inputs
559 `(("gettext" ,gettext-minimal)
560 ("glib:bin" ,glib "bin")
561 ("gobject-introspection" ,gobject-introspection)
562 ("gtk-doc" ,gtk-doc)
563 ("libxml" ,libxml2)
564 ("pkg-config" ,pkg-config)))
565 (inputs
566 `(("gtk+" ,gtk+)
567 ("gupnp" ,gupnp)))
568 (synopsis "GUPnP A/V for GNOME")
569 (description "This package provides a small library for handling
570and implementation of UPnP A/V profiles.")
571 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
572 (license license:lgpl2.0+)))
e05471a1 573
02ebbca8
RG
574(define-public libmediaart
575 (package
576 (name "libmediaart")
577 (version "1.9.4")
578 (source (origin
579 (method url-fetch)
580 (uri (string-append "mirror://gnome/sources/" name "/"
581 (version-major+minor version) "/"
582 name "-" version ".tar.xz"))
583 (sha256
584 (base32
585 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
586 (build-system gnu-build-system)
587 (native-inputs
588 `(("glib:bin" ,glib "bin")
589 ("pkg-config" ,pkg-config)))
590 (inputs
591 `(("gdk-pixbuf" ,gdk-pixbuf)
592 ("gettext" ,gettext-minimal)
593 ("gobject-introspection" ,gobject-introspection)
594 ("gtk+:doc", gtk+ "doc")
595 ("vala" ,vala)))
596 (synopsis "Media art library for the GNOME desktop")
597 (description
598 "The libmediaart library is the foundation for media art caching,
599extraction, and lookup for applications on the desktop.")
600 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
601 (license license:lgpl2.1+)))
602
a26680eb
RG
603(define-public gnome-initial-setup
604 (package
605 (name "gnome-initial-setup")
606 (version "3.32.1")
607 (source (origin
608 (method url-fetch)
609 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
610 (version-major+minor version)
611 "/gnome-initial-setup-" version ".tar.xz"))
612 (sha256
613 (base32
614 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
615 (build-system meson-build-system)
616 (arguments
a65cc579
DM
617 '(#:configure-flags '(;; Enable camera support for user selfie.
618 "-Dcheese=auto"
c627e2cb
LC
619 "-Dsystemd=false")
620 #:phases (modify-phases %standard-phases
621 (add-after 'unpack 'set-gkbd-file-name
622 (lambda* (#:key inputs #:allow-other-keys)
623 ;; Allow the "Preview" button in the keyboard layout
624 ;; selection dialog to display the layout.
625 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
626 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
627 (("\"gkbd-keyboard-display")
628 (string-append "\"" libgnomekbd
629 "/bin/gkbd-keyboard-display")))
630 #t))))))
a26680eb
RG
631 (native-inputs
632 `(("gettext" ,gettext-minimal)
633 ("glib:bin" ,glib "bin")
634 ("gobject-introspection" ,gobject-introspection)
635 ("gtk+:bin" ,gtk+ "bin")
636 ("pkg-config" ,pkg-config)))
637 (inputs
638 `(("accountsservice" ,accountsservice)
639 ;("adwaita-icon-theme" ,adwaita-icon-theme)
640 ("gdm" ,gdm)
641 ("geoclue" ,geoclue)
642 ("gnome-desktop" ,gnome-desktop)
643 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
644 ("gnome-online-accounts" ,gnome-online-accounts)
645 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
646 ("gstreamer" ,gstreamer)
647 ("ibus" ,ibus)
648 ("json-glib" ,json-glib)
649 ("krb5" ,mit-krb5)
650 ("libgweather" ,libgweather)
8d9477b8 651 ("libnma" ,libnma)
a26680eb
RG
652 ("libsecret" ,libsecret)
653 ("network-manager" ,network-manager)
a26680eb
RG
654 ("packagekit" ,packagekit)
655 ("polkit" ,polkit)
656 ("pwquality" ,libpwquality)
657 ("rest" ,rest)
658 ("upower" ,upower)
c627e2cb
LC
659 ("webkitgtk" ,webkitgtk)
660 ("libgnomekbd" ,libgnomekbd)))
a26680eb 661 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
662 (description "This package provides a set-up wizard when a
663user logs into GNOME for the first time. It typically provides a
664tour of all gnome components and allows the user to set them up.")
a26680eb
RG
665 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
666 (license license:gpl2)))
667
b5f01392
RG
668(define-public gnome-user-share
669 (package
670 (name "gnome-user-share")
671 (version "3.33.1")
672 (source (origin
673 (method url-fetch)
674 (uri (string-append "mirror://gnome/sources/" name "/"
675 (version-major+minor version) "/"
676 name "-" version ".tar.xz"))
677 (sha256
678 (base32
679 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
680 (build-system meson-build-system)
681 (arguments
682 `(#:glib-or-gtk? #t
683 #:configure-flags
684 `("-Dsystemd=false"
685 ;; Enable nautilus extension for file sharing.
686 "-Dnautilus_extension=true")))
687 (native-inputs
688 `(("gettext" ,gettext-minimal)
689 ("glib:bin" ,glib "bin")
690 ("gobject-introspection" ,gobject-introspection)
691 ("gtk+:bin" ,gtk+ "bin")
692 ("pkg-config" ,pkg-config)
693 ("yelp-tools" ,yelp-tools)))
694 (inputs
695 `(("glib" ,glib)
696 ("gnome-bluetooth" ,gnome-bluetooth)
697 ("gtk+" ,gtk+)
698 ("libcanberra" ,libcanberra)
699 ("libnotify" ,libnotify)
700 ("nautilus" ,nautilus))) ; For nautilus extension.
701 (synopsis "File sharing for GNOME desktop")
702 (description "GNOME User Share is a small package that binds together
703various free software projects to bring easy to use user-level file
704sharing to the masses.")
705 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 706 (license license:gpl2+)))
b5f01392 707
04b201bb
RG
708(define-public sushi
709 (package
710 (name "sushi")
711 (version "3.32.1")
712 (source (origin
713 (method url-fetch)
714 (uri (string-append "mirror://gnome/sources/" name "/"
715 (version-major+minor version) "/"
716 name "-" version ".tar.xz"))
717 (sha256
718 (base32
719 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
720 (build-system meson-build-system)
721 (arguments
722 `(#:glib-or-gtk? #t
723 #:phases
724 (modify-phases %standard-phases
725 (add-after 'glib-or-gtk-wrap 'wrap-typelib
726 (lambda* (#:key outputs #:allow-other-keys)
727 (let ((prog (string-append (assoc-ref outputs "out")
728 "/bin/sushi")))
729 ;; Put existing typelibs before sushi's deps, so as to correctly
730 ;; infer gdk-pixbuf
731 (wrap-program prog
732 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
733 #t))))))
734 (native-inputs
735 `(("glib:bin" ,glib "bin")
736 ("gettext" ,gettext-minimal)
737 ("gobject-introspection" ,gobject-introspection)
738 ("pkg-config" ,pkg-config)))
739 (inputs
740 `(("clutter" ,clutter)
741 ("clutter-gst" ,clutter-gst)
742 ("clutter-gtk" ,clutter-gtk)
743 ("evince" ,evince) ; For file previewing.
744 ("freetype" ,freetype)
745 ("gdk-pixbuf" ,gdk-pixbuf)
746 ("gjs" ,gjs)
747 ("gst-plugins-base" ,gst-plugins-base)
748 ("gstreamer" ,gstreamer)
749 ("gtksourceview" ,gtksourceview-3)
750 ("harfbuzz" ,harfbuzz)
751 ("libepoxy" ,libepoxy)
752 ("libmusicbrainz" ,libmusicbrainz)
753 ("libxml2" ,libxml2)
754 ("neon" ,neon)
755 ("webkitgtk" ,webkitgtk)))
756 (synopsis "File previewer for the GNOME desktop")
757 (description "Sushi is a DBus-activated service that allows applications to
758preview files on the GNOME desktop.")
759 (home-page "https://gitlab.gnome.org/GNOME/sushi")
760 (license license:gpl2+)))
761
89af0902
RG
762(define-public rygel
763 (package
764 (name "rygel")
765 (version "0.38.3")
766 (source (origin
767 (method url-fetch)
768 (uri (string-append "mirror://gnome/sources/" name "/"
769 (version-major+minor version) "/"
770 name "-" version ".tar.xz"))
771 (sha256
772 (base32
773 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
774 (build-system gnu-build-system)
775 (native-inputs
776 `(("gettext" ,gettext-minimal)
777 ("gobject-introspection" ,gobject-introspection)
778 ("gtk-doc" ,gtk-doc)
779 ("pkg-config" ,pkg-config)
780 ("vala" ,vala)))
781 (inputs
782 `(("gdk-pixbuf" ,gdk-pixbuf)
783 ("gssdp" ,gssdp)
784 ("gstreamer" ,gstreamer)
785 ("gst-plugins-base" ,gst-plugins-base)
786 ("gtk+" ,gtk+)
787 ("gupnp" ,gupnp)
788 ("gupnp-av" ,gupnp-av)
789 ("gupnp-dlna" ,gupnp-dlna)
790 ("libgee" ,libgee)
791 ("libmediaart" ,libmediaart)
792 ("libsoup" ,libsoup)
793 ("libxslt" ,libxslt)
794 ("libunistring" ,libunistring)
795 ("tracker" ,tracker)))
796 (synopsis "Share audio, video, and pictures with other devices")
797 (description
798 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
799MediaRenderer}) for GNOME that allows you to easily share audio, video, and
800pictures, and to control a media player on your home network.
801
802Rygel achieves interoperability with other devices by trying to conform to the
803strict requirements of DLNA and by converting media on-the-fly to formats that
804client devices can handle.")
805 (home-page "https://wiki.gnome.org/Projects/Rygel")
806 (license (list
807 ;; For logo (data/icons/*).
808 license:cc-by-sa3.0
809 ;; For all others.
810 license:lgpl2.1+))))
811
47e87093
RG
812(define-public libnma
813 (package
b1da33d9
BW
814 (name "libnma")
815 (version "1.8.28")
816 (source (origin
817 (method url-fetch)
818 (uri (string-append "mirror://gnome/sources/" name "/"
819 (version-major+minor version) "/"
820 name "-" version ".tar.xz"))
821 (sha256
822 (base32
823 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
824 (build-system meson-build-system)
825 (arguments
826 `(#:phases
827 (modify-phases %standard-phases
828 (add-after 'unpack 'patch-docbook-xml
829 (lambda* (#:key inputs #:allow-other-keys)
830 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
831 "/xml/dtd/docbook")))
832 (substitute* "libnma-docs.xml"
833 (("http://.*/docbookx\\.dtd")
834 (string-append xmldoc "/docbookx.dtd")))
835 #t))))))
836 (native-inputs
837 `(("docbook-xml" ,docbook-xml-4.3)
838 ("gettext" ,gettext-minimal)
839 ("glib:bin" ,glib "bin")
840 ("gtk-doc" ,gtk-doc)
841 ("gobject-introspection" ,gobject-introspection)
842 ("pkg-config" ,pkg-config)
843 ("vala" ,vala)))
844 (inputs
845 `(("gcr" ,gcr)
846 ("gtk+" ,gtk+)
847 ("iso-codes" ,iso-codes)
848 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
849 ("network-manager" ,network-manager)))
850 (synopsis "Network Manager's applet library")
851 (description "Libnma is an applet library for Network Manager. It was
47e87093
RG
852initially part of network-manager-applet and has now become a separate
853project.")
c25ca6b7
BW
854 (home-page "https://gitlab.gnome.org/GNOME/libnma")
855 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
856 ;; "LGPL-2.1+".
857 (license license:gpl2+)))
47e87093 858
30416265
RG
859(define-public gnome-menus
860 (package
861 (name "gnome-menus")
862 (version "3.32.0")
863 (source (origin
864 (method url-fetch)
865 (uri (string-append "mirror://gnome/sources/gnome-menus/"
866 (version-major+minor version) "/"
867 name "-" version ".tar.xz"))
868 (sha256
869 (base32
870 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
871 (build-system gnu-build-system)
872 (native-inputs
873 `(("gettext" ,gettext-minimal)
874 ("glib" ,glib)
875 ("pkg-config" ,pkg-config)))
876 (synopsis "Menu support for GNOME desktop")
877 (description "GNOME Menus contains the libgnome-menu library, the layout
878configuration files for the GNOME menu, as well as a simple menu editor.")
879 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 880 (license license:lgpl2.0+)))
30416265 881
d61a894b
CB
882(define-public deja-dup
883 (package
884 (name "deja-dup")
899ffa13 885 (version "40.6")
d61a894b 886 (source (origin
899ffa13
BW
887 (method url-fetch)
888 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
889 version "/deja-dup-" version ".tar.bz2"))
890 (sha256
891 (base32
892 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
893 (build-system meson-build-system)
d61a894b 894 (arguments
899ffa13
BW
895 `(#:glib-or-gtk? #t
896 #:configure-flags
897 (list
898 ;; Otherwise, the RUNPATH will lack the final path component.
899 (string-append "-Dc_link_args=-Wl,-rpath="
900 (assoc-ref %outputs "out") "/lib/deja-dup"))
d61a894b
CB
901 #:phases
902 (modify-phases %standard-phases
899ffa13
BW
903 (add-after 'unpack 'patch-paths
904 (lambda* (#:key inputs #:allow-other-keys)
905 (let ((python (assoc-ref inputs "python")))
906 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
907 "libdeja/tests/scripts/instance-error.test")
908 (("/bin/rm")
909 (which "rm")))
910 (substitute* "libdeja/tests/runner.vala"
911 (("/bin/sh")
912 (which "sh")))
913 (substitute* "libdeja/tests/scripts/instance-error.test"
914 (("`which python3`")
915 (string-append python "/bin/python3"))))))
916 (add-after 'unpack 'patch-libgpg-error
917 (lambda* (#:key inputs #:allow-other-keys)
918 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
919 (substitute* "meson.build"
920 (("(gpgerror_libs = ).*" _ var)
921 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
922 #t))
923 (add-after 'unpack 'skip-gtk-update-icon-cache
924 ;; Don't create 'icon-theme.cache'.
925 (lambda _
926 (substitute* "data/post-install.sh"
927 (("gtk-update-icon-cache") "true"))
928 #t)))))
d61a894b
CB
929 (inputs
930 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
d61a894b 931 ("duplicity" ,duplicity)
899ffa13
BW
932 ("python" ,python)
933 ("python-pygobject" ,python-pygobject)
d61a894b 934 ("gtk+" ,gtk+)
899ffa13 935 ("json-glib" ,json-glib)
d61a894b 936 ("libnotify" ,libnotify)
899ffa13 937 ("libgpg-error" ,libgpg-error)
d61a894b 938 ("libsecret" ,libsecret)
899ffa13 939 ("libsoup" ,libsoup)
d61a894b
CB
940 ("packagekit" ,packagekit)))
941 (native-inputs
899ffa13
BW
942 `(("appstream-glib" ,appstream-glib)
943 ("desktop-file-utils" ,desktop-file-utils)
d61a894b 944 ("gettext" ,gettext-minimal)
899ffa13
BW
945 ("glib" ,glib "bin") ; for glib-compile-schemas.
946 ("gobject-introspection" ,gobject-introspection)
d61a894b 947 ("itstool" ,itstool)
899ffa13
BW
948 ("pkg-config" ,pkg-config)
949 ("vala" ,vala)))
950 (home-page "https://wiki.gnome.org/Apps/DejaDup")
d61a894b
CB
951 (synopsis "Simple backup tool, for regular encrypted backups")
952 (description
953 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
954uses duplicity as the backend, which supports incremental backups and storage
955either on a local, or remote machine via a number of methods.")
956 (license license:gpl3+)))
957
823b77fb
RG
958(define-public gnome-user-docs
959 (package
960 (name "gnome-user-docs")
961 (version "3.32.3")
962 (source
963 (origin
964 (method url-fetch)
965 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
966 (version-major+minor version)
967 "/gnome-user-docs-" version ".tar.xz"))
968 (sha256
969 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
970 (build-system gnu-build-system)
971 (native-inputs
972 `(("gettext" ,gettext-minimal)
973 ("itstool" ,itstool)
974 ("pkg-config" ,pkg-config)
975 ("xmllint" ,libxml2)))
976 (synopsis "User documentation for the GNOME desktop")
977 (description
978 "The GNOME User Documentation explains how to use the GNOME desktop and its
979components. It covers usage and setup of the core GNOME programs by end-users
980and system administrators.")
981 (home-page "https://live.gnome.org/DocumentationProject")
982 (license license:cc-by3.0)))
983
be93299d
RG
984(define-public gnome-getting-started-docs
985 (package
986 (name "gnome-getting-started-docs")
987 (version "3.32.2")
988 (source
989 (origin
990 (method url-fetch)
991 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
992 (version-major+minor version)
993 "/gnome-getting-started-docs-" version ".tar.xz"))
994 (sha256
995 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
996 (build-system gnu-build-system)
997 (native-inputs
998 `(("gettext" ,gettext-minimal)
999 ("itstool" ,itstool)
1000 ("pkg-config" ,pkg-config)
1001 ("xmllint" ,libxml2)))
1002 (synopsis "Help to get new users started with the GNOME desktop")
1003 (description
1004 "The GNOME Getting Started Documentation contains GNOME's intuitive
1005\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1006
1007It is normally used together with @command{gnome-initial-setup}, but is also
1008useful as a tutorial and users' guide for new or less experienced users.")
1009 (home-page "https://live.gnome.org/DocumentationProject")
1010 (license license:cc-by-sa3.0)))
1011
a56be436
RJ
1012(define-public dia
1013 ;; This version from GNOME's repository includes fixes for compiling with
1014 ;; recent versions of the build tools. The latest activity on the
1015 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
f8687cb2
TGR
1016 ;; fixes since.
1017 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1018 (revision "2"))
a56be436
RJ
1019 (package
1020 (name "dia")
f8687cb2 1021 (version (git-version "0.97.3" revision commit))
a56be436
RJ
1022 (source (origin
1023 (method git-fetch)
1024 (uri (git-reference
914c8cdf 1025 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1026 (commit commit)))
914c8cdf 1027 (file-name (git-file-name name version))
a56be436
RJ
1028 (sha256
1029 (base32
f8687cb2
TGR
1030 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1031 (build-system meson-build-system)
a56be436 1032 (inputs
f8687cb2 1033 `(("graphene" ,graphene)
a56be436
RJ
1034 ("gtk+" ,gtk+-2)
1035 ("libxml2" ,libxml2)
f8687cb2
TGR
1036 ("libxslt" ,libxslt)
1037 ("poppler" ,poppler)
1038 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1039 ;; ERROR: Unknown method "dependency" in object.
1040 ("python-2" ,python-2)))
a56be436 1041 (native-inputs
f8687cb2
TGR
1042 `(("appstream-glib" ,appstream-glib)
1043 ("docbook-xsl" ,docbook-xsl)
a315afa3 1044 ("glib" ,glib "bin")
f8687cb2
TGR
1045 ("intltool" ,intltool)
1046 ("pkg-config" ,pkg-config)))
a56be436
RJ
1047 (home-page "https://wiki.gnome.org/Apps/Dia")
1048 (synopsis "Diagram creation for GNOME")
1049 (description "Dia can be used to draw different types of diagrams, and
1050includes support for UML static structure diagrams (class diagrams), entity
1051relationship modeling, and network diagrams. The program supports various file
1052formats like PNG, SVG, PDF and EPS.")
1053 (license license:gpl2+))))
1054
d0b19e44
RW
1055;; This is the unstable release, but it is required for the current stable
1056;; release of gvfs (1.38.1).
adc5cb1b
KK
1057(define-public libgdata
1058 (package
1059 (name "libgdata")
d0b19e44 1060 (version "0.17.9")
adc5cb1b
KK
1061 (source (origin
1062 (method url-fetch)
1063 (uri (string-append "mirror://gnome/sources/" name "/"
1064 (version-major+minor version) "/"
1065 name "-" version ".tar.xz"))
1066 (sha256
1067 (base32
d0b19e44 1068 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1069 (build-system gnu-build-system)
1070 (arguments
1071 '(#:phases
1072 (modify-phases %standard-phases
448052b7
TGR
1073 (add-before 'check 'disable-failing-tests
1074 (lambda _
1075 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1076 ;; They have been removed in libgdata 0.17.6, so just do the same.
1077 (substitute* "gdata/tests/Makefile"
1078 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1079 #t)))))
1080 (native-inputs
1081 `(("glib:bin" ,glib "bin")
1082 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1083 ("intltool" ,intltool)
1084 ("pkg-config" ,pkg-config)
1085 ("uhttpmock" ,uhttpmock)))
1086 (inputs
1087 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1088 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1089 (propagated-inputs
1090 `(("gcr" ,gcr)
d0b19e44 1091 ("glib" ,glib)
14c297fd 1092 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1093 ("json-glib" ,json-glib)
adc5cb1b 1094 ("liboauth" ,liboauth)
d0b19e44 1095 ("libsoup" ,libsoup)
adc5cb1b
KK
1096 ("libxml2" ,libxml2)))
1097 (home-page "https://wiki.gnome.org/Projects/libgdata")
1098 (synopsis "Library for accessing online service APIs")
1099 (description
1100 "libgdata is a GLib-based library for accessing online service APIs using
1101the GData protocol — most notably, Google's services. It provides APIs to
1102access the common Google services, and has full asynchronous support.")
1103 (license license:lgpl2.1+)))
1104
94e10cf4
KK
1105(define-public libgxps
1106 (package
1107 (name "libgxps")
66470a5a 1108 (version "0.3.1")
94e10cf4
KK
1109 (source (origin
1110 (method url-fetch)
7f10628c 1111 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1112 (version-major+minor version) "/"
1113 name "-" version ".tar.xz"))
1114 (sha256
1115 (base32
66470a5a 1116 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1117 (build-system meson-build-system)
94e10cf4
KK
1118 (native-inputs
1119 `(("gobject-introspection" ,gobject-introspection)
1120 ("pkg-config" ,pkg-config)))
1121 (inputs
c8d62d93 1122 `(("gtk+" ,gtk+)
b6b3e512 1123 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1124 ("lcms" ,lcms)
0a6e9e13 1125 ("libtiff" ,libtiff)))
c8d62d93
MB
1126 (propagated-inputs
1127 ;; In Requires of libgxps.pc.
1128 `(("cairo" ,cairo)
1129 ("glib" ,glib)
1130 ("libarchive" ,libarchive)))
94e10cf4
KK
1131 (home-page "https://wiki.gnome.org/Projects/libgxps")
1132 (synopsis "GObject-based library for handling and rendering XPS documents")
1133 (description
1134 "libgxps is a GObject-based library for handling and rendering XPS
1135documents. This package also contains binaries that can convert XPS documents
1136to other formats.")
1137 (license license:lgpl2.1+)))
1138
4e09f57a
RG
1139(define-public gnome-characters
1140 (package
1141 (name "gnome-characters")
1142 (version "3.30.0")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri (string-append "mirror://gnome/sources/"
1147 "gnome-characters/" (version-major+minor version)
1148 "/gnome-characters-" version ".tar.xz"))
1149 (sha256
1150 (base32
1151 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1152 (build-system meson-build-system)
5757c641 1153 (arguments
1154 `(#:glib-or-gtk? #t
1155 #:phases (modify-phases %standard-phases
1156 (add-after 'install 'wrap
1157 (lambda* (#:key outputs #:allow-other-keys)
1158 ;; GNOME Characters needs Typelib files from GTK and
1159 ;; gnome-desktop.
1160 (wrap-program (string-append (assoc-ref outputs "out")
1161 "/bin/gnome-characters")
1162 `("GI_TYPELIB_PATH" ":" prefix
1163 (,(getenv "GI_TYPELIB_PATH"))))
1164 #t)))))
4e09f57a
RG
1165 (native-inputs
1166 `(("gettext" ,gettext-minimal)
1167 ("glib:bin" ,glib "bin")
1168 ("gtk+:bin" ,gtk+ "bin")
1169 ("pkg-config" ,pkg-config)
1170 ("python" ,python-minimal)))
1171 (inputs
1172 `(("gjs" ,gjs)
1173 ("gtk+" ,gtk+)
5757c641 1174 ("libunistring" ,libunistring)
1175 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1176 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1177 (synopsis "Find and insert unusual characters")
1178 (description "Characters is a simple utility application to find
1179and insert unusual characters. It allows you to quickly find the
1180character you are looking for by searching for keywords.")
1181 (license license:bsd-3)))
1182
7aab13f1
ML
1183(define-public gnome-common
1184 (package
1185 (name "gnome-common")
af83490d 1186 (version "3.18.0")
7aab13f1
ML
1187 (source
1188 (origin
1189 (method url-fetch)
1190 (uri (string-append "mirror://gnome/sources/" name "/"
1191 (version-major+minor version) "/"
1192 name "-" version ".tar.xz"))
1193 (sha256
1194 (base32
af83490d 1195 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1196 (build-system gnu-build-system)
1197 (home-page "https://www.gnome.org/")
1198 (synopsis "Bootstrap GNOME modules built from Git")
1199 (description "gnome-common contains various files needed to bootstrap
1200GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1201can be used to configure a source directory checked out from Git and some
1202commonly used macros.")
1203 (license license:gpl2+)))
1204
4e868d22
RG
1205(define-public gnome-contacts
1206 (package
1207 (name "gnome-contacts")
b3492e39 1208 (version "3.34")
4e868d22
RG
1209 (source (origin
1210 (method url-fetch)
1211 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1212 (version-major+minor version) "/"
1213 name "-" version ".tar.xz"))
1214 (sha256
1215 (base32
b3492e39 1216 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
4e868d22
RG
1217 (build-system meson-build-system)
1218 (arguments
b3492e39
KK
1219 `(#:configure-flags '("-Dcheese=false")
1220 #:phases
4e868d22
RG
1221 (modify-phases %standard-phases
1222 (add-after 'unpack 'generate-vapis
1223 (lambda* (#:key inputs #:allow-other-keys)
1224 ;; To generate goa's missing .vapi file
1225 (define goa
1226 (assoc-ref inputs "gnome-online-accounts:lib"))
1227
1228 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1229 "--library=goa-1.0"
1230 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
b3492e39
KK
1231 #t))
1232 (add-after 'unpack 'skip-gtk-update-icon-cache
1233 ;; Don't create 'icon-theme.cache'.
1234 (lambda _
1235 (substitute* "build-aux/meson_post_install.py"
1236 (("gtk-update-icon-cache") "true"))
4e868d22
RG
1237 #t)))))
1238 (native-inputs
1239 `(("glib:bin" ,glib "bin")
4e868d22
RG
1240 ("pkg-config" ,pkg-config)))
1241 (inputs
b3492e39 1242 `(("docbook-xml" ,docbook-xml)
4e868d22
RG
1243 ("dockbook-xsl" ,docbook-xsl)
1244 ("evolution-data-server" ,evolution-data-server)
1245 ("gettext" ,gettext-minimal)
1246 ("gnome-desktop" ,gnome-desktop)
1247 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1248 ("gobject-introspection" ,gobject-introspection)
1249 ("gst-plugins-base" ,gst-plugins-base)
1250 ("gtk+" ,gtk+)
1251 ("libgee" ,libgee)
1252 ("libxslt" ,libxslt)
1253 ("telepathy-glib" ,telepathy-glib)
1254 ("vala" ,vala)))
1255 (propagated-inputs
1256 `(("folks", folks)
1257 ("telepathy-mission-control" ,telepathy-mission-control)))
1258 (synopsis "GNOME's integrated address book")
1259 (description
1260 "GNOME Contacts organizes your contact information from online and
1261offline sources, providing a centralized place for managing your contacts.")
1262 (home-page "https://wiki.gnome.org/Apps/Contacts")
1263 (license license:gpl2+)))
1264
9cc98f8a
CR
1265(define-public gnome-desktop
1266 (package
1267 (name "gnome-desktop")
8a7afc81 1268 (version "3.34.2")
9cc98f8a
CR
1269 (source
1270 (origin
1271 (method url-fetch)
b38e45d8
EB
1272 (uri (string-append "mirror://gnome/sources/" name "/"
1273 (version-major+minor version) "/"
9cc98f8a
CR
1274 name "-" version ".tar.xz"))
1275 (sha256
1276 (base32
8a7afc81 1277 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
e8a26caa 1278 (build-system meson-build-system)
a0fe7c06
CB
1279 (arguments
1280 '(#:phases
1281 (modify-phases %standard-phases
1282 (add-before 'configure 'patch-path
1283 (lambda* (#:key inputs #:allow-other-keys)
1284 (let ((libc (assoc-ref inputs "libc")))
1285 (substitute* "libgnome-desktop/gnome-languages.c"
1286 (("\"locale\"")
1287 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1288 #t)))
1289 (add-before 'check 'pre-check
1290 (lambda* (#:key inputs #:allow-other-keys)
1291 ;; Tests require a running X server and locales.
1292 (system "Xvfb :1 &")
1293 (setenv "DISPLAY" ":1")
1294 (setenv "GUIX_LOCPATH"
1295 (string-append (assoc-ref inputs "glibc-locales")
1296 "/lib/locale"))
1297 #t)))))
9cc98f8a 1298 (native-inputs
e8a26caa
KK
1299 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1300 ("glibc-locales" ,glibc-locales) ; for tests
1301 ("gobject-introspection" ,gobject-introspection)
a8340482 1302 ("itstool" ,itstool)
bcb354ad
SB
1303 ("intltool" ,intltool)
1304 ("pkg-config" ,pkg-config)
e8a26caa
KK
1305 ("xmllint" ,libxml2)
1306 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1307 (propagated-inputs
1308 ;; Required by gnome-desktop-3.0.pc.
1309 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1310 ("gtk+" ,gtk+)
9cc98f8a 1311 ("iso-codes" ,iso-codes)
9863ce20 1312 ("libseccomp" ,libseccomp)
9cc98f8a 1313 ("libx11" ,libx11)
e8a26caa
KK
1314 ("xkeyboard-config" ,xkeyboard-config)))
1315 (inputs
1316 `(("gdk-pixbuf" ,gdk-pixbuf)
1317 ("glib" ,glib)
9cc98f8a
CR
1318 ("libxext" ,libxext)
1319 ("libxkbfile" ,libxkbfile)
e8a26caa 1320 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1321 (home-page "https://www.gnome.org/")
1322 (synopsis
35b9e423 1323 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1324 (description
1325 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1326on the desktop, but that cannot live in the platform for various reasons.
1327There is no API or ABI guarantee, although we are doing our best to provide
1328stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1329
1330The gnome-about program helps find which version of GNOME is installed.")
1331 ; Some bits under the LGPL.
1dd26275 1332 (license license:gpl2+)))
9cc98f8a 1333
995b7261
AE
1334(define-public gnome-doc-utils
1335 (package
1336 (name "gnome-doc-utils")
1337 (version "0.20.10")
1338 (source
1339 (origin
1340 (method url-fetch)
b38e45d8
EB
1341 (uri (string-append "mirror://gnome/sources/" name "/"
1342 (version-major+minor version) "/"
995b7261
AE
1343 name "-" version ".tar.xz"))
1344 (sha256
1345 (base32
1346 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1347 (build-system gnu-build-system)
c4c4cc05 1348 (native-inputs
995b7261 1349 `(("intltool" ,intltool)
b4ce6300 1350 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1351 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1352 ("libxml2" ,libxml2)
1353 ("libxslt" ,libxslt)
1354 ("pkg-config" ,pkg-config)
1355 ("python-2" ,python-2)))
995b7261
AE
1356 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1357 (synopsis
1358 "Documentation utilities for the Gnome project")
1359 (description
1360 "Gnome-doc-utils is a collection of documentation utilities for the
1361Gnome project. It includes xml2po tool which makes it easier to translate
1362and keep up to date translations of documentation.")
1dd26275 1363 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1364
6c4f7022
DC
1365(define-public gnome-disk-utility
1366 (package
1367 (name "gnome-disk-utility")
262e660e 1368 (version "3.34.0")
6c4f7022
DC
1369 (source (origin
1370 (method url-fetch)
1371 (uri (string-append "mirror://gnome/sources/" name "/"
1372 (version-major+minor version) "/"
1373 name "-" version ".tar.xz"))
1374 (sha256
1375 (base32
262e660e 1376 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
4b9a65bf 1377 (build-system meson-build-system)
321c73c3 1378 (arguments
262e660e
KK
1379 '(#:configure-flags '("-Dlogind=libelogind")
1380 #:phases
321c73c3
EF
1381 (modify-phases %standard-phases
1382 (add-after 'unpack 'skip-gtk-update-icon-cache
1383 ;; Don't create 'icon-theme.cache'.
1384 (lambda _
1385 (substitute* "meson_post_install.py"
1386 (("gtk-update-icon-cache") "true"))
1387 #t)))))
6c4f7022
DC
1388 (native-inputs
1389 `(("glib:bin" ,glib "bin")
1390 ("intltool" ,intltool)
1391 ("pkg-config" ,pkg-config)
1392 ("docbook-xml" ,docbook-xml)
1393 ("docbook-xsl" ,docbook-xsl)
1394 ("libxml2" ,libxml2)
1395 ("libxslt" ,libxslt)))
1396 (inputs
262e660e
KK
1397 `(("elogind" ,elogind)
1398 ("glib" ,glib)
6c4f7022
DC
1399 ("appstream-glib" ,appstream-glib)
1400 ("gnome-settings-daemon" ,gnome-settings-daemon)
1401 ("gtk+" ,gtk+)
1402 ("libcanberra" ,libcanberra)
1403 ("libdvdread" ,libdvdread)
1404 ("libnotify" ,libnotify)
1405 ("libpwquality" ,libpwquality)
1406 ("libsecret" ,libsecret)
1407 ("udisks" ,udisks)))
1408 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1409 (synopsis "Disk management utility for GNOME")
1410 (description "Disk management utility for GNOME.")
1411 (license license:gpl2+)))
1412
3d217317
RG
1413(define-public gnome-font-viewer
1414 (package
1415 (name "gnome-font-viewer")
1416 (version "3.30.0")
1417 (source (origin
1418 (method url-fetch)
1419 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1420 (version-major+minor version)
1421 "/gnome-font-viewer-" version ".tar.xz"))
1422 (sha256
1423 (base32
1424 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1425 (build-system meson-build-system)
1426 (arguments
1427 '(#:phases
1428 (modify-phases %standard-phases
1429 (add-after 'unpack 'patch-post-install-script
1430 (lambda _
1431 (substitute* "meson-postinstall.sh"
1432 (("update-desktop-database") (which "true")))
1433 #t)))))
1434 (native-inputs
1435 `(("gettext" ,gettext-minimal)
1436 ("glib:bin" ,glib "bin")
1437 ("pkg-config" ,pkg-config)))
1438 (inputs
1439 `(("glib" ,glib)
1440 ("gnome-desktop" ,gnome-desktop)
1441 ("gtk+" ,gtk+)))
1442 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1443 (synopsis "GNOME Fonts")
1444 (description "Application to show you the fonts installed on your computer
1445for your use as thumbnails. Selecting any thumbnails shows the full view of how
1446the font would look under various sizes.")
1447 (license license:gpl2+)))
1448
8ff49011
RW
1449(define-public gcr
1450 (package
1451 (name "gcr")
1de804da 1452 (version "3.34.0")
8ff49011 1453 (source (origin
0daf0efb
RW
1454 (method url-fetch)
1455 (uri (string-append "mirror://gnome/sources/" name "/"
1456 (version-major+minor version) "/"
1457 name "-" version ".tar.xz"))
1458 (sha256
1459 (base32
1de804da 1460 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1461 (build-system gnu-build-system)
1462 (arguments
0daf0efb
RW
1463 '(#:phases
1464 (modify-phases %standard-phases
1465 ;; These fail because /var/lib/dbus/machine-id is not present in the
1466 ;; build environment.
1467 (add-after 'unpack 'disable-failing-tests
1468 (lambda _
1de804da
MB
1469 (substitute* "Makefile.in"
1470 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1471 ""))
0daf0efb
RW
1472 #t))
1473 (add-before 'check 'pre-check
1474 (lambda _
1475 ;; Some tests expect to write to $HOME.
1476 (setenv "HOME" "/tmp")
1477 #t)))))
8ff49011
RW
1478 (inputs
1479 `(("dbus" ,dbus)
0daf0efb 1480 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1481 ("libgcrypt" ,libgcrypt)))
1482 (native-inputs
1de804da 1483 `(("python" ,python-wrapper) ;for tests
8ff49011 1484 ("pkg-config" ,pkg-config)
1de804da 1485 ("gettext" ,gettext-minimal)
8ff49011 1486 ("glib" ,glib "bin")
2af4f5b0 1487 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1488 ("libxml2" ,libxml2)
bea6b829 1489 ("vala" ,vala)
2af4f5b0 1490 ("xsltproc" ,libxslt)))
8ff49011
RW
1491 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1492 (propagated-inputs
1493 `(("p11-kit" ,p11-kit)
1494 ("glib" ,glib)
1495 ("gtk+" ,gtk+)))
f032d0be 1496 (home-page "https://www.gnome.org")
8ff49011
RW
1497 (synopsis "Libraries for displaying certificates and accessing key stores")
1498 (description
1499 "The GCR package contains libraries used for displaying certificates and
1500accessing key stores. It also provides the viewer for crypto files on the
1501GNOME Desktop.")
1502 (license license:lgpl2.1+)))
1503
88e61bd4
MC
1504(define-public gdl
1505 (package
1506 (name "gdl")
1507 (version "3.34.0")
1508 (source (origin
1509 (method git-fetch)
1510 (uri (git-reference
1511 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1512 (commit (string-append "GDL_" (string-map (match-lambda
1513 (#\. #\_)
1514 (c c))
1515 version)))))
1516 (file-name (git-file-name name version))
1517 (sha256
1518 (base32
1519 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1520 (build-system gnu-build-system)
88e61bd4
MC
1521 (native-inputs
1522 `(("autoconf" ,autoconf)
1523 ("automake" ,automake)
1524 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1525 ("gnome-common" ,gnome-common)
1526 ("gtk-doc" ,gtk-doc)
1527 ("intltool" ,intltool)
1528 ("pkg-config" ,pkg-config)
1529 ("libtool" ,libtool)
1530 ("which" ,which)))
1531 (inputs
1532 `(("libxml2" ,libxml2)))
1533 (propagated-inputs
1534 ;; The gdl-3.0.pc file 'Requires' GTK+.
1535 `(("gtk+" ,gtk+)))
1536 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1537 (synopsis "GNOME docking library")
1538 (description "This library provides docking features for gtk+.")
1539 (license license:lgpl2.1+)))
1540
ca3adf26
MC
1541;;; A minimal variant used to break a cycle with Inkscape.
1542(define-public gdl-minimal
1543 (package
1544 (inherit gdl)
1545 (name "gdl-minimal")
1546 (arguments
70cf0113
EF
1547 '(#:phases
1548 (modify-phases %standard-phases
1549 (add-after 'unpack 'disable-doc-generation
1550 ;; XXX: There is no easy way to disable generating the
1551 ;; documentation.
1552 (lambda _
1553 (substitute* "configure.in"
1554 (("GTK_DOC_CHECK.*") "")
1555 (("docs/.*") ""))
1556 (substitute* "Makefile.am"
1557 (("gdl docs po") "gdl po"))
1558 #t)))))
ca3adf26
MC
1559 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
1560
c1354b90
LC
1561(define-public libgnome-keyring
1562 (package
1563 (name "libgnome-keyring")
5e8aec2c 1564 (version "3.12.0")
c1354b90
LC
1565 (source (origin
1566 (method url-fetch)
b38e45d8
EB
1567 (uri (string-append "mirror://gnome/sources/" name "/"
1568 (version-major+minor version) "/"
1569 name "-" version ".tar.xz"))
c1354b90
LC
1570 (sha256
1571 (base32
5e8aec2c 1572 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1573 (build-system gnu-build-system)
c1354b90 1574 (inputs
c4c4cc05 1575 `(("libgcrypt" ,libgcrypt)
c1354b90 1576 ("dbus" ,dbus)))
c4c4cc05
JD
1577 (native-inputs
1578 `(("pkg-config" ,pkg-config)
426adbe8 1579 ("glib" ,glib "bin")
c4c4cc05 1580 ("intltool" ,intltool)))
c1354b90
LC
1581 (propagated-inputs
1582 ;; Referred to in .h files and .pc.
1583 `(("glib" ,glib)))
f032d0be 1584 (home-page "https://www.gnome.org")
c1354b90
LC
1585 (synopsis "Accessing passwords from the GNOME keyring")
1586 (description
1587 "Client library to access passwords from the GNOME keyring.")
1588
1589 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1590 (license license:lgpl2.0+)))
c1354b90 1591
e99a3d6f
RW
1592(define-public gnome-keyring
1593 (package
1594 (name "gnome-keyring")
14faeadd 1595 (version "3.34.0")
e99a3d6f
RW
1596 (source (origin
1597 (method url-fetch)
1598 (uri (string-append "mirror://gnome/sources/" name "/"
1599 (version-major+minor version) "/"
1600 name "-" version ".tar.xz"))
1601 (sha256
1602 (base32
14faeadd 1603 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
e99a3d6f
RW
1604 (build-system gnu-build-system)
1605 (arguments
1606 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1607 ;not exist
1608 #:configure-flags
1609 (list
1610 (string-append "--with-pkcs11-config="
1611 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1612 (string-append "--with-pkcs11-modules="
1613 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1614 #:phases
1615 (modify-phases %standard-phases
ab35cc6e
RW
1616 (add-after 'unpack 'fix-/bin/sh-reference
1617 (lambda _
1618 (substitute* "po/Makefile.in.in"
1619 (("/bin/sh") (which "sh")))
1620 #t))
5120f24f
RW
1621 (add-after 'unpack 'fix-docbook
1622 (lambda* (#:key inputs #:allow-other-keys)
1623 (substitute* "docs/Makefile.am"
1624 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1625 (string-append (assoc-ref inputs "docbook-xsl")
1626 "/xml/xsl/docbook-xsl-"
1627 ,(package-version docbook-xsl)
1628 "/manpages/docbook.xsl")))
1629 (setenv "XML_CATALOG_FILES"
1630 (string-append (assoc-ref inputs "docbook-xml")
1631 "/xml/dtd/docbook/catalog.xml"))
1632 ;; Rerun the whole thing to avoid version mismatch ("This is
1633 ;; Automake 1.15.1, but the definition used by this
1634 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1635 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1636 (invoke "autoconf")
1637 (invoke "aclocal")
1638 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1639 (inputs
1640 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1641 ("linux-pam" ,linux-pam)
ab35cc6e 1642 ("openssh" ,openssh)
e99a3d6f
RW
1643 ("dbus" ,dbus)
1644 ("gcr" ,gcr)))
1645 (native-inputs
1646 `(("pkg-config" ,pkg-config)
1647 ("glib" ,glib "bin")
5120f24f 1648 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1649 ("python" ,python-2) ;for tests
1650 ("intltool" ,intltool)
1651 ("autoconf" ,autoconf)
1652 ("automake" ,automake)
1653 ("libxslt" ,libxslt) ;for documentation
1654 ("docbook-xml" ,docbook-xml-4.2)
1655 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1656 (home-page "https://www.gnome.org")
e99a3d6f
RW
1657 (synopsis "Daemon to store passwords and encryption keys")
1658 (description
1659 "gnome-keyring is a program that keeps passwords and other secrets for
1660users. It is run as a daemon in the session, similar to ssh-agent, and other
1661applications locate it via an environment variable or D-Bus.
1662
1663The program can manage several keyrings, each with its own master password,
1664and there is also a session keyring which is never stored to disk, but
1665forgotten when the session ends.")
1666 (license license:lgpl2.1+)))
1667
c1354b90
LC
1668(define-public evince
1669 (package
1670 (name "evince")
6f64a05e 1671 (version "3.36.1")
c1354b90
LC
1672 (source (origin
1673 (method url-fetch)
ac631328 1674 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1675 (version-major+minor version) "/"
ac631328 1676 "evince-" version ".tar.xz"))
c1354b90
LC
1677 (sha256
1678 (base32
6f64a05e 1679 "1msbb66lasikpfjpkwsvi7h22hqmk275850ilpdqwbd0b39vzf4c"))))
121de2e1 1680 (build-system glib-or-gtk-build-system)
c1354b90 1681 (arguments
169b8f77 1682 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1683 #:phases
1684 (modify-phases %standard-phases
1685 (add-before 'install 'skip-gtk-update-icon-cache
1686 ;; Don't create 'icon-theme.cache'.
1687 (lambda _
1688 (substitute* "data/Makefile"
1689 (("gtk-update-icon-cache") "true"))
1690 #t)))))
c1354b90 1691 (inputs
9a096881
KK
1692 `(("libarchive" ,libarchive)
1693 ("libgxps" ,libgxps)
1694 ("libspectre" ,libspectre)
c769cf9f 1695 ("djvulibre" ,djvulibre)
c1354b90
LC
1696 ("ghostscript" ,ghostscript)
1697 ("poppler" ,poppler)
c769cf9f
SB
1698 ("libtiff" ,libtiff)
1699 ;; TODO:
c769cf9f
SB
1700 ;; Build libkpathsea as a shared library for DVI support.
1701 ;; ("libkpathsea" ,texlive-bin)
1702 ("gnome-desktop" ,gnome-desktop)
c1354b90 1703 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1704 ("gspell" ,gspell)
c1354b90 1705 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1706 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1707 ("gdk-pixbuf" ,gdk-pixbuf)
1708 ("atk" ,atk)
1709 ("pango" ,pango)
1710 ("gtk+" ,gtk+)
1711 ("glib" ,glib)
1712 ("libxml2" ,libxml2)
c1354b90
LC
1713 ("libsm" ,libsm)
1714 ("libice" ,libice)
96e42467 1715 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1716 ("dconf" ,dconf)
1717 ("libcanberra" ,libcanberra)
c769cf9f 1718 ("libsecret" ,libsecret)
a271096b 1719
c1354b90
LC
1720 ;; For tests.
1721 ("dogtail" ,python2-dogtail)))
96e42467 1722 (native-inputs
bcb354ad
SB
1723 `(("itstool" ,itstool)
1724 ("intltool" ,intltool)
426adbe8 1725 ("glib" ,glib "bin")
169b8f77 1726 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1727 ("pkg-config" ,pkg-config)
1728 ("xmllint" ,libxml2)))
6f64a05e 1729 (home-page "https://www.gnome.org/projects/evince/")
c1354b90
LC
1730 (synopsis "GNOME's document viewer")
1731 (description
1732 "Evince is a document viewer for multiple document formats. It
1733currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1734of Evince is to replace the multiple document viewers that exist
96e42467 1735on the GNOME Desktop with a single simple application.")
1dd26275 1736 (license license:gpl2+)))
c1354b90 1737
22e32e69
AE
1738(define-public gsettings-desktop-schemas
1739 (package
1740 (name "gsettings-desktop-schemas")
8468117e 1741 (version "3.34.0")
22e32e69
AE
1742 (source
1743 (origin
1744 (method url-fetch)
1745 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1746 (version-major+minor version) "/"
22e32e69
AE
1747 name "-" version ".tar.xz"))
1748 (sha256
1749 (base32
8468117e 1750 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
c900dabd 1751 (build-system meson-build-system)
65209ffa
LC
1752 (arguments
1753 '(#:phases (modify-phases %standard-phases
3861fb1c 1754 (add-after 'unpack 'patch-schemas
65209ffa 1755 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1756 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1757 (substitute* (find-files "schemas"
1758 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1759 ;; Provide the correct file name of the default GNOME
1760 ;; background, 'adwaita-timed.xml'.
65209ffa 1761 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1762 (string-append theme "/share/backgrounds/gnome"))
1763 ;; Do not reference fonts, that may not exist.
1764 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1765 #t))))))
22e32e69 1766 (inputs
65209ffa
LC
1767 `(("glib" ,glib)
1768 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1769 (native-inputs
1770 `(("intltool" ,intltool)
426adbe8 1771 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1772 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1773 ("pkg-config" ,pkg-config)))
1774 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1775 (synopsis
1776 "GNOME settings for various desktop components")
1777 (description
1778 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1779for settings shared by various components of the GNOME desktop.")
1dd26275 1780 (license license:lgpl2.1+)))
22e32e69 1781
27477d2d
AE
1782(define-public icon-naming-utils
1783 (package
1784 (name "icon-naming-utils")
1785 (version "0.8.90")
1786 (source
1787 (origin
1788 (method url-fetch)
5cc3096c 1789 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1790 version ".tar.bz2"))
1791 (sha256
1792 (base32
1793 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1794 (build-system gnu-build-system)
1795 (inputs
1796 `(("perl" ,perl)
1797 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1798 (arguments
1799 '(#:phases
dc1d3cde
KK
1800 (modify-phases %standard-phases
1801 (add-after 'install 'set-load-paths
1802 ;; Tell 'icon-name-mapping' where XML::Simple is.
1803 (lambda* (#:key outputs #:allow-other-keys)
1804 (let* ((out (assoc-ref outputs "out"))
1805 (prog (string-append out "/libexec/icon-name-mapping")))
1806 (wrap-program
1807 prog
1808 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1809 #t)))))
27477d2d
AE
1810 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1811 (synopsis
1812 "Utility to implement the Freedesktop Icon Naming Specification")
1813 (description
1814 "To help with the transition to the Freedesktop Icon Naming
1815Specification, the icon naming utility maps the icon names used by the
1816GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1817 (license license:lgpl2.1+)))
27477d2d 1818
7d3f3651
AE
1819(define-public gnome-icon-theme
1820 (package
1821 (name "gnome-icon-theme")
b32f58dd 1822 (version "3.12.0")
7d3f3651
AE
1823 (source
1824 (origin
1825 (method url-fetch)
1826 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1827 (version-major+minor version) "/"
7d3f3651
AE
1828 name "-" version ".tar.xz"))
1829 (sha256
1830 (base32
b32f58dd 1831 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1832 (build-system gnu-build-system)
5613c27d
SB
1833 (arguments
1834 '(#:configure-flags
1835 ;; Don't create 'icon-theme.cache'.
1836 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1837 (true (string-append coreutils "/bin/true")))
1838 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1839 (native-inputs
5613c27d 1840 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1841 ("intltool" ,intltool)
1842 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1843 (home-page "https://wiki.gnome.org/Personalization")
1844 (synopsis "GNOME icon theme")
1845 (description "Icons for the GNOME desktop.")
1dd26275 1846 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1847
14eeefa2
SB
1848;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1849(define-public adwaita-icon-theme
1850 (package (inherit gnome-icon-theme)
1851 (name "adwaita-icon-theme")
e21788f2 1852 (version "3.34.3")
14eeefa2
SB
1853 (source (origin
1854 (method url-fetch)
1855 (uri (string-append "mirror://gnome/sources/" name "/"
1856 (version-major+minor version) "/"
1857 name "-" version ".tar.xz"))
1858 (sha256
1859 (base32
e21788f2 1860 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
5613c27d
SB
1861 (native-inputs
1862 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1863
ae792dba
RW
1864(define-public tango-icon-theme
1865 (package
1866 (name "tango-icon-theme")
1867 (version "0.8.90")
1868 (source (origin
1869 (method url-fetch)
1870 (uri (string-append "http://tango.freedesktop.org/releases/"
1871 "tango-icon-theme-" version ".tar.bz2"))
1872 (sha256
1873 (base32
1874 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1875 (build-system gnu-build-system)
1876 (native-inputs
1877 `(("icon-naming-utils" ,icon-naming-utils)
1878 ("intltool" ,intltool)
1879 ("imagemagick" ,imagemagick)
1880 ("pkg-config" ,pkg-config)))
1881 (home-page "http://tango-project.org/")
1882 (synopsis "Tango icon theme")
1883 (description "This is an icon theme that follows the Tango visual
1884guidelines.")
1885 (license license:public-domain)))
1886
9167f8e6
LC
1887(define-public shared-mime-info
1888 (package
1889 (name "shared-mime-info")
404e386e 1890 (version "1.15")
9167f8e6
LC
1891 (source (origin
1892 (method url-fetch)
404e386e
MB
1893 (uri (string-append
1894 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1895 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1896 ".tar.xz"))
9167f8e6
LC
1897 (sha256
1898 (base32
404e386e 1899 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1900 (build-system gnu-build-system)
1901 (arguments
1902 ;; The build system appears not to be parallel-safe.
1903 '(#:parallel-build? #f))
1904 (inputs
1905 `(("glib" ,glib)
c4c4cc05 1906 ("libxml2" ,libxml2)))
9167f8e6 1907 (native-inputs
404e386e
MB
1908 `(("gettext" ,gettext-minimal)
1909 ("itstool" ,itstool)
c4c4cc05 1910 ("pkg-config" ,pkg-config)))
57e7d748 1911 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1912 (synopsis "Database of common MIME types")
1913 (description
1914 "The shared-mime-info package contains the core database of common types
1915and the update-mime-database command used to extend it. It requires glib2 to
1916be installed for building the update command. Additionally, it uses intltool
1917for translations, though this is only a dependency for the maintainers. This
1918database is translated at Transifex.")
1dd26275 1919 (license license:gpl2+)))
9167f8e6 1920
dd1fcddc
CB
1921(define-public system-config-printer
1922 (package
1923 (name "system-config-printer")
fa01e10d 1924 (version "1.5.12")
a5643044
TGR
1925 (source
1926 (origin
1927 (method url-fetch)
1928 (uri (string-append
1929 "https://github.com/OpenPrinting/system-config-printer/releases/"
1930 "download/" version
1931 "/system-config-printer-" version ".tar.xz"))
1932 (sha256
fa01e10d 1933 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1934 (build-system glib-or-gtk-build-system)
1935 (arguments
1936 `(#:imported-modules ((guix build python-build-system)
1937 ,@%glib-or-gtk-build-system-modules)
1938 #:phases
1939 (modify-phases %standard-phases
1940 (add-after 'unpack 'patch-Makefile.am
1941 (lambda _
1942 ;; The Makefile generates some scripts, so set a valid shebang
1943 (substitute* "Makefile.am"
1944 (("/bin/bash") (which "bash")))
1945 (delete-file "configure")
1946 #t))
1947 (add-after 'unpack 'patch-docbook-xml
1948 (lambda* (#:key inputs #:allow-other-keys)
1949 ;; Modify the man XML otherwise xmlto tries to access the network
1950 (substitute* "man/system-config-printer.xml"
1951 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1952 (string-append (assoc-ref inputs "docbook-xml")
1953 "/xml/dtd/docbook/")))
1954 #t))
1955 (add-after 'install 'wrap-for-python
1956 (@@ (guix build python-build-system) wrap))
1957 (add-after 'install 'wrap
1958 (lambda* (#:key outputs #:allow-other-keys)
1959 (let ((out (assoc-ref outputs "out"))
1960 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1961 (for-each
1962 (lambda (program)
1963 (wrap-program program
1964 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1965 (map (lambda (name)
1966 (string-append out "/bin/" name))
1967 '("system-config-printer"
1968 "system-config-printer-applet"
1969 "install-printerdriver"
1970 "scp-dbus-service"))))
1971 #t)))))
1972 (inputs
1973 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1974 ("gobject-introspection" ,gobject-introspection)
1975 ("python" ,python)
1976 ("cups" ,cups)
1977 ("python-dbus" ,python-dbus)
1978 ("python-pygobject" ,python-pygobject)
1979 ("python-pycups" ,python-pycups)
1980 ("python-requests" ,python-requests)
1981 ("python-pycairo" ,python-pycairo)
1982 ("libnotify" ,libnotify)
1983 ("packagekit" ,packagekit)))
1984 (native-inputs
1985 `(("pkg-config" ,pkg-config)
1986 ("desktop-file-utils" ,desktop-file-utils)
1987 ("glib" ,glib)
1988 ("autoconf" ,autoconf)
1989 ("automake" ,automake)
1990 ("intltool" ,intltool)
1991 ("xmlto" ,xmlto)
1992 ("docbook-xml" ,docbook-xml-4.1.2)
1993 ("docbook-xsl" ,docbook-xsl)
1994 ("libxml2" ,libxml2)))
1995 (home-page "https://github.com/zdohnal/system-config-printer")
1996 (synopsis "CUPS administration tool")
1997 (description
1998 "system-config-printer is a CUPS administration tool. It's written in
1999Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2000configuring CUPS.")
2001 (license license:gpl2+)))
2002
bef4dd92
AE
2003(define-public hicolor-icon-theme
2004 (package
2005 (name "hicolor-icon-theme")
851cb6dd 2006 (version "0.17")
bef4dd92
AE
2007 (source
2008 (origin
2009 (method url-fetch)
5cc3096c 2010 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 2011 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
2012 (sha256
2013 (base32
851cb6dd 2014 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
2015 (build-system gnu-build-system)
2016 (arguments
2017 `(#:tests? #f)) ; no check target
57e7d748 2018 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
2019 (synopsis
2020 "Freedesktop icon theme")
2021 (description
2022 "Freedesktop icon theme.")
1dd26275 2023 (license license:gpl2)))
bef4dd92 2024
d9c1a22b
AE
2025(define-public libnotify
2026 (package
2027 (name "libnotify")
195bfa68 2028 (version "0.7.7")
d9c1a22b
AE
2029 (source
2030 (origin
2031 (method url-fetch)
2032 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2033 (version-major+minor version) "/"
d9c1a22b
AE
2034 name "-" version ".tar.xz"))
2035 (sha256
2036 (base32
195bfa68 2037 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 2038 (build-system gnu-build-system)
6acf6cec
MB
2039 (arguments
2040 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
2041 (propagated-inputs
2042 `(;; In Requires of libnotify.pc.
2043 ("gdk-pixbuf" ,gdk-pixbuf)
2044 ("glib" ,glib)))
d9c1a22b 2045 (inputs
7ef08efa 2046 `(("gtk+" ,gtk+)
c4c4cc05
JD
2047 ("libpng" ,libpng)))
2048 (native-inputs
426adbe8 2049 `(("pkg-config" ,pkg-config)
277a7d82
JN
2050 ("glib" ,glib "bin")
2051 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
2052 (home-page "https://developer-next.gnome.org/libnotify/")
2053 (synopsis
2054 "GNOME desktop notification library")
2055 (description
2056 "Libnotify is a library that sends desktop notifications to a
35b9e423 2057notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
2058notifications can be used to inform the user about an event or display
2059some form of information without getting in the user's way.")
1dd26275 2060 (license license:lgpl2.1+)))
7a8605ce
CR
2061
2062(define-public libpeas
2063 (package
2064 (name "libpeas")
f2d56e39 2065 (version "1.24.1")
7a8605ce
CR
2066 (source
2067 (origin
2068 (method url-fetch)
2069 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2070 (version-major+minor version) "/"
7a8605ce
CR
2071 name "-" version ".tar.xz"))
2072 (sha256
2073 (base32
f2d56e39
MB
2074 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2075 (build-system meson-build-system)
2076 (arguments
2077 '(#:phases
2078 (modify-phases %standard-phases
2079 (add-before 'check 'start-xserver
2080 (lambda* (#:key inputs #:allow-other-keys)
2081 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2082 (disp ":1"))
2083 (setenv "DISPLAY" disp)
2084 ;; Tests require a running X server.
2085 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2086 #t))))))
7a8605ce 2087 (inputs
2ed6522a
SB
2088 `(("gtk+" ,gtk+)
2089 ("glade" ,glade3)
2ed6522a
SB
2090 ("python" ,python)
2091 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2092 (native-inputs
2093 `(("pkg-config" ,pkg-config)
f2d56e39 2094 ("gettext" ,gettext-minimal)
93622993 2095 ("glib:bin" ,glib "bin")
141aed80 2096 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2097 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2098 (propagated-inputs
2099 ;; The .pc file "Requires" gobject-introspection.
2100 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2101 (home-page "https://wiki.gnome.org/Libpeas")
2102 (synopsis "GObject plugin system")
2103 (description
d1e4ad1b
TGR
2104 "Libpeas is a gobject-based plugin engine, targeted at giving every
2105application the chance to assume its own extensibility. It also has a set of
2106features including, but not limited to: multiple extension points; on-demand
2107(lazy) programming language support for C, Python and JS; simplicity of the
2108API.")
1dd26275 2109 (license license:lgpl2.0+)))
ed19903d
JD
2110
2111(define-public gtkglext
2112 (package
2113 (name "gtkglext")
2114 (version "1.2.0")
2115 (source (origin
2116 (method url-fetch)
0f971a04 2117 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2118 version "/gtkglext-" version ".tar.gz"))
2119 (sha256
2120 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2121 (patches (search-patches
2122 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2123 (build-system gnu-build-system)
14e2f61a
RW
2124 (arguments
2125 `(#:phases
2126 (modify-phases %standard-phases
2127 ;; Fix a collision between a local variable and a definition from
2128 ;; glibc's string.h.
2129 (add-after 'unpack 'fix-collision
2130 (lambda _
2131 (substitute* "gdk/gdkglshapes.c"
2132 ((" index") " triangle_index"))
2133 #t)))))
ed19903d
JD
2134 (inputs `(("gtk+" ,gtk+-2)
2135 ("mesa" ,mesa)
cc8b02f4 2136 ("glu" ,glu)
ed19903d
JD
2137 ("libx11" ,libx11)
2138 ("libxt" ,libxt)))
426adbe8
LC
2139 (native-inputs `(("pkg-config" ,pkg-config)
2140 ("glib" ,glib "bin")))
a83b6a06 2141 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2142 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2143 (synopsis "OpenGL extension to GTK+")
35b9e423 2144 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2145additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2146API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2147 (license license:lgpl2.1+)))
3600420e
JD
2148
2149(define-public glade3
2150 (package
2151 (name "glade")
031315e4 2152 (version "3.36.0")
b38e45d8
EB
2153 (source (origin
2154 (method url-fetch)
2155 (uri (string-append "mirror://gnome/sources/" name "/"
2156 (version-major+minor version) "/"
f5ca44b8 2157 name "-" version ".tar.xz"))
3600420e 2158 (sha256
f714d9fe 2159 (base32
031315e4 2160 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
6983ba56 2161 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
2162 (arguments
2163 `(#:tests? #f ; needs X, GL, and software rendering
2164 #:phases
2165 (modify-phases %standard-phases
2166 (add-before 'configure 'fix-docbook
2167 (lambda* (#:key inputs #:allow-other-keys)
2168 (substitute* "man/Makefile.in"
2169 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2170 (string-append (assoc-ref inputs "docbook-xsl")
2171 "/xml/xsl/docbook-xsl-"
2172 ,(package-version docbook-xsl)
2173 "/manpages/docbook.xsl")))
2174 #t)))))
3600420e 2175 (inputs
f5ca44b8 2176 `(("gtk+" ,gtk+)
3600420e
JD
2177 ("libxml2" ,libxml2)))
2178 (native-inputs
2179 `(("intltool" ,intltool)
f5ca44b8
RW
2180 ("itstool" ,itstool)
2181 ("libxslt" ,libxslt) ;for xsltproc
2182 ("docbook-xml" ,docbook-xml-4.2)
2183 ("docbook-xsl" ,docbook-xsl)
2184 ("python" ,python-2)
3600420e
JD
2185 ("pkg-config" ,pkg-config)))
2186 (home-page "https://glade.gnome.org")
2187 (synopsis "GTK+ rapid application development tool")
2188 (description "Glade is a rapid application development (RAD) tool to
2189enable quick & easy development of user interfaces for the GTK+ toolkit and
2190the GNOME desktop environment.")
1dd26275
LC
2191 (license license:lgpl2.0+)))
2192
2193(define-public libcroco
2194 (package
2195 (name "libcroco")
8bdacad2 2196 (version "0.6.13")
1dd26275
LC
2197 (source (origin
2198 (method url-fetch)
b38e45d8
EB
2199 (uri (string-append "mirror://gnome/sources/" name "/"
2200 (version-major+minor version) "/"
2201 name "-" version ".tar.xz"))
1dd26275
LC
2202 (sha256
2203 (base32
8bdacad2 2204 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2205 (build-system gnu-build-system)
2206 (native-inputs
2207 `(("pkg-config" ,pkg-config)))
2208 (inputs
2209 `(("glib" ,glib)
2210 ("libxml2" ,libxml2)
2211 ("zlib" ,zlib)))
2212 (home-page "https://github.com/GNOME/libcroco")
2213 (synopsis "CSS2 parsing and manipulation library")
2214 (description
2215 "Libcroco is a standalone CSS2 parsing and manipulation library.
2216The parser provides a low level event driven SAC-like API and a CSS object
2217model like API. Libcroco provides a CSS2 selection engine and an experimental
2218XML/CSS rendering engine.")
2219
2220 ;; LGPLv2.1-only.
2221 (license license:lgpl2.1)))
25178594
LC
2222
2223(define-public libgsf
2224 (package
2225 (name "libgsf")
2b9b854c 2226 (version "1.14.47")
25178594
LC
2227 (source (origin
2228 (method url-fetch)
b38e45d8
EB
2229 (uri (string-append "mirror://gnome/sources/" name "/"
2230 (version-major+minor version) "/"
2231 name "-" version ".tar.xz"))
25178594
LC
2232 (sha256
2233 (base32
2b9b854c 2234 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
25178594 2235 (build-system gnu-build-system)
23904adb
MB
2236 (arguments
2237 '(#:configure-flags '("--disable-static")))
25178594 2238 (native-inputs
0a1559cc
MB
2239 `(("pkg-config" ,pkg-config)
2240 ("gettext" ,gettext-minimal)
2241
2242 ;; For tests.
2243 ("perl" ,perl)
2244 ("perl-xml-parser" ,perl-xml-parser)))
25178594 2245 (inputs
4ffa9f6b 2246 `(("zlib" ,zlib)
25178594
LC
2247 ("bzip2" ,bzip2)))
2248 (propagated-inputs
2249 `(("gdk-pixbuf" ,gdk-pixbuf)
2250 ("glib" ,glib)
2251 ("libxml2" ,libxml2)))
f032d0be 2252 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2253 (synopsis "GNOME's Structured File Library")
2254 (description
2255 "Libgsf aims to provide an efficient extensible I/O abstraction for
2256dealing with different structured file formats.")
2257
2258 ;; LGPLv2.1-only.
2259 (license license:lgpl2.1)))
63016e7c
LC
2260
2261(define-public librsvg
f67417a1
MB
2262 (package
2263 (name "librsvg")
c1cc52a2 2264 (version "2.40.21")
f67417a1
MB
2265 (source (origin
2266 (method url-fetch)
2267 (uri (string-append "mirror://gnome/sources/" name "/"
2268 (version-major+minor version) "/"
2269 name "-" version ".tar.xz"))
2270 (sha256
2271 (base32
c1cc52a2 2272 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2273 (build-system gnu-build-system)
2274 (arguments
2275 `(#:configure-flags
2276 (list "--disable-static"
2277 "--enable-vala") ; needed for e.g. gnome-mines
2278 #:phases
2279 (modify-phases %standard-phases
2280 (add-before 'configure 'pre-configure
2281 (lambda* (#:key inputs #:allow-other-keys)
2282 (substitute* "gdk-pixbuf-loader/Makefile.in"
2283 ;; By default the gdk-pixbuf loader is installed under
2284 ;; gdk-pixbuf's prefix. Work around that.
2285 (("gdk_pixbuf_moduledir = .*$")
2286 (string-append "gdk_pixbuf_moduledir = "
2287 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2288 "loaders\n"))
2289 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2290 (("gdk_pixbuf_cache_file = .*$")
2291 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2292 #t))
2293 (add-before 'check 'remove-failing-tests
2294 (lambda _
2295 (with-directory-excursion "tests/fixtures/reftests"
2296 (for-each delete-file
2297 '(;; This test fails on i686:
2298 "svg1.1/masking-path-04-b.svg"
2299 ;; This test fails on armhf:
2300 "svg1.1/masking-mask-01-b.svg"
2301 ;; This test fails on aarch64:
2302 "bugs/777834-empty-text-children.svg")))
2303 #t)))))
2304 (native-inputs
2305 `(("pkg-config" ,pkg-config)
2306 ("vala" ,vala)
2307 ("glib" ,glib "bin") ; glib-mkenums, etc.
2308 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2309 (inputs
869b63cb
MB
2310 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2311 ;; this ancient version of librsvg.
2312 ("pango" ,pango-1.42)
f67417a1
MB
2313 ("libcroco" ,libcroco)
2314 ("bzip2" ,bzip2)
2315 ("libgsf" ,libgsf)
2316 ("libxml2" ,libxml2)))
2317 (propagated-inputs
2318 ;; librsvg-2.0.pc refers to all of that.
2319 `(("cairo" ,cairo)
2320 ("gdk-pixbuf" ,gdk-pixbuf)
2321 ("glib" ,glib)))
2322 (home-page "https://wiki.gnome.org/LibRsvg")
2323 (synopsis "Render SVG files using Cairo")
2324 (description
2325 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2326library.")
2327 (license license:lgpl2.0+)))
2328
2329(define-public librsvg-next
63016e7c 2330 (package
25d39a2a 2331 (inherit librsvg)
63016e7c 2332 (name "librsvg")
3276e123 2333 (version "2.46.4")
69568670
EF
2334 (source (origin
2335 (method url-fetch)
2336 (uri (string-append "mirror://gnome/sources/librsvg/"
2337 (version-major+minor version) "/"
2338 "librsvg-" version ".tar.xz"))
2339 (sha256
2340 (base32
2341 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2342 (modules '((guix build utils)))
2343 (snippet
2344 '(begin (delete-file-recursively "vendor")
2345 ;; Don't demand an exact version for string_cache
2346 (substitute* "rsvg_internals/Cargo.toml"
2347 (("\"=") "\""))
2348 #t))))
2349 (build-system cargo-build-system)
63016e7c 2350 (arguments
69568670
EF
2351 `(#:modules ((guix build cargo-build-system)
2352 (guix build utils)
2353 ((guix build gnu-build-system) #:prefix gnu:))
2354 #:vendor-dir "vendor"
2355 #:cargo-inputs
2356 (("rust-bitflags" ,rust-bitflags-1)
2357 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2358 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2359 ("rust-cssparser" ,rust-cssparser-0.25)
2360 ("rust-data-url" ,rust-data-url-0.1)
2361 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2362 ("rust-encoding" ,rust-encoding-0.2)
2363 ("rust-float-cmp" ,rust-float-cmp-0.5)
2364 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2365 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2366 ("rust-gio" ,rust-gio-0.7)
2367 ("rust-gio-sys" ,rust-gio-sys-0.9)
2368 ("rust-glib" ,rust-glib-0.8)
2369 ("rust-glib-sys" ,rust-glib-sys-0.9)
2370 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2371 ("rust-itertools" ,rust-itertools-0.8)
2372 ("rust-language-tags" ,rust-language-tags-0.2)
2373 ("rust-lazy-static" ,rust-lazy-static-1)
2374 ("rust-libc" ,rust-libc-0.2)
2375 ("rust-locale-config" ,rust-locale-config-0.3)
2376 ("rust-markup5ever" ,rust-markup5ever-0.9)
2377 ("rust-nalgebra" ,rust-nalgebra-0.18)
2378 ("rust-num-traits" ,rust-num-traits-0.2)
2379 ("rust-pkg-config" ,rust-pkg-config-0.3)
2380 ("rust-pango" ,rust-pango-0.7)
2381 ("rust-pango-sys" ,rust-pango-sys-0.9)
2382 ("rust-pangocairo" ,rust-pangocairo-0.8)
2383 ("rust-phf" ,rust-phf-0.7)
2384 ("rust-rayon" ,rust-rayon-1.3)
2385 ("rust-rctree" ,rust-rctree-0.3)
2386 ("rust-string-cache" ,rust-string-cache-0.7)
2387 ("rust-regex" ,rust-regex-1.3)
2388 ("rust-url" ,rust-url-2.1)
2389 ("rust-xml-rs" ,rust-xml-rs-0.8))
2390 #:cargo-development-inputs
2391 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2392 ("rust-criterion" ,rust-criterion-0.2))
ec47c07d 2393 #:phases
b6239e45 2394 (modify-phases %standard-phases
69568670 2395 (add-after 'unpack 'prepare-for-build
ec47c07d 2396 (lambda _
69568670
EF
2397 ;; In lieu of #:make-flags
2398 (setenv "CC" "gcc")
2399 ;; Something about the build environment resists building
2400 ;; successfully with the '--locked' flag.
2401 (substitute* '("Makefile.am"
2402 "Makefile.in")
2403 (("--locked") ""))
2404 #t))
b6239e45 2405 (add-before 'configure 'pre-configure
69568670 2406 (lambda _
b6239e45
EF
2407 (substitute* "gdk-pixbuf-loader/Makefile.in"
2408 ;; By default the gdk-pixbuf loader is installed under
2409 ;; gdk-pixbuf's prefix. Work around that.
2410 (("gdk_pixbuf_moduledir = .*$")
2411 (string-append "gdk_pixbuf_moduledir = "
2412 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2413 "loaders\n"))
2414 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2415 (("gdk_pixbuf_cache_file = .*$")
2416 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2417 #t))
69568670
EF
2418 (add-after 'configure 'gnu-configure
2419 (assoc-ref gnu:%standard-phases 'configure))
2420 ;(lambda* (#:key outputs #:allow-other-keys)
2421 ; ((assoc-ref gnu:%standard-phases 'configure)
2422 ; #:outputs outputs
2423 ; #:configure-flags ("--disable-static"
2424 ; "--enable-vala"))))
2425 (add-after 'configure 'dont-vendor-self
2426 (lambda* (#:key vendor-dir #:allow-other-keys)
2427 ;; Don't keep the whole tarball in the vendor directory
2428 (delete-file-recursively
2429 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2430 #t))
2431 (replace 'build
2432 (assoc-ref gnu:%standard-phases 'build))
2433 (replace 'check
2434 (lambda* args
2435 ((assoc-ref gnu:%standard-phases 'check)
2436 #:test-target "check")))
2437 (replace 'install
2438 (assoc-ref gnu:%standard-phases 'install))
ec47c07d 2439 (add-before 'check 'remove-failing-tests
b6239e45 2440 (lambda _
64a153bd
MW
2441 (with-directory-excursion "tests/fixtures/reftests"
2442 (for-each delete-file
ec47c07d
MB
2443 '(;; The images produced by these tests differ slightly
2444 ;; from their reference counterparts due to differences
2445 ;; in the build environment (missing fonts, etc). See
2446 ;; <tests/README.md> for details.
2447 ;; These fail on x86_64.
2448 "svg1.1/coords-viewattr-02-b.svg"
2449 "svg1.1/filters-composite-04-f.svg"
2450 "svg1.1/filters-image-01-b.svg"
2451 "svg1.1/filters-conv-02-f.svg"
2452 "svg1.1/filters-conv-04-f.svg"
2453 ;; This test fails on i686:
64a153bd 2454 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2455 ;; This test fails on armhf:
2456 "svg1.1/masking-mask-01-b.svg"
64a153bd 2457 ;; This test fails on aarch64:
ec47c07d 2458 "bugs/777834-empty-text-children.svg")))
b6239e45 2459 #t)))))
cf9dad6c 2460 (license license:lgpl2.1+)))
5698b8b8
JD
2461
2462(define-public libidl
2463 (package
2464 (name "libidl")
2465 (version "0.8.14")
2466 (source (origin
2467 (method url-fetch)
80a06e62
EF
2468 (uri (string-append "mirror://gnome/sources/libIDL/"
2469 (version-major+minor version) "/"
2470 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2471 (sha256
2472 (base32
2473 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2474 (build-system gnu-build-system)
2475 (inputs `(("glib" ,glib)))
2476 (native-inputs
2477 `(("pkg-config" ,pkg-config)
b3546174 2478 ("flex" ,flex)
5698b8b8
JD
2479 ("bison" ,bison)))
2480 (home-page "http://freecode.com/projects/libidl")
2481 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2482 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2483Definition Language (idl) files, which is a specification for defining
2484portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2485GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2486functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2487 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2488 (license license:lgpl2.0+)))
2489
2490
2491(define-public orbit2
2492 (package
2493 (name "orbit2")
2494 (version "2.14.19")
2495 (source (origin
2496 (method url-fetch)
2e6ecc5c 2497 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2498 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2499 (version-major+minor version) "/"
2500 upstream-name "-" version ".tar.bz2")))
5698b8b8 2501 (sha256
a124bbd2
SB
2502 (base32
2503 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2504 (build-system gnu-build-system)
2505 (arguments
c2d837b9
MB
2506 `(;; The "timeout-server" test hangs when run in parallel.
2507 #:parallel-tests? #f
2508 #:configure-flags
8aad2e32
LC
2509 '(;; We don't need static libraries, plus they don't build reproducibly
2510 ;; (non-deterministic ordering of .o files in the archive.)
2511 "--disable-static"
2512
2513 ;; The programmer kindly gives us a hook to turn off deprecation
2514 ;; warnings ...
2515 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2516 ;; ... which they then completly ignore !!
2517 #:phases
dc1d3cde
KK
2518 (modify-phases %standard-phases
2519 (add-before 'configure 'ignore-deprecations
2520 (lambda _
2521 (substitute* "linc2/src/Makefile.in"
2522 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2523 #t)))))
5698b8b8
JD
2524 (inputs `(("glib" ,glib)
2525 ("libidl" ,libidl)))
2526 (native-inputs
2527 `(("pkg-config" ,pkg-config)))
2528 (home-page "https://projects.gnome.org/orbit2/")
2529 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2530 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2531featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2532 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2533 ;; a version. SOME of the code files have licence notices for GPLv2+.
2534 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2535 (license license:gpl2+)
2536 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2537
2538
2539(define-public libbonobo
2540 (package
2541 (name "libbonobo")
2542 (version "2.32.1")
2543 (source (origin
2544 (method url-fetch)
5becd025 2545 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2546 (version-major+minor version)
5becd025 2547 "/" name "-" version ".tar.bz2"))
5698b8b8 2548 (sha256
f1fc45a9 2549 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2550 (patches (search-patches
2551 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2552 (build-system gnu-build-system)
2553 (arguments
2554 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2555 `(#:configure-flags
2556 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2557 ;; ... which they then completly ignore !!
2558 #:phases
dc1d3cde
KK
2559 (modify-phases %standard-phases
2560 (add-before 'configure 'ignore-deprecations
2561 (lambda _
2562 (substitute* "activation-server/Makefile.in"
2563 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2564 #t)))
2565
2566 ;; There's apparently a race condition between the server stub
2567 ;; generation and linking of the example under 'samples/echo' that can
2568 ;; lead do undefined references when building in parallel, as reported
2569 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2570 ;; Thus, disable parallel builds.
2571 #:parallel-build? #f))
5698b8b8
JD
2572 (inputs `(("popt" ,popt)
2573 ("libxml2" ,libxml2)))
2574 ;; The following are Required by the .pc file
44add1ce 2575 (propagated-inputs
5698b8b8
JD
2576 `(("glib" ,glib)
2577 ("orbit2" ,orbit2)))
2578 (native-inputs
2579 `(("intltool" ,intltool)
2580 ("pkg-config" ,pkg-config)
221ed17a 2581 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2582 ("flex" ,flex)
2583 ("bison" ,bison)))
2584 (home-page "https://developer.gnome.org/libbonobo/")
2585 (synopsis "Framework for creating reusable components for use in GNOME applications")
2586 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2587use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2588 ;; Licence not explicitly stated. Source files contain no licence notices.
2589 ;; Tarball contains text of both GPLv2 and LGPLv2
2590 ;; GPLv2 covers both conditions
2591 (license license:gpl2+)))
2592
2593
2594(define-public gconf
2595 (package
2596 (name "gconf")
2597 (version "3.2.6")
2598 (source (origin
2599 (method url-fetch)
a124bbd2
SB
2600 (uri
2601 (let ((upstream-name "GConf"))
2602 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2603 (version-major+minor version) "/"
2604 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2605 (sha256
2606 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2607 (build-system gnu-build-system)
2e88d113 2608 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2609 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2610 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2611 ("orbit2" ,orbit2)))
5698b8b8
JD
2612 (native-inputs
2613 `(("intltool" ,intltool)
221ed17a 2614 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2615 ("pkg-config" ,pkg-config)))
2616 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2617 (synopsis "Store application preferences")
2618 (description "Gconf is a system for storing application preferences. It
2619is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2620 (license license:lgpl2.0+)
2621 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2622
2623
2624(define-public gnome-mime-data
2625 (package
2626 (name "gnome-mime-data")
2627 (version "2.18.0")
2628 (source (origin
2629 (method url-fetch)
b38e45d8
EB
2630 (uri (string-append "mirror://gnome/sources/" name "/"
2631 (version-major+minor version) "/"
2632 name "-" version ".tar.bz2"))
5698b8b8
JD
2633 (sha256
2634 (base32
2635 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2636 (build-system gnu-build-system)
2637 (native-inputs
2638 `(("perl" ,perl)
2639 ("intltool" ,intltool)))
3e6add96
LC
2640 (arguments
2641 '(#:phases (modify-phases %standard-phases
2642 (add-after 'configure 'use-our-intltool
2643 (lambda _
2644 ;; Do not use the bundled intltool commands, which lack
2645 ;; the "dotless @INC" fixes of our 'intltool' package.
2646 (substitute* (find-files "." "^Makefile$")
2647 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2648 (string-append "INTLTOOL_" tool " = intltool-"
2649 (string-downcase tool) "\n")))
2650 #t)))))
f032d0be 2651 (home-page "https://www.gnome.org")
35b9e423 2652 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2653 (description "GNOME Mime Data is a module which contains the base MIME
2654and Application database for GNOME. The data stored by this module is
2655designed to be accessed through the MIME functions in GnomeVFS.")
2656 (license license:gpl2+)))
2657
2658
2659(define-public gnome-vfs
2660 (package
2661 (name "gnome-vfs")
2662 (version "2.24.4")
2663 (source (origin
2664 (method url-fetch)
b38e45d8
EB
2665 (uri (string-append "mirror://gnome/sources/" name "/"
2666 (version-major+minor version) "/"
2667 name "-" version ".tar.bz2"))
5698b8b8 2668 (sha256
9e12bc34
MW
2669 (base32
2670 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2671 (build-system gnu-build-system)
2672 (arguments
db5127d8 2673 `(#:phases
dc1d3cde
KK
2674 (modify-phases %standard-phases
2675 (add-before 'configure 'ignore-deprecations
2676 (lambda _
2677 (substitute* '("libgnomevfs/Makefile.in"
2678 "daemon/Makefile.in")
2679 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2680 #t))
2681 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2682 (lambda _
2683 (substitute* "test/test-async-cancel.c"
2684 (("EXIT_FAILURE") "77"))
2685 #t)))))
2e6ecc5c 2686 (inputs `(("libxml2" ,libxml2)
5698b8b8 2687 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2688 ("gconf" ,gconf)
2689 ("gnome-mime-data" ,gnome-mime-data)
2690 ("zlib" ,zlib)))
2691 (native-inputs
221ed17a
EB
2692 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2693 ("intltool" ,intltool)
5698b8b8
JD
2694 ("pkg-config" ,pkg-config)))
2695 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2696 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2697 (description
2698 "GnomeVFS is the core library used to access files and folders in GNOME
2699applications. It provides a file system abstraction which allows applications
2700to access local and remote files with a single consistent API.")
5698b8b8
JD
2701 (license license:lgpl2.0+)))
2702
2703
2704
2705(define-public libgnome
2706 (package
2707 (name "libgnome")
2708 (version "2.32.1")
2709 (source (origin
2710 (method url-fetch)
b38e45d8
EB
2711 (uri (string-append "mirror://gnome/sources/" name "/"
2712 (version-major+minor version) "/"
2713 name "-" version ".tar.bz2"))
5698b8b8
JD
2714 (sha256
2715 (base32
17c3eea7
LC
2716 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2717 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2718 (build-system gnu-build-system)
2719 (arguments
2720 `(#:phases
dc1d3cde
KK
2721 (modify-phases %standard-phases
2722 (add-before 'configure 'enable-deprecated
2723 (lambda _
2724 (substitute* "libgnome/Makefile.in"
2725 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2726 #t)))))
25338e9f 2727 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2728 (native-inputs
221ed17a
EB
2729 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2730 ("intltool" ,intltool)
5698b8b8
JD
2731 ("pkg-config" ,pkg-config)))
2732 ;; The following are listed as Required in the .pc file
2733 ;; (except for libcanberra -- which seems to be oversight on the part
2734 ;; of the upstream developers -- anything that links against libgnome,
2735 ;; must also link against libcanberra
2736 (propagated-inputs
2737 `(("libcanberra" ,libcanberra)
2738 ("libbonobo" ,libbonobo)
2739 ("gconf" ,gconf)
a640d3d5
LC
2740 ("gnome-vfs" ,gnome-vfs)
2741 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2742 (home-page "https://developer.gnome.org/libgnome/")
2743 (synopsis "Useful routines for building applications")
2744 (description "The libgnome library provides a number of useful routines
2745for building modern applications, including session management, activation of
2746files and URIs, and displaying help.")
2747 (license license:lgpl2.0+)))
2748
2749
2750(define-public libart-lgpl
2751 (package
2752 (name "libart-lgpl")
76c9b6aa 2753 (version "2.3.21")
5698b8b8
JD
2754 (source (origin
2755 (method url-fetch)
2756 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2757 (string-append "mirror://gnome/sources/" upstream-name "/"
2758 (version-major+minor version) "/"
2759 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2760 (sha256
2761 (base32
76c9b6aa 2762 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2763 (build-system gnu-build-system)
2764 (native-inputs
2765 `(("pkg-config" ,pkg-config)))
2766 (home-page "https://people.gnome.org/~mathieu/libart")
2767 (synopsis "2D drawing library")
2e6ecc5c 2768 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2769high-quality vector-based 2D library with antialiasing and alpha composition.")
2770 (license license:lgpl2.0+)))
2771
2772
2773
2774(define-public libgnomecanvas
2775 (package
2776 (name "libgnomecanvas")
2777 (version "2.30.3")
2778 (source (origin
2779 (method url-fetch)
b38e45d8
EB
2780 (uri (string-append "mirror://gnome/sources/" name "/"
2781 (version-major+minor version) "/"
2782 name "-" version ".tar.gz"))
5698b8b8
JD
2783 (sha256
2784 (base32
2785 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2786 (build-system gnu-build-system)
2787 ;; Mentioned as Required in the .pc file
2788 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2789 ("gtk+" ,gtk+-2)))
2790 (native-inputs
2791 `(("intltool" ,intltool)
221ed17a 2792 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2793 ("pkg-config" ,pkg-config)))
2794 (home-page "https://developer.gnome.org/libgnomecanvas/")
2795 (synopsis "Flexible widget for creating interactive structured graphics")
2796 (description "The GnomeCanvas widget provides a flexible widget for
2797creating interactive structured graphics.")
2798 (license license:lgpl2.0+)))
2799
eadc734e
RW
2800(define-public libgnomecanvasmm
2801 (package
2802 (name "libgnomecanvasmm")
2803 (version "2.26.0")
2804 (source (origin
2805 (method url-fetch)
2806 (uri (string-append "mirror://gnome/sources/" name "/"
2807 (version-major+minor version) "/"
2808 name "-" version ".tar.bz2"))
2809 (sha256
2810 (base32
2811 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2812 (build-system gnu-build-system)
2813 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2814 (native-inputs
2815 `(("gtkmm-2" ,gtkmm-2)
2816 ("pkg-config" ,pkg-config)))
8e933cb3 2817 (home-page "https://gtkmm.org")
eadc734e
RW
2818 (synopsis "C++ bindings to the GNOME Canvas library")
2819 (description "C++ bindings to the GNOME Canvas library.")
2820 (license license:lgpl2.0+)))
2821
5698b8b8
JD
2822(define-public libgnomeui
2823 (package
2824 (name "libgnomeui")
2825 (version "2.24.5")
2826 (source (origin
2827 (method url-fetch)
b38e45d8
EB
2828 (uri (string-append "mirror://gnome/sources/" name "/"
2829 (version-major+minor version) "/"
2830 name "-" version ".tar.bz2"))
8fa1872a 2831 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2832 (sha256
2833 (base32
2834 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2835 (build-system gnu-build-system)
2836 ;; Mentioned as Required in the .pc file
0a38a497
AE
2837 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2838 ("libgnome" ,libgnome)
2839 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2840 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2841 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2842 ("popt" ,popt)
2843 ("libbonobo" ,libbonobo)
2844 ("libxml2" ,libxml2)
2845 ("libglade" ,libglade)))
2846 (native-inputs
221ed17a
EB
2847 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2848 ("intltool" ,intltool)
5698b8b8
JD
2849 ("pkg-config" ,pkg-config)))
2850 (home-page "https://developer.gnome.org/libgnomeui/")
2851 (synopsis "Additional widgets for applications")
35b9e423 2852 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2853applications. Many of the widgets from libgnomeui have already been
2854ported to GTK+.")
5698b8b8
JD
2855 (license license:lgpl2.0+)))
2856
2857(define-public libglade
2858 (package
2859 (name "libglade")
2860 (version "2.6.4")
2861 (source (origin
2862 (method url-fetch)
b38e45d8
EB
2863 (uri (string-append "mirror://gnome/sources/" name "/"
2864 (version-major+minor version) "/"
2865 name "-" version ".tar.bz2"))
5698b8b8
JD
2866 (sha256
2867 (base32
2868 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2869 (build-system gnu-build-system)
2870 (inputs
92dcc23d
AE
2871 `(("python" ,python))) ;; needed for the optional libglade-convert program
2872 (propagated-inputs
5698b8b8 2873 `(("gtk+-2" ,gtk+-2)
92dcc23d 2874 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2875 (native-inputs
2876 `(("pkg-config" ,pkg-config)))
2877 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2878 (synopsis "Load glade interfaces and access the glade built widgets")
2879 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2880graphical interfaces described in glade files and for accessing the
2881widgets built in the loading process.")
2882 (license license:gpl2+))) ; This is correct. GPL not LGPL
2883
2884(define-public libgnomeprint
eb497b66
LC
2885 ;; This library has been deprecated since 2006; see
2886 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2887 (package
2888 (name "libgnomeprint")
d19db454 2889 (version "2.18.8")
5698b8b8
JD
2890 (source (origin
2891 (method url-fetch)
b38e45d8
EB
2892 (uri (string-append "mirror://gnome/sources/" name "/"
2893 (version-major+minor version) "/"
2894 name "-" version ".tar.bz2"))
5698b8b8
JD
2895 (sha256
2896 (base32
d19db454 2897 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2898 (build-system gnu-build-system)
2899 (inputs
2900 `(("popt" ,popt)
2901 ("libart-lgpl" ,libart-lgpl)
2902 ("gtk+" ,gtk+-2)
44add1ce 2903 ("libxml2" ,libxml2)))
5698b8b8
JD
2904 (native-inputs
2905 `(("intltool" ,intltool)
221ed17a 2906 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2907 ("pkg-config" ,pkg-config)))
2908 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2909 (synopsis "Printing framework for GNOME")
eb497b66
LC
2910 (description
2911 "GNOME-print was a printing framework for GNOME. It has been deprecated
2912since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2913 (license license:lgpl2.0+)))
2914
2915
2916(define-public libgnomeprintui
eb497b66 2917 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2918 (package
2919 (name "libgnomeprintui")
36053d7f 2920 (version "2.18.6")
5698b8b8
JD
2921 (source (origin
2922 (method url-fetch)
b38e45d8
EB
2923 (uri (string-append "mirror://gnome/sources/" name "/"
2924 (version-major+minor version) "/"
2925 name "-" version ".tar.bz2"))
5698b8b8
JD
2926 (sha256
2927 (base32
36053d7f 2928 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2929 (build-system gnu-build-system)
2930 ;; Mentioned as Required in the .pc file
2931 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2932 (inputs `(("gtk+" ,gtk+-2)
2933 ("glib" ,glib)
2934 ("gnome-icon-theme" ,gnome-icon-theme)
2935 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2936 ("libxml2" ,libxml2)))
5698b8b8
JD
2937 (native-inputs
2938 `(("intltool" ,intltool)
2939 ("pkg-config" ,pkg-config)))
2940 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2941 (synopsis "Printing framework for GNOME")
eb497b66 2942 (description (package-description libgnomeprint))
5698b8b8
JD
2943 (license license:lgpl2.0+)))
2944
5698b8b8
JD
2945(define-public libbonoboui
2946 (package
2947 (name "libbonoboui")
2948 (version "2.24.5")
2949 (source (origin
2950 (method url-fetch)
b38e45d8
EB
2951 (uri (string-append "mirror://gnome/sources/" name "/"
2952 (version-major+minor version) "/"
2953 name "-" version ".tar.bz2"))
5698b8b8
JD
2954 (sha256
2955 (base32
2956 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2957 (build-system gnu-build-system)
2958 (arguments
2959 `(#:phases
dc1d3cde
KK
2960 (modify-phases %standard-phases
2961 (add-before 'check 'start-xserver
2962 (lambda* (#:key inputs #:allow-other-keys)
2963 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2964 (disp ":1"))
2965
2966 (setenv "HOME" (getcwd))
2967 (setenv "DISPLAY" disp)
2968 ;; There must be a running X server and make check doesn't start one.
2969 ;; Therefore we must do it.
2970 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2971 ;; Mentioned as Required by the .pc file
2972 (propagated-inputs `(("libxml2" ,libxml2)))
2973 (inputs
2974 `(("popt" ,popt)
2975 ("pangox-compat" ,pangox-compat)
2976 ("libgnome" ,libgnome)
2977 ("libgnomecanvas" ,libgnomecanvas)
2978 ("libglade" ,libglade)))
2979 (native-inputs
221ed17a
EB
2980 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2981 ("intltool" ,intltool)
ff337525 2982 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2983 ("pkg-config" ,pkg-config)))
2984 (home-page "https://developer.gnome.org/libbonoboui/")
2985 (synopsis "Some user interface controls using Bonobo")
2986 (description "The Bonobo UI library provides a number of user interface
2987controls using the Bonobo component framework.")
2988 (license license:lgpl2.0+)))
2989
fecbf86e
SB
2990(define-public libwnck
2991 (package
2992 (name "libwnck")
d3b40696 2993 (version "3.32.0")
fecbf86e
SB
2994 (source (origin
2995 (method url-fetch)
2996 (uri (string-append "mirror://gnome/sources/" name "/"
2997 (version-major+minor version) "/"
2998 name "-" version ".tar.xz"))
2999 (sha256
ad9b8987 3000 (base32
d3b40696
KK
3001 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3002 (build-system meson-build-system)
fecbf86e
SB
3003 (native-inputs
3004 `(("pkg-config" ,pkg-config)
d3b40696
KK
3005 ("glib" ,glib "bin") ; for glib-mkenums
3006 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
3007 ("intltool" ,intltool)))
3008 (propagated-inputs
427476d5
SB
3009 `(("gtk+" ,gtk+)
3010 ("libxres" ,libxres)
3011 ("startup-notification" ,startup-notification)))
fecbf86e
SB
3012 (home-page "https://developer.gnome.org/libwnck/")
3013 (synopsis "Window Navigator Construction Kit")
3014 (description
3015 "Libwnck is the Window Navigator Construction Kit, a library for use in
3016writing pagers, tasklists, and more generally applications that are dealing
3017with window management. It tries hard to respect the Extended Window Manager
3018Hints specification (EWMH).")
3019 (license license:lgpl2.0+)))
3020
3021;; stable version for gtk2, required by xfwm4.
dbb7a081 3022(define-public libwnck-2
fecbf86e
SB
3023 (package (inherit libwnck)
3024 (name "libwnck")
3025 (version "2.30.7")
3026 (source (origin
3027 (method url-fetch)
3028 (uri (string-append "mirror://gnome/sources/" name "/"
3029 (version-major+minor version) "/"
3030 name "-" version ".tar.xz"))
3031 (sha256
3032 (base32
3033 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
3034 (build-system gnu-build-system)
3035 (native-inputs
3036 `(("pkg-config" ,pkg-config)
3037 ("intltool" ,intltool)))
fecbf86e 3038 (propagated-inputs
427476d5
SB
3039 `(("gtk+" ,gtk+-2)
3040 ("libxres" ,libxres)
3041 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3042
3043(define-public goffice
3044 (package
3045 (name "goffice")
09abffcc 3046 (version "0.10.46")
b804c61e
JD
3047 (source (origin
3048 (method url-fetch)
16243f0b 3049 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3050 (version-major+minor version) "/"
16243f0b 3051 "goffice-" version ".tar.xz"))
b804c61e 3052 (sha256
09abffcc 3053 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 3054 (build-system gnu-build-system)
72a06d3e 3055 (outputs '("out"
355420c6 3056 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3057 (arguments
3058 '(#:configure-flags (list (string-append "--with-html-dir="
3059 (assoc-ref %outputs "doc")
3060 "/share/gtk-doc/html"))))
b804c61e
JD
3061 (inputs
3062 `(("gtk+" ,gtk+)
3063 ("libgsf" ,libgsf)
3064 ("librsvg" ,librsvg)
3065 ("libxslt" ,libxslt)
3066 ("libxml2" ,libxml2)))
3067 (native-inputs
3068 `(("intltool" ,intltool)
f280cdb1 3069 ("glib" ,glib "bin")
b804c61e
JD
3070 ("pkg-config" ,pkg-config)))
3071 (home-page "https://developer.gnome.org/goffice/")
3072 (synopsis "Document-centric objects and utilities")
3073 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3074 (license
b804c61e
JD
3075 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3076 ;; Note: NOT LGPL
3077 (list license:gpl2 license:gpl3))))
3078
c024ae36
RW
3079(define-public goffice-0.8
3080 (package (inherit goffice)
3081 (version "0.8.17")
3082 (source (origin
3083 (method url-fetch)
3084 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3085 (version-major+minor version) "/"
3086 (package-name goffice) "-" version ".tar.xz"))
3087 (sha256
3088 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3089 (arguments
3090 `(#:phases
dc1d3cde
KK
3091 (modify-phases %standard-phases
3092 (add-after 'unpack 'fix-pcre-check
3093 (lambda _
3094 ;; Only glib.h can be included directly. See
3095 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3096 (substitute* "configure"
3097 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3098
3099 ,@(package-arguments goffice)))
c024ae36
RW
3100 (propagated-inputs
3101 ;; libgoffice-0.8.pc mentions libgsf-1
3102 `(("libgsf" ,libgsf)))
3103 (inputs
3104 `(("gtk" ,gtk+-2)
3105 ,@(alist-delete "gtk" (package-inputs goffice))))))
3106
b804c61e
JD
3107(define-public gnumeric
3108 (package
3109 (name "gnumeric")
f0517b5d 3110 (version "1.12.46")
b804c61e
JD
3111 (source (origin
3112 (method url-fetch)
b7fd0217 3113 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3114 (version-major+minor version) "/"
b7fd0217 3115 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3116 (sha256
3117 (base32
f0517b5d 3118 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3119 (build-system glib-or-gtk-build-system)
b804c61e
JD
3120 (arguments
3121 `(;; The gnumeric developers don't worry much about failing tests.
3122 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3123 #:tests? #f
b804c61e 3124 #:phases
7bcbd40d
EF
3125 (modify-phases %standard-phases
3126 (add-before
3127 'configure 'pre-conf
3128 (lambda* (#:key outputs #:allow-other-keys)
3129 ;; Make install tries to write into the directory of goffice
3130 ;; I am informed that this only affects the possibility to embed a
3131 ;; spreadsheet inside an Abiword document. So presumably when we
3132 ;; package Abiword we'll have to refer it to this directory.
3133 (substitute* "configure"
3134 (("^GOFFICE_PLUGINS_DIR=.*")
3135 (string-append "GOFFICE_PLUGINS_DIR="
3136 (assoc-ref outputs "out")
3137 "/goffice/plugins"))))))))
b804c61e
JD
3138 (inputs
3139 `(("glib" ,glib)
3140 ("gtk+" ,gtk+)
3141 ("goffice" ,goffice)
3142 ("libgsf" ,libgsf)
7bcbd40d 3143 ("librsvg" ,librsvg)
b804c61e 3144 ("libxml2" ,libxml2)
7bcbd40d 3145 ("libxslt" ,libxslt)
2e4c5457 3146 ("python" ,python-2)
6983ba56 3147 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3148 ("zlib" ,zlib)))
3149 (native-inputs
6983ba56 3150 `(("bison" ,bison)
1ed398d1 3151 ("docbook-xml" ,docbook-xml)
6983ba56 3152 ("intltool" ,intltool)
785fcb62 3153 ("itstool" ,itstool)
b9663471 3154 ("glib:bin" ,glib "bin")
b804c61e
JD
3155 ("pkg-config" ,pkg-config)))
3156 (home-page "http://www.gnumeric.org")
66672a45
LC
3157 (synopsis "Spreadsheet application")
3158 (description
3159 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3160interoperable with other spreadsheet applications. It has a vast array of
3161features beyond typical spreadsheet functionality, such as support for linear
3162and non-linear solvers, statistical analysis, and telecommunication
3163engineering.")
3164 (license
b804c61e
JD
3165 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3166 (list license:gpl2 license:gpl3))))
6f885c05
FB
3167
3168(define-public gnome-themes-standard
3169 (package
3170 (name "gnome-themes-standard")
0b7b8fb0 3171 (version "3.22.3")
6f885c05
FB
3172 (source
3173 (origin
3174 (method url-fetch)
2e6ecc5c 3175 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3176 (version-major+minor version) "/" name "-"
3177 version ".tar.xz"))
3178 (sha256
3179 (base32
0b7b8fb0 3180 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3181 (build-system gnu-build-system)
8ac70c7f
SB
3182 (arguments
3183 '(#:configure-flags
3184 ;; Don't create 'icon-theme.cache'.
3185 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3186 (true (string-append coreutils "/bin/true")))
3187 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3188 (inputs
3189 `(("gtk+" ,gtk+)
3190 ("gtk+-2" ,gtk+-2)
3191 ("librsvg" ,librsvg)
3192 ("libxml2" ,libxml2)
3193 ("glib" ,glib)))
3194 (native-inputs
3195 `(("intltool" ,intltool)
3196 ("glib:bin" ,glib "bin")
3197 ("pkg-config" ,pkg-config)))
6f885c05
FB
3198 (home-page "https://launchpad.net/gnome-themes-standard")
3199 (synopsis "Default GNOME 3 themes")
3200 (description
3201 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3202 (license license:lgpl2.1+)))
5a659a48 3203
df90c701
RW
3204(define-public seahorse
3205 (package
3206 (name "seahorse")
1efcf722 3207 (version "3.34")
df90c701
RW
3208 (source
3209 (origin
3210 (method url-fetch)
3211 (uri (string-append "mirror://gnome/sources/" name "/"
3212 (version-major+minor version) "/" name "-"
3213 version ".tar.xz"))
3214 (sha256
3215 (base32
1efcf722 3216 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3217 (build-system meson-build-system)
3218 (arguments
bcea3c11
KK
3219 '(#:glib-or-gtk? #t
3220 #:phases
af561664
MÁAV
3221 (modify-phases %standard-phases
3222 (add-after 'unpack 'skip-gtk-update-icon-cache
3223 ;; Don't create 'icon-theme.cache'.
3224 (lambda _
3225 (substitute* "build-aux/meson_post_install.py"
3226 (("gtk-update-icon-cache") "true"))
3227 #t)))))
df90c701
RW
3228 (inputs
3229 `(("gtk+" ,gtk+)
3230 ("gcr" ,gcr)
34b979b9 3231 ("gnupg" ,gnupg)
df90c701 3232 ("gpgme" ,gpgme)
34b979b9 3233 ("openldap" ,openldap)
4a1bf090 3234 ("openssh" ,openssh)
af561664 3235 ("avahi" ,avahi)
bcea3c11 3236 ("libpwquality" ,libpwquality)
34b979b9
EF
3237 ("libsecret" ,libsecret)
3238 ("libsoup" ,libsoup)))
df90c701 3239 (native-inputs
af561664 3240 `(("gettext" ,gettext-minimal)
df90c701
RW
3241 ("glib:bin" ,glib "bin")
3242 ("itstool" ,itstool)
bcb354ad 3243 ("pkg-config" ,pkg-config)
af561664 3244 ("vala" ,vala)
bcb354ad 3245 ("xmllint" ,libxml2)))
bcea3c11 3246 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3247 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3248 (description
3249 "Seahorse is a GNOME application for managing encryption keys and
3250passwords in the GNOME keyring.")
3251 (license license:gpl2+)))
3252
5a659a48
SB
3253(define-public vala
3254 (package
3255 (name "vala")
b92a36db 3256 (version "0.46.5")
5a659a48
SB
3257 (source (origin
3258 (method url-fetch)
3259 (uri (string-append "mirror://gnome/sources/" name "/"
3260 (version-major+minor version) "/"
3261 name "-" version ".tar.xz"))
3262 (sha256
3263 (base32
b92a36db 3264 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3265 (build-system gnu-build-system)
1ea90625
SB
3266 (arguments
3267 '(#:phases
3268 (modify-phases %standard-phases
f4925a4f 3269 (add-before 'check 'pre-check
1ea90625
SB
3270 (lambda _
3271 (setenv "CC" "gcc")
8839b6be
RW
3272 (substitute* "valadoc/tests/testrunner.sh"
3273 (("export PKG_CONFIG_PATH=" m)
3274 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3275 ;; For missing '/etc/machine-id'.
3276 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3277 #t)))))
5a659a48
SB
3278 (native-inputs
3279 `(("pkg-config" ,pkg-config)
3280 ("flex" ,flex)
3281 ("bison" ,bison)
3282 ("xsltproc" ,libxslt)
3283 ("dbus" ,dbus) ; for dbus tests
3284 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3285 (inputs
3286 `(("graphviz" ,graphviz)))
5a659a48 3287 (propagated-inputs
8839b6be 3288 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3289 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3290 (synopsis "Compiler for the GObject type system")
3291 (description
3292 "Vala is a programming language that aims to bring modern programming
3293language features to GNOME developers without imposing any additional runtime
3294requirements and without using a different ABI compared to applications and
3295libraries written in C.")
3296 (license license:lgpl2.1+)))
ea57378f 3297
2dcaa760
RP
3298(define-public vala-0.48
3299 (package
3300 (inherit vala)
3301 (version "0.48.6")
3302 (source (origin
3303 (method url-fetch)
3304 (uri (string-append "mirror://gnome/sources/vala/"
3305 (version-major+minor version) "/"
3306 "vala-" version ".tar.xz"))
3307 (sha256
3308 (base32
3309 "01wppzgacdmp8dgf8047myz1any2yffmrhgl8kqf1q0c0gnhi3fi"))))))
3310
ea57378f
SB
3311(define-public vte
3312 (package
3313 (name "vte")
663def11 3314 (version "0.60.2")
ea57378f
SB
3315 (source (origin
3316 (method url-fetch)
ac87ffb8 3317 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3318 (version-major+minor version) "/"
ac87ffb8 3319 "vte-" version ".tar.xz"))
ea57378f
SB
3320 (sha256
3321 (base32
663def11 3322 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
68c47474 3323 (build-system meson-build-system)
663def11
RPG
3324 (arguments
3325 `(#:configure-flags
11491e1b
DM
3326 '("-Dvapi=true"
3327 "-D_systemd=false")))
ea57378f
SB
3328 (native-inputs
3329 `(("pkg-config" ,pkg-config)
4684580a 3330 ("gettext" ,gettext-minimal)
ea57378f
SB
3331 ("vala" ,vala)
3332 ("gobject-introspection" ,gobject-introspection)
68c47474 3333 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3334 ("gperf" ,gperf)
ea57378f
SB
3335 ("xmllint" ,libxml2)))
3336 (propagated-inputs
68c47474
TGR
3337 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3338 ("gnutls" ,gnutls) ; ditto
3339 ("pcre2" ,pcre2))) ; ditto
f032d0be 3340 (home-page "https://www.gnome.org/")
ea57378f
SB
3341 (synopsis "Virtual Terminal Emulator")
3342 (description
3343 "VTE is a library (libvte) implementing a terminal emulator widget for
3344GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3345gnome-terminal, but can also be used to embed a console/terminal in games,
3346editors, IDEs, etc.")
3347 (license license:lgpl2.1+)))
3348
c44fb4df
MO
3349(define-public vte-ng
3350 (package
3351 (inherit vte)
3352 (name "vte-ng")
24f4fcbe 3353 (version "0.58.2.a")
afd90f8d 3354 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3355 (source (origin
3356 (method git-fetch)
3357 (uri (git-reference (url home-page) (commit version)))
3358 (file-name (git-file-name name version))
3359 (sha256
3360 (base32
24f4fcbe
MB
3361 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3362 (build-system meson-build-system)
c44fb4df
MO
3363 (native-inputs
3364 `(("gtk-doc" ,gtk-doc)
c44fb4df 3365 ,@(package-native-inputs vte)))
c44fb4df 3366 (arguments
24f4fcbe 3367 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3368 (synopsis "Enhanced VTE terminal widget")
3369 (description
3370 "VTE is a library (libvte) implementing a terminal emulator widget for
3371GTK+, this fork provides additional functions exposed for keyboard text
3372selection and URL hints.")))
3373
2776d72c
EF
3374;; provides vte 2.90, required for some terminal emulators
3375;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3376;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3377;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3378;; pantheon-terminal, roxterm are not currently packaged
3379(define-public vte-0.36
3380 (package (inherit vte)
3381 (name "vte")
3382 (version "0.36.5")
3383 (source (origin
3384 (method url-fetch)
3385 (uri (string-append "mirror://gnome/sources/" name "/"
3386 (version-major+minor version) "/"
3387 name "-" version ".tar.xz"))
3388 (sha256
3389 (base32
3390 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3391 (propagated-inputs
3392 `(("gtk" ,gtk+)
3393 ("ncurses" ,ncurses)))))
3394
ea57378f
SB
3395;; stable version for gtk2, required by xfce4-terminal.
3396(define-public vte/gtk+-2
3397 (package (inherit vte)
3398 (name "vte")
3399 (version "0.28.2")
3400 (source (origin
3401 (method url-fetch)
3402 (uri (string-append "mirror://gnome/sources/" name "/"
3403 (version-major+minor version) "/"
3404 name "-" version ".tar.xz"))
3405 (sha256
3406 (base32
7d48938a
EF
3407 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3408 (patches (search-patches
3409 "vte-CVE-2012-2738-pt1.patch"
3410 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3411 (build-system gnu-build-system)
ea57378f
SB
3412 (arguments
3413 '(#:configure-flags '("--disable-python")))
3414 (native-inputs
3415 `(("pkg-config" ,pkg-config)
3416 ("intltool" ,intltool)
3417 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3418 (propagated-inputs
3419 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3420 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3421
cce0da5e
TD
3422(define-public vinagre
3423 (package
3424 (name "vinagre")
3425 (version "3.22.0")
3426 (source (origin
3427 (method url-fetch)
3428 (uri (string-append "mirror://gnome/sources/" name "/"
3429 (version-major+minor version) "/"
3430 name "-" version ".tar.xz"))
684f97f8
EF
3431 (patches (search-patches "vinagre-newer-freerdp.patch"
3432 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3433 (sha256
3434 (base32
3435 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3436 (build-system glib-or-gtk-build-system)
684f97f8 3437 (arguments
7f486d25
MC
3438 ;; Disable -Werror and such, to avoid build failures on compilation
3439 ;; warnings.
3440 '(#:configure-flags '("--enable-compile-warnings=minimum")
3441 #:phases
684f97f8 3442 (modify-phases %standard-phases
1839768c
EF
3443 (add-before 'install 'skip-gtk-update-icon-cache
3444 (lambda _
3445 ;; Don't create 'icon-theme.cache'
3446 (substitute* (find-files "." "^Makefile$")
3447 (("gtk-update-icon-cache") (which "true")))
3448 #t))
684f97f8
EF
3449 (add-after 'unpack 'patch-configure
3450 (lambda _
3451 (substitute* "configure"
3452 (("freerdp") "freerdp2"))
3453 #t)))))
cce0da5e
TD
3454 (native-inputs
3455 `(("pkg-config" ,pkg-config)
3456 ("intltool" ,intltool)
3457 ("itstool" ,itstool)
1839768c 3458 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3459 (inputs
3460 `(("libxml2" ,libxml2)
3461 ("gtk-vnc" ,gtk-vnc)
3462 ("gnome-keyring" ,gnome-keyring)
3463 ("libsecret" ,libsecret)
3464 ("freerdp" ,freerdp)
3465 ("spice" ,spice)
3466 ("spice-gtk" ,spice-gtk)
3467 ("telepathy-glib" ,telepathy-glib)
3468 ("vte" ,vte)))
cce0da5e
TD
3469 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3470 (synopsis "Remote desktop viewer for GNOME")
3471 (description "Vinagre is a remote display client supporting the VNC, SPICE
3472and RDP protocols.")
3473 (license license:gpl3+)))
3474
b47e1b20
FB
3475(define-public dconf
3476 (package
3477 (name "dconf")
7f4d075d 3478 (version "0.34.0")
b47e1b20
FB
3479 (source (origin
3480 (method url-fetch)
3481 (uri (string-append
2e6ecc5c 3482 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3483 (version-major+minor version) "/"
3484 name "-" version ".tar.xz"))
46c3a08b 3485 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3486 (sha256
f05c809f 3487 (base32
7f4d075d 3488 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 3489 (build-system meson-build-system)
bc036f4c
MB
3490 (propagated-inputs
3491 ;; In Requires of dconf.pc.
3492 `(("glib" ,glib)))
b47e1b20
FB
3493 (inputs
3494 `(("gtk+" ,gtk+)
bc036f4c 3495 ("dbus" ,dbus)))
b47e1b20 3496 (native-inputs
1e33331c
MB
3497 `(("bash-completion" ,bash-completion)
3498 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3499 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3500 ("docbook-xml" ,docbook-xml-4.2)
3501 ("docbook-xsl" ,docbook-xsl)
35fa923d 3502 ("glib:bin" ,glib "bin")
03676d6f 3503 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3504 ("pkg-config" ,pkg-config)
3505 ("vala" ,vala)))
b47e1b20
FB
3506 (arguments
3507 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3508 ; or /etc/machine-id.
35fa923d
MB
3509 #:glib-or-gtk? #t
3510 #:configure-flags '("-Denable-gtk-doc=true")))
79d7b527 3511 (home-page "https://developer.gnome.org/dconf/")
b47e1b20
FB
3512 (synopsis "Low-level GNOME configuration system")
3513 (description "Dconf is a low-level configuration system. Its main purpose
3514is to provide a backend to GSettings on platforms that don't already have
3515configuration storage systems.")
e20e6b40 3516 (license license:lgpl2.1+)))
109da1c0
AE
3517
3518(define-public json-glib
3519 (package
3520 (name "json-glib")
4115e8ea 3521 (version "1.4.4")
109da1c0
AE
3522 (source (origin
3523 (method url-fetch)
3524 (uri (string-append "mirror://gnome/sources/" name "/"
3525 (version-major+minor version) "/"
3526 name "-" version ".tar.xz"))
3527 (sha256
3528 (base32
4115e8ea 3529 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3530 (build-system meson-build-system)
109da1c0 3531 (native-inputs
98afa184
MB
3532 `(("gettext" ,gettext-minimal)
3533 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3534 ("gobject-introspection" ,gobject-introspection)
3535 ("pkg-config" ,pkg-config)))
3536 (propagated-inputs
88c6b580 3537 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3538 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3539 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3540 (description
3541 "JSON-GLib is a C library based on GLib providing serialization and
3542deserialization support for the JavaScript Object Notation (JSON) format
3543described by RFC 4627. It provides parser and generator GObject classes and
3544various wrappers for the complex data types employed by JSON, such as arrays
3545and objects.")
109da1c0 3546 (license license:lgpl2.1+)))
6f96a359
SB
3547
3548(define-public libxklavier
3549 (package
3550 (name "libxklavier")
5f39050b 3551 (version "5.4")
6f96a359 3552 (source (origin
5f39050b 3553 ;; Note: There's no tarball at ftp.gnome.org for this version.
3554 (method git-fetch)
3555 (uri (git-reference
3556 (url "https://anongit.freedesktop.org/git/libxklavier")
3557 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3558 (sha256
3559 (base32
5f39050b 3560 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3561 (file-name (git-file-name name version))))
6f96a359
SB
3562 (build-system gnu-build-system)
3563 (arguments
778d6b52 3564 '(#:configure-flags
6f96a359
SB
3565 (list (string-append "--with-xkb-base="
3566 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3567 "/share/X11/xkb")
3568 "--disable-xmodmap-support")))
6f96a359
SB
3569 (native-inputs
3570 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3571 ("gobject-introspection" ,gobject-introspection)
5f39050b 3572 ("pkg-config" ,pkg-config)
3573 ("gtk-doc" ,gtk-doc)
3574 ("intltool" ,intltool)
3575 ("which" ,which)
3576 ("autoconf" ,autoconf)
3577 ("automake" ,automake)
3578 ("libtool" ,libtool)))
6f96a359
SB
3579 (propagated-inputs
3580 ;; Required by libxklavier.pc.
3581 `(("glib" ,glib)
3582 ("libxml2" ,libxml2)))
3583 (inputs
3584 `(("iso-codes" ,iso-codes)
3585 ("libxi" ,libxi)
3586 ("libxkbfile" ,libxkbfile)
3587 ("xkbcomp" ,xkbcomp)
3588 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3589 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3590 (synopsis "High-level API for X Keyboard Extension")
3591 (description
3592 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3593Extension known as XKB. This library is intended to support XFree86 and other
3594commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3595indicators etc).")
3596 (license license:lgpl2.0+)))
619936a4
LC
3597
3598(define-public python2-rsvg
3599 ;; XXX: This is actually a subset of gnome-python-desktop.
3600 (package
3601 (name "python2-rsvg")
3602 (version "2.32.0")
3603 (source
3604 (origin
3605 (method url-fetch)
3606 (uri (string-append
3607 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3608 version ".tar.bz2"))
3609 (sha256
3610 (base32
3611 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3612 (build-system gnu-build-system)
3613 (native-inputs
3614 `(("pkg-config" ,pkg-config)))
3615 (inputs
3616 `(("python" ,python-2)
3617 ("python2-pygtk" ,python2-pygtk)
3618 ("librsvg" ,librsvg)))
f032d0be 3619 (home-page "https://www.gnome.org")
619936a4
LC
3620 (synopsis "Python bindings to librsvg")
3621 (description
3ad75446 3622 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3623library.")
3624
3625 ;; This is the license of the rsvg bindings. The license of each module
3626 ;; of gnome-python-desktop is given in 'COPYING'.
3627 (license license:lgpl2.1+)))
a31a6d22 3628
f2ca414a
SB
3629(define-public glib-networking
3630 (package
3631 (name "glib-networking")
ea9f74b0 3632 (version "2.62.2")
f2ca414a
SB
3633 (source (origin
3634 (method url-fetch)
3635 (uri (string-append "mirror://gnome/sources/glib-networking/"
3636 (version-major+minor version) "/"
fb8fe1e8 3637 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3638 (sha256
3639 (base32
ea9f74b0 3640 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 3641 (build-system meson-build-system)
f2ca414a 3642 (arguments
0d75c64d 3643 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3644 (native-inputs
3645 `(("pkg-config" ,pkg-config)
3646 ("intltool" ,intltool)))
3647 (inputs
3648 `(("glib" ,glib)
3649 ("gnutls" ,gnutls)
4b8f1313 3650 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3651 (home-page "https://www.gnome.org")
f2ca414a
SB
3652 (synopsis "Network-related GIO modules")
3653 (description
3654 "This package contains various network related extensions for the GIO
3655library.")
3656 (license license:lgpl2.0+)))
3657
ca649680 3658(define-public rest
4510b2da 3659 (package
ca649680 3660 (name "rest")
a4194d16 3661 (version "0.8.1")
4510b2da
SB
3662 (source (origin
3663 (method url-fetch)
3664 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3665 (version-major+minor version) "/"
3666 name "-" version ".tar.xz"))
4510b2da
SB
3667 (sha256
3668 (base32
a4194d16 3669 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3670 (build-system gnu-build-system)
3671 (arguments
3672 '(#:tests? #f ; tests require internet connection
3673 #:configure-flags
3674 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3675 (native-inputs
3676 `(("glib-mkenums" ,glib "bin")
3677 ("gobject-introspection" ,gobject-introspection)
3678 ("pkg-config" ,pkg-config)))
3679 (propagated-inputs
3680 ;; rest-0.7.pc refers to all these.
3681 `(("glib" ,glib)
3682 ("libsoup" ,libsoup)
3683 ("libxml2" ,libxml2)))
24d6cc1d 3684 (home-page "https://www.gtk.org/")
4510b2da
SB
3685 (synopsis "RESTful web api query library")
3686 (description
3687 "This library was designed to make it easier to access web services that
3688claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3689libxml to ease remote use of the RESTful API.")
3690 (license license:lgpl2.1+)))
3691
6e1bb642
SB
3692(define-public libsoup
3693 (package
3694 (name "libsoup")
9a9cd9bc 3695 (version "2.70.0")
6e1bb642
SB
3696 (source (origin
3697 (method url-fetch)
3698 (uri (string-append "mirror://gnome/sources/libsoup/"
3699 (version-major+minor version) "/"
c1b79b36 3700 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3701 (sha256
3702 (base32
9a9cd9bc 3703 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3704 (build-system meson-build-system)
6e1bb642
SB
3705 (outputs '("out" "doc"))
3706 (arguments
2deb146f 3707 `(#:modules ((guix build utils)
eccaa8bf 3708 (guix build meson-build-system)
2deb146f
LC
3709 (ice-9 popen))
3710
f8026a79 3711 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3712 #:phases
3713 (modify-phases %standard-phases
eccaa8bf 3714 (add-after 'unpack 'adjust-tests
26c228f9 3715 (lambda _
eccaa8bf
MB
3716 ;; This test fails due to missing /etc/nsswitch.conf
3717 ;; in the build environment.
26c228f9
LC
3718 (substitute* "tests/socket-test.c"
3719 ((".*/sockets/unconnected.*") ""))
2deb146f 3720
f8026a79
MB
3721 ;; These fail because "subdomain.localhost" does not resolve in
3722 ;; the build environment.
3723 (substitute* "tests/hsts-test.c"
3724 ((".*/hsts/basic.*") "")
3725 ((".*/hsts/subdomains.*") "")
3726 ((".*/hsts/superdomain.*") "")
3727 ((".*/hsts/utf8-address.*") ""))
3728 (substitute* "tests/hsts-db-test.c"
3729 ((".*/hsts-db/subdomains.*") ""))
3730
2deb146f
LC
3731 ;; Generate a self-signed certificate that has "localhost" as its
3732 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3733 ;; 3.5.12, tests such as "ssl-tests" fail:
3734 ;;
3735 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3736 ;;
3737 ;; 'certtool' is interactive so we have to pipe it the answers.
3738 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3739 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3740 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3741 (for-each (lambda (line)
3742 (display line pipe)
3743 (newline pipe))
3744 '("" ;Common name
3745 "" ;UID
3746 "Guix" ;Organizational unit name
3747 "GNU" ;Organization name
3748 "" ;Locality name
3749 "" ;State or province
3750 "" ;Country
3751 "" ;subject's domain component (DC)
3752 "" ;E-mail
3753 "" ;serial number
3754 "-1" ;expiration time
3755 "N" ;belong to authority?
3756 "N" ;web client certificate?
3757 "N" ;IPsec IKE?
3758 "Y" ;web server certificate?
3759 "localhost" ;dnsName of subject
3760 "" ;dnsName of subject (end)
3761 "" ;URI of subject
3762 "127.0.0.1" ;IP address of subject
3763 "" ;signing?
06f5bc4e
MB
3764 "" ;encryption (RSA)?
3765 "" ;data encryption?
2deb146f
LC
3766 "" ;sign OCSP requests?
3767 "" ;sign code?
3768 "" ;time stamping?
3769 "" ;email protection?
3770 "" ;URI of the CRL distribution point
3771 "y" ;above info OK?
3772 ))
3773 (close-pipe pipe))
26c228f9 3774 #t))
eccaa8bf
MB
3775 (add-after 'install 'move-doc
3776 (lambda* (#:key outputs #:allow-other-keys)
3777 (let ((out (assoc-ref outputs "out"))
3778 (doc (assoc-ref outputs "doc")))
3779 (mkdir-p (string-append doc "/share"))
3780 (copy-recursively (string-append out "/share/gtk-doc")
3781 (string-append doc "/share/gtk-doc"))
3782 (delete-file-recursively (string-append out "/share/gtk-doc"))
3783 #t))))))
6e1bb642 3784 (native-inputs
26c228f9 3785 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3786 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3787 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3788 ("intltool" ,intltool)
3789 ("pkg-config" ,pkg-config)
3790 ("python" ,python-wrapper)
fd730590 3791 ("vala" ,vala)
53c41e95 3792 ("php" ,php)
6e1bb642 3793 ("curl" ,curl)
2deb146f 3794 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3795 ("httpd" ,httpd)))
3796 (propagated-inputs
3797 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3798 `(("brotli" ,google-brotli)
3799 ("glib" ,glib)
249846bf 3800 ("libpsl" ,libpsl)
eccaa8bf 3801 ("libxml2" ,libxml2)
f8026a79
MB
3802 ("sqlite" ,sqlite)
3803 ("zlib" ,zlib)))
eccaa8bf
MB
3804 (inputs
3805 `(("glib-networking" ,glib-networking)
3806 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3807 (home-page "https://live.gnome.org/LibSoup/")
3808 (synopsis "GLib-based HTTP Library")
3809 (description
3810 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3811and the GLib main loop, to integrate well with GNOME applications.")
3812 (license license:lgpl2.0+)))
3813
43b6b45e
MC
3814
3815;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3816(define-public libsoup-minimal
3817 (package
3818 (inherit libsoup)
3819 (name "libsoup-minimal")
3820 (outputs (delete "doc" (package-outputs libsoup)))
3821 (arguments
3822 (substitute-keyword-arguments (package-arguments libsoup)
3823 ((#:configure-flags configure-flags)
3824 `(delete "-Dgtk_doc=true" ,configure-flags))
3825 ((#:phases phases)
3826 `(modify-phases ,phases
3827 (delete 'move-doc)))))
3828 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3829
bba229a3
SB
3830(define-public libsecret
3831 (package
3832 (name "libsecret")
b05a2f62 3833 (version "0.20.3")
bba229a3
SB
3834 (source (origin
3835 (method url-fetch)
3836 (uri (string-append
896dcbc7
EF
3837 "mirror://gnome/sources/libsecret/"
3838 (version-major+minor version) "/"
0ada4e29 3839 "libsecret-" version ".tar.xz"))
bba229a3
SB
3840 (sha256
3841 (base32
b05a2f62 3842 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
3843 (build-system gnu-build-system)
3844 (outputs '("out" "doc"))
3845 (arguments
3846 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3847 #:configure-flags
3848 (list (string-append "--with-html-dir="
3849 (assoc-ref %outputs "doc")
3850 "/share/gtk-doc/html"))))
3851 (native-inputs
c06ef010
MB
3852 `(("gettext" ,gettext-minimal)
3853 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3854 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3855 ("pkg-config" ,pkg-config)
3856 ("vala" ,vala)
3857 ("xsltproc" ,libxslt)))
3858 ;; These are needed for the tests.
3859 ;; FIXME: Add gjs once available.
3860 ;("dbus" ,dbus)
3861 ;("python2" ,python-2)
3862 ;("python2-dbus" ,python2-dbus)
3863 ;("python2-pygobject" ,python2-pygobject)
3864 ;("python2-pygobject-2" ,python2-pygobject-2)))
3865 (propagated-inputs
3866 `(("glib" ,glib))) ; required by libsecret-1.pc
3867 (inputs
3868 `(("docbook-xsl" ,docbook-xsl)
3869 ("libgcrypt" ,libgcrypt)
3870 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3871 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3872 (synopsis "GObject bindings for \"Secret Service\" API")
3873 (description
3874 "Libsecret is a GObject based library for storing and retrieving passwords
3875and other secrets. It communicates with the \"Secret Service\" using DBus.")
3876 (license license:lgpl2.1+)))
3877
b6821ee0 3878(define-public five-or-more
3879 (package
3880 (name "five-or-more")
ee75b46f 3881 (version "3.32.2")
b6821ee0 3882 (source
3883 (origin
3884 (method url-fetch)
bf782bfc 3885 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3886 (version-major+minor version) "/"
bf782bfc 3887 "five-or-more-" version ".tar.xz"))
b6821ee0 3888 (sha256
ee75b46f 3889 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
3890 (build-system meson-build-system)
3891 (arguments
3892 '(#:glib-or-gtk? #t
3893 #:phases
3894 (modify-phases %standard-phases
3895 (add-after 'unpack 'skip-gtk-update-icon-cache
3896 (lambda _
3897 (substitute* "meson_post_install.py"
3898 (("gtk-update-icon-cache") (which "true")))
3899 #t)))))
b6821ee0 3900 (native-inputs
3901 `(("pkg-config" ,pkg-config)
d9795e93 3902 ("appstream-glib" ,appstream-glib)
b6821ee0 3903 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3904 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3905 ("intltool" ,intltool)
3906 ("itstool" ,itstool)
d9795e93 3907 ("vala" ,vala)
b6821ee0 3908 ("xmllint" ,libxml2)))
3909 (inputs
3910 `(("gtk+" ,gtk+)
d9795e93 3911 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3912 ("librsvg" ,librsvg)))
3913 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3914 (synopsis "Logic puzzle game")
3915 (description "Five or More is a game where you try to align
3916 five or more objects of the same color and shape causing them to disappear.
3917 On every turn more objects will appear, until the board is full.
3918 Try to last as long as possible.")
3919 (license license:gpl2+)))
3920
a31a6d22
SB
3921(define-public gnome-mines
3922 (package
3923 (name "gnome-mines")
d79e9b1b 3924 (version "3.34.0")
a31a6d22
SB
3925 (source
3926 (origin
3927 (method url-fetch)
3928 (uri (string-append "mirror://gnome/sources/" name "/"
3929 (version-major+minor version) "/"
3930 name "-" version ".tar.xz"))
3931 (sha256
3932 (base32
d79e9b1b 3933 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 3934 (build-system meson-build-system)
a31a6d22 3935 (arguments
2d817e41
KK
3936 '(#:glib-or-gtk? #t
3937 #:phases
a31a6d22 3938 (modify-phases %standard-phases
2d817e41
KK
3939 (add-after 'unpack 'skip-gtk-update-icon-cache
3940 (lambda _
3941 (substitute* "build-aux/meson_post_install.py"
3942 (("gtk-update-icon-cache") (which "true")))
3943 #t)))))
a31a6d22 3944 (native-inputs
8c0fab36
RW
3945 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3946 ("pkg-config" ,pkg-config)
a31a6d22
SB
3947 ("desktop-file-utils" ,desktop-file-utils)
3948 ("intltool" ,intltool)
bcb354ad 3949 ("itstool" ,itstool)
8c0fab36
RW
3950 ("vala" ,vala)
3951 ("yelp" ,yelp)
3952 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3953 (inputs
3954 `(("gtk+" ,gtk+)
73992962 3955 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3956 ("librsvg" ,librsvg)))
3957 (home-page "https://wiki.gnome.org/Apps/Mines")
3958 (synopsis "Minesweeper game")
3959 (description
3960 "Mines (previously gnomine) is a puzzle game where you locate mines
3961floating in an ocean using only your brain and a little bit of luck.")
3962 (license license:gpl2+)))
88f70665 3963
dfc407f3
KY
3964(define-public gnome-sudoku
3965 (package
3966 (name "gnome-sudoku")
857eb190 3967 (version "3.34.1")
dfc407f3
KY
3968 (source
3969 (origin
3970 (method url-fetch)
3971 (uri (string-append "mirror://gnome/sources/" name "/"
3972 (version-major+minor version) "/"
3973 name "-" version ".tar.xz"))
3974 (sha256
3975 (base32
857eb190 3976 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
3977 (build-system meson-build-system)
3978 (arguments
3979 '(#:glib-or-gtk? #t
3980 #:phases
3981 (modify-phases %standard-phases
3982 (add-after 'unpack 'skip-gtk-update-icon-cache
3983 (lambda _
3984 (substitute* "build-aux/post_install.py"
3985 (("gtk-update-icon-cache") (which "true")))
3986 #t)))))
dfc407f3
KY
3987 (native-inputs
3988 `(("pkg-config" ,pkg-config)
3989 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3990 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3991 ("intltool" ,intltool)
3992 ("itstool" ,itstool)
7dc728c4 3993 ("vala" ,vala)
dfc407f3
KY
3994 ("xmllint" ,libxml2)))
3995 (inputs
3996 `(("gtk+" ,gtk+)
3997 ("json-glib" ,json-glib)
3998 ("libgee" ,libgee)
3999 ("librsvg" ,librsvg)
4000 ("qqwing" ,qqwing)))
4001 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4002 (synopsis "Japanese logic game")
4003 (description
4004 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4005GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4006possible while still providing features that make playing difficult Sudoku
4007more fun.")
4008 (license license:gpl2+)))
4009
88f70665
AW
4010(define-public gnome-terminal
4011 (package
4012 (name "gnome-terminal")
80f6f9d8 4013 (version "3.34.2")
88f70665
AW
4014 (source
4015 (origin
4016 (method url-fetch)
4017 (uri (string-append "mirror://gnome/sources/" name "/"
4018 (version-major+minor version) "/"
4019 name "-" version ".tar.xz"))
4020 (sha256
4021 (base32
80f6f9d8 4022 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
4023 (build-system glib-or-gtk-build-system)
4024 (arguments
4025 '(#:configure-flags
4026 (list "--disable-migration" "--disable-search-provider"
4027 "--without-nautilus-extension")
4028 #:phases
4029 (modify-phases %standard-phases
3a4de6b2 4030 (add-before 'configure 'patch-/bin/true
88f70665
AW
4031 (lambda _
4032 (substitute* "configure"
4033 (("/bin/true") (which "true"))))))))
4034 (native-inputs
4035 `(("pkg-config" ,pkg-config)
4036 ("desktop-file-utils" ,desktop-file-utils)
4037 ("intltool" ,intltool)
bcb354ad
SB
4038 ("itstool" ,itstool)
4039 ("xmllint" ,libxml2)))
68702167
MW
4040 (propagated-inputs
4041 `(("dconf" ,dconf)))
88f70665
AW
4042 (inputs
4043 `(("gtk+" ,gtk+)
4044 ("vte" ,vte)
4045 ("gnutls" ,gnutls)
88f70665 4046 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 4047 ("util-linux" ,util-linux "lib")
88f70665
AW
4048 ("vala" ,vala)))
4049 (home-page "https://wiki.gnome.org/Apps/Terminal")
4050 (synopsis "Terminal emulator")
4051 (description
4052 "GNOME Terminal is a terminal emulator application for accessing a
4053UNIX shell environment which can be used to run programs available on
4054your system.
4055
4056It supports several profiles, multiple tabs and implements several
4057keyboard shortcuts.")
4058 (license license:gpl3+)))
75016d07
AW
4059
4060(define-public colord
4061 (package
4062 (name "colord")
f98be942 4063 (version "1.4.4")
75016d07
AW
4064 (source
4065 (origin
4066 (method url-fetch)
5cc3096c 4067 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4068 "colord-" version ".tar.xz"))
75016d07 4069 (sha256
f98be942 4070 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4071 (build-system meson-build-system)
75016d07 4072 (arguments
a68544a8
RW
4073 '(;; FIXME: One test fails:
4074 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4075 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4076 ;; application/x-zerosize
75016d07 4077 #:tests? #f
a68544a8
RW
4078 #:glib-or-gtk? #t
4079 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4080 ;; No dep on systemd.
a68544a8 4081 "-Dsystemd=false"
75016d07
AW
4082 ;; Wants to install to global completion dir;
4083 ;; punt.
a68544a8 4084 "-Dbash_completion=false"
a68544a8
RW
4085 "-Ddaemon_user=colord"
4086 "-Dsane=true"
dac26e22 4087 "-Dvapi=true"
6f20e2dc 4088 ;; Requires spotread.
a68544a8 4089 "-Dargyllcms_sensor=false"
6f20e2dc 4090 ;; TODO: Requires docbook2x.
a68544a8 4091 "-Dman=false")
75016d07
AW
4092 #:phases
4093 (modify-phases %standard-phases
a68544a8
RW
4094 (add-before 'configure 'patch-build-system
4095 (lambda* (#:key outputs #:allow-other-keys)
4096 (substitute* "rules/meson.build"
4097 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4098 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4099 #t))
4100 (add-before 'configure 'set-sqlite3-file-name
4101 (lambda* (#:key inputs #:allow-other-keys)
4102 ;; "colormgr dump" works by invoking the "sqlite3" command.
4103 ;; Record its absolute file name.
4104 (let ((sqlite (assoc-ref inputs "sqlite")))
4105 (substitute* "client/cd-util.c"
4106 (("\"sqlite3\"")
4107 (string-append "\"" sqlite "/bin/sqlite3\"")))
4108 #t))))))
75016d07 4109 (native-inputs
6f20e2dc 4110 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4111 ("gettext" ,gettext-minimal)
75016d07 4112 ("gobject-introspection" ,gobject-introspection)
a68544a8 4113 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4114 ("pkg-config" ,pkg-config)
4115 ("vala" ,vala)))
65cb2d61
SB
4116 (propagated-inputs
4117 ;; colord.pc refers to all these.
4118 `(("glib" ,glib)
6f20e2dc
TGR
4119 ("lcms" ,lcms)
4120 ("udev" ,eudev)))
75016d07 4121 (inputs
65cb2d61 4122 `(("dbus-glib" ,dbus-glib)
a68544a8 4123 ("gusb" ,gusb)
80c7dd1a 4124 ("libgudev" ,libgudev)
75016d07 4125 ("libusb" ,libusb)
75016d07 4126 ("polkit" ,polkit)
a68544a8 4127 ("python" ,python-wrapper)
6f20e2dc 4128 ("sqlite" ,sqlite)
4c928743 4129 ("sane-backends" ,sane-backends)))
57e7d748 4130 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4131 (synopsis "Color management service")
4132 (description "Colord is a system service that makes it easy to manage,
4133install and generate color profiles to accurately color manage input and
4134output devices.")
4135 (license license:gpl2+)))
7b2abd00
AW
4136
4137(define-public geoclue
4138 (package
4139 (name "geoclue")
2bf0a5cb 4140 (version "2.5.6")
7b2abd00
AW
4141 (source
4142 (origin
4143 (method url-fetch)
50e96d25
MB
4144 (uri
4145 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4146 version "/geoclue-" version ".tar.bz2"))
7b2abd00 4147 (sha256
2bf0a5cb 4148 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
fc1adab1 4149 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4150 (build-system meson-build-system)
7b2abd00 4151 (arguments
50e96d25 4152 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4153 (native-inputs
4154 `(("pkg-config" ,pkg-config)
758798a9 4155 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4156 ("modem-manager" ,modem-manager)
4157 ("libnotify" ,libnotify)
4158 ("gtk-doc", gtk-doc)
7b2abd00
AW
4159 ("intltool" ,intltool)))
4160 (inputs
54e911bc 4161 `(("avahi" ,avahi)
50e96d25
MB
4162 ("glib:bin" ,glib "bin")
4163 ("glib-networking" ,glib-networking)
7b2abd00
AW
4164 ("json-glib" ,json-glib)
4165 ("libsoup" ,libsoup)))
50e96d25 4166 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4167 (synopsis "Geolocation service")
4168 (description "Geoclue is a D-Bus service that provides location
4169information. The primary goal of the Geoclue project is to make creating
4170location-aware applications as simple as possible, while the secondary goal is
4171to ensure that no application can access location information without explicit
e881752c 4172permission from user.")
7b2abd00 4173 (license license:gpl2+)))
2bfe7437
AW
4174
4175(define-public geocode-glib
4176 (package
4177 (name "geocode-glib")
65de725f 4178 (version "3.26.1")
2bfe7437
AW
4179 (source (origin
4180 (method url-fetch)
4181 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4182 (version-major+minor version) "/"
d485cdc0 4183 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4184 (sha256
4185 (base32
65de725f 4186 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4187 (build-system meson-build-system)
2bfe7437 4188 (arguments
a7dd0c02
RW
4189 `(#:phases
4190 (modify-phases %standard-phases
4191 ;; The tests require a bunch of locales.
4192 (add-before 'check 'set-locales
4193 (lambda* (#:key inputs #:allow-other-keys)
4194 (setenv "GUIX_LOCPATH"
4195 (string-append (assoc-ref inputs "glibc-locales")
4196 "/lib/locale"))
4197 #t)))))
2bfe7437
AW
4198 (native-inputs
4199 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4200 ("glibc-locales" ,glibc-locales) ; for tests
4201 ("gettext" ,gettext-minimal)
2bfe7437 4202 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4203 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4204 ("pkg-config" ,pkg-config)
4205 ("json-glib" ,json-glib)))
4206 (propagated-inputs
4207 ;; geocode-glib-1.0.pc refers to GIO.
4208 `(("glib" ,glib)))
4209 (inputs
4210 `(("libsoup" ,libsoup)))
4211 (home-page "https://github.com/GNOME/geocode-glib/")
4212 (synopsis "Geocoding and reverse-geocoding library")
4213 (description
4214 "geocode-glib is a convenience library for geocoding (finding longitude,
4215and latitude from an address) and reverse geocoding (finding an address from
4216coordinates) using the Nominatim service. geocode-glib caches requests for
4217faster results and to avoid unnecessary server load.")
4218 (license license:lgpl2.0+)))
a1d5bb0e
AW
4219
4220(define-public upower
4221 (package
4222 (name "upower")
df45af90 4223 (version "0.99.11")
a1d5bb0e
AW
4224 (source (origin
4225 (method url-fetch)
df45af90 4226 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4227 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4228 (sha256
4229 (base32
df45af90 4230 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4231 (patches (search-patches "upower-builddir.patch"))
4232 (modules '((guix build utils)))
4233 (snippet
4234 '(begin
4235 ;; Upstream commit
4236 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4237 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4238 ;; 'dbus-configuration-directory' in (gnu services dbus)
4239 ;; expects it in etc/. Thus, move it back to its previous
4240 ;; location.
4241 (substitute* "src/Makefile.in"
4242 (("^dbusconfdir =.*$")
4243 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4244 #t))))
a1d5bb0e
AW
4245 (build-system glib-or-gtk-build-system)
4246 (arguments
6039031a
BW
4247 '(#:phases
4248 (modify-phases %standard-phases
4249 (add-before 'check 'pre-check
4250 (lambda* (#:key inputs #:allow-other-keys)
4251 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4252 "/lib")))
4253 (setenv "LD_LIBRARY_PATH" umockdev))
4254 #t)))
a1d5bb0e
AW
4255 #:configure-flags (list "--localstatedir=/var"
4256 (string-append "--with-udevrulesdir="
4257 (assoc-ref %outputs "out")
9ec54965 4258 "/lib/udev/rules.d"))))
a1d5bb0e 4259 (native-inputs
ebeabe2d
SB
4260 `(("gobject-introspection" ,gobject-introspection)
4261 ("pkg-config" ,pkg-config)
a1d5bb0e 4262 ("intltool" ,intltool)
55409295
LC
4263 ("python" ,python)
4264
6039031a
BW
4265 ;; For tests.
4266 ("python-dbus" ,python-dbus)
4267 ("python-dbusmock" ,python-dbusmock)
4268 ("python-pygobject" ,python-pygobject)
4269 ("umockdev" ,umockdev)
4270
55409295
LC
4271 ;; For man pages.
4272 ("libxslt" ,libxslt) ;for 'xsltproc'
4273 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4274 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4275 (inputs
ea226291
SB
4276 `(("dbus-glib" ,dbus-glib)
4277 ("libgudev" ,libgudev)
a1d5bb0e 4278 ("libusb" ,libusb)))
d7a503fc
MB
4279 (propagated-inputs
4280 ;; In Requires of upower-glib.pc.
4281 `(("glib" ,glib)))
57e7d748 4282 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4283 (synopsis "System daemon for managing power devices")
4284 (description
4285 "UPower is an abstraction for enumerating power devices,
4286listening to device events and querying history and statistics. Any
4287application or service on the system can access the org.freedesktop.UPower
4288service via the system message bus.")
4289 (license license:gpl2+)))
6a180f6f
AW
4290
4291(define-public libgweather
4292 (package
4293 (name "libgweather")
462d3416 4294 (version "3.34.0")
6a180f6f
AW
4295 (source (origin
4296 (method url-fetch)
4297 (uri (string-append "mirror://gnome/sources/" name "/"
4298 (version-major+minor version) "/"
4299 name "-" version ".tar.xz"))
4300 (sha256
4301 (base32
462d3416 4302 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 4303 (build-system meson-build-system)
6a180f6f 4304 (arguments
cf6cbc34
RW
4305 `(#:tests? #f ; one of two tests requires network access
4306 #:configure-flags
4307 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4308 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4309 "/share/zoneinfo"))))
6a180f6f
AW
4310 (native-inputs
4311 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4312 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4313 ("pkg-config" ,pkg-config)
1d3fcf94 4314 ("vala" ,vala)
6a180f6f
AW
4315 ("intltool" ,intltool)))
4316 (propagated-inputs
4317 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4318 ;; libsoup.
4319 `(("gtk+" ,gtk+)
4320 ("gdk-pixbuf" ,gdk-pixbuf)
4321 ("libxml2" ,libxml2)
cf6cbc34 4322 ("libsoup" ,libsoup)
6a180f6f 4323 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4324 (inputs
4325 `(("tzdata" ,tzdata)))
6a180f6f
AW
4326 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4327 (synopsis "Location, time zone, and weather library for GNOME")
4328 (description
4329 "libgweather is a library to access weather information from online
4330services for numerous locations.")
4331 (license license:gpl2+)))
23a22af6
AW
4332
4333(define-public gnome-settings-daemon
4334 (package
4335 (name "gnome-settings-daemon")
20154759 4336 (version "3.34.1")
23a22af6
AW
4337 (source
4338 (origin
4339 (method url-fetch)
4340 (uri (string-append "mirror://gnome/sources/" name "/"
4341 (version-major+minor version) "/"
4342 name "-" version ".tar.xz"))
4343 (sha256
4344 (base32
20154759 4345 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 4346 (build-system meson-build-system)
23a22af6 4347 (arguments
e644f9fa
RW
4348 `(#:glib-or-gtk? #t
4349 #:configure-flags
4350 (list (string-append "-Dudev_dir="
4351 (assoc-ref %outputs "out")
4d0e085b 4352 "/lib/udev/rules.d/")
20154759 4353 "-Dsystemd=false"
4d0e085b
RW
4354 ;; Otherwise, the RUNPATH will lack the final path component.
4355 (string-append "-Dc_link_args=-Wl,-rpath="
4356 (assoc-ref %outputs "out")
4357 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4358 ;; Color management test can't reach the colord system service.
23a22af6
AW
4359 #:tests? #f))
4360 (native-inputs
e644f9fa
RW
4361 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4362 ("pkg-config" ,pkg-config)
23a22af6
AW
4363 ("intltool" ,intltool)
4364 ("xsltproc" ,libxslt)
4365 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4366 ("docbook-xml" ,docbook-xml-4.2)
4367 ("docbook-xsl" ,docbook-xsl)))
4368 (inputs
e644f9fa
RW
4369 `(("alsa-lib" ,alsa-lib)
4370 ("colord" ,colord)
ea226291 4371 ("libgudev" ,libgudev)
23a22af6
AW
4372 ("upower" ,upower)
4373 ("polkit" ,polkit)
4374 ("pulseaudio" ,pulseaudio)
4375 ("libcanberra" ,libcanberra)
4376 ("libx11" ,libx11)
4377 ("libxtst" ,libxtst)
4378 ("lcms" ,lcms)
4379 ("libnotify" ,libnotify)
4380 ("geoclue" ,geoclue)
4381 ("geocode-glib" ,geocode-glib)
4382 ("libgweather" ,libgweather)
4383 ("gnome-desktop" ,gnome-desktop)
4384 ("nss" ,nss)
4385 ("cups" ,cups)
ec2b1921
AW
4386 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4387 ("libwacom" ,libwacom)
4388 ("librsvg" ,librsvg)
eee7878f 4389 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4390 ("wayland" ,wayland)
20154759
KK
4391 ("network-manager" ,network-manager)
4392 ("gcr" ,gcr)
4393 ("modem-manager" ,modem-manager)))
f032d0be 4394 (home-page "https://www.gnome.org")
23a22af6
AW
4395 (synopsis "GNOME settings daemon")
4396 (description
4397 "This package contains the daemon responsible for setting the various
4398parameters of a GNOME session and the applications that run under it. It
4399handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4400settings, themes, mouse settings, and startup of other daemons.")
4401 (license license:gpl2+)))
1e7464a9
DH
4402
4403(define-public totem-pl-parser
4404 (package
4405 (name "totem-pl-parser")
77425f04 4406 (version "3.26.3")
1e7464a9
DH
4407 (source (origin
4408 (method url-fetch)
e980cbe9
MW
4409 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4410 (version-major+minor version) "/"
1e7464a9
DH
4411 "totem-pl-parser-" version ".tar.xz"))
4412 (sha256
4413 (base32
77425f04 4414 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4415 (build-system meson-build-system)
1e7464a9
DH
4416 (arguments
4417 ;; FIXME: Tests require gvfs.
4418 `(#:tests? #f))
4419 (native-inputs
4420 `(("intltool" ,intltool)
4421 ("glib" ,glib "bin")
4d6d8281 4422 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4423 ("pkg-config" ,pkg-config)))
22a6ad6a 4424 (propagated-inputs
1e7464a9
DH
4425 `(("glib" ,glib)
4426 ("gmime" ,gmime)
1e9b19dd
RW
4427 ("libarchive" ,libarchive)
4428 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4429 ("libxml2" ,libxml2)))
4430 (inputs
0a6e9e13 4431 `(("libsoup" ,libsoup)))
1e7464a9
DH
4432 (home-page "https://projects.gnome.org/totem")
4433 (synopsis "Library to parse and save media playlists for GNOME")
4434 (description "Totem-pl-parser is a GObjects-based library to parse and save
4435playlists in a variety of formats.")
4436 (license license:lgpl2.0+)))
4437
6b888eff
SB
4438(define-public aisleriot
4439 (package
4440 (name "aisleriot")
36ed9b46 4441 (version "3.22.9")
6b888eff
SB
4442 (source (origin
4443 (method url-fetch)
e43f622a 4444 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4445 (version-major+minor version) "/"
e43f622a 4446 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4447 (sha256
4448 (base32
36ed9b46 4449 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4450 (build-system glib-or-gtk-build-system)
4451 (arguments
4452 '(#:configure-flags
4453 '("--with-platform=gtk-only"
4454 "--with-card-theme-formats=svg")))
4455 (native-inputs
4456 `(("desktop-file-utils" ,desktop-file-utils)
4457 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4458 ("intltool" ,intltool)
4459 ("itstool" ,itstool)
4460 ("pkg-config" ,pkg-config)
4461 ("xmllint" ,libxml2)))
4462 (inputs
4463 `(("gtk+" ,gtk+)
226e57d6 4464 ("guile" ,guile-2.2)
6b888eff
SB
4465 ("libcanberra" ,libcanberra)
4466 ("librsvg" ,librsvg)))
4467 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4468 (synopsis "Solitaire card games")
4469 (description
4470 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4471which are easy to play with the aid of a mouse.")
4472 (license license:gpl3+)))
4a79e256 4473
f828d05b
KK
4474(define-public amtk
4475 (package
4476 (name "amtk")
0e08ca14 4477 (version "5.0.2")
f828d05b
KK
4478 (source (origin
4479 (method url-fetch)
bf92ba6b 4480 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4481 (version-major+minor version) "/"
bf92ba6b 4482 "amtk-" version ".tar.xz"))
f828d05b
KK
4483 (sha256
4484 (base32
0e08ca14 4485 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4486 (build-system gnu-build-system)
4487 (arguments
4488 '(#:configure-flags '("--enable-gtk-doc")))
4489 (native-inputs
4490 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4491 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4492 ("gtk-doc" ,gtk-doc)
4493 ("pkg-config" ,pkg-config)))
4494 (inputs
4495 `(("glib" ,glib)
4496 ("gtk+" ,gtk+)))
4497 (home-page "https://wiki.gnome.org/Projects/Amtk")
4498 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4499 (description
4500 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4501It is a basic GtkUIManager replacement based on GAction. It is suitable for
4502both a traditional UI or a modern UI with a GtkHeaderBar.")
4503 (license license:lgpl2.1+)))
4504
4a79e256
SB
4505(define-public devhelp
4506 (package
4507 (name "devhelp")
8ae23a1d 4508 (version "3.34.0")
4a79e256
SB
4509 (source (origin
4510 (method url-fetch)
4511 (uri (string-append "mirror://gnome/sources/" name "/"
4512 (version-major+minor version) "/"
4513 name "-" version ".tar.xz"))
4514 (sha256
4515 (base32
8ae23a1d 4516 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 4517 (build-system meson-build-system)
35407f94 4518 (arguments
20db7a3d
KK
4519 '(#:glib-or-gtk? #t
4520 #:phases
35407f94
EF
4521 (modify-phases %standard-phases
4522 (add-after 'unpack 'skip-gtk-update-icon-cache
4523 ;; Don't create 'icon-theme.cache'.
4524 (lambda _
4525 (substitute* "meson_post_install.py"
4526 (("gtk-update-icon-cache") "true"))
4527 #t)))))
4a79e256
SB
4528 (native-inputs
4529 `(("intltool" ,intltool)
5dd12afc 4530 ("itstool" ,itstool)
11d28bd9
KK
4531 ("gobject-introspection" ,gobject-introspection)
4532 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4533 ("pkg-config" ,pkg-config)))
4534 (inputs
11d28bd9
KK
4535 `(("amtk" ,amtk)
4536 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4537 ("webkitgtk" ,webkitgtk)))
4538 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4539 (synopsis "API documentation browser for GNOME")
4540 (description
4541 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4542natively with GTK-Doc (the API reference system developed for GTK+ and used
4543throughout GNOME for API documentation).")
4544 (license license:gpl2+)))
ba421ab7
MW
4545
4546(define-public cogl
4547 (package
4548 (name "cogl")
29f4bb2e 4549 (version "1.22.6")
ba421ab7
MW
4550 (source
4551 (origin
4552 (method url-fetch)
5754f0cf 4553 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4554 (version-major+minor version) "/"
5754f0cf 4555 "cogl-" version ".tar.xz"))
ba421ab7 4556 (sha256
29f4bb2e 4557 (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
a88d5a0c
MW
4558 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4559 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4560 (build-system gnu-build-system)
4561 (native-inputs
4562 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4563 ("gobject-introspection" ,gobject-introspection)
b4f04e0e 4564 ("xorg-server" ,xorg-server-for-tests)
ba421ab7
MW
4565 ("pkg-config" ,pkg-config)))
4566 (propagated-inputs
4567 `(("glib" ,glib)
4568 ("gdk-pixbuf" ,gdk-pixbuf)
4569 ("libx11" ,libx11)
4570 ("libxext" ,libxext)
4571 ("libxfixes" ,libxfixes)
4572 ("libxdamage" ,libxdamage)
4573 ("libxcomposite" ,libxcomposite)
4574 ("libxrandr" ,libxrandr)))
4575 (inputs
4576 `(("mesa" ,mesa)
4577 ("cairo" ,cairo)
4578 ("pango" ,pango)
4579 ("gstreamer" ,gstreamer)
31860852
KK
4580 ("gst-plugins-base" ,gst-plugins-base)
4581 ("wayland" ,wayland)))
ba421ab7 4582 (arguments
b4f04e0e
MB
4583 `(#:disallowed-references (,xorg-server-for-tests)
4584 #:configure-flags (list "--enable-cogl-gst"
31860852
KK
4585 "--enable-wayland-egl-platform"
4586 "--enable-wayland-egl-server"
4587
ba421ab7
MW
4588 ;; Arrange to pass an absolute file name to
4589 ;; dlopen for libGL.so.
4590 (string-append "--with-gl-libname="
4591 (assoc-ref %build-inputs "mesa")
4592 "/lib/libGL.so"))
b4f04e0e 4593 #:phases
ba421ab7
MW
4594 (modify-phases %standard-phases
4595 (add-before 'check 'start-xorg-server
b4f04e0e
MB
4596 (lambda* (#:key tests? inputs #:allow-other-keys)
4597 (if tests?
4598 (begin
4599 ;; The test suite requires a running X server.
4600 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4601 (assoc-ref inputs "xorg-server")))
4602 (setenv "DISPLAY" ":1")
4603 #t)
4604 (format #t "test suite not run~%"))
ba421ab7 4605 #t)))))
89b49245 4606 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4607 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4608 (description
4609 "Cogl is a small library for using 3D graphics hardware to draw pretty
4610pictures. The API departs from the flat state machine style of OpenGL and is
4611designed to make it easy to write orthogonal components that can render
4612without stepping on each others toes.")
4613 (license (list license:expat ; most of the code
4614 license:bsd-3 ; cogl/cogl-point-in-poly.c
4615 license:sgifreeb2.0 ; cogl-path/tesselator/
4616 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4617
4618(define-public clutter
4619 (package
4620 (name "clutter")
6a88e4ee 4621 (version "1.26.2")
fb182b8a
MW
4622 (source
4623 (origin
4624 (method url-fetch)
4625 (uri (string-append "mirror://gnome/sources/" name "/"
4626 (version-major+minor version) "/"
4627 name "-" version ".tar.xz"))
4628 (sha256
4629 (base32
6a88e4ee 4630 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4631 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4632 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4633 (build-system gnu-build-system)
600233bd
LC
4634 (outputs '("out"
4635 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4636 (native-inputs
4637 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4638 ("gobject-introspection" ,gobject-introspection)
4639 ("pkg-config" ,pkg-config)
4640 ("xsltproc" ,libxslt)))
4641 (propagated-inputs
4642 `(("cogl" ,cogl)
4643 ("cairo" ,cairo)
4644 ("atk" ,atk)
4645 ("gtk+" ,gtk+)
4646 ("json-glib" ,json-glib)
4647 ("glib" ,glib)
4648 ("libxcomposite" ,libxcomposite)
4649 ("libxdamage" ,libxdamage)
4650 ("libxext" ,libxext)
4651 ("xinput" ,xinput)))
4652 (inputs
4653 `(("libxkbcommon" ,libxkbcommon)
4654 ("udev" ,eudev)))
4655 (arguments
600233bd
LC
4656 `(#:configure-flags (list "--enable-x11-backend=yes"
4657
4658 ;; This produces share/doc/{clutter,cally}.
4659 (string-append "--with-html-dir="
4660 (assoc-ref %outputs "doc")
4661 "/share/doc"))
fb182b8a
MW
4662 ;; XXX FIXME: Get test suite working. It would probably fail in the
4663 ;; same way the cogl tests fail, since clutter is based on cogl.
4664 #:tests? #f))
4665 (home-page "http://www.clutter-project.org")
476af713 4666 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4667 (description
476af713 4668 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4669creating fast, mainly 2D single window applications such as media box UIs,
4670presentations, kiosk style applications and so on.")
4671 (license license:lgpl2.0+)))
bf7f17ba
MW
4672
4673(define-public clutter-gtk
4674 (package
4675 (name "clutter-gtk")
5d1a3219 4676 (version "1.8.4")
bf7f17ba
MW
4677 (source
4678 (origin
4679 (method url-fetch)
4680 (uri (string-append "mirror://gnome/sources/" name "/"
4681 (version-major+minor version) "/"
4682 name "-" version ".tar.xz"))
4683 (sha256
4684 (base32
5d1a3219 4685 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4686 (build-system gnu-build-system)
4687 (native-inputs
4688 `(("pkg-config" ,pkg-config)
4689 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4690 (propagated-inputs
4691 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4692 `(("clutter" ,clutter)
4693 ("gtk+" ,gtk+)))
4694 (home-page "http://www.clutter-project.org")
476af713 4695 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4696 (description
476af713 4697 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4698creating fast, mainly 2D single window applications such as media box UIs,
4699presentations, kiosk style applications and so on.")
4700 (license license:lgpl2.0+)))
86d6a893
MW
4701
4702(define-public clutter-gst
4703 (package
4704 (name "clutter-gst")
ba07ac19 4705 (version "3.0.27")
86d6a893
MW
4706 (source
4707 (origin
4708 (method url-fetch)
f010f89b 4709 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4710 (version-major+minor version) "/"
f010f89b 4711 "clutter-gst-" version ".tar.xz"))
86d6a893 4712 (sha256
ba07ac19 4713 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4714 (build-system gnu-build-system)
4715 (native-inputs
ba07ac19 4716 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4717 ("pkg-config" ,pkg-config)
4718 ("gobject-introspection" ,gobject-introspection)))
4719 (inputs
4720 `(("clutter" ,clutter)
4721 ("gstreamer" ,gstreamer)
4722 ("gst-plugins-base" ,gst-plugins-base)))
4723 (home-page "http://www.clutter-project.org")
4724 (synopsis "Integration library for using GStreamer with Clutter")
4725 (description
4726 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4727It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4728implements the ClutterGstPlayer interface using playbin. Clutter is an
4729OpenGL-based interactive canvas library.")
86d6a893 4730 (license license:lgpl2.0+)))
607a04ae 4731
30dc88d9
LC
4732(define-public libchamplain
4733 (package
4734 (name "libchamplain")
5564b2c5 4735 (version "0.12.16")
30dc88d9
LC
4736 (source (origin
4737 (method url-fetch)
4738 (uri (string-append
4739 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4740 version ".tar.xz"))
4741 (sha256
4742 (base32
5564b2c5 4743 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4744 (build-system gnu-build-system)
f7c6833f
LF
4745 (arguments '(#:configure-flags '("--enable-vala")))
4746 (native-inputs
4747 `(("gobject-introspection" ,gobject-introspection)
4748 ("pkg-config" ,pkg-config)
4749 ("vala" ,vala)))
30dc88d9
LC
4750 (propagated-inputs
4751 `(("libsoup" ,libsoup)
4752 ("sqlite" ,sqlite)
4753 ("clutter" ,clutter)
4754 ("clutter-gtk" ,clutter-gtk)
4755 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4756 ("cairo" ,cairo)
4757 ("gtk+3" ,gtk+)
4758 ("glib" ,glib)))
f032d0be 4759 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4760 (synopsis "C library providing a ClutterActor to display maps")
4761 (description
4762 "libchamplain is a C library providing a ClutterActor to display maps.
4763It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4764and Perl bindings are also available. It supports numerous free map sources
4765such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4766 (license license:lgpl2.1+)))
4767
607a04ae
MW
4768(define-public gom
4769 (package
4770 (name "gom")
0510440b 4771 (version "0.3.2")
607a04ae
MW
4772 (source
4773 (origin
4774 (method url-fetch)
6c8a0b6f 4775 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4776 (version-major+minor version) "/"
6c8a0b6f 4777 "gom-" version ".tar.xz"))
607a04ae
MW
4778 (sha256
4779 (base32
0510440b 4780 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4781 (build-system gnu-build-system)
4782 (native-inputs
4783 `(("intltool" ,intltool)
4784 ("pkg-config" ,pkg-config)
4785 ("gobject-introspection" ,gobject-introspection)))
4786 (inputs
4787 `(("glib" ,glib)
4788 ("gdk-pixbuf" ,gdk-pixbuf)
4789 ("sqlite" ,sqlite)))
4790 ;; XXX TODO: Figure out how to run the test suite.
4791 (arguments `(#:tests? #f))
4792 (home-page "https://wiki.gnome.org/Projects/Gom")
4793 (synopsis "Object mapper from GObjects to SQLite")
4794 (description
4795 "Gom provides an object mapper from GObjects to SQLite. It helps you
4796write applications that need to store structured data as well as make complex
4797queries upon that data.")
4798 (license license:lgpl2.1+)))
b7a3cf11 4799
865aacc9 4800(define-public libgnome-games-support
f09520db 4801 (package
865aacc9 4802 (name "libgnome-games-support")
4c6d15cf 4803 (version "1.4.4")
f09520db
SB
4804 (source (origin
4805 (method url-fetch)
2d8dca9d 4806 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4807 (version-major+minor version) "/"
2d8dca9d 4808 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4809 (sha256
4810 (base32
4c6d15cf 4811 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4812 (build-system gnu-build-system)
4813 (arguments
4814 '(#:phases
4815 (modify-phases %standard-phases
4816 (add-before 'check 'pre-check
4817 (lambda _
865aacc9 4818 ;; Tests require a writable HOME.
f09520db
SB
4819 (setenv "HOME" (getcwd))
4820 #t)))))
4821 (native-inputs
4822 `(("intltool" ,intltool)
4823 ("pkg-config" ,pkg-config)
4824 ("vala" ,vala)))
4825 (propagated-inputs
865aacc9 4826 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4827 `(("gtk+" ,gtk+)
4828 ("libgee" ,libgee)))
4829 (home-page "https://www.gnome.org/")
4830 (synopsis "Useful functionality shared among GNOME games")
4831 (description
865aacc9 4832 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4833GNOME Games, but it may be used by others.")
4834 (license license:lgpl3+)))
4835
b7a3cf11
SB
4836(define-public gnome-klotski
4837 (package
4838 (name "gnome-klotski")
18364fbc 4839 (version "3.34.0")
b7a3cf11
SB
4840 (source (origin
4841 (method url-fetch)
4842 (uri (string-append "mirror://gnome/sources/" name "/"
4843 (version-major+minor version) "/"
4844 name "-" version ".tar.xz"))
4845 (sha256
4846 (base32
18364fbc 4847 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
4848 (build-system meson-build-system)
4849 (arguments
4850 '(#:glib-or-gtk? #t
4851 #:phases
4852 (modify-phases %standard-phases
4853 (add-after 'unpack 'skip-gtk-update-icon-cache
4854 ;; Don't create 'icon-theme.cache'.
4855 (lambda _
4856 (substitute* "build-aux/meson_post_install.py"
4857 (("gtk-update-icon-cache") (which "true")))
4858 #t)))))
b7a3cf11
SB
4859 (native-inputs
4860 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4861 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4862 ("intltool" ,intltool)
4863 ("itstool" ,itstool)
bcb354ad 4864 ("pkg-config" ,pkg-config)
c1e419c4 4865 ("vala" ,vala)
bcb354ad 4866 ("xmllint" ,libxml2)))
b7a3cf11
SB
4867 (inputs
4868 `(("gtk+" ,gtk+)
f4eae76f 4869 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4870 ("librsvg" ,librsvg)))
4871 (home-page "https://wiki.gnome.org/Apps/Klotski")
4872 (synopsis "Sliding block puzzles")
4873 (description
4874 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4875the patterned block to the area bordered by green markers. To do so, you will
4876need to slide other blocks out of the way. Complete each puzzle in as few moves
4877as possible!")
4878 (license license:gpl2+)))
8d4791bf
MW
4879
4880(define-public grilo
4881 (package
4882 (name "grilo")
a865e938 4883 (version "0.3.10")
8d4791bf
MW
4884 (source
4885 (origin
4886 (method url-fetch)
4887 (uri (string-append "mirror://gnome/sources/" name "/"
4888 (version-major+minor version) "/"
4889 name "-" version ".tar.xz"))
4890 (sha256
4891 (base32
a865e938 4892 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4893 (build-system meson-build-system)
8d4791bf
MW
4894 (native-inputs
4895 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4896 ("intltool" ,intltool)
4897 ("pkg-config" ,pkg-config)
d48d4c98
KK
4898 ("gobject-introspection" ,gobject-introspection)
4899 ("gtk-doc" ,gtk-doc)
4900 ("vala" ,vala)))
8d4791bf 4901 (inputs
6d7273a0
KK
4902 `(("cyrus-sasl" ,cyrus-sasl)
4903 ("glib" ,glib)
8d4791bf
MW
4904 ("gtk+" ,gtk+)
4905 ("libxml2" ,libxml2)
6d7273a0 4906 ("liboauth" ,liboauth)
8d4791bf
MW
4907 ("libsoup" ,libsoup)
4908 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4909 (native-search-paths
4910 (list (search-path-specification
4911 (variable "GRL_PLUGIN_PATH")
4912 (files (list (string-append "lib/grilo-"
4913 (version-major+minor version)))))))
d48d4c98 4914 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4915 (synopsis "Framework for discovering and browsing media")
4916 (description
4917 "Grilo is a framework focused on making media discovery and browsing easy
4918for application developers.")
4919 (license license:lgpl2.1+)))
7b212526
MW
4920
4921(define-public grilo-plugins
4922 (package
4923 (name "grilo-plugins")
281f6b3a 4924 (version "0.3.10")
7b212526
MW
4925 (source
4926 (origin
4927 (method url-fetch)
4928 (uri (string-append "mirror://gnome/sources/" name "/"
4929 (version-major+minor version) "/"
4930 name "-" version ".tar.xz"))
4931 (sha256
4932 (base32
281f6b3a
RG
4933 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4934 (build-system meson-build-system)
7b212526 4935 (native-inputs
281f6b3a
RG
4936 `(("gettext" ,gettext-minimal)
4937 ("glib:bin" ,glib "bin")
4938 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4939 ("itstool" ,itstool)
4940 ("pkg-config" ,pkg-config)))
281f6b3a 4941 ;; TODO: ahavi, gstreamer
7b212526
MW
4942 (inputs
4943 `(("grilo" ,grilo)
281f6b3a
RG
4944 ;("gmime" ,gmime) ; unused
4945 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4946 ("gom" ,gom)
281f6b3a
RG
4947 ;("gssdp" ,gssdp) ; unused
4948 ;("gupnp" ,gupnp) ; unused
4949 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4950 ("json-glib" ,json-glib)
4951 ("avahi" ,avahi)
281f6b3a
RG
4952 ("libgdata" ,libgdata)
4953 ("libmediaart" ,libmediaart)
4954 ;("librest" ,rest) ; unused
7b212526 4955 ("libsoup" ,libsoup)
281f6b3a
RG
4956 ("totam-pl-parser" ,totem-pl-parser)
4957 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4958 (arguments
281f6b3a
RG
4959 `(#:glib-or-gtk? #t
4960 ;;Disable lua-factory as it needs missing dependencies
4961 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4962 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4963 (synopsis "Plugins for the Grilo media discovery library")
4964 (description
4965 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4966for application developers. This package provides plugins for common media
4967discovery protocols.")
7b212526 4968 (license license:lgpl2.1+)))
4e3fc547
MW
4969
4970(define-public totem
4971 (package
4972 (name "totem")
961dc62d 4973 (version "3.34.1")
4e3fc547
MW
4974 (source
4975 (origin
4976 (method url-fetch)
2a9761b1 4977 (uri (string-append "mirror://gnome/sources/totem/"
4e3fc547 4978 (version-major+minor version) "/"
2a9761b1 4979 "totem-" version ".tar.xz"))
4e3fc547
MW
4980 (sha256
4981 (base32
961dc62d 4982 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 4983 (build-system meson-build-system)
4e3fc547
MW
4984 (native-inputs
4985 `(("pkg-config" ,pkg-config)
4986 ("desktop-file-utils" ,desktop-file-utils)
4987 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4988 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4989 ("intltool" ,intltool)
bcb354ad 4990 ("itstool" ,itstool)
995ef5ea 4991 ("xmllint" ,libxml2)
995ef5ea 4992 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4993 (propagated-inputs
4994 `(("dconf" ,dconf)))
4995 (inputs
4996 `(("gtk+" ,gtk+)
4997 ("gdk-pixbuf" ,gdk-pixbuf)
4998 ("atk" ,atk)
4999 ("cairo" ,cairo)
5000 ("dbus-glib" ,dbus-glib)
5001 ("clutter" ,clutter)
5002 ("clutter-gtk" ,clutter-gtk)
5003 ("clutter-gst" ,clutter-gst)
6a6db57f 5004 ("xorgproto" ,xorgproto)
4e3fc547
MW
5005 ("libxxf86vm" ,libxxf86vm)
5006 ("libxtst" ,libxtst)
5007 ("libxrandr" ,libxrandr)
5008 ("libxml2" ,libxml2)
5009 ("libsoup" ,libsoup)
5010 ("libpeas" ,libpeas)
5011 ("librsvg" ,librsvg)
5012 ("lirc" ,lirc)
5013 ("gnome-desktop" ,gnome-desktop)
5014 ("gstreamer" ,gstreamer)
5015 ("gst-plugins-base" ,gst-plugins-base)
5016 ("gst-plugins-good" ,gst-plugins-good)
5017 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5018 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 5019 ("python" ,python)
995ef5ea 5020 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
5021 ("totem-pl-parser" ,totem-pl-parser)
5022 ("grilo" ,grilo)
5023 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
5024 ("vala" ,vala)))
5025 (arguments
7ad81b8b
LC
5026 `(#:glib-or-gtk? #t
5027
5028 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 5029 ;; all that.
7ad81b8b 5030 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
5031
5032 ;; Do not build .a files for the plugins, it's
5033 ;; completely useless. This saves 2 MiB.
7ad81b8b 5034 "--default-library" "shared")
ec5c24f9 5035 #:phases
4e3fc547 5036 (modify-phases %standard-phases
d51b19ad
EF
5037 (add-after 'unpack 'skip-gtk-update-icon-cache
5038 ;; Don't create 'icon-theme.cache'.
5039 (lambda _
5040 (substitute* "meson_post_install.py"
5041 (("gtk-update-icon-cache") "true"))
5042 #t))
6368eb39
DM
5043 (add-before
5044 'install 'disable-cache-generation
5045 (lambda _
5046 (setenv "DESTDIR" "/")
5047 #t))
995ef5ea
KK
5048 (add-before
5049 'check 'pre-check
5050 (lambda _
5051 ;; Tests require a running X server.
5052 (system "Xvfb :1 &")
5053 (setenv "DISPLAY" ":1")
5054 #t))
4e3fc547
MW
5055 (add-after
5056 'install 'wrap-totem
5057 (lambda* (#:key inputs outputs #:allow-other-keys)
5058 (let ((out (assoc-ref outputs "out"))
5059 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5060 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5061 (wrap-program (string-append out "/bin/totem")
5062 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
5063 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5064 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5065 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
5066 #t)))))
5067 (home-page "https://wiki.gnome.org/Apps/Videos")
5068 (synopsis "Simple media player for GNOME based on GStreamer")
5069 (description "Totem is a simple yet featureful media player for GNOME
5070which can read a large number of file formats.")
5071 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5072 ;; to be used and distributed together with GStreamer and Totem. See
5073 ;; file://COPYING in the source distribution for details.
5074 (license license:gpl2+)))
f0afb0c8
DH
5075
5076(define-public rhythmbox
5077 (package
5078 (name "rhythmbox")
eda580c0 5079 (version "3.4.4")
f0afb0c8
DH
5080 (source (origin
5081 (method url-fetch)
2588693d 5082 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 5083 (version-major+minor version) "/"
2588693d 5084 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
5085 (sha256
5086 (base32
eda580c0 5087 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
5088 (build-system glib-or-gtk-build-system)
5089 (arguments
5090 `(#:configure-flags
5091 (list "--enable-lirc"
5092 "--enable-python"
5093 "--enable-vala"
5094 "--with-brasero"
5095 "--with-gudev"
5096 "--with-libsecret")
5097 #:phases
5098 (modify-phases %standard-phases
5099 (add-after
5100 'install 'wrap-rhythmbox
5101 (lambda* (#:key inputs outputs #:allow-other-keys)
5102 (let ((out (assoc-ref outputs "out"))
5103 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5104 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5105 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5106 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5107 (wrap-program (string-append out "/bin/rhythmbox")
5108 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5109 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5110 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5111 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5112 #t)))))
5113 (propagated-inputs
5114 `(("dconf" ,dconf)))
5115 (native-inputs
bcb354ad
SB
5116 `(("itstool" ,itstool)
5117 ("intltool" ,intltool)
f0afb0c8
DH
5118 ("glib" ,glib "bin")
5119 ("gobject-introspection" ,gobject-introspection)
5120 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5121 ("pkg-config" ,pkg-config)
5122 ("xmllint" ,libxml2)))
f0afb0c8
DH
5123 (inputs
5124 `(("json-glib" ,json-glib)
5125 ("tdb" ,tdb)
5126 ("gnome-desktop" ,gnome-desktop)
5127 ("python" ,python)
5128 ("python-pygobject" ,python2-pygobject)
5129 ("vala" ,vala)
5130 ("gmime" ,gmime)
f0afb0c8
DH
5131 ("adwaita-icon-theme" ,adwaita-icon-theme)
5132 ("grilo" ,grilo)
5133 ("grilo-plugins" ,grilo-plugins)
5134 ("gstreamer" ,gstreamer)
5135 ("gst-plugins-base" ,gst-plugins-base)
5136 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5137 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5138 ("libgudev" ,libgudev)
f0afb0c8
DH
5139 ;;("libmtp" ,libmtp) FIXME: Not detected
5140 ("libsecret" ,libsecret)
5141 ("libsoup" ,libsoup)
5142 ("libnotify" ,libnotify)
5143 ("libpeas" ,libpeas)
5144 ("lirc" ,lirc)
5145 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5146 ;;("clutter" ,clutter)
5147 ;;("clutter-gtk" ,clutter-gtk)
5148 ;;("clutter-gst" ,clutter-gst)
5149 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5150 ("atk" ,atk)
5151 ("pango" ,pango)
5152 ("gtk+" ,gtk+)
5153 ;; TODO:
5154 ;; * libgpod
5155 ;; * mx
f0afb0c8
DH
5156 ("brasero" ,brasero)))
5157 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5158 (synopsis "Music player for GNOME")
5159 (description "Rhythmbox is a music playing application for GNOME. It
5160supports playlists, song ratings, and any codecs installed through gstreamer.")
5161 (license license:gpl2+)))
f70d8383
DH
5162
5163(define-public eog
5164 (package
5165 (name "eog")
0c9031fa 5166 (version "3.34.1")
f70d8383
DH
5167 (source (origin
5168 (method url-fetch)
5169 (uri (string-append "mirror://gnome/sources/" name "/"
5170 (version-major+minor version) "/"
5171 name "-" version ".tar.xz"))
5172 (sha256
5173 (base32
0c9031fa 5174 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5175 (build-system meson-build-system)
f70d8383 5176 (arguments
34c44a34
RW
5177 `(#:configure-flags
5178 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5179 (list (string-append "-Dc_link_args=-Wl,-rpath="
5180 (assoc-ref %outputs "out") "/lib/eog"))
5181 #:phases
f70d8383 5182 (modify-phases %standard-phases
7a034665
EF
5183 (add-after 'unpack 'skip-gtk-update-icon-cache
5184 ;; Don't create 'icon-theme.cache'.
5185 (lambda _
5186 (substitute* "meson_post_install.py"
5187 (("gtk-update-icon-cache") "true"))
5188 #t))
61fb581f
RW
5189 (add-after 'install 'wrap-eog
5190 (lambda* (#:key outputs #:allow-other-keys)
5191 (let ((out (assoc-ref outputs "out"))
5192 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5193 (wrap-program (string-append out "/bin/eog")
5194 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5195 #t)))))
f70d8383
DH
5196 (propagated-inputs
5197 `(("dconf" ,dconf)))
5198 (native-inputs
5199 `(("intltool" ,intltool)
b3546174 5200 ("itstool" ,itstool)
f70d8383
DH
5201 ("glib" ,glib "bin")
5202 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5203 ("pkg-config" ,pkg-config)
5204 ("xmllint" ,libxml2)))
f70d8383
DH
5205 (inputs
5206 `(("gnome-desktop" ,gnome-desktop)
5207 ("shared-mime-info" ,shared-mime-info)
5208 ("adwaita-icon-theme" ,adwaita-icon-theme)
5209 ("exempi" ,exempi)
5210 ("lcms" ,lcms)
5211 ("libexif" ,libexif)
5212 ("libpeas" ,libpeas)
4bd428a7 5213 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5214 ("librsvg" ,librsvg-next)
f70d8383
DH
5215 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5216 ("gtk+" ,gtk+)))
5217 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5218 (synopsis "GNOME image viewer")
5219 (description "Eye of GNOME is the GNOME image viewer. It
5220supports image conversion, rotation, and slideshows.")
5221 (license license:gpl2+)))
41af5e7b 5222
0c3f8cb8
LC
5223(define-public eog-plugins
5224 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5225 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5226 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5227 ;; 'XDG_DATA_DIRS' appropriately set.
5228 (package
5229 (name "eog-plugins")
54b74cc6 5230 (version "3.26.4")
0c3f8cb8
LC
5231 (source (origin
5232 (method url-fetch)
f3b88ed2 5233 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5234 (version-major+minor version) "/"
f3b88ed2 5235 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5236 (sha256
5237 (base32
54b74cc6 5238 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5239 (build-system gnu-build-system)
5240 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5241 (synopsis "Extensions for the Eye of GNOME image viewer")
5242 (native-inputs
5243 `(("pkg-config" ,pkg-config)
f2d97d57 5244 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5245 (inputs
5246 `(("eog" ,eog)
5247 ("glib" ,glib)
5248 ("gtk+" ,gtk+)
5249 ("libpeas" ,libpeas)
5250 ("libexif" ,libexif)
5251 ("libchamplain" ,libchamplain)))
5252 (description
5253 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5254notably:
5255
5256@itemize
5257@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5258@item @dfn{Map}, which displays a map of where the picture was taken on the
5259side panel;
5260@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5261@end itemize\n")
5262
5263 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5264 ;; long suspicious byte stream that goes to a
5265 ;; ".gresource.eog_postasa_plugin" ELF section.
5266 (license license:gpl2+)))
5267
41af5e7b
SB
5268(define-public libgudev
5269 (package
5270 (name "libgudev")
b78f5118 5271 (version "232")
41af5e7b
SB
5272 (source (origin
5273 (method url-fetch)
5274 (uri (string-append "mirror://gnome/sources/" name "/"
5275 version "/" name "-" version ".tar.xz"))
5276 (sha256
5277 (base32
b78f5118 5278 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5279 (build-system gnu-build-system)
b78f5118
RW
5280 (arguments
5281 '(#:configure-flags
5282 ;; umockdev depends on libgudev.
5283 (list "--disable-umockdev")))
41af5e7b
SB
5284 (native-inputs
5285 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5286 ("gobject-introspection" ,gobject-introspection)
5287 ("pkg-config" ,pkg-config)))
5288 (propagated-inputs
5289 `(("glib" ,glib))) ; required by gudev-1.0.pc
5290 (inputs
5291 `(("udev" ,eudev)))
5292 (home-page "https://wiki.gnome.org/Projects/libgudev")
5293 (synopsis "GObject bindings for libudev")
5294 (description
5295 "This library provides GObject bindings for libudev. It was originally
5296part of udev-extras, then udev, then systemd. It's now a project on its own.")
5297 (license license:lgpl2.1+)))
3dc8828f
SB
5298
5299(define-public gvfs
5300 (package
5301 (name "gvfs")
12fe4846 5302 (version "1.40.1")
3dc8828f
SB
5303 (source (origin
5304 (method url-fetch)
1d68eb32 5305 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5306 (version-major+minor version) "/"
1d68eb32 5307 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5308 (sha256
5309 (base32
12fe4846 5310 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5311 (build-system meson-build-system)
3dc8828f 5312 (arguments
e762d943
RW
5313 '(#:glib-or-gtk? #t
5314 #:configure-flags
5315 (list "-Dsystemduserunitdir=no"
5316 "-Dtmpfilesdir=no"
5317 ;; Otherwise, the RUNPATH will lack the final path component.
5318 (string-append "-Dc_link_args=-Wl,-rpath="
5319 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5320 (native-inputs
5321 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5322 ("gettext" ,gettext-minimal)
5323 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5324 ("pkg-config" ,pkg-config)
5325 ("xsltproc" ,libxslt)))
5326 (inputs
5327 `(("avahi" ,avahi)
5328 ("docbook-xml" ,docbook-xml-4.2)
5329 ("docbook-xsl" ,docbook-xsl)
5330 ("dbus" ,dbus)
e762d943 5331 ("elogind" ,elogind)
3dc8828f 5332 ("fuse" ,fuse)
24a78aa6 5333 ("gcr" ,gcr)
3dc8828f 5334 ("glib" ,glib)
e762d943 5335 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5336 ("libarchive" ,libarchive)
5337 ("libbluray" ,libbluray)
8852ca24 5338 ("libcap" ,libcap)
3dc8828f
SB
5339 ("libcdio-paranoia" ,libcdio-paranoia)
5340 ("libgcrypt" ,libgcrypt)
e762d943 5341 ("libgdata" ,libgdata)
3dc8828f
SB
5342 ("libgphoto2" ,libgphoto2)
5343 ("libgudev" ,libgudev)
0ab9f949 5344 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5345 ("libmtp" ,libmtp)
e762d943 5346 ("libnfs" ,libnfs)
3dc8828f
SB
5347 ("libsecret" ,libsecret)
5348 ("libsmbclient" ,samba)
5349 ("libsoup" ,libsoup)
5350 ("libxml2" ,libxml2)
e762d943 5351 ("openssh" ,openssh)
8852ca24 5352 ("polkit" ,polkit)
3dc8828f
SB
5353 ("udisks" ,udisks)))
5354 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5355 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5356 (description
8f65585b 5357 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5358abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5359to all applications using the GIO API. It also supports exposing the GVFS
5360mounts to non-GIO applications using FUSE.
5361
5362GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5363DAV, and others.")
5364 (license license:lgpl2.0+)))
7c88b6bd
AW
5365
5366(define-public gusb
5367 (package
5368 (name "gusb")
536b3274 5369 (version "0.3.0")
7c88b6bd 5370 (source (origin
bbfb36f9
EF
5371 (method git-fetch)
5372 (uri (git-reference
5373 (url "https://github.com/hughsie/libgusb.git")
5374 (commit version)))
5375 (file-name (git-file-name name version))
7c88b6bd
AW
5376 (sha256
5377 (base32
bbfb36f9 5378 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5379 (build-system meson-build-system)
7c88b6bd 5380 (native-inputs
536b3274 5381 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5382 ("pkg-config" ,pkg-config)
5383 ("vala" ,vala)
7c88b6bd
AW
5384 ("gtk-doc" ,gtk-doc)))
5385 (propagated-inputs
5386 ;; Both of these are required by gusb.pc.
5387 `(("glib" ,glib)
5388 ("libusb" ,libusb)))
5389 (arguments
536b3274 5390 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5391 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5392 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5393 (description
5394 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5395asynchronous control, bulk and interrupt transfers with proper cancellation
5396and integration into a mainloop. This makes it easy to integrate low level
5397USB transfers with your high-level application or system daemon.")
5398 (license license:lgpl2.1+)))
0abe1d86
AW
5399
5400(define-public simple-scan
5401 (package
5402 (name "simple-scan")
3f352df0 5403 (version "3.36.3")
d9f6d587
TGR
5404 (source
5405 (origin
5406 (method url-fetch)
5407 (uri (string-append "mirror://gnome/sources/simple-scan/"
5408 (version-major+minor version) "/"
5409 "simple-scan-" version ".tar.xz"))
5410 (sha256
3f352df0 5411 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
d9f6d587
TGR
5412 (build-system meson-build-system)
5413 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5414 (arguments
5415 '(#:glib-or-gtk? #t))
0abe1d86
AW
5416 (inputs
5417 `(("gtk" ,gtk+)
5418 ("zlib" ,zlib)
5419 ("cairo" ,cairo)
c501f592 5420 ("colord" ,colord)
0abe1d86
AW
5421 ("gdk-pixbuf" ,gdk-pixbuf)
5422 ("gusb" ,gusb)
4c928743 5423 ("libsane" ,sane-backends)))
0abe1d86 5424 (native-inputs
b94a6ca0 5425 `(("gettext" ,gettext-minimal)
0abe1d86 5426 ("itstool" ,itstool)
c501f592 5427 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5428 ("pkg-config" ,pkg-config)
bcb354ad
SB
5429 ("vala" ,vala)
5430 ("xmllint" ,libxml2)))
dff0eedb 5431 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5432 (synopsis "Document and image scanner")
d9f6d587
TGR
5433 (description
5434 "Document Scanner is an easy-to-use application that lets you connect your
5435scanner and quickly capture images and documents in an appropriate format. It
5436supports any scanner for which a suitable SANE driver is available, which is
5437almost all of them.")
0abe1d86 5438 (license license:gpl3+)))
7549f984 5439
ab466d79
RW
5440(define-public eolie
5441 (package
5442 (name "eolie")
ed783404 5443 (version "0.9.98.1")
ab466d79
RW
5444 (source (origin
5445 (method url-fetch)
ed783404
RW
5446 (uri (string-append "https://adishatz.org/eolie/eolie-"
5447 version ".tar.xz"))
ab466d79
RW
5448 (sha256
5449 (base32
ed783404 5450 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5451 (build-system meson-build-system)
ab466d79 5452 (arguments
00014781
RW
5453 `(#:glib-or-gtk? #t
5454 #:phases
ab466d79 5455 (modify-phases %standard-phases
f0c68100
EF
5456 (add-after 'unpack 'skip-gtk-update-icon-cache
5457 ;; Don't create 'icon-theme.cache'.
5458 (lambda _
5459 (substitute* "meson_post_install.py"
5460 (("gtk-update-icon-cache") "true"))
5461 #t))
ab466d79
RW
5462 (add-after 'wrap 'wrap-more
5463 (lambda* (#:key inputs outputs #:allow-other-keys)
5464 (let* ((out (assoc-ref outputs "out"))
5465 ;; These libraries must be on LD_LIBRARY_PATH.
5466 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5467 "atk" "gtk+" "gsettings-desktop-schemas"
5468 "gobject-introspection"))
5469 (path (string-join
5470 (map (lambda (lib)
5471 (string-append (assoc-ref inputs lib) "/lib"))
5472 libs)
5473 ":")))
5474 (wrap-program (string-append out "/bin/eolie")
5475 `("LD_LIBRARY_PATH" ":" prefix (,path))
5476 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5477 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5478 #t)))))
5479 (native-inputs
f85ca6ed 5480 `(("intltool" ,intltool)
ab466d79 5481 ("itstool" ,itstool)
d95f1041 5482 ("pkg-config" ,pkg-config)
d95f1041 5483 ("python" ,python)
f0c68100 5484 ("glib:bin" ,glib "bin")))
ab466d79
RW
5485 (inputs
5486 `(("gobject-introspection" ,gobject-introspection)
5487 ("glib-networking" ,glib-networking)
5488 ("cairo" ,cairo)
5489 ("gtk+" ,gtk+)
5490 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5491 ("python" ,python-wrapper)
d72f76df 5492 ("python-dateutil" ,python-dateutil)
00014781 5493 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5494 ("python-pygobject" ,python-pygobject)
5495 ("python-pycairo" ,python-pycairo)
00014781 5496 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5497 ("libsecret" ,libsecret)
5498 ("gtkspell3" ,gtkspell3)
5499 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5500 ("webkitgtk" ,webkitgtk)))
166b2c97 5501 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5502 (synopsis "Web browser for GNOME")
5503 (description
5504 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5505a secret password store, an adblocker, and a modern UI.")
5506 (license license:gpl3+)))
5507
7549f984
SB
5508(define-public epiphany
5509 (package
5510 (name "epiphany")
68fdd237 5511 (version "3.34.4")
7549f984
SB
5512 (source (origin
5513 (method url-fetch)
dd3266ec 5514 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5515 (version-major+minor version) "/"
dd3266ec 5516 "epiphany-" version ".tar.xz"))
7549f984
SB
5517 (sha256
5518 (base32
68fdd237 5519 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
5520
5521 (build-system meson-build-system)
7549f984 5522 (arguments
20710b91 5523 '(#:glib-or-gtk? #t
bb7ff88f
EF
5524 #:phases
5525 (modify-phases %standard-phases
5526 (add-after 'unpack 'skip-gtk-update-icon-cache
5527 ;; Don't create 'icon-theme.cache'.
5528 (lambda _
5529 (substitute* "post_install.py"
5530 (("gtk-update-icon-cache") "true"))
20710b91
LP
5531 #t))
5532 (add-after 'unpack 'disable-failing-tests
5533 (lambda _
5534 (substitute* "tests/meson.build"
5535 ;; embed_shell fails, because webkitgtk apparently no longer supports
5536 ;; overriding the ftp schema
5537 ;; web_app_utils fails due to missing network access
5538 (("(embed_shell|web_app_utils)_test,")
5539 "find_program('sh'), args: ['-c', 'exit 77'],"))
5540 #t))
5541 (add-before 'check 'pre-check
5542 (lambda _
5543 ;; Tests require a running X server.
5544 (system "Xvfb :1 &")
5545 (setenv "DISPLAY" ":1")
bb7ff88f 5546 #t)))
e19f9c24
LF
5547 #:configure-flags
5548 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5549 (list (string-append "-Dc_link_args=-Wl,-rpath="
5550 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5551 (propagated-inputs
5552 `(("dconf" ,dconf)))
7549f984 5553 (native-inputs
fc5c5b92
R
5554 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5555 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5556 ("intltool" ,intltool)
7549f984 5557 ("itstool" ,itstool)
bcb354ad 5558 ("pkg-config" ,pkg-config)
20710b91
LP
5559 ("xmllint" ,libxml2)
5560 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
5561 (inputs
5562 `(("avahi" ,avahi)
5563 ("gcr" ,gcr)
fc5c5b92 5564 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5565 ("glib-networking" ,glib-networking)
5566 ("gnome-desktop" ,gnome-desktop)
5567 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5568 ("json-glib" ,json-glib)
7549f984 5569 ("iso-codes" ,iso-codes)
8748e29c 5570 ("libdazzle" ,libdazzle)
7549f984
SB
5571 ("libnotify" ,libnotify)
5572 ("libsecret" ,libsecret)
7549f984 5573 ("libxslt" ,libxslt)
fc5c5b92 5574 ("nettle" ,nettle) ; for hogweed
7549f984 5575 ("sqlite" ,sqlite)
f85ca6ed 5576 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5577 (home-page "https://wiki.gnome.org/Apps/Web")
5578 (synopsis "GNOME web browser")
5579 (description
5580 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5581principles are simplicity and standards compliance.")
5582 (license license:gpl2+)))
a3856b2c
SB
5583
5584(define-public d-feet
5585 (package
5586 (name "d-feet")
458e9221 5587 (version "0.3.14")
a3856b2c
SB
5588 (source (origin
5589 (method url-fetch)
5590 (uri (string-append "mirror://gnome/sources/" name "/"
5591 (version-major+minor version) "/"
5592 name "-" version ".tar.xz"))
5593 (sha256
5594 (base32
458e9221 5595 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5596 (build-system glib-or-gtk-build-system)
5597 (arguments
5598 '(#:out-of-source? #f ; tests need to run in the source directory.
5599 #:phases
5600 (modify-phases %standard-phases
5601 (add-before
5602 'check 'pre-check
86aff791 5603 (lambda _
a3856b2c
SB
5604 ;; The test suite requires a running X server.
5605 (system "Xvfb :1 &")
5606 (setenv "DISPLAY" ":1")
5607 ;; Don't fail on missing '/etc/machine-id'.
5608 (setenv "DBUS_FATAL_WARNINGS" "0")
5609 ;; tests.py and window.py don't meet E402:
5610 ;; E402 module level import not at top of file
5611 (substitute* "src/tests/Makefile"
86aff791
MW
5612 (("--ignore=E123") "--ignore=E123,E402"))
5613 #t))
a3856b2c
SB
5614 (add-after
5615 'install 'wrap-program
5616 (lambda* (#:key outputs #:allow-other-keys)
5617 (let ((prog (string-append (assoc-ref outputs "out")
5618 "/bin/d-feet")))
5619 (wrap-program prog
5620 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5621 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5622 #t))))))
a3856b2c
SB
5623 (native-inputs
5624 `(("intltool" ,intltool)
5625 ("itstool" ,itstool)
5626 ("pkg-config" ,pkg-config)
5627 ("python-pep8" ,python-pep8)
5628 ("xmllint" ,libxml2)
ff337525 5629 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5630 (inputs
5631 `(("gobject-introspection" ,gobject-introspection)
5632 ("gtk+" ,gtk+)
5633 ("python" ,python-wrapper)
458e9221 5634 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5635 ("python-pygobject" ,python-pygobject)))
5636 (home-page "https://wiki.gnome.org/Apps/DFeet")
5637 (synopsis "D-Bus debugger")
5638 (description
5639 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5640of running programs and invoke methods on those interfaces.")
5641 (license license:gpl2+)))
c3b97bd9
SB
5642
5643(define-public yelp-xsl
5644 (package
5645 (name "yelp-xsl")
632a9b32 5646 (version "3.34.2")
c3b97bd9
SB
5647 (source (origin
5648 (method url-fetch)
5649 (uri (string-append "mirror://gnome/sources/" name "/"
5650 (version-major+minor version) "/"
5651 name "-" version ".tar.xz"))
5652 (sha256
5653 (base32
632a9b32 5654 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5655 (build-system gnu-build-system)
5656 (native-inputs
632a9b32 5657 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5658 ("itstool" ,itstool)
5659 ("xmllint" ,libxml2)))
5660 (home-page "https://wiki.gnome.org/Apps/Yelp")
5661 (synopsis "XSL stylesheets for Yelp")
5662 (description
5663 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5664to format Docbook and Mallard documents.")
5665 (license license:gpl2+)))
de3d612a
SB
5666
5667(define-public yelp
5668 (package
5669 (name "yelp")
1f1b6d60 5670 (version "3.32.2")
de3d612a
SB
5671 (source (origin
5672 (method url-fetch)
5673 (uri (string-append "mirror://gnome/sources/" name "/"
5674 (version-major+minor version) "/"
5675 name "-" version ".tar.xz"))
5676 (sha256
5677 (base32
1f1b6d60 5678 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5679 (build-system glib-or-gtk-build-system)
5680 (native-inputs
5681 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5682 ("intltool" ,intltool)
5683 ("itstool" ,itstool)
5684 ("pkg-config" ,pkg-config)))
5685 (propagated-inputs
5686 `(("dconf" ,dconf)))
5687 (inputs
ad1b7d8b
SB
5688 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5689 ("libxslt" ,libxslt)
de3d612a 5690 ("sqlite" ,sqlite)
4c28ca1d
SB
5691 ("webkitgtk" ,webkitgtk)
5692 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5693 (home-page "https://wiki.gnome.org/Apps/Yelp")
5694 (synopsis "GNOME help browser")
5695 (description
5696 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5697man, info, and HTML documents. It can locate documents according to the
5698freedesktop.org help system specification.")
5699 (license license:gpl2+)))
122d0d10
SB
5700
5701(define-public yelp-tools
5702 (package
5703 (name "yelp-tools")
8fe8a42a 5704 (version "3.32.2")
122d0d10
SB
5705 (source (origin
5706 (method url-fetch)
5707 (uri (string-append "mirror://gnome/sources/" name "/"
5708 (version-major+minor version) "/"
5709 name "-" version ".tar.xz"))
5710 (sha256
5711 (base32
8fe8a42a 5712 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5713 (build-system gnu-build-system)
5714 (native-inputs
5715 `(("pkg-config" ,pkg-config)))
5716 (propagated-inputs
5717 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5718 `(("itstool" ,itstool)
5719 ("xmllint" ,libxml2)
5720 ("xsltproc" ,libxslt)))
5721 (inputs
5722 `(("yelp-xsl" ,yelp-xsl)))
5723 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5724 (synopsis "Yelp documentation tools")
5725 (description
5726 "Yelp-tools is a collection of scripts and build utilities to help create,
5727manage, and publish documentation for Yelp and the web. Most of the heavy
5728lifting is done by packages like yelp-xsl and itstool. This package just
5729wraps things up in a developer-friendly way.")
5730 (license license:gpl2+)))
af8f9f23
RW
5731
5732(define-public libgee
5733 (package
5734 (name "libgee")
9cedae2a 5735 (version "0.20.3")
af8f9f23
RW
5736 (source (origin
5737 (method url-fetch)
84a1b007 5738 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5739 (version-major+minor version) "/"
84a1b007 5740 "libgee-" version ".tar.xz"))
af8f9f23
RW
5741 (sha256
5742 (base32
9cedae2a 5743 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5744 (build-system gnu-build-system)
5745 (arguments
5746 `(#:phases
5747 (modify-phases %standard-phases
5748 (add-after 'unpack 'fix-introspection-install-dir
5749 (lambda* (#:key outputs #:allow-other-keys)
5750 (let ((out (assoc-ref outputs "out")))
5751 (substitute* "gee/Makefile.in"
5752 (("@INTROSPECTION_GIRDIR@")
5753 (string-append out "/share/gir-1.0/"))
5754 (("@INTROSPECTION_TYPELIBDIR@")
5755 (string-append out "/lib/girepository-1.0/")))))))))
5756 (native-inputs
5757 `(("glib" ,glib "bin")
5758 ("pkg-config" ,pkg-config)))
5759 (inputs
5760 `(("glib" ,glib)
5761 ("gobject-introspection" ,gobject-introspection)))
5762 (home-page "https://wiki.gnome.org/Projects/Libgee")
5763 (synopsis "GObject collection library")
5764 (description
5765 "Libgee is a utility library providing GObject-based interfaces and
5766classes for commonly used data structures.")
5767 (license license:lgpl2.1+)))
b0f9c4b8
RW
5768
5769(define-public gexiv2
5770 (package
5771 (name "gexiv2")
b1a8b408 5772 (version "0.12.0")
b0f9c4b8
RW
5773 (source (origin
5774 (method url-fetch)
5775 (uri (string-append "mirror://gnome/sources/" name "/"
5776 (version-major+minor version) "/"
5777 name "-" version ".tar.xz"))
5778 (sha256
5779 (base32
b1a8b408 5780 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5781 (build-system meson-build-system)
b0f9c4b8 5782 (native-inputs
b1a8b408
KK
5783 `(("gcr" ,gcr)
5784 ("glib" ,glib "bin")
5785 ("pkg-config" ,pkg-config)
5786 ("vala" ,vala)))
b0f9c4b8
RW
5787 (propagated-inputs
5788 ;; Listed in "Requires" section of gexiv2.pc
5789 `(("exiv2" ,exiv2)))
5790 (inputs
5791 `(("glib" ,glib)
5792 ("gobject-introspection" ,gobject-introspection)))
5793 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5794 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5795 (description
5796 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5797allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5798metadata in photo and video files of various formats.")
5799 (license license:gpl2+)))
fed5a689
RW
5800
5801(define-public shotwell
5802 (package
5803 (name "shotwell")
b82a45d8 5804 (version "0.30.9")
fed5a689
RW
5805 (source (origin
5806 (method url-fetch)
5497d682 5807 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5808 (version-major+minor version) "/"
5497d682 5809 "shotwell-" version ".tar.xz"))
fed5a689
RW
5810 (sha256
5811 (base32
b82a45d8 5812 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
3b79afa6
KK
5813 (build-system meson-build-system)
5814 (arguments
5a0beca3
EF
5815 '(#:glib-or-gtk? #t
5816 #:phases
5817 (modify-phases %standard-phases
5818 (add-after 'unpack 'skip-gtk-update-icon-cache
5819 (lambda _
5820 (substitute* "build-aux/meson/postinstall.py"
5821 (("gtk-update-icon-cache") (which "true"))
5822 (("update-desktop-database") (which "true")))
5823 #t)))))
735b8db6
TGR
5824 (propagated-inputs
5825 `(("dconf" ,dconf)))
fed5a689 5826 (native-inputs
5a0beca3
EF
5827 `(("gettext" ,gettext-minimal)
5828 ("glib:bin" ,glib "bin")
735b8db6 5829 ("itstool" ,itstool)
3b79afa6 5830 ("pkg-config" ,pkg-config)
735b8db6 5831 ("vala" ,vala)))
fed5a689 5832 (inputs
5a0beca3
EF
5833 `(("gcr" ,gcr)
5834 ("gexiv2" ,gexiv2)
fed5a689 5835 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5836 ("gstreamer" ,gstreamer)
5837 ("json-glib" ,json-glib)
dfb0323d 5838 ("libgdata" ,libgdata)
fed5a689 5839 ("libgee" ,libgee)
5a0beca3
EF
5840 ("libgphoto2" ,libgphoto2)
5841 ("libgudev" ,libgudev)
fed5a689 5842 ("libraw" ,libraw)
fed5a689
RW
5843 ("libsoup" ,libsoup)
5844 ("libxml2" ,libxml2)
5a0beca3
EF
5845 ("sqlite" ,sqlite)
5846 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5847 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5848 (synopsis "Photo manager for GNOME 3")
5849 (description
5850 "Shotwell is a digital photo manager designed for the GNOME desktop
5851environment. It allows you to import photos from disk or camera, organize
5852them by keywords and events, view them in full-window or fullscreen mode, and
5853share them with others via social networking and more.")
5854 (license license:lgpl2.1+)))
293ff8b2
DT
5855
5856(define-public file-roller
5857 (package
5858 (name "file-roller")
dcae4270 5859 (version "3.32.3")
293ff8b2
DT
5860 (source (origin
5861 (method url-fetch)
f89a27c6 5862 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5863 (version-major+minor version) "/"
f89a27c6 5864 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5865 (sha256
5866 (base32
dcae4270 5867 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5868 (build-system meson-build-system)
293ff8b2 5869 (native-inputs
0a500745
RW
5870 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5871 ("intltool" ,intltool)
4c96e5d1 5872 ("itstool" ,itstool)
0a500745
RW
5873 ("pkg-config" ,pkg-config)
5874 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5875 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5876 ;; TODO: Add libnautilus.
5877 (inputs
5878 `(("gtk+" ,gtk+)
5879 ("gdk-pixbuf" ,gdk-pixbuf)
5880 ("json-glib" ,json-glib)
5881 ("libarchive" ,libarchive)
5882 ("libnotify" ,libnotify)
4c96e5d1 5883 ("nettle" ,nettle)
293ff8b2
DT
5884 ("libxml2" ,libxml2)))
5885 (synopsis "Graphical archive manager for GNOME")
5886 (description "File Roller is an archive manager for the GNOME desktop
5887environment that allows users to view, unpack, and create compressed archives
5888such as gzip tarballs.")
5889 (home-page "http://fileroller.sourceforge.net/")
5890 (license license:gpl2+)))
7ce49365
SB
5891
5892(define-public gnome-session
5893 (package
5894 (name "gnome-session")
f67ce006 5895 (version "3.34.2")
7ce49365
SB
5896 (source (origin
5897 (method url-fetch)
5898 (uri (string-append "mirror://gnome/sources/" name "/"
5899 (version-major+minor version) "/"
5900 name "-" version ".tar.xz"))
5901 (sha256
5902 (base32
f67ce006 5903 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 5904 (arguments
df278071
RW
5905 '(#:glib-or-gtk? #t
5906 #:phases
2914af3c
AW
5907 (modify-phases %standard-phases
5908 (add-before 'configure 'pre-configure
5909 (lambda* (#:key outputs #:allow-other-keys)
5910 ;; Use elogind instead of systemd.
df278071
RW
5911 (substitute* "meson.build"
5912 (("libsystemd-login") "libelogind")
5913 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5914 (substitute* "gnome-session/gsm-systemd.c"
5915 (("#include <systemd/sd-login.h>")
5916 "#include <elogind/sd-login.h>"))
df278071 5917 ;; Remove uses of the systemd daemon.
803ab416
SB
5918 (substitute* "gnome-session/gsm-autostart-app.c"
5919 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5920 #t))
5921 (add-after 'install 'wrap-gnome-session
5922 (lambda* (#:key inputs outputs #:allow-other-keys)
5923 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5924 (let ((glib (assoc-ref inputs "glib:bin"))
5925 (out (assoc-ref outputs "out")))
5926 (wrap-program (string-append out "/bin/gnome-session")
5927 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5928 #t))))
6cbc8d57 5929
2914af3c 5930 #:configure-flags
df278071
RW
5931 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5932 "-Dman=false" ; FIXME: disabled because of docbook validation error
5933 "-Dsystemd_journal=false")))
5934 (build-system meson-build-system)
7ce49365
SB
5935 (native-inputs
5936 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5937 ("pkg-config" ,pkg-config)
5938 ("intltool" ,intltool)
df278071
RW
5939 ("xsltproc" ,libxslt)
5940 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5941 ("docbook-xsl" ,docbook-xsl)
5942 ("docbook-xml" ,docbook-xml)
5943 ("xmlto" ,xmlto)))
7ce49365 5944 (inputs
2914af3c
AW
5945 `(("elogind" ,elogind)
5946 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5947 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5948 ("gtk+" ,gtk+)
5949 ("json-glib" ,json-glib)
5950 ("libsm" ,libsm)
5951 ("libxcomposite" ,libxcomposite)
5952 ("libxtst" ,libxtst)
5953 ("mesa" ,mesa)
5954 ("upower" ,upower)
5955 ("xtrans" ,xtrans)))
5956 (synopsis "Session manager for GNOME")
5957 (description
5958 "This package contains the GNOME session manager, as well as a
5959configuration program to choose applications starting on login.")
5960 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5961 (license license:gpl2+)))
f47ba77e
SB
5962
5963(define-public gjs
5964 (package
5965 (name "gjs")
76e1830c 5966 (version "1.58.3")
f47ba77e
SB
5967 (source (origin
5968 (method url-fetch)
5969 (uri (string-append "mirror://gnome/sources/" name "/"
5970 (version-major+minor version) "/"
5971 name "-" version ".tar.xz"))
5972 (sha256
5973 (base32
76e1830c 5974 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
5975 (build-system gnu-build-system)
5976 (arguments
5977 '(#:phases
5978 (modify-phases %standard-phases
5979 (add-before
5980 'check 'pre-check
5981 (lambda _
fc119619
MW
5982 ;; The test suite requires a running X server.
5983 (system "Xvfb :1 &")
5984 (setenv "DISPLAY" ":1")
5985
f47ba77e
SB
5986 ;; For the missing /etc/machine-id.
5987 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5988
144f94d0
KK
5989 ;; Our mozjs-38 package does not compile the required Intl API
5990 ;; support for these failing tests.
5991 (substitute* "installed-tests/js/testLocale.js"
5992 ((".*toBeDefined.*") "")
5993 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5994 (substitute* "installed-tests/scripts/testCommandLine.sh"
5995 (("Valentín") "")
5996 (("☭") ""))
f47ba77e
SB
5997 #t)))))
5998 (native-inputs
8a831c6f 5999 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
6000 ("pkg-config" ,pkg-config)
6001 ("xmllint" ,libxml2)
6002 ;; For testing
6003 ("dbus-launch" ,dbus)
76e1830c 6004 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 6005 ("uuidgen" ,util-linux)
ebebee94 6006 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
6007 (propagated-inputs
6008 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
6009 `(("cairo" ,cairo)
6010 ("gobject-introspection" ,gobject-introspection)
d054fbf5 6011 ("mozjs" ,mozjs-60)))
f47ba77e
SB
6012 (inputs
6013 `(("gtk+" ,gtk+)
6014 ("readline" ,readline)))
6015 (synopsis "Javascript bindings for GNOME")
f032d0be 6016 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
6017 (description
6018 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6019javascript engine and the GObject introspection framework.")
6020 (license license:gpl2+)))
329d731b
DH
6021
6022(define-public gedit
6023 (package
6024 (name "gedit")
edec7128 6025 (version "3.34.1")
329d731b
DH
6026 (source (origin
6027 (method url-fetch)
6028 (uri (string-append "mirror://gnome/sources/" name "/"
6029 (version-major+minor version) "/"
6030 name "-" version ".tar.xz"))
6031 (sha256
6032 (base32
edec7128 6033 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 6034 (build-system meson-build-system)
329d731b 6035 (arguments
480c9226
KK
6036 `(#:glib-or-gtk? #t
6037 #:configure-flags
6038 ;; Otherwise, the RUNPATH will lack the final path component.
6039 (list (string-append "-Dc_link_args=-Wl,-rpath="
6040 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
6041
6042 ;; XXX: Generated .h files are sometimes used before being built.
6043 #:parallel-build? #f
6044
480c9226 6045 #:phases
329d731b 6046 (modify-phases %standard-phases
480c9226
KK
6047 (add-after 'unpack 'skip-gtk-update-icon-cache
6048 ;; Don't create 'icon-theme.cache'.
6049 (lambda _
6050 (substitute* "build-aux/meson/post_install.py"
6051 (("gtk-update-icon-cache") (which "true")))
6052 #t))
6053 (add-after 'unpack 'patch-libgd-fetch
6054 (lambda* (#:key inputs #:allow-other-keys)
6055 (let ((libgd (assoc-ref inputs "libgd")))
6056 ;; Calling git is unnecessary because libgd is fetched as a
6057 ;; native input to this package.
6058 (substitute* "meson.build"
6059 ((".*git.*") ""))
6060 (copy-recursively libgd "subprojects/libgd")
6061 #t)))
6062 (add-after 'install 'wrap-gedit
6063 (lambda* (#:key inputs outputs #:allow-other-keys)
6064 (let ((out (assoc-ref outputs "out"))
6065 (gtksourceview (assoc-ref inputs "gtksourceview"))
6066 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6067 (python-path (getenv "PYTHONPATH")))
6068 (wrap-program (string-append out "/bin/gedit")
6069 ;; For plugins.
6070 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6071 `("PYTHONPATH" ":" prefix (,python-path))
6072 ;; For language-specs.
6073 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6074 "/share")))))
6075 #t)))))
329d731b
DH
6076 (propagated-inputs
6077 `(("dconf" ,dconf)))
6078 (native-inputs
480c9226
KK
6079 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6080 ("intltool" ,intltool)
b3546174 6081 ("itstool" ,itstool)
480c9226 6082 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6083 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6084 ("libgd"
6085 ,(origin
6086 (method git-fetch)
6087 (uri (git-reference
6088 (url "https://gitlab.gnome.org/GNOME/libgd")
6089 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6090 (file-name (git-file-name "libgd" version))
6091 (sha256
6092 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6093 ("pkg-config" ,pkg-config)))
6094 (inputs
6095 `(("glib" ,glib)
0d2df50c 6096 ("gspell" ,gspell)
329d731b 6097 ("gtk+" ,gtk+)
480c9226 6098 ("gtksourceview" ,gtksourceview)
329d731b
DH
6099 ("libpeas" ,libpeas)
6100 ("libxml2" ,libxml2)
329d731b
DH
6101 ("iso-codes" ,iso-codes)
6102 ("python-pygobject" ,python-pygobject)
6103 ("python" ,python)
6104 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6105 ("libx11" ,libx11)
6106 ("vala" ,vala)
6107 ("adwaita-icon-theme" ,adwaita-icon-theme)
6108 ("libsoup" ,libsoup)
6109 ("gnome-desktop" ,gnome-desktop)))
6110 (home-page "https://wiki.gnome.org/Apps/Gedit")
6111 (synopsis "GNOME text editor")
6112 (description "While aiming at simplicity and ease of use, gedit is a
6113powerful general purpose text editor.")
6114 (license license:gpl2+)))
b7179363
SB
6115
6116(define-public zenity
6117 (package
6118 (name "zenity")
4f581bd0 6119 (version "3.32.0")
b7179363
SB
6120 (source (origin
6121 (method url-fetch)
5958df04 6122 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6123 (version-major+minor version) "/"
5958df04 6124 "zenity-" version ".tar.xz"))
b7179363
SB
6125 (sha256
6126 (base32
4f581bd0 6127 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6128 (build-system gnu-build-system)
6129 (native-inputs
b94a6ca0 6130 `(("gettext" ,gettext-minimal)
b7179363
SB
6131 ("itstool" ,itstool)
6132 ("pkg-config" ,pkg-config)))
6133 (inputs
6134 `(("libnotify" ,libnotify)
6135 ("webkitgtk" ,webkitgtk)))
6136 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6137 (home-page "https://www.gnome.org")
b7179363
SB
6138 (description
6139 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6140to display dialog boxes from the commandline and shell scripts.")
6141 (license license:lgpl2.0+)))
60c3627c
SB
6142
6143(define-public mutter
6144 (package
6145 (name "mutter")
ec3ceabd 6146 (version "3.34.2")
60c3627c 6147 (source (origin
86c44e72
KK
6148 (method url-fetch)
6149 (uri (string-append "mirror://gnome/sources/" name "/"
6150 (version-major+minor version) "/"
6151 name "-" version ".tar.xz"))
60c3627c
SB
6152 (sha256
6153 (base32
ec3ceabd 6154 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6155 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6156 ;; versions of cogl and clutter. As a result, many of the inputs,
6157 ;; propagated-inputs, and configure flags used in cogl and clutter are
6158 ;; needed here as well.
edf43f68 6159 (build-system meson-build-system)
60c3627c 6160 (arguments
edf43f68
KK
6161 '(;; XXX: All mutter tests fail with the following error:
6162 ;; Settings schema 'org.gnome.mutter' is not installed
6163 #:tests? #f
6164 #:glib-or-gtk? #t
6165 #:configure-flags
ec3ceabd
KK
6166 ;; TODO: Enable profiler when Sysprof is packaged.
6167 (list "-Dprofiler=false"
6168 ;; Otherwise, the RUNPATH will lack the final path component.
6169 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6170 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6171 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6172
6173 ;; The following flags are needed for the bundled clutter
edf43f68 6174 (string-append "-Dxwayland_path="
d633f2f6
RH
6175 (assoc-ref %build-inputs "xorg-server-xwayland")
6176 "/bin/Xwayland")
6177
a88d5a0c 6178 ;; the remaining flags are needed for the bundled cogl
edf43f68 6179 (string-append "-Dopengl_libname="
a88d5a0c 6180 (assoc-ref %build-inputs "mesa")
ec3ceabd 6181 "/lib/libGL.so"))))
60c3627c 6182 (native-inputs
ec3ceabd
KK
6183 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6184 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6185 ("gobject-introspection" ,gobject-introspection)
6186 ("intltool" ,intltool)
f23052a6 6187 ("pkg-config" ,pkg-config)
edf43f68 6188 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6189 ;; For git build
6190 ("autoconf" ,autoconf)
6191 ("automake" ,automake)
6192 ("libtool" ,libtool)))
60c3627c 6193 (propagated-inputs
a88d5a0c
MW
6194 `(;; libmutter.pc refers to these:
6195 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6196 ("gtk+" ,gtk+)
6197 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6198 ("atk" ,atk)
6199 ("cairo" ,cairo)
6200 ("gdk-pixbuf" ,gdk-pixbuf)
6201 ("glib" ,glib)
a88d5a0c
MW
6202 ("json-glib" ,json-glib)
6203 ("libinput" ,libinput)
6204 ("libx11" ,libx11)
6205 ("libxcomposite" ,libxcomposite)
6206 ("libxdamage" ,libxdamage)
6207 ("libxext" ,libxext)
6208 ("libxfixes" ,libxfixes)
6209 ("libxkbcommon" ,libxkbcommon)
6210 ("libxrandr" ,libxrandr)
6211 ("mesa" ,mesa)
6212 ("pango" ,pango)
6213 ("udev" ,eudev)
a88d5a0c 6214 ("xinput" ,xinput)))
60c3627c 6215 (inputs
86c44e72
KK
6216 `(("elogind" ,elogind)
6217 ("gnome-desktop" ,gnome-desktop)
edf43f68 6218 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6219 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6220 ("libgudev" ,libgudev)
60c3627c
SB
6221 ("libice" ,libice)
6222 ("libsm" ,libsm)
edf43f68 6223 ("libwacom" ,libwacom)
60c3627c 6224 ("libxkbfile" ,libxkbfile)
a88d5a0c 6225 ("libxrandr" ,libxrandr)
86c44e72 6226 ("libxtst" ,libxtst)
edf43f68 6227 ("pipewire" ,pipewire)
60c3627c
SB
6228 ("startup-notification" ,startup-notification)
6229 ("upower-glib" ,upower)
6230 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6231 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6232 ("zenity" ,zenity)))
6233 (synopsis "Window and compositing manager")
f032d0be 6234 (home-page "https://www.gnome.org")
60c3627c
SB
6235 (description
6236 "Mutter is a window and compositing manager that displays and manages your
6237desktop via OpenGL. Mutter combines a sophisticated display engine using the
6238Clutter toolkit with solid window-management logic inherited from the Metacity
6239window manager.")
86c44e72 6240 (license license:gpl2+)))
685cee87
SB
6241
6242(define-public gnome-online-accounts
6243 (package
6244 (name "gnome-online-accounts")
dd233e4d 6245 (version "3.36.0")
685cee87
SB
6246 (source (origin
6247 (method url-fetch)
6248 (uri (string-append "mirror://gnome/sources/" name "/"
6249 (version-major+minor version) "/"
6250 name "-" version ".tar.xz"))
6251 (sha256
6252 (base32
dd233e4d 6253 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6254 (outputs '("out" "lib"))
685cee87 6255 (build-system glib-or-gtk-build-system)
14c297fd
TS
6256 (arguments
6257 `(#:configure-flags
6258 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6259 #:phases
6260 (modify-phases %standard-phases
6261 (add-before 'configure 'patch-libgoa-output
6262 (lambda* (#:key outputs #:allow-other-keys)
6263 (let ((lib (assoc-ref outputs "lib")))
6264 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6265 (("@prefix@") lib)
6266 (("@exec_prefix@") lib)
6267 (("@libdir@") (string-append lib "/lib"))
6268 (("@includedir@") (string-append lib "/include"))
6269 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6270 ;; Make sure gobject-introspection knows about the output
6271 ;; too (see <https://bugs.gnu.org/36535>).
6272 (setenv "outputs" "out lib")
14c297fd 6273 #t))))))
685cee87
SB
6274 (native-inputs
6275 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6276 ("gobject-introspection" ,gobject-introspection)
6277 ("intltool" ,intltool)
6278 ("pkg-config" ,pkg-config)
ebb2873d 6279 ("vala" ,vala)
685cee87
SB
6280 ("xsltproc" ,libxslt)))
6281 (propagated-inputs
6282 `(("glib" ,glib) ; required by goa-1.0.pc
6283 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6284 (inputs
6285 `(("docbook-xsl" ,docbook-xsl)
6286 ("json-glib" ,json-glib)
6287 ("libsecret" ,libsecret)
6288 ("rest" ,rest)
685cee87
SB
6289 ("webkitgtk" ,webkitgtk)))
6290 (synopsis "Single sign-on framework for GNOME")
6291 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6292 (description
6293 "GNOME Online Accounts provides interfaces so that applications and
6294libraries in GNOME can access the user's online accounts. It has providers for
6295Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6296Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6297 (license license:lgpl2.0+)))
df217748
SB
6298
6299(define-public evolution-data-server
6300 (package
6301 (name "evolution-data-server")
162048be 6302 (version "3.34.2")
df217748
SB
6303 (source (origin
6304 (method url-fetch)
6305 (uri (string-append "mirror://gnome/sources/" name "/"
6306 (version-major+minor version) "/"
6307 name "-" version ".tar.xz"))
43190ac6
MB
6308 (patches (search-patches "evolution-data-server-locales.patch"
6309 "evolution-data-server-libical-compat.patch"))
df217748
SB
6310 (sha256
6311 (base32
162048be 6312 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 6313 (build-system cmake-build-system)
df217748 6314 (arguments
b468eedc
RW
6315 '(#:configure-flags
6316 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6317 (runpaths (map (lambda (s)
6318 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6319 '("addressbook-backends" "calendar-backends"
6320 "camel-providers" "credential-modules"
6321 "registry-modules"))))
6322 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6323 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6324 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6325 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6326 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6327 (string-append lib "/evolution-data-server;")
6328 (string-join runpaths ";"))
6329 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6330 #:phases
6331 (modify-phases %standard-phases
b468eedc
RW
6332 (add-after 'unpack 'disable-failing-tests
6333 (lambda _
6334 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6335 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6336 (delete-file-recursively "tests/book-migration")
6337 (substitute* "tests/CMakeLists.txt"
6338 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 6339 #t))
743aebd7 6340 (add-after 'unpack 'patch-paths
df217748 6341 (lambda _
b468eedc
RW
6342 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6343 "tests/libedata-book/data-test-utils.c"
6344 "tests/libedata-book/test-book-cache-utils.c"
6345 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6346 (("/bin/rm") (which "rm")))
ac033c7b
MB
6347 #t))
6348 (add-before 'configure 'dont-override-rpath
6349 (lambda _
6350 (substitute* "CMakeLists.txt"
6351 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6352 ;; Remove it so the configure flag is respected.
6353 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6354 #t)))))
df217748
SB
6355 (native-inputs
6356 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6357 ("gobject-introspection" ,gobject-introspection)
6358 ("gperf" ,gperf)
6359 ("intltool" ,intltool)
6360 ("pkg-config" ,pkg-config)
a73c1cf8 6361 ("vala" ,vala)
743aebd7 6362 ("python" ,python-wrapper)))
df217748
SB
6363 (propagated-inputs
6364 ;; These are all in the Requires field of .pc files.
6365 `(("gtk+" ,gtk+)
6366 ("libical" ,libical)
6367 ("libsecret" ,libsecret)
6368 ("libsoup" ,libsoup)
6369 ("nss" ,nss)
6370 ("sqlite" ,sqlite)))
6371 (inputs
6372 `(("bdb" ,bdb)
6373 ("gcr" ,gcr)
14c297fd 6374 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6375 ("json-glib" ,json-glib)
b468eedc 6376 ("libcanberra" ,libcanberra)
743aebd7
MB
6377 ("libgweather" ,libgweather)
6378 ("mit-krb5" ,mit-krb5)
891199c6
MW
6379 ("openldap" ,openldap)
6380 ("webkitgtk" ,webkitgtk)))
df217748
SB
6381 (synopsis "Store address books and calendars")
6382 (home-page "https://wiki.gnome.org/Apps/Evolution")
6383 (description
6384 "This package provides a unified backend for programs that work with
6385contacts, tasks, and calendar information. It was originally developed for
6386Evolution (hence the name), but is now used by other packages as well.")
6387 (license license:lgpl2.0)))
bd7dfafa
SB
6388
6389(define-public caribou
6390 (package
6391 (name "caribou")
fe964bb5 6392 (version "0.4.21")
bd7dfafa
SB
6393 (source (origin
6394 (method url-fetch)
6395 (uri (string-append "mirror://gnome/sources/" name "/"
6396 (version-major+minor version) "/"
6397 name "-" version ".tar.xz"))
6398 (sha256
6399 (base32
fe964bb5 6400 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6401 (build-system glib-or-gtk-build-system)
6402 (arguments
6403 '(#:phases
6404 (modify-phases %standard-phases
6405 (add-before
6406 'build 'pre-build
6407 (lambda* (#:key outputs #:allow-other-keys)
6408 (let ((out (assoc-ref outputs "out")))
6409 ;; Use absolute shared library path in Caribou-1.0.typelib.
6410 (substitute* "libcaribou/Makefile"
6411 (("--shared-library=libcaribou.so")
6412 (string-append "--shared-library="
6413 out "/lib/libcaribou.so")))
6414 #t)))
6415 (add-after 'install 'wrap-programs
6416 (lambda* (#:key outputs #:allow-other-keys)
6417 (let* ((out (assoc-ref outputs "out"))
6418 (python-path (getenv "PYTHONPATH"))
6419 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6420 (for-each
6421 (lambda (prog)
6422 (wrap-program prog
6423 `("PYTHONPATH" ":" prefix (,python-path))
6424 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6425 (list (string-append out "/bin/caribou-preferences")
6426 (string-append out "/libexec/antler-keyboard"))))
6427 #t)))))
6428 (native-inputs
6429 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6430 ("gobject-introspection" ,gobject-introspection)
6431 ("intltool" ,intltool)
6432 ("pkg-config" ,pkg-config)
9f7f5ba2 6433 ("python" ,python)
bd7dfafa
SB
6434 ("vala" ,vala)
6435 ("xsltproc" ,libxslt)))
6436 (propagated-inputs
6437 ;; caribou-1.0.pc refers to all these.
6438 `(("libgee" ,libgee)
6439 ("libxklavier" ,libxklavier)
6440 ("libxtst" ,libxtst)
6441 ("gtk+" ,gtk+)))
6442 (inputs
6443 `(("clutter" ,clutter)
6444 ("dconf" ,dconf)
6445 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6446 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6447 (synopsis "Text entry and UI navigation application")
6448 (home-page "https://wiki.gnome.org/Projects/Caribou")
6449 (description
6450 "Caribou is an input assistive technology intended for switch and pointer
6451users.")
6452 (license license:lgpl2.1)))
ba5dd105 6453
ba5dd105
SB
6454(define-public network-manager
6455 (package
6456 (name "network-manager")
01c22be7 6457 (version "1.24.0")
ba5dd105
SB
6458 (source (origin
6459 (method url-fetch)
6460 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6461 (version-major+minor version) "/"
6462 "NetworkManager-" version ".tar.xz"))
8d0548fd 6463 (patches (search-patches "network-manager-plugin-path.patch"))
ba5dd105
SB
6464 (sha256
6465 (base32
01c22be7 6466 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
02710a9b 6467 (modules '((guix build utils)))
fd070f35 6468 (snippet
02710a9b
RW
6469 '(begin
6470 (substitute* "src/devices/wwan/nm-modem-manager.c"
6471 (("systemd") "elogind"))
6472 #t))))
255ff74f 6473 (build-system meson-build-system)
ba5dd105
SB
6474 (outputs '("out"
6475 "doc")) ; 8 MiB of gtk-doc HTML
6476 (arguments
255ff74f 6477 `(#:configure-flags
ba5dd105 6478 (let ((out (assoc-ref %outputs "out"))
ba5dd105
SB
6479 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6480 "/sbin/dhclient")))
255ff74f
BW
6481 (list
6482 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6483 ;; component.
6484 (string-append "-Dc_link_args=-Wl,-rpath="
6485 out "/lib:"
6486 out "/lib/NetworkManager/" ,version)
6487 "-Dsystemd_journal=false"
6488 "-Dsession_tracking=elogind"
6489 "-Dsuspend_resume=elogind"
6490 "-Dsystemdsystemunitdir=no"
6491 "-Dsession_tracking_consolekit=false"
6492 "-Ddhcpcd=no"
6493 "-Ddhcpcanon=no"
6494 "-Dcrypto=gnutls"
6495 "-Diwd=true"
6496 "-Dlibaudit=yes"
6497 "-Dqt=false"
6498 "-Ddocs=true"
6499 "--sysconfdir=/etc"
6500 "--localstatedir=/var"
6501 (string-append "-Dudev_dir="
6502 out "/lib/udev")
6503 (string-append "-Ddbus_conf_dir="
6504 out "/etc/dbus-1/system.d")
6505
6506 (string-append "-Ddhclient=" dhclient)))
ba5dd105
SB
6507 #:phases
6508 (modify-phases %standard-phases
b4f59d87
AW
6509 (add-before 'configure 'pre-configure
6510 (lambda _
6511 ;; These tests try to test aspects of network-manager's
6512 ;; functionality within restricted containers, but they don't
6513 ;; cope with being already in the Guix build jail as that jail
6514 ;; lacks some features that they would like to proxy over (like
6515 ;; a /sys mount).
255ff74f
BW
6516 (substitute* "src/platform/tests/meson.build"
6517 ((".*test-address-linux.*") "")
6518 ((".*test-cleanup-linux.*") "")
6519 ((".*test-link-linux.*") "")
6520 ((".*test-route-linux.*") ""))
6521 (substitute* "src/devices/tests/meson.build"
6522 ((".*test-acd.*") "")
6523 ((".*test-lldp.*") ""))
45f80fce 6524 #t))
255ff74f
BW
6525 (add-after 'unpack 'patch-docbook-xml
6526 (lambda* (#:key inputs #:allow-other-keys)
6527 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6528 "/xml/dtd/docbook")))
6529 (substitute* (find-files "." ".*\\.(xsl|xml)")
6530 (("http://.*/docbookx\\.dtd")
6531 (string-append xmldoc "/docbookx.dtd")))
6532 #t)))
ba5dd105
SB
6533 (add-before 'check 'pre-check
6534 (lambda _
6535 ;; For the missing /etc/machine-id.
6536 (setenv "DBUS_FATAL_WARNINGS" "0")
6537 #t))
255ff74f
BW
6538 (add-before 'install 'no-polkit-magic
6539 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
ba5dd105 6540 (lambda _
255ff74f
BW
6541 (setenv "PKEXEC_UID" "something")
6542 #t))
6543 (add-after 'install 'move-doc
6544 (lambda* (#:key outputs #:allow-other-keys)
6545 (let ((out (assoc-ref outputs "out"))
6546 (doc (assoc-ref outputs "doc")))
6547 (mkdir-p (string-append doc "/share"))
6548 (for-each (lambda (directory)
6549 (copy-recursively (string-append out directory)
6550 (string-append doc directory))
6551 (delete-file-recursively
6552 (string-append out directory)))
6553 '("/share/doc" "/share/gtk-doc"))
6554 #t))))))
b93502d6
DC
6555 (propagated-inputs
6556 `(("glib" ,glib)))
ba5dd105 6557 (native-inputs
255ff74f
BW
6558 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6559 ("gtk-doc" ,gtk-doc)
ba5dd105 6560 ("gobject-introspection" ,gobject-introspection)
255ff74f 6561 ("docbook-xml" ,docbook-xml)
d04687dc 6562 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6563 ("intltool" ,intltool)
d04687dc
HG
6564 ("libxslt" ,libxslt)
6565 ("libxml2" ,libxml2)
ba5dd105 6566 ("pkg-config" ,pkg-config)
255ff74f 6567 ("vala" ,vala)
ba5dd105
SB
6568 ;; For testing.
6569 ("python" ,python-wrapper)
6570 ("python-dbus" ,python-dbus)
6571 ("python-pygobject" ,python-pygobject)))
6572 (inputs
255ff74f 6573 `(("curl" ,curl)
856ca567
KK
6574 ("cyrus-sasl" ,cyrus-sasl)
6575 ("dbus-glib" ,dbus-glib)
ba5dd105 6576 ("dnsmasq" ,dnsmasq)
856ca567 6577 ("eudev" ,eudev)
ba5dd105
SB
6578 ("gnutls" ,gnutls)
6579 ("iptables" ,iptables)
6580 ("isc-dhcp" ,isc-dhcp)
c2f236fa 6581 ("iwd" ,iwd) ; wpa_supplicant alternative
d04687dc 6582 ("jansson" ,jansson)
c2f236fa 6583 ("libaudit" ,audit)
ba5dd105
SB
6584 ("libgcrypt" ,libgcrypt)
6585 ("libgudev" ,libgudev)
6586 ("libndp" ,libndp)
6587 ("libnl" ,libnl)
6588 ("libsoup" ,libsoup)
255ff74f 6589 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
142bdcbc 6590 ("modem-manager" ,modem-manager)
c27e02bf 6591 ("newt" ,newt) ;for the 'nmtui' console interface
c2f236fa 6592 ("openresolv" ,openresolv) ; alternative resolv.conf manager
ba5dd105
SB
6593 ("polkit" ,polkit)
6594 ("ppp" ,ppp)
6595 ("readline" ,readline)
fd070f35
CM
6596 ("util-linux" ,util-linux)
6597 ("elogind" ,elogind)))
ba5dd105 6598 (synopsis "Network connection manager")
8d0548fd 6599 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
ba5dd105
SB
6600 (description
6601 "NetworkManager is a system network service that manages your network
6602devices and connections, attempting to keep active network connectivity when
6603available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6604devices, and provides VPN integration with a variety of different VPN
6605services.")
255ff74f
BW
6606 ;; “This NetworkManager project consists of the daemon, client tools, and
6607 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6608 ;; GPL-2.0+.”
6609 (license (list license:gpl2+
6610 license:lgpl2.1+))
29d2f451 6611 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6612
f2b96b3a
LC
6613(define-public network-manager-openvpn
6614 (package
6615 (name "network-manager-openvpn")
3fe368c0 6616 (version "1.8.12")
f2b96b3a
LC
6617 (source (origin
6618 (method url-fetch)
6619 (uri (string-append
6620 "mirror://gnome/sources/NetworkManager-openvpn/"
6621 (version-major+minor version)
6622 "/NetworkManager-openvpn-" version ".tar.xz"))
6623 (sha256
6624 (base32
3fe368c0 6625 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
f2b96b3a
LC
6626 (build-system gnu-build-system)
6627 (arguments
633422b0
JL
6628 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6629 #:phases
6630 (modify-phases %standard-phases
6631 (add-after 'configure 'patch-path
6632 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6633 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6634 "/sbin/openvpn"))
6635 (modprobe (string-append (assoc-ref inputs "kmod")
6636 "/bin/modprobe"))
6637 (pretty-ovpn (string-append "\"" ovpn "\"")))
6638 (for-each
6639 (lambda (file)
6640 (substitute* file
6641 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6642 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6643 (("\"/sbin/openvpn\"") pretty-ovpn)
6644 (("/sbin/modprobe") modprobe)))
6645 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6646 #t)))))
f2b96b3a
LC
6647 (native-inputs
6648 `(("pkg-config" ,pkg-config)
6649 ("intltool" ,intltool)))
6650 (inputs
6651 `(("gtk+" ,gtk+)
633422b0 6652 ("kmod" ,kmod)
f2b96b3a
LC
6653 ("openvpn" ,openvpn)
6654 ("network-manager" ,network-manager)
3fe368c0 6655 ("libnma" ,libnma)
f2b96b3a
LC
6656 ("libsecret" ,libsecret)))
6657 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6658 (synopsis "OpenVPN plug-in for NetworkManager")
6659 (description
6660 "This extension of NetworkManager allows it to take care of connections
6661to virtual private networks (VPNs) via OpenVPN.")
6662 (license license:gpl2+)
6663 (properties `((upstream-name . "NetworkManager-openvpn")))))
6664
d376129f
JL
6665(define-public network-manager-vpnc
6666 (package
6667 (name "network-manager-vpnc")
6668 (version "1.2.6")
6669 (source (origin
6670 (method url-fetch)
6671 (uri (string-append
6672 "mirror://gnome/sources/NetworkManager-vpnc/"
6673 (version-major+minor version)
6674 "/NetworkManager-vpnc-" version ".tar.xz"))
6675 (sha256
6676 (base32
6677 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6678 (build-system gnu-build-system)
6679 (arguments
7c43b78d
BW
6680 `(#:configure-flags '("--enable-absolute-paths"
6681 "--localstatedir=/var"
6682 ;; libnm-glib has been removed from network-manager
6683 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6684 "--with-libnm-glib=no")
d376129f
JL
6685 #:phases
6686 (modify-phases %standard-phases
6687 (add-after 'configure 'patch-path
6688 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6689 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6690 "/sbin/vpnc"))
6691 (modprobe (string-append (assoc-ref inputs "kmod")
6692 "/bin/modprobe"))
6693 (pretty-ovpn (string-append "\"" vpnc "\"")))
6694 (substitute* "src/nm-vpnc-service.c"
6695 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6696 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6697 (("\"/sbin/vpnc\"") pretty-ovpn)
6698 (("/sbin/modprobe") modprobe)))
6699 #t)))))
6700 (native-inputs
6701 `(("pkg-config" ,pkg-config)
6702 ("intltool" ,intltool)))
6703 (inputs
6704 `(("gtk+" ,gtk+)
6705 ("kmod" ,kmod)
6706 ("vpnc" ,vpnc)
6707 ("network-manager" ,network-manager)
7c43b78d 6708 ("libnma" ,libnma)
d376129f
JL
6709 ("libsecret" ,libsecret)))
6710 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6711 (synopsis "VPNC plug-in for NetworkManager")
6712 (description
6713 "Support for configuring virtual private networks based on VPNC.
6714Compatible with Cisco VPN concentrators configured to use IPsec.")
6715 (license license:gpl2+)
6716 (properties `((upstream-name . "NetworkManager-vpnc")))))
6717
8378c87a
EF
6718(define-public network-manager-openconnect
6719 (package
6720 (name "network-manager-openconnect")
6721 (version "1.2.6")
6722 (source (origin
6723 (method url-fetch)
6724 (uri (string-append
6725 "mirror://gnome/sources/NetworkManager-openconnect/"
6726 (version-major+minor version)
6727 "/NetworkManager-openconnect-" version ".tar.xz"))
6728 (sha256
6729 (base32
6730 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6731 (build-system gnu-build-system)
6732 (arguments
6733 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6734 #:phases
6735 (modify-phases %standard-phases
6736 (add-after 'configure 'patch-path
6737 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6738 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6739 "/sbin/openconnect"))
6740 (modprobe (string-append (assoc-ref inputs "kmod")
6741 "/bin/modprobe"))
6742 (pretty-ovpn (string-append "\"" openconnect "\"")))
6743 (substitute* "src/nm-openconnect-service.c"
6744 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6745 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6746 (("/sbin/modprobe") modprobe)))
6747 #t)))))
6748 (native-inputs
6749 `(("intltool" ,intltool)
4ca449c5 6750 ("libnma" ,libnma)
8378c87a
EF
6751 ("pkg-config" ,pkg-config)))
6752 (inputs
6753 `(("gcr" ,gcr)
6754 ("gtk+" ,gtk+)
6755 ("kmod" ,kmod)
6756 ("libsecret" ,libsecret)
6757 ("libxml2" ,libxml2)
b4fe5dab 6758 ("lz4" ,lz4)
8378c87a
EF
6759 ("network-manager" ,network-manager)
6760 ("openconnect" ,openconnect)))
6761 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6762 (synopsis "OpenConnect plug-in for NetworkManager")
6763 (description
6764 "This extension of NetworkManager allows it to take care of connections
6765to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6766Cisco's AnyConnect SSL VPN.")
6767 (license license:gpl2+)
e52b9534
LC
6768 (properties `((upstream-name . "NetworkManager-openconnect")
6769
6770 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6771 ;; file refers to account "nm-openconnect". Specify it here
6772 ;; so that 'network-manager-service-type' creates it.
6773 (user-accounts . ("nm-openconnect"))))))
8378c87a 6774
e5e1df4d
DC
6775(define-public mobile-broadband-provider-info
6776 (package
6777 (name "mobile-broadband-provider-info")
310c89e3 6778 (version "20190116")
e5e1df4d
DC
6779 (source (origin
6780 (method url-fetch)
6781 (uri (string-append
6782 "mirror://gnome/sources/"
6783 "mobile-broadband-provider-info/" version "/"
6784 "mobile-broadband-provider-info-" version ".tar.xz"))
6785 (sha256
6786 (base32
310c89e3 6787 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6788 (build-system gnu-build-system)
6789 (arguments
310c89e3 6790 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6791 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6792 (synopsis "Database of broadband connection configuration")
6793 (description "Database of broadband connection configuration.")
6794 (license license:public-domain)))
6795
4d62a9d3
SB
6796(define-public network-manager-applet
6797 (package
6798 (name "network-manager-applet")
4c291112 6799 (version "1.16.0")
4d62a9d3
SB
6800 (source (origin
6801 (method url-fetch)
3df63444 6802 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6803 (version-major+minor version) "/"
3df63444 6804 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6805 (sha256
6806 (base32
4c291112 6807 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
cd7f718e
RW
6808 (build-system meson-build-system)
6809 (arguments
4c291112 6810 '(#:glib-or-gtk? #t))
4d62a9d3
SB
6811 (native-inputs
6812 `(("intltool" ,intltool)
cd7f718e 6813 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6814 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6815 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6816 ("pkg-config" ,pkg-config)))
6817 (propagated-inputs
6818 ;; libnm-gtk.pc refers to all these.
6819 `(("dbus-glib" ,dbus-glib)
6820 ("gtk+" ,gtk+)
415b90f2
BW
6821 ("network-manager" ,network-manager)
6822 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
6823 ("libnma" ,libnma)))
4d62a9d3 6824 (inputs
cd7f718e 6825 `(("gcr" ,gcr)
4d62a9d3
SB
6826 ("libgudev" ,libgudev)
6827 ("libnotify" ,libnotify)
2116bfb3 6828 ("libsecret" ,libsecret)
240cee8a
KK
6829 ("libselinux" ,libselinux)
6830 ("jansson" ,jansson) ; for team support
4c291112 6831 ("modem-manager" ,modem-manager)))
4d62a9d3 6832 (synopsis "Applet for managing network connections")
8ce78609 6833 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
4d62a9d3
SB
6834 (description
6835 "This package contains a systray applet for NetworkManager. It displays
6836the available networks and allows users to easily switch between them.")
6837 (license license:gpl2+)))
56196594
RW
6838
6839(define-public libxml++
6840 (package
6841 (name "libxml++")
8344a85e 6842 (version "3.0.1")
56196594
RW
6843 (source (origin
6844 (method url-fetch)
6845 (uri (string-append "mirror://gnome/sources/" name "/"
6846 (version-major+minor version) "/"
6847 name "-" version ".tar.xz"))
6848 (sha256
6849 (base32
8344a85e 6850 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6851 (build-system gnu-build-system)
6852 ;; libxml++-3.0.pc refers to all these.
6853 (propagated-inputs
6854 `(("libxml2" ,libxml2)
6855 ("glibmm" ,glibmm)))
6856 (native-inputs
6857 `(("perl" ,perl)
6858 ("pkg-config" ,pkg-config)))
6859 (home-page "http://libxmlplusplus.sourceforge.net/")
6860 (synopsis "C++ wrapper for XML parser library libxml2")
6861 (description
6862 "This package provides a C++ wrapper for the XML parser library
6863libxml2.")
6864 (license license:lgpl2.1+)))
df12f04a 6865
b61d9627
AW
6866(define-public libxml++-2
6867 (package
6868 (inherit libxml++)
6869 (name "libxml++")
6870 (version "2.40.1")
6871 (source (origin
6872 (method url-fetch)
6873 (uri (string-append "mirror://gnome/sources/" name "/"
6874 (version-major+minor version) "/"
6875 name "-" version ".tar.xz"))
6876 (sha256
6877 (base32
6878 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6879
df12f04a
SB
6880(define-public gdm
6881 (package
6882 (name "gdm")
0fda99c5 6883 (version "3.34.1")
df12f04a
SB
6884 (source (origin
6885 (method url-fetch)
6886 (uri (string-append "mirror://gnome/sources/" name "/"
6887 (version-major+minor version) "/"
6888 name "-" version ".tar.xz"))
6889 (sha256
6890 (base32
0fda99c5 6891 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 6892 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6893 (build-system glib-or-gtk-build-system)
df12f04a
SB
6894 (arguments
6895 '(#:configure-flags
af37e6bb 6896 `("--without-plymouth"
957dbc0a 6897 "--disable-systemd-journal"
51bc8357
TS
6898
6899 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6900 ;; instead of having to replace it (i.e., stopping the mingetty
6901 ;; service for TTY 1 before starting GDM).
6902 "--with-initial-vt=7"
6903
89c86562
TS
6904 ;; Use '/etc/environment' for locale settings instead of the
6905 ;; systemd-specific '/etc/locale.conf'.
6906 "--with-lang-file=/etc/environment"
6907
b74ef0ba
RW
6908 ,(string-append "--with-udevdir="
6909 (assoc-ref %outputs "out") "/lib/udev")
6910
af37e6bb
AW
6911 "--localstatedir=/var"
6912 ,(string-append "--with-default-path="
6913 (string-join '("/run/setuid-programs"
6914 "/run/current-system/profile/bin"
6915 "/run/current-system/profile/sbin")
957dbc0a
AW
6916 ":"))
6917 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6918 ;; XDG_DATA_DIRS so that it finds its schemas.
6919 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6920 #:phases
6921 (modify-phases %standard-phases
6922 (add-before
6923 'configure 'pre-configure
e8c6e771 6924 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6925 ;; We don't have <systemd/sd-daemon.h>.
6926 (substitute* '("common/gdm-log.c"
6927 "daemon/gdm-server.c"
6928 "daemon/gdm-session-worker.c"
6929 "daemon/gdm-session-worker-job.c")
6930 (("#include <systemd/sd-daemon\\.h>") ""))
6931 ;; Use elogind for sd-login.
6932 (substitute* '("common/gdm-common.c"
0fda99c5 6933 "daemon/gdm-local-display-factory.c"
df12f04a
SB
6934 "daemon/gdm-manager.c"
6935 "libgdm/gdm-user-switching.c")
6936 (("#include <systemd/sd-login\\.h>")
6937 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6938 ;; Check for elogind.
6939 (substitute* '("configure")
6940 (("libsystemd")
6941 "libelogind"))
af37e6bb
AW
6942 ;; Look for system-installed sessions in
6943 ;; /run/current-system/profile/share.
6944 (substitute* '("libgdm/gdm-sessions.c"
6945 "daemon/gdm-session.c"
6946 "daemon/gdm-display.c"
6947 "daemon/gdm-launch-environment.c")
6948 (("DATADIR \"/x")
6949 "\"/run/current-system/profile/share/x")
6950 (("DATADIR \"/wayland")
6951 "\"/run/current-system/profile/share/wayland")
6952 (("DATADIR \"/gnome")
6953 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6954 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6955 "GDM_DBUS_DAEMON"
c9ff92b5 6956 "GDM_X_SERVER"
41fa9f18 6957 "GDM_X_SESSION"
c9ff92b5
TS
6958 ;; XXX: Remove this once GNOME Shell is
6959 ;; a dependency of GDM.
6960 "XDG_DATA_DIRS")))
6961 (substitute* "daemon/gdm-session.c"
6962 (("set_up_session_environment \\(self\\);")
6963 (apply string-append
6964 "set_up_session_environment (self);\n"
6965 (map (lambda (name)
6966 (string-append
6967 "gdm_session_set_environment_variable "
6968 "(self, \"" name "\","
6969 "g_getenv (\"" name "\"));\n"))
6970 propagate)))))
a430a350
TS
6971 ;; Find the configuration file using an environment variable.
6972 (substitute* '("common/gdm-settings.c")
e0e6756f 6973 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6974 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6975 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6976 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6977 ;; Use service-supplied path to X.
6978 (substitute* '("daemon/gdm-server.c")
6979 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6980 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
6981 (substitute* '("daemon/gdm-wayland-session.c"
6982 "daemon/gdm-x-session.c")
1f564c15
TS
6983 (("\"dbus-daemon\"")
6984 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6985 (("X_SERVER")
41fa9f18
TS
6986 "g_getenv (\"GDM_X_SERVER\")")
6987 (("GDMCONFDIR \"/Xsession\"")
6988 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6989 ;; Use an absolute path for GNOME Session.
6990 (substitute* "daemon/gdm-launch-environment.c"
6991 (("\"gnome-session\"")
6992 (string-append "\"" (assoc-ref inputs "gnome-session")
6993 "/bin/gnome-session\"")))
e8c6e771
TS
6994 ;; Do not automatically select the placeholder session.
6995 (substitute* "daemon/gdm-session.c"
6996 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6997 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6998 "(g_strcmp0(search_dirs[i], \""
6999 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7000 "\") == 0 && "
7001 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7002 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 7003 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 7004 #t))
8caa4589
TS
7005 ;; GDM requires that there be at least one desktop entry
7006 ;; file. This phase installs a hidden one that simply
7007 ;; fails. This enables users to use GDM with a
7008 ;; '~/.xsession' script with no other desktop entry files.
7009 ;; See <https://bugs.gnu.org/35068>.
7010 (add-after 'install 'install-placeholder-desktop-entry
7011 (lambda* (#:key inputs outputs #:allow-other-keys)
7012 (let* ((out (assoc-ref outputs "out"))
7013 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7014 (fail (string-append sessions "/fail.desktop")))
7015 (mkdir-p sessions)
7016 (with-output-to-file fail
7017 (lambda ()
7018 (for-each
7019 display
7020 '("[Desktop Entry]\n"
7021 "Encoding=UTF-8\n"
7022 "Type=Application\n"
7023 "Name=Fail\n"
7024 "Comment=This session fails immediately.\n"
7025 "NoDisplay=true\n"
7026 "Exec=false\n"))))
7027 #t)))
69544798
TS
7028 ;; GDM needs GNOME Session to run these applications. We link
7029 ;; their autostart files in `share/gdm/greeter/autostart'
7030 ;; because GDM explicitly tells GNOME Session to look there.
7031 ;;
7032 ;; XXX: GNOME Shell should be linked here too, but currently
7033 ;; GNOME Shell depends on GDM.
7034 (add-after 'install 'link-autostart-files
7035 (lambda* (#:key inputs outputs #:allow-other-keys)
7036 (let* ((out (assoc-ref outputs "out"))
7037 (autostart (string-append out "/share/gdm/"
7038 "greeter/autostart"))
7039 (settings (assoc-ref inputs "gnome-settings-daemon")))
7040 (mkdir-p autostart)
7041 (with-directory-excursion autostart
7042 (for-each (lambda (desktop)
7043 (symlink desktop (basename desktop)))
7044 (find-files (string-append settings "/etc/xdg"))))
7045 #t))))))
df12f04a
SB
7046 (native-inputs
7047 `(("dconf" ,dconf)
7048 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7049 ("gobject-introspection" ,gobject-introspection)
7050 ("intltool" ,intltool)
7051 ("itstool" ,itstool)
7052 ("pkg-config" ,pkg-config)
7053 ("xmllint" ,libxml2)))
7054 (inputs
7055 `(("accountsservice" ,accountsservice)
7056 ("check" ,check) ; for testing
7057 ("elogind" ,elogind)
def6d6b6 7058 ("gnome-session" ,gnome-session)
69544798 7059 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
7060 ("gtk+" ,gtk+)
7061 ("iso-codes" ,iso-codes)
7062 ("libcanberra" ,libcanberra)
7063 ("linux-pam" ,linux-pam)))
7064 (synopsis "Display manager for GNOME")
f032d0be 7065 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
7066 (description
7067 "GNOME Display Manager is a system service that is responsible for
7068providing graphical log-ins and managing local and remote displays.")
7069 (license license:gpl2+)))
8e1dd04f
SB
7070
7071(define-public libgtop
7072 (package
7073 (name "libgtop")
015fc036 7074 (version "2.40.0")
8e1dd04f
SB
7075 (source (origin
7076 (method url-fetch)
59487fc2 7077 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7078 (version-major+minor version) "/"
59487fc2 7079 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7080 (sha256
7081 (base32
015fc036 7082 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7083 (build-system gnu-build-system)
7084 (native-inputs
7085 `(("gobject-introspection" ,gobject-introspection)
7086 ("intltool" ,intltool)
7087 ("perl" ,perl)
7088 ("pkg-config" ,pkg-config)))
7089 (propagated-inputs
7090 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7091 (synopsis "Portable system access library")
7092 (home-page "https://www.gnome.org/")
7093 (description
7094 "LibGTop is a library to get system specific data such as CPU and memory
7095usage and information about running processes.")
7096 (license license:gpl2+)))
b96c4260
SB
7097
7098(define-public gnome-bluetooth
7099 (package
7100 (name "gnome-bluetooth")
e8f4bf6b 7101 (version "3.34.0")
b96c4260
SB
7102 (source (origin
7103 (method url-fetch)
7104 (uri (string-append "mirror://gnome/sources/" name "/"
7105 (version-major+minor version) "/"
7106 name "-" version ".tar.xz"))
7107 (sha256
7108 (base32
e8f4bf6b 7109 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 7110 (build-system meson-build-system)
b96c4260
SB
7111 (native-inputs
7112 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7113 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7114 ("gobject-introspection" ,gobject-introspection)
7115 ("intltool" ,intltool)
7116 ("pkg-config" ,pkg-config)
7117 ("xmllint" ,libxml2)))
7118 (propagated-inputs
7119 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7120 `(("glib" ,glib)
7121 ("gtk+" ,gtk+)))
b96c4260 7122 (inputs
723afae6
KK
7123 `(("eudev" ,eudev)
7124 ("libcanberra" ,libcanberra)
b96c4260
SB
7125 ("libnotify" ,libnotify)))
7126 (synopsis "GNOME Bluetooth subsystem")
7127 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7128 (description
7129 "This package contains tools for managing and manipulating Bluetooth
7130devices using the GNOME desktop.")
7131 (license license:lgpl2.1+)))
b645146f
SB
7132
7133(define-public gnome-control-center
7134 (package
7135 (name "gnome-control-center")
c576328d 7136 (version "3.34.2")
b645146f
SB
7137 (source (origin
7138 (method url-fetch)
7139 (uri (string-append "mirror://gnome/sources/" name "/"
7140 (version-major+minor version) "/"
7141 name "-" version ".tar.xz"))
7142 (sha256
7143 (base32
c576328d 7144 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7145 (build-system meson-build-system)
b645146f 7146 (arguments
59dac026
RW
7147 '(#:glib-or-gtk? #t
7148 #:configure-flags
64c70430
KK
7149 (list "-Dcheese=false"
7150 (string-append "-Dgnome_session_libexecdir="
7151 (assoc-ref %build-inputs "gnome-session")
7152 "/libexec"))
59dac026 7153 #:phases
b645146f
SB
7154 (modify-phases %standard-phases
7155 (add-before 'configure 'patch-paths
7156 (lambda* (#:key inputs #:allow-other-keys)
7157 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7158 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7159 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7160 (nm-applet (assoc-ref inputs "network-manager-applet"))
7161 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7162 (substitute* "panels/datetime/tz.h"
7163 (("/usr/share/zoneinfo/zone.tab")
7164 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7165 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7166 (("/usr/share/locale")
7167 (string-append libc "/share/locale")))
1df38cfc
LC
7168 (substitute* "panels/region/cc-region-panel.c"
7169 (("\"gkbd-keyboard-display")
7170 (string-append "\"" libgnomekbd
7171 "/bin/gkbd-keyboard-display")))
341225ac
LC
7172 (substitute* '("panels/network/net-device-wifi.c"
7173 "panels/network/net-device.c"
7174 "panels/network/connection-editor/net-connection-editor.c")
7175 (("\"nm-connection-editor")
7176 (string-append "\"" nm-applet
7177 "/bin/nm-connection-editor")))
1acd107c
FP
7178 (substitute* '("panels/user-accounts/run-passwd.c")
7179 (("/usr/bin/passwd")
7180 "/run/setuid-programs/passwd"))
64c70430
KK
7181 (substitute* "panels/info/cc-info-overview-panel.c"
7182 (("DATADIR \"/gnome/gnome-version.xml\"")
7183 (string-append "\"" gnome-desktop
7184 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7185 #t)))
7186 (add-after 'unpack 'skip-gtk-update-icon-cache
7187 ;; Don't create 'icon-theme.cache'.
7188 (lambda _
7189 (substitute* "build-aux/meson/meson_post_install.py"
7190 (("gtk-update-icon-cache") (which "true")))
7191 #t)))))
b645146f
SB
7192 (native-inputs
7193 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7194 ("intltool" ,intltool)
7195 ("pkg-config" ,pkg-config)
a6938bac
KK
7196 ("xsltproc" ,libxslt)
7197 ;; For tests
7198 ("hicolor-icon-theme" ,hicolor-icon-theme)
7199 ("python-dbusmock" ,python-dbusmock)
7200 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7201 (inputs
7202 `(("accountsservice" ,accountsservice)
7203 ("clutter-gtk" ,clutter-gtk)
7204 ("colord-gtk" ,colord-gtk)
7205 ("cups" ,cups)
7206 ("dconf" ,dconf)
7207 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7208 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7209 ("gnome-bluetooth" ,gnome-bluetooth)
7210 ("gnome-desktop" ,gnome-desktop)
7211 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7212 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7213 ("gnome-session" ,gnome-session)
b645146f
SB
7214 ("gnome-settings-daemon" ,gnome-settings-daemon)
7215 ("grilo" ,grilo)
a6938bac 7216 ("gsound" ,gsound)
b645146f
SB
7217 ("ibus" ,ibus)
7218 ("libcanberra" ,libcanberra)
1df38cfc 7219 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7220 ("libgudev" ,libgudev)
7221 ("libgtop" ,libgtop)
46cf3434 7222 ("libnma" ,libnma)
b645146f 7223 ("libpwquality" ,libpwquality)
982c0b36 7224 ("libsecret" ,libsecret)
b645146f
SB
7225 ("libsoup" ,libsoup)
7226 ("libxml2" ,libxml2)
7227 ("libwacom" ,libwacom)
7228 ("mesa" ,mesa)
7229 ("mit-krb5" ,mit-krb5)
7230 ("modem-manager" ,modem-manager)
7231 ("network-manager-applet" ,network-manager-applet)
7232 ("polkit" ,polkit)
7233 ("pulseaudio" ,pulseaudio)
7234 ("smbclient" ,samba)
7235 ("tzdata" ,tzdata)
982c0b36 7236 ("udisks" ,udisks)
b645146f
SB
7237 ("upower" ,upower)))
7238 (synopsis "Utilities to configure the GNOME desktop")
7239 (home-page "https://www.gnome.org/")
7240 (description
7241 "This package contains configuration applets for the GNOME desktop,
7242allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7243properties, sound setup, desktop theme and background, user interface
7244properties, screen resolution, and other GNOME parameters.")
7245 (license license:gpl2+)))
a4df5756
SB
7246
7247(define-public gnome-shell
7248 (package
7249 (name "gnome-shell")
28457ae6 7250 (version "3.34.2")
a4df5756
SB
7251 (source (origin
7252 (method url-fetch)
7253 (uri (string-append "mirror://gnome/sources/" name "/"
7254 (version-major+minor version) "/"
7255 name "-" version ".tar.xz"))
7256 (sha256
7257 (base32
28457ae6
KK
7258 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7259 (patches (search-patches "gnome-shell-theme.patch"
7260 "gnome-shell-disable-test.patch"))
a76d0f03
LC
7261 (modules '((guix build utils)))
7262 (snippet
7263 #~(begin
a76d0f03
LC
7264 ;; Copy images for use on the GDM log-in screen.
7265 (copy-file #$(file-append %artwork-repository
7266 "/slim/0.x/background.png")
7267 "data/theme/guix-background.png")
45fef894
LC
7268 (copy-file #$(file-append %artwork-repository
7269 "/logo/Guix-horizontal-white.svg")
7270 "data/theme/guix-logo.svg")
a76d0f03 7271 #t))))
2b0c755d 7272 (build-system meson-build-system)
a4df5756 7273 (arguments
08185081
MB
7274 `(#:glib-or-gtk? #t
7275 #:disallowed-references ((,glib "bin")
11e1df56
LC
7276 ,inkscape ,libxslt
7277 ,ruby-sass)
2b0c755d
RW
7278 #:configure-flags
7279 (list "-Dsystemd=false"
7280 ;; Otherwise, the RUNPATH will lack the final path component.
7281 (string-append "-Dc_link_args=-Wl,-rpath="
7282 (assoc-ref %outputs "out")
7283 "/lib/gnome-shell"))
11e1df56 7284
08185081 7285 #:modules ((guix build meson-build-system)
11e1df56
LC
7286 (guix build utils)
7287 (srfi srfi-1))
7288
2b0c755d 7289 #:phases
a4df5756 7290 (modify-phases %standard-phases
2b0c755d 7291 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7292 (lambda* (#:key outputs #:allow-other-keys)
7293 (let* ((out (assoc-ref outputs "out"))
7294 (keysdir (string-append
7295 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7296 (substitute* "meson.build"
7297 (("keysdir =.*")
7298 (string-append "keysdir = '" keysdir "'\n")))
7299 #t)))
ebfe259f
MB
7300 (add-before 'configure 'convert-logo-to-png
7301 (lambda* (#:key inputs #:allow-other-keys)
7302 ;; Convert the logo from SVG to PNG.
7303 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7304 "data/theme/guix-logo.svg")))
ba00235a 7305 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7306 (lambda* (#:key inputs #:allow-other-keys)
7307 (substitute* "js/misc/ibusManager.js"
7308 (("'ibus-daemon'")
7309 (string-append "'" (assoc-ref inputs "ibus")
7310 "/bin/ibus-daemon'")))
d6fda4d3
LC
7311 (substitute* "js/ui/status/keyboard.js"
7312 (("'gkbd-keyboard-display'")
7313 (string-append "'" (assoc-ref inputs "libgnomekbd")
7314 "/bin/gkbd-keyboard-display'")))
2472cdec 7315 #t))
2b0c755d
RW
7316 (add-before 'check 'pre-check
7317 (lambda* (#:key inputs #:allow-other-keys)
7318 ;; Tests require a running X server.
7319 (system "Xvfb :1 &")
7320 (setenv "DISPLAY" ":1")
7321 #t))
7322 (add-after 'install 'wrap-programs
7323 (lambda* (#:key inputs outputs #:allow-other-keys)
7324 (let ((out (assoc-ref outputs "out"))
7325 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7326 (python-path (getenv "PYTHONPATH")))
7327 (wrap-program (string-append out "/bin/gnome-shell")
7328 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7329 ;; FIXME: gnome-shell loads these libraries with unqualified
7330 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7331 ;; alternative might be to patch gnome-shell.
7332 `("LD_LIBRARY_PATH" ":" prefix
7333 ,(map (lambda (pkg)
7334 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7335 '("gdk-pixbuf"
7336 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7337 (for-each
7338 (lambda (prog)
7339 (wrap-program (string-append out "/bin/" prog)
7340 `("PYTHONPATH" ":" prefix (,python-path))
7341 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7342 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7343 #t)))
11e1df56
LC
7344 (replace 'glib-or-gtk-wrap
7345 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7346 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7347 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7348 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7349 ;; phase. Fix that since we don't need these.
7350 (wrap #:inputs (fold alist-delete inputs
7351 '("inkscape" "intltool" "glib:bin"))
7352 #:outputs outputs)))))))
a4df5756 7353 (native-inputs
28457ae6
KK
7354 `(("asciidoc" ,asciidoc)
7355 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7356 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7357 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7358 ("inkscape" ,inkscape)
a4df5756
SB
7359 ("intltool" ,intltool)
7360 ("pkg-config" ,pkg-config)
7361 ("python" ,python)
2b0c755d
RW
7362 ("ruby-sass" ,ruby-sass)
7363 ("sassc" ,sassc)
a76d0f03 7364 ("xsltproc" ,libxslt)
2b0c755d 7365 ;; For tests
0b4504f6 7366 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7367 (inputs
7368 `(("accountsservice" ,accountsservice)
7369 ("caribou" ,caribou)
7370 ("docbook-xsl" ,docbook-xsl)
7371 ("evolution-data-server" ,evolution-data-server)
7372 ("gcr" ,gcr)
7373 ("gdm" ,gdm)
c5db31d4 7374 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 7375 ("gjs" ,gjs)
28457ae6 7376 ("gnome-autoar" ,gnome-autoar)
a4df5756 7377 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7378 ("gnome-desktop" ,gnome-desktop)
7379 ("gnome-settings-daemon" ,gnome-settings-daemon)
7380 ("gst-plugins-base" ,gst-plugins-base)
7381 ("ibus" ,ibus)
7382 ("libcanberra" ,libcanberra)
7383 ("libcroco" ,libcroco)
d6fda4d3 7384 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756 7385 ("libgweather" ,libgweather)
e24d311f 7386 ("libnma" ,libnma)
a4df5756
SB
7387 ("libsoup" ,libsoup)
7388 ("mesa-headers" ,mesa-headers)
7389 ("mutter" ,mutter)
7390 ("network-manager-applet" ,network-manager-applet)
7391 ("polkit" ,polkit)
7392 ("pulseaudio" ,pulseaudio)
7393 ("python-pygobject" ,python-pygobject)
7394 ("startup-notification" ,startup-notification)
7395 ("telepathy-logger" ,telepathy-logger)
7396 ("upower" ,upower)
30e760f0
MB
7397 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7398 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7399 ("librsvg" ,librsvg)
2b0c755d 7400 ("geoclue" ,geoclue)))
a4df5756
SB
7401 (synopsis "Desktop shell for GNOME")
7402 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7403 (description
7404 "GNOME Shell provides core user interface functions for the GNOME desktop,
7405like switching to windows and launching applications.")
7406 (license license:gpl2+)))
c3f29bc9
RS
7407
7408(define-public gtk-vnc
7409 (package
7410 (name "gtk-vnc")
965ff023 7411 (version "0.9.0")
c3f29bc9
RS
7412 (source
7413 (origin
7414 (method url-fetch)
7415 (uri (string-append "mirror://gnome/sources/" name "/"
7416 (version-major+minor version) "/"
7417 name "-" version ".tar.xz"))
7418 (sha256
7419 (base32
965ff023 7420 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7421 (build-system gnu-build-system)
7422 (arguments
7423 '(#:configure-flags '("--with-gtk=3.0")))
7424 (propagated-inputs
7425 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7426 (inputs
7427 `(("cyrus-sasl" ,cyrus-sasl)
7428 ("gnutls" ,gnutls)
7429 ("libgcrypt" ,libgcrypt)
7430 ("pulseaudio" ,pulseaudio)))
7431 (native-inputs
7432 `(("glib:bin" ,glib "bin")
7433 ("gobject-introspection" ,gobject-introspection)
7434 ("intltool" ,intltool)
7435 ("pkg-config" ,pkg-config)
2f17e939 7436 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7437 ("vala" ,vala)))
7438 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7439 (synopsis "VNC viewer widget for GTK+")
7440 (description
7441 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7442applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7443GTK-VNC implements client side RFB protocol and authentication extensions such
7444as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7445 (license license:lgpl2.1+)))
8b877545 7446
dc69fe18
MW
7447(define-public gnome-autoar
7448 (package
7449 (name "gnome-autoar")
17969940 7450 (version "0.2.4")
dc69fe18
MW
7451 (source (origin
7452 (method url-fetch)
7453 (uri (string-append "mirror://gnome/sources/" name "/"
7454 (version-major+minor version) "/"
7455 name "-" version ".tar.xz"))
7456 (sha256
7457 (base32
17969940 7458 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
7459 (build-system glib-or-gtk-build-system)
7460 (native-inputs
17969940 7461 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
7462 ("pkg-config" ,pkg-config)))
7463 (propagated-inputs
17969940 7464 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 7465 (inputs
0a6e9e13 7466 `(("gtk+" ,gtk+)))
dc69fe18
MW
7467 (synopsis "Archives integration support for GNOME")
7468 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7469 (description
7470 "GNOME Autoar is a library which makes creating and extracting archives
7471easy, safe, and automatic.")
7472 (license license:lgpl2.1+)))
7473
b64e217f
MW
7474(define-public tracker
7475 (package
7476 (name "tracker")
caaefa40 7477 (version "2.3.4")
b64e217f
MW
7478 (source (origin
7479 (method url-fetch)
b5b0fd23 7480 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7481 (version-major+minor version) "/"
b5b0fd23 7482 "tracker-" version ".tar.xz"))
b64e217f
MW
7483 (sha256
7484 (base32
caaefa40 7485 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7486 (build-system meson-build-system)
c8bdf589 7487 (arguments
5ada561c
KK
7488 `(#:glib-or-gtk? #t
7489 #:configure-flags
7490 ;; Otherwise, the RUNPATH will lack the final path component.
7491 (list (string-append "-Dc_link_args=-Wl,-rpath="
7492 (assoc-ref %outputs "out") "/lib:"
7493 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7494 #:phases
c8bdf589 7495 (modify-phases %standard-phases
c8bdf589
RW
7496 (add-before 'check 'pre-check
7497 (lambda _
63db190a
PN
7498 ;; Some tests expect to write to $HOME.
7499 (setenv "HOME" "/tmp")
c8bdf589 7500 #t)))))
b64e217f 7501 (native-inputs
5ada561c 7502 `(("glib:bin" ,glib "bin")
b64e217f 7503 ("gobject-introspection" ,gobject-introspection)
5ada561c 7504 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7505 ("intltool" ,intltool)
7506 ("pkg-config" ,pkg-config)
7507 ("vala" ,vala)))
7508 (inputs
63db190a 7509 `(("dbus" ,dbus)
44ed6284 7510 ("sqlite" ,sqlite)
b64e217f 7511 ("libxml2" ,libxml2)
63db190a 7512 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7513 ("json-glib" ,json-glib)
63db190a 7514 ("libsoup" ,libsoup)))
b64e217f
MW
7515 (synopsis "Metadata database, indexer and search tool")
7516 (home-page "https://wiki.gnome.org/Projects/Tracker")
7517 (description
63db190a
PN
7518 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7519
7520It is a middleware component aimed at desktop application developers who want
7521their apps to browse and search user content. It's not designed to be used
7522directly by desktop users, but it provides a commandline tool named
7523@command{tracker} for the adventurous.
7524
7525Tracker allows your application to instantly perform full-text searches across
7526all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7527example. This is achieved by indexing the user's home directory in the
7528background.
7529
7530Tracker also allows your application to query and list content that the user
7531has stored. For example, GNOME Music displays all the music files that are
7532found by Tracker. This means that GNOME Music doesn't need to maintain a
7533database of its own.
7534
7535If you need to go beyond simple searches, Tracker is also a linked data
7536endpoint and it understands SPARQL. ")
7537 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7538 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7539 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7540 (license (list license:gpl2+
63db190a
PN
7541 license:bsd-3
7542 license:lgpl2.1+))))
b64e217f 7543
03be9874
KK
7544(define-public tracker-miners
7545 (package
7546 (name "tracker-miners")
de60ac2f 7547 (version "2.3.3")
03be9874
KK
7548 (source (origin
7549 (method url-fetch)
7550 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7551 (version-major+minor version)
7552 "/tracker-miners-" version ".tar.xz"))
7553 (sha256
7554 (base32
de60ac2f 7555 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7556 (build-system meson-build-system)
7557 (arguments
7558 `(#:glib-or-gtk? #t
7559 #:configure-flags
7560 (list "-Dminer_rss=false" ; libgrss is required.
7561 ;; Ensure the RUNPATH contains all installed library locations.
7562 (string-append "-Dc_link_args=-Wl,-rpath="
7563 (assoc-ref %outputs "out")
7564 "/lib/tracker-miners-2.0")
7565 ;; TODO: Enable functional tests. Currently, the following error
7566 ;; appears:
7567 ;; Exception: The functional tests require DConf to be the default
7568 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7569 "-Dfunctional_tests=false")))
7570 (native-inputs
7571 `(("dbus" ,dbus)
7572 ("intltool" ,intltool)
7573 ("glib:bin" ,glib "bin")
7574 ("gobject-introspection" ,gobject-introspection)
7575 ("pkg-config" ,pkg-config)
7576 ("python-pygobject" ,python-pygobject)))
7577 (inputs
7578 `(("exempi" ,exempi)
7579 ("ffmpeg" ,ffmpeg)
7580 ("flac" ,flac)
7581 ("giflib" ,giflib)
7582 ("glib" ,glib)
7583 ("gstreamer" ,gstreamer)
7584 ("icu4c" ,icu4c)
7585 ("libcue" ,libcue)
7586 ("libexif" ,libexif)
7587 ("libgsf" ,libgsf)
7588 ("libgxps" ,libgxps)
7589 ("libiptcdata" ,libiptcdata)
4bd428a7 7590 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7591 ("libosinfo" ,libosinfo)
7592 ("libpng" ,libpng)
7593 ("libseccomp" ,libseccomp)
7594 ("libtiff" ,libtiff)
7595 ("libvorbis" ,libvorbis)
7596 ("libxml2" ,libxml2)
7597 ("poppler" ,poppler)
7598 ("taglib" ,taglib)
7599 ("totem-pl-parser" ,totem-pl-parser)
7600 ("tracker" ,tracker)
7601 ("upower" ,upower)
7602 ("zlib" ,zlib)))
b64e217f
MW
7603 (synopsis "Metadata database, indexer and search tool")
7604 (home-page "https://wiki.gnome.org/Projects/Tracker")
7605 (description
7606 "Tracker is an advanced framework for first class objects with associated
7607metadata and tags. It provides a one stop solution for all metadata, tags,
7608shared object databases, search tools and indexing.")
7609 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7610 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7611 (license (list license:gpl2+
7612 license:lgpl2.1+
7613 license:lgpl2.0+))))
7614
8b877545
RS
7615(define-public nautilus
7616 (package
7617 (name "nautilus")
8069ff0b 7618 (version "3.34.2")
8b877545
RS
7619 (source (origin
7620 (method url-fetch)
7621 (uri (string-append "mirror://gnome/sources/" name "/"
7622 (version-major+minor version) "/"
7623 name "-" version ".tar.xz"))
7624 (sha256
7625 (base32
8069ff0b 7626 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 7627 (build-system meson-build-system)
8b877545 7628 (arguments
35e2d0cf 7629 '(#:glib-or-gtk? #t
8069ff0b
KK
7630 #:phases
7631 (modify-phases %standard-phases
7632 (add-after 'unpack 'skip-gtk-update-icon-cache
7633 ;; Don't create 'icon-theme.cache'.
7634 (lambda _
7635 (substitute* "build-aux/meson/postinstall.py"
7636 (("gtk-update-icon-cache") "true"))
7637 #t)))
8b877545
RS
7638 ;; XXX: FAIL: check-nautilus
7639 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7640 #:tests? #f))
7641 (native-inputs
35e2d0cf
R
7642 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7643 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
7644 ("gobject-introspection" ,gobject-introspection)
7645 ("intltool" ,intltool)
7646 ("pkg-config" ,pkg-config)))
8b877545 7647 (inputs
8b877545 7648 `(("dconf" ,dconf)
caf6c363 7649 ("gexiv2" ,gexiv2)
dd05e731 7650 ("gvfs" ,gvfs)
8b877545
RS
7651 ("exempi" ,exempi)
7652 ("gnome-desktop" ,gnome-desktop)
09d88905 7653 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7654 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7655 ("libseccomp" ,libseccomp)
35e2d0cf 7656 ("libselinux" ,libselinux)
09d88905 7657 ("tracker" ,tracker)
3cafb9d4 7658 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7659 ;; XXX: gtk+ is required by libnautilus-extension.pc
7660 ;;
7661 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7662 ;; package. See:
7663 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7664 ("gtk+" ,gtk+)
8b877545
RS
7665 ("libexif" ,libexif)
7666 ("libxml2" ,libxml2)))
7667 (synopsis "File manager for GNOME")
7668 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7669 (description
7670 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7671design and behaviour, giving the user a simple way to navigate and manage its
7672files.")
7673 (license license:gpl2+)))
3c697ffd
JR
7674
7675(define-public baobab
7676 (package
7677 (name "baobab")
e0c5f20c 7678 (version "3.32.0")
3c697ffd
JR
7679 (source (origin
7680 (method url-fetch)
7681 (uri (string-append
7682 "mirror://gnome/sources/" name "/"
7683 (version-major+minor version) "/"
7684 name "-" version ".tar.xz"))
7685 (sha256
7686 (base32
e0c5f20c 7687 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7688 (build-system meson-build-system)
7689 (arguments
7690 '(#:glib-or-gtk? #t))
3c697ffd
JR
7691 (native-inputs
7692 `(("intltool" ,intltool)
7693 ("pkg-config" ,pkg-config)
d233d373
RJ
7694 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7695 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7696 ("itstool" ,itstool)
7697 ("xmllint" ,libxml2)
7698 ("glib" ,glib "bin")
7699 ("vala" ,vala)))
7700 (inputs
7701 `(("gtk+" ,gtk+)))
7702 (synopsis "Disk usage analyzer for GNOME")
7703 (description
7704 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7705usage in the GNOME desktop environment. It can easily scan device volumes or
7706a specific user-requested directory branch (local or remote). Once the scan
7707is complete it provides a graphical representation of each selected folder.")
7708 (home-page "https://wiki.gnome.org/Apps/Baobab")
7709 (license license:gpl2+)))
dc050251 7710
fdba447c
RS
7711(define-public gnome-backgrounds
7712 (package
7713 (name "gnome-backgrounds")
0856b0d9 7714 (version "3.34.0")
fdba447c
RS
7715 (source
7716 (origin
7717 (method url-fetch)
7718 (uri (string-append "mirror://gnome/sources/" name "/"
7719 (version-major+minor version) "/"
7720 name "-" version ".tar.xz"))
7721 (sha256
7722 (base32
0856b0d9 7723 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 7724 (build-system meson-build-system)
fdba447c
RS
7725 (native-inputs
7726 `(("intltool" ,intltool)))
e04e8a8c 7727 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7728 (synopsis "Background images for the GNOME desktop")
7729 (description
7730 "GNOME backgrounds package contains a collection of graphics files which
7731can be used as backgrounds in the GNOME Desktop environment. Additionally,
7732the package creates the proper framework and directory structure so that you
7733can add your own files to the collection.")
7734 (license (list license:gpl2+
7735 license:cc-by2.0
7736 license:cc-by-sa2.0
7737 license:cc-by-sa3.0))))
7738
b784b1a9
RS
7739(define-public gnome-screenshot
7740 (package
7741 (name "gnome-screenshot")
d5101dab 7742 (version "3.34.0")
b784b1a9
RS
7743 (source
7744 (origin
7745 (method url-fetch)
7746 (uri (string-append "mirror://gnome/sources/" name "/"
7747 (version-major+minor version) "/"
7748 name "-" version ".tar.xz"))
7749 (sha256
7750 (base32
d5101dab 7751 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 7752 (build-system meson-build-system)
d5101dab
KK
7753 (arguments
7754 '(#:phases
7755 (modify-phases %standard-phases
7756 (add-after 'unpack 'skip-gtk-update-icon-cache
7757 ;; Don't create 'icon-theme.cache'.
7758 (lambda _
7759 (substitute* "build-aux/postinstall.py"
7760 (("gtk-update-icon-cache") "true"))
7761 #t)))))
b784b1a9
RS
7762 (native-inputs
7763 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 7764 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7765 ("intltool" ,intltool)
8356aefa 7766 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7767 ("pkg-config" ,pkg-config)))
7768 (inputs
7769 `(("gtk+" ,gtk+)
7770 ("libcanberra" ,libcanberra)
7771 ("libx11" ,libx11)
7772 ("libxext" ,libxext)))
676e7cb4 7773 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7774 (synopsis "Take pictures of your screen")
7775 (description
7776 "GNOME Screenshot is a utility used for taking screenshots of the entire
7777screen, a window or a user defined area of the screen, with optional
7778beautifying border effects.")
7779 (license license:gpl2+)))
7780
66d59111
RS
7781(define-public dconf-editor
7782 (package
7783 (name "dconf-editor")
720aa20f 7784 (version "3.34.2")
66d59111
RS
7785 (source
7786 (origin
7787 (method url-fetch)
7788 (uri (string-append "mirror://gnome/sources/" name "/"
7789 (version-major+minor version) "/"
7790 name "-" version ".tar.xz"))
7791 (sha256
7792 (base32
720aa20f 7793 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 7794 (build-system meson-build-system)
66d59111
RS
7795 (native-inputs
7796 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7797 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7798 ("intltool" ,intltool)
294ff39d
RW
7799 ("pkg-config" ,pkg-config)
7800 ("vala" ,vala)))
66d59111
RS
7801 (inputs
7802 `(("dconf" ,dconf)
7803 ("gtk+" ,gtk+)
7804 ("libxml2" ,libxml2)))
720aa20f 7805 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
7806 (synopsis "Graphical editor for GNOME's dconf configuration system")
7807 (description
7808 "Dconf-editor is a graphical tool for browsing and editing the dconf
7809configuration system for GNOME. It allows users to configure desktop
7810software that do not provide their own configuration interface.")
7811 (license license:lgpl2.1+)))
7812
96d36f38
AW
7813(define-public gnome-default-applications
7814 (package
7815 (name "gnome-default-applications")
7816 (version "0")
7817 (build-system trivial-build-system)
7818 (source #f)
7819 (propagated-inputs
8ad4f0aa
LC
7820 `(("nautilus" ,nautilus)
7821 ("evince" ,evince)))
96d36f38
AW
7822 (arguments
7823 `(#:modules ((guix build utils))
7824 #:builder
7825 (begin
7826 (use-modules (guix build utils))
7827 (let* ((out (assoc-ref %outputs "out"))
7828 (apps (string-append out "/share/applications")))
7829 (mkdir-p apps)
a6ac679f 7830 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7831 (lambda (port)
7832 (format port "[Default Applications]\n")
8ad4f0aa
LC
7833 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7834 (format port "application/pdf=evince.desktop\n")
7835 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7836 #t))))
7837 (synopsis "Default MIME type associations for the GNOME desktop")
7838 (description
7839 "Given many installed packages which might handle a given MIME type, a
7840user running the GNOME desktop probably has some preferences: for example,
7841that folders be opened by default by the Nautilus file manager, not the Baobab
7842disk usage analyzer. This package establishes that set of default MIME type
7843associations for GNOME.")
7844 (license license:gpl3+)
7845 (home-page #f)))
7846
3f1ed953
RG
7847(define-public libgovirt
7848 (package
7849 (name "libgovirt")
7850 (version "0.3.6")
7851 (source (origin
7852 (method url-fetch)
7853 (uri (string-append "mirror://gnome/sources/" name "/"
7854 (version-major+minor version) "/"
7855 name "-" version ".tar.xz"))
7856 (sha256
7857 (base32
7858 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7859 (build-system glib-or-gtk-build-system)
7860 (native-inputs
7861 `(("gettext" ,gettext-minimal)
7862 ("glib:bin" ,glib "bin")
7863 ("gobject-introspection" ,gobject-introspection)
7864 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7865 ("gtk+:bin" ,gtk+ "bin")
7866 ("pkg-config" ,pkg-config)))
7867 (inputs
7868 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7869 ("librest" ,rest)))
7870 (synopsis "GoVirt Library")
7871 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7872 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7873 (license license:gpl2+)))
7874
8672e5e9
RG
7875(define-public gnome-weather
7876 (package
7877 (name "gnome-weather")
7878 (version "3.34.0")
7879 (source (origin
7880 (method url-fetch)
7881 (uri (string-append "mirror://gnome/sources/" name "/"
7882 (version-major+minor version) "/"
7883 name "-" version ".tar.xz"))
7884 (sha256
7885 (base32
7886 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7887 (build-system meson-build-system)
7888 (native-inputs
7889 `(("gettext" ,gettext-minimal)
7890 ("glib:bin" ,glib "bin")
7891 ("gobject-introspection" ,gobject-introspection)
7892 ("gtk+:bin" ,gtk+ "bin")
7893 ("pkg-config" ,pkg-config)))
7894 (inputs
7895 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7896 ("appstream-glib" ,appstream-glib)
7897 ("geoclue" ,geoclue)
7898 ("gdk-pixbuf" ,gdk-pixbuf)
7899 ("gjs" ,gjs)
7900 ("gnome-desktop" ,gnome-desktop)
7901 ("libgweather" ,libgweather)))
4391fefc 7902 (arguments
2b68ba72
MB
7903 `(#:glib-or-gtk? #t
7904 #:phases
4391fefc
PN
7905 (modify-phases %standard-phases
7906 (add-after 'install 'fix-desktop-file
7907 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7908 ;; See https://issues.guix.gnu.org/issue/39324.
7909 (lambda* (#:key outputs #:allow-other-keys)
7910 (let* ((out (assoc-ref outputs "out"))
7911 (applications (string-append out "/share/applications")))
7912 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
7913 (("Exec=.*") "Exec=gnome-weather\n"))
7914 #t)))
7915 (add-after 'install 'wrap
7916 (lambda* (#:key inputs outputs #:allow-other-keys)
7917 (let ((out (assoc-ref outputs "out"))
7918 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7919 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7920 (wrap-program (string-append out "/bin/gnome-weather")
7921 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7922 #t))))))
8672e5e9
RG
7923 (synopsis "Weather monitoring for GNOME desktop")
7924 (description "GNOME Weather is a small application that allows you to
7925monitor the current weather conditions for your city, or anywhere in the
7926world.")
7927 (home-page "https://wiki.gnome.org/Apps/Weather")
7928 (license license:gpl2+)))
7929
dc050251
SB
7930(define-public gnome
7931 (package
7932 (name "gnome")
7933 (version (package-version gnome-shell))
7934 (source #f)
7935 (build-system trivial-build-system)
e3cfef22 7936 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7937 (propagated-inputs
8d8c6bff 7938 ;; TODO: Add or remove packages according to:
a8cda7f5 7939 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7940 `(
8d8c6bff 7941 ;; GNOME-Core-OS-Services
7922b6f7 7942 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7943 ("network-manager" ,network-manager)
7944 ("packagekit" ,packagekit)
7945 ("upower" ,upower)
7946 ;; GNOME-Core-Shell
7947 ("adwaita-icon-theme" ,adwaita-icon-theme)
7948 ("gdm" ,gdm)
7949 ("glib-networking" ,glib-networking)
7950 ("gnome-backgrounds" ,gnome-backgrounds)
7951 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7952 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7953 ("gnome-control-center" ,gnome-control-center)
7954 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7955 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 7956 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7957 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7958 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7959 ("gnome-session" ,gnome-session)
7960 ("gnome-settings-daemon" ,gnome-settings-daemon)
7961 ("gnome-shell-extensions" ,gnome-shell-extensions)
7962 ("gnome-shell" ,gnome-shell)
7963 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7964 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7965 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7966 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7967 ("gvfs" ,gvfs)
7968 ("mutter" ,mutter)
7969 ("orca" ,orca)
d36fa50f
RG
7970 ("rygel" ,rygel)
7971 ("sushi" ,sushi)
8d8c6bff
RG
7972 ;; GNOME-Core-Utilities
7973 ("baobab" ,baobab)
7974 ("cheese" ,cheese)
ce784e6c
MB
7975 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7976 ;; only works on x86_64, so exclude it on other architectures.
7977 ,@(if (string-prefix? "x86_64" (%current-system))
7978 `(("eog" ,eog))
7979 '())
8d8c6bff
RG
7980 ("epiphany" ,epiphany)
7981 ("evince" ,evince)
7982 ("file-roller" ,file-roller)
7983 ("gedit" ,gedit)
897897bd 7984 ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7985 ("gnome-calculator" ,gnome-calculator)
7986 ("gnome-calendar" ,gnome-calendar)
7987 ("gnome-characters" ,gnome-characters)
7988 ("gnome-clocks" ,gnome-clocks)
7989 ("gnome-contacts" ,gnome-contacts)
7990 ("gnome-disk-utility" ,gnome-disk-utility)
7991 ("gnome-font-viewer" ,gnome-font-viewer)
7992 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7993 ; TODO: ("gnome-music" ,gnome-music)
7994 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7995 ("gnome-screenshot" ,gnome-screenshot)
7996 ("gnome-system-monitor" ,gnome-system-monitor)
7997 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7998 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7999 ("nautilus" ,nautilus)
8000 ("simple-scan" ,simple-scan)
8001 ("totem" ,totem)
7922b6f7
RG
8002 ("yelp" ,yelp)
8003 ;; Others
8004 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
8005 ("gnome-online-accounts" ,gnome-online-accounts)
8006
8007 ;; Packages not part of GNOME proper but that are needed for a good
8008 ;; experience. See <https://bugs.gnu.org/39646>.
8009 ;; XXX: Find out exactly which ones are needed and why.
8010 ("font-cantarell" ,font-cantarell)
8011 ("font-dejavu" ,font-dejavu)
8012 ("at-spi2-core" ,at-spi2-core)
8013 ("dbus" ,dbus)
8014 ("dconf" ,dconf)
8015 ("desktop-file-utils" ,desktop-file-utils)
8016 ("gnome-default-applications" ,gnome-default-applications)
8017 ("gnome-themes-standard" ,gnome-themes-standard)
8018 ("gst-plugins-base" ,gst-plugins-base)
8019 ("gst-plugins-good" ,gst-plugins-good)
8020 ("gucharmap" ,gucharmap)
8021 ("pinentry-gnome3" ,pinentry-gnome3)
8022 ("pulseaudio" ,pulseaudio)
8023 ("shared-mime-info" ,shared-mime-info)
8024 ("system-config-printer" ,system-config-printer)
8025 ("xdg-user-dirs" ,xdg-user-dirs)
8026 ("yelp" ,yelp)
8027 ("zenity" ,zenity)))
fe4e698d 8028 (synopsis "The GNU desktop environment")
dc050251
SB
8029 (home-page "https://www.gnome.org/")
8030 (description
fe4e698d
LC
8031 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8032applications for browsing the web, editing text and images, creating
8033documents and diagrams, playing media, scanning, and much more.")
dc050251 8034 (license license:gpl2+)))
4a526711
DT
8035
8036(define-public byzanz
8037 ;; The last stable release of Byzanz was in 2011, but there have been many
8038 ;; useful commits made to the Byzanz repository since then that it would be
8039 ;; silly to use such an old release.
8040 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8041 (package
8042 (name "byzanz")
8043 (version (string-append "0.2-1." (string-take commit 7)))
8044 (source (origin
8045 (method git-fetch)
8046 (uri (git-reference
5f13bf09 8047 (url "https://git.gnome.org/browse/byzanz")
4a526711 8048 (commit commit)))
5a6527e4 8049 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
8050 (sha256
8051 (base32
8052 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8053 (build-system glib-or-gtk-build-system)
8054 (arguments
8055 '(#:phases
8056 (modify-phases %standard-phases
778d6b52 8057 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
8058 (lambda _
8059 ;; The build system cleverly detects that we're not building from
8060 ;; a release tarball and turns on -Werror for GCC.
8061 ;; Unsurprisingly, there is a warning during compilation that
8062 ;; causes the build to fail unnecessarily, so we remove the flag.
8063 (substitute* '("configure.ac")
8064 (("-Werror") ""))
778d6b52 8065 #t)))))
4a526711
DT
8066 (native-inputs
8067 `(("autoconf" ,autoconf)
8068 ("automake" ,automake)
8069 ("gnome-common" ,gnome-common)
8070 ("intltool" ,intltool)
8071 ("libtool" ,libtool)
8072 ("pkg-config" ,pkg-config)
8073 ("which" ,which)))
8074 (inputs
8075 `(("glib" ,glib)
8076 ("gstreamer" ,gstreamer)
8077 ("gst-plugins-base" ,gst-plugins-base)
8078 ("gtk+" ,gtk+)))
8079 (synopsis "Desktop recording program")
8080 (description "Byzanz is a simple desktop recording program with a
8081command-line interface. It can record part or all of an X display for a
8082specified duration and save it as a GIF encoded animated image file.")
8083 (home-page "https://git.gnome.org/browse/byzanz")
8084 (license license:gpl2+))))
3a9a4c51 8085
0ec171ec
MS
8086(define-public gsound
8087 (package
8088 (name "gsound")
8089 (version "1.0.2")
8090 (source (origin
8091 (method url-fetch)
8092 (uri (string-append "mirror://gnome/sources/" name "/"
8093 (version-major+minor version) "/"
8094 name "-" version ".tar.xz"))
8095 (sha256
8096 (base32
8097 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8098 (build-system glib-or-gtk-build-system)
8099 (native-inputs
8100 `(("pkg-config" ,pkg-config)
8101 ("gobject-introspection" ,gobject-introspection)
8102 ("vala" ,vala)))
8103 (inputs
8104 `(("glib" ,glib)
8105 ("libcanberra" ,libcanberra)))
8106 (home-page "https://wiki.gnome.org/Projects/GSound")
8107 (synopsis "GObject wrapper for libcanberra")
8108 (description
8109 "GSound is a small library for playing system sounds. It's designed to be
8110used via GObject Introspection, and is a thin wrapper around the libcanberra C
8111library.")
8112 (license license:lgpl2.1+)))
8113
3a9a4c51
RS
8114(define-public libzapojit
8115 (package
8116 (name "libzapojit")
8117 (version "0.0.3")
8118 (source (origin
8119 (method url-fetch)
8120 (uri (string-append "mirror://gnome/sources/" name "/"
8121 (version-major+minor version) "/"
8122 name "-" version ".tar.xz"))
8123 (sha256
8124 (base32
8125 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8126 (build-system gnu-build-system)
8127 (native-inputs
8128 `(("gobject-introspection" ,gobject-introspection)
8129 ("intltool" ,intltool)
8130 ("pkg-config" ,pkg-config)))
8131 (inputs
14c297fd 8132 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8133 ("json-glib" ,json-glib)
8134 ("rest" ,rest)))
8135 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8136 (synopsis "Library for accessing SkyDrive and Hotmail")
8137 (description
8138 "Libzapojit is a GLib-based library for accessing online service APIs of
8139Microsoft SkyDrive and Hotmail, using their REST protocols.")
8140 (license license:lgpl2.1+)))
9365ee1c 8141
60e2a9ae
MS
8142(define-public gnome-clocks
8143 (package
8144 (name "gnome-clocks")
feee5ff5 8145 (version "3.34.0")
60e2a9ae
MS
8146 (source (origin
8147 (method url-fetch)
8148 (uri (string-append "mirror://gnome/sources/" name "/"
8149 (version-major+minor version) "/"
8150 name "-" version ".tar.xz"))
8151 (sha256
8152 (base32
feee5ff5 8153 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8154 (build-system meson-build-system)
8155 (arguments
feee5ff5
KK
8156 '(#:glib-or-gtk? #t
8157 #:phases
8158 (modify-phases %standard-phases
8159 (add-after 'unpack 'skip-gtk-update-icon-cache
8160 ;; Don't create 'icon-theme.cache'.
8161 (lambda _
8162 (substitute* "build-aux/post-install.py"
8163 (("gtk-update-icon-cache") "true"))
8164 #t)))))
60e2a9ae
MS
8165 (native-inputs
8166 `(("vala" ,vala)
8167 ("pkg-config" ,pkg-config)
8168 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8169 ("desktop-file-utils" ,desktop-file-utils)
8170 ("gettext" ,gettext-minimal)
8171 ("itstool" ,itstool)))
8172 (inputs
8173 `(("glib" ,glib)
8174 ("gtk+" ,gtk+)
8175 ("gsound" ,gsound)
8176 ("geoclue" ,geoclue)
8177 ("geocode-glib" ,geocode-glib)
8178 ("libgweather" ,libgweather)
8179 ("gnome-desktop" ,gnome-desktop)))
8180 (home-page "https://wiki.gnome.org/Apps/Clocks")
8181 (synopsis "GNOME's clock application")
8182 (description
8183 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8184desktop. It supports world clock, stop watch, alarms, and count down timer.")
8185 (license license:gpl3+)))
8186
3c474897
KY
8187(define-public gnome-calendar
8188 (package
8189 (name "gnome-calendar")
27dd1d76 8190 (version "3.34.2")
3c474897
KY
8191 (source (origin
8192 (method url-fetch)
8193 (uri (string-append "mirror://gnome/sources/" name "/"
8194 (version-major+minor version) "/"
8195 name "-" version ".tar.xz"))
8196 (sha256
8197 (base32
27dd1d76 8198 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8199 (build-system meson-build-system)
8200 (arguments
8201 '(#:glib-or-gtk? #t
8202 ;; gnome-calendar has to be installed before the tests can be run
8203 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8204 #:tests? #f
8205 #:phases
8206 (modify-phases %standard-phases
8207 (add-after 'unpack 'skip-gtk-update-icon-cache
8208 ;; Don't create 'icon-theme.cache'.
8209 (lambda _
8210 (substitute* "build-aux/meson/meson_post_install.py"
8211 (("gtk-update-icon-cache") "true"))
8212 #t)))))
3c474897 8213 (native-inputs
a49d3e37
MS
8214 `(("gettext" ,gettext-minimal)
8215 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8216 ("pkg-config" ,pkg-config)))
8217 (inputs
27cb52a2 8218 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8219 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8220 ("libdazzle" ,libdazzle)
b63c06f1 8221 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8222 ("libgweather" ,libgweather)
8223 ("geoclue" ,geoclue)))
27cb52a2
RG
8224 (propagated-inputs
8225 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8226 (home-page "https://wiki.gnome.org/Apps/Calendar")
8227 (synopsis "GNOME's calendar application")
8228 (description
8229 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8230desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8231 (license license:gpl3+)))
8232
57b14665
MS
8233(define-public gnome-todo
8234 (package
8235 (name "gnome-todo")
9f3c6c88 8236 (version "3.28.1")
57b14665
MS
8237 (source (origin
8238 (method url-fetch)
8239 (uri (string-append "mirror://gnome/sources/" name "/"
8240 (version-major+minor version) "/"
8241 name "-" version ".tar.xz"))
8242 (sha256
8243 (base32
b17b2945
DM
8244 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8245 (patches
8246 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8247 (build-system meson-build-system)
8248 (arguments
8249 '(#:glib-or-gtk? #t
8250 #:phases (modify-phases %standard-phases
8251 (add-after
8252 'install 'wrap-gnome-todo
8253 (lambda* (#:key inputs outputs #:allow-other-keys)
8254 (let ((out (assoc-ref outputs "out"))
8255 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8256 (python-path (getenv "PYTHONPATH")))
8257 (wrap-program (string-append out "/bin/gnome-todo")
8258 ;; XXX: gi plugins are broken.
8259 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8260 ;; For plugins.
8261 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8262 `("PYTHONPATH" ":" prefix (,python-path))))
8263 #t)))))
8264 (native-inputs
8265 `(("gettext" ,gettext-minimal)
8266 ("gobject-introspection" ,gobject-introspection)
8267 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8268 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8269 ("pkg-config" ,pkg-config)))
8270 (inputs
8271 `(("rest" ,rest) ; For Todoist plugin
8272 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8273 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8274 ("libical" ,libical)
8275 ("libpeas" ,libpeas)
8276 ("python-pygobject" ,python-pygobject)
8277 ("evolution-data-server" ,evolution-data-server)
14c297fd 8278 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8279 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8280 (home-page "https://wiki.gnome.org/Apps/Todo")
8281 (synopsis "GNOME's ToDo Application")
8282 (description
8283 "GNOME To Do is a simplistic personal task manager designed to perfectly
8284fit the GNOME desktop.")
8285 (license license:gpl3+)))
8286
ab179eaf
SB
8287(define-public gnome-dictionary
8288 (package
8289 (name "gnome-dictionary")
cf81ddef 8290 (version "3.26.1")
ab179eaf
SB
8291 (source (origin
8292 (method url-fetch)
8293 (uri (string-append "mirror://gnome/sources/" name "/"
8294 (version-major+minor version) "/"
8295 name "-" version ".tar.xz"))
8296 (sha256
8297 (base32
cf81ddef
LC
8298 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8299 (build-system meson-build-system)
2776b5d5
MB
8300 (arguments '(#:glib-or-gtk? #t
8301 #:phases (modify-phases %standard-phases
8302 (add-after 'unpack 'patch-install-script
8303 (lambda _
8304 ;; This script attempts to compile glib schemas
8305 ;; and create an empty MIME database. We do
8306 ;; that elsewhere, so prevent it from running.
8307 (substitute* "build-aux/post-install.sh"
8308 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8309 #t)))))
ab179eaf
SB
8310 (native-inputs
8311 `(("glib:bin" ,glib "bin")
8312 ("gobject-introspection" ,gobject-introspection)
8313 ("intltool" ,intltool)
8314 ("itstool" ,itstool)
8315 ("pkg-config" ,pkg-config)
8316 ("xmllint" ,libxml2)))
8317 (inputs
8318 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8319 ("gtk+" ,gtk+)))
8320 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8321 (synopsis "Look up words in dictionary sources")
8322 (description
8323 "GNOME Dictionary can look for the definition or translation of a word in
8324existing databases over the internet.")
8325 (license license:gpl3+)))
8326
d13f3a03 8327(define-public gnome-tweaks
9365ee1c 8328 (package
d13f3a03 8329 (name "gnome-tweaks")
4add1bae 8330 (version "3.34.0")
9365ee1c
JN
8331 (source (origin
8332 (method url-fetch)
d13f3a03 8333 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8334 (version-major+minor version) "/"
d13f3a03
RW
8335 "gnome-tweaks-" version ".tar.xz"))
8336 (patches
8337 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8338 (sha256
8339 (base32
4add1bae 8340 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 8341 (build-system meson-build-system)
9365ee1c 8342 (arguments
d13f3a03
RW
8343 `(#:glib-or-gtk? #t
8344 #:configure-flags '("-Dlocalstatedir=/tmp"
8345 "-Dsysconfdir=/tmp")
9365ee1c 8346 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8347 ,@%meson-build-system-modules)
8348 #:phases
8349 (modify-phases %standard-phases
4add1bae
KK
8350 (add-after 'unpack 'skip-gtk-update-icon-cache
8351 ;; Don't create 'icon-theme.cache'.
8352 (lambda _
8353 (substitute* "meson-postinstall.py"
8354 (("gtk-update-icon-cache") "true"))
8355 #t))
d13f3a03
RW
8356 (add-after 'install 'wrap
8357 (@@ (guix build python-build-system) wrap))
8358 (add-after 'wrap 'wrap-gi-typelib
8359 (lambda* (#:key inputs outputs #:allow-other-keys)
8360 (let ((out (assoc-ref outputs "out"))
8361 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8362 (wrap-program (string-append out "/bin/gnome-tweaks")
8363 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8364 #t)))))
9365ee1c 8365 (native-inputs
4add1bae 8366 `(("intltool" ,intltool)
9365ee1c
JN
8367 ("pkg-config" ,pkg-config)))
8368 (inputs
c7fc414e
RH
8369 `(("gnome-desktop" ,gnome-desktop)
8370 ("gtk+" ,gtk+)
9365ee1c
JN
8371 ("gobject-introspection" ,gobject-introspection)
8372 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 8373 ("libhandy" ,libhandy)
c7fc414e
RH
8374 ("libnotify" ,libnotify)
8375 ("libsoup" ,libsoup)
8376 ("nautilus" ,nautilus)
8377 ("python" ,python)
8378 ("python-pygobject" ,python-pygobject)))
9365ee1c 8379 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8380 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8381 (description
d13f3a03 8382 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8383GNOME 3. This includes things like the fonts used in user interface elements,
8384alternative user interface themes, changes in window management behavior,
8385GNOME Shell appearance and extension, etc.")
8386 (license license:gpl3+)))
813f814a 8387
32ac717c
DT
8388(define-public gnome-shell-extensions
8389 (package
8390 (name "gnome-shell-extensions")
c7305466 8391 (version "3.34.2")
32ac717c
DT
8392 (source (origin
8393 (method url-fetch)
8394 (uri (string-append "mirror://gnome/sources/" name "/"
8395 (version-major+minor version) "/"
8396 name "-" version ".tar.xz"))
8397 (sha256
8398 (base32
c7305466 8399 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 8400 (build-system meson-build-system)
32ac717c 8401 (arguments
100f625b 8402 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8403 (native-inputs
c9ea8873
LP
8404 `(("glib:bin" ,glib "bin")
8405 ("intltool" ,intltool)
32ac717c
DT
8406 ("pkg-config" ,pkg-config)))
8407 (propagated-inputs
c9ea8873 8408 `(("glib" ,glib)))
32ac717c
DT
8409 (synopsis "Extensions for GNOME Shell")
8410 (description "GNOME Shell extensions modify and extend GNOME Shell
8411functionality and behavior.")
8412 (home-page "https://extensions.gnome.org/")
8413 (license license:gpl3+)))
8414
813f814a
DT
8415(define-public arc-theme
8416 (package
8417 (name "arc-theme")
37781323 8418 (version "20190917")
813f814a 8419 (source (origin
a18f8eaf
BH
8420 (method git-fetch)
8421 (uri (git-reference
8422 (url "https://github.com/NicoHood/arc-theme.git")
8423 (commit version)))
8424 (file-name (git-file-name name version))
813f814a
DT
8425 (sha256
8426 (base32
37781323 8427 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8428 (build-system gnu-build-system)
d88884fa
EF
8429 (arguments
8430 '(#:phases
8431 (modify-phases %standard-phases
8432 ;; autogen.sh calls configure at the end of the script.
8433 (replace 'bootstrap
4690e3a4
MC
8434 (lambda _ (invoke "autoreconf" "-vfi")))
8435 (add-before 'build 'set-home ;placate Inkscape
8436 (lambda _
8437 (setenv "HOME" (getcwd))
8438 #t)))))
813f814a
DT
8439 (native-inputs
8440 `(("autoconf" ,autoconf)
8441 ("automake" ,automake)
a18f8eaf
BH
8442 ("glib" ,glib "bin") ; for glib-compile-resources
8443 ("gnome-shell" ,gnome-shell)
8444 ("gtk+" ,gtk+)
8445 ("inkscape" ,inkscape)
8446 ("optipng" ,optipng)
8447 ("pkg-config" ,pkg-config)
bed24ecf 8448 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8449 (synopsis "A flat GTK+ theme with transparent elements")
8450 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
84512, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8452like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8453 (home-page "https://github.com/horst3180/arc-theme")
8454 ;; No "or later" language found.
a18f8eaf 8455 (license license:gpl3+)))
9987c57c 8456
d935e6a1 8457(define-public faba-icon-theme
9987c57c 8458 (package
d935e6a1 8459 (name "faba-icon-theme")
2eee7ee3 8460 (version "4.3")
d935e6a1
BT
8461 (source
8462 (origin
757e4027
TGR
8463 (method git-fetch)
8464 (uri (git-reference
8465 (url "https://github.com/snwh/faba-icon-theme.git")
8466 (commit (string-append "v" version))))
8467 (file-name (git-file-name name version))
d935e6a1 8468 (sha256
757e4027 8469 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8470 (build-system meson-build-system)
9987c57c 8471 (arguments
82da291a 8472 `(#:phases
9987c57c 8473 (modify-phases %standard-phases
82da291a 8474 (add-before 'configure 'disable-post-install
9987c57c 8475 (lambda _
82da291a
JL
8476 (substitute* "meson.build"
8477 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8478 (native-inputs
8479 `(("autoconf" ,autoconf)
8480 ("automake" ,automake)))
d935e6a1
BT
8481 (synopsis "Faba icon theme")
8482 (description
8483 "Faba is a minimal icon set used as a basis for other themes such as
8484Moka")
8485 (home-page "https://snwh.org/moka")
8486 (license (list license:lgpl3+
8487 license:cc-by-sa4.0))))
8488
9987c57c
DT
8489(define-public moka-icon-theme
8490 (package
8b0e4177 8491 (inherit faba-icon-theme)
9987c57c 8492 (name "moka-icon-theme")
105a3625 8493 (version "5.4.0")
8c3f2170
TGR
8494 (source
8495 (origin
8496 (method git-fetch)
8497 (uri (git-reference
8498 (url "https://github.com/snwh/moka-icon-theme.git")
8499 (commit (string-append "v" version))))
8500 (file-name (git-file-name name version))
8501 (sha256
8502 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8503 (propagated-inputs
8504 ;; Moka is based on Faba by using it as a fallback icon set instead of
8505 ;; bundling it, so we need to add it as a propagated input.
8506 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8507 (synopsis "Moka icon theme")
8508 (description "Moka is a stylized desktop icon set, designed to be clear,
8509simple and consistent.")
fedde43b
BT
8510 (license (list license:gpl3+
8511 license:cc-by-sa4.0))))
6fd8f8d6
DT
8512
8513(define-public arc-icon-theme
8514 (package
8515 (name "arc-icon-theme")
c4180240 8516 (version "20161122")
bbf66cbf
TGR
8517 (source
8518 (origin
8519 (method git-fetch)
8520 (uri (git-reference
8521 (url "https://github.com/horst3180/arc-icon-theme.git")
8522 (commit version)))
8523 (file-name (git-file-name name version))
8524 (sha256
8525 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8526 (build-system gnu-build-system)
9e1ede95
JL
8527 (arguments
8528 `(#:phases
8529 (modify-phases %standard-phases
8530 (add-after 'unpack 'disable-configure-during-bootstrap
8531 (lambda _
8532 (substitute* "autogen.sh"
8533 (("^\"\\$srcdir/configure\".*") ""))
8534 #t)))))
6fd8f8d6
DT
8535 (native-inputs
8536 `(("autoconf" ,autoconf)
8537 ("automake" ,automake)))
8538 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8539 (propagated-inputs
8540 `(("moka-icon-theme" ,moka-icon-theme)))
8541 (synopsis "Arc icon theme")
8542 (description "The Arc icon theme provides a set of icons matching the
8543style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8544the Moka icon theme.")
8545 (home-page "https://github.com/horst3180/arc-icon-theme")
8546 (license license:gpl3+)))
6064a4e8
LF
8547
8548(define-public folks
8549 (package
8550 (name "folks")
fd11f6f3 8551 (version "0.13.1")
6064a4e8
LF
8552 (source (origin
8553 (method url-fetch)
8554 (uri (string-append
e5f4796e 8555 "mirror://gnome/sources/folks/"
6064a4e8 8556 (version-major+minor version) "/"
e5f4796e 8557 "folks-" version ".tar.xz"))
6064a4e8
LF
8558 (sha256
8559 (base32
fd11f6f3
KK
8560 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8561 (build-system meson-build-system)
8562 (arguments
8563 '(#:phases
8564 (modify-phases %standard-phases
8565 (add-after 'unpack 'skip-gtk-update-icon-cache
8566 ;; Don't create 'icon-theme.cache'.
8567 (lambda _
8568 (substitute* "meson_post_install.py"
8569 (("gtk-update-icon-cache") "true"))
8570 #t)))))
6064a4e8
LF
8571 (inputs
8572 `(("bdb" ,bdb)
8573 ("dbus-glib" ,dbus-glib)
8574 ("evolution-data-server" ,evolution-data-server)
8575 ("glib" ,glib)
8576 ("libgee" ,libgee)
fd11f6f3 8577 ("readline" ,readline)
6064a4e8
LF
8578 ("telepathy-glib" ,telepathy-glib)))
8579 (native-inputs
fd11f6f3
KK
8580 `(("glib:bin" ,glib "bin")
8581 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
8582 ("intltool" ,intltool)
8583 ("pkg-config" ,pkg-config)
8584 ("vala" ,vala)))
8585 (synopsis "Library to aggregate data about people")
8586 (description "Libfolks is a library that aggregates information about people
8587from multiple sources (e.g., Telepathy connection managers for IM contacts,
8588Evolution Data Server for local contacts, libsocialweb for web service contacts,
8589etc.) to create metacontacts. It's written in Vala, which generates C code when
8590compiled.")
8591 (home-page "https://wiki.gnome.org/Projects/Folks")
8592 (license license:lgpl2.1+)))
01ea778f
LF
8593
8594(define-public gfbgraph
8595 (package
8596 (name "gfbgraph")
8597 (version "0.2.3")
8598 (source (origin
8599 (method url-fetch)
8600 (uri (string-append
237d4cf7 8601 "mirror://gnome/sources/gfbgraph/"
01ea778f 8602 (version-major+minor version) "/"
237d4cf7 8603 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8604 (sha256
8605 (base32
8606 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8607 (build-system glib-or-gtk-build-system)
8608 (arguments
8609 `(#:tests? #f ; Tests appear to require the network.
8610 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8611 #:configure-flags '("--disable-gtk-doc"
8612 "--disable-static"
8613 "--enable-introspection")))
8614 (native-inputs
8615 `(("pkg-config" ,pkg-config)
8616 ("gobject-introspection" ,gobject-introspection)))
8617 (inputs
8618 `(("json-glib" ,json-glib)
14c297fd 8619 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8620 ("rest" ,rest)))
8621 (synopsis "GLib/GObject wrapper for the Facebook API")
8622 (description "This library allows you to use the Facebook API from
8623GLib/GObject code.")
8624 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8625 (license license:lgpl2.1+)))
3920868c 8626
8627(define-public libgnomekbd
8628 (package
8629 (name "libgnomekbd")
70f2b0f9 8630 (version "3.26.1")
3920868c 8631 (source (origin
8632 (method url-fetch)
d47fa82d 8633 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8634 (version-major+minor version) "/"
d47fa82d 8635 "libgnomekbd-" version ".tar.xz"))
3920868c 8636 (sha256
8637 (base32
70f2b0f9 8638 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8639 (build-system gnu-build-system)
8640 (native-inputs
8641 `(("pkg-config" ,pkg-config)
8642 ("glib" ,glib "bin")
8643 ("intltool" ,intltool)))
8644 (propagated-inputs
8645 ;; Referred to in .h files and .pc.
8646 `(("glib" ,glib)
8647 ("gtk+" ,gtk+)
8648 ("libxklavier" ,libxklavier)))
8649 (home-page "https://www.gnome.org")
8650 (synopsis "GNOME keyboard configuration library")
8651 (description
8652 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8653environment, which can notably display keyboard layouts.")
8654 (license license:lgpl2.0+)))
85327d0d 8655
8656;;; This package is no longer maintained:
8657;;; https://wiki.gnome.org/Attic/LibUnique
8658;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8659;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8660(define-public libunique
8661 (package
8662 (name "libunique")
8663 (version "3.0.2")
8664 (source (origin
8665 (method url-fetch)
8666 (uri (string-append "mirror://gnome/sources/" name "/"
8667 (version-major+minor version) "/"
8668 name "-" version ".tar.xz"))
8669 (sha256
8670 (base32
8671 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8672 (build-system glib-or-gtk-build-system)
8673 (arguments
8674 `(#:configure-flags '("--disable-static"
8675 "--disable-dbus" ; use gdbus
8676 "--enable-introspection")))
8677 (native-inputs
8678 `(("pkg-config" ,pkg-config)
8679 ("gobject-introspection" ,gobject-introspection)
8680 ("glib:bin" ,glib "bin")
8681 ("gtk-doc" ,gtk-doc)))
8682 (propagated-inputs
8683 ;; Referred to in .h files and .pc.
8684 `(("gtk+" ,gtk+)))
8685 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8686 (synopsis "Library for writing single instance applications")
8687 (description
8688 "Libunique is a library for writing single instance applications. If you
8689launch a single instance application twice, the second instance will either just
8690quit or will send a message to the running instance. Libunique makes it easy to
8691write this kind of application, by providing a base class, taking care of all
8692the IPC machinery needed to send messages to a running instance, and also
8693handling the startup notification side.")
8694 (license license:lgpl2.1+)))
54021cd8
RS
8695
8696(define-public gnome-calculator
8697 (package
8698 (name "gnome-calculator")
4cb09502 8699 (version "3.34.1")
54021cd8
RS
8700 (source
8701 (origin
8702 (method url-fetch)
8703 (uri (string-append "mirror://gnome/sources/" name "/"
8704 (version-major+minor version) "/"
8705 name "-" version ".tar.xz"))
8706 (sha256
8707 (base32
4cb09502 8708 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8709 (build-system meson-build-system)
8710 (arguments '(#:glib-or-gtk? #t))
54021cd8 8711 (native-inputs
4cb09502
MB
8712 `(("gettext" ,gettext-minimal)
8713 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8714 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8715 ("itstool" ,itstool)
2d475910 8716 ("vala" ,vala)
54021cd8
RS
8717 ("pkg-config" ,pkg-config)))
8718 (inputs
112e9083 8719 `(("glib" ,glib)
07ace641 8720 ("gtksourceview" ,gtksourceview)
4cb09502 8721 ("libgee" ,libgee)
54021cd8 8722 ("libsoup" ,libsoup)
112e9083 8723 ("libxml2" ,libxml2)
2c2da7ec 8724 ("mpc" ,mpc)
54021cd8
RS
8725 ("mpfr" ,mpfr)))
8726 (home-page "https://wiki.gnome.org/Apps/Calculator")
8727 (synopsis "Desktop calculator")
8728 (description
8729 "Calculator is an application that solves mathematical equations and
8730is suitable as a default application in a Desktop environment.")
8731 (license license:gpl3)))
0bd69759
RS
8732
8733(define-public xpad
8734 (package
8735 (name "xpad")
c85626bb 8736 (version "5.1.0")
0bd69759
RS
8737 (source
8738 (origin
8739 (method url-fetch)
08fda9c6
R
8740 (uri (string-append "https://launchpad.net/xpad/trunk/"
8741 version "/+download/"
0bd69759
RS
8742 name "-" version ".tar.bz2"))
8743 (sha256
8744 (base32
c85626bb 8745 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8746 (build-system gnu-build-system)
8747 (native-inputs
08fda9c6
R
8748 `(("autoconf" ,autoconf)
8749 ("automake" ,automake)
8750 ("gtk+:bin" ,gtk+ "bin")
8751 ("intltool" ,intltool)
0bd69759
RS
8752 ("pkg-config" ,pkg-config)))
8753 (inputs
c72647fb 8754 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8755 ("libsm" ,libsm)))
8756 (home-page "https://wiki.gnome.org/Apps/Xpad")
8757 (synopsis "Virtual sticky note")
8758 (description
8759 "Xpad is a sticky note that strives to be simple, fault tolerant,
8760and customizable. Xpad consists of independent pad windows, each is
8761basically a text box in which notes can be written.")
8762 (license license:gpl3+)))
3ad7dce1
RS
8763
8764(define-public gucharmap
c60063ea
RW
8765 (let ((unicode-files
8766 '(("Blocks.txt"
1f8b5515 8767 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8768 ("DerivedAge.txt"
1f8b5515 8769 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8770 ("NamesList.txt"
1f8b5515 8771 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8772 ("Scripts.txt"
1f8b5515 8773 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8774 ("UnicodeData.txt"
1f8b5515 8775 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8776 ("Unihan.zip"
1f8b5515 8777 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8778 (package
8779 (name "gucharmap")
1f8b5515 8780 (version "12.0.1")
c60063ea
RW
8781 (source
8782 (origin
8783 (method url-fetch)
8784 (uri (string-append "mirror://gnome/sources/" name "/"
8785 (version-major+minor version) "/"
8786 name "-" version ".tar.xz"))
8787 (sha256
8788 (base32
1f8b5515 8789 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8790 (build-system glib-or-gtk-build-system)
8791 (arguments
8792 `(#:modules ((ice-9 match)
8793 (guix build glib-or-gtk-build-system)
8794 (guix build utils))
8795 #:configure-flags
8796 (list "--with-unicode-data=../unicode-data")
8797 #:phases
8798 (modify-phases %standard-phases
8799 (add-after 'unpack 'prepare-unicode-data
8800 (lambda* (#:key inputs #:allow-other-keys)
8801 (mkdir-p "../unicode-data")
8802 (with-directory-excursion "../unicode-data"
8803 (for-each (match-lambda
8804 ((file _)
8805 (install-file (assoc-ref inputs file) ".")))
8806 ',unicode-files))
8807 #t)))))
8808 (native-inputs
8809 `(("desktop-file-utils" ,desktop-file-utils)
8810 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8811 ("gobject-introspection" ,gobject-introspection)
8812 ("intltool" ,intltool)
8813 ("itstool" ,itstool)
8814 ("pkg-config" ,pkg-config)
8815 ,@(map (match-lambda
8816 ((file hash)
8817 `(,file
8818 ,(origin
8819 (method url-fetch)
8820 (uri (string-append
1f8b5515 8821 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8822 file))
8823 (sha256 (base32 hash))))))
8824 unicode-files)
8825 ("unzip" ,unzip)))
8826 (inputs
8827 `(("gtk+" ,gtk+)
8828 ("xmllint" ,libxml2)))
8829 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8830 (synopsis "Unicode character picker and font browser")
8831 (description
8832 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8833characters and categories for the installed fonts, and to examine their
8834detailed properties. It is an easy way to find the character you might
8835only know by its Unicode name or code point.")
c60063ea 8836 (license license:gpl3+))))
04ce840a
RS
8837
8838(define-public bluefish
8839 (package
8840 (name "bluefish")
290fe81d 8841 (version "2.2.11")
04ce840a
RS
8842 (source
8843 (origin
8844 (method url-fetch)
8845 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8846 "bluefish-" version ".tar.gz"))
04ce840a 8847 (sha256
290fe81d 8848 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8849 (build-system gnu-build-system)
8850 (native-inputs
8851 `(("desktop-file-utils" ,desktop-file-utils)
8852 ("intltool" ,intltool)
8853 ("pkg-config" ,pkg-config)))
8854 (inputs
8855 `(("enchant" ,enchant)
8856 ("gtk+" ,gtk+)
290fe81d 8857 ("python" ,python-wrapper)
04ce840a
RS
8858 ("xmllint" ,libxml2)
8859 ("gucharmap" ,gucharmap)))
8860 (home-page "http://bluefish.openoffice.nl")
8861 (synopsis "Web development studio")
8862 (description
8863 "Bluefish is an editor targeted towards programmers and web developers,
8864with many options to write web sites, scripts and other code.
8865Bluefish supports many programming and markup languages.")
8866 (license license:gpl3+)))
1f6a73ee
RS
8867
8868(define-public gnome-system-monitor
8869 (package
8870 (name "gnome-system-monitor")
083cffaf 8871 (version "3.32.1")
1f6a73ee
RS
8872 (source
8873 (origin
8874 (method url-fetch)
8875 (uri (string-append "mirror://gnome/sources/" name "/"
8876 (version-major+minor version) "/"
8877 name "-" version ".tar.xz"))
8878 (sha256
8879 (base32
083cffaf 8880 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8881 (build-system meson-build-system)
8882 (arguments
8883 '(#:glib-or-gtk? #t
8884 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8885 (native-inputs
8886 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8887 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8888 ("intltool" ,intltool)
8889 ("itstool" ,itstool)
8890 ("libgtop" ,libgtop)
4985d9aa 8891 ("polkit" ,polkit)
1f6a73ee
RS
8892 ("pkg-config" ,pkg-config)))
8893 (inputs
8894 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8895 ("gtk+" ,gtk+)
8896 ("gtkmm" ,gtkmm)
8897 ("librsvg" ,librsvg)
4985d9aa
RW
8898 ("libxml2" ,libxml2)
8899 ("libwnck" ,libwnck)))
1f6a73ee
RS
8900 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8901 (synopsis "Process viewer and system resource monitor for GNOME")
8902 (description
8903 "GNOME System Monitor is a GNOME process viewer and system monitor with
8904an attractive, easy-to-use interface. It has features, such as a tree view
8905for process dependencies, icons for processes, the ability to hide processes,
8906graphical time histories of CPU/memory/swap usage and the ability to
8907kill/reinice processes.")
8908 (license license:gpl2+)))
3e00ac47
SB
8909
8910(define-public python-pyatspi
8911 (package
8912 (name "python-pyatspi")
4f937a32 8913 (version "2.34.0")
3e00ac47
SB
8914 (source (origin
8915 (method url-fetch)
8916 (uri (string-append
8917 "mirror://gnome/sources/pyatspi/"
8918 (version-major+minor version)
8919 "/pyatspi-" version ".tar.xz"))
8920 (sha256
8921 (base32
4f937a32 8922 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8923 (build-system gnu-build-system)
b95af3f6
JL
8924 (arguments
8925 `(#:phases
8926 (modify-phases %standard-phases
8927 (add-before 'build 'fix-atk-load
8928 (lambda _
8929 (substitute* "pyatspi/__init__.py"
8930 (("from gi.repository import Atspi")
8931 "gi.require_version('Gtk', '3.0')
8932from gi.repository import Gtk
8933from gi.repository import Atspi"))
8934 #t)))))
3e00ac47
SB
8935 (native-inputs
8936 `(("pkg-config" ,pkg-config)))
8937 (inputs
06fe35cf
CB
8938 `(("python" ,python)))
8939 (propagated-inputs
8940 `(("python-pygobject" ,python-pygobject)))
3e00ac47
SB
8941 (synopsis "Python client bindings for D-Bus AT-SPI")
8942 (home-page "https://wiki.linuxfoundation.org/accessibility\
8943/atk/at-spi/at-spi_on_d-bus")
8944 (description
8945 "This package includes a python client library for the AT-SPI D-Bus
8946accessibility infrastructure.")
8947 (license license:lgpl2.0)
8948 (properties '((upstream-name . "pyatspi")))))
53201c0d 8949
5d31933e
CB
8950(define-public python2-pyatspi
8951 (package
8952 (inherit python-pyatspi)
8953 (name "python2-pyatspi")
8954 (inputs
06fe35cf
CB
8955 `(("python" ,python-2)))
8956 (propagated-inputs
8957 `(("python-pygobject" ,python2-pygobject)))))
5d31933e 8958
53201c0d
SB
8959(define-public orca
8960 (package
8961 (name "orca")
30e76da1 8962 (version "3.34.1")
53201c0d
SB
8963 (source (origin
8964 (method url-fetch)
8965 (uri (string-append
8966 "mirror://gnome/sources/" name "/"
8967 (version-major+minor version) "/"
8968 name "-" version ".tar.xz"))
8969 (sha256
8970 (base32
30e76da1 8971 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
8972 (build-system glib-or-gtk-build-system)
8973 (arguments
8974 '(#:phases
8975 (modify-phases %standard-phases
8976 (add-before 'configure 'qualify-xkbcomp
8977 (lambda* (#:key inputs #:allow-other-keys)
8978 (let ((xkbcomp (string-append
8979 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8980 (substitute* "src/orca/orca.py"
8981 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8982 #t))
8983 (add-after 'install 'wrap-orca
8984 (lambda* (#:key outputs #:allow-other-keys)
8985 (let* ((out (assoc-ref outputs "out"))
8986 (prog (string-append out "/bin/orca")))
8987 (wrap-program prog
8988 `("GI_TYPELIB_PATH" ":" prefix
8989 (,(getenv "GI_TYPELIB_PATH")))
8990 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8991 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8992 `("PYTHONPATH" ":" prefix
8993 (,(getenv "PYTHONPATH")))))
8994 #t)))))
8995 (native-inputs
8996 `(("intltool" ,intltool)
8997 ("itstool" ,itstool)
8998 ("pkg-config" ,pkg-config)
8999 ("xmllint" ,libxml2)))
9000 (inputs
9001 `(("at-spi2-atk" ,at-spi2-atk)
9002 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9003 ("gstreamer" ,gstreamer)
9004 ("gst-plugins-base" ,gst-plugins-base)
9005 ("gst-plugins-good" ,gst-plugins-good)
9006 ("gtk+" ,gtk+)
9007 ("python" ,python)
9008 ("python-pygobject" ,python-pygobject)
9009 ("python-pyatspi" ,python-pyatspi)
9010 ("python-speechd" ,speech-dispatcher)
9011 ("xkbcomp" ,xkbcomp)))
9012 (synopsis
9013 "Screen reader for individuals who are blind or visually impaired")
9014 (home-page "https://wiki.gnome.org/Projects/Orca")
9015 (description
9016 "Orca is a screen reader that provides access to the graphical desktop
9017via speech and refreshable braille. Orca works with applications and toolkits
9018that support the Assistive Technology Service Provider Interface (AT-SPI).")
9019 (license license:lgpl2.1+)))
411ba511
LC
9020
9021(define-public gspell
9022 (package
9023 (name "gspell")
7a6bbe9b 9024 (version "1.8.2")
411ba511
LC
9025 (source (origin
9026 (method url-fetch)
9027 (uri (string-append "mirror://gnome/sources/" name "/"
9028 (version-major+minor version) "/"
9029 name "-" version ".tar.xz"))
9030 (sha256
9031 (base32
7a6bbe9b 9032 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
9033 (patches (search-patches "gspell-dash-test.patch"))))
9034 (build-system glib-or-gtk-build-system)
9035 (arguments
d0f50164 9036 '(#:configure-flags (list "--enable-vala")
9037 #:phases
411ba511
LC
9038 (modify-phases %standard-phases
9039 (add-before 'check 'pre-check
9040 (lambda* (#:key inputs #:allow-other-keys)
9041 ;; Tests require a running X server.
9042 (system "Xvfb :1 &")
9043 (setenv "DISPLAY" ":1")
9044
9045 ;; For the missing /etc/machine-id.
9046 (setenv "DBUS_FATAL_WARNINGS" "0")
9047
9048 ;; Allow Enchant and its Aspell backend to find the en_US
9049 ;; dictionary.
9050 (setenv "ASPELL_DICT_DIR"
9051 (string-append (assoc-ref inputs "aspell-dict-en")
9052 "/lib/aspell"))
9053 #t)))))
9054 (inputs
eccd35be 9055 `(("gtk+" ,gtk+)
a801ae4c
TGR
9056 ("glib" ,glib)
9057 ("iso-codes" ,iso-codes)))
411ba511
LC
9058 (native-inputs
9059 `(("glib" ,glib "bin")
26ba3f07 9060 ("gobject-introspection" ,gobject-introspection)
411ba511 9061 ("pkg-config" ,pkg-config)
d0f50164 9062 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
9063 ("xmllint" ,libxml2)
9064
9065 ;; For tests.
a801ae4c 9066 ("aspell-dict-en" ,aspell-dict-en)
ff337525 9067 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 9068 (propagated-inputs
9b1bb757 9069 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
9070 (home-page "https://wiki.gnome.org/Projects/gspell")
9071 (synopsis "GNOME's alternative spell checker")
9072 (description
9073 "gspell provides a flexible API to add spell-checking to a GTK+
9074application. It provides a GObject API, spell-checking to text entries and
9075text views, and buttons to choose the language.")
9076 (license license:gpl2+)))
d1d739fa
CM
9077
9078(define-public gnome-planner
9079 (package
9080 (name "gnome-planner")
9081 (version "0.14.6")
9082 (source (origin
9083 (method url-fetch)
9084 (uri (string-append "mirror://gnome/sources/planner/"
9085 (version-major+minor version) "/planner-"
9086 version ".tar.xz"))
9087 (sha256
9088 (base32
9089 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9090 (build-system glib-or-gtk-build-system)
9091 (arguments
9092 ;; Disable the Python bindings because the Planner program functions
9093 ;; without them, and (as of 2017-06-13) we have not packaged all of
9094 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
9095 `(#:configure-flags
9096 (list "--disable-python"
9097 ,@(if (string=? "aarch64-linux" (%current-system))
9098 '("--build=aarch64-unknown-linux-gnu")
9099 '()))))
d1d739fa
CM
9100 (inputs
9101 `(("libgnomecanvas" ,libgnomecanvas)
9102 ("libgnomeui" ,libgnomeui)
9103 ("libglade" ,libglade)
9104 ("gnome-vfs" ,gnome-vfs)
9105 ("gconf" ,gconf)
9106 ("libxml2" ,libxml2)
9107 ("libxslt" ,libxslt)
9108 ("gtk+" ,gtk+)
9109 ("glib" ,glib)))
9110 (native-inputs
9111 `(("intltool" ,intltool)
9112 ("scrollkeeper" ,scrollkeeper)
9113 ("pkg-config" ,pkg-config)))
9114 (home-page "https://wiki.gnome.org/Apps/Planner")
9115 (synopsis "Project management software for the GNOME desktop")
9116 (description
9117 "GNOME Planner is a project management tool based on the Work Breakdown
9118Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9119the resources, tasks, and constraints that you define, Planner generates
9120various views into a project. For example, Planner can show a Gantt chart of
9121the project. It can show a detailed summary of tasks including their
9122duration, cost, and current progress. It can also show a report of resource
9123utilization that highlights under-utilized and over-utilized resources. These
9124views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9125 (license license:gpl2+)))
64fce637
RS
9126
9127(define-public lollypop
9128 (package
9129 (name "lollypop")
24b5d8f7 9130 (version "1.2.32")
64fce637
RS
9131 (source
9132 (origin
9133 (method url-fetch)
24b5d8f7 9134 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9135 "lollypop-" version ".tar.xz"))
64fce637 9136 (sha256
24b5d8f7 9137 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9138 (build-system meson-build-system)
64fce637 9139 (arguments
7a9543d7
TGR
9140 `(#:imported-modules
9141 (,@%meson-build-system-modules
9142 (guix build python-build-system))
9143 #:modules
9144 ((guix build meson-build-system)
9145 ((guix build python-build-system) #:prefix python:)
9146 (guix build utils))
aa498fc0 9147 #:glib-or-gtk? #t
7a9543d7 9148 #:tests? #f ; no test suite
5fc9b6c1
EF
9149 #:phases
9150 (modify-phases %standard-phases
5fc9b6c1
EF
9151 (add-after 'install 'wrap-program
9152 (lambda* (#:key outputs #:allow-other-keys)
9153 (let ((out (assoc-ref outputs "out"))
9154 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9155 (wrap-program (string-append out "/bin/lollypop")
9156 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9157 #t))
8ac8b3b3 9158 (add-after 'install 'wrap-python
7a9543d7 9159 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9160 (native-inputs
9161 `(("intltool" ,intltool)
9162 ("itstool" ,itstool)
aa498fc0
TD
9163 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9164 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9165 ("pkg-config" ,pkg-config)))
9166 (inputs
9167 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9168 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9169 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9170 ("libnotify" ,libnotify)
9171 ("libsecret" ,libsecret)
9172 ("libsoup" ,libsoup)
9173 ("python" ,python)
9174 ("python-beautifulsoup4" ,python-beautifulsoup4)
9175 ("python-gst" ,python-gst)
d029afdd 9176 ("python-pil" ,python-pillow)
64fce637 9177 ("python-pycairo" ,python-pycairo)
cc9c83c5 9178 ("python-pygobject" ,python-pygobject)
64fce637
RS
9179 ("python-pylast" ,python-pylast)
9180 ("totem-pl-parser" ,totem-pl-parser)
9181 ("webkitgtk" ,webkitgtk)))
9182 (propagated-inputs
9183 `(;; gst-plugins-base is required to start Lollypop,
9184 ;; the others are required to play streaming.
64fce637
RS
9185 ("gst-plugins-good" ,gst-plugins-good)
9186 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9187 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9188 (synopsis "GNOME music playing application")
9189 (description
9190 "Lollypop is a music player designed to play well with GNOME desktop.
9191Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9192from artists and tracks from the web. It also fetches cover artworks
9193automatically and it can stream songs from online music services and charts.")
9194 (license license:gpl3+)))
d831d49d
AW
9195
9196(define-public gnome-video-effects
9197 (package
9198 (name "gnome-video-effects")
9199 (version "0.4.3")
9200 (source (origin
9201 (method url-fetch)
9202 (uri (string-append "mirror://gnome/sources/" name "/"
9203 (version-major+minor version) "/" name "-"
9204 version ".tar.xz"))
9205 (sha256
9206 (base32
9207 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9208 (build-system glib-or-gtk-build-system)
9209 (arguments
9210 `(#:out-of-source? #f))
9211 (native-inputs
9212 `(("glib:bin" ,glib "bin")
9213 ("intltool" ,intltool)
9214 ("gettext" ,gettext-minimal)
9215 ("pkg-config" ,pkg-config)))
9216 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9217 (synopsis "Video effects for Cheese and other GNOME applications")
9218 (description
9219 "A collection of GStreamer video filters and effects to be used in
9220photo-booth-like software, such as Cheese.")
9221 (license license:gpl2+)))
3511c780
AW
9222
9223(define-public cheese
9224 (package
9225 (name "cheese")
3a7e066f 9226 (version "3.34.0")
3511c780
AW
9227 (source (origin
9228 (method url-fetch)
9229 (uri (string-append "mirror://gnome/sources/" name "/"
9230 (version-major+minor version) "/" name "-"
9231 version ".tar.xz"))
9232 (sha256
9233 (base32
3a7e066f 9234 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9235 (arguments
3a7e066f
KK
9236 `(#:glib-or-gtk? #t
9237 ;; Tests require GDK.
9238 #:tests? #f
3511c780
AW
9239 #:phases
9240 (modify-phases %standard-phases
3a7e066f 9241 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9242 (lambda _
9243 ;; Don't create 'icon-theme.cache'
3a7e066f 9244 (substitute* "meson_post_install.py"
3511c780
AW
9245 (("gtk-update-icon-cache") (which "true")))
9246 #t))
9247 (add-after 'install 'wrap-cheese
9248 (lambda* (#:key inputs outputs #:allow-other-keys)
9249 (let ((out (assoc-ref outputs "out"))
9250 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9251 (wrap-program (string-append out "/bin/cheese")
9252 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9253 #t)))))
3a7e066f 9254 (build-system meson-build-system)
3511c780 9255 (native-inputs
3a7e066f
KK
9256 `(("docbook-xsl" ,docbook-xsl)
9257 ("glib:bin" ,glib "bin")
9258 ("gtk-doc" ,gtk-doc)
3511c780
AW
9259 ("intltool" ,intltool)
9260 ("itstool" ,itstool)
9261 ("libxml2" ,libxml2)
3a7e066f 9262 ("libxslt" ,libxslt)
3511c780
AW
9263 ("pkg-config" ,pkg-config)
9264 ("vala" ,vala)))
9265 (propagated-inputs
6a19f03e
RW
9266 `(("gnome-video-effects" ,gnome-video-effects)
9267 ("clutter" ,clutter)
3511c780
AW
9268 ("clutter-gst" ,clutter-gst)
9269 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9270 ("libcanberra" ,libcanberra)
3511c780
AW
9271 ("gdk-pixbuf" ,gdk-pixbuf)
9272 ("glib" ,glib)
6a19f03e
RW
9273 ("gstreamer" ,gstreamer)))
9274 (inputs
9275 `(("gnome-desktop" ,gnome-desktop)
3511c780 9276 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9277 ("gst-plugins-base" ,gst-plugins-base)
9278 ("gst-plugins-bad" ,gst-plugins-bad)
9279 ("gtk+" ,gtk+)
3511c780
AW
9280 ("libx11" ,libx11)
9281 ("libxtst" ,libxtst)))
9282 (home-page "https://wiki.gnome.org/Apps/Cheese")
9283 (synopsis "Webcam photo booth software for GNOME")
9284 (description
9285 "Cheese uses your webcam to take photos and videos. Cheese can also
9286apply fancy special effects and lets you share the fun with others.")
9287 (license license:gpl2+)))
3c5dbd2b 9288
9289(define-public sound-juicer
9290 (package
9291 (name "sound-juicer")
9292 (version "3.24.0")
9293 (source
9294 (origin
9295 (method url-fetch)
9296 (uri (string-append "mirror://gnome/sources/" name "/"
9297 (version-major+minor version) "/"
9298 name "-" version ".tar.xz"))
9299 (sha256
9300 (base32
9301 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9302 (build-system glib-or-gtk-build-system)
9303 (native-inputs
9304 `(("desktop-file-utils" ,desktop-file-utils)
9305 ("intltool" ,intltool)
9306 ("itstool" ,itstool)
9307 ("pkg-config" ,pkg-config)
9308 ("xmllint" ,libxml2)))
9309 (inputs
9310 `(("gtk+" ,gtk+)
9311 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9312 ("gstreamer" ,gstreamer)
9313 ("gst-plugins-base" ,gst-plugins-base)
9314 ("gst-plugins-good" ,gst-plugins-good)
9315 ("iso-codes" ,iso-codes)
9316 ("libbrasero-media3" ,brasero)
9317 ("libcanberra" ,libcanberra)
9318 ("libdiscid" ,libdiscid)
9319 ("libmusicbrainz" ,libmusicbrainz)
9320 ("neon" ,neon)))
9321 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9322 (synopsis "Audio music cd ripper")
9323 (description "Sound Juicer extracts audio from compact discs and convert it
9324into audio files that a personal computer or digital audio player can play.
9325It supports ripping to any audio codec supported by a GStreamer plugin, such as
9326mp3, Ogg Vorbis and FLAC")
9327 (license license:gpl2+)))
4e3fdeb7 9328
0d3f1708
CB
9329(define-public soundconverter
9330 (package
9331 (name "soundconverter")
7f4b45a3 9332 (version "3.0.2")
0d3f1708
CB
9333 (source
9334 (origin
9335 (method url-fetch)
9336 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9337 version "/+download/"
9338 "soundconverter-" version ".tar.xz"))
9339
9340 (sha256
7f4b45a3 9341 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
9342 (build-system glib-or-gtk-build-system)
9343 (arguments
9344 `(#:imported-modules ((guix build python-build-system)
9345 (guix build glib-or-gtk-build-system)
9346 ,@%gnu-build-system-modules)
9347
9348 #:modules ((guix build glib-or-gtk-build-system)
9349 (guix build utils)
9350 ((guix build gnu-build-system) #:prefix gnu:)
9351 ((guix build python-build-system) #:prefix python:))
9352
9353 #:phases
9354 (modify-phases %standard-phases
0d3f1708
CB
9355 (add-after 'install 'wrap-soundconverter-for-python
9356 (assoc-ref python:%standard-phases 'wrap))
9357 (add-after 'install 'wrap-soundconverter
9358 (lambda* (#:key inputs outputs #:allow-other-keys)
9359 (let ((out (assoc-ref outputs "out"))
9360 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9361 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9362 (wrap-program (string-append out "/bin/soundconverter")
9363 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9364 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9365 #t)))))
9366 (native-inputs
9367 `(("intltool" ,intltool)
9368 ("pkg-config" ,pkg-config)
9369 ("glib:bin" ,glib "bin")))
9370 (inputs
9371 `(("gtk+" ,gtk+)
9372 ("python" ,python)
9373 ("python-pygobject" ,python-pygobject)
9374 ("gstreamer" ,gstreamer)
9375 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9376 (home-page "https://soundconverter.org/")
0d3f1708
CB
9377 (synopsis "Convert between audio formats with a graphical interface")
9378 (description
9379 "SoundConverter supports converting between many audio formats including
9380Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9381configurable file renaming. ")
9382 (license license:gpl3)))
9383
4e3fdeb7 9384(define-public workrave
89f2d736
TGR
9385 (package
9386 (name "workrave")
52fc6508 9387 (version "1.10.42")
89f2d736
TGR
9388 (source
9389 (origin
9390 (method git-fetch)
9391 (uri (git-reference
9392 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9393 (commit (string-append "v" (string-map
9394 (match-lambda (#\. #\_) (chr chr))
9395 version)))))
89f2d736
TGR
9396 (file-name (git-file-name name version))
9397 (sha256
52fc6508 9398 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9399 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9400 (arguments
9401 ;; The only tests are maintainer tests (in po/), which fail.
9402 `(#:tests? #f))
d1c96847
MC
9403 (inputs `(("glib" ,glib)
9404 ("gtk+" ,gtk+)
9405 ("gdk-pixbuf" ,gdk-pixbuf)
9406 ("gtkmm" ,gtkmm)
9407 ("glibmm" ,glibmm)
9408 ("libx11" ,libx11)
9409 ("libxtst" ,libxtst)
9410 ("dconf" ,dconf)
9411 ("libice" ,libice)
9412 ("libsm" ,libsm)
9413 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9414 (native-inputs `(("boost" ,boost)
89f2d736 9415 ("pkg-config" ,pkg-config)
f2d97d57 9416 ("gettext" ,gettext-minimal)
89f2d736
TGR
9417 ("autoconf" ,autoconf)
9418 ("autoconf-archive" , autoconf-archive)
9419 ("automake" ,automake)
9420 ("libtool" ,libtool)
9421 ("intltool" ,intltool)
89f2d736 9422 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9423 ("python3" ,python-3)
9424 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9425 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9426 (description
9427 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9428repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9429micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9430 (home-page "http://www.workrave.org")
9431 (license license:gpl3+)))
312afa7d
LC
9432
9433(define-public ghex
9434 (package
9435 (name "ghex")
3748992a 9436 (version "3.18.4")
312afa7d
LC
9437 (source (origin
9438 (method url-fetch)
2fbab848 9439 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9440 (version-major+minor version) "/"
2fbab848 9441 "ghex-" version ".tar.xz"))
312afa7d
LC
9442 (sha256
9443 (base32
3748992a
KK
9444 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9445 (build-system meson-build-system)
9446 (arguments
9447 '(#:glib-or-gtk? #t
9448 #:phases
9449 (modify-phases %standard-phases
9450 (add-after 'unpack 'skip-gtk-update-icon-cache
9451 ;; Don't create 'icon-theme.cache'.
9452 (lambda _
9453 (substitute* "meson_post_install.py"
9454 (("gtk-update-icon-cache") (which "true")))
9455 #t)))))
312afa7d
LC
9456 (native-inputs
9457 `(("pkg-config" ,pkg-config)
3748992a 9458 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9459 ("gnome-common" ,gnome-common)
9460 ("which" ,which)
9461 ("intltool" ,intltool)
9462 ("yelp-tools" ,yelp-tools)
2fbab848 9463 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9464 (inputs
9465 `(("atk" ,atk)
9466 ("gtk" ,gtk+)))
9467 (synopsis "GNOME hexadecimal editor")
9468 (description "The GHex program can view and edit files in two ways:
9469hexadecimal or ASCII. It is useful for editing binary files in general.")
9470 (home-page "https://wiki.gnome.org/Apps/Ghex")
9471 (license license:gpl2)))
4b2ed6c2
RW
9472
9473(define-public libdazzle
9474 (package
9475 (name "libdazzle")
c94db354 9476 (version "3.34.1")
4b2ed6c2
RW
9477 (source (origin
9478 (method url-fetch)
687b4909 9479 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9480 (version-major+minor version) "/"
687b4909 9481 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9482 (sha256
9483 (base32
c94db354 9484 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
9485 (build-system meson-build-system)
9486 (arguments
9487 `(#:phases
9488 (modify-phases %standard-phases
4b2ed6c2
RW
9489 (add-before 'check 'pre-check
9490 (lambda _
9491 ;; Tests require a running X server.
9492 (system "Xvfb :1 &")
9493 (setenv "DISPLAY" ":1")
9494 #t)))))
9495 (native-inputs
687b4909 9496 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9497 ("pkg-config" ,pkg-config)
687b4909 9498 ;; For tests.
ff337525 9499 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9500 (inputs
9501 `(("glib" ,glib)
9502 ("gobject-introspection" ,gobject-introspection)
9503 ("gtk+" ,gtk+)
9504 ("vala" ,vala)))
9505 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9506 (synopsis "Companion library to GObject and Gtk+")
9507 (description "The libdazzle library is a companion library to GObject and
9508Gtk+. It provides various features that the authors wish were in the
9509underlying library but cannot for various reasons. In most cases, they are
9510wildly out of scope for those libraries. In other cases, they are not quite
9511generic enough to work for everyone.")
9512 (license license:gpl3+)))
7d3bb433
RW
9513
9514(define-public evolution
9515 (package
9516 (name "evolution")
0662fe86 9517 (version "3.34.2")
7d3bb433
RW
9518 (source (origin
9519 (method url-fetch)
9520 (uri (string-append "mirror://gnome/sources/evolution/"
9521 (version-major+minor version) "/"
9522 "evolution-" version ".tar.xz"))
9523 (sha256
9524 (base32
0662fe86 9525 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
9526 (build-system cmake-build-system)
9527 (arguments
5229bea1
KK
9528 `(#:imported-modules (,@%cmake-build-system-modules
9529 (guix build glib-or-gtk-build-system))
9530 #:modules ((guix build cmake-build-system)
9531 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9532 (guix build utils))
9533 #:configure-flags
7d3bb433 9534 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9535 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9536 ; in four years and cannot be built.
5229bea1
KK
9537 #:phases
9538 (modify-phases %standard-phases
9539 ;; The build system attempts to install user interface modules to the
9540 ;; output directory of the "evolution-data-server" package. This
9541 ;; change redirects that change.
9542 (add-after 'unpack 'patch-ui-module-dir
9543 (lambda* (#:key outputs #:allow-other-keys)
9544 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9545 (("\\$\\{edsuimoduledir\\}")
9546 (string-append (assoc-ref outputs "out")
9547 "/lib/evolution-data-server/ui-modules")))
9548 #t))
9549 (add-after 'install 'glib-or-gtk-compile-schemas
9550 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9551 (add-after 'install 'glib-or-gtk-wrap
9552 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9553 (native-inputs
ad6e168b 9554 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9555 ("pkg-config" ,pkg-config)
9556 ("intltool" ,intltool)
9557 ("itstool" ,itstool)))
9558 (inputs
9559 `(("enchant" ,enchant)
9560 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9561 ("gcr" ,gcr)
ad6e168b 9562 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9563 ("gnome-autoar" ,gnome-autoar)
9564 ("gnome-desktop" ,gnome-desktop)
0662fe86 9565 ("gspell" ,gspell)
7d3bb433
RW
9566 ("highlight" ,highlight)
9567 ("libcanberra" ,libcanberra)
9568 ("libgweather" ,libgweather)
9569 ("libnotify" ,libnotify)
9570 ("libsoup" ,libsoup)
9571 ("nss" ,nss)
9572 ("openldap" ,openldap)
9573 ("webkitgtk" ,webkitgtk)
9574 ("ytnef" ,ytnef)))
9575 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9576 (synopsis "Manage your email, contacts and schedule")
9577 (description "Evolution is a personal information management application
9578that provides integrated mail, calendaring and address book
9579functionality.")
9580 ;; See COPYING for details.
23dbe621 9581 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9582 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9583 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9584
9585(define-public gthumb
9586 (package
9587 (name "gthumb")
8280676b 9588 (version "3.8.2")
169d63f5
AT
9589 (source (origin
9590 (method url-fetch)
9591 (uri (string-append "mirror://gnome/sources/gthumb/"
9592 (version-major+minor version) "/"
9593 "gthumb-" version ".tar.xz"))
9594 (sha256
9595 (base32
8280676b 9596 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9597 (build-system meson-build-system)
9598 (arguments
9599 `(#:glib-or-gtk? #t
9600 #:configure-flags
9601 ;; Ensure the RUNPATH contains all installed library locations.
9602 (list (string-append "-Dc_link_args=-Wl,-rpath="
9603 (assoc-ref %outputs "out")
9604 "/lib/gthumb/extensions")
9605 (string-append "-Dcpp_link_args=-Wl,-rpath="
9606 (assoc-ref %outputs "out")
9607 "/lib/gthumb/extensions"))))
9608 (native-inputs
9609 `(("pkg-config" ,pkg-config)
9610 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9611 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9612 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9613 ("intltool" ,intltool)
9614 ("itstool" ,itstool)))
9615 (inputs
9616 `(("exiv2" ,exiv2)
9617 ("gtk" ,gtk+)
9618 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9619 ("gstreamer" ,gstreamer)
9620 ("clutter" ,clutter)
9621 ("clutter-gst" ,clutter-gst)
9622 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9623 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9624 ("libtiff" ,libtiff)
9625 ("libraw" ,libraw)))
9626 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9627 (synopsis "GNOME image viewer and browser")
9628 (description "GThumb is an image viewer, browser, organizer, editor and
9629advanced image management tool")
9630 (license license:gpl2+)))
08be02be
AT
9631
9632(define-public terminator
9633 (package
9634 (name "terminator")
9635 (version "1.91")
9636 (source (origin
9637 (method url-fetch)
9638 (uri (string-append "https://launchpad.net/" name "/"
9639 "gtk3/" version "/" "+download/"
9640 name "-" version ".tar.gz"))
9641 (sha256
9642 (base32
9643 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9644 (build-system python-build-system)
9645 (native-inputs
9646 `(("intltool" ,intltool)
9647 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9648 ("gettext" ,gettext-minimal)
9649 ("pkg-config" ,pkg-config)))
9650 (inputs
9651 `(("cairo" ,cairo)
9652 ("gobject-introspection" ,gobject-introspection)
96681d4b 9653 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9654 ("python2-pycairo" ,python2-pycairo)
9655 ("python2-pygobject" ,python2-pygobject)
9656 ("python2-psutil" ,python2-psutil)
9657 ("vte" ,vte)))
9658 (arguments
96681d4b
TGR
9659 `(#:python ,python-2 ; Python 3 isn't supported
9660 #:imported-modules ((guix build glib-or-gtk-build-system)
9661 ,@%python-build-system-modules)
9662 #:modules ((guix build python-build-system)
9663 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9664 (guix build utils))
08be02be
AT
9665 #:phases
9666 (modify-phases %standard-phases
9667 (add-after
9668 'install 'wrap-program
9669 (lambda* (#:key outputs #:allow-other-keys)
9670 (let ((prog (string-append (assoc-ref outputs "out")
9671 "/bin/terminator")))
9672 (wrap-program prog
9673 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9674 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9675 #t)))
9676 (add-after 'wrap-program 'glib-or-gtk-wrap
9677 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9678 (home-page "https://gnometerminator.blogspot.com/")
9679 (synopsis "Store and run multiple GNOME terminals in one window")
9680 (description
9681 "Terminator allows you to run multiple GNOME terminals in a grid and
9682+tabs, and it supports drag and drop re-ordering of terminals.")
9683 (license license:gpl2)))
213315d4
JF
9684
9685(define-public libhandy
9686 (package
9687 (name "libhandy")
f6501b9f 9688 (version "0.0.12")
213315d4
JF
9689 (source
9690 (origin
9691 (method git-fetch)
9692 (uri (git-reference
9693 (url "https://source.puri.sm/Librem5/libhandy")
9694 (commit (string-append "v" version))))
9695 (file-name (git-file-name name version))
9696 (sha256
f6501b9f 9697 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9698 (build-system meson-build-system)
9699 (arguments
9700 `(#:configure-flags
9701 '("-Dglade_catalog=disabled"
9702 "-Dgtk_doc=true")
9703 #:phases
9704 (modify-phases %standard-phases
213315d4
JF
9705 (add-before 'check 'pre-check
9706 (lambda _
9707 ;; Tests require a running X server.
9708 (system "Xvfb :1 &")
9709 (setenv "DISPLAY" ":1")
9710 #t)))))
9711 (inputs
9712 `(("gtk+" ,gtk+)))
9713 (native-inputs
9714 `(("glib:bin" ,glib "bin")
9715 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9716 ("vala" ,vala)
9717 ("gtk-doc" ,gtk-doc)
9718 ("pkg-config" ,pkg-config)
9719 ("gettext" ,gettext-minimal)
d41ee146
TGR
9720
9721 ;; Test suite dependencies.
ff337525 9722 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9723 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9724 (home-page "https://source.puri.sm/Librem5/libhandy")
9725 (synopsis "Library full of GTK+ widgets for mobile phones")
9726 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9727interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9728for usage on small and big screens.")
213315d4 9729 (license license:lgpl2.1+)))
a830d14d
GL
9730
9731(define-public libgit2-glib
9732 (package
9733 (name "libgit2-glib")
6448c2e1 9734 (version "0.99.0.1")
a830d14d
GL
9735 (source (origin
9736 (method url-fetch)
9737 (uri (string-append "mirror://gnome/sources/" name "/"
9738 (version-major+minor version) "/"
9739 name "-" version ".tar.xz"))
9740 (sha256
9741 (base32
6448c2e1 9742 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9743 (build-system meson-build-system)
9744 (native-inputs
9745 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9746 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9747 ("pkg-config" ,pkg-config)
9748 ("python-pygobject" ,python-pygobject)
9749 ("python-wrapper" ,python-wrapper)
9750 ("vala" ,vala)))
9751 (inputs
9752 `(("glib" ,glib)
8c6aae46
MB
9753 ("libssh2" ,libssh2)))
9754 (propagated-inputs
9755 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9756 ("libgit2" ,libgit2)))
9757 (synopsis "GLib wrapper around the libgit2 Git access library")
9758 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9759access library. It only implements the core plumbing functions, not really the
9760higher level porcelain stuff.")
9761 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9762 (license license:gpl2+)))
93beace0 9763
08db81c9
LP
9764(define-public gitg
9765 (package
9766 (name "gitg")
9767 (version "3.32.1")
9768 (source (origin
9769 (method url-fetch)
9770 (uri (string-append "mirror://gnome/sources/" name "/"
9771 (version-major+minor version) "/"
9772 name "-" version ".tar.xz"))
9773 (sha256
9774 (base32
9775 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9776 (build-system meson-build-system)
9777 (arguments
9778 `(#:glib-or-gtk? #t
9779 #:phases
9780 (modify-phases %standard-phases
9781 (add-after 'unpack 'disable-post-install-partially
9782 (lambda _
9783 (substitute* "meson_post_install.py"
9784 (("'python'") ; there are no python sources to compile
9785 (string-append "'" (which "true") "'"))
9786 (("gtk-update-icon-cache") (which "true")))
9787 #t))
9788 (add-after 'unpack 'fix-test-sources
9789 (lambda _
9790 (substitute* "tests/libgitg/test-commit.vala"
9791 (("/bin/bash") (which "bash")))
9792 #t))
9793 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9794 (lambda* (#:key outputs #:allow-other-keys)
9795 (let ((prog (string-append (assoc-ref outputs "out")
9796 "/bin/gitg")))
9797 (wrap-program prog
9798 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9799 #t))))))
9800 (inputs
9801 `(("glib" ,glib)
9802 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9803 ("gtk+" ,gtk+)
9804 ("gtkspell3" ,gtkspell3)
9805 ("gtksourceview" ,gtksourceview-3)
9806 ("json-glib" ,json-glib)
9807 ("libdazzle" ,libdazzle)
9808 ("libgee" ,libgee)
08db81c9
LP
9809 ("libgit2-glib" ,libgit2-glib)
9810 ("libpeas" ,libpeas)
9811 ("libsecret" ,libsecret)
9812 ("libsoup" ,libsoup)
9813 ("libxml2" ,libxml2)))
9814 (native-inputs
9815 `(("glib:bin" ,glib "bin")
9816 ("gtk+:bin" ,gtk+ "bin")
9817 ("gobject-introspection" ,gobject-introspection)
9818 ("intltool" ,intltool)
9819 ("pkg-config" ,pkg-config)
9820 ("vala" ,vala)))
9821 (synopsis "Graphical user interface for git")
9822 (description
9823 "gitg is a graphical user interface for git. It aims at being a small,
9824fast and convenient tool to visualize the history of git repositories.
9825Besides visualization, gitg also provides several utilities to manage your
9826repository and commit your work.")
9827 (home-page "https://wiki.gnome.org/Apps/Gitg")
9828 (license license:gpl2+)))
9829
1e600ed0
RW
9830(define-public gamin
9831 (package
9832 (name "gamin")
9833 (version "0.1.10")
9834 (source (origin
9835 (method url-fetch)
9836 (uri (string-append "mirror://gnome/sources/" name "/"
9837 (version-major+minor version) "/"
9838 name "-" version ".tar.bz2"))
9839 (sha256
9840 (base32
9841 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9842 (build-system gnu-build-system)
9843 (arguments
9844 `(#:phases
9845 (modify-phases %standard-phases
9846 (add-after 'unpack 'remove-deprecated-macro
9847 (lambda _
9848 (substitute* '("server/gam_node.c"
9849 "server/gam_subscription.h"
9850 "server/gam_node.h"
9851 "server/gam_subscription.c")
9852 (("G_CONST_RETURN") "const"))
9853 #t)))))
9854 (inputs
9855 `(("glib" ,glib)))
9856 (native-inputs
9857 `(("intltool" ,intltool)
9858 ("pkg-config" ,pkg-config)))
9859 (home-page "https://people.gnome.org/~veillard/gamin/")
9860 (synopsis "File alteration monitor")
9861 (description
9862 "Gamin is a file and directory monitoring system defined to be a subset
9863of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9864library which detects when a file or a directory has been modified.")
1e600ed0
RW
9865 (license license:gpl2+)))
9866
93beace0
DW
9867(define-public gnome-mahjongg
9868 (package
9869 (name "gnome-mahjongg")
9870 (version "3.35.1")
9871 (source (origin
9872 (method git-fetch)
9873 (uri (git-reference
9874 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9875 (commit version)))
9876 (file-name (git-file-name name version))
9877 (sha256
9878 (base32
9879 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9880 (build-system meson-build-system)
9881 (arguments
9882 `(#:glib-or-gtk? #t))
9883 (native-inputs
9884 `(("appstream-glib" ,appstream-glib)
9885 ("gettext" ,gettext-minimal)
9886 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9887 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9888 ("itstool" ,itstool)
9889 ("pkg-config" ,pkg-config)
9890 ("vala" ,vala)))
9891 (propagated-inputs
9892 `(("dconf" ,dconf)))
9893 (inputs
9894 `(("glib" ,glib)
9895 ("gtk+" ,gtk+)
9896 ("librsvg" ,librsvg)))
9897 (synopsis "Mahjongg tile-matching game")
9898 (description "GNOME Mahjongg is a game based on the classic Chinese
9899tile-matching game Mahjong. It features multiple board layouts, tile themes,
9900and a high score table.")
9901 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9902 (license license:gpl2+)))
f825476c 9903
76ea7632
RG
9904(define-public gnome-themes-extra
9905 (package
9906 (name "gnome-themes-extra")
9907 (version "3.28")
9908 (source
9909 (origin
9910 (method url-fetch)
9911 (uri (string-append "mirror://gnome/sources/" name "/"
9912 (version-major+minor version) "/" name "-"
9913 version ".tar.xz"))
9914 (sha256
9915 (base32
9916 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9917 (build-system gnu-build-system)
885424bf
RG
9918 (arguments
9919 '(#:configure-flags
9920 ;; Don't create 'icon-theme.cache'.
9921 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9922 (true (string-append coreutils "/bin/true")))
9923 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9924 (native-inputs
9925 `(("glib:bin" ,glib "bin")
9926 ("intltool" ,intltool)
9927 ("pkg-config" ,pkg-config)))
9928 (inputs
9929 `(("glib" ,glib)
9930 ("gtk+" ,gtk+)
9931 ("gtk+-2" ,gtk+-2)
9932 ("librsvg" ,librsvg)
9933 ("libxml2" ,libxml2)))
9934 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9935 (synopsis "GNOME Extra Themes")
9936 (description "This package provides themes and related elements that don't
9937really fit in other upstream packages. It offers legacy support for GTK+ 2
9938versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9939index files needed for Adwaita to be used outside of GNOME.")
9940 (license license:lgpl2.1+)))
9941
f825476c
LP
9942(define-public polari
9943 (package
9944 (name "polari")
9945 (version "3.32.2")
9946 (source (origin
9947 (method url-fetch)
9948 (uri (string-append "mirror://gnome/sources/polari/"
9949 (version-major+minor version)
9950 "/polari-" version ".tar.xz"))
9951 (sha256
9952 (base32
9953 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9954 (build-system meson-build-system)
9955 (arguments
9956 `(#:glib-or-gtk? #t
9957 #:phases
9958 (modify-phases %standard-phases
9959 (add-after 'unpack 'skip-gtk-update-icon-cache
9960 (lambda _
9961 (substitute* "meson/meson-postinstall.sh"
9962 (("gtk-update-icon-cache") (which "true")))
9963 #t))
9964 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9965 (lambda* (#:key outputs #:allow-other-keys)
9966 (let ((prog (string-append (assoc-ref outputs "out")
9967 "/bin/polari")))
9968 (wrap-program prog
9969 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9970 #t))))))
9971 (inputs
9972 `(("glib" ,glib)
9973 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9974 ("gspell" ,gspell)
9975 ("gtk+" ,gtk+)
9976 ("gjs" ,gjs)
9977 ("libsecret" ,libsecret)
9978 ("libsoup" ,libsoup)
9979 ("telepathy-glib" ,telepathy-glib)
9980 ("telepathy-logger" ,telepathy-logger)))
9981 (native-inputs
9982 `(("glib:bin" ,glib "bin")
9983 ("gobject-introspection" ,gobject-introspection)
9984 ("intltool" ,intltool)
9985 ("pkg-config" ,pkg-config)
9986 ("yelp-tools" ,yelp-tools)))
9987 (propagated-inputs
9988 `(("telepathy-idle" ,telepathy-idle)
9989 ("telepathy-mission-control" ,telepathy-mission-control)))
9990 (synopsis "Simple IRC Client")
9991 (description
9992 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9993integrate seamlessly with the GNOME desktop.")
9994 (home-page "https://wiki.gnome.org/Apps/Polari")
9995 (license license:gpl2+)))
59d4c8c2
PN
9996
9997(define-public gnome-boxes
9998 (package
9999 (name "gnome-boxes")
bdfd5d6f 10000 (version "3.36.4")
59d4c8c2
PN
10001 (source
10002 (origin
10003 (method url-fetch)
10004 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10005 (version-major+minor version) "/"
10006 "gnome-boxes-" version ".tar.xz"))
10007 (sha256
bdfd5d6f 10008 (base32 "16l0mq2ydmywcdya1795mcy8syg4zkmz9ws3pzjcqv5y4m7cjj03"))))
59d4c8c2
PN
10009 (build-system meson-build-system)
10010 (arguments
10011 '(#:glib-or-gtk? #t
10012 #:configure-flags (list "-Drdp=false"
10013 (string-append "-Dc_link_args=-Wl,-rpath="
10014 (assoc-ref %outputs "out")
10015 "/lib/gnome-boxes"))))
10016 (native-inputs
10017 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10018 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10019 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10020 ("itstool" ,itstool)
10021 ("intltool" ,intltool)
10022 ("vala" ,vala)
10023 ("pkg-config" ,pkg-config)))
10024 (inputs
10025 `(("libarchive" ,libarchive)
10026 ("gtk" ,gtk+)
10027 ("gtk-vnc" ,gtk-vnc)
10028 ("libosinfo" ,libosinfo)
10029 ("libsecret" ,libsecret)
10030 ("libsoup" ,libsoup)
10031 ("libusb" ,libusb)
10032 ("libvirt" ,libvirt)
10033 ("libvirt-glib" ,libvirt-glib)
10034 ("libxml" ,libxml2)
10035 ("spice-gtk" ,spice-gtk)
10036 ("sparql-query" ,sparql-query)
10037 ("vte" ,vte)
10038 ("webkitgtk" ,webkitgtk)
10039 ("tracker" ,tracker)
10040 ("libgudev" ,libgudev)))
10041 (home-page "https://wiki.gnome.org/Apps/Boxes")
10042 (synopsis "View, access, and manage remote and virtual systems")
10043 (description "GNOME Boxes is a simple application to view, access, and
10044manage remote and virtual systems.")
10045 (license (list
10046 ;; For data/icons/empty-boxes.png.
10047 license:cc-by2.0
10048 ;; For all others.
10049 license:lgpl2.0+))))
0e26c3cf 10050
10051(define-public geary
10052 (package
10053 (name "geary")
10054 (version "3.34.1")
10055 (source (origin
10056 (method git-fetch)
10057 (uri (git-reference
10058 (url "https://gitlab.gnome.org/GNOME/geary")
10059 (commit version)))
10060 (file-name (git-file-name name version))
10061 (sha256
10062 (base32
10063 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10064 (build-system meson-build-system)
10065 (arguments
10066 `(#:glib-or-gtk? #t
10067 #:phases (modify-phases %standard-phases
10068 (add-after 'unpack 'disable-failing-tests
10069 (lambda _
10070 (substitute* "test/meson.build"
10071 (("test\\('client-tests', geary_test_client_bin\\)")
10072 ""))
10073 #t))
10074 (add-after 'unpack 'disable-postinstall-script
10075 (lambda _
10076 (substitute* "meson.build"
10077 (("meson.add_install_script\\(\
10078join_paths\\('build-aux', 'post_install.py'\\)\\)")
10079 ""))
10080 #t))
10081 (add-before 'check 'setup-xvfb
10082 (lambda _
10083 (system "Xvfb :1 &")
10084 (setenv "DISPLAY" ":1")
10085 #t)))))
10086 (inputs
10087 `(("enchant" ,enchant)
10088 ("folks" ,folks)
10089 ("gcr" ,gcr)
10090 ("glib" ,glib)
10091 ("gmime" ,gmime-2.6)
10092 ("gnome-online-accounts:lib"
10093 ,gnome-online-accounts "lib")
10094 ("gspell" ,gspell)
10095 ("gtk+" ,gtk+)
10096 ("iso-codes" ,iso-codes)
10097 ("json-glib" ,json-glib)
10098 ("libcanberra" ,libcanberra)
10099 ("libgee" ,libgee)
10100 ("libhandy" ,libhandy)
10101 ("libpeas" ,libpeas)
10102 ("libsecret" ,libsecret)
10103 ("libunwind" ,libunwind)
10104 ("sqlite" ,sqlite)
10105 ("webkitgtk" ,webkitgtk)
10106 ("ytnef" ,ytnef)))
10107 (native-inputs
10108 `(("appstream-glib" ,appstream-glib)
10109 ("cmake-minimal" ,cmake-minimal)
10110 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 10111 ("gettext" ,gettext-minimal)
0e26c3cf 10112 ("glib:bin" ,glib "bin")
10113 ("gobject-introspection" ,gobject-introspection)
10114 ("itstool" ,itstool)
10115 ("libarchive" ,libarchive)
10116 ("libxml2" ,libxml2)
10117 ("pkg-config" ,pkg-config)
10118 ("vala" ,vala)
10119 ("xvfb" ,xorg-server-for-tests)))
10120 (synopsis "GNOME email application built around conversations")
10121 (description
10122 "Geary collects related messages together into conversations,
10123making it easy to find and follow your discussions. Full-text and keyword
10124search makes it easy to find the email you are looking for. Geary's
10125full-featured composer lets you send rich, styled text with images, links, and
10126lists, but also send lightweight, easy to read text messages. Geary
10127automatically picks up your existing GNOME Online Accounts, and adding more is
10128easy. Geary has a clean, fast, modern interface that works like you want it
10129to.")
10130 (home-page "https://wiki.gnome.org/Apps/Geary")
10131 (license (list
10132 ;; geary
10133 license:lgpl2.1+
10134 ;; icons
10135 license:cc-by3.0
10136 license:cc-by-sa3.0
10137 license:public-domain
10138 ;; snowball
10139 license:bsd-2))))
1a17d21b 10140
21051eb7
VM
10141(define-public glabels
10142 (package
10143 (name "glabels")
10144 (version "3.4.1")
10145 (source
10146 (origin
10147 (method url-fetch)
10148 (uri (string-append "mirror://gnome/sources/" name "/"
10149 (version-major+minor version) "/"
10150 "glabels-" version ".tar.xz"))
10151 (sha256
10152 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10153 (build-system glib-or-gtk-build-system)
10154 (native-inputs
10155 `(("gettext" ,gettext-minimal)
10156 ("glib:bin" ,glib "bin")
10157 ("intltool" ,intltool)
10158 ("itstool" ,itstool)
10159 ("pkg-config" ,pkg-config)))
10160 (inputs
10161 `(("gtk+" ,gtk+)
10162 ("librsvg" ,librsvg)
10163 ("libxml2" ,libxml2)))
10164 (home-page "https://glabels.org/")
10165 (synopsis "Program for creating labels and business cards")
10166 (description
10167 "gLabels is a program for creating labels and business cards. It is
10168designed to work with various laser/ink-jet peel-off label and business
10169card sheets that you’ll find at most office supply stores.")
10170 (license license:gpl3+)))
10171
2cd1de32
BT
10172(define-public libratbag
10173 (package
10174 (name "libratbag")
10175 (version "0.13")
10176 (source
10177 (origin
10178 (method git-fetch)
10179 (uri (git-reference
10180 (url "https://github.com/libratbag/libratbag.git")
10181 (commit (string-append "v" version))))
10182 (file-name (git-file-name name version))
10183 (sha256
10184 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10185 (build-system meson-build-system)
10186 (arguments
10187 `(#:configure-flags
10188 (list "-Dsystemd=false"
10189 "-Dlogind-provider=elogind")
10190 #:phases
10191 (modify-phases %standard-phases
10192 (add-after 'install 'wrap
10193 (lambda* (#:key inputs outputs #:allow-other-keys)
10194 (let* ((out (assoc-ref outputs "out"))
10195 (site (string-append
10196 "/lib/python"
10197 ,(version-major+minor (package-version python))
10198 "/site-packages"))
10199 (evdev (string-append
10200 (assoc-ref inputs "python-evdev") site))
10201 (pygo (string-append
10202 (assoc-ref inputs "python-pygobject") site))
10203 (python-wrap
10204 `("PYTHONPATH" = (,evdev ,pygo))))
10205 (wrap-program (string-append out "/bin/" "ratbagctl")
10206 python-wrap)
10207 #t))))))
10208 (native-inputs
10209 `(("check" ,check)
10210 ("pkg-config" ,pkg-config)
10211 ("swig" ,swig)
10212 ("valgrind" ,valgrind)))
10213 (inputs
10214 `(("glib" ,glib)
10215 ("json-glib" ,json-glib)
10216 ("libevdev" ,libevdev)
10217 ("libsystemd" ,elogind)
10218 ("libunistring" ,libunistring)
10219 ("python-evdev" ,python-evdev)
10220 ("python-pygobject" ,python-pygobject)
10221 ("udev" ,eudev)))
10222 (home-page "https://github.com/libratbag/libratbag")
10223 (synopsis "DBus daemon and utility for configuring gaming mice")
10224 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10225configure input devices, mainly gaming mice. The daemon provides a generic
10226way to access the various features exposed by these mice and abstracts away
10227hardware-specific and kernel-specific quirks. There is also the
10228@command{ratbagctl} command line interface for configuring devices.
10229
10230libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10231Steelseries.
10232
10233The ratbagd DBus service can be enabled by adding the following service to
10234your operating-system definition:
10235
10236 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10237 (license license:expat)))
10238
50d31a40
BT
10239(define-public piper
10240 (package
10241 (name "piper")
73014984 10242 (version "0.5")
50d31a40
BT
10243 (source
10244 (origin
10245 (method git-fetch)
10246 (uri (git-reference
10247 (url "https://github.com/libratbag/piper.git")
10248 (commit version)))
10249 (sha256
81af0de9
TGR
10250 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10251 (file-name (git-file-name name version))))
50d31a40
BT
10252 (build-system meson-build-system)
10253 (native-inputs
10254 `(("gettext" ,gettext-minimal)
10255 ("glib:bin" ,glib "bin")
10256 ("gobject-introspection" ,gobject-introspection)
10257 ("pkg-config" ,pkg-config)
10258 ("python-flake8" ,python-flake8)))
10259 (inputs
10260 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10261 ("gtk" ,gtk+)
10262 ("gtk:bin" ,gtk+ "bin")
10263 ("librsvg" ,librsvg)
10264 ("python-evdev" ,python-evdev)
10265 ("python-lxml" ,python-lxml)
10266 ("python-pycairo" ,python-pycairo)
10267 ("python-pygobject" ,python-pygobject)))
10268 (arguments
10269 `(#:imported-modules ((guix build python-build-system)
10270 ,@%meson-build-system-modules)
10271 #:modules (((guix build python-build-system) #:prefix python:)
10272 (guix build meson-build-system)
10273 (guix build utils))
10274 #:phases
10275 (modify-phases %standard-phases
10276 (add-after 'unpack 'dont-update-gtk-icon-cache
10277 (lambda _
10278 (substitute* "meson.build"
10279 (("meson.add_install_script('meson_install.sh')") ""))
10280 #t))
10281 ;; TODO: Switch to wrap-script when it is fixed.
10282 (add-after 'install 'wrap-python
10283 (assoc-ref python:%standard-phases 'wrap))
10284 (add-after 'wrap-python 'wrap
10285 (lambda* (#:key outputs #:allow-other-keys)
10286 (wrap-program
10287 (string-append (assoc-ref outputs "out" )"/bin/piper")
10288 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10289 #t)))))
10290 (home-page "https://github.com/libratbag/piper/")
10291 (synopsis "Configure bindings and LEDs on gaming mice")
10292 (description "Piper is a GTK+ application for configuring gaming mice with
10293onboard configuration for key bindings via libratbag. Piper requires
10294a @command{ratbagd} daemon running with root privileges. It can be run
10295manually as root, but is preferably configured as a DBus service that can
10296launch on demand. This can be configured by enabling the following service,
10297provided there is a DBus service present:
10298
10299 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10300 (license license:gpl2)))
10301
1a17d21b
NG
10302(define-public parlatype
10303 ;; This is one commit away from 2.0, because the latter introduced
10304 ;; a regression in ASR.
10305 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10306 (revision "0"))
10307 (package
10308 (name "parlatype")
10309 (version (git-version "2.0" revision commit))
10310 (source
10311 (origin
10312 (method git-fetch)
10313 (uri (git-reference
10314 (url "https://github.com/gkarsay/parlatype.git")
10315 (commit commit)))
10316 (file-name (git-file-name name version))
10317 (sha256
10318 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10319 (build-system meson-build-system)
10320 (arguments
10321 `(#:glib-or-gtk? #t
10322 #:tests? #f ;require internet access
10323 #:phases
10324 (modify-phases %standard-phases
10325 (add-after 'install 'wrap-parlatype
10326 ;; Add gstreamer plugin provided in this package to system's
10327 ;; plugins.
10328 (lambda* (#:key outputs #:allow-other-keys)
10329 (let* ((out (assoc-ref outputs "out"))
10330 (gst-plugin-path (string-append
10331 out "/lib/gstreamer-1.0/"
10332 ":"
10333 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10334 (wrap-program (string-append out "/bin/parlatype")
10335 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10336 #t)))))
10337 (native-inputs
10338 `(("appstream-glib" ,appstream-glib)
10339 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10340 ("gettext" ,gettext-minimal)
10341 ("glib" ,glib "bin") ;for glib-compile-resources
10342 ("pkg-config" ,pkg-config)
10343 ("yelp-tools" ,yelp-tools)))
10344 (inputs
10345 `(("gst-plugins-base" ,gst-plugins-base)
10346 ("gst-plugins-good" ,gst-plugins-good)
10347 ("gstreamer" ,gstreamer)
10348 ("gtk+" ,gtk+)
10349 ("pocketsphinx" ,pocketsphinx)
10350 ("pulseaudio" ,pulseaudio)
10351 ("sphinxbase" ,sphinxbase)))
10352 (home-page "http://gkarsay.github.io/parlatype/")
10353 (synopsis "GNOME audio player for transcription")
10354 (description "Parlatype is an audio player for the GNOME desktop
10355environment. Its main purpose is the manual transcription of spoken
10356audio files.")
10357 (license license:gpl3+))))
95856a6e
AT
10358
10359(define-public jsonrpc-glib
10360 (package
10361 (name "jsonrpc-glib")
10362 (version "3.34.0")
10363 (source (origin
10364 (method url-fetch)
10365 (uri (string-append "mirror://gnome/sources/" name "/"
10366 (version-major+minor version) "/"
10367 name "-" version ".tar.xz"))
10368 (sha256
10369 (base32
10370 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10371 (build-system meson-build-system)
10372 (inputs
10373 `(("json-glib" ,json-glib)
10374 ("glib" ,glib)))
10375 (native-inputs
10376 `(("pkg-config" ,pkg-config)
10377 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10378 ("gobject-introspection" ,gobject-introspection)
10379 ("vala" ,vala)))
10380 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10381 (synopsis "JSON-RPC library for GLib")
10382 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10383peers in either a synchronous or asynchronous fashion. It also allows
10384communicating using the GVariant serialization format instead of JSON when
10385both peers support it. You might want that when communicating on a single
10386host to avoid parser overhead and memory-allocator fragmentation.")
10387 (license license:lgpl2.1+)))