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