gnu: network-manager-openconnect: Use libnma.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
CommitLineData
995b7261 1;;; GNU Guix --- Functional package management for GNU
109da1c0 2;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
5dc6d5ce 3;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
29a7c98a 4;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
7108425c 5;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
58d32305 6;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
8b877545 7;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
7aab13f1 8;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
63ad9b80 9;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
1e7464a9 10;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
ed783404 11;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
64a153bd 12;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
293ff8b2 13;;; Copyright © 2015 David Thompson <davet@gnu.org>
e19cb895 14;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
35e2d0cf 15;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
3c697ffd 16;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
03be9874 17;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
277a7d82 18;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
a56be436 19;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
e19f9c24 20;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
71d9b980 21;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
3c986a7d 22;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
e5e1df4d 23;;; Copyright © 2016 David Craven <david@craven.ch>
ac631328 24;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
cce0da5e 25;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
d04687dc 26;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
3c5dbd2b 27;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
d1d739fa 28;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
1d3fcf94 29;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
2cd1de32 30;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
0438f1d8 31;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
4e3fdeb7 32;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
2eee7ee3 33;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
a18f8eaf 34;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
e57c2adb 35;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
8caa4589 36;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
f2d56e39 37;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
3e9c80b2 38;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
a7a31827 39;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
633422b0 40;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
213315d4 41;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
4690e3a4 42;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
50e96d25 43;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
93beace0 44;;; Copyright © 2019 David Wilson <david@daviwil.com>
d36fa50f 45;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
f6501b9f 46;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
3861fb1c 47;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
fa01e10d 48;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
63db190a 49;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
0e26c3cf 50;;; Copyright © 2020 raingloom <raingloom@riseup.net>
1a17d21b 51;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
dd233e4d 52;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
663def11 53;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
21051eb7 54;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
01c22be7 55;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
995b7261
AE
56;;;
57;;; This file is part of GNU Guix.
58;;;
59;;; GNU Guix is free software; you can redistribute it and/or modify it
60;;; under the terms of the GNU General Public License as published by
61;;; the Free Software Foundation; either version 3 of the License, or (at
62;;; your option) any later version.
63;;;
64;;; GNU Guix is distributed in the hope that it will be useful, but
65;;; WITHOUT ANY WARRANTY; without even the implied warranty of
66;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
67;;; GNU General Public License for more details.
68;;;
69;;; You should have received a copy of the GNU General Public License
70;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
71
72(define-module (gnu packages gnome)
ed19903d 73 #:use-module (gnu packages)
ba5dd105 74 #:use-module (gnu packages admin)
411ba511 75 #:use-module (gnu packages aspell)
75016d07 76 #:use-module (gnu packages autotools)
7b212526 77 #:use-module (gnu packages avahi)
b29909b4 78 #:use-module (gnu packages backup)
6a180f6f 79 #:use-module (gnu packages base)
1e33331c 80 #:use-module (gnu packages bash)
5698b8b8 81 #:use-module (gnu packages bison)
aa51d92c 82 #:use-module (gnu packages boost)
5fc9b6c1 83 #:use-module (gnu packages build-tools)
df217748 84 #:use-module (gnu packages calendar)
b29909b4 85 #:use-module (gnu packages cdrom)
df12f04a 86 #:use-module (gnu packages check)
d61a894b 87 #:use-module (gnu packages cmake)
b29909b4 88 #:use-module (gnu packages compression)
8f523eb9 89 #:use-module (gnu packages crates-io)
23a22af6 90 #:use-module (gnu packages cups)
6e1bb642 91 #:use-module (gnu packages curl)
c3f29bc9 92 #:use-module (gnu packages cyrus-sasl)
6e1bb642 93 #:use-module (gnu packages databases)
255d1bbe 94 #:use-module (gnu packages dbm)
c769cf9f 95 #:use-module (gnu packages djvu)
ba5dd105 96 #:use-module (gnu packages dns)
b4ce6300 97 #:use-module (gnu packages docbook)
b29909b4 98 #:use-module (gnu packages documentation)
329d731b 99 #:use-module (gnu packages enchant)
b29909b4
TGR
100 #:use-module (gnu packages flex)
101 #:use-module (gnu packages fonts)
e762d943 102 #:use-module (gnu packages file-systems)
a56be436 103 #:use-module (gnu packages fontutils)
b29909b4 104 #:use-module (gnu packages freedesktop)
dfc407f3 105 #:use-module (gnu packages game-development)
fed5a689 106 #:use-module (gnu packages gettext)
b29909b4
TGR
107 #:use-module (gnu packages ghostscript)
108 #:use-module (gnu packages gl)
995b7261 109 #:use-module (gnu packages glib)
c1354b90 110 #:use-module (gnu packages gnupg)
23a22af6 111 #:use-module (gnu packages gnuzilla)
8d8c6bff 112 #:use-module (gnu packages geo)
b29909b4
TGR
113 #:use-module (gnu packages gperf)
114 #:use-module (gnu packages graphviz)
85f5dc19 115 #:use-module (gnu packages gstreamer)
d9c1a22b 116 #:use-module (gnu packages gtk)
6b888eff 117 #:use-module (gnu packages guile)
b645146f 118 #:use-module (gnu packages ibus)
03be9874 119 #:use-module (gnu packages icu4c)
b29909b4
TGR
120 #:use-module (gnu packages image)
121 #:use-module (gnu packages imagemagick)
122 #:use-module (gnu packages inkscape)
9cc98f8a 123 #:use-module (gnu packages iso-codes)
b29909b4 124 #:use-module (gnu packages kerberos)
85f5dc19 125 #:use-module (gnu packages libcanberra)
b64e217f 126 #:use-module (gnu packages libunistring)
0e26c3cf 127 #:use-module (gnu packages libunwind)
75016d07 128 #:use-module (gnu packages libusb)
b29909b4 129 #:use-module (gnu packages linux)
4e3fc547 130 #:use-module (gnu packages lirc)
7b212526 131 #:use-module (gnu packages lua)
b29909b4 132 #:use-module (gnu packages mail)
03be9874 133 #:use-module (gnu packages mp3)
b29909b4 134 #:use-module (gnu packages multiprecision)
64fce637 135 #:use-module (gnu packages music)
b29909b4
TGR
136 #:use-module (gnu packages ncurses)
137 #:use-module (gnu packages nettle)
ba5dd105 138 #:use-module (gnu packages networking)
5fc9b6c1 139 #:use-module (gnu packages ninja)
aff0cce9 140 #:use-module (gnu packages nss)
b29909b4 141 #:use-module (gnu packages openldap)
b645146f 142 #:use-module (gnu packages password-utils)
de1215e2 143 #:use-module (gnu packages pcre)
b29909b4 144 #:use-module (gnu packages pdf)
27477d2d 145 #:use-module (gnu packages perl)
f70d8383 146 #:use-module (gnu packages photo)
995b7261 147 #:use-module (gnu packages pkg-config)
b29909b4
TGR
148 #:use-module (gnu packages polkit)
149 #:use-module (gnu packages popt)
7d3bb433 150 #:use-module (gnu packages pretty-print)
23a22af6 151 #:use-module (gnu packages pulseaudio)
995b7261 152 #:use-module (gnu packages python)
00014781
RW
153 #:use-module (gnu packages python-crypto)
154 #:use-module (gnu packages python-web)
44d10b1f 155 #:use-module (gnu packages python-xyz)
cce0da5e 156 #:use-module (gnu packages rdesktop)
b29909b4 157 #:use-module (gnu packages readline)
a76d0f03 158 #:use-module (gnu packages ruby)
ec47c07d 159 #:use-module (gnu packages rust)
b29909b4 160 #:use-module (gnu packages samba)
75016d07 161 #:use-module (gnu packages scanner)
240cee8a 162 #:use-module (gnu packages selinux)
c27e02bf 163 #:use-module (gnu packages slang)
b29909b4
TGR
164 #:use-module (gnu packages speech)
165 #:use-module (gnu packages spice)
cd0322a3 166 #:use-module (gnu packages sqlite)
4a1bf090 167 #:use-module (gnu packages ssh)
2cd1de32 168 #:use-module (gnu packages swig)
8f9ac901 169 #:use-module (gnu packages tex)
33dc54b0 170 #:use-module (gnu packages time)
a7fd7b68 171 #:use-module (gnu packages tls)
2cd1de32 172 #:use-module (gnu packages valgrind)
3c5dbd2b 173 #:use-module (gnu packages version-control)
b29909b4 174 #:use-module (gnu packages video)
59132b80 175 #:use-module (gnu packages virtualization)
f2b96b3a 176 #:use-module (gnu packages vpn)
a18f8eaf 177 #:use-module (gnu packages web)
b29909b4
TGR
178 #:use-module (gnu packages webkit)
179 #:use-module (gnu packages xdisorg)
180 #:use-module (gnu packages xiph)
181 #:use-module (gnu packages xml)
d633f2f6 182 #:use-module (gnu packages xorg)
a76d0f03 183 #:use-module (gnu artwork)
8f523eb9 184 #:use-module (guix build-system cargo)
b29909b4
TGR
185 #:use-module (guix build-system cmake)
186 #:use-module (guix build-system glib-or-gtk)
187 #:use-module (guix build-system gnu)
188 #:use-module (guix build-system meson)
08be02be 189 #:use-module (guix build-system python)
b29909b4
TGR
190 #:use-module (guix build-system trivial)
191 #:use-module (guix download)
192 #:use-module (guix git-download)
193 #:use-module ((guix licenses) #:prefix license:)
194 #:use-module (guix packages)
195 #:use-module (guix utils)
a76d0f03 196 #:use-module (guix gexp)
8f523eb9
EF
197 #:use-module (guix monads)
198 #:use-module (guix store)
4e3fdeb7 199 #:use-module (ice-9 match)
c024ae36 200 #:use-module (srfi srfi-1))
85f5dc19
AE
201
202(define-public brasero
203 (package
204 (name "brasero")
e2bf423a 205 (version "3.12.2")
85f5dc19
AE
206 (source (origin
207 (method url-fetch)
d1df7554 208 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 209 (version-major+minor version) "/"
d1df7554 210 "brasero-" version ".tar.xz"))
85f5dc19
AE
211 (sha256
212 (base32
e2bf423a 213 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 214 (build-system glib-or-gtk-build-system)
e8627cd9
DH
215 (arguments
216 `(#:configure-flags (list
217 (string-append "--with-girdir="
218 (assoc-ref %outputs "out")
219 "/share/gir-1.0")
220 (string-append "--with-typelibdir="
221 (assoc-ref %outputs "out")
ce426deb
TD
222 "/lib/girepository-1.0"))
223 #:phases
224 (modify-phases %standard-phases
225 (add-before 'configure 'embed-growisofs
226 (lambda* (#:key inputs #:allow-other-keys)
227 (substitute* "plugins/growisofs/burn-growisofs.c"
228 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 229 #t)))))
85f5dc19
AE
230 (propagated-inputs
231 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
232 (native-inputs
233 `(("intltool" ,intltool)
ba549e17 234 ("itstool" ,itstool)
426adbe8 235 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 236 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 237 ("pkg-config" ,pkg-config)))
85f5dc19 238 (inputs
ce426deb
TD
239 `(("dvd+rw-tools" ,dvd+rw-tools)
240 ("glib" ,glib)
85f5dc19
AE
241 ("gnome-doc-utils" ,gnome-doc-utils)
242 ("gstreamer" ,gstreamer)
243 ("gst-plugins-base" ,gst-plugins-base)
244 ("gtk+" ,gtk+)
85f5dc19
AE
245 ("libcanberra" ,libcanberra)
246 ("libice" ,libice)
247 ("libnotify" ,libnotify)
248 ("libsm" ,libsm)
e8627cd9 249 ("libxml2" ,libxml2)
e8627cd9 250 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 251 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
252 (synopsis "CD/DVD burning tool for Gnome")
253 (description "Brasero is an application to burn CD/DVD for the Gnome
254Desktop. It is designed to be as simple as possible and has some unique
255features to enable users to create their discs easily and quickly.")
1dd26275 256 (license license:gpl2+)))
995b7261 257
a3cbcbaf
RG
258(define-public notification-daemon
259 (package
260 (name "notification-daemon")
261 (version "3.20.0")
262 (source
263 (origin
264 (method url-fetch)
265 (uri
266 (string-append "mirror://gnome/sources/" name "/"
267 (version-major+minor version) "/"
268 name "-" version ".tar.xz"))
269 (sha256
270 (base32
271 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
272 (build-system glib-or-gtk-build-system)
273 (native-inputs
274 `(("intltool" ,intltool)
275 ("pkg-config" ,pkg-config)))
276 (inputs
277 `(("glib" ,glib)
278 ("gtk+" ,gtk+)
279 ("x11" ,libx11)))
280 (synopsis "Notification Daemon for GNOME Desktop")
281 (description "Notification-Daemon is the server implementation of the
282freedesktop.org desktop notification specification.")
283 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
284 (license license:gpl2+)))
285
4e8bdbf8
RG
286(define-public mm-common
287 (package
288 (name "mm-common")
289 (version "1.0.0")
290 (source (origin
291 (method url-fetch)
292 (uri (string-append "mirror://gnome/sources/" name "/"
293 (version-major+minor version) "/"
294 name "-" version ".tar.xz"))
295 (sha256
296 (base32
297 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
298 (build-system meson-build-system)
299 (arguments
300 `(#:phases
301 (modify-phases %standard-phases
302 (add-after 'unpack 'patch
303 (lambda* (#:key inputs #:allow-other-keys)
304 (substitute* "util/mm-common-prepare.in"
305 (("ln") (string-append (assoc-ref inputs "coreutils")
306 "/bin/ln"))
307 (("cp") (string-append (assoc-ref inputs "coreutils")
308 "/bin/cp"))
309 (("sed") (string-append (assoc-ref inputs "sed")
310 "/bin/sed"))
311 (("cat") (string-append (assoc-ref inputs "coreutils")
312 "/bin/cat")))
313 #t)))))
314 (native-inputs
4e8bdbf8 315 `(("coreutils" ,coreutils)
74a65885
DM
316 ("gettext" ,gettext-minimal)
317 ("pkg-config" ,pkg-config)
4e8bdbf8 318 ("sed" ,sed)))
74a65885
DM
319 (inputs
320 `(("python" ,python)))
4e8bdbf8
RG
321 (synopsis "Module of GNOME C++ bindings")
322 (description "The mm-common module provides the build infrastructure
323and utilities shared among the GNOME C++ binding libraries. Release
324archives of mm-common include the Doxygen tag file for the GNU C++
325Library reference documentation.")
326 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
327 (license license:gpl2+)))
328
e05ce17d
RG
329(define-public phodav
330 (package
331 (name "phodav")
332 (version "2.4")
333 (source (origin
334 (method url-fetch)
335 (uri (string-append "mirror://gnome/sources/" name "/"
336 (version-major+minor version) "/"
337 name "-" version ".tar.xz"))
338 (sha256
339 (base32
340 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
341 (build-system meson-build-system)
342 (native-inputs
343 `(("gettext" ,gettext-minimal)
344 ("glib:bin" ,glib "bin")
345 ("gtk-doc" ,gtk-doc)
346 ("pkg-config" ,pkg-config)))
347 (inputs
348 `(("avahi" ,avahi)
349 ("libgudev" ,libgudev)
350 ("libsoup" ,libsoup)))
351 (synopsis "WebDav server implementation using libsoup")
352 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
353but it is generic enough to be reused in other projects,
354in particular in the GNOME desktop.")
355 (home-page "https://wiki.gnome.org/phodav")
356 (license license:lgpl2.1+)))
357
29ae18db
RG
358(define-public gnome-color-manager
359 (package
360 (name "gnome-color-manager")
361 (version "3.32.0")
362 (source (origin
363 (method url-fetch)
364 (uri (string-append "mirror://gnome/sources/" name "/"
365 (version-major+minor version) "/"
366 name "-" version ".tar.xz"))
367 (sha256
368 (base32
369 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
370 (build-system meson-build-system)
371 (arguments
372 `(#:glib-or-gtk? #t
373 #:phases
374 (modify-phases %standard-phases
375 (add-before
376 'check 'pre-check
377 (lambda _
378 ;; Tests require a running X server.
379 (system "Xvfb :1 &")
380 (setenv "DISPLAY" ":1")
381 #t)))))
382 (native-inputs
383 `(("desktop-file-utils" ,desktop-file-utils)
384 ("gettext" ,gettext-minimal)
385 ("glib:bin" ,glib "bin")
386 ("gtk+:bin" ,gtk+ "bin")
387 ("itstool" ,itstool)
388 ("pkg-config" ,pkg-config)
389 ("xorg-server" ,xorg-server-for-tests)))
390 (inputs
391 `(("adwaita-icon-theme" ,adwaita-icon-theme)
392 ("appstream-glib" ,appstream-glib)
393 ("colord-gtk" ,colord-gtk)
394 ("exiv2" ,exiv2)
395 ("gnome-desktop" ,gnome-desktop)
396 ("libcanberra" ,libcanberra)
397 ("libexif" ,libexif)
398 ("libtiff" ,libtiff)
399 ("libxrandr" ,libxrandr)
400 ("libxtst" ,libxtst)
401 ("libxxf86vm" ,libxxf86vm)
402 ("vte" ,vte)
403 ("xorgproto" ,xorgproto)))
404 (synopsis "Color profile manager for the GNOME desktop")
405 (description "GNOME Color Manager is a session framework that makes
406it easy to manage, install and generate color profiles
407in the GNOME desktop.")
408 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 409 (license license:gpl2+)))
29ae18db 410
e05471a1
RG
411(define-public gnome-online-miners
412 (package
413 (name "gnome-online-miners")
49dcd7fc 414 (version "3.34.0")
e05471a1
RG
415 (source (origin
416 (method url-fetch)
417 (uri (string-append "mirror://gnome/sources/" name "/"
418 (version-major+minor version) "/"
419 name "-" version ".tar.xz"))
420 (sha256
421 (base32
49dcd7fc 422 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
e05471a1
RG
423 (build-system glib-or-gtk-build-system)
424 (native-inputs
425 `(("gettext" ,gettext-minimal)
426 ("glib:bin" ,glib "bin")
29ae18db 427 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
428 ("gtk+:bin" ,gtk+ "bin")
429 ("pkg-config" ,pkg-config)))
430 (inputs
431 `(("gnome-online-accounts" ,gnome-online-accounts)
432 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
433 ("grilo" ,grilo)
434 ("libgdata" ,libgdata)
435 ("libgfbgraph" ,gfbgraph)
436 ("libzapojit" ,libzapojit)
437 ("rest" ,rest)
438 ("tracker" ,tracker)))
439 (synopsis "Web Crawlers for GNOME")
440 (description "GNOME Online Miners provides a set of crawlers that
441go through your online content and index them locally in Tracker.
442It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
443 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 444 (license license:gpl2+)))
e05471a1 445
e2aed29c
RG
446(define-public gssdp
447 (package
448 (name "gssdp")
449 (version "1.2.2")
450 (source (origin
451 (method url-fetch)
452 (uri (string-append "mirror://gnome/sources/" name "/"
453 (version-major+minor version) "/"
454 name "-" version ".tar.xz"))
455 (sha256
456 (base32
457 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
458 (build-system meson-build-system)
459 (native-inputs
460 `(("gettext" ,gettext-minimal)
461 ("glib:bin" ,glib "bin")
462 ("gobject-introspection" ,gobject-introspection)
463 ("gtk-doc" ,gtk-doc)
464 ("pkg-config" ,pkg-config)
465 ("vala" ,vala)))
466 (inputs
467 `(("gtk+" ,gtk+)
468 ("libsoup" ,libsoup)))
469 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
470Protocol} for GNOME")
471 (description "This package provides a library to handle resource discovery
472and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
473a debugging tool, @command{gssdp-device-sniffer}.")
474 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
475 (license license:lgpl2.0+)))
476
291a85b2
RG
477(define-public gupnp
478 (package
479 (name "gupnp")
480 (version "1.2.2")
481 (source (origin
482 (method url-fetch)
483 (uri (string-append "mirror://gnome/sources/" name "/"
484 (version-major+minor version) "/"
485 name "-" version ".tar.xz"))
486 (sha256
487 (base32
488 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
489 (build-system meson-build-system)
490 (native-inputs
491 `(("gettext" ,gettext-minimal)
492 ("glib:bin" ,glib "bin")
493 ("gobject-introspection" ,gobject-introspection)
494 ("gtk-doc" ,gtk-doc)
495 ("pkg-config" ,pkg-config)
496 ("vala" ,vala)))
497 (inputs
498 `(("gssdp" ,gssdp)
499 ("gtk+" ,gtk+)
500 ("libsoup" ,libsoup)))
501 (synopsis "PnP API for GNOME")
502 (description "This package provides GUPnP, an object-oriented framework
503for creating UPnP devices and control points, written in C using
504@code{GObject} and @code{libsoup}.")
505 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
506 (license license:lgpl2.0+)))
507
747d7fe4
RG
508(define-public gupnp-dlna
509 (package
510 (name "gupnp-dlna")
511 (version "0.10.5")
512 (source (origin
513 (method url-fetch)
514 (uri (string-append "mirror://gnome/sources/" name "/"
515 (version-major+minor version) "/"
516 name "-" version ".tar.xz"))
517 (sha256
518 (base32
519 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
520 (build-system gnu-build-system)
521 (native-inputs
522 `(("gettext" ,gettext-minimal)
523 ("glib:bin" ,glib "bin")
524 ("gobject-introspection" ,gobject-introspection)
525 ("gtk-doc" ,gtk-doc)
526 ("libxml" ,libxml2)
527 ("pkg-config" ,pkg-config)
528 ("vala" ,vala)))
529 (inputs
530 `(("gstreamer" ,gstreamer)
531 ("gupnp" ,gupnp)))
532 (propagated-inputs
533 `(("gst-plugins-base" ,gst-plugins-base)
534 ("gst-plugins-good" ,gst-plugins-good)))
535 (synopsis "GUPnP DLNA for GNOME")
536 (description "This package provides a small utility library to
537support DLNA-related tasks such as media profile guessing, transcoding to a
538given profile, etc. DLNA is a subset of UPnP A/V.")
539 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
540 (license license:lgpl2.0+)))
541
1b4cb628
RG
542(define-public gupnp-av
543 (package
544 (name "gupnp-av")
545 (version "0.12.11")
546 (source (origin
547 (method url-fetch)
548 (uri (string-append "mirror://gnome/sources/" name "/"
549 (version-major+minor version) "/"
550 name "-" version ".tar.xz"))
551 (sha256
552 (base32
553 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
554 (build-system gnu-build-system)
555 (native-inputs
556 `(("gettext" ,gettext-minimal)
557 ("glib:bin" ,glib "bin")
558 ("gobject-introspection" ,gobject-introspection)
559 ("gtk-doc" ,gtk-doc)
560 ("libxml" ,libxml2)
561 ("pkg-config" ,pkg-config)))
562 (inputs
563 `(("gtk+" ,gtk+)
564 ("gupnp" ,gupnp)))
565 (synopsis "GUPnP A/V for GNOME")
566 (description "This package provides a small library for handling
567and implementation of UPnP A/V profiles.")
568 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
569 (license license:lgpl2.0+)))
e05471a1 570
02ebbca8
RG
571(define-public libmediaart
572 (package
573 (name "libmediaart")
574 (version "1.9.4")
575 (source (origin
576 (method url-fetch)
577 (uri (string-append "mirror://gnome/sources/" name "/"
578 (version-major+minor version) "/"
579 name "-" version ".tar.xz"))
580 (sha256
581 (base32
582 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
583 (build-system gnu-build-system)
584 (native-inputs
585 `(("glib:bin" ,glib "bin")
586 ("pkg-config" ,pkg-config)))
587 (inputs
588 `(("gdk-pixbuf" ,gdk-pixbuf)
589 ("gettext" ,gettext-minimal)
590 ("gobject-introspection" ,gobject-introspection)
591 ("gtk+:doc", gtk+ "doc")
592 ("vala" ,vala)))
593 (synopsis "Media art library for the GNOME desktop")
594 (description
595 "The libmediaart library is the foundation for media art caching,
596extraction, and lookup for applications on the desktop.")
597 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
598 (license license:lgpl2.1+)))
599
a26680eb
RG
600(define-public gnome-initial-setup
601 (package
602 (name "gnome-initial-setup")
603 (version "3.32.1")
604 (source (origin
605 (method url-fetch)
606 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
607 (version-major+minor version)
608 "/gnome-initial-setup-" version ".tar.xz"))
609 (sha256
610 (base32
611 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
612 (build-system meson-build-system)
613 (arguments
a65cc579
DM
614 '(#:configure-flags '(;; Enable camera support for user selfie.
615 "-Dcheese=auto"
c627e2cb
LC
616 "-Dsystemd=false")
617 #:phases (modify-phases %standard-phases
618 (add-after 'unpack 'set-gkbd-file-name
619 (lambda* (#:key inputs #:allow-other-keys)
620 ;; Allow the "Preview" button in the keyboard layout
621 ;; selection dialog to display the layout.
622 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
623 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
624 (("\"gkbd-keyboard-display")
625 (string-append "\"" libgnomekbd
626 "/bin/gkbd-keyboard-display")))
627 #t))))))
a26680eb
RG
628 (native-inputs
629 `(("gettext" ,gettext-minimal)
630 ("glib:bin" ,glib "bin")
631 ("gobject-introspection" ,gobject-introspection)
632 ("gtk+:bin" ,gtk+ "bin")
633 ("pkg-config" ,pkg-config)))
634 (inputs
635 `(("accountsservice" ,accountsservice)
636 ;("adwaita-icon-theme" ,adwaita-icon-theme)
637 ("gdm" ,gdm)
638 ("geoclue" ,geoclue)
639 ("gnome-desktop" ,gnome-desktop)
640 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
641 ("gnome-online-accounts" ,gnome-online-accounts)
642 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
643 ("gstreamer" ,gstreamer)
644 ("ibus" ,ibus)
645 ("json-glib" ,json-glib)
646 ("krb5" ,mit-krb5)
647 ("libgweather" ,libgweather)
648 ("libsecret" ,libsecret)
649 ("network-manager" ,network-manager)
650 ("network-manager-applet" ,network-manager-applet)
651 ("packagekit" ,packagekit)
652 ("polkit" ,polkit)
653 ("pwquality" ,libpwquality)
654 ("rest" ,rest)
655 ("upower" ,upower)
c627e2cb
LC
656 ("webkitgtk" ,webkitgtk)
657 ("libgnomekbd" ,libgnomekbd)))
a26680eb 658 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
659 (description "This package provides a set-up wizard when a
660user logs into GNOME for the first time. It typically provides a
661tour of all gnome components and allows the user to set them up.")
a26680eb
RG
662 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
663 (license license:gpl2)))
664
b5f01392
RG
665(define-public gnome-user-share
666 (package
667 (name "gnome-user-share")
668 (version "3.33.1")
669 (source (origin
670 (method url-fetch)
671 (uri (string-append "mirror://gnome/sources/" name "/"
672 (version-major+minor version) "/"
673 name "-" version ".tar.xz"))
674 (sha256
675 (base32
676 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
677 (build-system meson-build-system)
678 (arguments
679 `(#:glib-or-gtk? #t
680 #:configure-flags
681 `("-Dsystemd=false"
682 ;; Enable nautilus extension for file sharing.
683 "-Dnautilus_extension=true")))
684 (native-inputs
685 `(("gettext" ,gettext-minimal)
686 ("glib:bin" ,glib "bin")
687 ("gobject-introspection" ,gobject-introspection)
688 ("gtk+:bin" ,gtk+ "bin")
689 ("pkg-config" ,pkg-config)
690 ("yelp-tools" ,yelp-tools)))
691 (inputs
692 `(("glib" ,glib)
693 ("gnome-bluetooth" ,gnome-bluetooth)
694 ("gtk+" ,gtk+)
695 ("libcanberra" ,libcanberra)
696 ("libnotify" ,libnotify)
697 ("nautilus" ,nautilus))) ; For nautilus extension.
698 (synopsis "File sharing for GNOME desktop")
699 (description "GNOME User Share is a small package that binds together
700various free software projects to bring easy to use user-level file
701sharing to the masses.")
702 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 703 (license license:gpl2+)))
b5f01392 704
04b201bb
RG
705(define-public sushi
706 (package
707 (name "sushi")
708 (version "3.32.1")
709 (source (origin
710 (method url-fetch)
711 (uri (string-append "mirror://gnome/sources/" name "/"
712 (version-major+minor version) "/"
713 name "-" version ".tar.xz"))
714 (sha256
715 (base32
716 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
717 (build-system meson-build-system)
718 (arguments
719 `(#:glib-or-gtk? #t
720 #:phases
721 (modify-phases %standard-phases
722 (add-after 'glib-or-gtk-wrap 'wrap-typelib
723 (lambda* (#:key outputs #:allow-other-keys)
724 (let ((prog (string-append (assoc-ref outputs "out")
725 "/bin/sushi")))
726 ;; Put existing typelibs before sushi's deps, so as to correctly
727 ;; infer gdk-pixbuf
728 (wrap-program prog
729 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
730 #t))))))
731 (native-inputs
732 `(("glib:bin" ,glib "bin")
733 ("gettext" ,gettext-minimal)
734 ("gobject-introspection" ,gobject-introspection)
735 ("pkg-config" ,pkg-config)))
736 (inputs
737 `(("clutter" ,clutter)
738 ("clutter-gst" ,clutter-gst)
739 ("clutter-gtk" ,clutter-gtk)
740 ("evince" ,evince) ; For file previewing.
741 ("freetype" ,freetype)
742 ("gdk-pixbuf" ,gdk-pixbuf)
743 ("gjs" ,gjs)
744 ("gst-plugins-base" ,gst-plugins-base)
745 ("gstreamer" ,gstreamer)
746 ("gtksourceview" ,gtksourceview-3)
747 ("harfbuzz" ,harfbuzz)
748 ("libepoxy" ,libepoxy)
749 ("libmusicbrainz" ,libmusicbrainz)
750 ("libxml2" ,libxml2)
751 ("neon" ,neon)
752 ("webkitgtk" ,webkitgtk)))
753 (synopsis "File previewer for the GNOME desktop")
754 (description "Sushi is a DBus-activated service that allows applications to
755preview files on the GNOME desktop.")
756 (home-page "https://gitlab.gnome.org/GNOME/sushi")
757 (license license:gpl2+)))
758
89af0902
RG
759(define-public rygel
760 (package
761 (name "rygel")
762 (version "0.38.3")
763 (source (origin
764 (method url-fetch)
765 (uri (string-append "mirror://gnome/sources/" name "/"
766 (version-major+minor version) "/"
767 name "-" version ".tar.xz"))
768 (sha256
769 (base32
770 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
771 (build-system gnu-build-system)
772 (native-inputs
773 `(("gettext" ,gettext-minimal)
774 ("gobject-introspection" ,gobject-introspection)
775 ("gtk-doc" ,gtk-doc)
776 ("pkg-config" ,pkg-config)
777 ("vala" ,vala)))
778 (inputs
779 `(("gdk-pixbuf" ,gdk-pixbuf)
780 ("gssdp" ,gssdp)
781 ("gstreamer" ,gstreamer)
782 ("gst-plugins-base" ,gst-plugins-base)
783 ("gtk+" ,gtk+)
784 ("gupnp" ,gupnp)
785 ("gupnp-av" ,gupnp-av)
786 ("gupnp-dlna" ,gupnp-dlna)
787 ("libgee" ,libgee)
788 ("libmediaart" ,libmediaart)
789 ("libsoup" ,libsoup)
790 ("libxslt" ,libxslt)
791 ("libunistring" ,libunistring)
792 ("tracker" ,tracker)))
793 (synopsis "Share audio, video, and pictures with other devices")
794 (description
795 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
796MediaRenderer}) for GNOME that allows you to easily share audio, video, and
797pictures, and to control a media player on your home network.
798
799Rygel achieves interoperability with other devices by trying to conform to the
800strict requirements of DLNA and by converting media on-the-fly to formats that
801client devices can handle.")
802 (home-page "https://wiki.gnome.org/Projects/Rygel")
803 (license (list
804 ;; For logo (data/icons/*).
805 license:cc-by-sa3.0
806 ;; For all others.
807 license:lgpl2.1+))))
808
47e87093
RG
809(define-public libnma
810 (package
b1da33d9
BW
811 (name "libnma")
812 (version "1.8.28")
813 (source (origin
814 (method url-fetch)
815 (uri (string-append "mirror://gnome/sources/" name "/"
816 (version-major+minor version) "/"
817 name "-" version ".tar.xz"))
818 (sha256
819 (base32
820 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
821 (build-system meson-build-system)
822 (arguments
823 `(#:phases
824 (modify-phases %standard-phases
825 (add-after 'unpack 'patch-docbook-xml
826 (lambda* (#:key inputs #:allow-other-keys)
827 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
828 "/xml/dtd/docbook")))
829 (substitute* "libnma-docs.xml"
830 (("http://.*/docbookx\\.dtd")
831 (string-append xmldoc "/docbookx.dtd")))
832 #t))))))
833 (native-inputs
834 `(("docbook-xml" ,docbook-xml-4.3)
835 ("gettext" ,gettext-minimal)
836 ("glib:bin" ,glib "bin")
837 ("gtk-doc" ,gtk-doc)
838 ("gobject-introspection" ,gobject-introspection)
839 ("pkg-config" ,pkg-config)
840 ("vala" ,vala)))
841 (inputs
842 `(("gcr" ,gcr)
843 ("gtk+" ,gtk+)
844 ("iso-codes" ,iso-codes)
845 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
846 ("network-manager" ,network-manager)))
847 (synopsis "Network Manager's applet library")
848 (description "Libnma is an applet library for Network Manager. It was
47e87093
RG
849initially part of network-manager-applet and has now become a separate
850project.")
c25ca6b7
BW
851 (home-page "https://gitlab.gnome.org/GNOME/libnma")
852 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
853 ;; "LGPL-2.1+".
854 (license license:gpl2+)))
47e87093 855
30416265
RG
856(define-public gnome-menus
857 (package
858 (name "gnome-menus")
859 (version "3.32.0")
860 (source (origin
861 (method url-fetch)
862 (uri (string-append "mirror://gnome/sources/gnome-menus/"
863 (version-major+minor version) "/"
864 name "-" version ".tar.xz"))
865 (sha256
866 (base32
867 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
868 (build-system gnu-build-system)
869 (native-inputs
870 `(("gettext" ,gettext-minimal)
871 ("glib" ,glib)
872 ("pkg-config" ,pkg-config)))
873 (synopsis "Menu support for GNOME desktop")
874 (description "GNOME Menus contains the libgnome-menu library, the layout
875configuration files for the GNOME menu, as well as a simple menu editor.")
876 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 877 (license license:lgpl2.0+)))
30416265 878
d61a894b
CB
879(define-public deja-dup
880 (package
881 (name "deja-dup")
882 (version "34.3")
883 (source (origin
884 (method url-fetch)
885 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
886 (sha256
887 (base32
888 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
889 (patches
890 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
891 (build-system glib-or-gtk-build-system)
892 (arguments
893 `(#:modules ((guix build gnu-build-system)
894 ((guix build cmake-build-system) #:prefix cmake:)
895 (guix build glib-or-gtk-build-system)
896 (guix build utils))
897 #:imported-modules (,@%glib-or-gtk-build-system-modules
898 (guix build cmake-build-system))
899 #:test-target "test"
900 #:configure-flags (list (string-append
901 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
902 (string-append
903 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
904 #:phases
905 (modify-phases %standard-phases
906 (add-after 'unpack 'patch-lockfile-deletion
907 (lambda rest
908 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
909 (("/bin/rm")
910 (which "rm")))))
911 (replace 'configure
912 (assoc-ref cmake:%standard-phases 'configure))
913 (delete 'check) ;; Fails due to issues with DBus
914 (add-after 'install 'wrap-deja-dup
915 (lambda* (#:key inputs outputs #:allow-other-keys)
916 (let ((python (assoc-ref inputs "python"))
917 (python-path (getenv "PYTHONPATH"))
918 (duplicity (assoc-ref inputs "duplicity"))
919 (out (assoc-ref outputs "out")))
920 (for-each
921 (lambda (program)
922 (wrap-program program
923 `("PATH" ":" prefix (,(string-append python "/bin")
924 ,(string-append duplicity "/bin"))))
925 (wrap-program program
926 `("PYTHONPATH" ":" prefix (,python-path))))
927
928 (find-files (string-append out "/bin")))
929 #t))))))
930 (inputs
931 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
932 ("gobject-introspection" ,gobject-introspection)
933 ("duplicity" ,duplicity)
61506fe5 934 ("python" ,python-2)
d61a894b
CB
935 ("python-pygobject" ,python2-pygobject)
936 ("gtk+" ,gtk+)
937 ("libnotify" ,libnotify)
938 ("libpeas" ,libpeas)
939 ("libsecret" ,libsecret)
940 ("packagekit" ,packagekit)))
941 (native-inputs
942 `(("pkg-config" ,pkg-config)
943 ("vala" ,vala)
944 ("gettext" ,gettext-minimal)
945 ("itstool" ,itstool)
946 ("intltool" ,intltool)
c69959f0 947 ("cmake" ,cmake-minimal)))
d61a894b
CB
948 (home-page "https://launchpad.net/deja-dup")
949 (synopsis "Simple backup tool, for regular encrypted backups")
950 (description
951 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
952uses duplicity as the backend, which supports incremental backups and storage
953either on a local, or remote machine via a number of methods.")
954 (license license:gpl3+)))
955
823b77fb
RG
956(define-public gnome-user-docs
957 (package
958 (name "gnome-user-docs")
959 (version "3.32.3")
960 (source
961 (origin
962 (method url-fetch)
963 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
964 (version-major+minor version)
965 "/gnome-user-docs-" version ".tar.xz"))
966 (sha256
967 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
968 (build-system gnu-build-system)
969 (native-inputs
970 `(("gettext" ,gettext-minimal)
971 ("itstool" ,itstool)
972 ("pkg-config" ,pkg-config)
973 ("xmllint" ,libxml2)))
974 (synopsis "User documentation for the GNOME desktop")
975 (description
976 "The GNOME User Documentation explains how to use the GNOME desktop and its
977components. It covers usage and setup of the core GNOME programs by end-users
978and system administrators.")
979 (home-page "https://live.gnome.org/DocumentationProject")
980 (license license:cc-by3.0)))
981
be93299d
RG
982(define-public gnome-getting-started-docs
983 (package
984 (name "gnome-getting-started-docs")
985 (version "3.32.2")
986 (source
987 (origin
988 (method url-fetch)
989 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
990 (version-major+minor version)
991 "/gnome-getting-started-docs-" version ".tar.xz"))
992 (sha256
993 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
994 (build-system gnu-build-system)
995 (native-inputs
996 `(("gettext" ,gettext-minimal)
997 ("itstool" ,itstool)
998 ("pkg-config" ,pkg-config)
999 ("xmllint" ,libxml2)))
1000 (synopsis "Help to get new users started with the GNOME desktop")
1001 (description
1002 "The GNOME Getting Started Documentation contains GNOME's intuitive
1003\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1004
1005It is normally used together with @command{gnome-initial-setup}, but is also
1006useful as a tutorial and users' guide for new or less experienced users.")
1007 (home-page "https://live.gnome.org/DocumentationProject")
1008 (license license:cc-by-sa3.0)))
1009
a56be436
RJ
1010(define-public dia
1011 ;; This version from GNOME's repository includes fixes for compiling with
1012 ;; recent versions of the build tools. The latest activity on the
1013 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1014 ;; fixes in 2016.
1015 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
1016 (package
1017 (name "dia")
914c8cdf 1018 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
1019 (source (origin
1020 (method git-fetch)
1021 (uri (git-reference
914c8cdf 1022 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1023 (commit commit)))
914c8cdf 1024 (file-name (git-file-name name version))
a56be436
RJ
1025 (sha256
1026 (base32
1027 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
1028 (build-system gnu-build-system)
1029 (inputs
a315afa3 1030 `(("freetype" ,freetype)
a56be436
RJ
1031 ("gdk-pixbuf" ,gdk-pixbuf)
1032 ("gtk+" ,gtk+-2)
a315afa3 1033 ("libart-lgpl" ,libart-lgpl)
a56be436 1034 ("libxml2" ,libxml2)
a315afa3 1035 ("pango" ,pango)))
a56be436 1036 (native-inputs
a315afa3 1037 `(("autoconf" ,autoconf)
a56be436 1038 ("automake" ,automake)
a315afa3
EF
1039 ("intltool" ,intltool)
1040 ("glib" ,glib "bin")
a56be436
RJ
1041 ("libtool" ,libtool)
1042 ("perl" ,perl)
a315afa3 1043 ("pkg-config" ,pkg-config)
a56be436 1044 ("python-wrapper" ,python-wrapper)))
a56be436
RJ
1045 (home-page "https://wiki.gnome.org/Apps/Dia")
1046 (synopsis "Diagram creation for GNOME")
1047 (description "Dia can be used to draw different types of diagrams, and
1048includes support for UML static structure diagrams (class diagrams), entity
1049relationship modeling, and network diagrams. The program supports various file
1050formats like PNG, SVG, PDF and EPS.")
1051 (license license:gpl2+))))
1052
d0b19e44
RW
1053;; This is the unstable release, but it is required for the current stable
1054;; release of gvfs (1.38.1).
adc5cb1b
KK
1055(define-public libgdata
1056 (package
1057 (name "libgdata")
d0b19e44 1058 (version "0.17.9")
adc5cb1b
KK
1059 (source (origin
1060 (method url-fetch)
1061 (uri (string-append "mirror://gnome/sources/" name "/"
1062 (version-major+minor version) "/"
1063 name "-" version ".tar.xz"))
1064 (sha256
1065 (base32
d0b19e44 1066 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1067 (build-system gnu-build-system)
1068 (arguments
1069 '(#:phases
1070 (modify-phases %standard-phases
448052b7
TGR
1071 (add-before 'check 'disable-failing-tests
1072 (lambda _
1073 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1074 ;; They have been removed in libgdata 0.17.6, so just do the same.
1075 (substitute* "gdata/tests/Makefile"
1076 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1077 #t)))))
1078 (native-inputs
1079 `(("glib:bin" ,glib "bin")
1080 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1081 ("intltool" ,intltool)
1082 ("pkg-config" ,pkg-config)
1083 ("uhttpmock" ,uhttpmock)))
1084 (inputs
1085 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1086 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1087 (propagated-inputs
1088 `(("gcr" ,gcr)
d0b19e44 1089 ("glib" ,glib)
14c297fd 1090 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1091 ("json-glib" ,json-glib)
adc5cb1b 1092 ("liboauth" ,liboauth)
d0b19e44 1093 ("libsoup" ,libsoup)
adc5cb1b
KK
1094 ("libxml2" ,libxml2)))
1095 (home-page "https://wiki.gnome.org/Projects/libgdata")
1096 (synopsis "Library for accessing online service APIs")
1097 (description
1098 "libgdata is a GLib-based library for accessing online service APIs using
1099the GData protocol — most notably, Google's services. It provides APIs to
1100access the common Google services, and has full asynchronous support.")
1101 (license license:lgpl2.1+)))
1102
94e10cf4
KK
1103(define-public libgxps
1104 (package
1105 (name "libgxps")
66470a5a 1106 (version "0.3.1")
94e10cf4
KK
1107 (source (origin
1108 (method url-fetch)
7f10628c 1109 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1110 (version-major+minor version) "/"
1111 name "-" version ".tar.xz"))
1112 (sha256
1113 (base32
66470a5a 1114 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1115 (build-system meson-build-system)
94e10cf4
KK
1116 (native-inputs
1117 `(("gobject-introspection" ,gobject-introspection)
1118 ("pkg-config" ,pkg-config)))
1119 (inputs
c8d62d93 1120 `(("gtk+" ,gtk+)
b6b3e512 1121 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1122 ("lcms" ,lcms)
0a6e9e13 1123 ("libtiff" ,libtiff)))
c8d62d93
MB
1124 (propagated-inputs
1125 ;; In Requires of libgxps.pc.
1126 `(("cairo" ,cairo)
1127 ("glib" ,glib)
1128 ("libarchive" ,libarchive)))
94e10cf4
KK
1129 (home-page "https://wiki.gnome.org/Projects/libgxps")
1130 (synopsis "GObject-based library for handling and rendering XPS documents")
1131 (description
1132 "libgxps is a GObject-based library for handling and rendering XPS
1133documents. This package also contains binaries that can convert XPS documents
1134to other formats.")
1135 (license license:lgpl2.1+)))
1136
4e09f57a
RG
1137(define-public gnome-characters
1138 (package
1139 (name "gnome-characters")
1140 (version "3.30.0")
1141 (source
1142 (origin
1143 (method url-fetch)
1144 (uri (string-append "mirror://gnome/sources/"
1145 "gnome-characters/" (version-major+minor version)
1146 "/gnome-characters-" version ".tar.xz"))
1147 (sha256
1148 (base32
1149 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1150 (build-system meson-build-system)
5757c641 1151 (arguments
1152 `(#:glib-or-gtk? #t
1153 #:phases (modify-phases %standard-phases
1154 (add-after 'install 'wrap
1155 (lambda* (#:key outputs #:allow-other-keys)
1156 ;; GNOME Characters needs Typelib files from GTK and
1157 ;; gnome-desktop.
1158 (wrap-program (string-append (assoc-ref outputs "out")
1159 "/bin/gnome-characters")
1160 `("GI_TYPELIB_PATH" ":" prefix
1161 (,(getenv "GI_TYPELIB_PATH"))))
1162 #t)))))
4e09f57a
RG
1163 (native-inputs
1164 `(("gettext" ,gettext-minimal)
1165 ("glib:bin" ,glib "bin")
1166 ("gtk+:bin" ,gtk+ "bin")
1167 ("pkg-config" ,pkg-config)
1168 ("python" ,python-minimal)))
1169 (inputs
1170 `(("gjs" ,gjs)
1171 ("gtk+" ,gtk+)
5757c641 1172 ("libunistring" ,libunistring)
1173 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1174 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1175 (synopsis "Find and insert unusual characters")
1176 (description "Characters is a simple utility application to find
1177and insert unusual characters. It allows you to quickly find the
1178character you are looking for by searching for keywords.")
1179 (license license:bsd-3)))
1180
7aab13f1
ML
1181(define-public gnome-common
1182 (package
1183 (name "gnome-common")
af83490d 1184 (version "3.18.0")
7aab13f1
ML
1185 (source
1186 (origin
1187 (method url-fetch)
1188 (uri (string-append "mirror://gnome/sources/" name "/"
1189 (version-major+minor version) "/"
1190 name "-" version ".tar.xz"))
1191 (sha256
1192 (base32
af83490d 1193 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1194 (build-system gnu-build-system)
1195 (home-page "https://www.gnome.org/")
1196 (synopsis "Bootstrap GNOME modules built from Git")
1197 (description "gnome-common contains various files needed to bootstrap
1198GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1199can be used to configure a source directory checked out from Git and some
1200commonly used macros.")
1201 (license license:gpl2+)))
1202
4e868d22
RG
1203(define-public gnome-contacts
1204 (package
1205 (name "gnome-contacts")
b3492e39 1206 (version "3.34")
4e868d22
RG
1207 (source (origin
1208 (method url-fetch)
1209 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1210 (version-major+minor version) "/"
1211 name "-" version ".tar.xz"))
1212 (sha256
1213 (base32
b3492e39 1214 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
4e868d22
RG
1215 (build-system meson-build-system)
1216 (arguments
b3492e39
KK
1217 `(#:configure-flags '("-Dcheese=false")
1218 #:phases
4e868d22
RG
1219 (modify-phases %standard-phases
1220 (add-after 'unpack 'generate-vapis
1221 (lambda* (#:key inputs #:allow-other-keys)
1222 ;; To generate goa's missing .vapi file
1223 (define goa
1224 (assoc-ref inputs "gnome-online-accounts:lib"))
1225
1226 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1227 "--library=goa-1.0"
1228 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
b3492e39
KK
1229 #t))
1230 (add-after 'unpack 'skip-gtk-update-icon-cache
1231 ;; Don't create 'icon-theme.cache'.
1232 (lambda _
1233 (substitute* "build-aux/meson_post_install.py"
1234 (("gtk-update-icon-cache") "true"))
4e868d22
RG
1235 #t)))))
1236 (native-inputs
1237 `(("glib:bin" ,glib "bin")
4e868d22
RG
1238 ("pkg-config" ,pkg-config)))
1239 (inputs
b3492e39 1240 `(("docbook-xml" ,docbook-xml)
4e868d22
RG
1241 ("dockbook-xsl" ,docbook-xsl)
1242 ("evolution-data-server" ,evolution-data-server)
1243 ("gettext" ,gettext-minimal)
1244 ("gnome-desktop" ,gnome-desktop)
1245 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1246 ("gobject-introspection" ,gobject-introspection)
1247 ("gst-plugins-base" ,gst-plugins-base)
1248 ("gtk+" ,gtk+)
1249 ("libgee" ,libgee)
1250 ("libxslt" ,libxslt)
1251 ("telepathy-glib" ,telepathy-glib)
1252 ("vala" ,vala)))
1253 (propagated-inputs
1254 `(("folks", folks)
1255 ("telepathy-mission-control" ,telepathy-mission-control)))
1256 (synopsis "GNOME's integrated address book")
1257 (description
1258 "GNOME Contacts organizes your contact information from online and
1259offline sources, providing a centralized place for managing your contacts.")
1260 (home-page "https://wiki.gnome.org/Apps/Contacts")
1261 (license license:gpl2+)))
1262
9cc98f8a
CR
1263(define-public gnome-desktop
1264 (package
1265 (name "gnome-desktop")
8a7afc81 1266 (version "3.34.2")
9cc98f8a
CR
1267 (source
1268 (origin
1269 (method url-fetch)
b38e45d8
EB
1270 (uri (string-append "mirror://gnome/sources/" name "/"
1271 (version-major+minor version) "/"
9cc98f8a
CR
1272 name "-" version ".tar.xz"))
1273 (sha256
1274 (base32
8a7afc81 1275 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
e8a26caa 1276 (build-system meson-build-system)
a0fe7c06
CB
1277 (arguments
1278 '(#:phases
1279 (modify-phases %standard-phases
1280 (add-before 'configure 'patch-path
1281 (lambda* (#:key inputs #:allow-other-keys)
1282 (let ((libc (assoc-ref inputs "libc")))
1283 (substitute* "libgnome-desktop/gnome-languages.c"
1284 (("\"locale\"")
1285 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
1286 #t)))
1287 (add-before 'check 'pre-check
1288 (lambda* (#:key inputs #:allow-other-keys)
1289 ;; Tests require a running X server and locales.
1290 (system "Xvfb :1 &")
1291 (setenv "DISPLAY" ":1")
1292 (setenv "GUIX_LOCPATH"
1293 (string-append (assoc-ref inputs "glibc-locales")
1294 "/lib/locale"))
1295 #t)))))
9cc98f8a 1296 (native-inputs
e8a26caa
KK
1297 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1298 ("glibc-locales" ,glibc-locales) ; for tests
1299 ("gobject-introspection" ,gobject-introspection)
a8340482 1300 ("itstool" ,itstool)
bcb354ad
SB
1301 ("intltool" ,intltool)
1302 ("pkg-config" ,pkg-config)
e8a26caa
KK
1303 ("xmllint" ,libxml2)
1304 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1305 (propagated-inputs
1306 ;; Required by gnome-desktop-3.0.pc.
1307 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1308 ("gtk+" ,gtk+)
9cc98f8a 1309 ("iso-codes" ,iso-codes)
9863ce20 1310 ("libseccomp" ,libseccomp)
9cc98f8a 1311 ("libx11" ,libx11)
e8a26caa
KK
1312 ("xkeyboard-config" ,xkeyboard-config)))
1313 (inputs
1314 `(("gdk-pixbuf" ,gdk-pixbuf)
1315 ("glib" ,glib)
9cc98f8a
CR
1316 ("libxext" ,libxext)
1317 ("libxkbfile" ,libxkbfile)
e8a26caa 1318 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1319 (home-page "https://www.gnome.org/")
1320 (synopsis
35b9e423 1321 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1322 (description
1323 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1324on the desktop, but that cannot live in the platform for various reasons.
1325There is no API or ABI guarantee, although we are doing our best to provide
1326stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1327
1328The gnome-about program helps find which version of GNOME is installed.")
1329 ; Some bits under the LGPL.
1dd26275 1330 (license license:gpl2+)))
9cc98f8a 1331
995b7261
AE
1332(define-public gnome-doc-utils
1333 (package
1334 (name "gnome-doc-utils")
1335 (version "0.20.10")
1336 (source
1337 (origin
1338 (method url-fetch)
b38e45d8
EB
1339 (uri (string-append "mirror://gnome/sources/" name "/"
1340 (version-major+minor version) "/"
995b7261
AE
1341 name "-" version ".tar.xz"))
1342 (sha256
1343 (base32
1344 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1345 (build-system gnu-build-system)
c4c4cc05 1346 (native-inputs
995b7261 1347 `(("intltool" ,intltool)
b4ce6300 1348 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1349 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1350 ("libxml2" ,libxml2)
1351 ("libxslt" ,libxslt)
1352 ("pkg-config" ,pkg-config)
1353 ("python-2" ,python-2)))
995b7261
AE
1354 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1355 (synopsis
1356 "Documentation utilities for the Gnome project")
1357 (description
1358 "Gnome-doc-utils is a collection of documentation utilities for the
1359Gnome project. It includes xml2po tool which makes it easier to translate
1360and keep up to date translations of documentation.")
1dd26275 1361 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1362
6c4f7022
DC
1363(define-public gnome-disk-utility
1364 (package
1365 (name "gnome-disk-utility")
262e660e 1366 (version "3.34.0")
6c4f7022
DC
1367 (source (origin
1368 (method url-fetch)
1369 (uri (string-append "mirror://gnome/sources/" name "/"
1370 (version-major+minor version) "/"
1371 name "-" version ".tar.xz"))
1372 (sha256
1373 (base32
262e660e 1374 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
4b9a65bf 1375 (build-system meson-build-system)
321c73c3 1376 (arguments
262e660e
KK
1377 '(#:configure-flags '("-Dlogind=libelogind")
1378 #:phases
321c73c3
EF
1379 (modify-phases %standard-phases
1380 (add-after 'unpack 'skip-gtk-update-icon-cache
1381 ;; Don't create 'icon-theme.cache'.
1382 (lambda _
1383 (substitute* "meson_post_install.py"
1384 (("gtk-update-icon-cache") "true"))
1385 #t)))))
6c4f7022
DC
1386 (native-inputs
1387 `(("glib:bin" ,glib "bin")
1388 ("intltool" ,intltool)
1389 ("pkg-config" ,pkg-config)
1390 ("docbook-xml" ,docbook-xml)
1391 ("docbook-xsl" ,docbook-xsl)
1392 ("libxml2" ,libxml2)
1393 ("libxslt" ,libxslt)))
1394 (inputs
262e660e
KK
1395 `(("elogind" ,elogind)
1396 ("glib" ,glib)
6c4f7022
DC
1397 ("appstream-glib" ,appstream-glib)
1398 ("gnome-settings-daemon" ,gnome-settings-daemon)
1399 ("gtk+" ,gtk+)
1400 ("libcanberra" ,libcanberra)
1401 ("libdvdread" ,libdvdread)
1402 ("libnotify" ,libnotify)
1403 ("libpwquality" ,libpwquality)
1404 ("libsecret" ,libsecret)
1405 ("udisks" ,udisks)))
1406 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1407 (synopsis "Disk management utility for GNOME")
1408 (description "Disk management utility for GNOME.")
1409 (license license:gpl2+)))
1410
3d217317
RG
1411(define-public gnome-font-viewer
1412 (package
1413 (name "gnome-font-viewer")
1414 (version "3.30.0")
1415 (source (origin
1416 (method url-fetch)
1417 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1418 (version-major+minor version)
1419 "/gnome-font-viewer-" version ".tar.xz"))
1420 (sha256
1421 (base32
1422 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1423 (build-system meson-build-system)
1424 (arguments
1425 '(#:phases
1426 (modify-phases %standard-phases
1427 (add-after 'unpack 'patch-post-install-script
1428 (lambda _
1429 (substitute* "meson-postinstall.sh"
1430 (("update-desktop-database") (which "true")))
1431 #t)))))
1432 (native-inputs
1433 `(("gettext" ,gettext-minimal)
1434 ("glib:bin" ,glib "bin")
1435 ("pkg-config" ,pkg-config)))
1436 (inputs
1437 `(("glib" ,glib)
1438 ("gnome-desktop" ,gnome-desktop)
1439 ("gtk+" ,gtk+)))
1440 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1441 (synopsis "GNOME Fonts")
1442 (description "Application to show you the fonts installed on your computer
1443for your use as thumbnails. Selecting any thumbnails shows the full view of how
1444the font would look under various sizes.")
1445 (license license:gpl2+)))
1446
8ff49011
RW
1447(define-public gcr
1448 (package
1449 (name "gcr")
1de804da 1450 (version "3.34.0")
8ff49011 1451 (source (origin
0daf0efb
RW
1452 (method url-fetch)
1453 (uri (string-append "mirror://gnome/sources/" name "/"
1454 (version-major+minor version) "/"
1455 name "-" version ".tar.xz"))
1456 (sha256
1457 (base32
1de804da 1458 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1459 (build-system gnu-build-system)
1460 (arguments
0daf0efb
RW
1461 '(#:phases
1462 (modify-phases %standard-phases
1463 ;; These fail because /var/lib/dbus/machine-id is not present in the
1464 ;; build environment.
1465 (add-after 'unpack 'disable-failing-tests
1466 (lambda _
1de804da
MB
1467 (substitute* "Makefile.in"
1468 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1469 ""))
0daf0efb
RW
1470 #t))
1471 (add-before 'check 'pre-check
1472 (lambda _
1473 ;; Some tests expect to write to $HOME.
1474 (setenv "HOME" "/tmp")
1475 #t)))))
8ff49011
RW
1476 (inputs
1477 `(("dbus" ,dbus)
0daf0efb 1478 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1479 ("libgcrypt" ,libgcrypt)))
1480 (native-inputs
1de804da 1481 `(("python" ,python-wrapper) ;for tests
8ff49011 1482 ("pkg-config" ,pkg-config)
1de804da 1483 ("gettext" ,gettext-minimal)
8ff49011 1484 ("glib" ,glib "bin")
2af4f5b0 1485 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1486 ("libxml2" ,libxml2)
bea6b829 1487 ("vala" ,vala)
2af4f5b0 1488 ("xsltproc" ,libxslt)))
8ff49011
RW
1489 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1490 (propagated-inputs
1491 `(("p11-kit" ,p11-kit)
1492 ("glib" ,glib)
1493 ("gtk+" ,gtk+)))
f032d0be 1494 (home-page "https://www.gnome.org")
8ff49011
RW
1495 (synopsis "Libraries for displaying certificates and accessing key stores")
1496 (description
1497 "The GCR package contains libraries used for displaying certificates and
1498accessing key stores. It also provides the viewer for crypto files on the
1499GNOME Desktop.")
1500 (license license:lgpl2.1+)))
1501
c1354b90
LC
1502(define-public libgnome-keyring
1503 (package
1504 (name "libgnome-keyring")
5e8aec2c 1505 (version "3.12.0")
c1354b90
LC
1506 (source (origin
1507 (method url-fetch)
b38e45d8
EB
1508 (uri (string-append "mirror://gnome/sources/" name "/"
1509 (version-major+minor version) "/"
1510 name "-" version ".tar.xz"))
c1354b90
LC
1511 (sha256
1512 (base32
5e8aec2c 1513 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1514 (build-system gnu-build-system)
c1354b90 1515 (inputs
c4c4cc05 1516 `(("libgcrypt" ,libgcrypt)
c1354b90 1517 ("dbus" ,dbus)))
c4c4cc05
JD
1518 (native-inputs
1519 `(("pkg-config" ,pkg-config)
426adbe8 1520 ("glib" ,glib "bin")
c4c4cc05 1521 ("intltool" ,intltool)))
c1354b90
LC
1522 (propagated-inputs
1523 ;; Referred to in .h files and .pc.
1524 `(("glib" ,glib)))
f032d0be 1525 (home-page "https://www.gnome.org")
c1354b90
LC
1526 (synopsis "Accessing passwords from the GNOME keyring")
1527 (description
1528 "Client library to access passwords from the GNOME keyring.")
1529
1530 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1531 (license license:lgpl2.0+)))
c1354b90 1532
e99a3d6f
RW
1533(define-public gnome-keyring
1534 (package
1535 (name "gnome-keyring")
14faeadd 1536 (version "3.34.0")
e99a3d6f
RW
1537 (source (origin
1538 (method url-fetch)
1539 (uri (string-append "mirror://gnome/sources/" name "/"
1540 (version-major+minor version) "/"
1541 name "-" version ".tar.xz"))
1542 (sha256
1543 (base32
14faeadd 1544 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
e99a3d6f
RW
1545 (build-system gnu-build-system)
1546 (arguments
1547 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1548 ;not exist
1549 #:configure-flags
1550 (list
1551 (string-append "--with-pkcs11-config="
1552 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1553 (string-append "--with-pkcs11-modules="
1554 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1555 #:phases
1556 (modify-phases %standard-phases
ab35cc6e
RW
1557 (add-after 'unpack 'fix-/bin/sh-reference
1558 (lambda _
1559 (substitute* "po/Makefile.in.in"
1560 (("/bin/sh") (which "sh")))
1561 #t))
5120f24f
RW
1562 (add-after 'unpack 'fix-docbook
1563 (lambda* (#:key inputs #:allow-other-keys)
1564 (substitute* "docs/Makefile.am"
1565 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1566 (string-append (assoc-ref inputs "docbook-xsl")
1567 "/xml/xsl/docbook-xsl-"
1568 ,(package-version docbook-xsl)
1569 "/manpages/docbook.xsl")))
1570 (setenv "XML_CATALOG_FILES"
1571 (string-append (assoc-ref inputs "docbook-xml")
1572 "/xml/dtd/docbook/catalog.xml"))
1573 ;; Rerun the whole thing to avoid version mismatch ("This is
1574 ;; Automake 1.15.1, but the definition used by this
1575 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1576 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1577 (invoke "autoconf")
1578 (invoke "aclocal")
1579 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1580 (inputs
1581 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1582 ("linux-pam" ,linux-pam)
ab35cc6e 1583 ("openssh" ,openssh)
e99a3d6f
RW
1584 ("dbus" ,dbus)
1585 ("gcr" ,gcr)))
1586 (native-inputs
1587 `(("pkg-config" ,pkg-config)
1588 ("glib" ,glib "bin")
5120f24f 1589 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1590 ("python" ,python-2) ;for tests
1591 ("intltool" ,intltool)
1592 ("autoconf" ,autoconf)
1593 ("automake" ,automake)
1594 ("libxslt" ,libxslt) ;for documentation
1595 ("docbook-xml" ,docbook-xml-4.2)
1596 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1597 (home-page "https://www.gnome.org")
e99a3d6f
RW
1598 (synopsis "Daemon to store passwords and encryption keys")
1599 (description
1600 "gnome-keyring is a program that keeps passwords and other secrets for
1601users. It is run as a daemon in the session, similar to ssh-agent, and other
1602applications locate it via an environment variable or D-Bus.
1603
1604The program can manage several keyrings, each with its own master password,
1605and there is also a session keyring which is never stored to disk, but
1606forgotten when the session ends.")
1607 (license license:lgpl2.1+)))
1608
c1354b90
LC
1609(define-public evince
1610 (package
1611 (name "evince")
936d5642 1612 (version "3.34.2")
c1354b90
LC
1613 (source (origin
1614 (method url-fetch)
ac631328 1615 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1616 (version-major+minor version) "/"
ac631328 1617 "evince-" version ".tar.xz"))
c1354b90
LC
1618 (sha256
1619 (base32
936d5642 1620 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1621 (build-system glib-or-gtk-build-system)
c1354b90 1622 (arguments
169b8f77 1623 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1624 #:phases
1625 (modify-phases %standard-phases
1626 (add-before 'install 'skip-gtk-update-icon-cache
1627 ;; Don't create 'icon-theme.cache'.
1628 (lambda _
1629 (substitute* "data/Makefile"
1630 (("gtk-update-icon-cache") "true"))
1631 #t)))))
c1354b90 1632 (inputs
9a096881
KK
1633 `(("libarchive" ,libarchive)
1634 ("libgxps" ,libgxps)
1635 ("libspectre" ,libspectre)
c769cf9f 1636 ("djvulibre" ,djvulibre)
c1354b90
LC
1637 ("ghostscript" ,ghostscript)
1638 ("poppler" ,poppler)
c769cf9f
SB
1639 ("libtiff" ,libtiff)
1640 ;; TODO:
c769cf9f
SB
1641 ;; Build libkpathsea as a shared library for DVI support.
1642 ;; ("libkpathsea" ,texlive-bin)
1643 ("gnome-desktop" ,gnome-desktop)
c1354b90 1644 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1645 ("gspell" ,gspell)
c1354b90 1646 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1647 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1648 ("gdk-pixbuf" ,gdk-pixbuf)
1649 ("atk" ,atk)
1650 ("pango" ,pango)
1651 ("gtk+" ,gtk+)
1652 ("glib" ,glib)
1653 ("libxml2" ,libxml2)
c1354b90
LC
1654 ("libsm" ,libsm)
1655 ("libice" ,libice)
96e42467 1656 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1657 ("dconf" ,dconf)
1658 ("libcanberra" ,libcanberra)
c769cf9f 1659 ("libsecret" ,libsecret)
a271096b 1660
c1354b90
LC
1661 ;; For tests.
1662 ("dogtail" ,python2-dogtail)))
96e42467 1663 (native-inputs
bcb354ad
SB
1664 `(("itstool" ,itstool)
1665 ("intltool" ,intltool)
426adbe8 1666 ("glib" ,glib "bin")
169b8f77 1667 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1668 ("pkg-config" ,pkg-config)
1669 ("xmllint" ,libxml2)))
c1354b90 1670 (home-page
f032d0be 1671 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1672 (synopsis "GNOME's document viewer")
1673 (description
1674 "Evince is a document viewer for multiple document formats. It
1675currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1676of Evince is to replace the multiple document viewers that exist
96e42467 1677on the GNOME Desktop with a single simple application.")
1dd26275 1678 (license license:gpl2+)))
c1354b90 1679
22e32e69
AE
1680(define-public gsettings-desktop-schemas
1681 (package
1682 (name "gsettings-desktop-schemas")
8468117e 1683 (version "3.34.0")
22e32e69
AE
1684 (source
1685 (origin
1686 (method url-fetch)
1687 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1688 (version-major+minor version) "/"
22e32e69
AE
1689 name "-" version ".tar.xz"))
1690 (sha256
1691 (base32
8468117e 1692 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
c900dabd 1693 (build-system meson-build-system)
65209ffa
LC
1694 (arguments
1695 '(#:phases (modify-phases %standard-phases
3861fb1c 1696 (add-after 'unpack 'patch-schemas
65209ffa 1697 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1698 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1699 (substitute* (find-files "schemas"
1700 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1701 ;; Provide the correct file name of the default GNOME
1702 ;; background, 'adwaita-timed.xml'.
65209ffa 1703 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1704 (string-append theme "/share/backgrounds/gnome"))
1705 ;; Do not reference fonts, that may not exist.
1706 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1707 #t))))))
22e32e69 1708 (inputs
65209ffa
LC
1709 `(("glib" ,glib)
1710 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1711 (native-inputs
1712 `(("intltool" ,intltool)
426adbe8 1713 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1714 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1715 ("pkg-config" ,pkg-config)))
1716 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1717 (synopsis
1718 "GNOME settings for various desktop components")
1719 (description
1720 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1721for settings shared by various components of the GNOME desktop.")
1dd26275 1722 (license license:lgpl2.1+)))
22e32e69 1723
27477d2d
AE
1724(define-public icon-naming-utils
1725 (package
1726 (name "icon-naming-utils")
1727 (version "0.8.90")
1728 (source
1729 (origin
1730 (method url-fetch)
5cc3096c 1731 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1732 version ".tar.bz2"))
1733 (sha256
1734 (base32
1735 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1736 (build-system gnu-build-system)
1737 (inputs
1738 `(("perl" ,perl)
1739 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1740 (arguments
1741 '(#:phases
dc1d3cde
KK
1742 (modify-phases %standard-phases
1743 (add-after 'install 'set-load-paths
1744 ;; Tell 'icon-name-mapping' where XML::Simple is.
1745 (lambda* (#:key outputs #:allow-other-keys)
1746 (let* ((out (assoc-ref outputs "out"))
1747 (prog (string-append out "/libexec/icon-name-mapping")))
1748 (wrap-program
1749 prog
1750 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1751 #t)))))
27477d2d
AE
1752 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1753 (synopsis
1754 "Utility to implement the Freedesktop Icon Naming Specification")
1755 (description
1756 "To help with the transition to the Freedesktop Icon Naming
1757Specification, the icon naming utility maps the icon names used by the
1758GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1759 (license license:lgpl2.1+)))
27477d2d 1760
7d3f3651
AE
1761(define-public gnome-icon-theme
1762 (package
1763 (name "gnome-icon-theme")
b32f58dd 1764 (version "3.12.0")
7d3f3651
AE
1765 (source
1766 (origin
1767 (method url-fetch)
1768 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1769 (version-major+minor version) "/"
7d3f3651
AE
1770 name "-" version ".tar.xz"))
1771 (sha256
1772 (base32
b32f58dd 1773 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1774 (build-system gnu-build-system)
5613c27d
SB
1775 (arguments
1776 '(#:configure-flags
1777 ;; Don't create 'icon-theme.cache'.
1778 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1779 (true (string-append coreutils "/bin/true")))
1780 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1781 (native-inputs
5613c27d 1782 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1783 ("intltool" ,intltool)
1784 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1785 (home-page "https://wiki.gnome.org/Personalization")
1786 (synopsis "GNOME icon theme")
1787 (description "Icons for the GNOME desktop.")
1dd26275 1788 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1789
14eeefa2
SB
1790;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1791(define-public adwaita-icon-theme
1792 (package (inherit gnome-icon-theme)
1793 (name "adwaita-icon-theme")
e21788f2 1794 (version "3.34.3")
14eeefa2
SB
1795 (source (origin
1796 (method url-fetch)
1797 (uri (string-append "mirror://gnome/sources/" name "/"
1798 (version-major+minor version) "/"
1799 name "-" version ".tar.xz"))
1800 (sha256
1801 (base32
e21788f2 1802 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
5613c27d
SB
1803 (native-inputs
1804 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1805
ae792dba
RW
1806(define-public tango-icon-theme
1807 (package
1808 (name "tango-icon-theme")
1809 (version "0.8.90")
1810 (source (origin
1811 (method url-fetch)
1812 (uri (string-append "http://tango.freedesktop.org/releases/"
1813 "tango-icon-theme-" version ".tar.bz2"))
1814 (sha256
1815 (base32
1816 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1817 (build-system gnu-build-system)
1818 (native-inputs
1819 `(("icon-naming-utils" ,icon-naming-utils)
1820 ("intltool" ,intltool)
1821 ("imagemagick" ,imagemagick)
1822 ("pkg-config" ,pkg-config)))
1823 (home-page "http://tango-project.org/")
1824 (synopsis "Tango icon theme")
1825 (description "This is an icon theme that follows the Tango visual
1826guidelines.")
1827 (license license:public-domain)))
1828
9167f8e6
LC
1829(define-public shared-mime-info
1830 (package
1831 (name "shared-mime-info")
404e386e 1832 (version "1.15")
9167f8e6
LC
1833 (source (origin
1834 (method url-fetch)
404e386e
MB
1835 (uri (string-append
1836 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1837 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1838 ".tar.xz"))
9167f8e6
LC
1839 (sha256
1840 (base32
404e386e 1841 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1842 (build-system gnu-build-system)
1843 (arguments
1844 ;; The build system appears not to be parallel-safe.
1845 '(#:parallel-build? #f))
1846 (inputs
1847 `(("glib" ,glib)
c4c4cc05 1848 ("libxml2" ,libxml2)))
9167f8e6 1849 (native-inputs
404e386e
MB
1850 `(("gettext" ,gettext-minimal)
1851 ("itstool" ,itstool)
c4c4cc05 1852 ("pkg-config" ,pkg-config)))
57e7d748 1853 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1854 (synopsis "Database of common MIME types")
1855 (description
1856 "The shared-mime-info package contains the core database of common types
1857and the update-mime-database command used to extend it. It requires glib2 to
1858be installed for building the update command. Additionally, it uses intltool
1859for translations, though this is only a dependency for the maintainers. This
1860database is translated at Transifex.")
1dd26275 1861 (license license:gpl2+)))
9167f8e6 1862
dd1fcddc
CB
1863(define-public system-config-printer
1864 (package
1865 (name "system-config-printer")
fa01e10d 1866 (version "1.5.12")
a5643044
TGR
1867 (source
1868 (origin
1869 (method url-fetch)
1870 (uri (string-append
1871 "https://github.com/OpenPrinting/system-config-printer/releases/"
1872 "download/" version
1873 "/system-config-printer-" version ".tar.xz"))
1874 (sha256
fa01e10d 1875 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1876 (build-system glib-or-gtk-build-system)
1877 (arguments
1878 `(#:imported-modules ((guix build python-build-system)
1879 ,@%glib-or-gtk-build-system-modules)
1880 #:phases
1881 (modify-phases %standard-phases
1882 (add-after 'unpack 'patch-Makefile.am
1883 (lambda _
1884 ;; The Makefile generates some scripts, so set a valid shebang
1885 (substitute* "Makefile.am"
1886 (("/bin/bash") (which "bash")))
1887 (delete-file "configure")
1888 #t))
1889 (add-after 'unpack 'patch-docbook-xml
1890 (lambda* (#:key inputs #:allow-other-keys)
1891 ;; Modify the man XML otherwise xmlto tries to access the network
1892 (substitute* "man/system-config-printer.xml"
1893 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1894 (string-append (assoc-ref inputs "docbook-xml")
1895 "/xml/dtd/docbook/")))
1896 #t))
1897 (add-after 'install 'wrap-for-python
1898 (@@ (guix build python-build-system) wrap))
1899 (add-after 'install 'wrap
1900 (lambda* (#:key outputs #:allow-other-keys)
1901 (let ((out (assoc-ref outputs "out"))
1902 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1903 (for-each
1904 (lambda (program)
1905 (wrap-program program
1906 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1907 (map (lambda (name)
1908 (string-append out "/bin/" name))
1909 '("system-config-printer"
1910 "system-config-printer-applet"
1911 "install-printerdriver"
1912 "scp-dbus-service"))))
1913 #t)))))
1914 (inputs
1915 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1916 ("gobject-introspection" ,gobject-introspection)
1917 ("python" ,python)
1918 ("cups" ,cups)
1919 ("python-dbus" ,python-dbus)
1920 ("python-pygobject" ,python-pygobject)
1921 ("python-pycups" ,python-pycups)
1922 ("python-requests" ,python-requests)
1923 ("python-pycairo" ,python-pycairo)
1924 ("libnotify" ,libnotify)
1925 ("packagekit" ,packagekit)))
1926 (native-inputs
1927 `(("pkg-config" ,pkg-config)
1928 ("desktop-file-utils" ,desktop-file-utils)
1929 ("glib" ,glib)
1930 ("autoconf" ,autoconf)
1931 ("automake" ,automake)
1932 ("intltool" ,intltool)
1933 ("xmlto" ,xmlto)
1934 ("docbook-xml" ,docbook-xml-4.1.2)
1935 ("docbook-xsl" ,docbook-xsl)
1936 ("libxml2" ,libxml2)))
1937 (home-page "https://github.com/zdohnal/system-config-printer")
1938 (synopsis "CUPS administration tool")
1939 (description
1940 "system-config-printer is a CUPS administration tool. It's written in
1941Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1942configuring CUPS.")
1943 (license license:gpl2+)))
1944
bef4dd92
AE
1945(define-public hicolor-icon-theme
1946 (package
1947 (name "hicolor-icon-theme")
851cb6dd 1948 (version "0.17")
bef4dd92
AE
1949 (source
1950 (origin
1951 (method url-fetch)
5cc3096c 1952 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1953 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1954 (sha256
1955 (base32
851cb6dd 1956 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1957 (build-system gnu-build-system)
1958 (arguments
1959 `(#:tests? #f)) ; no check target
57e7d748 1960 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1961 (synopsis
1962 "Freedesktop icon theme")
1963 (description
1964 "Freedesktop icon theme.")
1dd26275 1965 (license license:gpl2)))
bef4dd92 1966
d9c1a22b
AE
1967(define-public libnotify
1968 (package
1969 (name "libnotify")
195bfa68 1970 (version "0.7.7")
d9c1a22b
AE
1971 (source
1972 (origin
1973 (method url-fetch)
1974 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1975 (version-major+minor version) "/"
d9c1a22b
AE
1976 name "-" version ".tar.xz"))
1977 (sha256
1978 (base32
195bfa68 1979 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1980 (build-system gnu-build-system)
6acf6cec
MB
1981 (arguments
1982 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1983 (propagated-inputs
1984 `(;; In Requires of libnotify.pc.
1985 ("gdk-pixbuf" ,gdk-pixbuf)
1986 ("glib" ,glib)))
d9c1a22b 1987 (inputs
7ef08efa 1988 `(("gtk+" ,gtk+)
c4c4cc05
JD
1989 ("libpng" ,libpng)))
1990 (native-inputs
426adbe8 1991 `(("pkg-config" ,pkg-config)
277a7d82
JN
1992 ("glib" ,glib "bin")
1993 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1994 (home-page "https://developer-next.gnome.org/libnotify/")
1995 (synopsis
1996 "GNOME desktop notification library")
1997 (description
1998 "Libnotify is a library that sends desktop notifications to a
35b9e423 1999notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
2000notifications can be used to inform the user about an event or display
2001some form of information without getting in the user's way.")
1dd26275 2002 (license license:lgpl2.1+)))
7a8605ce
CR
2003
2004(define-public libpeas
2005 (package
2006 (name "libpeas")
f2d56e39 2007 (version "1.24.1")
7a8605ce
CR
2008 (source
2009 (origin
2010 (method url-fetch)
2011 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2012 (version-major+minor version) "/"
7a8605ce
CR
2013 name "-" version ".tar.xz"))
2014 (sha256
2015 (base32
f2d56e39
MB
2016 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2017 (build-system meson-build-system)
2018 (arguments
2019 '(#:phases
2020 (modify-phases %standard-phases
2021 (add-before 'check 'start-xserver
2022 (lambda* (#:key inputs #:allow-other-keys)
2023 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2024 (disp ":1"))
2025 (setenv "DISPLAY" disp)
2026 ;; Tests require a running X server.
2027 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2028 #t))))))
7a8605ce 2029 (inputs
2ed6522a
SB
2030 `(("gtk+" ,gtk+)
2031 ("glade" ,glade3)
2ed6522a
SB
2032 ("python" ,python)
2033 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2034 (native-inputs
2035 `(("pkg-config" ,pkg-config)
f2d56e39 2036 ("gettext" ,gettext-minimal)
93622993 2037 ("glib:bin" ,glib "bin")
141aed80 2038 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2039 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2040 (propagated-inputs
2041 ;; The .pc file "Requires" gobject-introspection.
2042 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2043 (home-page "https://wiki.gnome.org/Libpeas")
2044 (synopsis "GObject plugin system")
2045 (description
d1e4ad1b
TGR
2046 "Libpeas is a gobject-based plugin engine, targeted at giving every
2047application the chance to assume its own extensibility. It also has a set of
2048features including, but not limited to: multiple extension points; on-demand
2049(lazy) programming language support for C, Python and JS; simplicity of the
2050API.")
1dd26275 2051 (license license:lgpl2.0+)))
ed19903d
JD
2052
2053(define-public gtkglext
2054 (package
2055 (name "gtkglext")
2056 (version "1.2.0")
2057 (source (origin
2058 (method url-fetch)
0f971a04 2059 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2060 version "/gtkglext-" version ".tar.gz"))
2061 (sha256
2062 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2063 (patches (search-patches
2064 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2065 (build-system gnu-build-system)
14e2f61a
RW
2066 (arguments
2067 `(#:phases
2068 (modify-phases %standard-phases
2069 ;; Fix a collision between a local variable and a definition from
2070 ;; glibc's string.h.
2071 (add-after 'unpack 'fix-collision
2072 (lambda _
2073 (substitute* "gdk/gdkglshapes.c"
2074 ((" index") " triangle_index"))
2075 #t)))))
ed19903d
JD
2076 (inputs `(("gtk+" ,gtk+-2)
2077 ("mesa" ,mesa)
cc8b02f4 2078 ("glu" ,glu)
ed19903d
JD
2079 ("libx11" ,libx11)
2080 ("libxt" ,libxt)))
426adbe8
LC
2081 (native-inputs `(("pkg-config" ,pkg-config)
2082 ("glib" ,glib "bin")))
a83b6a06 2083 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2084 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2085 (synopsis "OpenGL extension to GTK+")
35b9e423 2086 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2087additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2088API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2089 (license license:lgpl2.1+)))
3600420e
JD
2090
2091(define-public glade3
2092 (package
2093 (name "glade")
c6571adb 2094 (version "3.22.1")
b38e45d8
EB
2095 (source (origin
2096 (method url-fetch)
2097 (uri (string-append "mirror://gnome/sources/" name "/"
2098 (version-major+minor version) "/"
f5ca44b8 2099 name "-" version ".tar.xz"))
3600420e 2100 (sha256
f714d9fe 2101 (base32
c6571adb 2102 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 2103 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
2104 (arguments
2105 `(#:tests? #f ; needs X, GL, and software rendering
2106 #:phases
2107 (modify-phases %standard-phases
2108 (add-before 'configure 'fix-docbook
2109 (lambda* (#:key inputs #:allow-other-keys)
2110 (substitute* "man/Makefile.in"
2111 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2112 (string-append (assoc-ref inputs "docbook-xsl")
2113 "/xml/xsl/docbook-xsl-"
2114 ,(package-version docbook-xsl)
2115 "/manpages/docbook.xsl")))
2116 #t)))))
3600420e 2117 (inputs
f5ca44b8 2118 `(("gtk+" ,gtk+)
3600420e
JD
2119 ("libxml2" ,libxml2)))
2120 (native-inputs
2121 `(("intltool" ,intltool)
f5ca44b8
RW
2122 ("itstool" ,itstool)
2123 ("libxslt" ,libxslt) ;for xsltproc
2124 ("docbook-xml" ,docbook-xml-4.2)
2125 ("docbook-xsl" ,docbook-xsl)
2126 ("python" ,python-2)
3600420e
JD
2127 ("pkg-config" ,pkg-config)))
2128 (home-page "https://glade.gnome.org")
2129 (synopsis "GTK+ rapid application development tool")
2130 (description "Glade is a rapid application development (RAD) tool to
2131enable quick & easy development of user interfaces for the GTK+ toolkit and
2132the GNOME desktop environment.")
1dd26275
LC
2133 (license license:lgpl2.0+)))
2134
2135(define-public libcroco
2136 (package
2137 (name "libcroco")
8bdacad2 2138 (version "0.6.13")
1dd26275
LC
2139 (source (origin
2140 (method url-fetch)
b38e45d8
EB
2141 (uri (string-append "mirror://gnome/sources/" name "/"
2142 (version-major+minor version) "/"
2143 name "-" version ".tar.xz"))
1dd26275
LC
2144 (sha256
2145 (base32
8bdacad2 2146 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2147 (build-system gnu-build-system)
2148 (native-inputs
2149 `(("pkg-config" ,pkg-config)))
2150 (inputs
2151 `(("glib" ,glib)
2152 ("libxml2" ,libxml2)
2153 ("zlib" ,zlib)))
2154 (home-page "https://github.com/GNOME/libcroco")
2155 (synopsis "CSS2 parsing and manipulation library")
2156 (description
2157 "Libcroco is a standalone CSS2 parsing and manipulation library.
2158The parser provides a low level event driven SAC-like API and a CSS object
2159model like API. Libcroco provides a CSS2 selection engine and an experimental
2160XML/CSS rendering engine.")
2161
2162 ;; LGPLv2.1-only.
2163 (license license:lgpl2.1)))
25178594
LC
2164
2165(define-public libgsf
2166 (package
2167 (name "libgsf")
2b9b854c 2168 (version "1.14.47")
25178594
LC
2169 (source (origin
2170 (method url-fetch)
b38e45d8
EB
2171 (uri (string-append "mirror://gnome/sources/" name "/"
2172 (version-major+minor version) "/"
2173 name "-" version ".tar.xz"))
25178594
LC
2174 (sha256
2175 (base32
2b9b854c 2176 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
25178594 2177 (build-system gnu-build-system)
23904adb
MB
2178 (arguments
2179 '(#:configure-flags '("--disable-static")))
25178594 2180 (native-inputs
0a1559cc
MB
2181 `(("pkg-config" ,pkg-config)
2182 ("gettext" ,gettext-minimal)
2183
2184 ;; For tests.
2185 ("perl" ,perl)
2186 ("perl-xml-parser" ,perl-xml-parser)))
25178594 2187 (inputs
4ffa9f6b 2188 `(("zlib" ,zlib)
25178594
LC
2189 ("bzip2" ,bzip2)))
2190 (propagated-inputs
2191 `(("gdk-pixbuf" ,gdk-pixbuf)
2192 ("glib" ,glib)
2193 ("libxml2" ,libxml2)))
f032d0be 2194 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2195 (synopsis "GNOME's Structured File Library")
2196 (description
2197 "Libgsf aims to provide an efficient extensible I/O abstraction for
2198dealing with different structured file formats.")
2199
2200 ;; LGPLv2.1-only.
2201 (license license:lgpl2.1)))
63016e7c
LC
2202
2203(define-public librsvg
f67417a1
MB
2204 (package
2205 (name "librsvg")
c1cc52a2 2206 (version "2.40.21")
f67417a1
MB
2207 (source (origin
2208 (method url-fetch)
2209 (uri (string-append "mirror://gnome/sources/" name "/"
2210 (version-major+minor version) "/"
2211 name "-" version ".tar.xz"))
2212 (sha256
2213 (base32
c1cc52a2 2214 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2215 (build-system gnu-build-system)
2216 (arguments
2217 `(#:configure-flags
2218 (list "--disable-static"
2219 "--enable-vala") ; needed for e.g. gnome-mines
2220 #:phases
2221 (modify-phases %standard-phases
2222 (add-before 'configure 'pre-configure
2223 (lambda* (#:key inputs #:allow-other-keys)
2224 (substitute* "gdk-pixbuf-loader/Makefile.in"
2225 ;; By default the gdk-pixbuf loader is installed under
2226 ;; gdk-pixbuf's prefix. Work around that.
2227 (("gdk_pixbuf_moduledir = .*$")
2228 (string-append "gdk_pixbuf_moduledir = "
2229 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2230 "loaders\n"))
2231 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2232 (("gdk_pixbuf_cache_file = .*$")
2233 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2234 #t))
2235 (add-before 'check 'remove-failing-tests
2236 (lambda _
2237 (with-directory-excursion "tests/fixtures/reftests"
2238 (for-each delete-file
2239 '(;; This test fails on i686:
2240 "svg1.1/masking-path-04-b.svg"
2241 ;; This test fails on armhf:
2242 "svg1.1/masking-mask-01-b.svg"
2243 ;; This test fails on aarch64:
2244 "bugs/777834-empty-text-children.svg")))
2245 #t)))))
2246 (native-inputs
2247 `(("pkg-config" ,pkg-config)
2248 ("vala" ,vala)
2249 ("glib" ,glib "bin") ; glib-mkenums, etc.
2250 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2251 (inputs
869b63cb
MB
2252 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2253 ;; this ancient version of librsvg.
2254 ("pango" ,pango-1.42)
f67417a1
MB
2255 ("libcroco" ,libcroco)
2256 ("bzip2" ,bzip2)
2257 ("libgsf" ,libgsf)
2258 ("libxml2" ,libxml2)))
2259 (propagated-inputs
2260 ;; librsvg-2.0.pc refers to all of that.
2261 `(("cairo" ,cairo)
2262 ("gdk-pixbuf" ,gdk-pixbuf)
2263 ("glib" ,glib)))
2264 (home-page "https://wiki.gnome.org/LibRsvg")
2265 (synopsis "Render SVG files using Cairo")
2266 (description
2267 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2268library.")
2269 (license license:lgpl2.0+)))
2270
2271(define-public librsvg-next
63016e7c 2272 (package
25d39a2a 2273 (inherit librsvg)
63016e7c 2274 (name "librsvg")
3276e123 2275 (version "2.46.4")
69568670
EF
2276 (source (origin
2277 (method url-fetch)
2278 (uri (string-append "mirror://gnome/sources/librsvg/"
2279 (version-major+minor version) "/"
2280 "librsvg-" version ".tar.xz"))
2281 (sha256
2282 (base32
2283 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2284 (modules '((guix build utils)))
2285 (snippet
2286 '(begin (delete-file-recursively "vendor")
2287 ;; Don't demand an exact version for string_cache
2288 (substitute* "rsvg_internals/Cargo.toml"
2289 (("\"=") "\""))
2290 #t))))
2291 (build-system cargo-build-system)
63016e7c 2292 (arguments
69568670
EF
2293 `(#:modules ((guix build cargo-build-system)
2294 (guix build utils)
2295 ((guix build gnu-build-system) #:prefix gnu:))
2296 #:vendor-dir "vendor"
2297 #:cargo-inputs
2298 (("rust-bitflags" ,rust-bitflags-1)
2299 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2300 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2301 ("rust-cssparser" ,rust-cssparser-0.25)
2302 ("rust-data-url" ,rust-data-url-0.1)
2303 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2304 ("rust-encoding" ,rust-encoding-0.2)
2305 ("rust-float-cmp" ,rust-float-cmp-0.5)
2306 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2307 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2308 ("rust-gio" ,rust-gio-0.7)
2309 ("rust-gio-sys" ,rust-gio-sys-0.9)
2310 ("rust-glib" ,rust-glib-0.8)
2311 ("rust-glib-sys" ,rust-glib-sys-0.9)
2312 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2313 ("rust-itertools" ,rust-itertools-0.8)
2314 ("rust-language-tags" ,rust-language-tags-0.2)
2315 ("rust-lazy-static" ,rust-lazy-static-1)
2316 ("rust-libc" ,rust-libc-0.2)
2317 ("rust-locale-config" ,rust-locale-config-0.3)
2318 ("rust-markup5ever" ,rust-markup5ever-0.9)
2319 ("rust-nalgebra" ,rust-nalgebra-0.18)
2320 ("rust-num-traits" ,rust-num-traits-0.2)
2321 ("rust-pkg-config" ,rust-pkg-config-0.3)
2322 ("rust-pango" ,rust-pango-0.7)
2323 ("rust-pango-sys" ,rust-pango-sys-0.9)
2324 ("rust-pangocairo" ,rust-pangocairo-0.8)
2325 ("rust-phf" ,rust-phf-0.7)
2326 ("rust-rayon" ,rust-rayon-1.3)
2327 ("rust-rctree" ,rust-rctree-0.3)
2328 ("rust-string-cache" ,rust-string-cache-0.7)
2329 ("rust-regex" ,rust-regex-1.3)
2330 ("rust-url" ,rust-url-2.1)
2331 ("rust-xml-rs" ,rust-xml-rs-0.8))
2332 #:cargo-development-inputs
2333 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2334 ("rust-criterion" ,rust-criterion-0.2))
ec47c07d 2335 #:phases
b6239e45 2336 (modify-phases %standard-phases
69568670 2337 (add-after 'unpack 'prepare-for-build
ec47c07d 2338 (lambda _
69568670
EF
2339 ;; In lieu of #:make-flags
2340 (setenv "CC" "gcc")
2341 ;; Something about the build environment resists building
2342 ;; successfully with the '--locked' flag.
2343 (substitute* '("Makefile.am"
2344 "Makefile.in")
2345 (("--locked") ""))
2346 #t))
b6239e45 2347 (add-before 'configure 'pre-configure
69568670 2348 (lambda _
b6239e45
EF
2349 (substitute* "gdk-pixbuf-loader/Makefile.in"
2350 ;; By default the gdk-pixbuf loader is installed under
2351 ;; gdk-pixbuf's prefix. Work around that.
2352 (("gdk_pixbuf_moduledir = .*$")
2353 (string-append "gdk_pixbuf_moduledir = "
2354 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2355 "loaders\n"))
2356 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2357 (("gdk_pixbuf_cache_file = .*$")
2358 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2359 #t))
69568670
EF
2360 (add-after 'configure 'gnu-configure
2361 (assoc-ref gnu:%standard-phases 'configure))
2362 ;(lambda* (#:key outputs #:allow-other-keys)
2363 ; ((assoc-ref gnu:%standard-phases 'configure)
2364 ; #:outputs outputs
2365 ; #:configure-flags ("--disable-static"
2366 ; "--enable-vala"))))
2367 (add-after 'configure 'dont-vendor-self
2368 (lambda* (#:key vendor-dir #:allow-other-keys)
2369 ;; Don't keep the whole tarball in the vendor directory
2370 (delete-file-recursively
2371 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2372 #t))
2373 (replace 'build
2374 (assoc-ref gnu:%standard-phases 'build))
2375 (replace 'check
2376 (lambda* args
2377 ((assoc-ref gnu:%standard-phases 'check)
2378 #:test-target "check")))
2379 (replace 'install
2380 (assoc-ref gnu:%standard-phases 'install))
ec47c07d 2381 (add-before 'check 'remove-failing-tests
b6239e45 2382 (lambda _
64a153bd
MW
2383 (with-directory-excursion "tests/fixtures/reftests"
2384 (for-each delete-file
ec47c07d
MB
2385 '(;; The images produced by these tests differ slightly
2386 ;; from their reference counterparts due to differences
2387 ;; in the build environment (missing fonts, etc). See
2388 ;; <tests/README.md> for details.
2389 ;; These fail on x86_64.
2390 "svg1.1/coords-viewattr-02-b.svg"
2391 "svg1.1/filters-composite-04-f.svg"
2392 "svg1.1/filters-image-01-b.svg"
2393 "svg1.1/filters-conv-02-f.svg"
2394 "svg1.1/filters-conv-04-f.svg"
2395 ;; This test fails on i686:
64a153bd 2396 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
2397 ;; This test fails on armhf:
2398 "svg1.1/masking-mask-01-b.svg"
64a153bd 2399 ;; This test fails on aarch64:
ec47c07d 2400 "bugs/777834-empty-text-children.svg")))
b6239e45 2401 #t)))))
cf9dad6c 2402 (license license:lgpl2.1+)))
5698b8b8
JD
2403
2404(define-public libidl
2405 (package
2406 (name "libidl")
2407 (version "0.8.14")
2408 (source (origin
2409 (method url-fetch)
80a06e62
EF
2410 (uri (string-append "mirror://gnome/sources/libIDL/"
2411 (version-major+minor version) "/"
2412 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2413 (sha256
2414 (base32
2415 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2416 (build-system gnu-build-system)
2417 (inputs `(("glib" ,glib)))
2418 (native-inputs
2419 `(("pkg-config" ,pkg-config)
b3546174 2420 ("flex" ,flex)
5698b8b8
JD
2421 ("bison" ,bison)))
2422 (home-page "http://freecode.com/projects/libidl")
2423 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2424 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2425Definition Language (idl) files, which is a specification for defining
2426portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2427GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2428functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2429 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2430 (license license:lgpl2.0+)))
2431
2432
2433(define-public orbit2
2434 (package
2435 (name "orbit2")
2436 (version "2.14.19")
2437 (source (origin
2438 (method url-fetch)
2e6ecc5c 2439 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2440 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2441 (version-major+minor version) "/"
2442 upstream-name "-" version ".tar.bz2")))
5698b8b8 2443 (sha256
a124bbd2
SB
2444 (base32
2445 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2446 (build-system gnu-build-system)
2447 (arguments
c2d837b9
MB
2448 `(;; The "timeout-server" test hangs when run in parallel.
2449 #:parallel-tests? #f
2450 #:configure-flags
8aad2e32
LC
2451 '(;; We don't need static libraries, plus they don't build reproducibly
2452 ;; (non-deterministic ordering of .o files in the archive.)
2453 "--disable-static"
2454
2455 ;; The programmer kindly gives us a hook to turn off deprecation
2456 ;; warnings ...
2457 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2458 ;; ... which they then completly ignore !!
2459 #:phases
dc1d3cde
KK
2460 (modify-phases %standard-phases
2461 (add-before 'configure 'ignore-deprecations
2462 (lambda _
2463 (substitute* "linc2/src/Makefile.in"
2464 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2465 #t)))))
5698b8b8
JD
2466 (inputs `(("glib" ,glib)
2467 ("libidl" ,libidl)))
2468 (native-inputs
2469 `(("pkg-config" ,pkg-config)))
2470 (home-page "https://projects.gnome.org/orbit2/")
2471 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2472 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2473featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2474 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2475 ;; a version. SOME of the code files have licence notices for GPLv2+.
2476 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2477 (license license:gpl2+)
2478 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2479
2480
2481(define-public libbonobo
2482 (package
2483 (name "libbonobo")
2484 (version "2.32.1")
2485 (source (origin
2486 (method url-fetch)
5becd025 2487 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2488 (version-major+minor version)
5becd025 2489 "/" name "-" version ".tar.bz2"))
5698b8b8 2490 (sha256
f1fc45a9 2491 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2492 (patches (search-patches
2493 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2494 (build-system gnu-build-system)
2495 (arguments
2496 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2497 `(#:configure-flags
2498 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2499 ;; ... which they then completly ignore !!
2500 #:phases
dc1d3cde
KK
2501 (modify-phases %standard-phases
2502 (add-before 'configure 'ignore-deprecations
2503 (lambda _
2504 (substitute* "activation-server/Makefile.in"
2505 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2506 #t)))
2507
2508 ;; There's apparently a race condition between the server stub
2509 ;; generation and linking of the example under 'samples/echo' that can
2510 ;; lead do undefined references when building in parallel, as reported
2511 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2512 ;; Thus, disable parallel builds.
2513 #:parallel-build? #f))
5698b8b8
JD
2514 (inputs `(("popt" ,popt)
2515 ("libxml2" ,libxml2)))
2516 ;; The following are Required by the .pc file
44add1ce 2517 (propagated-inputs
5698b8b8
JD
2518 `(("glib" ,glib)
2519 ("orbit2" ,orbit2)))
2520 (native-inputs
2521 `(("intltool" ,intltool)
2522 ("pkg-config" ,pkg-config)
221ed17a 2523 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2524 ("flex" ,flex)
2525 ("bison" ,bison)))
2526 (home-page "https://developer.gnome.org/libbonobo/")
2527 (synopsis "Framework for creating reusable components for use in GNOME applications")
2528 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2529use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2530 ;; Licence not explicitly stated. Source files contain no licence notices.
2531 ;; Tarball contains text of both GPLv2 and LGPLv2
2532 ;; GPLv2 covers both conditions
2533 (license license:gpl2+)))
2534
2535
2536(define-public gconf
2537 (package
2538 (name "gconf")
2539 (version "3.2.6")
2540 (source (origin
2541 (method url-fetch)
a124bbd2
SB
2542 (uri
2543 (let ((upstream-name "GConf"))
2544 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2545 (version-major+minor version) "/"
2546 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2547 (sha256
2548 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2549 (build-system gnu-build-system)
2e88d113 2550 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2551 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2552 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2553 ("orbit2" ,orbit2)))
5698b8b8
JD
2554 (native-inputs
2555 `(("intltool" ,intltool)
221ed17a 2556 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2557 ("pkg-config" ,pkg-config)))
2558 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2559 (synopsis "Store application preferences")
2560 (description "Gconf is a system for storing application preferences. It
2561is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2562 (license license:lgpl2.0+)
2563 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2564
2565
2566(define-public gnome-mime-data
2567 (package
2568 (name "gnome-mime-data")
2569 (version "2.18.0")
2570 (source (origin
2571 (method url-fetch)
b38e45d8
EB
2572 (uri (string-append "mirror://gnome/sources/" name "/"
2573 (version-major+minor version) "/"
2574 name "-" version ".tar.bz2"))
5698b8b8
JD
2575 (sha256
2576 (base32
2577 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2578 (build-system gnu-build-system)
2579 (native-inputs
2580 `(("perl" ,perl)
2581 ("intltool" ,intltool)))
3e6add96
LC
2582 (arguments
2583 '(#:phases (modify-phases %standard-phases
2584 (add-after 'configure 'use-our-intltool
2585 (lambda _
2586 ;; Do not use the bundled intltool commands, which lack
2587 ;; the "dotless @INC" fixes of our 'intltool' package.
2588 (substitute* (find-files "." "^Makefile$")
2589 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2590 (string-append "INTLTOOL_" tool " = intltool-"
2591 (string-downcase tool) "\n")))
2592 #t)))))
f032d0be 2593 (home-page "https://www.gnome.org")
35b9e423 2594 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2595 (description "GNOME Mime Data is a module which contains the base MIME
2596and Application database for GNOME. The data stored by this module is
2597designed to be accessed through the MIME functions in GnomeVFS.")
2598 (license license:gpl2+)))
2599
2600
2601(define-public gnome-vfs
2602 (package
2603 (name "gnome-vfs")
2604 (version "2.24.4")
2605 (source (origin
2606 (method url-fetch)
b38e45d8
EB
2607 (uri (string-append "mirror://gnome/sources/" name "/"
2608 (version-major+minor version) "/"
2609 name "-" version ".tar.bz2"))
5698b8b8 2610 (sha256
9e12bc34
MW
2611 (base32
2612 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2613 (build-system gnu-build-system)
2614 (arguments
db5127d8 2615 `(#:phases
dc1d3cde
KK
2616 (modify-phases %standard-phases
2617 (add-before 'configure 'ignore-deprecations
2618 (lambda _
2619 (substitute* '("libgnomevfs/Makefile.in"
2620 "daemon/Makefile.in")
2621 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2622 #t))
2623 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2624 (lambda _
2625 (substitute* "test/test-async-cancel.c"
2626 (("EXIT_FAILURE") "77"))
2627 #t)))))
2e6ecc5c 2628 (inputs `(("libxml2" ,libxml2)
5698b8b8 2629 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2630 ("gconf" ,gconf)
2631 ("gnome-mime-data" ,gnome-mime-data)
2632 ("zlib" ,zlib)))
2633 (native-inputs
221ed17a
EB
2634 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2635 ("intltool" ,intltool)
5698b8b8
JD
2636 ("pkg-config" ,pkg-config)))
2637 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2638 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2639 (description
2640 "GnomeVFS is the core library used to access files and folders in GNOME
2641applications. It provides a file system abstraction which allows applications
2642to access local and remote files with a single consistent API.")
5698b8b8
JD
2643 (license license:lgpl2.0+)))
2644
2645
2646
2647(define-public libgnome
2648 (package
2649 (name "libgnome")
2650 (version "2.32.1")
2651 (source (origin
2652 (method url-fetch)
b38e45d8
EB
2653 (uri (string-append "mirror://gnome/sources/" name "/"
2654 (version-major+minor version) "/"
2655 name "-" version ".tar.bz2"))
5698b8b8
JD
2656 (sha256
2657 (base32
17c3eea7
LC
2658 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2659 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2660 (build-system gnu-build-system)
2661 (arguments
2662 `(#:phases
dc1d3cde
KK
2663 (modify-phases %standard-phases
2664 (add-before 'configure 'enable-deprecated
2665 (lambda _
2666 (substitute* "libgnome/Makefile.in"
2667 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2668 #t)))))
25338e9f 2669 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2670 (native-inputs
221ed17a
EB
2671 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2672 ("intltool" ,intltool)
5698b8b8
JD
2673 ("pkg-config" ,pkg-config)))
2674 ;; The following are listed as Required in the .pc file
2675 ;; (except for libcanberra -- which seems to be oversight on the part
2676 ;; of the upstream developers -- anything that links against libgnome,
2677 ;; must also link against libcanberra
2678 (propagated-inputs
2679 `(("libcanberra" ,libcanberra)
2680 ("libbonobo" ,libbonobo)
2681 ("gconf" ,gconf)
a640d3d5
LC
2682 ("gnome-vfs" ,gnome-vfs)
2683 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2684 (home-page "https://developer.gnome.org/libgnome/")
2685 (synopsis "Useful routines for building applications")
2686 (description "The libgnome library provides a number of useful routines
2687for building modern applications, including session management, activation of
2688files and URIs, and displaying help.")
2689 (license license:lgpl2.0+)))
2690
2691
2692(define-public libart-lgpl
2693 (package
2694 (name "libart-lgpl")
76c9b6aa 2695 (version "2.3.21")
5698b8b8
JD
2696 (source (origin
2697 (method url-fetch)
2698 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2699 (string-append "mirror://gnome/sources/" upstream-name "/"
2700 (version-major+minor version) "/"
2701 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2702 (sha256
2703 (base32
76c9b6aa 2704 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2705 (build-system gnu-build-system)
2706 (native-inputs
2707 `(("pkg-config" ,pkg-config)))
2708 (home-page "https://people.gnome.org/~mathieu/libart")
2709 (synopsis "2D drawing library")
2e6ecc5c 2710 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2711high-quality vector-based 2D library with antialiasing and alpha composition.")
2712 (license license:lgpl2.0+)))
2713
2714
2715
2716(define-public libgnomecanvas
2717 (package
2718 (name "libgnomecanvas")
2719 (version "2.30.3")
2720 (source (origin
2721 (method url-fetch)
b38e45d8
EB
2722 (uri (string-append "mirror://gnome/sources/" name "/"
2723 (version-major+minor version) "/"
2724 name "-" version ".tar.gz"))
5698b8b8
JD
2725 (sha256
2726 (base32
2727 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2728 (build-system gnu-build-system)
2729 ;; Mentioned as Required in the .pc file
2730 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2731 ("gtk+" ,gtk+-2)))
2732 (native-inputs
2733 `(("intltool" ,intltool)
221ed17a 2734 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2735 ("pkg-config" ,pkg-config)))
2736 (home-page "https://developer.gnome.org/libgnomecanvas/")
2737 (synopsis "Flexible widget for creating interactive structured graphics")
2738 (description "The GnomeCanvas widget provides a flexible widget for
2739creating interactive structured graphics.")
2740 (license license:lgpl2.0+)))
2741
eadc734e
RW
2742(define-public libgnomecanvasmm
2743 (package
2744 (name "libgnomecanvasmm")
2745 (version "2.26.0")
2746 (source (origin
2747 (method url-fetch)
2748 (uri (string-append "mirror://gnome/sources/" name "/"
2749 (version-major+minor version) "/"
2750 name "-" version ".tar.bz2"))
2751 (sha256
2752 (base32
2753 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2754 (build-system gnu-build-system)
2755 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2756 (native-inputs
2757 `(("gtkmm-2" ,gtkmm-2)
2758 ("pkg-config" ,pkg-config)))
8e933cb3 2759 (home-page "https://gtkmm.org")
eadc734e
RW
2760 (synopsis "C++ bindings to the GNOME Canvas library")
2761 (description "C++ bindings to the GNOME Canvas library.")
2762 (license license:lgpl2.0+)))
2763
5698b8b8
JD
2764(define-public libgnomeui
2765 (package
2766 (name "libgnomeui")
2767 (version "2.24.5")
2768 (source (origin
2769 (method url-fetch)
b38e45d8
EB
2770 (uri (string-append "mirror://gnome/sources/" name "/"
2771 (version-major+minor version) "/"
2772 name "-" version ".tar.bz2"))
8fa1872a 2773 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2774 (sha256
2775 (base32
2776 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2777 (build-system gnu-build-system)
2778 ;; Mentioned as Required in the .pc file
0a38a497
AE
2779 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2780 ("libgnome" ,libgnome)
2781 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2782 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2783 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2784 ("popt" ,popt)
2785 ("libbonobo" ,libbonobo)
2786 ("libxml2" ,libxml2)
2787 ("libglade" ,libglade)))
2788 (native-inputs
221ed17a
EB
2789 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2790 ("intltool" ,intltool)
5698b8b8
JD
2791 ("pkg-config" ,pkg-config)))
2792 (home-page "https://developer.gnome.org/libgnomeui/")
2793 (synopsis "Additional widgets for applications")
35b9e423 2794 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2795applications. Many of the widgets from libgnomeui have already been
2796ported to GTK+.")
5698b8b8
JD
2797 (license license:lgpl2.0+)))
2798
2799(define-public libglade
2800 (package
2801 (name "libglade")
2802 (version "2.6.4")
2803 (source (origin
2804 (method url-fetch)
b38e45d8
EB
2805 (uri (string-append "mirror://gnome/sources/" name "/"
2806 (version-major+minor version) "/"
2807 name "-" version ".tar.bz2"))
5698b8b8
JD
2808 (sha256
2809 (base32
2810 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2811 (build-system gnu-build-system)
2812 (inputs
92dcc23d
AE
2813 `(("python" ,python))) ;; needed for the optional libglade-convert program
2814 (propagated-inputs
5698b8b8 2815 `(("gtk+-2" ,gtk+-2)
92dcc23d 2816 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2817 (native-inputs
2818 `(("pkg-config" ,pkg-config)))
2819 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2820 (synopsis "Load glade interfaces and access the glade built widgets")
2821 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2822graphical interfaces described in glade files and for accessing the
2823widgets built in the loading process.")
2824 (license license:gpl2+))) ; This is correct. GPL not LGPL
2825
2826(define-public libgnomeprint
eb497b66
LC
2827 ;; This library has been deprecated since 2006; see
2828 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2829 (package
2830 (name "libgnomeprint")
d19db454 2831 (version "2.18.8")
5698b8b8
JD
2832 (source (origin
2833 (method url-fetch)
b38e45d8
EB
2834 (uri (string-append "mirror://gnome/sources/" name "/"
2835 (version-major+minor version) "/"
2836 name "-" version ".tar.bz2"))
5698b8b8
JD
2837 (sha256
2838 (base32
d19db454 2839 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2840 (build-system gnu-build-system)
2841 (inputs
2842 `(("popt" ,popt)
2843 ("libart-lgpl" ,libart-lgpl)
2844 ("gtk+" ,gtk+-2)
44add1ce 2845 ("libxml2" ,libxml2)))
5698b8b8
JD
2846 (native-inputs
2847 `(("intltool" ,intltool)
221ed17a 2848 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2849 ("pkg-config" ,pkg-config)))
2850 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2851 (synopsis "Printing framework for GNOME")
eb497b66
LC
2852 (description
2853 "GNOME-print was a printing framework for GNOME. It has been deprecated
2854since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2855 (license license:lgpl2.0+)))
2856
2857
2858(define-public libgnomeprintui
eb497b66 2859 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2860 (package
2861 (name "libgnomeprintui")
36053d7f 2862 (version "2.18.6")
5698b8b8
JD
2863 (source (origin
2864 (method url-fetch)
b38e45d8
EB
2865 (uri (string-append "mirror://gnome/sources/" name "/"
2866 (version-major+minor version) "/"
2867 name "-" version ".tar.bz2"))
5698b8b8
JD
2868 (sha256
2869 (base32
36053d7f 2870 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2871 (build-system gnu-build-system)
2872 ;; Mentioned as Required in the .pc file
2873 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2874 (inputs `(("gtk+" ,gtk+-2)
2875 ("glib" ,glib)
2876 ("gnome-icon-theme" ,gnome-icon-theme)
2877 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2878 ("libxml2" ,libxml2)))
5698b8b8
JD
2879 (native-inputs
2880 `(("intltool" ,intltool)
2881 ("pkg-config" ,pkg-config)))
2882 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2883 (synopsis "Printing framework for GNOME")
eb497b66 2884 (description (package-description libgnomeprint))
5698b8b8
JD
2885 (license license:lgpl2.0+)))
2886
5698b8b8
JD
2887(define-public libbonoboui
2888 (package
2889 (name "libbonoboui")
2890 (version "2.24.5")
2891 (source (origin
2892 (method url-fetch)
b38e45d8
EB
2893 (uri (string-append "mirror://gnome/sources/" name "/"
2894 (version-major+minor version) "/"
2895 name "-" version ".tar.bz2"))
5698b8b8
JD
2896 (sha256
2897 (base32
2898 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2899 (build-system gnu-build-system)
2900 (arguments
2901 `(#:phases
dc1d3cde
KK
2902 (modify-phases %standard-phases
2903 (add-before 'check 'start-xserver
2904 (lambda* (#:key inputs #:allow-other-keys)
2905 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2906 (disp ":1"))
2907
2908 (setenv "HOME" (getcwd))
2909 (setenv "DISPLAY" disp)
2910 ;; There must be a running X server and make check doesn't start one.
2911 ;; Therefore we must do it.
2912 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2913 ;; Mentioned as Required by the .pc file
2914 (propagated-inputs `(("libxml2" ,libxml2)))
2915 (inputs
2916 `(("popt" ,popt)
2917 ("pangox-compat" ,pangox-compat)
2918 ("libgnome" ,libgnome)
2919 ("libgnomecanvas" ,libgnomecanvas)
2920 ("libglade" ,libglade)))
2921 (native-inputs
221ed17a
EB
2922 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2923 ("intltool" ,intltool)
ff337525 2924 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2925 ("pkg-config" ,pkg-config)))
2926 (home-page "https://developer.gnome.org/libbonoboui/")
2927 (synopsis "Some user interface controls using Bonobo")
2928 (description "The Bonobo UI library provides a number of user interface
2929controls using the Bonobo component framework.")
2930 (license license:lgpl2.0+)))
2931
fecbf86e
SB
2932(define-public libwnck
2933 (package
2934 (name "libwnck")
d3b40696 2935 (version "3.32.0")
fecbf86e
SB
2936 (source (origin
2937 (method url-fetch)
2938 (uri (string-append "mirror://gnome/sources/" name "/"
2939 (version-major+minor version) "/"
2940 name "-" version ".tar.xz"))
2941 (sha256
ad9b8987 2942 (base32
d3b40696
KK
2943 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2944 (build-system meson-build-system)
fecbf86e
SB
2945 (native-inputs
2946 `(("pkg-config" ,pkg-config)
d3b40696
KK
2947 ("glib" ,glib "bin") ; for glib-mkenums
2948 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2949 ("intltool" ,intltool)))
2950 (propagated-inputs
427476d5
SB
2951 `(("gtk+" ,gtk+)
2952 ("libxres" ,libxres)
2953 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2954 (home-page "https://developer.gnome.org/libwnck/")
2955 (synopsis "Window Navigator Construction Kit")
2956 (description
2957 "Libwnck is the Window Navigator Construction Kit, a library for use in
2958writing pagers, tasklists, and more generally applications that are dealing
2959with window management. It tries hard to respect the Extended Window Manager
2960Hints specification (EWMH).")
2961 (license license:lgpl2.0+)))
2962
2963;; stable version for gtk2, required by xfwm4.
dbb7a081 2964(define-public libwnck-2
fecbf86e
SB
2965 (package (inherit libwnck)
2966 (name "libwnck")
2967 (version "2.30.7")
2968 (source (origin
2969 (method url-fetch)
2970 (uri (string-append "mirror://gnome/sources/" name "/"
2971 (version-major+minor version) "/"
2972 name "-" version ".tar.xz"))
2973 (sha256
2974 (base32
2975 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2976 (build-system gnu-build-system)
2977 (native-inputs
2978 `(("pkg-config" ,pkg-config)
2979 ("intltool" ,intltool)))
fecbf86e 2980 (propagated-inputs
427476d5
SB
2981 `(("gtk+" ,gtk+-2)
2982 ("libxres" ,libxres)
2983 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2984
2985(define-public goffice
2986 (package
2987 (name "goffice")
09abffcc 2988 (version "0.10.46")
b804c61e
JD
2989 (source (origin
2990 (method url-fetch)
16243f0b 2991 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2992 (version-major+minor version) "/"
16243f0b 2993 "goffice-" version ".tar.xz"))
b804c61e 2994 (sha256
09abffcc 2995 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 2996 (build-system gnu-build-system)
72a06d3e 2997 (outputs '("out"
355420c6 2998 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
2999 (arguments
3000 '(#:configure-flags (list (string-append "--with-html-dir="
3001 (assoc-ref %outputs "doc")
3002 "/share/gtk-doc/html"))))
b804c61e
JD
3003 (inputs
3004 `(("gtk+" ,gtk+)
3005 ("libgsf" ,libgsf)
3006 ("librsvg" ,librsvg)
3007 ("libxslt" ,libxslt)
3008 ("libxml2" ,libxml2)))
3009 (native-inputs
3010 `(("intltool" ,intltool)
f280cdb1 3011 ("glib" ,glib "bin")
b804c61e
JD
3012 ("pkg-config" ,pkg-config)))
3013 (home-page "https://developer.gnome.org/goffice/")
3014 (synopsis "Document-centric objects and utilities")
3015 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3016 (license
b804c61e
JD
3017 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3018 ;; Note: NOT LGPL
3019 (list license:gpl2 license:gpl3))))
3020
c024ae36
RW
3021(define-public goffice-0.8
3022 (package (inherit goffice)
3023 (version "0.8.17")
3024 (source (origin
3025 (method url-fetch)
3026 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3027 (version-major+minor version) "/"
3028 (package-name goffice) "-" version ".tar.xz"))
3029 (sha256
3030 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3031 (arguments
3032 `(#:phases
dc1d3cde
KK
3033 (modify-phases %standard-phases
3034 (add-after 'unpack 'fix-pcre-check
3035 (lambda _
3036 ;; Only glib.h can be included directly. See
3037 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3038 (substitute* "configure"
3039 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3040
3041 ,@(package-arguments goffice)))
c024ae36
RW
3042 (propagated-inputs
3043 ;; libgoffice-0.8.pc mentions libgsf-1
3044 `(("libgsf" ,libgsf)))
3045 (inputs
3046 `(("gtk" ,gtk+-2)
3047 ,@(alist-delete "gtk" (package-inputs goffice))))))
3048
b804c61e
JD
3049(define-public gnumeric
3050 (package
3051 (name "gnumeric")
f0517b5d 3052 (version "1.12.46")
b804c61e
JD
3053 (source (origin
3054 (method url-fetch)
b7fd0217 3055 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3056 (version-major+minor version) "/"
b7fd0217 3057 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3058 (sha256
3059 (base32
f0517b5d 3060 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3061 (build-system glib-or-gtk-build-system)
b804c61e
JD
3062 (arguments
3063 `(;; The gnumeric developers don't worry much about failing tests.
3064 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3065 #:tests? #f
b804c61e 3066 #:phases
7bcbd40d
EF
3067 (modify-phases %standard-phases
3068 (add-before
3069 'configure 'pre-conf
3070 (lambda* (#:key outputs #:allow-other-keys)
3071 ;; Make install tries to write into the directory of goffice
3072 ;; I am informed that this only affects the possibility to embed a
3073 ;; spreadsheet inside an Abiword document. So presumably when we
3074 ;; package Abiword we'll have to refer it to this directory.
3075 (substitute* "configure"
3076 (("^GOFFICE_PLUGINS_DIR=.*")
3077 (string-append "GOFFICE_PLUGINS_DIR="
3078 (assoc-ref outputs "out")
3079 "/goffice/plugins"))))))))
b804c61e
JD
3080 (inputs
3081 `(("glib" ,glib)
3082 ("gtk+" ,gtk+)
3083 ("goffice" ,goffice)
3084 ("libgsf" ,libgsf)
7bcbd40d 3085 ("librsvg" ,librsvg)
b804c61e 3086 ("libxml2" ,libxml2)
7bcbd40d 3087 ("libxslt" ,libxslt)
2e4c5457 3088 ("python" ,python-2)
6983ba56 3089 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3090 ("zlib" ,zlib)))
3091 (native-inputs
6983ba56 3092 `(("bison" ,bison)
1ed398d1 3093 ("docbook-xml" ,docbook-xml)
6983ba56 3094 ("intltool" ,intltool)
785fcb62 3095 ("itstool" ,itstool)
b9663471 3096 ("glib:bin" ,glib "bin")
b804c61e
JD
3097 ("pkg-config" ,pkg-config)))
3098 (home-page "http://www.gnumeric.org")
66672a45
LC
3099 (synopsis "Spreadsheet application")
3100 (description
3101 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3102interoperable with other spreadsheet applications. It has a vast array of
3103features beyond typical spreadsheet functionality, such as support for linear
3104and non-linear solvers, statistical analysis, and telecommunication
3105engineering.")
3106 (license
b804c61e
JD
3107 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3108 (list license:gpl2 license:gpl3))))
6f885c05
FB
3109
3110(define-public gnome-themes-standard
3111 (package
3112 (name "gnome-themes-standard")
0b7b8fb0 3113 (version "3.22.3")
6f885c05
FB
3114 (source
3115 (origin
3116 (method url-fetch)
2e6ecc5c 3117 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3118 (version-major+minor version) "/" name "-"
3119 version ".tar.xz"))
3120 (sha256
3121 (base32
0b7b8fb0 3122 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3123 (build-system gnu-build-system)
8ac70c7f
SB
3124 (arguments
3125 '(#:configure-flags
3126 ;; Don't create 'icon-theme.cache'.
3127 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3128 (true (string-append coreutils "/bin/true")))
3129 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3130 (inputs
3131 `(("gtk+" ,gtk+)
3132 ("gtk+-2" ,gtk+-2)
3133 ("librsvg" ,librsvg)
3134 ("libxml2" ,libxml2)
3135 ("glib" ,glib)))
3136 (native-inputs
3137 `(("intltool" ,intltool)
3138 ("glib:bin" ,glib "bin")
3139 ("pkg-config" ,pkg-config)))
6f885c05
FB
3140 (home-page "https://launchpad.net/gnome-themes-standard")
3141 (synopsis "Default GNOME 3 themes")
3142 (description
3143 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3144 (license license:lgpl2.1+)))
5a659a48 3145
df90c701
RW
3146(define-public seahorse
3147 (package
3148 (name "seahorse")
1efcf722 3149 (version "3.34")
df90c701
RW
3150 (source
3151 (origin
3152 (method url-fetch)
3153 (uri (string-append "mirror://gnome/sources/" name "/"
3154 (version-major+minor version) "/" name "-"
3155 version ".tar.xz"))
3156 (sha256
3157 (base32
1efcf722 3158 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3159 (build-system meson-build-system)
3160 (arguments
bcea3c11
KK
3161 '(#:glib-or-gtk? #t
3162 #:phases
af561664
MÁAV
3163 (modify-phases %standard-phases
3164 (add-after 'unpack 'skip-gtk-update-icon-cache
3165 ;; Don't create 'icon-theme.cache'.
3166 (lambda _
3167 (substitute* "build-aux/meson_post_install.py"
3168 (("gtk-update-icon-cache") "true"))
3169 #t)))))
df90c701
RW
3170 (inputs
3171 `(("gtk+" ,gtk+)
3172 ("gcr" ,gcr)
34b979b9 3173 ("gnupg" ,gnupg)
df90c701 3174 ("gpgme" ,gpgme)
34b979b9 3175 ("openldap" ,openldap)
4a1bf090 3176 ("openssh" ,openssh)
af561664 3177 ("avahi" ,avahi)
bcea3c11 3178 ("libpwquality" ,libpwquality)
34b979b9
EF
3179 ("libsecret" ,libsecret)
3180 ("libsoup" ,libsoup)))
df90c701 3181 (native-inputs
af561664 3182 `(("gettext" ,gettext-minimal)
df90c701
RW
3183 ("glib:bin" ,glib "bin")
3184 ("itstool" ,itstool)
bcb354ad 3185 ("pkg-config" ,pkg-config)
af561664 3186 ("vala" ,vala)
bcb354ad 3187 ("xmllint" ,libxml2)))
bcea3c11 3188 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3189 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3190 (description
3191 "Seahorse is a GNOME application for managing encryption keys and
3192passwords in the GNOME keyring.")
3193 (license license:gpl2+)))
3194
5a659a48
SB
3195(define-public vala
3196 (package
3197 (name "vala")
b92a36db 3198 (version "0.46.5")
5a659a48
SB
3199 (source (origin
3200 (method url-fetch)
3201 (uri (string-append "mirror://gnome/sources/" name "/"
3202 (version-major+minor version) "/"
3203 name "-" version ".tar.xz"))
3204 (sha256
3205 (base32
b92a36db 3206 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3207 (build-system gnu-build-system)
1ea90625
SB
3208 (arguments
3209 '(#:phases
3210 (modify-phases %standard-phases
f4925a4f 3211 (add-before 'check 'pre-check
1ea90625
SB
3212 (lambda _
3213 (setenv "CC" "gcc")
8839b6be
RW
3214 (substitute* "valadoc/tests/testrunner.sh"
3215 (("export PKG_CONFIG_PATH=" m)
3216 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3217 ;; For missing '/etc/machine-id'.
3218 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3219 #t)))))
5a659a48
SB
3220 (native-inputs
3221 `(("pkg-config" ,pkg-config)
3222 ("flex" ,flex)
3223 ("bison" ,bison)
3224 ("xsltproc" ,libxslt)
3225 ("dbus" ,dbus) ; for dbus tests
3226 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3227 (inputs
3228 `(("graphviz" ,graphviz)))
5a659a48 3229 (propagated-inputs
8839b6be 3230 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3231 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3232 (synopsis "Compiler for the GObject type system")
3233 (description
3234 "Vala is a programming language that aims to bring modern programming
3235language features to GNOME developers without imposing any additional runtime
3236requirements and without using a different ABI compared to applications and
3237libraries written in C.")
3238 (license license:lgpl2.1+)))
ea57378f
SB
3239
3240(define-public vte
3241 (package
3242 (name "vte")
663def11 3243 (version "0.60.2")
ea57378f
SB
3244 (source (origin
3245 (method url-fetch)
ac87ffb8 3246 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3247 (version-major+minor version) "/"
ac87ffb8 3248 "vte-" version ".tar.xz"))
ea57378f
SB
3249 (sha256
3250 (base32
663def11 3251 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
68c47474 3252 (build-system meson-build-system)
663def11
RPG
3253 (arguments
3254 `(#:configure-flags
11491e1b
DM
3255 '("-Dvapi=true"
3256 "-D_systemd=false")))
ea57378f
SB
3257 (native-inputs
3258 `(("pkg-config" ,pkg-config)
4684580a 3259 ("gettext" ,gettext-minimal)
ea57378f
SB
3260 ("vala" ,vala)
3261 ("gobject-introspection" ,gobject-introspection)
68c47474 3262 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3263 ("gperf" ,gperf)
ea57378f
SB
3264 ("xmllint" ,libxml2)))
3265 (propagated-inputs
68c47474
TGR
3266 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3267 ("gnutls" ,gnutls) ; ditto
3268 ("pcre2" ,pcre2))) ; ditto
f032d0be 3269 (home-page "https://www.gnome.org/")
ea57378f
SB
3270 (synopsis "Virtual Terminal Emulator")
3271 (description
3272 "VTE is a library (libvte) implementing a terminal emulator widget for
3273GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3274gnome-terminal, but can also be used to embed a console/terminal in games,
3275editors, IDEs, etc.")
3276 (license license:lgpl2.1+)))
3277
c44fb4df
MO
3278(define-public vte-ng
3279 (package
3280 (inherit vte)
3281 (name "vte-ng")
24f4fcbe 3282 (version "0.58.2.a")
afd90f8d 3283 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3284 (source (origin
3285 (method git-fetch)
3286 (uri (git-reference (url home-page) (commit version)))
3287 (file-name (git-file-name name version))
3288 (sha256
3289 (base32
24f4fcbe
MB
3290 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3291 (build-system meson-build-system)
c44fb4df
MO
3292 (native-inputs
3293 `(("gtk-doc" ,gtk-doc)
c44fb4df 3294 ,@(package-native-inputs vte)))
c44fb4df 3295 (arguments
24f4fcbe 3296 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3297 (synopsis "Enhanced VTE terminal widget")
3298 (description
3299 "VTE is a library (libvte) implementing a terminal emulator widget for
3300GTK+, this fork provides additional functions exposed for keyboard text
3301selection and URL hints.")))
3302
2776d72c
EF
3303;; provides vte 2.90, required for some terminal emulators
3304;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3305;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3306;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3307;; pantheon-terminal, roxterm are not currently packaged
3308(define-public vte-0.36
3309 (package (inherit vte)
3310 (name "vte")
3311 (version "0.36.5")
3312 (source (origin
3313 (method url-fetch)
3314 (uri (string-append "mirror://gnome/sources/" name "/"
3315 (version-major+minor version) "/"
3316 name "-" version ".tar.xz"))
3317 (sha256
3318 (base32
3319 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3320 (propagated-inputs
3321 `(("gtk" ,gtk+)
3322 ("ncurses" ,ncurses)))))
3323
ea57378f
SB
3324;; stable version for gtk2, required by xfce4-terminal.
3325(define-public vte/gtk+-2
3326 (package (inherit vte)
3327 (name "vte")
3328 (version "0.28.2")
3329 (source (origin
3330 (method url-fetch)
3331 (uri (string-append "mirror://gnome/sources/" name "/"
3332 (version-major+minor version) "/"
3333 name "-" version ".tar.xz"))
3334 (sha256
3335 (base32
7d48938a
EF
3336 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3337 (patches (search-patches
3338 "vte-CVE-2012-2738-pt1.patch"
3339 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3340 (build-system gnu-build-system)
ea57378f
SB
3341 (arguments
3342 '(#:configure-flags '("--disable-python")))
3343 (native-inputs
3344 `(("pkg-config" ,pkg-config)
3345 ("intltool" ,intltool)
3346 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3347 (propagated-inputs
3348 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3349 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3350
cce0da5e
TD
3351(define-public vinagre
3352 (package
3353 (name "vinagre")
3354 (version "3.22.0")
3355 (source (origin
3356 (method url-fetch)
3357 (uri (string-append "mirror://gnome/sources/" name "/"
3358 (version-major+minor version) "/"
3359 name "-" version ".tar.xz"))
684f97f8
EF
3360 (patches (search-patches "vinagre-newer-freerdp.patch"
3361 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3362 (sha256
3363 (base32
3364 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3365 (build-system glib-or-gtk-build-system)
684f97f8 3366 (arguments
7f486d25
MC
3367 ;; Disable -Werror and such, to avoid build failures on compilation
3368 ;; warnings.
3369 '(#:configure-flags '("--enable-compile-warnings=minimum")
3370 #:phases
684f97f8 3371 (modify-phases %standard-phases
1839768c
EF
3372 (add-before 'install 'skip-gtk-update-icon-cache
3373 (lambda _
3374 ;; Don't create 'icon-theme.cache'
3375 (substitute* (find-files "." "^Makefile$")
3376 (("gtk-update-icon-cache") (which "true")))
3377 #t))
684f97f8
EF
3378 (add-after 'unpack 'patch-configure
3379 (lambda _
3380 (substitute* "configure"
3381 (("freerdp") "freerdp2"))
3382 #t)))))
cce0da5e
TD
3383 (native-inputs
3384 `(("pkg-config" ,pkg-config)
3385 ("intltool" ,intltool)
3386 ("itstool" ,itstool)
1839768c 3387 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3388 (inputs
3389 `(("libxml2" ,libxml2)
3390 ("gtk-vnc" ,gtk-vnc)
3391 ("gnome-keyring" ,gnome-keyring)
3392 ("libsecret" ,libsecret)
3393 ("freerdp" ,freerdp)
3394 ("spice" ,spice)
3395 ("spice-gtk" ,spice-gtk)
3396 ("telepathy-glib" ,telepathy-glib)
3397 ("vte" ,vte)))
cce0da5e
TD
3398 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3399 (synopsis "Remote desktop viewer for GNOME")
3400 (description "Vinagre is a remote display client supporting the VNC, SPICE
3401and RDP protocols.")
3402 (license license:gpl3+)))
3403
b47e1b20
FB
3404(define-public dconf
3405 (package
3406 (name "dconf")
7f4d075d 3407 (version "0.34.0")
b47e1b20
FB
3408 (source (origin
3409 (method url-fetch)
3410 (uri (string-append
2e6ecc5c 3411 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3412 (version-major+minor version) "/"
3413 name "-" version ".tar.xz"))
46c3a08b 3414 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3415 (sha256
f05c809f 3416 (base32
7f4d075d 3417 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 3418 (build-system meson-build-system)
bc036f4c
MB
3419 (propagated-inputs
3420 ;; In Requires of dconf.pc.
3421 `(("glib" ,glib)))
b47e1b20
FB
3422 (inputs
3423 `(("gtk+" ,gtk+)
bc036f4c 3424 ("dbus" ,dbus)))
b47e1b20 3425 (native-inputs
1e33331c
MB
3426 `(("bash-completion" ,bash-completion)
3427 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3428 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3429 ("docbook-xml" ,docbook-xml-4.2)
3430 ("docbook-xsl" ,docbook-xsl)
35fa923d 3431 ("glib:bin" ,glib "bin")
03676d6f 3432 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3433 ("pkg-config" ,pkg-config)
3434 ("vala" ,vala)))
b47e1b20
FB
3435 (arguments
3436 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3437 ; or /etc/machine-id.
35fa923d
MB
3438 #:glib-or-gtk? #t
3439 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
3440 (home-page "https://developer.gnome.org/dconf")
3441 (synopsis "Low-level GNOME configuration system")
3442 (description "Dconf is a low-level configuration system. Its main purpose
3443is to provide a backend to GSettings on platforms that don't already have
3444configuration storage systems.")
e20e6b40 3445 (license license:lgpl2.1+)))
109da1c0
AE
3446
3447(define-public json-glib
3448 (package
3449 (name "json-glib")
4115e8ea 3450 (version "1.4.4")
109da1c0
AE
3451 (source (origin
3452 (method url-fetch)
3453 (uri (string-append "mirror://gnome/sources/" name "/"
3454 (version-major+minor version) "/"
3455 name "-" version ".tar.xz"))
3456 (sha256
3457 (base32
4115e8ea 3458 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3459 (build-system meson-build-system)
109da1c0 3460 (native-inputs
98afa184
MB
3461 `(("gettext" ,gettext-minimal)
3462 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3463 ("gobject-introspection" ,gobject-introspection)
3464 ("pkg-config" ,pkg-config)))
3465 (propagated-inputs
88c6b580 3466 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3467 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3468 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3469 (description
3470 "JSON-GLib is a C library based on GLib providing serialization and
3471deserialization support for the JavaScript Object Notation (JSON) format
3472described by RFC 4627. It provides parser and generator GObject classes and
3473various wrappers for the complex data types employed by JSON, such as arrays
3474and objects.")
109da1c0 3475 (license license:lgpl2.1+)))
6f96a359
SB
3476
3477(define-public libxklavier
3478 (package
3479 (name "libxklavier")
5f39050b 3480 (version "5.4")
6f96a359 3481 (source (origin
5f39050b 3482 ;; Note: There's no tarball at ftp.gnome.org for this version.
3483 (method git-fetch)
3484 (uri (git-reference
3485 (url "https://anongit.freedesktop.org/git/libxklavier")
3486 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3487 (sha256
3488 (base32
5f39050b 3489 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3490 (file-name (git-file-name name version))))
6f96a359
SB
3491 (build-system gnu-build-system)
3492 (arguments
778d6b52 3493 '(#:configure-flags
6f96a359
SB
3494 (list (string-append "--with-xkb-base="
3495 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3496 "/share/X11/xkb")
3497 "--disable-xmodmap-support")))
6f96a359
SB
3498 (native-inputs
3499 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3500 ("gobject-introspection" ,gobject-introspection)
5f39050b 3501 ("pkg-config" ,pkg-config)
3502 ("gtk-doc" ,gtk-doc)
3503 ("intltool" ,intltool)
3504 ("which" ,which)
3505 ("autoconf" ,autoconf)
3506 ("automake" ,automake)
3507 ("libtool" ,libtool)))
6f96a359
SB
3508 (propagated-inputs
3509 ;; Required by libxklavier.pc.
3510 `(("glib" ,glib)
3511 ("libxml2" ,libxml2)))
3512 (inputs
3513 `(("iso-codes" ,iso-codes)
3514 ("libxi" ,libxi)
3515 ("libxkbfile" ,libxkbfile)
3516 ("xkbcomp" ,xkbcomp)
3517 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3518 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3519 (synopsis "High-level API for X Keyboard Extension")
3520 (description
3521 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3522Extension known as XKB. This library is intended to support XFree86 and other
3523commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3524indicators etc).")
3525 (license license:lgpl2.0+)))
619936a4
LC
3526
3527(define-public python2-rsvg
3528 ;; XXX: This is actually a subset of gnome-python-desktop.
3529 (package
3530 (name "python2-rsvg")
3531 (version "2.32.0")
3532 (source
3533 (origin
3534 (method url-fetch)
3535 (uri (string-append
3536 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3537 version ".tar.bz2"))
3538 (sha256
3539 (base32
3540 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3541 (build-system gnu-build-system)
3542 (native-inputs
3543 `(("pkg-config" ,pkg-config)))
3544 (inputs
3545 `(("python" ,python-2)
3546 ("python2-pygtk" ,python2-pygtk)
3547 ("librsvg" ,librsvg)))
f032d0be 3548 (home-page "https://www.gnome.org")
619936a4
LC
3549 (synopsis "Python bindings to librsvg")
3550 (description
3ad75446 3551 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3552library.")
3553
3554 ;; This is the license of the rsvg bindings. The license of each module
3555 ;; of gnome-python-desktop is given in 'COPYING'.
3556 (license license:lgpl2.1+)))
a31a6d22 3557
f2ca414a
SB
3558(define-public glib-networking
3559 (package
3560 (name "glib-networking")
ea9f74b0 3561 (version "2.62.2")
f2ca414a
SB
3562 (source (origin
3563 (method url-fetch)
3564 (uri (string-append "mirror://gnome/sources/glib-networking/"
3565 (version-major+minor version) "/"
fb8fe1e8 3566 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3567 (sha256
3568 (base32
ea9f74b0 3569 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 3570 (build-system meson-build-system)
f2ca414a 3571 (arguments
0d75c64d 3572 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3573 (native-inputs
3574 `(("pkg-config" ,pkg-config)
3575 ("intltool" ,intltool)))
3576 (inputs
3577 `(("glib" ,glib)
3578 ("gnutls" ,gnutls)
4b8f1313 3579 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3580 (home-page "https://www.gnome.org")
f2ca414a
SB
3581 (synopsis "Network-related GIO modules")
3582 (description
3583 "This package contains various network related extensions for the GIO
3584library.")
3585 (license license:lgpl2.0+)))
3586
ca649680 3587(define-public rest
4510b2da 3588 (package
ca649680 3589 (name "rest")
a4194d16 3590 (version "0.8.1")
4510b2da
SB
3591 (source (origin
3592 (method url-fetch)
3593 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3594 (version-major+minor version) "/"
3595 name "-" version ".tar.xz"))
4510b2da
SB
3596 (sha256
3597 (base32
a4194d16 3598 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3599 (build-system gnu-build-system)
3600 (arguments
3601 '(#:tests? #f ; tests require internet connection
3602 #:configure-flags
3603 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3604 (native-inputs
3605 `(("glib-mkenums" ,glib "bin")
3606 ("gobject-introspection" ,gobject-introspection)
3607 ("pkg-config" ,pkg-config)))
3608 (propagated-inputs
3609 ;; rest-0.7.pc refers to all these.
3610 `(("glib" ,glib)
3611 ("libsoup" ,libsoup)
3612 ("libxml2" ,libxml2)))
24d6cc1d 3613 (home-page "https://www.gtk.org/")
4510b2da
SB
3614 (synopsis "RESTful web api query library")
3615 (description
3616 "This library was designed to make it easier to access web services that
3617claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3618libxml to ease remote use of the RESTful API.")
3619 (license license:lgpl2.1+)))
3620
6e1bb642
SB
3621(define-public libsoup
3622 (package
3623 (name "libsoup")
9a9cd9bc 3624 (version "2.70.0")
6e1bb642
SB
3625 (source (origin
3626 (method url-fetch)
3627 (uri (string-append "mirror://gnome/sources/libsoup/"
3628 (version-major+minor version) "/"
c1b79b36 3629 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3630 (sha256
3631 (base32
9a9cd9bc 3632 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3633 (build-system meson-build-system)
6e1bb642
SB
3634 (outputs '("out" "doc"))
3635 (arguments
2deb146f 3636 `(#:modules ((guix build utils)
eccaa8bf 3637 (guix build meson-build-system)
2deb146f
LC
3638 (ice-9 popen))
3639
f8026a79 3640 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3641 #:phases
3642 (modify-phases %standard-phases
eccaa8bf 3643 (add-after 'unpack 'adjust-tests
26c228f9 3644 (lambda _
eccaa8bf
MB
3645 ;; This test fails due to missing /etc/nsswitch.conf
3646 ;; in the build environment.
26c228f9
LC
3647 (substitute* "tests/socket-test.c"
3648 ((".*/sockets/unconnected.*") ""))
2deb146f 3649
f8026a79
MB
3650 ;; These fail because "subdomain.localhost" does not resolve in
3651 ;; the build environment.
3652 (substitute* "tests/hsts-test.c"
3653 ((".*/hsts/basic.*") "")
3654 ((".*/hsts/subdomains.*") "")
3655 ((".*/hsts/superdomain.*") "")
3656 ((".*/hsts/utf8-address.*") ""))
3657 (substitute* "tests/hsts-db-test.c"
3658 ((".*/hsts-db/subdomains.*") ""))
3659
2deb146f
LC
3660 ;; Generate a self-signed certificate that has "localhost" as its
3661 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3662 ;; 3.5.12, tests such as "ssl-tests" fail:
3663 ;;
3664 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3665 ;;
3666 ;; 'certtool' is interactive so we have to pipe it the answers.
3667 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3668 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3669 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3670 (for-each (lambda (line)
3671 (display line pipe)
3672 (newline pipe))
3673 '("" ;Common name
3674 "" ;UID
3675 "Guix" ;Organizational unit name
3676 "GNU" ;Organization name
3677 "" ;Locality name
3678 "" ;State or province
3679 "" ;Country
3680 "" ;subject's domain component (DC)
3681 "" ;E-mail
3682 "" ;serial number
3683 "-1" ;expiration time
3684 "N" ;belong to authority?
3685 "N" ;web client certificate?
3686 "N" ;IPsec IKE?
3687 "Y" ;web server certificate?
3688 "localhost" ;dnsName of subject
3689 "" ;dnsName of subject (end)
3690 "" ;URI of subject
3691 "127.0.0.1" ;IP address of subject
3692 "" ;signing?
06f5bc4e
MB
3693 "" ;encryption (RSA)?
3694 "" ;data encryption?
2deb146f
LC
3695 "" ;sign OCSP requests?
3696 "" ;sign code?
3697 "" ;time stamping?
3698 "" ;email protection?
3699 "" ;URI of the CRL distribution point
3700 "y" ;above info OK?
3701 ))
3702 (close-pipe pipe))
26c228f9 3703 #t))
eccaa8bf
MB
3704 (add-after 'install 'move-doc
3705 (lambda* (#:key outputs #:allow-other-keys)
3706 (let ((out (assoc-ref outputs "out"))
3707 (doc (assoc-ref outputs "doc")))
3708 (mkdir-p (string-append doc "/share"))
3709 (copy-recursively (string-append out "/share/gtk-doc")
3710 (string-append doc "/share/gtk-doc"))
3711 (delete-file-recursively (string-append out "/share/gtk-doc"))
3712 #t))))))
6e1bb642 3713 (native-inputs
26c228f9 3714 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3715 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3716 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3717 ("intltool" ,intltool)
3718 ("pkg-config" ,pkg-config)
3719 ("python" ,python-wrapper)
fd730590 3720 ("vala" ,vala)
6e1bb642
SB
3721 ;; These are needed for the tests.
3722 ;; FIXME: Add PHP once available.
3723 ("curl" ,curl)
2deb146f 3724 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3725 ("httpd" ,httpd)))
3726 (propagated-inputs
3727 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3728 `(("brotli" ,google-brotli)
3729 ("glib" ,glib)
249846bf 3730 ("libpsl" ,libpsl)
eccaa8bf 3731 ("libxml2" ,libxml2)
f8026a79
MB
3732 ("sqlite" ,sqlite)
3733 ("zlib" ,zlib)))
eccaa8bf
MB
3734 (inputs
3735 `(("glib-networking" ,glib-networking)
3736 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3737 (home-page "https://live.gnome.org/LibSoup/")
3738 (synopsis "GLib-based HTTP Library")
3739 (description
3740 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3741and the GLib main loop, to integrate well with GNOME applications.")
3742 (license license:lgpl2.0+)))
3743
bba229a3
SB
3744(define-public libsecret
3745 (package
3746 (name "libsecret")
b05a2f62 3747 (version "0.20.3")
bba229a3
SB
3748 (source (origin
3749 (method url-fetch)
3750 (uri (string-append
896dcbc7
EF
3751 "mirror://gnome/sources/libsecret/"
3752 (version-major+minor version) "/"
0ada4e29 3753 "libsecret-" version ".tar.xz"))
bba229a3
SB
3754 (sha256
3755 (base32
b05a2f62 3756 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
3757 (build-system gnu-build-system)
3758 (outputs '("out" "doc"))
3759 (arguments
3760 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3761 #:configure-flags
3762 (list (string-append "--with-html-dir="
3763 (assoc-ref %outputs "doc")
3764 "/share/gtk-doc/html"))))
3765 (native-inputs
c06ef010
MB
3766 `(("gettext" ,gettext-minimal)
3767 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3768 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3769 ("pkg-config" ,pkg-config)
3770 ("vala" ,vala)
3771 ("xsltproc" ,libxslt)))
3772 ;; These are needed for the tests.
3773 ;; FIXME: Add gjs once available.
3774 ;("dbus" ,dbus)
3775 ;("python2" ,python-2)
3776 ;("python2-dbus" ,python2-dbus)
3777 ;("python2-pygobject" ,python2-pygobject)
3778 ;("python2-pygobject-2" ,python2-pygobject-2)))
3779 (propagated-inputs
3780 `(("glib" ,glib))) ; required by libsecret-1.pc
3781 (inputs
3782 `(("docbook-xsl" ,docbook-xsl)
3783 ("libgcrypt" ,libgcrypt)
3784 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3785 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3786 (synopsis "GObject bindings for \"Secret Service\" API")
3787 (description
3788 "Libsecret is a GObject based library for storing and retrieving passwords
3789and other secrets. It communicates with the \"Secret Service\" using DBus.")
3790 (license license:lgpl2.1+)))
3791
b6821ee0 3792(define-public five-or-more
3793 (package
3794 (name "five-or-more")
ee75b46f 3795 (version "3.32.2")
b6821ee0 3796 (source
3797 (origin
3798 (method url-fetch)
bf782bfc 3799 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3800 (version-major+minor version) "/"
bf782bfc 3801 "five-or-more-" version ".tar.xz"))
b6821ee0 3802 (sha256
ee75b46f 3803 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
3804 (build-system meson-build-system)
3805 (arguments
3806 '(#:glib-or-gtk? #t
3807 #:phases
3808 (modify-phases %standard-phases
3809 (add-after 'unpack 'skip-gtk-update-icon-cache
3810 (lambda _
3811 (substitute* "meson_post_install.py"
3812 (("gtk-update-icon-cache") (which "true")))
3813 #t)))))
b6821ee0 3814 (native-inputs
3815 `(("pkg-config" ,pkg-config)
d9795e93 3816 ("appstream-glib" ,appstream-glib)
b6821ee0 3817 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3818 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3819 ("intltool" ,intltool)
3820 ("itstool" ,itstool)
d9795e93 3821 ("vala" ,vala)
b6821ee0 3822 ("xmllint" ,libxml2)))
3823 (inputs
3824 `(("gtk+" ,gtk+)
d9795e93 3825 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3826 ("librsvg" ,librsvg)))
3827 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3828 (synopsis "Logic puzzle game")
3829 (description "Five or More is a game where you try to align
3830 five or more objects of the same color and shape causing them to disappear.
3831 On every turn more objects will appear, until the board is full.
3832 Try to last as long as possible.")
3833 (license license:gpl2+)))
3834
a31a6d22
SB
3835(define-public gnome-mines
3836 (package
3837 (name "gnome-mines")
d79e9b1b 3838 (version "3.34.0")
a31a6d22
SB
3839 (source
3840 (origin
3841 (method url-fetch)
3842 (uri (string-append "mirror://gnome/sources/" name "/"
3843 (version-major+minor version) "/"
3844 name "-" version ".tar.xz"))
3845 (sha256
3846 (base32
d79e9b1b 3847 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 3848 (build-system meson-build-system)
a31a6d22 3849 (arguments
2d817e41
KK
3850 '(#:glib-or-gtk? #t
3851 #:phases
a31a6d22 3852 (modify-phases %standard-phases
2d817e41
KK
3853 (add-after 'unpack 'skip-gtk-update-icon-cache
3854 (lambda _
3855 (substitute* "build-aux/meson_post_install.py"
3856 (("gtk-update-icon-cache") (which "true")))
3857 #t)))))
a31a6d22 3858 (native-inputs
8c0fab36
RW
3859 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3860 ("pkg-config" ,pkg-config)
a31a6d22
SB
3861 ("desktop-file-utils" ,desktop-file-utils)
3862 ("intltool" ,intltool)
bcb354ad 3863 ("itstool" ,itstool)
8c0fab36
RW
3864 ("vala" ,vala)
3865 ("yelp" ,yelp)
3866 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3867 (inputs
3868 `(("gtk+" ,gtk+)
73992962 3869 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3870 ("librsvg" ,librsvg)))
3871 (home-page "https://wiki.gnome.org/Apps/Mines")
3872 (synopsis "Minesweeper game")
3873 (description
3874 "Mines (previously gnomine) is a puzzle game where you locate mines
3875floating in an ocean using only your brain and a little bit of luck.")
3876 (license license:gpl2+)))
88f70665 3877
dfc407f3
KY
3878(define-public gnome-sudoku
3879 (package
3880 (name "gnome-sudoku")
857eb190 3881 (version "3.34.1")
dfc407f3
KY
3882 (source
3883 (origin
3884 (method url-fetch)
3885 (uri (string-append "mirror://gnome/sources/" name "/"
3886 (version-major+minor version) "/"
3887 name "-" version ".tar.xz"))
3888 (sha256
3889 (base32
857eb190 3890 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
3891 (build-system meson-build-system)
3892 (arguments
3893 '(#:glib-or-gtk? #t
3894 #:phases
3895 (modify-phases %standard-phases
3896 (add-after 'unpack 'skip-gtk-update-icon-cache
3897 (lambda _
3898 (substitute* "build-aux/post_install.py"
3899 (("gtk-update-icon-cache") (which "true")))
3900 #t)))))
dfc407f3
KY
3901 (native-inputs
3902 `(("pkg-config" ,pkg-config)
3903 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3904 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3905 ("intltool" ,intltool)
3906 ("itstool" ,itstool)
7dc728c4 3907 ("vala" ,vala)
dfc407f3
KY
3908 ("xmllint" ,libxml2)))
3909 (inputs
3910 `(("gtk+" ,gtk+)
3911 ("json-glib" ,json-glib)
3912 ("libgee" ,libgee)
3913 ("librsvg" ,librsvg)
3914 ("qqwing" ,qqwing)))
3915 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3916 (synopsis "Japanese logic game")
3917 (description
3918 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3919GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3920possible while still providing features that make playing difficult Sudoku
3921more fun.")
3922 (license license:gpl2+)))
3923
88f70665
AW
3924(define-public gnome-terminal
3925 (package
3926 (name "gnome-terminal")
80f6f9d8 3927 (version "3.34.2")
88f70665
AW
3928 (source
3929 (origin
3930 (method url-fetch)
3931 (uri (string-append "mirror://gnome/sources/" name "/"
3932 (version-major+minor version) "/"
3933 name "-" version ".tar.xz"))
3934 (sha256
3935 (base32
80f6f9d8 3936 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
3937 (build-system glib-or-gtk-build-system)
3938 (arguments
3939 '(#:configure-flags
3940 (list "--disable-migration" "--disable-search-provider"
3941 "--without-nautilus-extension")
3942 #:phases
3943 (modify-phases %standard-phases
3a4de6b2 3944 (add-before 'configure 'patch-/bin/true
88f70665
AW
3945 (lambda _
3946 (substitute* "configure"
3947 (("/bin/true") (which "true"))))))))
3948 (native-inputs
3949 `(("pkg-config" ,pkg-config)
3950 ("desktop-file-utils" ,desktop-file-utils)
3951 ("intltool" ,intltool)
bcb354ad
SB
3952 ("itstool" ,itstool)
3953 ("xmllint" ,libxml2)))
68702167
MW
3954 (propagated-inputs
3955 `(("dconf" ,dconf)))
88f70665
AW
3956 (inputs
3957 `(("gtk+" ,gtk+)
3958 ("vte" ,vte)
3959 ("gnutls" ,gnutls)
88f70665 3960 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 3961 ("util-linux" ,util-linux "lib")
88f70665
AW
3962 ("vala" ,vala)))
3963 (home-page "https://wiki.gnome.org/Apps/Terminal")
3964 (synopsis "Terminal emulator")
3965 (description
3966 "GNOME Terminal is a terminal emulator application for accessing a
3967UNIX shell environment which can be used to run programs available on
3968your system.
3969
3970It supports several profiles, multiple tabs and implements several
3971keyboard shortcuts.")
3972 (license license:gpl3+)))
75016d07
AW
3973
3974(define-public colord
3975 (package
3976 (name "colord")
f98be942 3977 (version "1.4.4")
75016d07
AW
3978 (source
3979 (origin
3980 (method url-fetch)
5cc3096c 3981 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3982 "colord-" version ".tar.xz"))
75016d07 3983 (sha256
f98be942 3984 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3985 (build-system meson-build-system)
75016d07 3986 (arguments
a68544a8
RW
3987 '(;; FIXME: One test fails:
3988 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3989 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3990 ;; application/x-zerosize
75016d07 3991 #:tests? #f
a68544a8
RW
3992 #:glib-or-gtk? #t
3993 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 3994 ;; No dep on systemd.
a68544a8 3995 "-Dsystemd=false"
75016d07
AW
3996 ;; Wants to install to global completion dir;
3997 ;; punt.
a68544a8 3998 "-Dbash_completion=false"
a68544a8
RW
3999 "-Ddaemon_user=colord"
4000 "-Dsane=true"
dac26e22 4001 "-Dvapi=true"
6f20e2dc 4002 ;; Requires spotread.
a68544a8 4003 "-Dargyllcms_sensor=false"
6f20e2dc 4004 ;; TODO: Requires docbook2x.
a68544a8 4005 "-Dman=false")
75016d07
AW
4006 #:phases
4007 (modify-phases %standard-phases
a68544a8
RW
4008 (add-before 'configure 'patch-build-system
4009 (lambda* (#:key outputs #:allow-other-keys)
4010 (substitute* "rules/meson.build"
4011 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4012 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4013 #t))
4014 (add-before 'configure 'set-sqlite3-file-name
4015 (lambda* (#:key inputs #:allow-other-keys)
4016 ;; "colormgr dump" works by invoking the "sqlite3" command.
4017 ;; Record its absolute file name.
4018 (let ((sqlite (assoc-ref inputs "sqlite")))
4019 (substitute* "client/cd-util.c"
4020 (("\"sqlite3\"")
4021 (string-append "\"" sqlite "/bin/sqlite3\"")))
4022 #t))))))
75016d07 4023 (native-inputs
6f20e2dc 4024 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4025 ("gettext" ,gettext-minimal)
75016d07 4026 ("gobject-introspection" ,gobject-introspection)
a68544a8 4027 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4028 ("pkg-config" ,pkg-config)
4029 ("vala" ,vala)))
65cb2d61
SB
4030 (propagated-inputs
4031 ;; colord.pc refers to all these.
4032 `(("glib" ,glib)
6f20e2dc
TGR
4033 ("lcms" ,lcms)
4034 ("udev" ,eudev)))
75016d07 4035 (inputs
65cb2d61 4036 `(("dbus-glib" ,dbus-glib)
a68544a8 4037 ("gusb" ,gusb)
80c7dd1a 4038 ("libgudev" ,libgudev)
75016d07 4039 ("libusb" ,libusb)
75016d07 4040 ("polkit" ,polkit)
a68544a8 4041 ("python" ,python-wrapper)
6f20e2dc 4042 ("sqlite" ,sqlite)
4c928743 4043 ("sane-backends" ,sane-backends)))
57e7d748 4044 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4045 (synopsis "Color management service")
4046 (description "Colord is a system service that makes it easy to manage,
4047install and generate color profiles to accurately color manage input and
4048output devices.")
4049 (license license:gpl2+)))
7b2abd00
AW
4050
4051(define-public geoclue
4052 (package
4053 (name "geoclue")
50e96d25 4054 (version "2.5.5")
7b2abd00
AW
4055 (source
4056 (origin
4057 (method url-fetch)
50e96d25
MB
4058 (uri
4059 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4060 version "/geoclue-" version ".tar.bz2"))
7b2abd00
AW
4061 (sha256
4062 (base32
50e96d25 4063 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
fc1adab1 4064 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4065 (build-system meson-build-system)
7b2abd00 4066 (arguments
50e96d25 4067 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4068 (native-inputs
4069 `(("pkg-config" ,pkg-config)
758798a9 4070 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4071 ("modem-manager" ,modem-manager)
4072 ("libnotify" ,libnotify)
4073 ("gtk-doc", gtk-doc)
7b2abd00
AW
4074 ("intltool" ,intltool)))
4075 (inputs
54e911bc 4076 `(("avahi" ,avahi)
50e96d25
MB
4077 ("glib:bin" ,glib "bin")
4078 ("glib-networking" ,glib-networking)
7b2abd00
AW
4079 ("json-glib" ,json-glib)
4080 ("libsoup" ,libsoup)))
50e96d25 4081 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4082 (synopsis "Geolocation service")
4083 (description "Geoclue is a D-Bus service that provides location
4084information. The primary goal of the Geoclue project is to make creating
4085location-aware applications as simple as possible, while the secondary goal is
4086to ensure that no application can access location information without explicit
e881752c 4087permission from user.")
7b2abd00 4088 (license license:gpl2+)))
2bfe7437
AW
4089
4090(define-public geocode-glib
4091 (package
4092 (name "geocode-glib")
65de725f 4093 (version "3.26.1")
2bfe7437
AW
4094 (source (origin
4095 (method url-fetch)
4096 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4097 (version-major+minor version) "/"
d485cdc0 4098 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4099 (sha256
4100 (base32
65de725f 4101 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4102 (build-system meson-build-system)
2bfe7437 4103 (arguments
a7dd0c02
RW
4104 `(#:phases
4105 (modify-phases %standard-phases
4106 ;; The tests require a bunch of locales.
4107 (add-before 'check 'set-locales
4108 (lambda* (#:key inputs #:allow-other-keys)
4109 (setenv "GUIX_LOCPATH"
4110 (string-append (assoc-ref inputs "glibc-locales")
4111 "/lib/locale"))
4112 #t)))))
2bfe7437
AW
4113 (native-inputs
4114 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4115 ("glibc-locales" ,glibc-locales) ; for tests
4116 ("gettext" ,gettext-minimal)
2bfe7437 4117 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4118 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4119 ("pkg-config" ,pkg-config)
4120 ("json-glib" ,json-glib)))
4121 (propagated-inputs
4122 ;; geocode-glib-1.0.pc refers to GIO.
4123 `(("glib" ,glib)))
4124 (inputs
4125 `(("libsoup" ,libsoup)))
4126 (home-page "https://github.com/GNOME/geocode-glib/")
4127 (synopsis "Geocoding and reverse-geocoding library")
4128 (description
4129 "geocode-glib is a convenience library for geocoding (finding longitude,
4130and latitude from an address) and reverse geocoding (finding an address from
4131coordinates) using the Nominatim service. geocode-glib caches requests for
4132faster results and to avoid unnecessary server load.")
4133 (license license:lgpl2.0+)))
a1d5bb0e
AW
4134
4135(define-public upower
4136 (package
4137 (name "upower")
df45af90 4138 (version "0.99.11")
a1d5bb0e
AW
4139 (source (origin
4140 (method url-fetch)
df45af90 4141 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4142 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4143 (sha256
4144 (base32
df45af90 4145 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4146 (patches (search-patches "upower-builddir.patch"))
4147 (modules '((guix build utils)))
4148 (snippet
4149 '(begin
4150 ;; Upstream commit
4151 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4152 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4153 ;; 'dbus-configuration-directory' in (gnu services dbus)
4154 ;; expects it in etc/. Thus, move it back to its previous
4155 ;; location.
4156 (substitute* "src/Makefile.in"
4157 (("^dbusconfdir =.*$")
4158 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4159 #t))))
a1d5bb0e
AW
4160 (build-system glib-or-gtk-build-system)
4161 (arguments
4162 '( ;; The tests want to contact the system bus, which can't be done in the
4163 ;; build environment. The integration test can run, but the last of
4164 ;; the up-self-tests doesn't. Disable tests for now.
4165 #:tests? #f
4166 #:configure-flags (list "--localstatedir=/var"
4167 (string-append "--with-udevrulesdir="
4168 (assoc-ref %outputs "out")
9ec54965 4169 "/lib/udev/rules.d"))))
a1d5bb0e 4170 (native-inputs
ebeabe2d
SB
4171 `(("gobject-introspection" ,gobject-introspection)
4172 ("pkg-config" ,pkg-config)
a1d5bb0e 4173 ("intltool" ,intltool)
55409295
LC
4174 ("python" ,python)
4175
4176 ;; For man pages.
4177 ("libxslt" ,libxslt) ;for 'xsltproc'
4178 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4179 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4180 (inputs
ea226291
SB
4181 `(("dbus-glib" ,dbus-glib)
4182 ("libgudev" ,libgudev)
a1d5bb0e 4183 ("libusb" ,libusb)))
d7a503fc
MB
4184 (propagated-inputs
4185 ;; In Requires of upower-glib.pc.
4186 `(("glib" ,glib)))
57e7d748 4187 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4188 (synopsis "System daemon for managing power devices")
4189 (description
4190 "UPower is an abstraction for enumerating power devices,
4191listening to device events and querying history and statistics. Any
4192application or service on the system can access the org.freedesktop.UPower
4193service via the system message bus.")
4194 (license license:gpl2+)))
6a180f6f
AW
4195
4196(define-public libgweather
4197 (package
4198 (name "libgweather")
462d3416 4199 (version "3.34.0")
6a180f6f
AW
4200 (source (origin
4201 (method url-fetch)
4202 (uri (string-append "mirror://gnome/sources/" name "/"
4203 (version-major+minor version) "/"
4204 name "-" version ".tar.xz"))
4205 (sha256
4206 (base32
462d3416 4207 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 4208 (build-system meson-build-system)
6a180f6f 4209 (arguments
cf6cbc34
RW
4210 `(#:tests? #f ; one of two tests requires network access
4211 #:configure-flags
4212 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4213 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4214 "/share/zoneinfo"))))
6a180f6f
AW
4215 (native-inputs
4216 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4217 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4218 ("pkg-config" ,pkg-config)
1d3fcf94 4219 ("vala" ,vala)
6a180f6f
AW
4220 ("intltool" ,intltool)))
4221 (propagated-inputs
4222 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4223 ;; libsoup.
4224 `(("gtk+" ,gtk+)
4225 ("gdk-pixbuf" ,gdk-pixbuf)
4226 ("libxml2" ,libxml2)
cf6cbc34 4227 ("libsoup" ,libsoup)
6a180f6f 4228 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4229 (inputs
4230 `(("tzdata" ,tzdata)))
6a180f6f
AW
4231 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4232 (synopsis "Location, time zone, and weather library for GNOME")
4233 (description
4234 "libgweather is a library to access weather information from online
4235services for numerous locations.")
4236 (license license:gpl2+)))
23a22af6
AW
4237
4238(define-public gnome-settings-daemon
4239 (package
4240 (name "gnome-settings-daemon")
20154759 4241 (version "3.34.1")
23a22af6
AW
4242 (source
4243 (origin
4244 (method url-fetch)
4245 (uri (string-append "mirror://gnome/sources/" name "/"
4246 (version-major+minor version) "/"
4247 name "-" version ".tar.xz"))
4248 (sha256
4249 (base32
20154759 4250 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 4251 (build-system meson-build-system)
23a22af6 4252 (arguments
e644f9fa
RW
4253 `(#:glib-or-gtk? #t
4254 #:configure-flags
4255 (list (string-append "-Dudev_dir="
4256 (assoc-ref %outputs "out")
4d0e085b 4257 "/lib/udev/rules.d/")
20154759 4258 "-Dsystemd=false"
4d0e085b
RW
4259 ;; Otherwise, the RUNPATH will lack the final path component.
4260 (string-append "-Dc_link_args=-Wl,-rpath="
4261 (assoc-ref %outputs "out")
4262 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4263 ;; Color management test can't reach the colord system service.
23a22af6
AW
4264 #:tests? #f))
4265 (native-inputs
e644f9fa
RW
4266 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4267 ("pkg-config" ,pkg-config)
23a22af6
AW
4268 ("intltool" ,intltool)
4269 ("xsltproc" ,libxslt)
4270 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4271 ("docbook-xml" ,docbook-xml-4.2)
4272 ("docbook-xsl" ,docbook-xsl)))
4273 (inputs
e644f9fa
RW
4274 `(("alsa-lib" ,alsa-lib)
4275 ("colord" ,colord)
ea226291 4276 ("libgudev" ,libgudev)
23a22af6
AW
4277 ("upower" ,upower)
4278 ("polkit" ,polkit)
4279 ("pulseaudio" ,pulseaudio)
4280 ("libcanberra" ,libcanberra)
4281 ("libx11" ,libx11)
4282 ("libxtst" ,libxtst)
4283 ("lcms" ,lcms)
4284 ("libnotify" ,libnotify)
4285 ("geoclue" ,geoclue)
4286 ("geocode-glib" ,geocode-glib)
4287 ("libgweather" ,libgweather)
4288 ("gnome-desktop" ,gnome-desktop)
4289 ("nss" ,nss)
4290 ("cups" ,cups)
ec2b1921
AW
4291 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4292 ("libwacom" ,libwacom)
4293 ("librsvg" ,librsvg)
eee7878f 4294 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4295 ("wayland" ,wayland)
20154759
KK
4296 ("network-manager" ,network-manager)
4297 ("gcr" ,gcr)
4298 ("modem-manager" ,modem-manager)))
f032d0be 4299 (home-page "https://www.gnome.org")
23a22af6
AW
4300 (synopsis "GNOME settings daemon")
4301 (description
4302 "This package contains the daemon responsible for setting the various
4303parameters of a GNOME session and the applications that run under it. It
4304handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4305settings, themes, mouse settings, and startup of other daemons.")
4306 (license license:gpl2+)))
1e7464a9
DH
4307
4308(define-public totem-pl-parser
4309 (package
4310 (name "totem-pl-parser")
77425f04 4311 (version "3.26.3")
1e7464a9
DH
4312 (source (origin
4313 (method url-fetch)
e980cbe9
MW
4314 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4315 (version-major+minor version) "/"
1e7464a9
DH
4316 "totem-pl-parser-" version ".tar.xz"))
4317 (sha256
4318 (base32
77425f04 4319 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4320 (build-system meson-build-system)
1e7464a9
DH
4321 (arguments
4322 ;; FIXME: Tests require gvfs.
4323 `(#:tests? #f))
4324 (native-inputs
4325 `(("intltool" ,intltool)
4326 ("glib" ,glib "bin")
4d6d8281 4327 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4328 ("pkg-config" ,pkg-config)))
22a6ad6a 4329 (propagated-inputs
1e7464a9
DH
4330 `(("glib" ,glib)
4331 ("gmime" ,gmime)
1e9b19dd
RW
4332 ("libarchive" ,libarchive)
4333 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4334 ("libxml2" ,libxml2)))
4335 (inputs
0a6e9e13 4336 `(("libsoup" ,libsoup)))
1e7464a9
DH
4337 (home-page "https://projects.gnome.org/totem")
4338 (synopsis "Library to parse and save media playlists for GNOME")
4339 (description "Totem-pl-parser is a GObjects-based library to parse and save
4340playlists in a variety of formats.")
4341 (license license:lgpl2.0+)))
4342
6b888eff
SB
4343(define-public aisleriot
4344 (package
4345 (name "aisleriot")
36ed9b46 4346 (version "3.22.9")
6b888eff
SB
4347 (source (origin
4348 (method url-fetch)
e43f622a 4349 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4350 (version-major+minor version) "/"
e43f622a 4351 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4352 (sha256
4353 (base32
36ed9b46 4354 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4355 (build-system glib-or-gtk-build-system)
4356 (arguments
4357 '(#:configure-flags
4358 '("--with-platform=gtk-only"
4359 "--with-card-theme-formats=svg")))
4360 (native-inputs
4361 `(("desktop-file-utils" ,desktop-file-utils)
4362 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4363 ("intltool" ,intltool)
4364 ("itstool" ,itstool)
4365 ("pkg-config" ,pkg-config)
4366 ("xmllint" ,libxml2)))
4367 (inputs
4368 `(("gtk+" ,gtk+)
226e57d6 4369 ("guile" ,guile-2.2)
6b888eff
SB
4370 ("libcanberra" ,libcanberra)
4371 ("librsvg" ,librsvg)))
4372 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4373 (synopsis "Solitaire card games")
4374 (description
4375 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4376which are easy to play with the aid of a mouse.")
4377 (license license:gpl3+)))
4a79e256 4378
f828d05b
KK
4379(define-public amtk
4380 (package
4381 (name "amtk")
0e08ca14 4382 (version "5.0.2")
f828d05b
KK
4383 (source (origin
4384 (method url-fetch)
bf92ba6b 4385 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4386 (version-major+minor version) "/"
bf92ba6b 4387 "amtk-" version ".tar.xz"))
f828d05b
KK
4388 (sha256
4389 (base32
0e08ca14 4390 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4391 (build-system gnu-build-system)
4392 (arguments
4393 '(#:configure-flags '("--enable-gtk-doc")))
4394 (native-inputs
4395 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4396 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4397 ("gtk-doc" ,gtk-doc)
4398 ("pkg-config" ,pkg-config)))
4399 (inputs
4400 `(("glib" ,glib)
4401 ("gtk+" ,gtk+)))
4402 (home-page "https://wiki.gnome.org/Projects/Amtk")
4403 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4404 (description
4405 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4406It is a basic GtkUIManager replacement based on GAction. It is suitable for
4407both a traditional UI or a modern UI with a GtkHeaderBar.")
4408 (license license:lgpl2.1+)))
4409
4a79e256
SB
4410(define-public devhelp
4411 (package
4412 (name "devhelp")
8ae23a1d 4413 (version "3.34.0")
4a79e256
SB
4414 (source (origin
4415 (method url-fetch)
4416 (uri (string-append "mirror://gnome/sources/" name "/"
4417 (version-major+minor version) "/"
4418 name "-" version ".tar.xz"))
4419 (sha256
4420 (base32
8ae23a1d 4421 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 4422 (build-system meson-build-system)
35407f94 4423 (arguments
20db7a3d
KK
4424 '(#:glib-or-gtk? #t
4425 #:phases
35407f94
EF
4426 (modify-phases %standard-phases
4427 (add-after 'unpack 'skip-gtk-update-icon-cache
4428 ;; Don't create 'icon-theme.cache'.
4429 (lambda _
4430 (substitute* "meson_post_install.py"
4431 (("gtk-update-icon-cache") "true"))
4432 #t)))))
4a79e256
SB
4433 (native-inputs
4434 `(("intltool" ,intltool)
5dd12afc 4435 ("itstool" ,itstool)
11d28bd9
KK
4436 ("gobject-introspection" ,gobject-introspection)
4437 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4438 ("pkg-config" ,pkg-config)))
4439 (inputs
11d28bd9
KK
4440 `(("amtk" ,amtk)
4441 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4442 ("webkitgtk" ,webkitgtk)))
4443 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4444 (synopsis "API documentation browser for GNOME")
4445 (description
4446 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4447natively with GTK-Doc (the API reference system developed for GTK+ and used
4448throughout GNOME for API documentation).")
4449 (license license:gpl2+)))
ba421ab7
MW
4450
4451(define-public cogl
4452 (package
4453 (name "cogl")
29f4bb2e 4454 (version "1.22.6")
ba421ab7
MW
4455 (source
4456 (origin
4457 (method url-fetch)
5754f0cf 4458 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4459 (version-major+minor version) "/"
5754f0cf 4460 "cogl-" version ".tar.xz"))
ba421ab7 4461 (sha256
29f4bb2e 4462 (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
a88d5a0c
MW
4463 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4464 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4465 (build-system gnu-build-system)
4466 (native-inputs
4467 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4468 ("gobject-introspection" ,gobject-introspection)
b4f04e0e 4469 ("xorg-server" ,xorg-server-for-tests)
ba421ab7
MW
4470 ("pkg-config" ,pkg-config)))
4471 (propagated-inputs
4472 `(("glib" ,glib)
4473 ("gdk-pixbuf" ,gdk-pixbuf)
4474 ("libx11" ,libx11)
4475 ("libxext" ,libxext)
4476 ("libxfixes" ,libxfixes)
4477 ("libxdamage" ,libxdamage)
4478 ("libxcomposite" ,libxcomposite)
4479 ("libxrandr" ,libxrandr)))
4480 (inputs
4481 `(("mesa" ,mesa)
4482 ("cairo" ,cairo)
4483 ("pango" ,pango)
4484 ("gstreamer" ,gstreamer)
31860852
KK
4485 ("gst-plugins-base" ,gst-plugins-base)
4486 ("wayland" ,wayland)))
ba421ab7 4487 (arguments
b4f04e0e
MB
4488 `(#:disallowed-references (,xorg-server-for-tests)
4489 #:configure-flags (list "--enable-cogl-gst"
31860852
KK
4490 "--enable-wayland-egl-platform"
4491 "--enable-wayland-egl-server"
4492
ba421ab7
MW
4493 ;; Arrange to pass an absolute file name to
4494 ;; dlopen for libGL.so.
4495 (string-append "--with-gl-libname="
4496 (assoc-ref %build-inputs "mesa")
4497 "/lib/libGL.so"))
b4f04e0e 4498 #:phases
ba421ab7
MW
4499 (modify-phases %standard-phases
4500 (add-before 'check 'start-xorg-server
b4f04e0e
MB
4501 (lambda* (#:key tests? inputs #:allow-other-keys)
4502 (if tests?
4503 (begin
4504 ;; The test suite requires a running X server.
4505 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4506 (assoc-ref inputs "xorg-server")))
4507 (setenv "DISPLAY" ":1")
4508 #t)
4509 (format #t "test suite not run~%"))
ba421ab7 4510 #t)))))
89b49245 4511 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4512 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4513 (description
4514 "Cogl is a small library for using 3D graphics hardware to draw pretty
4515pictures. The API departs from the flat state machine style of OpenGL and is
4516designed to make it easy to write orthogonal components that can render
4517without stepping on each others toes.")
4518 (license (list license:expat ; most of the code
4519 license:bsd-3 ; cogl/cogl-point-in-poly.c
4520 license:sgifreeb2.0 ; cogl-path/tesselator/
4521 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4522
4523(define-public clutter
4524 (package
4525 (name "clutter")
6a88e4ee 4526 (version "1.26.2")
fb182b8a
MW
4527 (source
4528 (origin
4529 (method url-fetch)
4530 (uri (string-append "mirror://gnome/sources/" name "/"
4531 (version-major+minor version) "/"
4532 name "-" version ".tar.xz"))
4533 (sha256
4534 (base32
6a88e4ee 4535 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4536 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4537 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4538 (build-system gnu-build-system)
600233bd
LC
4539 (outputs '("out"
4540 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4541 (native-inputs
4542 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4543 ("gobject-introspection" ,gobject-introspection)
4544 ("pkg-config" ,pkg-config)
4545 ("xsltproc" ,libxslt)))
4546 (propagated-inputs
4547 `(("cogl" ,cogl)
4548 ("cairo" ,cairo)
4549 ("atk" ,atk)
4550 ("gtk+" ,gtk+)
4551 ("json-glib" ,json-glib)
4552 ("glib" ,glib)
4553 ("libxcomposite" ,libxcomposite)
4554 ("libxdamage" ,libxdamage)
4555 ("libxext" ,libxext)
4556 ("xinput" ,xinput)))
4557 (inputs
4558 `(("libxkbcommon" ,libxkbcommon)
4559 ("udev" ,eudev)))
4560 (arguments
600233bd
LC
4561 `(#:configure-flags (list "--enable-x11-backend=yes"
4562
4563 ;; This produces share/doc/{clutter,cally}.
4564 (string-append "--with-html-dir="
4565 (assoc-ref %outputs "doc")
4566 "/share/doc"))
fb182b8a
MW
4567 ;; XXX FIXME: Get test suite working. It would probably fail in the
4568 ;; same way the cogl tests fail, since clutter is based on cogl.
4569 #:tests? #f))
4570 (home-page "http://www.clutter-project.org")
476af713 4571 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4572 (description
476af713 4573 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4574creating fast, mainly 2D single window applications such as media box UIs,
4575presentations, kiosk style applications and so on.")
4576 (license license:lgpl2.0+)))
bf7f17ba
MW
4577
4578(define-public clutter-gtk
4579 (package
4580 (name "clutter-gtk")
5d1a3219 4581 (version "1.8.4")
bf7f17ba
MW
4582 (source
4583 (origin
4584 (method url-fetch)
4585 (uri (string-append "mirror://gnome/sources/" name "/"
4586 (version-major+minor version) "/"
4587 name "-" version ".tar.xz"))
4588 (sha256
4589 (base32
5d1a3219 4590 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4591 (build-system gnu-build-system)
4592 (native-inputs
4593 `(("pkg-config" ,pkg-config)
4594 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4595 (propagated-inputs
4596 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4597 `(("clutter" ,clutter)
4598 ("gtk+" ,gtk+)))
4599 (home-page "http://www.clutter-project.org")
476af713 4600 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4601 (description
476af713 4602 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4603creating fast, mainly 2D single window applications such as media box UIs,
4604presentations, kiosk style applications and so on.")
4605 (license license:lgpl2.0+)))
86d6a893
MW
4606
4607(define-public clutter-gst
4608 (package
4609 (name "clutter-gst")
ba07ac19 4610 (version "3.0.27")
86d6a893
MW
4611 (source
4612 (origin
4613 (method url-fetch)
f010f89b 4614 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4615 (version-major+minor version) "/"
f010f89b 4616 "clutter-gst-" version ".tar.xz"))
86d6a893 4617 (sha256
ba07ac19 4618 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4619 (build-system gnu-build-system)
4620 (native-inputs
ba07ac19 4621 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4622 ("pkg-config" ,pkg-config)
4623 ("gobject-introspection" ,gobject-introspection)))
4624 (inputs
4625 `(("clutter" ,clutter)
4626 ("gstreamer" ,gstreamer)
4627 ("gst-plugins-base" ,gst-plugins-base)))
4628 (home-page "http://www.clutter-project.org")
4629 (synopsis "Integration library for using GStreamer with Clutter")
4630 (description
4631 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4632It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4633implements the ClutterGstPlayer interface using playbin. Clutter is an
4634OpenGL-based interactive canvas library.")
86d6a893 4635 (license license:lgpl2.0+)))
607a04ae 4636
30dc88d9
LC
4637(define-public libchamplain
4638 (package
4639 (name "libchamplain")
5564b2c5 4640 (version "0.12.16")
30dc88d9
LC
4641 (source (origin
4642 (method url-fetch)
4643 (uri (string-append
4644 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4645 version ".tar.xz"))
4646 (sha256
4647 (base32
5564b2c5 4648 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4649 (build-system gnu-build-system)
f7c6833f
LF
4650 (arguments '(#:configure-flags '("--enable-vala")))
4651 (native-inputs
4652 `(("gobject-introspection" ,gobject-introspection)
4653 ("pkg-config" ,pkg-config)
4654 ("vala" ,vala)))
30dc88d9
LC
4655 (propagated-inputs
4656 `(("libsoup" ,libsoup)
4657 ("sqlite" ,sqlite)
4658 ("clutter" ,clutter)
4659 ("clutter-gtk" ,clutter-gtk)
4660 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4661 ("cairo" ,cairo)
4662 ("gtk+3" ,gtk+)
4663 ("glib" ,glib)))
f032d0be 4664 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4665 (synopsis "C library providing a ClutterActor to display maps")
4666 (description
4667 "libchamplain is a C library providing a ClutterActor to display maps.
4668It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4669and Perl bindings are also available. It supports numerous free map sources
4670such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4671 (license license:lgpl2.1+)))
4672
607a04ae
MW
4673(define-public gom
4674 (package
4675 (name "gom")
0510440b 4676 (version "0.3.2")
607a04ae
MW
4677 (source
4678 (origin
4679 (method url-fetch)
6c8a0b6f 4680 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4681 (version-major+minor version) "/"
6c8a0b6f 4682 "gom-" version ".tar.xz"))
607a04ae
MW
4683 (sha256
4684 (base32
0510440b 4685 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4686 (build-system gnu-build-system)
4687 (native-inputs
4688 `(("intltool" ,intltool)
4689 ("pkg-config" ,pkg-config)
4690 ("gobject-introspection" ,gobject-introspection)))
4691 (inputs
4692 `(("glib" ,glib)
4693 ("gdk-pixbuf" ,gdk-pixbuf)
4694 ("sqlite" ,sqlite)))
4695 ;; XXX TODO: Figure out how to run the test suite.
4696 (arguments `(#:tests? #f))
4697 (home-page "https://wiki.gnome.org/Projects/Gom")
4698 (synopsis "Object mapper from GObjects to SQLite")
4699 (description
4700 "Gom provides an object mapper from GObjects to SQLite. It helps you
4701write applications that need to store structured data as well as make complex
4702queries upon that data.")
4703 (license license:lgpl2.1+)))
b7a3cf11 4704
865aacc9 4705(define-public libgnome-games-support
f09520db 4706 (package
865aacc9 4707 (name "libgnome-games-support")
4c6d15cf 4708 (version "1.4.4")
f09520db
SB
4709 (source (origin
4710 (method url-fetch)
2d8dca9d 4711 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4712 (version-major+minor version) "/"
2d8dca9d 4713 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4714 (sha256
4715 (base32
4c6d15cf 4716 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4717 (build-system gnu-build-system)
4718 (arguments
4719 '(#:phases
4720 (modify-phases %standard-phases
4721 (add-before 'check 'pre-check
4722 (lambda _
865aacc9 4723 ;; Tests require a writable HOME.
f09520db
SB
4724 (setenv "HOME" (getcwd))
4725 #t)))))
4726 (native-inputs
4727 `(("intltool" ,intltool)
4728 ("pkg-config" ,pkg-config)
4729 ("vala" ,vala)))
4730 (propagated-inputs
865aacc9 4731 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4732 `(("gtk+" ,gtk+)
4733 ("libgee" ,libgee)))
4734 (home-page "https://www.gnome.org/")
4735 (synopsis "Useful functionality shared among GNOME games")
4736 (description
865aacc9 4737 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4738GNOME Games, but it may be used by others.")
4739 (license license:lgpl3+)))
4740
b7a3cf11
SB
4741(define-public gnome-klotski
4742 (package
4743 (name "gnome-klotski")
18364fbc 4744 (version "3.34.0")
b7a3cf11
SB
4745 (source (origin
4746 (method url-fetch)
4747 (uri (string-append "mirror://gnome/sources/" name "/"
4748 (version-major+minor version) "/"
4749 name "-" version ".tar.xz"))
4750 (sha256
4751 (base32
18364fbc 4752 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
4753 (build-system meson-build-system)
4754 (arguments
4755 '(#:glib-or-gtk? #t
4756 #:phases
4757 (modify-phases %standard-phases
4758 (add-after 'unpack 'skip-gtk-update-icon-cache
4759 ;; Don't create 'icon-theme.cache'.
4760 (lambda _
4761 (substitute* "build-aux/meson_post_install.py"
4762 (("gtk-update-icon-cache") (which "true")))
4763 #t)))))
b7a3cf11
SB
4764 (native-inputs
4765 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4766 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4767 ("intltool" ,intltool)
4768 ("itstool" ,itstool)
bcb354ad 4769 ("pkg-config" ,pkg-config)
c1e419c4 4770 ("vala" ,vala)
bcb354ad 4771 ("xmllint" ,libxml2)))
b7a3cf11
SB
4772 (inputs
4773 `(("gtk+" ,gtk+)
f4eae76f 4774 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4775 ("librsvg" ,librsvg)))
4776 (home-page "https://wiki.gnome.org/Apps/Klotski")
4777 (synopsis "Sliding block puzzles")
4778 (description
4779 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4780the patterned block to the area bordered by green markers. To do so, you will
4781need to slide other blocks out of the way. Complete each puzzle in as few moves
4782as possible!")
4783 (license license:gpl2+)))
8d4791bf
MW
4784
4785(define-public grilo
4786 (package
4787 (name "grilo")
a865e938 4788 (version "0.3.10")
8d4791bf
MW
4789 (source
4790 (origin
4791 (method url-fetch)
4792 (uri (string-append "mirror://gnome/sources/" name "/"
4793 (version-major+minor version) "/"
4794 name "-" version ".tar.xz"))
4795 (sha256
4796 (base32
a865e938 4797 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4798 (build-system meson-build-system)
8d4791bf
MW
4799 (native-inputs
4800 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4801 ("intltool" ,intltool)
4802 ("pkg-config" ,pkg-config)
d48d4c98
KK
4803 ("gobject-introspection" ,gobject-introspection)
4804 ("gtk-doc" ,gtk-doc)
4805 ("vala" ,vala)))
8d4791bf 4806 (inputs
6d7273a0
KK
4807 `(("cyrus-sasl" ,cyrus-sasl)
4808 ("glib" ,glib)
8d4791bf
MW
4809 ("gtk+" ,gtk+)
4810 ("libxml2" ,libxml2)
6d7273a0 4811 ("liboauth" ,liboauth)
8d4791bf
MW
4812 ("libsoup" ,libsoup)
4813 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4814 (native-search-paths
4815 (list (search-path-specification
4816 (variable "GRL_PLUGIN_PATH")
4817 (files (list (string-append "lib/grilo-"
4818 (version-major+minor version)))))))
d48d4c98 4819 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4820 (synopsis "Framework for discovering and browsing media")
4821 (description
4822 "Grilo is a framework focused on making media discovery and browsing easy
4823for application developers.")
4824 (license license:lgpl2.1+)))
7b212526
MW
4825
4826(define-public grilo-plugins
4827 (package
4828 (name "grilo-plugins")
281f6b3a 4829 (version "0.3.10")
7b212526
MW
4830 (source
4831 (origin
4832 (method url-fetch)
4833 (uri (string-append "mirror://gnome/sources/" name "/"
4834 (version-major+minor version) "/"
4835 name "-" version ".tar.xz"))
4836 (sha256
4837 (base32
281f6b3a
RG
4838 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4839 (build-system meson-build-system)
7b212526 4840 (native-inputs
281f6b3a
RG
4841 `(("gettext" ,gettext-minimal)
4842 ("glib:bin" ,glib "bin")
4843 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
4844 ("itstool" ,itstool)
4845 ("pkg-config" ,pkg-config)))
281f6b3a 4846 ;; TODO: ahavi, gstreamer
7b212526
MW
4847 (inputs
4848 `(("grilo" ,grilo)
281f6b3a
RG
4849 ;("gmime" ,gmime) ; unused
4850 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 4851 ("gom" ,gom)
281f6b3a
RG
4852 ;("gssdp" ,gssdp) ; unused
4853 ;("gupnp" ,gupnp) ; unused
4854 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
4855 ("json-glib" ,json-glib)
4856 ("avahi" ,avahi)
281f6b3a
RG
4857 ("libgdata" ,libgdata)
4858 ("libmediaart" ,libmediaart)
4859 ;("librest" ,rest) ; unused
7b212526 4860 ("libsoup" ,libsoup)
281f6b3a
RG
4861 ("totam-pl-parser" ,totem-pl-parser)
4862 ("tracker" ,tracker))) ; unused because it's too old
7b212526 4863 (arguments
281f6b3a
RG
4864 `(#:glib-or-gtk? #t
4865 ;;Disable lua-factory as it needs missing dependencies
4866 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 4867 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4868 (synopsis "Plugins for the Grilo media discovery library")
4869 (description
4870 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
4871for application developers. This package provides plugins for common media
4872discovery protocols.")
7b212526 4873 (license license:lgpl2.1+)))
4e3fc547
MW
4874
4875(define-public totem
4876 (package
4877 (name "totem")
961dc62d 4878 (version "3.34.1")
4e3fc547
MW
4879 (source
4880 (origin
4881 (method url-fetch)
4882 (uri (string-append "mirror://gnome/sources/" name "/"
4883 (version-major+minor version) "/"
4884 name "-" version ".tar.xz"))
4885 (sha256
4886 (base32
961dc62d 4887 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 4888 (build-system meson-build-system)
4e3fc547
MW
4889 (native-inputs
4890 `(("pkg-config" ,pkg-config)
4891 ("desktop-file-utils" ,desktop-file-utils)
4892 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4893 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4894 ("intltool" ,intltool)
bcb354ad 4895 ("itstool" ,itstool)
995ef5ea
KK
4896 ("xmllint" ,libxml2)
4897 ("python-pylint" ,python-pylint)
4898 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4899 (propagated-inputs
4900 `(("dconf" ,dconf)))
4901 (inputs
4902 `(("gtk+" ,gtk+)
4903 ("gdk-pixbuf" ,gdk-pixbuf)
4904 ("atk" ,atk)
4905 ("cairo" ,cairo)
4906 ("dbus-glib" ,dbus-glib)
4907 ("clutter" ,clutter)
4908 ("clutter-gtk" ,clutter-gtk)
4909 ("clutter-gst" ,clutter-gst)
6a6db57f 4910 ("xorgproto" ,xorgproto)
4e3fc547
MW
4911 ("libxxf86vm" ,libxxf86vm)
4912 ("libxtst" ,libxtst)
4913 ("libxrandr" ,libxrandr)
4914 ("libxml2" ,libxml2)
4915 ("libsoup" ,libsoup)
4916 ("libpeas" ,libpeas)
4917 ("librsvg" ,librsvg)
4918 ("lirc" ,lirc)
4919 ("gnome-desktop" ,gnome-desktop)
4920 ("gstreamer" ,gstreamer)
4921 ("gst-plugins-base" ,gst-plugins-base)
4922 ("gst-plugins-good" ,gst-plugins-good)
4923 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4924 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4925 ("python" ,python)
995ef5ea 4926 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4927 ("totem-pl-parser" ,totem-pl-parser)
4928 ("grilo" ,grilo)
4929 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4930 ("vala" ,vala)))
4931 (arguments
7ad81b8b
LC
4932 `(#:glib-or-gtk? #t
4933
4934 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4935 ;; all that.
7ad81b8b 4936 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4937
4938 ;; Do not build .a files for the plugins, it's
4939 ;; completely useless. This saves 2 MiB.
7ad81b8b 4940 "--default-library" "shared")
ec5c24f9 4941 #:phases
4e3fc547 4942 (modify-phases %standard-phases
d51b19ad
EF
4943 (add-after 'unpack 'skip-gtk-update-icon-cache
4944 ;; Don't create 'icon-theme.cache'.
4945 (lambda _
4946 (substitute* "meson_post_install.py"
4947 (("gtk-update-icon-cache") "true"))
4948 #t))
6368eb39
DM
4949 (add-before
4950 'install 'disable-cache-generation
4951 (lambda _
4952 (setenv "DESTDIR" "/")
4953 #t))
995ef5ea
KK
4954 (add-before
4955 'check 'pre-check
4956 (lambda _
4957 ;; Tests require a running X server.
4958 (system "Xvfb :1 &")
4959 (setenv "DISPLAY" ":1")
4960 #t))
4e3fc547
MW
4961 (add-after
4962 'install 'wrap-totem
4963 (lambda* (#:key inputs outputs #:allow-other-keys)
4964 (let ((out (assoc-ref outputs "out"))
4965 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4966 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4967 (wrap-program (string-append out "/bin/totem")
4968 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4969 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4970 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4971 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4972 #t)))))
4973 (home-page "https://wiki.gnome.org/Apps/Videos")
4974 (synopsis "Simple media player for GNOME based on GStreamer")
4975 (description "Totem is a simple yet featureful media player for GNOME
4976which can read a large number of file formats.")
4977 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4978 ;; to be used and distributed together with GStreamer and Totem. See
4979 ;; file://COPYING in the source distribution for details.
4980 (license license:gpl2+)))
f0afb0c8
DH
4981
4982(define-public rhythmbox
4983 (package
4984 (name "rhythmbox")
eda580c0 4985 (version "3.4.4")
f0afb0c8
DH
4986 (source (origin
4987 (method url-fetch)
2588693d 4988 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 4989 (version-major+minor version) "/"
2588693d 4990 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
4991 (sha256
4992 (base32
eda580c0 4993 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
4994 (build-system glib-or-gtk-build-system)
4995 (arguments
4996 `(#:configure-flags
4997 (list "--enable-lirc"
4998 "--enable-python"
4999 "--enable-vala"
5000 "--with-brasero"
5001 "--with-gudev"
5002 "--with-libsecret")
5003 #:phases
5004 (modify-phases %standard-phases
5005 (add-after
5006 'install 'wrap-rhythmbox
5007 (lambda* (#:key inputs outputs #:allow-other-keys)
5008 (let ((out (assoc-ref outputs "out"))
5009 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5010 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5011 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5012 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5013 (wrap-program (string-append out "/bin/rhythmbox")
5014 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5015 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5016 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5017 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5018 #t)))))
5019 (propagated-inputs
5020 `(("dconf" ,dconf)))
5021 (native-inputs
bcb354ad
SB
5022 `(("itstool" ,itstool)
5023 ("intltool" ,intltool)
f0afb0c8
DH
5024 ("glib" ,glib "bin")
5025 ("gobject-introspection" ,gobject-introspection)
5026 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5027 ("pkg-config" ,pkg-config)
5028 ("xmllint" ,libxml2)))
f0afb0c8
DH
5029 (inputs
5030 `(("json-glib" ,json-glib)
5031 ("tdb" ,tdb)
5032 ("gnome-desktop" ,gnome-desktop)
5033 ("python" ,python)
5034 ("python-pygobject" ,python2-pygobject)
5035 ("vala" ,vala)
5036 ("gmime" ,gmime)
f0afb0c8
DH
5037 ("adwaita-icon-theme" ,adwaita-icon-theme)
5038 ("grilo" ,grilo)
5039 ("grilo-plugins" ,grilo-plugins)
5040 ("gstreamer" ,gstreamer)
5041 ("gst-plugins-base" ,gst-plugins-base)
5042 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5043 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5044 ("libgudev" ,libgudev)
f0afb0c8
DH
5045 ;;("libmtp" ,libmtp) FIXME: Not detected
5046 ("libsecret" ,libsecret)
5047 ("libsoup" ,libsoup)
5048 ("libnotify" ,libnotify)
5049 ("libpeas" ,libpeas)
5050 ("lirc" ,lirc)
5051 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5052 ;;("clutter" ,clutter)
5053 ;;("clutter-gtk" ,clutter-gtk)
5054 ;;("clutter-gst" ,clutter-gst)
5055 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5056 ("atk" ,atk)
5057 ("pango" ,pango)
5058 ("gtk+" ,gtk+)
5059 ;; TODO:
5060 ;; * libgpod
5061 ;; * mx
f0afb0c8
DH
5062 ("brasero" ,brasero)))
5063 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5064 (synopsis "Music player for GNOME")
5065 (description "Rhythmbox is a music playing application for GNOME. It
5066supports playlists, song ratings, and any codecs installed through gstreamer.")
5067 (license license:gpl2+)))
f70d8383
DH
5068
5069(define-public eog
5070 (package
5071 (name "eog")
0c9031fa 5072 (version "3.34.1")
f70d8383
DH
5073 (source (origin
5074 (method url-fetch)
5075 (uri (string-append "mirror://gnome/sources/" name "/"
5076 (version-major+minor version) "/"
5077 name "-" version ".tar.xz"))
5078 (sha256
5079 (base32
0c9031fa 5080 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5081 (build-system meson-build-system)
f70d8383 5082 (arguments
34c44a34
RW
5083 `(#:configure-flags
5084 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5085 (list (string-append "-Dc_link_args=-Wl,-rpath="
5086 (assoc-ref %outputs "out") "/lib/eog"))
5087 #:phases
f70d8383 5088 (modify-phases %standard-phases
7a034665
EF
5089 (add-after 'unpack 'skip-gtk-update-icon-cache
5090 ;; Don't create 'icon-theme.cache'.
5091 (lambda _
5092 (substitute* "meson_post_install.py"
5093 (("gtk-update-icon-cache") "true"))
5094 #t))
61fb581f
RW
5095 (add-after 'install 'wrap-eog
5096 (lambda* (#:key outputs #:allow-other-keys)
5097 (let ((out (assoc-ref outputs "out"))
5098 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5099 (wrap-program (string-append out "/bin/eog")
5100 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5101 #t)))))
f70d8383
DH
5102 (propagated-inputs
5103 `(("dconf" ,dconf)))
5104 (native-inputs
5105 `(("intltool" ,intltool)
b3546174 5106 ("itstool" ,itstool)
f70d8383
DH
5107 ("glib" ,glib "bin")
5108 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5109 ("pkg-config" ,pkg-config)
5110 ("xmllint" ,libxml2)))
f70d8383
DH
5111 (inputs
5112 `(("gnome-desktop" ,gnome-desktop)
5113 ("shared-mime-info" ,shared-mime-info)
5114 ("adwaita-icon-theme" ,adwaita-icon-theme)
5115 ("exempi" ,exempi)
5116 ("lcms" ,lcms)
5117 ("libexif" ,libexif)
5118 ("libpeas" ,libpeas)
4bd428a7 5119 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5120 ("librsvg" ,librsvg-next)
f70d8383
DH
5121 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5122 ("gtk+" ,gtk+)))
5123 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5124 (synopsis "GNOME image viewer")
5125 (description "Eye of GNOME is the GNOME image viewer. It
5126supports image conversion, rotation, and slideshows.")
5127 (license license:gpl2+)))
41af5e7b 5128
0c3f8cb8
LC
5129(define-public eog-plugins
5130 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5131 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5132 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5133 ;; 'XDG_DATA_DIRS' appropriately set.
5134 (package
5135 (name "eog-plugins")
54b74cc6 5136 (version "3.26.4")
0c3f8cb8
LC
5137 (source (origin
5138 (method url-fetch)
f3b88ed2 5139 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5140 (version-major+minor version) "/"
f3b88ed2 5141 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5142 (sha256
5143 (base32
54b74cc6 5144 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5145 (build-system gnu-build-system)
5146 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5147 (synopsis "Extensions for the Eye of GNOME image viewer")
5148 (native-inputs
5149 `(("pkg-config" ,pkg-config)
f2d97d57 5150 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5151 (inputs
5152 `(("eog" ,eog)
5153 ("glib" ,glib)
5154 ("gtk+" ,gtk+)
5155 ("libpeas" ,libpeas)
5156 ("libexif" ,libexif)
5157 ("libchamplain" ,libchamplain)))
5158 (description
5159 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5160notably:
5161
5162@itemize
5163@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5164@item @dfn{Map}, which displays a map of where the picture was taken on the
5165side panel;
5166@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5167@end itemize\n")
5168
5169 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5170 ;; long suspicious byte stream that goes to a
5171 ;; ".gresource.eog_postasa_plugin" ELF section.
5172 (license license:gpl2+)))
5173
41af5e7b
SB
5174(define-public libgudev
5175 (package
5176 (name "libgudev")
b78f5118 5177 (version "232")
41af5e7b
SB
5178 (source (origin
5179 (method url-fetch)
5180 (uri (string-append "mirror://gnome/sources/" name "/"
5181 version "/" name "-" version ".tar.xz"))
5182 (sha256
5183 (base32
b78f5118 5184 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5185 (build-system gnu-build-system)
b78f5118
RW
5186 (arguments
5187 '(#:configure-flags
5188 ;; umockdev depends on libgudev.
5189 (list "--disable-umockdev")))
41af5e7b
SB
5190 (native-inputs
5191 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5192 ("gobject-introspection" ,gobject-introspection)
5193 ("pkg-config" ,pkg-config)))
5194 (propagated-inputs
5195 `(("glib" ,glib))) ; required by gudev-1.0.pc
5196 (inputs
5197 `(("udev" ,eudev)))
5198 (home-page "https://wiki.gnome.org/Projects/libgudev")
5199 (synopsis "GObject bindings for libudev")
5200 (description
5201 "This library provides GObject bindings for libudev. It was originally
5202part of udev-extras, then udev, then systemd. It's now a project on its own.")
5203 (license license:lgpl2.1+)))
3dc8828f
SB
5204
5205(define-public gvfs
5206 (package
5207 (name "gvfs")
12fe4846 5208 (version "1.40.1")
3dc8828f
SB
5209 (source (origin
5210 (method url-fetch)
1d68eb32 5211 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5212 (version-major+minor version) "/"
1d68eb32 5213 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5214 (sha256
5215 (base32
12fe4846 5216 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 5217 (build-system meson-build-system)
3dc8828f 5218 (arguments
e762d943
RW
5219 '(#:glib-or-gtk? #t
5220 #:configure-flags
5221 (list "-Dsystemduserunitdir=no"
5222 "-Dtmpfilesdir=no"
5223 ;; Otherwise, the RUNPATH will lack the final path component.
5224 (string-append "-Dc_link_args=-Wl,-rpath="
5225 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5226 (native-inputs
5227 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5228 ("gettext" ,gettext-minimal)
5229 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5230 ("pkg-config" ,pkg-config)
5231 ("xsltproc" ,libxslt)))
5232 (inputs
5233 `(("avahi" ,avahi)
5234 ("docbook-xml" ,docbook-xml-4.2)
5235 ("docbook-xsl" ,docbook-xsl)
5236 ("dbus" ,dbus)
e762d943 5237 ("elogind" ,elogind)
3dc8828f 5238 ("fuse" ,fuse)
24a78aa6 5239 ("gcr" ,gcr)
3dc8828f 5240 ("glib" ,glib)
e762d943 5241 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5242 ("libarchive" ,libarchive)
5243 ("libbluray" ,libbluray)
8852ca24 5244 ("libcap" ,libcap)
3dc8828f
SB
5245 ("libcdio-paranoia" ,libcdio-paranoia)
5246 ("libgcrypt" ,libgcrypt)
e762d943 5247 ("libgdata" ,libgdata)
3dc8828f
SB
5248 ("libgphoto2" ,libgphoto2)
5249 ("libgudev" ,libgudev)
0ab9f949 5250 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5251 ("libmtp" ,libmtp)
e762d943 5252 ("libnfs" ,libnfs)
3dc8828f
SB
5253 ("libsecret" ,libsecret)
5254 ("libsmbclient" ,samba)
5255 ("libsoup" ,libsoup)
5256 ("libxml2" ,libxml2)
e762d943 5257 ("openssh" ,openssh)
8852ca24 5258 ("polkit" ,polkit)
3dc8828f
SB
5259 ("udisks" ,udisks)))
5260 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5261 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5262 (description
8f65585b 5263 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5264abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5265to all applications using the GIO API. It also supports exposing the GVFS
5266mounts to non-GIO applications using FUSE.
5267
5268GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5269DAV, and others.")
5270 (license license:lgpl2.0+)))
7c88b6bd
AW
5271
5272(define-public gusb
5273 (package
5274 (name "gusb")
536b3274 5275 (version "0.3.0")
7c88b6bd 5276 (source (origin
bbfb36f9
EF
5277 (method git-fetch)
5278 (uri (git-reference
5279 (url "https://github.com/hughsie/libgusb.git")
5280 (commit version)))
5281 (file-name (git-file-name name version))
7c88b6bd
AW
5282 (sha256
5283 (base32
bbfb36f9 5284 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5285 (build-system meson-build-system)
7c88b6bd 5286 (native-inputs
536b3274 5287 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5288 ("pkg-config" ,pkg-config)
5289 ("vala" ,vala)
7c88b6bd
AW
5290 ("gtk-doc" ,gtk-doc)))
5291 (propagated-inputs
5292 ;; Both of these are required by gusb.pc.
5293 `(("glib" ,glib)
5294 ("libusb" ,libusb)))
5295 (arguments
536b3274 5296 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5297 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5298 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5299 (description
5300 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5301asynchronous control, bulk and interrupt transfers with proper cancellation
5302and integration into a mainloop. This makes it easy to integrate low level
5303USB transfers with your high-level application or system daemon.")
5304 (license license:lgpl2.1+)))
0abe1d86
AW
5305
5306(define-public simple-scan
5307 (package
5308 (name "simple-scan")
f9e5313c 5309 (version "3.36.2.1")
d9f6d587
TGR
5310 (source
5311 (origin
5312 (method url-fetch)
5313 (uri (string-append "mirror://gnome/sources/simple-scan/"
5314 (version-major+minor version) "/"
5315 "simple-scan-" version ".tar.xz"))
5316 (sha256
f9e5313c 5317 (base32 "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v"))))
d9f6d587
TGR
5318 (build-system meson-build-system)
5319 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5320 (arguments
5321 '(#:glib-or-gtk? #t))
0abe1d86
AW
5322 (inputs
5323 `(("gtk" ,gtk+)
5324 ("zlib" ,zlib)
5325 ("cairo" ,cairo)
c501f592 5326 ("colord" ,colord)
0abe1d86
AW
5327 ("gdk-pixbuf" ,gdk-pixbuf)
5328 ("gusb" ,gusb)
4c928743 5329 ("libsane" ,sane-backends)))
0abe1d86 5330 (native-inputs
b94a6ca0 5331 `(("gettext" ,gettext-minimal)
0abe1d86 5332 ("itstool" ,itstool)
c501f592 5333 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5334 ("pkg-config" ,pkg-config)
bcb354ad
SB
5335 ("vala" ,vala)
5336 ("xmllint" ,libxml2)))
dff0eedb 5337 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5338 (synopsis "Document and image scanner")
d9f6d587
TGR
5339 (description
5340 "Document Scanner is an easy-to-use application that lets you connect your
5341scanner and quickly capture images and documents in an appropriate format. It
5342supports any scanner for which a suitable SANE driver is available, which is
5343almost all of them.")
0abe1d86 5344 (license license:gpl3+)))
7549f984 5345
ab466d79
RW
5346(define-public eolie
5347 (package
5348 (name "eolie")
ed783404 5349 (version "0.9.98.1")
ab466d79
RW
5350 (source (origin
5351 (method url-fetch)
ed783404
RW
5352 (uri (string-append "https://adishatz.org/eolie/eolie-"
5353 version ".tar.xz"))
ab466d79
RW
5354 (sha256
5355 (base32
ed783404 5356 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5357 (build-system meson-build-system)
ab466d79 5358 (arguments
00014781
RW
5359 `(#:glib-or-gtk? #t
5360 #:phases
ab466d79 5361 (modify-phases %standard-phases
f0c68100
EF
5362 (add-after 'unpack 'skip-gtk-update-icon-cache
5363 ;; Don't create 'icon-theme.cache'.
5364 (lambda _
5365 (substitute* "meson_post_install.py"
5366 (("gtk-update-icon-cache") "true"))
5367 #t))
ab466d79
RW
5368 (add-after 'wrap 'wrap-more
5369 (lambda* (#:key inputs outputs #:allow-other-keys)
5370 (let* ((out (assoc-ref outputs "out"))
5371 ;; These libraries must be on LD_LIBRARY_PATH.
5372 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5373 "atk" "gtk+" "gsettings-desktop-schemas"
5374 "gobject-introspection"))
5375 (path (string-join
5376 (map (lambda (lib)
5377 (string-append (assoc-ref inputs lib) "/lib"))
5378 libs)
5379 ":")))
5380 (wrap-program (string-append out "/bin/eolie")
5381 `("LD_LIBRARY_PATH" ":" prefix (,path))
5382 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5383 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5384 #t)))))
5385 (native-inputs
f85ca6ed 5386 `(("intltool" ,intltool)
ab466d79 5387 ("itstool" ,itstool)
d95f1041 5388 ("pkg-config" ,pkg-config)
d95f1041 5389 ("python" ,python)
f0c68100 5390 ("glib:bin" ,glib "bin")))
ab466d79
RW
5391 (inputs
5392 `(("gobject-introspection" ,gobject-introspection)
5393 ("glib-networking" ,glib-networking)
5394 ("cairo" ,cairo)
5395 ("gtk+" ,gtk+)
5396 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5397 ("python" ,python-wrapper)
d72f76df 5398 ("python-dateutil" ,python-dateutil)
00014781 5399 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5400 ("python-pygobject" ,python-pygobject)
5401 ("python-pycairo" ,python-pycairo)
00014781 5402 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5403 ("libsecret" ,libsecret)
5404 ("gtkspell3" ,gtkspell3)
5405 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5406 ("webkitgtk" ,webkitgtk)))
166b2c97 5407 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5408 (synopsis "Web browser for GNOME")
5409 (description
5410 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5411a secret password store, an adblocker, and a modern UI.")
5412 (license license:gpl3+)))
5413
7549f984
SB
5414(define-public epiphany
5415 (package
5416 (name "epiphany")
68fdd237 5417 (version "3.34.4")
7549f984
SB
5418 (source (origin
5419 (method url-fetch)
dd3266ec 5420 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5421 (version-major+minor version) "/"
dd3266ec 5422 "epiphany-" version ".tar.xz"))
7549f984
SB
5423 (sha256
5424 (base32
68fdd237 5425 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
5426
5427 (build-system meson-build-system)
7549f984 5428 (arguments
20710b91 5429 '(#:glib-or-gtk? #t
bb7ff88f
EF
5430 #:phases
5431 (modify-phases %standard-phases
5432 (add-after 'unpack 'skip-gtk-update-icon-cache
5433 ;; Don't create 'icon-theme.cache'.
5434 (lambda _
5435 (substitute* "post_install.py"
5436 (("gtk-update-icon-cache") "true"))
20710b91
LP
5437 #t))
5438 (add-after 'unpack 'disable-failing-tests
5439 (lambda _
5440 (substitute* "tests/meson.build"
5441 ;; embed_shell fails, because webkitgtk apparently no longer supports
5442 ;; overriding the ftp schema
5443 ;; web_app_utils fails due to missing network access
5444 (("(embed_shell|web_app_utils)_test,")
5445 "find_program('sh'), args: ['-c', 'exit 77'],"))
5446 #t))
5447 (add-before 'check 'pre-check
5448 (lambda _
5449 ;; Tests require a running X server.
5450 (system "Xvfb :1 &")
5451 (setenv "DISPLAY" ":1")
bb7ff88f 5452 #t)))
e19f9c24
LF
5453 #:configure-flags
5454 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5455 (list (string-append "-Dc_link_args=-Wl,-rpath="
5456 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5457 (propagated-inputs
5458 `(("dconf" ,dconf)))
7549f984 5459 (native-inputs
fc5c5b92
R
5460 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5461 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5462 ("intltool" ,intltool)
7549f984 5463 ("itstool" ,itstool)
bcb354ad 5464 ("pkg-config" ,pkg-config)
20710b91
LP
5465 ("xmllint" ,libxml2)
5466 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
5467 (inputs
5468 `(("avahi" ,avahi)
5469 ("gcr" ,gcr)
fc5c5b92 5470 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5471 ("glib-networking" ,glib-networking)
5472 ("gnome-desktop" ,gnome-desktop)
5473 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5474 ("json-glib" ,json-glib)
7549f984 5475 ("iso-codes" ,iso-codes)
8748e29c 5476 ("libdazzle" ,libdazzle)
7549f984
SB
5477 ("libnotify" ,libnotify)
5478 ("libsecret" ,libsecret)
7549f984 5479 ("libxslt" ,libxslt)
fc5c5b92 5480 ("nettle" ,nettle) ; for hogweed
7549f984 5481 ("sqlite" ,sqlite)
f85ca6ed 5482 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5483 (home-page "https://wiki.gnome.org/Apps/Web")
5484 (synopsis "GNOME web browser")
5485 (description
5486 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5487principles are simplicity and standards compliance.")
5488 (license license:gpl2+)))
a3856b2c
SB
5489
5490(define-public d-feet
5491 (package
5492 (name "d-feet")
458e9221 5493 (version "0.3.14")
a3856b2c
SB
5494 (source (origin
5495 (method url-fetch)
5496 (uri (string-append "mirror://gnome/sources/" name "/"
5497 (version-major+minor version) "/"
5498 name "-" version ".tar.xz"))
5499 (sha256
5500 (base32
458e9221 5501 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5502 (build-system glib-or-gtk-build-system)
5503 (arguments
5504 '(#:out-of-source? #f ; tests need to run in the source directory.
5505 #:phases
5506 (modify-phases %standard-phases
5507 (add-before
5508 'check 'pre-check
86aff791 5509 (lambda _
a3856b2c
SB
5510 ;; The test suite requires a running X server.
5511 (system "Xvfb :1 &")
5512 (setenv "DISPLAY" ":1")
5513 ;; Don't fail on missing '/etc/machine-id'.
5514 (setenv "DBUS_FATAL_WARNINGS" "0")
5515 ;; tests.py and window.py don't meet E402:
5516 ;; E402 module level import not at top of file
5517 (substitute* "src/tests/Makefile"
86aff791
MW
5518 (("--ignore=E123") "--ignore=E123,E402"))
5519 #t))
a3856b2c
SB
5520 (add-after
5521 'install 'wrap-program
5522 (lambda* (#:key outputs #:allow-other-keys)
5523 (let ((prog (string-append (assoc-ref outputs "out")
5524 "/bin/d-feet")))
5525 (wrap-program prog
5526 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5527 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5528 #t))))))
a3856b2c
SB
5529 (native-inputs
5530 `(("intltool" ,intltool)
5531 ("itstool" ,itstool)
5532 ("pkg-config" ,pkg-config)
5533 ("python-pep8" ,python-pep8)
5534 ("xmllint" ,libxml2)
ff337525 5535 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5536 (inputs
5537 `(("gobject-introspection" ,gobject-introspection)
5538 ("gtk+" ,gtk+)
5539 ("python" ,python-wrapper)
458e9221 5540 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5541 ("python-pygobject" ,python-pygobject)))
5542 (home-page "https://wiki.gnome.org/Apps/DFeet")
5543 (synopsis "D-Bus debugger")
5544 (description
5545 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5546of running programs and invoke methods on those interfaces.")
5547 (license license:gpl2+)))
c3b97bd9
SB
5548
5549(define-public yelp-xsl
5550 (package
5551 (name "yelp-xsl")
632a9b32 5552 (version "3.34.2")
c3b97bd9
SB
5553 (source (origin
5554 (method url-fetch)
5555 (uri (string-append "mirror://gnome/sources/" name "/"
5556 (version-major+minor version) "/"
5557 name "-" version ".tar.xz"))
5558 (sha256
5559 (base32
632a9b32 5560 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5561 (build-system gnu-build-system)
5562 (native-inputs
632a9b32 5563 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5564 ("itstool" ,itstool)
5565 ("xmllint" ,libxml2)))
5566 (home-page "https://wiki.gnome.org/Apps/Yelp")
5567 (synopsis "XSL stylesheets for Yelp")
5568 (description
5569 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5570to format Docbook and Mallard documents.")
5571 (license license:gpl2+)))
de3d612a
SB
5572
5573(define-public yelp
5574 (package
5575 (name "yelp")
1f1b6d60 5576 (version "3.32.2")
de3d612a
SB
5577 (source (origin
5578 (method url-fetch)
5579 (uri (string-append "mirror://gnome/sources/" name "/"
5580 (version-major+minor version) "/"
5581 name "-" version ".tar.xz"))
5582 (sha256
5583 (base32
1f1b6d60 5584 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5585 (build-system glib-or-gtk-build-system)
5586 (native-inputs
5587 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5588 ("intltool" ,intltool)
5589 ("itstool" ,itstool)
5590 ("pkg-config" ,pkg-config)))
5591 (propagated-inputs
5592 `(("dconf" ,dconf)))
5593 (inputs
ad1b7d8b
SB
5594 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5595 ("libxslt" ,libxslt)
de3d612a 5596 ("sqlite" ,sqlite)
4c28ca1d
SB
5597 ("webkitgtk" ,webkitgtk)
5598 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5599 (home-page "https://wiki.gnome.org/Apps/Yelp")
5600 (synopsis "GNOME help browser")
5601 (description
5602 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5603man, info, and HTML documents. It can locate documents according to the
5604freedesktop.org help system specification.")
5605 (license license:gpl2+)))
122d0d10
SB
5606
5607(define-public yelp-tools
5608 (package
5609 (name "yelp-tools")
8fe8a42a 5610 (version "3.32.2")
122d0d10
SB
5611 (source (origin
5612 (method url-fetch)
5613 (uri (string-append "mirror://gnome/sources/" name "/"
5614 (version-major+minor version) "/"
5615 name "-" version ".tar.xz"))
5616 (sha256
5617 (base32
8fe8a42a 5618 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5619 (build-system gnu-build-system)
5620 (native-inputs
5621 `(("pkg-config" ,pkg-config)))
5622 (propagated-inputs
5623 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5624 `(("itstool" ,itstool)
5625 ("xmllint" ,libxml2)
5626 ("xsltproc" ,libxslt)))
5627 (inputs
5628 `(("yelp-xsl" ,yelp-xsl)))
5629 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5630 (synopsis "Yelp documentation tools")
5631 (description
5632 "Yelp-tools is a collection of scripts and build utilities to help create,
5633manage, and publish documentation for Yelp and the web. Most of the heavy
5634lifting is done by packages like yelp-xsl and itstool. This package just
5635wraps things up in a developer-friendly way.")
5636 (license license:gpl2+)))
af8f9f23
RW
5637
5638(define-public libgee
5639 (package
5640 (name "libgee")
9cedae2a 5641 (version "0.20.3")
af8f9f23
RW
5642 (source (origin
5643 (method url-fetch)
84a1b007 5644 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5645 (version-major+minor version) "/"
84a1b007 5646 "libgee-" version ".tar.xz"))
af8f9f23
RW
5647 (sha256
5648 (base32
9cedae2a 5649 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5650 (build-system gnu-build-system)
5651 (arguments
5652 `(#:phases
5653 (modify-phases %standard-phases
5654 (add-after 'unpack 'fix-introspection-install-dir
5655 (lambda* (#:key outputs #:allow-other-keys)
5656 (let ((out (assoc-ref outputs "out")))
5657 (substitute* "gee/Makefile.in"
5658 (("@INTROSPECTION_GIRDIR@")
5659 (string-append out "/share/gir-1.0/"))
5660 (("@INTROSPECTION_TYPELIBDIR@")
5661 (string-append out "/lib/girepository-1.0/")))))))))
5662 (native-inputs
5663 `(("glib" ,glib "bin")
5664 ("pkg-config" ,pkg-config)))
5665 (inputs
5666 `(("glib" ,glib)
5667 ("gobject-introspection" ,gobject-introspection)))
5668 (home-page "https://wiki.gnome.org/Projects/Libgee")
5669 (synopsis "GObject collection library")
5670 (description
5671 "Libgee is a utility library providing GObject-based interfaces and
5672classes for commonly used data structures.")
5673 (license license:lgpl2.1+)))
b0f9c4b8
RW
5674
5675(define-public gexiv2
5676 (package
5677 (name "gexiv2")
b1a8b408 5678 (version "0.12.0")
b0f9c4b8
RW
5679 (source (origin
5680 (method url-fetch)
5681 (uri (string-append "mirror://gnome/sources/" name "/"
5682 (version-major+minor version) "/"
5683 name "-" version ".tar.xz"))
5684 (sha256
5685 (base32
b1a8b408 5686 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5687 (build-system meson-build-system)
b0f9c4b8 5688 (native-inputs
b1a8b408
KK
5689 `(("gcr" ,gcr)
5690 ("glib" ,glib "bin")
5691 ("pkg-config" ,pkg-config)
5692 ("vala" ,vala)))
b0f9c4b8
RW
5693 (propagated-inputs
5694 ;; Listed in "Requires" section of gexiv2.pc
5695 `(("exiv2" ,exiv2)))
5696 (inputs
5697 `(("glib" ,glib)
5698 ("gobject-introspection" ,gobject-introspection)))
5699 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5700 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5701 (description
5702 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5703allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5704metadata in photo and video files of various formats.")
5705 (license license:gpl2+)))
fed5a689
RW
5706
5707(define-public shotwell
5708 (package
5709 (name "shotwell")
b82a45d8 5710 (version "0.30.9")
fed5a689
RW
5711 (source (origin
5712 (method url-fetch)
5497d682 5713 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5714 (version-major+minor version) "/"
5497d682 5715 "shotwell-" version ".tar.xz"))
fed5a689
RW
5716 (sha256
5717 (base32
b82a45d8 5718 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
3b79afa6
KK
5719 (build-system meson-build-system)
5720 (arguments
5a0beca3
EF
5721 '(#:glib-or-gtk? #t
5722 #:phases
5723 (modify-phases %standard-phases
5724 (add-after 'unpack 'skip-gtk-update-icon-cache
5725 (lambda _
5726 (substitute* "build-aux/meson/postinstall.py"
5727 (("gtk-update-icon-cache") (which "true"))
5728 (("update-desktop-database") (which "true")))
5729 #t)))))
735b8db6
TGR
5730 (propagated-inputs
5731 `(("dconf" ,dconf)))
fed5a689 5732 (native-inputs
5a0beca3
EF
5733 `(("gettext" ,gettext-minimal)
5734 ("glib:bin" ,glib "bin")
735b8db6 5735 ("itstool" ,itstool)
3b79afa6 5736 ("pkg-config" ,pkg-config)
735b8db6 5737 ("vala" ,vala)))
fed5a689 5738 (inputs
5a0beca3
EF
5739 `(("gcr" ,gcr)
5740 ("gexiv2" ,gexiv2)
fed5a689 5741 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5742 ("gstreamer" ,gstreamer)
5743 ("json-glib" ,json-glib)
dfb0323d 5744 ("libgdata" ,libgdata)
fed5a689 5745 ("libgee" ,libgee)
5a0beca3
EF
5746 ("libgphoto2" ,libgphoto2)
5747 ("libgudev" ,libgudev)
fed5a689 5748 ("libraw" ,libraw)
fed5a689
RW
5749 ("libsoup" ,libsoup)
5750 ("libxml2" ,libxml2)
5a0beca3
EF
5751 ("sqlite" ,sqlite)
5752 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5753 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5754 (synopsis "Photo manager for GNOME 3")
5755 (description
5756 "Shotwell is a digital photo manager designed for the GNOME desktop
5757environment. It allows you to import photos from disk or camera, organize
5758them by keywords and events, view them in full-window or fullscreen mode, and
5759share them with others via social networking and more.")
5760 (license license:lgpl2.1+)))
293ff8b2
DT
5761
5762(define-public file-roller
5763 (package
5764 (name "file-roller")
dcae4270 5765 (version "3.32.3")
293ff8b2
DT
5766 (source (origin
5767 (method url-fetch)
f89a27c6 5768 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5769 (version-major+minor version) "/"
f89a27c6 5770 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5771 (sha256
5772 (base32
dcae4270 5773 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5774 (build-system meson-build-system)
293ff8b2 5775 (native-inputs
0a500745
RW
5776 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5777 ("intltool" ,intltool)
4c96e5d1 5778 ("itstool" ,itstool)
0a500745
RW
5779 ("pkg-config" ,pkg-config)
5780 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5781 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5782 ;; TODO: Add libnautilus.
5783 (inputs
5784 `(("gtk+" ,gtk+)
5785 ("gdk-pixbuf" ,gdk-pixbuf)
5786 ("json-glib" ,json-glib)
5787 ("libarchive" ,libarchive)
5788 ("libnotify" ,libnotify)
4c96e5d1 5789 ("nettle" ,nettle)
293ff8b2
DT
5790 ("libxml2" ,libxml2)))
5791 (synopsis "Graphical archive manager for GNOME")
5792 (description "File Roller is an archive manager for the GNOME desktop
5793environment that allows users to view, unpack, and create compressed archives
5794such as gzip tarballs.")
5795 (home-page "http://fileroller.sourceforge.net/")
5796 (license license:gpl2+)))
7ce49365
SB
5797
5798(define-public gnome-session
5799 (package
5800 (name "gnome-session")
f67ce006 5801 (version "3.34.2")
7ce49365
SB
5802 (source (origin
5803 (method url-fetch)
5804 (uri (string-append "mirror://gnome/sources/" name "/"
5805 (version-major+minor version) "/"
5806 name "-" version ".tar.xz"))
5807 (sha256
5808 (base32
f67ce006 5809 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 5810 (arguments
df278071
RW
5811 '(#:glib-or-gtk? #t
5812 #:phases
2914af3c
AW
5813 (modify-phases %standard-phases
5814 (add-before 'configure 'pre-configure
5815 (lambda* (#:key outputs #:allow-other-keys)
5816 ;; Use elogind instead of systemd.
df278071
RW
5817 (substitute* "meson.build"
5818 (("libsystemd-login") "libelogind")
5819 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5820 (substitute* "gnome-session/gsm-systemd.c"
5821 (("#include <systemd/sd-login.h>")
5822 "#include <elogind/sd-login.h>"))
df278071 5823 ;; Remove uses of the systemd daemon.
803ab416
SB
5824 (substitute* "gnome-session/gsm-autostart-app.c"
5825 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5826 #t))
5827 (add-after 'install 'wrap-gnome-session
5828 (lambda* (#:key inputs outputs #:allow-other-keys)
5829 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5830 (let ((glib (assoc-ref inputs "glib:bin"))
5831 (out (assoc-ref outputs "out")))
5832 (wrap-program (string-append out "/bin/gnome-session")
5833 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5834 #t))))
6cbc8d57 5835
2914af3c 5836 #:configure-flags
df278071
RW
5837 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5838 "-Dman=false" ; FIXME: disabled because of docbook validation error
5839 "-Dsystemd_journal=false")))
5840 (build-system meson-build-system)
7ce49365
SB
5841 (native-inputs
5842 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5843 ("pkg-config" ,pkg-config)
5844 ("intltool" ,intltool)
df278071
RW
5845 ("xsltproc" ,libxslt)
5846 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5847 ("docbook-xsl" ,docbook-xsl)
5848 ("docbook-xml" ,docbook-xml)
5849 ("xmlto" ,xmlto)))
7ce49365 5850 (inputs
2914af3c
AW
5851 `(("elogind" ,elogind)
5852 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5853 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5854 ("gtk+" ,gtk+)
5855 ("json-glib" ,json-glib)
5856 ("libsm" ,libsm)
5857 ("libxcomposite" ,libxcomposite)
5858 ("libxtst" ,libxtst)
5859 ("mesa" ,mesa)
5860 ("upower" ,upower)
5861 ("xtrans" ,xtrans)))
5862 (synopsis "Session manager for GNOME")
5863 (description
5864 "This package contains the GNOME session manager, as well as a
5865configuration program to choose applications starting on login.")
5866 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5867 (license license:gpl2+)))
f47ba77e
SB
5868
5869(define-public gjs
5870 (package
5871 (name "gjs")
76e1830c 5872 (version "1.58.3")
f47ba77e
SB
5873 (source (origin
5874 (method url-fetch)
5875 (uri (string-append "mirror://gnome/sources/" name "/"
5876 (version-major+minor version) "/"
5877 name "-" version ".tar.xz"))
5878 (sha256
5879 (base32
76e1830c 5880 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
5881 (build-system gnu-build-system)
5882 (arguments
5883 '(#:phases
5884 (modify-phases %standard-phases
5885 (add-before
5886 'check 'pre-check
5887 (lambda _
fc119619
MW
5888 ;; The test suite requires a running X server.
5889 (system "Xvfb :1 &")
5890 (setenv "DISPLAY" ":1")
5891
f47ba77e
SB
5892 ;; For the missing /etc/machine-id.
5893 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5894
144f94d0
KK
5895 ;; Our mozjs-38 package does not compile the required Intl API
5896 ;; support for these failing tests.
5897 (substitute* "installed-tests/js/testLocale.js"
5898 ((".*toBeDefined.*") "")
5899 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5900 (substitute* "installed-tests/scripts/testCommandLine.sh"
5901 (("Valentín") "")
5902 (("☭") ""))
f47ba77e
SB
5903 #t)))))
5904 (native-inputs
8a831c6f 5905 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5906 ("pkg-config" ,pkg-config)
5907 ("xmllint" ,libxml2)
5908 ;; For testing
5909 ("dbus-launch" ,dbus)
76e1830c 5910 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 5911 ("uuidgen" ,util-linux)
ebebee94 5912 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5913 (propagated-inputs
5914 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5915 `(("cairo" ,cairo)
5916 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5917 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5918 (inputs
5919 `(("gtk+" ,gtk+)
5920 ("readline" ,readline)))
5921 (synopsis "Javascript bindings for GNOME")
f032d0be 5922 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5923 (description
5924 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5925javascript engine and the GObject introspection framework.")
5926 (license license:gpl2+)))
329d731b
DH
5927
5928(define-public gedit
5929 (package
5930 (name "gedit")
edec7128 5931 (version "3.34.1")
329d731b
DH
5932 (source (origin
5933 (method url-fetch)
5934 (uri (string-append "mirror://gnome/sources/" name "/"
5935 (version-major+minor version) "/"
5936 name "-" version ".tar.xz"))
5937 (sha256
5938 (base32
edec7128 5939 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 5940 (build-system meson-build-system)
329d731b 5941 (arguments
480c9226
KK
5942 `(#:glib-or-gtk? #t
5943 #:configure-flags
5944 ;; Otherwise, the RUNPATH will lack the final path component.
5945 (list (string-append "-Dc_link_args=-Wl,-rpath="
5946 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5947
5948 ;; XXX: Generated .h files are sometimes used before being built.
5949 #:parallel-build? #f
5950
480c9226 5951 #:phases
329d731b 5952 (modify-phases %standard-phases
480c9226
KK
5953 (add-after 'unpack 'skip-gtk-update-icon-cache
5954 ;; Don't create 'icon-theme.cache'.
5955 (lambda _
5956 (substitute* "build-aux/meson/post_install.py"
5957 (("gtk-update-icon-cache") (which "true")))
5958 #t))
5959 (add-after 'unpack 'patch-libgd-fetch
5960 (lambda* (#:key inputs #:allow-other-keys)
5961 (let ((libgd (assoc-ref inputs "libgd")))
5962 ;; Calling git is unnecessary because libgd is fetched as a
5963 ;; native input to this package.
5964 (substitute* "meson.build"
5965 ((".*git.*") ""))
5966 (copy-recursively libgd "subprojects/libgd")
5967 #t)))
5968 (add-after 'install 'wrap-gedit
5969 (lambda* (#:key inputs outputs #:allow-other-keys)
5970 (let ((out (assoc-ref outputs "out"))
5971 (gtksourceview (assoc-ref inputs "gtksourceview"))
5972 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5973 (python-path (getenv "PYTHONPATH")))
5974 (wrap-program (string-append out "/bin/gedit")
5975 ;; For plugins.
5976 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5977 `("PYTHONPATH" ":" prefix (,python-path))
5978 ;; For language-specs.
5979 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5980 "/share")))))
5981 #t)))))
329d731b
DH
5982 (propagated-inputs
5983 `(("dconf" ,dconf)))
5984 (native-inputs
480c9226
KK
5985 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5986 ("intltool" ,intltool)
b3546174 5987 ("itstool" ,itstool)
480c9226 5988 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5989 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5990 ("libgd"
5991 ,(origin
5992 (method git-fetch)
5993 (uri (git-reference
5994 (url "https://gitlab.gnome.org/GNOME/libgd")
5995 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5996 (file-name (git-file-name "libgd" version))
5997 (sha256
5998 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
5999 ("pkg-config" ,pkg-config)))
6000 (inputs
6001 `(("glib" ,glib)
0d2df50c 6002 ("gspell" ,gspell)
329d731b 6003 ("gtk+" ,gtk+)
480c9226 6004 ("gtksourceview" ,gtksourceview)
329d731b
DH
6005 ("libpeas" ,libpeas)
6006 ("libxml2" ,libxml2)
329d731b
DH
6007 ("iso-codes" ,iso-codes)
6008 ("python-pygobject" ,python-pygobject)
6009 ("python" ,python)
6010 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6011 ("libx11" ,libx11)
6012 ("vala" ,vala)
6013 ("adwaita-icon-theme" ,adwaita-icon-theme)
6014 ("libsoup" ,libsoup)
6015 ("gnome-desktop" ,gnome-desktop)))
6016 (home-page "https://wiki.gnome.org/Apps/Gedit")
6017 (synopsis "GNOME text editor")
6018 (description "While aiming at simplicity and ease of use, gedit is a
6019powerful general purpose text editor.")
6020 (license license:gpl2+)))
b7179363
SB
6021
6022(define-public zenity
6023 (package
6024 (name "zenity")
4f581bd0 6025 (version "3.32.0")
b7179363
SB
6026 (source (origin
6027 (method url-fetch)
5958df04 6028 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6029 (version-major+minor version) "/"
5958df04 6030 "zenity-" version ".tar.xz"))
b7179363
SB
6031 (sha256
6032 (base32
4f581bd0 6033 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6034 (build-system gnu-build-system)
6035 (native-inputs
b94a6ca0 6036 `(("gettext" ,gettext-minimal)
b7179363
SB
6037 ("itstool" ,itstool)
6038 ("pkg-config" ,pkg-config)))
6039 (inputs
6040 `(("libnotify" ,libnotify)
6041 ("webkitgtk" ,webkitgtk)))
6042 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6043 (home-page "https://www.gnome.org")
b7179363
SB
6044 (description
6045 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6046to display dialog boxes from the commandline and shell scripts.")
6047 (license license:lgpl2.0+)))
60c3627c
SB
6048
6049(define-public mutter
6050 (package
6051 (name "mutter")
ec3ceabd 6052 (version "3.34.2")
60c3627c 6053 (source (origin
86c44e72
KK
6054 (method url-fetch)
6055 (uri (string-append "mirror://gnome/sources/" name "/"
6056 (version-major+minor version) "/"
6057 name "-" version ".tar.xz"))
60c3627c
SB
6058 (sha256
6059 (base32
ec3ceabd 6060 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6061 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6062 ;; versions of cogl and clutter. As a result, many of the inputs,
6063 ;; propagated-inputs, and configure flags used in cogl and clutter are
6064 ;; needed here as well.
edf43f68 6065 (build-system meson-build-system)
60c3627c 6066 (arguments
edf43f68
KK
6067 '(;; XXX: All mutter tests fail with the following error:
6068 ;; Settings schema 'org.gnome.mutter' is not installed
6069 #:tests? #f
6070 #:glib-or-gtk? #t
6071 #:configure-flags
ec3ceabd
KK
6072 ;; TODO: Enable profiler when Sysprof is packaged.
6073 (list "-Dprofiler=false"
6074 ;; Otherwise, the RUNPATH will lack the final path component.
6075 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6076 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6077 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6078
6079 ;; The following flags are needed for the bundled clutter
edf43f68 6080 (string-append "-Dxwayland_path="
d633f2f6
RH
6081 (assoc-ref %build-inputs "xorg-server-xwayland")
6082 "/bin/Xwayland")
6083
a88d5a0c 6084 ;; the remaining flags are needed for the bundled cogl
edf43f68 6085 (string-append "-Dopengl_libname="
a88d5a0c 6086 (assoc-ref %build-inputs "mesa")
ec3ceabd 6087 "/lib/libGL.so"))))
60c3627c 6088 (native-inputs
ec3ceabd
KK
6089 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6090 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6091 ("gobject-introspection" ,gobject-introspection)
6092 ("intltool" ,intltool)
f23052a6 6093 ("pkg-config" ,pkg-config)
edf43f68 6094 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6095 ;; For git build
6096 ("autoconf" ,autoconf)
6097 ("automake" ,automake)
6098 ("libtool" ,libtool)))
60c3627c 6099 (propagated-inputs
a88d5a0c
MW
6100 `(;; libmutter.pc refers to these:
6101 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6102 ("gtk+" ,gtk+)
6103 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6104 ("atk" ,atk)
6105 ("cairo" ,cairo)
6106 ("gdk-pixbuf" ,gdk-pixbuf)
6107 ("glib" ,glib)
a88d5a0c
MW
6108 ("json-glib" ,json-glib)
6109 ("libinput" ,libinput)
6110 ("libx11" ,libx11)
6111 ("libxcomposite" ,libxcomposite)
6112 ("libxdamage" ,libxdamage)
6113 ("libxext" ,libxext)
6114 ("libxfixes" ,libxfixes)
6115 ("libxkbcommon" ,libxkbcommon)
6116 ("libxrandr" ,libxrandr)
6117 ("mesa" ,mesa)
6118 ("pango" ,pango)
6119 ("udev" ,eudev)
a88d5a0c 6120 ("xinput" ,xinput)))
60c3627c 6121 (inputs
86c44e72
KK
6122 `(("elogind" ,elogind)
6123 ("gnome-desktop" ,gnome-desktop)
edf43f68 6124 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6125 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6126 ("libgudev" ,libgudev)
60c3627c
SB
6127 ("libice" ,libice)
6128 ("libsm" ,libsm)
edf43f68 6129 ("libwacom" ,libwacom)
60c3627c 6130 ("libxkbfile" ,libxkbfile)
a88d5a0c 6131 ("libxrandr" ,libxrandr)
86c44e72 6132 ("libxtst" ,libxtst)
edf43f68 6133 ("pipewire" ,pipewire)
60c3627c
SB
6134 ("startup-notification" ,startup-notification)
6135 ("upower-glib" ,upower)
6136 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6137 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6138 ("zenity" ,zenity)))
6139 (synopsis "Window and compositing manager")
f032d0be 6140 (home-page "https://www.gnome.org")
60c3627c
SB
6141 (description
6142 "Mutter is a window and compositing manager that displays and manages your
6143desktop via OpenGL. Mutter combines a sophisticated display engine using the
6144Clutter toolkit with solid window-management logic inherited from the Metacity
6145window manager.")
86c44e72 6146 (license license:gpl2+)))
685cee87
SB
6147
6148(define-public gnome-online-accounts
6149 (package
6150 (name "gnome-online-accounts")
dd233e4d 6151 (version "3.36.0")
685cee87
SB
6152 (source (origin
6153 (method url-fetch)
6154 (uri (string-append "mirror://gnome/sources/" name "/"
6155 (version-major+minor version) "/"
6156 name "-" version ".tar.xz"))
6157 (sha256
6158 (base32
dd233e4d 6159 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6160 (outputs '("out" "lib"))
685cee87 6161 (build-system glib-or-gtk-build-system)
14c297fd
TS
6162 (arguments
6163 `(#:configure-flags
6164 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6165 #:phases
6166 (modify-phases %standard-phases
6167 (add-before 'configure 'patch-libgoa-output
6168 (lambda* (#:key outputs #:allow-other-keys)
6169 (let ((lib (assoc-ref outputs "lib")))
6170 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6171 (("@prefix@") lib)
6172 (("@exec_prefix@") lib)
6173 (("@libdir@") (string-append lib "/lib"))
6174 (("@includedir@") (string-append lib "/include"))
6175 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6176 ;; Make sure gobject-introspection knows about the output
6177 ;; too (see <https://bugs.gnu.org/36535>).
6178 (setenv "outputs" "out lib")
14c297fd 6179 #t))))))
685cee87
SB
6180 (native-inputs
6181 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6182 ("gobject-introspection" ,gobject-introspection)
6183 ("intltool" ,intltool)
6184 ("pkg-config" ,pkg-config)
ebb2873d 6185 ("vala" ,vala)
685cee87
SB
6186 ("xsltproc" ,libxslt)))
6187 (propagated-inputs
6188 `(("glib" ,glib) ; required by goa-1.0.pc
6189 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6190 (inputs
6191 `(("docbook-xsl" ,docbook-xsl)
6192 ("json-glib" ,json-glib)
6193 ("libsecret" ,libsecret)
6194 ("rest" ,rest)
685cee87
SB
6195 ("webkitgtk" ,webkitgtk)))
6196 (synopsis "Single sign-on framework for GNOME")
6197 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6198 (description
6199 "GNOME Online Accounts provides interfaces so that applications and
6200libraries in GNOME can access the user's online accounts. It has providers for
6201Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6202Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6203 (license license:lgpl2.0+)))
df217748
SB
6204
6205(define-public evolution-data-server
6206 (package
6207 (name "evolution-data-server")
162048be 6208 (version "3.34.2")
df217748
SB
6209 (source (origin
6210 (method url-fetch)
6211 (uri (string-append "mirror://gnome/sources/" name "/"
6212 (version-major+minor version) "/"
6213 name "-" version ".tar.xz"))
43190ac6
MB
6214 (patches (search-patches "evolution-data-server-locales.patch"
6215 "evolution-data-server-libical-compat.patch"))
df217748
SB
6216 (sha256
6217 (base32
162048be 6218 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 6219 (build-system cmake-build-system)
df217748 6220 (arguments
b468eedc
RW
6221 '(#:configure-flags
6222 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6223 (runpaths (map (lambda (s)
6224 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6225 '("addressbook-backends" "calendar-backends"
6226 "camel-providers" "credential-modules"
6227 "registry-modules"))))
6228 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6229 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6230 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6231 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6232 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6233 (string-append lib "/evolution-data-server;")
6234 (string-join runpaths ";"))
6235 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6236 #:phases
6237 (modify-phases %standard-phases
b468eedc
RW
6238 (add-after 'unpack 'disable-failing-tests
6239 (lambda _
6240 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6241 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6242 (delete-file-recursively "tests/book-migration")
6243 (substitute* "tests/CMakeLists.txt"
6244 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 6245 #t))
743aebd7 6246 (add-after 'unpack 'patch-paths
df217748 6247 (lambda _
b468eedc
RW
6248 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6249 "tests/libedata-book/data-test-utils.c"
6250 "tests/libedata-book/test-book-cache-utils.c"
6251 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6252 (("/bin/rm") (which "rm")))
ac033c7b
MB
6253 #t))
6254 (add-before 'configure 'dont-override-rpath
6255 (lambda _
6256 (substitute* "CMakeLists.txt"
6257 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6258 ;; Remove it so the configure flag is respected.
6259 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6260 #t)))))
df217748
SB
6261 (native-inputs
6262 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6263 ("gobject-introspection" ,gobject-introspection)
6264 ("gperf" ,gperf)
6265 ("intltool" ,intltool)
6266 ("pkg-config" ,pkg-config)
a73c1cf8 6267 ("vala" ,vala)
743aebd7 6268 ("python" ,python-wrapper)))
df217748
SB
6269 (propagated-inputs
6270 ;; These are all in the Requires field of .pc files.
6271 `(("gtk+" ,gtk+)
6272 ("libical" ,libical)
6273 ("libsecret" ,libsecret)
6274 ("libsoup" ,libsoup)
6275 ("nss" ,nss)
6276 ("sqlite" ,sqlite)))
6277 (inputs
6278 `(("bdb" ,bdb)
6279 ("gcr" ,gcr)
14c297fd 6280 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6281 ("json-glib" ,json-glib)
b468eedc 6282 ("libcanberra" ,libcanberra)
743aebd7
MB
6283 ("libgweather" ,libgweather)
6284 ("mit-krb5" ,mit-krb5)
891199c6
MW
6285 ("openldap" ,openldap)
6286 ("webkitgtk" ,webkitgtk)))
df217748
SB
6287 (synopsis "Store address books and calendars")
6288 (home-page "https://wiki.gnome.org/Apps/Evolution")
6289 (description
6290 "This package provides a unified backend for programs that work with
6291contacts, tasks, and calendar information. It was originally developed for
6292Evolution (hence the name), but is now used by other packages as well.")
6293 (license license:lgpl2.0)))
bd7dfafa
SB
6294
6295(define-public caribou
6296 (package
6297 (name "caribou")
fe964bb5 6298 (version "0.4.21")
bd7dfafa
SB
6299 (source (origin
6300 (method url-fetch)
6301 (uri (string-append "mirror://gnome/sources/" name "/"
6302 (version-major+minor version) "/"
6303 name "-" version ".tar.xz"))
6304 (sha256
6305 (base32
fe964bb5 6306 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6307 (build-system glib-or-gtk-build-system)
6308 (arguments
6309 '(#:phases
6310 (modify-phases %standard-phases
6311 (add-before
6312 'build 'pre-build
6313 (lambda* (#:key outputs #:allow-other-keys)
6314 (let ((out (assoc-ref outputs "out")))
6315 ;; Use absolute shared library path in Caribou-1.0.typelib.
6316 (substitute* "libcaribou/Makefile"
6317 (("--shared-library=libcaribou.so")
6318 (string-append "--shared-library="
6319 out "/lib/libcaribou.so")))
6320 #t)))
6321 (add-after 'install 'wrap-programs
6322 (lambda* (#:key outputs #:allow-other-keys)
6323 (let* ((out (assoc-ref outputs "out"))
6324 (python-path (getenv "PYTHONPATH"))
6325 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6326 (for-each
6327 (lambda (prog)
6328 (wrap-program prog
6329 `("PYTHONPATH" ":" prefix (,python-path))
6330 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6331 (list (string-append out "/bin/caribou-preferences")
6332 (string-append out "/libexec/antler-keyboard"))))
6333 #t)))))
6334 (native-inputs
6335 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6336 ("gobject-introspection" ,gobject-introspection)
6337 ("intltool" ,intltool)
6338 ("pkg-config" ,pkg-config)
9f7f5ba2 6339 ("python" ,python)
bd7dfafa
SB
6340 ("vala" ,vala)
6341 ("xsltproc" ,libxslt)))
6342 (propagated-inputs
6343 ;; caribou-1.0.pc refers to all these.
6344 `(("libgee" ,libgee)
6345 ("libxklavier" ,libxklavier)
6346 ("libxtst" ,libxtst)
6347 ("gtk+" ,gtk+)))
6348 (inputs
6349 `(("clutter" ,clutter)
6350 ("dconf" ,dconf)
6351 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6352 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6353 (synopsis "Text entry and UI navigation application")
6354 (home-page "https://wiki.gnome.org/Projects/Caribou")
6355 (description
6356 "Caribou is an input assistive technology intended for switch and pointer
6357users.")
6358 (license license:lgpl2.1)))
ba5dd105 6359
ba5dd105
SB
6360(define-public network-manager
6361 (package
6362 (name "network-manager")
01c22be7 6363 (version "1.24.0")
ba5dd105
SB
6364 (source (origin
6365 (method url-fetch)
6366 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6367 (version-major+minor version) "/"
6368 "NetworkManager-" version ".tar.xz"))
8d0548fd 6369 (patches (search-patches "network-manager-plugin-path.patch"))
ba5dd105
SB
6370 (sha256
6371 (base32
01c22be7 6372 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
02710a9b 6373 (modules '((guix build utils)))
fd070f35 6374 (snippet
02710a9b
RW
6375 '(begin
6376 (substitute* "src/devices/wwan/nm-modem-manager.c"
6377 (("systemd") "elogind"))
6378 #t))))
255ff74f 6379 (build-system meson-build-system)
ba5dd105
SB
6380 (outputs '("out"
6381 "doc")) ; 8 MiB of gtk-doc HTML
6382 (arguments
255ff74f 6383 `(#:configure-flags
ba5dd105 6384 (let ((out (assoc-ref %outputs "out"))
ba5dd105
SB
6385 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6386 "/sbin/dhclient")))
255ff74f
BW
6387 (list
6388 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6389 ;; component.
6390 (string-append "-Dc_link_args=-Wl,-rpath="
6391 out "/lib:"
6392 out "/lib/NetworkManager/" ,version)
6393 "-Dsystemd_journal=false"
6394 "-Dsession_tracking=elogind"
6395 "-Dsuspend_resume=elogind"
6396 "-Dsystemdsystemunitdir=no"
6397 "-Dsession_tracking_consolekit=false"
6398 "-Ddhcpcd=no"
6399 "-Ddhcpcanon=no"
6400 "-Dcrypto=gnutls"
6401 "-Diwd=true"
6402 "-Dlibaudit=yes"
6403 "-Dqt=false"
6404 "-Ddocs=true"
6405 "--sysconfdir=/etc"
6406 "--localstatedir=/var"
6407 (string-append "-Dudev_dir="
6408 out "/lib/udev")
6409 (string-append "-Ddbus_conf_dir="
6410 out "/etc/dbus-1/system.d")
6411
6412 (string-append "-Ddhclient=" dhclient)))
ba5dd105
SB
6413 #:phases
6414 (modify-phases %standard-phases
b4f59d87
AW
6415 (add-before 'configure 'pre-configure
6416 (lambda _
6417 ;; These tests try to test aspects of network-manager's
6418 ;; functionality within restricted containers, but they don't
6419 ;; cope with being already in the Guix build jail as that jail
6420 ;; lacks some features that they would like to proxy over (like
6421 ;; a /sys mount).
255ff74f
BW
6422 (substitute* "src/platform/tests/meson.build"
6423 ((".*test-address-linux.*") "")
6424 ((".*test-cleanup-linux.*") "")
6425 ((".*test-link-linux.*") "")
6426 ((".*test-route-linux.*") ""))
6427 (substitute* "src/devices/tests/meson.build"
6428 ((".*test-acd.*") "")
6429 ((".*test-lldp.*") ""))
45f80fce 6430 #t))
255ff74f
BW
6431 (add-after 'unpack 'patch-docbook-xml
6432 (lambda* (#:key inputs #:allow-other-keys)
6433 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6434 "/xml/dtd/docbook")))
6435 (substitute* (find-files "." ".*\\.(xsl|xml)")
6436 (("http://.*/docbookx\\.dtd")
6437 (string-append xmldoc "/docbookx.dtd")))
6438 #t)))
ba5dd105
SB
6439 (add-before 'check 'pre-check
6440 (lambda _
6441 ;; For the missing /etc/machine-id.
6442 (setenv "DBUS_FATAL_WARNINGS" "0")
6443 #t))
255ff74f
BW
6444 (add-before 'install 'no-polkit-magic
6445 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
ba5dd105 6446 (lambda _
255ff74f
BW
6447 (setenv "PKEXEC_UID" "something")
6448 #t))
6449 (add-after 'install 'move-doc
6450 (lambda* (#:key outputs #:allow-other-keys)
6451 (let ((out (assoc-ref outputs "out"))
6452 (doc (assoc-ref outputs "doc")))
6453 (mkdir-p (string-append doc "/share"))
6454 (for-each (lambda (directory)
6455 (copy-recursively (string-append out directory)
6456 (string-append doc directory))
6457 (delete-file-recursively
6458 (string-append out directory)))
6459 '("/share/doc" "/share/gtk-doc"))
6460 #t))))))
b93502d6
DC
6461 (propagated-inputs
6462 `(("glib" ,glib)))
ba5dd105 6463 (native-inputs
255ff74f
BW
6464 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6465 ("gtk-doc" ,gtk-doc)
ba5dd105 6466 ("gobject-introspection" ,gobject-introspection)
255ff74f 6467 ("docbook-xml" ,docbook-xml)
d04687dc 6468 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6469 ("intltool" ,intltool)
d04687dc
HG
6470 ("libxslt" ,libxslt)
6471 ("libxml2" ,libxml2)
ba5dd105 6472 ("pkg-config" ,pkg-config)
255ff74f 6473 ("vala" ,vala)
ba5dd105
SB
6474 ;; For testing.
6475 ("python" ,python-wrapper)
6476 ("python-dbus" ,python-dbus)
6477 ("python-pygobject" ,python-pygobject)))
6478 (inputs
255ff74f 6479 `(("curl" ,curl)
856ca567
KK
6480 ("cyrus-sasl" ,cyrus-sasl)
6481 ("dbus-glib" ,dbus-glib)
ba5dd105 6482 ("dnsmasq" ,dnsmasq)
856ca567 6483 ("eudev" ,eudev)
ba5dd105
SB
6484 ("gnutls" ,gnutls)
6485 ("iptables" ,iptables)
6486 ("isc-dhcp" ,isc-dhcp)
c2f236fa 6487 ("iwd" ,iwd) ; wpa_supplicant alternative
d04687dc 6488 ("jansson" ,jansson)
c2f236fa 6489 ("libaudit" ,audit)
ba5dd105
SB
6490 ("libgcrypt" ,libgcrypt)
6491 ("libgudev" ,libgudev)
6492 ("libndp" ,libndp)
6493 ("libnl" ,libnl)
6494 ("libsoup" ,libsoup)
255ff74f 6495 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
142bdcbc 6496 ("modem-manager" ,modem-manager)
c27e02bf 6497 ("newt" ,newt) ;for the 'nmtui' console interface
c2f236fa 6498 ("openresolv" ,openresolv) ; alternative resolv.conf manager
ba5dd105
SB
6499 ("polkit" ,polkit)
6500 ("ppp" ,ppp)
6501 ("readline" ,readline)
fd070f35
CM
6502 ("util-linux" ,util-linux)
6503 ("elogind" ,elogind)))
ba5dd105 6504 (synopsis "Network connection manager")
8d0548fd 6505 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
ba5dd105
SB
6506 (description
6507 "NetworkManager is a system network service that manages your network
6508devices and connections, attempting to keep active network connectivity when
6509available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6510devices, and provides VPN integration with a variety of different VPN
6511services.")
255ff74f
BW
6512 ;; “This NetworkManager project consists of the daemon, client tools, and
6513 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6514 ;; GPL-2.0+.”
6515 (license (list license:gpl2+
6516 license:lgpl2.1+))
29d2f451 6517 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6518
f2b96b3a
LC
6519(define-public network-manager-openvpn
6520 (package
6521 (name "network-manager-openvpn")
3fe368c0 6522 (version "1.8.12")
f2b96b3a
LC
6523 (source (origin
6524 (method url-fetch)
6525 (uri (string-append
6526 "mirror://gnome/sources/NetworkManager-openvpn/"
6527 (version-major+minor version)
6528 "/NetworkManager-openvpn-" version ".tar.xz"))
6529 (sha256
6530 (base32
3fe368c0 6531 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
f2b96b3a
LC
6532 (build-system gnu-build-system)
6533 (arguments
633422b0
JL
6534 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6535 #:phases
6536 (modify-phases %standard-phases
6537 (add-after 'configure 'patch-path
6538 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6539 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6540 "/sbin/openvpn"))
6541 (modprobe (string-append (assoc-ref inputs "kmod")
6542 "/bin/modprobe"))
6543 (pretty-ovpn (string-append "\"" ovpn "\"")))
6544 (for-each
6545 (lambda (file)
6546 (substitute* file
6547 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6548 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6549 (("\"/sbin/openvpn\"") pretty-ovpn)
6550 (("/sbin/modprobe") modprobe)))
6551 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6552 #t)))))
f2b96b3a
LC
6553 (native-inputs
6554 `(("pkg-config" ,pkg-config)
6555 ("intltool" ,intltool)))
6556 (inputs
6557 `(("gtk+" ,gtk+)
633422b0 6558 ("kmod" ,kmod)
f2b96b3a
LC
6559 ("openvpn" ,openvpn)
6560 ("network-manager" ,network-manager)
3fe368c0 6561 ("libnma" ,libnma)
f2b96b3a
LC
6562 ("libsecret" ,libsecret)))
6563 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6564 (synopsis "OpenVPN plug-in for NetworkManager")
6565 (description
6566 "This extension of NetworkManager allows it to take care of connections
6567to virtual private networks (VPNs) via OpenVPN.")
6568 (license license:gpl2+)
6569 (properties `((upstream-name . "NetworkManager-openvpn")))))
6570
d376129f
JL
6571(define-public network-manager-vpnc
6572 (package
6573 (name "network-manager-vpnc")
6574 (version "1.2.6")
6575 (source (origin
6576 (method url-fetch)
6577 (uri (string-append
6578 "mirror://gnome/sources/NetworkManager-vpnc/"
6579 (version-major+minor version)
6580 "/NetworkManager-vpnc-" version ".tar.xz"))
6581 (sha256
6582 (base32
6583 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6584 (build-system gnu-build-system)
6585 (arguments
6586 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6587 #:phases
6588 (modify-phases %standard-phases
6589 (add-after 'configure 'patch-path
6590 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6591 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6592 "/sbin/vpnc"))
6593 (modprobe (string-append (assoc-ref inputs "kmod")
6594 "/bin/modprobe"))
6595 (pretty-ovpn (string-append "\"" vpnc "\"")))
6596 (substitute* "src/nm-vpnc-service.c"
6597 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6598 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6599 (("\"/sbin/vpnc\"") pretty-ovpn)
6600 (("/sbin/modprobe") modprobe)))
6601 #t)))))
6602 (native-inputs
6603 `(("pkg-config" ,pkg-config)
6604 ("intltool" ,intltool)))
6605 (inputs
6606 `(("gtk+" ,gtk+)
6607 ("kmod" ,kmod)
6608 ("vpnc" ,vpnc)
6609 ("network-manager" ,network-manager)
6610 ("network-manager-applet" ,network-manager-applet) ;for libnma
6611 ("libsecret" ,libsecret)))
6612 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6613 (synopsis "VPNC plug-in for NetworkManager")
6614 (description
6615 "Support for configuring virtual private networks based on VPNC.
6616Compatible with Cisco VPN concentrators configured to use IPsec.")
6617 (license license:gpl2+)
6618 (properties `((upstream-name . "NetworkManager-vpnc")))))
6619
8378c87a
EF
6620(define-public network-manager-openconnect
6621 (package
6622 (name "network-manager-openconnect")
6623 (version "1.2.6")
6624 (source (origin
6625 (method url-fetch)
6626 (uri (string-append
6627 "mirror://gnome/sources/NetworkManager-openconnect/"
6628 (version-major+minor version)
6629 "/NetworkManager-openconnect-" version ".tar.xz"))
6630 (sha256
6631 (base32
6632 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6633 (build-system gnu-build-system)
6634 (arguments
6635 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6636 #:phases
6637 (modify-phases %standard-phases
6638 (add-after 'configure 'patch-path
6639 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6640 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6641 "/sbin/openconnect"))
6642 (modprobe (string-append (assoc-ref inputs "kmod")
6643 "/bin/modprobe"))
6644 (pretty-ovpn (string-append "\"" openconnect "\"")))
6645 (substitute* "src/nm-openconnect-service.c"
6646 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6647 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6648 (("/sbin/modprobe") modprobe)))
6649 #t)))))
6650 (native-inputs
6651 `(("intltool" ,intltool)
4ca449c5 6652 ("libnma" ,libnma)
8378c87a
EF
6653 ("pkg-config" ,pkg-config)))
6654 (inputs
6655 `(("gcr" ,gcr)
6656 ("gtk+" ,gtk+)
6657 ("kmod" ,kmod)
6658 ("libsecret" ,libsecret)
6659 ("libxml2" ,libxml2)
b4fe5dab 6660 ("lz4" ,lz4)
8378c87a
EF
6661 ("network-manager" ,network-manager)
6662 ("openconnect" ,openconnect)))
6663 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6664 (synopsis "OpenConnect plug-in for NetworkManager")
6665 (description
6666 "This extension of NetworkManager allows it to take care of connections
6667to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6668Cisco's AnyConnect SSL VPN.")
6669 (license license:gpl2+)
e52b9534
LC
6670 (properties `((upstream-name . "NetworkManager-openconnect")
6671
6672 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6673 ;; file refers to account "nm-openconnect". Specify it here
6674 ;; so that 'network-manager-service-type' creates it.
6675 (user-accounts . ("nm-openconnect"))))))
8378c87a 6676
e5e1df4d
DC
6677(define-public mobile-broadband-provider-info
6678 (package
6679 (name "mobile-broadband-provider-info")
310c89e3 6680 (version "20190116")
e5e1df4d
DC
6681 (source (origin
6682 (method url-fetch)
6683 (uri (string-append
6684 "mirror://gnome/sources/"
6685 "mobile-broadband-provider-info/" version "/"
6686 "mobile-broadband-provider-info-" version ".tar.xz"))
6687 (sha256
6688 (base32
310c89e3 6689 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6690 (build-system gnu-build-system)
6691 (arguments
310c89e3 6692 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6693 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6694 (synopsis "Database of broadband connection configuration")
6695 (description "Database of broadband connection configuration.")
6696 (license license:public-domain)))
6697
4d62a9d3
SB
6698(define-public network-manager-applet
6699 (package
6700 (name "network-manager-applet")
8fc3a337 6701 (version "1.8.24")
4d62a9d3
SB
6702 (source (origin
6703 (method url-fetch)
3df63444 6704 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6705 (version-major+minor version) "/"
3df63444 6706 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6707 (sha256
6708 (base32
8fc3a337 6709 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6710 (build-system meson-build-system)
6711 (arguments
be1c4b07
TGR
6712 '(#:configure-flags
6713 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6714 (list "-Dlibnm_gtk=true")
6715 #:glib-or-gtk? #t))
4d62a9d3
SB
6716 (native-inputs
6717 `(("intltool" ,intltool)
cd7f718e 6718 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6719 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6720 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6721 ("pkg-config" ,pkg-config)))
6722 (propagated-inputs
6723 ;; libnm-gtk.pc refers to all these.
6724 `(("dbus-glib" ,dbus-glib)
6725 ("gtk+" ,gtk+)
6726 ("network-manager" ,network-manager)))
6727 (inputs
cd7f718e
RW
6728 `(("gcr" ,gcr)
6729 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6730 ("libgudev" ,libgudev)
6731 ("libnotify" ,libnotify)
2116bfb3 6732 ("libsecret" ,libsecret)
240cee8a
KK
6733 ("libselinux" ,libselinux)
6734 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6735 ("modem-manager" ,modem-manager)
6736 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6737 (synopsis "Applet for managing network connections")
f032d0be 6738 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6739 (description
6740 "This package contains a systray applet for NetworkManager. It displays
6741the available networks and allows users to easily switch between them.")
6742 (license license:gpl2+)))
56196594
RW
6743
6744(define-public libxml++
6745 (package
6746 (name "libxml++")
8344a85e 6747 (version "3.0.1")
56196594
RW
6748 (source (origin
6749 (method url-fetch)
6750 (uri (string-append "mirror://gnome/sources/" name "/"
6751 (version-major+minor version) "/"
6752 name "-" version ".tar.xz"))
6753 (sha256
6754 (base32
8344a85e 6755 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6756 (build-system gnu-build-system)
6757 ;; libxml++-3.0.pc refers to all these.
6758 (propagated-inputs
6759 `(("libxml2" ,libxml2)
6760 ("glibmm" ,glibmm)))
6761 (native-inputs
6762 `(("perl" ,perl)
6763 ("pkg-config" ,pkg-config)))
6764 (home-page "http://libxmlplusplus.sourceforge.net/")
6765 (synopsis "C++ wrapper for XML parser library libxml2")
6766 (description
6767 "This package provides a C++ wrapper for the XML parser library
6768libxml2.")
6769 (license license:lgpl2.1+)))
df12f04a 6770
b61d9627
AW
6771(define-public libxml++-2
6772 (package
6773 (inherit libxml++)
6774 (name "libxml++")
6775 (version "2.40.1")
6776 (source (origin
6777 (method url-fetch)
6778 (uri (string-append "mirror://gnome/sources/" name "/"
6779 (version-major+minor version) "/"
6780 name "-" version ".tar.xz"))
6781 (sha256
6782 (base32
6783 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6784
df12f04a
SB
6785(define-public gdm
6786 (package
6787 (name "gdm")
0fda99c5 6788 (version "3.34.1")
df12f04a
SB
6789 (source (origin
6790 (method url-fetch)
6791 (uri (string-append "mirror://gnome/sources/" name "/"
6792 (version-major+minor version) "/"
6793 name "-" version ".tar.xz"))
6794 (sha256
6795 (base32
0fda99c5 6796 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 6797 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6798 (build-system glib-or-gtk-build-system)
df12f04a
SB
6799 (arguments
6800 '(#:configure-flags
af37e6bb 6801 `("--without-plymouth"
957dbc0a 6802 "--disable-systemd-journal"
51bc8357
TS
6803
6804 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6805 ;; instead of having to replace it (i.e., stopping the mingetty
6806 ;; service for TTY 1 before starting GDM).
6807 "--with-initial-vt=7"
6808
89c86562
TS
6809 ;; Use '/etc/environment' for locale settings instead of the
6810 ;; systemd-specific '/etc/locale.conf'.
6811 "--with-lang-file=/etc/environment"
6812
b74ef0ba
RW
6813 ,(string-append "--with-udevdir="
6814 (assoc-ref %outputs "out") "/lib/udev")
6815
af37e6bb
AW
6816 "--localstatedir=/var"
6817 ,(string-append "--with-default-path="
6818 (string-join '("/run/setuid-programs"
6819 "/run/current-system/profile/bin"
6820 "/run/current-system/profile/sbin")
957dbc0a
AW
6821 ":"))
6822 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6823 ;; XDG_DATA_DIRS so that it finds its schemas.
6824 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6825 #:phases
6826 (modify-phases %standard-phases
6827 (add-before
6828 'configure 'pre-configure
e8c6e771 6829 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6830 ;; We don't have <systemd/sd-daemon.h>.
6831 (substitute* '("common/gdm-log.c"
6832 "daemon/gdm-server.c"
6833 "daemon/gdm-session-worker.c"
6834 "daemon/gdm-session-worker-job.c")
6835 (("#include <systemd/sd-daemon\\.h>") ""))
6836 ;; Use elogind for sd-login.
6837 (substitute* '("common/gdm-common.c"
0fda99c5 6838 "daemon/gdm-local-display-factory.c"
df12f04a
SB
6839 "daemon/gdm-manager.c"
6840 "libgdm/gdm-user-switching.c")
6841 (("#include <systemd/sd-login\\.h>")
6842 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6843 ;; Check for elogind.
6844 (substitute* '("configure")
6845 (("libsystemd")
6846 "libelogind"))
af37e6bb
AW
6847 ;; Look for system-installed sessions in
6848 ;; /run/current-system/profile/share.
6849 (substitute* '("libgdm/gdm-sessions.c"
6850 "daemon/gdm-session.c"
6851 "daemon/gdm-display.c"
6852 "daemon/gdm-launch-environment.c")
6853 (("DATADIR \"/x")
6854 "\"/run/current-system/profile/share/x")
6855 (("DATADIR \"/wayland")
6856 "\"/run/current-system/profile/share/wayland")
6857 (("DATADIR \"/gnome")
6858 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6859 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6860 "GDM_DBUS_DAEMON"
c9ff92b5 6861 "GDM_X_SERVER"
41fa9f18 6862 "GDM_X_SESSION"
c9ff92b5
TS
6863 ;; XXX: Remove this once GNOME Shell is
6864 ;; a dependency of GDM.
6865 "XDG_DATA_DIRS")))
6866 (substitute* "daemon/gdm-session.c"
6867 (("set_up_session_environment \\(self\\);")
6868 (apply string-append
6869 "set_up_session_environment (self);\n"
6870 (map (lambda (name)
6871 (string-append
6872 "gdm_session_set_environment_variable "
6873 "(self, \"" name "\","
6874 "g_getenv (\"" name "\"));\n"))
6875 propagate)))))
a430a350
TS
6876 ;; Find the configuration file using an environment variable.
6877 (substitute* '("common/gdm-settings.c")
e0e6756f 6878 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6879 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6880 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6881 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6882 ;; Use service-supplied path to X.
6883 (substitute* '("daemon/gdm-server.c")
6884 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6885 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
6886 (substitute* '("daemon/gdm-wayland-session.c"
6887 "daemon/gdm-x-session.c")
1f564c15
TS
6888 (("\"dbus-daemon\"")
6889 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6890 (("X_SERVER")
41fa9f18
TS
6891 "g_getenv (\"GDM_X_SERVER\")")
6892 (("GDMCONFDIR \"/Xsession\"")
6893 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6894 ;; Use an absolute path for GNOME Session.
6895 (substitute* "daemon/gdm-launch-environment.c"
6896 (("\"gnome-session\"")
6897 (string-append "\"" (assoc-ref inputs "gnome-session")
6898 "/bin/gnome-session\"")))
e8c6e771
TS
6899 ;; Do not automatically select the placeholder session.
6900 (substitute* "daemon/gdm-session.c"
6901 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6902 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6903 "(g_strcmp0(search_dirs[i], \""
6904 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6905 "\") == 0 && "
6906 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6907 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6908 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6909 #t))
8caa4589
TS
6910 ;; GDM requires that there be at least one desktop entry
6911 ;; file. This phase installs a hidden one that simply
6912 ;; fails. This enables users to use GDM with a
6913 ;; '~/.xsession' script with no other desktop entry files.
6914 ;; See <https://bugs.gnu.org/35068>.
6915 (add-after 'install 'install-placeholder-desktop-entry
6916 (lambda* (#:key inputs outputs #:allow-other-keys)
6917 (let* ((out (assoc-ref outputs "out"))
6918 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6919 (fail (string-append sessions "/fail.desktop")))
6920 (mkdir-p sessions)
6921 (with-output-to-file fail
6922 (lambda ()
6923 (for-each
6924 display
6925 '("[Desktop Entry]\n"
6926 "Encoding=UTF-8\n"
6927 "Type=Application\n"
6928 "Name=Fail\n"
6929 "Comment=This session fails immediately.\n"
6930 "NoDisplay=true\n"
6931 "Exec=false\n"))))
6932 #t)))
69544798
TS
6933 ;; GDM needs GNOME Session to run these applications. We link
6934 ;; their autostart files in `share/gdm/greeter/autostart'
6935 ;; because GDM explicitly tells GNOME Session to look there.
6936 ;;
6937 ;; XXX: GNOME Shell should be linked here too, but currently
6938 ;; GNOME Shell depends on GDM.
6939 (add-after 'install 'link-autostart-files
6940 (lambda* (#:key inputs outputs #:allow-other-keys)
6941 (let* ((out (assoc-ref outputs "out"))
6942 (autostart (string-append out "/share/gdm/"
6943 "greeter/autostart"))
6944 (settings (assoc-ref inputs "gnome-settings-daemon")))
6945 (mkdir-p autostart)
6946 (with-directory-excursion autostart
6947 (for-each (lambda (desktop)
6948 (symlink desktop (basename desktop)))
6949 (find-files (string-append settings "/etc/xdg"))))
6950 #t))))))
df12f04a
SB
6951 (native-inputs
6952 `(("dconf" ,dconf)
6953 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6954 ("gobject-introspection" ,gobject-introspection)
6955 ("intltool" ,intltool)
6956 ("itstool" ,itstool)
6957 ("pkg-config" ,pkg-config)
6958 ("xmllint" ,libxml2)))
6959 (inputs
6960 `(("accountsservice" ,accountsservice)
6961 ("check" ,check) ; for testing
6962 ("elogind" ,elogind)
def6d6b6 6963 ("gnome-session" ,gnome-session)
69544798 6964 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6965 ("gtk+" ,gtk+)
6966 ("iso-codes" ,iso-codes)
6967 ("libcanberra" ,libcanberra)
6968 ("linux-pam" ,linux-pam)))
6969 (synopsis "Display manager for GNOME")
f032d0be 6970 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6971 (description
6972 "GNOME Display Manager is a system service that is responsible for
6973providing graphical log-ins and managing local and remote displays.")
6974 (license license:gpl2+)))
8e1dd04f
SB
6975
6976(define-public libgtop
6977 (package
6978 (name "libgtop")
015fc036 6979 (version "2.40.0")
8e1dd04f
SB
6980 (source (origin
6981 (method url-fetch)
59487fc2 6982 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6983 (version-major+minor version) "/"
59487fc2 6984 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6985 (sha256
6986 (base32
015fc036 6987 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
6988 (build-system gnu-build-system)
6989 (native-inputs
6990 `(("gobject-introspection" ,gobject-introspection)
6991 ("intltool" ,intltool)
6992 ("perl" ,perl)
6993 ("pkg-config" ,pkg-config)))
6994 (propagated-inputs
6995 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6996 (synopsis "Portable system access library")
6997 (home-page "https://www.gnome.org/")
6998 (description
6999 "LibGTop is a library to get system specific data such as CPU and memory
7000usage and information about running processes.")
7001 (license license:gpl2+)))
b96c4260
SB
7002
7003(define-public gnome-bluetooth
7004 (package
7005 (name "gnome-bluetooth")
e8f4bf6b 7006 (version "3.34.0")
b96c4260
SB
7007 (source (origin
7008 (method url-fetch)
7009 (uri (string-append "mirror://gnome/sources/" name "/"
7010 (version-major+minor version) "/"
7011 name "-" version ".tar.xz"))
7012 (sha256
7013 (base32
e8f4bf6b 7014 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 7015 (build-system meson-build-system)
b96c4260
SB
7016 (native-inputs
7017 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7018 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7019 ("gobject-introspection" ,gobject-introspection)
7020 ("intltool" ,intltool)
7021 ("pkg-config" ,pkg-config)
7022 ("xmllint" ,libxml2)))
7023 (propagated-inputs
7024 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7025 `(("glib" ,glib)
7026 ("gtk+" ,gtk+)))
b96c4260 7027 (inputs
723afae6
KK
7028 `(("eudev" ,eudev)
7029 ("libcanberra" ,libcanberra)
b96c4260
SB
7030 ("libnotify" ,libnotify)))
7031 (synopsis "GNOME Bluetooth subsystem")
7032 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7033 (description
7034 "This package contains tools for managing and manipulating Bluetooth
7035devices using the GNOME desktop.")
7036 (license license:lgpl2.1+)))
b645146f
SB
7037
7038(define-public gnome-control-center
7039 (package
7040 (name "gnome-control-center")
c576328d 7041 (version "3.34.2")
b645146f
SB
7042 (source (origin
7043 (method url-fetch)
7044 (uri (string-append "mirror://gnome/sources/" name "/"
7045 (version-major+minor version) "/"
7046 name "-" version ".tar.xz"))
7047 (sha256
7048 (base32
c576328d 7049 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7050 (build-system meson-build-system)
b645146f 7051 (arguments
59dac026
RW
7052 '(#:glib-or-gtk? #t
7053 #:configure-flags
64c70430
KK
7054 (list "-Dcheese=false"
7055 (string-append "-Dgnome_session_libexecdir="
7056 (assoc-ref %build-inputs "gnome-session")
7057 "/libexec"))
59dac026 7058 #:phases
b645146f
SB
7059 (modify-phases %standard-phases
7060 (add-before 'configure 'patch-paths
7061 (lambda* (#:key inputs #:allow-other-keys)
7062 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7063 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7064 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7065 (nm-applet (assoc-ref inputs "network-manager-applet"))
7066 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7067 (substitute* "panels/datetime/tz.h"
7068 (("/usr/share/zoneinfo/zone.tab")
7069 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7070 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7071 (("/usr/share/locale")
7072 (string-append libc "/share/locale")))
1df38cfc
LC
7073 (substitute* "panels/region/cc-region-panel.c"
7074 (("\"gkbd-keyboard-display")
7075 (string-append "\"" libgnomekbd
7076 "/bin/gkbd-keyboard-display")))
341225ac
LC
7077 (substitute* '("panels/network/net-device-wifi.c"
7078 "panels/network/net-device.c"
7079 "panels/network/connection-editor/net-connection-editor.c")
7080 (("\"nm-connection-editor")
7081 (string-append "\"" nm-applet
7082 "/bin/nm-connection-editor")))
1acd107c
FP
7083 (substitute* '("panels/user-accounts/run-passwd.c")
7084 (("/usr/bin/passwd")
7085 "/run/setuid-programs/passwd"))
64c70430
KK
7086 (substitute* "panels/info/cc-info-overview-panel.c"
7087 (("DATADIR \"/gnome/gnome-version.xml\"")
7088 (string-append "\"" gnome-desktop
7089 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7090 #t)))
7091 (add-after 'unpack 'skip-gtk-update-icon-cache
7092 ;; Don't create 'icon-theme.cache'.
7093 (lambda _
7094 (substitute* "build-aux/meson/meson_post_install.py"
7095 (("gtk-update-icon-cache") (which "true")))
7096 #t)))))
b645146f
SB
7097 (native-inputs
7098 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7099 ("intltool" ,intltool)
7100 ("pkg-config" ,pkg-config)
a6938bac
KK
7101 ("xsltproc" ,libxslt)
7102 ;; For tests
7103 ("hicolor-icon-theme" ,hicolor-icon-theme)
7104 ("python-dbusmock" ,python-dbusmock)
7105 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7106 (inputs
7107 `(("accountsservice" ,accountsservice)
7108 ("clutter-gtk" ,clutter-gtk)
7109 ("colord-gtk" ,colord-gtk)
7110 ("cups" ,cups)
7111 ("dconf" ,dconf)
7112 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7113 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7114 ("gnome-bluetooth" ,gnome-bluetooth)
7115 ("gnome-desktop" ,gnome-desktop)
7116 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7117 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7118 ("gnome-session" ,gnome-session)
b645146f
SB
7119 ("gnome-settings-daemon" ,gnome-settings-daemon)
7120 ("grilo" ,grilo)
a6938bac 7121 ("gsound" ,gsound)
b645146f
SB
7122 ("ibus" ,ibus)
7123 ("libcanberra" ,libcanberra)
1df38cfc 7124 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7125 ("libgudev" ,libgudev)
7126 ("libgtop" ,libgtop)
7127 ("libpwquality" ,libpwquality)
982c0b36 7128 ("libsecret" ,libsecret)
b645146f
SB
7129 ("libsoup" ,libsoup)
7130 ("libxml2" ,libxml2)
7131 ("libwacom" ,libwacom)
7132 ("mesa" ,mesa)
7133 ("mit-krb5" ,mit-krb5)
7134 ("modem-manager" ,modem-manager)
7135 ("network-manager-applet" ,network-manager-applet)
7136 ("polkit" ,polkit)
7137 ("pulseaudio" ,pulseaudio)
7138 ("smbclient" ,samba)
7139 ("tzdata" ,tzdata)
982c0b36 7140 ("udisks" ,udisks)
b645146f
SB
7141 ("upower" ,upower)))
7142 (synopsis "Utilities to configure the GNOME desktop")
7143 (home-page "https://www.gnome.org/")
7144 (description
7145 "This package contains configuration applets for the GNOME desktop,
7146allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7147properties, sound setup, desktop theme and background, user interface
7148properties, screen resolution, and other GNOME parameters.")
7149 (license license:gpl2+)))
a4df5756
SB
7150
7151(define-public gnome-shell
7152 (package
7153 (name "gnome-shell")
28457ae6 7154 (version "3.34.2")
a4df5756
SB
7155 (source (origin
7156 (method url-fetch)
7157 (uri (string-append "mirror://gnome/sources/" name "/"
7158 (version-major+minor version) "/"
7159 name "-" version ".tar.xz"))
7160 (sha256
7161 (base32
28457ae6
KK
7162 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7163 (patches (search-patches "gnome-shell-theme.patch"
7164 "gnome-shell-disable-test.patch"))
a76d0f03
LC
7165 (modules '((guix build utils)))
7166 (snippet
7167 #~(begin
a76d0f03
LC
7168 ;; Copy images for use on the GDM log-in screen.
7169 (copy-file #$(file-append %artwork-repository
7170 "/slim/0.x/background.png")
7171 "data/theme/guix-background.png")
45fef894
LC
7172 (copy-file #$(file-append %artwork-repository
7173 "/logo/Guix-horizontal-white.svg")
7174 "data/theme/guix-logo.svg")
a76d0f03 7175 #t))))
2b0c755d 7176 (build-system meson-build-system)
a4df5756 7177 (arguments
08185081
MB
7178 `(#:glib-or-gtk? #t
7179 #:disallowed-references ((,glib "bin")
11e1df56
LC
7180 ,inkscape ,libxslt
7181 ,ruby-sass)
2b0c755d
RW
7182 #:configure-flags
7183 (list "-Dsystemd=false"
7184 ;; Otherwise, the RUNPATH will lack the final path component.
7185 (string-append "-Dc_link_args=-Wl,-rpath="
7186 (assoc-ref %outputs "out")
7187 "/lib/gnome-shell"))
11e1df56 7188
08185081 7189 #:modules ((guix build meson-build-system)
11e1df56
LC
7190 (guix build utils)
7191 (srfi srfi-1))
7192
2b0c755d 7193 #:phases
a4df5756 7194 (modify-phases %standard-phases
2b0c755d 7195 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7196 (lambda* (#:key outputs #:allow-other-keys)
7197 (let* ((out (assoc-ref outputs "out"))
7198 (keysdir (string-append
7199 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7200 (substitute* "meson.build"
7201 (("keysdir =.*")
7202 (string-append "keysdir = '" keysdir "'\n")))
7203 #t)))
ebfe259f
MB
7204 (add-before 'configure 'convert-logo-to-png
7205 (lambda* (#:key inputs #:allow-other-keys)
7206 ;; Convert the logo from SVG to PNG.
7207 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7208 "data/theme/guix-logo.svg")))
ba00235a 7209 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7210 (lambda* (#:key inputs #:allow-other-keys)
7211 (substitute* "js/misc/ibusManager.js"
7212 (("'ibus-daemon'")
7213 (string-append "'" (assoc-ref inputs "ibus")
7214 "/bin/ibus-daemon'")))
d6fda4d3
LC
7215 (substitute* "js/ui/status/keyboard.js"
7216 (("'gkbd-keyboard-display'")
7217 (string-append "'" (assoc-ref inputs "libgnomekbd")
7218 "/bin/gkbd-keyboard-display'")))
2472cdec 7219 #t))
2b0c755d
RW
7220 (add-before 'check 'pre-check
7221 (lambda* (#:key inputs #:allow-other-keys)
7222 ;; Tests require a running X server.
7223 (system "Xvfb :1 &")
7224 (setenv "DISPLAY" ":1")
7225 #t))
7226 (add-after 'install 'wrap-programs
7227 (lambda* (#:key inputs outputs #:allow-other-keys)
7228 (let ((out (assoc-ref outputs "out"))
7229 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7230 (python-path (getenv "PYTHONPATH")))
7231 (wrap-program (string-append out "/bin/gnome-shell")
7232 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7233 ;; FIXME: gnome-shell loads these libraries with unqualified
7234 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7235 ;; alternative might be to patch gnome-shell.
7236 `("LD_LIBRARY_PATH" ":" prefix
7237 ,(map (lambda (pkg)
7238 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7239 '("gdk-pixbuf"
7240 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7241 (for-each
7242 (lambda (prog)
7243 (wrap-program (string-append out "/bin/" prog)
7244 `("PYTHONPATH" ":" prefix (,python-path))
7245 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7246 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7247 #t)))
11e1df56
LC
7248 (replace 'glib-or-gtk-wrap
7249 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7250 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7251 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7252 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7253 ;; phase. Fix that since we don't need these.
7254 (wrap #:inputs (fold alist-delete inputs
7255 '("inkscape" "intltool" "glib:bin"))
7256 #:outputs outputs)))))))
a4df5756 7257 (native-inputs
28457ae6
KK
7258 `(("asciidoc" ,asciidoc)
7259 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7260 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7261 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7262 ("inkscape" ,inkscape)
a4df5756
SB
7263 ("intltool" ,intltool)
7264 ("pkg-config" ,pkg-config)
7265 ("python" ,python)
2b0c755d
RW
7266 ("ruby-sass" ,ruby-sass)
7267 ("sassc" ,sassc)
a76d0f03 7268 ("xsltproc" ,libxslt)
2b0c755d 7269 ;; For tests
0b4504f6 7270 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7271 (inputs
7272 `(("accountsservice" ,accountsservice)
7273 ("caribou" ,caribou)
7274 ("docbook-xsl" ,docbook-xsl)
7275 ("evolution-data-server" ,evolution-data-server)
7276 ("gcr" ,gcr)
7277 ("gdm" ,gdm)
c5db31d4 7278 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 7279 ("gjs" ,gjs)
28457ae6 7280 ("gnome-autoar" ,gnome-autoar)
a4df5756 7281 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7282 ("gnome-desktop" ,gnome-desktop)
7283 ("gnome-settings-daemon" ,gnome-settings-daemon)
7284 ("gst-plugins-base" ,gst-plugins-base)
7285 ("ibus" ,ibus)
7286 ("libcanberra" ,libcanberra)
7287 ("libcroco" ,libcroco)
d6fda4d3 7288 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
7289 ("libgweather" ,libgweather)
7290 ("libsoup" ,libsoup)
7291 ("mesa-headers" ,mesa-headers)
7292 ("mutter" ,mutter)
7293 ("network-manager-applet" ,network-manager-applet)
7294 ("polkit" ,polkit)
7295 ("pulseaudio" ,pulseaudio)
7296 ("python-pygobject" ,python-pygobject)
7297 ("startup-notification" ,startup-notification)
7298 ("telepathy-logger" ,telepathy-logger)
7299 ("upower" ,upower)
30e760f0
MB
7300 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7301 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7302 ("librsvg" ,librsvg)
2b0c755d 7303 ("geoclue" ,geoclue)))
a4df5756
SB
7304 (synopsis "Desktop shell for GNOME")
7305 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7306 (description
7307 "GNOME Shell provides core user interface functions for the GNOME desktop,
7308like switching to windows and launching applications.")
7309 (license license:gpl2+)))
c3f29bc9
RS
7310
7311(define-public gtk-vnc
7312 (package
7313 (name "gtk-vnc")
965ff023 7314 (version "0.9.0")
c3f29bc9
RS
7315 (source
7316 (origin
7317 (method url-fetch)
7318 (uri (string-append "mirror://gnome/sources/" name "/"
7319 (version-major+minor version) "/"
7320 name "-" version ".tar.xz"))
7321 (sha256
7322 (base32
965ff023 7323 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7324 (build-system gnu-build-system)
7325 (arguments
7326 '(#:configure-flags '("--with-gtk=3.0")))
7327 (propagated-inputs
7328 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7329 (inputs
7330 `(("cyrus-sasl" ,cyrus-sasl)
7331 ("gnutls" ,gnutls)
7332 ("libgcrypt" ,libgcrypt)
7333 ("pulseaudio" ,pulseaudio)))
7334 (native-inputs
7335 `(("glib:bin" ,glib "bin")
7336 ("gobject-introspection" ,gobject-introspection)
7337 ("intltool" ,intltool)
7338 ("pkg-config" ,pkg-config)
2f17e939 7339 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7340 ("vala" ,vala)))
7341 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7342 (synopsis "VNC viewer widget for GTK+")
7343 (description
7344 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7345applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7346GTK-VNC implements client side RFB protocol and authentication extensions such
7347as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7348 (license license:lgpl2.1+)))
8b877545 7349
dc69fe18
MW
7350(define-public gnome-autoar
7351 (package
7352 (name "gnome-autoar")
17969940 7353 (version "0.2.4")
dc69fe18
MW
7354 (source (origin
7355 (method url-fetch)
7356 (uri (string-append "mirror://gnome/sources/" name "/"
7357 (version-major+minor version) "/"
7358 name "-" version ".tar.xz"))
7359 (sha256
7360 (base32
17969940 7361 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
7362 (build-system glib-or-gtk-build-system)
7363 (native-inputs
17969940 7364 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
7365 ("pkg-config" ,pkg-config)))
7366 (propagated-inputs
17969940 7367 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 7368 (inputs
0a6e9e13 7369 `(("gtk+" ,gtk+)))
dc69fe18
MW
7370 (synopsis "Archives integration support for GNOME")
7371 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7372 (description
7373 "GNOME Autoar is a library which makes creating and extracting archives
7374easy, safe, and automatic.")
7375 (license license:lgpl2.1+)))
7376
b64e217f
MW
7377(define-public tracker
7378 (package
7379 (name "tracker")
caaefa40 7380 (version "2.3.4")
b64e217f
MW
7381 (source (origin
7382 (method url-fetch)
b5b0fd23 7383 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7384 (version-major+minor version) "/"
b5b0fd23 7385 "tracker-" version ".tar.xz"))
b64e217f
MW
7386 (sha256
7387 (base32
caaefa40 7388 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7389 (build-system meson-build-system)
c8bdf589 7390 (arguments
5ada561c
KK
7391 `(#:glib-or-gtk? #t
7392 #:configure-flags
7393 ;; Otherwise, the RUNPATH will lack the final path component.
7394 (list (string-append "-Dc_link_args=-Wl,-rpath="
7395 (assoc-ref %outputs "out") "/lib:"
7396 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7397 #:phases
c8bdf589 7398 (modify-phases %standard-phases
c8bdf589
RW
7399 (add-before 'check 'pre-check
7400 (lambda _
63db190a
PN
7401 ;; Some tests expect to write to $HOME.
7402 (setenv "HOME" "/tmp")
c8bdf589 7403 #t)))))
b64e217f 7404 (native-inputs
5ada561c 7405 `(("glib:bin" ,glib "bin")
b64e217f 7406 ("gobject-introspection" ,gobject-introspection)
5ada561c 7407 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7408 ("intltool" ,intltool)
7409 ("pkg-config" ,pkg-config)
7410 ("vala" ,vala)))
7411 (inputs
63db190a 7412 `(("dbus" ,dbus)
44ed6284 7413 ("sqlite" ,sqlite)
b64e217f 7414 ("libxml2" ,libxml2)
63db190a 7415 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7416 ("json-glib" ,json-glib)
63db190a 7417 ("libsoup" ,libsoup)))
b64e217f
MW
7418 (synopsis "Metadata database, indexer and search tool")
7419 (home-page "https://wiki.gnome.org/Projects/Tracker")
7420 (description
63db190a
PN
7421 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7422
7423It is a middleware component aimed at desktop application developers who want
7424their apps to browse and search user content. It's not designed to be used
7425directly by desktop users, but it provides a commandline tool named
7426@command{tracker} for the adventurous.
7427
7428Tracker allows your application to instantly perform full-text searches across
7429all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7430example. This is achieved by indexing the user's home directory in the
7431background.
7432
7433Tracker also allows your application to query and list content that the user
7434has stored. For example, GNOME Music displays all the music files that are
7435found by Tracker. This means that GNOME Music doesn't need to maintain a
7436database of its own.
7437
7438If you need to go beyond simple searches, Tracker is also a linked data
7439endpoint and it understands SPARQL. ")
7440 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7441 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7442 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7443 (license (list license:gpl2+
63db190a
PN
7444 license:bsd-3
7445 license:lgpl2.1+))))
b64e217f 7446
03be9874
KK
7447(define-public tracker-miners
7448 (package
7449 (name "tracker-miners")
de60ac2f 7450 (version "2.3.3")
03be9874
KK
7451 (source (origin
7452 (method url-fetch)
7453 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7454 (version-major+minor version)
7455 "/tracker-miners-" version ".tar.xz"))
7456 (sha256
7457 (base32
de60ac2f 7458 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7459 (build-system meson-build-system)
7460 (arguments
7461 `(#:glib-or-gtk? #t
7462 #:configure-flags
7463 (list "-Dminer_rss=false" ; libgrss is required.
7464 ;; Ensure the RUNPATH contains all installed library locations.
7465 (string-append "-Dc_link_args=-Wl,-rpath="
7466 (assoc-ref %outputs "out")
7467 "/lib/tracker-miners-2.0")
7468 ;; TODO: Enable functional tests. Currently, the following error
7469 ;; appears:
7470 ;; Exception: The functional tests require DConf to be the default
7471 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7472 "-Dfunctional_tests=false")))
7473 (native-inputs
7474 `(("dbus" ,dbus)
7475 ("intltool" ,intltool)
7476 ("glib:bin" ,glib "bin")
7477 ("gobject-introspection" ,gobject-introspection)
7478 ("pkg-config" ,pkg-config)
7479 ("python-pygobject" ,python-pygobject)))
7480 (inputs
7481 `(("exempi" ,exempi)
7482 ("ffmpeg" ,ffmpeg)
7483 ("flac" ,flac)
7484 ("giflib" ,giflib)
7485 ("glib" ,glib)
7486 ("gstreamer" ,gstreamer)
7487 ("icu4c" ,icu4c)
7488 ("libcue" ,libcue)
7489 ("libexif" ,libexif)
7490 ("libgsf" ,libgsf)
7491 ("libgxps" ,libgxps)
7492 ("libiptcdata" ,libiptcdata)
4bd428a7 7493 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7494 ("libosinfo" ,libosinfo)
7495 ("libpng" ,libpng)
7496 ("libseccomp" ,libseccomp)
7497 ("libtiff" ,libtiff)
7498 ("libvorbis" ,libvorbis)
7499 ("libxml2" ,libxml2)
7500 ("poppler" ,poppler)
7501 ("taglib" ,taglib)
7502 ("totem-pl-parser" ,totem-pl-parser)
7503 ("tracker" ,tracker)
7504 ("upower" ,upower)
7505 ("zlib" ,zlib)))
b64e217f
MW
7506 (synopsis "Metadata database, indexer and search tool")
7507 (home-page "https://wiki.gnome.org/Projects/Tracker")
7508 (description
7509 "Tracker is an advanced framework for first class objects with associated
7510metadata and tags. It provides a one stop solution for all metadata, tags,
7511shared object databases, search tools and indexing.")
7512 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7513 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7514 (license (list license:gpl2+
7515 license:lgpl2.1+
7516 license:lgpl2.0+))))
7517
8b877545
RS
7518(define-public nautilus
7519 (package
7520 (name "nautilus")
8069ff0b 7521 (version "3.34.2")
8b877545
RS
7522 (source (origin
7523 (method url-fetch)
7524 (uri (string-append "mirror://gnome/sources/" name "/"
7525 (version-major+minor version) "/"
7526 name "-" version ".tar.xz"))
7527 (sha256
7528 (base32
8069ff0b 7529 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 7530 (build-system meson-build-system)
8b877545 7531 (arguments
35e2d0cf 7532 '(#:glib-or-gtk? #t
8069ff0b
KK
7533 #:phases
7534 (modify-phases %standard-phases
7535 (add-after 'unpack 'skip-gtk-update-icon-cache
7536 ;; Don't create 'icon-theme.cache'.
7537 (lambda _
7538 (substitute* "build-aux/meson/postinstall.py"
7539 (("gtk-update-icon-cache") "true"))
7540 #t)))
8b877545
RS
7541 ;; XXX: FAIL: check-nautilus
7542 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7543 #:tests? #f))
7544 (native-inputs
35e2d0cf
R
7545 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7546 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
7547 ("gobject-introspection" ,gobject-introspection)
7548 ("intltool" ,intltool)
7549 ("pkg-config" ,pkg-config)))
8b877545 7550 (inputs
8b877545 7551 `(("dconf" ,dconf)
caf6c363 7552 ("gexiv2" ,gexiv2)
dd05e731 7553 ("gvfs" ,gvfs)
8b877545
RS
7554 ("exempi" ,exempi)
7555 ("gnome-desktop" ,gnome-desktop)
09d88905 7556 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7557 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7558 ("libseccomp" ,libseccomp)
35e2d0cf 7559 ("libselinux" ,libselinux)
09d88905 7560 ("tracker" ,tracker)
3cafb9d4 7561 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7562 ;; XXX: gtk+ is required by libnautilus-extension.pc
7563 ;;
7564 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7565 ;; package. See:
7566 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7567 ("gtk+" ,gtk+)
8b877545
RS
7568 ("libexif" ,libexif)
7569 ("libxml2" ,libxml2)))
7570 (synopsis "File manager for GNOME")
7571 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7572 (description
7573 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7574design and behaviour, giving the user a simple way to navigate and manage its
7575files.")
7576 (license license:gpl2+)))
3c697ffd
JR
7577
7578(define-public baobab
7579 (package
7580 (name "baobab")
e0c5f20c 7581 (version "3.32.0")
3c697ffd
JR
7582 (source (origin
7583 (method url-fetch)
7584 (uri (string-append
7585 "mirror://gnome/sources/" name "/"
7586 (version-major+minor version) "/"
7587 name "-" version ".tar.xz"))
7588 (sha256
7589 (base32
e0c5f20c 7590 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7591 (build-system meson-build-system)
7592 (arguments
7593 '(#:glib-or-gtk? #t))
3c697ffd
JR
7594 (native-inputs
7595 `(("intltool" ,intltool)
7596 ("pkg-config" ,pkg-config)
d233d373
RJ
7597 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7598 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7599 ("itstool" ,itstool)
7600 ("xmllint" ,libxml2)
7601 ("glib" ,glib "bin")
7602 ("vala" ,vala)))
7603 (inputs
7604 `(("gtk+" ,gtk+)))
7605 (synopsis "Disk usage analyzer for GNOME")
7606 (description
7607 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7608usage in the GNOME desktop environment. It can easily scan device volumes or
7609a specific user-requested directory branch (local or remote). Once the scan
7610is complete it provides a graphical representation of each selected folder.")
7611 (home-page "https://wiki.gnome.org/Apps/Baobab")
7612 (license license:gpl2+)))
dc050251 7613
fdba447c
RS
7614(define-public gnome-backgrounds
7615 (package
7616 (name "gnome-backgrounds")
0856b0d9 7617 (version "3.34.0")
fdba447c
RS
7618 (source
7619 (origin
7620 (method url-fetch)
7621 (uri (string-append "mirror://gnome/sources/" name "/"
7622 (version-major+minor version) "/"
7623 name "-" version ".tar.xz"))
7624 (sha256
7625 (base32
0856b0d9 7626 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 7627 (build-system meson-build-system)
fdba447c
RS
7628 (native-inputs
7629 `(("intltool" ,intltool)))
e04e8a8c 7630 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7631 (synopsis "Background images for the GNOME desktop")
7632 (description
7633 "GNOME backgrounds package contains a collection of graphics files which
7634can be used as backgrounds in the GNOME Desktop environment. Additionally,
7635the package creates the proper framework and directory structure so that you
7636can add your own files to the collection.")
7637 (license (list license:gpl2+
7638 license:cc-by2.0
7639 license:cc-by-sa2.0
7640 license:cc-by-sa3.0))))
7641
b784b1a9
RS
7642(define-public gnome-screenshot
7643 (package
7644 (name "gnome-screenshot")
d5101dab 7645 (version "3.34.0")
b784b1a9
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
d5101dab 7654 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 7655 (build-system meson-build-system)
d5101dab
KK
7656 (arguments
7657 '(#:phases
7658 (modify-phases %standard-phases
7659 (add-after 'unpack 'skip-gtk-update-icon-cache
7660 ;; Don't create 'icon-theme.cache'.
7661 (lambda _
7662 (substitute* "build-aux/postinstall.py"
7663 (("gtk-update-icon-cache") "true"))
7664 #t)))))
b784b1a9
RS
7665 (native-inputs
7666 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 7667 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7668 ("intltool" ,intltool)
8356aefa 7669 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7670 ("pkg-config" ,pkg-config)))
7671 (inputs
7672 `(("gtk+" ,gtk+)
7673 ("libcanberra" ,libcanberra)
7674 ("libx11" ,libx11)
7675 ("libxext" ,libxext)))
676e7cb4 7676 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7677 (synopsis "Take pictures of your screen")
7678 (description
7679 "GNOME Screenshot is a utility used for taking screenshots of the entire
7680screen, a window or a user defined area of the screen, with optional
7681beautifying border effects.")
7682 (license license:gpl2+)))
7683
66d59111
RS
7684(define-public dconf-editor
7685 (package
7686 (name "dconf-editor")
720aa20f 7687 (version "3.34.2")
66d59111
RS
7688 (source
7689 (origin
7690 (method url-fetch)
7691 (uri (string-append "mirror://gnome/sources/" name "/"
7692 (version-major+minor version) "/"
7693 name "-" version ".tar.xz"))
7694 (sha256
7695 (base32
720aa20f 7696 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 7697 (build-system meson-build-system)
66d59111
RS
7698 (native-inputs
7699 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7700 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7701 ("intltool" ,intltool)
294ff39d
RW
7702 ("pkg-config" ,pkg-config)
7703 ("vala" ,vala)))
66d59111
RS
7704 (inputs
7705 `(("dconf" ,dconf)
7706 ("gtk+" ,gtk+)
7707 ("libxml2" ,libxml2)))
720aa20f 7708 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
7709 (synopsis "Graphical editor for GNOME's dconf configuration system")
7710 (description
7711 "Dconf-editor is a graphical tool for browsing and editing the dconf
7712configuration system for GNOME. It allows users to configure desktop
7713software that do not provide their own configuration interface.")
7714 (license license:lgpl2.1+)))
7715
96d36f38
AW
7716(define-public gnome-default-applications
7717 (package
7718 (name "gnome-default-applications")
7719 (version "0")
7720 (build-system trivial-build-system)
7721 (source #f)
7722 (propagated-inputs
8ad4f0aa
LC
7723 `(("nautilus" ,nautilus)
7724 ("evince" ,evince)))
96d36f38
AW
7725 (arguments
7726 `(#:modules ((guix build utils))
7727 #:builder
7728 (begin
7729 (use-modules (guix build utils))
7730 (let* ((out (assoc-ref %outputs "out"))
7731 (apps (string-append out "/share/applications")))
7732 (mkdir-p apps)
a6ac679f 7733 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7734 (lambda (port)
7735 (format port "[Default Applications]\n")
8ad4f0aa
LC
7736 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7737 (format port "application/pdf=evince.desktop\n")
7738 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7739 #t))))
7740 (synopsis "Default MIME type associations for the GNOME desktop")
7741 (description
7742 "Given many installed packages which might handle a given MIME type, a
7743user running the GNOME desktop probably has some preferences: for example,
7744that folders be opened by default by the Nautilus file manager, not the Baobab
7745disk usage analyzer. This package establishes that set of default MIME type
7746associations for GNOME.")
7747 (license license:gpl3+)
7748 (home-page #f)))
7749
3f1ed953
RG
7750(define-public libgovirt
7751 (package
7752 (name "libgovirt")
7753 (version "0.3.6")
7754 (source (origin
7755 (method url-fetch)
7756 (uri (string-append "mirror://gnome/sources/" name "/"
7757 (version-major+minor version) "/"
7758 name "-" version ".tar.xz"))
7759 (sha256
7760 (base32
7761 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7762 (build-system glib-or-gtk-build-system)
7763 (native-inputs
7764 `(("gettext" ,gettext-minimal)
7765 ("glib:bin" ,glib "bin")
7766 ("gobject-introspection" ,gobject-introspection)
7767 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7768 ("gtk+:bin" ,gtk+ "bin")
7769 ("pkg-config" ,pkg-config)))
7770 (inputs
7771 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7772 ("librest" ,rest)))
7773 (synopsis "GoVirt Library")
7774 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7775 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7776 (license license:gpl2+)))
7777
8672e5e9
RG
7778(define-public gnome-weather
7779 (package
7780 (name "gnome-weather")
7781 (version "3.34.0")
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 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7790 (build-system meson-build-system)
7791 (native-inputs
7792 `(("gettext" ,gettext-minimal)
7793 ("glib:bin" ,glib "bin")
7794 ("gobject-introspection" ,gobject-introspection)
7795 ("gtk+:bin" ,gtk+ "bin")
7796 ("pkg-config" ,pkg-config)))
7797 (inputs
7798 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7799 ("appstream-glib" ,appstream-glib)
7800 ("geoclue" ,geoclue)
7801 ("gdk-pixbuf" ,gdk-pixbuf)
7802 ("gjs" ,gjs)
7803 ("gnome-desktop" ,gnome-desktop)
7804 ("libgweather" ,libgweather)))
4391fefc 7805 (arguments
2b68ba72
MB
7806 `(#:glib-or-gtk? #t
7807 #:phases
4391fefc
PN
7808 (modify-phases %standard-phases
7809 (add-after 'install 'fix-desktop-file
7810 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7811 ;; See https://issues.guix.gnu.org/issue/39324.
7812 (lambda* (#:key outputs #:allow-other-keys)
7813 (let* ((out (assoc-ref outputs "out"))
7814 (applications (string-append out "/share/applications")))
7815 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
7816 (("Exec=.*") "Exec=gnome-weather\n"))
7817 #t)))
7818 (add-after 'install 'wrap
7819 (lambda* (#:key inputs outputs #:allow-other-keys)
7820 (let ((out (assoc-ref outputs "out"))
7821 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7822 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7823 (wrap-program (string-append out "/bin/gnome-weather")
7824 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7825 #t))))))
8672e5e9
RG
7826 (synopsis "Weather monitoring for GNOME desktop")
7827 (description "GNOME Weather is a small application that allows you to
7828monitor the current weather conditions for your city, or anywhere in the
7829world.")
7830 (home-page "https://wiki.gnome.org/Apps/Weather")
7831 (license license:gpl2+)))
7832
dc050251
SB
7833(define-public gnome
7834 (package
7835 (name "gnome")
7836 (version (package-version gnome-shell))
7837 (source #f)
7838 (build-system trivial-build-system)
e3cfef22 7839 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7840 (propagated-inputs
8d8c6bff 7841 ;; TODO: Add or remove packages according to:
a8cda7f5 7842 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7843 `(
8d8c6bff 7844 ;; GNOME-Core-OS-Services
7922b6f7 7845 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7846 ("network-manager" ,network-manager)
7847 ("packagekit" ,packagekit)
7848 ("upower" ,upower)
7849 ;; GNOME-Core-Shell
7850 ("adwaita-icon-theme" ,adwaita-icon-theme)
7851 ("gdm" ,gdm)
7852 ("glib-networking" ,glib-networking)
7853 ("gnome-backgrounds" ,gnome-backgrounds)
7854 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 7855 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
7856 ("gnome-control-center" ,gnome-control-center)
7857 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7858 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 7859 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 7860 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7861 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7862 ("gnome-session" ,gnome-session)
7863 ("gnome-settings-daemon" ,gnome-settings-daemon)
7864 ("gnome-shell-extensions" ,gnome-shell-extensions)
7865 ("gnome-shell" ,gnome-shell)
7866 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7867 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 7868 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 7869 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7870 ("gvfs" ,gvfs)
7871 ("mutter" ,mutter)
7872 ("orca" ,orca)
d36fa50f
RG
7873 ("rygel" ,rygel)
7874 ("sushi" ,sushi)
8d8c6bff
RG
7875 ;; GNOME-Core-Utilities
7876 ("baobab" ,baobab)
7877 ("cheese" ,cheese)
ce784e6c
MB
7878 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7879 ;; only works on x86_64, so exclude it on other architectures.
7880 ,@(if (string-prefix? "x86_64" (%current-system))
7881 `(("eog" ,eog))
7882 '())
8d8c6bff
RG
7883 ("epiphany" ,epiphany)
7884 ("evince" ,evince)
7885 ("file-roller" ,file-roller)
7886 ("gedit" ,gedit)
d36fa50f 7887 ; TODO: ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
7888 ("gnome-calculator" ,gnome-calculator)
7889 ("gnome-calendar" ,gnome-calendar)
7890 ("gnome-characters" ,gnome-characters)
7891 ("gnome-clocks" ,gnome-clocks)
7892 ("gnome-contacts" ,gnome-contacts)
7893 ("gnome-disk-utility" ,gnome-disk-utility)
7894 ("gnome-font-viewer" ,gnome-font-viewer)
7895 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
7896 ; TODO: ("gnome-music" ,gnome-music)
7897 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
7898 ("gnome-screenshot" ,gnome-screenshot)
7899 ("gnome-system-monitor" ,gnome-system-monitor)
7900 ("gnome-terminal" ,gnome-terminal)
d36fa50f 7901 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
7902 ("nautilus" ,nautilus)
7903 ("simple-scan" ,simple-scan)
7904 ("totem" ,totem)
7922b6f7
RG
7905 ("yelp" ,yelp)
7906 ;; Others
7907 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
7908 ("gnome-online-accounts" ,gnome-online-accounts)
7909
7910 ;; Packages not part of GNOME proper but that are needed for a good
7911 ;; experience. See <https://bugs.gnu.org/39646>.
7912 ;; XXX: Find out exactly which ones are needed and why.
7913 ("font-cantarell" ,font-cantarell)
7914 ("font-dejavu" ,font-dejavu)
7915 ("at-spi2-core" ,at-spi2-core)
7916 ("dbus" ,dbus)
7917 ("dconf" ,dconf)
7918 ("desktop-file-utils" ,desktop-file-utils)
7919 ("gnome-default-applications" ,gnome-default-applications)
7920 ("gnome-themes-standard" ,gnome-themes-standard)
7921 ("gst-plugins-base" ,gst-plugins-base)
7922 ("gst-plugins-good" ,gst-plugins-good)
7923 ("gucharmap" ,gucharmap)
7924 ("pinentry-gnome3" ,pinentry-gnome3)
7925 ("pulseaudio" ,pulseaudio)
7926 ("shared-mime-info" ,shared-mime-info)
7927 ("system-config-printer" ,system-config-printer)
7928 ("xdg-user-dirs" ,xdg-user-dirs)
7929 ("yelp" ,yelp)
7930 ("zenity" ,zenity)))
fe4e698d 7931 (synopsis "The GNU desktop environment")
dc050251
SB
7932 (home-page "https://www.gnome.org/")
7933 (description
fe4e698d
LC
7934 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7935applications for browsing the web, editing text and images, creating
7936documents and diagrams, playing media, scanning, and much more.")
dc050251 7937 (license license:gpl2+)))
4a526711
DT
7938
7939(define-public byzanz
7940 ;; The last stable release of Byzanz was in 2011, but there have been many
7941 ;; useful commits made to the Byzanz repository since then that it would be
7942 ;; silly to use such an old release.
7943 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7944 (package
7945 (name "byzanz")
7946 (version (string-append "0.2-1." (string-take commit 7)))
7947 (source (origin
7948 (method git-fetch)
7949 (uri (git-reference
5f13bf09 7950 (url "https://git.gnome.org/browse/byzanz")
4a526711 7951 (commit commit)))
5a6527e4 7952 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7953 (sha256
7954 (base32
7955 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7956 (build-system glib-or-gtk-build-system)
7957 (arguments
7958 '(#:phases
7959 (modify-phases %standard-phases
778d6b52 7960 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
7961 (lambda _
7962 ;; The build system cleverly detects that we're not building from
7963 ;; a release tarball and turns on -Werror for GCC.
7964 ;; Unsurprisingly, there is a warning during compilation that
7965 ;; causes the build to fail unnecessarily, so we remove the flag.
7966 (substitute* '("configure.ac")
7967 (("-Werror") ""))
778d6b52 7968 #t)))))
4a526711
DT
7969 (native-inputs
7970 `(("autoconf" ,autoconf)
7971 ("automake" ,automake)
7972 ("gnome-common" ,gnome-common)
7973 ("intltool" ,intltool)
7974 ("libtool" ,libtool)
7975 ("pkg-config" ,pkg-config)
7976 ("which" ,which)))
7977 (inputs
7978 `(("glib" ,glib)
7979 ("gstreamer" ,gstreamer)
7980 ("gst-plugins-base" ,gst-plugins-base)
7981 ("gtk+" ,gtk+)))
7982 (synopsis "Desktop recording program")
7983 (description "Byzanz is a simple desktop recording program with a
7984command-line interface. It can record part or all of an X display for a
7985specified duration and save it as a GIF encoded animated image file.")
7986 (home-page "https://git.gnome.org/browse/byzanz")
7987 (license license:gpl2+))))
3a9a4c51 7988
0ec171ec
MS
7989(define-public gsound
7990 (package
7991 (name "gsound")
7992 (version "1.0.2")
7993 (source (origin
7994 (method url-fetch)
7995 (uri (string-append "mirror://gnome/sources/" name "/"
7996 (version-major+minor version) "/"
7997 name "-" version ".tar.xz"))
7998 (sha256
7999 (base32
8000 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8001 (build-system glib-or-gtk-build-system)
8002 (native-inputs
8003 `(("pkg-config" ,pkg-config)
8004 ("gobject-introspection" ,gobject-introspection)
8005 ("vala" ,vala)))
8006 (inputs
8007 `(("glib" ,glib)
8008 ("libcanberra" ,libcanberra)))
8009 (home-page "https://wiki.gnome.org/Projects/GSound")
8010 (synopsis "GObject wrapper for libcanberra")
8011 (description
8012 "GSound is a small library for playing system sounds. It's designed to be
8013used via GObject Introspection, and is a thin wrapper around the libcanberra C
8014library.")
8015 (license license:lgpl2.1+)))
8016
3a9a4c51
RS
8017(define-public libzapojit
8018 (package
8019 (name "libzapojit")
8020 (version "0.0.3")
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 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8029 (build-system gnu-build-system)
8030 (native-inputs
8031 `(("gobject-introspection" ,gobject-introspection)
8032 ("intltool" ,intltool)
8033 ("pkg-config" ,pkg-config)))
8034 (inputs
14c297fd 8035 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8036 ("json-glib" ,json-glib)
8037 ("rest" ,rest)))
8038 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8039 (synopsis "Library for accessing SkyDrive and Hotmail")
8040 (description
8041 "Libzapojit is a GLib-based library for accessing online service APIs of
8042Microsoft SkyDrive and Hotmail, using their REST protocols.")
8043 (license license:lgpl2.1+)))
9365ee1c 8044
60e2a9ae
MS
8045(define-public gnome-clocks
8046 (package
8047 (name "gnome-clocks")
feee5ff5 8048 (version "3.34.0")
60e2a9ae
MS
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
feee5ff5 8056 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8057 (build-system meson-build-system)
8058 (arguments
feee5ff5
KK
8059 '(#:glib-or-gtk? #t
8060 #:phases
8061 (modify-phases %standard-phases
8062 (add-after 'unpack 'skip-gtk-update-icon-cache
8063 ;; Don't create 'icon-theme.cache'.
8064 (lambda _
8065 (substitute* "build-aux/post-install.py"
8066 (("gtk-update-icon-cache") "true"))
8067 #t)))))
60e2a9ae
MS
8068 (native-inputs
8069 `(("vala" ,vala)
8070 ("pkg-config" ,pkg-config)
8071 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8072 ("desktop-file-utils" ,desktop-file-utils)
8073 ("gettext" ,gettext-minimal)
8074 ("itstool" ,itstool)))
8075 (inputs
8076 `(("glib" ,glib)
8077 ("gtk+" ,gtk+)
8078 ("gsound" ,gsound)
8079 ("geoclue" ,geoclue)
8080 ("geocode-glib" ,geocode-glib)
8081 ("libgweather" ,libgweather)
8082 ("gnome-desktop" ,gnome-desktop)))
8083 (home-page "https://wiki.gnome.org/Apps/Clocks")
8084 (synopsis "GNOME's clock application")
8085 (description
8086 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8087desktop. It supports world clock, stop watch, alarms, and count down timer.")
8088 (license license:gpl3+)))
8089
3c474897
KY
8090(define-public gnome-calendar
8091 (package
8092 (name "gnome-calendar")
27dd1d76 8093 (version "3.34.2")
3c474897
KY
8094 (source (origin
8095 (method url-fetch)
8096 (uri (string-append "mirror://gnome/sources/" name "/"
8097 (version-major+minor version) "/"
8098 name "-" version ".tar.xz"))
8099 (sha256
8100 (base32
27dd1d76 8101 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8102 (build-system meson-build-system)
8103 (arguments
8104 '(#:glib-or-gtk? #t
8105 ;; gnome-calendar has to be installed before the tests can be run
8106 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8107 #:tests? #f
8108 #:phases
8109 (modify-phases %standard-phases
8110 (add-after 'unpack 'skip-gtk-update-icon-cache
8111 ;; Don't create 'icon-theme.cache'.
8112 (lambda _
8113 (substitute* "build-aux/meson/meson_post_install.py"
8114 (("gtk-update-icon-cache") "true"))
8115 #t)))))
3c474897 8116 (native-inputs
a49d3e37
MS
8117 `(("gettext" ,gettext-minimal)
8118 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8119 ("pkg-config" ,pkg-config)))
8120 (inputs
27cb52a2 8121 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8122 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8123 ("libdazzle" ,libdazzle)
b63c06f1 8124 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8125 ("libgweather" ,libgweather)
8126 ("geoclue" ,geoclue)))
27cb52a2
RG
8127 (propagated-inputs
8128 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8129 (home-page "https://wiki.gnome.org/Apps/Calendar")
8130 (synopsis "GNOME's calendar application")
8131 (description
8132 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8133desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8134 (license license:gpl3+)))
8135
57b14665
MS
8136(define-public gnome-todo
8137 (package
8138 (name "gnome-todo")
9f3c6c88 8139 (version "3.28.1")
57b14665
MS
8140 (source (origin
8141 (method url-fetch)
8142 (uri (string-append "mirror://gnome/sources/" name "/"
8143 (version-major+minor version) "/"
8144 name "-" version ".tar.xz"))
8145 (sha256
8146 (base32
b17b2945
DM
8147 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8148 (patches
8149 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8150 (build-system meson-build-system)
8151 (arguments
8152 '(#:glib-or-gtk? #t
8153 #:phases (modify-phases %standard-phases
8154 (add-after
8155 'install 'wrap-gnome-todo
8156 (lambda* (#:key inputs outputs #:allow-other-keys)
8157 (let ((out (assoc-ref outputs "out"))
8158 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8159 (python-path (getenv "PYTHONPATH")))
8160 (wrap-program (string-append out "/bin/gnome-todo")
8161 ;; XXX: gi plugins are broken.
8162 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8163 ;; For plugins.
8164 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8165 `("PYTHONPATH" ":" prefix (,python-path))))
8166 #t)))))
8167 (native-inputs
8168 `(("gettext" ,gettext-minimal)
8169 ("gobject-introspection" ,gobject-introspection)
8170 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8171 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8172 ("pkg-config" ,pkg-config)))
8173 (inputs
8174 `(("rest" ,rest) ; For Todoist plugin
8175 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8176 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8177 ("libical" ,libical)
8178 ("libpeas" ,libpeas)
8179 ("python-pygobject" ,python-pygobject)
8180 ("evolution-data-server" ,evolution-data-server)
14c297fd 8181 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8182 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8183 (home-page "https://wiki.gnome.org/Apps/Todo")
8184 (synopsis "GNOME's ToDo Application")
8185 (description
8186 "GNOME To Do is a simplistic personal task manager designed to perfectly
8187fit the GNOME desktop.")
8188 (license license:gpl3+)))
8189
ab179eaf
SB
8190(define-public gnome-dictionary
8191 (package
8192 (name "gnome-dictionary")
cf81ddef 8193 (version "3.26.1")
ab179eaf
SB
8194 (source (origin
8195 (method url-fetch)
8196 (uri (string-append "mirror://gnome/sources/" name "/"
8197 (version-major+minor version) "/"
8198 name "-" version ".tar.xz"))
8199 (sha256
8200 (base32
cf81ddef
LC
8201 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8202 (build-system meson-build-system)
2776b5d5
MB
8203 (arguments '(#:glib-or-gtk? #t
8204 #:phases (modify-phases %standard-phases
8205 (add-after 'unpack 'patch-install-script
8206 (lambda _
8207 ;; This script attempts to compile glib schemas
8208 ;; and create an empty MIME database. We do
8209 ;; that elsewhere, so prevent it from running.
8210 (substitute* "build-aux/post-install.sh"
8211 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8212 #t)))))
ab179eaf
SB
8213 (native-inputs
8214 `(("glib:bin" ,glib "bin")
8215 ("gobject-introspection" ,gobject-introspection)
8216 ("intltool" ,intltool)
8217 ("itstool" ,itstool)
8218 ("pkg-config" ,pkg-config)
8219 ("xmllint" ,libxml2)))
8220 (inputs
8221 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8222 ("gtk+" ,gtk+)))
8223 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8224 (synopsis "Look up words in dictionary sources")
8225 (description
8226 "GNOME Dictionary can look for the definition or translation of a word in
8227existing databases over the internet.")
8228 (license license:gpl3+)))
8229
d13f3a03 8230(define-public gnome-tweaks
9365ee1c 8231 (package
d13f3a03 8232 (name "gnome-tweaks")
4add1bae 8233 (version "3.34.0")
9365ee1c
JN
8234 (source (origin
8235 (method url-fetch)
d13f3a03 8236 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8237 (version-major+minor version) "/"
d13f3a03
RW
8238 "gnome-tweaks-" version ".tar.xz"))
8239 (patches
8240 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8241 (sha256
8242 (base32
4add1bae 8243 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 8244 (build-system meson-build-system)
9365ee1c 8245 (arguments
d13f3a03
RW
8246 `(#:glib-or-gtk? #t
8247 #:configure-flags '("-Dlocalstatedir=/tmp"
8248 "-Dsysconfdir=/tmp")
9365ee1c 8249 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8250 ,@%meson-build-system-modules)
8251 #:phases
8252 (modify-phases %standard-phases
4add1bae
KK
8253 (add-after 'unpack 'skip-gtk-update-icon-cache
8254 ;; Don't create 'icon-theme.cache'.
8255 (lambda _
8256 (substitute* "meson-postinstall.py"
8257 (("gtk-update-icon-cache") "true"))
8258 #t))
d13f3a03
RW
8259 (add-after 'install 'wrap
8260 (@@ (guix build python-build-system) wrap))
8261 (add-after 'wrap 'wrap-gi-typelib
8262 (lambda* (#:key inputs outputs #:allow-other-keys)
8263 (let ((out (assoc-ref outputs "out"))
8264 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8265 (wrap-program (string-append out "/bin/gnome-tweaks")
8266 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8267 #t)))))
9365ee1c 8268 (native-inputs
4add1bae 8269 `(("intltool" ,intltool)
9365ee1c
JN
8270 ("pkg-config" ,pkg-config)))
8271 (inputs
c7fc414e
RH
8272 `(("gnome-desktop" ,gnome-desktop)
8273 ("gtk+" ,gtk+)
9365ee1c
JN
8274 ("gobject-introspection" ,gobject-introspection)
8275 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 8276 ("libhandy" ,libhandy)
c7fc414e
RH
8277 ("libnotify" ,libnotify)
8278 ("libsoup" ,libsoup)
8279 ("nautilus" ,nautilus)
8280 ("python" ,python)
8281 ("python-pygobject" ,python-pygobject)))
9365ee1c 8282 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8283 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8284 (description
d13f3a03 8285 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8286GNOME 3. This includes things like the fonts used in user interface elements,
8287alternative user interface themes, changes in window management behavior,
8288GNOME Shell appearance and extension, etc.")
8289 (license license:gpl3+)))
813f814a 8290
32ac717c
DT
8291(define-public gnome-shell-extensions
8292 (package
8293 (name "gnome-shell-extensions")
c7305466 8294 (version "3.34.2")
32ac717c
DT
8295 (source (origin
8296 (method url-fetch)
8297 (uri (string-append "mirror://gnome/sources/" name "/"
8298 (version-major+minor version) "/"
8299 name "-" version ".tar.xz"))
8300 (sha256
8301 (base32
c7305466 8302 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 8303 (build-system meson-build-system)
32ac717c 8304 (arguments
100f625b 8305 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8306 (native-inputs
c9ea8873
LP
8307 `(("glib:bin" ,glib "bin")
8308 ("intltool" ,intltool)
32ac717c
DT
8309 ("pkg-config" ,pkg-config)))
8310 (propagated-inputs
c9ea8873 8311 `(("glib" ,glib)))
32ac717c
DT
8312 (synopsis "Extensions for GNOME Shell")
8313 (description "GNOME Shell extensions modify and extend GNOME Shell
8314functionality and behavior.")
8315 (home-page "https://extensions.gnome.org/")
8316 (license license:gpl3+)))
8317
813f814a
DT
8318(define-public arc-theme
8319 (package
8320 (name "arc-theme")
37781323 8321 (version "20190917")
813f814a 8322 (source (origin
a18f8eaf
BH
8323 (method git-fetch)
8324 (uri (git-reference
8325 (url "https://github.com/NicoHood/arc-theme.git")
8326 (commit version)))
8327 (file-name (git-file-name name version))
813f814a
DT
8328 (sha256
8329 (base32
37781323 8330 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8331 (build-system gnu-build-system)
d88884fa
EF
8332 (arguments
8333 '(#:phases
8334 (modify-phases %standard-phases
8335 ;; autogen.sh calls configure at the end of the script.
8336 (replace 'bootstrap
4690e3a4
MC
8337 (lambda _ (invoke "autoreconf" "-vfi")))
8338 (add-before 'build 'set-home ;placate Inkscape
8339 (lambda _
8340 (setenv "HOME" (getcwd))
8341 #t)))))
813f814a
DT
8342 (native-inputs
8343 `(("autoconf" ,autoconf)
8344 ("automake" ,automake)
a18f8eaf
BH
8345 ("glib" ,glib "bin") ; for glib-compile-resources
8346 ("gnome-shell" ,gnome-shell)
8347 ("gtk+" ,gtk+)
8348 ("inkscape" ,inkscape)
8349 ("optipng" ,optipng)
8350 ("pkg-config" ,pkg-config)
bed24ecf 8351 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8352 (synopsis "A flat GTK+ theme with transparent elements")
8353 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
83542, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8355like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8356 (home-page "https://github.com/horst3180/arc-theme")
8357 ;; No "or later" language found.
a18f8eaf 8358 (license license:gpl3+)))
9987c57c 8359
d935e6a1 8360(define-public faba-icon-theme
9987c57c 8361 (package
d935e6a1 8362 (name "faba-icon-theme")
2eee7ee3 8363 (version "4.3")
d935e6a1
BT
8364 (source
8365 (origin
757e4027
TGR
8366 (method git-fetch)
8367 (uri (git-reference
8368 (url "https://github.com/snwh/faba-icon-theme.git")
8369 (commit (string-append "v" version))))
8370 (file-name (git-file-name name version))
d935e6a1 8371 (sha256
757e4027 8372 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8373 (build-system meson-build-system)
9987c57c 8374 (arguments
82da291a 8375 `(#:phases
9987c57c 8376 (modify-phases %standard-phases
82da291a 8377 (add-before 'configure 'disable-post-install
9987c57c 8378 (lambda _
82da291a
JL
8379 (substitute* "meson.build"
8380 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8381 (native-inputs
8382 `(("autoconf" ,autoconf)
8383 ("automake" ,automake)))
d935e6a1
BT
8384 (synopsis "Faba icon theme")
8385 (description
8386 "Faba is a minimal icon set used as a basis for other themes such as
8387Moka")
8388 (home-page "https://snwh.org/moka")
8389 (license (list license:lgpl3+
8390 license:cc-by-sa4.0))))
8391
9987c57c
DT
8392(define-public moka-icon-theme
8393 (package
8b0e4177 8394 (inherit faba-icon-theme)
9987c57c 8395 (name "moka-icon-theme")
105a3625 8396 (version "5.4.0")
8c3f2170
TGR
8397 (source
8398 (origin
8399 (method git-fetch)
8400 (uri (git-reference
8401 (url "https://github.com/snwh/moka-icon-theme.git")
8402 (commit (string-append "v" version))))
8403 (file-name (git-file-name name version))
8404 (sha256
8405 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8406 (propagated-inputs
8407 ;; Moka is based on Faba by using it as a fallback icon set instead of
8408 ;; bundling it, so we need to add it as a propagated input.
8409 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8410 (synopsis "Moka icon theme")
8411 (description "Moka is a stylized desktop icon set, designed to be clear,
8412simple and consistent.")
fedde43b
BT
8413 (license (list license:gpl3+
8414 license:cc-by-sa4.0))))
6fd8f8d6
DT
8415
8416(define-public arc-icon-theme
8417 (package
8418 (name "arc-icon-theme")
c4180240 8419 (version "20161122")
bbf66cbf
TGR
8420 (source
8421 (origin
8422 (method git-fetch)
8423 (uri (git-reference
8424 (url "https://github.com/horst3180/arc-icon-theme.git")
8425 (commit version)))
8426 (file-name (git-file-name name version))
8427 (sha256
8428 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8429 (build-system gnu-build-system)
9e1ede95
JL
8430 (arguments
8431 `(#:phases
8432 (modify-phases %standard-phases
8433 (add-after 'unpack 'disable-configure-during-bootstrap
8434 (lambda _
8435 (substitute* "autogen.sh"
8436 (("^\"\\$srcdir/configure\".*") ""))
8437 #t)))))
6fd8f8d6
DT
8438 (native-inputs
8439 `(("autoconf" ,autoconf)
8440 ("automake" ,automake)))
8441 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8442 (propagated-inputs
8443 `(("moka-icon-theme" ,moka-icon-theme)))
8444 (synopsis "Arc icon theme")
8445 (description "The Arc icon theme provides a set of icons matching the
8446style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8447the Moka icon theme.")
8448 (home-page "https://github.com/horst3180/arc-icon-theme")
8449 (license license:gpl3+)))
6064a4e8
LF
8450
8451(define-public folks
8452 (package
8453 (name "folks")
fd11f6f3 8454 (version "0.13.1")
6064a4e8
LF
8455 (source (origin
8456 (method url-fetch)
8457 (uri (string-append
e5f4796e 8458 "mirror://gnome/sources/folks/"
6064a4e8 8459 (version-major+minor version) "/"
e5f4796e 8460 "folks-" version ".tar.xz"))
6064a4e8
LF
8461 (sha256
8462 (base32
fd11f6f3
KK
8463 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8464 (build-system meson-build-system)
8465 (arguments
8466 '(#:phases
8467 (modify-phases %standard-phases
8468 (add-after 'unpack 'skip-gtk-update-icon-cache
8469 ;; Don't create 'icon-theme.cache'.
8470 (lambda _
8471 (substitute* "meson_post_install.py"
8472 (("gtk-update-icon-cache") "true"))
8473 #t)))))
6064a4e8
LF
8474 (inputs
8475 `(("bdb" ,bdb)
8476 ("dbus-glib" ,dbus-glib)
8477 ("evolution-data-server" ,evolution-data-server)
8478 ("glib" ,glib)
8479 ("libgee" ,libgee)
fd11f6f3 8480 ("readline" ,readline)
6064a4e8
LF
8481 ("telepathy-glib" ,telepathy-glib)))
8482 (native-inputs
fd11f6f3
KK
8483 `(("glib:bin" ,glib "bin")
8484 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
8485 ("intltool" ,intltool)
8486 ("pkg-config" ,pkg-config)
8487 ("vala" ,vala)))
8488 (synopsis "Library to aggregate data about people")
8489 (description "Libfolks is a library that aggregates information about people
8490from multiple sources (e.g., Telepathy connection managers for IM contacts,
8491Evolution Data Server for local contacts, libsocialweb for web service contacts,
8492etc.) to create metacontacts. It's written in Vala, which generates C code when
8493compiled.")
8494 (home-page "https://wiki.gnome.org/Projects/Folks")
8495 (license license:lgpl2.1+)))
01ea778f
LF
8496
8497(define-public gfbgraph
8498 (package
8499 (name "gfbgraph")
8500 (version "0.2.3")
8501 (source (origin
8502 (method url-fetch)
8503 (uri (string-append
237d4cf7 8504 "mirror://gnome/sources/gfbgraph/"
01ea778f 8505 (version-major+minor version) "/"
237d4cf7 8506 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8507 (sha256
8508 (base32
8509 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8510 (build-system glib-or-gtk-build-system)
8511 (arguments
8512 `(#:tests? #f ; Tests appear to require the network.
8513 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8514 #:configure-flags '("--disable-gtk-doc"
8515 "--disable-static"
8516 "--enable-introspection")))
8517 (native-inputs
8518 `(("pkg-config" ,pkg-config)
8519 ("gobject-introspection" ,gobject-introspection)))
8520 (inputs
8521 `(("json-glib" ,json-glib)
14c297fd 8522 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8523 ("rest" ,rest)))
8524 (synopsis "GLib/GObject wrapper for the Facebook API")
8525 (description "This library allows you to use the Facebook API from
8526GLib/GObject code.")
8527 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8528 (license license:lgpl2.1+)))
3920868c 8529
8530(define-public libgnomekbd
8531 (package
8532 (name "libgnomekbd")
70f2b0f9 8533 (version "3.26.1")
3920868c 8534 (source (origin
8535 (method url-fetch)
d47fa82d 8536 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8537 (version-major+minor version) "/"
d47fa82d 8538 "libgnomekbd-" version ".tar.xz"))
3920868c 8539 (sha256
8540 (base32
70f2b0f9 8541 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8542 (build-system gnu-build-system)
8543 (native-inputs
8544 `(("pkg-config" ,pkg-config)
8545 ("glib" ,glib "bin")
8546 ("intltool" ,intltool)))
8547 (propagated-inputs
8548 ;; Referred to in .h files and .pc.
8549 `(("glib" ,glib)
8550 ("gtk+" ,gtk+)
8551 ("libxklavier" ,libxklavier)))
8552 (home-page "https://www.gnome.org")
8553 (synopsis "GNOME keyboard configuration library")
8554 (description
8555 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8556environment, which can notably display keyboard layouts.")
8557 (license license:lgpl2.0+)))
85327d0d 8558
8559;;; This package is no longer maintained:
8560;;; https://wiki.gnome.org/Attic/LibUnique
8561;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8562;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8563(define-public libunique
8564 (package
8565 (name "libunique")
8566 (version "3.0.2")
8567 (source (origin
8568 (method url-fetch)
8569 (uri (string-append "mirror://gnome/sources/" name "/"
8570 (version-major+minor version) "/"
8571 name "-" version ".tar.xz"))
8572 (sha256
8573 (base32
8574 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8575 (build-system glib-or-gtk-build-system)
8576 (arguments
8577 `(#:configure-flags '("--disable-static"
8578 "--disable-dbus" ; use gdbus
8579 "--enable-introspection")))
8580 (native-inputs
8581 `(("pkg-config" ,pkg-config)
8582 ("gobject-introspection" ,gobject-introspection)
8583 ("glib:bin" ,glib "bin")
8584 ("gtk-doc" ,gtk-doc)))
8585 (propagated-inputs
8586 ;; Referred to in .h files and .pc.
8587 `(("gtk+" ,gtk+)))
8588 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8589 (synopsis "Library for writing single instance applications")
8590 (description
8591 "Libunique is a library for writing single instance applications. If you
8592launch a single instance application twice, the second instance will either just
8593quit or will send a message to the running instance. Libunique makes it easy to
8594write this kind of application, by providing a base class, taking care of all
8595the IPC machinery needed to send messages to a running instance, and also
8596handling the startup notification side.")
8597 (license license:lgpl2.1+)))
54021cd8
RS
8598
8599(define-public gnome-calculator
8600 (package
8601 (name "gnome-calculator")
4cb09502 8602 (version "3.34.1")
54021cd8
RS
8603 (source
8604 (origin
8605 (method url-fetch)
8606 (uri (string-append "mirror://gnome/sources/" name "/"
8607 (version-major+minor version) "/"
8608 name "-" version ".tar.xz"))
8609 (sha256
8610 (base32
4cb09502 8611 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8612 (build-system meson-build-system)
8613 (arguments '(#:glib-or-gtk? #t))
54021cd8 8614 (native-inputs
4cb09502
MB
8615 `(("gettext" ,gettext-minimal)
8616 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8617 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8618 ("itstool" ,itstool)
2d475910 8619 ("vala" ,vala)
54021cd8
RS
8620 ("pkg-config" ,pkg-config)))
8621 (inputs
112e9083 8622 `(("glib" ,glib)
07ace641 8623 ("gtksourceview" ,gtksourceview)
4cb09502 8624 ("libgee" ,libgee)
54021cd8 8625 ("libsoup" ,libsoup)
112e9083 8626 ("libxml2" ,libxml2)
2c2da7ec 8627 ("mpc" ,mpc)
54021cd8
RS
8628 ("mpfr" ,mpfr)))
8629 (home-page "https://wiki.gnome.org/Apps/Calculator")
8630 (synopsis "Desktop calculator")
8631 (description
8632 "Calculator is an application that solves mathematical equations and
8633is suitable as a default application in a Desktop environment.")
8634 (license license:gpl3)))
0bd69759
RS
8635
8636(define-public xpad
8637 (package
8638 (name "xpad")
c85626bb 8639 (version "5.1.0")
0bd69759
RS
8640 (source
8641 (origin
8642 (method url-fetch)
08fda9c6
R
8643 (uri (string-append "https://launchpad.net/xpad/trunk/"
8644 version "/+download/"
0bd69759
RS
8645 name "-" version ".tar.bz2"))
8646 (sha256
8647 (base32
c85626bb 8648 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8649 (build-system gnu-build-system)
8650 (native-inputs
08fda9c6
R
8651 `(("autoconf" ,autoconf)
8652 ("automake" ,automake)
8653 ("gtk+:bin" ,gtk+ "bin")
8654 ("intltool" ,intltool)
0bd69759
RS
8655 ("pkg-config" ,pkg-config)))
8656 (inputs
c72647fb 8657 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8658 ("libsm" ,libsm)))
8659 (home-page "https://wiki.gnome.org/Apps/Xpad")
8660 (synopsis "Virtual sticky note")
8661 (description
8662 "Xpad is a sticky note that strives to be simple, fault tolerant,
8663and customizable. Xpad consists of independent pad windows, each is
8664basically a text box in which notes can be written.")
8665 (license license:gpl3+)))
3ad7dce1
RS
8666
8667(define-public gucharmap
c60063ea
RW
8668 (let ((unicode-files
8669 '(("Blocks.txt"
1f8b5515 8670 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8671 ("DerivedAge.txt"
1f8b5515 8672 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8673 ("NamesList.txt"
1f8b5515 8674 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8675 ("Scripts.txt"
1f8b5515 8676 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8677 ("UnicodeData.txt"
1f8b5515 8678 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8679 ("Unihan.zip"
1f8b5515 8680 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8681 (package
8682 (name "gucharmap")
1f8b5515 8683 (version "12.0.1")
c60063ea
RW
8684 (source
8685 (origin
8686 (method url-fetch)
8687 (uri (string-append "mirror://gnome/sources/" name "/"
8688 (version-major+minor version) "/"
8689 name "-" version ".tar.xz"))
8690 (sha256
8691 (base32
1f8b5515 8692 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8693 (build-system glib-or-gtk-build-system)
8694 (arguments
8695 `(#:modules ((ice-9 match)
8696 (guix build glib-or-gtk-build-system)
8697 (guix build utils))
8698 #:configure-flags
8699 (list "--with-unicode-data=../unicode-data")
8700 #:phases
8701 (modify-phases %standard-phases
8702 (add-after 'unpack 'prepare-unicode-data
8703 (lambda* (#:key inputs #:allow-other-keys)
8704 (mkdir-p "../unicode-data")
8705 (with-directory-excursion "../unicode-data"
8706 (for-each (match-lambda
8707 ((file _)
8708 (install-file (assoc-ref inputs file) ".")))
8709 ',unicode-files))
8710 #t)))))
8711 (native-inputs
8712 `(("desktop-file-utils" ,desktop-file-utils)
8713 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8714 ("gobject-introspection" ,gobject-introspection)
8715 ("intltool" ,intltool)
8716 ("itstool" ,itstool)
8717 ("pkg-config" ,pkg-config)
8718 ,@(map (match-lambda
8719 ((file hash)
8720 `(,file
8721 ,(origin
8722 (method url-fetch)
8723 (uri (string-append
1f8b5515 8724 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8725 file))
8726 (sha256 (base32 hash))))))
8727 unicode-files)
8728 ("unzip" ,unzip)))
8729 (inputs
8730 `(("gtk+" ,gtk+)
8731 ("xmllint" ,libxml2)))
8732 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8733 (synopsis "Unicode character picker and font browser")
8734 (description
8735 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8736characters and categories for the installed fonts, and to examine their
8737detailed properties. It is an easy way to find the character you might
8738only know by its Unicode name or code point.")
c60063ea 8739 (license license:gpl3+))))
04ce840a
RS
8740
8741(define-public bluefish
8742 (package
8743 (name "bluefish")
290fe81d 8744 (version "2.2.11")
04ce840a
RS
8745 (source
8746 (origin
8747 (method url-fetch)
8748 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8749 "bluefish-" version ".tar.gz"))
04ce840a 8750 (sha256
290fe81d 8751 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8752 (build-system gnu-build-system)
8753 (native-inputs
8754 `(("desktop-file-utils" ,desktop-file-utils)
8755 ("intltool" ,intltool)
8756 ("pkg-config" ,pkg-config)))
8757 (inputs
8758 `(("enchant" ,enchant)
8759 ("gtk+" ,gtk+)
290fe81d 8760 ("python" ,python-wrapper)
04ce840a
RS
8761 ("xmllint" ,libxml2)
8762 ("gucharmap" ,gucharmap)))
8763 (home-page "http://bluefish.openoffice.nl")
8764 (synopsis "Web development studio")
8765 (description
8766 "Bluefish is an editor targeted towards programmers and web developers,
8767with many options to write web sites, scripts and other code.
8768Bluefish supports many programming and markup languages.")
8769 (license license:gpl3+)))
1f6a73ee
RS
8770
8771(define-public gnome-system-monitor
8772 (package
8773 (name "gnome-system-monitor")
083cffaf 8774 (version "3.32.1")
1f6a73ee
RS
8775 (source
8776 (origin
8777 (method url-fetch)
8778 (uri (string-append "mirror://gnome/sources/" name "/"
8779 (version-major+minor version) "/"
8780 name "-" version ".tar.xz"))
8781 (sha256
8782 (base32
083cffaf 8783 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8784 (build-system meson-build-system)
8785 (arguments
8786 '(#:glib-or-gtk? #t
8787 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8788 (native-inputs
8789 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8790 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8791 ("intltool" ,intltool)
8792 ("itstool" ,itstool)
8793 ("libgtop" ,libgtop)
4985d9aa 8794 ("polkit" ,polkit)
1f6a73ee
RS
8795 ("pkg-config" ,pkg-config)))
8796 (inputs
8797 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8798 ("gtk+" ,gtk+)
8799 ("gtkmm" ,gtkmm)
8800 ("librsvg" ,librsvg)
4985d9aa
RW
8801 ("libxml2" ,libxml2)
8802 ("libwnck" ,libwnck)))
1f6a73ee
RS
8803 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8804 (synopsis "Process viewer and system resource monitor for GNOME")
8805 (description
8806 "GNOME System Monitor is a GNOME process viewer and system monitor with
8807an attractive, easy-to-use interface. It has features, such as a tree view
8808for process dependencies, icons for processes, the ability to hide processes,
8809graphical time histories of CPU/memory/swap usage and the ability to
8810kill/reinice processes.")
8811 (license license:gpl2+)))
3e00ac47
SB
8812
8813(define-public python-pyatspi
8814 (package
8815 (name "python-pyatspi")
4f937a32 8816 (version "2.34.0")
3e00ac47
SB
8817 (source (origin
8818 (method url-fetch)
8819 (uri (string-append
8820 "mirror://gnome/sources/pyatspi/"
8821 (version-major+minor version)
8822 "/pyatspi-" version ".tar.xz"))
8823 (sha256
8824 (base32
4f937a32 8825 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8826 (build-system gnu-build-system)
b95af3f6
JL
8827 (arguments
8828 `(#:phases
8829 (modify-phases %standard-phases
8830 (add-before 'build 'fix-atk-load
8831 (lambda _
8832 (substitute* "pyatspi/__init__.py"
8833 (("from gi.repository import Atspi")
8834 "gi.require_version('Gtk', '3.0')
8835from gi.repository import Gtk
8836from gi.repository import Atspi"))
8837 #t)))))
3e00ac47
SB
8838 (native-inputs
8839 `(("pkg-config" ,pkg-config)))
8840 (inputs
8841 `(("python" ,python)
8842 ("python-pygobject" ,python-pygobject)))
8843 (synopsis "Python client bindings for D-Bus AT-SPI")
8844 (home-page "https://wiki.linuxfoundation.org/accessibility\
8845/atk/at-spi/at-spi_on_d-bus")
8846 (description
8847 "This package includes a python client library for the AT-SPI D-Bus
8848accessibility infrastructure.")
8849 (license license:lgpl2.0)
8850 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8851
8852(define-public orca
8853 (package
8854 (name "orca")
30e76da1 8855 (version "3.34.1")
53201c0d
SB
8856 (source (origin
8857 (method url-fetch)
8858 (uri (string-append
8859 "mirror://gnome/sources/" name "/"
8860 (version-major+minor version) "/"
8861 name "-" version ".tar.xz"))
8862 (sha256
8863 (base32
30e76da1 8864 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
8865 (build-system glib-or-gtk-build-system)
8866 (arguments
8867 '(#:phases
8868 (modify-phases %standard-phases
8869 (add-before 'configure 'qualify-xkbcomp
8870 (lambda* (#:key inputs #:allow-other-keys)
8871 (let ((xkbcomp (string-append
8872 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8873 (substitute* "src/orca/orca.py"
8874 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8875 #t))
8876 (add-after 'install 'wrap-orca
8877 (lambda* (#:key outputs #:allow-other-keys)
8878 (let* ((out (assoc-ref outputs "out"))
8879 (prog (string-append out "/bin/orca")))
8880 (wrap-program prog
8881 `("GI_TYPELIB_PATH" ":" prefix
8882 (,(getenv "GI_TYPELIB_PATH")))
8883 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8884 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8885 `("PYTHONPATH" ":" prefix
8886 (,(getenv "PYTHONPATH")))))
8887 #t)))))
8888 (native-inputs
8889 `(("intltool" ,intltool)
8890 ("itstool" ,itstool)
8891 ("pkg-config" ,pkg-config)
8892 ("xmllint" ,libxml2)))
8893 (inputs
8894 `(("at-spi2-atk" ,at-spi2-atk)
8895 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8896 ("gstreamer" ,gstreamer)
8897 ("gst-plugins-base" ,gst-plugins-base)
8898 ("gst-plugins-good" ,gst-plugins-good)
8899 ("gtk+" ,gtk+)
8900 ("python" ,python)
8901 ("python-pygobject" ,python-pygobject)
8902 ("python-pyatspi" ,python-pyatspi)
8903 ("python-speechd" ,speech-dispatcher)
8904 ("xkbcomp" ,xkbcomp)))
8905 (synopsis
8906 "Screen reader for individuals who are blind or visually impaired")
8907 (home-page "https://wiki.gnome.org/Projects/Orca")
8908 (description
8909 "Orca is a screen reader that provides access to the graphical desktop
8910via speech and refreshable braille. Orca works with applications and toolkits
8911that support the Assistive Technology Service Provider Interface (AT-SPI).")
8912 (license license:lgpl2.1+)))
411ba511
LC
8913
8914(define-public gspell
8915 (package
8916 (name "gspell")
7a6bbe9b 8917 (version "1.8.2")
411ba511
LC
8918 (source (origin
8919 (method url-fetch)
8920 (uri (string-append "mirror://gnome/sources/" name "/"
8921 (version-major+minor version) "/"
8922 name "-" version ".tar.xz"))
8923 (sha256
8924 (base32
7a6bbe9b 8925 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8926 (patches (search-patches "gspell-dash-test.patch"))))
8927 (build-system glib-or-gtk-build-system)
8928 (arguments
d0f50164 8929 '(#:configure-flags (list "--enable-vala")
8930 #:phases
411ba511
LC
8931 (modify-phases %standard-phases
8932 (add-before 'check 'pre-check
8933 (lambda* (#:key inputs #:allow-other-keys)
8934 ;; Tests require a running X server.
8935 (system "Xvfb :1 &")
8936 (setenv "DISPLAY" ":1")
8937
8938 ;; For the missing /etc/machine-id.
8939 (setenv "DBUS_FATAL_WARNINGS" "0")
8940
8941 ;; Allow Enchant and its Aspell backend to find the en_US
8942 ;; dictionary.
8943 (setenv "ASPELL_DICT_DIR"
8944 (string-append (assoc-ref inputs "aspell-dict-en")
8945 "/lib/aspell"))
8946 #t)))))
8947 (inputs
eccd35be 8948 `(("gtk+" ,gtk+)
a801ae4c
TGR
8949 ("glib" ,glib)
8950 ("iso-codes" ,iso-codes)))
411ba511
LC
8951 (native-inputs
8952 `(("glib" ,glib "bin")
26ba3f07 8953 ("gobject-introspection" ,gobject-introspection)
411ba511 8954 ("pkg-config" ,pkg-config)
d0f50164 8955 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
8956 ("xmllint" ,libxml2)
8957
8958 ;; For tests.
a801ae4c 8959 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8960 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8961 (propagated-inputs
9b1bb757 8962 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8963 (home-page "https://wiki.gnome.org/Projects/gspell")
8964 (synopsis "GNOME's alternative spell checker")
8965 (description
8966 "gspell provides a flexible API to add spell-checking to a GTK+
8967application. It provides a GObject API, spell-checking to text entries and
8968text views, and buttons to choose the language.")
8969 (license license:gpl2+)))
d1d739fa
CM
8970
8971(define-public gnome-planner
8972 (package
8973 (name "gnome-planner")
8974 (version "0.14.6")
8975 (source (origin
8976 (method url-fetch)
8977 (uri (string-append "mirror://gnome/sources/planner/"
8978 (version-major+minor version) "/planner-"
8979 version ".tar.xz"))
8980 (sha256
8981 (base32
8982 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8983 (build-system glib-or-gtk-build-system)
8984 (arguments
8985 ;; Disable the Python bindings because the Planner program functions
8986 ;; without them, and (as of 2017-06-13) we have not packaged all of
8987 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8988 `(#:configure-flags
8989 (list "--disable-python"
8990 ,@(if (string=? "aarch64-linux" (%current-system))
8991 '("--build=aarch64-unknown-linux-gnu")
8992 '()))))
d1d739fa
CM
8993 (inputs
8994 `(("libgnomecanvas" ,libgnomecanvas)
8995 ("libgnomeui" ,libgnomeui)
8996 ("libglade" ,libglade)
8997 ("gnome-vfs" ,gnome-vfs)
8998 ("gconf" ,gconf)
8999 ("libxml2" ,libxml2)
9000 ("libxslt" ,libxslt)
9001 ("gtk+" ,gtk+)
9002 ("glib" ,glib)))
9003 (native-inputs
9004 `(("intltool" ,intltool)
9005 ("scrollkeeper" ,scrollkeeper)
9006 ("pkg-config" ,pkg-config)))
9007 (home-page "https://wiki.gnome.org/Apps/Planner")
9008 (synopsis "Project management software for the GNOME desktop")
9009 (description
9010 "GNOME Planner is a project management tool based on the Work Breakdown
9011Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9012the resources, tasks, and constraints that you define, Planner generates
9013various views into a project. For example, Planner can show a Gantt chart of
9014the project. It can show a detailed summary of tasks including their
9015duration, cost, and current progress. It can also show a report of resource
9016utilization that highlights under-utilized and over-utilized resources. These
9017views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9018 (license license:gpl2+)))
64fce637
RS
9019
9020(define-public lollypop
9021 (package
9022 (name "lollypop")
24b5d8f7 9023 (version "1.2.32")
64fce637
RS
9024 (source
9025 (origin
9026 (method url-fetch)
24b5d8f7 9027 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9028 "lollypop-" version ".tar.xz"))
64fce637 9029 (sha256
24b5d8f7 9030 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9031 (build-system meson-build-system)
64fce637 9032 (arguments
7a9543d7
TGR
9033 `(#:imported-modules
9034 (,@%meson-build-system-modules
9035 (guix build python-build-system))
9036 #:modules
9037 ((guix build meson-build-system)
9038 ((guix build python-build-system) #:prefix python:)
9039 (guix build utils))
aa498fc0 9040 #:glib-or-gtk? #t
7a9543d7 9041 #:tests? #f ; no test suite
5fc9b6c1
EF
9042 #:phases
9043 (modify-phases %standard-phases
5fc9b6c1
EF
9044 (add-after 'install 'wrap-program
9045 (lambda* (#:key outputs #:allow-other-keys)
9046 (let ((out (assoc-ref outputs "out"))
9047 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9048 (wrap-program (string-append out "/bin/lollypop")
9049 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9050 #t))
8ac8b3b3 9051 (add-after 'install 'wrap-python
7a9543d7 9052 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9053 (native-inputs
9054 `(("intltool" ,intltool)
9055 ("itstool" ,itstool)
aa498fc0
TD
9056 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9057 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9058 ("pkg-config" ,pkg-config)))
9059 (inputs
9060 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9061 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9062 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9063 ("libnotify" ,libnotify)
9064 ("libsecret" ,libsecret)
9065 ("libsoup" ,libsoup)
9066 ("python" ,python)
9067 ("python-beautifulsoup4" ,python-beautifulsoup4)
9068 ("python-gst" ,python-gst)
d029afdd 9069 ("python-pil" ,python-pillow)
64fce637 9070 ("python-pycairo" ,python-pycairo)
cc9c83c5 9071 ("python-pygobject" ,python-pygobject)
64fce637
RS
9072 ("python-pylast" ,python-pylast)
9073 ("totem-pl-parser" ,totem-pl-parser)
9074 ("webkitgtk" ,webkitgtk)))
9075 (propagated-inputs
9076 `(;; gst-plugins-base is required to start Lollypop,
9077 ;; the others are required to play streaming.
64fce637
RS
9078 ("gst-plugins-good" ,gst-plugins-good)
9079 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9080 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9081 (synopsis "GNOME music playing application")
9082 (description
9083 "Lollypop is a music player designed to play well with GNOME desktop.
9084Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9085from artists and tracks from the web. It also fetches cover artworks
9086automatically and it can stream songs from online music services and charts.")
9087 (license license:gpl3+)))
d831d49d
AW
9088
9089(define-public gnome-video-effects
9090 (package
9091 (name "gnome-video-effects")
9092 (version "0.4.3")
9093 (source (origin
9094 (method url-fetch)
9095 (uri (string-append "mirror://gnome/sources/" name "/"
9096 (version-major+minor version) "/" name "-"
9097 version ".tar.xz"))
9098 (sha256
9099 (base32
9100 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9101 (build-system glib-or-gtk-build-system)
9102 (arguments
9103 `(#:out-of-source? #f))
9104 (native-inputs
9105 `(("glib:bin" ,glib "bin")
9106 ("intltool" ,intltool)
9107 ("gettext" ,gettext-minimal)
9108 ("pkg-config" ,pkg-config)))
9109 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9110 (synopsis "Video effects for Cheese and other GNOME applications")
9111 (description
9112 "A collection of GStreamer video filters and effects to be used in
9113photo-booth-like software, such as Cheese.")
9114 (license license:gpl2+)))
3511c780
AW
9115
9116(define-public cheese
9117 (package
9118 (name "cheese")
3a7e066f 9119 (version "3.34.0")
3511c780
AW
9120 (source (origin
9121 (method url-fetch)
9122 (uri (string-append "mirror://gnome/sources/" name "/"
9123 (version-major+minor version) "/" name "-"
9124 version ".tar.xz"))
9125 (sha256
9126 (base32
3a7e066f 9127 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9128 (arguments
3a7e066f
KK
9129 `(#:glib-or-gtk? #t
9130 ;; Tests require GDK.
9131 #:tests? #f
3511c780
AW
9132 #:phases
9133 (modify-phases %standard-phases
3a7e066f 9134 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9135 (lambda _
9136 ;; Don't create 'icon-theme.cache'
3a7e066f 9137 (substitute* "meson_post_install.py"
3511c780
AW
9138 (("gtk-update-icon-cache") (which "true")))
9139 #t))
9140 (add-after 'install 'wrap-cheese
9141 (lambda* (#:key inputs outputs #:allow-other-keys)
9142 (let ((out (assoc-ref outputs "out"))
9143 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9144 (wrap-program (string-append out "/bin/cheese")
9145 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9146 #t)))))
3a7e066f 9147 (build-system meson-build-system)
3511c780 9148 (native-inputs
3a7e066f
KK
9149 `(("docbook-xsl" ,docbook-xsl)
9150 ("glib:bin" ,glib "bin")
9151 ("gtk-doc" ,gtk-doc)
3511c780
AW
9152 ("intltool" ,intltool)
9153 ("itstool" ,itstool)
9154 ("libxml2" ,libxml2)
3a7e066f 9155 ("libxslt" ,libxslt)
3511c780
AW
9156 ("pkg-config" ,pkg-config)
9157 ("vala" ,vala)))
9158 (propagated-inputs
6a19f03e
RW
9159 `(("gnome-video-effects" ,gnome-video-effects)
9160 ("clutter" ,clutter)
3511c780
AW
9161 ("clutter-gst" ,clutter-gst)
9162 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9163 ("libcanberra" ,libcanberra)
3511c780
AW
9164 ("gdk-pixbuf" ,gdk-pixbuf)
9165 ("glib" ,glib)
6a19f03e
RW
9166 ("gstreamer" ,gstreamer)))
9167 (inputs
9168 `(("gnome-desktop" ,gnome-desktop)
3511c780 9169 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9170 ("gst-plugins-base" ,gst-plugins-base)
9171 ("gst-plugins-bad" ,gst-plugins-bad)
9172 ("gtk+" ,gtk+)
3511c780
AW
9173 ("libx11" ,libx11)
9174 ("libxtst" ,libxtst)))
9175 (home-page "https://wiki.gnome.org/Apps/Cheese")
9176 (synopsis "Webcam photo booth software for GNOME")
9177 (description
9178 "Cheese uses your webcam to take photos and videos. Cheese can also
9179apply fancy special effects and lets you share the fun with others.")
9180 (license license:gpl2+)))
3c5dbd2b 9181
9182(define-public sound-juicer
9183 (package
9184 (name "sound-juicer")
9185 (version "3.24.0")
9186 (source
9187 (origin
9188 (method url-fetch)
9189 (uri (string-append "mirror://gnome/sources/" name "/"
9190 (version-major+minor version) "/"
9191 name "-" version ".tar.xz"))
9192 (sha256
9193 (base32
9194 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9195 (build-system glib-or-gtk-build-system)
9196 (native-inputs
9197 `(("desktop-file-utils" ,desktop-file-utils)
9198 ("intltool" ,intltool)
9199 ("itstool" ,itstool)
9200 ("pkg-config" ,pkg-config)
9201 ("xmllint" ,libxml2)))
9202 (inputs
9203 `(("gtk+" ,gtk+)
9204 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9205 ("gstreamer" ,gstreamer)
9206 ("gst-plugins-base" ,gst-plugins-base)
9207 ("gst-plugins-good" ,gst-plugins-good)
9208 ("iso-codes" ,iso-codes)
9209 ("libbrasero-media3" ,brasero)
9210 ("libcanberra" ,libcanberra)
9211 ("libdiscid" ,libdiscid)
9212 ("libmusicbrainz" ,libmusicbrainz)
9213 ("neon" ,neon)))
9214 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9215 (synopsis "Audio music cd ripper")
9216 (description "Sound Juicer extracts audio from compact discs and convert it
9217into audio files that a personal computer or digital audio player can play.
9218It supports ripping to any audio codec supported by a GStreamer plugin, such as
9219mp3, Ogg Vorbis and FLAC")
9220 (license license:gpl2+)))
4e3fdeb7 9221
0d3f1708
CB
9222(define-public soundconverter
9223 (package
9224 (name "soundconverter")
7f4b45a3 9225 (version "3.0.2")
0d3f1708
CB
9226 (source
9227 (origin
9228 (method url-fetch)
9229 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9230 version "/+download/"
9231 "soundconverter-" version ".tar.xz"))
9232
9233 (sha256
7f4b45a3 9234 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
9235 (build-system glib-or-gtk-build-system)
9236 (arguments
9237 `(#:imported-modules ((guix build python-build-system)
9238 (guix build glib-or-gtk-build-system)
9239 ,@%gnu-build-system-modules)
9240
9241 #:modules ((guix build glib-or-gtk-build-system)
9242 (guix build utils)
9243 ((guix build gnu-build-system) #:prefix gnu:)
9244 ((guix build python-build-system) #:prefix python:))
9245
9246 #:phases
9247 (modify-phases %standard-phases
0d3f1708
CB
9248 (add-after 'install 'wrap-soundconverter-for-python
9249 (assoc-ref python:%standard-phases 'wrap))
9250 (add-after 'install 'wrap-soundconverter
9251 (lambda* (#:key inputs outputs #:allow-other-keys)
9252 (let ((out (assoc-ref outputs "out"))
9253 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9254 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9255 (wrap-program (string-append out "/bin/soundconverter")
9256 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9257 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9258 #t)))))
9259 (native-inputs
9260 `(("intltool" ,intltool)
9261 ("pkg-config" ,pkg-config)
9262 ("glib:bin" ,glib "bin")))
9263 (inputs
9264 `(("gtk+" ,gtk+)
9265 ("python" ,python)
9266 ("python-pygobject" ,python-pygobject)
9267 ("gstreamer" ,gstreamer)
9268 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9269 (home-page "https://soundconverter.org/")
0d3f1708
CB
9270 (synopsis "Convert between audio formats with a graphical interface")
9271 (description
9272 "SoundConverter supports converting between many audio formats including
9273Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9274configurable file renaming. ")
9275 (license license:gpl3)))
9276
4e3fdeb7 9277(define-public workrave
89f2d736
TGR
9278 (package
9279 (name "workrave")
52fc6508 9280 (version "1.10.42")
89f2d736
TGR
9281 (source
9282 (origin
9283 (method git-fetch)
9284 (uri (git-reference
9285 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
9286 (commit (string-append "v" (string-map
9287 (match-lambda (#\. #\_) (chr chr))
9288 version)))))
89f2d736
TGR
9289 (file-name (git-file-name name version))
9290 (sha256
52fc6508 9291 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9292 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9293 (arguments
9294 ;; The only tests are maintainer tests (in po/), which fail.
9295 `(#:tests? #f))
d1c96847
MC
9296 (inputs `(("glib" ,glib)
9297 ("gtk+" ,gtk+)
9298 ("gdk-pixbuf" ,gdk-pixbuf)
9299 ("gtkmm" ,gtkmm)
9300 ("glibmm" ,glibmm)
9301 ("libx11" ,libx11)
9302 ("libxtst" ,libxtst)
9303 ("dconf" ,dconf)
9304 ("libice" ,libice)
9305 ("libsm" ,libsm)
9306 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9307 (native-inputs `(("boost" ,boost)
89f2d736 9308 ("pkg-config" ,pkg-config)
f2d97d57 9309 ("gettext" ,gettext-minimal)
89f2d736
TGR
9310 ("autoconf" ,autoconf)
9311 ("autoconf-archive" , autoconf-archive)
9312 ("automake" ,automake)
9313 ("libtool" ,libtool)
9314 ("intltool" ,intltool)
89f2d736 9315 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9316 ("python3" ,python-3)
9317 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9318 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9319 (description
9320 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9321repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9322micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9323 (home-page "http://www.workrave.org")
9324 (license license:gpl3+)))
312afa7d
LC
9325
9326(define-public ghex
9327 (package
9328 (name "ghex")
3748992a 9329 (version "3.18.4")
312afa7d
LC
9330 (source (origin
9331 (method url-fetch)
2fbab848 9332 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9333 (version-major+minor version) "/"
2fbab848 9334 "ghex-" version ".tar.xz"))
312afa7d
LC
9335 (sha256
9336 (base32
3748992a
KK
9337 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9338 (build-system meson-build-system)
9339 (arguments
9340 '(#:glib-or-gtk? #t
9341 #:phases
9342 (modify-phases %standard-phases
9343 (add-after 'unpack 'skip-gtk-update-icon-cache
9344 ;; Don't create 'icon-theme.cache'.
9345 (lambda _
9346 (substitute* "meson_post_install.py"
9347 (("gtk-update-icon-cache") (which "true")))
9348 #t)))))
312afa7d
LC
9349 (native-inputs
9350 `(("pkg-config" ,pkg-config)
3748992a 9351 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9352 ("gnome-common" ,gnome-common)
9353 ("which" ,which)
9354 ("intltool" ,intltool)
9355 ("yelp-tools" ,yelp-tools)
2fbab848 9356 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9357 (inputs
9358 `(("atk" ,atk)
9359 ("gtk" ,gtk+)))
9360 (synopsis "GNOME hexadecimal editor")
9361 (description "The GHex program can view and edit files in two ways:
9362hexadecimal or ASCII. It is useful for editing binary files in general.")
9363 (home-page "https://wiki.gnome.org/Apps/Ghex")
9364 (license license:gpl2)))
4b2ed6c2
RW
9365
9366(define-public libdazzle
9367 (package
9368 (name "libdazzle")
c94db354 9369 (version "3.34.1")
4b2ed6c2
RW
9370 (source (origin
9371 (method url-fetch)
687b4909 9372 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9373 (version-major+minor version) "/"
687b4909 9374 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9375 (sha256
9376 (base32
c94db354 9377 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
9378 (build-system meson-build-system)
9379 (arguments
9380 `(#:phases
9381 (modify-phases %standard-phases
4b2ed6c2
RW
9382 (add-before 'check 'pre-check
9383 (lambda _
9384 ;; Tests require a running X server.
9385 (system "Xvfb :1 &")
9386 (setenv "DISPLAY" ":1")
9387 #t)))))
9388 (native-inputs
687b4909 9389 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9390 ("pkg-config" ,pkg-config)
687b4909 9391 ;; For tests.
ff337525 9392 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9393 (inputs
9394 `(("glib" ,glib)
9395 ("gobject-introspection" ,gobject-introspection)
9396 ("gtk+" ,gtk+)
9397 ("vala" ,vala)))
9398 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9399 (synopsis "Companion library to GObject and Gtk+")
9400 (description "The libdazzle library is a companion library to GObject and
9401Gtk+. It provides various features that the authors wish were in the
9402underlying library but cannot for various reasons. In most cases, they are
9403wildly out of scope for those libraries. In other cases, they are not quite
9404generic enough to work for everyone.")
9405 (license license:gpl3+)))
7d3bb433
RW
9406
9407(define-public evolution
9408 (package
9409 (name "evolution")
0662fe86 9410 (version "3.34.2")
7d3bb433
RW
9411 (source (origin
9412 (method url-fetch)
9413 (uri (string-append "mirror://gnome/sources/evolution/"
9414 (version-major+minor version) "/"
9415 "evolution-" version ".tar.xz"))
9416 (sha256
9417 (base32
0662fe86 9418 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
9419 (build-system cmake-build-system)
9420 (arguments
5229bea1
KK
9421 `(#:imported-modules (,@%cmake-build-system-modules
9422 (guix build glib-or-gtk-build-system))
9423 #:modules ((guix build cmake-build-system)
9424 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9425 (guix build utils))
9426 #:configure-flags
7d3bb433 9427 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9428 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9429 ; in four years and cannot be built.
5229bea1
KK
9430 #:phases
9431 (modify-phases %standard-phases
9432 ;; The build system attempts to install user interface modules to the
9433 ;; output directory of the "evolution-data-server" package. This
9434 ;; change redirects that change.
9435 (add-after 'unpack 'patch-ui-module-dir
9436 (lambda* (#:key outputs #:allow-other-keys)
9437 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9438 (("\\$\\{edsuimoduledir\\}")
9439 (string-append (assoc-ref outputs "out")
9440 "/lib/evolution-data-server/ui-modules")))
9441 #t))
9442 (add-after 'install 'glib-or-gtk-compile-schemas
9443 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9444 (add-after 'install 'glib-or-gtk-wrap
9445 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9446 (native-inputs
ad6e168b 9447 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9448 ("pkg-config" ,pkg-config)
9449 ("intltool" ,intltool)
9450 ("itstool" ,itstool)))
9451 (inputs
9452 `(("enchant" ,enchant)
9453 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9454 ("gcr" ,gcr)
ad6e168b 9455 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9456 ("gnome-autoar" ,gnome-autoar)
9457 ("gnome-desktop" ,gnome-desktop)
0662fe86 9458 ("gspell" ,gspell)
7d3bb433
RW
9459 ("highlight" ,highlight)
9460 ("libcanberra" ,libcanberra)
9461 ("libgweather" ,libgweather)
9462 ("libnotify" ,libnotify)
9463 ("libsoup" ,libsoup)
9464 ("nss" ,nss)
9465 ("openldap" ,openldap)
9466 ("webkitgtk" ,webkitgtk)
9467 ("ytnef" ,ytnef)))
9468 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9469 (synopsis "Manage your email, contacts and schedule")
9470 (description "Evolution is a personal information management application
9471that provides integrated mail, calendaring and address book
9472functionality.")
9473 ;; See COPYING for details.
23dbe621 9474 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9475 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9476 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9477
9478(define-public gthumb
9479 (package
9480 (name "gthumb")
8280676b 9481 (version "3.8.2")
169d63f5
AT
9482 (source (origin
9483 (method url-fetch)
9484 (uri (string-append "mirror://gnome/sources/gthumb/"
9485 (version-major+minor version) "/"
9486 "gthumb-" version ".tar.xz"))
9487 (sha256
9488 (base32
8280676b 9489 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9490 (build-system meson-build-system)
9491 (arguments
9492 `(#:glib-or-gtk? #t
9493 #:configure-flags
9494 ;; Ensure the RUNPATH contains all installed library locations.
9495 (list (string-append "-Dc_link_args=-Wl,-rpath="
9496 (assoc-ref %outputs "out")
9497 "/lib/gthumb/extensions")
9498 (string-append "-Dcpp_link_args=-Wl,-rpath="
9499 (assoc-ref %outputs "out")
9500 "/lib/gthumb/extensions"))))
9501 (native-inputs
9502 `(("pkg-config" ,pkg-config)
9503 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9504 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9505 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9506 ("intltool" ,intltool)
9507 ("itstool" ,itstool)))
9508 (inputs
9509 `(("exiv2" ,exiv2)
9510 ("gtk" ,gtk+)
9511 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9512 ("gstreamer" ,gstreamer)
9513 ("clutter" ,clutter)
9514 ("clutter-gst" ,clutter-gst)
9515 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9516 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9517 ("libtiff" ,libtiff)
9518 ("libraw" ,libraw)))
9519 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9520 (synopsis "GNOME image viewer and browser")
9521 (description "GThumb is an image viewer, browser, organizer, editor and
9522advanced image management tool")
9523 (license license:gpl2+)))
08be02be
AT
9524
9525(define-public terminator
9526 (package
9527 (name "terminator")
9528 (version "1.91")
9529 (source (origin
9530 (method url-fetch)
9531 (uri (string-append "https://launchpad.net/" name "/"
9532 "gtk3/" version "/" "+download/"
9533 name "-" version ".tar.gz"))
9534 (sha256
9535 (base32
9536 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9537 (build-system python-build-system)
9538 (native-inputs
9539 `(("intltool" ,intltool)
9540 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9541 ("gettext" ,gettext-minimal)
9542 ("pkg-config" ,pkg-config)))
9543 (inputs
9544 `(("cairo" ,cairo)
9545 ("gobject-introspection" ,gobject-introspection)
96681d4b 9546 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9547 ("python2-pycairo" ,python2-pycairo)
9548 ("python2-pygobject" ,python2-pygobject)
9549 ("python2-psutil" ,python2-psutil)
9550 ("vte" ,vte)))
9551 (arguments
96681d4b
TGR
9552 `(#:python ,python-2 ; Python 3 isn't supported
9553 #:imported-modules ((guix build glib-or-gtk-build-system)
9554 ,@%python-build-system-modules)
9555 #:modules ((guix build python-build-system)
9556 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9557 (guix build utils))
08be02be
AT
9558 #:phases
9559 (modify-phases %standard-phases
9560 (add-after
9561 'install 'wrap-program
9562 (lambda* (#:key outputs #:allow-other-keys)
9563 (let ((prog (string-append (assoc-ref outputs "out")
9564 "/bin/terminator")))
9565 (wrap-program prog
9566 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9567 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9568 #t)))
9569 (add-after 'wrap-program 'glib-or-gtk-wrap
9570 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9571 (home-page "https://gnometerminator.blogspot.com/")
9572 (synopsis "Store and run multiple GNOME terminals in one window")
9573 (description
9574 "Terminator allows you to run multiple GNOME terminals in a grid and
9575+tabs, and it supports drag and drop re-ordering of terminals.")
9576 (license license:gpl2)))
213315d4
JF
9577
9578(define-public libhandy
9579 (package
9580 (name "libhandy")
f6501b9f 9581 (version "0.0.12")
213315d4
JF
9582 (source
9583 (origin
9584 (method git-fetch)
9585 (uri (git-reference
9586 (url "https://source.puri.sm/Librem5/libhandy")
9587 (commit (string-append "v" version))))
9588 (file-name (git-file-name name version))
9589 (sha256
f6501b9f 9590 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9591 (build-system meson-build-system)
9592 (arguments
9593 `(#:configure-flags
9594 '("-Dglade_catalog=disabled"
9595 "-Dgtk_doc=true")
9596 #:phases
9597 (modify-phases %standard-phases
213315d4
JF
9598 (add-before 'check 'pre-check
9599 (lambda _
9600 ;; Tests require a running X server.
9601 (system "Xvfb :1 &")
9602 (setenv "DISPLAY" ":1")
9603 #t)))))
9604 (inputs
9605 `(("gtk+" ,gtk+)))
9606 (native-inputs
9607 `(("glib:bin" ,glib "bin")
9608 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9609 ("vala" ,vala)
9610 ("gtk-doc" ,gtk-doc)
9611 ("pkg-config" ,pkg-config)
9612 ("gettext" ,gettext-minimal)
d41ee146
TGR
9613
9614 ;; Test suite dependencies.
ff337525 9615 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9616 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9617 (home-page "https://source.puri.sm/Librem5/libhandy")
9618 (synopsis "Library full of GTK+ widgets for mobile phones")
9619 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9620interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9621for usage on small and big screens.")
213315d4 9622 (license license:lgpl2.1+)))
a830d14d
GL
9623
9624(define-public libgit2-glib
9625 (package
9626 (name "libgit2-glib")
6448c2e1 9627 (version "0.99.0.1")
a830d14d
GL
9628 (source (origin
9629 (method url-fetch)
9630 (uri (string-append "mirror://gnome/sources/" name "/"
9631 (version-major+minor version) "/"
9632 name "-" version ".tar.xz"))
9633 (sha256
9634 (base32
6448c2e1 9635 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9636 (build-system meson-build-system)
9637 (native-inputs
9638 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9639 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9640 ("pkg-config" ,pkg-config)
9641 ("python-pygobject" ,python-pygobject)
9642 ("python-wrapper" ,python-wrapper)
9643 ("vala" ,vala)))
9644 (inputs
9645 `(("glib" ,glib)
8c6aae46
MB
9646 ("libssh2" ,libssh2)))
9647 (propagated-inputs
9648 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9649 ("libgit2" ,libgit2)))
9650 (synopsis "GLib wrapper around the libgit2 Git access library")
9651 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9652access library. It only implements the core plumbing functions, not really the
9653higher level porcelain stuff.")
9654 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9655 (license license:gpl2+)))
93beace0 9656
08db81c9
LP
9657(define-public gitg
9658 (package
9659 (name "gitg")
9660 (version "3.32.1")
9661 (source (origin
9662 (method url-fetch)
9663 (uri (string-append "mirror://gnome/sources/" name "/"
9664 (version-major+minor version) "/"
9665 name "-" version ".tar.xz"))
9666 (sha256
9667 (base32
9668 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9669 (build-system meson-build-system)
9670 (arguments
9671 `(#:glib-or-gtk? #t
9672 #:phases
9673 (modify-phases %standard-phases
9674 (add-after 'unpack 'disable-post-install-partially
9675 (lambda _
9676 (substitute* "meson_post_install.py"
9677 (("'python'") ; there are no python sources to compile
9678 (string-append "'" (which "true") "'"))
9679 (("gtk-update-icon-cache") (which "true")))
9680 #t))
9681 (add-after 'unpack 'fix-test-sources
9682 (lambda _
9683 (substitute* "tests/libgitg/test-commit.vala"
9684 (("/bin/bash") (which "bash")))
9685 #t))
9686 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9687 (lambda* (#:key outputs #:allow-other-keys)
9688 (let ((prog (string-append (assoc-ref outputs "out")
9689 "/bin/gitg")))
9690 (wrap-program prog
9691 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9692 #t))))))
9693 (inputs
9694 `(("glib" ,glib)
9695 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9696 ("gtk+" ,gtk+)
9697 ("gtkspell3" ,gtkspell3)
9698 ("gtksourceview" ,gtksourceview-3)
9699 ("json-glib" ,json-glib)
9700 ("libdazzle" ,libdazzle)
9701 ("libgee" ,libgee)
08db81c9
LP
9702 ("libgit2-glib" ,libgit2-glib)
9703 ("libpeas" ,libpeas)
9704 ("libsecret" ,libsecret)
9705 ("libsoup" ,libsoup)
9706 ("libxml2" ,libxml2)))
9707 (native-inputs
9708 `(("glib:bin" ,glib "bin")
9709 ("gtk+:bin" ,gtk+ "bin")
9710 ("gobject-introspection" ,gobject-introspection)
9711 ("intltool" ,intltool)
9712 ("pkg-config" ,pkg-config)
9713 ("vala" ,vala)))
9714 (synopsis "Graphical user interface for git")
9715 (description
9716 "gitg is a graphical user interface for git. It aims at being a small,
9717fast and convenient tool to visualize the history of git repositories.
9718Besides visualization, gitg also provides several utilities to manage your
9719repository and commit your work.")
9720 (home-page "https://wiki.gnome.org/Apps/Gitg")
9721 (license license:gpl2+)))
9722
1e600ed0
RW
9723(define-public gamin
9724 (package
9725 (name "gamin")
9726 (version "0.1.10")
9727 (source (origin
9728 (method url-fetch)
9729 (uri (string-append "mirror://gnome/sources/" name "/"
9730 (version-major+minor version) "/"
9731 name "-" version ".tar.bz2"))
9732 (sha256
9733 (base32
9734 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9735 (build-system gnu-build-system)
9736 (arguments
9737 `(#:phases
9738 (modify-phases %standard-phases
9739 (add-after 'unpack 'remove-deprecated-macro
9740 (lambda _
9741 (substitute* '("server/gam_node.c"
9742 "server/gam_subscription.h"
9743 "server/gam_node.h"
9744 "server/gam_subscription.c")
9745 (("G_CONST_RETURN") "const"))
9746 #t)))))
9747 (inputs
9748 `(("glib" ,glib)))
9749 (native-inputs
9750 `(("intltool" ,intltool)
9751 ("pkg-config" ,pkg-config)))
9752 (home-page "https://people.gnome.org/~veillard/gamin/")
9753 (synopsis "File alteration monitor")
9754 (description
9755 "Gamin is a file and directory monitoring system defined to be a subset
9756of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9757library which detects when a file or a directory has been modified.")
1e600ed0
RW
9758 (license license:gpl2+)))
9759
93beace0
DW
9760(define-public gnome-mahjongg
9761 (package
9762 (name "gnome-mahjongg")
9763 (version "3.35.1")
9764 (source (origin
9765 (method git-fetch)
9766 (uri (git-reference
9767 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9768 (commit version)))
9769 (file-name (git-file-name name version))
9770 (sha256
9771 (base32
9772 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9773 (build-system meson-build-system)
9774 (arguments
9775 `(#:glib-or-gtk? #t))
9776 (native-inputs
9777 `(("appstream-glib" ,appstream-glib)
9778 ("gettext" ,gettext-minimal)
9779 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9780 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9781 ("itstool" ,itstool)
9782 ("pkg-config" ,pkg-config)
9783 ("vala" ,vala)))
9784 (propagated-inputs
9785 `(("dconf" ,dconf)))
9786 (inputs
9787 `(("glib" ,glib)
9788 ("gtk+" ,gtk+)
9789 ("librsvg" ,librsvg)))
9790 (synopsis "Mahjongg tile-matching game")
9791 (description "GNOME Mahjongg is a game based on the classic Chinese
9792tile-matching game Mahjong. It features multiple board layouts, tile themes,
9793and a high score table.")
9794 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9795 (license license:gpl2+)))
f825476c 9796
76ea7632
RG
9797(define-public gnome-themes-extra
9798 (package
9799 (name "gnome-themes-extra")
9800 (version "3.28")
9801 (source
9802 (origin
9803 (method url-fetch)
9804 (uri (string-append "mirror://gnome/sources/" name "/"
9805 (version-major+minor version) "/" name "-"
9806 version ".tar.xz"))
9807 (sha256
9808 (base32
9809 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9810 (build-system gnu-build-system)
885424bf
RG
9811 (arguments
9812 '(#:configure-flags
9813 ;; Don't create 'icon-theme.cache'.
9814 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9815 (true (string-append coreutils "/bin/true")))
9816 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9817 (native-inputs
9818 `(("glib:bin" ,glib "bin")
9819 ("intltool" ,intltool)
9820 ("pkg-config" ,pkg-config)))
9821 (inputs
9822 `(("glib" ,glib)
9823 ("gtk+" ,gtk+)
9824 ("gtk+-2" ,gtk+-2)
9825 ("librsvg" ,librsvg)
9826 ("libxml2" ,libxml2)))
9827 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9828 (synopsis "GNOME Extra Themes")
9829 (description "This package provides themes and related elements that don't
9830really fit in other upstream packages. It offers legacy support for GTK+ 2
9831versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9832index files needed for Adwaita to be used outside of GNOME.")
9833 (license license:lgpl2.1+)))
9834
f825476c
LP
9835(define-public polari
9836 (package
9837 (name "polari")
9838 (version "3.32.2")
9839 (source (origin
9840 (method url-fetch)
9841 (uri (string-append "mirror://gnome/sources/polari/"
9842 (version-major+minor version)
9843 "/polari-" version ".tar.xz"))
9844 (sha256
9845 (base32
9846 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9847 (build-system meson-build-system)
9848 (arguments
9849 `(#:glib-or-gtk? #t
9850 #:phases
9851 (modify-phases %standard-phases
9852 (add-after 'unpack 'skip-gtk-update-icon-cache
9853 (lambda _
9854 (substitute* "meson/meson-postinstall.sh"
9855 (("gtk-update-icon-cache") (which "true")))
9856 #t))
9857 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9858 (lambda* (#:key outputs #:allow-other-keys)
9859 (let ((prog (string-append (assoc-ref outputs "out")
9860 "/bin/polari")))
9861 (wrap-program prog
9862 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9863 #t))))))
9864 (inputs
9865 `(("glib" ,glib)
9866 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9867 ("gspell" ,gspell)
9868 ("gtk+" ,gtk+)
9869 ("gjs" ,gjs)
9870 ("libsecret" ,libsecret)
9871 ("libsoup" ,libsoup)
9872 ("telepathy-glib" ,telepathy-glib)
9873 ("telepathy-logger" ,telepathy-logger)))
9874 (native-inputs
9875 `(("glib:bin" ,glib "bin")
9876 ("gobject-introspection" ,gobject-introspection)
9877 ("intltool" ,intltool)
9878 ("pkg-config" ,pkg-config)
9879 ("yelp-tools" ,yelp-tools)))
9880 (propagated-inputs
9881 `(("telepathy-idle" ,telepathy-idle)
9882 ("telepathy-mission-control" ,telepathy-mission-control)))
9883 (synopsis "Simple IRC Client")
9884 (description
9885 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9886integrate seamlessly with the GNOME desktop.")
9887 (home-page "https://wiki.gnome.org/Apps/Polari")
9888 (license license:gpl2+)))
59d4c8c2
PN
9889
9890(define-public gnome-boxes
9891 (package
9892 (name "gnome-boxes")
9893 (version "3.35.91")
9894 (source
9895 (origin
9896 (method url-fetch)
9897 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9898 (version-major+minor version) "/"
9899 "gnome-boxes-" version ".tar.xz"))
9900 (sha256
9901 (base32
9902 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9903 (build-system meson-build-system)
9904 (arguments
9905 '(#:glib-or-gtk? #t
9906 #:configure-flags (list "-Drdp=false"
9907 (string-append "-Dc_link_args=-Wl,-rpath="
9908 (assoc-ref %outputs "out")
9909 "/lib/gnome-boxes"))))
9910 (native-inputs
9911 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9912 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9913 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9914 ("itstool" ,itstool)
9915 ("intltool" ,intltool)
9916 ("vala" ,vala)
9917 ("pkg-config" ,pkg-config)))
9918 (inputs
9919 `(("libarchive" ,libarchive)
9920 ("gtk" ,gtk+)
9921 ("gtk-vnc" ,gtk-vnc)
9922 ("libosinfo" ,libosinfo)
9923 ("libsecret" ,libsecret)
9924 ("libsoup" ,libsoup)
9925 ("libusb" ,libusb)
9926 ("libvirt" ,libvirt)
9927 ("libvirt-glib" ,libvirt-glib)
9928 ("libxml" ,libxml2)
9929 ("spice-gtk" ,spice-gtk)
9930 ("sparql-query" ,sparql-query)
9931 ("vte" ,vte)
9932 ("webkitgtk" ,webkitgtk)
9933 ("tracker" ,tracker)
9934 ("libgudev" ,libgudev)))
9935 (home-page "https://wiki.gnome.org/Apps/Boxes")
9936 (synopsis "View, access, and manage remote and virtual systems")
9937 (description "GNOME Boxes is a simple application to view, access, and
9938manage remote and virtual systems.")
9939 (license (list
9940 ;; For data/icons/empty-boxes.png.
9941 license:cc-by2.0
9942 ;; For all others.
9943 license:lgpl2.0+))))
0e26c3cf 9944
9945(define-public geary
9946 (package
9947 (name "geary")
9948 (version "3.34.1")
9949 (source (origin
9950 (method git-fetch)
9951 (uri (git-reference
9952 (url "https://gitlab.gnome.org/GNOME/geary")
9953 (commit version)))
9954 (file-name (git-file-name name version))
9955 (sha256
9956 (base32
9957 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9958 (build-system meson-build-system)
9959 (arguments
9960 `(#:glib-or-gtk? #t
9961 #:phases (modify-phases %standard-phases
9962 (add-after 'unpack 'disable-failing-tests
9963 (lambda _
9964 (substitute* "test/meson.build"
9965 (("test\\('client-tests', geary_test_client_bin\\)")
9966 ""))
9967 #t))
9968 (add-after 'unpack 'disable-postinstall-script
9969 (lambda _
9970 (substitute* "meson.build"
9971 (("meson.add_install_script\\(\
9972join_paths\\('build-aux', 'post_install.py'\\)\\)")
9973 ""))
9974 #t))
9975 (add-before 'check 'setup-xvfb
9976 (lambda _
9977 (system "Xvfb :1 &")
9978 (setenv "DISPLAY" ":1")
9979 #t)))))
9980 (inputs
9981 `(("enchant" ,enchant)
9982 ("folks" ,folks)
9983 ("gcr" ,gcr)
9984 ("glib" ,glib)
9985 ("gmime" ,gmime-2.6)
9986 ("gnome-online-accounts:lib"
9987 ,gnome-online-accounts "lib")
9988 ("gspell" ,gspell)
9989 ("gtk+" ,gtk+)
9990 ("iso-codes" ,iso-codes)
9991 ("json-glib" ,json-glib)
9992 ("libcanberra" ,libcanberra)
9993 ("libgee" ,libgee)
9994 ("libhandy" ,libhandy)
9995 ("libpeas" ,libpeas)
9996 ("libsecret" ,libsecret)
9997 ("libunwind" ,libunwind)
9998 ("sqlite" ,sqlite)
9999 ("webkitgtk" ,webkitgtk)
10000 ("ytnef" ,ytnef)))
10001 (native-inputs
10002 `(("appstream-glib" ,appstream-glib)
10003 ("cmake-minimal" ,cmake-minimal)
10004 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 10005 ("gettext" ,gettext-minimal)
0e26c3cf 10006 ("glib:bin" ,glib "bin")
10007 ("gobject-introspection" ,gobject-introspection)
10008 ("itstool" ,itstool)
10009 ("libarchive" ,libarchive)
10010 ("libxml2" ,libxml2)
10011 ("pkg-config" ,pkg-config)
10012 ("vala" ,vala)
10013 ("xvfb" ,xorg-server-for-tests)))
10014 (synopsis "GNOME email application built around conversations")
10015 (description
10016 "Geary collects related messages together into conversations,
10017making it easy to find and follow your discussions. Full-text and keyword
10018search makes it easy to find the email you are looking for. Geary's
10019full-featured composer lets you send rich, styled text with images, links, and
10020lists, but also send lightweight, easy to read text messages. Geary
10021automatically picks up your existing GNOME Online Accounts, and adding more is
10022easy. Geary has a clean, fast, modern interface that works like you want it
10023to.")
10024 (home-page "https://wiki.gnome.org/Apps/Geary")
10025 (license (list
10026 ;; geary
10027 license:lgpl2.1+
10028 ;; icons
10029 license:cc-by3.0
10030 license:cc-by-sa3.0
10031 license:public-domain
10032 ;; snowball
10033 license:bsd-2))))
1a17d21b 10034
21051eb7
VM
10035(define-public glabels
10036 (package
10037 (name "glabels")
10038 (version "3.4.1")
10039 (source
10040 (origin
10041 (method url-fetch)
10042 (uri (string-append "mirror://gnome/sources/" name "/"
10043 (version-major+minor version) "/"
10044 "glabels-" version ".tar.xz"))
10045 (sha256
10046 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10047 (build-system glib-or-gtk-build-system)
10048 (native-inputs
10049 `(("gettext" ,gettext-minimal)
10050 ("glib:bin" ,glib "bin")
10051 ("intltool" ,intltool)
10052 ("itstool" ,itstool)
10053 ("pkg-config" ,pkg-config)))
10054 (inputs
10055 `(("gtk+" ,gtk+)
10056 ("librsvg" ,librsvg)
10057 ("libxml2" ,libxml2)))
10058 (home-page "https://glabels.org/")
10059 (synopsis "Program for creating labels and business cards")
10060 (description
10061 "gLabels is a program for creating labels and business cards. It is
10062designed to work with various laser/ink-jet peel-off label and business
10063card sheets that you’ll find at most office supply stores.")
10064 (license license:gpl3+)))
10065
2cd1de32
BT
10066(define-public libratbag
10067 (package
10068 (name "libratbag")
10069 (version "0.13")
10070 (source
10071 (origin
10072 (method git-fetch)
10073 (uri (git-reference
10074 (url "https://github.com/libratbag/libratbag.git")
10075 (commit (string-append "v" version))))
10076 (file-name (git-file-name name version))
10077 (sha256
10078 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10079 (build-system meson-build-system)
10080 (arguments
10081 `(#:configure-flags
10082 (list "-Dsystemd=false"
10083 "-Dlogind-provider=elogind")
10084 #:phases
10085 (modify-phases %standard-phases
10086 (add-after 'install 'wrap
10087 (lambda* (#:key inputs outputs #:allow-other-keys)
10088 (let* ((out (assoc-ref outputs "out"))
10089 (site (string-append
10090 "/lib/python"
10091 ,(version-major+minor (package-version python))
10092 "/site-packages"))
10093 (evdev (string-append
10094 (assoc-ref inputs "python-evdev") site))
10095 (pygo (string-append
10096 (assoc-ref inputs "python-pygobject") site))
10097 (python-wrap
10098 `("PYTHONPATH" = (,evdev ,pygo))))
10099 (wrap-program (string-append out "/bin/" "ratbagctl")
10100 python-wrap)
10101 #t))))))
10102 (native-inputs
10103 `(("check" ,check)
10104 ("pkg-config" ,pkg-config)
10105 ("swig" ,swig)
10106 ("valgrind" ,valgrind)))
10107 (inputs
10108 `(("glib" ,glib)
10109 ("json-glib" ,json-glib)
10110 ("libevdev" ,libevdev)
10111 ("libsystemd" ,elogind)
10112 ("libunistring" ,libunistring)
10113 ("python-evdev" ,python-evdev)
10114 ("python-pygobject" ,python-pygobject)
10115 ("udev" ,eudev)))
10116 (home-page "https://github.com/libratbag/libratbag")
10117 (synopsis "DBus daemon and utility for configuring gaming mice")
10118 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10119configure input devices, mainly gaming mice. The daemon provides a generic
10120way to access the various features exposed by these mice and abstracts away
10121hardware-specific and kernel-specific quirks. There is also the
10122@command{ratbagctl} command line interface for configuring devices.
10123
10124libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10125Steelseries.
10126
10127The ratbagd DBus service can be enabled by adding the following service to
10128your operating-system definition:
10129
10130 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10131 (license license:expat)))
10132
50d31a40
BT
10133(define-public piper
10134 (package
10135 (name "piper")
10136 (version "0.4")
10137 (source
10138 (origin
10139 (method git-fetch)
10140 (uri (git-reference
10141 (url "https://github.com/libratbag/piper.git")
10142 (commit version)))
10143 (sha256
10144 (base32 "17h06j8lxpbfygq8fzycl7lml4vv7r05bsyhh3gga2hp0zms4mvg"))))
10145 (build-system meson-build-system)
10146 (native-inputs
10147 `(("gettext" ,gettext-minimal)
10148 ("glib:bin" ,glib "bin")
10149 ("gobject-introspection" ,gobject-introspection)
10150 ("pkg-config" ,pkg-config)
10151 ("python-flake8" ,python-flake8)))
10152 (inputs
10153 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10154 ("gtk" ,gtk+)
10155 ("gtk:bin" ,gtk+ "bin")
10156 ("librsvg" ,librsvg)
10157 ("python-evdev" ,python-evdev)
10158 ("python-lxml" ,python-lxml)
10159 ("python-pycairo" ,python-pycairo)
10160 ("python-pygobject" ,python-pygobject)))
10161 (arguments
10162 `(#:imported-modules ((guix build python-build-system)
10163 ,@%meson-build-system-modules)
10164 #:modules (((guix build python-build-system) #:prefix python:)
10165 (guix build meson-build-system)
10166 (guix build utils))
10167 #:phases
10168 (modify-phases %standard-phases
10169 (add-after 'unpack 'dont-update-gtk-icon-cache
10170 (lambda _
10171 (substitute* "meson.build"
10172 (("meson.add_install_script('meson_install.sh')") ""))
10173 #t))
10174 ;; TODO: Switch to wrap-script when it is fixed.
10175 (add-after 'install 'wrap-python
10176 (assoc-ref python:%standard-phases 'wrap))
10177 (add-after 'wrap-python 'wrap
10178 (lambda* (#:key outputs #:allow-other-keys)
10179 (wrap-program
10180 (string-append (assoc-ref outputs "out" )"/bin/piper")
10181 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10182 #t)))))
10183 (home-page "https://github.com/libratbag/piper/")
10184 (synopsis "Configure bindings and LEDs on gaming mice")
10185 (description "Piper is a GTK+ application for configuring gaming mice with
10186onboard configuration for key bindings via libratbag. Piper requires
10187a @command{ratbagd} daemon running with root privileges. It can be run
10188manually as root, but is preferably configured as a DBus service that can
10189launch on demand. This can be configured by enabling the following service,
10190provided there is a DBus service present:
10191
10192 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10193 (license license:gpl2)))
10194
1a17d21b
NG
10195(define-public parlatype
10196 ;; This is one commit away from 2.0, because the latter introduced
10197 ;; a regression in ASR.
10198 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10199 (revision "0"))
10200 (package
10201 (name "parlatype")
10202 (version (git-version "2.0" revision commit))
10203 (source
10204 (origin
10205 (method git-fetch)
10206 (uri (git-reference
10207 (url "https://github.com/gkarsay/parlatype.git")
10208 (commit commit)))
10209 (file-name (git-file-name name version))
10210 (sha256
10211 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10212 (build-system meson-build-system)
10213 (arguments
10214 `(#:glib-or-gtk? #t
10215 #:tests? #f ;require internet access
10216 #:phases
10217 (modify-phases %standard-phases
10218 (add-after 'install 'wrap-parlatype
10219 ;; Add gstreamer plugin provided in this package to system's
10220 ;; plugins.
10221 (lambda* (#:key outputs #:allow-other-keys)
10222 (let* ((out (assoc-ref outputs "out"))
10223 (gst-plugin-path (string-append
10224 out "/lib/gstreamer-1.0/"
10225 ":"
10226 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10227 (wrap-program (string-append out "/bin/parlatype")
10228 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10229 #t)))))
10230 (native-inputs
10231 `(("appstream-glib" ,appstream-glib)
10232 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10233 ("gettext" ,gettext-minimal)
10234 ("glib" ,glib "bin") ;for glib-compile-resources
10235 ("pkg-config" ,pkg-config)
10236 ("yelp-tools" ,yelp-tools)))
10237 (inputs
10238 `(("gst-plugins-base" ,gst-plugins-base)
10239 ("gst-plugins-good" ,gst-plugins-good)
10240 ("gstreamer" ,gstreamer)
10241 ("gtk+" ,gtk+)
10242 ("pocketsphinx" ,pocketsphinx)
10243 ("pulseaudio" ,pulseaudio)
10244 ("sphinxbase" ,sphinxbase)))
10245 (home-page "http://gkarsay.github.io/parlatype/")
10246 (synopsis "GNOME audio player for transcription")
10247 (description "Parlatype is an audio player for the GNOME desktop
10248environment. Its main purpose is the manual transcription of spoken
10249audio files.")
10250 (license license:gpl3+))))
95856a6e
AT
10251
10252(define-public jsonrpc-glib
10253 (package
10254 (name "jsonrpc-glib")
10255 (version "3.34.0")
10256 (source (origin
10257 (method url-fetch)
10258 (uri (string-append "mirror://gnome/sources/" name "/"
10259 (version-major+minor version) "/"
10260 name "-" version ".tar.xz"))
10261 (sha256
10262 (base32
10263 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10264 (build-system meson-build-system)
10265 (inputs
10266 `(("json-glib" ,json-glib)
10267 ("glib" ,glib)))
10268 (native-inputs
10269 `(("pkg-config" ,pkg-config)
10270 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10271 ("gobject-introspection" ,gobject-introspection)
10272 ("vala" ,vala)))
10273 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10274 (synopsis "JSON-RPC library for GLib")
10275 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10276peers in either a synchronous or asynchronous fashion. It also allows
10277communicating using the GVariant serialization format instead of JSON when
10278both peers support it. You might want that when communicating on a single
10279host to avoid parser overhead and memory-allocator fragmentation.")
10280 (license license:lgpl2.1+)))