gnu: Add krb5-auth-dialog.
[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>
754cfbdc 5;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
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>
0faed399 46;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
3861fb1c 47;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
fa01e10d 48;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
63db190a 49;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
0e26c3cf 50;;; Copyright © 2020 raingloom <raingloom@riseup.net>
1a17d21b 51;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
dd233e4d 52;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
663def11 53;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
21051eb7 54;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
01c22be7 55;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
031315e4 56;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
92b9cdd5 57;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
995b7261
AE
58;;;
59;;; This file is part of GNU Guix.
60;;;
61;;; GNU Guix is free software; you can redistribute it and/or modify it
62;;; under the terms of the GNU General Public License as published by
63;;; the Free Software Foundation; either version 3 of the License, or (at
64;;; your option) any later version.
65;;;
66;;; GNU Guix is distributed in the hope that it will be useful, but
67;;; WITHOUT ANY WARRANTY; without even the implied warranty of
68;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
69;;; GNU General Public License for more details.
70;;;
71;;; You should have received a copy of the GNU General Public License
72;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
73
74(define-module (gnu packages gnome)
ed19903d 75 #:use-module (gnu packages)
ba5dd105 76 #:use-module (gnu packages admin)
411ba511 77 #:use-module (gnu packages aspell)
75016d07 78 #:use-module (gnu packages autotools)
7b212526 79 #:use-module (gnu packages avahi)
b29909b4 80 #:use-module (gnu packages backup)
6a180f6f 81 #:use-module (gnu packages base)
1e33331c 82 #:use-module (gnu packages bash)
5698b8b8 83 #:use-module (gnu packages bison)
aa51d92c 84 #:use-module (gnu packages boost)
5fc9b6c1 85 #:use-module (gnu packages build-tools)
df217748 86 #:use-module (gnu packages calendar)
b29909b4 87 #:use-module (gnu packages cdrom)
df12f04a 88 #:use-module (gnu packages check)
d61a894b 89 #:use-module (gnu packages cmake)
b29909b4 90 #:use-module (gnu packages compression)
8f523eb9 91 #:use-module (gnu packages crates-io)
23a22af6 92 #:use-module (gnu packages cups)
6e1bb642 93 #:use-module (gnu packages curl)
c3f29bc9 94 #:use-module (gnu packages cyrus-sasl)
6e1bb642 95 #:use-module (gnu packages databases)
255d1bbe 96 #:use-module (gnu packages dbm)
c769cf9f 97 #:use-module (gnu packages djvu)
ba5dd105 98 #:use-module (gnu packages dns)
b4ce6300 99 #:use-module (gnu packages docbook)
b29909b4 100 #:use-module (gnu packages documentation)
329d731b 101 #:use-module (gnu packages enchant)
b29909b4
TGR
102 #:use-module (gnu packages flex)
103 #:use-module (gnu packages fonts)
e762d943 104 #:use-module (gnu packages file-systems)
a56be436 105 #:use-module (gnu packages fontutils)
b29909b4 106 #:use-module (gnu packages freedesktop)
dfc407f3 107 #:use-module (gnu packages game-development)
fed5a689 108 #:use-module (gnu packages gettext)
b29909b4
TGR
109 #:use-module (gnu packages ghostscript)
110 #:use-module (gnu packages gl)
995b7261 111 #:use-module (gnu packages glib)
c1354b90 112 #:use-module (gnu packages gnupg)
23a22af6 113 #:use-module (gnu packages gnuzilla)
8d8c6bff 114 #:use-module (gnu packages geo)
b29909b4
TGR
115 #:use-module (gnu packages gperf)
116 #:use-module (gnu packages graphviz)
85f5dc19 117 #:use-module (gnu packages gstreamer)
d9c1a22b 118 #:use-module (gnu packages gtk)
6b888eff 119 #:use-module (gnu packages guile)
b645146f 120 #:use-module (gnu packages ibus)
03be9874 121 #:use-module (gnu packages icu4c)
b29909b4
TGR
122 #:use-module (gnu packages image)
123 #:use-module (gnu packages imagemagick)
124 #:use-module (gnu packages inkscape)
9cc98f8a 125 #:use-module (gnu packages iso-codes)
b29909b4 126 #:use-module (gnu packages kerberos)
85f5dc19 127 #:use-module (gnu packages libcanberra)
b64e217f 128 #:use-module (gnu packages libunistring)
0e26c3cf 129 #:use-module (gnu packages libunwind)
75016d07 130 #:use-module (gnu packages libusb)
b29909b4 131 #:use-module (gnu packages linux)
4e3fc547 132 #:use-module (gnu packages lirc)
7b212526 133 #:use-module (gnu packages lua)
b29909b4 134 #:use-module (gnu packages mail)
03be9874 135 #:use-module (gnu packages mp3)
b29909b4 136 #:use-module (gnu packages multiprecision)
64fce637 137 #:use-module (gnu packages music)
b29909b4
TGR
138 #:use-module (gnu packages ncurses)
139 #:use-module (gnu packages nettle)
ba5dd105 140 #:use-module (gnu packages networking)
5fc9b6c1 141 #:use-module (gnu packages ninja)
aff0cce9 142 #:use-module (gnu packages nss)
b29909b4 143 #:use-module (gnu packages openldap)
b645146f 144 #:use-module (gnu packages password-utils)
de1215e2 145 #:use-module (gnu packages pcre)
b29909b4 146 #:use-module (gnu packages pdf)
27477d2d 147 #:use-module (gnu packages perl)
f70d8383 148 #:use-module (gnu packages photo)
53c41e95 149 #:use-module (gnu packages php)
995b7261 150 #:use-module (gnu packages pkg-config)
b29909b4
TGR
151 #:use-module (gnu packages polkit)
152 #:use-module (gnu packages popt)
7d3bb433 153 #:use-module (gnu packages pretty-print)
23a22af6 154 #:use-module (gnu packages pulseaudio)
995b7261 155 #:use-module (gnu packages python)
00014781
RW
156 #:use-module (gnu packages python-crypto)
157 #:use-module (gnu packages python-web)
44d10b1f 158 #:use-module (gnu packages python-xyz)
cce0da5e 159 #:use-module (gnu packages rdesktop)
b29909b4 160 #:use-module (gnu packages readline)
a76d0f03 161 #:use-module (gnu packages ruby)
ec47c07d 162 #:use-module (gnu packages rust)
b29909b4 163 #:use-module (gnu packages samba)
75016d07 164 #:use-module (gnu packages scanner)
240cee8a 165 #:use-module (gnu packages selinux)
c27e02bf 166 #:use-module (gnu packages slang)
b29909b4
TGR
167 #:use-module (gnu packages speech)
168 #:use-module (gnu packages spice)
cd0322a3 169 #:use-module (gnu packages sqlite)
4a1bf090 170 #:use-module (gnu packages ssh)
2cd1de32 171 #:use-module (gnu packages swig)
8f9ac901 172 #:use-module (gnu packages tex)
33dc54b0 173 #:use-module (gnu packages time)
a7fd7b68 174 #:use-module (gnu packages tls)
2cd1de32 175 #:use-module (gnu packages valgrind)
3c5dbd2b 176 #:use-module (gnu packages version-control)
b29909b4 177 #:use-module (gnu packages video)
59132b80 178 #:use-module (gnu packages virtualization)
f2b96b3a 179 #:use-module (gnu packages vpn)
a18f8eaf 180 #:use-module (gnu packages web)
b29909b4
TGR
181 #:use-module (gnu packages webkit)
182 #:use-module (gnu packages xdisorg)
183 #:use-module (gnu packages xiph)
184 #:use-module (gnu packages xml)
d633f2f6 185 #:use-module (gnu packages xorg)
a76d0f03 186 #:use-module (gnu artwork)
43b6b45e 187 #:use-module ((guix build utils) #:select (modify-phases))
8f523eb9 188 #:use-module (guix build-system cargo)
b29909b4
TGR
189 #:use-module (guix build-system cmake)
190 #:use-module (guix build-system glib-or-gtk)
191 #:use-module (guix build-system gnu)
192 #:use-module (guix build-system meson)
08be02be 193 #:use-module (guix build-system python)
b29909b4
TGR
194 #:use-module (guix build-system trivial)
195 #:use-module (guix download)
196 #:use-module (guix git-download)
197 #:use-module ((guix licenses) #:prefix license:)
198 #:use-module (guix packages)
199 #:use-module (guix utils)
a76d0f03 200 #:use-module (guix gexp)
8f523eb9
EF
201 #:use-module (guix monads)
202 #:use-module (guix store)
4e3fdeb7 203 #:use-module (ice-9 match)
c024ae36 204 #:use-module (srfi srfi-1))
85f5dc19
AE
205
206(define-public brasero
207 (package
208 (name "brasero")
e2bf423a 209 (version "3.12.2")
85f5dc19
AE
210 (source (origin
211 (method url-fetch)
d1df7554 212 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 213 (version-major+minor version) "/"
d1df7554 214 "brasero-" version ".tar.xz"))
85f5dc19
AE
215 (sha256
216 (base32
e2bf423a 217 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 218 (build-system glib-or-gtk-build-system)
e8627cd9
DH
219 (arguments
220 `(#:configure-flags (list
221 (string-append "--with-girdir="
222 (assoc-ref %outputs "out")
223 "/share/gir-1.0")
224 (string-append "--with-typelibdir="
225 (assoc-ref %outputs "out")
ce426deb
TD
226 "/lib/girepository-1.0"))
227 #:phases
228 (modify-phases %standard-phases
229 (add-before 'configure 'embed-growisofs
230 (lambda* (#:key inputs #:allow-other-keys)
231 (substitute* "plugins/growisofs/burn-growisofs.c"
232 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 233 #t)))))
85f5dc19
AE
234 (propagated-inputs
235 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
236 (native-inputs
237 `(("intltool" ,intltool)
ba549e17 238 ("itstool" ,itstool)
426adbe8 239 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 240 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 241 ("pkg-config" ,pkg-config)))
85f5dc19 242 (inputs
ce426deb
TD
243 `(("dvd+rw-tools" ,dvd+rw-tools)
244 ("glib" ,glib)
85f5dc19
AE
245 ("gnome-doc-utils" ,gnome-doc-utils)
246 ("gstreamer" ,gstreamer)
247 ("gst-plugins-base" ,gst-plugins-base)
248 ("gtk+" ,gtk+)
85f5dc19
AE
249 ("libcanberra" ,libcanberra)
250 ("libice" ,libice)
251 ("libnotify" ,libnotify)
252 ("libsm" ,libsm)
e8627cd9 253 ("libxml2" ,libxml2)
e8627cd9 254 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 255 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
256 (synopsis "CD/DVD burning tool for Gnome")
257 (description "Brasero is an application to burn CD/DVD for the Gnome
258Desktop. It is designed to be as simple as possible and has some unique
259features to enable users to create their discs easily and quickly.")
1dd26275 260 (license license:gpl2+)))
995b7261 261
2e6bc595
RG
262(define-public krb5-auth-dialog
263 (package
264 (name "krb5-auth-dialog")
265 (version "3.26.1")
266 (source
267 (origin
268 (method url-fetch)
269 (uri
270 (string-append "mirror://gnome/sources/" name "/"
271 (version-major+minor version) "/"
272 name "-" version ".tar.xz"))
273 (sha256
274 (base32
275 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
276 (build-system glib-or-gtk-build-system)
277 (native-inputs
278 `(("intltool" ,intltool)
279 ("itstool" ,itstool)
280 ("libxml2" ,libxml2)
281 ("pkg-config" ,pkg-config)
282 ("python-wrapper" ,python-wrapper)))
283 (inputs
284 `(("glib" ,glib)
285 ("gtk+" ,gtk+)
286 ("libnotify" ,libnotify)
287 ("mit-krb5" ,mit-krb5)
288 ("network-manager" ,network-manager)))
289 (synopsis "Popup dialogs for Kerberos 5")
290 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
291tickets, and pops up a dialog when they are about to expire.")
292 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
293 (license license:gpl2+)))
294
a3cbcbaf
RG
295(define-public notification-daemon
296 (package
297 (name "notification-daemon")
298 (version "3.20.0")
299 (source
300 (origin
301 (method url-fetch)
302 (uri
303 (string-append "mirror://gnome/sources/" name "/"
304 (version-major+minor version) "/"
305 name "-" version ".tar.xz"))
306 (sha256
307 (base32
308 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
309 (build-system glib-or-gtk-build-system)
310 (native-inputs
311 `(("intltool" ,intltool)
312 ("pkg-config" ,pkg-config)))
313 (inputs
314 `(("glib" ,glib)
315 ("gtk+" ,gtk+)
316 ("x11" ,libx11)))
317 (synopsis "Notification Daemon for GNOME Desktop")
318 (description "Notification-Daemon is the server implementation of the
319freedesktop.org desktop notification specification.")
320 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
321 (license license:gpl2+)))
322
4e8bdbf8
RG
323(define-public mm-common
324 (package
325 (name "mm-common")
553f2f3f 326 (version "1.0.1")
4e8bdbf8
RG
327 (source (origin
328 (method url-fetch)
02cb4ca7 329 (uri (string-append "mirror://gnome/sources/mm-common/"
4e8bdbf8 330 (version-major+minor version) "/"
02cb4ca7 331 "mm-common-" version ".tar.xz"))
4e8bdbf8
RG
332 (sha256
333 (base32
553f2f3f 334 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
4e8bdbf8
RG
335 (build-system meson-build-system)
336 (arguments
337 `(#:phases
338 (modify-phases %standard-phases
339 (add-after 'unpack 'patch
340 (lambda* (#:key inputs #:allow-other-keys)
341 (substitute* "util/mm-common-prepare.in"
342 (("ln") (string-append (assoc-ref inputs "coreutils")
343 "/bin/ln"))
344 (("cp") (string-append (assoc-ref inputs "coreutils")
345 "/bin/cp"))
346 (("sed") (string-append (assoc-ref inputs "sed")
347 "/bin/sed"))
348 (("cat") (string-append (assoc-ref inputs "coreutils")
349 "/bin/cat")))
350 #t)))))
351 (native-inputs
4e8bdbf8 352 `(("coreutils" ,coreutils)
74a65885
DM
353 ("gettext" ,gettext-minimal)
354 ("pkg-config" ,pkg-config)
4e8bdbf8 355 ("sed" ,sed)))
74a65885
DM
356 (inputs
357 `(("python" ,python)))
4e8bdbf8
RG
358 (synopsis "Module of GNOME C++ bindings")
359 (description "The mm-common module provides the build infrastructure
360and utilities shared among the GNOME C++ binding libraries. Release
361archives of mm-common include the Doxygen tag file for the GNU C++
362Library reference documentation.")
363 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
364 (license license:gpl2+)))
365
e05ce17d
RG
366(define-public phodav
367 (package
368 (name "phodav")
369 (version "2.4")
370 (source (origin
371 (method url-fetch)
372 (uri (string-append "mirror://gnome/sources/" name "/"
373 (version-major+minor version) "/"
374 name "-" version ".tar.xz"))
375 (sha256
376 (base32
377 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
378 (build-system meson-build-system)
379 (native-inputs
380 `(("gettext" ,gettext-minimal)
381 ("glib:bin" ,glib "bin")
382 ("gtk-doc" ,gtk-doc)
383 ("pkg-config" ,pkg-config)))
384 (inputs
385 `(("avahi" ,avahi)
386 ("libgudev" ,libgudev)
387 ("libsoup" ,libsoup)))
388 (synopsis "WebDav server implementation using libsoup")
389 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
390but it is generic enough to be reused in other projects,
391in particular in the GNOME desktop.")
392 (home-page "https://wiki.gnome.org/phodav")
393 (license license:lgpl2.1+)))
394
29ae18db
RG
395(define-public gnome-color-manager
396 (package
397 (name "gnome-color-manager")
398 (version "3.32.0")
399 (source (origin
400 (method url-fetch)
401 (uri (string-append "mirror://gnome/sources/" name "/"
402 (version-major+minor version) "/"
403 name "-" version ".tar.xz"))
404 (sha256
405 (base32
406 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
407 (build-system meson-build-system)
408 (arguments
409 `(#:glib-or-gtk? #t
410 #:phases
411 (modify-phases %standard-phases
412 (add-before
413 'check 'pre-check
414 (lambda _
415 ;; Tests require a running X server.
416 (system "Xvfb :1 &")
417 (setenv "DISPLAY" ":1")
418 #t)))))
419 (native-inputs
420 `(("desktop-file-utils" ,desktop-file-utils)
421 ("gettext" ,gettext-minimal)
422 ("glib:bin" ,glib "bin")
423 ("gtk+:bin" ,gtk+ "bin")
424 ("itstool" ,itstool)
425 ("pkg-config" ,pkg-config)
426 ("xorg-server" ,xorg-server-for-tests)))
427 (inputs
428 `(("adwaita-icon-theme" ,adwaita-icon-theme)
429 ("appstream-glib" ,appstream-glib)
430 ("colord-gtk" ,colord-gtk)
431 ("exiv2" ,exiv2)
432 ("gnome-desktop" ,gnome-desktop)
433 ("libcanberra" ,libcanberra)
434 ("libexif" ,libexif)
435 ("libtiff" ,libtiff)
436 ("libxrandr" ,libxrandr)
437 ("libxtst" ,libxtst)
438 ("libxxf86vm" ,libxxf86vm)
439 ("vte" ,vte)
440 ("xorgproto" ,xorgproto)))
441 (synopsis "Color profile manager for the GNOME desktop")
442 (description "GNOME Color Manager is a session framework that makes
443it easy to manage, install and generate color profiles
444in the GNOME desktop.")
445 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 446 (license license:gpl2+)))
29ae18db 447
e05471a1
RG
448(define-public gnome-online-miners
449 (package
450 (name "gnome-online-miners")
49dcd7fc 451 (version "3.34.0")
e05471a1
RG
452 (source (origin
453 (method url-fetch)
454 (uri (string-append "mirror://gnome/sources/" name "/"
455 (version-major+minor version) "/"
456 name "-" version ".tar.xz"))
457 (sha256
458 (base32
49dcd7fc 459 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
e05471a1
RG
460 (build-system glib-or-gtk-build-system)
461 (native-inputs
462 `(("gettext" ,gettext-minimal)
463 ("glib:bin" ,glib "bin")
29ae18db 464 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
465 ("gtk+:bin" ,gtk+ "bin")
466 ("pkg-config" ,pkg-config)))
467 (inputs
468 `(("gnome-online-accounts" ,gnome-online-accounts)
469 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
470 ("grilo" ,grilo)
471 ("libgdata" ,libgdata)
472 ("libgfbgraph" ,gfbgraph)
473 ("libzapojit" ,libzapojit)
474 ("rest" ,rest)
475 ("tracker" ,tracker)))
476 (synopsis "Web Crawlers for GNOME")
477 (description "GNOME Online Miners provides a set of crawlers that
478go through your online content and index them locally in Tracker.
479It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
480 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 481 (license license:gpl2+)))
e05471a1 482
e2aed29c
RG
483(define-public gssdp
484 (package
485 (name "gssdp")
c257e0ec 486 (version "1.2.3")
e2aed29c
RG
487 (source (origin
488 (method url-fetch)
489 (uri (string-append "mirror://gnome/sources/" name "/"
490 (version-major+minor version) "/"
491 name "-" version ".tar.xz"))
492 (sha256
493 (base32
c257e0ec 494 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
e2aed29c
RG
495 (build-system meson-build-system)
496 (native-inputs
497 `(("gettext" ,gettext-minimal)
498 ("glib:bin" ,glib "bin")
499 ("gobject-introspection" ,gobject-introspection)
500 ("gtk-doc" ,gtk-doc)
501 ("pkg-config" ,pkg-config)
502 ("vala" ,vala)))
503 (inputs
504 `(("gtk+" ,gtk+)
505 ("libsoup" ,libsoup)))
506 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
507Protocol} for GNOME")
508 (description "This package provides a library to handle resource discovery
509and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
510a debugging tool, @command{gssdp-device-sniffer}.")
511 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
512 (license license:lgpl2.0+)))
513
291a85b2
RG
514(define-public gupnp
515 (package
516 (name "gupnp")
5b882f47 517 (version "1.2.4")
291a85b2
RG
518 (source (origin
519 (method url-fetch)
520 (uri (string-append "mirror://gnome/sources/" name "/"
521 (version-major+minor version) "/"
522 name "-" version ".tar.xz"))
523 (sha256
524 (base32
5b882f47 525 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
291a85b2
RG
526 (build-system meson-build-system)
527 (native-inputs
528 `(("gettext" ,gettext-minimal)
529 ("glib:bin" ,glib "bin")
530 ("gobject-introspection" ,gobject-introspection)
531 ("gtk-doc" ,gtk-doc)
532 ("pkg-config" ,pkg-config)
533 ("vala" ,vala)))
534 (inputs
535 `(("gssdp" ,gssdp)
536 ("gtk+" ,gtk+)
537 ("libsoup" ,libsoup)))
538 (synopsis "PnP API for GNOME")
539 (description "This package provides GUPnP, an object-oriented framework
540for creating UPnP devices and control points, written in C using
541@code{GObject} and @code{libsoup}.")
542 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
543 (license license:lgpl2.0+)))
544
747d7fe4
RG
545(define-public gupnp-dlna
546 (package
547 (name "gupnp-dlna")
548 (version "0.10.5")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
557 (build-system gnu-build-system)
558 (native-inputs
559 `(("gettext" ,gettext-minimal)
560 ("glib:bin" ,glib "bin")
561 ("gobject-introspection" ,gobject-introspection)
562 ("gtk-doc" ,gtk-doc)
563 ("libxml" ,libxml2)
564 ("pkg-config" ,pkg-config)
565 ("vala" ,vala)))
566 (inputs
567 `(("gstreamer" ,gstreamer)
568 ("gupnp" ,gupnp)))
569 (propagated-inputs
570 `(("gst-plugins-base" ,gst-plugins-base)
571 ("gst-plugins-good" ,gst-plugins-good)))
572 (synopsis "GUPnP DLNA for GNOME")
573 (description "This package provides a small utility library to
574support DLNA-related tasks such as media profile guessing, transcoding to a
575given profile, etc. DLNA is a subset of UPnP A/V.")
576 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
577 (license license:lgpl2.0+)))
578
1b4cb628
RG
579(define-public gupnp-av
580 (package
581 (name "gupnp-av")
582 (version "0.12.11")
583 (source (origin
584 (method url-fetch)
585 (uri (string-append "mirror://gnome/sources/" name "/"
586 (version-major+minor version) "/"
587 name "-" version ".tar.xz"))
588 (sha256
589 (base32
590 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
591 (build-system gnu-build-system)
592 (native-inputs
593 `(("gettext" ,gettext-minimal)
594 ("glib:bin" ,glib "bin")
595 ("gobject-introspection" ,gobject-introspection)
596 ("gtk-doc" ,gtk-doc)
597 ("libxml" ,libxml2)
598 ("pkg-config" ,pkg-config)))
599 (inputs
600 `(("gtk+" ,gtk+)
601 ("gupnp" ,gupnp)))
602 (synopsis "GUPnP A/V for GNOME")
603 (description "This package provides a small library for handling
604and implementation of UPnP A/V profiles.")
605 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
606 (license license:lgpl2.0+)))
e05471a1 607
02ebbca8
RG
608(define-public libmediaart
609 (package
610 (name "libmediaart")
611 (version "1.9.4")
612 (source (origin
613 (method url-fetch)
614 (uri (string-append "mirror://gnome/sources/" name "/"
615 (version-major+minor version) "/"
616 name "-" version ".tar.xz"))
617 (sha256
618 (base32
619 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
620 (build-system gnu-build-system)
621 (native-inputs
622 `(("glib:bin" ,glib "bin")
623 ("pkg-config" ,pkg-config)))
624 (inputs
625 `(("gdk-pixbuf" ,gdk-pixbuf)
626 ("gettext" ,gettext-minimal)
627 ("gobject-introspection" ,gobject-introspection)
628 ("gtk+:doc", gtk+ "doc")
629 ("vala" ,vala)))
630 (synopsis "Media art library for the GNOME desktop")
631 (description
632 "The libmediaart library is the foundation for media art caching,
633extraction, and lookup for applications on the desktop.")
634 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
635 (license license:lgpl2.1+)))
636
a26680eb
RG
637(define-public gnome-initial-setup
638 (package
639 (name "gnome-initial-setup")
640 (version "3.32.1")
641 (source (origin
642 (method url-fetch)
643 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
644 (version-major+minor version)
645 "/gnome-initial-setup-" version ".tar.xz"))
646 (sha256
647 (base32
648 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
649 (build-system meson-build-system)
650 (arguments
a65cc579
DM
651 '(#:configure-flags '(;; Enable camera support for user selfie.
652 "-Dcheese=auto"
c627e2cb
LC
653 "-Dsystemd=false")
654 #:phases (modify-phases %standard-phases
655 (add-after 'unpack 'set-gkbd-file-name
656 (lambda* (#:key inputs #:allow-other-keys)
657 ;; Allow the "Preview" button in the keyboard layout
658 ;; selection dialog to display the layout.
659 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
660 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
661 (("\"gkbd-keyboard-display")
662 (string-append "\"" libgnomekbd
663 "/bin/gkbd-keyboard-display")))
664 #t))))))
a26680eb
RG
665 (native-inputs
666 `(("gettext" ,gettext-minimal)
667 ("glib:bin" ,glib "bin")
668 ("gobject-introspection" ,gobject-introspection)
669 ("gtk+:bin" ,gtk+ "bin")
670 ("pkg-config" ,pkg-config)))
671 (inputs
672 `(("accountsservice" ,accountsservice)
673 ;("adwaita-icon-theme" ,adwaita-icon-theme)
674 ("gdm" ,gdm)
675 ("geoclue" ,geoclue)
676 ("gnome-desktop" ,gnome-desktop)
677 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
678 ("gnome-online-accounts" ,gnome-online-accounts)
679 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
680 ("gstreamer" ,gstreamer)
681 ("ibus" ,ibus)
682 ("json-glib" ,json-glib)
683 ("krb5" ,mit-krb5)
684 ("libgweather" ,libgweather)
8d9477b8 685 ("libnma" ,libnma)
a26680eb
RG
686 ("libsecret" ,libsecret)
687 ("network-manager" ,network-manager)
a26680eb
RG
688 ("packagekit" ,packagekit)
689 ("polkit" ,polkit)
690 ("pwquality" ,libpwquality)
691 ("rest" ,rest)
692 ("upower" ,upower)
c627e2cb
LC
693 ("webkitgtk" ,webkitgtk)
694 ("libgnomekbd" ,libgnomekbd)))
a26680eb 695 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
696 (description "This package provides a set-up wizard when a
697user logs into GNOME for the first time. It typically provides a
698tour of all gnome components and allows the user to set them up.")
a26680eb
RG
699 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
700 (license license:gpl2)))
701
b5f01392
RG
702(define-public gnome-user-share
703 (package
704 (name "gnome-user-share")
705 (version "3.33.1")
706 (source (origin
707 (method url-fetch)
708 (uri (string-append "mirror://gnome/sources/" name "/"
709 (version-major+minor version) "/"
710 name "-" version ".tar.xz"))
711 (sha256
712 (base32
713 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
714 (build-system meson-build-system)
715 (arguments
716 `(#:glib-or-gtk? #t
717 #:configure-flags
718 `("-Dsystemd=false"
719 ;; Enable nautilus extension for file sharing.
720 "-Dnautilus_extension=true")))
721 (native-inputs
722 `(("gettext" ,gettext-minimal)
723 ("glib:bin" ,glib "bin")
724 ("gobject-introspection" ,gobject-introspection)
725 ("gtk+:bin" ,gtk+ "bin")
726 ("pkg-config" ,pkg-config)
727 ("yelp-tools" ,yelp-tools)))
728 (inputs
729 `(("glib" ,glib)
730 ("gnome-bluetooth" ,gnome-bluetooth)
731 ("gtk+" ,gtk+)
732 ("libcanberra" ,libcanberra)
733 ("libnotify" ,libnotify)
734 ("nautilus" ,nautilus))) ; For nautilus extension.
735 (synopsis "File sharing for GNOME desktop")
736 (description "GNOME User Share is a small package that binds together
737various free software projects to bring easy to use user-level file
738sharing to the masses.")
739 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 740 (license license:gpl2+)))
b5f01392 741
04b201bb
RG
742(define-public sushi
743 (package
744 (name "sushi")
745 (version "3.32.1")
746 (source (origin
747 (method url-fetch)
748 (uri (string-append "mirror://gnome/sources/" name "/"
749 (version-major+minor version) "/"
750 name "-" version ".tar.xz"))
751 (sha256
752 (base32
753 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
754 (build-system meson-build-system)
755 (arguments
756 `(#:glib-or-gtk? #t
757 #:phases
758 (modify-phases %standard-phases
759 (add-after 'glib-or-gtk-wrap 'wrap-typelib
760 (lambda* (#:key outputs #:allow-other-keys)
761 (let ((prog (string-append (assoc-ref outputs "out")
762 "/bin/sushi")))
763 ;; Put existing typelibs before sushi's deps, so as to correctly
764 ;; infer gdk-pixbuf
765 (wrap-program prog
766 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
767 #t))))))
768 (native-inputs
769 `(("glib:bin" ,glib "bin")
770 ("gettext" ,gettext-minimal)
771 ("gobject-introspection" ,gobject-introspection)
772 ("pkg-config" ,pkg-config)))
773 (inputs
774 `(("clutter" ,clutter)
775 ("clutter-gst" ,clutter-gst)
776 ("clutter-gtk" ,clutter-gtk)
777 ("evince" ,evince) ; For file previewing.
778 ("freetype" ,freetype)
779 ("gdk-pixbuf" ,gdk-pixbuf)
780 ("gjs" ,gjs)
781 ("gst-plugins-base" ,gst-plugins-base)
782 ("gstreamer" ,gstreamer)
783 ("gtksourceview" ,gtksourceview-3)
784 ("harfbuzz" ,harfbuzz)
785 ("libepoxy" ,libepoxy)
786 ("libmusicbrainz" ,libmusicbrainz)
787 ("libxml2" ,libxml2)
788 ("neon" ,neon)
789 ("webkitgtk" ,webkitgtk)))
790 (synopsis "File previewer for the GNOME desktop")
791 (description "Sushi is a DBus-activated service that allows applications to
792preview files on the GNOME desktop.")
793 (home-page "https://gitlab.gnome.org/GNOME/sushi")
794 (license license:gpl2+)))
795
89af0902
RG
796(define-public rygel
797 (package
798 (name "rygel")
799 (version "0.38.3")
800 (source (origin
801 (method url-fetch)
802 (uri (string-append "mirror://gnome/sources/" name "/"
803 (version-major+minor version) "/"
804 name "-" version ".tar.xz"))
805 (sha256
806 (base32
807 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
808 (build-system gnu-build-system)
809 (native-inputs
810 `(("gettext" ,gettext-minimal)
811 ("gobject-introspection" ,gobject-introspection)
812 ("gtk-doc" ,gtk-doc)
813 ("pkg-config" ,pkg-config)
814 ("vala" ,vala)))
815 (inputs
816 `(("gdk-pixbuf" ,gdk-pixbuf)
817 ("gssdp" ,gssdp)
818 ("gstreamer" ,gstreamer)
819 ("gst-plugins-base" ,gst-plugins-base)
820 ("gtk+" ,gtk+)
821 ("gupnp" ,gupnp)
822 ("gupnp-av" ,gupnp-av)
823 ("gupnp-dlna" ,gupnp-dlna)
824 ("libgee" ,libgee)
825 ("libmediaart" ,libmediaart)
826 ("libsoup" ,libsoup)
827 ("libxslt" ,libxslt)
828 ("libunistring" ,libunistring)
829 ("tracker" ,tracker)))
830 (synopsis "Share audio, video, and pictures with other devices")
831 (description
832 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
833MediaRenderer}) for GNOME that allows you to easily share audio, video, and
834pictures, and to control a media player on your home network.
835
836Rygel achieves interoperability with other devices by trying to conform to the
837strict requirements of DLNA and by converting media on-the-fly to formats that
838client devices can handle.")
839 (home-page "https://wiki.gnome.org/Projects/Rygel")
840 (license (list
841 ;; For logo (data/icons/*).
842 license:cc-by-sa3.0
843 ;; For all others.
844 license:lgpl2.1+))))
845
47e87093
RG
846(define-public libnma
847 (package
b1da33d9
BW
848 (name "libnma")
849 (version "1.8.28")
850 (source (origin
851 (method url-fetch)
852 (uri (string-append "mirror://gnome/sources/" name "/"
853 (version-major+minor version) "/"
854 name "-" version ".tar.xz"))
855 (sha256
856 (base32
857 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
858 (build-system meson-build-system)
859 (arguments
860 `(#:phases
861 (modify-phases %standard-phases
862 (add-after 'unpack 'patch-docbook-xml
863 (lambda* (#:key inputs #:allow-other-keys)
864 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
865 "/xml/dtd/docbook")))
866 (substitute* "libnma-docs.xml"
867 (("http://.*/docbookx\\.dtd")
868 (string-append xmldoc "/docbookx.dtd")))
869 #t))))))
870 (native-inputs
871 `(("docbook-xml" ,docbook-xml-4.3)
872 ("gettext" ,gettext-minimal)
873 ("glib:bin" ,glib "bin")
874 ("gtk-doc" ,gtk-doc)
875 ("gobject-introspection" ,gobject-introspection)
876 ("pkg-config" ,pkg-config)
877 ("vala" ,vala)))
878 (inputs
879 `(("gcr" ,gcr)
880 ("gtk+" ,gtk+)
881 ("iso-codes" ,iso-codes)
882 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
883 ("network-manager" ,network-manager)))
884 (synopsis "Network Manager's applet library")
885 (description "Libnma is an applet library for Network Manager. It was
47e87093
RG
886initially part of network-manager-applet and has now become a separate
887project.")
c25ca6b7
BW
888 (home-page "https://gitlab.gnome.org/GNOME/libnma")
889 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
890 ;; "LGPL-2.1+".
891 (license license:gpl2+)))
47e87093 892
30416265
RG
893(define-public gnome-menus
894 (package
895 (name "gnome-menus")
896 (version "3.32.0")
897 (source (origin
898 (method url-fetch)
899 (uri (string-append "mirror://gnome/sources/gnome-menus/"
900 (version-major+minor version) "/"
901 name "-" version ".tar.xz"))
902 (sha256
903 (base32
904 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
905 (build-system gnu-build-system)
906 (native-inputs
907 `(("gettext" ,gettext-minimal)
908 ("glib" ,glib)
909 ("pkg-config" ,pkg-config)))
910 (synopsis "Menu support for GNOME desktop")
911 (description "GNOME Menus contains the libgnome-menu library, the layout
912configuration files for the GNOME menu, as well as a simple menu editor.")
913 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 914 (license license:lgpl2.0+)))
30416265 915
d61a894b
CB
916(define-public deja-dup
917 (package
918 (name "deja-dup")
899ffa13 919 (version "40.6")
d61a894b 920 (source (origin
899ffa13
BW
921 (method url-fetch)
922 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
923 version "/deja-dup-" version ".tar.bz2"))
924 (sha256
925 (base32
926 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
927 (build-system meson-build-system)
d61a894b 928 (arguments
899ffa13
BW
929 `(#:glib-or-gtk? #t
930 #:configure-flags
931 (list
932 ;; Otherwise, the RUNPATH will lack the final path component.
933 (string-append "-Dc_link_args=-Wl,-rpath="
934 (assoc-ref %outputs "out") "/lib/deja-dup"))
d61a894b
CB
935 #:phases
936 (modify-phases %standard-phases
899ffa13
BW
937 (add-after 'unpack 'patch-paths
938 (lambda* (#:key inputs #:allow-other-keys)
939 (let ((python (assoc-ref inputs "python")))
940 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
941 "libdeja/tests/scripts/instance-error.test")
942 (("/bin/rm")
943 (which "rm")))
944 (substitute* "libdeja/tests/runner.vala"
945 (("/bin/sh")
946 (which "sh")))
947 (substitute* "libdeja/tests/scripts/instance-error.test"
948 (("`which python3`")
949 (string-append python "/bin/python3"))))))
950 (add-after 'unpack 'patch-libgpg-error
951 (lambda* (#:key inputs #:allow-other-keys)
952 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
953 (substitute* "meson.build"
954 (("(gpgerror_libs = ).*" _ var)
955 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
956 #t))
957 (add-after 'unpack 'skip-gtk-update-icon-cache
958 ;; Don't create 'icon-theme.cache'.
959 (lambda _
960 (substitute* "data/post-install.sh"
961 (("gtk-update-icon-cache") "true"))
962 #t)))))
d61a894b
CB
963 (inputs
964 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
d61a894b 965 ("duplicity" ,duplicity)
899ffa13
BW
966 ("python" ,python)
967 ("python-pygobject" ,python-pygobject)
d61a894b 968 ("gtk+" ,gtk+)
899ffa13 969 ("json-glib" ,json-glib)
d61a894b 970 ("libnotify" ,libnotify)
899ffa13 971 ("libgpg-error" ,libgpg-error)
d61a894b 972 ("libsecret" ,libsecret)
899ffa13 973 ("libsoup" ,libsoup)
d61a894b
CB
974 ("packagekit" ,packagekit)))
975 (native-inputs
899ffa13
BW
976 `(("appstream-glib" ,appstream-glib)
977 ("desktop-file-utils" ,desktop-file-utils)
d61a894b 978 ("gettext" ,gettext-minimal)
899ffa13
BW
979 ("glib" ,glib "bin") ; for glib-compile-schemas.
980 ("gobject-introspection" ,gobject-introspection)
d61a894b 981 ("itstool" ,itstool)
899ffa13
BW
982 ("pkg-config" ,pkg-config)
983 ("vala" ,vala)))
984 (home-page "https://wiki.gnome.org/Apps/DejaDup")
d61a894b
CB
985 (synopsis "Simple backup tool, for regular encrypted backups")
986 (description
987 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
988uses duplicity as the backend, which supports incremental backups and storage
989either on a local, or remote machine via a number of methods.")
990 (license license:gpl3+)))
991
823b77fb
RG
992(define-public gnome-user-docs
993 (package
994 (name "gnome-user-docs")
995 (version "3.32.3")
996 (source
997 (origin
998 (method url-fetch)
999 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1000 (version-major+minor version)
1001 "/gnome-user-docs-" version ".tar.xz"))
1002 (sha256
1003 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1004 (build-system gnu-build-system)
1005 (native-inputs
1006 `(("gettext" ,gettext-minimal)
1007 ("itstool" ,itstool)
1008 ("pkg-config" ,pkg-config)
1009 ("xmllint" ,libxml2)))
1010 (synopsis "User documentation for the GNOME desktop")
1011 (description
1012 "The GNOME User Documentation explains how to use the GNOME desktop and its
1013components. It covers usage and setup of the core GNOME programs by end-users
1014and system administrators.")
1015 (home-page "https://live.gnome.org/DocumentationProject")
1016 (license license:cc-by3.0)))
1017
be93299d
RG
1018(define-public gnome-getting-started-docs
1019 (package
1020 (name "gnome-getting-started-docs")
1021 (version "3.32.2")
1022 (source
1023 (origin
1024 (method url-fetch)
1025 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1026 (version-major+minor version)
1027 "/gnome-getting-started-docs-" version ".tar.xz"))
1028 (sha256
1029 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1030 (build-system gnu-build-system)
1031 (native-inputs
1032 `(("gettext" ,gettext-minimal)
1033 ("itstool" ,itstool)
1034 ("pkg-config" ,pkg-config)
1035 ("xmllint" ,libxml2)))
1036 (synopsis "Help to get new users started with the GNOME desktop")
1037 (description
1038 "The GNOME Getting Started Documentation contains GNOME's intuitive
1039\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1040
1041It is normally used together with @command{gnome-initial-setup}, but is also
1042useful as a tutorial and users' guide for new or less experienced users.")
1043 (home-page "https://live.gnome.org/DocumentationProject")
1044 (license license:cc-by-sa3.0)))
1045
a56be436
RJ
1046(define-public dia
1047 ;; This version from GNOME's repository includes fixes for compiling with
1048 ;; recent versions of the build tools. The latest activity on the
1049 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
f8687cb2
TGR
1050 ;; fixes since.
1051 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1052 (revision "2"))
a56be436
RJ
1053 (package
1054 (name "dia")
f8687cb2 1055 (version (git-version "0.97.3" revision commit))
a56be436
RJ
1056 (source (origin
1057 (method git-fetch)
1058 (uri (git-reference
914c8cdf 1059 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1060 (commit commit)))
914c8cdf 1061 (file-name (git-file-name name version))
a56be436
RJ
1062 (sha256
1063 (base32
f8687cb2
TGR
1064 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1065 (build-system meson-build-system)
a56be436 1066 (inputs
f8687cb2 1067 `(("graphene" ,graphene)
a56be436
RJ
1068 ("gtk+" ,gtk+-2)
1069 ("libxml2" ,libxml2)
f8687cb2
TGR
1070 ("libxslt" ,libxslt)
1071 ("poppler" ,poppler)
1072 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1073 ;; ERROR: Unknown method "dependency" in object.
1074 ("python-2" ,python-2)))
a56be436 1075 (native-inputs
f8687cb2
TGR
1076 `(("appstream-glib" ,appstream-glib)
1077 ("docbook-xsl" ,docbook-xsl)
a315afa3 1078 ("glib" ,glib "bin")
f8687cb2
TGR
1079 ("intltool" ,intltool)
1080 ("pkg-config" ,pkg-config)))
a56be436
RJ
1081 (home-page "https://wiki.gnome.org/Apps/Dia")
1082 (synopsis "Diagram creation for GNOME")
1083 (description "Dia can be used to draw different types of diagrams, and
1084includes support for UML static structure diagrams (class diagrams), entity
1085relationship modeling, and network diagrams. The program supports various file
1086formats like PNG, SVG, PDF and EPS.")
1087 (license license:gpl2+))))
1088
d0b19e44
RW
1089;; This is the unstable release, but it is required for the current stable
1090;; release of gvfs (1.38.1).
adc5cb1b
KK
1091(define-public libgdata
1092 (package
1093 (name "libgdata")
d0b19e44 1094 (version "0.17.9")
adc5cb1b
KK
1095 (source (origin
1096 (method url-fetch)
1097 (uri (string-append "mirror://gnome/sources/" name "/"
1098 (version-major+minor version) "/"
1099 name "-" version ".tar.xz"))
1100 (sha256
1101 (base32
d0b19e44 1102 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1103 (build-system gnu-build-system)
1104 (arguments
1105 '(#:phases
1106 (modify-phases %standard-phases
448052b7
TGR
1107 (add-before 'check 'disable-failing-tests
1108 (lambda _
1109 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1110 ;; They have been removed in libgdata 0.17.6, so just do the same.
1111 (substitute* "gdata/tests/Makefile"
1112 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1113 #t)))))
1114 (native-inputs
1115 `(("glib:bin" ,glib "bin")
1116 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1117 ("intltool" ,intltool)
1118 ("pkg-config" ,pkg-config)
1119 ("uhttpmock" ,uhttpmock)))
1120 (inputs
1121 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1122 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1123 (propagated-inputs
1124 `(("gcr" ,gcr)
d0b19e44 1125 ("glib" ,glib)
14c297fd 1126 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1127 ("json-glib" ,json-glib)
adc5cb1b 1128 ("liboauth" ,liboauth)
d0b19e44 1129 ("libsoup" ,libsoup)
adc5cb1b
KK
1130 ("libxml2" ,libxml2)))
1131 (home-page "https://wiki.gnome.org/Projects/libgdata")
1132 (synopsis "Library for accessing online service APIs")
1133 (description
1134 "libgdata is a GLib-based library for accessing online service APIs using
1135the GData protocol — most notably, Google's services. It provides APIs to
1136access the common Google services, and has full asynchronous support.")
1137 (license license:lgpl2.1+)))
1138
94e10cf4
KK
1139(define-public libgxps
1140 (package
1141 (name "libgxps")
66470a5a 1142 (version "0.3.1")
94e10cf4
KK
1143 (source (origin
1144 (method url-fetch)
7f10628c 1145 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1146 (version-major+minor version) "/"
1147 name "-" version ".tar.xz"))
1148 (sha256
1149 (base32
66470a5a 1150 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1151 (build-system meson-build-system)
94e10cf4
KK
1152 (native-inputs
1153 `(("gobject-introspection" ,gobject-introspection)
1154 ("pkg-config" ,pkg-config)))
1155 (inputs
c8d62d93 1156 `(("gtk+" ,gtk+)
b6b3e512 1157 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1158 ("lcms" ,lcms)
0a6e9e13 1159 ("libtiff" ,libtiff)))
c8d62d93
MB
1160 (propagated-inputs
1161 ;; In Requires of libgxps.pc.
1162 `(("cairo" ,cairo)
1163 ("glib" ,glib)
1164 ("libarchive" ,libarchive)))
94e10cf4
KK
1165 (home-page "https://wiki.gnome.org/Projects/libgxps")
1166 (synopsis "GObject-based library for handling and rendering XPS documents")
1167 (description
1168 "libgxps is a GObject-based library for handling and rendering XPS
1169documents. This package also contains binaries that can convert XPS documents
1170to other formats.")
1171 (license license:lgpl2.1+)))
1172
4e09f57a
RG
1173(define-public gnome-characters
1174 (package
1175 (name "gnome-characters")
1176 (version "3.30.0")
1177 (source
1178 (origin
1179 (method url-fetch)
1180 (uri (string-append "mirror://gnome/sources/"
1181 "gnome-characters/" (version-major+minor version)
1182 "/gnome-characters-" version ".tar.xz"))
1183 (sha256
1184 (base32
1185 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1186 (build-system meson-build-system)
5757c641 1187 (arguments
1188 `(#:glib-or-gtk? #t
1189 #:phases (modify-phases %standard-phases
1190 (add-after 'install 'wrap
1191 (lambda* (#:key outputs #:allow-other-keys)
1192 ;; GNOME Characters needs Typelib files from GTK and
1193 ;; gnome-desktop.
1194 (wrap-program (string-append (assoc-ref outputs "out")
1195 "/bin/gnome-characters")
1196 `("GI_TYPELIB_PATH" ":" prefix
1197 (,(getenv "GI_TYPELIB_PATH"))))
1198 #t)))))
4e09f57a
RG
1199 (native-inputs
1200 `(("gettext" ,gettext-minimal)
1201 ("glib:bin" ,glib "bin")
1202 ("gtk+:bin" ,gtk+ "bin")
1203 ("pkg-config" ,pkg-config)
1204 ("python" ,python-minimal)))
1205 (inputs
1206 `(("gjs" ,gjs)
1207 ("gtk+" ,gtk+)
5757c641 1208 ("libunistring" ,libunistring)
1209 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1210 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1211 (synopsis "Find and insert unusual characters")
1212 (description "Characters is a simple utility application to find
1213and insert unusual characters. It allows you to quickly find the
1214character you are looking for by searching for keywords.")
1215 (license license:bsd-3)))
1216
7aab13f1
ML
1217(define-public gnome-common
1218 (package
1219 (name "gnome-common")
af83490d 1220 (version "3.18.0")
7aab13f1
ML
1221 (source
1222 (origin
1223 (method url-fetch)
1224 (uri (string-append "mirror://gnome/sources/" name "/"
1225 (version-major+minor version) "/"
1226 name "-" version ".tar.xz"))
1227 (sha256
1228 (base32
af83490d 1229 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1230 (build-system gnu-build-system)
1231 (home-page "https://www.gnome.org/")
1232 (synopsis "Bootstrap GNOME modules built from Git")
1233 (description "gnome-common contains various files needed to bootstrap
1234GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1235can be used to configure a source directory checked out from Git and some
1236commonly used macros.")
1237 (license license:gpl2+)))
1238
4e868d22
RG
1239(define-public gnome-contacts
1240 (package
1241 (name "gnome-contacts")
b3492e39 1242 (version "3.34")
4e868d22
RG
1243 (source (origin
1244 (method url-fetch)
1245 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1246 (version-major+minor version) "/"
1247 name "-" version ".tar.xz"))
1248 (sha256
1249 (base32
b3492e39 1250 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
4e868d22
RG
1251 (build-system meson-build-system)
1252 (arguments
b3492e39
KK
1253 `(#:configure-flags '("-Dcheese=false")
1254 #:phases
4e868d22
RG
1255 (modify-phases %standard-phases
1256 (add-after 'unpack 'generate-vapis
1257 (lambda* (#:key inputs #:allow-other-keys)
1258 ;; To generate goa's missing .vapi file
1259 (define goa
1260 (assoc-ref inputs "gnome-online-accounts:lib"))
1261
1262 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1263 "--library=goa-1.0"
1264 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
b3492e39
KK
1265 #t))
1266 (add-after 'unpack 'skip-gtk-update-icon-cache
1267 ;; Don't create 'icon-theme.cache'.
1268 (lambda _
1269 (substitute* "build-aux/meson_post_install.py"
1270 (("gtk-update-icon-cache") "true"))
4e868d22
RG
1271 #t)))))
1272 (native-inputs
1273 `(("glib:bin" ,glib "bin")
4e868d22
RG
1274 ("pkg-config" ,pkg-config)))
1275 (inputs
b3492e39 1276 `(("docbook-xml" ,docbook-xml)
4e868d22
RG
1277 ("dockbook-xsl" ,docbook-xsl)
1278 ("evolution-data-server" ,evolution-data-server)
1279 ("gettext" ,gettext-minimal)
1280 ("gnome-desktop" ,gnome-desktop)
1281 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1282 ("gobject-introspection" ,gobject-introspection)
1283 ("gst-plugins-base" ,gst-plugins-base)
1284 ("gtk+" ,gtk+)
1285 ("libgee" ,libgee)
1286 ("libxslt" ,libxslt)
1287 ("telepathy-glib" ,telepathy-glib)
1288 ("vala" ,vala)))
1289 (propagated-inputs
1290 `(("folks", folks)
1291 ("telepathy-mission-control" ,telepathy-mission-control)))
1292 (synopsis "GNOME's integrated address book")
1293 (description
1294 "GNOME Contacts organizes your contact information from online and
1295offline sources, providing a centralized place for managing your contacts.")
1296 (home-page "https://wiki.gnome.org/Apps/Contacts")
1297 (license license:gpl2+)))
1298
9cc98f8a
CR
1299(define-public gnome-desktop
1300 (package
1301 (name "gnome-desktop")
8a7afc81 1302 (version "3.34.2")
9cc98f8a
CR
1303 (source
1304 (origin
1305 (method url-fetch)
b38e45d8
EB
1306 (uri (string-append "mirror://gnome/sources/" name "/"
1307 (version-major+minor version) "/"
9cc98f8a
CR
1308 name "-" version ".tar.xz"))
1309 (sha256
1310 (base32
8a7afc81 1311 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
e8a26caa 1312 (build-system meson-build-system)
a0fe7c06
CB
1313 (arguments
1314 '(#:phases
1315 (modify-phases %standard-phases
1316 (add-before 'configure 'patch-path
1317 (lambda* (#:key inputs #:allow-other-keys)
1318 (let ((libc (assoc-ref inputs "libc")))
1319 (substitute* "libgnome-desktop/gnome-languages.c"
1320 (("\"locale\"")
1321 (string-append "\"" libc "/bin/locale\"")))
e8a26caa 1322 #t)))
3857aba7
CB
1323 (add-before 'configure 'patch-bubblewrap
1324 (lambda* (#:key inputs #:allow-other-keys)
1325 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
1326 (("\"bwrap\",")
1327 (string-append "\"" (which "bwrap") "\","))
1328 (("\"--ro-bind\", \"/usr\", \"/usr\",")
1329 (string-append "\"--ro-bind\", \""
1330 (%store-directory)
1331 "\", \""
1332 (%store-directory)
1333 "\","))
1334 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
1335 #t))
e8a26caa
KK
1336 (add-before 'check 'pre-check
1337 (lambda* (#:key inputs #:allow-other-keys)
1338 ;; Tests require a running X server and locales.
1339 (system "Xvfb :1 &")
1340 (setenv "DISPLAY" ":1")
1341 (setenv "GUIX_LOCPATH"
1342 (string-append (assoc-ref inputs "glibc-locales")
1343 "/lib/locale"))
1344 #t)))))
9cc98f8a 1345 (native-inputs
e8a26caa
KK
1346 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1347 ("glibc-locales" ,glibc-locales) ; for tests
1348 ("gobject-introspection" ,gobject-introspection)
a8340482 1349 ("itstool" ,itstool)
bcb354ad
SB
1350 ("intltool" ,intltool)
1351 ("pkg-config" ,pkg-config)
e8a26caa
KK
1352 ("xmllint" ,libxml2)
1353 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
1354 (propagated-inputs
1355 ;; Required by gnome-desktop-3.0.pc.
1356 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 1357 ("gtk+" ,gtk+)
9cc98f8a 1358 ("iso-codes" ,iso-codes)
9863ce20 1359 ("libseccomp" ,libseccomp)
9cc98f8a 1360 ("libx11" ,libx11)
e8a26caa
KK
1361 ("xkeyboard-config" ,xkeyboard-config)))
1362 (inputs
1363 `(("gdk-pixbuf" ,gdk-pixbuf)
1364 ("glib" ,glib)
3857aba7 1365 ("bubblewrap" ,bubblewrap)
9cc98f8a
CR
1366 ("libxext" ,libxext)
1367 ("libxkbfile" ,libxkbfile)
e8a26caa 1368 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
1369 (home-page "https://www.gnome.org/")
1370 (synopsis
35b9e423 1371 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
1372 (description
1373 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
1374on the desktop, but that cannot live in the platform for various reasons.
1375There is no API or ABI guarantee, although we are doing our best to provide
1376stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
1377
1378The gnome-about program helps find which version of GNOME is installed.")
1379 ; Some bits under the LGPL.
1dd26275 1380 (license license:gpl2+)))
9cc98f8a 1381
995b7261
AE
1382(define-public gnome-doc-utils
1383 (package
1384 (name "gnome-doc-utils")
1385 (version "0.20.10")
1386 (source
1387 (origin
1388 (method url-fetch)
b38e45d8
EB
1389 (uri (string-append "mirror://gnome/sources/" name "/"
1390 (version-major+minor version) "/"
995b7261
AE
1391 name "-" version ".tar.xz"))
1392 (sha256
1393 (base32
1394 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1395 (build-system gnu-build-system)
c4c4cc05 1396 (native-inputs
995b7261 1397 `(("intltool" ,intltool)
b4ce6300 1398 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 1399 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
1400 ("libxml2" ,libxml2)
1401 ("libxslt" ,libxslt)
1402 ("pkg-config" ,pkg-config)
1403 ("python-2" ,python-2)))
995b7261
AE
1404 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1405 (synopsis
1406 "Documentation utilities for the Gnome project")
1407 (description
1408 "Gnome-doc-utils is a collection of documentation utilities for the
1409Gnome project. It includes xml2po tool which makes it easier to translate
1410and keep up to date translations of documentation.")
1dd26275 1411 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 1412
6c4f7022
DC
1413(define-public gnome-disk-utility
1414 (package
1415 (name "gnome-disk-utility")
262e660e 1416 (version "3.34.0")
6c4f7022
DC
1417 (source (origin
1418 (method url-fetch)
1419 (uri (string-append "mirror://gnome/sources/" name "/"
1420 (version-major+minor version) "/"
1421 name "-" version ".tar.xz"))
1422 (sha256
1423 (base32
262e660e 1424 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
4b9a65bf 1425 (build-system meson-build-system)
321c73c3 1426 (arguments
262e660e
KK
1427 '(#:configure-flags '("-Dlogind=libelogind")
1428 #:phases
321c73c3
EF
1429 (modify-phases %standard-phases
1430 (add-after 'unpack 'skip-gtk-update-icon-cache
1431 ;; Don't create 'icon-theme.cache'.
1432 (lambda _
1433 (substitute* "meson_post_install.py"
1434 (("gtk-update-icon-cache") "true"))
1435 #t)))))
6c4f7022
DC
1436 (native-inputs
1437 `(("glib:bin" ,glib "bin")
1438 ("intltool" ,intltool)
1439 ("pkg-config" ,pkg-config)
1440 ("docbook-xml" ,docbook-xml)
1441 ("docbook-xsl" ,docbook-xsl)
1442 ("libxml2" ,libxml2)
1443 ("libxslt" ,libxslt)))
1444 (inputs
262e660e
KK
1445 `(("elogind" ,elogind)
1446 ("glib" ,glib)
6c4f7022
DC
1447 ("appstream-glib" ,appstream-glib)
1448 ("gnome-settings-daemon" ,gnome-settings-daemon)
1449 ("gtk+" ,gtk+)
1450 ("libcanberra" ,libcanberra)
1451 ("libdvdread" ,libdvdread)
1452 ("libnotify" ,libnotify)
1453 ("libpwquality" ,libpwquality)
1454 ("libsecret" ,libsecret)
1455 ("udisks" ,udisks)))
1456 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1457 (synopsis "Disk management utility for GNOME")
1458 (description "Disk management utility for GNOME.")
1459 (license license:gpl2+)))
1460
3d217317
RG
1461(define-public gnome-font-viewer
1462 (package
1463 (name "gnome-font-viewer")
1464 (version "3.30.0")
1465 (source (origin
1466 (method url-fetch)
1467 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1468 (version-major+minor version)
1469 "/gnome-font-viewer-" version ".tar.xz"))
1470 (sha256
1471 (base32
1472 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1473 (build-system meson-build-system)
1474 (arguments
1475 '(#:phases
1476 (modify-phases %standard-phases
1477 (add-after 'unpack 'patch-post-install-script
1478 (lambda _
1479 (substitute* "meson-postinstall.sh"
1480 (("update-desktop-database") (which "true")))
1481 #t)))))
1482 (native-inputs
1483 `(("gettext" ,gettext-minimal)
1484 ("glib:bin" ,glib "bin")
1485 ("pkg-config" ,pkg-config)))
1486 (inputs
1487 `(("glib" ,glib)
1488 ("gnome-desktop" ,gnome-desktop)
1489 ("gtk+" ,gtk+)))
1490 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1491 (synopsis "GNOME Fonts")
1492 (description "Application to show you the fonts installed on your computer
1493for your use as thumbnails. Selecting any thumbnails shows the full view of how
1494the font would look under various sizes.")
1495 (license license:gpl2+)))
1496
8ff49011
RW
1497(define-public gcr
1498 (package
1499 (name "gcr")
1de804da 1500 (version "3.34.0")
8ff49011 1501 (source (origin
0daf0efb
RW
1502 (method url-fetch)
1503 (uri (string-append "mirror://gnome/sources/" name "/"
1504 (version-major+minor version) "/"
1505 name "-" version ".tar.xz"))
1506 (sha256
1507 (base32
1de804da 1508 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
1509 (build-system gnu-build-system)
1510 (arguments
0daf0efb
RW
1511 '(#:phases
1512 (modify-phases %standard-phases
1513 ;; These fail because /var/lib/dbus/machine-id is not present in the
1514 ;; build environment.
1515 (add-after 'unpack 'disable-failing-tests
1516 (lambda _
1de804da
MB
1517 (substitute* "Makefile.in"
1518 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1519 ""))
0daf0efb
RW
1520 #t))
1521 (add-before 'check 'pre-check
1522 (lambda _
1523 ;; Some tests expect to write to $HOME.
1524 (setenv "HOME" "/tmp")
1525 #t)))))
8ff49011
RW
1526 (inputs
1527 `(("dbus" ,dbus)
0daf0efb 1528 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
1529 ("libgcrypt" ,libgcrypt)))
1530 (native-inputs
1de804da 1531 `(("python" ,python-wrapper) ;for tests
8ff49011 1532 ("pkg-config" ,pkg-config)
1de804da 1533 ("gettext" ,gettext-minimal)
8ff49011 1534 ("glib" ,glib "bin")
2af4f5b0 1535 ("gobject-introspection" ,gobject-introspection)
0daf0efb 1536 ("libxml2" ,libxml2)
bea6b829 1537 ("vala" ,vala)
2af4f5b0 1538 ("xsltproc" ,libxslt)))
8ff49011
RW
1539 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1540 (propagated-inputs
1541 `(("p11-kit" ,p11-kit)
1542 ("glib" ,glib)
1543 ("gtk+" ,gtk+)))
f032d0be 1544 (home-page "https://www.gnome.org")
8ff49011
RW
1545 (synopsis "Libraries for displaying certificates and accessing key stores")
1546 (description
1547 "The GCR package contains libraries used for displaying certificates and
1548accessing key stores. It also provides the viewer for crypto files on the
1549GNOME Desktop.")
1550 (license license:lgpl2.1+)))
1551
88e61bd4
MC
1552(define-public gdl
1553 (package
1554 (name "gdl")
1555 (version "3.34.0")
1556 (source (origin
1557 (method git-fetch)
1558 (uri (git-reference
1559 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1560 (commit (string-append "GDL_" (string-map (match-lambda
1561 (#\. #\_)
1562 (c c))
1563 version)))))
1564 (file-name (git-file-name name version))
1565 (sha256
1566 (base32
1567 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1568 (build-system gnu-build-system)
88e61bd4
MC
1569 (native-inputs
1570 `(("autoconf" ,autoconf)
1571 ("automake" ,automake)
1572 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1573 ("gnome-common" ,gnome-common)
1574 ("gtk-doc" ,gtk-doc)
1575 ("intltool" ,intltool)
1576 ("pkg-config" ,pkg-config)
1577 ("libtool" ,libtool)
1578 ("which" ,which)))
1579 (inputs
1580 `(("libxml2" ,libxml2)))
1581 (propagated-inputs
1582 ;; The gdl-3.0.pc file 'Requires' GTK+.
1583 `(("gtk+" ,gtk+)))
1584 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1585 (synopsis "GNOME docking library")
1586 (description "This library provides docking features for gtk+.")
1587 (license license:lgpl2.1+)))
1588
ca3adf26
MC
1589;;; A minimal variant used to break a cycle with Inkscape.
1590(define-public gdl-minimal
1591 (package
1592 (inherit gdl)
1593 (name "gdl-minimal")
1594 (arguments
70cf0113
EF
1595 '(#:phases
1596 (modify-phases %standard-phases
1597 (add-after 'unpack 'disable-doc-generation
1598 ;; XXX: There is no easy way to disable generating the
1599 ;; documentation.
1600 (lambda _
1601 (substitute* "configure.in"
1602 (("GTK_DOC_CHECK.*") "")
1603 (("docs/.*") ""))
1604 (substitute* "Makefile.am"
1605 (("gdl docs po") "gdl po"))
1606 #t)))))
ca3adf26
MC
1607 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
1608
c1354b90
LC
1609(define-public libgnome-keyring
1610 (package
1611 (name "libgnome-keyring")
5e8aec2c 1612 (version "3.12.0")
c1354b90
LC
1613 (source (origin
1614 (method url-fetch)
b38e45d8
EB
1615 (uri (string-append "mirror://gnome/sources/" name "/"
1616 (version-major+minor version) "/"
1617 name "-" version ".tar.xz"))
c1354b90
LC
1618 (sha256
1619 (base32
5e8aec2c 1620 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 1621 (build-system gnu-build-system)
c1354b90 1622 (inputs
c4c4cc05 1623 `(("libgcrypt" ,libgcrypt)
c1354b90 1624 ("dbus" ,dbus)))
c4c4cc05
JD
1625 (native-inputs
1626 `(("pkg-config" ,pkg-config)
426adbe8 1627 ("glib" ,glib "bin")
c4c4cc05 1628 ("intltool" ,intltool)))
c1354b90
LC
1629 (propagated-inputs
1630 ;; Referred to in .h files and .pc.
1631 `(("glib" ,glib)))
f032d0be 1632 (home-page "https://www.gnome.org")
c1354b90
LC
1633 (synopsis "Accessing passwords from the GNOME keyring")
1634 (description
1635 "Client library to access passwords from the GNOME keyring.")
1636
1637 ;; Though a couple of files are LGPLv2.1+.
1dd26275 1638 (license license:lgpl2.0+)))
c1354b90 1639
e99a3d6f
RW
1640(define-public gnome-keyring
1641 (package
1642 (name "gnome-keyring")
14faeadd 1643 (version "3.34.0")
e99a3d6f
RW
1644 (source (origin
1645 (method url-fetch)
1646 (uri (string-append "mirror://gnome/sources/" name "/"
1647 (version-major+minor version) "/"
1648 name "-" version ".tar.xz"))
1649 (sha256
1650 (base32
14faeadd 1651 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
e99a3d6f
RW
1652 (build-system gnu-build-system)
1653 (arguments
1654 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1655 ;not exist
1656 #:configure-flags
1657 (list
1658 (string-append "--with-pkcs11-config="
1659 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1660 (string-append "--with-pkcs11-modules="
1661 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1662 #:phases
1663 (modify-phases %standard-phases
ab35cc6e
RW
1664 (add-after 'unpack 'fix-/bin/sh-reference
1665 (lambda _
1666 (substitute* "po/Makefile.in.in"
1667 (("/bin/sh") (which "sh")))
1668 #t))
5120f24f
RW
1669 (add-after 'unpack 'fix-docbook
1670 (lambda* (#:key inputs #:allow-other-keys)
1671 (substitute* "docs/Makefile.am"
1672 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1673 (string-append (assoc-ref inputs "docbook-xsl")
1674 "/xml/xsl/docbook-xsl-"
1675 ,(package-version docbook-xsl)
1676 "/manpages/docbook.xsl")))
1677 (setenv "XML_CATALOG_FILES"
1678 (string-append (assoc-ref inputs "docbook-xml")
1679 "/xml/dtd/docbook/catalog.xml"))
1680 ;; Rerun the whole thing to avoid version mismatch ("This is
1681 ;; Automake 1.15.1, but the definition used by this
1682 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1683 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1684 (invoke "autoconf")
1685 (invoke "aclocal")
1686 (invoke "automake" "-ac"))))))
e99a3d6f
RW
1687 (inputs
1688 `(("libgcrypt" ,libgcrypt)
1a0b2d82 1689 ("linux-pam" ,linux-pam)
ab35cc6e 1690 ("openssh" ,openssh)
e99a3d6f
RW
1691 ("dbus" ,dbus)
1692 ("gcr" ,gcr)))
1693 (native-inputs
1694 `(("pkg-config" ,pkg-config)
1695 ("glib" ,glib "bin")
5120f24f 1696 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
1697 ("python" ,python-2) ;for tests
1698 ("intltool" ,intltool)
1699 ("autoconf" ,autoconf)
1700 ("automake" ,automake)
1701 ("libxslt" ,libxslt) ;for documentation
1702 ("docbook-xml" ,docbook-xml-4.2)
1703 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1704 (home-page "https://www.gnome.org")
e99a3d6f
RW
1705 (synopsis "Daemon to store passwords and encryption keys")
1706 (description
1707 "gnome-keyring is a program that keeps passwords and other secrets for
1708users. It is run as a daemon in the session, similar to ssh-agent, and other
1709applications locate it via an environment variable or D-Bus.
1710
1711The program can manage several keyrings, each with its own master password,
1712and there is also a session keyring which is never stored to disk, but
1713forgotten when the session ends.")
1714 (license license:lgpl2.1+)))
1715
c1354b90
LC
1716(define-public evince
1717 (package
1718 (name "evince")
de08b5b2 1719 (version "3.36.5")
c1354b90
LC
1720 (source (origin
1721 (method url-fetch)
ac631328 1722 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1723 (version-major+minor version) "/"
ac631328 1724 "evince-" version ".tar.xz"))
c1354b90
LC
1725 (sha256
1726 (base32
de08b5b2 1727 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
121de2e1 1728 (build-system glib-or-gtk-build-system)
c1354b90 1729 (arguments
169b8f77 1730 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
1731 #:phases
1732 (modify-phases %standard-phases
1733 (add-before 'install 'skip-gtk-update-icon-cache
1734 ;; Don't create 'icon-theme.cache'.
1735 (lambda _
1736 (substitute* "data/Makefile"
1737 (("gtk-update-icon-cache") "true"))
1738 #t)))))
c1354b90 1739 (inputs
9a096881
KK
1740 `(("libarchive" ,libarchive)
1741 ("libgxps" ,libgxps)
1742 ("libspectre" ,libspectre)
c769cf9f 1743 ("djvulibre" ,djvulibre)
c1354b90
LC
1744 ("ghostscript" ,ghostscript)
1745 ("poppler" ,poppler)
c769cf9f
SB
1746 ("libtiff" ,libtiff)
1747 ;; TODO:
c769cf9f
SB
1748 ;; Build libkpathsea as a shared library for DVI support.
1749 ;; ("libkpathsea" ,texlive-bin)
1750 ("gnome-desktop" ,gnome-desktop)
c1354b90 1751 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1752 ("gspell" ,gspell)
c1354b90 1753 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1754 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1755 ("gdk-pixbuf" ,gdk-pixbuf)
1756 ("atk" ,atk)
1757 ("pango" ,pango)
1758 ("gtk+" ,gtk+)
1759 ("glib" ,glib)
1760 ("libxml2" ,libxml2)
c1354b90
LC
1761 ("libsm" ,libsm)
1762 ("libice" ,libice)
96e42467 1763 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1764 ("dconf" ,dconf)
1765 ("libcanberra" ,libcanberra)
c769cf9f 1766 ("libsecret" ,libsecret)
a271096b 1767
c1354b90
LC
1768 ;; For tests.
1769 ("dogtail" ,python2-dogtail)))
96e42467 1770 (native-inputs
bcb354ad
SB
1771 `(("itstool" ,itstool)
1772 ("intltool" ,intltool)
426adbe8 1773 ("glib" ,glib "bin")
169b8f77 1774 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
1775 ("pkg-config" ,pkg-config)
1776 ("xmllint" ,libxml2)))
6f64a05e 1777 (home-page "https://www.gnome.org/projects/evince/")
c1354b90
LC
1778 (synopsis "GNOME's document viewer")
1779 (description
1780 "Evince is a document viewer for multiple document formats. It
1781currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1782of Evince is to replace the multiple document viewers that exist
96e42467 1783on the GNOME Desktop with a single simple application.")
1dd26275 1784 (license license:gpl2+)))
c1354b90 1785
22e32e69
AE
1786(define-public gsettings-desktop-schemas
1787 (package
1788 (name "gsettings-desktop-schemas")
8468117e 1789 (version "3.34.0")
22e32e69
AE
1790 (source
1791 (origin
1792 (method url-fetch)
1793 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1794 (version-major+minor version) "/"
22e32e69
AE
1795 name "-" version ".tar.xz"))
1796 (sha256
1797 (base32
8468117e 1798 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
c900dabd 1799 (build-system meson-build-system)
65209ffa
LC
1800 (arguments
1801 '(#:phases (modify-phases %standard-phases
3861fb1c 1802 (add-after 'unpack 'patch-schemas
65209ffa 1803 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
1804 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1805 (substitute* (find-files "schemas"
1806 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
1807 ;; Provide the correct file name of the default GNOME
1808 ;; background, 'adwaita-timed.xml'.
65209ffa 1809 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
1810 (string-append theme "/share/backgrounds/gnome"))
1811 ;; Do not reference fonts, that may not exist.
1812 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 1813 #t))))))
22e32e69 1814 (inputs
65209ffa
LC
1815 `(("glib" ,glib)
1816 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1817 (native-inputs
1818 `(("intltool" ,intltool)
426adbe8 1819 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1820 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1821 ("pkg-config" ,pkg-config)))
1822 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1823 (synopsis
1824 "GNOME settings for various desktop components")
1825 (description
1826 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1827for settings shared by various components of the GNOME desktop.")
1dd26275 1828 (license license:lgpl2.1+)))
22e32e69 1829
27477d2d
AE
1830(define-public icon-naming-utils
1831 (package
1832 (name "icon-naming-utils")
1833 (version "0.8.90")
1834 (source
1835 (origin
1836 (method url-fetch)
5cc3096c 1837 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1838 version ".tar.bz2"))
1839 (sha256
1840 (base32
1841 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1842 (build-system gnu-build-system)
1843 (inputs
1844 `(("perl" ,perl)
1845 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1846 (arguments
1847 '(#:phases
dc1d3cde
KK
1848 (modify-phases %standard-phases
1849 (add-after 'install 'set-load-paths
1850 ;; Tell 'icon-name-mapping' where XML::Simple is.
1851 (lambda* (#:key outputs #:allow-other-keys)
1852 (let* ((out (assoc-ref outputs "out"))
1853 (prog (string-append out "/libexec/icon-name-mapping")))
1854 (wrap-program
1855 prog
1856 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1857 #t)))))
27477d2d
AE
1858 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1859 (synopsis
1860 "Utility to implement the Freedesktop Icon Naming Specification")
1861 (description
1862 "To help with the transition to the Freedesktop Icon Naming
1863Specification, the icon naming utility maps the icon names used by the
1864GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1865 (license license:lgpl2.1+)))
27477d2d 1866
7d3f3651
AE
1867(define-public gnome-icon-theme
1868 (package
1869 (name "gnome-icon-theme")
b32f58dd 1870 (version "3.12.0")
7d3f3651
AE
1871 (source
1872 (origin
1873 (method url-fetch)
1874 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1875 (version-major+minor version) "/"
7d3f3651
AE
1876 name "-" version ".tar.xz"))
1877 (sha256
1878 (base32
b32f58dd 1879 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1880 (build-system gnu-build-system)
5613c27d
SB
1881 (arguments
1882 '(#:configure-flags
1883 ;; Don't create 'icon-theme.cache'.
1884 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1885 (true (string-append coreutils "/bin/true")))
1886 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1887 (native-inputs
5613c27d 1888 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1889 ("intltool" ,intltool)
1890 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1891 (home-page "https://wiki.gnome.org/Personalization")
1892 (synopsis "GNOME icon theme")
1893 (description "Icons for the GNOME desktop.")
1dd26275 1894 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1895
14eeefa2
SB
1896;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1897(define-public adwaita-icon-theme
1898 (package (inherit gnome-icon-theme)
1899 (name "adwaita-icon-theme")
e21788f2 1900 (version "3.34.3")
14eeefa2
SB
1901 (source (origin
1902 (method url-fetch)
1903 (uri (string-append "mirror://gnome/sources/" name "/"
1904 (version-major+minor version) "/"
1905 name "-" version ".tar.xz"))
1906 (sha256
1907 (base32
e21788f2 1908 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
5613c27d
SB
1909 (native-inputs
1910 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1911
ae792dba
RW
1912(define-public tango-icon-theme
1913 (package
1914 (name "tango-icon-theme")
1915 (version "0.8.90")
1916 (source (origin
1917 (method url-fetch)
1918 (uri (string-append "http://tango.freedesktop.org/releases/"
1919 "tango-icon-theme-" version ".tar.bz2"))
1920 (sha256
1921 (base32
1922 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1923 (build-system gnu-build-system)
1924 (native-inputs
1925 `(("icon-naming-utils" ,icon-naming-utils)
1926 ("intltool" ,intltool)
1927 ("imagemagick" ,imagemagick)
1928 ("pkg-config" ,pkg-config)))
1929 (home-page "http://tango-project.org/")
1930 (synopsis "Tango icon theme")
1931 (description "This is an icon theme that follows the Tango visual
1932guidelines.")
1933 (license license:public-domain)))
1934
9167f8e6
LC
1935(define-public shared-mime-info
1936 (package
1937 (name "shared-mime-info")
404e386e 1938 (version "1.15")
9167f8e6
LC
1939 (source (origin
1940 (method url-fetch)
404e386e
MB
1941 (uri (string-append
1942 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1943 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1944 ".tar.xz"))
9167f8e6
LC
1945 (sha256
1946 (base32
404e386e 1947 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
1948 (build-system gnu-build-system)
1949 (arguments
1950 ;; The build system appears not to be parallel-safe.
1951 '(#:parallel-build? #f))
1952 (inputs
1953 `(("glib" ,glib)
c4c4cc05 1954 ("libxml2" ,libxml2)))
9167f8e6 1955 (native-inputs
404e386e
MB
1956 `(("gettext" ,gettext-minimal)
1957 ("itstool" ,itstool)
c4c4cc05 1958 ("pkg-config" ,pkg-config)))
57e7d748 1959 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1960 (synopsis "Database of common MIME types")
1961 (description
1962 "The shared-mime-info package contains the core database of common types
1963and the update-mime-database command used to extend it. It requires glib2 to
1964be installed for building the update command. Additionally, it uses intltool
1965for translations, though this is only a dependency for the maintainers. This
1966database is translated at Transifex.")
1dd26275 1967 (license license:gpl2+)))
9167f8e6 1968
dd1fcddc
CB
1969(define-public system-config-printer
1970 (package
1971 (name "system-config-printer")
fa01e10d 1972 (version "1.5.12")
a5643044
TGR
1973 (source
1974 (origin
1975 (method url-fetch)
1976 (uri (string-append
1977 "https://github.com/OpenPrinting/system-config-printer/releases/"
1978 "download/" version
1979 "/system-config-printer-" version ".tar.xz"))
1980 (sha256
fa01e10d 1981 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
1982 (build-system glib-or-gtk-build-system)
1983 (arguments
1984 `(#:imported-modules ((guix build python-build-system)
1985 ,@%glib-or-gtk-build-system-modules)
1986 #:phases
1987 (modify-phases %standard-phases
1988 (add-after 'unpack 'patch-Makefile.am
1989 (lambda _
1990 ;; The Makefile generates some scripts, so set a valid shebang
1991 (substitute* "Makefile.am"
1992 (("/bin/bash") (which "bash")))
1993 (delete-file "configure")
1994 #t))
1995 (add-after 'unpack 'patch-docbook-xml
1996 (lambda* (#:key inputs #:allow-other-keys)
1997 ;; Modify the man XML otherwise xmlto tries to access the network
1998 (substitute* "man/system-config-printer.xml"
1999 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2000 (string-append (assoc-ref inputs "docbook-xml")
2001 "/xml/dtd/docbook/")))
2002 #t))
2003 (add-after 'install 'wrap-for-python
2004 (@@ (guix build python-build-system) wrap))
2005 (add-after 'install 'wrap
2006 (lambda* (#:key outputs #:allow-other-keys)
2007 (let ((out (assoc-ref outputs "out"))
2008 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2009 (for-each
2010 (lambda (program)
2011 (wrap-program program
2012 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2013 (map (lambda (name)
2014 (string-append out "/bin/" name))
2015 '("system-config-printer"
2016 "system-config-printer-applet"
2017 "install-printerdriver"
2018 "scp-dbus-service"))))
2019 #t)))))
2020 (inputs
2021 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2022 ("gobject-introspection" ,gobject-introspection)
2023 ("python" ,python)
2024 ("cups" ,cups)
92b9cdd5 2025 ("gtk+" ,gtk+)
dd1fcddc
CB
2026 ("python-dbus" ,python-dbus)
2027 ("python-pygobject" ,python-pygobject)
2028 ("python-pycups" ,python-pycups)
2029 ("python-requests" ,python-requests)
2030 ("python-pycairo" ,python-pycairo)
2031 ("libnotify" ,libnotify)
2032 ("packagekit" ,packagekit)))
2033 (native-inputs
2034 `(("pkg-config" ,pkg-config)
2035 ("desktop-file-utils" ,desktop-file-utils)
2036 ("glib" ,glib)
2037 ("autoconf" ,autoconf)
2038 ("automake" ,automake)
2039 ("intltool" ,intltool)
2040 ("xmlto" ,xmlto)
2041 ("docbook-xml" ,docbook-xml-4.1.2)
2042 ("docbook-xsl" ,docbook-xsl)
2043 ("libxml2" ,libxml2)))
2044 (home-page "https://github.com/zdohnal/system-config-printer")
2045 (synopsis "CUPS administration tool")
2046 (description
2047 "system-config-printer is a CUPS administration tool. It's written in
2048Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2049configuring CUPS.")
2050 (license license:gpl2+)))
2051
bef4dd92
AE
2052(define-public hicolor-icon-theme
2053 (package
2054 (name "hicolor-icon-theme")
851cb6dd 2055 (version "0.17")
bef4dd92
AE
2056 (source
2057 (origin
2058 (method url-fetch)
5cc3096c 2059 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 2060 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
2061 (sha256
2062 (base32
851cb6dd 2063 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
2064 (build-system gnu-build-system)
2065 (arguments
2066 `(#:tests? #f)) ; no check target
57e7d748 2067 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
2068 (synopsis
2069 "Freedesktop icon theme")
2070 (description
2071 "Freedesktop icon theme.")
1dd26275 2072 (license license:gpl2)))
bef4dd92 2073
d9c1a22b
AE
2074(define-public libnotify
2075 (package
2076 (name "libnotify")
195bfa68 2077 (version "0.7.7")
d9c1a22b
AE
2078 (source
2079 (origin
2080 (method url-fetch)
2081 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2082 (version-major+minor version) "/"
d9c1a22b
AE
2083 name "-" version ".tar.xz"))
2084 (sha256
2085 (base32
195bfa68 2086 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 2087 (build-system gnu-build-system)
6acf6cec
MB
2088 (arguments
2089 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
2090 (propagated-inputs
2091 `(;; In Requires of libnotify.pc.
2092 ("gdk-pixbuf" ,gdk-pixbuf)
2093 ("glib" ,glib)))
d9c1a22b 2094 (inputs
7ef08efa 2095 `(("gtk+" ,gtk+)
c4c4cc05
JD
2096 ("libpng" ,libpng)))
2097 (native-inputs
426adbe8 2098 `(("pkg-config" ,pkg-config)
277a7d82
JN
2099 ("glib" ,glib "bin")
2100 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
2101 (home-page "https://developer-next.gnome.org/libnotify/")
2102 (synopsis
2103 "GNOME desktop notification library")
2104 (description
2105 "Libnotify is a library that sends desktop notifications to a
35b9e423 2106notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
2107notifications can be used to inform the user about an event or display
2108some form of information without getting in the user's way.")
1dd26275 2109 (license license:lgpl2.1+)))
7a8605ce
CR
2110
2111(define-public libpeas
2112 (package
2113 (name "libpeas")
f2d56e39 2114 (version "1.24.1")
7a8605ce
CR
2115 (source
2116 (origin
2117 (method url-fetch)
2118 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2119 (version-major+minor version) "/"
7a8605ce
CR
2120 name "-" version ".tar.xz"))
2121 (sha256
2122 (base32
f2d56e39
MB
2123 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2124 (build-system meson-build-system)
2125 (arguments
2126 '(#:phases
2127 (modify-phases %standard-phases
2128 (add-before 'check 'start-xserver
2129 (lambda* (#:key inputs #:allow-other-keys)
2130 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2131 (disp ":1"))
2132 (setenv "DISPLAY" disp)
2133 ;; Tests require a running X server.
2134 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2135 #t))))))
7a8605ce 2136 (inputs
2ed6522a
SB
2137 `(("gtk+" ,gtk+)
2138 ("glade" ,glade3)
2ed6522a
SB
2139 ("python" ,python)
2140 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2141 (native-inputs
2142 `(("pkg-config" ,pkg-config)
f2d56e39 2143 ("gettext" ,gettext-minimal)
93622993 2144 ("glib:bin" ,glib "bin")
141aed80 2145 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2146 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2147 (propagated-inputs
2148 ;; The .pc file "Requires" gobject-introspection.
2149 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2150 (home-page "https://wiki.gnome.org/Libpeas")
2151 (synopsis "GObject plugin system")
2152 (description
d1e4ad1b
TGR
2153 "Libpeas is a gobject-based plugin engine, targeted at giving every
2154application the chance to assume its own extensibility. It also has a set of
2155features including, but not limited to: multiple extension points; on-demand
2156(lazy) programming language support for C, Python and JS; simplicity of the
2157API.")
1dd26275 2158 (license license:lgpl2.0+)))
ed19903d
JD
2159
2160(define-public gtkglext
2161 (package
2162 (name "gtkglext")
2163 (version "1.2.0")
2164 (source (origin
2165 (method url-fetch)
0f971a04 2166 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2167 version "/gtkglext-" version ".tar.gz"))
2168 (sha256
2169 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2170 (patches (search-patches
2171 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2172 (build-system gnu-build-system)
14e2f61a
RW
2173 (arguments
2174 `(#:phases
2175 (modify-phases %standard-phases
2176 ;; Fix a collision between a local variable and a definition from
2177 ;; glibc's string.h.
2178 (add-after 'unpack 'fix-collision
2179 (lambda _
2180 (substitute* "gdk/gdkglshapes.c"
2181 ((" index") " triangle_index"))
2182 #t)))))
ed19903d
JD
2183 (inputs `(("gtk+" ,gtk+-2)
2184 ("mesa" ,mesa)
cc8b02f4 2185 ("glu" ,glu)
ed19903d
JD
2186 ("libx11" ,libx11)
2187 ("libxt" ,libxt)))
426adbe8
LC
2188 (native-inputs `(("pkg-config" ,pkg-config)
2189 ("glib" ,glib "bin")))
a83b6a06 2190 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2191 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2192 (synopsis "OpenGL extension to GTK+")
35b9e423 2193 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2194additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2195API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2196 (license license:lgpl2.1+)))
3600420e
JD
2197
2198(define-public glade3
2199 (package
2200 (name "glade")
031315e4 2201 (version "3.36.0")
b38e45d8
EB
2202 (source (origin
2203 (method url-fetch)
2204 (uri (string-append "mirror://gnome/sources/" name "/"
2205 (version-major+minor version) "/"
f5ca44b8 2206 name "-" version ".tar.xz"))
3600420e 2207 (sha256
f714d9fe 2208 (base32
031315e4 2209 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
6983ba56 2210 (build-system glib-or-gtk-build-system)
f5ca44b8 2211 (arguments
ec8e1c91 2212 `(#:phases
f5ca44b8
RW
2213 (modify-phases %standard-phases
2214 (add-before 'configure 'fix-docbook
2215 (lambda* (#:key inputs #:allow-other-keys)
2216 (substitute* "man/Makefile.in"
2217 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2218 (string-append (assoc-ref inputs "docbook-xsl")
2219 "/xml/xsl/docbook-xsl-"
2220 ,(package-version docbook-xsl)
2221 "/manpages/docbook.xsl")))
ec8e1c91
AI
2222 #t))
2223 (add-before 'check 'pre-check
2224 (lambda _
2225 (setenv "HOME" "/tmp")
2226 ;; Tests require a running X server.
2227 (system "Xvfb :1 &")
2228 (setenv "DISPLAY" ":1")
f5ca44b8 2229 #t)))))
3600420e 2230 (inputs
f5ca44b8 2231 `(("gtk+" ,gtk+)
3600420e
JD
2232 ("libxml2" ,libxml2)))
2233 (native-inputs
ec8e1c91
AI
2234 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2235 ("intltool" ,intltool)
f5ca44b8
RW
2236 ("itstool" ,itstool)
2237 ("libxslt" ,libxslt) ;for xsltproc
2238 ("docbook-xml" ,docbook-xml-4.2)
2239 ("docbook-xsl" ,docbook-xsl)
2240 ("python" ,python-2)
ec8e1c91
AI
2241 ("pkg-config" ,pkg-config)
2242 ("xorg-server" ,xorg-server-for-tests)))
3600420e
JD
2243 (home-page "https://glade.gnome.org")
2244 (synopsis "GTK+ rapid application development tool")
2245 (description "Glade is a rapid application development (RAD) tool to
2246enable quick & easy development of user interfaces for the GTK+ toolkit and
2247the GNOME desktop environment.")
1dd26275
LC
2248 (license license:lgpl2.0+)))
2249
2250(define-public libcroco
2251 (package
2252 (name "libcroco")
8bdacad2 2253 (version "0.6.13")
1dd26275
LC
2254 (source (origin
2255 (method url-fetch)
b38e45d8
EB
2256 (uri (string-append "mirror://gnome/sources/" name "/"
2257 (version-major+minor version) "/"
2258 name "-" version ".tar.xz"))
1dd26275
LC
2259 (sha256
2260 (base32
8bdacad2 2261 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2262 (build-system gnu-build-system)
2263 (native-inputs
2264 `(("pkg-config" ,pkg-config)))
2265 (inputs
2266 `(("glib" ,glib)
2267 ("libxml2" ,libxml2)
2268 ("zlib" ,zlib)))
2269 (home-page "https://github.com/GNOME/libcroco")
2270 (synopsis "CSS2 parsing and manipulation library")
2271 (description
2272 "Libcroco is a standalone CSS2 parsing and manipulation library.
2273The parser provides a low level event driven SAC-like API and a CSS object
2274model like API. Libcroco provides a CSS2 selection engine and an experimental
2275XML/CSS rendering engine.")
2276
2277 ;; LGPLv2.1-only.
2278 (license license:lgpl2.1)))
25178594
LC
2279
2280(define-public libgsf
2281 (package
2282 (name "libgsf")
2b9b854c 2283 (version "1.14.47")
25178594
LC
2284 (source (origin
2285 (method url-fetch)
b38e45d8
EB
2286 (uri (string-append "mirror://gnome/sources/" name "/"
2287 (version-major+minor version) "/"
2288 name "-" version ".tar.xz"))
25178594
LC
2289 (sha256
2290 (base32
2b9b854c 2291 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
25178594 2292 (build-system gnu-build-system)
23904adb
MB
2293 (arguments
2294 '(#:configure-flags '("--disable-static")))
25178594 2295 (native-inputs
0a1559cc
MB
2296 `(("pkg-config" ,pkg-config)
2297 ("gettext" ,gettext-minimal)
2298
2299 ;; For tests.
2300 ("perl" ,perl)
2301 ("perl-xml-parser" ,perl-xml-parser)))
25178594 2302 (inputs
4ffa9f6b 2303 `(("zlib" ,zlib)
25178594
LC
2304 ("bzip2" ,bzip2)))
2305 (propagated-inputs
2306 `(("gdk-pixbuf" ,gdk-pixbuf)
2307 ("glib" ,glib)
2308 ("libxml2" ,libxml2)))
f032d0be 2309 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2310 (synopsis "GNOME's Structured File Library")
2311 (description
2312 "Libgsf aims to provide an efficient extensible I/O abstraction for
2313dealing with different structured file formats.")
2314
2315 ;; LGPLv2.1-only.
2316 (license license:lgpl2.1)))
63016e7c
LC
2317
2318(define-public librsvg
f67417a1
MB
2319 (package
2320 (name "librsvg")
c1cc52a2 2321 (version "2.40.21")
f67417a1
MB
2322 (source (origin
2323 (method url-fetch)
2324 (uri (string-append "mirror://gnome/sources/" name "/"
2325 (version-major+minor version) "/"
2326 name "-" version ".tar.xz"))
2327 (sha256
2328 (base32
c1cc52a2 2329 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2330 (build-system gnu-build-system)
2331 (arguments
2332 `(#:configure-flags
2333 (list "--disable-static"
2334 "--enable-vala") ; needed for e.g. gnome-mines
2335 #:phases
2336 (modify-phases %standard-phases
2337 (add-before 'configure 'pre-configure
2338 (lambda* (#:key inputs #:allow-other-keys)
2339 (substitute* "gdk-pixbuf-loader/Makefile.in"
2340 ;; By default the gdk-pixbuf loader is installed under
2341 ;; gdk-pixbuf's prefix. Work around that.
2342 (("gdk_pixbuf_moduledir = .*$")
2343 (string-append "gdk_pixbuf_moduledir = "
2344 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2345 "loaders\n"))
2346 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2347 (("gdk_pixbuf_cache_file = .*$")
2348 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2349 #t))
2350 (add-before 'check 'remove-failing-tests
2351 (lambda _
2352 (with-directory-excursion "tests/fixtures/reftests"
2353 (for-each delete-file
2354 '(;; This test fails on i686:
2355 "svg1.1/masking-path-04-b.svg"
2356 ;; This test fails on armhf:
2357 "svg1.1/masking-mask-01-b.svg"
2358 ;; This test fails on aarch64:
2359 "bugs/777834-empty-text-children.svg")))
2360 #t)))))
2361 (native-inputs
2362 `(("pkg-config" ,pkg-config)
2363 ("vala" ,vala)
2364 ("glib" ,glib "bin") ; glib-mkenums, etc.
2365 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2366 (inputs
869b63cb
MB
2367 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2368 ;; this ancient version of librsvg.
2369 ("pango" ,pango-1.42)
f67417a1
MB
2370 ("libcroco" ,libcroco)
2371 ("bzip2" ,bzip2)
2372 ("libgsf" ,libgsf)
2373 ("libxml2" ,libxml2)))
2374 (propagated-inputs
2375 ;; librsvg-2.0.pc refers to all of that.
2376 `(("cairo" ,cairo)
2377 ("gdk-pixbuf" ,gdk-pixbuf)
2378 ("glib" ,glib)))
2379 (home-page "https://wiki.gnome.org/LibRsvg")
2380 (synopsis "Render SVG files using Cairo")
2381 (description
2382 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2383library.")
2384 (license license:lgpl2.0+)))
2385
2386(define-public librsvg-next
63016e7c 2387 (package
25d39a2a 2388 (inherit librsvg)
63016e7c 2389 (name "librsvg")
4f9db569 2390 (version "2.48.8")
69568670
EF
2391 (source (origin
2392 (method url-fetch)
2393 (uri (string-append "mirror://gnome/sources/librsvg/"
2394 (version-major+minor version) "/"
2395 "librsvg-" version ".tar.xz"))
2396 (sha256
2397 (base32
4f9db569 2398 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
69568670
EF
2399 (modules '((guix build utils)))
2400 (snippet
2401 '(begin (delete-file-recursively "vendor")
69568670
EF
2402 #t))))
2403 (build-system cargo-build-system)
63016e7c 2404 (arguments
69568670
EF
2405 `(#:modules ((guix build cargo-build-system)
2406 (guix build utils)
2407 ((guix build gnu-build-system) #:prefix gnu:))
2408 #:vendor-dir "vendor"
2409 #:cargo-inputs
2410 (("rust-bitflags" ,rust-bitflags-1)
4f9db569 2411 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
69568670 2412 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
4f9db569
EF
2413 ("rust-cast" ,rust-cast-0.2)
2414 ("rust-cssparser" ,rust-cssparser-0.27)
69568670
EF
2415 ("rust-data-url" ,rust-data-url-0.1)
2416 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2417 ("rust-encoding" ,rust-encoding-0.2)
4f9db569
EF
2418 ("rust-float-cmp" ,rust-float-cmp-0.6)
2419 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
69568670 2420 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
4f9db569 2421 ("rust-gio" ,rust-gio-0.8)
69568670 2422 ("rust-gio-sys" ,rust-gio-sys-0.9)
4f9db569 2423 ("rust-glib" ,rust-glib-0.9)
69568670
EF
2424 ("rust-glib-sys" ,rust-glib-sys-0.9)
2425 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2426 ("rust-itertools" ,rust-itertools-0.8)
2427 ("rust-language-tags" ,rust-language-tags-0.2)
69568670
EF
2428 ("rust-libc" ,rust-libc-0.2)
2429 ("rust-locale-config" ,rust-locale-config-0.3)
4f9db569
EF
2430 ("rust-markup5ever" ,rust-markup5ever-0.10)
2431 ("rust-nalgebra" ,rust-nalgebra-0.19)
69568670 2432 ("rust-num-traits" ,rust-num-traits-0.2)
4f9db569 2433 ("rust-once-cell" ,rust-once-cell-1.2)
69568670 2434 ("rust-pkg-config" ,rust-pkg-config-0.3)
4f9db569 2435 ("rust-pango" ,rust-pango-0.8)
69568670 2436 ("rust-pango-sys" ,rust-pango-sys-0.9)
4f9db569 2437 ("rust-pangocairo" ,rust-pangocairo-0.9)
a5630553 2438 ("rust-rayon" ,rust-rayon-1)
69568670 2439 ("rust-rctree" ,rust-rctree-0.3)
4f9db569 2440 ("rust-rgb" ,rust-rgb-0.8)
6cd7b355 2441 ("rust-regex" ,rust-regex-1)
4f9db569 2442 ("rust-selectors" ,rust-selectors-0.22)
69568670 2443 ("rust-url" ,rust-url-2.1)
4f9db569 2444 ("rust-xml5ever" ,rust-xml5ever-0.16))
69568670 2445 #:cargo-development-inputs
4f9db569
EF
2446 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
2447 ("rust-criterion" ,rust-criterion-0.3))
ec47c07d 2448 #:phases
b6239e45 2449 (modify-phases %standard-phases
69568670 2450 (add-after 'unpack 'prepare-for-build
ec47c07d 2451 (lambda _
69568670 2452 ;; In lieu of #:make-flags
4f9db569 2453 (setenv "CC" ,(cc-for-target))
69568670
EF
2454 ;; Something about the build environment resists building
2455 ;; successfully with the '--locked' flag.
2456 (substitute* '("Makefile.am"
2457 "Makefile.in")
2458 (("--locked") ""))
2459 #t))
b6239e45 2460 (add-before 'configure 'pre-configure
69568670 2461 (lambda _
b6239e45
EF
2462 (substitute* "gdk-pixbuf-loader/Makefile.in"
2463 ;; By default the gdk-pixbuf loader is installed under
2464 ;; gdk-pixbuf's prefix. Work around that.
2465 (("gdk_pixbuf_moduledir = .*$")
2466 (string-append "gdk_pixbuf_moduledir = "
2467 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2468 "loaders\n"))
2469 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2470 (("gdk_pixbuf_cache_file = .*$")
2471 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2472 #t))
69568670 2473 (add-after 'configure 'gnu-configure
4b16cb64
EF
2474 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
2475 ((assoc-ref gnu:%standard-phases 'configure)
2476 #:native-inputs native-inputs
2477 #:inputs inputs
2478 #:outputs outputs
2479 #:configure-flags (list "--disable-static"
2480 "--enable-vala"))))
69568670
EF
2481 (add-after 'configure 'dont-vendor-self
2482 (lambda* (#:key vendor-dir #:allow-other-keys)
2483 ;; Don't keep the whole tarball in the vendor directory
2484 (delete-file-recursively
2485 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2486 #t))
2487 (replace 'build
2488 (assoc-ref gnu:%standard-phases 'build))
2489 (replace 'check
2490 (lambda* args
2491 ((assoc-ref gnu:%standard-phases 'check)
2492 #:test-target "check")))
2493 (replace 'install
4f9db569
EF
2494 (assoc-ref gnu:%standard-phases 'install)))))
2495 (inputs
2496 `(("pango" ,pango)
2497 ,@(alist-delete "pango" (package-inputs librsvg))))
cf9dad6c 2498 (license license:lgpl2.1+)))
5698b8b8
JD
2499
2500(define-public libidl
2501 (package
2502 (name "libidl")
2503 (version "0.8.14")
2504 (source (origin
2505 (method url-fetch)
80a06e62
EF
2506 (uri (string-append "mirror://gnome/sources/libIDL/"
2507 (version-major+minor version) "/"
2508 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
2509 (sha256
2510 (base32
2511 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2512 (build-system gnu-build-system)
2513 (inputs `(("glib" ,glib)))
2514 (native-inputs
2515 `(("pkg-config" ,pkg-config)
b3546174 2516 ("flex" ,flex)
5698b8b8
JD
2517 ("bison" ,bison)))
2518 (home-page "http://freecode.com/projects/libidl")
2519 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 2520 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
2521Definition Language (idl) files, which is a specification for defining
2522portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 2523GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 2524functionality was designed to be as reusable and portable as possible.")
ef2c55bb 2525 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
2526 (license license:lgpl2.0+)))
2527
2528
2529(define-public orbit2
2530 (package
2531 (name "orbit2")
2532 (version "2.14.19")
2533 (source (origin
2534 (method url-fetch)
2e6ecc5c 2535 (uri (let ((upstream-name "ORBit2"))
a124bbd2 2536 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2537 (version-major+minor version) "/"
2538 upstream-name "-" version ".tar.bz2")))
5698b8b8 2539 (sha256
a124bbd2
SB
2540 (base32
2541 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
2542 (build-system gnu-build-system)
2543 (arguments
c2d837b9
MB
2544 `(;; The "timeout-server" test hangs when run in parallel.
2545 #:parallel-tests? #f
2546 #:configure-flags
8aad2e32
LC
2547 '(;; We don't need static libraries, plus they don't build reproducibly
2548 ;; (non-deterministic ordering of .o files in the archive.)
2549 "--disable-static"
2550
2551 ;; The programmer kindly gives us a hook to turn off deprecation
2552 ;; warnings ...
2553 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
2554 ;; ... which they then completly ignore !!
2555 #:phases
dc1d3cde
KK
2556 (modify-phases %standard-phases
2557 (add-before 'configure 'ignore-deprecations
2558 (lambda _
2559 (substitute* "linc2/src/Makefile.in"
2560 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2561 #t)))))
5698b8b8
JD
2562 (inputs `(("glib" ,glib)
2563 ("libidl" ,libidl)))
2564 (native-inputs
2565 `(("pkg-config" ,pkg-config)))
2566 (home-page "https://projects.gnome.org/orbit2/")
2567 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2568 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2569featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2570 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2571 ;; a version. SOME of the code files have licence notices for GPLv2+.
2572 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2573 (license license:gpl2+)
2574 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2575
2576
2577(define-public libbonobo
2578 (package
2579 (name "libbonobo")
2580 (version "2.32.1")
2581 (source (origin
2582 (method url-fetch)
5becd025 2583 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2584 (version-major+minor version)
5becd025 2585 "/" name "-" version ".tar.bz2"))
5698b8b8 2586 (sha256
f1fc45a9 2587 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2588 (patches (search-patches
2589 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2590 (build-system gnu-build-system)
2591 (arguments
2592 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2593 `(#:configure-flags
2594 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2595 ;; ... which they then completly ignore !!
2596 #:phases
dc1d3cde
KK
2597 (modify-phases %standard-phases
2598 (add-before 'configure 'ignore-deprecations
2599 (lambda _
2600 (substitute* "activation-server/Makefile.in"
2601 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2602 #t)))
2603
2604 ;; There's apparently a race condition between the server stub
2605 ;; generation and linking of the example under 'samples/echo' that can
2606 ;; lead do undefined references when building in parallel, as reported
2607 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2608 ;; Thus, disable parallel builds.
2609 #:parallel-build? #f))
5698b8b8
JD
2610 (inputs `(("popt" ,popt)
2611 ("libxml2" ,libxml2)))
2612 ;; The following are Required by the .pc file
44add1ce 2613 (propagated-inputs
5698b8b8
JD
2614 `(("glib" ,glib)
2615 ("orbit2" ,orbit2)))
2616 (native-inputs
2617 `(("intltool" ,intltool)
2618 ("pkg-config" ,pkg-config)
221ed17a 2619 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2620 ("flex" ,flex)
2621 ("bison" ,bison)))
2622 (home-page "https://developer.gnome.org/libbonobo/")
2623 (synopsis "Framework for creating reusable components for use in GNOME applications")
2624 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2625use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2626 ;; Licence not explicitly stated. Source files contain no licence notices.
2627 ;; Tarball contains text of both GPLv2 and LGPLv2
2628 ;; GPLv2 covers both conditions
2629 (license license:gpl2+)))
2630
2631
2632(define-public gconf
2633 (package
2634 (name "gconf")
2635 (version "3.2.6")
2636 (source (origin
2637 (method url-fetch)
a124bbd2
SB
2638 (uri
2639 (let ((upstream-name "GConf"))
2640 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2641 (version-major+minor version) "/"
2642 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2643 (sha256
2644 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2645 (build-system gnu-build-system)
2e88d113 2646 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2647 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2648 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2649 ("orbit2" ,orbit2)))
5698b8b8
JD
2650 (native-inputs
2651 `(("intltool" ,intltool)
221ed17a 2652 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2653 ("pkg-config" ,pkg-config)))
2654 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2655 (synopsis "Store application preferences")
2656 (description "Gconf is a system for storing application preferences. It
2657is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2658 (license license:lgpl2.0+)
2659 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2660
2661
2662(define-public gnome-mime-data
2663 (package
2664 (name "gnome-mime-data")
2665 (version "2.18.0")
2666 (source (origin
2667 (method url-fetch)
b38e45d8
EB
2668 (uri (string-append "mirror://gnome/sources/" name "/"
2669 (version-major+minor version) "/"
2670 name "-" version ".tar.bz2"))
5698b8b8
JD
2671 (sha256
2672 (base32
2673 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2674 (build-system gnu-build-system)
2675 (native-inputs
2676 `(("perl" ,perl)
2677 ("intltool" ,intltool)))
3e6add96
LC
2678 (arguments
2679 '(#:phases (modify-phases %standard-phases
2680 (add-after 'configure 'use-our-intltool
2681 (lambda _
2682 ;; Do not use the bundled intltool commands, which lack
2683 ;; the "dotless @INC" fixes of our 'intltool' package.
2684 (substitute* (find-files "." "^Makefile$")
2685 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2686 (string-append "INTLTOOL_" tool " = intltool-"
2687 (string-downcase tool) "\n")))
2688 #t)))))
f032d0be 2689 (home-page "https://www.gnome.org")
35b9e423 2690 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2691 (description "GNOME Mime Data is a module which contains the base MIME
2692and Application database for GNOME. The data stored by this module is
2693designed to be accessed through the MIME functions in GnomeVFS.")
2694 (license license:gpl2+)))
2695
2696
2697(define-public gnome-vfs
2698 (package
2699 (name "gnome-vfs")
2700 (version "2.24.4")
2701 (source (origin
2702 (method url-fetch)
b38e45d8
EB
2703 (uri (string-append "mirror://gnome/sources/" name "/"
2704 (version-major+minor version) "/"
2705 name "-" version ".tar.bz2"))
5698b8b8 2706 (sha256
9e12bc34
MW
2707 (base32
2708 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2709 (build-system gnu-build-system)
2710 (arguments
db5127d8 2711 `(#:phases
dc1d3cde
KK
2712 (modify-phases %standard-phases
2713 (add-before 'configure 'ignore-deprecations
2714 (lambda _
2715 (substitute* '("libgnomevfs/Makefile.in"
2716 "daemon/Makefile.in")
2717 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2718 #t))
2719 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2720 (lambda _
2721 (substitute* "test/test-async-cancel.c"
2722 (("EXIT_FAILURE") "77"))
2723 #t)))))
2e6ecc5c 2724 (inputs `(("libxml2" ,libxml2)
5698b8b8 2725 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2726 ("gconf" ,gconf)
2727 ("gnome-mime-data" ,gnome-mime-data)
2728 ("zlib" ,zlib)))
2729 (native-inputs
221ed17a
EB
2730 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2731 ("intltool" ,intltool)
5698b8b8
JD
2732 ("pkg-config" ,pkg-config)))
2733 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2734 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2735 (description
2736 "GnomeVFS is the core library used to access files and folders in GNOME
2737applications. It provides a file system abstraction which allows applications
2738to access local and remote files with a single consistent API.")
5698b8b8
JD
2739 (license license:lgpl2.0+)))
2740
2741
2742
2743(define-public libgnome
2744 (package
2745 (name "libgnome")
2746 (version "2.32.1")
2747 (source (origin
2748 (method url-fetch)
b38e45d8
EB
2749 (uri (string-append "mirror://gnome/sources/" name "/"
2750 (version-major+minor version) "/"
2751 name "-" version ".tar.bz2"))
5698b8b8
JD
2752 (sha256
2753 (base32
17c3eea7
LC
2754 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2755 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2756 (build-system gnu-build-system)
2757 (arguments
2758 `(#:phases
dc1d3cde
KK
2759 (modify-phases %standard-phases
2760 (add-before 'configure 'enable-deprecated
2761 (lambda _
2762 (substitute* "libgnome/Makefile.in"
2763 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2764 #t)))))
25338e9f 2765 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2766 (native-inputs
221ed17a
EB
2767 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2768 ("intltool" ,intltool)
5698b8b8
JD
2769 ("pkg-config" ,pkg-config)))
2770 ;; The following are listed as Required in the .pc file
2771 ;; (except for libcanberra -- which seems to be oversight on the part
2772 ;; of the upstream developers -- anything that links against libgnome,
2773 ;; must also link against libcanberra
2774 (propagated-inputs
2775 `(("libcanberra" ,libcanberra)
2776 ("libbonobo" ,libbonobo)
2777 ("gconf" ,gconf)
a640d3d5
LC
2778 ("gnome-vfs" ,gnome-vfs)
2779 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2780 (home-page "https://developer.gnome.org/libgnome/")
2781 (synopsis "Useful routines for building applications")
2782 (description "The libgnome library provides a number of useful routines
2783for building modern applications, including session management, activation of
2784files and URIs, and displaying help.")
2785 (license license:lgpl2.0+)))
2786
2787
2788(define-public libart-lgpl
2789 (package
2790 (name "libart-lgpl")
76c9b6aa 2791 (version "2.3.21")
5698b8b8
JD
2792 (source (origin
2793 (method url-fetch)
2794 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2795 (string-append "mirror://gnome/sources/" upstream-name "/"
2796 (version-major+minor version) "/"
2797 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2798 (sha256
2799 (base32
76c9b6aa 2800 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2801 (build-system gnu-build-system)
2802 (native-inputs
2803 `(("pkg-config" ,pkg-config)))
2804 (home-page "https://people.gnome.org/~mathieu/libart")
2805 (synopsis "2D drawing library")
2e6ecc5c 2806 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2807high-quality vector-based 2D library with antialiasing and alpha composition.")
2808 (license license:lgpl2.0+)))
2809
2810
2811
2812(define-public libgnomecanvas
2813 (package
2814 (name "libgnomecanvas")
2815 (version "2.30.3")
2816 (source (origin
2817 (method url-fetch)
b38e45d8
EB
2818 (uri (string-append "mirror://gnome/sources/" name "/"
2819 (version-major+minor version) "/"
2820 name "-" version ".tar.gz"))
5698b8b8
JD
2821 (sha256
2822 (base32
2823 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2824 (build-system gnu-build-system)
2825 ;; Mentioned as Required in the .pc file
2826 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2827 ("gtk+" ,gtk+-2)))
2828 (native-inputs
2829 `(("intltool" ,intltool)
221ed17a 2830 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2831 ("pkg-config" ,pkg-config)))
2832 (home-page "https://developer.gnome.org/libgnomecanvas/")
2833 (synopsis "Flexible widget for creating interactive structured graphics")
2834 (description "The GnomeCanvas widget provides a flexible widget for
2835creating interactive structured graphics.")
2836 (license license:lgpl2.0+)))
2837
eadc734e
RW
2838(define-public libgnomecanvasmm
2839 (package
2840 (name "libgnomecanvasmm")
2841 (version "2.26.0")
2842 (source (origin
2843 (method url-fetch)
2844 (uri (string-append "mirror://gnome/sources/" name "/"
2845 (version-major+minor version) "/"
2846 name "-" version ".tar.bz2"))
2847 (sha256
2848 (base32
2849 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2850 (build-system gnu-build-system)
2851 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2852 (native-inputs
2853 `(("gtkmm-2" ,gtkmm-2)
2854 ("pkg-config" ,pkg-config)))
8e933cb3 2855 (home-page "https://gtkmm.org")
eadc734e
RW
2856 (synopsis "C++ bindings to the GNOME Canvas library")
2857 (description "C++ bindings to the GNOME Canvas library.")
2858 (license license:lgpl2.0+)))
2859
5698b8b8
JD
2860(define-public libgnomeui
2861 (package
2862 (name "libgnomeui")
2863 (version "2.24.5")
2864 (source (origin
2865 (method url-fetch)
b38e45d8
EB
2866 (uri (string-append "mirror://gnome/sources/" name "/"
2867 (version-major+minor version) "/"
2868 name "-" version ".tar.bz2"))
8fa1872a 2869 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2870 (sha256
2871 (base32
2872 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2873 (build-system gnu-build-system)
2874 ;; Mentioned as Required in the .pc file
0a38a497
AE
2875 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2876 ("libgnome" ,libgnome)
2877 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2878 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 2879 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
2880 ("popt" ,popt)
2881 ("libbonobo" ,libbonobo)
2882 ("libxml2" ,libxml2)
2883 ("libglade" ,libglade)))
2884 (native-inputs
221ed17a
EB
2885 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2886 ("intltool" ,intltool)
5698b8b8
JD
2887 ("pkg-config" ,pkg-config)))
2888 (home-page "https://developer.gnome.org/libgnomeui/")
2889 (synopsis "Additional widgets for applications")
35b9e423 2890 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2891applications. Many of the widgets from libgnomeui have already been
2892ported to GTK+.")
5698b8b8
JD
2893 (license license:lgpl2.0+)))
2894
2895(define-public libglade
2896 (package
2897 (name "libglade")
2898 (version "2.6.4")
2899 (source (origin
2900 (method url-fetch)
b38e45d8
EB
2901 (uri (string-append "mirror://gnome/sources/" name "/"
2902 (version-major+minor version) "/"
2903 name "-" version ".tar.bz2"))
5698b8b8
JD
2904 (sha256
2905 (base32
2906 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2907 (build-system gnu-build-system)
2908 (inputs
92dcc23d
AE
2909 `(("python" ,python))) ;; needed for the optional libglade-convert program
2910 (propagated-inputs
5698b8b8 2911 `(("gtk+-2" ,gtk+-2)
92dcc23d 2912 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2913 (native-inputs
2914 `(("pkg-config" ,pkg-config)))
2915 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2916 (synopsis "Load glade interfaces and access the glade built widgets")
2917 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2918graphical interfaces described in glade files and for accessing the
2919widgets built in the loading process.")
2920 (license license:gpl2+))) ; This is correct. GPL not LGPL
2921
2922(define-public libgnomeprint
eb497b66
LC
2923 ;; This library has been deprecated since 2006; see
2924 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2925 (package
2926 (name "libgnomeprint")
d19db454 2927 (version "2.18.8")
5698b8b8
JD
2928 (source (origin
2929 (method url-fetch)
b38e45d8
EB
2930 (uri (string-append "mirror://gnome/sources/" name "/"
2931 (version-major+minor version) "/"
2932 name "-" version ".tar.bz2"))
5698b8b8
JD
2933 (sha256
2934 (base32
d19db454 2935 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2936 (build-system gnu-build-system)
2937 (inputs
2938 `(("popt" ,popt)
2939 ("libart-lgpl" ,libart-lgpl)
2940 ("gtk+" ,gtk+-2)
44add1ce 2941 ("libxml2" ,libxml2)))
5698b8b8
JD
2942 (native-inputs
2943 `(("intltool" ,intltool)
221ed17a 2944 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2945 ("pkg-config" ,pkg-config)))
2946 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2947 (synopsis "Printing framework for GNOME")
eb497b66
LC
2948 (description
2949 "GNOME-print was a printing framework for GNOME. It has been deprecated
2950since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2951 (license license:lgpl2.0+)))
2952
2953
2954(define-public libgnomeprintui
eb497b66 2955 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2956 (package
2957 (name "libgnomeprintui")
36053d7f 2958 (version "2.18.6")
5698b8b8
JD
2959 (source (origin
2960 (method url-fetch)
b38e45d8
EB
2961 (uri (string-append "mirror://gnome/sources/" name "/"
2962 (version-major+minor version) "/"
2963 name "-" version ".tar.bz2"))
5698b8b8
JD
2964 (sha256
2965 (base32
36053d7f 2966 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2967 (build-system gnu-build-system)
2968 ;; Mentioned as Required in the .pc file
2969 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2970 (inputs `(("gtk+" ,gtk+-2)
2971 ("glib" ,glib)
2972 ("gnome-icon-theme" ,gnome-icon-theme)
2973 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2974 ("libxml2" ,libxml2)))
5698b8b8
JD
2975 (native-inputs
2976 `(("intltool" ,intltool)
2977 ("pkg-config" ,pkg-config)))
2978 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2979 (synopsis "Printing framework for GNOME")
eb497b66 2980 (description (package-description libgnomeprint))
5698b8b8
JD
2981 (license license:lgpl2.0+)))
2982
5698b8b8
JD
2983(define-public libbonoboui
2984 (package
2985 (name "libbonoboui")
2986 (version "2.24.5")
2987 (source (origin
2988 (method url-fetch)
b38e45d8
EB
2989 (uri (string-append "mirror://gnome/sources/" name "/"
2990 (version-major+minor version) "/"
2991 name "-" version ".tar.bz2"))
5698b8b8
JD
2992 (sha256
2993 (base32
2994 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2995 (build-system gnu-build-system)
2996 (arguments
2997 `(#:phases
dc1d3cde
KK
2998 (modify-phases %standard-phases
2999 (add-before 'check 'start-xserver
3000 (lambda* (#:key inputs #:allow-other-keys)
3001 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3002 (disp ":1"))
3003
3004 (setenv "HOME" (getcwd))
3005 (setenv "DISPLAY" disp)
3006 ;; There must be a running X server and make check doesn't start one.
3007 ;; Therefore we must do it.
3008 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
3009 ;; Mentioned as Required by the .pc file
3010 (propagated-inputs `(("libxml2" ,libxml2)))
3011 (inputs
3012 `(("popt" ,popt)
3013 ("pangox-compat" ,pangox-compat)
3014 ("libgnome" ,libgnome)
3015 ("libgnomecanvas" ,libgnomecanvas)
3016 ("libglade" ,libglade)))
3017 (native-inputs
221ed17a
EB
3018 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3019 ("intltool" ,intltool)
ff337525 3020 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
3021 ("pkg-config" ,pkg-config)))
3022 (home-page "https://developer.gnome.org/libbonoboui/")
3023 (synopsis "Some user interface controls using Bonobo")
3024 (description "The Bonobo UI library provides a number of user interface
3025controls using the Bonobo component framework.")
3026 (license license:lgpl2.0+)))
3027
fecbf86e
SB
3028(define-public libwnck
3029 (package
3030 (name "libwnck")
d3b40696 3031 (version "3.32.0")
fecbf86e
SB
3032 (source (origin
3033 (method url-fetch)
3034 (uri (string-append "mirror://gnome/sources/" name "/"
3035 (version-major+minor version) "/"
3036 name "-" version ".tar.xz"))
3037 (sha256
ad9b8987 3038 (base32
d3b40696
KK
3039 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3040 (build-system meson-build-system)
fecbf86e
SB
3041 (native-inputs
3042 `(("pkg-config" ,pkg-config)
d3b40696
KK
3043 ("glib" ,glib "bin") ; for glib-mkenums
3044 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
3045 ("intltool" ,intltool)))
3046 (propagated-inputs
427476d5
SB
3047 `(("gtk+" ,gtk+)
3048 ("libxres" ,libxres)
3049 ("startup-notification" ,startup-notification)))
fecbf86e
SB
3050 (home-page "https://developer.gnome.org/libwnck/")
3051 (synopsis "Window Navigator Construction Kit")
3052 (description
3053 "Libwnck is the Window Navigator Construction Kit, a library for use in
3054writing pagers, tasklists, and more generally applications that are dealing
3055with window management. It tries hard to respect the Extended Window Manager
3056Hints specification (EWMH).")
3057 (license license:lgpl2.0+)))
3058
3059;; stable version for gtk2, required by xfwm4.
dbb7a081 3060(define-public libwnck-2
fecbf86e
SB
3061 (package (inherit libwnck)
3062 (name "libwnck")
3063 (version "2.30.7")
3064 (source (origin
3065 (method url-fetch)
3066 (uri (string-append "mirror://gnome/sources/" name "/"
3067 (version-major+minor version) "/"
3068 name "-" version ".tar.xz"))
3069 (sha256
3070 (base32
3071 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
3072 (build-system gnu-build-system)
3073 (native-inputs
3074 `(("pkg-config" ,pkg-config)
3075 ("intltool" ,intltool)))
fecbf86e 3076 (propagated-inputs
427476d5
SB
3077 `(("gtk+" ,gtk+-2)
3078 ("libxres" ,libxres)
3079 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3080
3081(define-public goffice
3082 (package
3083 (name "goffice")
2e60eafb 3084 (version "0.10.47")
b804c61e
JD
3085 (source (origin
3086 (method url-fetch)
16243f0b 3087 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3088 (version-major+minor version) "/"
16243f0b 3089 "goffice-" version ".tar.xz"))
b804c61e 3090 (sha256
2e60eafb 3091 (base32 "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215"))))
b804c61e 3092 (build-system gnu-build-system)
72a06d3e 3093 (outputs '("out"
355420c6 3094 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3095 (arguments
3096 '(#:configure-flags (list (string-append "--with-html-dir="
3097 (assoc-ref %outputs "doc")
3098 "/share/gtk-doc/html"))))
b804c61e
JD
3099 (inputs
3100 `(("gtk+" ,gtk+)
3101 ("libgsf" ,libgsf)
3102 ("librsvg" ,librsvg)
3103 ("libxslt" ,libxslt)
3104 ("libxml2" ,libxml2)))
3105 (native-inputs
3106 `(("intltool" ,intltool)
f280cdb1 3107 ("glib" ,glib "bin")
b804c61e
JD
3108 ("pkg-config" ,pkg-config)))
3109 (home-page "https://developer.gnome.org/goffice/")
3110 (synopsis "Document-centric objects and utilities")
3111 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3112 (license
b804c61e
JD
3113 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3114 ;; Note: NOT LGPL
3115 (list license:gpl2 license:gpl3))))
3116
c024ae36
RW
3117(define-public goffice-0.8
3118 (package (inherit goffice)
3119 (version "0.8.17")
3120 (source (origin
3121 (method url-fetch)
3122 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3123 (version-major+minor version) "/"
3124 (package-name goffice) "-" version ".tar.xz"))
3125 (sha256
3126 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3127 (arguments
3128 `(#:phases
dc1d3cde
KK
3129 (modify-phases %standard-phases
3130 (add-after 'unpack 'fix-pcre-check
3131 (lambda _
3132 ;; Only glib.h can be included directly. See
3133 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3134 (substitute* "configure"
3135 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3136
3137 ,@(package-arguments goffice)))
c024ae36
RW
3138 (propagated-inputs
3139 ;; libgoffice-0.8.pc mentions libgsf-1
3140 `(("libgsf" ,libgsf)))
3141 (inputs
3142 `(("gtk" ,gtk+-2)
3143 ,@(alist-delete "gtk" (package-inputs goffice))))))
3144
b804c61e
JD
3145(define-public gnumeric
3146 (package
3147 (name "gnumeric")
f0517b5d 3148 (version "1.12.46")
b804c61e
JD
3149 (source (origin
3150 (method url-fetch)
b7fd0217 3151 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3152 (version-major+minor version) "/"
b7fd0217 3153 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3154 (sha256
3155 (base32
f0517b5d 3156 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3157 (build-system glib-or-gtk-build-system)
b804c61e
JD
3158 (arguments
3159 `(;; The gnumeric developers don't worry much about failing tests.
3160 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3161 #:tests? #f
b804c61e 3162 #:phases
7bcbd40d
EF
3163 (modify-phases %standard-phases
3164 (add-before
3165 'configure 'pre-conf
3166 (lambda* (#:key outputs #:allow-other-keys)
3167 ;; Make install tries to write into the directory of goffice
3168 ;; I am informed that this only affects the possibility to embed a
3169 ;; spreadsheet inside an Abiword document. So presumably when we
3170 ;; package Abiword we'll have to refer it to this directory.
3171 (substitute* "configure"
3172 (("^GOFFICE_PLUGINS_DIR=.*")
3173 (string-append "GOFFICE_PLUGINS_DIR="
3174 (assoc-ref outputs "out")
3175 "/goffice/plugins"))))))))
b804c61e
JD
3176 (inputs
3177 `(("glib" ,glib)
3178 ("gtk+" ,gtk+)
3179 ("goffice" ,goffice)
3180 ("libgsf" ,libgsf)
7bcbd40d 3181 ("librsvg" ,librsvg)
b804c61e 3182 ("libxml2" ,libxml2)
7bcbd40d 3183 ("libxslt" ,libxslt)
2e4c5457 3184 ("python" ,python-2)
6983ba56 3185 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3186 ("zlib" ,zlib)))
3187 (native-inputs
6983ba56 3188 `(("bison" ,bison)
1ed398d1 3189 ("docbook-xml" ,docbook-xml)
6983ba56 3190 ("intltool" ,intltool)
785fcb62 3191 ("itstool" ,itstool)
b9663471 3192 ("glib:bin" ,glib "bin")
b804c61e
JD
3193 ("pkg-config" ,pkg-config)))
3194 (home-page "http://www.gnumeric.org")
66672a45
LC
3195 (synopsis "Spreadsheet application")
3196 (description
3197 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3198interoperable with other spreadsheet applications. It has a vast array of
3199features beyond typical spreadsheet functionality, such as support for linear
3200and non-linear solvers, statistical analysis, and telecommunication
3201engineering.")
3202 (license
b804c61e
JD
3203 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3204 (list license:gpl2 license:gpl3))))
6f885c05
FB
3205
3206(define-public gnome-themes-standard
3207 (package
3208 (name "gnome-themes-standard")
0b7b8fb0 3209 (version "3.22.3")
6f885c05
FB
3210 (source
3211 (origin
3212 (method url-fetch)
2e6ecc5c 3213 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3214 (version-major+minor version) "/" name "-"
3215 version ".tar.xz"))
3216 (sha256
3217 (base32
0b7b8fb0 3218 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3219 (build-system gnu-build-system)
8ac70c7f
SB
3220 (arguments
3221 '(#:configure-flags
3222 ;; Don't create 'icon-theme.cache'.
3223 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3224 (true (string-append coreutils "/bin/true")))
3225 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3226 (inputs
3227 `(("gtk+" ,gtk+)
3228 ("gtk+-2" ,gtk+-2)
3229 ("librsvg" ,librsvg)
3230 ("libxml2" ,libxml2)
3231 ("glib" ,glib)))
3232 (native-inputs
3233 `(("intltool" ,intltool)
3234 ("glib:bin" ,glib "bin")
3235 ("pkg-config" ,pkg-config)))
6f885c05
FB
3236 (home-page "https://launchpad.net/gnome-themes-standard")
3237 (synopsis "Default GNOME 3 themes")
3238 (description
3239 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3240 (license license:lgpl2.1+)))
5a659a48 3241
df90c701
RW
3242(define-public seahorse
3243 (package
3244 (name "seahorse")
1efcf722 3245 (version "3.34")
df90c701
RW
3246 (source
3247 (origin
3248 (method url-fetch)
3249 (uri (string-append "mirror://gnome/sources/" name "/"
3250 (version-major+minor version) "/" name "-"
3251 version ".tar.xz"))
3252 (sha256
3253 (base32
1efcf722 3254 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3255 (build-system meson-build-system)
3256 (arguments
bcea3c11
KK
3257 '(#:glib-or-gtk? #t
3258 #:phases
af561664
MÁAV
3259 (modify-phases %standard-phases
3260 (add-after 'unpack 'skip-gtk-update-icon-cache
3261 ;; Don't create 'icon-theme.cache'.
3262 (lambda _
3263 (substitute* "build-aux/meson_post_install.py"
3264 (("gtk-update-icon-cache") "true"))
3265 #t)))))
df90c701
RW
3266 (inputs
3267 `(("gtk+" ,gtk+)
3268 ("gcr" ,gcr)
34b979b9 3269 ("gnupg" ,gnupg)
df90c701 3270 ("gpgme" ,gpgme)
34b979b9 3271 ("openldap" ,openldap)
4a1bf090 3272 ("openssh" ,openssh)
af561664 3273 ("avahi" ,avahi)
bcea3c11 3274 ("libpwquality" ,libpwquality)
34b979b9
EF
3275 ("libsecret" ,libsecret)
3276 ("libsoup" ,libsoup)))
df90c701 3277 (native-inputs
af561664 3278 `(("gettext" ,gettext-minimal)
df90c701
RW
3279 ("glib:bin" ,glib "bin")
3280 ("itstool" ,itstool)
bcb354ad 3281 ("pkg-config" ,pkg-config)
af561664 3282 ("vala" ,vala)
bcb354ad 3283 ("xmllint" ,libxml2)))
bcea3c11 3284 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3285 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3286 (description
3287 "Seahorse is a GNOME application for managing encryption keys and
3288passwords in the GNOME keyring.")
3289 (license license:gpl2+)))
3290
5a659a48
SB
3291(define-public vala
3292 (package
3293 (name "vala")
b92a36db 3294 (version "0.46.5")
5a659a48
SB
3295 (source (origin
3296 (method url-fetch)
3297 (uri (string-append "mirror://gnome/sources/" name "/"
3298 (version-major+minor version) "/"
3299 name "-" version ".tar.xz"))
3300 (sha256
3301 (base32
b92a36db 3302 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3303 (build-system gnu-build-system)
1ea90625
SB
3304 (arguments
3305 '(#:phases
3306 (modify-phases %standard-phases
f4925a4f 3307 (add-before 'check 'pre-check
1ea90625
SB
3308 (lambda _
3309 (setenv "CC" "gcc")
8839b6be
RW
3310 (substitute* "valadoc/tests/testrunner.sh"
3311 (("export PKG_CONFIG_PATH=" m)
3312 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3313 ;; For missing '/etc/machine-id'.
3314 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3315 #t)))))
5a659a48
SB
3316 (native-inputs
3317 `(("pkg-config" ,pkg-config)
3318 ("flex" ,flex)
3319 ("bison" ,bison)
3320 ("xsltproc" ,libxslt)
3321 ("dbus" ,dbus) ; for dbus tests
3322 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3323 (inputs
3324 `(("graphviz" ,graphviz)))
5a659a48 3325 (propagated-inputs
8839b6be 3326 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3327 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3328 (synopsis "Compiler for the GObject type system")
3329 (description
3330 "Vala is a programming language that aims to bring modern programming
3331language features to GNOME developers without imposing any additional runtime
3332requirements and without using a different ABI compared to applications and
3333libraries written in C.")
3334 (license license:lgpl2.1+)))
ea57378f 3335
2dcaa760
RP
3336(define-public vala-0.48
3337 (package
3338 (inherit vala)
9a299d4d 3339 (version "0.48.7")
2dcaa760
RP
3340 (source (origin
3341 (method url-fetch)
3342 (uri (string-append "mirror://gnome/sources/vala/"
3343 (version-major+minor version) "/"
3344 "vala-" version ".tar.xz"))
3345 (sha256
3346 (base32
9a299d4d 3347 "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8"))))))
2dcaa760 3348
ea57378f
SB
3349(define-public vte
3350 (package
3351 (name "vte")
53865a93 3352 (version "0.60.3")
ea57378f
SB
3353 (source (origin
3354 (method url-fetch)
ac87ffb8 3355 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 3356 (version-major+minor version) "/"
ac87ffb8 3357 "vte-" version ".tar.xz"))
ea57378f
SB
3358 (sha256
3359 (base32
53865a93 3360 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
68c47474 3361 (build-system meson-build-system)
663def11
RPG
3362 (arguments
3363 `(#:configure-flags
11491e1b
DM
3364 '("-Dvapi=true"
3365 "-D_systemd=false")))
ea57378f
SB
3366 (native-inputs
3367 `(("pkg-config" ,pkg-config)
4684580a 3368 ("gettext" ,gettext-minimal)
ea57378f
SB
3369 ("vala" ,vala)
3370 ("gobject-introspection" ,gobject-introspection)
68c47474 3371 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 3372 ("gperf" ,gperf)
ea57378f
SB
3373 ("xmllint" ,libxml2)))
3374 (propagated-inputs
68c47474
TGR
3375 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3376 ("gnutls" ,gnutls) ; ditto
3377 ("pcre2" ,pcre2))) ; ditto
f032d0be 3378 (home-page "https://www.gnome.org/")
ea57378f
SB
3379 (synopsis "Virtual Terminal Emulator")
3380 (description
3381 "VTE is a library (libvte) implementing a terminal emulator widget for
3382GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3383gnome-terminal, but can also be used to embed a console/terminal in games,
3384editors, IDEs, etc.")
3385 (license license:lgpl2.1+)))
3386
c44fb4df
MO
3387(define-public vte-ng
3388 (package
3389 (inherit vte)
3390 (name "vte-ng")
24f4fcbe 3391 (version "0.58.2.a")
afd90f8d 3392 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
3393 (source (origin
3394 (method git-fetch)
3395 (uri (git-reference (url home-page) (commit version)))
3396 (file-name (git-file-name name version))
3397 (sha256
3398 (base32
24f4fcbe
MB
3399 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3400 (build-system meson-build-system)
c44fb4df
MO
3401 (native-inputs
3402 `(("gtk-doc" ,gtk-doc)
c44fb4df 3403 ,@(package-native-inputs vte)))
c44fb4df 3404 (arguments
24f4fcbe 3405 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
3406 (synopsis "Enhanced VTE terminal widget")
3407 (description
3408 "VTE is a library (libvte) implementing a terminal emulator widget for
3409GTK+, this fork provides additional functions exposed for keyboard text
3410selection and URL hints.")))
3411
da11c16b 3412;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
ea57378f
SB
3413(define-public vte/gtk+-2
3414 (package (inherit vte)
3415 (name "vte")
3416 (version "0.28.2")
3417 (source (origin
3418 (method url-fetch)
3419 (uri (string-append "mirror://gnome/sources/" name "/"
3420 (version-major+minor version) "/"
3421 name "-" version ".tar.xz"))
3422 (sha256
3423 (base32
7d48938a
EF
3424 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3425 (patches (search-patches
3426 "vte-CVE-2012-2738-pt1.patch"
3427 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 3428 (build-system gnu-build-system)
ea57378f
SB
3429 (arguments
3430 '(#:configure-flags '("--disable-python")))
3431 (native-inputs
3432 `(("pkg-config" ,pkg-config)
3433 ("intltool" ,intltool)
3434 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3435 (propagated-inputs
3436 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3437 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 3438
cce0da5e
TD
3439(define-public vinagre
3440 (package
3441 (name "vinagre")
3442 (version "3.22.0")
3443 (source (origin
3444 (method url-fetch)
3445 (uri (string-append "mirror://gnome/sources/" name "/"
3446 (version-major+minor version) "/"
3447 name "-" version ".tar.xz"))
684f97f8
EF
3448 (patches (search-patches "vinagre-newer-freerdp.patch"
3449 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
3450 (sha256
3451 (base32
3452 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3453 (build-system glib-or-gtk-build-system)
684f97f8 3454 (arguments
7f486d25
MC
3455 ;; Disable -Werror and such, to avoid build failures on compilation
3456 ;; warnings.
3457 '(#:configure-flags '("--enable-compile-warnings=minimum")
3458 #:phases
684f97f8 3459 (modify-phases %standard-phases
1839768c
EF
3460 (add-before 'install 'skip-gtk-update-icon-cache
3461 (lambda _
3462 ;; Don't create 'icon-theme.cache'
3463 (substitute* (find-files "." "^Makefile$")
3464 (("gtk-update-icon-cache") (which "true")))
3465 #t))
684f97f8
EF
3466 (add-after 'unpack 'patch-configure
3467 (lambda _
3468 (substitute* "configure"
3469 (("freerdp") "freerdp2"))
3470 #t)))))
cce0da5e
TD
3471 (native-inputs
3472 `(("pkg-config" ,pkg-config)
3473 ("intltool" ,intltool)
3474 ("itstool" ,itstool)
1839768c 3475 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
3476 (inputs
3477 `(("libxml2" ,libxml2)
3478 ("gtk-vnc" ,gtk-vnc)
3479 ("gnome-keyring" ,gnome-keyring)
3480 ("libsecret" ,libsecret)
3481 ("freerdp" ,freerdp)
3482 ("spice" ,spice)
3483 ("spice-gtk" ,spice-gtk)
3484 ("telepathy-glib" ,telepathy-glib)
3485 ("vte" ,vte)))
cce0da5e
TD
3486 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3487 (synopsis "Remote desktop viewer for GNOME")
3488 (description "Vinagre is a remote display client supporting the VNC, SPICE
3489and RDP protocols.")
3490 (license license:gpl3+)))
3491
b47e1b20
FB
3492(define-public dconf
3493 (package
3494 (name "dconf")
7f4d075d 3495 (version "0.34.0")
b47e1b20
FB
3496 (source (origin
3497 (method url-fetch)
3498 (uri (string-append
2e6ecc5c 3499 "mirror://gnome/sources/" name "/"
b47e1b20
FB
3500 (version-major+minor version) "/"
3501 name "-" version ".tar.xz"))
46c3a08b 3502 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 3503 (sha256
f05c809f 3504 (base32
7f4d075d 3505 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 3506 (build-system meson-build-system)
bc036f4c
MB
3507 (propagated-inputs
3508 ;; In Requires of dconf.pc.
3509 `(("glib" ,glib)))
b47e1b20
FB
3510 (inputs
3511 `(("gtk+" ,gtk+)
bc036f4c 3512 ("dbus" ,dbus)))
b47e1b20 3513 (native-inputs
1e33331c
MB
3514 `(("bash-completion" ,bash-completion)
3515 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 3516 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
3517 ("docbook-xml" ,docbook-xml-4.2)
3518 ("docbook-xsl" ,docbook-xsl)
35fa923d 3519 ("glib:bin" ,glib "bin")
03676d6f 3520 ("gtk-doc" ,gtk-doc)
35fa923d
MB
3521 ("pkg-config" ,pkg-config)
3522 ("vala" ,vala)))
b47e1b20
FB
3523 (arguments
3524 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3525 ; or /etc/machine-id.
35fa923d
MB
3526 #:glib-or-gtk? #t
3527 #:configure-flags '("-Denable-gtk-doc=true")))
79d7b527 3528 (home-page "https://developer.gnome.org/dconf/")
b47e1b20
FB
3529 (synopsis "Low-level GNOME configuration system")
3530 (description "Dconf is a low-level configuration system. Its main purpose
3531is to provide a backend to GSettings on platforms that don't already have
3532configuration storage systems.")
e20e6b40 3533 (license license:lgpl2.1+)))
109da1c0
AE
3534
3535(define-public json-glib
3536 (package
3537 (name "json-glib")
4115e8ea 3538 (version "1.4.4")
109da1c0
AE
3539 (source (origin
3540 (method url-fetch)
3541 (uri (string-append "mirror://gnome/sources/" name "/"
3542 (version-major+minor version) "/"
3543 name "-" version ".tar.xz"))
3544 (sha256
3545 (base32
4115e8ea 3546 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 3547 (build-system meson-build-system)
109da1c0 3548 (native-inputs
98afa184
MB
3549 `(("gettext" ,gettext-minimal)
3550 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
3551 ("gobject-introspection" ,gobject-introspection)
3552 ("pkg-config" ,pkg-config)))
3553 (propagated-inputs
88c6b580 3554 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
3555 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3556 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
3557 (description
3558 "JSON-GLib is a C library based on GLib providing serialization and
3559deserialization support for the JavaScript Object Notation (JSON) format
3560described by RFC 4627. It provides parser and generator GObject classes and
3561various wrappers for the complex data types employed by JSON, such as arrays
3562and objects.")
109da1c0 3563 (license license:lgpl2.1+)))
6f96a359
SB
3564
3565(define-public libxklavier
3566 (package
3567 (name "libxklavier")
5f39050b 3568 (version "5.4")
6f96a359 3569 (source (origin
5f39050b 3570 ;; Note: There's no tarball at ftp.gnome.org for this version.
3571 (method git-fetch)
3572 (uri (git-reference
3573 (url "https://anongit.freedesktop.org/git/libxklavier")
3574 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3575 (sha256
3576 (base32
5f39050b 3577 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3578 (file-name (git-file-name name version))))
6f96a359
SB
3579 (build-system gnu-build-system)
3580 (arguments
778d6b52 3581 '(#:configure-flags
6f96a359
SB
3582 (list (string-append "--with-xkb-base="
3583 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3584 "/share/X11/xkb")
3585 "--disable-xmodmap-support")))
6f96a359
SB
3586 (native-inputs
3587 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3588 ("gobject-introspection" ,gobject-introspection)
5f39050b 3589 ("pkg-config" ,pkg-config)
3590 ("gtk-doc" ,gtk-doc)
3591 ("intltool" ,intltool)
3592 ("which" ,which)
3593 ("autoconf" ,autoconf)
3594 ("automake" ,automake)
3595 ("libtool" ,libtool)))
6f96a359
SB
3596 (propagated-inputs
3597 ;; Required by libxklavier.pc.
3598 `(("glib" ,glib)
3599 ("libxml2" ,libxml2)))
3600 (inputs
3601 `(("iso-codes" ,iso-codes)
3602 ("libxi" ,libxi)
3603 ("libxkbfile" ,libxkbfile)
3604 ("xkbcomp" ,xkbcomp)
3605 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3606 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3607 (synopsis "High-level API for X Keyboard Extension")
3608 (description
3609 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3610Extension known as XKB. This library is intended to support XFree86 and other
3611commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3612indicators etc).")
3613 (license license:lgpl2.0+)))
619936a4
LC
3614
3615(define-public python2-rsvg
3616 ;; XXX: This is actually a subset of gnome-python-desktop.
3617 (package
3618 (name "python2-rsvg")
3619 (version "2.32.0")
3620 (source
3621 (origin
3622 (method url-fetch)
3623 (uri (string-append
3624 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3625 version ".tar.bz2"))
3626 (sha256
3627 (base32
3628 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3629 (build-system gnu-build-system)
3630 (native-inputs
3631 `(("pkg-config" ,pkg-config)))
3632 (inputs
3633 `(("python" ,python-2)
3634 ("python2-pygtk" ,python2-pygtk)
3635 ("librsvg" ,librsvg)))
f032d0be 3636 (home-page "https://www.gnome.org")
619936a4
LC
3637 (synopsis "Python bindings to librsvg")
3638 (description
3ad75446 3639 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3640library.")
3641
3642 ;; This is the license of the rsvg bindings. The license of each module
3643 ;; of gnome-python-desktop is given in 'COPYING'.
3644 (license license:lgpl2.1+)))
a31a6d22 3645
f2ca414a
SB
3646(define-public glib-networking
3647 (package
3648 (name "glib-networking")
ea9f74b0 3649 (version "2.62.2")
f2ca414a
SB
3650 (source (origin
3651 (method url-fetch)
3652 (uri (string-append "mirror://gnome/sources/glib-networking/"
3653 (version-major+minor version) "/"
fb8fe1e8 3654 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3655 (sha256
3656 (base32
ea9f74b0 3657 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 3658 (build-system meson-build-system)
f2ca414a 3659 (arguments
0d75c64d 3660 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3661 (native-inputs
3662 `(("pkg-config" ,pkg-config)
3663 ("intltool" ,intltool)))
3664 (inputs
3665 `(("glib" ,glib)
3666 ("gnutls" ,gnutls)
4b8f1313 3667 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3668 (home-page "https://www.gnome.org")
f2ca414a
SB
3669 (synopsis "Network-related GIO modules")
3670 (description
3671 "This package contains various network related extensions for the GIO
3672library.")
3673 (license license:lgpl2.0+)))
3674
ca649680 3675(define-public rest
4510b2da 3676 (package
ca649680 3677 (name "rest")
a4194d16 3678 (version "0.8.1")
4510b2da
SB
3679 (source (origin
3680 (method url-fetch)
3681 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3682 (version-major+minor version) "/"
3683 name "-" version ".tar.xz"))
4510b2da
SB
3684 (sha256
3685 (base32
a4194d16 3686 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3687 (build-system gnu-build-system)
3688 (arguments
3689 '(#:tests? #f ; tests require internet connection
3690 #:configure-flags
3691 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3692 (native-inputs
3693 `(("glib-mkenums" ,glib "bin")
3694 ("gobject-introspection" ,gobject-introspection)
3695 ("pkg-config" ,pkg-config)))
3696 (propagated-inputs
3697 ;; rest-0.7.pc refers to all these.
3698 `(("glib" ,glib)
3699 ("libsoup" ,libsoup)
3700 ("libxml2" ,libxml2)))
24d6cc1d 3701 (home-page "https://www.gtk.org/")
4510b2da
SB
3702 (synopsis "RESTful web api query library")
3703 (description
3704 "This library was designed to make it easier to access web services that
3705claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3706libxml to ease remote use of the RESTful API.")
3707 (license license:lgpl2.1+)))
3708
6e1bb642
SB
3709(define-public libsoup
3710 (package
3711 (name "libsoup")
9a9cd9bc 3712 (version "2.70.0")
6e1bb642
SB
3713 (source (origin
3714 (method url-fetch)
3715 (uri (string-append "mirror://gnome/sources/libsoup/"
3716 (version-major+minor version) "/"
c1b79b36 3717 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3718 (sha256
3719 (base32
9a9cd9bc 3720 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 3721 (build-system meson-build-system)
6e1bb642
SB
3722 (outputs '("out" "doc"))
3723 (arguments
2deb146f 3724 `(#:modules ((guix build utils)
eccaa8bf 3725 (guix build meson-build-system)
2deb146f
LC
3726 (ice-9 popen))
3727
f8026a79 3728 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3729 #:phases
3730 (modify-phases %standard-phases
eccaa8bf 3731 (add-after 'unpack 'adjust-tests
26c228f9 3732 (lambda _
eccaa8bf
MB
3733 ;; This test fails due to missing /etc/nsswitch.conf
3734 ;; in the build environment.
26c228f9
LC
3735 (substitute* "tests/socket-test.c"
3736 ((".*/sockets/unconnected.*") ""))
2deb146f 3737
f8026a79
MB
3738 ;; These fail because "subdomain.localhost" does not resolve in
3739 ;; the build environment.
3740 (substitute* "tests/hsts-test.c"
3741 ((".*/hsts/basic.*") "")
3742 ((".*/hsts/subdomains.*") "")
3743 ((".*/hsts/superdomain.*") "")
3744 ((".*/hsts/utf8-address.*") ""))
3745 (substitute* "tests/hsts-db-test.c"
3746 ((".*/hsts-db/subdomains.*") ""))
3747
2deb146f
LC
3748 ;; Generate a self-signed certificate that has "localhost" as its
3749 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3750 ;; 3.5.12, tests such as "ssl-tests" fail:
3751 ;;
3752 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3753 ;;
3754 ;; 'certtool' is interactive so we have to pipe it the answers.
3755 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3756 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3757 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3758 (for-each (lambda (line)
3759 (display line pipe)
3760 (newline pipe))
3761 '("" ;Common name
3762 "" ;UID
3763 "Guix" ;Organizational unit name
3764 "GNU" ;Organization name
3765 "" ;Locality name
3766 "" ;State or province
3767 "" ;Country
3768 "" ;subject's domain component (DC)
3769 "" ;E-mail
3770 "" ;serial number
3771 "-1" ;expiration time
3772 "N" ;belong to authority?
3773 "N" ;web client certificate?
3774 "N" ;IPsec IKE?
3775 "Y" ;web server certificate?
3776 "localhost" ;dnsName of subject
3777 "" ;dnsName of subject (end)
3778 "" ;URI of subject
3779 "127.0.0.1" ;IP address of subject
3780 "" ;signing?
06f5bc4e
MB
3781 "" ;encryption (RSA)?
3782 "" ;data encryption?
2deb146f
LC
3783 "" ;sign OCSP requests?
3784 "" ;sign code?
3785 "" ;time stamping?
3786 "" ;email protection?
3787 "" ;URI of the CRL distribution point
3788 "y" ;above info OK?
3789 ))
3790 (close-pipe pipe))
26c228f9 3791 #t))
eccaa8bf
MB
3792 (add-after 'install 'move-doc
3793 (lambda* (#:key outputs #:allow-other-keys)
3794 (let ((out (assoc-ref outputs "out"))
3795 (doc (assoc-ref outputs "doc")))
3796 (mkdir-p (string-append doc "/share"))
3797 (copy-recursively (string-append out "/share/gtk-doc")
3798 (string-append doc "/share/gtk-doc"))
3799 (delete-file-recursively (string-append out "/share/gtk-doc"))
3800 #t))))))
6e1bb642 3801 (native-inputs
26c228f9 3802 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3803 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3804 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3805 ("intltool" ,intltool)
3806 ("pkg-config" ,pkg-config)
3807 ("python" ,python-wrapper)
fd730590 3808 ("vala" ,vala)
53c41e95 3809 ("php" ,php)
6e1bb642 3810 ("curl" ,curl)
2deb146f 3811 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3812 ("httpd" ,httpd)))
3813 (propagated-inputs
3814 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3815 `(("brotli" ,google-brotli)
3816 ("glib" ,glib)
249846bf 3817 ("libpsl" ,libpsl)
eccaa8bf 3818 ("libxml2" ,libxml2)
f8026a79
MB
3819 ("sqlite" ,sqlite)
3820 ("zlib" ,zlib)))
eccaa8bf
MB
3821 (inputs
3822 `(("glib-networking" ,glib-networking)
3823 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3824 (home-page "https://live.gnome.org/LibSoup/")
3825 (synopsis "GLib-based HTTP Library")
3826 (description
3827 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3828and the GLib main loop, to integrate well with GNOME applications.")
3829 (license license:lgpl2.0+)))
3830
43b6b45e
MC
3831
3832;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3833(define-public libsoup-minimal
3834 (package
3835 (inherit libsoup)
3836 (name "libsoup-minimal")
3837 (outputs (delete "doc" (package-outputs libsoup)))
3838 (arguments
3839 (substitute-keyword-arguments (package-arguments libsoup)
3840 ((#:configure-flags configure-flags)
3841 `(delete "-Dgtk_doc=true" ,configure-flags))
3842 ((#:phases phases)
3843 `(modify-phases ,phases
3844 (delete 'move-doc)))))
3845 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3846
bba229a3
SB
3847(define-public libsecret
3848 (package
3849 (name "libsecret")
b05a2f62 3850 (version "0.20.3")
bba229a3
SB
3851 (source (origin
3852 (method url-fetch)
3853 (uri (string-append
896dcbc7
EF
3854 "mirror://gnome/sources/libsecret/"
3855 (version-major+minor version) "/"
0ada4e29 3856 "libsecret-" version ".tar.xz"))
bba229a3
SB
3857 (sha256
3858 (base32
b05a2f62 3859 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
3860 (build-system gnu-build-system)
3861 (outputs '("out" "doc"))
3862 (arguments
3863 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3864 #:configure-flags
3865 (list (string-append "--with-html-dir="
3866 (assoc-ref %outputs "doc")
3867 "/share/gtk-doc/html"))))
3868 (native-inputs
c06ef010
MB
3869 `(("gettext" ,gettext-minimal)
3870 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3871 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3872 ("pkg-config" ,pkg-config)
3873 ("vala" ,vala)
3874 ("xsltproc" ,libxslt)))
3875 ;; These are needed for the tests.
3876 ;; FIXME: Add gjs once available.
3877 ;("dbus" ,dbus)
3878 ;("python2" ,python-2)
3879 ;("python2-dbus" ,python2-dbus)
3880 ;("python2-pygobject" ,python2-pygobject)
3881 ;("python2-pygobject-2" ,python2-pygobject-2)))
3882 (propagated-inputs
3883 `(("glib" ,glib))) ; required by libsecret-1.pc
3884 (inputs
3885 `(("docbook-xsl" ,docbook-xsl)
3886 ("libgcrypt" ,libgcrypt)
3887 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3888 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3889 (synopsis "GObject bindings for \"Secret Service\" API")
3890 (description
3891 "Libsecret is a GObject based library for storing and retrieving passwords
3892and other secrets. It communicates with the \"Secret Service\" using DBus.")
3893 (license license:lgpl2.1+)))
3894
b6821ee0 3895(define-public five-or-more
3896 (package
3897 (name "five-or-more")
ee75b46f 3898 (version "3.32.2")
b6821ee0 3899 (source
3900 (origin
3901 (method url-fetch)
bf782bfc 3902 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 3903 (version-major+minor version) "/"
bf782bfc 3904 "five-or-more-" version ".tar.xz"))
b6821ee0 3905 (sha256
ee75b46f 3906 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
3907 (build-system meson-build-system)
3908 (arguments
3909 '(#:glib-or-gtk? #t
3910 #:phases
3911 (modify-phases %standard-phases
3912 (add-after 'unpack 'skip-gtk-update-icon-cache
3913 (lambda _
3914 (substitute* "meson_post_install.py"
3915 (("gtk-update-icon-cache") (which "true")))
3916 #t)))))
b6821ee0 3917 (native-inputs
3918 `(("pkg-config" ,pkg-config)
d9795e93 3919 ("appstream-glib" ,appstream-glib)
b6821ee0 3920 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3921 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3922 ("intltool" ,intltool)
3923 ("itstool" ,itstool)
d9795e93 3924 ("vala" ,vala)
b6821ee0 3925 ("xmllint" ,libxml2)))
3926 (inputs
3927 `(("gtk+" ,gtk+)
d9795e93 3928 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3929 ("librsvg" ,librsvg)))
3930 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3931 (synopsis "Logic puzzle game")
3932 (description "Five or More is a game where you try to align
3933 five or more objects of the same color and shape causing them to disappear.
3934 On every turn more objects will appear, until the board is full.
3935 Try to last as long as possible.")
3936 (license license:gpl2+)))
3937
a31a6d22
SB
3938(define-public gnome-mines
3939 (package
3940 (name "gnome-mines")
d79e9b1b 3941 (version "3.34.0")
a31a6d22
SB
3942 (source
3943 (origin
3944 (method url-fetch)
3945 (uri (string-append "mirror://gnome/sources/" name "/"
3946 (version-major+minor version) "/"
3947 name "-" version ".tar.xz"))
3948 (sha256
3949 (base32
d79e9b1b 3950 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 3951 (build-system meson-build-system)
a31a6d22 3952 (arguments
2d817e41
KK
3953 '(#:glib-or-gtk? #t
3954 #:phases
a31a6d22 3955 (modify-phases %standard-phases
2d817e41
KK
3956 (add-after 'unpack 'skip-gtk-update-icon-cache
3957 (lambda _
3958 (substitute* "build-aux/meson_post_install.py"
3959 (("gtk-update-icon-cache") (which "true")))
3960 #t)))))
a31a6d22 3961 (native-inputs
8c0fab36
RW
3962 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3963 ("pkg-config" ,pkg-config)
a31a6d22
SB
3964 ("desktop-file-utils" ,desktop-file-utils)
3965 ("intltool" ,intltool)
bcb354ad 3966 ("itstool" ,itstool)
8c0fab36
RW
3967 ("vala" ,vala)
3968 ("yelp" ,yelp)
3969 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3970 (inputs
3971 `(("gtk+" ,gtk+)
73992962 3972 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3973 ("librsvg" ,librsvg)))
3974 (home-page "https://wiki.gnome.org/Apps/Mines")
3975 (synopsis "Minesweeper game")
3976 (description
3977 "Mines (previously gnomine) is a puzzle game where you locate mines
3978floating in an ocean using only your brain and a little bit of luck.")
754cfbdc
EB
3979 (license license:gpl2+)))
3980
3981(define-public gnome-multi-writer
3982 (package
3983 (name "gnome-multi-writer")
3984 (version "3.35.90")
3985 (source
3986 (origin
3987 (method url-fetch)
3988 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
3989 (version-major+minor version) "/"
3990 "gnome-multi-writer-" version ".tar.xz"))
3991 (sha256
3992 (base32
3993 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
3994 (build-system meson-build-system)
3995 (arguments
3996 '(#:glib-or-gtk? #t
3997 #:phases
3998 (modify-phases %standard-phases
3999 (add-after 'unpack 'skip-post-install
4000 (lambda _
4001 (substitute* "meson.build"
4002 (("meson.add_install_script" &) (string-append "# " &)))
4003 #t)))))
4004 (native-inputs
4005 `(("glib:bin" ,glib "bin")
4006 ("pkg-config" ,pkg-config)))
4007 (inputs
4008 `(("gtk+" ,gtk+)
4009 ("glib" ,glib) ; for gio
4010 ("gusb" ,gusb)
4011 ("udisks" ,udisks)
4012 ("libgudev" ,libgudev)
4013 ("libcanberra" ,libcanberra)
4014 ("polkit" ,polkit)))
4015 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4016 (synopsis "Write to multiple USB devices at once")
4017 (description
4018 "MultiWriter can be used to write an ISO file to multiple USB devices at
4019once.")
a31a6d22 4020 (license license:gpl2+)))
88f70665 4021
dfc407f3
KY
4022(define-public gnome-sudoku
4023 (package
4024 (name "gnome-sudoku")
857eb190 4025 (version "3.34.1")
dfc407f3
KY
4026 (source
4027 (origin
4028 (method url-fetch)
4029 (uri (string-append "mirror://gnome/sources/" name "/"
4030 (version-major+minor version) "/"
4031 name "-" version ".tar.xz"))
4032 (sha256
4033 (base32
857eb190 4034 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
4035 (build-system meson-build-system)
4036 (arguments
4037 '(#:glib-or-gtk? #t
4038 #:phases
4039 (modify-phases %standard-phases
4040 (add-after 'unpack 'skip-gtk-update-icon-cache
4041 (lambda _
4042 (substitute* "build-aux/post_install.py"
4043 (("gtk-update-icon-cache") (which "true")))
4044 #t)))))
dfc407f3
KY
4045 (native-inputs
4046 `(("pkg-config" ,pkg-config)
4047 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 4048 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
4049 ("intltool" ,intltool)
4050 ("itstool" ,itstool)
7dc728c4 4051 ("vala" ,vala)
dfc407f3
KY
4052 ("xmllint" ,libxml2)))
4053 (inputs
4054 `(("gtk+" ,gtk+)
4055 ("json-glib" ,json-glib)
4056 ("libgee" ,libgee)
4057 ("librsvg" ,librsvg)
4058 ("qqwing" ,qqwing)))
4059 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4060 (synopsis "Japanese logic game")
4061 (description
4062 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4063GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4064possible while still providing features that make playing difficult Sudoku
4065more fun.")
4066 (license license:gpl2+)))
4067
88f70665
AW
4068(define-public gnome-terminal
4069 (package
4070 (name "gnome-terminal")
80f6f9d8 4071 (version "3.34.2")
88f70665
AW
4072 (source
4073 (origin
4074 (method url-fetch)
4075 (uri (string-append "mirror://gnome/sources/" name "/"
4076 (version-major+minor version) "/"
4077 name "-" version ".tar.xz"))
4078 (sha256
4079 (base32
80f6f9d8 4080 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
4081 (build-system glib-or-gtk-build-system)
4082 (arguments
4083 '(#:configure-flags
4084 (list "--disable-migration" "--disable-search-provider"
4085 "--without-nautilus-extension")
4086 #:phases
4087 (modify-phases %standard-phases
3a4de6b2 4088 (add-before 'configure 'patch-/bin/true
88f70665
AW
4089 (lambda _
4090 (substitute* "configure"
4091 (("/bin/true") (which "true"))))))))
4092 (native-inputs
4093 `(("pkg-config" ,pkg-config)
4094 ("desktop-file-utils" ,desktop-file-utils)
4095 ("intltool" ,intltool)
bcb354ad
SB
4096 ("itstool" ,itstool)
4097 ("xmllint" ,libxml2)))
68702167
MW
4098 (propagated-inputs
4099 `(("dconf" ,dconf)))
88f70665
AW
4100 (inputs
4101 `(("gtk+" ,gtk+)
4102 ("vte" ,vte)
4103 ("gnutls" ,gnutls)
88f70665 4104 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 4105 ("util-linux" ,util-linux "lib")
88f70665
AW
4106 ("vala" ,vala)))
4107 (home-page "https://wiki.gnome.org/Apps/Terminal")
4108 (synopsis "Terminal emulator")
4109 (description
4110 "GNOME Terminal is a terminal emulator application for accessing a
4111UNIX shell environment which can be used to run programs available on
4112your system.
4113
4114It supports several profiles, multiple tabs and implements several
4115keyboard shortcuts.")
4116 (license license:gpl3+)))
75016d07
AW
4117
4118(define-public colord
4119 (package
4120 (name "colord")
f98be942 4121 (version "1.4.4")
75016d07
AW
4122 (source
4123 (origin
4124 (method url-fetch)
5cc3096c 4125 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4126 "colord-" version ".tar.xz"))
75016d07 4127 (sha256
f98be942 4128 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4129 (build-system meson-build-system)
75016d07 4130 (arguments
a68544a8
RW
4131 '(;; FIXME: One test fails:
4132 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4133 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4134 ;; application/x-zerosize
75016d07 4135 #:tests? #f
a68544a8
RW
4136 #:glib-or-gtk? #t
4137 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4138 ;; No dep on systemd.
a68544a8 4139 "-Dsystemd=false"
75016d07
AW
4140 ;; Wants to install to global completion dir;
4141 ;; punt.
a68544a8 4142 "-Dbash_completion=false"
a68544a8
RW
4143 "-Ddaemon_user=colord"
4144 "-Dsane=true"
dac26e22 4145 "-Dvapi=true"
6f20e2dc 4146 ;; Requires spotread.
a68544a8 4147 "-Dargyllcms_sensor=false"
6f20e2dc 4148 ;; TODO: Requires docbook2x.
a68544a8 4149 "-Dman=false")
75016d07
AW
4150 #:phases
4151 (modify-phases %standard-phases
a68544a8
RW
4152 (add-before 'configure 'patch-build-system
4153 (lambda* (#:key outputs #:allow-other-keys)
4154 (substitute* "rules/meson.build"
4155 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4156 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4157 #t))
4158 (add-before 'configure 'set-sqlite3-file-name
4159 (lambda* (#:key inputs #:allow-other-keys)
4160 ;; "colormgr dump" works by invoking the "sqlite3" command.
4161 ;; Record its absolute file name.
4162 (let ((sqlite (assoc-ref inputs "sqlite")))
4163 (substitute* "client/cd-util.c"
4164 (("\"sqlite3\"")
4165 (string-append "\"" sqlite "/bin/sqlite3\"")))
4166 #t))))))
75016d07 4167 (native-inputs
6f20e2dc 4168 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4169 ("gettext" ,gettext-minimal)
75016d07 4170 ("gobject-introspection" ,gobject-introspection)
a68544a8 4171 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4172 ("pkg-config" ,pkg-config)
4173 ("vala" ,vala)))
65cb2d61
SB
4174 (propagated-inputs
4175 ;; colord.pc refers to all these.
4176 `(("glib" ,glib)
6f20e2dc
TGR
4177 ("lcms" ,lcms)
4178 ("udev" ,eudev)))
75016d07 4179 (inputs
65cb2d61 4180 `(("dbus-glib" ,dbus-glib)
a68544a8 4181 ("gusb" ,gusb)
80c7dd1a 4182 ("libgudev" ,libgudev)
75016d07 4183 ("libusb" ,libusb)
75016d07 4184 ("polkit" ,polkit)
a68544a8 4185 ("python" ,python-wrapper)
6f20e2dc 4186 ("sqlite" ,sqlite)
4c928743 4187 ("sane-backends" ,sane-backends)))
57e7d748 4188 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4189 (synopsis "Color management service")
4190 (description "Colord is a system service that makes it easy to manage,
4191install and generate color profiles to accurately color manage input and
4192output devices.")
4193 (license license:gpl2+)))
7b2abd00
AW
4194
4195(define-public geoclue
4196 (package
4197 (name "geoclue")
2bf0a5cb 4198 (version "2.5.6")
7b2abd00
AW
4199 (source
4200 (origin
4201 (method url-fetch)
50e96d25
MB
4202 (uri
4203 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4204 version "/geoclue-" version ".tar.bz2"))
7b2abd00 4205 (sha256
2bf0a5cb 4206 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
fc1adab1 4207 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4208 (build-system meson-build-system)
7b2abd00 4209 (arguments
50e96d25 4210 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4211 (native-inputs
4212 `(("pkg-config" ,pkg-config)
758798a9 4213 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4214 ("modem-manager" ,modem-manager)
4215 ("libnotify" ,libnotify)
4216 ("gtk-doc", gtk-doc)
7b2abd00
AW
4217 ("intltool" ,intltool)))
4218 (inputs
54e911bc 4219 `(("avahi" ,avahi)
50e96d25
MB
4220 ("glib:bin" ,glib "bin")
4221 ("glib-networking" ,glib-networking)
7b2abd00
AW
4222 ("json-glib" ,json-glib)
4223 ("libsoup" ,libsoup)))
50e96d25 4224 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4225 (synopsis "Geolocation service")
4226 (description "Geoclue is a D-Bus service that provides location
4227information. The primary goal of the Geoclue project is to make creating
4228location-aware applications as simple as possible, while the secondary goal is
4229to ensure that no application can access location information without explicit
e881752c 4230permission from user.")
7b2abd00 4231 (license license:gpl2+)))
2bfe7437
AW
4232
4233(define-public geocode-glib
4234 (package
4235 (name "geocode-glib")
65de725f 4236 (version "3.26.1")
2bfe7437
AW
4237 (source (origin
4238 (method url-fetch)
4239 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4240 (version-major+minor version) "/"
d485cdc0 4241 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4242 (sha256
4243 (base32
65de725f 4244 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4245 (build-system meson-build-system)
2bfe7437 4246 (arguments
a7dd0c02
RW
4247 `(#:phases
4248 (modify-phases %standard-phases
4249 ;; The tests require a bunch of locales.
4250 (add-before 'check 'set-locales
4251 (lambda* (#:key inputs #:allow-other-keys)
4252 (setenv "GUIX_LOCPATH"
4253 (string-append (assoc-ref inputs "glibc-locales")
4254 "/lib/locale"))
4255 #t)))))
2bfe7437
AW
4256 (native-inputs
4257 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4258 ("glibc-locales" ,glibc-locales) ; for tests
4259 ("gettext" ,gettext-minimal)
2bfe7437 4260 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4261 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4262 ("pkg-config" ,pkg-config)
4263 ("json-glib" ,json-glib)))
4264 (propagated-inputs
4265 ;; geocode-glib-1.0.pc refers to GIO.
4266 `(("glib" ,glib)))
4267 (inputs
4268 `(("libsoup" ,libsoup)))
4269 (home-page "https://github.com/GNOME/geocode-glib/")
4270 (synopsis "Geocoding and reverse-geocoding library")
4271 (description
4272 "geocode-glib is a convenience library for geocoding (finding longitude,
4273and latitude from an address) and reverse geocoding (finding an address from
4274coordinates) using the Nominatim service. geocode-glib caches requests for
4275faster results and to avoid unnecessary server load.")
4276 (license license:lgpl2.0+)))
a1d5bb0e
AW
4277
4278(define-public upower
4279 (package
4280 (name "upower")
df45af90 4281 (version "0.99.11")
a1d5bb0e
AW
4282 (source (origin
4283 (method url-fetch)
df45af90 4284 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4285 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4286 (sha256
4287 (base32
df45af90 4288 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4289 (patches (search-patches "upower-builddir.patch"))
4290 (modules '((guix build utils)))
4291 (snippet
4292 '(begin
4293 ;; Upstream commit
4294 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4295 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4296 ;; 'dbus-configuration-directory' in (gnu services dbus)
4297 ;; expects it in etc/. Thus, move it back to its previous
4298 ;; location.
4299 (substitute* "src/Makefile.in"
4300 (("^dbusconfdir =.*$")
4301 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4302 #t))))
a1d5bb0e
AW
4303 (build-system glib-or-gtk-build-system)
4304 (arguments
6039031a
BW
4305 '(#:phases
4306 (modify-phases %standard-phases
4307 (add-before 'check 'pre-check
4308 (lambda* (#:key inputs #:allow-other-keys)
4309 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4310 "/lib")))
4311 (setenv "LD_LIBRARY_PATH" umockdev))
4312 #t)))
a1d5bb0e
AW
4313 #:configure-flags (list "--localstatedir=/var"
4314 (string-append "--with-udevrulesdir="
4315 (assoc-ref %outputs "out")
9ec54965 4316 "/lib/udev/rules.d"))))
a1d5bb0e 4317 (native-inputs
ebeabe2d
SB
4318 `(("gobject-introspection" ,gobject-introspection)
4319 ("pkg-config" ,pkg-config)
a1d5bb0e 4320 ("intltool" ,intltool)
55409295
LC
4321 ("python" ,python)
4322
6039031a
BW
4323 ;; For tests.
4324 ("python-dbus" ,python-dbus)
4325 ("python-dbusmock" ,python-dbusmock)
4326 ("python-pygobject" ,python-pygobject)
4327 ("umockdev" ,umockdev)
4328
55409295
LC
4329 ;; For man pages.
4330 ("libxslt" ,libxslt) ;for 'xsltproc'
4331 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4332 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4333 (inputs
ea226291
SB
4334 `(("dbus-glib" ,dbus-glib)
4335 ("libgudev" ,libgudev)
a1d5bb0e 4336 ("libusb" ,libusb)))
d7a503fc
MB
4337 (propagated-inputs
4338 ;; In Requires of upower-glib.pc.
4339 `(("glib" ,glib)))
57e7d748 4340 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4341 (synopsis "System daemon for managing power devices")
4342 (description
4343 "UPower is an abstraction for enumerating power devices,
4344listening to device events and querying history and statistics. Any
4345application or service on the system can access the org.freedesktop.UPower
4346service via the system message bus.")
4347 (license license:gpl2+)))
6a180f6f
AW
4348
4349(define-public libgweather
4350 (package
4351 (name "libgweather")
462d3416 4352 (version "3.34.0")
6a180f6f
AW
4353 (source (origin
4354 (method url-fetch)
4355 (uri (string-append "mirror://gnome/sources/" name "/"
4356 (version-major+minor version) "/"
4357 name "-" version ".tar.xz"))
4358 (sha256
4359 (base32
462d3416 4360 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 4361 (build-system meson-build-system)
6a180f6f 4362 (arguments
cf6cbc34
RW
4363 `(#:tests? #f ; one of two tests requires network access
4364 #:configure-flags
4365 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 4366 (assoc-ref %build-inputs "tzdata")
cf6cbc34 4367 "/share/zoneinfo"))))
6a180f6f
AW
4368 (native-inputs
4369 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 4370 ("gobject-introspection" ,gobject-introspection)
6a180f6f 4371 ("pkg-config" ,pkg-config)
1d3fcf94 4372 ("vala" ,vala)
6a180f6f
AW
4373 ("intltool" ,intltool)))
4374 (propagated-inputs
4375 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4376 ;; libsoup.
4377 `(("gtk+" ,gtk+)
4378 ("gdk-pixbuf" ,gdk-pixbuf)
4379 ("libxml2" ,libxml2)
cf6cbc34 4380 ("libsoup" ,libsoup)
6a180f6f 4381 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
4382 (inputs
4383 `(("tzdata" ,tzdata)))
6a180f6f
AW
4384 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4385 (synopsis "Location, time zone, and weather library for GNOME")
4386 (description
4387 "libgweather is a library to access weather information from online
4388services for numerous locations.")
4389 (license license:gpl2+)))
23a22af6
AW
4390
4391(define-public gnome-settings-daemon
4392 (package
4393 (name "gnome-settings-daemon")
20154759 4394 (version "3.34.1")
23a22af6
AW
4395 (source
4396 (origin
4397 (method url-fetch)
4398 (uri (string-append "mirror://gnome/sources/" name "/"
4399 (version-major+minor version) "/"
4400 name "-" version ".tar.xz"))
4401 (sha256
4402 (base32
20154759 4403 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 4404 (build-system meson-build-system)
23a22af6 4405 (arguments
e644f9fa
RW
4406 `(#:glib-or-gtk? #t
4407 #:configure-flags
4408 (list (string-append "-Dudev_dir="
4409 (assoc-ref %outputs "out")
4d0e085b 4410 "/lib/udev/rules.d/")
20154759 4411 "-Dsystemd=false"
4d0e085b
RW
4412 ;; Otherwise, the RUNPATH will lack the final path component.
4413 (string-append "-Dc_link_args=-Wl,-rpath="
4414 (assoc-ref %outputs "out")
4415 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 4416 ;; Color management test can't reach the colord system service.
23a22af6
AW
4417 #:tests? #f))
4418 (native-inputs
e644f9fa
RW
4419 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4420 ("pkg-config" ,pkg-config)
23a22af6
AW
4421 ("intltool" ,intltool)
4422 ("xsltproc" ,libxslt)
4423 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4424 ("docbook-xml" ,docbook-xml-4.2)
4425 ("docbook-xsl" ,docbook-xsl)))
4426 (inputs
e644f9fa
RW
4427 `(("alsa-lib" ,alsa-lib)
4428 ("colord" ,colord)
ea226291 4429 ("libgudev" ,libgudev)
23a22af6
AW
4430 ("upower" ,upower)
4431 ("polkit" ,polkit)
4432 ("pulseaudio" ,pulseaudio)
4433 ("libcanberra" ,libcanberra)
4434 ("libx11" ,libx11)
4435 ("libxtst" ,libxtst)
4436 ("lcms" ,lcms)
4437 ("libnotify" ,libnotify)
4438 ("geoclue" ,geoclue)
4439 ("geocode-glib" ,geocode-glib)
4440 ("libgweather" ,libgweather)
4441 ("gnome-desktop" ,gnome-desktop)
4442 ("nss" ,nss)
4443 ("cups" ,cups)
ec2b1921
AW
4444 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4445 ("libwacom" ,libwacom)
4446 ("librsvg" ,librsvg)
eee7878f 4447 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 4448 ("wayland" ,wayland)
20154759
KK
4449 ("network-manager" ,network-manager)
4450 ("gcr" ,gcr)
4451 ("modem-manager" ,modem-manager)))
f032d0be 4452 (home-page "https://www.gnome.org")
23a22af6
AW
4453 (synopsis "GNOME settings daemon")
4454 (description
4455 "This package contains the daemon responsible for setting the various
4456parameters of a GNOME session and the applications that run under it. It
4457handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4458settings, themes, mouse settings, and startup of other daemons.")
4459 (license license:gpl2+)))
1e7464a9
DH
4460
4461(define-public totem-pl-parser
4462 (package
4463 (name "totem-pl-parser")
77425f04 4464 (version "3.26.3")
1e7464a9
DH
4465 (source (origin
4466 (method url-fetch)
e980cbe9
MW
4467 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4468 (version-major+minor version) "/"
1e7464a9
DH
4469 "totem-pl-parser-" version ".tar.xz"))
4470 (sha256
4471 (base32
77425f04 4472 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 4473 (build-system meson-build-system)
1e7464a9
DH
4474 (arguments
4475 ;; FIXME: Tests require gvfs.
4476 `(#:tests? #f))
4477 (native-inputs
4478 `(("intltool" ,intltool)
4479 ("glib" ,glib "bin")
4d6d8281 4480 ("gobject-introspection" ,gobject-introspection)
1e7464a9 4481 ("pkg-config" ,pkg-config)))
22a6ad6a 4482 (propagated-inputs
1e7464a9
DH
4483 `(("glib" ,glib)
4484 ("gmime" ,gmime)
1e9b19dd
RW
4485 ("libarchive" ,libarchive)
4486 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
4487 ("libxml2" ,libxml2)))
4488 (inputs
0a6e9e13 4489 `(("libsoup" ,libsoup)))
1e7464a9
DH
4490 (home-page "https://projects.gnome.org/totem")
4491 (synopsis "Library to parse and save media playlists for GNOME")
4492 (description "Totem-pl-parser is a GObjects-based library to parse and save
4493playlists in a variety of formats.")
4494 (license license:lgpl2.0+)))
4495
6b888eff
SB
4496(define-public aisleriot
4497 (package
4498 (name "aisleriot")
36ed9b46 4499 (version "3.22.9")
6b888eff
SB
4500 (source (origin
4501 (method url-fetch)
e43f622a 4502 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 4503 (version-major+minor version) "/"
e43f622a 4504 "aisleriot-" version ".tar.xz"))
6b888eff
SB
4505 (sha256
4506 (base32
36ed9b46 4507 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
4508 (build-system glib-or-gtk-build-system)
4509 (arguments
4510 '(#:configure-flags
4511 '("--with-platform=gtk-only"
4512 "--with-card-theme-formats=svg")))
4513 (native-inputs
4514 `(("desktop-file-utils" ,desktop-file-utils)
4515 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4516 ("intltool" ,intltool)
4517 ("itstool" ,itstool)
4518 ("pkg-config" ,pkg-config)
4519 ("xmllint" ,libxml2)))
4520 (inputs
4521 `(("gtk+" ,gtk+)
226e57d6 4522 ("guile" ,guile-2.2)
6b888eff
SB
4523 ("libcanberra" ,libcanberra)
4524 ("librsvg" ,librsvg)))
4525 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4526 (synopsis "Solitaire card games")
4527 (description
4528 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4529which are easy to play with the aid of a mouse.")
4530 (license license:gpl3+)))
4a79e256 4531
f828d05b
KK
4532(define-public amtk
4533 (package
4534 (name "amtk")
0e08ca14 4535 (version "5.0.2")
f828d05b
KK
4536 (source (origin
4537 (method url-fetch)
bf92ba6b 4538 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 4539 (version-major+minor version) "/"
bf92ba6b 4540 "amtk-" version ".tar.xz"))
f828d05b
KK
4541 (sha256
4542 (base32
0e08ca14 4543 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
4544 (build-system gnu-build-system)
4545 (arguments
4546 '(#:configure-flags '("--enable-gtk-doc")))
4547 (native-inputs
4548 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 4549 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
4550 ("gtk-doc" ,gtk-doc)
4551 ("pkg-config" ,pkg-config)))
4552 (inputs
4553 `(("glib" ,glib)
4554 ("gtk+" ,gtk+)))
4555 (home-page "https://wiki.gnome.org/Projects/Amtk")
4556 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4557 (description
4558 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4559It is a basic GtkUIManager replacement based on GAction. It is suitable for
4560both a traditional UI or a modern UI with a GtkHeaderBar.")
4561 (license license:lgpl2.1+)))
4562
4a79e256
SB
4563(define-public devhelp
4564 (package
4565 (name "devhelp")
8ae23a1d 4566 (version "3.34.0")
4a79e256
SB
4567 (source (origin
4568 (method url-fetch)
4569 (uri (string-append "mirror://gnome/sources/" name "/"
4570 (version-major+minor version) "/"
4571 name "-" version ".tar.xz"))
4572 (sha256
4573 (base32
8ae23a1d 4574 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 4575 (build-system meson-build-system)
35407f94 4576 (arguments
20db7a3d
KK
4577 '(#:glib-or-gtk? #t
4578 #:phases
35407f94
EF
4579 (modify-phases %standard-phases
4580 (add-after 'unpack 'skip-gtk-update-icon-cache
4581 ;; Don't create 'icon-theme.cache'.
4582 (lambda _
4583 (substitute* "meson_post_install.py"
4584 (("gtk-update-icon-cache") "true"))
4585 #t)))))
4a79e256
SB
4586 (native-inputs
4587 `(("intltool" ,intltool)
5dd12afc 4588 ("itstool" ,itstool)
11d28bd9
KK
4589 ("gobject-introspection" ,gobject-introspection)
4590 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
4591 ("pkg-config" ,pkg-config)))
4592 (inputs
11d28bd9
KK
4593 `(("amtk" ,amtk)
4594 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
4595 ("webkitgtk" ,webkitgtk)))
4596 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4597 (synopsis "API documentation browser for GNOME")
4598 (description
4599 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4600natively with GTK-Doc (the API reference system developed for GTK+ and used
4601throughout GNOME for API documentation).")
4602 (license license:gpl2+)))
ba421ab7
MW
4603
4604(define-public cogl
4605 (package
4606 (name "cogl")
c668a880 4607 (version "1.22.8")
ba421ab7
MW
4608 (source
4609 (origin
4610 (method url-fetch)
5754f0cf 4611 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 4612 (version-major+minor version) "/"
5754f0cf 4613 "cogl-" version ".tar.xz"))
ba421ab7 4614 (sha256
c668a880 4615 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
a88d5a0c
MW
4616 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4617 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
4618 (build-system gnu-build-system)
4619 (native-inputs
4620 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4621 ("gobject-introspection" ,gobject-introspection)
b4f04e0e 4622 ("xorg-server" ,xorg-server-for-tests)
ba421ab7
MW
4623 ("pkg-config" ,pkg-config)))
4624 (propagated-inputs
4625 `(("glib" ,glib)
4626 ("gdk-pixbuf" ,gdk-pixbuf)
4627 ("libx11" ,libx11)
4628 ("libxext" ,libxext)
4629 ("libxfixes" ,libxfixes)
4630 ("libxdamage" ,libxdamage)
4631 ("libxcomposite" ,libxcomposite)
4632 ("libxrandr" ,libxrandr)))
4633 (inputs
4634 `(("mesa" ,mesa)
4635 ("cairo" ,cairo)
4636 ("pango" ,pango)
4637 ("gstreamer" ,gstreamer)
31860852
KK
4638 ("gst-plugins-base" ,gst-plugins-base)
4639 ("wayland" ,wayland)))
ba421ab7 4640 (arguments
b4f04e0e
MB
4641 `(#:disallowed-references (,xorg-server-for-tests)
4642 #:configure-flags (list "--enable-cogl-gst"
31860852
KK
4643 "--enable-wayland-egl-platform"
4644 "--enable-wayland-egl-server"
4645
ba421ab7
MW
4646 ;; Arrange to pass an absolute file name to
4647 ;; dlopen for libGL.so.
4648 (string-append "--with-gl-libname="
4649 (assoc-ref %build-inputs "mesa")
4650 "/lib/libGL.so"))
b4f04e0e 4651 #:phases
ba421ab7 4652 (modify-phases %standard-phases
0c8a51c7
MB
4653 (add-after 'unpack 'fix-build-with-mesa-20
4654 (lambda _
4655 ;; Work around a problem with Mesa 20 where some macros used by
4656 ;; Cogl went missing from eglext.h. This can likely be removed
4657 ;; for newer versions of Cogl or Mesa.
4658 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
4659 (substitute* '("configure"
4660 "cogl/winsys/cogl-winsys-egl-kms.c")
4661 (("#include <EGL/eglext.h>" all)
4662 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
4663 #t))
ba421ab7 4664 (add-before 'check 'start-xorg-server
b4f04e0e
MB
4665 (lambda* (#:key tests? inputs #:allow-other-keys)
4666 (if tests?
4667 (begin
4668 ;; The test suite requires a running X server.
4669 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4670 (assoc-ref inputs "xorg-server")))
4671 (setenv "DISPLAY" ":1")
4672 #t)
4673 (format #t "test suite not run~%"))
ba421ab7 4674 #t)))))
89b49245 4675 (home-page "https://www.cogl3d.org")
ba421ab7
MW
4676 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4677 (description
4678 "Cogl is a small library for using 3D graphics hardware to draw pretty
4679pictures. The API departs from the flat state machine style of OpenGL and is
4680designed to make it easy to write orthogonal components that can render
4681without stepping on each others toes.")
4682 (license (list license:expat ; most of the code
4683 license:bsd-3 ; cogl/cogl-point-in-poly.c
4684 license:sgifreeb2.0 ; cogl-path/tesselator/
4685 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4686
4687(define-public clutter
4688 (package
4689 (name "clutter")
6a88e4ee 4690 (version "1.26.2")
fb182b8a
MW
4691 (source
4692 (origin
4693 (method url-fetch)
4694 (uri (string-append "mirror://gnome/sources/" name "/"
4695 (version-major+minor version) "/"
4696 name "-" version ".tar.xz"))
4697 (sha256
4698 (base32
6a88e4ee 4699 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4700 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4701 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4702 (build-system gnu-build-system)
600233bd
LC
4703 (outputs '("out"
4704 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4705 (native-inputs
4706 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4707 ("gobject-introspection" ,gobject-introspection)
4708 ("pkg-config" ,pkg-config)
4709 ("xsltproc" ,libxslt)))
4710 (propagated-inputs
4711 `(("cogl" ,cogl)
4712 ("cairo" ,cairo)
4713 ("atk" ,atk)
4714 ("gtk+" ,gtk+)
4715 ("json-glib" ,json-glib)
4716 ("glib" ,glib)
4717 ("libxcomposite" ,libxcomposite)
4718 ("libxdamage" ,libxdamage)
4719 ("libxext" ,libxext)
4720 ("xinput" ,xinput)))
4721 (inputs
4722 `(("libxkbcommon" ,libxkbcommon)
4723 ("udev" ,eudev)))
4724 (arguments
600233bd
LC
4725 `(#:configure-flags (list "--enable-x11-backend=yes"
4726
4727 ;; This produces share/doc/{clutter,cally}.
4728 (string-append "--with-html-dir="
4729 (assoc-ref %outputs "doc")
4730 "/share/doc"))
fb182b8a
MW
4731 ;; XXX FIXME: Get test suite working. It would probably fail in the
4732 ;; same way the cogl tests fail, since clutter is based on cogl.
4733 #:tests? #f))
4734 (home-page "http://www.clutter-project.org")
476af713 4735 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4736 (description
476af713 4737 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4738creating fast, mainly 2D single window applications such as media box UIs,
4739presentations, kiosk style applications and so on.")
4740 (license license:lgpl2.0+)))
bf7f17ba
MW
4741
4742(define-public clutter-gtk
4743 (package
4744 (name "clutter-gtk")
5d1a3219 4745 (version "1.8.4")
bf7f17ba
MW
4746 (source
4747 (origin
4748 (method url-fetch)
4749 (uri (string-append "mirror://gnome/sources/" name "/"
4750 (version-major+minor version) "/"
4751 name "-" version ".tar.xz"))
4752 (sha256
4753 (base32
5d1a3219 4754 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4755 (build-system gnu-build-system)
4756 (native-inputs
4757 `(("pkg-config" ,pkg-config)
4758 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4759 (propagated-inputs
4760 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4761 `(("clutter" ,clutter)
4762 ("gtk+" ,gtk+)))
4763 (home-page "http://www.clutter-project.org")
476af713 4764 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4765 (description
476af713 4766 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4767creating fast, mainly 2D single window applications such as media box UIs,
4768presentations, kiosk style applications and so on.")
4769 (license license:lgpl2.0+)))
86d6a893
MW
4770
4771(define-public clutter-gst
4772 (package
4773 (name "clutter-gst")
ba07ac19 4774 (version "3.0.27")
86d6a893
MW
4775 (source
4776 (origin
4777 (method url-fetch)
f010f89b 4778 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4779 (version-major+minor version) "/"
f010f89b 4780 "clutter-gst-" version ".tar.xz"))
86d6a893 4781 (sha256
ba07ac19 4782 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4783 (build-system gnu-build-system)
4784 (native-inputs
ba07ac19 4785 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4786 ("pkg-config" ,pkg-config)
4787 ("gobject-introspection" ,gobject-introspection)))
4788 (inputs
4789 `(("clutter" ,clutter)
4790 ("gstreamer" ,gstreamer)
4791 ("gst-plugins-base" ,gst-plugins-base)))
4792 (home-page "http://www.clutter-project.org")
4793 (synopsis "Integration library for using GStreamer with Clutter")
4794 (description
4795 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4796It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4797implements the ClutterGstPlayer interface using playbin. Clutter is an
4798OpenGL-based interactive canvas library.")
86d6a893 4799 (license license:lgpl2.0+)))
607a04ae 4800
30dc88d9
LC
4801(define-public libchamplain
4802 (package
4803 (name "libchamplain")
5564b2c5 4804 (version "0.12.16")
30dc88d9
LC
4805 (source (origin
4806 (method url-fetch)
4807 (uri (string-append
4808 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4809 version ".tar.xz"))
4810 (sha256
4811 (base32
5564b2c5 4812 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4813 (build-system gnu-build-system)
f7c6833f
LF
4814 (arguments '(#:configure-flags '("--enable-vala")))
4815 (native-inputs
4816 `(("gobject-introspection" ,gobject-introspection)
4817 ("pkg-config" ,pkg-config)
4818 ("vala" ,vala)))
30dc88d9
LC
4819 (propagated-inputs
4820 `(("libsoup" ,libsoup)
4821 ("sqlite" ,sqlite)
4822 ("clutter" ,clutter)
4823 ("clutter-gtk" ,clutter-gtk)
4824 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4825 ("cairo" ,cairo)
4826 ("gtk+3" ,gtk+)
4827 ("glib" ,glib)))
f032d0be 4828 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4829 (synopsis "C library providing a ClutterActor to display maps")
4830 (description
4831 "libchamplain is a C library providing a ClutterActor to display maps.
4832It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4833and Perl bindings are also available. It supports numerous free map sources
4834such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4835 (license license:lgpl2.1+)))
4836
607a04ae
MW
4837(define-public gom
4838 (package
4839 (name "gom")
0510440b 4840 (version "0.3.2")
607a04ae
MW
4841 (source
4842 (origin
4843 (method url-fetch)
6c8a0b6f 4844 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4845 (version-major+minor version) "/"
6c8a0b6f 4846 "gom-" version ".tar.xz"))
607a04ae
MW
4847 (sha256
4848 (base32
0510440b 4849 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4850 (build-system gnu-build-system)
4851 (native-inputs
4852 `(("intltool" ,intltool)
4853 ("pkg-config" ,pkg-config)
4854 ("gobject-introspection" ,gobject-introspection)))
4855 (inputs
4856 `(("glib" ,glib)
4857 ("gdk-pixbuf" ,gdk-pixbuf)
4858 ("sqlite" ,sqlite)))
4859 ;; XXX TODO: Figure out how to run the test suite.
4860 (arguments `(#:tests? #f))
4861 (home-page "https://wiki.gnome.org/Projects/Gom")
4862 (synopsis "Object mapper from GObjects to SQLite")
4863 (description
4864 "Gom provides an object mapper from GObjects to SQLite. It helps you
4865write applications that need to store structured data as well as make complex
4866queries upon that data.")
4867 (license license:lgpl2.1+)))
b7a3cf11 4868
865aacc9 4869(define-public libgnome-games-support
f09520db 4870 (package
865aacc9 4871 (name "libgnome-games-support")
4c6d15cf 4872 (version "1.4.4")
f09520db
SB
4873 (source (origin
4874 (method url-fetch)
2d8dca9d 4875 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4876 (version-major+minor version) "/"
2d8dca9d 4877 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4878 (sha256
4879 (base32
4c6d15cf 4880 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4881 (build-system gnu-build-system)
4882 (arguments
4883 '(#:phases
4884 (modify-phases %standard-phases
4885 (add-before 'check 'pre-check
4886 (lambda _
865aacc9 4887 ;; Tests require a writable HOME.
f09520db
SB
4888 (setenv "HOME" (getcwd))
4889 #t)))))
4890 (native-inputs
4891 `(("intltool" ,intltool)
4892 ("pkg-config" ,pkg-config)
4893 ("vala" ,vala)))
4894 (propagated-inputs
865aacc9 4895 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4896 `(("gtk+" ,gtk+)
4897 ("libgee" ,libgee)))
4898 (home-page "https://www.gnome.org/")
4899 (synopsis "Useful functionality shared among GNOME games")
4900 (description
865aacc9 4901 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4902GNOME Games, but it may be used by others.")
4903 (license license:lgpl3+)))
4904
b7a3cf11
SB
4905(define-public gnome-klotski
4906 (package
4907 (name "gnome-klotski")
18364fbc 4908 (version "3.34.0")
b7a3cf11
SB
4909 (source (origin
4910 (method url-fetch)
4911 (uri (string-append "mirror://gnome/sources/" name "/"
4912 (version-major+minor version) "/"
4913 name "-" version ".tar.xz"))
4914 (sha256
4915 (base32
18364fbc 4916 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
4917 (build-system meson-build-system)
4918 (arguments
4919 '(#:glib-or-gtk? #t
4920 #:phases
4921 (modify-phases %standard-phases
4922 (add-after 'unpack 'skip-gtk-update-icon-cache
4923 ;; Don't create 'icon-theme.cache'.
4924 (lambda _
4925 (substitute* "build-aux/meson_post_install.py"
4926 (("gtk-update-icon-cache") (which "true")))
4927 #t)))))
b7a3cf11
SB
4928 (native-inputs
4929 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4930 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4931 ("intltool" ,intltool)
4932 ("itstool" ,itstool)
bcb354ad 4933 ("pkg-config" ,pkg-config)
c1e419c4 4934 ("vala" ,vala)
bcb354ad 4935 ("xmllint" ,libxml2)))
b7a3cf11
SB
4936 (inputs
4937 `(("gtk+" ,gtk+)
f4eae76f 4938 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4939 ("librsvg" ,librsvg)))
4940 (home-page "https://wiki.gnome.org/Apps/Klotski")
4941 (synopsis "Sliding block puzzles")
4942 (description
4943 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4944the patterned block to the area bordered by green markers. To do so, you will
4945need to slide other blocks out of the way. Complete each puzzle in as few moves
4946as possible!")
4947 (license license:gpl2+)))
8d4791bf
MW
4948
4949(define-public grilo
4950 (package
4951 (name "grilo")
a865e938 4952 (version "0.3.10")
8d4791bf
MW
4953 (source
4954 (origin
4955 (method url-fetch)
4956 (uri (string-append "mirror://gnome/sources/" name "/"
4957 (version-major+minor version) "/"
4958 name "-" version ".tar.xz"))
4959 (sha256
4960 (base32
a865e938 4961 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4962 (build-system meson-build-system)
8d4791bf
MW
4963 (native-inputs
4964 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4965 ("intltool" ,intltool)
4966 ("pkg-config" ,pkg-config)
d48d4c98
KK
4967 ("gobject-introspection" ,gobject-introspection)
4968 ("gtk-doc" ,gtk-doc)
4969 ("vala" ,vala)))
8d4791bf 4970 (inputs
6d7273a0
KK
4971 `(("cyrus-sasl" ,cyrus-sasl)
4972 ("glib" ,glib)
8d4791bf
MW
4973 ("gtk+" ,gtk+)
4974 ("libxml2" ,libxml2)
6d7273a0 4975 ("liboauth" ,liboauth)
8d4791bf
MW
4976 ("libsoup" ,libsoup)
4977 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4978 (native-search-paths
4979 (list (search-path-specification
4980 (variable "GRL_PLUGIN_PATH")
4981 (files (list (string-append "lib/grilo-"
4982 (version-major+minor version)))))))
d48d4c98 4983 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4984 (synopsis "Framework for discovering and browsing media")
4985 (description
4986 "Grilo is a framework focused on making media discovery and browsing easy
4987for application developers.")
4988 (license license:lgpl2.1+)))
7b212526
MW
4989
4990(define-public grilo-plugins
4991 (package
4992 (name "grilo-plugins")
281f6b3a 4993 (version "0.3.10")
7b212526
MW
4994 (source
4995 (origin
4996 (method url-fetch)
4997 (uri (string-append "mirror://gnome/sources/" name "/"
4998 (version-major+minor version) "/"
4999 name "-" version ".tar.xz"))
5000 (sha256
5001 (base32
281f6b3a
RG
5002 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
5003 (build-system meson-build-system)
7b212526 5004 (native-inputs
281f6b3a
RG
5005 `(("gettext" ,gettext-minimal)
5006 ("glib:bin" ,glib "bin")
5007 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
5008 ("itstool" ,itstool)
5009 ("pkg-config" ,pkg-config)))
281f6b3a 5010 ;; TODO: ahavi, gstreamer
7b212526
MW
5011 (inputs
5012 `(("grilo" ,grilo)
281f6b3a
RG
5013 ;("gmime" ,gmime) ; unused
5014 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 5015 ("gom" ,gom)
281f6b3a
RG
5016 ;("gssdp" ,gssdp) ; unused
5017 ;("gupnp" ,gupnp) ; unused
5018 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
5019 ("json-glib" ,json-glib)
5020 ("avahi" ,avahi)
281f6b3a
RG
5021 ("libgdata" ,libgdata)
5022 ("libmediaart" ,libmediaart)
5023 ;("librest" ,rest) ; unused
7b212526 5024 ("libsoup" ,libsoup)
281f6b3a
RG
5025 ("totam-pl-parser" ,totem-pl-parser)
5026 ("tracker" ,tracker))) ; unused because it's too old
7b212526 5027 (arguments
281f6b3a
RG
5028 `(#:glib-or-gtk? #t
5029 ;;Disable lua-factory as it needs missing dependencies
5030 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 5031 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
5032 (synopsis "Plugins for the Grilo media discovery library")
5033 (description
5034 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
5035for application developers. This package provides plugins for common media
5036discovery protocols.")
7b212526 5037 (license license:lgpl2.1+)))
4e3fc547
MW
5038
5039(define-public totem
5040 (package
5041 (name "totem")
961dc62d 5042 (version "3.34.1")
4e3fc547
MW
5043 (source
5044 (origin
5045 (method url-fetch)
2a9761b1 5046 (uri (string-append "mirror://gnome/sources/totem/"
4e3fc547 5047 (version-major+minor version) "/"
2a9761b1 5048 "totem-" version ".tar.xz"))
4e3fc547
MW
5049 (sha256
5050 (base32
961dc62d 5051 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 5052 (build-system meson-build-system)
4e3fc547
MW
5053 (native-inputs
5054 `(("pkg-config" ,pkg-config)
5055 ("desktop-file-utils" ,desktop-file-utils)
5056 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 5057 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 5058 ("intltool" ,intltool)
bcb354ad 5059 ("itstool" ,itstool)
995ef5ea 5060 ("xmllint" ,libxml2)
995ef5ea 5061 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
5062 (propagated-inputs
5063 `(("dconf" ,dconf)))
5064 (inputs
5065 `(("gtk+" ,gtk+)
5066 ("gdk-pixbuf" ,gdk-pixbuf)
5067 ("atk" ,atk)
5068 ("cairo" ,cairo)
5069 ("dbus-glib" ,dbus-glib)
5070 ("clutter" ,clutter)
5071 ("clutter-gtk" ,clutter-gtk)
5072 ("clutter-gst" ,clutter-gst)
6a6db57f 5073 ("xorgproto" ,xorgproto)
4e3fc547
MW
5074 ("libxxf86vm" ,libxxf86vm)
5075 ("libxtst" ,libxtst)
5076 ("libxrandr" ,libxrandr)
5077 ("libxml2" ,libxml2)
5078 ("libsoup" ,libsoup)
5079 ("libpeas" ,libpeas)
5080 ("librsvg" ,librsvg)
5081 ("lirc" ,lirc)
5082 ("gnome-desktop" ,gnome-desktop)
5083 ("gstreamer" ,gstreamer)
5084 ("gst-plugins-base" ,gst-plugins-base)
5085 ("gst-plugins-good" ,gst-plugins-good)
5086 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5087 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 5088 ("python" ,python)
995ef5ea 5089 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
5090 ("totem-pl-parser" ,totem-pl-parser)
5091 ("grilo" ,grilo)
5092 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
5093 ("vala" ,vala)))
5094 (arguments
7ad81b8b
LC
5095 `(#:glib-or-gtk? #t
5096
5097 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 5098 ;; all that.
7ad81b8b 5099 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
5100
5101 ;; Do not build .a files for the plugins, it's
5102 ;; completely useless. This saves 2 MiB.
7ad81b8b 5103 "--default-library" "shared")
ec5c24f9 5104 #:phases
4e3fc547 5105 (modify-phases %standard-phases
d51b19ad
EF
5106 (add-after 'unpack 'skip-gtk-update-icon-cache
5107 ;; Don't create 'icon-theme.cache'.
5108 (lambda _
5109 (substitute* "meson_post_install.py"
5110 (("gtk-update-icon-cache") "true"))
5111 #t))
6368eb39
DM
5112 (add-before
5113 'install 'disable-cache-generation
5114 (lambda _
5115 (setenv "DESTDIR" "/")
5116 #t))
995ef5ea
KK
5117 (add-before
5118 'check 'pre-check
5119 (lambda _
5120 ;; Tests require a running X server.
5121 (system "Xvfb :1 &")
5122 (setenv "DISPLAY" ":1")
5123 #t))
4e3fc547
MW
5124 (add-after
5125 'install 'wrap-totem
5126 (lambda* (#:key inputs outputs #:allow-other-keys)
5127 (let ((out (assoc-ref outputs "out"))
5128 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5129 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5130 (wrap-program (string-append out "/bin/totem")
5131 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
5132 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5133 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5134 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
5135 #t)))))
5136 (home-page "https://wiki.gnome.org/Apps/Videos")
5137 (synopsis "Simple media player for GNOME based on GStreamer")
5138 (description "Totem is a simple yet featureful media player for GNOME
5139which can read a large number of file formats.")
5140 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5141 ;; to be used and distributed together with GStreamer and Totem. See
5142 ;; file://COPYING in the source distribution for details.
5143 (license license:gpl2+)))
f0afb0c8
DH
5144
5145(define-public rhythmbox
5146 (package
5147 (name "rhythmbox")
eda580c0 5148 (version "3.4.4")
f0afb0c8
DH
5149 (source (origin
5150 (method url-fetch)
2588693d 5151 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 5152 (version-major+minor version) "/"
2588693d 5153 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
5154 (sha256
5155 (base32
eda580c0 5156 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
5157 (build-system glib-or-gtk-build-system)
5158 (arguments
5159 `(#:configure-flags
5160 (list "--enable-lirc"
5161 "--enable-python"
5162 "--enable-vala"
5163 "--with-brasero"
5164 "--with-gudev"
5165 "--with-libsecret")
5166 #:phases
5167 (modify-phases %standard-phases
5168 (add-after
5169 'install 'wrap-rhythmbox
5170 (lambda* (#:key inputs outputs #:allow-other-keys)
5171 (let ((out (assoc-ref outputs "out"))
5172 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5173 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5174 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5175 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5176 (wrap-program (string-append out "/bin/rhythmbox")
5177 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5178 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5179 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5180 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5181 #t)))))
5182 (propagated-inputs
5183 `(("dconf" ,dconf)))
5184 (native-inputs
bcb354ad
SB
5185 `(("itstool" ,itstool)
5186 ("intltool" ,intltool)
f0afb0c8
DH
5187 ("glib" ,glib "bin")
5188 ("gobject-introspection" ,gobject-introspection)
5189 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5190 ("pkg-config" ,pkg-config)
5191 ("xmllint" ,libxml2)))
f0afb0c8
DH
5192 (inputs
5193 `(("json-glib" ,json-glib)
5194 ("tdb" ,tdb)
5195 ("gnome-desktop" ,gnome-desktop)
5196 ("python" ,python)
5197 ("python-pygobject" ,python2-pygobject)
5198 ("vala" ,vala)
5199 ("gmime" ,gmime)
f0afb0c8
DH
5200 ("adwaita-icon-theme" ,adwaita-icon-theme)
5201 ("grilo" ,grilo)
5202 ("grilo-plugins" ,grilo-plugins)
5203 ("gstreamer" ,gstreamer)
5204 ("gst-plugins-base" ,gst-plugins-base)
5205 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5206 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5207 ("libgudev" ,libgudev)
f0afb0c8
DH
5208 ;;("libmtp" ,libmtp) FIXME: Not detected
5209 ("libsecret" ,libsecret)
5210 ("libsoup" ,libsoup)
5211 ("libnotify" ,libnotify)
5212 ("libpeas" ,libpeas)
5213 ("lirc" ,lirc)
5214 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5215 ;;("clutter" ,clutter)
5216 ;;("clutter-gtk" ,clutter-gtk)
5217 ;;("clutter-gst" ,clutter-gst)
5218 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5219 ("atk" ,atk)
5220 ("pango" ,pango)
5221 ("gtk+" ,gtk+)
5222 ;; TODO:
5223 ;; * libgpod
5224 ;; * mx
f0afb0c8
DH
5225 ("brasero" ,brasero)))
5226 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5227 (synopsis "Music player for GNOME")
5228 (description "Rhythmbox is a music playing application for GNOME. It
5229supports playlists, song ratings, and any codecs installed through gstreamer.")
5230 (license license:gpl2+)))
f70d8383
DH
5231
5232(define-public eog
5233 (package
5234 (name "eog")
0c9031fa 5235 (version "3.34.1")
f70d8383
DH
5236 (source (origin
5237 (method url-fetch)
5238 (uri (string-append "mirror://gnome/sources/" name "/"
5239 (version-major+minor version) "/"
5240 name "-" version ".tar.xz"))
5241 (sha256
5242 (base32
0c9031fa 5243 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5244 (build-system meson-build-system)
f70d8383 5245 (arguments
34c44a34
RW
5246 `(#:configure-flags
5247 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5248 (list (string-append "-Dc_link_args=-Wl,-rpath="
5249 (assoc-ref %outputs "out") "/lib/eog"))
5250 #:phases
f70d8383 5251 (modify-phases %standard-phases
7a034665
EF
5252 (add-after 'unpack 'skip-gtk-update-icon-cache
5253 ;; Don't create 'icon-theme.cache'.
5254 (lambda _
5255 (substitute* "meson_post_install.py"
5256 (("gtk-update-icon-cache") "true"))
5257 #t))
61fb581f
RW
5258 (add-after 'install 'wrap-eog
5259 (lambda* (#:key outputs #:allow-other-keys)
5260 (let ((out (assoc-ref outputs "out"))
5261 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5262 (wrap-program (string-append out "/bin/eog")
5263 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5264 #t)))))
f70d8383
DH
5265 (propagated-inputs
5266 `(("dconf" ,dconf)))
5267 (native-inputs
5268 `(("intltool" ,intltool)
b3546174 5269 ("itstool" ,itstool)
f70d8383
DH
5270 ("glib" ,glib "bin")
5271 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5272 ("pkg-config" ,pkg-config)
5273 ("xmllint" ,libxml2)))
f70d8383
DH
5274 (inputs
5275 `(("gnome-desktop" ,gnome-desktop)
5276 ("shared-mime-info" ,shared-mime-info)
5277 ("adwaita-icon-theme" ,adwaita-icon-theme)
5278 ("exempi" ,exempi)
5279 ("lcms" ,lcms)
5280 ("libexif" ,libexif)
5281 ("libpeas" ,libpeas)
4bd428a7 5282 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5283 ("librsvg" ,librsvg-next)
f70d8383
DH
5284 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5285 ("gtk+" ,gtk+)))
5286 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5287 (synopsis "GNOME image viewer")
5288 (description "Eye of GNOME is the GNOME image viewer. It
5289supports image conversion, rotation, and slideshows.")
5290 (license license:gpl2+)))
41af5e7b 5291
0c3f8cb8
LC
5292(define-public eog-plugins
5293 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5294 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5295 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5296 ;; 'XDG_DATA_DIRS' appropriately set.
5297 (package
5298 (name "eog-plugins")
54b74cc6 5299 (version "3.26.4")
0c3f8cb8
LC
5300 (source (origin
5301 (method url-fetch)
f3b88ed2 5302 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5303 (version-major+minor version) "/"
f3b88ed2 5304 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5305 (sha256
5306 (base32
54b74cc6 5307 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5308 (build-system gnu-build-system)
5309 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5310 (synopsis "Extensions for the Eye of GNOME image viewer")
5311 (native-inputs
5312 `(("pkg-config" ,pkg-config)
f2d97d57 5313 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5314 (inputs
5315 `(("eog" ,eog)
5316 ("glib" ,glib)
5317 ("gtk+" ,gtk+)
5318 ("libpeas" ,libpeas)
5319 ("libexif" ,libexif)
5320 ("libchamplain" ,libchamplain)))
5321 (description
5322 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5323notably:
5324
5325@itemize
5326@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5327@item @dfn{Map}, which displays a map of where the picture was taken on the
5328side panel;
5329@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5330@end itemize\n")
5331
5332 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5333 ;; long suspicious byte stream that goes to a
5334 ;; ".gresource.eog_postasa_plugin" ELF section.
5335 (license license:gpl2+)))
5336
41af5e7b
SB
5337(define-public libgudev
5338 (package
5339 (name "libgudev")
b78f5118 5340 (version "232")
41af5e7b
SB
5341 (source (origin
5342 (method url-fetch)
5343 (uri (string-append "mirror://gnome/sources/" name "/"
5344 version "/" name "-" version ".tar.xz"))
5345 (sha256
5346 (base32
b78f5118 5347 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 5348 (build-system gnu-build-system)
b78f5118
RW
5349 (arguments
5350 '(#:configure-flags
5351 ;; umockdev depends on libgudev.
5352 (list "--disable-umockdev")))
41af5e7b
SB
5353 (native-inputs
5354 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5355 ("gobject-introspection" ,gobject-introspection)
5356 ("pkg-config" ,pkg-config)))
5357 (propagated-inputs
5358 `(("glib" ,glib))) ; required by gudev-1.0.pc
5359 (inputs
5360 `(("udev" ,eudev)))
5361 (home-page "https://wiki.gnome.org/Projects/libgudev")
5362 (synopsis "GObject bindings for libudev")
5363 (description
5364 "This library provides GObject bindings for libudev. It was originally
5365part of udev-extras, then udev, then systemd. It's now a project on its own.")
5366 (license license:lgpl2.1+)))
3dc8828f
SB
5367
5368(define-public gvfs
5369 (package
5370 (name "gvfs")
12fe4846 5371 (version "1.40.1")
3dc8828f
SB
5372 (source (origin
5373 (method url-fetch)
1d68eb32 5374 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 5375 (version-major+minor version) "/"
1d68eb32 5376 "gvfs-" version ".tar.xz"))
3dc8828f
SB
5377 (sha256
5378 (base32
95b90dec
KK
5379 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
5380 ;; This patch may be removed when upgrading to version 1.46.x.
5381 (patches
5382 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
e762d943 5383 (build-system meson-build-system)
3dc8828f 5384 (arguments
e762d943
RW
5385 '(#:glib-or-gtk? #t
5386 #:configure-flags
5387 (list "-Dsystemduserunitdir=no"
5388 "-Dtmpfilesdir=no"
5389 ;; Otherwise, the RUNPATH will lack the final path component.
5390 (string-append "-Dc_link_args=-Wl,-rpath="
5391 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
5392 (native-inputs
5393 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
5394 ("gettext" ,gettext-minimal)
5395 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
5396 ("pkg-config" ,pkg-config)
5397 ("xsltproc" ,libxslt)))
5398 (inputs
5399 `(("avahi" ,avahi)
5400 ("docbook-xml" ,docbook-xml-4.2)
5401 ("docbook-xsl" ,docbook-xsl)
5402 ("dbus" ,dbus)
e762d943 5403 ("elogind" ,elogind)
3dc8828f 5404 ("fuse" ,fuse)
24a78aa6 5405 ("gcr" ,gcr)
3dc8828f 5406 ("glib" ,glib)
e762d943 5407 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
5408 ("libarchive" ,libarchive)
5409 ("libbluray" ,libbluray)
8852ca24 5410 ("libcap" ,libcap)
3dc8828f
SB
5411 ("libcdio-paranoia" ,libcdio-paranoia)
5412 ("libgcrypt" ,libgcrypt)
e762d943 5413 ("libgdata" ,libgdata)
3dc8828f
SB
5414 ("libgphoto2" ,libgphoto2)
5415 ("libgudev" ,libgudev)
0ab9f949 5416 ("libimobiledevice" ,libimobiledevice)
3dc8828f 5417 ("libmtp" ,libmtp)
e762d943 5418 ("libnfs" ,libnfs)
3dc8828f
SB
5419 ("libsecret" ,libsecret)
5420 ("libsmbclient" ,samba)
5421 ("libsoup" ,libsoup)
5422 ("libxml2" ,libxml2)
e762d943 5423 ("openssh" ,openssh)
8852ca24 5424 ("polkit" ,polkit)
3dc8828f
SB
5425 ("udisks" ,udisks)))
5426 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 5427 (synopsis "Userspace virtual file system for GIO")
3dc8828f 5428 (description
8f65585b 5429 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
5430abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5431to all applications using the GIO API. It also supports exposing the GVFS
5432mounts to non-GIO applications using FUSE.
5433
5434GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5435DAV, and others.")
5436 (license license:lgpl2.0+)))
7c88b6bd
AW
5437
5438(define-public gusb
5439 (package
5440 (name "gusb")
536b3274 5441 (version "0.3.0")
7c88b6bd 5442 (source (origin
bbfb36f9
EF
5443 (method git-fetch)
5444 (uri (git-reference
b0e7b699 5445 (url "https://github.com/hughsie/libgusb")
bbfb36f9
EF
5446 (commit version)))
5447 (file-name (git-file-name name version))
7c88b6bd
AW
5448 (sha256
5449 (base32
bbfb36f9 5450 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 5451 (build-system meson-build-system)
7c88b6bd 5452 (native-inputs
536b3274 5453 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
5454 ("pkg-config" ,pkg-config)
5455 ("vala" ,vala)
7c88b6bd
AW
5456 ("gtk-doc" ,gtk-doc)))
5457 (propagated-inputs
5458 ;; Both of these are required by gusb.pc.
5459 `(("glib" ,glib)
5460 ("libusb" ,libusb)))
5461 (arguments
536b3274 5462 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 5463 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 5464 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
5465 (description
5466 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5467asynchronous control, bulk and interrupt transfers with proper cancellation
5468and integration into a mainloop. This makes it easy to integrate low level
5469USB transfers with your high-level application or system daemon.")
5470 (license license:lgpl2.1+)))
0abe1d86
AW
5471
5472(define-public simple-scan
5473 (package
5474 (name "simple-scan")
3f352df0 5475 (version "3.36.3")
d9f6d587
TGR
5476 (source
5477 (origin
5478 (method url-fetch)
5479 (uri (string-append "mirror://gnome/sources/simple-scan/"
5480 (version-major+minor version) "/"
5481 "simple-scan-" version ".tar.xz"))
5482 (sha256
3f352df0 5483 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
d9f6d587
TGR
5484 (build-system meson-build-system)
5485 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5486 (arguments
5487 '(#:glib-or-gtk? #t))
0abe1d86
AW
5488 (inputs
5489 `(("gtk" ,gtk+)
5490 ("zlib" ,zlib)
5491 ("cairo" ,cairo)
c501f592 5492 ("colord" ,colord)
0abe1d86
AW
5493 ("gdk-pixbuf" ,gdk-pixbuf)
5494 ("gusb" ,gusb)
4c928743 5495 ("libsane" ,sane-backends)))
0abe1d86 5496 (native-inputs
b94a6ca0 5497 `(("gettext" ,gettext-minimal)
0abe1d86 5498 ("itstool" ,itstool)
c501f592 5499 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 5500 ("pkg-config" ,pkg-config)
bcb354ad
SB
5501 ("vala" ,vala)
5502 ("xmllint" ,libxml2)))
dff0eedb 5503 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 5504 (synopsis "Document and image scanner")
d9f6d587
TGR
5505 (description
5506 "Document Scanner is an easy-to-use application that lets you connect your
5507scanner and quickly capture images and documents in an appropriate format. It
5508supports any scanner for which a suitable SANE driver is available, which is
5509almost all of them.")
0abe1d86 5510 (license license:gpl3+)))
7549f984 5511
ab466d79
RW
5512(define-public eolie
5513 (package
5514 (name "eolie")
ed783404 5515 (version "0.9.98.1")
ab466d79
RW
5516 (source (origin
5517 (method url-fetch)
ed783404
RW
5518 (uri (string-append "https://adishatz.org/eolie/eolie-"
5519 version ".tar.xz"))
ab466d79
RW
5520 (sha256
5521 (base32
ed783404 5522 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 5523 (build-system meson-build-system)
ab466d79 5524 (arguments
00014781
RW
5525 `(#:glib-or-gtk? #t
5526 #:phases
ab466d79 5527 (modify-phases %standard-phases
f0c68100
EF
5528 (add-after 'unpack 'skip-gtk-update-icon-cache
5529 ;; Don't create 'icon-theme.cache'.
5530 (lambda _
5531 (substitute* "meson_post_install.py"
5532 (("gtk-update-icon-cache") "true"))
5533 #t))
ab466d79
RW
5534 (add-after 'wrap 'wrap-more
5535 (lambda* (#:key inputs outputs #:allow-other-keys)
5536 (let* ((out (assoc-ref outputs "out"))
5537 ;; These libraries must be on LD_LIBRARY_PATH.
5538 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5539 "atk" "gtk+" "gsettings-desktop-schemas"
5540 "gobject-introspection"))
5541 (path (string-join
5542 (map (lambda (lib)
5543 (string-append (assoc-ref inputs lib) "/lib"))
5544 libs)
5545 ":")))
5546 (wrap-program (string-append out "/bin/eolie")
5547 `("LD_LIBRARY_PATH" ":" prefix (,path))
5548 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5549 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5550 #t)))))
5551 (native-inputs
f85ca6ed 5552 `(("intltool" ,intltool)
ab466d79 5553 ("itstool" ,itstool)
d95f1041 5554 ("pkg-config" ,pkg-config)
d95f1041 5555 ("python" ,python)
f0c68100 5556 ("glib:bin" ,glib "bin")))
ab466d79
RW
5557 (inputs
5558 `(("gobject-introspection" ,gobject-introspection)
5559 ("glib-networking" ,glib-networking)
5560 ("cairo" ,cairo)
5561 ("gtk+" ,gtk+)
5562 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5563 ("python" ,python-wrapper)
d72f76df 5564 ("python-dateutil" ,python-dateutil)
00014781 5565 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
5566 ("python-pygobject" ,python-pygobject)
5567 ("python-pycairo" ,python-pycairo)
00014781 5568 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
5569 ("libsecret" ,libsecret)
5570 ("gtkspell3" ,gtkspell3)
5571 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 5572 ("webkitgtk" ,webkitgtk)))
166b2c97 5573 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
5574 (synopsis "Web browser for GNOME")
5575 (description
5576 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5577a secret password store, an adblocker, and a modern UI.")
5578 (license license:gpl3+)))
5579
7549f984
SB
5580(define-public epiphany
5581 (package
5582 (name "epiphany")
68fdd237 5583 (version "3.34.4")
7549f984
SB
5584 (source (origin
5585 (method url-fetch)
dd3266ec 5586 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 5587 (version-major+minor version) "/"
dd3266ec 5588 "epiphany-" version ".tar.xz"))
7549f984
SB
5589 (sha256
5590 (base32
68fdd237 5591 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
5592
5593 (build-system meson-build-system)
7549f984 5594 (arguments
20710b91 5595 '(#:glib-or-gtk? #t
bb7ff88f
EF
5596 #:phases
5597 (modify-phases %standard-phases
5598 (add-after 'unpack 'skip-gtk-update-icon-cache
5599 ;; Don't create 'icon-theme.cache'.
5600 (lambda _
5601 (substitute* "post_install.py"
5602 (("gtk-update-icon-cache") "true"))
20710b91
LP
5603 #t))
5604 (add-after 'unpack 'disable-failing-tests
5605 (lambda _
5606 (substitute* "tests/meson.build"
5607 ;; embed_shell fails, because webkitgtk apparently no longer supports
5608 ;; overriding the ftp schema
5609 ;; web_app_utils fails due to missing network access
5610 (("(embed_shell|web_app_utils)_test,")
5611 "find_program('sh'), args: ['-c', 'exit 77'],"))
5612 #t))
5613 (add-before 'check 'pre-check
5614 (lambda _
5615 ;; Tests require a running X server.
5616 (system "Xvfb :1 &")
5617 (setenv "DISPLAY" ":1")
bb7ff88f 5618 #t)))
e19f9c24
LF
5619 #:configure-flags
5620 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5621 (list (string-append "-Dc_link_args=-Wl,-rpath="
5622 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
5623 (propagated-inputs
5624 `(("dconf" ,dconf)))
7549f984 5625 (native-inputs
fc5c5b92
R
5626 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5627 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 5628 ("intltool" ,intltool)
7549f984 5629 ("itstool" ,itstool)
bcb354ad 5630 ("pkg-config" ,pkg-config)
20710b91
LP
5631 ("xmllint" ,libxml2)
5632 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
5633 (inputs
5634 `(("avahi" ,avahi)
5635 ("gcr" ,gcr)
fc5c5b92 5636 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
5637 ("glib-networking" ,glib-networking)
5638 ("gnome-desktop" ,gnome-desktop)
5639 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 5640 ("json-glib" ,json-glib)
7549f984 5641 ("iso-codes" ,iso-codes)
8748e29c 5642 ("libdazzle" ,libdazzle)
7549f984
SB
5643 ("libnotify" ,libnotify)
5644 ("libsecret" ,libsecret)
7549f984 5645 ("libxslt" ,libxslt)
fc5c5b92 5646 ("nettle" ,nettle) ; for hogweed
7549f984 5647 ("sqlite" ,sqlite)
f85ca6ed 5648 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5649 (home-page "https://wiki.gnome.org/Apps/Web")
5650 (synopsis "GNOME web browser")
5651 (description
5652 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5653principles are simplicity and standards compliance.")
5654 (license license:gpl2+)))
a3856b2c
SB
5655
5656(define-public d-feet
5657 (package
5658 (name "d-feet")
458e9221 5659 (version "0.3.14")
a3856b2c
SB
5660 (source (origin
5661 (method url-fetch)
5662 (uri (string-append "mirror://gnome/sources/" name "/"
5663 (version-major+minor version) "/"
5664 name "-" version ".tar.xz"))
5665 (sha256
5666 (base32
458e9221 5667 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5668 (build-system glib-or-gtk-build-system)
5669 (arguments
5670 '(#:out-of-source? #f ; tests need to run in the source directory.
5671 #:phases
5672 (modify-phases %standard-phases
5673 (add-before
5674 'check 'pre-check
86aff791 5675 (lambda _
a3856b2c
SB
5676 ;; The test suite requires a running X server.
5677 (system "Xvfb :1 &")
5678 (setenv "DISPLAY" ":1")
5679 ;; Don't fail on missing '/etc/machine-id'.
5680 (setenv "DBUS_FATAL_WARNINGS" "0")
5681 ;; tests.py and window.py don't meet E402:
5682 ;; E402 module level import not at top of file
5683 (substitute* "src/tests/Makefile"
86aff791
MW
5684 (("--ignore=E123") "--ignore=E123,E402"))
5685 #t))
a3856b2c
SB
5686 (add-after
5687 'install 'wrap-program
5688 (lambda* (#:key outputs #:allow-other-keys)
5689 (let ((prog (string-append (assoc-ref outputs "out")
5690 "/bin/d-feet")))
5691 (wrap-program prog
5692 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5693 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5694 #t))))))
a3856b2c
SB
5695 (native-inputs
5696 `(("intltool" ,intltool)
5697 ("itstool" ,itstool)
5698 ("pkg-config" ,pkg-config)
5699 ("python-pep8" ,python-pep8)
5700 ("xmllint" ,libxml2)
ff337525 5701 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5702 (inputs
5703 `(("gobject-introspection" ,gobject-introspection)
5704 ("gtk+" ,gtk+)
5705 ("python" ,python-wrapper)
458e9221 5706 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5707 ("python-pygobject" ,python-pygobject)))
5708 (home-page "https://wiki.gnome.org/Apps/DFeet")
5709 (synopsis "D-Bus debugger")
5710 (description
5711 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5712of running programs and invoke methods on those interfaces.")
5713 (license license:gpl2+)))
c3b97bd9
SB
5714
5715(define-public yelp-xsl
5716 (package
5717 (name "yelp-xsl")
632a9b32 5718 (version "3.34.2")
c3b97bd9
SB
5719 (source (origin
5720 (method url-fetch)
5721 (uri (string-append "mirror://gnome/sources/" name "/"
5722 (version-major+minor version) "/"
5723 name "-" version ".tar.xz"))
5724 (sha256
5725 (base32
632a9b32 5726 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
5727 (build-system gnu-build-system)
5728 (native-inputs
632a9b32 5729 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
5730 ("itstool" ,itstool)
5731 ("xmllint" ,libxml2)))
5732 (home-page "https://wiki.gnome.org/Apps/Yelp")
5733 (synopsis "XSL stylesheets for Yelp")
5734 (description
5735 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5736to format Docbook and Mallard documents.")
5737 (license license:gpl2+)))
de3d612a
SB
5738
5739(define-public yelp
5740 (package
5741 (name "yelp")
1f1b6d60 5742 (version "3.32.2")
de3d612a
SB
5743 (source (origin
5744 (method url-fetch)
5745 (uri (string-append "mirror://gnome/sources/" name "/"
5746 (version-major+minor version) "/"
5747 name "-" version ".tar.xz"))
5748 (sha256
5749 (base32
1f1b6d60 5750 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5751 (build-system glib-or-gtk-build-system)
5752 (native-inputs
5753 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5754 ("intltool" ,intltool)
5755 ("itstool" ,itstool)
5756 ("pkg-config" ,pkg-config)))
5757 (propagated-inputs
5758 `(("dconf" ,dconf)))
5759 (inputs
ad1b7d8b
SB
5760 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5761 ("libxslt" ,libxslt)
de3d612a 5762 ("sqlite" ,sqlite)
4c28ca1d
SB
5763 ("webkitgtk" ,webkitgtk)
5764 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5765 (home-page "https://wiki.gnome.org/Apps/Yelp")
5766 (synopsis "GNOME help browser")
5767 (description
5768 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5769man, info, and HTML documents. It can locate documents according to the
5770freedesktop.org help system specification.")
5771 (license license:gpl2+)))
122d0d10
SB
5772
5773(define-public yelp-tools
5774 (package
5775 (name "yelp-tools")
8fe8a42a 5776 (version "3.32.2")
122d0d10
SB
5777 (source (origin
5778 (method url-fetch)
5779 (uri (string-append "mirror://gnome/sources/" name "/"
5780 (version-major+minor version) "/"
5781 name "-" version ".tar.xz"))
5782 (sha256
5783 (base32
8fe8a42a 5784 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
5785 (build-system gnu-build-system)
5786 (native-inputs
5787 `(("pkg-config" ,pkg-config)))
5788 (propagated-inputs
5789 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5790 `(("itstool" ,itstool)
5791 ("xmllint" ,libxml2)
5792 ("xsltproc" ,libxslt)))
5793 (inputs
5794 `(("yelp-xsl" ,yelp-xsl)))
5795 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5796 (synopsis "Yelp documentation tools")
5797 (description
5798 "Yelp-tools is a collection of scripts and build utilities to help create,
5799manage, and publish documentation for Yelp and the web. Most of the heavy
5800lifting is done by packages like yelp-xsl and itstool. This package just
5801wraps things up in a developer-friendly way.")
5802 (license license:gpl2+)))
af8f9f23
RW
5803
5804(define-public libgee
5805 (package
5806 (name "libgee")
9cedae2a 5807 (version "0.20.3")
af8f9f23
RW
5808 (source (origin
5809 (method url-fetch)
84a1b007 5810 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5811 (version-major+minor version) "/"
84a1b007 5812 "libgee-" version ".tar.xz"))
af8f9f23
RW
5813 (sha256
5814 (base32
9cedae2a 5815 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
5816 (build-system gnu-build-system)
5817 (arguments
5818 `(#:phases
5819 (modify-phases %standard-phases
5820 (add-after 'unpack 'fix-introspection-install-dir
5821 (lambda* (#:key outputs #:allow-other-keys)
5822 (let ((out (assoc-ref outputs "out")))
5823 (substitute* "gee/Makefile.in"
5824 (("@INTROSPECTION_GIRDIR@")
5825 (string-append out "/share/gir-1.0/"))
5826 (("@INTROSPECTION_TYPELIBDIR@")
5827 (string-append out "/lib/girepository-1.0/")))))))))
5828 (native-inputs
5829 `(("glib" ,glib "bin")
5830 ("pkg-config" ,pkg-config)))
5831 (inputs
5832 `(("glib" ,glib)
5833 ("gobject-introspection" ,gobject-introspection)))
5834 (home-page "https://wiki.gnome.org/Projects/Libgee")
5835 (synopsis "GObject collection library")
5836 (description
5837 "Libgee is a utility library providing GObject-based interfaces and
5838classes for commonly used data structures.")
5839 (license license:lgpl2.1+)))
b0f9c4b8
RW
5840
5841(define-public gexiv2
5842 (package
5843 (name "gexiv2")
efc396ef 5844 (version "0.12.1")
b0f9c4b8
RW
5845 (source (origin
5846 (method url-fetch)
5847 (uri (string-append "mirror://gnome/sources/" name "/"
5848 (version-major+minor version) "/"
5849 name "-" version ".tar.xz"))
5850 (sha256
5851 (base32
efc396ef 5852 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
51c482e4 5853 (build-system meson-build-system)
b0f9c4b8 5854 (native-inputs
b1a8b408
KK
5855 `(("gcr" ,gcr)
5856 ("glib" ,glib "bin")
5857 ("pkg-config" ,pkg-config)
5858 ("vala" ,vala)))
b0f9c4b8
RW
5859 (propagated-inputs
5860 ;; Listed in "Requires" section of gexiv2.pc
5861 `(("exiv2" ,exiv2)))
5862 (inputs
5863 `(("glib" ,glib)
5864 ("gobject-introspection" ,gobject-introspection)))
5865 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5866 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5867 (description
5868 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5869allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5870metadata in photo and video files of various formats.")
5871 (license license:gpl2+)))
fed5a689
RW
5872
5873(define-public shotwell
5874 (package
5875 (name "shotwell")
b82a45d8 5876 (version "0.30.9")
fed5a689
RW
5877 (source (origin
5878 (method url-fetch)
5497d682 5879 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5880 (version-major+minor version) "/"
5497d682 5881 "shotwell-" version ".tar.xz"))
fed5a689
RW
5882 (sha256
5883 (base32
b82a45d8 5884 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
3b79afa6
KK
5885 (build-system meson-build-system)
5886 (arguments
5a0beca3
EF
5887 '(#:glib-or-gtk? #t
5888 #:phases
5889 (modify-phases %standard-phases
5890 (add-after 'unpack 'skip-gtk-update-icon-cache
5891 (lambda _
5892 (substitute* "build-aux/meson/postinstall.py"
5893 (("gtk-update-icon-cache") (which "true"))
5894 (("update-desktop-database") (which "true")))
5895 #t)))))
735b8db6
TGR
5896 (propagated-inputs
5897 `(("dconf" ,dconf)))
fed5a689 5898 (native-inputs
5a0beca3
EF
5899 `(("gettext" ,gettext-minimal)
5900 ("glib:bin" ,glib "bin")
735b8db6 5901 ("itstool" ,itstool)
3b79afa6 5902 ("pkg-config" ,pkg-config)
735b8db6 5903 ("vala" ,vala)))
fed5a689 5904 (inputs
5a0beca3
EF
5905 `(("gcr" ,gcr)
5906 ("gexiv2" ,gexiv2)
fed5a689 5907 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5908 ("gstreamer" ,gstreamer)
5909 ("json-glib" ,json-glib)
dfb0323d 5910 ("libgdata" ,libgdata)
fed5a689 5911 ("libgee" ,libgee)
5a0beca3
EF
5912 ("libgphoto2" ,libgphoto2)
5913 ("libgudev" ,libgudev)
fed5a689 5914 ("libraw" ,libraw)
fed5a689
RW
5915 ("libsoup" ,libsoup)
5916 ("libxml2" ,libxml2)
5a0beca3
EF
5917 ("sqlite" ,sqlite)
5918 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5919 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5920 (synopsis "Photo manager for GNOME 3")
5921 (description
5922 "Shotwell is a digital photo manager designed for the GNOME desktop
5923environment. It allows you to import photos from disk or camera, organize
5924them by keywords and events, view them in full-window or fullscreen mode, and
5925share them with others via social networking and more.")
5926 (license license:lgpl2.1+)))
293ff8b2
DT
5927
5928(define-public file-roller
5929 (package
5930 (name "file-roller")
dcae4270 5931 (version "3.32.3")
293ff8b2
DT
5932 (source (origin
5933 (method url-fetch)
f89a27c6 5934 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5935 (version-major+minor version) "/"
f89a27c6 5936 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5937 (sha256
5938 (base32
dcae4270 5939 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5940 (build-system meson-build-system)
293ff8b2 5941 (native-inputs
0a500745
RW
5942 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5943 ("intltool" ,intltool)
4c96e5d1 5944 ("itstool" ,itstool)
0a500745
RW
5945 ("pkg-config" ,pkg-config)
5946 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5947 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5948 ;; TODO: Add libnautilus.
5949 (inputs
5950 `(("gtk+" ,gtk+)
5951 ("gdk-pixbuf" ,gdk-pixbuf)
5952 ("json-glib" ,json-glib)
5953 ("libarchive" ,libarchive)
5954 ("libnotify" ,libnotify)
4c96e5d1 5955 ("nettle" ,nettle)
293ff8b2
DT
5956 ("libxml2" ,libxml2)))
5957 (synopsis "Graphical archive manager for GNOME")
5958 (description "File Roller is an archive manager for the GNOME desktop
5959environment that allows users to view, unpack, and create compressed archives
5960such as gzip tarballs.")
5961 (home-page "http://fileroller.sourceforge.net/")
5962 (license license:gpl2+)))
7ce49365
SB
5963
5964(define-public gnome-session
5965 (package
5966 (name "gnome-session")
f67ce006 5967 (version "3.34.2")
7ce49365
SB
5968 (source (origin
5969 (method url-fetch)
5970 (uri (string-append "mirror://gnome/sources/" name "/"
5971 (version-major+minor version) "/"
5972 name "-" version ".tar.xz"))
5973 (sha256
5974 (base32
f67ce006 5975 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 5976 (arguments
df278071
RW
5977 '(#:glib-or-gtk? #t
5978 #:phases
2914af3c
AW
5979 (modify-phases %standard-phases
5980 (add-before 'configure 'pre-configure
5981 (lambda* (#:key outputs #:allow-other-keys)
5982 ;; Use elogind instead of systemd.
df278071
RW
5983 (substitute* "meson.build"
5984 (("libsystemd-login") "libelogind")
5985 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5986 (substitute* "gnome-session/gsm-systemd.c"
5987 (("#include <systemd/sd-login.h>")
5988 "#include <elogind/sd-login.h>"))
df278071 5989 ;; Remove uses of the systemd daemon.
803ab416
SB
5990 (substitute* "gnome-session/gsm-autostart-app.c"
5991 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5992 #t))
5993 (add-after 'install 'wrap-gnome-session
5994 (lambda* (#:key inputs outputs #:allow-other-keys)
5995 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5996 (let ((glib (assoc-ref inputs "glib:bin"))
5997 (out (assoc-ref outputs "out")))
5998 (wrap-program (string-append out "/bin/gnome-session")
5999 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6000 #t))))
6cbc8d57 6001
2914af3c 6002 #:configure-flags
df278071
RW
6003 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6004 "-Dman=false" ; FIXME: disabled because of docbook validation error
6005 "-Dsystemd_journal=false")))
6006 (build-system meson-build-system)
7ce49365
SB
6007 (native-inputs
6008 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6009 ("pkg-config" ,pkg-config)
6010 ("intltool" ,intltool)
df278071
RW
6011 ("xsltproc" ,libxslt)
6012 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6013 ("docbook-xsl" ,docbook-xsl)
6014 ("docbook-xml" ,docbook-xml)
6015 ("xmlto" ,xmlto)))
7ce49365 6016 (inputs
2914af3c
AW
6017 `(("elogind" ,elogind)
6018 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 6019 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
6020 ("gtk+" ,gtk+)
6021 ("json-glib" ,json-glib)
6022 ("libsm" ,libsm)
6023 ("libxcomposite" ,libxcomposite)
6024 ("libxtst" ,libxtst)
6025 ("mesa" ,mesa)
6026 ("upower" ,upower)
6027 ("xtrans" ,xtrans)))
6028 (synopsis "Session manager for GNOME")
6029 (description
6030 "This package contains the GNOME session manager, as well as a
6031configuration program to choose applications starting on login.")
6032 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6033 (license license:gpl2+)))
f47ba77e
SB
6034
6035(define-public gjs
6036 (package
6037 (name "gjs")
76e1830c 6038 (version "1.58.3")
f47ba77e
SB
6039 (source (origin
6040 (method url-fetch)
6041 (uri (string-append "mirror://gnome/sources/" name "/"
6042 (version-major+minor version) "/"
6043 name "-" version ".tar.xz"))
6044 (sha256
6045 (base32
76e1830c 6046 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
6047 (build-system gnu-build-system)
6048 (arguments
6049 '(#:phases
6050 (modify-phases %standard-phases
6051 (add-before
6052 'check 'pre-check
6053 (lambda _
fc119619
MW
6054 ;; The test suite requires a running X server.
6055 (system "Xvfb :1 &")
6056 (setenv "DISPLAY" ":1")
6057
f47ba77e
SB
6058 ;; For the missing /etc/machine-id.
6059 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 6060
144f94d0
KK
6061 ;; Our mozjs-38 package does not compile the required Intl API
6062 ;; support for these failing tests.
6063 (substitute* "installed-tests/js/testLocale.js"
6064 ((".*toBeDefined.*") "")
6065 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
6066 (substitute* "installed-tests/scripts/testCommandLine.sh"
6067 (("Valentín") "")
6068 (("☭") ""))
f47ba77e
SB
6069 #t)))))
6070 (native-inputs
8a831c6f 6071 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
6072 ("pkg-config" ,pkg-config)
6073 ("xmllint" ,libxml2)
6074 ;; For testing
6075 ("dbus-launch" ,dbus)
76e1830c 6076 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 6077 ("uuidgen" ,util-linux)
ebebee94 6078 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
6079 (propagated-inputs
6080 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
6081 `(("cairo" ,cairo)
6082 ("gobject-introspection" ,gobject-introspection)
d054fbf5 6083 ("mozjs" ,mozjs-60)))
f47ba77e
SB
6084 (inputs
6085 `(("gtk+" ,gtk+)
6086 ("readline" ,readline)))
6087 (synopsis "Javascript bindings for GNOME")
f032d0be 6088 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
6089 (description
6090 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6091javascript engine and the GObject introspection framework.")
6092 (license license:gpl2+)))
329d731b
DH
6093
6094(define-public gedit
6095 (package
6096 (name "gedit")
edec7128 6097 (version "3.34.1")
329d731b
DH
6098 (source (origin
6099 (method url-fetch)
6100 (uri (string-append "mirror://gnome/sources/" name "/"
6101 (version-major+minor version) "/"
6102 name "-" version ".tar.xz"))
6103 (sha256
6104 (base32
edec7128 6105 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 6106 (build-system meson-build-system)
329d731b 6107 (arguments
480c9226
KK
6108 `(#:glib-or-gtk? #t
6109 #:configure-flags
6110 ;; Otherwise, the RUNPATH will lack the final path component.
6111 (list (string-append "-Dc_link_args=-Wl,-rpath="
6112 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
6113
6114 ;; XXX: Generated .h files are sometimes used before being built.
6115 #:parallel-build? #f
6116
480c9226 6117 #:phases
329d731b 6118 (modify-phases %standard-phases
480c9226
KK
6119 (add-after 'unpack 'skip-gtk-update-icon-cache
6120 ;; Don't create 'icon-theme.cache'.
6121 (lambda _
6122 (substitute* "build-aux/meson/post_install.py"
6123 (("gtk-update-icon-cache") (which "true")))
6124 #t))
6125 (add-after 'unpack 'patch-libgd-fetch
6126 (lambda* (#:key inputs #:allow-other-keys)
6127 (let ((libgd (assoc-ref inputs "libgd")))
6128 ;; Calling git is unnecessary because libgd is fetched as a
6129 ;; native input to this package.
6130 (substitute* "meson.build"
6131 ((".*git.*") ""))
6132 (copy-recursively libgd "subprojects/libgd")
6133 #t)))
6134 (add-after 'install 'wrap-gedit
6135 (lambda* (#:key inputs outputs #:allow-other-keys)
6136 (let ((out (assoc-ref outputs "out"))
6137 (gtksourceview (assoc-ref inputs "gtksourceview"))
6138 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6139 (python-path (getenv "PYTHONPATH")))
6140 (wrap-program (string-append out "/bin/gedit")
6141 ;; For plugins.
6142 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6143 `("PYTHONPATH" ":" prefix (,python-path))
6144 ;; For language-specs.
6145 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6146 "/share")))))
6147 #t)))))
329d731b
DH
6148 (propagated-inputs
6149 `(("dconf" ,dconf)))
6150 (native-inputs
480c9226
KK
6151 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6152 ("intltool" ,intltool)
b3546174 6153 ("itstool" ,itstool)
480c9226 6154 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6155 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6156 ("libgd"
6157 ,(origin
6158 (method git-fetch)
6159 (uri (git-reference
6160 (url "https://gitlab.gnome.org/GNOME/libgd")
6161 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6162 (file-name (git-file-name "libgd" version))
6163 (sha256
6164 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6165 ("pkg-config" ,pkg-config)))
6166 (inputs
6167 `(("glib" ,glib)
0d2df50c 6168 ("gspell" ,gspell)
329d731b 6169 ("gtk+" ,gtk+)
480c9226 6170 ("gtksourceview" ,gtksourceview)
329d731b
DH
6171 ("libpeas" ,libpeas)
6172 ("libxml2" ,libxml2)
329d731b
DH
6173 ("iso-codes" ,iso-codes)
6174 ("python-pygobject" ,python-pygobject)
6175 ("python" ,python)
6176 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6177 ("libx11" ,libx11)
6178 ("vala" ,vala)
6179 ("adwaita-icon-theme" ,adwaita-icon-theme)
6180 ("libsoup" ,libsoup)
6181 ("gnome-desktop" ,gnome-desktop)))
6182 (home-page "https://wiki.gnome.org/Apps/Gedit")
6183 (synopsis "GNOME text editor")
6184 (description "While aiming at simplicity and ease of use, gedit is a
6185powerful general purpose text editor.")
6186 (license license:gpl2+)))
b7179363
SB
6187
6188(define-public zenity
6189 (package
6190 (name "zenity")
4f581bd0 6191 (version "3.32.0")
b7179363
SB
6192 (source (origin
6193 (method url-fetch)
5958df04 6194 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6195 (version-major+minor version) "/"
5958df04 6196 "zenity-" version ".tar.xz"))
b7179363
SB
6197 (sha256
6198 (base32
4f581bd0 6199 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6200 (build-system gnu-build-system)
6201 (native-inputs
b94a6ca0 6202 `(("gettext" ,gettext-minimal)
b7179363
SB
6203 ("itstool" ,itstool)
6204 ("pkg-config" ,pkg-config)))
6205 (inputs
6206 `(("libnotify" ,libnotify)
6207 ("webkitgtk" ,webkitgtk)))
6208 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6209 (home-page "https://www.gnome.org")
b7179363
SB
6210 (description
6211 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6212to display dialog boxes from the commandline and shell scripts.")
6213 (license license:lgpl2.0+)))
60c3627c
SB
6214
6215(define-public mutter
6216 (package
6217 (name "mutter")
ec3ceabd 6218 (version "3.34.2")
60c3627c 6219 (source (origin
86c44e72
KK
6220 (method url-fetch)
6221 (uri (string-append "mirror://gnome/sources/" name "/"
6222 (version-major+minor version) "/"
6223 name "-" version ".tar.xz"))
60c3627c
SB
6224 (sha256
6225 (base32
ec3ceabd 6226 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6227 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6228 ;; versions of cogl and clutter. As a result, many of the inputs,
6229 ;; propagated-inputs, and configure flags used in cogl and clutter are
6230 ;; needed here as well.
edf43f68 6231 (build-system meson-build-system)
60c3627c 6232 (arguments
edf43f68
KK
6233 '(;; XXX: All mutter tests fail with the following error:
6234 ;; Settings schema 'org.gnome.mutter' is not installed
6235 #:tests? #f
6236 #:glib-or-gtk? #t
6237 #:configure-flags
ec3ceabd
KK
6238 ;; TODO: Enable profiler when Sysprof is packaged.
6239 (list "-Dprofiler=false"
6240 ;; Otherwise, the RUNPATH will lack the final path component.
6241 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6242 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6243 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6244
6245 ;; The following flags are needed for the bundled clutter
edf43f68 6246 (string-append "-Dxwayland_path="
d633f2f6
RH
6247 (assoc-ref %build-inputs "xorg-server-xwayland")
6248 "/bin/Xwayland")
6249
a88d5a0c 6250 ;; the remaining flags are needed for the bundled cogl
edf43f68 6251 (string-append "-Dopengl_libname="
a88d5a0c 6252 (assoc-ref %build-inputs "mesa")
682ae6f9
MB
6253 "/lib/libGL.so"))
6254 #:phases (modify-phases %standard-phases
6255 (add-after 'unpack 'fix-build-with-mesa-20
6256 (lambda _
6257 ;; Mimic upstream commit a444a4c5f58ea516ad for
6258 ;; compatibility with Mesa 20. Remove for 3.36.
6259 (substitute* '("src/backends/meta-egl-ext.h"
6260 "src/backends/meta-egl.c"
6261 "src/backends/meta-egl.h")
6262 (("#include <EGL/eglext\\.h>" all)
6263 (string-append all "\n#include <EGL/eglmesaext.h>")))
6264 (substitute* "cogl/cogl/meson.build"
6265 (("#include <EGL/eglext\\.h>" all)
6266 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6267 #t)))))
60c3627c 6268 (native-inputs
ec3ceabd
KK
6269 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6270 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6271 ("gobject-introspection" ,gobject-introspection)
6272 ("intltool" ,intltool)
f23052a6 6273 ("pkg-config" ,pkg-config)
edf43f68 6274 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6275 ;; For git build
6276 ("autoconf" ,autoconf)
6277 ("automake" ,automake)
6278 ("libtool" ,libtool)))
60c3627c 6279 (propagated-inputs
a88d5a0c
MW
6280 `(;; libmutter.pc refers to these:
6281 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6282 ("gtk+" ,gtk+)
6283 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6284 ("atk" ,atk)
6285 ("cairo" ,cairo)
6286 ("gdk-pixbuf" ,gdk-pixbuf)
6287 ("glib" ,glib)
a88d5a0c
MW
6288 ("json-glib" ,json-glib)
6289 ("libinput" ,libinput)
6290 ("libx11" ,libx11)
6291 ("libxcomposite" ,libxcomposite)
6292 ("libxdamage" ,libxdamage)
6293 ("libxext" ,libxext)
6294 ("libxfixes" ,libxfixes)
6295 ("libxkbcommon" ,libxkbcommon)
6296 ("libxrandr" ,libxrandr)
6297 ("mesa" ,mesa)
6298 ("pango" ,pango)
6299 ("udev" ,eudev)
a88d5a0c 6300 ("xinput" ,xinput)))
60c3627c 6301 (inputs
86c44e72
KK
6302 `(("elogind" ,elogind)
6303 ("gnome-desktop" ,gnome-desktop)
edf43f68 6304 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6305 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6306 ("libgudev" ,libgudev)
60c3627c
SB
6307 ("libice" ,libice)
6308 ("libsm" ,libsm)
edf43f68 6309 ("libwacom" ,libwacom)
60c3627c 6310 ("libxkbfile" ,libxkbfile)
a88d5a0c 6311 ("libxrandr" ,libxrandr)
86c44e72 6312 ("libxtst" ,libxtst)
edf43f68 6313 ("pipewire" ,pipewire)
60c3627c
SB
6314 ("startup-notification" ,startup-notification)
6315 ("upower-glib" ,upower)
6316 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6317 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6318 ("zenity" ,zenity)))
6319 (synopsis "Window and compositing manager")
f032d0be 6320 (home-page "https://www.gnome.org")
60c3627c
SB
6321 (description
6322 "Mutter is a window and compositing manager that displays and manages your
6323desktop via OpenGL. Mutter combines a sophisticated display engine using the
6324Clutter toolkit with solid window-management logic inherited from the Metacity
6325window manager.")
86c44e72 6326 (license license:gpl2+)))
685cee87
SB
6327
6328(define-public gnome-online-accounts
6329 (package
6330 (name "gnome-online-accounts")
dd233e4d 6331 (version "3.36.0")
685cee87
SB
6332 (source (origin
6333 (method url-fetch)
6334 (uri (string-append "mirror://gnome/sources/" name "/"
6335 (version-major+minor version) "/"
6336 name "-" version ".tar.xz"))
6337 (sha256
6338 (base32
dd233e4d 6339 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6340 (outputs '("out" "lib"))
685cee87 6341 (build-system glib-or-gtk-build-system)
14c297fd
TS
6342 (arguments
6343 `(#:configure-flags
6344 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6345 #:phases
6346 (modify-phases %standard-phases
6347 (add-before 'configure 'patch-libgoa-output
6348 (lambda* (#:key outputs #:allow-other-keys)
6349 (let ((lib (assoc-ref outputs "lib")))
6350 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6351 (("@prefix@") lib)
6352 (("@exec_prefix@") lib)
6353 (("@libdir@") (string-append lib "/lib"))
6354 (("@includedir@") (string-append lib "/include"))
6355 (("@datadir@") (string-append lib "/share")))
7555d539
MB
6356 ;; Make sure gobject-introspection knows about the output
6357 ;; too (see <https://bugs.gnu.org/36535>).
6358 (setenv "outputs" "out lib")
14c297fd 6359 #t))))))
685cee87
SB
6360 (native-inputs
6361 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6362 ("gobject-introspection" ,gobject-introspection)
6363 ("intltool" ,intltool)
6364 ("pkg-config" ,pkg-config)
ebb2873d 6365 ("vala" ,vala)
685cee87
SB
6366 ("xsltproc" ,libxslt)))
6367 (propagated-inputs
6368 `(("glib" ,glib) ; required by goa-1.0.pc
6369 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6370 (inputs
6371 `(("docbook-xsl" ,docbook-xsl)
6372 ("json-glib" ,json-glib)
6373 ("libsecret" ,libsecret)
6374 ("rest" ,rest)
685cee87
SB
6375 ("webkitgtk" ,webkitgtk)))
6376 (synopsis "Single sign-on framework for GNOME")
6377 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6378 (description
6379 "GNOME Online Accounts provides interfaces so that applications and
6380libraries in GNOME can access the user's online accounts. It has providers for
6381Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6382Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6383 (license license:lgpl2.0+)))
df217748
SB
6384
6385(define-public evolution-data-server
6386 (package
6387 (name "evolution-data-server")
162048be 6388 (version "3.34.2")
df217748
SB
6389 (source (origin
6390 (method url-fetch)
6391 (uri (string-append "mirror://gnome/sources/" name "/"
6392 (version-major+minor version) "/"
6393 name "-" version ".tar.xz"))
43190ac6
MB
6394 (patches (search-patches "evolution-data-server-locales.patch"
6395 "evolution-data-server-libical-compat.patch"))
df217748
SB
6396 (sha256
6397 (base32
162048be 6398 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 6399 (build-system cmake-build-system)
df217748 6400 (arguments
b468eedc
RW
6401 '(#:configure-flags
6402 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6403 (runpaths (map (lambda (s)
6404 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
6405 '("addressbook-backends" "calendar-backends"
6406 "camel-providers" "credential-modules"
6407 "registry-modules"))))
6408 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6409 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6410 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6411 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
6412 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6413 (string-append lib "/evolution-data-server;")
6414 (string-join runpaths ";"))
6415 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
6416 #:phases
6417 (modify-phases %standard-phases
b468eedc
RW
6418 (add-after 'unpack 'disable-failing-tests
6419 (lambda _
6420 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6421 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6422 (delete-file-recursively "tests/book-migration")
6423 (substitute* "tests/CMakeLists.txt"
6424 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 6425 #t))
743aebd7 6426 (add-after 'unpack 'patch-paths
df217748 6427 (lambda _
b468eedc
RW
6428 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6429 "tests/libedata-book/data-test-utils.c"
6430 "tests/libedata-book/test-book-cache-utils.c"
6431 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 6432 (("/bin/rm") (which "rm")))
ac033c7b
MB
6433 #t))
6434 (add-before 'configure 'dont-override-rpath
6435 (lambda _
6436 (substitute* "CMakeLists.txt"
6437 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6438 ;; Remove it so the configure flag is respected.
6439 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 6440 #t)))))
df217748
SB
6441 (native-inputs
6442 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6443 ("gobject-introspection" ,gobject-introspection)
6444 ("gperf" ,gperf)
6445 ("intltool" ,intltool)
6446 ("pkg-config" ,pkg-config)
a73c1cf8 6447 ("vala" ,vala)
743aebd7 6448 ("python" ,python-wrapper)))
df217748
SB
6449 (propagated-inputs
6450 ;; These are all in the Requires field of .pc files.
6451 `(("gtk+" ,gtk+)
6452 ("libical" ,libical)
6453 ("libsecret" ,libsecret)
6454 ("libsoup" ,libsoup)
6455 ("nss" ,nss)
6456 ("sqlite" ,sqlite)))
6457 (inputs
6458 `(("bdb" ,bdb)
6459 ("gcr" ,gcr)
14c297fd 6460 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 6461 ("json-glib" ,json-glib)
b468eedc 6462 ("libcanberra" ,libcanberra)
743aebd7
MB
6463 ("libgweather" ,libgweather)
6464 ("mit-krb5" ,mit-krb5)
891199c6
MW
6465 ("openldap" ,openldap)
6466 ("webkitgtk" ,webkitgtk)))
df217748
SB
6467 (synopsis "Store address books and calendars")
6468 (home-page "https://wiki.gnome.org/Apps/Evolution")
6469 (description
6470 "This package provides a unified backend for programs that work with
6471contacts, tasks, and calendar information. It was originally developed for
6472Evolution (hence the name), but is now used by other packages as well.")
6473 (license license:lgpl2.0)))
bd7dfafa
SB
6474
6475(define-public caribou
6476 (package
6477 (name "caribou")
fe964bb5 6478 (version "0.4.21")
bd7dfafa
SB
6479 (source (origin
6480 (method url-fetch)
6481 (uri (string-append "mirror://gnome/sources/" name "/"
6482 (version-major+minor version) "/"
6483 name "-" version ".tar.xz"))
6484 (sha256
6485 (base32
fe964bb5 6486 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
6487 (build-system glib-or-gtk-build-system)
6488 (arguments
6489 '(#:phases
6490 (modify-phases %standard-phases
6491 (add-before
6492 'build 'pre-build
6493 (lambda* (#:key outputs #:allow-other-keys)
6494 (let ((out (assoc-ref outputs "out")))
6495 ;; Use absolute shared library path in Caribou-1.0.typelib.
6496 (substitute* "libcaribou/Makefile"
6497 (("--shared-library=libcaribou.so")
6498 (string-append "--shared-library="
6499 out "/lib/libcaribou.so")))
6500 #t)))
6501 (add-after 'install 'wrap-programs
6502 (lambda* (#:key outputs #:allow-other-keys)
6503 (let* ((out (assoc-ref outputs "out"))
6504 (python-path (getenv "PYTHONPATH"))
6505 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6506 (for-each
6507 (lambda (prog)
6508 (wrap-program prog
6509 `("PYTHONPATH" ":" prefix (,python-path))
6510 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6511 (list (string-append out "/bin/caribou-preferences")
6512 (string-append out "/libexec/antler-keyboard"))))
6513 #t)))))
6514 (native-inputs
6515 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6516 ("gobject-introspection" ,gobject-introspection)
6517 ("intltool" ,intltool)
6518 ("pkg-config" ,pkg-config)
9f7f5ba2 6519 ("python" ,python)
bd7dfafa
SB
6520 ("vala" ,vala)
6521 ("xsltproc" ,libxslt)))
6522 (propagated-inputs
6523 ;; caribou-1.0.pc refers to all these.
6524 `(("libgee" ,libgee)
6525 ("libxklavier" ,libxklavier)
6526 ("libxtst" ,libxtst)
6527 ("gtk+" ,gtk+)))
6528 (inputs
6529 `(("clutter" ,clutter)
6530 ("dconf" ,dconf)
6531 ("gtk+-2" ,gtk+-2)
9f7f5ba2 6532 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
6533 (synopsis "Text entry and UI navigation application")
6534 (home-page "https://wiki.gnome.org/Projects/Caribou")
6535 (description
6536 "Caribou is an input assistive technology intended for switch and pointer
6537users.")
6538 (license license:lgpl2.1)))
ba5dd105 6539
ba5dd105
SB
6540(define-public network-manager
6541 (package
6542 (name "network-manager")
01c22be7 6543 (version "1.24.0")
ba5dd105
SB
6544 (source (origin
6545 (method url-fetch)
6546 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6547 (version-major+minor version) "/"
6548 "NetworkManager-" version ".tar.xz"))
8d0548fd 6549 (patches (search-patches "network-manager-plugin-path.patch"))
ba5dd105
SB
6550 (sha256
6551 (base32
01c22be7 6552 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
02710a9b 6553 (modules '((guix build utils)))
fd070f35 6554 (snippet
02710a9b
RW
6555 '(begin
6556 (substitute* "src/devices/wwan/nm-modem-manager.c"
6557 (("systemd") "elogind"))
6558 #t))))
255ff74f 6559 (build-system meson-build-system)
ba5dd105
SB
6560 (outputs '("out"
6561 "doc")) ; 8 MiB of gtk-doc HTML
6562 (arguments
255ff74f 6563 `(#:configure-flags
ba5dd105 6564 (let ((out (assoc-ref %outputs "out"))
ba5dd105
SB
6565 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6566 "/sbin/dhclient")))
255ff74f
BW
6567 (list
6568 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6569 ;; component.
6570 (string-append "-Dc_link_args=-Wl,-rpath="
6571 out "/lib:"
6572 out "/lib/NetworkManager/" ,version)
6573 "-Dsystemd_journal=false"
6574 "-Dsession_tracking=elogind"
6575 "-Dsuspend_resume=elogind"
6576 "-Dsystemdsystemunitdir=no"
6577 "-Dsession_tracking_consolekit=false"
6578 "-Ddhcpcd=no"
6579 "-Ddhcpcanon=no"
6580 "-Dcrypto=gnutls"
6581 "-Diwd=true"
6582 "-Dlibaudit=yes"
6583 "-Dqt=false"
6584 "-Ddocs=true"
6585 "--sysconfdir=/etc"
6586 "--localstatedir=/var"
6587 (string-append "-Dudev_dir="
6588 out "/lib/udev")
6589 (string-append "-Ddbus_conf_dir="
6590 out "/etc/dbus-1/system.d")
6591
6592 (string-append "-Ddhclient=" dhclient)))
ba5dd105
SB
6593 #:phases
6594 (modify-phases %standard-phases
b4f59d87
AW
6595 (add-before 'configure 'pre-configure
6596 (lambda _
6597 ;; These tests try to test aspects of network-manager's
6598 ;; functionality within restricted containers, but they don't
6599 ;; cope with being already in the Guix build jail as that jail
6600 ;; lacks some features that they would like to proxy over (like
6601 ;; a /sys mount).
255ff74f
BW
6602 (substitute* "src/platform/tests/meson.build"
6603 ((".*test-address-linux.*") "")
6604 ((".*test-cleanup-linux.*") "")
6605 ((".*test-link-linux.*") "")
6606 ((".*test-route-linux.*") ""))
6607 (substitute* "src/devices/tests/meson.build"
6608 ((".*test-acd.*") "")
6609 ((".*test-lldp.*") ""))
45f80fce 6610 #t))
255ff74f
BW
6611 (add-after 'unpack 'patch-docbook-xml
6612 (lambda* (#:key inputs #:allow-other-keys)
6613 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6614 "/xml/dtd/docbook")))
6615 (substitute* (find-files "." ".*\\.(xsl|xml)")
6616 (("http://.*/docbookx\\.dtd")
6617 (string-append xmldoc "/docbookx.dtd")))
6618 #t)))
ba5dd105
SB
6619 (add-before 'check 'pre-check
6620 (lambda _
6621 ;; For the missing /etc/machine-id.
6622 (setenv "DBUS_FATAL_WARNINGS" "0")
6623 #t))
255ff74f
BW
6624 (add-before 'install 'no-polkit-magic
6625 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
ba5dd105 6626 (lambda _
255ff74f
BW
6627 (setenv "PKEXEC_UID" "something")
6628 #t))
6629 (add-after 'install 'move-doc
6630 (lambda* (#:key outputs #:allow-other-keys)
6631 (let ((out (assoc-ref outputs "out"))
6632 (doc (assoc-ref outputs "doc")))
6633 (mkdir-p (string-append doc "/share"))
6634 (for-each (lambda (directory)
6635 (copy-recursively (string-append out directory)
6636 (string-append doc directory))
6637 (delete-file-recursively
6638 (string-append out directory)))
6639 '("/share/doc" "/share/gtk-doc"))
6640 #t))))))
b93502d6
DC
6641 (propagated-inputs
6642 `(("glib" ,glib)))
ba5dd105 6643 (native-inputs
255ff74f
BW
6644 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6645 ("gtk-doc" ,gtk-doc)
ba5dd105 6646 ("gobject-introspection" ,gobject-introspection)
255ff74f 6647 ("docbook-xml" ,docbook-xml)
d04687dc 6648 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6649 ("intltool" ,intltool)
d04687dc
HG
6650 ("libxslt" ,libxslt)
6651 ("libxml2" ,libxml2)
ba5dd105 6652 ("pkg-config" ,pkg-config)
255ff74f 6653 ("vala" ,vala)
ba5dd105
SB
6654 ;; For testing.
6655 ("python" ,python-wrapper)
6656 ("python-dbus" ,python-dbus)
6657 ("python-pygobject" ,python-pygobject)))
6658 (inputs
255ff74f 6659 `(("curl" ,curl)
856ca567
KK
6660 ("cyrus-sasl" ,cyrus-sasl)
6661 ("dbus-glib" ,dbus-glib)
ba5dd105 6662 ("dnsmasq" ,dnsmasq)
856ca567 6663 ("eudev" ,eudev)
ba5dd105
SB
6664 ("gnutls" ,gnutls)
6665 ("iptables" ,iptables)
6666 ("isc-dhcp" ,isc-dhcp)
c2f236fa 6667 ("iwd" ,iwd) ; wpa_supplicant alternative
d04687dc 6668 ("jansson" ,jansson)
c2f236fa 6669 ("libaudit" ,audit)
ba5dd105
SB
6670 ("libgcrypt" ,libgcrypt)
6671 ("libgudev" ,libgudev)
6672 ("libndp" ,libndp)
6673 ("libnl" ,libnl)
6674 ("libsoup" ,libsoup)
255ff74f 6675 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
142bdcbc 6676 ("modem-manager" ,modem-manager)
c27e02bf 6677 ("newt" ,newt) ;for the 'nmtui' console interface
c2f236fa 6678 ("openresolv" ,openresolv) ; alternative resolv.conf manager
ba5dd105
SB
6679 ("polkit" ,polkit)
6680 ("ppp" ,ppp)
6681 ("readline" ,readline)
fd070f35
CM
6682 ("util-linux" ,util-linux)
6683 ("elogind" ,elogind)))
ba5dd105 6684 (synopsis "Network connection manager")
8d0548fd 6685 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
ba5dd105
SB
6686 (description
6687 "NetworkManager is a system network service that manages your network
6688devices and connections, attempting to keep active network connectivity when
6689available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6690devices, and provides VPN integration with a variety of different VPN
6691services.")
255ff74f
BW
6692 ;; “This NetworkManager project consists of the daemon, client tools, and
6693 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6694 ;; GPL-2.0+.”
6695 (license (list license:gpl2+
6696 license:lgpl2.1+))
29d2f451 6697 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6698
f2b96b3a
LC
6699(define-public network-manager-openvpn
6700 (package
6701 (name "network-manager-openvpn")
3fe368c0 6702 (version "1.8.12")
f2b96b3a
LC
6703 (source (origin
6704 (method url-fetch)
6705 (uri (string-append
6706 "mirror://gnome/sources/NetworkManager-openvpn/"
6707 (version-major+minor version)
6708 "/NetworkManager-openvpn-" version ".tar.xz"))
6709 (sha256
6710 (base32
3fe368c0 6711 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
f2b96b3a
LC
6712 (build-system gnu-build-system)
6713 (arguments
633422b0
JL
6714 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6715 #:phases
6716 (modify-phases %standard-phases
6717 (add-after 'configure 'patch-path
6718 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6719 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6720 "/sbin/openvpn"))
6721 (modprobe (string-append (assoc-ref inputs "kmod")
6722 "/bin/modprobe"))
6723 (pretty-ovpn (string-append "\"" ovpn "\"")))
6724 (for-each
6725 (lambda (file)
6726 (substitute* file
6727 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6728 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6729 (("\"/sbin/openvpn\"") pretty-ovpn)
6730 (("/sbin/modprobe") modprobe)))
6731 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6732 #t)))))
f2b96b3a
LC
6733 (native-inputs
6734 `(("pkg-config" ,pkg-config)
6735 ("intltool" ,intltool)))
6736 (inputs
6737 `(("gtk+" ,gtk+)
633422b0 6738 ("kmod" ,kmod)
f2b96b3a
LC
6739 ("openvpn" ,openvpn)
6740 ("network-manager" ,network-manager)
3fe368c0 6741 ("libnma" ,libnma)
f2b96b3a
LC
6742 ("libsecret" ,libsecret)))
6743 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6744 (synopsis "OpenVPN plug-in for NetworkManager")
6745 (description
6746 "This extension of NetworkManager allows it to take care of connections
6747to virtual private networks (VPNs) via OpenVPN.")
6748 (license license:gpl2+)
6749 (properties `((upstream-name . "NetworkManager-openvpn")))))
6750
d376129f
JL
6751(define-public network-manager-vpnc
6752 (package
6753 (name "network-manager-vpnc")
6754 (version "1.2.6")
6755 (source (origin
6756 (method url-fetch)
6757 (uri (string-append
6758 "mirror://gnome/sources/NetworkManager-vpnc/"
6759 (version-major+minor version)
6760 "/NetworkManager-vpnc-" version ".tar.xz"))
6761 (sha256
6762 (base32
6763 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6764 (build-system gnu-build-system)
6765 (arguments
7c43b78d
BW
6766 `(#:configure-flags '("--enable-absolute-paths"
6767 "--localstatedir=/var"
6768 ;; libnm-glib has been removed from network-manager
6769 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6770 "--with-libnm-glib=no")
d376129f
JL
6771 #:phases
6772 (modify-phases %standard-phases
6773 (add-after 'configure 'patch-path
6774 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6775 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6776 "/sbin/vpnc"))
6777 (modprobe (string-append (assoc-ref inputs "kmod")
6778 "/bin/modprobe"))
6779 (pretty-ovpn (string-append "\"" vpnc "\"")))
6780 (substitute* "src/nm-vpnc-service.c"
6781 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6782 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6783 (("\"/sbin/vpnc\"") pretty-ovpn)
6784 (("/sbin/modprobe") modprobe)))
6785 #t)))))
6786 (native-inputs
6787 `(("pkg-config" ,pkg-config)
6788 ("intltool" ,intltool)))
6789 (inputs
6790 `(("gtk+" ,gtk+)
6791 ("kmod" ,kmod)
6792 ("vpnc" ,vpnc)
6793 ("network-manager" ,network-manager)
7c43b78d 6794 ("libnma" ,libnma)
d376129f
JL
6795 ("libsecret" ,libsecret)))
6796 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6797 (synopsis "VPNC plug-in for NetworkManager")
6798 (description
6799 "Support for configuring virtual private networks based on VPNC.
6800Compatible with Cisco VPN concentrators configured to use IPsec.")
6801 (license license:gpl2+)
6802 (properties `((upstream-name . "NetworkManager-vpnc")))))
6803
8378c87a
EF
6804(define-public network-manager-openconnect
6805 (package
6806 (name "network-manager-openconnect")
6807 (version "1.2.6")
6808 (source (origin
6809 (method url-fetch)
6810 (uri (string-append
6811 "mirror://gnome/sources/NetworkManager-openconnect/"
6812 (version-major+minor version)
6813 "/NetworkManager-openconnect-" version ".tar.xz"))
6814 (sha256
6815 (base32
6816 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6817 (build-system gnu-build-system)
6818 (arguments
6819 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6820 #:phases
6821 (modify-phases %standard-phases
6822 (add-after 'configure 'patch-path
6823 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6824 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6825 "/sbin/openconnect"))
6826 (modprobe (string-append (assoc-ref inputs "kmod")
6827 "/bin/modprobe"))
6828 (pretty-ovpn (string-append "\"" openconnect "\"")))
6829 (substitute* "src/nm-openconnect-service.c"
2807a843 6830 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8378c87a
EF
6831 (("/sbin/modprobe") modprobe)))
6832 #t)))))
6833 (native-inputs
6834 `(("intltool" ,intltool)
4ca449c5 6835 ("libnma" ,libnma)
8378c87a
EF
6836 ("pkg-config" ,pkg-config)))
6837 (inputs
6838 `(("gcr" ,gcr)
6839 ("gtk+" ,gtk+)
6840 ("kmod" ,kmod)
6841 ("libsecret" ,libsecret)
6842 ("libxml2" ,libxml2)
b4fe5dab 6843 ("lz4" ,lz4)
8378c87a
EF
6844 ("network-manager" ,network-manager)
6845 ("openconnect" ,openconnect)))
6846 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6847 (synopsis "OpenConnect plug-in for NetworkManager")
6848 (description
6849 "This extension of NetworkManager allows it to take care of connections
6850to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6851Cisco's AnyConnect SSL VPN.")
6852 (license license:gpl2+)
e52b9534
LC
6853 (properties `((upstream-name . "NetworkManager-openconnect")
6854
6855 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6856 ;; file refers to account "nm-openconnect". Specify it here
6857 ;; so that 'network-manager-service-type' creates it.
6858 (user-accounts . ("nm-openconnect"))))))
8378c87a 6859
e5e1df4d
DC
6860(define-public mobile-broadband-provider-info
6861 (package
6862 (name "mobile-broadband-provider-info")
310c89e3 6863 (version "20190116")
e5e1df4d
DC
6864 (source (origin
6865 (method url-fetch)
6866 (uri (string-append
6867 "mirror://gnome/sources/"
6868 "mobile-broadband-provider-info/" version "/"
6869 "mobile-broadband-provider-info-" version ".tar.xz"))
6870 (sha256
6871 (base32
310c89e3 6872 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6873 (build-system gnu-build-system)
6874 (arguments
310c89e3 6875 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6876 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6877 (synopsis "Database of broadband connection configuration")
6878 (description "Database of broadband connection configuration.")
6879 (license license:public-domain)))
6880
4d62a9d3
SB
6881(define-public network-manager-applet
6882 (package
6883 (name "network-manager-applet")
4c291112 6884 (version "1.16.0")
4d62a9d3
SB
6885 (source (origin
6886 (method url-fetch)
3df63444 6887 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6888 (version-major+minor version) "/"
3df63444 6889 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6890 (sha256
6891 (base32
4c291112 6892 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
cd7f718e
RW
6893 (build-system meson-build-system)
6894 (arguments
4c291112 6895 '(#:glib-or-gtk? #t))
4d62a9d3
SB
6896 (native-inputs
6897 `(("intltool" ,intltool)
cd7f718e 6898 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6899 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6900 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6901 ("pkg-config" ,pkg-config)))
6902 (propagated-inputs
6903 ;; libnm-gtk.pc refers to all these.
6904 `(("dbus-glib" ,dbus-glib)
6905 ("gtk+" ,gtk+)
415b90f2
BW
6906 ("network-manager" ,network-manager)
6907 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
6908 ("libnma" ,libnma)))
4d62a9d3 6909 (inputs
cd7f718e 6910 `(("gcr" ,gcr)
4d62a9d3
SB
6911 ("libgudev" ,libgudev)
6912 ("libnotify" ,libnotify)
2116bfb3 6913 ("libsecret" ,libsecret)
240cee8a
KK
6914 ("libselinux" ,libselinux)
6915 ("jansson" ,jansson) ; for team support
4c291112 6916 ("modem-manager" ,modem-manager)))
4d62a9d3 6917 (synopsis "Applet for managing network connections")
8ce78609 6918 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
4d62a9d3
SB
6919 (description
6920 "This package contains a systray applet for NetworkManager. It displays
6921the available networks and allows users to easily switch between them.")
6922 (license license:gpl2+)))
56196594
RW
6923
6924(define-public libxml++
6925 (package
6926 (name "libxml++")
8344a85e 6927 (version "3.0.1")
56196594
RW
6928 (source (origin
6929 (method url-fetch)
6930 (uri (string-append "mirror://gnome/sources/" name "/"
6931 (version-major+minor version) "/"
6932 name "-" version ".tar.xz"))
6933 (sha256
6934 (base32
8344a85e 6935 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6936 (build-system gnu-build-system)
6937 ;; libxml++-3.0.pc refers to all these.
6938 (propagated-inputs
6939 `(("libxml2" ,libxml2)
6940 ("glibmm" ,glibmm)))
6941 (native-inputs
6942 `(("perl" ,perl)
6943 ("pkg-config" ,pkg-config)))
6944 (home-page "http://libxmlplusplus.sourceforge.net/")
6945 (synopsis "C++ wrapper for XML parser library libxml2")
6946 (description
6947 "This package provides a C++ wrapper for the XML parser library
6948libxml2.")
6949 (license license:lgpl2.1+)))
df12f04a 6950
b61d9627
AW
6951(define-public libxml++-2
6952 (package
6953 (inherit libxml++)
6954 (name "libxml++")
6955 (version "2.40.1")
6956 (source (origin
6957 (method url-fetch)
6958 (uri (string-append "mirror://gnome/sources/" name "/"
6959 (version-major+minor version) "/"
6960 name "-" version ".tar.xz"))
6961 (sha256
6962 (base32
6963 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6964
df12f04a
SB
6965(define-public gdm
6966 (package
6967 (name "gdm")
0fda99c5 6968 (version "3.34.1")
df12f04a
SB
6969 (source (origin
6970 (method url-fetch)
6971 (uri (string-append "mirror://gnome/sources/" name "/"
6972 (version-major+minor version) "/"
6973 name "-" version ".tar.xz"))
6974 (sha256
6975 (base32
0fda99c5 6976 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 6977 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 6978 (build-system glib-or-gtk-build-system)
df12f04a
SB
6979 (arguments
6980 '(#:configure-flags
af37e6bb 6981 `("--without-plymouth"
957dbc0a 6982 "--disable-systemd-journal"
51bc8357
TS
6983
6984 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6985 ;; instead of having to replace it (i.e., stopping the mingetty
6986 ;; service for TTY 1 before starting GDM).
6987 "--with-initial-vt=7"
6988
89c86562
TS
6989 ;; Use '/etc/environment' for locale settings instead of the
6990 ;; systemd-specific '/etc/locale.conf'.
6991 "--with-lang-file=/etc/environment"
6992
b74ef0ba
RW
6993 ,(string-append "--with-udevdir="
6994 (assoc-ref %outputs "out") "/lib/udev")
6995
af37e6bb
AW
6996 "--localstatedir=/var"
6997 ,(string-append "--with-default-path="
6998 (string-join '("/run/setuid-programs"
6999 "/run/current-system/profile/bin"
7000 "/run/current-system/profile/sbin")
957dbc0a
AW
7001 ":"))
7002 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7003 ;; XDG_DATA_DIRS so that it finds its schemas.
7004 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
7005 #:phases
7006 (modify-phases %standard-phases
7007 (add-before
7008 'configure 'pre-configure
e8c6e771 7009 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
7010 ;; We don't have <systemd/sd-daemon.h>.
7011 (substitute* '("common/gdm-log.c"
7012 "daemon/gdm-server.c"
7013 "daemon/gdm-session-worker.c"
7014 "daemon/gdm-session-worker-job.c")
7015 (("#include <systemd/sd-daemon\\.h>") ""))
7016 ;; Use elogind for sd-login.
7017 (substitute* '("common/gdm-common.c"
0fda99c5 7018 "daemon/gdm-local-display-factory.c"
df12f04a
SB
7019 "daemon/gdm-manager.c"
7020 "libgdm/gdm-user-switching.c")
7021 (("#include <systemd/sd-login\\.h>")
7022 "#include <elogind/sd-login.h>"))
957dbc0a
AW
7023 ;; Check for elogind.
7024 (substitute* '("configure")
7025 (("libsystemd")
7026 "libelogind"))
af37e6bb
AW
7027 ;; Look for system-installed sessions in
7028 ;; /run/current-system/profile/share.
7029 (substitute* '("libgdm/gdm-sessions.c"
7030 "daemon/gdm-session.c"
7031 "daemon/gdm-display.c"
7032 "daemon/gdm-launch-environment.c")
7033 (("DATADIR \"/x")
7034 "\"/run/current-system/profile/share/x")
7035 (("DATADIR \"/wayland")
7036 "\"/run/current-system/profile/share/wayland")
7037 (("DATADIR \"/gnome")
7038 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 7039 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 7040 "GDM_DBUS_DAEMON"
c9ff92b5 7041 "GDM_X_SERVER"
41fa9f18 7042 "GDM_X_SESSION"
c9ff92b5
TS
7043 ;; XXX: Remove this once GNOME Shell is
7044 ;; a dependency of GDM.
7045 "XDG_DATA_DIRS")))
7046 (substitute* "daemon/gdm-session.c"
7047 (("set_up_session_environment \\(self\\);")
7048 (apply string-append
7049 "set_up_session_environment (self);\n"
7050 (map (lambda (name)
7051 (string-append
7052 "gdm_session_set_environment_variable "
7053 "(self, \"" name "\","
7054 "g_getenv (\"" name "\"));\n"))
7055 propagate)))))
a430a350
TS
7056 ;; Find the configuration file using an environment variable.
7057 (substitute* '("common/gdm-settings.c")
e0e6756f 7058 (("GDM_CUSTOM_CONF")
e57c2adb
TS
7059 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7060 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7061 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
7062 ;; Use service-supplied path to X.
7063 (substitute* '("daemon/gdm-server.c")
7064 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7065 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
7066 (substitute* '("daemon/gdm-wayland-session.c"
7067 "daemon/gdm-x-session.c")
1f564c15
TS
7068 (("\"dbus-daemon\"")
7069 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 7070 (("X_SERVER")
41fa9f18
TS
7071 "g_getenv (\"GDM_X_SERVER\")")
7072 (("GDMCONFDIR \"/Xsession\"")
7073 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
7074 ;; Use an absolute path for GNOME Session.
7075 (substitute* "daemon/gdm-launch-environment.c"
7076 (("\"gnome-session\"")
7077 (string-append "\"" (assoc-ref inputs "gnome-session")
7078 "/bin/gnome-session\"")))
e8c6e771
TS
7079 ;; Do not automatically select the placeholder session.
7080 (substitute* "daemon/gdm-session.c"
7081 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7082 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7083 "(g_strcmp0(search_dirs[i], \""
7084 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7085 "\") == 0 && "
7086 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7087 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 7088 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 7089 #t))
8caa4589
TS
7090 ;; GDM requires that there be at least one desktop entry
7091 ;; file. This phase installs a hidden one that simply
7092 ;; fails. This enables users to use GDM with a
7093 ;; '~/.xsession' script with no other desktop entry files.
7094 ;; See <https://bugs.gnu.org/35068>.
7095 (add-after 'install 'install-placeholder-desktop-entry
7096 (lambda* (#:key inputs outputs #:allow-other-keys)
7097 (let* ((out (assoc-ref outputs "out"))
7098 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7099 (fail (string-append sessions "/fail.desktop")))
7100 (mkdir-p sessions)
7101 (with-output-to-file fail
7102 (lambda ()
7103 (for-each
7104 display
7105 '("[Desktop Entry]\n"
7106 "Encoding=UTF-8\n"
7107 "Type=Application\n"
7108 "Name=Fail\n"
7109 "Comment=This session fails immediately.\n"
7110 "NoDisplay=true\n"
7111 "Exec=false\n"))))
7112 #t)))
69544798
TS
7113 ;; GDM needs GNOME Session to run these applications. We link
7114 ;; their autostart files in `share/gdm/greeter/autostart'
7115 ;; because GDM explicitly tells GNOME Session to look there.
7116 ;;
7117 ;; XXX: GNOME Shell should be linked here too, but currently
7118 ;; GNOME Shell depends on GDM.
7119 (add-after 'install 'link-autostart-files
7120 (lambda* (#:key inputs outputs #:allow-other-keys)
7121 (let* ((out (assoc-ref outputs "out"))
7122 (autostart (string-append out "/share/gdm/"
7123 "greeter/autostart"))
7124 (settings (assoc-ref inputs "gnome-settings-daemon")))
7125 (mkdir-p autostart)
7126 (with-directory-excursion autostart
7127 (for-each (lambda (desktop)
7128 (symlink desktop (basename desktop)))
7129 (find-files (string-append settings "/etc/xdg"))))
7130 #t))))))
df12f04a
SB
7131 (native-inputs
7132 `(("dconf" ,dconf)
7133 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7134 ("gobject-introspection" ,gobject-introspection)
7135 ("intltool" ,intltool)
7136 ("itstool" ,itstool)
7137 ("pkg-config" ,pkg-config)
7138 ("xmllint" ,libxml2)))
7139 (inputs
7140 `(("accountsservice" ,accountsservice)
7141 ("check" ,check) ; for testing
7142 ("elogind" ,elogind)
def6d6b6 7143 ("gnome-session" ,gnome-session)
69544798 7144 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
7145 ("gtk+" ,gtk+)
7146 ("iso-codes" ,iso-codes)
7147 ("libcanberra" ,libcanberra)
7148 ("linux-pam" ,linux-pam)))
7149 (synopsis "Display manager for GNOME")
f032d0be 7150 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
7151 (description
7152 "GNOME Display Manager is a system service that is responsible for
7153providing graphical log-ins and managing local and remote displays.")
7154 (license license:gpl2+)))
8e1dd04f
SB
7155
7156(define-public libgtop
7157 (package
7158 (name "libgtop")
015fc036 7159 (version "2.40.0")
8e1dd04f
SB
7160 (source (origin
7161 (method url-fetch)
59487fc2 7162 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7163 (version-major+minor version) "/"
59487fc2 7164 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7165 (sha256
7166 (base32
015fc036 7167 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7168 (build-system gnu-build-system)
7169 (native-inputs
7170 `(("gobject-introspection" ,gobject-introspection)
7171 ("intltool" ,intltool)
7172 ("perl" ,perl)
7173 ("pkg-config" ,pkg-config)))
7174 (propagated-inputs
7175 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7176 (synopsis "Portable system access library")
7177 (home-page "https://www.gnome.org/")
7178 (description
7179 "LibGTop is a library to get system specific data such as CPU and memory
7180usage and information about running processes.")
7181 (license license:gpl2+)))
b96c4260
SB
7182
7183(define-public gnome-bluetooth
7184 (package
7185 (name "gnome-bluetooth")
e8f4bf6b 7186 (version "3.34.0")
b96c4260
SB
7187 (source (origin
7188 (method url-fetch)
7189 (uri (string-append "mirror://gnome/sources/" name "/"
7190 (version-major+minor version) "/"
7191 name "-" version ".tar.xz"))
7192 (sha256
7193 (base32
e8f4bf6b 7194 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 7195 (build-system meson-build-system)
b96c4260
SB
7196 (native-inputs
7197 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7198 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7199 ("gobject-introspection" ,gobject-introspection)
7200 ("intltool" ,intltool)
7201 ("pkg-config" ,pkg-config)
7202 ("xmllint" ,libxml2)))
7203 (propagated-inputs
7204 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7205 `(("glib" ,glib)
7206 ("gtk+" ,gtk+)))
b96c4260 7207 (inputs
723afae6
KK
7208 `(("eudev" ,eudev)
7209 ("libcanberra" ,libcanberra)
b96c4260
SB
7210 ("libnotify" ,libnotify)))
7211 (synopsis "GNOME Bluetooth subsystem")
7212 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7213 (description
7214 "This package contains tools for managing and manipulating Bluetooth
7215devices using the GNOME desktop.")
7216 (license license:lgpl2.1+)))
b645146f
SB
7217
7218(define-public gnome-control-center
7219 (package
7220 (name "gnome-control-center")
c576328d 7221 (version "3.34.2")
b645146f
SB
7222 (source (origin
7223 (method url-fetch)
7224 (uri (string-append "mirror://gnome/sources/" name "/"
7225 (version-major+minor version) "/"
7226 name "-" version ".tar.xz"))
7227 (sha256
7228 (base32
c576328d 7229 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7230 (build-system meson-build-system)
b645146f 7231 (arguments
59dac026
RW
7232 '(#:glib-or-gtk? #t
7233 #:configure-flags
64c70430
KK
7234 (list "-Dcheese=false"
7235 (string-append "-Dgnome_session_libexecdir="
7236 (assoc-ref %build-inputs "gnome-session")
7237 "/libexec"))
59dac026 7238 #:phases
b645146f
SB
7239 (modify-phases %standard-phases
7240 (add-before 'configure 'patch-paths
7241 (lambda* (#:key inputs #:allow-other-keys)
7242 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7243 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7244 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7245 (nm-applet (assoc-ref inputs "network-manager-applet"))
7246 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7247 (substitute* "panels/datetime/tz.h"
7248 (("/usr/share/zoneinfo/zone.tab")
7249 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7250 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7251 (("/usr/share/locale")
7252 (string-append libc "/share/locale")))
1df38cfc
LC
7253 (substitute* "panels/region/cc-region-panel.c"
7254 (("\"gkbd-keyboard-display")
7255 (string-append "\"" libgnomekbd
7256 "/bin/gkbd-keyboard-display")))
341225ac
LC
7257 (substitute* '("panels/network/net-device-wifi.c"
7258 "panels/network/net-device.c"
7259 "panels/network/connection-editor/net-connection-editor.c")
7260 (("\"nm-connection-editor")
7261 (string-append "\"" nm-applet
7262 "/bin/nm-connection-editor")))
1acd107c
FP
7263 (substitute* '("panels/user-accounts/run-passwd.c")
7264 (("/usr/bin/passwd")
7265 "/run/setuid-programs/passwd"))
64c70430
KK
7266 (substitute* "panels/info/cc-info-overview-panel.c"
7267 (("DATADIR \"/gnome/gnome-version.xml\"")
7268 (string-append "\"" gnome-desktop
7269 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7270 #t)))
7271 (add-after 'unpack 'skip-gtk-update-icon-cache
7272 ;; Don't create 'icon-theme.cache'.
7273 (lambda _
7274 (substitute* "build-aux/meson/meson_post_install.py"
7275 (("gtk-update-icon-cache") (which "true")))
7276 #t)))))
b645146f
SB
7277 (native-inputs
7278 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7279 ("intltool" ,intltool)
7280 ("pkg-config" ,pkg-config)
a6938bac
KK
7281 ("xsltproc" ,libxslt)
7282 ;; For tests
7283 ("hicolor-icon-theme" ,hicolor-icon-theme)
7284 ("python-dbusmock" ,python-dbusmock)
7285 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7286 (inputs
7287 `(("accountsservice" ,accountsservice)
7288 ("clutter-gtk" ,clutter-gtk)
7289 ("colord-gtk" ,colord-gtk)
7290 ("cups" ,cups)
7291 ("dconf" ,dconf)
7292 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7293 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7294 ("gnome-bluetooth" ,gnome-bluetooth)
7295 ("gnome-desktop" ,gnome-desktop)
7296 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7297 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7298 ("gnome-session" ,gnome-session)
b645146f
SB
7299 ("gnome-settings-daemon" ,gnome-settings-daemon)
7300 ("grilo" ,grilo)
a6938bac 7301 ("gsound" ,gsound)
b645146f
SB
7302 ("ibus" ,ibus)
7303 ("libcanberra" ,libcanberra)
1df38cfc 7304 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7305 ("libgudev" ,libgudev)
7306 ("libgtop" ,libgtop)
46cf3434 7307 ("libnma" ,libnma)
b645146f 7308 ("libpwquality" ,libpwquality)
982c0b36 7309 ("libsecret" ,libsecret)
b645146f
SB
7310 ("libsoup" ,libsoup)
7311 ("libxml2" ,libxml2)
7312 ("libwacom" ,libwacom)
7313 ("mesa" ,mesa)
7314 ("mit-krb5" ,mit-krb5)
7315 ("modem-manager" ,modem-manager)
7316 ("network-manager-applet" ,network-manager-applet)
7317 ("polkit" ,polkit)
7318 ("pulseaudio" ,pulseaudio)
7319 ("smbclient" ,samba)
7320 ("tzdata" ,tzdata)
982c0b36 7321 ("udisks" ,udisks)
b645146f
SB
7322 ("upower" ,upower)))
7323 (synopsis "Utilities to configure the GNOME desktop")
7324 (home-page "https://www.gnome.org/")
7325 (description
7326 "This package contains configuration applets for the GNOME desktop,
7327allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7328properties, sound setup, desktop theme and background, user interface
7329properties, screen resolution, and other GNOME parameters.")
7330 (license license:gpl2+)))
a4df5756
SB
7331
7332(define-public gnome-shell
7333 (package
7334 (name "gnome-shell")
28457ae6 7335 (version "3.34.2")
a4df5756
SB
7336 (source (origin
7337 (method url-fetch)
7338 (uri (string-append "mirror://gnome/sources/" name "/"
7339 (version-major+minor version) "/"
7340 name "-" version ".tar.xz"))
7341 (sha256
7342 (base32
28457ae6
KK
7343 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7344 (patches (search-patches "gnome-shell-theme.patch"
7345 "gnome-shell-disable-test.patch"))
a76d0f03
LC
7346 (modules '((guix build utils)))
7347 (snippet
7348 #~(begin
a76d0f03
LC
7349 ;; Copy images for use on the GDM log-in screen.
7350 (copy-file #$(file-append %artwork-repository
7351 "/slim/0.x/background.png")
7352 "data/theme/guix-background.png")
45fef894
LC
7353 (copy-file #$(file-append %artwork-repository
7354 "/logo/Guix-horizontal-white.svg")
7355 "data/theme/guix-logo.svg")
a76d0f03 7356 #t))))
2b0c755d 7357 (build-system meson-build-system)
a4df5756 7358 (arguments
08185081
MB
7359 `(#:glib-or-gtk? #t
7360 #:disallowed-references ((,glib "bin")
11e1df56
LC
7361 ,inkscape ,libxslt
7362 ,ruby-sass)
2b0c755d
RW
7363 #:configure-flags
7364 (list "-Dsystemd=false"
7365 ;; Otherwise, the RUNPATH will lack the final path component.
7366 (string-append "-Dc_link_args=-Wl,-rpath="
7367 (assoc-ref %outputs "out")
7368 "/lib/gnome-shell"))
11e1df56 7369
08185081 7370 #:modules ((guix build meson-build-system)
11e1df56
LC
7371 (guix build utils)
7372 (srfi srfi-1))
7373
2b0c755d 7374 #:phases
a4df5756 7375 (modify-phases %standard-phases
2b0c755d 7376 (add-after 'unpack 'fix-keysdir
a4df5756
SB
7377 (lambda* (#:key outputs #:allow-other-keys)
7378 (let* ((out (assoc-ref outputs "out"))
7379 (keysdir (string-append
7380 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
7381 (substitute* "meson.build"
7382 (("keysdir =.*")
7383 (string-append "keysdir = '" keysdir "'\n")))
7384 #t)))
ebfe259f
MB
7385 (add-before 'configure 'convert-logo-to-png
7386 (lambda* (#:key inputs #:allow-other-keys)
7387 ;; Convert the logo from SVG to PNG.
7388 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7389 "data/theme/guix-logo.svg")))
ba00235a 7390 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
7391 (lambda* (#:key inputs #:allow-other-keys)
7392 (substitute* "js/misc/ibusManager.js"
7393 (("'ibus-daemon'")
7394 (string-append "'" (assoc-ref inputs "ibus")
7395 "/bin/ibus-daemon'")))
d6fda4d3
LC
7396 (substitute* "js/ui/status/keyboard.js"
7397 (("'gkbd-keyboard-display'")
7398 (string-append "'" (assoc-ref inputs "libgnomekbd")
7399 "/bin/gkbd-keyboard-display'")))
2472cdec 7400 #t))
2b0c755d
RW
7401 (add-before 'check 'pre-check
7402 (lambda* (#:key inputs #:allow-other-keys)
7403 ;; Tests require a running X server.
7404 (system "Xvfb :1 &")
7405 (setenv "DISPLAY" ":1")
7406 #t))
7407 (add-after 'install 'wrap-programs
7408 (lambda* (#:key inputs outputs #:allow-other-keys)
7409 (let ((out (assoc-ref outputs "out"))
7410 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7411 (python-path (getenv "PYTHONPATH")))
7412 (wrap-program (string-append out "/bin/gnome-shell")
7413 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7414 ;; FIXME: gnome-shell loads these libraries with unqualified
7415 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7416 ;; alternative might be to patch gnome-shell.
7417 `("LD_LIBRARY_PATH" ":" prefix
7418 ,(map (lambda (pkg)
7419 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
7420 '("gdk-pixbuf"
7421 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
7422 (for-each
7423 (lambda (prog)
7424 (wrap-program (string-append out "/bin/" prog)
7425 `("PYTHONPATH" ":" prefix (,python-path))
7426 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7427 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 7428 #t)))
11e1df56
LC
7429 (replace 'glib-or-gtk-wrap
7430 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7431 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7432 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7433 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7434 ;; phase. Fix that since we don't need these.
7435 (wrap #:inputs (fold alist-delete inputs
7436 '("inkscape" "intltool" "glib:bin"))
7437 #:outputs outputs)))))))
a4df5756 7438 (native-inputs
28457ae6
KK
7439 `(("asciidoc" ,asciidoc)
7440 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 7441 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 7442 ("gobject-introspection" ,gobject-introspection)
ebfe259f 7443 ("inkscape" ,inkscape)
a4df5756
SB
7444 ("intltool" ,intltool)
7445 ("pkg-config" ,pkg-config)
7446 ("python" ,python)
2b0c755d
RW
7447 ("ruby-sass" ,ruby-sass)
7448 ("sassc" ,sassc)
a76d0f03 7449 ("xsltproc" ,libxslt)
2b0c755d 7450 ;; For tests
0b4504f6 7451 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
7452 (inputs
7453 `(("accountsservice" ,accountsservice)
7454 ("caribou" ,caribou)
7455 ("docbook-xsl" ,docbook-xsl)
7456 ("evolution-data-server" ,evolution-data-server)
7457 ("gcr" ,gcr)
7458 ("gdm" ,gdm)
c5db31d4 7459 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 7460 ("gjs" ,gjs)
28457ae6 7461 ("gnome-autoar" ,gnome-autoar)
a4df5756 7462 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
7463 ("gnome-desktop" ,gnome-desktop)
7464 ("gnome-settings-daemon" ,gnome-settings-daemon)
7465 ("gst-plugins-base" ,gst-plugins-base)
7466 ("ibus" ,ibus)
7467 ("libcanberra" ,libcanberra)
7468 ("libcroco" ,libcroco)
d6fda4d3 7469 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756 7470 ("libgweather" ,libgweather)
e24d311f 7471 ("libnma" ,libnma)
a4df5756
SB
7472 ("libsoup" ,libsoup)
7473 ("mesa-headers" ,mesa-headers)
7474 ("mutter" ,mutter)
7475 ("network-manager-applet" ,network-manager-applet)
7476 ("polkit" ,polkit)
7477 ("pulseaudio" ,pulseaudio)
7478 ("python-pygobject" ,python-pygobject)
7479 ("startup-notification" ,startup-notification)
7480 ("telepathy-logger" ,telepathy-logger)
7481 ("upower" ,upower)
30e760f0
MB
7482 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7483 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7484 ("librsvg" ,librsvg)
2b0c755d 7485 ("geoclue" ,geoclue)))
a4df5756
SB
7486 (synopsis "Desktop shell for GNOME")
7487 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7488 (description
7489 "GNOME Shell provides core user interface functions for the GNOME desktop,
7490like switching to windows and launching applications.")
7491 (license license:gpl2+)))
c3f29bc9
RS
7492
7493(define-public gtk-vnc
7494 (package
7495 (name "gtk-vnc")
965ff023 7496 (version "0.9.0")
c3f29bc9
RS
7497 (source
7498 (origin
7499 (method url-fetch)
7500 (uri (string-append "mirror://gnome/sources/" name "/"
7501 (version-major+minor version) "/"
7502 name "-" version ".tar.xz"))
7503 (sha256
7504 (base32
965ff023 7505 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
7506 (build-system gnu-build-system)
7507 (arguments
7508 '(#:configure-flags '("--with-gtk=3.0")))
7509 (propagated-inputs
7510 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7511 (inputs
7512 `(("cyrus-sasl" ,cyrus-sasl)
7513 ("gnutls" ,gnutls)
7514 ("libgcrypt" ,libgcrypt)
7515 ("pulseaudio" ,pulseaudio)))
7516 (native-inputs
7517 `(("glib:bin" ,glib "bin")
7518 ("gobject-introspection" ,gobject-introspection)
7519 ("intltool" ,intltool)
7520 ("pkg-config" ,pkg-config)
2f17e939 7521 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
7522 ("vala" ,vala)))
7523 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7524 (synopsis "VNC viewer widget for GTK+")
7525 (description
7526 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7527applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7528GTK-VNC implements client side RFB protocol and authentication extensions such
7529as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7530 (license license:lgpl2.1+)))
8b877545 7531
dc69fe18
MW
7532(define-public gnome-autoar
7533 (package
7534 (name "gnome-autoar")
17969940 7535 (version "0.2.4")
dc69fe18
MW
7536 (source (origin
7537 (method url-fetch)
7538 (uri (string-append "mirror://gnome/sources/" name "/"
7539 (version-major+minor version) "/"
7540 name "-" version ".tar.xz"))
7541 (sha256
7542 (base32
17969940 7543 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
7544 (build-system glib-or-gtk-build-system)
7545 (native-inputs
17969940 7546 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
7547 ("pkg-config" ,pkg-config)))
7548 (propagated-inputs
17969940 7549 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 7550 (inputs
0a6e9e13 7551 `(("gtk+" ,gtk+)))
dc69fe18
MW
7552 (synopsis "Archives integration support for GNOME")
7553 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7554 (description
7555 "GNOME Autoar is a library which makes creating and extracting archives
7556easy, safe, and automatic.")
7557 (license license:lgpl2.1+)))
7558
b64e217f
MW
7559(define-public tracker
7560 (package
7561 (name "tracker")
caaefa40 7562 (version "2.3.4")
b64e217f
MW
7563 (source (origin
7564 (method url-fetch)
b5b0fd23 7565 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 7566 (version-major+minor version) "/"
b5b0fd23 7567 "tracker-" version ".tar.xz"))
b64e217f
MW
7568 (sha256
7569 (base32
caaefa40 7570 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 7571 (build-system meson-build-system)
c8bdf589 7572 (arguments
5ada561c
KK
7573 `(#:glib-or-gtk? #t
7574 #:configure-flags
7575 ;; Otherwise, the RUNPATH will lack the final path component.
7576 (list (string-append "-Dc_link_args=-Wl,-rpath="
7577 (assoc-ref %outputs "out") "/lib:"
7578 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7579 #:phases
c8bdf589 7580 (modify-phases %standard-phases
c8bdf589
RW
7581 (add-before 'check 'pre-check
7582 (lambda _
63db190a
PN
7583 ;; Some tests expect to write to $HOME.
7584 (setenv "HOME" "/tmp")
c8bdf589 7585 #t)))))
b64e217f 7586 (native-inputs
5ada561c 7587 `(("glib:bin" ,glib "bin")
b64e217f 7588 ("gobject-introspection" ,gobject-introspection)
5ada561c 7589 ("python-pygobject" ,python-pygobject)
b64e217f
MW
7590 ("intltool" ,intltool)
7591 ("pkg-config" ,pkg-config)
7592 ("vala" ,vala)))
7593 (inputs
63db190a 7594 `(("dbus" ,dbus)
44ed6284 7595 ("sqlite" ,sqlite)
b64e217f 7596 ("libxml2" ,libxml2)
63db190a 7597 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 7598 ("json-glib" ,json-glib)
63db190a 7599 ("libsoup" ,libsoup)))
b64e217f
MW
7600 (synopsis "Metadata database, indexer and search tool")
7601 (home-page "https://wiki.gnome.org/Projects/Tracker")
7602 (description
63db190a
PN
7603 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7604
7605It is a middleware component aimed at desktop application developers who want
7606their apps to browse and search user content. It's not designed to be used
7607directly by desktop users, but it provides a commandline tool named
7608@command{tracker} for the adventurous.
7609
7610Tracker allows your application to instantly perform full-text searches across
7611all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7612example. This is achieved by indexing the user's home directory in the
7613background.
7614
7615Tracker also allows your application to query and list content that the user
7616has stored. For example, GNOME Music displays all the music files that are
7617found by Tracker. This means that GNOME Music doesn't need to maintain a
7618database of its own.
7619
7620If you need to go beyond simple searches, Tracker is also a linked data
7621endpoint and it understands SPARQL. ")
7622 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 7623 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 7624 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 7625 (license (list license:gpl2+
63db190a
PN
7626 license:bsd-3
7627 license:lgpl2.1+))))
b64e217f 7628
03be9874
KK
7629(define-public tracker-miners
7630 (package
7631 (name "tracker-miners")
de60ac2f 7632 (version "2.3.3")
03be9874
KK
7633 (source (origin
7634 (method url-fetch)
7635 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7636 (version-major+minor version)
7637 "/tracker-miners-" version ".tar.xz"))
7638 (sha256
7639 (base32
de60ac2f 7640 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
7641 (build-system meson-build-system)
7642 (arguments
7643 `(#:glib-or-gtk? #t
7644 #:configure-flags
7645 (list "-Dminer_rss=false" ; libgrss is required.
7646 ;; Ensure the RUNPATH contains all installed library locations.
7647 (string-append "-Dc_link_args=-Wl,-rpath="
7648 (assoc-ref %outputs "out")
7649 "/lib/tracker-miners-2.0")
7650 ;; TODO: Enable functional tests. Currently, the following error
7651 ;; appears:
7652 ;; Exception: The functional tests require DConf to be the default
7653 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7654 "-Dfunctional_tests=false")))
7655 (native-inputs
7656 `(("dbus" ,dbus)
7657 ("intltool" ,intltool)
7658 ("glib:bin" ,glib "bin")
7659 ("gobject-introspection" ,gobject-introspection)
7660 ("pkg-config" ,pkg-config)
7661 ("python-pygobject" ,python-pygobject)))
7662 (inputs
7663 `(("exempi" ,exempi)
7664 ("ffmpeg" ,ffmpeg)
7665 ("flac" ,flac)
7666 ("giflib" ,giflib)
7667 ("glib" ,glib)
7668 ("gstreamer" ,gstreamer)
7669 ("icu4c" ,icu4c)
7670 ("libcue" ,libcue)
7671 ("libexif" ,libexif)
7672 ("libgsf" ,libgsf)
7673 ("libgxps" ,libgxps)
7674 ("libiptcdata" ,libiptcdata)
4bd428a7 7675 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
7676 ("libosinfo" ,libosinfo)
7677 ("libpng" ,libpng)
7678 ("libseccomp" ,libseccomp)
7679 ("libtiff" ,libtiff)
7680 ("libvorbis" ,libvorbis)
7681 ("libxml2" ,libxml2)
7682 ("poppler" ,poppler)
7683 ("taglib" ,taglib)
7684 ("totem-pl-parser" ,totem-pl-parser)
7685 ("tracker" ,tracker)
7686 ("upower" ,upower)
7687 ("zlib" ,zlib)))
b64e217f
MW
7688 (synopsis "Metadata database, indexer and search tool")
7689 (home-page "https://wiki.gnome.org/Projects/Tracker")
7690 (description
7691 "Tracker is an advanced framework for first class objects with associated
7692metadata and tags. It provides a one stop solution for all metadata, tags,
7693shared object databases, search tools and indexing.")
7694 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7695 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7696 (license (list license:gpl2+
7697 license:lgpl2.1+
7698 license:lgpl2.0+))))
7699
8b877545
RS
7700(define-public nautilus
7701 (package
7702 (name "nautilus")
8069ff0b 7703 (version "3.34.2")
8b877545
RS
7704 (source (origin
7705 (method url-fetch)
7706 (uri (string-append "mirror://gnome/sources/" name "/"
7707 (version-major+minor version) "/"
7708 name "-" version ".tar.xz"))
7709 (sha256
7710 (base32
8069ff0b 7711 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 7712 (build-system meson-build-system)
8b877545 7713 (arguments
35e2d0cf 7714 '(#:glib-or-gtk? #t
8069ff0b
KK
7715 #:phases
7716 (modify-phases %standard-phases
7717 (add-after 'unpack 'skip-gtk-update-icon-cache
7718 ;; Don't create 'icon-theme.cache'.
7719 (lambda _
7720 (substitute* "build-aux/meson/postinstall.py"
7721 (("gtk-update-icon-cache") "true"))
7722 #t)))
8b877545
RS
7723 ;; XXX: FAIL: check-nautilus
7724 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7725 #:tests? #f))
7726 (native-inputs
35e2d0cf
R
7727 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7728 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
7729 ("gobject-introspection" ,gobject-introspection)
7730 ("intltool" ,intltool)
7731 ("pkg-config" ,pkg-config)))
8b877545 7732 (inputs
8b877545 7733 `(("dconf" ,dconf)
caf6c363 7734 ("gexiv2" ,gexiv2)
dd05e731 7735 ("gvfs" ,gvfs)
8b877545
RS
7736 ("exempi" ,exempi)
7737 ("gnome-desktop" ,gnome-desktop)
09d88905 7738 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7739 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7740 ("libseccomp" ,libseccomp)
35e2d0cf 7741 ("libselinux" ,libselinux)
09d88905 7742 ("tracker" ,tracker)
3cafb9d4 7743 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7744 ;; XXX: gtk+ is required by libnautilus-extension.pc
7745 ;;
7746 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7747 ;; package. See:
7748 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7749 ("gtk+" ,gtk+)
8b877545
RS
7750 ("libexif" ,libexif)
7751 ("libxml2" ,libxml2)))
7752 (synopsis "File manager for GNOME")
7753 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7754 (description
7755 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7756design and behaviour, giving the user a simple way to navigate and manage its
7757files.")
7758 (license license:gpl2+)))
3c697ffd
JR
7759
7760(define-public baobab
7761 (package
7762 (name "baobab")
e0c5f20c 7763 (version "3.32.0")
3c697ffd
JR
7764 (source (origin
7765 (method url-fetch)
7766 (uri (string-append
7767 "mirror://gnome/sources/" name "/"
7768 (version-major+minor version) "/"
7769 name "-" version ".tar.xz"))
7770 (sha256
7771 (base32
e0c5f20c 7772 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7773 (build-system meson-build-system)
7774 (arguments
7775 '(#:glib-or-gtk? #t))
3c697ffd
JR
7776 (native-inputs
7777 `(("intltool" ,intltool)
7778 ("pkg-config" ,pkg-config)
d233d373
RJ
7779 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7780 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7781 ("itstool" ,itstool)
7782 ("xmllint" ,libxml2)
7783 ("glib" ,glib "bin")
7784 ("vala" ,vala)))
7785 (inputs
7786 `(("gtk+" ,gtk+)))
7787 (synopsis "Disk usage analyzer for GNOME")
7788 (description
7789 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7790usage in the GNOME desktop environment. It can easily scan device volumes or
7791a specific user-requested directory branch (local or remote). Once the scan
7792is complete it provides a graphical representation of each selected folder.")
7793 (home-page "https://wiki.gnome.org/Apps/Baobab")
7794 (license license:gpl2+)))
dc050251 7795
fdba447c
RS
7796(define-public gnome-backgrounds
7797 (package
7798 (name "gnome-backgrounds")
0856b0d9 7799 (version "3.34.0")
fdba447c
RS
7800 (source
7801 (origin
7802 (method url-fetch)
7803 (uri (string-append "mirror://gnome/sources/" name "/"
7804 (version-major+minor version) "/"
7805 name "-" version ".tar.xz"))
7806 (sha256
7807 (base32
0856b0d9 7808 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 7809 (build-system meson-build-system)
fdba447c
RS
7810 (native-inputs
7811 `(("intltool" ,intltool)))
e04e8a8c 7812 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7813 (synopsis "Background images for the GNOME desktop")
7814 (description
7815 "GNOME backgrounds package contains a collection of graphics files which
7816can be used as backgrounds in the GNOME Desktop environment. Additionally,
7817the package creates the proper framework and directory structure so that you
7818can add your own files to the collection.")
7819 (license (list license:gpl2+
7820 license:cc-by2.0
7821 license:cc-by-sa2.0
7822 license:cc-by-sa3.0))))
7823
b784b1a9
RS
7824(define-public gnome-screenshot
7825 (package
7826 (name "gnome-screenshot")
d5101dab 7827 (version "3.34.0")
b784b1a9
RS
7828 (source
7829 (origin
7830 (method url-fetch)
7831 (uri (string-append "mirror://gnome/sources/" name "/"
7832 (version-major+minor version) "/"
7833 name "-" version ".tar.xz"))
7834 (sha256
7835 (base32
d5101dab 7836 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 7837 (build-system meson-build-system)
d5101dab
KK
7838 (arguments
7839 '(#:phases
7840 (modify-phases %standard-phases
7841 (add-after 'unpack 'skip-gtk-update-icon-cache
7842 ;; Don't create 'icon-theme.cache'.
7843 (lambda _
7844 (substitute* "build-aux/postinstall.py"
7845 (("gtk-update-icon-cache") "true"))
7846 #t)))))
b784b1a9
RS
7847 (native-inputs
7848 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 7849 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7850 ("intltool" ,intltool)
8356aefa 7851 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7852 ("pkg-config" ,pkg-config)))
7853 (inputs
7854 `(("gtk+" ,gtk+)
7855 ("libcanberra" ,libcanberra)
7856 ("libx11" ,libx11)
7857 ("libxext" ,libxext)))
676e7cb4 7858 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7859 (synopsis "Take pictures of your screen")
7860 (description
7861 "GNOME Screenshot is a utility used for taking screenshots of the entire
7862screen, a window or a user defined area of the screen, with optional
7863beautifying border effects.")
7864 (license license:gpl2+)))
7865
66d59111
RS
7866(define-public dconf-editor
7867 (package
7868 (name "dconf-editor")
720aa20f 7869 (version "3.34.2")
66d59111
RS
7870 (source
7871 (origin
7872 (method url-fetch)
7873 (uri (string-append "mirror://gnome/sources/" name "/"
7874 (version-major+minor version) "/"
7875 name "-" version ".tar.xz"))
7876 (sha256
7877 (base32
720aa20f 7878 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 7879 (build-system meson-build-system)
66d59111
RS
7880 (native-inputs
7881 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7882 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7883 ("intltool" ,intltool)
294ff39d
RW
7884 ("pkg-config" ,pkg-config)
7885 ("vala" ,vala)))
66d59111
RS
7886 (inputs
7887 `(("dconf" ,dconf)
7888 ("gtk+" ,gtk+)
7889 ("libxml2" ,libxml2)))
720aa20f 7890 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
7891 (synopsis "Graphical editor for GNOME's dconf configuration system")
7892 (description
7893 "Dconf-editor is a graphical tool for browsing and editing the dconf
7894configuration system for GNOME. It allows users to configure desktop
7895software that do not provide their own configuration interface.")
7896 (license license:lgpl2.1+)))
7897
96d36f38
AW
7898(define-public gnome-default-applications
7899 (package
7900 (name "gnome-default-applications")
7901 (version "0")
7902 (build-system trivial-build-system)
7903 (source #f)
7904 (propagated-inputs
8ad4f0aa
LC
7905 `(("nautilus" ,nautilus)
7906 ("evince" ,evince)))
96d36f38
AW
7907 (arguments
7908 `(#:modules ((guix build utils))
7909 #:builder
7910 (begin
7911 (use-modules (guix build utils))
7912 (let* ((out (assoc-ref %outputs "out"))
7913 (apps (string-append out "/share/applications")))
7914 (mkdir-p apps)
a6ac679f 7915 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
7916 (lambda (port)
7917 (format port "[Default Applications]\n")
8ad4f0aa
LC
7918 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7919 (format port "application/pdf=evince.desktop\n")
7920 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7921 #t))))
7922 (synopsis "Default MIME type associations for the GNOME desktop")
7923 (description
7924 "Given many installed packages which might handle a given MIME type, a
7925user running the GNOME desktop probably has some preferences: for example,
7926that folders be opened by default by the Nautilus file manager, not the Baobab
7927disk usage analyzer. This package establishes that set of default MIME type
7928associations for GNOME.")
7929 (license license:gpl3+)
7930 (home-page #f)))
7931
3f1ed953
RG
7932(define-public libgovirt
7933 (package
7934 (name "libgovirt")
7935 (version "0.3.6")
7936 (source (origin
7937 (method url-fetch)
7938 (uri (string-append "mirror://gnome/sources/" name "/"
7939 (version-major+minor version) "/"
7940 name "-" version ".tar.xz"))
7941 (sha256
7942 (base32
7943 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7944 (build-system glib-or-gtk-build-system)
7945 (native-inputs
7946 `(("gettext" ,gettext-minimal)
7947 ("glib:bin" ,glib "bin")
7948 ("gobject-introspection" ,gobject-introspection)
7949 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7950 ("gtk+:bin" ,gtk+ "bin")
7951 ("pkg-config" ,pkg-config)))
7952 (inputs
7953 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7954 ("librest" ,rest)))
7955 (synopsis "GoVirt Library")
7956 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7957 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7958 (license license:gpl2+)))
7959
8672e5e9
RG
7960(define-public gnome-weather
7961 (package
7962 (name "gnome-weather")
7963 (version "3.34.0")
7964 (source (origin
7965 (method url-fetch)
7966 (uri (string-append "mirror://gnome/sources/" name "/"
7967 (version-major+minor version) "/"
7968 name "-" version ".tar.xz"))
7969 (sha256
7970 (base32
7971 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7972 (build-system meson-build-system)
7973 (native-inputs
7974 `(("gettext" ,gettext-minimal)
7975 ("glib:bin" ,glib "bin")
7976 ("gobject-introspection" ,gobject-introspection)
7977 ("gtk+:bin" ,gtk+ "bin")
7978 ("pkg-config" ,pkg-config)))
7979 (inputs
7980 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7981 ("appstream-glib" ,appstream-glib)
7982 ("geoclue" ,geoclue)
7983 ("gdk-pixbuf" ,gdk-pixbuf)
7984 ("gjs" ,gjs)
7985 ("gnome-desktop" ,gnome-desktop)
7986 ("libgweather" ,libgweather)))
4391fefc 7987 (arguments
2b68ba72
MB
7988 `(#:glib-or-gtk? #t
7989 #:phases
4391fefc
PN
7990 (modify-phases %standard-phases
7991 (add-after 'install 'fix-desktop-file
7992 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7993 ;; See https://issues.guix.gnu.org/issue/39324.
7994 (lambda* (#:key outputs #:allow-other-keys)
7995 (let* ((out (assoc-ref outputs "out"))
7996 (applications (string-append out "/share/applications")))
7997 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
7998 (("Exec=.*") "Exec=gnome-weather\n"))
7999 #t)))
8000 (add-after 'install 'wrap
8001 (lambda* (#:key inputs outputs #:allow-other-keys)
8002 (let ((out (assoc-ref outputs "out"))
8003 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8004 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8005 (wrap-program (string-append out "/bin/gnome-weather")
8006 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8007 #t))))))
8672e5e9
RG
8008 (synopsis "Weather monitoring for GNOME desktop")
8009 (description "GNOME Weather is a small application that allows you to
8010monitor the current weather conditions for your city, or anywhere in the
8011world.")
8012 (home-page "https://wiki.gnome.org/Apps/Weather")
8013 (license license:gpl2+)))
8014
dc050251
SB
8015(define-public gnome
8016 (package
8017 (name "gnome")
8018 (version (package-version gnome-shell))
8019 (source #f)
8020 (build-system trivial-build-system)
e3cfef22 8021 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 8022 (propagated-inputs
8d8c6bff 8023 ;; TODO: Add or remove packages according to:
a8cda7f5 8024 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 8025 `(
8d8c6bff 8026 ;; GNOME-Core-OS-Services
7922b6f7 8027 ("accountsservice" ,accountsservice)
8d8c6bff
RG
8028 ("network-manager" ,network-manager)
8029 ("packagekit" ,packagekit)
8030 ("upower" ,upower)
8031 ;; GNOME-Core-Shell
8032 ("adwaita-icon-theme" ,adwaita-icon-theme)
8033 ("gdm" ,gdm)
8034 ("glib-networking" ,glib-networking)
8035 ("gnome-backgrounds" ,gnome-backgrounds)
8036 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 8037 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
8038 ("gnome-control-center" ,gnome-control-center)
8039 ("gnome-desktop" ,gnome-desktop)
7922b6f7 8040 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 8041 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 8042 ("gnome-keyring" ,gnome-keyring)
7922b6f7 8043 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
8044 ("gnome-session" ,gnome-session)
8045 ("gnome-settings-daemon" ,gnome-settings-daemon)
8046 ("gnome-shell-extensions" ,gnome-shell-extensions)
8047 ("gnome-shell" ,gnome-shell)
8048 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 8049 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 8050 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 8051 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
8052 ("gvfs" ,gvfs)
8053 ("mutter" ,mutter)
8054 ("orca" ,orca)
d36fa50f
RG
8055 ("rygel" ,rygel)
8056 ("sushi" ,sushi)
8d8c6bff
RG
8057 ;; GNOME-Core-Utilities
8058 ("baobab" ,baobab)
8059 ("cheese" ,cheese)
ce784e6c
MB
8060 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8061 ;; only works on x86_64, so exclude it on other architectures.
8062 ,@(if (string-prefix? "x86_64" (%current-system))
8063 `(("eog" ,eog))
8064 '())
8d8c6bff
RG
8065 ("epiphany" ,epiphany)
8066 ("evince" ,evince)
8067 ("file-roller" ,file-roller)
8068 ("gedit" ,gedit)
897897bd 8069 ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
8070 ("gnome-calculator" ,gnome-calculator)
8071 ("gnome-calendar" ,gnome-calendar)
8072 ("gnome-characters" ,gnome-characters)
8073 ("gnome-clocks" ,gnome-clocks)
8074 ("gnome-contacts" ,gnome-contacts)
8075 ("gnome-disk-utility" ,gnome-disk-utility)
8076 ("gnome-font-viewer" ,gnome-font-viewer)
8077 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
8078 ; TODO: ("gnome-music" ,gnome-music)
8079 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
8080 ("gnome-screenshot" ,gnome-screenshot)
8081 ("gnome-system-monitor" ,gnome-system-monitor)
8082 ("gnome-terminal" ,gnome-terminal)
d36fa50f 8083 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
8084 ("nautilus" ,nautilus)
8085 ("simple-scan" ,simple-scan)
8086 ("totem" ,totem)
7922b6f7
RG
8087 ("yelp" ,yelp)
8088 ;; Others
8089 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
8090 ("gnome-online-accounts" ,gnome-online-accounts)
8091
8092 ;; Packages not part of GNOME proper but that are needed for a good
8093 ;; experience. See <https://bugs.gnu.org/39646>.
8094 ;; XXX: Find out exactly which ones are needed and why.
8095 ("font-cantarell" ,font-cantarell)
8096 ("font-dejavu" ,font-dejavu)
8097 ("at-spi2-core" ,at-spi2-core)
8098 ("dbus" ,dbus)
8099 ("dconf" ,dconf)
8100 ("desktop-file-utils" ,desktop-file-utils)
8101 ("gnome-default-applications" ,gnome-default-applications)
8102 ("gnome-themes-standard" ,gnome-themes-standard)
8103 ("gst-plugins-base" ,gst-plugins-base)
8104 ("gst-plugins-good" ,gst-plugins-good)
8105 ("gucharmap" ,gucharmap)
8106 ("pinentry-gnome3" ,pinentry-gnome3)
8107 ("pulseaudio" ,pulseaudio)
8108 ("shared-mime-info" ,shared-mime-info)
8109 ("system-config-printer" ,system-config-printer)
8110 ("xdg-user-dirs" ,xdg-user-dirs)
8111 ("yelp" ,yelp)
8112 ("zenity" ,zenity)))
fe4e698d 8113 (synopsis "The GNU desktop environment")
dc050251
SB
8114 (home-page "https://www.gnome.org/")
8115 (description
fe4e698d
LC
8116 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8117applications for browsing the web, editing text and images, creating
8118documents and diagrams, playing media, scanning, and much more.")
dc050251 8119 (license license:gpl2+)))
4a526711
DT
8120
8121(define-public byzanz
8122 ;; The last stable release of Byzanz was in 2011, but there have been many
8123 ;; useful commits made to the Byzanz repository since then that it would be
8124 ;; silly to use such an old release.
8125 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8126 (package
8127 (name "byzanz")
8128 (version (string-append "0.2-1." (string-take commit 7)))
8129 (source (origin
8130 (method git-fetch)
8131 (uri (git-reference
5f13bf09 8132 (url "https://git.gnome.org/browse/byzanz")
4a526711 8133 (commit commit)))
5a6527e4 8134 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
8135 (sha256
8136 (base32
8137 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8138 (build-system glib-or-gtk-build-system)
8139 (arguments
8140 '(#:phases
8141 (modify-phases %standard-phases
778d6b52 8142 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
8143 (lambda _
8144 ;; The build system cleverly detects that we're not building from
8145 ;; a release tarball and turns on -Werror for GCC.
8146 ;; Unsurprisingly, there is a warning during compilation that
8147 ;; causes the build to fail unnecessarily, so we remove the flag.
8148 (substitute* '("configure.ac")
8149 (("-Werror") ""))
778d6b52 8150 #t)))))
4a526711
DT
8151 (native-inputs
8152 `(("autoconf" ,autoconf)
8153 ("automake" ,automake)
8154 ("gnome-common" ,gnome-common)
8155 ("intltool" ,intltool)
8156 ("libtool" ,libtool)
8157 ("pkg-config" ,pkg-config)
8158 ("which" ,which)))
8159 (inputs
8160 `(("glib" ,glib)
8161 ("gstreamer" ,gstreamer)
8162 ("gst-plugins-base" ,gst-plugins-base)
8163 ("gtk+" ,gtk+)))
8164 (synopsis "Desktop recording program")
8165 (description "Byzanz is a simple desktop recording program with a
8166command-line interface. It can record part or all of an X display for a
8167specified duration and save it as a GIF encoded animated image file.")
8168 (home-page "https://git.gnome.org/browse/byzanz")
8169 (license license:gpl2+))))
3a9a4c51 8170
0ec171ec
MS
8171(define-public gsound
8172 (package
8173 (name "gsound")
8174 (version "1.0.2")
8175 (source (origin
8176 (method url-fetch)
8177 (uri (string-append "mirror://gnome/sources/" name "/"
8178 (version-major+minor version) "/"
8179 name "-" version ".tar.xz"))
8180 (sha256
8181 (base32
8182 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8183 (build-system glib-or-gtk-build-system)
8184 (native-inputs
8185 `(("pkg-config" ,pkg-config)
8186 ("gobject-introspection" ,gobject-introspection)
8187 ("vala" ,vala)))
8188 (inputs
8189 `(("glib" ,glib)
8190 ("libcanberra" ,libcanberra)))
8191 (home-page "https://wiki.gnome.org/Projects/GSound")
8192 (synopsis "GObject wrapper for libcanberra")
8193 (description
8194 "GSound is a small library for playing system sounds. It's designed to be
8195used via GObject Introspection, and is a thin wrapper around the libcanberra C
8196library.")
8197 (license license:lgpl2.1+)))
8198
3a9a4c51
RS
8199(define-public libzapojit
8200 (package
8201 (name "libzapojit")
8202 (version "0.0.3")
8203 (source (origin
8204 (method url-fetch)
8205 (uri (string-append "mirror://gnome/sources/" name "/"
8206 (version-major+minor version) "/"
8207 name "-" version ".tar.xz"))
8208 (sha256
8209 (base32
8210 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8211 (build-system gnu-build-system)
8212 (native-inputs
8213 `(("gobject-introspection" ,gobject-introspection)
8214 ("intltool" ,intltool)
8215 ("pkg-config" ,pkg-config)))
8216 (inputs
14c297fd 8217 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8218 ("json-glib" ,json-glib)
8219 ("rest" ,rest)))
8220 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8221 (synopsis "Library for accessing SkyDrive and Hotmail")
8222 (description
8223 "Libzapojit is a GLib-based library for accessing online service APIs of
8224Microsoft SkyDrive and Hotmail, using their REST protocols.")
8225 (license license:lgpl2.1+)))
9365ee1c 8226
60e2a9ae
MS
8227(define-public gnome-clocks
8228 (package
8229 (name "gnome-clocks")
feee5ff5 8230 (version "3.34.0")
60e2a9ae
MS
8231 (source (origin
8232 (method url-fetch)
8233 (uri (string-append "mirror://gnome/sources/" name "/"
8234 (version-major+minor version) "/"
8235 name "-" version ".tar.xz"))
8236 (sha256
8237 (base32
feee5ff5 8238 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8239 (build-system meson-build-system)
8240 (arguments
feee5ff5
KK
8241 '(#:glib-or-gtk? #t
8242 #:phases
8243 (modify-phases %standard-phases
8244 (add-after 'unpack 'skip-gtk-update-icon-cache
8245 ;; Don't create 'icon-theme.cache'.
8246 (lambda _
8247 (substitute* "build-aux/post-install.py"
8248 (("gtk-update-icon-cache") "true"))
8249 #t)))))
60e2a9ae
MS
8250 (native-inputs
8251 `(("vala" ,vala)
8252 ("pkg-config" ,pkg-config)
8253 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8254 ("desktop-file-utils" ,desktop-file-utils)
8255 ("gettext" ,gettext-minimal)
8256 ("itstool" ,itstool)))
8257 (inputs
8258 `(("glib" ,glib)
8259 ("gtk+" ,gtk+)
8260 ("gsound" ,gsound)
8261 ("geoclue" ,geoclue)
8262 ("geocode-glib" ,geocode-glib)
8263 ("libgweather" ,libgweather)
8264 ("gnome-desktop" ,gnome-desktop)))
8265 (home-page "https://wiki.gnome.org/Apps/Clocks")
8266 (synopsis "GNOME's clock application")
8267 (description
8268 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8269desktop. It supports world clock, stop watch, alarms, and count down timer.")
8270 (license license:gpl3+)))
8271
3c474897
KY
8272(define-public gnome-calendar
8273 (package
8274 (name "gnome-calendar")
27dd1d76 8275 (version "3.34.2")
3c474897
KY
8276 (source (origin
8277 (method url-fetch)
8278 (uri (string-append "mirror://gnome/sources/" name "/"
8279 (version-major+minor version) "/"
8280 name "-" version ".tar.xz"))
8281 (sha256
8282 (base32
27dd1d76 8283 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8284 (build-system meson-build-system)
8285 (arguments
8286 '(#:glib-or-gtk? #t
8287 ;; gnome-calendar has to be installed before the tests can be run
8288 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8289 #:tests? #f
8290 #:phases
8291 (modify-phases %standard-phases
8292 (add-after 'unpack 'skip-gtk-update-icon-cache
8293 ;; Don't create 'icon-theme.cache'.
8294 (lambda _
8295 (substitute* "build-aux/meson/meson_post_install.py"
8296 (("gtk-update-icon-cache") "true"))
8297 #t)))))
3c474897 8298 (native-inputs
a49d3e37
MS
8299 `(("gettext" ,gettext-minimal)
8300 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8301 ("pkg-config" ,pkg-config)))
8302 (inputs
27cb52a2 8303 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8304 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8305 ("libdazzle" ,libdazzle)
b63c06f1 8306 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8307 ("libgweather" ,libgweather)
8308 ("geoclue" ,geoclue)))
27cb52a2
RG
8309 (propagated-inputs
8310 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8311 (home-page "https://wiki.gnome.org/Apps/Calendar")
8312 (synopsis "GNOME's calendar application")
8313 (description
8314 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8315desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8316 (license license:gpl3+)))
8317
57b14665
MS
8318(define-public gnome-todo
8319 (package
8320 (name "gnome-todo")
9f3c6c88 8321 (version "3.28.1")
57b14665
MS
8322 (source (origin
8323 (method url-fetch)
8324 (uri (string-append "mirror://gnome/sources/" name "/"
8325 (version-major+minor version) "/"
8326 name "-" version ".tar.xz"))
8327 (sha256
8328 (base32
b17b2945
DM
8329 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8330 (patches
8331 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8332 (build-system meson-build-system)
8333 (arguments
8334 '(#:glib-or-gtk? #t
8335 #:phases (modify-phases %standard-phases
8336 (add-after
8337 'install 'wrap-gnome-todo
8338 (lambda* (#:key inputs outputs #:allow-other-keys)
8339 (let ((out (assoc-ref outputs "out"))
8340 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8341 (python-path (getenv "PYTHONPATH")))
8342 (wrap-program (string-append out "/bin/gnome-todo")
8343 ;; XXX: gi plugins are broken.
8344 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8345 ;; For plugins.
8346 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8347 `("PYTHONPATH" ":" prefix (,python-path))))
8348 #t)))))
8349 (native-inputs
8350 `(("gettext" ,gettext-minimal)
8351 ("gobject-introspection" ,gobject-introspection)
8352 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8353 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8354 ("pkg-config" ,pkg-config)))
8355 (inputs
8356 `(("rest" ,rest) ; For Todoist plugin
8357 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 8358 ("libedataserverui" ,evolution-data-server)
57b14665
MS
8359 ("libical" ,libical)
8360 ("libpeas" ,libpeas)
8361 ("python-pygobject" ,python-pygobject)
8362 ("evolution-data-server" ,evolution-data-server)
14c297fd 8363 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
8364 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8365 (home-page "https://wiki.gnome.org/Apps/Todo")
8366 (synopsis "GNOME's ToDo Application")
8367 (description
8368 "GNOME To Do is a simplistic personal task manager designed to perfectly
8369fit the GNOME desktop.")
8370 (license license:gpl3+)))
8371
ab179eaf
SB
8372(define-public gnome-dictionary
8373 (package
8374 (name "gnome-dictionary")
cf81ddef 8375 (version "3.26.1")
ab179eaf
SB
8376 (source (origin
8377 (method url-fetch)
8378 (uri (string-append "mirror://gnome/sources/" name "/"
8379 (version-major+minor version) "/"
8380 name "-" version ".tar.xz"))
8381 (sha256
8382 (base32
cf81ddef
LC
8383 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8384 (build-system meson-build-system)
2776b5d5
MB
8385 (arguments '(#:glib-or-gtk? #t
8386 #:phases (modify-phases %standard-phases
8387 (add-after 'unpack 'patch-install-script
8388 (lambda _
8389 ;; This script attempts to compile glib schemas
8390 ;; and create an empty MIME database. We do
8391 ;; that elsewhere, so prevent it from running.
8392 (substitute* "build-aux/post-install.sh"
8393 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8394 #t)))))
ab179eaf
SB
8395 (native-inputs
8396 `(("glib:bin" ,glib "bin")
8397 ("gobject-introspection" ,gobject-introspection)
8398 ("intltool" ,intltool)
8399 ("itstool" ,itstool)
8400 ("pkg-config" ,pkg-config)
8401 ("xmllint" ,libxml2)))
8402 (inputs
8403 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8404 ("gtk+" ,gtk+)))
8405 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8406 (synopsis "Look up words in dictionary sources")
8407 (description
8408 "GNOME Dictionary can look for the definition or translation of a word in
8409existing databases over the internet.")
8410 (license license:gpl3+)))
8411
d13f3a03 8412(define-public gnome-tweaks
9365ee1c 8413 (package
d13f3a03 8414 (name "gnome-tweaks")
4add1bae 8415 (version "3.34.0")
9365ee1c
JN
8416 (source (origin
8417 (method url-fetch)
d13f3a03 8418 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 8419 (version-major+minor version) "/"
d13f3a03
RW
8420 "gnome-tweaks-" version ".tar.xz"))
8421 (patches
8422 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
8423 (sha256
8424 (base32
4add1bae 8425 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 8426 (build-system meson-build-system)
9365ee1c 8427 (arguments
d13f3a03
RW
8428 `(#:glib-or-gtk? #t
8429 #:configure-flags '("-Dlocalstatedir=/tmp"
8430 "-Dsysconfdir=/tmp")
9365ee1c 8431 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
8432 ,@%meson-build-system-modules)
8433 #:phases
8434 (modify-phases %standard-phases
4add1bae
KK
8435 (add-after 'unpack 'skip-gtk-update-icon-cache
8436 ;; Don't create 'icon-theme.cache'.
8437 (lambda _
8438 (substitute* "meson-postinstall.py"
8439 (("gtk-update-icon-cache") "true"))
8440 #t))
d13f3a03
RW
8441 (add-after 'install 'wrap
8442 (@@ (guix build python-build-system) wrap))
8443 (add-after 'wrap 'wrap-gi-typelib
8444 (lambda* (#:key inputs outputs #:allow-other-keys)
8445 (let ((out (assoc-ref outputs "out"))
8446 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8447 (wrap-program (string-append out "/bin/gnome-tweaks")
8448 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8449 #t)))))
9365ee1c 8450 (native-inputs
4add1bae 8451 `(("intltool" ,intltool)
9365ee1c
JN
8452 ("pkg-config" ,pkg-config)))
8453 (inputs
c7fc414e
RH
8454 `(("gnome-desktop" ,gnome-desktop)
8455 ("gtk+" ,gtk+)
9365ee1c
JN
8456 ("gobject-introspection" ,gobject-introspection)
8457 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 8458 ("libhandy" ,libhandy)
c7fc414e
RH
8459 ("libnotify" ,libnotify)
8460 ("libsoup" ,libsoup)
8461 ("nautilus" ,nautilus)
8462 ("python" ,python)
8463 ("python-pygobject" ,python-pygobject)))
9365ee1c 8464 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 8465 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 8466 (description
d13f3a03 8467 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
8468GNOME 3. This includes things like the fonts used in user interface elements,
8469alternative user interface themes, changes in window management behavior,
8470GNOME Shell appearance and extension, etc.")
8471 (license license:gpl3+)))
813f814a 8472
32ac717c
DT
8473(define-public gnome-shell-extensions
8474 (package
8475 (name "gnome-shell-extensions")
c7305466 8476 (version "3.34.2")
32ac717c
DT
8477 (source (origin
8478 (method url-fetch)
8479 (uri (string-append "mirror://gnome/sources/" name "/"
8480 (version-major+minor version) "/"
8481 name "-" version ".tar.xz"))
8482 (sha256
8483 (base32
c7305466 8484 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 8485 (build-system meson-build-system)
32ac717c 8486 (arguments
100f625b 8487 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 8488 (native-inputs
c9ea8873
LP
8489 `(("glib:bin" ,glib "bin")
8490 ("intltool" ,intltool)
32ac717c
DT
8491 ("pkg-config" ,pkg-config)))
8492 (propagated-inputs
c9ea8873 8493 `(("glib" ,glib)))
32ac717c
DT
8494 (synopsis "Extensions for GNOME Shell")
8495 (description "GNOME Shell extensions modify and extend GNOME Shell
8496functionality and behavior.")
8497 (home-page "https://extensions.gnome.org/")
8498 (license license:gpl3+)))
8499
813f814a
DT
8500(define-public arc-theme
8501 (package
8502 (name "arc-theme")
37781323 8503 (version "20190917")
813f814a 8504 (source (origin
a18f8eaf
BH
8505 (method git-fetch)
8506 (uri (git-reference
b0e7b699 8507 (url "https://github.com/NicoHood/arc-theme")
a18f8eaf
BH
8508 (commit version)))
8509 (file-name (git-file-name name version))
813f814a
DT
8510 (sha256
8511 (base32
37781323 8512 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 8513 (build-system gnu-build-system)
d88884fa
EF
8514 (arguments
8515 '(#:phases
8516 (modify-phases %standard-phases
8517 ;; autogen.sh calls configure at the end of the script.
8518 (replace 'bootstrap
4690e3a4
MC
8519 (lambda _ (invoke "autoreconf" "-vfi")))
8520 (add-before 'build 'set-home ;placate Inkscape
8521 (lambda _
8522 (setenv "HOME" (getcwd))
8523 #t)))))
813f814a
DT
8524 (native-inputs
8525 `(("autoconf" ,autoconf)
8526 ("automake" ,automake)
a18f8eaf
BH
8527 ("glib" ,glib "bin") ; for glib-compile-resources
8528 ("gnome-shell" ,gnome-shell)
8529 ("gtk+" ,gtk+)
8530 ("inkscape" ,inkscape)
8531 ("optipng" ,optipng)
8532 ("pkg-config" ,pkg-config)
bed24ecf 8533 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
8534 (synopsis "A flat GTK+ theme with transparent elements")
8535 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
85362, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8537like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8538 (home-page "https://github.com/horst3180/arc-theme")
8539 ;; No "or later" language found.
a18f8eaf 8540 (license license:gpl3+)))
9987c57c 8541
d935e6a1 8542(define-public faba-icon-theme
9987c57c 8543 (package
d935e6a1 8544 (name "faba-icon-theme")
2eee7ee3 8545 (version "4.3")
d935e6a1
BT
8546 (source
8547 (origin
757e4027
TGR
8548 (method git-fetch)
8549 (uri (git-reference
b0e7b699 8550 (url "https://github.com/snwh/faba-icon-theme")
757e4027
TGR
8551 (commit (string-append "v" version))))
8552 (file-name (git-file-name name version))
d935e6a1 8553 (sha256
757e4027 8554 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 8555 (build-system meson-build-system)
9987c57c 8556 (arguments
82da291a 8557 `(#:phases
9987c57c 8558 (modify-phases %standard-phases
82da291a 8559 (add-before 'configure 'disable-post-install
9987c57c 8560 (lambda _
82da291a
JL
8561 (substitute* "meson.build"
8562 (("meson.add_install_script.*") "")))))))
9987c57c
DT
8563 (native-inputs
8564 `(("autoconf" ,autoconf)
8565 ("automake" ,automake)))
d935e6a1
BT
8566 (synopsis "Faba icon theme")
8567 (description
8568 "Faba is a minimal icon set used as a basis for other themes such as
8569Moka")
8570 (home-page "https://snwh.org/moka")
8571 (license (list license:lgpl3+
8572 license:cc-by-sa4.0))))
8573
9987c57c
DT
8574(define-public moka-icon-theme
8575 (package
8b0e4177 8576 (inherit faba-icon-theme)
9987c57c 8577 (name "moka-icon-theme")
105a3625 8578 (version "5.4.0")
8c3f2170
TGR
8579 (source
8580 (origin
8581 (method git-fetch)
8582 (uri (git-reference
b0e7b699 8583 (url "https://github.com/snwh/moka-icon-theme")
8c3f2170
TGR
8584 (commit (string-append "v" version))))
8585 (file-name (git-file-name name version))
8586 (sha256
8587 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
8588 (propagated-inputs
8589 ;; Moka is based on Faba by using it as a fallback icon set instead of
8590 ;; bundling it, so we need to add it as a propagated input.
8591 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
8592 (synopsis "Moka icon theme")
8593 (description "Moka is a stylized desktop icon set, designed to be clear,
8594simple and consistent.")
fedde43b
BT
8595 (license (list license:gpl3+
8596 license:cc-by-sa4.0))))
6fd8f8d6
DT
8597
8598(define-public arc-icon-theme
8599 (package
8600 (name "arc-icon-theme")
c4180240 8601 (version "20161122")
bbf66cbf
TGR
8602 (source
8603 (origin
8604 (method git-fetch)
8605 (uri (git-reference
b0e7b699 8606 (url "https://github.com/horst3180/arc-icon-theme")
bbf66cbf
TGR
8607 (commit version)))
8608 (file-name (git-file-name name version))
8609 (sha256
8610 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 8611 (build-system gnu-build-system)
9e1ede95
JL
8612 (arguments
8613 `(#:phases
8614 (modify-phases %standard-phases
8615 (add-after 'unpack 'disable-configure-during-bootstrap
8616 (lambda _
8617 (substitute* "autogen.sh"
8618 (("^\"\\$srcdir/configure\".*") ""))
8619 #t)))))
6fd8f8d6
DT
8620 (native-inputs
8621 `(("autoconf" ,autoconf)
8622 ("automake" ,automake)))
8623 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8624 (propagated-inputs
8625 `(("moka-icon-theme" ,moka-icon-theme)))
8626 (synopsis "Arc icon theme")
8627 (description "The Arc icon theme provides a set of icons matching the
8628style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8629the Moka icon theme.")
8630 (home-page "https://github.com/horst3180/arc-icon-theme")
8631 (license license:gpl3+)))
6064a4e8
LF
8632
8633(define-public folks
8634 (package
8635 (name "folks")
fd11f6f3 8636 (version "0.13.1")
6064a4e8
LF
8637 (source (origin
8638 (method url-fetch)
8639 (uri (string-append
e5f4796e 8640 "mirror://gnome/sources/folks/"
6064a4e8 8641 (version-major+minor version) "/"
e5f4796e 8642 "folks-" version ".tar.xz"))
6064a4e8
LF
8643 (sha256
8644 (base32
fd11f6f3
KK
8645 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8646 (build-system meson-build-system)
8647 (arguments
8648 '(#:phases
8649 (modify-phases %standard-phases
8650 (add-after 'unpack 'skip-gtk-update-icon-cache
8651 ;; Don't create 'icon-theme.cache'.
8652 (lambda _
8653 (substitute* "meson_post_install.py"
8654 (("gtk-update-icon-cache") "true"))
8655 #t)))))
6064a4e8
LF
8656 (inputs
8657 `(("bdb" ,bdb)
8658 ("dbus-glib" ,dbus-glib)
8659 ("evolution-data-server" ,evolution-data-server)
8660 ("glib" ,glib)
8661 ("libgee" ,libgee)
fd11f6f3 8662 ("readline" ,readline)
6064a4e8
LF
8663 ("telepathy-glib" ,telepathy-glib)))
8664 (native-inputs
fd11f6f3
KK
8665 `(("glib:bin" ,glib "bin")
8666 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
8667 ("intltool" ,intltool)
8668 ("pkg-config" ,pkg-config)
8669 ("vala" ,vala)))
8670 (synopsis "Library to aggregate data about people")
8671 (description "Libfolks is a library that aggregates information about people
8672from multiple sources (e.g., Telepathy connection managers for IM contacts,
8673Evolution Data Server for local contacts, libsocialweb for web service contacts,
8674etc.) to create metacontacts. It's written in Vala, which generates C code when
8675compiled.")
8676 (home-page "https://wiki.gnome.org/Projects/Folks")
8677 (license license:lgpl2.1+)))
01ea778f
LF
8678
8679(define-public gfbgraph
8680 (package
8681 (name "gfbgraph")
556e33c8 8682 (version "0.2.4")
01ea778f
LF
8683 (source (origin
8684 (method url-fetch)
8685 (uri (string-append
237d4cf7 8686 "mirror://gnome/sources/gfbgraph/"
01ea778f 8687 (version-major+minor version) "/"
237d4cf7 8688 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
8689 (sha256
8690 (base32
556e33c8 8691 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
01ea778f
LF
8692 (build-system glib-or-gtk-build-system)
8693 (arguments
492ad09f
TGR
8694 `(#:tests? #f ; tests appear to require the network
8695 #:configure-flags '("--disable-static"
8696 "--enable-gtk-doc"
01ea778f
LF
8697 "--enable-introspection")))
8698 (native-inputs
492ad09f
TGR
8699 `(("gobject-introspection" ,gobject-introspection)
8700 ("gtk-doc" ,gtk-doc)
556e33c8
TGR
8701 ("pkg-config" ,pkg-config)
8702
8703 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
8704 ("autoconf" ,autoconf)
8705 ("automake" ,automake)
8706 ("libtool" ,libtool)
8707 ("which" ,which)))
01ea778f
LF
8708 (inputs
8709 `(("json-glib" ,json-glib)
14c297fd 8710 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
8711 ("rest" ,rest)))
8712 (synopsis "GLib/GObject wrapper for the Facebook API")
8713 (description "This library allows you to use the Facebook API from
8714GLib/GObject code.")
8715 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8716 (license license:lgpl2.1+)))
3920868c 8717
8718(define-public libgnomekbd
8719 (package
8720 (name "libgnomekbd")
70f2b0f9 8721 (version "3.26.1")
3920868c 8722 (source (origin
8723 (method url-fetch)
d47fa82d 8724 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 8725 (version-major+minor version) "/"
d47fa82d 8726 "libgnomekbd-" version ".tar.xz"))
3920868c 8727 (sha256
8728 (base32
70f2b0f9 8729 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 8730 (build-system gnu-build-system)
8731 (native-inputs
8732 `(("pkg-config" ,pkg-config)
8733 ("glib" ,glib "bin")
8734 ("intltool" ,intltool)))
8735 (propagated-inputs
8736 ;; Referred to in .h files and .pc.
8737 `(("glib" ,glib)
8738 ("gtk+" ,gtk+)
8739 ("libxklavier" ,libxklavier)))
8740 (home-page "https://www.gnome.org")
8741 (synopsis "GNOME keyboard configuration library")
8742 (description
8743 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8744environment, which can notably display keyboard layouts.")
8745 (license license:lgpl2.0+)))
85327d0d 8746
8747;;; This package is no longer maintained:
8748;;; https://wiki.gnome.org/Attic/LibUnique
8749;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8750;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8751(define-public libunique
8752 (package
8753 (name "libunique")
8754 (version "3.0.2")
8755 (source (origin
8756 (method url-fetch)
8757 (uri (string-append "mirror://gnome/sources/" name "/"
8758 (version-major+minor version) "/"
8759 name "-" version ".tar.xz"))
8760 (sha256
8761 (base32
8762 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8763 (build-system glib-or-gtk-build-system)
8764 (arguments
8765 `(#:configure-flags '("--disable-static"
8766 "--disable-dbus" ; use gdbus
8767 "--enable-introspection")))
8768 (native-inputs
8769 `(("pkg-config" ,pkg-config)
8770 ("gobject-introspection" ,gobject-introspection)
8771 ("glib:bin" ,glib "bin")
8772 ("gtk-doc" ,gtk-doc)))
8773 (propagated-inputs
8774 ;; Referred to in .h files and .pc.
8775 `(("gtk+" ,gtk+)))
8776 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8777 (synopsis "Library for writing single instance applications")
8778 (description
8779 "Libunique is a library for writing single instance applications. If you
8780launch a single instance application twice, the second instance will either just
8781quit or will send a message to the running instance. Libunique makes it easy to
8782write this kind of application, by providing a base class, taking care of all
8783the IPC machinery needed to send messages to a running instance, and also
8784handling the startup notification side.")
8785 (license license:lgpl2.1+)))
54021cd8
RS
8786
8787(define-public gnome-calculator
8788 (package
8789 (name "gnome-calculator")
4cb09502 8790 (version "3.34.1")
54021cd8
RS
8791 (source
8792 (origin
8793 (method url-fetch)
8794 (uri (string-append "mirror://gnome/sources/" name "/"
8795 (version-major+minor version) "/"
8796 name "-" version ".tar.xz"))
8797 (sha256
8798 (base32
4cb09502 8799 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
8800 (build-system meson-build-system)
8801 (arguments '(#:glib-or-gtk? #t))
54021cd8 8802 (native-inputs
4cb09502
MB
8803 `(("gettext" ,gettext-minimal)
8804 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8805 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 8806 ("itstool" ,itstool)
2d475910 8807 ("vala" ,vala)
54021cd8
RS
8808 ("pkg-config" ,pkg-config)))
8809 (inputs
112e9083 8810 `(("glib" ,glib)
07ace641 8811 ("gtksourceview" ,gtksourceview)
4cb09502 8812 ("libgee" ,libgee)
54021cd8 8813 ("libsoup" ,libsoup)
112e9083 8814 ("libxml2" ,libxml2)
2c2da7ec 8815 ("mpc" ,mpc)
54021cd8
RS
8816 ("mpfr" ,mpfr)))
8817 (home-page "https://wiki.gnome.org/Apps/Calculator")
8818 (synopsis "Desktop calculator")
8819 (description
8820 "Calculator is an application that solves mathematical equations and
8821is suitable as a default application in a Desktop environment.")
8822 (license license:gpl3)))
0bd69759
RS
8823
8824(define-public xpad
8825 (package
8826 (name "xpad")
c85626bb 8827 (version "5.1.0")
0bd69759
RS
8828 (source
8829 (origin
8830 (method url-fetch)
08fda9c6
R
8831 (uri (string-append "https://launchpad.net/xpad/trunk/"
8832 version "/+download/"
0bd69759
RS
8833 name "-" version ".tar.bz2"))
8834 (sha256
8835 (base32
c85626bb 8836 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8837 (build-system gnu-build-system)
8838 (native-inputs
08fda9c6
R
8839 `(("autoconf" ,autoconf)
8840 ("automake" ,automake)
8841 ("gtk+:bin" ,gtk+ "bin")
8842 ("intltool" ,intltool)
0bd69759
RS
8843 ("pkg-config" ,pkg-config)))
8844 (inputs
c72647fb 8845 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8846 ("libsm" ,libsm)))
8847 (home-page "https://wiki.gnome.org/Apps/Xpad")
8848 (synopsis "Virtual sticky note")
8849 (description
8850 "Xpad is a sticky note that strives to be simple, fault tolerant,
8851and customizable. Xpad consists of independent pad windows, each is
8852basically a text box in which notes can be written.")
8853 (license license:gpl3+)))
3ad7dce1
RS
8854
8855(define-public gucharmap
c60063ea
RW
8856 (let ((unicode-files
8857 '(("Blocks.txt"
1f8b5515 8858 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8859 ("DerivedAge.txt"
1f8b5515 8860 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8861 ("NamesList.txt"
1f8b5515 8862 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8863 ("Scripts.txt"
1f8b5515 8864 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8865 ("UnicodeData.txt"
1f8b5515 8866 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8867 ("Unihan.zip"
1f8b5515 8868 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8869 (package
8870 (name "gucharmap")
1f8b5515 8871 (version "12.0.1")
c60063ea
RW
8872 (source
8873 (origin
8874 (method url-fetch)
8875 (uri (string-append "mirror://gnome/sources/" name "/"
8876 (version-major+minor version) "/"
8877 name "-" version ".tar.xz"))
8878 (sha256
8879 (base32
1f8b5515 8880 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8881 (build-system glib-or-gtk-build-system)
8882 (arguments
8883 `(#:modules ((ice-9 match)
8884 (guix build glib-or-gtk-build-system)
8885 (guix build utils))
8886 #:configure-flags
8887 (list "--with-unicode-data=../unicode-data")
8888 #:phases
8889 (modify-phases %standard-phases
8890 (add-after 'unpack 'prepare-unicode-data
8891 (lambda* (#:key inputs #:allow-other-keys)
8892 (mkdir-p "../unicode-data")
8893 (with-directory-excursion "../unicode-data"
8894 (for-each (match-lambda
8895 ((file _)
8896 (install-file (assoc-ref inputs file) ".")))
8897 ',unicode-files))
8898 #t)))))
8899 (native-inputs
8900 `(("desktop-file-utils" ,desktop-file-utils)
8901 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8902 ("gobject-introspection" ,gobject-introspection)
8903 ("intltool" ,intltool)
8904 ("itstool" ,itstool)
8905 ("pkg-config" ,pkg-config)
8906 ,@(map (match-lambda
8907 ((file hash)
8908 `(,file
8909 ,(origin
8910 (method url-fetch)
8911 (uri (string-append
1f8b5515 8912 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8913 file))
8914 (sha256 (base32 hash))))))
8915 unicode-files)
8916 ("unzip" ,unzip)))
8917 (inputs
8918 `(("gtk+" ,gtk+)
8919 ("xmllint" ,libxml2)))
8920 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8921 (synopsis "Unicode character picker and font browser")
8922 (description
8923 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8924characters and categories for the installed fonts, and to examine their
8925detailed properties. It is an easy way to find the character you might
8926only know by its Unicode name or code point.")
c60063ea 8927 (license license:gpl3+))))
04ce840a
RS
8928
8929(define-public bluefish
8930 (package
8931 (name "bluefish")
290fe81d 8932 (version "2.2.11")
04ce840a
RS
8933 (source
8934 (origin
8935 (method url-fetch)
8936 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 8937 "bluefish-" version ".tar.gz"))
04ce840a 8938 (sha256
290fe81d 8939 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
8940 (build-system gnu-build-system)
8941 (native-inputs
8942 `(("desktop-file-utils" ,desktop-file-utils)
8943 ("intltool" ,intltool)
8944 ("pkg-config" ,pkg-config)))
8945 (inputs
8946 `(("enchant" ,enchant)
8947 ("gtk+" ,gtk+)
290fe81d 8948 ("python" ,python-wrapper)
04ce840a
RS
8949 ("xmllint" ,libxml2)
8950 ("gucharmap" ,gucharmap)))
8951 (home-page "http://bluefish.openoffice.nl")
8952 (synopsis "Web development studio")
8953 (description
8954 "Bluefish is an editor targeted towards programmers and web developers,
8955with many options to write web sites, scripts and other code.
8956Bluefish supports many programming and markup languages.")
8957 (license license:gpl3+)))
1f6a73ee
RS
8958
8959(define-public gnome-system-monitor
8960 (package
8961 (name "gnome-system-monitor")
083cffaf 8962 (version "3.32.1")
1f6a73ee
RS
8963 (source
8964 (origin
8965 (method url-fetch)
8966 (uri (string-append "mirror://gnome/sources/" name "/"
8967 (version-major+minor version) "/"
8968 name "-" version ".tar.xz"))
8969 (sha256
8970 (base32
083cffaf 8971 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8972 (build-system meson-build-system)
8973 (arguments
8974 '(#:glib-or-gtk? #t
8975 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8976 (native-inputs
8977 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8978 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8979 ("intltool" ,intltool)
8980 ("itstool" ,itstool)
8981 ("libgtop" ,libgtop)
4985d9aa 8982 ("polkit" ,polkit)
1f6a73ee
RS
8983 ("pkg-config" ,pkg-config)))
8984 (inputs
8985 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8986 ("gtk+" ,gtk+)
8987 ("gtkmm" ,gtkmm)
8988 ("librsvg" ,librsvg)
4985d9aa
RW
8989 ("libxml2" ,libxml2)
8990 ("libwnck" ,libwnck)))
1f6a73ee
RS
8991 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8992 (synopsis "Process viewer and system resource monitor for GNOME")
8993 (description
8994 "GNOME System Monitor is a GNOME process viewer and system monitor with
8995an attractive, easy-to-use interface. It has features, such as a tree view
8996for process dependencies, icons for processes, the ability to hide processes,
8997graphical time histories of CPU/memory/swap usage and the ability to
8998kill/reinice processes.")
8999 (license license:gpl2+)))
3e00ac47
SB
9000
9001(define-public python-pyatspi
9002 (package
9003 (name "python-pyatspi")
4f937a32 9004 (version "2.34.0")
3e00ac47
SB
9005 (source (origin
9006 (method url-fetch)
9007 (uri (string-append
9008 "mirror://gnome/sources/pyatspi/"
9009 (version-major+minor version)
9010 "/pyatspi-" version ".tar.xz"))
9011 (sha256
9012 (base32
4f937a32 9013 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 9014 (build-system gnu-build-system)
b95af3f6
JL
9015 (arguments
9016 `(#:phases
9017 (modify-phases %standard-phases
9018 (add-before 'build 'fix-atk-load
9019 (lambda _
9020 (substitute* "pyatspi/__init__.py"
9021 (("from gi.repository import Atspi")
9022 "gi.require_version('Gtk', '3.0')
9023from gi.repository import Gtk
9024from gi.repository import Atspi"))
9025 #t)))))
3e00ac47
SB
9026 (native-inputs
9027 `(("pkg-config" ,pkg-config)))
9028 (inputs
06fe35cf
CB
9029 `(("python" ,python)))
9030 (propagated-inputs
9031 `(("python-pygobject" ,python-pygobject)))
3e00ac47
SB
9032 (synopsis "Python client bindings for D-Bus AT-SPI")
9033 (home-page "https://wiki.linuxfoundation.org/accessibility\
9034/atk/at-spi/at-spi_on_d-bus")
9035 (description
9036 "This package includes a python client library for the AT-SPI D-Bus
9037accessibility infrastructure.")
9038 (license license:lgpl2.0)
9039 (properties '((upstream-name . "pyatspi")))))
53201c0d 9040
5d31933e
CB
9041(define-public python2-pyatspi
9042 (package
9043 (inherit python-pyatspi)
9044 (name "python2-pyatspi")
9045 (inputs
06fe35cf
CB
9046 `(("python" ,python-2)))
9047 (propagated-inputs
9048 `(("python-pygobject" ,python2-pygobject)))))
5d31933e 9049
53201c0d
SB
9050(define-public orca
9051 (package
9052 (name "orca")
30e76da1 9053 (version "3.34.1")
53201c0d
SB
9054 (source (origin
9055 (method url-fetch)
9056 (uri (string-append
9057 "mirror://gnome/sources/" name "/"
9058 (version-major+minor version) "/"
9059 name "-" version ".tar.xz"))
9060 (sha256
9061 (base32
30e76da1 9062 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
9063 (build-system glib-or-gtk-build-system)
9064 (arguments
9065 '(#:phases
9066 (modify-phases %standard-phases
9067 (add-before 'configure 'qualify-xkbcomp
9068 (lambda* (#:key inputs #:allow-other-keys)
9069 (let ((xkbcomp (string-append
9070 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9071 (substitute* "src/orca/orca.py"
9072 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9073 #t))
9074 (add-after 'install 'wrap-orca
9075 (lambda* (#:key outputs #:allow-other-keys)
9076 (let* ((out (assoc-ref outputs "out"))
9077 (prog (string-append out "/bin/orca")))
9078 (wrap-program prog
9079 `("GI_TYPELIB_PATH" ":" prefix
9080 (,(getenv "GI_TYPELIB_PATH")))
9081 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9082 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9083 `("PYTHONPATH" ":" prefix
9084 (,(getenv "PYTHONPATH")))))
9085 #t)))))
9086 (native-inputs
9087 `(("intltool" ,intltool)
9088 ("itstool" ,itstool)
9089 ("pkg-config" ,pkg-config)
9090 ("xmllint" ,libxml2)))
9091 (inputs
9092 `(("at-spi2-atk" ,at-spi2-atk)
9093 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9094 ("gstreamer" ,gstreamer)
9095 ("gst-plugins-base" ,gst-plugins-base)
9096 ("gst-plugins-good" ,gst-plugins-good)
9097 ("gtk+" ,gtk+)
9098 ("python" ,python)
9099 ("python-pygobject" ,python-pygobject)
9100 ("python-pyatspi" ,python-pyatspi)
9101 ("python-speechd" ,speech-dispatcher)
9102 ("xkbcomp" ,xkbcomp)))
9103 (synopsis
9104 "Screen reader for individuals who are blind or visually impaired")
9105 (home-page "https://wiki.gnome.org/Projects/Orca")
9106 (description
9107 "Orca is a screen reader that provides access to the graphical desktop
9108via speech and refreshable braille. Orca works with applications and toolkits
9109that support the Assistive Technology Service Provider Interface (AT-SPI).")
9110 (license license:lgpl2.1+)))
411ba511
LC
9111
9112(define-public gspell
9113 (package
9114 (name "gspell")
7a6bbe9b 9115 (version "1.8.2")
411ba511
LC
9116 (source (origin
9117 (method url-fetch)
9118 (uri (string-append "mirror://gnome/sources/" name "/"
9119 (version-major+minor version) "/"
9120 name "-" version ".tar.xz"))
9121 (sha256
9122 (base32
7a6bbe9b 9123 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
9124 (patches (search-patches "gspell-dash-test.patch"))))
9125 (build-system glib-or-gtk-build-system)
9126 (arguments
d0f50164 9127 '(#:configure-flags (list "--enable-vala")
9128 #:phases
411ba511
LC
9129 (modify-phases %standard-phases
9130 (add-before 'check 'pre-check
9131 (lambda* (#:key inputs #:allow-other-keys)
9132 ;; Tests require a running X server.
9133 (system "Xvfb :1 &")
9134 (setenv "DISPLAY" ":1")
9135
9136 ;; For the missing /etc/machine-id.
9137 (setenv "DBUS_FATAL_WARNINGS" "0")
9138
9139 ;; Allow Enchant and its Aspell backend to find the en_US
9140 ;; dictionary.
9141 (setenv "ASPELL_DICT_DIR"
9142 (string-append (assoc-ref inputs "aspell-dict-en")
9143 "/lib/aspell"))
9144 #t)))))
9145 (inputs
eccd35be 9146 `(("gtk+" ,gtk+)
a801ae4c
TGR
9147 ("glib" ,glib)
9148 ("iso-codes" ,iso-codes)))
411ba511
LC
9149 (native-inputs
9150 `(("glib" ,glib "bin")
26ba3f07 9151 ("gobject-introspection" ,gobject-introspection)
411ba511 9152 ("pkg-config" ,pkg-config)
d0f50164 9153 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
9154 ("xmllint" ,libxml2)
9155
9156 ;; For tests.
a801ae4c 9157 ("aspell-dict-en" ,aspell-dict-en)
ff337525 9158 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 9159 (propagated-inputs
9b1bb757 9160 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
9161 (home-page "https://wiki.gnome.org/Projects/gspell")
9162 (synopsis "GNOME's alternative spell checker")
9163 (description
9164 "gspell provides a flexible API to add spell-checking to a GTK+
9165application. It provides a GObject API, spell-checking to text entries and
9166text views, and buttons to choose the language.")
9167 (license license:gpl2+)))
d1d739fa
CM
9168
9169(define-public gnome-planner
9170 (package
9171 (name "gnome-planner")
9172 (version "0.14.6")
9173 (source (origin
9174 (method url-fetch)
9175 (uri (string-append "mirror://gnome/sources/planner/"
9176 (version-major+minor version) "/planner-"
9177 version ".tar.xz"))
9178 (sha256
9179 (base32
9180 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9181 (build-system glib-or-gtk-build-system)
9182 (arguments
9183 ;; Disable the Python bindings because the Planner program functions
9184 ;; without them, and (as of 2017-06-13) we have not packaged all of
9185 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
9186 `(#:configure-flags
9187 (list "--disable-python"
9188 ,@(if (string=? "aarch64-linux" (%current-system))
9189 '("--build=aarch64-unknown-linux-gnu")
9190 '()))))
d1d739fa
CM
9191 (inputs
9192 `(("libgnomecanvas" ,libgnomecanvas)
9193 ("libgnomeui" ,libgnomeui)
9194 ("libglade" ,libglade)
9195 ("gnome-vfs" ,gnome-vfs)
9196 ("gconf" ,gconf)
9197 ("libxml2" ,libxml2)
9198 ("libxslt" ,libxslt)
9199 ("gtk+" ,gtk+)
9200 ("glib" ,glib)))
9201 (native-inputs
9202 `(("intltool" ,intltool)
9203 ("scrollkeeper" ,scrollkeeper)
9204 ("pkg-config" ,pkg-config)))
9205 (home-page "https://wiki.gnome.org/Apps/Planner")
9206 (synopsis "Project management software for the GNOME desktop")
9207 (description
9208 "GNOME Planner is a project management tool based on the Work Breakdown
9209Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9210the resources, tasks, and constraints that you define, Planner generates
9211various views into a project. For example, Planner can show a Gantt chart of
9212the project. It can show a detailed summary of tasks including their
9213duration, cost, and current progress. It can also show a report of resource
9214utilization that highlights under-utilized and over-utilized resources. These
9215views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9216 (license license:gpl2+)))
64fce637
RS
9217
9218(define-public lollypop
9219 (package
9220 (name "lollypop")
24b5d8f7 9221 (version "1.2.32")
64fce637
RS
9222 (source
9223 (origin
9224 (method url-fetch)
24b5d8f7 9225 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9226 "lollypop-" version ".tar.xz"))
64fce637 9227 (sha256
24b5d8f7 9228 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9229 (build-system meson-build-system)
64fce637 9230 (arguments
7a9543d7
TGR
9231 `(#:imported-modules
9232 (,@%meson-build-system-modules
9233 (guix build python-build-system))
9234 #:modules
9235 ((guix build meson-build-system)
9236 ((guix build python-build-system) #:prefix python:)
9237 (guix build utils))
aa498fc0 9238 #:glib-or-gtk? #t
7a9543d7 9239 #:tests? #f ; no test suite
5fc9b6c1
EF
9240 #:phases
9241 (modify-phases %standard-phases
5fc9b6c1
EF
9242 (add-after 'install 'wrap-program
9243 (lambda* (#:key outputs #:allow-other-keys)
9244 (let ((out (assoc-ref outputs "out"))
9245 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9246 (wrap-program (string-append out "/bin/lollypop")
9247 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9248 #t))
8ac8b3b3 9249 (add-after 'install 'wrap-python
7a9543d7 9250 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9251 (native-inputs
9252 `(("intltool" ,intltool)
9253 ("itstool" ,itstool)
aa498fc0
TD
9254 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9255 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9256 ("pkg-config" ,pkg-config)))
9257 (inputs
9258 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9259 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9260 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9261 ("libnotify" ,libnotify)
9262 ("libsecret" ,libsecret)
9263 ("libsoup" ,libsoup)
9264 ("python" ,python)
9265 ("python-beautifulsoup4" ,python-beautifulsoup4)
9266 ("python-gst" ,python-gst)
d029afdd 9267 ("python-pil" ,python-pillow)
64fce637 9268 ("python-pycairo" ,python-pycairo)
cc9c83c5 9269 ("python-pygobject" ,python-pygobject)
64fce637
RS
9270 ("python-pylast" ,python-pylast)
9271 ("totem-pl-parser" ,totem-pl-parser)
9272 ("webkitgtk" ,webkitgtk)))
9273 (propagated-inputs
9274 `(;; gst-plugins-base is required to start Lollypop,
9275 ;; the others are required to play streaming.
64fce637
RS
9276 ("gst-plugins-good" ,gst-plugins-good)
9277 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9278 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9279 (synopsis "GNOME music playing application")
9280 (description
9281 "Lollypop is a music player designed to play well with GNOME desktop.
9282Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9283from artists and tracks from the web. It also fetches cover artworks
9284automatically and it can stream songs from online music services and charts.")
9285 (license license:gpl3+)))
d831d49d
AW
9286
9287(define-public gnome-video-effects
9288 (package
9289 (name "gnome-video-effects")
9290 (version "0.4.3")
9291 (source (origin
9292 (method url-fetch)
9293 (uri (string-append "mirror://gnome/sources/" name "/"
9294 (version-major+minor version) "/" name "-"
9295 version ".tar.xz"))
9296 (sha256
9297 (base32
9298 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9299 (build-system glib-or-gtk-build-system)
9300 (arguments
9301 `(#:out-of-source? #f))
9302 (native-inputs
9303 `(("glib:bin" ,glib "bin")
9304 ("intltool" ,intltool)
9305 ("gettext" ,gettext-minimal)
9306 ("pkg-config" ,pkg-config)))
9307 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9308 (synopsis "Video effects for Cheese and other GNOME applications")
9309 (description
9310 "A collection of GStreamer video filters and effects to be used in
9311photo-booth-like software, such as Cheese.")
9312 (license license:gpl2+)))
3511c780
AW
9313
9314(define-public cheese
9315 (package
9316 (name "cheese")
3a7e066f 9317 (version "3.34.0")
3511c780
AW
9318 (source (origin
9319 (method url-fetch)
9320 (uri (string-append "mirror://gnome/sources/" name "/"
9321 (version-major+minor version) "/" name "-"
9322 version ".tar.xz"))
9323 (sha256
9324 (base32
3a7e066f 9325 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9326 (arguments
3a7e066f
KK
9327 `(#:glib-or-gtk? #t
9328 ;; Tests require GDK.
9329 #:tests? #f
3511c780
AW
9330 #:phases
9331 (modify-phases %standard-phases
3a7e066f 9332 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9333 (lambda _
9334 ;; Don't create 'icon-theme.cache'
3a7e066f 9335 (substitute* "meson_post_install.py"
3511c780
AW
9336 (("gtk-update-icon-cache") (which "true")))
9337 #t))
9338 (add-after 'install 'wrap-cheese
9339 (lambda* (#:key inputs outputs #:allow-other-keys)
9340 (let ((out (assoc-ref outputs "out"))
9341 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9342 (wrap-program (string-append out "/bin/cheese")
9343 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9344 #t)))))
3a7e066f 9345 (build-system meson-build-system)
3511c780 9346 (native-inputs
3a7e066f
KK
9347 `(("docbook-xsl" ,docbook-xsl)
9348 ("glib:bin" ,glib "bin")
9349 ("gtk-doc" ,gtk-doc)
3511c780
AW
9350 ("intltool" ,intltool)
9351 ("itstool" ,itstool)
9352 ("libxml2" ,libxml2)
3a7e066f 9353 ("libxslt" ,libxslt)
3511c780
AW
9354 ("pkg-config" ,pkg-config)
9355 ("vala" ,vala)))
9356 (propagated-inputs
6a19f03e
RW
9357 `(("gnome-video-effects" ,gnome-video-effects)
9358 ("clutter" ,clutter)
3511c780
AW
9359 ("clutter-gst" ,clutter-gst)
9360 ("clutter-gtk" ,clutter-gtk)
6a19f03e 9361 ("libcanberra" ,libcanberra)
3511c780
AW
9362 ("gdk-pixbuf" ,gdk-pixbuf)
9363 ("glib" ,glib)
6a19f03e
RW
9364 ("gstreamer" ,gstreamer)))
9365 (inputs
9366 `(("gnome-desktop" ,gnome-desktop)
3511c780 9367 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
9368 ("gst-plugins-base" ,gst-plugins-base)
9369 ("gst-plugins-bad" ,gst-plugins-bad)
9370 ("gtk+" ,gtk+)
3511c780
AW
9371 ("libx11" ,libx11)
9372 ("libxtst" ,libxtst)))
9373 (home-page "https://wiki.gnome.org/Apps/Cheese")
9374 (synopsis "Webcam photo booth software for GNOME")
9375 (description
9376 "Cheese uses your webcam to take photos and videos. Cheese can also
9377apply fancy special effects and lets you share the fun with others.")
9378 (license license:gpl2+)))
3c5dbd2b 9379
9380(define-public sound-juicer
9381 (package
9382 (name "sound-juicer")
9383 (version "3.24.0")
9384 (source
9385 (origin
9386 (method url-fetch)
9387 (uri (string-append "mirror://gnome/sources/" name "/"
9388 (version-major+minor version) "/"
9389 name "-" version ".tar.xz"))
9390 (sha256
9391 (base32
9392 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9393 (build-system glib-or-gtk-build-system)
9394 (native-inputs
9395 `(("desktop-file-utils" ,desktop-file-utils)
9396 ("intltool" ,intltool)
9397 ("itstool" ,itstool)
9398 ("pkg-config" ,pkg-config)
9399 ("xmllint" ,libxml2)))
9400 (inputs
9401 `(("gtk+" ,gtk+)
9402 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9403 ("gstreamer" ,gstreamer)
9404 ("gst-plugins-base" ,gst-plugins-base)
9405 ("gst-plugins-good" ,gst-plugins-good)
9406 ("iso-codes" ,iso-codes)
9407 ("libbrasero-media3" ,brasero)
9408 ("libcanberra" ,libcanberra)
9409 ("libdiscid" ,libdiscid)
9410 ("libmusicbrainz" ,libmusicbrainz)
9411 ("neon" ,neon)))
9412 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9413 (synopsis "Audio music cd ripper")
9414 (description "Sound Juicer extracts audio from compact discs and convert it
9415into audio files that a personal computer or digital audio player can play.
9416It supports ripping to any audio codec supported by a GStreamer plugin, such as
9417mp3, Ogg Vorbis and FLAC")
9418 (license license:gpl2+)))
4e3fdeb7 9419
0d3f1708
CB
9420(define-public soundconverter
9421 (package
9422 (name "soundconverter")
7f4b45a3 9423 (version "3.0.2")
0d3f1708
CB
9424 (source
9425 (origin
9426 (method url-fetch)
9427 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9428 version "/+download/"
9429 "soundconverter-" version ".tar.xz"))
9430
9431 (sha256
7f4b45a3 9432 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
9433 (build-system glib-or-gtk-build-system)
9434 (arguments
9435 `(#:imported-modules ((guix build python-build-system)
9436 (guix build glib-or-gtk-build-system)
9437 ,@%gnu-build-system-modules)
9438
9439 #:modules ((guix build glib-or-gtk-build-system)
9440 (guix build utils)
9441 ((guix build gnu-build-system) #:prefix gnu:)
9442 ((guix build python-build-system) #:prefix python:))
9443
9444 #:phases
9445 (modify-phases %standard-phases
0d3f1708
CB
9446 (add-after 'install 'wrap-soundconverter-for-python
9447 (assoc-ref python:%standard-phases 'wrap))
9448 (add-after 'install 'wrap-soundconverter
9449 (lambda* (#:key inputs outputs #:allow-other-keys)
9450 (let ((out (assoc-ref outputs "out"))
9451 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9452 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9453 (wrap-program (string-append out "/bin/soundconverter")
9454 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9455 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9456 #t)))))
9457 (native-inputs
9458 `(("intltool" ,intltool)
9459 ("pkg-config" ,pkg-config)
9460 ("glib:bin" ,glib "bin")))
9461 (inputs
9462 `(("gtk+" ,gtk+)
9463 ("python" ,python)
9464 ("python-pygobject" ,python-pygobject)
9465 ("gstreamer" ,gstreamer)
9466 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 9467 (home-page "https://soundconverter.org/")
0d3f1708
CB
9468 (synopsis "Convert between audio formats with a graphical interface")
9469 (description
9470 "SoundConverter supports converting between many audio formats including
9471Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9472configurable file renaming. ")
9473 (license license:gpl3)))
9474
4e3fdeb7 9475(define-public workrave
89f2d736
TGR
9476 (package
9477 (name "workrave")
52fc6508 9478 (version "1.10.42")
89f2d736
TGR
9479 (source
9480 (origin
9481 (method git-fetch)
9482 (uri (git-reference
b0e7b699 9483 (url "https://github.com/rcaelers/workrave")
c2e50474
TGR
9484 (commit (string-append "v" (string-map
9485 (match-lambda (#\. #\_) (chr chr))
9486 version)))))
89f2d736
TGR
9487 (file-name (git-file-name name version))
9488 (sha256
52fc6508 9489 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 9490 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
9491 (arguments
9492 ;; The only tests are maintainer tests (in po/), which fail.
9493 `(#:tests? #f))
d1c96847
MC
9494 (inputs `(("glib" ,glib)
9495 ("gtk+" ,gtk+)
9496 ("gdk-pixbuf" ,gdk-pixbuf)
9497 ("gtkmm" ,gtkmm)
9498 ("glibmm" ,glibmm)
9499 ("libx11" ,libx11)
9500 ("libxtst" ,libxtst)
9501 ("dconf" ,dconf)
9502 ("libice" ,libice)
9503 ("libsm" ,libsm)
9504 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 9505 (native-inputs `(("boost" ,boost)
89f2d736 9506 ("pkg-config" ,pkg-config)
f2d97d57 9507 ("gettext" ,gettext-minimal)
89f2d736
TGR
9508 ("autoconf" ,autoconf)
9509 ("autoconf-archive" , autoconf-archive)
9510 ("automake" ,automake)
9511 ("libtool" ,libtool)
9512 ("intltool" ,intltool)
89f2d736 9513 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
9514 ("python3" ,python-3)
9515 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
9516 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9517 (description
9518 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
9519repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9520micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
9521 (home-page "http://www.workrave.org")
9522 (license license:gpl3+)))
312afa7d
LC
9523
9524(define-public ghex
9525 (package
9526 (name "ghex")
3748992a 9527 (version "3.18.4")
312afa7d
LC
9528 (source (origin
9529 (method url-fetch)
2fbab848 9530 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 9531 (version-major+minor version) "/"
2fbab848 9532 "ghex-" version ".tar.xz"))
312afa7d
LC
9533 (sha256
9534 (base32
3748992a
KK
9535 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9536 (build-system meson-build-system)
9537 (arguments
9538 '(#:glib-or-gtk? #t
9539 #:phases
9540 (modify-phases %standard-phases
9541 (add-after 'unpack 'skip-gtk-update-icon-cache
9542 ;; Don't create 'icon-theme.cache'.
9543 (lambda _
9544 (substitute* "meson_post_install.py"
9545 (("gtk-update-icon-cache") (which "true")))
9546 #t)))))
312afa7d
LC
9547 (native-inputs
9548 `(("pkg-config" ,pkg-config)
3748992a 9549 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
9550 ("gnome-common" ,gnome-common)
9551 ("which" ,which)
9552 ("intltool" ,intltool)
9553 ("yelp-tools" ,yelp-tools)
2fbab848 9554 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
9555 (inputs
9556 `(("atk" ,atk)
9557 ("gtk" ,gtk+)))
9558 (synopsis "GNOME hexadecimal editor")
9559 (description "The GHex program can view and edit files in two ways:
9560hexadecimal or ASCII. It is useful for editing binary files in general.")
9561 (home-page "https://wiki.gnome.org/Apps/Ghex")
9562 (license license:gpl2)))
4b2ed6c2
RW
9563
9564(define-public libdazzle
9565 (package
9566 (name "libdazzle")
c94db354 9567 (version "3.34.1")
4b2ed6c2
RW
9568 (source (origin
9569 (method url-fetch)
687b4909 9570 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 9571 (version-major+minor version) "/"
687b4909 9572 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
9573 (sha256
9574 (base32
c94db354 9575 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
9576 (build-system meson-build-system)
9577 (arguments
9578 `(#:phases
9579 (modify-phases %standard-phases
4b2ed6c2
RW
9580 (add-before 'check 'pre-check
9581 (lambda _
9582 ;; Tests require a running X server.
9583 (system "Xvfb :1 &")
9584 (setenv "DISPLAY" ":1")
9585 #t)))))
9586 (native-inputs
687b4909 9587 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 9588 ("pkg-config" ,pkg-config)
687b4909 9589 ;; For tests.
ff337525 9590 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
9591 (inputs
9592 `(("glib" ,glib)
9593 ("gobject-introspection" ,gobject-introspection)
9594 ("gtk+" ,gtk+)
9595 ("vala" ,vala)))
9596 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9597 (synopsis "Companion library to GObject and Gtk+")
9598 (description "The libdazzle library is a companion library to GObject and
9599Gtk+. It provides various features that the authors wish were in the
9600underlying library but cannot for various reasons. In most cases, they are
9601wildly out of scope for those libraries. In other cases, they are not quite
9602generic enough to work for everyone.")
9603 (license license:gpl3+)))
7d3bb433
RW
9604
9605(define-public evolution
9606 (package
9607 (name "evolution")
0662fe86 9608 (version "3.34.2")
7d3bb433
RW
9609 (source (origin
9610 (method url-fetch)
9611 (uri (string-append "mirror://gnome/sources/evolution/"
9612 (version-major+minor version) "/"
9613 "evolution-" version ".tar.xz"))
9614 (sha256
9615 (base32
0662fe86 9616 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
9617 (build-system cmake-build-system)
9618 (arguments
5229bea1
KK
9619 `(#:imported-modules (,@%cmake-build-system-modules
9620 (guix build glib-or-gtk-build-system))
9621 #:modules ((guix build cmake-build-system)
9622 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9623 (guix build utils))
9624 #:configure-flags
7d3bb433 9625 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 9626 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 9627 ; in four years and cannot be built.
5229bea1
KK
9628 #:phases
9629 (modify-phases %standard-phases
9630 ;; The build system attempts to install user interface modules to the
9631 ;; output directory of the "evolution-data-server" package. This
9632 ;; change redirects that change.
9633 (add-after 'unpack 'patch-ui-module-dir
9634 (lambda* (#:key outputs #:allow-other-keys)
9635 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9636 (("\\$\\{edsuimoduledir\\}")
9637 (string-append (assoc-ref outputs "out")
9638 "/lib/evolution-data-server/ui-modules")))
9639 #t))
9640 (add-after 'install 'glib-or-gtk-compile-schemas
9641 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9642 (add-after 'install 'glib-or-gtk-wrap
9643 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 9644 (native-inputs
ad6e168b 9645 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
9646 ("pkg-config" ,pkg-config)
9647 ("intltool" ,intltool)
9648 ("itstool" ,itstool)))
9649 (inputs
9650 `(("enchant" ,enchant)
9651 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9652 ("gcr" ,gcr)
ad6e168b 9653 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
9654 ("gnome-autoar" ,gnome-autoar)
9655 ("gnome-desktop" ,gnome-desktop)
0662fe86 9656 ("gspell" ,gspell)
7d3bb433
RW
9657 ("highlight" ,highlight)
9658 ("libcanberra" ,libcanberra)
9659 ("libgweather" ,libgweather)
9660 ("libnotify" ,libnotify)
9661 ("libsoup" ,libsoup)
9662 ("nss" ,nss)
9663 ("openldap" ,openldap)
9664 ("webkitgtk" ,webkitgtk)
9665 ("ytnef" ,ytnef)))
9666 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9667 (synopsis "Manage your email, contacts and schedule")
9668 (description "Evolution is a personal information management application
9669that provides integrated mail, calendaring and address book
9670functionality.")
9671 ;; See COPYING for details.
23dbe621 9672 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 9673 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 9674 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
9675
9676(define-public gthumb
9677 (package
9678 (name "gthumb")
8280676b 9679 (version "3.8.2")
169d63f5
AT
9680 (source (origin
9681 (method url-fetch)
9682 (uri (string-append "mirror://gnome/sources/gthumb/"
9683 (version-major+minor version) "/"
9684 "gthumb-" version ".tar.xz"))
9685 (sha256
9686 (base32
8280676b 9687 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
9688 (build-system meson-build-system)
9689 (arguments
9690 `(#:glib-or-gtk? #t
9691 #:configure-flags
9692 ;; Ensure the RUNPATH contains all installed library locations.
9693 (list (string-append "-Dc_link_args=-Wl,-rpath="
9694 (assoc-ref %outputs "out")
9695 "/lib/gthumb/extensions")
9696 (string-append "-Dcpp_link_args=-Wl,-rpath="
9697 (assoc-ref %outputs "out")
9698 "/lib/gthumb/extensions"))))
9699 (native-inputs
9700 `(("pkg-config" ,pkg-config)
9701 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9702 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9703 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9704 ("intltool" ,intltool)
9705 ("itstool" ,itstool)))
9706 (inputs
9707 `(("exiv2" ,exiv2)
9708 ("gtk" ,gtk+)
9709 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9710 ("gstreamer" ,gstreamer)
9711 ("clutter" ,clutter)
9712 ("clutter-gst" ,clutter-gst)
9713 ("clutter-gtk" ,clutter-gtk)
4bd428a7 9714 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
9715 ("libtiff" ,libtiff)
9716 ("libraw" ,libraw)))
9717 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9718 (synopsis "GNOME image viewer and browser")
9719 (description "GThumb is an image viewer, browser, organizer, editor and
9720advanced image management tool")
9721 (license license:gpl2+)))
08be02be
AT
9722
9723(define-public terminator
9724 (package
9725 (name "terminator")
9726 (version "1.91")
9727 (source (origin
9728 (method url-fetch)
9729 (uri (string-append "https://launchpad.net/" name "/"
9730 "gtk3/" version "/" "+download/"
9731 name "-" version ".tar.gz"))
9732 (sha256
9733 (base32
9734 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9735 (build-system python-build-system)
9736 (native-inputs
9737 `(("intltool" ,intltool)
9738 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9739 ("gettext" ,gettext-minimal)
9740 ("pkg-config" ,pkg-config)))
9741 (inputs
9742 `(("cairo" ,cairo)
9743 ("gobject-introspection" ,gobject-introspection)
96681d4b 9744 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
9745 ("python2-pycairo" ,python2-pycairo)
9746 ("python2-pygobject" ,python2-pygobject)
9747 ("python2-psutil" ,python2-psutil)
9748 ("vte" ,vte)))
9749 (arguments
96681d4b
TGR
9750 `(#:python ,python-2 ; Python 3 isn't supported
9751 #:imported-modules ((guix build glib-or-gtk-build-system)
9752 ,@%python-build-system-modules)
9753 #:modules ((guix build python-build-system)
9754 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9755 (guix build utils))
08be02be
AT
9756 #:phases
9757 (modify-phases %standard-phases
9758 (add-after
9759 'install 'wrap-program
9760 (lambda* (#:key outputs #:allow-other-keys)
9761 (let ((prog (string-append (assoc-ref outputs "out")
9762 "/bin/terminator")))
9763 (wrap-program prog
9764 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9765 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
9766 #t)))
9767 (add-after 'wrap-program 'glib-or-gtk-wrap
9768 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
9769 (home-page "https://gnometerminator.blogspot.com/")
9770 (synopsis "Store and run multiple GNOME terminals in one window")
9771 (description
9772 "Terminator allows you to run multiple GNOME terminals in a grid and
9773+tabs, and it supports drag and drop re-ordering of terminals.")
9774 (license license:gpl2)))
213315d4
JF
9775
9776(define-public libhandy
9777 (package
9778 (name "libhandy")
f6501b9f 9779 (version "0.0.12")
213315d4
JF
9780 (source
9781 (origin
9782 (method git-fetch)
9783 (uri (git-reference
9784 (url "https://source.puri.sm/Librem5/libhandy")
9785 (commit (string-append "v" version))))
9786 (file-name (git-file-name name version))
9787 (sha256
f6501b9f 9788 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
9789 (build-system meson-build-system)
9790 (arguments
9791 `(#:configure-flags
9792 '("-Dglade_catalog=disabled"
9793 "-Dgtk_doc=true")
9794 #:phases
9795 (modify-phases %standard-phases
213315d4
JF
9796 (add-before 'check 'pre-check
9797 (lambda _
9798 ;; Tests require a running X server.
9799 (system "Xvfb :1 &")
9800 (setenv "DISPLAY" ":1")
9801 #t)))))
9802 (inputs
9803 `(("gtk+" ,gtk+)))
9804 (native-inputs
9805 `(("glib:bin" ,glib "bin")
9806 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9807 ("vala" ,vala)
9808 ("gtk-doc" ,gtk-doc)
9809 ("pkg-config" ,pkg-config)
9810 ("gettext" ,gettext-minimal)
d41ee146
TGR
9811
9812 ;; Test suite dependencies.
ff337525 9813 ("xorg-server" ,xorg-server-for-tests)
d41ee146 9814 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
9815 (home-page "https://source.puri.sm/Librem5/libhandy")
9816 (synopsis "Library full of GTK+ widgets for mobile phones")
9817 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
9818interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9819for usage on small and big screens.")
213315d4 9820 (license license:lgpl2.1+)))
a830d14d
GL
9821
9822(define-public libgit2-glib
9823 (package
9824 (name "libgit2-glib")
6448c2e1 9825 (version "0.99.0.1")
a830d14d
GL
9826 (source (origin
9827 (method url-fetch)
9828 (uri (string-append "mirror://gnome/sources/" name "/"
9829 (version-major+minor version) "/"
9830 name "-" version ".tar.xz"))
9831 (sha256
9832 (base32
6448c2e1 9833 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
9834 (build-system meson-build-system)
9835 (native-inputs
9836 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9837 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
9838 ("pkg-config" ,pkg-config)
9839 ("python-pygobject" ,python-pygobject)
9840 ("python-wrapper" ,python-wrapper)
9841 ("vala" ,vala)))
9842 (inputs
9843 `(("glib" ,glib)
8c6aae46
MB
9844 ("libssh2" ,libssh2)))
9845 (propagated-inputs
9846 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
9847 ("libgit2" ,libgit2)))
9848 (synopsis "GLib wrapper around the libgit2 Git access library")
9849 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9850access library. It only implements the core plumbing functions, not really the
9851higher level porcelain stuff.")
9852 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9853 (license license:gpl2+)))
93beace0 9854
08db81c9
LP
9855(define-public gitg
9856 (package
9857 (name "gitg")
9858 (version "3.32.1")
9859 (source (origin
9860 (method url-fetch)
9861 (uri (string-append "mirror://gnome/sources/" name "/"
9862 (version-major+minor version) "/"
9863 name "-" version ".tar.xz"))
9864 (sha256
9865 (base32
9866 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9867 (build-system meson-build-system)
9868 (arguments
9869 `(#:glib-or-gtk? #t
9870 #:phases
9871 (modify-phases %standard-phases
9872 (add-after 'unpack 'disable-post-install-partially
9873 (lambda _
9874 (substitute* "meson_post_install.py"
9875 (("'python'") ; there are no python sources to compile
9876 (string-append "'" (which "true") "'"))
9877 (("gtk-update-icon-cache") (which "true")))
9878 #t))
9879 (add-after 'unpack 'fix-test-sources
9880 (lambda _
9881 (substitute* "tests/libgitg/test-commit.vala"
9882 (("/bin/bash") (which "bash")))
9883 #t))
9884 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9885 (lambda* (#:key outputs #:allow-other-keys)
9886 (let ((prog (string-append (assoc-ref outputs "out")
9887 "/bin/gitg")))
9888 (wrap-program prog
9889 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9890 #t))))))
9891 (inputs
9892 `(("glib" ,glib)
9893 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9894 ("gtk+" ,gtk+)
9895 ("gtkspell3" ,gtkspell3)
9896 ("gtksourceview" ,gtksourceview-3)
9897 ("json-glib" ,json-glib)
9898 ("libdazzle" ,libdazzle)
9899 ("libgee" ,libgee)
08db81c9
LP
9900 ("libgit2-glib" ,libgit2-glib)
9901 ("libpeas" ,libpeas)
9902 ("libsecret" ,libsecret)
9903 ("libsoup" ,libsoup)
9904 ("libxml2" ,libxml2)))
9905 (native-inputs
9906 `(("glib:bin" ,glib "bin")
9907 ("gtk+:bin" ,gtk+ "bin")
9908 ("gobject-introspection" ,gobject-introspection)
9909 ("intltool" ,intltool)
9910 ("pkg-config" ,pkg-config)
9911 ("vala" ,vala)))
9912 (synopsis "Graphical user interface for git")
9913 (description
9914 "gitg is a graphical user interface for git. It aims at being a small,
9915fast and convenient tool to visualize the history of git repositories.
9916Besides visualization, gitg also provides several utilities to manage your
9917repository and commit your work.")
9918 (home-page "https://wiki.gnome.org/Apps/Gitg")
9919 (license license:gpl2+)))
9920
1e600ed0
RW
9921(define-public gamin
9922 (package
9923 (name "gamin")
9924 (version "0.1.10")
9925 (source (origin
9926 (method url-fetch)
9927 (uri (string-append "mirror://gnome/sources/" name "/"
9928 (version-major+minor version) "/"
9929 name "-" version ".tar.bz2"))
9930 (sha256
9931 (base32
9932 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9933 (build-system gnu-build-system)
9934 (arguments
9935 `(#:phases
9936 (modify-phases %standard-phases
9937 (add-after 'unpack 'remove-deprecated-macro
9938 (lambda _
9939 (substitute* '("server/gam_node.c"
9940 "server/gam_subscription.h"
9941 "server/gam_node.h"
9942 "server/gam_subscription.c")
9943 (("G_CONST_RETURN") "const"))
9944 #t)))))
9945 (inputs
9946 `(("glib" ,glib)))
9947 (native-inputs
9948 `(("intltool" ,intltool)
9949 ("pkg-config" ,pkg-config)))
9950 (home-page "https://people.gnome.org/~veillard/gamin/")
9951 (synopsis "File alteration monitor")
9952 (description
9953 "Gamin is a file and directory monitoring system defined to be a subset
9954of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 9955library which detects when a file or a directory has been modified.")
1e600ed0
RW
9956 (license license:gpl2+)))
9957
93beace0
DW
9958(define-public gnome-mahjongg
9959 (package
9960 (name "gnome-mahjongg")
9961 (version "3.35.1")
9962 (source (origin
9963 (method git-fetch)
9964 (uri (git-reference
9965 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9966 (commit version)))
9967 (file-name (git-file-name name version))
9968 (sha256
9969 (base32
9970 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9971 (build-system meson-build-system)
9972 (arguments
9973 `(#:glib-or-gtk? #t))
9974 (native-inputs
9975 `(("appstream-glib" ,appstream-glib)
9976 ("gettext" ,gettext-minimal)
9977 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9978 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9979 ("itstool" ,itstool)
9980 ("pkg-config" ,pkg-config)
9981 ("vala" ,vala)))
9982 (propagated-inputs
9983 `(("dconf" ,dconf)))
9984 (inputs
9985 `(("glib" ,glib)
9986 ("gtk+" ,gtk+)
9987 ("librsvg" ,librsvg)))
9988 (synopsis "Mahjongg tile-matching game")
9989 (description "GNOME Mahjongg is a game based on the classic Chinese
9990tile-matching game Mahjong. It features multiple board layouts, tile themes,
9991and a high score table.")
9992 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9993 (license license:gpl2+)))
f825476c 9994
76ea7632
RG
9995(define-public gnome-themes-extra
9996 (package
9997 (name "gnome-themes-extra")
9998 (version "3.28")
9999 (source
10000 (origin
10001 (method url-fetch)
10002 (uri (string-append "mirror://gnome/sources/" name "/"
10003 (version-major+minor version) "/" name "-"
10004 version ".tar.xz"))
10005 (sha256
10006 (base32
10007 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10008 (build-system gnu-build-system)
885424bf
RG
10009 (arguments
10010 '(#:configure-flags
10011 ;; Don't create 'icon-theme.cache'.
10012 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
10013 (true (string-append coreutils "/bin/true")))
10014 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
10015 (native-inputs
10016 `(("glib:bin" ,glib "bin")
10017 ("intltool" ,intltool)
10018 ("pkg-config" ,pkg-config)))
10019 (inputs
10020 `(("glib" ,glib)
10021 ("gtk+" ,gtk+)
10022 ("gtk+-2" ,gtk+-2)
10023 ("librsvg" ,librsvg)
10024 ("libxml2" ,libxml2)))
10025 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
10026 (synopsis "GNOME Extra Themes")
10027 (description "This package provides themes and related elements that don't
10028really fit in other upstream packages. It offers legacy support for GTK+ 2
10029versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
10030index files needed for Adwaita to be used outside of GNOME.")
10031 (license license:lgpl2.1+)))
10032
f825476c
LP
10033(define-public polari
10034 (package
10035 (name "polari")
10036 (version "3.32.2")
10037 (source (origin
10038 (method url-fetch)
10039 (uri (string-append "mirror://gnome/sources/polari/"
10040 (version-major+minor version)
10041 "/polari-" version ".tar.xz"))
10042 (sha256
10043 (base32
10044 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10045 (build-system meson-build-system)
10046 (arguments
10047 `(#:glib-or-gtk? #t
10048 #:phases
10049 (modify-phases %standard-phases
10050 (add-after 'unpack 'skip-gtk-update-icon-cache
10051 (lambda _
10052 (substitute* "meson/meson-postinstall.sh"
10053 (("gtk-update-icon-cache") (which "true")))
10054 #t))
10055 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10056 (lambda* (#:key outputs #:allow-other-keys)
10057 (let ((prog (string-append (assoc-ref outputs "out")
10058 "/bin/polari")))
10059 (wrap-program prog
10060 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10061 #t))))))
10062 (inputs
10063 `(("glib" ,glib)
10064 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10065 ("gspell" ,gspell)
10066 ("gtk+" ,gtk+)
10067 ("gjs" ,gjs)
10068 ("libsecret" ,libsecret)
10069 ("libsoup" ,libsoup)
10070 ("telepathy-glib" ,telepathy-glib)
10071 ("telepathy-logger" ,telepathy-logger)))
10072 (native-inputs
10073 `(("glib:bin" ,glib "bin")
10074 ("gobject-introspection" ,gobject-introspection)
10075 ("intltool" ,intltool)
10076 ("pkg-config" ,pkg-config)
10077 ("yelp-tools" ,yelp-tools)))
10078 (propagated-inputs
10079 `(("telepathy-idle" ,telepathy-idle)
10080 ("telepathy-mission-control" ,telepathy-mission-control)))
10081 (synopsis "Simple IRC Client")
10082 (description
10083 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10084integrate seamlessly with the GNOME desktop.")
10085 (home-page "https://wiki.gnome.org/Apps/Polari")
10086 (license license:gpl2+)))
59d4c8c2
PN
10087
10088(define-public gnome-boxes
10089 (package
10090 (name "gnome-boxes")
915c2ad3 10091 (version "3.36.6")
59d4c8c2
PN
10092 (source
10093 (origin
10094 (method url-fetch)
10095 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10096 (version-major+minor version) "/"
10097 "gnome-boxes-" version ".tar.xz"))
10098 (sha256
915c2ad3 10099 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
59d4c8c2
PN
10100 (build-system meson-build-system)
10101 (arguments
10102 '(#:glib-or-gtk? #t
10103 #:configure-flags (list "-Drdp=false"
10104 (string-append "-Dc_link_args=-Wl,-rpath="
10105 (assoc-ref %outputs "out")
10106 "/lib/gnome-boxes"))))
10107 (native-inputs
10108 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10109 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10110 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10111 ("itstool" ,itstool)
10112 ("intltool" ,intltool)
10113 ("vala" ,vala)
10114 ("pkg-config" ,pkg-config)))
10115 (inputs
10116 `(("libarchive" ,libarchive)
f0d7897e
MC
10117 ("glib-networking" ,glib-networking) ;for TLS support
10118 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
59d4c8c2
PN
10119 ("gtk" ,gtk+)
10120 ("gtk-vnc" ,gtk-vnc)
10121 ("libosinfo" ,libosinfo)
10122 ("libsecret" ,libsecret)
10123 ("libsoup" ,libsoup)
10124 ("libusb" ,libusb)
10125 ("libvirt" ,libvirt)
10126 ("libvirt-glib" ,libvirt-glib)
10127 ("libxml" ,libxml2)
10128 ("spice-gtk" ,spice-gtk)
10129 ("sparql-query" ,sparql-query)
10130 ("vte" ,vte)
10131 ("webkitgtk" ,webkitgtk)
10132 ("tracker" ,tracker)
10133 ("libgudev" ,libgudev)))
10134 (home-page "https://wiki.gnome.org/Apps/Boxes")
10135 (synopsis "View, access, and manage remote and virtual systems")
10136 (description "GNOME Boxes is a simple application to view, access, and
f0d7897e
MC
10137manage remote and virtual systems. Note that this application requires the
10138@code{libvirt} and @code{virtlog} daemons to run. Use the command
10139@command{info '(guix) Virtualization Services'} to learn how to configure
10140these services on the Guix System.")
59d4c8c2
PN
10141 (license (list
10142 ;; For data/icons/empty-boxes.png.
10143 license:cc-by2.0
10144 ;; For all others.
10145 license:lgpl2.0+))))
0e26c3cf 10146
10147(define-public geary
10148 (package
10149 (name "geary")
10150 (version "3.34.1")
10151 (source (origin
10152 (method git-fetch)
10153 (uri (git-reference
10154 (url "https://gitlab.gnome.org/GNOME/geary")
10155 (commit version)))
10156 (file-name (git-file-name name version))
10157 (sha256
10158 (base32
10159 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10160 (build-system meson-build-system)
10161 (arguments
10162 `(#:glib-or-gtk? #t
10163 #:phases (modify-phases %standard-phases
10164 (add-after 'unpack 'disable-failing-tests
10165 (lambda _
10166 (substitute* "test/meson.build"
10167 (("test\\('client-tests', geary_test_client_bin\\)")
10168 ""))
10169 #t))
10170 (add-after 'unpack 'disable-postinstall-script
10171 (lambda _
10172 (substitute* "meson.build"
10173 (("meson.add_install_script\\(\
10174join_paths\\('build-aux', 'post_install.py'\\)\\)")
10175 ""))
10176 #t))
10177 (add-before 'check 'setup-xvfb
10178 (lambda _
10179 (system "Xvfb :1 &")
10180 (setenv "DISPLAY" ":1")
10181 #t)))))
10182 (inputs
10183 `(("enchant" ,enchant)
10184 ("folks" ,folks)
10185 ("gcr" ,gcr)
10186 ("glib" ,glib)
10187 ("gmime" ,gmime-2.6)
10188 ("gnome-online-accounts:lib"
10189 ,gnome-online-accounts "lib")
10190 ("gspell" ,gspell)
10191 ("gtk+" ,gtk+)
10192 ("iso-codes" ,iso-codes)
10193 ("json-glib" ,json-glib)
10194 ("libcanberra" ,libcanberra)
10195 ("libgee" ,libgee)
10196 ("libhandy" ,libhandy)
10197 ("libpeas" ,libpeas)
10198 ("libsecret" ,libsecret)
10199 ("libunwind" ,libunwind)
10200 ("sqlite" ,sqlite)
10201 ("webkitgtk" ,webkitgtk)
10202 ("ytnef" ,ytnef)))
10203 (native-inputs
10204 `(("appstream-glib" ,appstream-glib)
10205 ("cmake-minimal" ,cmake-minimal)
10206 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 10207 ("gettext" ,gettext-minimal)
0e26c3cf 10208 ("glib:bin" ,glib "bin")
10209 ("gobject-introspection" ,gobject-introspection)
10210 ("itstool" ,itstool)
10211 ("libarchive" ,libarchive)
10212 ("libxml2" ,libxml2)
10213 ("pkg-config" ,pkg-config)
10214 ("vala" ,vala)
10215 ("xvfb" ,xorg-server-for-tests)))
10216 (synopsis "GNOME email application built around conversations")
10217 (description
10218 "Geary collects related messages together into conversations,
10219making it easy to find and follow your discussions. Full-text and keyword
10220search makes it easy to find the email you are looking for. Geary's
10221full-featured composer lets you send rich, styled text with images, links, and
10222lists, but also send lightweight, easy to read text messages. Geary
10223automatically picks up your existing GNOME Online Accounts, and adding more is
10224easy. Geary has a clean, fast, modern interface that works like you want it
10225to.")
10226 (home-page "https://wiki.gnome.org/Apps/Geary")
10227 (license (list
10228 ;; geary
10229 license:lgpl2.1+
10230 ;; icons
10231 license:cc-by3.0
10232 license:cc-by-sa3.0
10233 license:public-domain
10234 ;; snowball
10235 license:bsd-2))))
1a17d21b 10236
21051eb7
VM
10237(define-public glabels
10238 (package
10239 (name "glabels")
10240 (version "3.4.1")
10241 (source
10242 (origin
10243 (method url-fetch)
10244 (uri (string-append "mirror://gnome/sources/" name "/"
10245 (version-major+minor version) "/"
10246 "glabels-" version ".tar.xz"))
10247 (sha256
10248 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10249 (build-system glib-or-gtk-build-system)
10250 (native-inputs
10251 `(("gettext" ,gettext-minimal)
10252 ("glib:bin" ,glib "bin")
10253 ("intltool" ,intltool)
10254 ("itstool" ,itstool)
10255 ("pkg-config" ,pkg-config)))
10256 (inputs
10257 `(("gtk+" ,gtk+)
10258 ("librsvg" ,librsvg)
10259 ("libxml2" ,libxml2)))
10260 (home-page "https://glabels.org/")
10261 (synopsis "Program for creating labels and business cards")
10262 (description
10263 "gLabels is a program for creating labels and business cards. It is
10264designed to work with various laser/ink-jet peel-off label and business
10265card sheets that you’ll find at most office supply stores.")
10266 (license license:gpl3+)))
10267
2cd1de32
BT
10268(define-public libratbag
10269 (package
10270 (name "libratbag")
10271 (version "0.13")
10272 (source
10273 (origin
10274 (method git-fetch)
10275 (uri (git-reference
b0e7b699 10276 (url "https://github.com/libratbag/libratbag")
2cd1de32
BT
10277 (commit (string-append "v" version))))
10278 (file-name (git-file-name name version))
10279 (sha256
10280 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10281 (build-system meson-build-system)
10282 (arguments
10283 `(#:configure-flags
10284 (list "-Dsystemd=false"
10285 "-Dlogind-provider=elogind")
10286 #:phases
10287 (modify-phases %standard-phases
10288 (add-after 'install 'wrap
10289 (lambda* (#:key inputs outputs #:allow-other-keys)
10290 (let* ((out (assoc-ref outputs "out"))
10291 (site (string-append
10292 "/lib/python"
10293 ,(version-major+minor (package-version python))
10294 "/site-packages"))
10295 (evdev (string-append
10296 (assoc-ref inputs "python-evdev") site))
10297 (pygo (string-append
10298 (assoc-ref inputs "python-pygobject") site))
10299 (python-wrap
10300 `("PYTHONPATH" = (,evdev ,pygo))))
10301 (wrap-program (string-append out "/bin/" "ratbagctl")
10302 python-wrap)
10303 #t))))))
10304 (native-inputs
10305 `(("check" ,check)
10306 ("pkg-config" ,pkg-config)
10307 ("swig" ,swig)
10308 ("valgrind" ,valgrind)))
10309 (inputs
10310 `(("glib" ,glib)
10311 ("json-glib" ,json-glib)
10312 ("libevdev" ,libevdev)
10313 ("libsystemd" ,elogind)
10314 ("libunistring" ,libunistring)
10315 ("python-evdev" ,python-evdev)
10316 ("python-pygobject" ,python-pygobject)
10317 ("udev" ,eudev)))
10318 (home-page "https://github.com/libratbag/libratbag")
10319 (synopsis "DBus daemon and utility for configuring gaming mice")
10320 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10321configure input devices, mainly gaming mice. The daemon provides a generic
10322way to access the various features exposed by these mice and abstracts away
10323hardware-specific and kernel-specific quirks. There is also the
10324@command{ratbagctl} command line interface for configuring devices.
10325
10326libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10327Steelseries.
10328
10329The ratbagd DBus service can be enabled by adding the following service to
10330your operating-system definition:
10331
10332 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10333 (license license:expat)))
10334
50d31a40
BT
10335(define-public piper
10336 (package
10337 (name "piper")
73014984 10338 (version "0.5")
50d31a40
BT
10339 (source
10340 (origin
10341 (method git-fetch)
10342 (uri (git-reference
b0e7b699 10343 (url "https://github.com/libratbag/piper")
50d31a40
BT
10344 (commit version)))
10345 (sha256
81af0de9
TGR
10346 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10347 (file-name (git-file-name name version))))
50d31a40
BT
10348 (build-system meson-build-system)
10349 (native-inputs
10350 `(("gettext" ,gettext-minimal)
10351 ("glib:bin" ,glib "bin")
10352 ("gobject-introspection" ,gobject-introspection)
10353 ("pkg-config" ,pkg-config)
10354 ("python-flake8" ,python-flake8)))
10355 (inputs
10356 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10357 ("gtk" ,gtk+)
10358 ("gtk:bin" ,gtk+ "bin")
10359 ("librsvg" ,librsvg)
10360 ("python-evdev" ,python-evdev)
10361 ("python-lxml" ,python-lxml)
10362 ("python-pycairo" ,python-pycairo)
10363 ("python-pygobject" ,python-pygobject)))
10364 (arguments
10365 `(#:imported-modules ((guix build python-build-system)
10366 ,@%meson-build-system-modules)
10367 #:modules (((guix build python-build-system) #:prefix python:)
10368 (guix build meson-build-system)
10369 (guix build utils))
10370 #:phases
10371 (modify-phases %standard-phases
10372 (add-after 'unpack 'dont-update-gtk-icon-cache
10373 (lambda _
10374 (substitute* "meson.build"
10375 (("meson.add_install_script('meson_install.sh')") ""))
10376 #t))
10377 ;; TODO: Switch to wrap-script when it is fixed.
10378 (add-after 'install 'wrap-python
10379 (assoc-ref python:%standard-phases 'wrap))
10380 (add-after 'wrap-python 'wrap
10381 (lambda* (#:key outputs #:allow-other-keys)
10382 (wrap-program
10383 (string-append (assoc-ref outputs "out" )"/bin/piper")
10384 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10385 #t)))))
10386 (home-page "https://github.com/libratbag/piper/")
10387 (synopsis "Configure bindings and LEDs on gaming mice")
10388 (description "Piper is a GTK+ application for configuring gaming mice with
10389onboard configuration for key bindings via libratbag. Piper requires
10390a @command{ratbagd} daemon running with root privileges. It can be run
10391manually as root, but is preferably configured as a DBus service that can
10392launch on demand. This can be configured by enabling the following service,
10393provided there is a DBus service present:
10394
10395 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10396 (license license:gpl2)))
10397
1a17d21b 10398(define-public parlatype
c10fb9fd
NG
10399 (package
10400 (name "parlatype")
10401 (version "2.1")
10402 (source
10403 (origin
10404 (method git-fetch)
10405 (uri (git-reference
10406 (url "https://github.com/gkarsay/parlatype.git")
10407 (commit (string-append "v" version))))
10408 (file-name (git-file-name name version))
10409 (sha256
10410 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
10411 (build-system meson-build-system)
10412 (arguments
10413 `(#:glib-or-gtk? #t
10414 #:tests? #f ;require internet access
10415 #:phases
10416 (modify-phases %standard-phases
10417 (add-after 'install 'wrap-parlatype
10418 ;; Add gstreamer plugin provided in this package to system's
10419 ;; plugins.
10420 (lambda* (#:key outputs #:allow-other-keys)
10421 (let* ((out (assoc-ref outputs "out"))
10422 (gst-plugin-path (string-append
10423 out "/lib/gstreamer-1.0/"
10424 ":"
10425 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10426 (wrap-program (string-append out "/bin/parlatype")
10427 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10428 #t)))))
10429 (native-inputs
10430 `(("appstream-glib" ,appstream-glib)
10431 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10432 ("gettext" ,gettext-minimal)
10433 ("glib" ,glib "bin") ;for glib-compile-resources
10434 ("pkg-config" ,pkg-config)
10435 ("yelp-tools" ,yelp-tools)))
10436 (inputs
10437 `(("gst-plugins-base" ,gst-plugins-base)
10438 ("gst-plugins-good" ,gst-plugins-good)
10439 ("gstreamer" ,gstreamer)
10440 ("gtk+" ,gtk+)
10441 ("pocketsphinx" ,pocketsphinx)
10442 ("pulseaudio" ,pulseaudio)
10443 ("sphinxbase" ,sphinxbase)))
10444 (home-page "http://gkarsay.github.io/parlatype/")
10445 (synopsis "GNOME audio player for transcription")
10446 (description "Parlatype is an audio player for the GNOME desktop
1a17d21b
NG
10447environment. Its main purpose is the manual transcription of spoken
10448audio files.")
c10fb9fd 10449 (license license:gpl3+)))
95856a6e
AT
10450
10451(define-public jsonrpc-glib
10452 (package
10453 (name "jsonrpc-glib")
10454 (version "3.34.0")
10455 (source (origin
10456 (method url-fetch)
10457 (uri (string-append "mirror://gnome/sources/" name "/"
10458 (version-major+minor version) "/"
10459 name "-" version ".tar.xz"))
10460 (sha256
10461 (base32
10462 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10463 (build-system meson-build-system)
10464 (inputs
10465 `(("json-glib" ,json-glib)
10466 ("glib" ,glib)))
10467 (native-inputs
10468 `(("pkg-config" ,pkg-config)
10469 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10470 ("gobject-introspection" ,gobject-introspection)
10471 ("vala" ,vala)))
10472 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10473 (synopsis "JSON-RPC library for GLib")
10474 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10475peers in either a synchronous or asynchronous fashion. It also allows
10476communicating using the GVariant serialization format instead of JSON when
10477both peers support it. You might want that when communicating on a single
10478host to avoid parser overhead and memory-allocator fragmentation.")
10479 (license license:lgpl2.1+)))
0faed399
JB
10480
10481(define-public feedbackd
10482 (package
10483 (name "feedbackd")
10484 (version "0.0.0+git20200527")
10485 (source (origin
10486 (method git-fetch)
10487 (uri (git-reference
10488 (url "https://source.puri.sm/Librem5/feedbackd.git")
10489 (commit (string-append "v" version))))
10490 (file-name (git-file-name name version))
10491 (sha256
10492 (base32
10493 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
10494 (build-system meson-build-system)
10495 (native-inputs
10496 `(("glib:bin" ,glib "bin")
10497 ("gobject-introspection" ,gobject-introspection)
10498 ("pkg-config" ,pkg-config)
10499 ("vala" ,vala)))
10500 (inputs
10501 `(("dbus" ,dbus)
10502 ("gsound" ,gsound)
10503 ("json-glib" ,json-glib)
10504 ("libgudev" ,libgudev)))
10505 (propagated-inputs
10506 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
10507 (synopsis "Haptic/visual/audio feedback via DBus")
10508 (description "Feedbackd provides a DBus daemon to act on events to provide
10509haptic, visual and audio feedback. It offers the libfeedbackd library and
10510GObject introspection bindings.")
10511 (home-page "https://source.puri.sm/Librem5/feedbackd")
10512 (license (list license:lgpl2.1+ ; libfeedbackd
10513 license:lgpl3+)))) ; the rest
dcb4f7b7
LP
10514
10515(define-public sysprof
10516 (package
10517 (name "sysprof")
10518 (version "3.34.1")
10519 (source (origin
10520 (method url-fetch)
10521 (uri (string-append "mirror://gnome/sources/" name "/"
10522 (version-major+minor version) "/"
10523 name "-" version ".tar.xz"))
10524 (sha256
10525 (base32
10526 "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"))))
10527 (build-system meson-build-system)
10528 (arguments
10529 `(#:configure-flags
10530 (list (string-append "-Dsystemdunitdir="
10531 %output
10532 "/share/systemd"))
10533 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
10534 #:phases
10535 (modify-phases %standard-phases
10536 (add-after 'unpack 'patch-install-script
10537 (lambda _
10538 (substitute* "build-aux/meson/post_install.sh"
10539 (("gtk-update-icon-cache") "true")
10540 (("update-desktop-database") "true"))
10541 #t)))))
10542 (inputs
10543 `(("glib" ,glib)
10544 ("gtk+" ,gtk+)
10545 ("libdazzle" ,libdazzle)
10546 ("polkit" ,polkit)))
10547 (native-inputs
10548 `(("gettext" ,gettext-minimal)
10549 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
10550 ("itstool" ,itstool)
10551 ("pkg-config" ,pkg-config)
10552 ("xmllint" ,libxml2)))
10553 (home-page "http://www.sysprof.com/")
10554 (synopsis "System-wide performance profiler")
10555 (description "Sysprof is a sampling profiler that uses a kernel module
10556to generate stacktraces which are then interpreted by the userspace program
10557@command{sysprof}.")
10558 (license license:gpl3+)))
683cac58
LP
10559
10560(define-public gnome-builder
10561 (package
10562 (name "gnome-builder")
10563 (version "3.36.1")
10564 (source (origin
10565 (method url-fetch)
10566 (uri (string-append "mirror://gnome/sources/" name "/"
10567 (version-major+minor version) "/"
10568 name "-" version ".tar.xz"))
10569 (sha256
10570 (base32
10571 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
10572 (build-system meson-build-system)
10573 (arguments
10574 `(#:configure-flags (list "-Dnetwork_tests=false"
10575 ;; TODO: Enable all plugins...
10576 "-Dplugin_clang=false"
10577 "-Dplugin_flatpak=false"
10578 "-Dplugin_glade=false"
10579 ;; ... except this one.
10580 "-Dplugin_update_manager=false")
10581 #:phases
10582 (modify-phases %standard-phases
10583 (add-after 'unpack 'patch-meson
10584 (lambda* (#:key inputs #:allow-other-keys)
10585 (substitute* "build-aux/meson/post_install.py"
10586 (("gtk-update-icon-cache") "true")
10587 (("update-desktop-database") "true"))
10588 (substitute* "src/libide/meson.build"
10589 (("/usr/lib")
10590 (string-append (assoc-ref inputs "python-pygobject")
10591 "/lib")))
10592 #t))
10593 (add-before 'check 'pre-check
10594 (lambda _
10595 (system "Xvfb :1 &")
10596 (setenv "DISPLAY" ":1")
10597 #t)))))
10598 (inputs
10599 `(("devhelp" ,devhelp)
10600 ("gspell" ,gspell)
10601 ("gtk+" ,gtk+)
10602 ("json-glib" ,json-glib)
10603 ("jsonrpc-glib" ,jsonrpc-glib)
10604 ("libdazzle" ,libdazzle)
10605 ("libgit2-glib" ,libgit2-glib)
10606 ("libpeas" ,libpeas)
10607 ("python-pygobject" ,python-pygobject)
10608 ("sysprof" ,sysprof)
10609 ("template-glib" ,template-glib)
10610 ("vte" ,vte)
10611 ("webkitgtk" ,webkitgtk)))
10612 (propagated-inputs
10613 `(("gtksourceview" ,gtksourceview))) ;needed for settings
10614 (native-inputs
10615 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10616 ("glib:bin" ,glib "bin")
10617 ("gettext" ,gettext-minimal)
10618 ("pkg-config" ,pkg-config)
10619 ("vala" ,vala)
10620 ("xorg-server" ,xorg-server-for-tests)))
10621 (home-page "https://wiki.gnome.org/Apps/Builder")
10622 (synopsis "Toolsmith for GNOME-based applications")
876d022c
LC
10623 (description "Builder aims to be an integrated development
10624environment (IDE) for writing GNOME-based software. It features fuzzy search,
10625auto-completion, a mini code map, documentation browsing, Git integration, an
10626integrated profiler via Sysprof, debugging support, and more.")
683cac58 10627 (license license:gpl3+)))