gnu: brasero: Fix-up inputs.
[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>
44a06c94 3;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
29a7c98a 4;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
7108425c 5;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
58d32305 6;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
8b877545 7;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
7aab13f1 8;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
63ad9b80 9;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
1e7464a9 10;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
7d3bb433 11;;; Copyright © 2015, 2016, 2017, 2018, 2019 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>
0528f70d 14;;; Copyright © 2015, 2016, 2017, 2018, 2019 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>
47956fa0 22;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
e5e1df4d 23;;; Copyright © 2016 David Craven <david@craven.ch>
fa75a213 24;;; Copyright © 2016, 2017, 2018, 2019 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>
dcfa0acd 30;;; Copyright © 2017 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>
ec47c07d 37;;; Copyright © 2019 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>
aa51d92c 42;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
ad6e168b 43;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
93beace0 44;;; Copyright © 2019 David Wilson <david@daviwil.com>
4e868d22 45;;; Copyright © 2019 Raghav Gururajan <raghavgururajan@disroot.org>
995b7261
AE
46;;;
47;;; This file is part of GNU Guix.
48;;;
49;;; GNU Guix is free software; you can redistribute it and/or modify it
50;;; under the terms of the GNU General Public License as published by
51;;; the Free Software Foundation; either version 3 of the License, or (at
52;;; your option) any later version.
53;;;
54;;; GNU Guix is distributed in the hope that it will be useful, but
55;;; WITHOUT ANY WARRANTY; without even the implied warranty of
56;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
57;;; GNU General Public License for more details.
58;;;
59;;; You should have received a copy of the GNU General Public License
60;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
61
62(define-module (gnu packages gnome)
ed19903d 63 #:use-module (gnu packages)
ba5dd105 64 #:use-module (gnu packages admin)
411ba511 65 #:use-module (gnu packages aspell)
75016d07 66 #:use-module (gnu packages autotools)
7b212526 67 #:use-module (gnu packages avahi)
b29909b4 68 #:use-module (gnu packages backup)
6a180f6f 69 #:use-module (gnu packages base)
1e33331c 70 #:use-module (gnu packages bash)
5698b8b8 71 #:use-module (gnu packages bison)
aa51d92c 72 #:use-module (gnu packages boost)
5fc9b6c1 73 #:use-module (gnu packages build-tools)
df217748 74 #:use-module (gnu packages calendar)
b29909b4 75 #:use-module (gnu packages cdrom)
df12f04a 76 #:use-module (gnu packages check)
d61a894b 77 #:use-module (gnu packages cmake)
b29909b4 78 #:use-module (gnu packages compression)
8f523eb9 79 #:use-module (gnu packages crates-io)
23a22af6 80 #:use-module (gnu packages cups)
6e1bb642 81 #:use-module (gnu packages curl)
c3f29bc9 82 #:use-module (gnu packages cyrus-sasl)
6e1bb642 83 #:use-module (gnu packages databases)
255d1bbe 84 #:use-module (gnu packages dbm)
c769cf9f 85 #:use-module (gnu packages djvu)
ba5dd105 86 #:use-module (gnu packages dns)
b4ce6300 87 #:use-module (gnu packages docbook)
b29909b4 88 #:use-module (gnu packages documentation)
329d731b 89 #:use-module (gnu packages enchant)
b29909b4
TGR
90 #:use-module (gnu packages flex)
91 #:use-module (gnu packages fonts)
e762d943 92 #:use-module (gnu packages file-systems)
a56be436 93 #:use-module (gnu packages fontutils)
b29909b4 94 #:use-module (gnu packages freedesktop)
dfc407f3 95 #:use-module (gnu packages game-development)
fed5a689 96 #:use-module (gnu packages gettext)
b29909b4
TGR
97 #:use-module (gnu packages ghostscript)
98 #:use-module (gnu packages gl)
995b7261 99 #:use-module (gnu packages glib)
c1354b90 100 #:use-module (gnu packages gnupg)
23a22af6 101 #:use-module (gnu packages gnuzilla)
b29909b4
TGR
102 #:use-module (gnu packages gperf)
103 #:use-module (gnu packages graphviz)
85f5dc19 104 #:use-module (gnu packages gstreamer)
d9c1a22b 105 #:use-module (gnu packages gtk)
6b888eff 106 #:use-module (gnu packages guile)
b645146f 107 #:use-module (gnu packages ibus)
03be9874 108 #:use-module (gnu packages icu4c)
b29909b4
TGR
109 #:use-module (gnu packages image)
110 #:use-module (gnu packages imagemagick)
111 #:use-module (gnu packages inkscape)
9cc98f8a 112 #:use-module (gnu packages iso-codes)
b29909b4 113 #:use-module (gnu packages kerberos)
85f5dc19 114 #:use-module (gnu packages libcanberra)
b64e217f 115 #:use-module (gnu packages libunistring)
75016d07 116 #:use-module (gnu packages libusb)
b29909b4 117 #:use-module (gnu packages linux)
4e3fc547 118 #:use-module (gnu packages lirc)
7b212526 119 #:use-module (gnu packages lua)
b29909b4 120 #:use-module (gnu packages mail)
03be9874 121 #:use-module (gnu packages mp3)
b29909b4 122 #:use-module (gnu packages multiprecision)
64fce637 123 #:use-module (gnu packages music)
b29909b4
TGR
124 #:use-module (gnu packages ncurses)
125 #:use-module (gnu packages nettle)
ba5dd105 126 #:use-module (gnu packages networking)
5fc9b6c1 127 #:use-module (gnu packages ninja)
aff0cce9 128 #:use-module (gnu packages nss)
b29909b4 129 #:use-module (gnu packages openldap)
b645146f 130 #:use-module (gnu packages password-utils)
de1215e2 131 #:use-module (gnu packages pcre)
b29909b4 132 #:use-module (gnu packages pdf)
27477d2d 133 #:use-module (gnu packages perl)
f70d8383 134 #:use-module (gnu packages photo)
995b7261 135 #:use-module (gnu packages pkg-config)
b29909b4
TGR
136 #:use-module (gnu packages polkit)
137 #:use-module (gnu packages popt)
7d3bb433 138 #:use-module (gnu packages pretty-print)
23a22af6 139 #:use-module (gnu packages pulseaudio)
995b7261 140 #:use-module (gnu packages python)
00014781
RW
141 #:use-module (gnu packages python-crypto)
142 #:use-module (gnu packages python-web)
44d10b1f 143 #:use-module (gnu packages python-xyz)
cce0da5e 144 #:use-module (gnu packages rdesktop)
b29909b4 145 #:use-module (gnu packages readline)
a76d0f03 146 #:use-module (gnu packages ruby)
ec47c07d 147 #:use-module (gnu packages rust)
b29909b4 148 #:use-module (gnu packages samba)
75016d07 149 #:use-module (gnu packages scanner)
240cee8a 150 #:use-module (gnu packages selinux)
c27e02bf 151 #:use-module (gnu packages slang)
b29909b4
TGR
152 #:use-module (gnu packages speech)
153 #:use-module (gnu packages spice)
cd0322a3 154 #:use-module (gnu packages sqlite)
4a1bf090 155 #:use-module (gnu packages ssh)
8f9ac901 156 #:use-module (gnu packages tex)
33dc54b0 157 #:use-module (gnu packages time)
a7fd7b68 158 #:use-module (gnu packages tls)
3c5dbd2b 159 #:use-module (gnu packages version-control)
b29909b4 160 #:use-module (gnu packages video)
59132b80 161 #:use-module (gnu packages virtualization)
f2b96b3a 162 #:use-module (gnu packages vpn)
a18f8eaf 163 #:use-module (gnu packages web)
b29909b4
TGR
164 #:use-module (gnu packages web)
165 #:use-module (gnu packages webkit)
166 #:use-module (gnu packages xdisorg)
167 #:use-module (gnu packages xiph)
168 #:use-module (gnu packages xml)
d633f2f6 169 #:use-module (gnu packages xorg)
b29909b4 170 #:use-module (gnu packages xorg)
a76d0f03 171 #:use-module (gnu artwork)
8f523eb9 172 #:use-module (guix build-system cargo)
b29909b4
TGR
173 #:use-module (guix build-system cmake)
174 #:use-module (guix build-system glib-or-gtk)
175 #:use-module (guix build-system gnu)
176 #:use-module (guix build-system meson)
08be02be 177 #:use-module (guix build-system python)
b29909b4
TGR
178 #:use-module (guix build-system trivial)
179 #:use-module (guix download)
180 #:use-module (guix git-download)
181 #:use-module ((guix licenses) #:prefix license:)
182 #:use-module (guix packages)
183 #:use-module (guix utils)
a76d0f03 184 #:use-module (guix gexp)
8f523eb9
EF
185 #:use-module (guix monads)
186 #:use-module (guix store)
4e3fdeb7 187 #:use-module (ice-9 match)
c024ae36 188 #:use-module (srfi srfi-1))
85f5dc19
AE
189
190(define-public brasero
191 (package
192 (name "brasero")
e2bf423a 193 (version "3.12.2")
85f5dc19
AE
194 (source (origin
195 (method url-fetch)
d1df7554 196 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 197 (version-major+minor version) "/"
d1df7554 198 "brasero-" version ".tar.xz"))
85f5dc19
AE
199 (sha256
200 (base32
e2bf423a 201 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 202 (build-system glib-or-gtk-build-system)
e8627cd9
DH
203 (arguments
204 `(#:configure-flags (list
205 (string-append "--with-girdir="
206 (assoc-ref %outputs "out")
207 "/share/gir-1.0")
208 (string-append "--with-typelibdir="
209 (assoc-ref %outputs "out")
ce426deb
TD
210 "/lib/girepository-1.0"))
211 #:phases
212 (modify-phases %standard-phases
213 (add-before 'configure 'embed-growisofs
214 (lambda* (#:key inputs #:allow-other-keys)
215 (substitute* "plugins/growisofs/burn-growisofs.c"
216 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 217 #t)))))
85f5dc19
AE
218 (propagated-inputs
219 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
220 (native-inputs
221 `(("intltool" ,intltool)
ba549e17 222 ("itstool" ,itstool)
426adbe8 223 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 224 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 225 ("pkg-config" ,pkg-config)))
85f5dc19 226 (inputs
ce426deb
TD
227 `(("dvd+rw-tools" ,dvd+rw-tools)
228 ("glib" ,glib)
85f5dc19
AE
229 ("gnome-doc-utils" ,gnome-doc-utils)
230 ("gstreamer" ,gstreamer)
231 ("gst-plugins-base" ,gst-plugins-base)
232 ("gtk+" ,gtk+)
85f5dc19
AE
233 ("libcanberra" ,libcanberra)
234 ("libice" ,libice)
235 ("libnotify" ,libnotify)
236 ("libsm" ,libsm)
e8627cd9 237 ("libxml2" ,libxml2)
e8627cd9 238 ("totem-pl-parser" ,totem-pl-parser)))
85f5dc19
AE
239 (home-page "https://projects.gnome.org/brasero/")
240 (synopsis "CD/DVD burning tool for Gnome")
241 (description "Brasero is an application to burn CD/DVD for the Gnome
242Desktop. It is designed to be as simple as possible and has some unique
243features to enable users to create their discs easily and quickly.")
1dd26275 244 (license license:gpl2+)))
995b7261 245
d61a894b
CB
246(define-public deja-dup
247 (package
248 (name "deja-dup")
249 (version "34.3")
250 (source (origin
251 (method url-fetch)
252 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
253 (sha256
254 (base32
255 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
256 (patches
257 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
258 (build-system glib-or-gtk-build-system)
259 (arguments
260 `(#:modules ((guix build gnu-build-system)
261 ((guix build cmake-build-system) #:prefix cmake:)
262 (guix build glib-or-gtk-build-system)
263 (guix build utils))
264 #:imported-modules (,@%glib-or-gtk-build-system-modules
265 (guix build cmake-build-system))
266 #:test-target "test"
267 #:configure-flags (list (string-append
268 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
269 (string-append
270 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
271 #:phases
272 (modify-phases %standard-phases
273 (add-after 'unpack 'patch-lockfile-deletion
274 (lambda rest
275 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
276 (("/bin/rm")
277 (which "rm")))))
278 (replace 'configure
279 (assoc-ref cmake:%standard-phases 'configure))
280 (delete 'check) ;; Fails due to issues with DBus
281 (add-after 'install 'wrap-deja-dup
282 (lambda* (#:key inputs outputs #:allow-other-keys)
283 (let ((python (assoc-ref inputs "python"))
284 (python-path (getenv "PYTHONPATH"))
285 (duplicity (assoc-ref inputs "duplicity"))
286 (out (assoc-ref outputs "out")))
287 (for-each
288 (lambda (program)
289 (wrap-program program
290 `("PATH" ":" prefix (,(string-append python "/bin")
291 ,(string-append duplicity "/bin"))))
292 (wrap-program program
293 `("PYTHONPATH" ":" prefix (,python-path))))
294
295 (find-files (string-append out "/bin")))
296 #t))))))
297 (inputs
298 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
299 ("gobject-introspection" ,gobject-introspection)
300 ("duplicity" ,duplicity)
61506fe5 301 ("python" ,python-2)
d61a894b
CB
302 ("python-pygobject" ,python2-pygobject)
303 ("gtk+" ,gtk+)
304 ("libnotify" ,libnotify)
305 ("libpeas" ,libpeas)
306 ("libsecret" ,libsecret)
307 ("packagekit" ,packagekit)))
308 (native-inputs
309 `(("pkg-config" ,pkg-config)
310 ("vala" ,vala)
311 ("gettext" ,gettext-minimal)
312 ("itstool" ,itstool)
313 ("intltool" ,intltool)
c69959f0 314 ("cmake" ,cmake-minimal)))
d61a894b
CB
315 (home-page "https://launchpad.net/deja-dup")
316 (synopsis "Simple backup tool, for regular encrypted backups")
317 (description
318 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
319uses duplicity as the backend, which supports incremental backups and storage
320either on a local, or remote machine via a number of methods.")
321 (license license:gpl3+)))
322
a56be436
RJ
323(define-public dia
324 ;; This version from GNOME's repository includes fixes for compiling with
325 ;; recent versions of the build tools. The latest activity on the
326 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
327 ;; fixes in 2016.
328 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
329 (package
330 (name "dia")
331 (version (string-append "0.97.2-" (string-take commit 7)))
332 (source (origin
333 (method git-fetch)
334 (uri (git-reference
335 (url "https://git.gnome.org/browse/dia")
336 (commit commit)))
337 (file-name (string-append name "-" version "-checkout"))
338 (sha256
339 (base32
340 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
341 (build-system gnu-build-system)
342 (inputs
343 `(("glib" ,glib "bin")
344 ("pango" ,pango)
345 ("gdk-pixbuf" ,gdk-pixbuf)
346 ("gtk+" ,gtk+-2)
347 ("libxml2" ,libxml2)
348 ("freetype" ,freetype)
349 ("libart-lgpl" ,libart-lgpl)))
350 (native-inputs
351 `(("intltool" ,intltool)
352 ("pkg-config" ,pkg-config)
353 ("automake" ,automake)
354 ("autoconf" ,autoconf)
355 ("libtool" ,libtool)
356 ("perl" ,perl)
357 ("python-wrapper" ,python-wrapper)))
358 (arguments
359 `(#:phases
360 (modify-phases %standard-phases
d10092b8 361 (add-after 'unpack 'run-autogen
a56be436
RJ
362 (lambda _
363 (system* "sh" "autogen.sh"))))))
364 (home-page "https://wiki.gnome.org/Apps/Dia")
365 (synopsis "Diagram creation for GNOME")
366 (description "Dia can be used to draw different types of diagrams, and
367includes support for UML static structure diagrams (class diagrams), entity
368relationship modeling, and network diagrams. The program supports various file
369formats like PNG, SVG, PDF and EPS.")
370 (license license:gpl2+))))
371
d0b19e44
RW
372;; This is the unstable release, but it is required for the current stable
373;; release of gvfs (1.38.1).
adc5cb1b
KK
374(define-public libgdata
375 (package
376 (name "libgdata")
d0b19e44 377 (version "0.17.9")
adc5cb1b
KK
378 (source (origin
379 (method url-fetch)
380 (uri (string-append "mirror://gnome/sources/" name "/"
381 (version-major+minor version) "/"
382 name "-" version ".tar.xz"))
383 (sha256
384 (base32
d0b19e44 385 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
386 (build-system gnu-build-system)
387 (arguments
388 '(#:phases
389 (modify-phases %standard-phases
448052b7
TGR
390 (add-before 'check 'disable-failing-tests
391 (lambda _
392 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
393 ;; They have been removed in libgdata 0.17.6, so just do the same.
394 (substitute* "gdata/tests/Makefile"
395 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
396 #t)))))
397 (native-inputs
398 `(("glib:bin" ,glib "bin")
399 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
400 ("intltool" ,intltool)
401 ("pkg-config" ,pkg-config)
402 ("uhttpmock" ,uhttpmock)))
403 (inputs
404 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 405 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
406 (propagated-inputs
407 `(("gcr" ,gcr)
d0b19e44 408 ("glib" ,glib)
14c297fd 409 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 410 ("json-glib" ,json-glib)
adc5cb1b 411 ("liboauth" ,liboauth)
d0b19e44 412 ("libsoup" ,libsoup)
adc5cb1b
KK
413 ("libxml2" ,libxml2)))
414 (home-page "https://wiki.gnome.org/Projects/libgdata")
415 (synopsis "Library for accessing online service APIs")
416 (description
417 "libgdata is a GLib-based library for accessing online service APIs using
418the GData protocol — most notably, Google's services. It provides APIs to
419access the common Google services, and has full asynchronous support.")
420 (license license:lgpl2.1+)))
421
94e10cf4
KK
422(define-public libgxps
423 (package
424 (name "libgxps")
66470a5a 425 (version "0.3.1")
94e10cf4
KK
426 (source (origin
427 (method url-fetch)
7f10628c 428 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
429 (version-major+minor version) "/"
430 name "-" version ".tar.xz"))
431 (sha256
432 (base32
66470a5a 433 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 434 (build-system meson-build-system)
94e10cf4
KK
435 (native-inputs
436 `(("gobject-introspection" ,gobject-introspection)
437 ("pkg-config" ,pkg-config)))
438 (inputs
c8d62d93 439 `(("gtk+" ,gtk+)
b6b3e512 440 ("libjpeg" ,libjpeg-turbo)
94e10cf4 441 ("lcms" ,lcms)
0a6e9e13 442 ("libtiff" ,libtiff)))
c8d62d93
MB
443 (propagated-inputs
444 ;; In Requires of libgxps.pc.
445 `(("cairo" ,cairo)
446 ("glib" ,glib)
447 ("libarchive" ,libarchive)))
94e10cf4
KK
448 (home-page "https://wiki.gnome.org/Projects/libgxps")
449 (synopsis "GObject-based library for handling and rendering XPS documents")
450 (description
451 "libgxps is a GObject-based library for handling and rendering XPS
452documents. This package also contains binaries that can convert XPS documents
453to other formats.")
454 (license license:lgpl2.1+)))
455
7aab13f1
ML
456(define-public gnome-common
457 (package
458 (name "gnome-common")
af83490d 459 (version "3.18.0")
7aab13f1
ML
460 (source
461 (origin
462 (method url-fetch)
463 (uri (string-append "mirror://gnome/sources/" name "/"
464 (version-major+minor version) "/"
465 name "-" version ".tar.xz"))
466 (sha256
467 (base32
af83490d 468 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
469 (build-system gnu-build-system)
470 (home-page "https://www.gnome.org/")
471 (synopsis "Bootstrap GNOME modules built from Git")
472 (description "gnome-common contains various files needed to bootstrap
473GNOME modules built from Git. It contains a common \"autogen.sh\" script that
474can be used to configure a source directory checked out from Git and some
475commonly used macros.")
476 (license license:gpl2+)))
477
4e868d22
RG
478(define-public gnome-contacts
479 (package
480 (name "gnome-contacts")
6a6138b2 481 (version "3.32.1")
4e868d22
RG
482 (source (origin
483 (method url-fetch)
484 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
485 (version-major+minor version) "/"
486 name "-" version ".tar.xz"))
487 (sha256
488 (base32
6a6138b2 489 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
490 (build-system meson-build-system)
491 (arguments
492 `(#:phases
493 (modify-phases %standard-phases
494 (add-after 'unpack 'generate-vapis
495 (lambda* (#:key inputs #:allow-other-keys)
496 ;; To generate goa's missing .vapi file
497 (define goa
498 (assoc-ref inputs "gnome-online-accounts:lib"))
499
500 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
501 "--library=goa-1.0"
502 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
503 #t)))))
504 (native-inputs
505 `(("glib:bin" ,glib "bin")
506 ("gtk+:bin" ,gtk+ "bin")
507 ("pkg-config" ,pkg-config)))
508 (inputs
509 `(("cheese" ,cheese)
510 ("docbook-xml" ,docbook-xml)
511 ("dockbook-xsl" ,docbook-xsl)
512 ("evolution-data-server" ,evolution-data-server)
513 ("gettext" ,gettext-minimal)
514 ("gnome-desktop" ,gnome-desktop)
515 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
516 ("gobject-introspection" ,gobject-introspection)
517 ("gst-plugins-base" ,gst-plugins-base)
518 ("gtk+" ,gtk+)
519 ("libgee" ,libgee)
520 ("libxslt" ,libxslt)
521 ("telepathy-glib" ,telepathy-glib)
522 ("vala" ,vala)))
523 (propagated-inputs
524 `(("folks", folks)
525 ("telepathy-mission-control" ,telepathy-mission-control)))
526 (synopsis "GNOME's integrated address book")
527 (description
528 "GNOME Contacts organizes your contact information from online and
529offline sources, providing a centralized place for managing your contacts.")
530 (home-page "https://wiki.gnome.org/Apps/Contacts")
531 (license license:gpl2+)))
532
9cc98f8a
CR
533(define-public gnome-desktop
534 (package
535 (name "gnome-desktop")
e8a26caa 536 (version "3.32.2")
9cc98f8a
CR
537 (source
538 (origin
539 (method url-fetch)
b38e45d8
EB
540 (uri (string-append "mirror://gnome/sources/" name "/"
541 (version-major+minor version) "/"
9cc98f8a
CR
542 name "-" version ".tar.xz"))
543 (sha256
544 (base32
e8a26caa
KK
545 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
546 (build-system meson-build-system)
a0fe7c06
CB
547 (arguments
548 '(#:phases
549 (modify-phases %standard-phases
550 (add-before 'configure 'patch-path
551 (lambda* (#:key inputs #:allow-other-keys)
552 (let ((libc (assoc-ref inputs "libc")))
553 (substitute* "libgnome-desktop/gnome-languages.c"
554 (("\"locale\"")
555 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
556 #t)))
557 (add-before 'check 'pre-check
558 (lambda* (#:key inputs #:allow-other-keys)
559 ;; Tests require a running X server and locales.
560 (system "Xvfb :1 &")
561 (setenv "DISPLAY" ":1")
562 (setenv "GUIX_LOCPATH"
563 (string-append (assoc-ref inputs "glibc-locales")
564 "/lib/locale"))
565 #t)))))
9cc98f8a 566 (native-inputs
e8a26caa
KK
567 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
568 ("glibc-locales" ,glibc-locales) ; for tests
569 ("gobject-introspection" ,gobject-introspection)
a8340482 570 ("itstool" ,itstool)
bcb354ad
SB
571 ("intltool" ,intltool)
572 ("pkg-config" ,pkg-config)
e8a26caa
KK
573 ("xmllint" ,libxml2)
574 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
575 (propagated-inputs
576 ;; Required by gnome-desktop-3.0.pc.
577 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 578 ("gtk+" ,gtk+)
9cc98f8a 579 ("iso-codes" ,iso-codes)
9863ce20 580 ("libseccomp" ,libseccomp)
9cc98f8a 581 ("libx11" ,libx11)
e8a26caa
KK
582 ("xkeyboard-config" ,xkeyboard-config)))
583 (inputs
584 `(("gdk-pixbuf" ,gdk-pixbuf)
585 ("glib" ,glib)
9cc98f8a
CR
586 ("libxext" ,libxext)
587 ("libxkbfile" ,libxkbfile)
e8a26caa 588 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
589 (home-page "https://www.gnome.org/")
590 (synopsis
35b9e423 591 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
592 (description
593 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
594on the desktop, but that cannot live in the platform for various reasons.
595There is no API or ABI guarantee, although we are doing our best to provide
596stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
597
598The gnome-about program helps find which version of GNOME is installed.")
599 ; Some bits under the LGPL.
1dd26275 600 (license license:gpl2+)))
9cc98f8a 601
995b7261
AE
602(define-public gnome-doc-utils
603 (package
604 (name "gnome-doc-utils")
605 (version "0.20.10")
606 (source
607 (origin
608 (method url-fetch)
b38e45d8
EB
609 (uri (string-append "mirror://gnome/sources/" name "/"
610 (version-major+minor version) "/"
995b7261
AE
611 name "-" version ".tar.xz"))
612 (sha256
613 (base32
614 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
615 (build-system gnu-build-system)
c4c4cc05 616 (native-inputs
995b7261 617 `(("intltool" ,intltool)
b4ce6300 618 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 619 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
620 ("libxml2" ,libxml2)
621 ("libxslt" ,libxslt)
622 ("pkg-config" ,pkg-config)
623 ("python-2" ,python-2)))
995b7261
AE
624 (home-page "https://wiki.gnome.org/GnomeDocUtils")
625 (synopsis
626 "Documentation utilities for the Gnome project")
627 (description
628 "Gnome-doc-utils is a collection of documentation utilities for the
629Gnome project. It includes xml2po tool which makes it easier to translate
630and keep up to date translations of documentation.")
1dd26275 631 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 632
6c4f7022
DC
633(define-public gnome-disk-utility
634 (package
635 (name "gnome-disk-utility")
e106d0a6 636 (version "3.32.1")
6c4f7022
DC
637 (source (origin
638 (method url-fetch)
639 (uri (string-append "mirror://gnome/sources/" name "/"
640 (version-major+minor version) "/"
641 name "-" version ".tar.xz"))
642 (sha256
643 (base32
e106d0a6 644 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 645 (build-system meson-build-system)
321c73c3
EF
646 (arguments
647 '(#:phases
648 (modify-phases %standard-phases
649 (add-after 'unpack 'skip-gtk-update-icon-cache
650 ;; Don't create 'icon-theme.cache'.
651 (lambda _
652 (substitute* "meson_post_install.py"
653 (("gtk-update-icon-cache") "true"))
654 #t)))))
6c4f7022
DC
655 (native-inputs
656 `(("glib:bin" ,glib "bin")
657 ("intltool" ,intltool)
658 ("pkg-config" ,pkg-config)
659 ("docbook-xml" ,docbook-xml)
660 ("docbook-xsl" ,docbook-xsl)
661 ("libxml2" ,libxml2)
662 ("libxslt" ,libxslt)))
663 (inputs
664 `(("glib" ,glib)
665 ("appstream-glib" ,appstream-glib)
666 ("gnome-settings-daemon" ,gnome-settings-daemon)
667 ("gtk+" ,gtk+)
668 ("libcanberra" ,libcanberra)
669 ("libdvdread" ,libdvdread)
670 ("libnotify" ,libnotify)
671 ("libpwquality" ,libpwquality)
672 ("libsecret" ,libsecret)
673 ("udisks" ,udisks)))
674 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
675 (synopsis "Disk management utility for GNOME")
676 (description "Disk management utility for GNOME.")
677 (license license:gpl2+)))
678
8ff49011
RW
679(define-public gcr
680 (package
681 (name "gcr")
bea6b829 682 (version "3.28.1")
8ff49011 683 (source (origin
0daf0efb
RW
684 (method url-fetch)
685 (uri (string-append "mirror://gnome/sources/" name "/"
686 (version-major+minor version) "/"
687 name "-" version ".tar.xz"))
688 (sha256
689 (base32
bea6b829 690 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
03ecf85a
MB
691 (patches
692 (list
693 ;; This patch solves an ordering issue that showed up when
694 ;; running the test suite against newer Glib 2.60. See
695 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
696 (origin
697 (method url-fetch)
698 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
699 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
700 (file-name "gcr-hashtable-ordering.patch")
701 (sha256
702 (base32
703 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
8ff49011
RW
704 (build-system gnu-build-system)
705 (arguments
0daf0efb
RW
706 '(#:phases
707 (modify-phases %standard-phases
708 ;; These fail because /var/lib/dbus/machine-id is not present in the
709 ;; build environment.
710 (add-after 'unpack 'disable-failing-tests
711 (lambda _
712 (substitute* "gcr/test-system-prompt.c"
713 (("g_test_add") "//")
714 (("return.*") "return 0;"))
715 #t))
716 (add-before 'check 'pre-check
717 (lambda _
718 ;; Some tests expect to write to $HOME.
719 (setenv "HOME" "/tmp")
720 #t)))))
8ff49011
RW
721 (inputs
722 `(("dbus" ,dbus)
0daf0efb 723 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
724 ("libgcrypt" ,libgcrypt)))
725 (native-inputs
0daf0efb 726 `(("python" ,python-2) ;for tests
8ff49011
RW
727 ("pkg-config" ,pkg-config)
728 ("glib" ,glib "bin")
2af4f5b0
SB
729 ("gobject-introspection" ,gobject-introspection)
730 ("intltool" ,intltool)
0daf0efb 731 ("libxml2" ,libxml2)
bea6b829 732 ("vala" ,vala)
2af4f5b0 733 ("xsltproc" ,libxslt)))
8ff49011
RW
734 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
735 (propagated-inputs
736 `(("p11-kit" ,p11-kit)
737 ("glib" ,glib)
738 ("gtk+" ,gtk+)))
f032d0be 739 (home-page "https://www.gnome.org")
8ff49011
RW
740 (synopsis "Libraries for displaying certificates and accessing key stores")
741 (description
742 "The GCR package contains libraries used for displaying certificates and
743accessing key stores. It also provides the viewer for crypto files on the
744GNOME Desktop.")
745 (license license:lgpl2.1+)))
746
c1354b90
LC
747(define-public libgnome-keyring
748 (package
749 (name "libgnome-keyring")
5e8aec2c 750 (version "3.12.0")
c1354b90
LC
751 (source (origin
752 (method url-fetch)
b38e45d8
EB
753 (uri (string-append "mirror://gnome/sources/" name "/"
754 (version-major+minor version) "/"
755 name "-" version ".tar.xz"))
c1354b90
LC
756 (sha256
757 (base32
5e8aec2c 758 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 759 (build-system gnu-build-system)
c1354b90 760 (inputs
c4c4cc05 761 `(("libgcrypt" ,libgcrypt)
c1354b90 762 ("dbus" ,dbus)))
c4c4cc05
JD
763 (native-inputs
764 `(("pkg-config" ,pkg-config)
426adbe8 765 ("glib" ,glib "bin")
c4c4cc05 766 ("intltool" ,intltool)))
c1354b90
LC
767 (propagated-inputs
768 ;; Referred to in .h files and .pc.
769 `(("glib" ,glib)))
f032d0be 770 (home-page "https://www.gnome.org")
c1354b90
LC
771 (synopsis "Accessing passwords from the GNOME keyring")
772 (description
773 "Client library to access passwords from the GNOME keyring.")
774
775 ;; Though a couple of files are LGPLv2.1+.
1dd26275 776 (license license:lgpl2.0+)))
c1354b90 777
e99a3d6f
RW
778(define-public gnome-keyring
779 (package
780 (name "gnome-keyring")
ab35cc6e 781 (version "3.28.2")
e99a3d6f
RW
782 (source (origin
783 (method url-fetch)
784 (uri (string-append "mirror://gnome/sources/" name "/"
785 (version-major+minor version) "/"
786 name "-" version ".tar.xz"))
787 (sha256
788 (base32
ab35cc6e 789 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
790 (build-system gnu-build-system)
791 (arguments
792 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
793 ;not exist
794 #:configure-flags
795 (list
796 (string-append "--with-pkcs11-config="
797 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
798 (string-append "--with-pkcs11-modules="
799 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
800 #:phases
801 (modify-phases %standard-phases
ab35cc6e
RW
802 (add-after 'unpack 'fix-/bin/sh-reference
803 (lambda _
804 (substitute* "po/Makefile.in.in"
805 (("/bin/sh") (which "sh")))
806 #t))
5120f24f
RW
807 (add-after 'unpack 'fix-docbook
808 (lambda* (#:key inputs #:allow-other-keys)
809 (substitute* "docs/Makefile.am"
810 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
811 (string-append (assoc-ref inputs "docbook-xsl")
812 "/xml/xsl/docbook-xsl-"
813 ,(package-version docbook-xsl)
814 "/manpages/docbook.xsl")))
815 (setenv "XML_CATALOG_FILES"
816 (string-append (assoc-ref inputs "docbook-xml")
817 "/xml/dtd/docbook/catalog.xml"))
818 ;; Rerun the whole thing to avoid version mismatch ("This is
819 ;; Automake 1.15.1, but the definition used by this
820 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
821 ;; use 'autoreconf' because it insists on running 'libtoolize'.
822 (invoke "autoconf")
823 (invoke "aclocal")
824 (invoke "automake" "-ac"))))))
e99a3d6f
RW
825 (inputs
826 `(("libgcrypt" ,libgcrypt)
1a0b2d82 827 ("linux-pam" ,linux-pam)
ab35cc6e 828 ("openssh" ,openssh)
e99a3d6f
RW
829 ("dbus" ,dbus)
830 ("gcr" ,gcr)))
831 (native-inputs
832 `(("pkg-config" ,pkg-config)
833 ("glib" ,glib "bin")
5120f24f 834 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
835 ("python" ,python-2) ;for tests
836 ("intltool" ,intltool)
837 ("autoconf" ,autoconf)
838 ("automake" ,automake)
839 ("libxslt" ,libxslt) ;for documentation
840 ("docbook-xml" ,docbook-xml-4.2)
841 ("docbook-xsl" ,docbook-xsl)))
f032d0be 842 (home-page "https://www.gnome.org")
e99a3d6f
RW
843 (synopsis "Daemon to store passwords and encryption keys")
844 (description
845 "gnome-keyring is a program that keeps passwords and other secrets for
846users. It is run as a daemon in the session, similar to ssh-agent, and other
847applications locate it via an environment variable or D-Bus.
848
849The program can manage several keyrings, each with its own master password,
850and there is also a session keyring which is never stored to disk, but
851forgotten when the session ends.")
852 (license license:lgpl2.1+)))
853
c1354b90
LC
854(define-public evince
855 (package
856 (name "evince")
e24e6522 857 (version "3.34.1")
c1354b90
LC
858 (source (origin
859 (method url-fetch)
b38e45d8
EB
860 (uri (string-append "mirror://gnome/sources/" name "/"
861 (version-major+minor version) "/"
862 name "-" version ".tar.xz"))
c1354b90
LC
863 (sha256
864 (base32
e24e6522 865 "1pr6fvbaam1mzxjwyqd53hcxzdjzf73idn10j4j7n54nwg6hgr45"))))
121de2e1 866 (build-system glib-or-gtk-build-system)
c1354b90
LC
867 (arguments
868 `(#:configure-flags '("--disable-nautilus")
554b2dac
SB
869 #:phases
870 (modify-phases %standard-phases
871 (add-before 'install 'skip-gtk-update-icon-cache
872 ;; Don't create 'icon-theme.cache'.
873 (lambda _
874 (substitute* "data/Makefile"
875 (("gtk-update-icon-cache") "true"))
876 #t)))))
c1354b90 877 (inputs
9a096881
KK
878 `(("libarchive" ,libarchive)
879 ("libgxps" ,libgxps)
880 ("libspectre" ,libspectre)
c769cf9f 881 ("djvulibre" ,djvulibre)
c1354b90
LC
882 ("ghostscript" ,ghostscript)
883 ("poppler" ,poppler)
c769cf9f
SB
884 ("libtiff" ,libtiff)
885 ;; TODO:
c769cf9f
SB
886 ;; Build libkpathsea as a shared library for DVI support.
887 ;; ("libkpathsea" ,texlive-bin)
888 ("gnome-desktop" ,gnome-desktop)
c1354b90 889 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 890 ("gspell" ,gspell)
c1354b90 891 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 892 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
893 ("gdk-pixbuf" ,gdk-pixbuf)
894 ("atk" ,atk)
895 ("pango" ,pango)
896 ("gtk+" ,gtk+)
897 ("glib" ,glib)
898 ("libxml2" ,libxml2)
c1354b90
LC
899 ("libsm" ,libsm)
900 ("libice" ,libice)
96e42467 901 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
902 ("dconf" ,dconf)
903 ("libcanberra" ,libcanberra)
c769cf9f 904 ("libsecret" ,libsecret)
a271096b 905
c1354b90
LC
906 ;; For tests.
907 ("dogtail" ,python2-dogtail)))
96e42467 908 (native-inputs
bcb354ad
SB
909 `(("itstool" ,itstool)
910 ("intltool" ,intltool)
426adbe8 911 ("glib" ,glib "bin")
bcb354ad
SB
912 ("pkg-config" ,pkg-config)
913 ("xmllint" ,libxml2)))
c1354b90 914 (home-page
f032d0be 915 "https://www.gnome.org/projects/evince/")
c1354b90
LC
916 (synopsis "GNOME's document viewer")
917 (description
918 "Evince is a document viewer for multiple document formats. It
919currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
920of Evince is to replace the multiple document viewers that exist
96e42467 921on the GNOME Desktop with a single simple application.")
1dd26275 922 (license license:gpl2+)))
c1354b90 923
22e32e69
AE
924(define-public gsettings-desktop-schemas
925 (package
926 (name "gsettings-desktop-schemas")
c900dabd 927 (version "3.32.0")
22e32e69
AE
928 (source
929 (origin
930 (method url-fetch)
931 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 932 (version-major+minor version) "/"
22e32e69
AE
933 name "-" version ".tar.xz"))
934 (sha256
935 (base32
c900dabd
KK
936 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
937 (build-system meson-build-system)
65209ffa
LC
938 (arguments
939 '(#:phases (modify-phases %standard-phases
940 (add-after 'unpack 'set-adwaita-theme-file-name
941 (lambda* (#:key inputs #:allow-other-keys)
942 ;; Provide the correct file name of the default GNOME
943 ;; background, 'adwaita-timed.xml'.
944 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
945 (substitute* (find-files "schemas"
946 "\\.gschema\\.xml\\.in$")
947 (("@datadir@/backgrounds/gnome")
948 (string-append theme "/share/backgrounds/gnome")))
949 #t))))))
22e32e69 950 (inputs
65209ffa
LC
951 `(("glib" ,glib)
952 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
953 (native-inputs
954 `(("intltool" ,intltool)
426adbe8 955 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 956 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
957 ("pkg-config" ,pkg-config)))
958 (home-page "https://launchpad.net/gsettings-desktop-schemas")
959 (synopsis
960 "GNOME settings for various desktop components")
961 (description
962 "Gsettings-desktop-schemas contains a collection of GSettings schemas
963for settings shared by various components of the GNOME desktop.")
1dd26275 964 (license license:lgpl2.1+)))
22e32e69 965
27477d2d
AE
966(define-public icon-naming-utils
967 (package
968 (name "icon-naming-utils")
969 (version "0.8.90")
970 (source
971 (origin
972 (method url-fetch)
5cc3096c 973 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
974 version ".tar.bz2"))
975 (sha256
976 (base32
977 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
978 (build-system gnu-build-system)
979 (inputs
980 `(("perl" ,perl)
981 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
982 (arguments
983 '(#:phases
dc1d3cde
KK
984 (modify-phases %standard-phases
985 (add-after 'install 'set-load-paths
986 ;; Tell 'icon-name-mapping' where XML::Simple is.
987 (lambda* (#:key outputs #:allow-other-keys)
988 (let* ((out (assoc-ref outputs "out"))
989 (prog (string-append out "/libexec/icon-name-mapping")))
990 (wrap-program
991 prog
992 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
993 #t)))))
27477d2d
AE
994 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
995 (synopsis
996 "Utility to implement the Freedesktop Icon Naming Specification")
997 (description
998 "To help with the transition to the Freedesktop Icon Naming
999Specification, the icon naming utility maps the icon names used by the
1000GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1001 (license license:lgpl2.1+)))
27477d2d 1002
7d3f3651
AE
1003(define-public gnome-icon-theme
1004 (package
1005 (name "gnome-icon-theme")
b32f58dd 1006 (version "3.12.0")
7d3f3651
AE
1007 (source
1008 (origin
1009 (method url-fetch)
1010 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1011 (version-major+minor version) "/"
7d3f3651
AE
1012 name "-" version ".tar.xz"))
1013 (sha256
1014 (base32
b32f58dd 1015 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1016 (build-system gnu-build-system)
5613c27d
SB
1017 (arguments
1018 '(#:configure-flags
1019 ;; Don't create 'icon-theme.cache'.
1020 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1021 (true (string-append coreutils "/bin/true")))
1022 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1023 (native-inputs
5613c27d 1024 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1025 ("intltool" ,intltool)
1026 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1027 (home-page "https://wiki.gnome.org/Personalization")
1028 (synopsis "GNOME icon theme")
1029 (description "Icons for the GNOME desktop.")
1dd26275 1030 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1031
14eeefa2
SB
1032;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1033(define-public adwaita-icon-theme
1034 (package (inherit gnome-icon-theme)
1035 (name "adwaita-icon-theme")
9be59d7f 1036 (version "3.32.0")
14eeefa2
SB
1037 (source (origin
1038 (method url-fetch)
1039 (uri (string-append "mirror://gnome/sources/" name "/"
1040 (version-major+minor version) "/"
1041 name "-" version ".tar.xz"))
1042 (sha256
1043 (base32
9be59d7f 1044 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1045 (native-inputs
1046 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1047
ae792dba
RW
1048(define-public tango-icon-theme
1049 (package
1050 (name "tango-icon-theme")
1051 (version "0.8.90")
1052 (source (origin
1053 (method url-fetch)
1054 (uri (string-append "http://tango.freedesktop.org/releases/"
1055 "tango-icon-theme-" version ".tar.bz2"))
1056 (sha256
1057 (base32
1058 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1059 (build-system gnu-build-system)
1060 (native-inputs
1061 `(("icon-naming-utils" ,icon-naming-utils)
1062 ("intltool" ,intltool)
1063 ("imagemagick" ,imagemagick)
1064 ("pkg-config" ,pkg-config)))
1065 (home-page "http://tango-project.org/")
1066 (synopsis "Tango icon theme")
1067 (description "This is an icon theme that follows the Tango visual
1068guidelines.")
1069 (license license:public-domain)))
1070
9167f8e6
LC
1071(define-public shared-mime-info
1072 (package
1073 (name "shared-mime-info")
18138ab9 1074 (version "1.10")
9167f8e6
LC
1075 (source (origin
1076 (method url-fetch)
5cc3096c 1077 (uri (string-append "https://freedesktop.org/~hadess/"
b38e45d8 1078 "shared-mime-info-" version ".tar.xz"))
9167f8e6
LC
1079 (sha256
1080 (base32
18138ab9 1081 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
9167f8e6
LC
1082 (build-system gnu-build-system)
1083 (arguments
1084 ;; The build system appears not to be parallel-safe.
1085 '(#:parallel-build? #f))
1086 (inputs
1087 `(("glib" ,glib)
c4c4cc05 1088 ("libxml2" ,libxml2)))
9167f8e6 1089 (native-inputs
c4c4cc05
JD
1090 `(("intltool" ,intltool)
1091 ("pkg-config" ,pkg-config)))
57e7d748 1092 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1093 (synopsis "Database of common MIME types")
1094 (description
1095 "The shared-mime-info package contains the core database of common types
1096and the update-mime-database command used to extend it. It requires glib2 to
1097be installed for building the update command. Additionally, it uses intltool
1098for translations, though this is only a dependency for the maintainers. This
1099database is translated at Transifex.")
1dd26275 1100 (license license:gpl2+)))
9167f8e6 1101
dd1fcddc
CB
1102(define-public system-config-printer
1103 (package
1104 (name "system-config-printer")
1105 (version "1.5.11")
1106 (source (origin
1107 (method url-fetch)
1108 (uri (string-append
1109 "https://github.com/zdohnal/system-config-printer/releases/"
1110 "download/" version
1111 "/system-config-printer-" version ".tar.xz"))
1112 (sha256
1113 (base32
1114 "1lq0q51bhanirpjjvvh4xiafi8hgpk8r32h0dj6dn3f32z8pib9q"))))
1115 (build-system glib-or-gtk-build-system)
1116 (arguments
1117 `(#:imported-modules ((guix build python-build-system)
1118 ,@%glib-or-gtk-build-system-modules)
1119 #:phases
1120 (modify-phases %standard-phases
1121 (add-after 'unpack 'patch-Makefile.am
1122 (lambda _
1123 ;; The Makefile generates some scripts, so set a valid shebang
1124 (substitute* "Makefile.am"
1125 (("/bin/bash") (which "bash")))
1126 (delete-file "configure")
1127 #t))
1128 (add-after 'unpack 'patch-docbook-xml
1129 (lambda* (#:key inputs #:allow-other-keys)
1130 ;; Modify the man XML otherwise xmlto tries to access the network
1131 (substitute* "man/system-config-printer.xml"
1132 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1133 (string-append (assoc-ref inputs "docbook-xml")
1134 "/xml/dtd/docbook/")))
1135 #t))
1136 (add-after 'install 'wrap-for-python
1137 (@@ (guix build python-build-system) wrap))
1138 (add-after 'install 'wrap
1139 (lambda* (#:key outputs #:allow-other-keys)
1140 (let ((out (assoc-ref outputs "out"))
1141 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1142 (for-each
1143 (lambda (program)
1144 (wrap-program program
1145 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1146 (map (lambda (name)
1147 (string-append out "/bin/" name))
1148 '("system-config-printer"
1149 "system-config-printer-applet"
1150 "install-printerdriver"
1151 "scp-dbus-service"))))
1152 #t)))))
1153 (inputs
1154 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1155 ("gobject-introspection" ,gobject-introspection)
1156 ("python" ,python)
1157 ("cups" ,cups)
1158 ("python-dbus" ,python-dbus)
1159 ("python-pygobject" ,python-pygobject)
1160 ("python-pycups" ,python-pycups)
1161 ("python-requests" ,python-requests)
1162 ("python-pycairo" ,python-pycairo)
1163 ("libnotify" ,libnotify)
1164 ("packagekit" ,packagekit)))
1165 (native-inputs
1166 `(("pkg-config" ,pkg-config)
1167 ("desktop-file-utils" ,desktop-file-utils)
1168 ("glib" ,glib)
1169 ("autoconf" ,autoconf)
1170 ("automake" ,automake)
1171 ("intltool" ,intltool)
1172 ("xmlto" ,xmlto)
1173 ("docbook-xml" ,docbook-xml-4.1.2)
1174 ("docbook-xsl" ,docbook-xsl)
1175 ("libxml2" ,libxml2)))
1176 (home-page "https://github.com/zdohnal/system-config-printer")
1177 (synopsis "CUPS administration tool")
1178 (description
1179 "system-config-printer is a CUPS administration tool. It's written in
1180Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1181configuring CUPS.")
1182 (license license:gpl2+)))
1183
bef4dd92
AE
1184(define-public hicolor-icon-theme
1185 (package
1186 (name "hicolor-icon-theme")
851cb6dd 1187 (version "0.17")
bef4dd92
AE
1188 (source
1189 (origin
1190 (method url-fetch)
5cc3096c 1191 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1192 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1193 (sha256
1194 (base32
851cb6dd 1195 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1196 (build-system gnu-build-system)
1197 (arguments
1198 `(#:tests? #f)) ; no check target
57e7d748 1199 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1200 (synopsis
1201 "Freedesktop icon theme")
1202 (description
1203 "Freedesktop icon theme.")
1dd26275 1204 (license license:gpl2)))
bef4dd92 1205
d9c1a22b
AE
1206(define-public libnotify
1207 (package
1208 (name "libnotify")
195bfa68 1209 (version "0.7.7")
d9c1a22b
AE
1210 (source
1211 (origin
1212 (method url-fetch)
1213 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1214 (version-major+minor version) "/"
d9c1a22b
AE
1215 name "-" version ".tar.xz"))
1216 (sha256
1217 (base32
195bfa68 1218 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1219 (build-system gnu-build-system)
6acf6cec
MB
1220 (arguments
1221 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1222 (propagated-inputs
1223 `(;; In Requires of libnotify.pc.
1224 ("gdk-pixbuf" ,gdk-pixbuf)
1225 ("glib" ,glib)))
d9c1a22b 1226 (inputs
7ef08efa 1227 `(("gtk+" ,gtk+)
c4c4cc05
JD
1228 ("libpng" ,libpng)))
1229 (native-inputs
426adbe8 1230 `(("pkg-config" ,pkg-config)
277a7d82
JN
1231 ("glib" ,glib "bin")
1232 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1233 (home-page "https://developer-next.gnome.org/libnotify/")
1234 (synopsis
1235 "GNOME desktop notification library")
1236 (description
1237 "Libnotify is a library that sends desktop notifications to a
35b9e423 1238notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1239notifications can be used to inform the user about an event or display
1240some form of information without getting in the user's way.")
1dd26275 1241 (license license:lgpl2.1+)))
7a8605ce
CR
1242
1243(define-public libpeas
1244 (package
1245 (name "libpeas")
db122a9b 1246 (version "1.22.0")
7a8605ce
CR
1247 (source
1248 (origin
1249 (method url-fetch)
1250 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1251 (version-major+minor version) "/"
7a8605ce
CR
1252 name "-" version ".tar.xz"))
1253 (sha256
1254 (base32
db122a9b 1255 "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv"))))
7a8605ce 1256 (build-system gnu-build-system)
7a8605ce 1257 (inputs
2ed6522a
SB
1258 `(("gtk+" ,gtk+)
1259 ("glade" ,glade3)
2ed6522a
SB
1260 ("python" ,python)
1261 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1262 (native-inputs
1263 `(("pkg-config" ,pkg-config)
93622993 1264 ("glib:bin" ,glib "bin")
141aed80
LC
1265 ("gobject-introspection" ,gobject-introspection)
1266 ("intltool" ,intltool)))
55b7bbd8
LC
1267 (propagated-inputs
1268 ;; The .pc file "Requires" gobject-introspection.
1269 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1270 (home-page "https://wiki.gnome.org/Libpeas")
1271 (synopsis "GObject plugin system")
1272 (description
d1e4ad1b
TGR
1273 "Libpeas is a gobject-based plugin engine, targeted at giving every
1274application the chance to assume its own extensibility. It also has a set of
1275features including, but not limited to: multiple extension points; on-demand
1276(lazy) programming language support for C, Python and JS; simplicity of the
1277API.")
1dd26275 1278 (license license:lgpl2.0+)))
ed19903d
JD
1279
1280(define-public gtkglext
1281 (package
1282 (name "gtkglext")
1283 (version "1.2.0")
1284 (source (origin
1285 (method url-fetch)
0f971a04 1286 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1287 version "/gtkglext-" version ".tar.gz"))
1288 (sha256
1289 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1290 (patches (search-patches
1291 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1292 (build-system gnu-build-system)
14e2f61a
RW
1293 (arguments
1294 `(#:phases
1295 (modify-phases %standard-phases
1296 ;; Fix a collision between a local variable and a definition from
1297 ;; glibc's string.h.
1298 (add-after 'unpack 'fix-collision
1299 (lambda _
1300 (substitute* "gdk/gdkglshapes.c"
1301 ((" index") " triangle_index"))
1302 #t)))))
ed19903d
JD
1303 (inputs `(("gtk+" ,gtk+-2)
1304 ("mesa" ,mesa)
cc8b02f4 1305 ("glu" ,glu)
ed19903d
JD
1306 ("libx11" ,libx11)
1307 ("libxt" ,libxt)))
426adbe8
LC
1308 (native-inputs `(("pkg-config" ,pkg-config)
1309 ("glib" ,glib "bin")))
a83b6a06 1310 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1311 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1312 (synopsis "OpenGL extension to GTK+")
35b9e423 1313 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1314additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1315API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 1316 (license license:lgpl2.1+)))
3600420e
JD
1317
1318(define-public glade3
1319 (package
1320 (name "glade")
c6571adb 1321 (version "3.22.1")
b38e45d8
EB
1322 (source (origin
1323 (method url-fetch)
1324 (uri (string-append "mirror://gnome/sources/" name "/"
1325 (version-major+minor version) "/"
f5ca44b8 1326 name "-" version ".tar.xz"))
3600420e 1327 (sha256
f714d9fe 1328 (base32
c6571adb 1329 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 1330 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
1331 (arguments
1332 `(#:tests? #f ; needs X, GL, and software rendering
1333 #:phases
1334 (modify-phases %standard-phases
1335 (add-before 'configure 'fix-docbook
1336 (lambda* (#:key inputs #:allow-other-keys)
1337 (substitute* "man/Makefile.in"
1338 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1339 (string-append (assoc-ref inputs "docbook-xsl")
1340 "/xml/xsl/docbook-xsl-"
1341 ,(package-version docbook-xsl)
1342 "/manpages/docbook.xsl")))
1343 #t)))))
3600420e 1344 (inputs
f5ca44b8 1345 `(("gtk+" ,gtk+)
3600420e
JD
1346 ("libxml2" ,libxml2)))
1347 (native-inputs
1348 `(("intltool" ,intltool)
f5ca44b8
RW
1349 ("itstool" ,itstool)
1350 ("libxslt" ,libxslt) ;for xsltproc
1351 ("docbook-xml" ,docbook-xml-4.2)
1352 ("docbook-xsl" ,docbook-xsl)
1353 ("python" ,python-2)
3600420e
JD
1354 ("pkg-config" ,pkg-config)))
1355 (home-page "https://glade.gnome.org")
1356 (synopsis "GTK+ rapid application development tool")
1357 (description "Glade is a rapid application development (RAD) tool to
1358enable quick & easy development of user interfaces for the GTK+ toolkit and
1359the GNOME desktop environment.")
1dd26275
LC
1360 (license license:lgpl2.0+)))
1361
1362(define-public libcroco
1363 (package
1364 (name "libcroco")
8bdacad2 1365 (version "0.6.13")
1dd26275
LC
1366 (source (origin
1367 (method url-fetch)
b38e45d8
EB
1368 (uri (string-append "mirror://gnome/sources/" name "/"
1369 (version-major+minor version) "/"
1370 name "-" version ".tar.xz"))
1dd26275
LC
1371 (sha256
1372 (base32
8bdacad2 1373 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
1374 (build-system gnu-build-system)
1375 (native-inputs
1376 `(("pkg-config" ,pkg-config)))
1377 (inputs
1378 `(("glib" ,glib)
1379 ("libxml2" ,libxml2)
1380 ("zlib" ,zlib)))
1381 (home-page "https://github.com/GNOME/libcroco")
1382 (synopsis "CSS2 parsing and manipulation library")
1383 (description
1384 "Libcroco is a standalone CSS2 parsing and manipulation library.
1385The parser provides a low level event driven SAC-like API and a CSS object
1386model like API. Libcroco provides a CSS2 selection engine and an experimental
1387XML/CSS rendering engine.")
1388
1389 ;; LGPLv2.1-only.
1390 (license license:lgpl2.1)))
25178594
LC
1391
1392(define-public libgsf
1393 (package
1394 (name "libgsf")
8d1644a1 1395 (version "1.14.46")
25178594
LC
1396 (source (origin
1397 (method url-fetch)
b38e45d8
EB
1398 (uri (string-append "mirror://gnome/sources/" name "/"
1399 (version-major+minor version) "/"
1400 name "-" version ".tar.xz"))
25178594
LC
1401 (sha256
1402 (base32
8d1644a1 1403 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
1404 (build-system gnu-build-system)
1405 (native-inputs
1406 `(("intltool" ,intltool)
1407 ("pkg-config" ,pkg-config)))
1408 (inputs
1409 `(("python" ,python)
1410 ("zlib" ,zlib)
1411 ("bzip2" ,bzip2)))
1412 (propagated-inputs
1413 `(("gdk-pixbuf" ,gdk-pixbuf)
1414 ("glib" ,glib)
1415 ("libxml2" ,libxml2)))
f032d0be 1416 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
1417 (synopsis "GNOME's Structured File Library")
1418 (description
1419 "Libgsf aims to provide an efficient extensible I/O abstraction for
1420dealing with different structured file formats.")
1421
1422 ;; LGPLv2.1-only.
1423 (license license:lgpl2.1)))
63016e7c
LC
1424
1425(define-public librsvg
f67417a1
MB
1426 (package
1427 (name "librsvg")
1428 (version "2.40.20")
1429 (source (origin
1430 (method url-fetch)
1431 (uri (string-append "mirror://gnome/sources/" name "/"
1432 (version-major+minor version) "/"
1433 name "-" version ".tar.xz"))
1434 (sha256
1435 (base32
1436 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
1437 (build-system gnu-build-system)
1438 (arguments
1439 `(#:configure-flags
1440 (list "--disable-static"
1441 "--enable-vala") ; needed for e.g. gnome-mines
1442 #:phases
1443 (modify-phases %standard-phases
1444 (add-before 'configure 'pre-configure
1445 (lambda* (#:key inputs #:allow-other-keys)
1446 (substitute* "gdk-pixbuf-loader/Makefile.in"
1447 ;; By default the gdk-pixbuf loader is installed under
1448 ;; gdk-pixbuf's prefix. Work around that.
1449 (("gdk_pixbuf_moduledir = .*$")
1450 (string-append "gdk_pixbuf_moduledir = "
1451 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1452 "loaders\n"))
1453 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1454 (("gdk_pixbuf_cache_file = .*$")
1455 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1456 #t))
1457 (add-before 'check 'remove-failing-tests
1458 (lambda _
1459 (with-directory-excursion "tests/fixtures/reftests"
1460 (for-each delete-file
1461 '(;; This test fails on i686:
1462 "svg1.1/masking-path-04-b.svg"
1463 ;; This test fails on armhf:
1464 "svg1.1/masking-mask-01-b.svg"
1465 ;; This test fails on aarch64:
1466 "bugs/777834-empty-text-children.svg")))
1467 #t)))))
1468 (native-inputs
1469 `(("pkg-config" ,pkg-config)
1470 ("vala" ,vala)
1471 ("glib" ,glib "bin") ; glib-mkenums, etc.
1472 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1473 (inputs
1474 `(("pango" ,pango)
1475 ("libcroco" ,libcroco)
1476 ("bzip2" ,bzip2)
1477 ("libgsf" ,libgsf)
1478 ("libxml2" ,libxml2)))
1479 (propagated-inputs
1480 ;; librsvg-2.0.pc refers to all of that.
1481 `(("cairo" ,cairo)
1482 ("gdk-pixbuf" ,gdk-pixbuf)
1483 ("glib" ,glib)))
1484 (home-page "https://wiki.gnome.org/LibRsvg")
1485 (synopsis "Render SVG files using Cairo")
1486 (description
1487 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
1488library.")
1489 (license license:lgpl2.0+)))
1490
8f523eb9
EF
1491(define* (computed-origin-method gexp-promise hash-algo hash
1492 #:optional (name "source")
1493 #:key (system (%current-system))
1494 (guile (default-guile)))
1495 "Return a derivation that executes the G-expression that results
1496from forcing GEXP-PROMISE."
1497 (mlet %store-monad ((guile (package->derivation guile system)))
1498 (gexp->derivation (or name "computed-origin")
1499 (force gexp-promise)
1500 #:graft? #f ;nothing to graft
1501 #:system system
1502 #:guile-for-build guile)))
1503
1504(define librsvg-next-source
1505 (let* ((version "2.46.3")
1506 (upstream-source (origin
1507 (method url-fetch)
1508 (uri (string-append "mirror://gnome/sources/librsvg/"
1509 (version-major+minor version) "/"
1510 "librsvg-" version ".tar.xz"))
1511 (sha256
1512 (base32
1513 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
1514 (origin
1515 (method computed-origin-method)
1516 (file-name (string-append "librsvg-" version ".tar.xz"))
1517 (sha256 #f)
1518 (uri
1519 (delay
1520 (with-imported-modules '((guix build utils))
1521 #~(begin
1522 (use-modules (guix build utils))
1523 (set-path-environment-variable
1524 "PATH" '("bin")
1525 (list "/tmp"
1526 #+(canonical-package xz)
1527 #+(canonical-package gzip)
1528 #+(canonical-package tar)))
1529 (invoke "tar" "xvf" #+upstream-source)
1530 (with-directory-excursion (string-append "librsvg-" #$version)
1531 (for-each
1532 (lambda (crate)
1533 (delete-file-recursively (string-append "vendor/" (car crate)))
1534 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
1535 '(
1536;; aho-corasick 0.7
1537;; alga 0.9
1538;; approx 0.3
1539;; arrayvec 0.4
1540 ("atty" . #+(package-source rust-atty-0.2))
1541 ("autocfg" . #+(package-source rust-autocfg-0.1))
1542 ("bitflags" . #+(package-source rust-bitflags-1))
1543;; block 0.1
1544;; bstr 0.2
1545;; byteorder 1.3
1546;; cairo-rs 0.7
1547;; cairo-sys-rs 0.9
1548;; cast 0.2
1549 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
1550 ("clap" . #+(package-source rust-clap-2))
1551 ;("cloudabi" . #+(package-source rust-cloudabi-0.0))
1552;; criterion 0.2
1553;; criterion-plot 0.3
1554;; crossbeam-deque 0.7
1555;; crossbeam-epoch 0.7
1556;; crossbeam-queue 0.1
1557;; crossbeam-utils 0.6
1558;; cssparser 0.25
1559;; cssparser-macros 0.3
1560;; csv 1.1
1561;; csv-core 0.1
1562;; data-url 0.1
1563;; downcast-rs 1.0
1564 ("dtoa" . #+(package-source rust-dtoa-0.4))
1565;; dtoa-short 0.3
1566;; either 1.5
1567;; encoding 0.2
1568;; encoding-index-japanese 1.20141219.5
1569;; encoding-index-korean 1.20141219.5
1570;; encoding-index-simpchinese 1.20141219.5
1571;; encoding-index-singlebyte 1.20141219.5
1572;; encoding-index-tradchinese 1.20141219.5
1573;; encoding_index_tests 0.1
1574;; float-cmp 0.5
1575;; fragile 0.3
1576 ;("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
1577;; futf 0.1
1578;; gdk-pixbuf 0.7
1579;; gdk-pixbuf-sys 0.9
1580;; generic-array 0.12
1581;; gio 0.7
1582;; gio-sys 0.9
1583;; glib 0.8
1584;; glib-sys 0.9
1585;; gobject-sys 0.9
1586;; idna 0.2
1587;; itertools 0.8
1588 ("itoa" . #+(package-source rust-itoa-0.4))
1589 ;("language-tags" . #+(package-source rust-language-tags-0.2))
1590 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
1591 ("libc" . #+(package-source rust-libc-0.2))
1592;; libm 0.1
1593;; locale_config 0.3
1594 ("log" . #+(package-source rust-log-0.4))
1595;; mac 0.1
1596;; malloc_buf 0.0
1597;; markup5ever 0.9
1598 ;("matches" . #+(package-source rust-matches-0.1))
1599;; matrixmultiply 0.2
1600;; memchr 2.2
1601;; memoffset 0.5
1602;; nalgebra 0.18
1603;; new_debug_unreachable 1.0
1604 ("nodrop" . #+(package-source rust-nodrop-0.1))
1605;; num-complex 0.2
1606 ("num-integer" . #+(package-source rust-num-integer-0.1))
1607;; num-rational 0.2
1608 ("num-traits" . #+(package-source rust-num-traits-0.2))
1609 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
1610;; objc 0.2
1611;; objc-foundation 0.1
1612;; objc_id 0.1
1613;; pango 0.7
1614;; pango-sys 0.9
1615;; pangocairo 0.8
1616;; pangocairo-sys 0.10
1617 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
1618;; phf 0.7.24
1619;; phf_codegen 0.7.24
1620;; phf_generator 0.7.24
1621;; phf_shared 0.7.24
1622 ;("pkg-config" . #+(package-source rust-pkg-config-0.3))
1623;; precomputed-hash 0.1
1624 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
1625;; procedural-masquerade 0.1
1626 ("quote" . #+(package-source rust-quote-1.0))
1627 ;("rand" . #+(package-source rust-rand-0.6))
1628 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
1629 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
1630 ("rand_core" . #+(package-source rust-rand-core-0.4))
1631 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
1632 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
1633 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
1634 ("rand_os" . #+(package-source rust-rand-os-0.1))
1635 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
1636 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
1637;; rand_xoshiro 0.1
1638 ;("rawpointer" . #+(package-source rust-rawpointer-0.1))
1639;; rayon 1.2
1640;; rayon-core 1.6
1641;; rctree 0.3
1642 ("rdrand" . #+(package-source rust-rdrand-0.4))
1643;; regex 1.3
1644;; regex-automata 0.1
1645 ;("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
1646;; rustc_version 0.2
1647 ("ryu" . #+(package-source rust-ryu-1.0))
1648 ("same-file" . #+(package-source rust-same-file-1.0))
1649 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
1650;; semver 0.9
1651 ;("semver-parser" . #+(package-source rust-semver-parser-0.7))
1652 ("serde" . #+(package-source rust-serde-1.0))
1653 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
1654 ("serde_json" . #+(package-source rust-serde-json-1.0))
1655;; siphasher 0.2
1656;; smallvec 0.6
1657;; string_cache 0.7
1658;; string_cache_codegen 0.4
1659;; string_cache_shared 0.3
1660 ("syn" . #+(package-source rust-syn-1.0))
1661;; tendril 0.4
1662 ("textwrap" . #+(package-source rust-textwrap-0.11))
1663 ;("thread_local" . #+(package-source rust-thread-local-0.3))
1664;; tinytemplate 1.0
1665 ;("typenum" . #+(package-source rust-typenum-1.10))
1666;; unicode-bidi 0.3
1667;; unicode-normalization 0.1
1668 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
1669 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
1670;; url 2.1
1671;; utf-8 0.7
1672 ("walkdir" . #+(package-source rust-walkdir-2.2))
1673 ("winapi" . #+(package-source rust-winapi-0.3))
1674 ;("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
1675 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
1676 ;("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
1677;; xml-rs 0.8
1678 )))
1679 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
1680 (force-output)
1681 (invoke "tar" "cfa" #$output
1682 ;; Avoid non-determinism in the archive. We set the
1683 ;; mtime of files in the archive to early 1980 because
1684 ;; the build process fails if the mtime of source
1685 ;; files is pre-1980, due to the creation of zip
1686 ;; archives.
1687 "--mtime=@315619200" ; 1980-01-02 UTC
1688 "--owner=root:0"
1689 "--group=root:0"
1690 "--sort=name"
1691 (string-append "librsvg-" #$version))
1692 #t)))))))
1693
f67417a1 1694(define-public librsvg-next
63016e7c
LC
1695 (package
1696 (name "librsvg")
cf9dad6c 1697 (version "2.46.3")
8f523eb9 1698 (source librsvg-next-source)
63016e7c
LC
1699 (build-system gnu-build-system)
1700 (arguments
d953418a
RW
1701 `(#:configure-flags
1702 (list "--disable-static"
1703 "--enable-vala") ; needed for e.g. gnome-mines
7e0f4cb1 1704 #:make-flags '("CC=gcc")
8f523eb9 1705 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
ec47c07d 1706 #:phases
b6239e45 1707 (modify-phases %standard-phases
8f523eb9 1708 (add-after 'configure 'patch-cargo-checksums
ec47c07d 1709 (lambda _
8f523eb9
EF
1710 (use-modules (guix build cargo-utils))
1711 (substitute* "librsvg/Cargo.toml"
1712 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
b665a246 1713 (generate-all-checksums "vendor")
8f523eb9
EF
1714 (delete-file "Cargo.lock")
1715 (invoke "cargo" "generate-lockfile")))
b6239e45
EF
1716 (add-before 'configure 'pre-configure
1717 (lambda* (#:key inputs #:allow-other-keys)
1718 (substitute* "gdk-pixbuf-loader/Makefile.in"
1719 ;; By default the gdk-pixbuf loader is installed under
1720 ;; gdk-pixbuf's prefix. Work around that.
1721 (("gdk_pixbuf_moduledir = .*$")
1722 (string-append "gdk_pixbuf_moduledir = "
1723 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1724 "loaders\n"))
1725 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1726 (("gdk_pixbuf_cache_file = .*$")
1727 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1728 #t))
ec47c07d 1729 (add-before 'check 'remove-failing-tests
b6239e45 1730 (lambda _
64a153bd
MW
1731 (with-directory-excursion "tests/fixtures/reftests"
1732 (for-each delete-file
ec47c07d
MB
1733 '(;; The images produced by these tests differ slightly
1734 ;; from their reference counterparts due to differences
1735 ;; in the build environment (missing fonts, etc). See
1736 ;; <tests/README.md> for details.
1737 ;; These fail on x86_64.
1738 "svg1.1/coords-viewattr-02-b.svg"
1739 "svg1.1/filters-composite-04-f.svg"
1740 "svg1.1/filters-image-01-b.svg"
1741 "svg1.1/filters-conv-02-f.svg"
1742 "svg1.1/filters-conv-04-f.svg"
1743 ;; This test fails on i686:
64a153bd 1744 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
1745 ;; This test fails on armhf:
1746 "svg1.1/masking-mask-01-b.svg"
64a153bd 1747 ;; This test fails on aarch64:
ec47c07d 1748 "bugs/777834-empty-text-children.svg")))
b6239e45 1749 #t)))))
63016e7c
LC
1750 (native-inputs
1751 `(("pkg-config" ,pkg-config)
64855281
MB
1752 ;; This is the minimum supported Rust version in Librsvg 2.46.
1753 ("rust" ,rust-1.34)
1754 ("cargo" ,rust-1.34 "cargo")
d953418a 1755 ("vala" ,vala)
44add1ce 1756 ("glib" ,glib "bin") ; glib-mkenums, etc.
63016e7c
LC
1757 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1758 (inputs
1759 `(("pango" ,pango)
1760 ("libcroco" ,libcroco)
1761 ("bzip2" ,bzip2)
1762 ("libgsf" ,libgsf)
1763 ("libxml2" ,libxml2)))
1764 (propagated-inputs
1765 ;; librsvg-2.0.pc refers to all of that.
1766 `(("cairo" ,cairo)
1767 ("gdk-pixbuf" ,gdk-pixbuf)
1768 ("glib" ,glib)))
1769 (home-page "https://wiki.gnome.org/LibRsvg")
1770 (synopsis "Render SVG files using Cairo")
1771 (description
35b9e423 1772 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
63016e7c 1773library.")
cf9dad6c 1774 (license license:lgpl2.1+)))
5698b8b8
JD
1775
1776(define-public libidl
1777 (package
1778 (name "libidl")
1779 (version "0.8.14")
1780 (source (origin
1781 (method url-fetch)
1782 (uri (let ((upstream-name "libIDL"))
b38e45d8
EB
1783 (string-append "mirror://gnome/sources/" upstream-name "/"
1784 (version-major+minor version) "/"
1785 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
1786 (sha256
1787 (base32
1788 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
1789 (build-system gnu-build-system)
1790 (inputs `(("glib" ,glib)))
1791 (native-inputs
1792 `(("pkg-config" ,pkg-config)
b3546174 1793 ("flex" ,flex)
5698b8b8
JD
1794 ("bison" ,bison)))
1795 (home-page "http://freecode.com/projects/libidl")
1796 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 1797 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
1798Definition Language (idl) files, which is a specification for defining
1799portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 1800GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 1801functionality was designed to be as reusable and portable as possible.")
5698b8b8
JD
1802 (license license:lgpl2.0+)))
1803
1804
1805(define-public orbit2
1806 (package
1807 (name "orbit2")
1808 (version "2.14.19")
1809 (source (origin
1810 (method url-fetch)
2e6ecc5c 1811 (uri (let ((upstream-name "ORBit2"))
a124bbd2 1812 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
1813 (version-major+minor version) "/"
1814 upstream-name "-" version ".tar.bz2")))
5698b8b8 1815 (sha256
a124bbd2
SB
1816 (base32
1817 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
1818 (build-system gnu-build-system)
1819 (arguments
a124bbd2 1820 `(#:configure-flags
8aad2e32
LC
1821 '(;; We don't need static libraries, plus they don't build reproducibly
1822 ;; (non-deterministic ordering of .o files in the archive.)
1823 "--disable-static"
1824
1825 ;; The programmer kindly gives us a hook to turn off deprecation
1826 ;; warnings ...
1827 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
1828 ;; ... which they then completly ignore !!
1829 #:phases
dc1d3cde
KK
1830 (modify-phases %standard-phases
1831 (add-before 'configure 'ignore-deprecations
1832 (lambda _
1833 (substitute* "linc2/src/Makefile.in"
1834 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1835 #t)))))
5698b8b8
JD
1836 (inputs `(("glib" ,glib)
1837 ("libidl" ,libidl)))
1838 (native-inputs
1839 `(("pkg-config" ,pkg-config)))
1840 (home-page "https://projects.gnome.org/orbit2/")
1841 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 1842 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 1843featuring mature C, C++ and Python bindings.")
a124bbd2
SB
1844 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
1845 ;; a version. SOME of the code files have licence notices for GPLv2+.
1846 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
1847 (license license:gpl2+)
1848 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
1849
1850
1851(define-public libbonobo
1852 (package
1853 (name "libbonobo")
1854 (version "2.32.1")
1855 (source (origin
1856 (method url-fetch)
5becd025 1857 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 1858 (version-major+minor version)
5becd025 1859 "/" name "-" version ".tar.bz2"))
5698b8b8 1860 (sha256
f1fc45a9 1861 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
1862 (patches (search-patches
1863 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
1864 (build-system gnu-build-system)
1865 (arguments
1866 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
1867 `(#:configure-flags
1868 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
1869 ;; ... which they then completly ignore !!
1870 #:phases
dc1d3cde
KK
1871 (modify-phases %standard-phases
1872 (add-before 'configure 'ignore-deprecations
1873 (lambda _
1874 (substitute* "activation-server/Makefile.in"
1875 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
1876 #t)))
1877
1878 ;; There's apparently a race condition between the server stub
1879 ;; generation and linking of the example under 'samples/echo' that can
1880 ;; lead do undefined references when building in parallel, as reported
1881 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
1882 ;; Thus, disable parallel builds.
1883 #:parallel-build? #f))
5698b8b8
JD
1884 (inputs `(("popt" ,popt)
1885 ("libxml2" ,libxml2)))
1886 ;; The following are Required by the .pc file
44add1ce 1887 (propagated-inputs
5698b8b8
JD
1888 `(("glib" ,glib)
1889 ("orbit2" ,orbit2)))
1890 (native-inputs
1891 `(("intltool" ,intltool)
1892 ("pkg-config" ,pkg-config)
221ed17a 1893 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
1894 ("flex" ,flex)
1895 ("bison" ,bison)))
1896 (home-page "https://developer.gnome.org/libbonobo/")
1897 (synopsis "Framework for creating reusable components for use in GNOME applications")
1898 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 1899use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
1900 ;; Licence not explicitly stated. Source files contain no licence notices.
1901 ;; Tarball contains text of both GPLv2 and LGPLv2
1902 ;; GPLv2 covers both conditions
1903 (license license:gpl2+)))
1904
1905
1906(define-public gconf
1907 (package
1908 (name "gconf")
1909 (version "3.2.6")
1910 (source (origin
1911 (method url-fetch)
a124bbd2
SB
1912 (uri
1913 (let ((upstream-name "GConf"))
1914 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
1915 (version-major+minor version) "/"
1916 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
1917 (sha256
1918 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
1919 (build-system gnu-build-system)
2e88d113 1920 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 1921 ("libxml2" ,libxml2)))
2e6ecc5c
AE
1922 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
1923 ("orbit2" ,orbit2)))
5698b8b8
JD
1924 (native-inputs
1925 `(("intltool" ,intltool)
221ed17a 1926 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
1927 ("pkg-config" ,pkg-config)))
1928 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
1929 (synopsis "Store application preferences")
1930 (description "Gconf is a system for storing application preferences. It
1931is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
1932 (license license:lgpl2.0+)
1933 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
1934
1935
1936(define-public gnome-mime-data
1937 (package
1938 (name "gnome-mime-data")
1939 (version "2.18.0")
1940 (source (origin
1941 (method url-fetch)
b38e45d8
EB
1942 (uri (string-append "mirror://gnome/sources/" name "/"
1943 (version-major+minor version) "/"
1944 name "-" version ".tar.bz2"))
5698b8b8
JD
1945 (sha256
1946 (base32
1947 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
1948 (build-system gnu-build-system)
1949 (native-inputs
1950 `(("perl" ,perl)
1951 ("intltool" ,intltool)))
3e6add96
LC
1952 (arguments
1953 '(#:phases (modify-phases %standard-phases
1954 (add-after 'configure 'use-our-intltool
1955 (lambda _
1956 ;; Do not use the bundled intltool commands, which lack
1957 ;; the "dotless @INC" fixes of our 'intltool' package.
1958 (substitute* (find-files "." "^Makefile$")
1959 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
1960 (string-append "INTLTOOL_" tool " = intltool-"
1961 (string-downcase tool) "\n")))
1962 #t)))))
f032d0be 1963 (home-page "https://www.gnome.org")
35b9e423 1964 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
1965 (description "GNOME Mime Data is a module which contains the base MIME
1966and Application database for GNOME. The data stored by this module is
1967designed to be accessed through the MIME functions in GnomeVFS.")
1968 (license license:gpl2+)))
1969
1970
1971(define-public gnome-vfs
1972 (package
1973 (name "gnome-vfs")
1974 (version "2.24.4")
1975 (source (origin
1976 (method url-fetch)
b38e45d8
EB
1977 (uri (string-append "mirror://gnome/sources/" name "/"
1978 (version-major+minor version) "/"
1979 name "-" version ".tar.bz2"))
5698b8b8 1980 (sha256
9e12bc34
MW
1981 (base32
1982 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
1983 (build-system gnu-build-system)
1984 (arguments
db5127d8 1985 `(#:phases
dc1d3cde
KK
1986 (modify-phases %standard-phases
1987 (add-before 'configure 'ignore-deprecations
1988 (lambda _
1989 (substitute* '("libgnomevfs/Makefile.in"
1990 "daemon/Makefile.in")
1991 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1992 #t))
1993 (add-before 'configure 'patch-test-async-cancel-to-never-fail
1994 (lambda _
1995 (substitute* "test/test-async-cancel.c"
1996 (("EXIT_FAILURE") "77"))
1997 #t)))))
2e6ecc5c 1998 (inputs `(("libxml2" ,libxml2)
5698b8b8 1999 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2000 ("gconf" ,gconf)
2001 ("gnome-mime-data" ,gnome-mime-data)
2002 ("zlib" ,zlib)))
2003 (native-inputs
221ed17a
EB
2004 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2005 ("intltool" ,intltool)
5698b8b8
JD
2006 ("pkg-config" ,pkg-config)))
2007 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2008 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2009 (description
2010 "GnomeVFS is the core library used to access files and folders in GNOME
2011applications. It provides a file system abstraction which allows applications
2012to access local and remote files with a single consistent API.")
5698b8b8
JD
2013 (license license:lgpl2.0+)))
2014
2015
2016
2017(define-public libgnome
2018 (package
2019 (name "libgnome")
2020 (version "2.32.1")
2021 (source (origin
2022 (method url-fetch)
b38e45d8
EB
2023 (uri (string-append "mirror://gnome/sources/" name "/"
2024 (version-major+minor version) "/"
2025 name "-" version ".tar.bz2"))
5698b8b8
JD
2026 (sha256
2027 (base32
17c3eea7
LC
2028 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2029 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2030 (build-system gnu-build-system)
2031 (arguments
2032 `(#:phases
dc1d3cde
KK
2033 (modify-phases %standard-phases
2034 (add-before 'configure 'enable-deprecated
2035 (lambda _
2036 (substitute* "libgnome/Makefile.in"
2037 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2038 #t)))))
25338e9f 2039 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2040 (native-inputs
221ed17a
EB
2041 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2042 ("intltool" ,intltool)
5698b8b8
JD
2043 ("pkg-config" ,pkg-config)))
2044 ;; The following are listed as Required in the .pc file
2045 ;; (except for libcanberra -- which seems to be oversight on the part
2046 ;; of the upstream developers -- anything that links against libgnome,
2047 ;; must also link against libcanberra
2048 (propagated-inputs
2049 `(("libcanberra" ,libcanberra)
2050 ("libbonobo" ,libbonobo)
2051 ("gconf" ,gconf)
a640d3d5
LC
2052 ("gnome-vfs" ,gnome-vfs)
2053 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2054 (home-page "https://developer.gnome.org/libgnome/")
2055 (synopsis "Useful routines for building applications")
2056 (description "The libgnome library provides a number of useful routines
2057for building modern applications, including session management, activation of
2058files and URIs, and displaying help.")
2059 (license license:lgpl2.0+)))
2060
2061
2062(define-public libart-lgpl
2063 (package
2064 (name "libart-lgpl")
76c9b6aa 2065 (version "2.3.21")
5698b8b8
JD
2066 (source (origin
2067 (method url-fetch)
2068 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2069 (string-append "mirror://gnome/sources/" upstream-name "/"
2070 (version-major+minor version) "/"
2071 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2072 (sha256
2073 (base32
76c9b6aa 2074 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2075 (build-system gnu-build-system)
2076 (native-inputs
2077 `(("pkg-config" ,pkg-config)))
2078 (home-page "https://people.gnome.org/~mathieu/libart")
2079 (synopsis "2D drawing library")
2e6ecc5c 2080 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2081high-quality vector-based 2D library with antialiasing and alpha composition.")
2082 (license license:lgpl2.0+)))
2083
2084
2085
2086(define-public libgnomecanvas
2087 (package
2088 (name "libgnomecanvas")
2089 (version "2.30.3")
2090 (source (origin
2091 (method url-fetch)
b38e45d8
EB
2092 (uri (string-append "mirror://gnome/sources/" name "/"
2093 (version-major+minor version) "/"
2094 name "-" version ".tar.gz"))
5698b8b8
JD
2095 (sha256
2096 (base32
2097 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2098 (build-system gnu-build-system)
2099 ;; Mentioned as Required in the .pc file
2100 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2101 ("gtk+" ,gtk+-2)))
2102 (native-inputs
2103 `(("intltool" ,intltool)
221ed17a 2104 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2105 ("pkg-config" ,pkg-config)))
2106 (home-page "https://developer.gnome.org/libgnomecanvas/")
2107 (synopsis "Flexible widget for creating interactive structured graphics")
2108 (description "The GnomeCanvas widget provides a flexible widget for
2109creating interactive structured graphics.")
2110 (license license:lgpl2.0+)))
2111
eadc734e
RW
2112(define-public libgnomecanvasmm
2113 (package
2114 (name "libgnomecanvasmm")
2115 (version "2.26.0")
2116 (source (origin
2117 (method url-fetch)
2118 (uri (string-append "mirror://gnome/sources/" name "/"
2119 (version-major+minor version) "/"
2120 name "-" version ".tar.bz2"))
2121 (sha256
2122 (base32
2123 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2124 (build-system gnu-build-system)
2125 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2126 (native-inputs
2127 `(("gtkmm-2" ,gtkmm-2)
2128 ("pkg-config" ,pkg-config)))
8e933cb3 2129 (home-page "https://gtkmm.org")
eadc734e
RW
2130 (synopsis "C++ bindings to the GNOME Canvas library")
2131 (description "C++ bindings to the GNOME Canvas library.")
2132 (license license:lgpl2.0+)))
2133
5698b8b8
JD
2134(define-public libgnomeui
2135 (package
2136 (name "libgnomeui")
2137 (version "2.24.5")
2138 (source (origin
2139 (method url-fetch)
b38e45d8
EB
2140 (uri (string-append "mirror://gnome/sources/" name "/"
2141 (version-major+minor version) "/"
2142 name "-" version ".tar.bz2"))
8fa1872a 2143 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2144 (sha256
2145 (base32
2146 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2147 (build-system gnu-build-system)
2148 ;; Mentioned as Required in the .pc file
0a38a497
AE
2149 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2150 ("libgnome" ,libgnome)
2151 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2152 ("libgnome-keyring" ,libgnome-keyring)))
0a38a497 2153 (inputs `(("libjpeg" ,libjpeg)
5698b8b8
JD
2154 ("popt" ,popt)
2155 ("libbonobo" ,libbonobo)
2156 ("libxml2" ,libxml2)
2157 ("libglade" ,libglade)))
2158 (native-inputs
221ed17a
EB
2159 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2160 ("intltool" ,intltool)
5698b8b8
JD
2161 ("pkg-config" ,pkg-config)))
2162 (home-page "https://developer.gnome.org/libgnomeui/")
2163 (synopsis "Additional widgets for applications")
35b9e423 2164 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2165applications. Many of the widgets from libgnomeui have already been
2166ported to GTK+.")
5698b8b8
JD
2167 (license license:lgpl2.0+)))
2168
2169(define-public libglade
2170 (package
2171 (name "libglade")
2172 (version "2.6.4")
2173 (source (origin
2174 (method url-fetch)
b38e45d8
EB
2175 (uri (string-append "mirror://gnome/sources/" name "/"
2176 (version-major+minor version) "/"
2177 name "-" version ".tar.bz2"))
5698b8b8
JD
2178 (sha256
2179 (base32
2180 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2181 (build-system gnu-build-system)
2182 (inputs
92dcc23d
AE
2183 `(("python" ,python))) ;; needed for the optional libglade-convert program
2184 (propagated-inputs
5698b8b8 2185 `(("gtk+-2" ,gtk+-2)
92dcc23d 2186 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2187 (native-inputs
2188 `(("pkg-config" ,pkg-config)))
2189 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2190 (synopsis "Load glade interfaces and access the glade built widgets")
2191 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2192graphical interfaces described in glade files and for accessing the
2193widgets built in the loading process.")
2194 (license license:gpl2+))) ; This is correct. GPL not LGPL
2195
2196(define-public libgnomeprint
eb497b66
LC
2197 ;; This library has been deprecated since 2006; see
2198 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2199 (package
2200 (name "libgnomeprint")
d19db454 2201 (version "2.18.8")
5698b8b8
JD
2202 (source (origin
2203 (method url-fetch)
b38e45d8
EB
2204 (uri (string-append "mirror://gnome/sources/" name "/"
2205 (version-major+minor version) "/"
2206 name "-" version ".tar.bz2"))
5698b8b8
JD
2207 (sha256
2208 (base32
d19db454 2209 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2210 (build-system gnu-build-system)
2211 (inputs
2212 `(("popt" ,popt)
2213 ("libart-lgpl" ,libart-lgpl)
2214 ("gtk+" ,gtk+-2)
44add1ce 2215 ("libxml2" ,libxml2)))
5698b8b8
JD
2216 (native-inputs
2217 `(("intltool" ,intltool)
221ed17a 2218 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2219 ("pkg-config" ,pkg-config)))
2220 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2221 (synopsis "Printing framework for GNOME")
eb497b66
LC
2222 (description
2223 "GNOME-print was a printing framework for GNOME. It has been deprecated
2224since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2225 (license license:lgpl2.0+)))
2226
2227
2228(define-public libgnomeprintui
eb497b66 2229 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2230 (package
2231 (name "libgnomeprintui")
36053d7f 2232 (version "2.18.6")
5698b8b8
JD
2233 (source (origin
2234 (method url-fetch)
b38e45d8
EB
2235 (uri (string-append "mirror://gnome/sources/" name "/"
2236 (version-major+minor version) "/"
2237 name "-" version ".tar.bz2"))
5698b8b8
JD
2238 (sha256
2239 (base32
36053d7f 2240 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2241 (build-system gnu-build-system)
2242 ;; Mentioned as Required in the .pc file
2243 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2244 (inputs `(("gtk+" ,gtk+-2)
2245 ("glib" ,glib)
2246 ("gnome-icon-theme" ,gnome-icon-theme)
2247 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2248 ("libxml2" ,libxml2)))
5698b8b8
JD
2249 (native-inputs
2250 `(("intltool" ,intltool)
2251 ("pkg-config" ,pkg-config)))
2252 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2253 (synopsis "Printing framework for GNOME")
eb497b66 2254 (description (package-description libgnomeprint))
5698b8b8
JD
2255 (license license:lgpl2.0+)))
2256
5698b8b8
JD
2257(define-public libbonoboui
2258 (package
2259 (name "libbonoboui")
2260 (version "2.24.5")
2261 (source (origin
2262 (method url-fetch)
b38e45d8
EB
2263 (uri (string-append "mirror://gnome/sources/" name "/"
2264 (version-major+minor version) "/"
2265 name "-" version ".tar.bz2"))
5698b8b8
JD
2266 (sha256
2267 (base32
2268 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2269 (build-system gnu-build-system)
2270 (arguments
2271 `(#:phases
dc1d3cde
KK
2272 (modify-phases %standard-phases
2273 (add-before 'check 'start-xserver
2274 (lambda* (#:key inputs #:allow-other-keys)
2275 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2276 (disp ":1"))
2277
2278 (setenv "HOME" (getcwd))
2279 (setenv "DISPLAY" disp)
2280 ;; There must be a running X server and make check doesn't start one.
2281 ;; Therefore we must do it.
2282 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2283 ;; Mentioned as Required by the .pc file
2284 (propagated-inputs `(("libxml2" ,libxml2)))
2285 (inputs
2286 `(("popt" ,popt)
2287 ("pangox-compat" ,pangox-compat)
2288 ("libgnome" ,libgnome)
2289 ("libgnomecanvas" ,libgnomecanvas)
2290 ("libglade" ,libglade)))
2291 (native-inputs
221ed17a
EB
2292 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2293 ("intltool" ,intltool)
ff337525 2294 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2295 ("pkg-config" ,pkg-config)))
2296 (home-page "https://developer.gnome.org/libbonoboui/")
2297 (synopsis "Some user interface controls using Bonobo")
2298 (description "The Bonobo UI library provides a number of user interface
2299controls using the Bonobo component framework.")
2300 (license license:lgpl2.0+)))
2301
fecbf86e
SB
2302(define-public libwnck
2303 (package
2304 (name "libwnck")
d3b40696 2305 (version "3.32.0")
fecbf86e
SB
2306 (source (origin
2307 (method url-fetch)
2308 (uri (string-append "mirror://gnome/sources/" name "/"
2309 (version-major+minor version) "/"
2310 name "-" version ".tar.xz"))
2311 (sha256
ad9b8987 2312 (base32
d3b40696
KK
2313 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2314 (build-system meson-build-system)
fecbf86e
SB
2315 (native-inputs
2316 `(("pkg-config" ,pkg-config)
d3b40696
KK
2317 ("glib" ,glib "bin") ; for glib-mkenums
2318 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2319 ("intltool" ,intltool)))
2320 (propagated-inputs
427476d5
SB
2321 `(("gtk+" ,gtk+)
2322 ("libxres" ,libxres)
2323 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2324 (home-page "https://developer.gnome.org/libwnck/")
2325 (synopsis "Window Navigator Construction Kit")
2326 (description
2327 "Libwnck is the Window Navigator Construction Kit, a library for use in
2328writing pagers, tasklists, and more generally applications that are dealing
2329with window management. It tries hard to respect the Extended Window Manager
2330Hints specification (EWMH).")
2331 (license license:lgpl2.0+)))
2332
2333;; stable version for gtk2, required by xfwm4.
dbb7a081 2334(define-public libwnck-2
fecbf86e
SB
2335 (package (inherit libwnck)
2336 (name "libwnck")
2337 (version "2.30.7")
2338 (source (origin
2339 (method url-fetch)
2340 (uri (string-append "mirror://gnome/sources/" name "/"
2341 (version-major+minor version) "/"
2342 name "-" version ".tar.xz"))
2343 (sha256
2344 (base32
2345 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2346 (build-system gnu-build-system)
2347 (native-inputs
2348 `(("pkg-config" ,pkg-config)
2349 ("intltool" ,intltool)))
fecbf86e 2350 (propagated-inputs
427476d5
SB
2351 `(("gtk+" ,gtk+-2)
2352 ("libxres" ,libxres)
2353 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2354
2355(define-public goffice
2356 (package
2357 (name "goffice")
09abffcc 2358 (version "0.10.46")
b804c61e
JD
2359 (source (origin
2360 (method url-fetch)
16243f0b 2361 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2362 (version-major+minor version) "/"
16243f0b 2363 "goffice-" version ".tar.xz"))
b804c61e 2364 (sha256
09abffcc 2365 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 2366 (build-system gnu-build-system)
72a06d3e 2367 (outputs '("out"
355420c6 2368 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
2369 (arguments
2370 '(#:configure-flags (list (string-append "--with-html-dir="
2371 (assoc-ref %outputs "doc")
2372 "/share/gtk-doc/html"))))
b804c61e
JD
2373 (inputs
2374 `(("gtk+" ,gtk+)
2375 ("libgsf" ,libgsf)
2376 ("librsvg" ,librsvg)
2377 ("libxslt" ,libxslt)
2378 ("libxml2" ,libxml2)))
2379 (native-inputs
2380 `(("intltool" ,intltool)
f280cdb1 2381 ("glib" ,glib "bin")
b804c61e
JD
2382 ("pkg-config" ,pkg-config)))
2383 (home-page "https://developer.gnome.org/goffice/")
2384 (synopsis "Document-centric objects and utilities")
2385 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 2386 (license
b804c61e
JD
2387 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2388 ;; Note: NOT LGPL
2389 (list license:gpl2 license:gpl3))))
2390
c024ae36
RW
2391(define-public goffice-0.8
2392 (package (inherit goffice)
2393 (version "0.8.17")
2394 (source (origin
2395 (method url-fetch)
2396 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2397 (version-major+minor version) "/"
2398 (package-name goffice) "-" version ".tar.xz"))
2399 (sha256
2400 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2401 (arguments
2402 `(#:phases
dc1d3cde
KK
2403 (modify-phases %standard-phases
2404 (add-after 'unpack 'fix-pcre-check
2405 (lambda _
2406 ;; Only glib.h can be included directly. See
2407 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2408 (substitute* "configure"
2409 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
2410
2411 ,@(package-arguments goffice)))
c024ae36
RW
2412 (propagated-inputs
2413 ;; libgoffice-0.8.pc mentions libgsf-1
2414 `(("libgsf" ,libgsf)))
2415 (inputs
2416 `(("gtk" ,gtk+-2)
2417 ,@(alist-delete "gtk" (package-inputs goffice))))))
2418
b804c61e
JD
2419(define-public gnumeric
2420 (package
2421 (name "gnumeric")
f0517b5d 2422 (version "1.12.46")
b804c61e
JD
2423 (source (origin
2424 (method url-fetch)
b7fd0217 2425 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 2426 (version-major+minor version) "/"
b7fd0217 2427 "gnumeric-" version ".tar.xz"))
b804c61e
JD
2428 (sha256
2429 (base32
f0517b5d 2430 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 2431 (build-system glib-or-gtk-build-system)
b804c61e
JD
2432 (arguments
2433 `(;; The gnumeric developers don't worry much about failing tests.
2434 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 2435 #:tests? #f
b804c61e 2436 #:phases
7bcbd40d
EF
2437 (modify-phases %standard-phases
2438 (add-before
2439 'configure 'pre-conf
2440 (lambda* (#:key outputs #:allow-other-keys)
2441 ;; Make install tries to write into the directory of goffice
2442 ;; I am informed that this only affects the possibility to embed a
2443 ;; spreadsheet inside an Abiword document. So presumably when we
2444 ;; package Abiword we'll have to refer it to this directory.
2445 (substitute* "configure"
2446 (("^GOFFICE_PLUGINS_DIR=.*")
2447 (string-append "GOFFICE_PLUGINS_DIR="
2448 (assoc-ref outputs "out")
2449 "/goffice/plugins"))))))))
b804c61e
JD
2450 (inputs
2451 `(("glib" ,glib)
2452 ("gtk+" ,gtk+)
2453 ("goffice" ,goffice)
2454 ("libgsf" ,libgsf)
7bcbd40d 2455 ("librsvg" ,librsvg)
b804c61e 2456 ("libxml2" ,libxml2)
7bcbd40d 2457 ("libxslt" ,libxslt)
2e4c5457 2458 ("python" ,python-2)
6983ba56 2459 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
2460 ("zlib" ,zlib)))
2461 (native-inputs
6983ba56 2462 `(("bison" ,bison)
1ed398d1 2463 ("docbook-xml" ,docbook-xml)
6983ba56 2464 ("intltool" ,intltool)
3a2efbc8 2465 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
b9663471 2466 ("glib:bin" ,glib "bin")
b804c61e
JD
2467 ("pkg-config" ,pkg-config)))
2468 (home-page "http://www.gnumeric.org")
66672a45
LC
2469 (synopsis "Spreadsheet application")
2470 (description
2471 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
2472interoperable with other spreadsheet applications. It has a vast array of
2473features beyond typical spreadsheet functionality, such as support for linear
2474and non-linear solvers, statistical analysis, and telecommunication
2475engineering.")
2476 (license
b804c61e
JD
2477 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2478 (list license:gpl2 license:gpl3))))
6f885c05
FB
2479
2480(define-public gnome-themes-standard
2481 (package
2482 (name "gnome-themes-standard")
0b7b8fb0 2483 (version "3.22.3")
6f885c05
FB
2484 (source
2485 (origin
2486 (method url-fetch)
2e6ecc5c 2487 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
2488 (version-major+minor version) "/" name "-"
2489 version ".tar.xz"))
2490 (sha256
2491 (base32
0b7b8fb0 2492 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 2493 (build-system gnu-build-system)
8ac70c7f
SB
2494 (arguments
2495 '(#:configure-flags
2496 ;; Don't create 'icon-theme.cache'.
2497 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2498 (true (string-append coreutils "/bin/true")))
2499 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
2500 (inputs
2501 `(("gtk+" ,gtk+)
2502 ("gtk+-2" ,gtk+-2)
2503 ("librsvg" ,librsvg)
2504 ("libxml2" ,libxml2)
2505 ("glib" ,glib)))
2506 (native-inputs
2507 `(("intltool" ,intltool)
2508 ("glib:bin" ,glib "bin")
2509 ("pkg-config" ,pkg-config)))
6f885c05
FB
2510 (home-page "https://launchpad.net/gnome-themes-standard")
2511 (synopsis "Default GNOME 3 themes")
2512 (description
2513 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
2514 (license license:lgpl2.1+)))
5a659a48 2515
df90c701
RW
2516(define-public seahorse
2517 (package
2518 (name "seahorse")
bcea3c11 2519 (version "3.32.2")
df90c701
RW
2520 (source
2521 (origin
2522 (method url-fetch)
2523 (uri (string-append "mirror://gnome/sources/" name "/"
2524 (version-major+minor version) "/" name "-"
2525 version ".tar.xz"))
2526 (sha256
2527 (base32
bcea3c11 2528 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
2529 (patches (search-patches
2530 "seahorse-gkr-use-0-on-empty-flags.patch"))))
2531 (build-system meson-build-system)
2532 (arguments
bcea3c11
KK
2533 '(#:glib-or-gtk? #t
2534 #:phases
af561664
MÁAV
2535 (modify-phases %standard-phases
2536 (add-after 'unpack 'skip-gtk-update-icon-cache
2537 ;; Don't create 'icon-theme.cache'.
2538 (lambda _
2539 (substitute* "build-aux/meson_post_install.py"
2540 (("gtk-update-icon-cache") "true"))
2541 #t)))))
df90c701
RW
2542 (inputs
2543 `(("gtk+" ,gtk+)
2544 ("gcr" ,gcr)
34b979b9 2545 ("gnupg" ,gnupg)
df90c701 2546 ("gpgme" ,gpgme)
34b979b9 2547 ("openldap" ,openldap)
4a1bf090 2548 ("openssh" ,openssh)
af561664 2549 ("avahi" ,avahi)
bcea3c11 2550 ("libpwquality" ,libpwquality)
34b979b9
EF
2551 ("libsecret" ,libsecret)
2552 ("libsoup" ,libsoup)))
df90c701 2553 (native-inputs
af561664 2554 `(("gettext" ,gettext-minimal)
df90c701
RW
2555 ("glib:bin" ,glib "bin")
2556 ("itstool" ,itstool)
bcb354ad 2557 ("pkg-config" ,pkg-config)
af561664 2558 ("vala" ,vala)
bcb354ad 2559 ("xmllint" ,libxml2)))
bcea3c11 2560 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
2561 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
2562 (description
2563 "Seahorse is a GNOME application for managing encryption keys and
2564passwords in the GNOME keyring.")
2565 (license license:gpl2+)))
2566
5a659a48
SB
2567(define-public vala
2568 (package
2569 (name "vala")
2d6872f6 2570 (version "0.44.5")
5a659a48
SB
2571 (source (origin
2572 (method url-fetch)
2573 (uri (string-append "mirror://gnome/sources/" name "/"
2574 (version-major+minor version) "/"
2575 name "-" version ".tar.xz"))
2576 (sha256
2577 (base32
2d6872f6 2578 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
5a659a48 2579 (build-system gnu-build-system)
1ea90625
SB
2580 (arguments
2581 '(#:phases
2582 (modify-phases %standard-phases
f4925a4f 2583 (add-before 'check 'pre-check
1ea90625
SB
2584 (lambda _
2585 (setenv "CC" "gcc")
8839b6be
RW
2586 (substitute* "valadoc/tests/testrunner.sh"
2587 (("export PKG_CONFIG_PATH=" m)
2588 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
2589 ;; For missing '/etc/machine-id'.
2590 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 2591 #t)))))
5a659a48
SB
2592 (native-inputs
2593 `(("pkg-config" ,pkg-config)
2594 ("flex" ,flex)
2595 ("bison" ,bison)
2596 ("xsltproc" ,libxslt)
2597 ("dbus" ,dbus) ; for dbus tests
2598 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
2599 (inputs
2600 `(("graphviz" ,graphviz)))
5a659a48 2601 (propagated-inputs
8839b6be 2602 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 2603 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
2604 (synopsis "Compiler for the GObject type system")
2605 (description
2606 "Vala is a programming language that aims to bring modern programming
2607language features to GNOME developers without imposing any additional runtime
2608requirements and without using a different ABI compared to applications and
2609libraries written in C.")
2610 (license license:lgpl2.1+)))
ea57378f
SB
2611
2612(define-public vte
2613 (package
2614 (name "vte")
68c47474 2615 (version "0.58.3")
ea57378f
SB
2616 (source (origin
2617 (method url-fetch)
ac87ffb8 2618 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 2619 (version-major+minor version) "/"
ac87ffb8 2620 "vte-" version ".tar.xz"))
ea57378f
SB
2621 (sha256
2622 (base32
68c47474
TGR
2623 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
2624 (build-system meson-build-system)
ea57378f
SB
2625 (native-inputs
2626 `(("pkg-config" ,pkg-config)
2627 ("intltool" ,intltool)
2628 ("vala" ,vala)
2629 ("gobject-introspection" ,gobject-introspection)
68c47474 2630 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 2631 ("gperf" ,gperf)
ea57378f
SB
2632 ("xmllint" ,libxml2)))
2633 (propagated-inputs
68c47474
TGR
2634 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
2635 ("gnutls" ,gnutls) ; ditto
2636 ("pcre2" ,pcre2))) ; ditto
f032d0be 2637 (home-page "https://www.gnome.org/")
ea57378f
SB
2638 (synopsis "Virtual Terminal Emulator")
2639 (description
2640 "VTE is a library (libvte) implementing a terminal emulator widget for
2641GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
2642gnome-terminal, but can also be used to embed a console/terminal in games,
2643editors, IDEs, etc.")
2644 (license license:lgpl2.1+)))
2645
c44fb4df
MO
2646(define-public vte-ng
2647 (package
2648 (inherit vte)
2649 (name "vte-ng")
24f4fcbe 2650 (version "0.58.2.a")
afd90f8d 2651 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
2652 (source (origin
2653 (method git-fetch)
2654 (uri (git-reference (url home-page) (commit version)))
2655 (file-name (git-file-name name version))
2656 (sha256
2657 (base32
24f4fcbe
MB
2658 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
2659 (build-system meson-build-system)
c44fb4df
MO
2660 (native-inputs
2661 `(("gtk-doc" ,gtk-doc)
c44fb4df 2662 ,@(package-native-inputs vte)))
c44fb4df 2663 (arguments
24f4fcbe 2664 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
2665 (synopsis "Enhanced VTE terminal widget")
2666 (description
2667 "VTE is a library (libvte) implementing a terminal emulator widget for
2668GTK+, this fork provides additional functions exposed for keyboard text
2669selection and URL hints.")))
2670
2776d72c
EF
2671;; provides vte 2.90, required for some terminal emulators
2672;; tilda bug: https://github.com/lanoxx/tilda/issues/94
2673;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
2674;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
2675;; pantheon-terminal, roxterm are not currently packaged
2676(define-public vte-0.36
2677 (package (inherit vte)
2678 (name "vte")
2679 (version "0.36.5")
2680 (source (origin
2681 (method url-fetch)
2682 (uri (string-append "mirror://gnome/sources/" name "/"
2683 (version-major+minor version) "/"
2684 name "-" version ".tar.xz"))
2685 (sha256
2686 (base32
2687 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
2688 (propagated-inputs
2689 `(("gtk" ,gtk+)
2690 ("ncurses" ,ncurses)))))
2691
ea57378f
SB
2692;; stable version for gtk2, required by xfce4-terminal.
2693(define-public vte/gtk+-2
2694 (package (inherit vte)
2695 (name "vte")
2696 (version "0.28.2")
2697 (source (origin
2698 (method url-fetch)
2699 (uri (string-append "mirror://gnome/sources/" name "/"
2700 (version-major+minor version) "/"
2701 name "-" version ".tar.xz"))
2702 (sha256
2703 (base32
7d48938a
EF
2704 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
2705 (patches (search-patches
2706 "vte-CVE-2012-2738-pt1.patch"
2707 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 2708 (build-system gnu-build-system)
ea57378f
SB
2709 (arguments
2710 '(#:configure-flags '("--disable-python")))
2711 (native-inputs
2712 `(("pkg-config" ,pkg-config)
2713 ("intltool" ,intltool)
2714 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
2715 (propagated-inputs
2716 `(("gtk+" ,gtk+-2) ; required by libvte.pc
2717 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 2718
cce0da5e
TD
2719(define-public vinagre
2720 (package
2721 (name "vinagre")
2722 (version "3.22.0")
2723 (source (origin
2724 (method url-fetch)
2725 (uri (string-append "mirror://gnome/sources/" name "/"
2726 (version-major+minor version) "/"
2727 name "-" version ".tar.xz"))
684f97f8
EF
2728 (patches (search-patches "vinagre-newer-freerdp.patch"
2729 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
2730 (sha256
2731 (base32
2732 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
2733 (build-system glib-or-gtk-build-system)
684f97f8 2734 (arguments
7f486d25
MC
2735 ;; Disable -Werror and such, to avoid build failures on compilation
2736 ;; warnings.
2737 '(#:configure-flags '("--enable-compile-warnings=minimum")
2738 #:phases
684f97f8 2739 (modify-phases %standard-phases
1839768c
EF
2740 (add-before 'install 'skip-gtk-update-icon-cache
2741 (lambda _
2742 ;; Don't create 'icon-theme.cache'
2743 (substitute* (find-files "." "^Makefile$")
2744 (("gtk-update-icon-cache") (which "true")))
2745 #t))
684f97f8
EF
2746 (add-after 'unpack 'patch-configure
2747 (lambda _
2748 (substitute* "configure"
2749 (("freerdp") "freerdp2"))
2750 #t)))))
cce0da5e
TD
2751 (native-inputs
2752 `(("pkg-config" ,pkg-config)
2753 ("intltool" ,intltool)
2754 ("itstool" ,itstool)
1839768c 2755 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
2756 (inputs
2757 `(("libxml2" ,libxml2)
2758 ("gtk-vnc" ,gtk-vnc)
2759 ("gnome-keyring" ,gnome-keyring)
2760 ("libsecret" ,libsecret)
2761 ("freerdp" ,freerdp)
2762 ("spice" ,spice)
2763 ("spice-gtk" ,spice-gtk)
2764 ("telepathy-glib" ,telepathy-glib)
2765 ("vte" ,vte)))
cce0da5e
TD
2766 (home-page "https://wiki.gnome.org/Apps/Vinagre")
2767 (synopsis "Remote desktop viewer for GNOME")
2768 (description "Vinagre is a remote display client supporting the VNC, SPICE
2769and RDP protocols.")
2770 (license license:gpl3+)))
2771
b47e1b20
FB
2772(define-public dconf
2773 (package
2774 (name "dconf")
1e33331c 2775 (version "0.32.0")
b47e1b20
FB
2776 (source (origin
2777 (method url-fetch)
2778 (uri (string-append
2e6ecc5c 2779 "mirror://gnome/sources/" name "/"
b47e1b20
FB
2780 (version-major+minor version) "/"
2781 name "-" version ".tar.xz"))
2782 (sha256
f05c809f 2783 (base32
1e33331c 2784 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 2785 (build-system meson-build-system)
bc036f4c
MB
2786 (propagated-inputs
2787 ;; In Requires of dconf.pc.
2788 `(("glib" ,glib)))
b47e1b20
FB
2789 (inputs
2790 `(("gtk+" ,gtk+)
bc036f4c 2791 ("dbus" ,dbus)))
b47e1b20 2792 (native-inputs
1e33331c
MB
2793 `(("bash-completion" ,bash-completion)
2794 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 2795 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
2796 ("docbook-xml" ,docbook-xml-4.2)
2797 ("docbook-xsl" ,docbook-xsl)
35fa923d 2798 ("glib:bin" ,glib "bin")
03676d6f 2799 ("gtk-doc" ,gtk-doc)
35fa923d
MB
2800 ("pkg-config" ,pkg-config)
2801 ("vala" ,vala)))
b47e1b20
FB
2802 (arguments
2803 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
2804 ; or /etc/machine-id.
35fa923d
MB
2805 #:glib-or-gtk? #t
2806 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
2807 (home-page "https://developer.gnome.org/dconf")
2808 (synopsis "Low-level GNOME configuration system")
2809 (description "Dconf is a low-level configuration system. Its main purpose
2810is to provide a backend to GSettings on platforms that don't already have
2811configuration storage systems.")
e20e6b40 2812 (license license:lgpl2.1+)))
109da1c0
AE
2813
2814(define-public json-glib
2815 (package
2816 (name "json-glib")
4115e8ea 2817 (version "1.4.4")
109da1c0
AE
2818 (source (origin
2819 (method url-fetch)
2820 (uri (string-append "mirror://gnome/sources/" name "/"
2821 (version-major+minor version) "/"
2822 name "-" version ".tar.xz"))
2823 (sha256
2824 (base32
4115e8ea 2825 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 2826 (build-system meson-build-system)
109da1c0 2827 (native-inputs
98afa184
MB
2828 `(("gettext" ,gettext-minimal)
2829 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
2830 ("gobject-introspection" ,gobject-introspection)
2831 ("pkg-config" ,pkg-config)))
2832 (propagated-inputs
88c6b580 2833 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
2834 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
2835 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
2836 (description
2837 "JSON-GLib is a C library based on GLib providing serialization and
2838deserialization support for the JavaScript Object Notation (JSON) format
2839described by RFC 4627. It provides parser and generator GObject classes and
2840various wrappers for the complex data types employed by JSON, such as arrays
2841and objects.")
109da1c0 2842 (license license:lgpl2.1+)))
6f96a359
SB
2843
2844(define-public libxklavier
2845 (package
2846 (name "libxklavier")
5f39050b 2847 (version "5.4")
6f96a359 2848 (source (origin
5f39050b 2849 ;; Note: There's no tarball at ftp.gnome.org for this version.
2850 (method git-fetch)
2851 (uri (git-reference
2852 (url "https://anongit.freedesktop.org/git/libxklavier")
2853 (commit (string-append "libxklavier-" version))))
6f96a359
SB
2854 (sha256
2855 (base32
5f39050b 2856 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
2857 (file-name (git-file-name name version))))
6f96a359
SB
2858 (build-system gnu-build-system)
2859 (arguments
5f39050b 2860 '(#:phases
2861 (modify-phases %standard-phases
2862 (add-after 'unpack 'no-configure
2863 (lambda* _
2864 (setenv "NOCONFIGURE" "1")
2865 #t)))
2866 #:configure-flags
6f96a359
SB
2867 (list (string-append "--with-xkb-base="
2868 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 2869 "/share/X11/xkb")
2870 "--disable-xmodmap-support")))
6f96a359
SB
2871 (native-inputs
2872 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
2873 ("gobject-introspection" ,gobject-introspection)
5f39050b 2874 ("pkg-config" ,pkg-config)
2875 ("gtk-doc" ,gtk-doc)
2876 ("intltool" ,intltool)
2877 ("which" ,which)
2878 ("autoconf" ,autoconf)
2879 ("automake" ,automake)
2880 ("libtool" ,libtool)))
6f96a359
SB
2881 (propagated-inputs
2882 ;; Required by libxklavier.pc.
2883 `(("glib" ,glib)
2884 ("libxml2" ,libxml2)))
2885 (inputs
2886 `(("iso-codes" ,iso-codes)
2887 ("libxi" ,libxi)
2888 ("libxkbfile" ,libxkbfile)
2889 ("xkbcomp" ,xkbcomp)
2890 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 2891 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
2892 (synopsis "High-level API for X Keyboard Extension")
2893 (description
2894 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
2895Extension known as XKB. This library is intended to support XFree86 and other
2896commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
2897indicators etc).")
2898 (license license:lgpl2.0+)))
619936a4
LC
2899
2900(define-public python2-rsvg
2901 ;; XXX: This is actually a subset of gnome-python-desktop.
2902 (package
2903 (name "python2-rsvg")
2904 (version "2.32.0")
2905 (source
2906 (origin
2907 (method url-fetch)
2908 (uri (string-append
2909 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
2910 version ".tar.bz2"))
2911 (sha256
2912 (base32
2913 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
2914 (build-system gnu-build-system)
2915 (native-inputs
2916 `(("pkg-config" ,pkg-config)))
2917 (inputs
2918 `(("python" ,python-2)
2919 ("python2-pygtk" ,python2-pygtk)
2920 ("librsvg" ,librsvg)))
f032d0be 2921 (home-page "https://www.gnome.org")
619936a4
LC
2922 (synopsis "Python bindings to librsvg")
2923 (description
3ad75446 2924 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
2925library.")
2926
2927 ;; This is the license of the rsvg bindings. The license of each module
2928 ;; of gnome-python-desktop is given in 'COPYING'.
2929 (license license:lgpl2.1+)))
a31a6d22 2930
f2ca414a
SB
2931(define-public glib-networking
2932 (package
2933 (name "glib-networking")
0d75c64d 2934 (version "2.60.3")
f2ca414a
SB
2935 (source (origin
2936 (method url-fetch)
2937 (uri (string-append "mirror://gnome/sources/glib-networking/"
2938 (version-major+minor version) "/"
fb8fe1e8 2939 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
2940 (sha256
2941 (base32
0d75c64d 2942 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 2943 (build-system meson-build-system)
f2ca414a 2944 (arguments
0d75c64d 2945 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
2946 (native-inputs
2947 `(("pkg-config" ,pkg-config)
2948 ("intltool" ,intltool)))
2949 (inputs
2950 `(("glib" ,glib)
2951 ("gnutls" ,gnutls)
4b8f1313 2952 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 2953 (home-page "https://www.gnome.org")
f2ca414a
SB
2954 (synopsis "Network-related GIO modules")
2955 (description
2956 "This package contains various network related extensions for the GIO
2957library.")
2958 (license license:lgpl2.0+)))
2959
ca649680 2960(define-public rest
4510b2da 2961 (package
ca649680 2962 (name "rest")
a4194d16 2963 (version "0.8.1")
4510b2da
SB
2964 (source (origin
2965 (method url-fetch)
2966 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
2967 (version-major+minor version) "/"
2968 name "-" version ".tar.xz"))
4510b2da
SB
2969 (sha256
2970 (base32
a4194d16 2971 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
2972 (build-system gnu-build-system)
2973 (arguments
2974 '(#:tests? #f ; tests require internet connection
2975 #:configure-flags
2976 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
2977 (native-inputs
2978 `(("glib-mkenums" ,glib "bin")
2979 ("gobject-introspection" ,gobject-introspection)
2980 ("pkg-config" ,pkg-config)))
2981 (propagated-inputs
2982 ;; rest-0.7.pc refers to all these.
2983 `(("glib" ,glib)
2984 ("libsoup" ,libsoup)
2985 ("libxml2" ,libxml2)))
24d6cc1d 2986 (home-page "https://www.gtk.org/")
4510b2da
SB
2987 (synopsis "RESTful web api query library")
2988 (description
2989 "This library was designed to make it easier to access web services that
2990claim to be \"RESTful\". It includes convenience wrappers for libsoup and
2991libxml to ease remote use of the RESTful API.")
2992 (license license:lgpl2.1+)))
2993
6e1bb642
SB
2994(define-public libsoup
2995 (package
2996 (name "libsoup")
9ae87870 2997 (version "2.68.3")
6e1bb642
SB
2998 (source (origin
2999 (method url-fetch)
3000 (uri (string-append "mirror://gnome/sources/libsoup/"
3001 (version-major+minor version) "/"
c1b79b36 3002 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3003 (sha256
3004 (base32
9ae87870 3005 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
eccaa8bf 3006 (build-system meson-build-system)
6e1bb642
SB
3007 (outputs '("out" "doc"))
3008 (arguments
2deb146f 3009 `(#:modules ((guix build utils)
eccaa8bf 3010 (guix build meson-build-system)
2deb146f
LC
3011 (ice-9 popen))
3012
f8026a79 3013 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3014 #:phases
3015 (modify-phases %standard-phases
eccaa8bf 3016 (add-after 'unpack 'adjust-tests
26c228f9 3017 (lambda _
eccaa8bf
MB
3018 ;; This test fails due to missing /etc/nsswitch.conf
3019 ;; in the build environment.
26c228f9
LC
3020 (substitute* "tests/socket-test.c"
3021 ((".*/sockets/unconnected.*") ""))
2deb146f 3022
f8026a79
MB
3023 ;; These fail because "subdomain.localhost" does not resolve in
3024 ;; the build environment.
3025 (substitute* "tests/hsts-test.c"
3026 ((".*/hsts/basic.*") "")
3027 ((".*/hsts/subdomains.*") "")
3028 ((".*/hsts/superdomain.*") "")
3029 ((".*/hsts/utf8-address.*") ""))
3030 (substitute* "tests/hsts-db-test.c"
3031 ((".*/hsts-db/subdomains.*") ""))
3032
2deb146f
LC
3033 ;; Generate a self-signed certificate that has "localhost" as its
3034 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3035 ;; 3.5.12, tests such as "ssl-tests" fail:
3036 ;;
3037 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3038 ;;
3039 ;; 'certtool' is interactive so we have to pipe it the answers.
3040 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3041 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3042 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3043 (for-each (lambda (line)
3044 (display line pipe)
3045 (newline pipe))
3046 '("" ;Common name
3047 "" ;UID
3048 "Guix" ;Organizational unit name
3049 "GNU" ;Organization name
3050 "" ;Locality name
3051 "" ;State or province
3052 "" ;Country
3053 "" ;subject's domain component (DC)
3054 "" ;E-mail
3055 "" ;serial number
3056 "-1" ;expiration time
3057 "N" ;belong to authority?
3058 "N" ;web client certificate?
3059 "N" ;IPsec IKE?
3060 "Y" ;web server certificate?
3061 "localhost" ;dnsName of subject
3062 "" ;dnsName of subject (end)
3063 "" ;URI of subject
3064 "127.0.0.1" ;IP address of subject
3065 "" ;signing?
06f5bc4e
MB
3066 "" ;encryption (RSA)?
3067 "" ;data encryption?
2deb146f
LC
3068 "" ;sign OCSP requests?
3069 "" ;sign code?
3070 "" ;time stamping?
3071 "" ;email protection?
3072 "" ;URI of the CRL distribution point
3073 "y" ;above info OK?
3074 ))
3075 (close-pipe pipe))
26c228f9 3076 #t))
eccaa8bf
MB
3077 (add-after 'install 'move-doc
3078 (lambda* (#:key outputs #:allow-other-keys)
3079 (let ((out (assoc-ref outputs "out"))
3080 (doc (assoc-ref outputs "doc")))
3081 (mkdir-p (string-append doc "/share"))
3082 (copy-recursively (string-append out "/share/gtk-doc")
3083 (string-append doc "/share/gtk-doc"))
3084 (delete-file-recursively (string-append out "/share/gtk-doc"))
3085 #t))))))
6e1bb642 3086 (native-inputs
26c228f9 3087 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3088 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3089 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3090 ("intltool" ,intltool)
3091 ("pkg-config" ,pkg-config)
3092 ("python" ,python-wrapper)
fd730590 3093 ("vala" ,vala)
6e1bb642
SB
3094 ;; These are needed for the tests.
3095 ;; FIXME: Add PHP once available.
3096 ("curl" ,curl)
2deb146f 3097 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3098 ("httpd" ,httpd)))
3099 (propagated-inputs
3100 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3101 `(("brotli" ,google-brotli)
3102 ("glib" ,glib)
249846bf 3103 ("libpsl" ,libpsl)
eccaa8bf 3104 ("libxml2" ,libxml2)
f8026a79
MB
3105 ("sqlite" ,sqlite)
3106 ("zlib" ,zlib)))
eccaa8bf
MB
3107 (inputs
3108 `(("glib-networking" ,glib-networking)
3109 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3110 (home-page "https://live.gnome.org/LibSoup/")
3111 (synopsis "GLib-based HTTP Library")
3112 (description
3113 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3114and the GLib main loop, to integrate well with GNOME applications.")
3115 (license license:lgpl2.0+)))
3116
bba229a3
SB
3117(define-public libsecret
3118 (package
3119 (name "libsecret")
b243d2f7 3120 (version "0.19.1")
bba229a3
SB
3121 (source (origin
3122 (method url-fetch)
3123 (uri (string-append
896dcbc7
EF
3124 "mirror://gnome/sources/libsecret/"
3125 (version-major+minor version) "/"
0ada4e29 3126 "libsecret-" version ".tar.xz"))
bba229a3
SB
3127 (sha256
3128 (base32
b243d2f7 3129 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
bba229a3
SB
3130 (build-system gnu-build-system)
3131 (outputs '("out" "doc"))
3132 (arguments
3133 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3134 #:configure-flags
3135 (list (string-append "--with-html-dir="
3136 (assoc-ref %outputs "doc")
3137 "/share/gtk-doc/html"))))
3138 (native-inputs
c06ef010
MB
3139 `(("gettext" ,gettext-minimal)
3140 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3141 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3142 ("pkg-config" ,pkg-config)
3143 ("vala" ,vala)
3144 ("xsltproc" ,libxslt)))
3145 ;; These are needed for the tests.
3146 ;; FIXME: Add gjs once available.
3147 ;("dbus" ,dbus)
3148 ;("python2" ,python-2)
3149 ;("python2-dbus" ,python2-dbus)
3150 ;("python2-pygobject" ,python2-pygobject)
3151 ;("python2-pygobject-2" ,python2-pygobject-2)))
3152 (propagated-inputs
3153 `(("glib" ,glib))) ; required by libsecret-1.pc
3154 (inputs
3155 `(("docbook-xsl" ,docbook-xsl)
3156 ("libgcrypt" ,libgcrypt)
3157 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3158 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3159 (synopsis "GObject bindings for \"Secret Service\" API")
3160 (description
3161 "Libsecret is a GObject based library for storing and retrieving passwords
3162and other secrets. It communicates with the \"Secret Service\" using DBus.")
3163 (license license:lgpl2.1+)))
3164
b6821ee0 3165(define-public five-or-more
3166 (package
3167 (name "five-or-more")
d9795e93 3168 (version "3.32.0")
b6821ee0 3169 (source
3170 (origin
3171 (method url-fetch)
3172 (uri (string-append "mirror://gnome/sources/" name "/"
3173 (version-major+minor version) "/"
3174 name "-" version ".tar.xz"))
3175 (sha256
3176 (base32
d9795e93
KK
3177 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3178 (build-system meson-build-system)
3179 (arguments
3180 '(#:glib-or-gtk? #t
3181 #:phases
3182 (modify-phases %standard-phases
3183 (add-after 'unpack 'skip-gtk-update-icon-cache
3184 (lambda _
3185 (substitute* "meson_post_install.py"
3186 (("gtk-update-icon-cache") (which "true")))
3187 #t)))))
b6821ee0 3188 (native-inputs
3189 `(("pkg-config" ,pkg-config)
d9795e93 3190 ("appstream-glib" ,appstream-glib)
b6821ee0 3191 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3192 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3193 ("intltool" ,intltool)
3194 ("itstool" ,itstool)
d9795e93 3195 ("vala" ,vala)
b6821ee0 3196 ("xmllint" ,libxml2)))
3197 (inputs
3198 `(("gtk+" ,gtk+)
d9795e93 3199 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3200 ("librsvg" ,librsvg)))
3201 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3202 (synopsis "Logic puzzle game")
3203 (description "Five or More is a game where you try to align
3204 five or more objects of the same color and shape causing them to disappear.
3205 On every turn more objects will appear, until the board is full.
3206 Try to last as long as possible.")
3207 (license license:gpl2+)))
3208
a31a6d22
SB
3209(define-public gnome-mines
3210 (package
3211 (name "gnome-mines")
2d817e41 3212 (version "3.32.2")
a31a6d22
SB
3213 (source
3214 (origin
3215 (method url-fetch)
3216 (uri (string-append "mirror://gnome/sources/" name "/"
3217 (version-major+minor version) "/"
3218 name "-" version ".tar.xz"))
3219 (sha256
3220 (base32
2d817e41 3221 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3222 (build-system meson-build-system)
a31a6d22 3223 (arguments
2d817e41
KK
3224 '(#:glib-or-gtk? #t
3225 #:phases
a31a6d22 3226 (modify-phases %standard-phases
2d817e41
KK
3227 (add-after 'unpack 'skip-gtk-update-icon-cache
3228 (lambda _
3229 (substitute* "build-aux/meson_post_install.py"
3230 (("gtk-update-icon-cache") (which "true")))
3231 #t)))))
a31a6d22 3232 (native-inputs
8c0fab36
RW
3233 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3234 ("pkg-config" ,pkg-config)
a31a6d22
SB
3235 ("desktop-file-utils" ,desktop-file-utils)
3236 ("intltool" ,intltool)
bcb354ad 3237 ("itstool" ,itstool)
8c0fab36
RW
3238 ("vala" ,vala)
3239 ("yelp" ,yelp)
3240 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3241 (inputs
3242 `(("gtk+" ,gtk+)
73992962 3243 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3244 ("librsvg" ,librsvg)))
3245 (home-page "https://wiki.gnome.org/Apps/Mines")
3246 (synopsis "Minesweeper game")
3247 (description
3248 "Mines (previously gnomine) is a puzzle game where you locate mines
3249floating in an ocean using only your brain and a little bit of luck.")
3250 (license license:gpl2+)))
88f70665 3251
dfc407f3
KY
3252(define-public gnome-sudoku
3253 (package
3254 (name "gnome-sudoku")
7dc728c4 3255 (version "3.32.0")
dfc407f3
KY
3256 (source
3257 (origin
3258 (method url-fetch)
3259 (uri (string-append "mirror://gnome/sources/" name "/"
3260 (version-major+minor version) "/"
3261 name "-" version ".tar.xz"))
3262 (sha256
3263 (base32
7dc728c4
KK
3264 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3265 (build-system meson-build-system)
3266 (arguments
3267 '(#:glib-or-gtk? #t
3268 #:phases
3269 (modify-phases %standard-phases
3270 (add-after 'unpack 'skip-gtk-update-icon-cache
3271 (lambda _
3272 (substitute* "build-aux/post_install.py"
3273 (("gtk-update-icon-cache") (which "true")))
3274 #t)))))
dfc407f3
KY
3275 (native-inputs
3276 `(("pkg-config" ,pkg-config)
3277 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3278 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3279 ("intltool" ,intltool)
3280 ("itstool" ,itstool)
7dc728c4 3281 ("vala" ,vala)
dfc407f3
KY
3282 ("xmllint" ,libxml2)))
3283 (inputs
3284 `(("gtk+" ,gtk+)
3285 ("json-glib" ,json-glib)
3286 ("libgee" ,libgee)
3287 ("librsvg" ,librsvg)
3288 ("qqwing" ,qqwing)))
3289 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3290 (synopsis "Japanese logic game")
3291 (description
3292 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3293GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3294possible while still providing features that make playing difficult Sudoku
3295more fun.")
3296 (license license:gpl2+)))
3297
88f70665
AW
3298(define-public gnome-terminal
3299 (package
3300 (name "gnome-terminal")
7dee3942 3301 (version "3.32.2")
88f70665
AW
3302 (source
3303 (origin
3304 (method url-fetch)
3305 (uri (string-append "mirror://gnome/sources/" name "/"
3306 (version-major+minor version) "/"
3307 name "-" version ".tar.xz"))
3308 (sha256
3309 (base32
7dee3942 3310 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3311 (build-system glib-or-gtk-build-system)
3312 (arguments
3313 '(#:configure-flags
3314 (list "--disable-migration" "--disable-search-provider"
3315 "--without-nautilus-extension")
3316 #:phases
3317 (modify-phases %standard-phases
3a4de6b2 3318 (add-before 'configure 'patch-/bin/true
88f70665
AW
3319 (lambda _
3320 (substitute* "configure"
3321 (("/bin/true") (which "true"))))))))
3322 (native-inputs
3323 `(("pkg-config" ,pkg-config)
3324 ("desktop-file-utils" ,desktop-file-utils)
3325 ("intltool" ,intltool)
bcb354ad
SB
3326 ("itstool" ,itstool)
3327 ("xmllint" ,libxml2)))
68702167
MW
3328 (propagated-inputs
3329 `(("dconf" ,dconf)))
88f70665
AW
3330 (inputs
3331 `(("gtk+" ,gtk+)
3332 ("vte" ,vte)
3333 ("gnutls" ,gnutls)
88f70665
AW
3334 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3335 ("util-linux" ,util-linux)
3336 ("vala" ,vala)))
3337 (home-page "https://wiki.gnome.org/Apps/Terminal")
3338 (synopsis "Terminal emulator")
3339 (description
3340 "GNOME Terminal is a terminal emulator application for accessing a
3341UNIX shell environment which can be used to run programs available on
3342your system.
3343
3344It supports several profiles, multiple tabs and implements several
3345keyboard shortcuts.")
3346 (license license:gpl3+)))
75016d07
AW
3347
3348(define-public colord
3349 (package
3350 (name "colord")
f98be942 3351 (version "1.4.4")
75016d07
AW
3352 (source
3353 (origin
3354 (method url-fetch)
5cc3096c 3355 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3356 "colord-" version ".tar.xz"))
75016d07 3357 (sha256
f98be942 3358 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3359 (build-system meson-build-system)
75016d07 3360 (arguments
a68544a8
RW
3361 '(;; FIXME: One test fails:
3362 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3363 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3364 ;; application/x-zerosize
75016d07 3365 #:tests? #f
a68544a8
RW
3366 #:glib-or-gtk? #t
3367 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 3368 ;; No dep on systemd.
a68544a8 3369 "-Dsystemd=false"
75016d07
AW
3370 ;; Wants to install to global completion dir;
3371 ;; punt.
a68544a8 3372 "-Dbash_completion=false"
a68544a8
RW
3373 "-Ddaemon_user=colord"
3374 "-Dsane=true"
dac26e22 3375 "-Dvapi=true"
6f20e2dc 3376 ;; Requires spotread.
a68544a8 3377 "-Dargyllcms_sensor=false"
6f20e2dc 3378 ;; TODO: Requires docbook2x.
a68544a8 3379 "-Dman=false")
75016d07
AW
3380 #:phases
3381 (modify-phases %standard-phases
a68544a8
RW
3382 (add-before 'configure 'patch-build-system
3383 (lambda* (#:key outputs #:allow-other-keys)
3384 (substitute* "rules/meson.build"
3385 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3386 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
3387 #t))
3388 (add-before 'configure 'set-sqlite3-file-name
3389 (lambda* (#:key inputs #:allow-other-keys)
3390 ;; "colormgr dump" works by invoking the "sqlite3" command.
3391 ;; Record its absolute file name.
3392 (let ((sqlite (assoc-ref inputs "sqlite")))
3393 (substitute* "client/cd-util.c"
3394 (("\"sqlite3\"")
3395 (string-append "\"" sqlite "/bin/sqlite3\"")))
3396 #t))))))
75016d07 3397 (native-inputs
6f20e2dc 3398 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
75016d07 3399 ("gobject-introspection" ,gobject-introspection)
a68544a8 3400 ("gtk-doc" ,gtk-doc)
6f20e2dc 3401 ("intltool" ,intltool)
75016d07 3402 ("libtool" ,libtool)
dac26e22
TGR
3403 ("pkg-config" ,pkg-config)
3404 ("vala" ,vala)))
65cb2d61
SB
3405 (propagated-inputs
3406 ;; colord.pc refers to all these.
3407 `(("glib" ,glib)
6f20e2dc
TGR
3408 ("lcms" ,lcms)
3409 ("udev" ,eudev)))
75016d07 3410 (inputs
65cb2d61 3411 `(("dbus-glib" ,dbus-glib)
a68544a8 3412 ("gusb" ,gusb)
80c7dd1a 3413 ("libgudev" ,libgudev)
75016d07 3414 ("libusb" ,libusb)
75016d07 3415 ("polkit" ,polkit)
a68544a8 3416 ("python" ,python-wrapper)
6f20e2dc 3417 ("sqlite" ,sqlite)
4c928743 3418 ("sane-backends" ,sane-backends)))
57e7d748 3419 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
3420 (synopsis "Color management service")
3421 (description "Colord is a system service that makes it easy to manage,
3422install and generate color profiles to accurately color manage input and
3423output devices.")
3424 (license license:gpl2+)))
7b2abd00
AW
3425
3426(define-public geoclue
3427 (package
3428 (name "geoclue")
b433c7b3 3429 (version "2.4.8")
7b2abd00
AW
3430 (source
3431 (origin
3432 (method url-fetch)
5cc3096c 3433 (uri (string-append "https://www.freedesktop.org/software/" name
7b2abd00
AW
3434 "/releases/" (version-major+minor version) "/"
3435 name "-" version ".tar.xz"))
3436 (sha256
3437 (base32
b433c7b3 3438 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
fc1adab1 3439 (patches (search-patches "geoclue-config.patch"))))
7b2abd00
AW
3440 (build-system glib-or-gtk-build-system)
3441 (arguments
3442 '(;; The tests want to run the system bus.
3443 #:tests? #f
3444 #:configure-flags (list ;; Disable bits requiring ModemManager.
3445 "--disable-3g-source"
3446 "--disable-cdma-source"
3447 "--disable-modem-gps-source"
3448 "--with-dbus-service-user=geoclue")
3449 #:phases
3450 (modify-phases %standard-phases
3a4de6b2 3451 (add-before 'configure 'patch-/bin/true
7b2abd00
AW
3452 (lambda _
3453 (substitute* "configure"
e3eb53e7
MW
3454 (("/bin/true") (which "true")))
3455 #t)))))
7b2abd00
AW
3456 (native-inputs
3457 `(("pkg-config" ,pkg-config)
758798a9 3458 ("gobject-introspection" ,gobject-introspection)
7b2abd00
AW
3459 ("intltool" ,intltool)))
3460 (inputs
54e911bc
SB
3461 `(("avahi" ,avahi)
3462 ("glib" ,glib)
7b2abd00
AW
3463 ("json-glib" ,json-glib)
3464 ("libsoup" ,libsoup)))
99adfd7d 3465 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
7b2abd00
AW
3466 (synopsis "Geolocation service")
3467 (description "Geoclue is a D-Bus service that provides location
3468information. The primary goal of the Geoclue project is to make creating
3469location-aware applications as simple as possible, while the secondary goal is
3470to ensure that no application can access location information without explicit
e881752c 3471permission from user.")
7b2abd00 3472 (license license:gpl2+)))
2bfe7437
AW
3473
3474(define-public geocode-glib
3475 (package
3476 (name "geocode-glib")
65de725f 3477 (version "3.26.1")
2bfe7437
AW
3478 (source (origin
3479 (method url-fetch)
3480 (uri (string-append "mirror://gnome/sources/geocode-glib/"
3481 (version-major+minor version) "/"
d485cdc0 3482 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
3483 (sha256
3484 (base32
65de725f 3485 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 3486 (build-system meson-build-system)
2bfe7437 3487 (arguments
a7dd0c02
RW
3488 `(#:phases
3489 (modify-phases %standard-phases
3490 ;; The tests require a bunch of locales.
3491 (add-before 'check 'set-locales
3492 (lambda* (#:key inputs #:allow-other-keys)
3493 (setenv "GUIX_LOCPATH"
3494 (string-append (assoc-ref inputs "glibc-locales")
3495 "/lib/locale"))
3496 #t)))))
2bfe7437
AW
3497 (native-inputs
3498 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
3499 ("glibc-locales" ,glibc-locales) ; for tests
3500 ("gettext" ,gettext-minimal)
2bfe7437 3501 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 3502 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
3503 ("pkg-config" ,pkg-config)
3504 ("json-glib" ,json-glib)))
3505 (propagated-inputs
3506 ;; geocode-glib-1.0.pc refers to GIO.
3507 `(("glib" ,glib)))
3508 (inputs
3509 `(("libsoup" ,libsoup)))
3510 (home-page "https://github.com/GNOME/geocode-glib/")
3511 (synopsis "Geocoding and reverse-geocoding library")
3512 (description
3513 "geocode-glib is a convenience library for geocoding (finding longitude,
3514and latitude from an address) and reverse geocoding (finding an address from
3515coordinates) using the Nominatim service. geocode-glib caches requests for
3516faster results and to avoid unnecessary server load.")
3517 (license license:lgpl2.0+)))
a1d5bb0e
AW
3518
3519(define-public upower
3520 (package
3521 (name "upower")
4088d809 3522 (version "0.99.10")
a1d5bb0e
AW
3523 (source (origin
3524 (method url-fetch)
9ec54965 3525 (uri (string-append "https://gitlab.freedesktop.org/upower/upower/"
4088d809 3526 "uploads/c438511024b9bc5a904f8775cfc8e4c4/"
9ec54965 3527 "upower-" version ".tar.xz"))
a1d5bb0e
AW
3528 (sha256
3529 (base32
4088d809 3530 "17d2bclv5fgma2y3g8bsn9pdvspn1zrzismzdnzfivc0f2wm28k4"))
fc1adab1 3531 (patches (search-patches "upower-builddir.patch"))))
a1d5bb0e
AW
3532 (build-system glib-or-gtk-build-system)
3533 (arguments
3534 '( ;; The tests want to contact the system bus, which can't be done in the
3535 ;; build environment. The integration test can run, but the last of
3536 ;; the up-self-tests doesn't. Disable tests for now.
3537 #:tests? #f
3538 #:configure-flags (list "--localstatedir=/var"
3539 (string-append "--with-udevrulesdir="
3540 (assoc-ref %outputs "out")
9ec54965 3541 "/lib/udev/rules.d"))))
a1d5bb0e 3542 (native-inputs
ebeabe2d
SB
3543 `(("gobject-introspection" ,gobject-introspection)
3544 ("pkg-config" ,pkg-config)
a1d5bb0e 3545 ("intltool" ,intltool)
55409295
LC
3546 ("python" ,python)
3547
3548 ;; For man pages.
3549 ("libxslt" ,libxslt) ;for 'xsltproc'
3550 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
3551 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 3552 (inputs
ea226291
SB
3553 `(("dbus-glib" ,dbus-glib)
3554 ("libgudev" ,libgudev)
a1d5bb0e 3555 ("libusb" ,libusb)))
d7a503fc
MB
3556 (propagated-inputs
3557 ;; In Requires of upower-glib.pc.
3558 `(("glib" ,glib)))
57e7d748 3559 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
3560 (synopsis "System daemon for managing power devices")
3561 (description
3562 "UPower is an abstraction for enumerating power devices,
3563listening to device events and querying history and statistics. Any
3564application or service on the system can access the org.freedesktop.UPower
3565service via the system message bus.")
3566 (license license:gpl2+)))
6a180f6f
AW
3567
3568(define-public libgweather
3569 (package
3570 (name "libgweather")
794ce8ea 3571 (version "3.28.3")
6a180f6f
AW
3572 (source (origin
3573 (method url-fetch)
3574 (uri (string-append "mirror://gnome/sources/" name "/"
3575 (version-major+minor version) "/"
3576 name "-" version ".tar.xz"))
3577 (sha256
3578 (base32
794ce8ea 3579 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 3580 (build-system meson-build-system)
6a180f6f 3581 (arguments
cf6cbc34
RW
3582 `(#:tests? #f ; one of two tests requires network access
3583 #:configure-flags
3584 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 3585 (assoc-ref %build-inputs "tzdata")
cf6cbc34 3586 "/share/zoneinfo"))))
6a180f6f
AW
3587 (native-inputs
3588 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 3589 ("gobject-introspection" ,gobject-introspection)
6a180f6f 3590 ("pkg-config" ,pkg-config)
1d3fcf94 3591 ("vala" ,vala)
6a180f6f
AW
3592 ("intltool" ,intltool)))
3593 (propagated-inputs
3594 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
3595 ;; libsoup.
3596 `(("gtk+" ,gtk+)
3597 ("gdk-pixbuf" ,gdk-pixbuf)
3598 ("libxml2" ,libxml2)
cf6cbc34 3599 ("libsoup" ,libsoup)
6a180f6f 3600 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
3601 (inputs
3602 `(("tzdata" ,tzdata)))
6a180f6f
AW
3603 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
3604 (synopsis "Location, time zone, and weather library for GNOME")
3605 (description
3606 "libgweather is a library to access weather information from online
3607services for numerous locations.")
3608 (license license:gpl2+)))
23a22af6
AW
3609
3610(define-public gnome-settings-daemon
3611 (package
3612 (name "gnome-settings-daemon")
4be0719f 3613 (version "3.32.1")
23a22af6
AW
3614 (source
3615 (origin
3616 (method url-fetch)
3617 (uri (string-append "mirror://gnome/sources/" name "/"
3618 (version-major+minor version) "/"
3619 name "-" version ".tar.xz"))
3620 (sha256
3621 (base32
4be0719f 3622 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 3623 (build-system meson-build-system)
23a22af6 3624 (arguments
e644f9fa
RW
3625 `(#:glib-or-gtk? #t
3626 #:configure-flags
3627 (list (string-append "-Dudev_dir="
3628 (assoc-ref %outputs "out")
4d0e085b
RW
3629 "/lib/udev/rules.d/")
3630 ;; Otherwise, the RUNPATH will lack the final path component.
3631 (string-append "-Dc_link_args=-Wl,-rpath="
3632 (assoc-ref %outputs "out")
3633 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 3634 ;; Color management test can't reach the colord system service.
23a22af6
AW
3635 #:tests? #f))
3636 (native-inputs
e644f9fa
RW
3637 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3638 ("pkg-config" ,pkg-config)
23a22af6
AW
3639 ("intltool" ,intltool)
3640 ("xsltproc" ,libxslt)
3641 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3642 ("docbook-xml" ,docbook-xml-4.2)
3643 ("docbook-xsl" ,docbook-xsl)))
3644 (inputs
e644f9fa
RW
3645 `(("alsa-lib" ,alsa-lib)
3646 ("colord" ,colord)
ea226291 3647 ("libgudev" ,libgudev)
23a22af6
AW
3648 ("upower" ,upower)
3649 ("polkit" ,polkit)
3650 ("pulseaudio" ,pulseaudio)
3651 ("libcanberra" ,libcanberra)
3652 ("libx11" ,libx11)
3653 ("libxtst" ,libxtst)
3654 ("lcms" ,lcms)
3655 ("libnotify" ,libnotify)
3656 ("geoclue" ,geoclue)
3657 ("geocode-glib" ,geocode-glib)
3658 ("libgweather" ,libgweather)
3659 ("gnome-desktop" ,gnome-desktop)
3660 ("nss" ,nss)
3661 ("cups" ,cups)
ec2b1921
AW
3662 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3663 ("libwacom" ,libwacom)
3664 ("librsvg" ,librsvg)
eee7878f 3665 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 3666 ("wayland" ,wayland)
eee7878f 3667 ("network-manager" ,network-manager)))
f032d0be 3668 (home-page "https://www.gnome.org")
23a22af6
AW
3669 (synopsis "GNOME settings daemon")
3670 (description
3671 "This package contains the daemon responsible for setting the various
3672parameters of a GNOME session and the applications that run under it. It
3673handles settings such keyboard layout, shortcuts, and accessibility, clipboard
3674settings, themes, mouse settings, and startup of other daemons.")
3675 (license license:gpl2+)))
1e7464a9
DH
3676
3677(define-public totem-pl-parser
3678 (package
3679 (name "totem-pl-parser")
77425f04 3680 (version "3.26.3")
1e7464a9
DH
3681 (source (origin
3682 (method url-fetch)
e980cbe9
MW
3683 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
3684 (version-major+minor version) "/"
1e7464a9
DH
3685 "totem-pl-parser-" version ".tar.xz"))
3686 (sha256
3687 (base32
77425f04 3688 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 3689 (build-system meson-build-system)
1e7464a9
DH
3690 (arguments
3691 ;; FIXME: Tests require gvfs.
3692 `(#:tests? #f))
3693 (native-inputs
3694 `(("intltool" ,intltool)
3695 ("glib" ,glib "bin")
4d6d8281 3696 ("gobject-introspection" ,gobject-introspection)
1e7464a9 3697 ("pkg-config" ,pkg-config)))
22a6ad6a 3698 (propagated-inputs
1e7464a9
DH
3699 `(("glib" ,glib)
3700 ("gmime" ,gmime)
1e9b19dd
RW
3701 ("libarchive" ,libarchive)
3702 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
3703 ("libxml2" ,libxml2)))
3704 (inputs
0a6e9e13 3705 `(("libsoup" ,libsoup)))
1e7464a9
DH
3706 (home-page "https://projects.gnome.org/totem")
3707 (synopsis "Library to parse and save media playlists for GNOME")
3708 (description "Totem-pl-parser is a GObjects-based library to parse and save
3709playlists in a variety of formats.")
3710 (license license:lgpl2.0+)))
3711
6b888eff
SB
3712(define-public aisleriot
3713 (package
3714 (name "aisleriot")
36ed9b46 3715 (version "3.22.9")
6b888eff
SB
3716 (source (origin
3717 (method url-fetch)
e43f622a 3718 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 3719 (version-major+minor version) "/"
e43f622a 3720 "aisleriot-" version ".tar.xz"))
6b888eff
SB
3721 (sha256
3722 (base32
36ed9b46 3723 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
3724 (build-system glib-or-gtk-build-system)
3725 (arguments
3726 '(#:configure-flags
3727 '("--with-platform=gtk-only"
3728 "--with-card-theme-formats=svg")))
3729 (native-inputs
3730 `(("desktop-file-utils" ,desktop-file-utils)
3731 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
3732 ("intltool" ,intltool)
3733 ("itstool" ,itstool)
3734 ("pkg-config" ,pkg-config)
3735 ("xmllint" ,libxml2)))
3736 (inputs
3737 `(("gtk+" ,gtk+)
226e57d6 3738 ("guile" ,guile-2.2)
6b888eff
SB
3739 ("libcanberra" ,libcanberra)
3740 ("librsvg" ,librsvg)))
3741 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
3742 (synopsis "Solitaire card games")
3743 (description
3744 "Aisleriot (also known as Solitaire or sol) is a collection of card games
3745which are easy to play with the aid of a mouse.")
3746 (license license:gpl3+)))
4a79e256 3747
f828d05b
KK
3748(define-public amtk
3749 (package
3750 (name "amtk")
09c4e43f 3751 (version "5.0.1")
f828d05b
KK
3752 (source (origin
3753 (method url-fetch)
bf92ba6b 3754 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 3755 (version-major+minor version) "/"
bf92ba6b 3756 "amtk-" version ".tar.xz"))
f828d05b
KK
3757 (sha256
3758 (base32
09c4e43f 3759 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
f828d05b
KK
3760 (build-system gnu-build-system)
3761 (arguments
3762 '(#:configure-flags '("--enable-gtk-doc")))
3763 (native-inputs
3764 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 3765 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
3766 ("gtk-doc" ,gtk-doc)
3767 ("pkg-config" ,pkg-config)))
3768 (inputs
3769 `(("glib" ,glib)
3770 ("gtk+" ,gtk+)))
3771 (home-page "https://wiki.gnome.org/Projects/Amtk")
3772 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
3773 (description
3774 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
3775It is a basic GtkUIManager replacement based on GAction. It is suitable for
3776both a traditional UI or a modern UI with a GtkHeaderBar.")
3777 (license license:lgpl2.1+)))
3778
4a79e256
SB
3779(define-public devhelp
3780 (package
3781 (name "devhelp")
20db7a3d 3782 (version "3.32.0")
4a79e256
SB
3783 (source (origin
3784 (method url-fetch)
3785 (uri (string-append "mirror://gnome/sources/" name "/"
3786 (version-major+minor version) "/"
3787 name "-" version ".tar.xz"))
3788 (sha256
3789 (base32
20db7a3d 3790 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 3791 (build-system meson-build-system)
35407f94 3792 (arguments
20db7a3d
KK
3793 '(#:glib-or-gtk? #t
3794 #:phases
35407f94
EF
3795 (modify-phases %standard-phases
3796 (add-after 'unpack 'skip-gtk-update-icon-cache
3797 ;; Don't create 'icon-theme.cache'.
3798 (lambda _
3799 (substitute* "meson_post_install.py"
3800 (("gtk-update-icon-cache") "true"))
3801 #t)))))
4a79e256
SB
3802 (native-inputs
3803 `(("intltool" ,intltool)
5dd12afc 3804 ("itstool" ,itstool)
11d28bd9
KK
3805 ("gobject-introspection" ,gobject-introspection)
3806 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
3807 ("pkg-config" ,pkg-config)))
3808 (inputs
11d28bd9
KK
3809 `(("amtk" ,amtk)
3810 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
3811 ("webkitgtk" ,webkitgtk)))
3812 (home-page "https://wiki.gnome.org/Apps/Devhelp")
3813 (synopsis "API documentation browser for GNOME")
3814 (description
3815 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
3816natively with GTK-Doc (the API reference system developed for GTK+ and used
3817throughout GNOME for API documentation).")
3818 (license license:gpl2+)))
ba421ab7
MW
3819
3820(define-public cogl
3821 (package
3822 (name "cogl")
54c69ae1 3823 (version "1.22.4")
ba421ab7
MW
3824 (source
3825 (origin
3826 (method url-fetch)
5754f0cf 3827 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 3828 (version-major+minor version) "/"
5754f0cf 3829 "cogl-" version ".tar.xz"))
ba421ab7 3830 (sha256
54c69ae1 3831 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
3832 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
3833 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
3834 (build-system gnu-build-system)
3835 (native-inputs
3836 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3837 ("gobject-introspection" ,gobject-introspection)
3838 ;;("xorg-server" ,xorg-server) ; for the test suite
3839 ("pkg-config" ,pkg-config)))
3840 (propagated-inputs
3841 `(("glib" ,glib)
3842 ("gdk-pixbuf" ,gdk-pixbuf)
3843 ("libx11" ,libx11)
3844 ("libxext" ,libxext)
3845 ("libxfixes" ,libxfixes)
3846 ("libxdamage" ,libxdamage)
3847 ("libxcomposite" ,libxcomposite)
3848 ("libxrandr" ,libxrandr)))
3849 (inputs
3850 `(("mesa" ,mesa)
3851 ("cairo" ,cairo)
3852 ("pango" ,pango)
3853 ("gstreamer" ,gstreamer)
31860852
KK
3854 ("gst-plugins-base" ,gst-plugins-base)
3855 ("wayland" ,wayland)))
ba421ab7
MW
3856 (arguments
3857 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
3858 "--enable-wayland-egl-platform"
3859 "--enable-wayland-egl-server"
3860
ba421ab7
MW
3861 ;; Arrange to pass an absolute file name to
3862 ;; dlopen for libGL.so.
3863 (string-append "--with-gl-libname="
3864 (assoc-ref %build-inputs "mesa")
3865 "/lib/libGL.so"))
3866 ;; XXX FIXME: All tests fail, with many warnings printed like this:
3867 ;; _FontTransOpen: Unable to Parse address
3868 ;; ${prefix}/share/fonts/X11/misc/
3869 #:tests? #f
3870 #; #:phases
3871 #;
3872 (modify-phases %standard-phases
3873 (add-before 'check 'start-xorg-server
3874 (lambda* (#:key inputs #:allow-other-keys)
3875 ;; The test suite requires a running X server.
3876 (system (format #f "~a/bin/Xvfb :1 &"
3877 (assoc-ref inputs "xorg-server")))
3878 (setenv "DISPLAY" ":1")
3879 #t)))))
3880 (home-page "http://www.cogl3d.org")
3881 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
3882 (description
3883 "Cogl is a small library for using 3D graphics hardware to draw pretty
3884pictures. The API departs from the flat state machine style of OpenGL and is
3885designed to make it easy to write orthogonal components that can render
3886without stepping on each others toes.")
3887 (license (list license:expat ; most of the code
3888 license:bsd-3 ; cogl/cogl-point-in-poly.c
3889 license:sgifreeb2.0 ; cogl-path/tesselator/
3890 license:asl2.0)))) ; examples/android/
fb182b8a
MW
3891
3892(define-public clutter
3893 (package
3894 (name "clutter")
6a88e4ee 3895 (version "1.26.2")
fb182b8a
MW
3896 (source
3897 (origin
3898 (method url-fetch)
3899 (uri (string-append "mirror://gnome/sources/" name "/"
3900 (version-major+minor version) "/"
3901 name "-" version ".tar.xz"))
3902 (sha256
3903 (base32
6a88e4ee 3904 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
3905 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
3906 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 3907 (build-system gnu-build-system)
600233bd
LC
3908 (outputs '("out"
3909 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
3910 (native-inputs
3911 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
3912 ("gobject-introspection" ,gobject-introspection)
3913 ("pkg-config" ,pkg-config)
3914 ("xsltproc" ,libxslt)))
3915 (propagated-inputs
3916 `(("cogl" ,cogl)
3917 ("cairo" ,cairo)
3918 ("atk" ,atk)
3919 ("gtk+" ,gtk+)
3920 ("json-glib" ,json-glib)
3921 ("glib" ,glib)
3922 ("libxcomposite" ,libxcomposite)
3923 ("libxdamage" ,libxdamage)
3924 ("libxext" ,libxext)
3925 ("xinput" ,xinput)))
3926 (inputs
3927 `(("libxkbcommon" ,libxkbcommon)
3928 ("udev" ,eudev)))
3929 (arguments
600233bd
LC
3930 `(#:configure-flags (list "--enable-x11-backend=yes"
3931
3932 ;; This produces share/doc/{clutter,cally}.
3933 (string-append "--with-html-dir="
3934 (assoc-ref %outputs "doc")
3935 "/share/doc"))
fb182b8a
MW
3936 ;; XXX FIXME: Get test suite working. It would probably fail in the
3937 ;; same way the cogl tests fail, since clutter is based on cogl.
3938 #:tests? #f))
3939 (home-page "http://www.clutter-project.org")
476af713 3940 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 3941 (description
476af713 3942 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
3943creating fast, mainly 2D single window applications such as media box UIs,
3944presentations, kiosk style applications and so on.")
3945 (license license:lgpl2.0+)))
bf7f17ba
MW
3946
3947(define-public clutter-gtk
3948 (package
3949 (name "clutter-gtk")
5d1a3219 3950 (version "1.8.4")
bf7f17ba
MW
3951 (source
3952 (origin
3953 (method url-fetch)
3954 (uri (string-append "mirror://gnome/sources/" name "/"
3955 (version-major+minor version) "/"
3956 name "-" version ".tar.xz"))
3957 (sha256
3958 (base32
5d1a3219 3959 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
3960 (build-system gnu-build-system)
3961 (native-inputs
3962 `(("pkg-config" ,pkg-config)
3963 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
3964 (propagated-inputs
3965 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
3966 `(("clutter" ,clutter)
3967 ("gtk+" ,gtk+)))
3968 (home-page "http://www.clutter-project.org")
476af713 3969 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 3970 (description
476af713 3971 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
3972creating fast, mainly 2D single window applications such as media box UIs,
3973presentations, kiosk style applications and so on.")
3974 (license license:lgpl2.0+)))
86d6a893
MW
3975
3976(define-public clutter-gst
3977 (package
3978 (name "clutter-gst")
ba07ac19 3979 (version "3.0.27")
86d6a893
MW
3980 (source
3981 (origin
3982 (method url-fetch)
f010f89b 3983 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 3984 (version-major+minor version) "/"
f010f89b 3985 "clutter-gst-" version ".tar.xz"))
86d6a893 3986 (sha256
ba07ac19 3987 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
3988 (build-system gnu-build-system)
3989 (native-inputs
ba07ac19 3990 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
3991 ("pkg-config" ,pkg-config)
3992 ("gobject-introspection" ,gobject-introspection)))
3993 (inputs
3994 `(("clutter" ,clutter)
3995 ("gstreamer" ,gstreamer)
3996 ("gst-plugins-base" ,gst-plugins-base)))
3997 (home-page "http://www.clutter-project.org")
3998 (synopsis "Integration library for using GStreamer with Clutter")
3999 (description
4000 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4001It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4002implements the ClutterGstPlayer interface using playbin. Clutter is an
4003OpenGL-based interactive canvas library.")
86d6a893 4004 (license license:lgpl2.0+)))
607a04ae 4005
30dc88d9
LC
4006(define-public libchamplain
4007 (package
4008 (name "libchamplain")
5564b2c5 4009 (version "0.12.16")
30dc88d9
LC
4010 (source (origin
4011 (method url-fetch)
4012 (uri (string-append
4013 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4014 version ".tar.xz"))
4015 (sha256
4016 (base32
5564b2c5 4017 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4018 (build-system gnu-build-system)
f7c6833f
LF
4019 (arguments '(#:configure-flags '("--enable-vala")))
4020 (native-inputs
4021 `(("gobject-introspection" ,gobject-introspection)
4022 ("pkg-config" ,pkg-config)
4023 ("vala" ,vala)))
30dc88d9
LC
4024 (propagated-inputs
4025 `(("libsoup" ,libsoup)
4026 ("sqlite" ,sqlite)
4027 ("clutter" ,clutter)
4028 ("clutter-gtk" ,clutter-gtk)
4029 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4030 ("cairo" ,cairo)
4031 ("gtk+3" ,gtk+)
4032 ("glib" ,glib)))
f032d0be 4033 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4034 (synopsis "C library providing a ClutterActor to display maps")
4035 (description
4036 "libchamplain is a C library providing a ClutterActor to display maps.
4037It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4038and Perl bindings are also available. It supports numerous free map sources
4039such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4040 (license license:lgpl2.1+)))
4041
607a04ae
MW
4042(define-public gom
4043 (package
4044 (name "gom")
0510440b 4045 (version "0.3.2")
607a04ae
MW
4046 (source
4047 (origin
4048 (method url-fetch)
6c8a0b6f 4049 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4050 (version-major+minor version) "/"
6c8a0b6f 4051 "gom-" version ".tar.xz"))
607a04ae
MW
4052 (sha256
4053 (base32
0510440b 4054 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4055 (build-system gnu-build-system)
4056 (native-inputs
4057 `(("intltool" ,intltool)
4058 ("pkg-config" ,pkg-config)
4059 ("gobject-introspection" ,gobject-introspection)))
4060 (inputs
4061 `(("glib" ,glib)
4062 ("gdk-pixbuf" ,gdk-pixbuf)
4063 ("sqlite" ,sqlite)))
4064 ;; XXX TODO: Figure out how to run the test suite.
4065 (arguments `(#:tests? #f))
4066 (home-page "https://wiki.gnome.org/Projects/Gom")
4067 (synopsis "Object mapper from GObjects to SQLite")
4068 (description
4069 "Gom provides an object mapper from GObjects to SQLite. It helps you
4070write applications that need to store structured data as well as make complex
4071queries upon that data.")
4072 (license license:lgpl2.1+)))
b7a3cf11 4073
865aacc9 4074(define-public libgnome-games-support
f09520db 4075 (package
865aacc9 4076 (name "libgnome-games-support")
4c6d15cf 4077 (version "1.4.4")
f09520db
SB
4078 (source (origin
4079 (method url-fetch)
2d8dca9d 4080 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4081 (version-major+minor version) "/"
2d8dca9d 4082 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4083 (sha256
4084 (base32
4c6d15cf 4085 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4086 (build-system gnu-build-system)
4087 (arguments
4088 '(#:phases
4089 (modify-phases %standard-phases
4090 (add-before 'check 'pre-check
4091 (lambda _
865aacc9 4092 ;; Tests require a writable HOME.
f09520db
SB
4093 (setenv "HOME" (getcwd))
4094 #t)))))
4095 (native-inputs
4096 `(("intltool" ,intltool)
4097 ("pkg-config" ,pkg-config)
4098 ("vala" ,vala)))
4099 (propagated-inputs
865aacc9 4100 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4101 `(("gtk+" ,gtk+)
4102 ("libgee" ,libgee)))
4103 (home-page "https://www.gnome.org/")
4104 (synopsis "Useful functionality shared among GNOME games")
4105 (description
865aacc9 4106 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4107GNOME Games, but it may be used by others.")
4108 (license license:lgpl3+)))
4109
b7a3cf11
SB
4110(define-public gnome-klotski
4111 (package
4112 (name "gnome-klotski")
c1e419c4 4113 (version "3.32.0")
b7a3cf11
SB
4114 (source (origin
4115 (method url-fetch)
4116 (uri (string-append "mirror://gnome/sources/" name "/"
4117 (version-major+minor version) "/"
4118 name "-" version ".tar.xz"))
4119 (sha256
4120 (base32
c1e419c4
KK
4121 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4122 (build-system meson-build-system)
4123 (arguments
4124 '(#:glib-or-gtk? #t
4125 #:phases
4126 (modify-phases %standard-phases
4127 (add-after 'unpack 'skip-gtk-update-icon-cache
4128 ;; Don't create 'icon-theme.cache'.
4129 (lambda _
4130 (substitute* "build-aux/meson_post_install.py"
4131 (("gtk-update-icon-cache") (which "true")))
4132 #t)))))
b7a3cf11
SB
4133 (native-inputs
4134 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4135 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4136 ("intltool" ,intltool)
4137 ("itstool" ,itstool)
bcb354ad 4138 ("pkg-config" ,pkg-config)
c1e419c4 4139 ("vala" ,vala)
bcb354ad 4140 ("xmllint" ,libxml2)))
b7a3cf11
SB
4141 (inputs
4142 `(("gtk+" ,gtk+)
f4eae76f 4143 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4144 ("librsvg" ,librsvg)))
4145 (home-page "https://wiki.gnome.org/Apps/Klotski")
4146 (synopsis "Sliding block puzzles")
4147 (description
4148 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4149the patterned block to the area bordered by green markers. To do so, you will
4150need to slide other blocks out of the way. Complete each puzzle in as few moves
4151as possible!")
4152 (license license:gpl2+)))
8d4791bf
MW
4153
4154(define-public grilo
4155 (package
4156 (name "grilo")
a865e938 4157 (version "0.3.10")
8d4791bf
MW
4158 (source
4159 (origin
4160 (method url-fetch)
4161 (uri (string-append "mirror://gnome/sources/" name "/"
4162 (version-major+minor version) "/"
4163 name "-" version ".tar.xz"))
4164 (sha256
4165 (base32
a865e938 4166 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4167 (build-system meson-build-system)
8d4791bf
MW
4168 (native-inputs
4169 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4170 ("intltool" ,intltool)
4171 ("pkg-config" ,pkg-config)
d48d4c98
KK
4172 ("gobject-introspection" ,gobject-introspection)
4173 ("gtk-doc" ,gtk-doc)
4174 ("vala" ,vala)))
8d4791bf 4175 (inputs
6d7273a0
KK
4176 `(("cyrus-sasl" ,cyrus-sasl)
4177 ("glib" ,glib)
8d4791bf
MW
4178 ("gtk+" ,gtk+)
4179 ("libxml2" ,libxml2)
6d7273a0 4180 ("liboauth" ,liboauth)
8d4791bf
MW
4181 ("libsoup" ,libsoup)
4182 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4183 (native-search-paths
4184 (list (search-path-specification
4185 (variable "GRL_PLUGIN_PATH")
4186 (files (list (string-append "lib/grilo-"
4187 (version-major+minor version)))))))
d48d4c98 4188 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4189 (synopsis "Framework for discovering and browsing media")
4190 (description
4191 "Grilo is a framework focused on making media discovery and browsing easy
4192for application developers.")
4193 (license license:lgpl2.1+)))
7b212526
MW
4194
4195(define-public grilo-plugins
4196 (package
4197 (name "grilo-plugins")
22753632 4198 (version "0.3.3")
7b212526
MW
4199 (source
4200 (origin
4201 (method url-fetch)
4202 (uri (string-append "mirror://gnome/sources/" name "/"
4203 (version-major+minor version) "/"
4204 name "-" version ".tar.xz"))
4205 (sha256
4206 (base32
22753632 4207 "172vr1y98d2mzlmg5akjn4ibrcj3gh22cwnb3cv9rvvzhj3yhrpy"))))
7b212526
MW
4208 (build-system gnu-build-system)
4209 (native-inputs
4210 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4211 ("intltool" ,intltool)
4212 ("itstool" ,itstool)
4213 ("pkg-config" ,pkg-config)))
4214 (inputs
4215 `(("grilo" ,grilo)
4216 ("glib" ,glib)
4217 ("libxml2" ,libxml2)
4218 ("sqlite" ,sqlite)
4219 ("gom" ,gom)
4220 ;; XXX TODO: Add oauth
4221 ;; XXX TODO: Add goa
4222 ;; XXX TODO: Add gdata (e.g. needed for youtube plugin)
4223 ;; XXX TODO: Add lua (needs help finding it)
4224 ("json-glib" ,json-glib)
4225 ("avahi" ,avahi)
4226 ("gmime" ,gmime)
4227 ("libsoup" ,libsoup)
4228 ("libarchive" ,libarchive)
4229 ("totem-pl-parser" ,totem-pl-parser)))
4230 (arguments
4231 `(#:make-flags (list (string-append "GRL_PLUGINS_DIR="
4232 %output
4233 "/lib/grilo-"
4234 ,(version-major+minor version)))
4235 ;; XXX FIXME: Try to get the test suite working. It appears to require
4236 ;; a working system dbus. Inside the build container, all tests fail
4237 ;; with: "assertion failed: (source)". Outside of the build container,
4238 ;; most tests succeed.
4239 #:tests? #f))
f032d0be 4240 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4241 (synopsis "Plugins for the Grilo media discovery library")
4242 (description
4243 "Grilo is a framework focused on making media discovery and browsing easy
4244for application developers.")
4245 (license license:lgpl2.1+)))
4e3fc547
MW
4246
4247(define-public totem
4248 (package
4249 (name "totem")
995ef5ea 4250 (version "3.32.1")
4e3fc547
MW
4251 (source
4252 (origin
4253 (method url-fetch)
4254 (uri (string-append "mirror://gnome/sources/" name "/"
4255 (version-major+minor version) "/"
4256 name "-" version ".tar.xz"))
4257 (sha256
4258 (base32
995ef5ea 4259 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4260 (build-system meson-build-system)
4e3fc547
MW
4261 (native-inputs
4262 `(("pkg-config" ,pkg-config)
4263 ("desktop-file-utils" ,desktop-file-utils)
4264 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4265 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4266 ("intltool" ,intltool)
bcb354ad 4267 ("itstool" ,itstool)
995ef5ea
KK
4268 ("xmllint" ,libxml2)
4269 ("python-pylint" ,python-pylint)
4270 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4271 (propagated-inputs
4272 `(("dconf" ,dconf)))
4273 (inputs
4274 `(("gtk+" ,gtk+)
4275 ("gdk-pixbuf" ,gdk-pixbuf)
4276 ("atk" ,atk)
4277 ("cairo" ,cairo)
4278 ("dbus-glib" ,dbus-glib)
4279 ("clutter" ,clutter)
4280 ("clutter-gtk" ,clutter-gtk)
4281 ("clutter-gst" ,clutter-gst)
6a6db57f 4282 ("xorgproto" ,xorgproto)
4e3fc547
MW
4283 ("libxxf86vm" ,libxxf86vm)
4284 ("libxtst" ,libxtst)
4285 ("libxrandr" ,libxrandr)
4286 ("libxml2" ,libxml2)
4287 ("libsoup" ,libsoup)
4288 ("libpeas" ,libpeas)
4289 ("librsvg" ,librsvg)
4290 ("lirc" ,lirc)
4291 ("gnome-desktop" ,gnome-desktop)
4292 ("gstreamer" ,gstreamer)
4293 ("gst-plugins-base" ,gst-plugins-base)
4294 ("gst-plugins-good" ,gst-plugins-good)
4295 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4296 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4297 ("python" ,python)
995ef5ea 4298 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4299 ("totem-pl-parser" ,totem-pl-parser)
4300 ("grilo" ,grilo)
4301 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4302 ("vala" ,vala)))
4303 (arguments
7ad81b8b
LC
4304 `(#:glib-or-gtk? #t
4305
4306 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4307 ;; all that.
7ad81b8b 4308 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4309
4310 ;; Do not build .a files for the plugins, it's
4311 ;; completely useless. This saves 2 MiB.
7ad81b8b 4312 "--default-library" "shared")
ec5c24f9 4313 #:phases
4e3fc547 4314 (modify-phases %standard-phases
d51b19ad
EF
4315 (add-after 'unpack 'skip-gtk-update-icon-cache
4316 ;; Don't create 'icon-theme.cache'.
4317 (lambda _
4318 (substitute* "meson_post_install.py"
4319 (("gtk-update-icon-cache") "true"))
4320 #t))
6368eb39
DM
4321 (add-before
4322 'install 'disable-cache-generation
4323 (lambda _
4324 (setenv "DESTDIR" "/")
4325 #t))
995ef5ea
KK
4326 (add-before
4327 'check 'pre-check
4328 (lambda _
4329 ;; Tests require a running X server.
4330 (system "Xvfb :1 &")
4331 (setenv "DISPLAY" ":1")
4332 #t))
4e3fc547
MW
4333 (add-after
4334 'install 'wrap-totem
4335 (lambda* (#:key inputs outputs #:allow-other-keys)
4336 (let ((out (assoc-ref outputs "out"))
4337 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4338 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4339 (wrap-program (string-append out "/bin/totem")
4340 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4341 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4342 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4343 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4344 #t)))))
4345 (home-page "https://wiki.gnome.org/Apps/Videos")
4346 (synopsis "Simple media player for GNOME based on GStreamer")
4347 (description "Totem is a simple yet featureful media player for GNOME
4348which can read a large number of file formats.")
4349 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4350 ;; to be used and distributed together with GStreamer and Totem. See
4351 ;; file://COPYING in the source distribution for details.
4352 (license license:gpl2+)))
f0afb0c8
DH
4353
4354(define-public rhythmbox
4355 (package
4356 (name "rhythmbox")
8190e1ed 4357 (version "3.4.3")
f0afb0c8
DH
4358 (source (origin
4359 (method url-fetch)
4360 (uri (string-append "mirror://gnome/sources/" name "/"
4361 (version-major+minor version) "/"
4362 name "-" version ".tar.xz"))
4363 (sha256
4364 (base32
8190e1ed 4365 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
f0afb0c8
DH
4366 (build-system glib-or-gtk-build-system)
4367 (arguments
4368 `(#:configure-flags
4369 (list "--enable-lirc"
4370 "--enable-python"
4371 "--enable-vala"
4372 "--with-brasero"
4373 "--with-gudev"
4374 "--with-libsecret")
4375 #:phases
4376 (modify-phases %standard-phases
4377 (add-after
4378 'install 'wrap-rhythmbox
4379 (lambda* (#:key inputs outputs #:allow-other-keys)
4380 (let ((out (assoc-ref outputs "out"))
4381 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4382 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
4383 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4384 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
4385 (wrap-program (string-append out "/bin/rhythmbox")
4386 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4387 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
4388 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4389 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
4390 #t)))))
4391 (propagated-inputs
4392 `(("dconf" ,dconf)))
4393 (native-inputs
bcb354ad
SB
4394 `(("itstool" ,itstool)
4395 ("intltool" ,intltool)
f0afb0c8
DH
4396 ("glib" ,glib "bin")
4397 ("gobject-introspection" ,gobject-introspection)
4398 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
4399 ("pkg-config" ,pkg-config)
4400 ("xmllint" ,libxml2)))
f0afb0c8
DH
4401 (inputs
4402 `(("json-glib" ,json-glib)
4403 ("tdb" ,tdb)
4404 ("gnome-desktop" ,gnome-desktop)
4405 ("python" ,python)
4406 ("python-pygobject" ,python2-pygobject)
4407 ("vala" ,vala)
4408 ("gmime" ,gmime)
f0afb0c8
DH
4409 ("adwaita-icon-theme" ,adwaita-icon-theme)
4410 ("grilo" ,grilo)
4411 ("grilo-plugins" ,grilo-plugins)
4412 ("gstreamer" ,gstreamer)
4413 ("gst-plugins-base" ,gst-plugins-base)
4414 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 4415 ("totem-pl-parser" ,totem-pl-parser)
ea226291 4416 ("libgudev" ,libgudev)
f0afb0c8
DH
4417 ;;("libmtp" ,libmtp) FIXME: Not detected
4418 ("libsecret" ,libsecret)
4419 ("libsoup" ,libsoup)
4420 ("libnotify" ,libnotify)
4421 ("libpeas" ,libpeas)
4422 ("lirc" ,lirc)
4423 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4424 ;;("clutter" ,clutter)
4425 ;;("clutter-gtk" ,clutter-gtk)
4426 ;;("clutter-gst" ,clutter-gst)
4427 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4428 ("atk" ,atk)
4429 ("pango" ,pango)
4430 ("gtk+" ,gtk+)
4431 ;; TODO:
4432 ;; * libgpod
4433 ;; * mx
f0afb0c8
DH
4434 ("brasero" ,brasero)))
4435 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4436 (synopsis "Music player for GNOME")
4437 (description "Rhythmbox is a music playing application for GNOME. It
4438supports playlists, song ratings, and any codecs installed through gstreamer.")
4439 (license license:gpl2+)))
f70d8383
DH
4440
4441(define-public eog
4442 (package
4443 (name "eog")
b0f24a82 4444 (version "3.32.2")
f70d8383
DH
4445 (source (origin
4446 (method url-fetch)
4447 (uri (string-append "mirror://gnome/sources/" name "/"
4448 (version-major+minor version) "/"
4449 name "-" version ".tar.xz"))
4450 (sha256
4451 (base32
b0f24a82 4452 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 4453 (build-system meson-build-system)
f70d8383 4454 (arguments
34c44a34
RW
4455 `(#:configure-flags
4456 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
4457 (list (string-append "-Dc_link_args=-Wl,-rpath="
4458 (assoc-ref %outputs "out") "/lib/eog"))
4459 #:phases
f70d8383 4460 (modify-phases %standard-phases
7a034665
EF
4461 (add-after 'unpack 'skip-gtk-update-icon-cache
4462 ;; Don't create 'icon-theme.cache'.
4463 (lambda _
4464 (substitute* "meson_post_install.py"
4465 (("gtk-update-icon-cache") "true"))
4466 #t))
61fb581f
RW
4467 (add-after 'install 'wrap-eog
4468 (lambda* (#:key outputs #:allow-other-keys)
4469 (let ((out (assoc-ref outputs "out"))
4470 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
4471 (wrap-program (string-append out "/bin/eog")
4472 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
4473 #t)))))
f70d8383
DH
4474 (propagated-inputs
4475 `(("dconf" ,dconf)))
4476 (native-inputs
4477 `(("intltool" ,intltool)
b3546174 4478 ("itstool" ,itstool)
f70d8383
DH
4479 ("glib" ,glib "bin")
4480 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
4481 ("pkg-config" ,pkg-config)
4482 ("xmllint" ,libxml2)))
f70d8383
DH
4483 (inputs
4484 `(("gnome-desktop" ,gnome-desktop)
4485 ("shared-mime-info" ,shared-mime-info)
4486 ("adwaita-icon-theme" ,adwaita-icon-theme)
4487 ("exempi" ,exempi)
4488 ("lcms" ,lcms)
4489 ("libexif" ,libexif)
4490 ("libpeas" ,libpeas)
4491 ("libjpeg" ,libjpeg)
4492 ("librsvg" ,librsvg)
4493 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4494 ("gtk+" ,gtk+)))
4495 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
4496 (synopsis "GNOME image viewer")
4497 (description "Eye of GNOME is the GNOME image viewer. It
4498supports image conversion, rotation, and slideshows.")
4499 (license license:gpl2+)))
41af5e7b 4500
0c3f8cb8
LC
4501(define-public eog-plugins
4502 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
4503 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
4504 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
4505 ;; 'XDG_DATA_DIRS' appropriately set.
4506 (package
4507 (name "eog-plugins")
54b74cc6 4508 (version "3.26.4")
0c3f8cb8
LC
4509 (source (origin
4510 (method url-fetch)
f3b88ed2 4511 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 4512 (version-major+minor version) "/"
f3b88ed2 4513 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
4514 (sha256
4515 (base32
54b74cc6 4516 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
4517 (build-system gnu-build-system)
4518 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
4519 (synopsis "Extensions for the Eye of GNOME image viewer")
4520 (native-inputs
4521 `(("pkg-config" ,pkg-config)
4522 ("gettext" ,gnu-gettext)))
4523 (inputs
4524 `(("eog" ,eog)
4525 ("glib" ,glib)
4526 ("gtk+" ,gtk+)
4527 ("libpeas" ,libpeas)
4528 ("libexif" ,libexif)
4529 ("libchamplain" ,libchamplain)))
4530 (description
4531 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
4532notably:
4533
4534@itemize
4535@item @dfn{EXIF Display}, which displays camera (EXIF) information;
4536@item @dfn{Map}, which displays a map of where the picture was taken on the
4537side panel;
4538@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
4539@end itemize\n")
4540
4541 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
4542 ;; long suspicious byte stream that goes to a
4543 ;; ".gresource.eog_postasa_plugin" ELF section.
4544 (license license:gpl2+)))
4545
41af5e7b
SB
4546(define-public libgudev
4547 (package
4548 (name "libgudev")
b78f5118 4549 (version "232")
41af5e7b
SB
4550 (source (origin
4551 (method url-fetch)
4552 (uri (string-append "mirror://gnome/sources/" name "/"
4553 version "/" name "-" version ".tar.xz"))
4554 (sha256
4555 (base32
b78f5118 4556 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 4557 (build-system gnu-build-system)
b78f5118
RW
4558 (arguments
4559 '(#:configure-flags
4560 ;; umockdev depends on libgudev.
4561 (list "--disable-umockdev")))
41af5e7b
SB
4562 (native-inputs
4563 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4564 ("gobject-introspection" ,gobject-introspection)
4565 ("pkg-config" ,pkg-config)))
4566 (propagated-inputs
4567 `(("glib" ,glib))) ; required by gudev-1.0.pc
4568 (inputs
4569 `(("udev" ,eudev)))
4570 (home-page "https://wiki.gnome.org/Projects/libgudev")
4571 (synopsis "GObject bindings for libudev")
4572 (description
4573 "This library provides GObject bindings for libudev. It was originally
4574part of udev-extras, then udev, then systemd. It's now a project on its own.")
4575 (license license:lgpl2.1+)))
3dc8828f
SB
4576
4577(define-public gvfs
4578 (package
4579 (name "gvfs")
12fe4846 4580 (version "1.40.1")
3dc8828f
SB
4581 (source (origin
4582 (method url-fetch)
1d68eb32 4583 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 4584 (version-major+minor version) "/"
1d68eb32 4585 "gvfs-" version ".tar.xz"))
3dc8828f
SB
4586 (sha256
4587 (base32
12fe4846 4588 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 4589 (build-system meson-build-system)
3dc8828f 4590 (arguments
e762d943
RW
4591 '(#:glib-or-gtk? #t
4592 #:configure-flags
4593 (list "-Dsystemduserunitdir=no"
4594 "-Dtmpfilesdir=no"
4595 ;; Otherwise, the RUNPATH will lack the final path component.
4596 (string-append "-Dc_link_args=-Wl,-rpath="
4597 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
4598 (native-inputs
4599 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
4600 ("gettext" ,gettext-minimal)
4601 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
4602 ("pkg-config" ,pkg-config)
4603 ("xsltproc" ,libxslt)))
4604 (inputs
4605 `(("avahi" ,avahi)
4606 ("docbook-xml" ,docbook-xml-4.2)
4607 ("docbook-xsl" ,docbook-xsl)
4608 ("dbus" ,dbus)
e762d943 4609 ("elogind" ,elogind)
3dc8828f 4610 ("fuse" ,fuse)
24a78aa6 4611 ("gcr" ,gcr)
3dc8828f 4612 ("glib" ,glib)
e762d943 4613 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
4614 ("libarchive" ,libarchive)
4615 ("libbluray" ,libbluray)
8852ca24 4616 ("libcap" ,libcap)
3dc8828f
SB
4617 ("libcdio-paranoia" ,libcdio-paranoia)
4618 ("libgcrypt" ,libgcrypt)
e762d943 4619 ("libgdata" ,libgdata)
3dc8828f
SB
4620 ("libgphoto2" ,libgphoto2)
4621 ("libgudev" ,libgudev)
0ab9f949 4622 ("libimobiledevice" ,libimobiledevice)
3dc8828f 4623 ("libmtp" ,libmtp)
e762d943 4624 ("libnfs" ,libnfs)
3dc8828f
SB
4625 ("libsecret" ,libsecret)
4626 ("libsmbclient" ,samba)
4627 ("libsoup" ,libsoup)
4628 ("libxml2" ,libxml2)
e762d943 4629 ("openssh" ,openssh)
8852ca24 4630 ("polkit" ,polkit)
3dc8828f
SB
4631 ("udisks" ,udisks)))
4632 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 4633 (synopsis "Userspace virtual file system for GIO")
3dc8828f 4634 (description
8f65585b 4635 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
4636abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
4637to all applications using the GIO API. It also supports exposing the GVFS
4638mounts to non-GIO applications using FUSE.
4639
4640GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
4641DAV, and others.")
4642 (license license:lgpl2.0+)))
7c88b6bd
AW
4643
4644(define-public gusb
4645 (package
4646 (name "gusb")
536b3274 4647 (version "0.3.0")
7c88b6bd 4648 (source (origin
bbfb36f9
EF
4649 (method git-fetch)
4650 (uri (git-reference
4651 (url "https://github.com/hughsie/libgusb.git")
4652 (commit version)))
4653 (file-name (git-file-name name version))
7c88b6bd
AW
4654 (sha256
4655 (base32
bbfb36f9 4656 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 4657 (build-system meson-build-system)
7c88b6bd 4658 (native-inputs
536b3274 4659 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
4660 ("pkg-config" ,pkg-config)
4661 ("vala" ,vala)
7c88b6bd
AW
4662 ("gtk-doc" ,gtk-doc)))
4663 (propagated-inputs
4664 ;; Both of these are required by gusb.pc.
4665 `(("glib" ,glib)
4666 ("libusb" ,libusb)))
4667 (arguments
536b3274 4668 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 4669 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 4670 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
4671 (description
4672 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
4673asynchronous control, bulk and interrupt transfers with proper cancellation
4674and integration into a mainloop. This makes it easy to integrate low level
4675USB transfers with your high-level application or system daemon.")
4676 (license license:lgpl2.1+)))
0abe1d86
AW
4677
4678(define-public simple-scan
4679 (package
4680 (name "simple-scan")
4afb7dd9 4681 (version "3.34.2")
d9f6d587
TGR
4682 (source
4683 (origin
4684 (method url-fetch)
4685 (uri (string-append "mirror://gnome/sources/simple-scan/"
4686 (version-major+minor version) "/"
4687 "simple-scan-" version ".tar.xz"))
4688 (sha256
4afb7dd9 4689 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
d9f6d587
TGR
4690 (build-system meson-build-system)
4691 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
4692 (arguments
4693 '(#:glib-or-gtk? #t))
0abe1d86
AW
4694 (inputs
4695 `(("gtk" ,gtk+)
4696 ("zlib" ,zlib)
4697 ("cairo" ,cairo)
c501f592 4698 ("colord" ,colord)
0abe1d86
AW
4699 ("gdk-pixbuf" ,gdk-pixbuf)
4700 ("gusb" ,gusb)
4c928743 4701 ("libsane" ,sane-backends)))
0abe1d86 4702 (native-inputs
b94a6ca0 4703 `(("gettext" ,gettext-minimal)
0abe1d86 4704 ("itstool" ,itstool)
c501f592 4705 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 4706 ("pkg-config" ,pkg-config)
bcb354ad
SB
4707 ("vala" ,vala)
4708 ("xmllint" ,libxml2)))
dff0eedb 4709 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 4710 (synopsis "Document and image scanner")
d9f6d587
TGR
4711 (description
4712 "Document Scanner is an easy-to-use application that lets you connect your
4713scanner and quickly capture images and documents in an appropriate format. It
4714supports any scanner for which a suitable SANE driver is available, which is
4715almost all of them.")
0abe1d86 4716 (license license:gpl3+)))
7549f984 4717
ab466d79
RW
4718(define-public eolie
4719 (package
4720 (name "eolie")
fa8ef3ed 4721 (version "0.9.63")
ab466d79
RW
4722 (source (origin
4723 (method url-fetch)
00014781 4724 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 4725 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 4726 "eolie-" version ".tar.xz"))
ab466d79
RW
4727 (sha256
4728 (base32
fa8ef3ed 4729 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 4730 (build-system meson-build-system)
ab466d79 4731 (arguments
00014781
RW
4732 `(#:glib-or-gtk? #t
4733 #:phases
ab466d79 4734 (modify-phases %standard-phases
f0c68100
EF
4735 (add-after 'unpack 'skip-gtk-update-icon-cache
4736 ;; Don't create 'icon-theme.cache'.
4737 (lambda _
4738 (substitute* "meson_post_install.py"
4739 (("gtk-update-icon-cache") "true"))
4740 #t))
ab466d79
RW
4741 (add-after 'wrap 'wrap-more
4742 (lambda* (#:key inputs outputs #:allow-other-keys)
4743 (let* ((out (assoc-ref outputs "out"))
4744 ;; These libraries must be on LD_LIBRARY_PATH.
4745 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
4746 "atk" "gtk+" "gsettings-desktop-schemas"
4747 "gobject-introspection"))
4748 (path (string-join
4749 (map (lambda (lib)
4750 (string-append (assoc-ref inputs lib) "/lib"))
4751 libs)
4752 ":")))
4753 (wrap-program (string-append out "/bin/eolie")
4754 `("LD_LIBRARY_PATH" ":" prefix (,path))
4755 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
4756 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
4757 #t)))))
4758 (native-inputs
f85ca6ed 4759 `(("intltool" ,intltool)
ab466d79 4760 ("itstool" ,itstool)
d95f1041 4761 ("pkg-config" ,pkg-config)
d95f1041 4762 ("python" ,python)
f0c68100 4763 ("glib:bin" ,glib "bin")))
ab466d79
RW
4764 (inputs
4765 `(("gobject-introspection" ,gobject-introspection)
4766 ("glib-networking" ,glib-networking)
4767 ("cairo" ,cairo)
4768 ("gtk+" ,gtk+)
4769 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
4770 ("python" ,python-wrapper)
d72f76df 4771 ("python-dateutil" ,python-dateutil)
00014781 4772 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
4773 ("python-pygobject" ,python-pygobject)
4774 ("python-pycairo" ,python-pycairo)
00014781 4775 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
4776 ("libsecret" ,libsecret)
4777 ("gtkspell3" ,gtkspell3)
4778 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 4779 ("webkitgtk" ,webkitgtk)))
166b2c97 4780 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
4781 (synopsis "Web browser for GNOME")
4782 (description
4783 "Eolie is a new web browser for GNOME. It features Firefox sync support,
4784a secret password store, an adblocker, and a modern UI.")
4785 (license license:gpl3+)))
4786
7549f984
SB
4787(define-public epiphany
4788 (package
4789 (name "epiphany")
60680365 4790 (version "3.32.5")
7549f984
SB
4791 (source (origin
4792 (method url-fetch)
dd3266ec 4793 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 4794 (version-major+minor version) "/"
dd3266ec 4795 "epiphany-" version ".tar.xz"))
7549f984
SB
4796 (sha256
4797 (base32
60680365 4798 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
4799
4800 (build-system meson-build-system)
7549f984
SB
4801 (arguments
4802 ;; FIXME: tests run under Xvfb, but fail with:
4803 ;; /src/bookmarks/ephy-bookmarks/create:
4804 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
4805 ;; subsystem
4806 ;; FAIL
6f48d9db 4807 '(#:tests? #f
e19f9c24 4808 #:glib-or-gtk? #t
bb7ff88f
EF
4809 #:phases
4810 (modify-phases %standard-phases
4811 (add-after 'unpack 'skip-gtk-update-icon-cache
4812 ;; Don't create 'icon-theme.cache'.
4813 (lambda _
4814 (substitute* "post_install.py"
4815 (("gtk-update-icon-cache") "true"))
4816 #t)))
e19f9c24
LF
4817 #:configure-flags
4818 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
4819 (list (string-append "-Dc_link_args=-Wl,-rpath="
4820 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
4821 (propagated-inputs
4822 `(("dconf" ,dconf)))
7549f984 4823 (native-inputs
fc5c5b92
R
4824 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
4825 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 4826 ("intltool" ,intltool)
7549f984 4827 ("itstool" ,itstool)
bcb354ad
SB
4828 ("pkg-config" ,pkg-config)
4829 ("xmllint" ,libxml2)))
7549f984
SB
4830 (inputs
4831 `(("avahi" ,avahi)
4832 ("gcr" ,gcr)
fc5c5b92 4833 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
4834 ("glib-networking" ,glib-networking)
4835 ("gnome-desktop" ,gnome-desktop)
4836 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 4837 ("json-glib" ,json-glib)
7549f984 4838 ("iso-codes" ,iso-codes)
8748e29c 4839 ("libdazzle" ,libdazzle)
7549f984
SB
4840 ("libnotify" ,libnotify)
4841 ("libsecret" ,libsecret)
7549f984 4842 ("libxslt" ,libxslt)
fc5c5b92 4843 ("nettle" ,nettle) ; for hogweed
7549f984 4844 ("sqlite" ,sqlite)
f85ca6ed 4845 ("webkitgtk" ,webkitgtk)))
7549f984
SB
4846 (home-page "https://wiki.gnome.org/Apps/Web")
4847 (synopsis "GNOME web browser")
4848 (description
4849 "Epiphany is a GNOME web browser targeted at non-technical users. Its
4850principles are simplicity and standards compliance.")
4851 (license license:gpl2+)))
a3856b2c
SB
4852
4853(define-public d-feet
4854 (package
4855 (name "d-feet")
458e9221 4856 (version "0.3.14")
a3856b2c
SB
4857 (source (origin
4858 (method url-fetch)
4859 (uri (string-append "mirror://gnome/sources/" name "/"
4860 (version-major+minor version) "/"
4861 name "-" version ".tar.xz"))
4862 (sha256
4863 (base32
458e9221 4864 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
4865 (build-system glib-or-gtk-build-system)
4866 (arguments
4867 '(#:out-of-source? #f ; tests need to run in the source directory.
4868 #:phases
4869 (modify-phases %standard-phases
4870 (add-before
4871 'check 'pre-check
86aff791 4872 (lambda _
a3856b2c
SB
4873 ;; The test suite requires a running X server.
4874 (system "Xvfb :1 &")
4875 (setenv "DISPLAY" ":1")
4876 ;; Don't fail on missing '/etc/machine-id'.
4877 (setenv "DBUS_FATAL_WARNINGS" "0")
4878 ;; tests.py and window.py don't meet E402:
4879 ;; E402 module level import not at top of file
4880 (substitute* "src/tests/Makefile"
86aff791
MW
4881 (("--ignore=E123") "--ignore=E123,E402"))
4882 #t))
a3856b2c
SB
4883 (add-after
4884 'install 'wrap-program
4885 (lambda* (#:key outputs #:allow-other-keys)
4886 (let ((prog (string-append (assoc-ref outputs "out")
4887 "/bin/d-feet")))
4888 (wrap-program prog
4889 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
4890 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
4891 #t))))))
a3856b2c
SB
4892 (native-inputs
4893 `(("intltool" ,intltool)
4894 ("itstool" ,itstool)
4895 ("pkg-config" ,pkg-config)
4896 ("python-pep8" ,python-pep8)
4897 ("xmllint" ,libxml2)
ff337525 4898 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
4899 (inputs
4900 `(("gobject-introspection" ,gobject-introspection)
4901 ("gtk+" ,gtk+)
4902 ("python" ,python-wrapper)
458e9221 4903 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
4904 ("python-pygobject" ,python-pygobject)))
4905 (home-page "https://wiki.gnome.org/Apps/DFeet")
4906 (synopsis "D-Bus debugger")
4907 (description
4908 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
4909of running programs and invoke methods on those interfaces.")
4910 (license license:gpl2+)))
c3b97bd9
SB
4911
4912(define-public yelp-xsl
4913 (package
4914 (name "yelp-xsl")
b3640e79 4915 (version "3.32.1")
c3b97bd9
SB
4916 (source (origin
4917 (method url-fetch)
4918 (uri (string-append "mirror://gnome/sources/" name "/"
4919 (version-major+minor version) "/"
4920 name "-" version ".tar.xz"))
4921 (sha256
4922 (base32
b3640e79 4923 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
c3b97bd9
SB
4924 (build-system gnu-build-system)
4925 (native-inputs
4926 `(("intltool" ,intltool)
4927 ("itstool" ,itstool)
4928 ("xmllint" ,libxml2)))
4929 (home-page "https://wiki.gnome.org/Apps/Yelp")
4930 (synopsis "XSL stylesheets for Yelp")
4931 (description
4932 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
4933to format Docbook and Mallard documents.")
4934 (license license:gpl2+)))
de3d612a
SB
4935
4936(define-public yelp
4937 (package
4938 (name "yelp")
1f1b6d60 4939 (version "3.32.2")
de3d612a
SB
4940 (source (origin
4941 (method url-fetch)
4942 (uri (string-append "mirror://gnome/sources/" name "/"
4943 (version-major+minor version) "/"
4944 name "-" version ".tar.xz"))
4945 (sha256
4946 (base32
1f1b6d60 4947 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
4948 (build-system glib-or-gtk-build-system)
4949 (native-inputs
4950 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4951 ("intltool" ,intltool)
4952 ("itstool" ,itstool)
4953 ("pkg-config" ,pkg-config)))
4954 (propagated-inputs
4955 `(("dconf" ,dconf)))
4956 (inputs
ad1b7d8b
SB
4957 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4958 ("libxslt" ,libxslt)
de3d612a 4959 ("sqlite" ,sqlite)
4c28ca1d
SB
4960 ("webkitgtk" ,webkitgtk)
4961 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
4962 (home-page "https://wiki.gnome.org/Apps/Yelp")
4963 (synopsis "GNOME help browser")
4964 (description
4965 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
4966man, info, and HTML documents. It can locate documents according to the
4967freedesktop.org help system specification.")
4968 (license license:gpl2+)))
122d0d10
SB
4969
4970(define-public yelp-tools
4971 (package
4972 (name "yelp-tools")
2089bca5 4973 (version "3.28.0")
122d0d10
SB
4974 (source (origin
4975 (method url-fetch)
4976 (uri (string-append "mirror://gnome/sources/" name "/"
4977 (version-major+minor version) "/"
4978 name "-" version ".tar.xz"))
4979 (sha256
4980 (base32
2089bca5 4981 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
4982 (build-system gnu-build-system)
4983 (native-inputs
4984 `(("pkg-config" ,pkg-config)))
4985 (propagated-inputs
4986 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
4987 `(("itstool" ,itstool)
4988 ("xmllint" ,libxml2)
4989 ("xsltproc" ,libxslt)))
4990 (inputs
4991 `(("yelp-xsl" ,yelp-xsl)))
4992 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
4993 (synopsis "Yelp documentation tools")
4994 (description
4995 "Yelp-tools is a collection of scripts and build utilities to help create,
4996manage, and publish documentation for Yelp and the web. Most of the heavy
4997lifting is done by packages like yelp-xsl and itstool. This package just
4998wraps things up in a developer-friendly way.")
4999 (license license:gpl2+)))
af8f9f23 5000
4ed041d9
MB
5001(define-public yelp-tools/fixed
5002 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5003 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5004 ;; the next rebuild cycle.
5005 (hidden-package
5006 (package/inherit
5007 yelp-tools
5008 (propagated-inputs
5009 `(("itstool" ,itstool/fixed)
5010 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5011
af8f9f23
RW
5012(define-public libgee
5013 (package
5014 (name "libgee")
4c2c5ae6 5015 (version "0.20.2")
af8f9f23
RW
5016 (source (origin
5017 (method url-fetch)
84a1b007 5018 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5019 (version-major+minor version) "/"
84a1b007 5020 "libgee-" version ".tar.xz"))
af8f9f23
RW
5021 (sha256
5022 (base32
4c2c5ae6 5023 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
af8f9f23
RW
5024 (build-system gnu-build-system)
5025 (arguments
5026 `(#:phases
5027 (modify-phases %standard-phases
5028 (add-after 'unpack 'fix-introspection-install-dir
5029 (lambda* (#:key outputs #:allow-other-keys)
5030 (let ((out (assoc-ref outputs "out")))
5031 (substitute* "gee/Makefile.in"
5032 (("@INTROSPECTION_GIRDIR@")
5033 (string-append out "/share/gir-1.0/"))
5034 (("@INTROSPECTION_TYPELIBDIR@")
5035 (string-append out "/lib/girepository-1.0/")))))))))
5036 (native-inputs
5037 `(("glib" ,glib "bin")
5038 ("pkg-config" ,pkg-config)))
5039 (inputs
5040 `(("glib" ,glib)
5041 ("gobject-introspection" ,gobject-introspection)))
5042 (home-page "https://wiki.gnome.org/Projects/Libgee")
5043 (synopsis "GObject collection library")
5044 (description
5045 "Libgee is a utility library providing GObject-based interfaces and
5046classes for commonly used data structures.")
5047 (license license:lgpl2.1+)))
b0f9c4b8
RW
5048
5049(define-public gexiv2
5050 (package
5051 (name "gexiv2")
b1a8b408 5052 (version "0.12.0")
b0f9c4b8
RW
5053 (source (origin
5054 (method url-fetch)
5055 (uri (string-append "mirror://gnome/sources/" name "/"
5056 (version-major+minor version) "/"
5057 name "-" version ".tar.xz"))
5058 (sha256
5059 (base32
b1a8b408 5060 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5061 (build-system meson-build-system)
b0f9c4b8 5062 (native-inputs
b1a8b408
KK
5063 `(("gcr" ,gcr)
5064 ("glib" ,glib "bin")
5065 ("pkg-config" ,pkg-config)
5066 ("vala" ,vala)))
b0f9c4b8
RW
5067 (propagated-inputs
5068 ;; Listed in "Requires" section of gexiv2.pc
5069 `(("exiv2" ,exiv2)))
5070 (inputs
5071 `(("glib" ,glib)
5072 ("gobject-introspection" ,gobject-introspection)))
5073 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5074 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5075 (description
5076 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5077allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5078metadata in photo and video files of various formats.")
5079 (license license:gpl2+)))
fed5a689
RW
5080
5081(define-public shotwell
5082 (package
5083 (name "shotwell")
a1c6fb52 5084 (version "0.30.7")
fed5a689
RW
5085 (source (origin
5086 (method url-fetch)
5497d682 5087 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5088 (version-major+minor version) "/"
5497d682 5089 "shotwell-" version ".tar.xz"))
fed5a689
RW
5090 (sha256
5091 (base32
a1c6fb52 5092 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
3b79afa6
KK
5093 (build-system meson-build-system)
5094 (arguments
5095 '(#:glib-or-gtk? #t))
735b8db6
TGR
5096 (propagated-inputs
5097 `(("dconf" ,dconf)))
fed5a689 5098 (native-inputs
3b79afa6 5099 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b94a6ca0 5100 ("gettext" ,gettext-minimal)
77e9c993 5101 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
735b8db6 5102 ("itstool" ,itstool)
3b79afa6 5103 ("pkg-config" ,pkg-config)
735b8db6 5104 ("vala" ,vala)))
fed5a689 5105 (inputs
735b8db6
TGR
5106 `(("glib:bin" ,glib "bin")
5107 ("gstreamer" ,gstreamer)
fed5a689 5108 ("gst-plugins-base" ,gst-plugins-base)
dfb0323d 5109 ("libgdata" ,libgdata)
fed5a689
RW
5110 ("libgee" ,libgee)
5111 ("gexiv2" ,gexiv2)
5112 ("libraw" ,libraw)
5113 ("json-glib" ,json-glib)
7108425c 5114 ("webkitgtk" ,webkitgtk)
fed5a689
RW
5115 ("sqlite" ,sqlite)
5116 ("libsoup" ,libsoup)
5117 ("libxml2" ,libxml2)
fed5a689 5118 ("libgudev" ,libgudev)
522fc32e
LF
5119 ("libgphoto2" ,libgphoto2)
5120 ("gcr" ,gcr)))
fed5a689
RW
5121 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5122 (synopsis "Photo manager for GNOME 3")
5123 (description
5124 "Shotwell is a digital photo manager designed for the GNOME desktop
5125environment. It allows you to import photos from disk or camera, organize
5126them by keywords and events, view them in full-window or fullscreen mode, and
5127share them with others via social networking and more.")
5128 (license license:lgpl2.1+)))
293ff8b2
DT
5129
5130(define-public file-roller
5131 (package
5132 (name "file-roller")
2b019199 5133 (version "3.32.2")
293ff8b2
DT
5134 (source (origin
5135 (method url-fetch)
5136 (uri (string-append "mirror://gnome/sources/" name "/"
5137 (version-major+minor version) "/"
5138 name "-" version ".tar.xz"))
5139 (sha256
5140 (base32
2b019199 5141 "0w8s6hakgsvb2nqwbv0lr8ki4cbf1pz5z3qwkb0b2k7ppbh7j2n6"))))
0a500745 5142 (build-system meson-build-system)
293ff8b2 5143 (native-inputs
0a500745
RW
5144 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5145 ("intltool" ,intltool)
4c96e5d1 5146 ("itstool" ,itstool)
0a500745
RW
5147 ("pkg-config" ,pkg-config)
5148 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5149 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5150 ;; TODO: Add libnautilus.
5151 (inputs
5152 `(("gtk+" ,gtk+)
5153 ("gdk-pixbuf" ,gdk-pixbuf)
5154 ("json-glib" ,json-glib)
5155 ("libarchive" ,libarchive)
5156 ("libnotify" ,libnotify)
4c96e5d1 5157 ("nettle" ,nettle)
293ff8b2
DT
5158 ("libxml2" ,libxml2)))
5159 (synopsis "Graphical archive manager for GNOME")
5160 (description "File Roller is an archive manager for the GNOME desktop
5161environment that allows users to view, unpack, and create compressed archives
5162such as gzip tarballs.")
5163 (home-page "http://fileroller.sourceforge.net/")
5164 (license license:gpl2+)))
7ce49365
SB
5165
5166(define-public gnome-session
5167 (package
5168 (name "gnome-session")
1fc2ec79 5169 (version "3.32.0")
7ce49365
SB
5170 (source (origin
5171 (method url-fetch)
5172 (uri (string-append "mirror://gnome/sources/" name "/"
5173 (version-major+minor version) "/"
5174 name "-" version ".tar.xz"))
5175 (sha256
5176 (base32
1fc2ec79 5177 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5178 (arguments
df278071
RW
5179 '(#:glib-or-gtk? #t
5180 #:phases
2914af3c
AW
5181 (modify-phases %standard-phases
5182 (add-before 'configure 'pre-configure
5183 (lambda* (#:key outputs #:allow-other-keys)
5184 ;; Use elogind instead of systemd.
df278071
RW
5185 (substitute* "meson.build"
5186 (("libsystemd-login") "libelogind")
5187 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5188 (substitute* "gnome-session/gsm-systemd.c"
5189 (("#include <systemd/sd-login.h>")
5190 "#include <elogind/sd-login.h>"))
df278071 5191 ;; Remove uses of the systemd daemon.
803ab416
SB
5192 (substitute* "gnome-session/gsm-autostart-app.c"
5193 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5194 #t))
5195 (add-after 'install 'wrap-gnome-session
5196 (lambda* (#:key inputs outputs #:allow-other-keys)
5197 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5198 (let ((glib (assoc-ref inputs "glib:bin"))
5199 (out (assoc-ref outputs "out")))
5200 (wrap-program (string-append out "/bin/gnome-session")
5201 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5202 #t))))
6cbc8d57 5203
2914af3c 5204 #:configure-flags
df278071
RW
5205 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5206 "-Dman=false" ; FIXME: disabled because of docbook validation error
5207 "-Dsystemd_journal=false")))
5208 (build-system meson-build-system)
7ce49365
SB
5209 (native-inputs
5210 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5211 ("pkg-config" ,pkg-config)
5212 ("intltool" ,intltool)
df278071
RW
5213 ("xsltproc" ,libxslt)
5214 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5215 ("docbook-xsl" ,docbook-xsl)
5216 ("docbook-xml" ,docbook-xml)
5217 ("xmlto" ,xmlto)))
7ce49365 5218 (inputs
2914af3c
AW
5219 `(("elogind" ,elogind)
5220 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5221 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5222 ("gtk+" ,gtk+)
5223 ("json-glib" ,json-glib)
5224 ("libsm" ,libsm)
5225 ("libxcomposite" ,libxcomposite)
5226 ("libxtst" ,libxtst)
5227 ("mesa" ,mesa)
5228 ("upower" ,upower)
5229 ("xtrans" ,xtrans)))
5230 (synopsis "Session manager for GNOME")
5231 (description
5232 "This package contains the GNOME session manager, as well as a
5233configuration program to choose applications starting on login.")
5234 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5235 (license license:gpl2+)))
f47ba77e
SB
5236
5237(define-public gjs
5238 (package
5239 (name "gjs")
d054fbf5 5240 (version "1.56.2")
f47ba77e
SB
5241 (source (origin
5242 (method url-fetch)
5243 (uri (string-append "mirror://gnome/sources/" name "/"
5244 (version-major+minor version) "/"
5245 name "-" version ".tar.xz"))
5246 (sha256
5247 (base32
d054fbf5 5248 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5249 (build-system gnu-build-system)
5250 (arguments
5251 '(#:phases
5252 (modify-phases %standard-phases
5253 (add-before
5254 'check 'pre-check
5255 (lambda _
fc119619
MW
5256 ;; The test suite requires a running X server.
5257 (system "Xvfb :1 &")
5258 (setenv "DISPLAY" ":1")
5259
f47ba77e
SB
5260 ;; For the missing /etc/machine-id.
5261 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5262
144f94d0
KK
5263 ;; Our mozjs-38 package does not compile the required Intl API
5264 ;; support for these failing tests.
5265 (substitute* "installed-tests/js/testLocale.js"
5266 ((".*toBeDefined.*") "")
5267 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5268 (substitute* "installed-tests/scripts/testCommandLine.sh"
5269 (("Valentín") "")
5270 (("☭") ""))
f47ba77e
SB
5271 #t)))))
5272 (native-inputs
8a831c6f 5273 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5274 ("pkg-config" ,pkg-config)
5275 ("xmllint" ,libxml2)
5276 ;; For testing
5277 ("dbus-launch" ,dbus)
5278 ("uuidgen" ,util-linux)
ebebee94 5279 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5280 (propagated-inputs
5281 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5282 `(("cairo" ,cairo)
5283 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5284 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5285 (inputs
5286 `(("gtk+" ,gtk+)
5287 ("readline" ,readline)))
5288 (synopsis "Javascript bindings for GNOME")
f032d0be 5289 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5290 (description
5291 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5292javascript engine and the GObject introspection framework.")
5293 (license license:gpl2+)))
329d731b
DH
5294
5295(define-public gedit
5296 (package
5297 (name "gedit")
480c9226 5298 (version "3.32.2")
329d731b
DH
5299 (source (origin
5300 (method url-fetch)
5301 (uri (string-append "mirror://gnome/sources/" name "/"
5302 (version-major+minor version) "/"
5303 name "-" version ".tar.xz"))
5304 (sha256
5305 (base32
480c9226
KK
5306 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5307 (build-system meson-build-system)
329d731b 5308 (arguments
480c9226
KK
5309 `(#:glib-or-gtk? #t
5310 #:configure-flags
5311 ;; Otherwise, the RUNPATH will lack the final path component.
5312 (list (string-append "-Dc_link_args=-Wl,-rpath="
5313 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5314
5315 ;; XXX: Generated .h files are sometimes used before being built.
5316 #:parallel-build? #f
5317
480c9226 5318 #:phases
329d731b 5319 (modify-phases %standard-phases
480c9226
KK
5320 (add-after 'unpack 'skip-gtk-update-icon-cache
5321 ;; Don't create 'icon-theme.cache'.
5322 (lambda _
5323 (substitute* "build-aux/meson/post_install.py"
5324 (("gtk-update-icon-cache") (which "true")))
5325 #t))
5326 (add-after 'unpack 'patch-libgd-fetch
5327 (lambda* (#:key inputs #:allow-other-keys)
5328 (let ((libgd (assoc-ref inputs "libgd")))
5329 ;; Calling git is unnecessary because libgd is fetched as a
5330 ;; native input to this package.
5331 (substitute* "meson.build"
5332 ((".*git.*") ""))
5333 (copy-recursively libgd "subprojects/libgd")
5334 #t)))
5335 (add-after 'install 'wrap-gedit
5336 (lambda* (#:key inputs outputs #:allow-other-keys)
5337 (let ((out (assoc-ref outputs "out"))
5338 (gtksourceview (assoc-ref inputs "gtksourceview"))
5339 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5340 (python-path (getenv "PYTHONPATH")))
5341 (wrap-program (string-append out "/bin/gedit")
5342 ;; For plugins.
5343 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5344 `("PYTHONPATH" ":" prefix (,python-path))
5345 ;; For language-specs.
5346 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5347 "/share")))))
5348 #t)))))
329d731b
DH
5349 (propagated-inputs
5350 `(("dconf" ,dconf)))
5351 (native-inputs
480c9226
KK
5352 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5353 ("intltool" ,intltool)
b3546174 5354 ("itstool" ,itstool)
480c9226 5355 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5356 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5357 ("libgd"
5358 ,(origin
5359 (method git-fetch)
5360 (uri (git-reference
5361 (url "https://gitlab.gnome.org/GNOME/libgd")
5362 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5363 (file-name (git-file-name "libgd" version))
5364 (sha256
5365 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
5366 ("pkg-config" ,pkg-config)))
5367 (inputs
5368 `(("glib" ,glib)
0d2df50c 5369 ("gspell" ,gspell)
329d731b 5370 ("gtk+" ,gtk+)
480c9226 5371 ("gtksourceview" ,gtksourceview)
329d731b
DH
5372 ("libpeas" ,libpeas)
5373 ("libxml2" ,libxml2)
329d731b
DH
5374 ("iso-codes" ,iso-codes)
5375 ("python-pygobject" ,python-pygobject)
5376 ("python" ,python)
5377 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5378 ("libx11" ,libx11)
5379 ("vala" ,vala)
5380 ("adwaita-icon-theme" ,adwaita-icon-theme)
5381 ("libsoup" ,libsoup)
5382 ("gnome-desktop" ,gnome-desktop)))
5383 (home-page "https://wiki.gnome.org/Apps/Gedit")
5384 (synopsis "GNOME text editor")
5385 (description "While aiming at simplicity and ease of use, gedit is a
5386powerful general purpose text editor.")
5387 (license license:gpl2+)))
b7179363
SB
5388
5389(define-public zenity
5390 (package
5391 (name "zenity")
4f581bd0 5392 (version "3.32.0")
b7179363
SB
5393 (source (origin
5394 (method url-fetch)
5958df04 5395 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 5396 (version-major+minor version) "/"
5958df04 5397 "zenity-" version ".tar.xz"))
b7179363
SB
5398 (sha256
5399 (base32
4f581bd0 5400 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
5401 (build-system gnu-build-system)
5402 (native-inputs
b94a6ca0 5403 `(("gettext" ,gettext-minimal)
b7179363
SB
5404 ("itstool" ,itstool)
5405 ("pkg-config" ,pkg-config)))
5406 (inputs
5407 `(("libnotify" ,libnotify)
5408 ("webkitgtk" ,webkitgtk)))
5409 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 5410 (home-page "https://www.gnome.org")
b7179363
SB
5411 (description
5412 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
5413to display dialog boxes from the commandline and shell scripts.")
5414 (license license:lgpl2.0+)))
60c3627c
SB
5415
5416(define-public mutter
5417 (package
5418 (name "mutter")
edf43f68 5419 (version "3.32.2")
60c3627c 5420 (source (origin
86c44e72
KK
5421 (method url-fetch)
5422 (uri (string-append "mirror://gnome/sources/" name "/"
5423 (version-major+minor version) "/"
5424 name "-" version ".tar.xz"))
60c3627c
SB
5425 (sha256
5426 (base32
edf43f68 5427 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
5428 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
5429 ;; versions of cogl and clutter. As a result, many of the inputs,
5430 ;; propagated-inputs, and configure flags used in cogl and clutter are
5431 ;; needed here as well.
edf43f68 5432 (build-system meson-build-system)
60c3627c 5433 (arguments
edf43f68
KK
5434 '(;; XXX: All mutter tests fail with the following error:
5435 ;; Settings schema 'org.gnome.mutter' is not installed
5436 #:tests? #f
5437 #:glib-or-gtk? #t
5438 #:configure-flags
5439 ;; Otherwise, the RUNPATH will lack the final path component.
5440 (list (string-append "-Dc_link_args=-Wl,-rpath="
5441 (assoc-ref %outputs "out") "/lib:"
5442 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
5443
5444 ;; The following flags are needed for the bundled clutter
edf43f68 5445 (string-append "-Dxwayland_path="
d633f2f6
RH
5446 (assoc-ref %build-inputs "xorg-server-xwayland")
5447 "/bin/Xwayland")
5448
a88d5a0c 5449 ;; the remaining flags are needed for the bundled cogl
edf43f68 5450 (string-append "-Dopengl_libname="
a88d5a0c 5451 (assoc-ref %build-inputs "mesa")
f23052a6
DC
5452 "/lib/libGL.so"))
5453 #:phases
5454 (modify-phases %standard-phases
edf43f68
KK
5455 (add-after 'unpack 'disable-werror
5456 (lambda _
5457 ;; XXX: build fails with [-Werror]:
5458 ;; backends/meta-cursor-renderer.c:112:5: error:
5459 ;; implicit declaration of function ?roundf?
5460 (substitute* "meson.build"
5461 (("'-Werror=.*',") ""))
5462 #t))
86c44e72
KK
5463 ;; Replace references to systemd libraries to elogind references.
5464 (add-before 'configure 'use-elogind
5465 (lambda _
edf43f68 5466 (substitute* (list "meson.build"
86c44e72
KK
5467 "src/backends/native/meta-launcher.c"
5468 "src/core/main.c")
5469 (("systemd") "elogind"))
5470 #t)))))
60c3627c
SB
5471 (native-inputs
5472 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5473 ("gobject-introspection" ,gobject-introspection)
5474 ("intltool" ,intltool)
f23052a6 5475 ("pkg-config" ,pkg-config)
edf43f68 5476 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
5477 ;; For git build
5478 ("autoconf" ,autoconf)
5479 ("automake" ,automake)
5480 ("libtool" ,libtool)))
60c3627c 5481 (propagated-inputs
a88d5a0c
MW
5482 `(;; libmutter.pc refers to these:
5483 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5484 ("gtk+" ,gtk+)
5485 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
5486 ("atk" ,atk)
5487 ("cairo" ,cairo)
5488 ("gdk-pixbuf" ,gdk-pixbuf)
5489 ("glib" ,glib)
a88d5a0c
MW
5490 ("json-glib" ,json-glib)
5491 ("libinput" ,libinput)
5492 ("libx11" ,libx11)
5493 ("libxcomposite" ,libxcomposite)
5494 ("libxdamage" ,libxdamage)
5495 ("libxext" ,libxext)
5496 ("libxfixes" ,libxfixes)
5497 ("libxkbcommon" ,libxkbcommon)
5498 ("libxrandr" ,libxrandr)
5499 ("mesa" ,mesa)
5500 ("pango" ,pango)
5501 ("udev" ,eudev)
a88d5a0c 5502 ("xinput" ,xinput)))
60c3627c 5503 (inputs
86c44e72
KK
5504 `(("elogind" ,elogind)
5505 ("gnome-desktop" ,gnome-desktop)
edf43f68 5506 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 5507 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 5508 ("libgudev" ,libgudev)
60c3627c
SB
5509 ("libice" ,libice)
5510 ("libsm" ,libsm)
edf43f68 5511 ("libwacom" ,libwacom)
60c3627c 5512 ("libxkbfile" ,libxkbfile)
a88d5a0c 5513 ("libxrandr" ,libxrandr)
86c44e72 5514 ("libxtst" ,libxtst)
edf43f68 5515 ("pipewire" ,pipewire)
60c3627c
SB
5516 ("startup-notification" ,startup-notification)
5517 ("upower-glib" ,upower)
5518 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 5519 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
5520 ("zenity" ,zenity)))
5521 (synopsis "Window and compositing manager")
f032d0be 5522 (home-page "https://www.gnome.org")
60c3627c
SB
5523 (description
5524 "Mutter is a window and compositing manager that displays and manages your
5525desktop via OpenGL. Mutter combines a sophisticated display engine using the
5526Clutter toolkit with solid window-management logic inherited from the Metacity
5527window manager.")
86c44e72 5528 (license license:gpl2+)))
685cee87
SB
5529
5530(define-public gnome-online-accounts
5531 (package
5532 (name "gnome-online-accounts")
aa200347 5533 (version "3.32.1")
685cee87
SB
5534 (source (origin
5535 (method url-fetch)
5536 (uri (string-append "mirror://gnome/sources/" name "/"
5537 (version-major+minor version) "/"
5538 name "-" version ".tar.xz"))
5539 (sha256
5540 (base32
aa200347 5541 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 5542 (outputs '("out" "lib"))
685cee87 5543 (build-system glib-or-gtk-build-system)
14c297fd
TS
5544 (arguments
5545 `(#:configure-flags
5546 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
5547 #:phases
5548 (modify-phases %standard-phases
5549 (add-before 'configure 'patch-libgoa-output
5550 (lambda* (#:key outputs #:allow-other-keys)
5551 (let ((lib (assoc-ref outputs "lib")))
5552 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
5553 (("@prefix@") lib)
5554 (("@exec_prefix@") lib)
5555 (("@libdir@") (string-append lib "/lib"))
5556 (("@includedir@") (string-append lib "/include"))
5557 (("@datadir@") (string-append lib "/share")))
7555d539
MB
5558 ;; Make sure gobject-introspection knows about the output
5559 ;; too (see <https://bugs.gnu.org/36535>).
5560 (setenv "outputs" "out lib")
14c297fd 5561 #t))))))
685cee87
SB
5562 (native-inputs
5563 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5564 ("gobject-introspection" ,gobject-introspection)
5565 ("intltool" ,intltool)
5566 ("pkg-config" ,pkg-config)
ebb2873d 5567 ("vala" ,vala)
685cee87
SB
5568 ("xsltproc" ,libxslt)))
5569 (propagated-inputs
5570 `(("glib" ,glib) ; required by goa-1.0.pc
5571 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
5572 (inputs
5573 `(("docbook-xsl" ,docbook-xsl)
5574 ("json-glib" ,json-glib)
5575 ("libsecret" ,libsecret)
5576 ("rest" ,rest)
685cee87
SB
5577 ("webkitgtk" ,webkitgtk)))
5578 (synopsis "Single sign-on framework for GNOME")
5579 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
5580 (description
5581 "GNOME Online Accounts provides interfaces so that applications and
5582libraries in GNOME can access the user's online accounts. It has providers for
5583Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
5584Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
5585 (license license:lgpl2.0+)))
df217748
SB
5586
5587(define-public evolution-data-server
5588 (package
5589 (name "evolution-data-server")
2196a8d4 5590 (version "3.32.4")
df217748
SB
5591 (source (origin
5592 (method url-fetch)
5593 (uri (string-append "mirror://gnome/sources/" name "/"
5594 (version-major+minor version) "/"
5595 name "-" version ".tar.xz"))
e1f174ae 5596 (patches (search-patches "evolution-data-server-locales.patch"))
df217748
SB
5597 (sha256
5598 (base32
2196a8d4 5599 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 5600 (build-system cmake-build-system)
df217748 5601 (arguments
b468eedc
RW
5602 '(#:configure-flags
5603 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
5604 (runpaths (map (lambda (s)
5605 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
5606 '("addressbook-backends" "calendar-backends"
5607 "camel-providers" "credential-modules"
5608 "registry-modules"))))
5609 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
5610 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
5611 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
5612 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
5613 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
5614 (string-append lib "/evolution-data-server;")
5615 (string-join runpaths ";"))
5616 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
5617 #:phases
5618 (modify-phases %standard-phases
b468eedc
RW
5619 (add-after 'unpack 'disable-failing-tests
5620 (lambda _
5621 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
5622 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
5623 (delete-file-recursively "tests/book-migration")
5624 (substitute* "tests/CMakeLists.txt"
5625 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
5626 ;; tests/libebook/client/test-book-client-view-operations:8077):
5627 ;; e-data-server-WARNING **:
5628 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
5629 ;; runtime check failed:
5630 ;; (!g_main_context_pending (closure->main_context))
5631 (substitute* "tests/libebook/client/CMakeLists.txt"
5632 (("test-book-client-view-operations") ""))
b468eedc 5633 #t))
743aebd7 5634 (add-after 'unpack 'patch-paths
df217748 5635 (lambda _
b468eedc
RW
5636 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
5637 "tests/libedata-book/data-test-utils.c"
5638 "tests/libedata-book/test-book-cache-utils.c"
5639 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 5640 (("/bin/rm") (which "rm")))
ac033c7b
MB
5641 #t))
5642 (add-before 'configure 'dont-override-rpath
5643 (lambda _
5644 (substitute* "CMakeLists.txt"
5645 ;; CMakeLists.txt hard-codes runpath to just the libdir.
5646 ;; Remove it so the configure flag is respected.
5647 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 5648 #t)))))
df217748
SB
5649 (native-inputs
5650 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5651 ("gobject-introspection" ,gobject-introspection)
5652 ("gperf" ,gperf)
5653 ("intltool" ,intltool)
5654 ("pkg-config" ,pkg-config)
a73c1cf8 5655 ("vala" ,vala)
743aebd7 5656 ("python" ,python-wrapper)))
df217748
SB
5657 (propagated-inputs
5658 ;; These are all in the Requires field of .pc files.
5659 `(("gtk+" ,gtk+)
5660 ("libical" ,libical)
5661 ("libsecret" ,libsecret)
5662 ("libsoup" ,libsoup)
5663 ("nss" ,nss)
5664 ("sqlite" ,sqlite)))
5665 (inputs
5666 `(("bdb" ,bdb)
5667 ("gcr" ,gcr)
14c297fd 5668 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 5669 ("json-glib" ,json-glib)
b468eedc 5670 ("libcanberra" ,libcanberra)
743aebd7
MB
5671 ("libgweather" ,libgweather)
5672 ("mit-krb5" ,mit-krb5)
891199c6
MW
5673 ("openldap" ,openldap)
5674 ("webkitgtk" ,webkitgtk)))
df217748
SB
5675 (synopsis "Store address books and calendars")
5676 (home-page "https://wiki.gnome.org/Apps/Evolution")
5677 (description
5678 "This package provides a unified backend for programs that work with
5679contacts, tasks, and calendar information. It was originally developed for
5680Evolution (hence the name), but is now used by other packages as well.")
5681 (license license:lgpl2.0)))
bd7dfafa
SB
5682
5683(define-public caribou
5684 (package
5685 (name "caribou")
fe964bb5 5686 (version "0.4.21")
bd7dfafa
SB
5687 (source (origin
5688 (method url-fetch)
5689 (uri (string-append "mirror://gnome/sources/" name "/"
5690 (version-major+minor version) "/"
5691 name "-" version ".tar.xz"))
5692 (sha256
5693 (base32
fe964bb5 5694 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
5695 (build-system glib-or-gtk-build-system)
5696 (arguments
5697 '(#:phases
5698 (modify-phases %standard-phases
5699 (add-before
5700 'build 'pre-build
5701 (lambda* (#:key outputs #:allow-other-keys)
5702 (let ((out (assoc-ref outputs "out")))
5703 ;; Use absolute shared library path in Caribou-1.0.typelib.
5704 (substitute* "libcaribou/Makefile"
5705 (("--shared-library=libcaribou.so")
5706 (string-append "--shared-library="
5707 out "/lib/libcaribou.so")))
5708 #t)))
5709 (add-after 'install 'wrap-programs
5710 (lambda* (#:key outputs #:allow-other-keys)
5711 (let* ((out (assoc-ref outputs "out"))
5712 (python-path (getenv "PYTHONPATH"))
5713 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5714 (for-each
5715 (lambda (prog)
5716 (wrap-program prog
5717 `("PYTHONPATH" ":" prefix (,python-path))
5718 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5719 (list (string-append out "/bin/caribou-preferences")
5720 (string-append out "/libexec/antler-keyboard"))))
5721 #t)))))
5722 (native-inputs
5723 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5724 ("gobject-introspection" ,gobject-introspection)
5725 ("intltool" ,intltool)
5726 ("pkg-config" ,pkg-config)
5727 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5728 ("vala" ,vala)
5729 ("xsltproc" ,libxslt)))
5730 (propagated-inputs
5731 ;; caribou-1.0.pc refers to all these.
5732 `(("libgee" ,libgee)
5733 ("libxklavier" ,libxklavier)
5734 ("libxtst" ,libxtst)
5735 ("gtk+" ,gtk+)))
5736 (inputs
5737 `(("clutter" ,clutter)
5738 ("dconf" ,dconf)
5739 ("gtk+-2" ,gtk+-2)
5740 ("python-pygobject" ,python2-pygobject)))
5741 (synopsis "Text entry and UI navigation application")
5742 (home-page "https://wiki.gnome.org/Projects/Caribou")
5743 (description
5744 "Caribou is an input assistive technology intended for switch and pointer
5745users.")
5746 (license license:lgpl2.1)))
ba5dd105 5747
ba5dd105
SB
5748(define-public network-manager
5749 (package
5750 (name "network-manager")
6425d87a 5751 (version "1.18.4")
ba5dd105
SB
5752 (source (origin
5753 (method url-fetch)
5754 (uri (string-append "mirror://gnome/sources/NetworkManager/"
5755 (version-major+minor version) "/"
5756 "NetworkManager-" version ".tar.xz"))
7d1861e2 5757 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
5758 (sha256
5759 (base32
6425d87a 5760 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 5761 (modules '((guix build utils)))
fd070f35 5762 (snippet
02710a9b
RW
5763 '(begin
5764 (substitute* "src/devices/wwan/nm-modem-manager.c"
5765 (("systemd") "elogind"))
5766 #t))))
ba5dd105
SB
5767 (build-system gnu-build-system)
5768 (outputs '("out"
5769 "doc")) ; 8 MiB of gtk-doc HTML
5770 (arguments
5771 '(#:configure-flags
5772 (let ((out (assoc-ref %outputs "out"))
5773 (doc (assoc-ref %outputs "doc"))
5774 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
5775 "/sbin/dhclient")))
02710a9b
RW
5776 (list "--with-libnm-glib" ; needed by network-manager-applet
5777 "--with-systemd-journal=no"
5778 "--with-session-tracking=elogind"
5779 "--with-suspend-resume=elogind"
fd070f35
CM
5780 "--with-consolekit=no"
5781 "--with-crypto=gnutls"
ba5dd105
SB
5782 "--disable-config-plugin-ibft"
5783 "--sysconfdir=/etc"
5784 "--localstatedir=/var"
5785 (string-append "--with-udev-dir="
5786 out "/lib/udev")
5787 (string-append "--with-dbus-sys-dir="
5788 out "/etc/dbus-1/system.d")
5789 (string-append "--with-html-dir="
5790 doc "/share/gtk-doc/html")
5791 (string-append "--with-dhclient=" dhclient)))
5792 #:phases
5793 (modify-phases %standard-phases
02710a9b
RW
5794 ;; This bare "ls" invocation breaks some tests.
5795 (add-after 'unpack 'patch-ls-invocation
5796 (lambda _
5797 (substitute* "build-aux/ltmain.sh"
5798 (("`ls -")
5799 (string-append "`" (which "ls") " -")))
5800 #t))
b4f59d87
AW
5801 (add-before 'configure 'pre-configure
5802 (lambda _
5803 ;; These tests try to test aspects of network-manager's
5804 ;; functionality within restricted containers, but they don't
5805 ;; cope with being already in the Guix build jail as that jail
5806 ;; lacks some features that they would like to proxy over (like
5807 ;; a /sys mount).
d04687dc
HG
5808 (substitute* '("Makefile.in")
5809 (("src/platform/tests/test-address-linux") " ")
5810 (("src/platform/tests/test-cleanup-linux") " ")
5811 (("src/platform/tests/test-link-linux") " ")
5812 (("src/platform/tests/test-route-linux") " ")
02710a9b 5813 (("src/devices/tests/test-acd") "")
d04687dc
HG
5814 (("src/devices/tests/test-arping") " ")
5815 (("src/devices/tests/test-lldp") " ")
5816 (("src/tests/test-route-manager-linux") " "))
b4f59d87 5817 #t))
45f80fce
RW
5818 (add-after 'unpack 'delete-failing-tests
5819 (lambda _
02710a9b 5820 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
5821 ;; ERROR:libnm-core/tests/test-general.c:5842:
5822 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
5823 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
5824 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
5825 ;; ERROR:libnm-core/tests/test-setting.c:907:
5826 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
5827 (substitute* "Makefile.in"
5828 (("libnm-core/tests/test-general") " ")
5829 (("libnm-core/tests/test-keyfile") " ")
02710a9b 5830 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 5831 #t))
ba5dd105
SB
5832 (add-before 'check 'pre-check
5833 (lambda _
5834 ;; For the missing /etc/machine-id.
5835 (setenv "DBUS_FATAL_WARNINGS" "0")
5836 #t))
5837 (replace 'install
5838 (lambda _
45f80fce
RW
5839 (invoke "make"
5840 "sysconfdir=/tmp"
5841 "rundir=/tmp"
5842 "statedir=/tmp"
5843 "nmstatedir=/tmp/nm"
5844 "install")
5845 #t)))))
b93502d6
DC
5846 (propagated-inputs
5847 `(("glib" ,glib)))
ba5dd105
SB
5848 (native-inputs
5849 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
5850 ("gobject-introspection" ,gobject-introspection)
d04687dc 5851 ("docbook-xsl" ,docbook-xsl)
ba5dd105 5852 ("intltool" ,intltool)
d04687dc
HG
5853 ("libxslt" ,libxslt)
5854 ("libxml2" ,libxml2)
ba5dd105
SB
5855 ("pkg-config" ,pkg-config)
5856 ;; For testing.
5857 ("python" ,python-wrapper)
5858 ("python-dbus" ,python-dbus)
5859 ("python-pygobject" ,python-pygobject)))
5860 (inputs
02710a9b
RW
5861 `(("coreutils" ,coreutils) ; for ls
5862 ("curl" ,curl)
856ca567
KK
5863 ("cyrus-sasl" ,cyrus-sasl)
5864 ("dbus-glib" ,dbus-glib)
ba5dd105 5865 ("dnsmasq" ,dnsmasq)
856ca567 5866 ("eudev" ,eudev)
ba5dd105
SB
5867 ("gnutls" ,gnutls)
5868 ("iptables" ,iptables)
5869 ("isc-dhcp" ,isc-dhcp)
d04687dc 5870 ("jansson" ,jansson)
ba5dd105
SB
5871 ("libgcrypt" ,libgcrypt)
5872 ("libgudev" ,libgudev)
5873 ("libndp" ,libndp)
5874 ("libnl" ,libnl)
5875 ("libsoup" ,libsoup)
142bdcbc 5876 ("modem-manager" ,modem-manager)
c27e02bf 5877 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
5878 ("polkit" ,polkit)
5879 ("ppp" ,ppp)
5880 ("readline" ,readline)
fd070f35
CM
5881 ("util-linux" ,util-linux)
5882 ("elogind" ,elogind)))
ba5dd105 5883 (synopsis "Network connection manager")
f032d0be 5884 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
5885 (description
5886 "NetworkManager is a system network service that manages your network
5887devices and connections, attempting to keep active network connectivity when
5888available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
5889devices, and provides VPN integration with a variety of different VPN
5890services.")
29d2f451
LC
5891 (license license:gpl2+)
5892 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 5893
f2b96b3a
LC
5894(define-public network-manager-openvpn
5895 (package
5896 (name "network-manager-openvpn")
be1c4b07 5897 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 5898 (version "1.8.10")
f2b96b3a
LC
5899 (source (origin
5900 (method url-fetch)
5901 (uri (string-append
5902 "mirror://gnome/sources/NetworkManager-openvpn/"
5903 (version-major+minor version)
5904 "/NetworkManager-openvpn-" version ".tar.xz"))
5905 (sha256
5906 (base32
7d87eede 5907 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
5908 (build-system gnu-build-system)
5909 (arguments
633422b0
JL
5910 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
5911 #:phases
5912 (modify-phases %standard-phases
5913 (add-after 'configure 'patch-path
5914 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
5915 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
5916 "/sbin/openvpn"))
5917 (modprobe (string-append (assoc-ref inputs "kmod")
5918 "/bin/modprobe"))
5919 (pretty-ovpn (string-append "\"" ovpn "\"")))
5920 (for-each
5921 (lambda (file)
5922 (substitute* file
5923 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
5924 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
5925 (("\"/sbin/openvpn\"") pretty-ovpn)
5926 (("/sbin/modprobe") modprobe)))
5927 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
5928 #t)))))
f2b96b3a
LC
5929 (native-inputs
5930 `(("pkg-config" ,pkg-config)
5931 ("intltool" ,intltool)))
5932 (inputs
5933 `(("gtk+" ,gtk+)
633422b0 5934 ("kmod" ,kmod)
f2b96b3a
LC
5935 ("openvpn" ,openvpn)
5936 ("network-manager" ,network-manager)
5937 ("network-manager-applet" ,network-manager-applet) ;for libnma
5938 ("libsecret" ,libsecret)))
5939 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
5940 (synopsis "OpenVPN plug-in for NetworkManager")
5941 (description
5942 "This extension of NetworkManager allows it to take care of connections
5943to virtual private networks (VPNs) via OpenVPN.")
5944 (license license:gpl2+)
5945 (properties `((upstream-name . "NetworkManager-openvpn")))))
5946
d376129f
JL
5947(define-public network-manager-vpnc
5948 (package
5949 (name "network-manager-vpnc")
5950 (version "1.2.6")
5951 (source (origin
5952 (method url-fetch)
5953 (uri (string-append
5954 "mirror://gnome/sources/NetworkManager-vpnc/"
5955 (version-major+minor version)
5956 "/NetworkManager-vpnc-" version ".tar.xz"))
5957 (sha256
5958 (base32
5959 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
5960 (build-system gnu-build-system)
5961 (arguments
5962 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
5963 #:phases
5964 (modify-phases %standard-phases
5965 (add-after 'configure 'patch-path
5966 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
5967 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
5968 "/sbin/vpnc"))
5969 (modprobe (string-append (assoc-ref inputs "kmod")
5970 "/bin/modprobe"))
5971 (pretty-ovpn (string-append "\"" vpnc "\"")))
5972 (substitute* "src/nm-vpnc-service.c"
5973 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
5974 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
5975 (("\"/sbin/vpnc\"") pretty-ovpn)
5976 (("/sbin/modprobe") modprobe)))
5977 #t)))))
5978 (native-inputs
5979 `(("pkg-config" ,pkg-config)
5980 ("intltool" ,intltool)))
5981 (inputs
5982 `(("gtk+" ,gtk+)
5983 ("kmod" ,kmod)
5984 ("vpnc" ,vpnc)
5985 ("network-manager" ,network-manager)
5986 ("network-manager-applet" ,network-manager-applet) ;for libnma
5987 ("libsecret" ,libsecret)))
5988 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
5989 (synopsis "VPNC plug-in for NetworkManager")
5990 (description
5991 "Support for configuring virtual private networks based on VPNC.
5992Compatible with Cisco VPN concentrators configured to use IPsec.")
5993 (license license:gpl2+)
5994 (properties `((upstream-name . "NetworkManager-vpnc")))))
5995
8378c87a
EF
5996(define-public network-manager-openconnect
5997 (package
5998 (name "network-manager-openconnect")
5999 (version "1.2.6")
6000 (source (origin
6001 (method url-fetch)
6002 (uri (string-append
6003 "mirror://gnome/sources/NetworkManager-openconnect/"
6004 (version-major+minor version)
6005 "/NetworkManager-openconnect-" version ".tar.xz"))
6006 (sha256
6007 (base32
6008 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6009 (build-system gnu-build-system)
6010 (arguments
6011 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6012 #:phases
6013 (modify-phases %standard-phases
6014 (add-after 'configure 'patch-path
6015 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6016 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6017 "/sbin/openconnect"))
6018 (modprobe (string-append (assoc-ref inputs "kmod")
6019 "/bin/modprobe"))
6020 (pretty-ovpn (string-append "\"" openconnect "\"")))
6021 (substitute* "src/nm-openconnect-service.c"
6022 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6023 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6024 (("/sbin/modprobe") modprobe)))
6025 #t)))))
6026 (native-inputs
6027 `(("intltool" ,intltool)
6028 ("network-manager-applet" ,network-manager-applet) ;for libnma
6029 ("pkg-config" ,pkg-config)))
6030 (inputs
6031 `(("gcr" ,gcr)
6032 ("gtk+" ,gtk+)
6033 ("kmod" ,kmod)
6034 ("libsecret" ,libsecret)
6035 ("libxml2" ,libxml2)
6036 ("network-manager" ,network-manager)
6037 ("openconnect" ,openconnect)))
6038 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6039 (synopsis "OpenConnect plug-in for NetworkManager")
6040 (description
6041 "This extension of NetworkManager allows it to take care of connections
6042to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6043Cisco's AnyConnect SSL VPN.")
6044 (license license:gpl2+)
e52b9534
LC
6045 (properties `((upstream-name . "NetworkManager-openconnect")
6046
6047 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6048 ;; file refers to account "nm-openconnect". Specify it here
6049 ;; so that 'network-manager-service-type' creates it.
6050 (user-accounts . ("nm-openconnect"))))))
8378c87a 6051
e5e1df4d
DC
6052(define-public mobile-broadband-provider-info
6053 (package
6054 (name "mobile-broadband-provider-info")
310c89e3 6055 (version "20190116")
e5e1df4d
DC
6056 (source (origin
6057 (method url-fetch)
6058 (uri (string-append
6059 "mirror://gnome/sources/"
6060 "mobile-broadband-provider-info/" version "/"
6061 "mobile-broadband-provider-info-" version ".tar.xz"))
6062 (sha256
6063 (base32
310c89e3 6064 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6065 (build-system gnu-build-system)
6066 (arguments
310c89e3 6067 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6068 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6069 (synopsis "Database of broadband connection configuration")
6070 (description "Database of broadband connection configuration.")
6071 (license license:public-domain)))
6072
4d62a9d3
SB
6073(define-public network-manager-applet
6074 (package
6075 (name "network-manager-applet")
8fc3a337 6076 (version "1.8.24")
4d62a9d3
SB
6077 (source (origin
6078 (method url-fetch)
3df63444 6079 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6080 (version-major+minor version) "/"
3df63444 6081 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6082 (sha256
6083 (base32
8fc3a337 6084 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6085 (build-system meson-build-system)
6086 (arguments
be1c4b07
TGR
6087 '(#:configure-flags
6088 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6089 (list "-Dlibnm_gtk=true")
6090 #:glib-or-gtk? #t))
4d62a9d3
SB
6091 (native-inputs
6092 `(("intltool" ,intltool)
cd7f718e 6093 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6094 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6095 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6096 ("pkg-config" ,pkg-config)))
6097 (propagated-inputs
6098 ;; libnm-gtk.pc refers to all these.
6099 `(("dbus-glib" ,dbus-glib)
6100 ("gtk+" ,gtk+)
6101 ("network-manager" ,network-manager)))
6102 (inputs
cd7f718e
RW
6103 `(("gcr" ,gcr)
6104 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6105 ("libgudev" ,libgudev)
6106 ("libnotify" ,libnotify)
2116bfb3 6107 ("libsecret" ,libsecret)
240cee8a
KK
6108 ("libselinux" ,libselinux)
6109 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6110 ("modem-manager" ,modem-manager)
6111 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6112 (synopsis "Applet for managing network connections")
f032d0be 6113 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6114 (description
6115 "This package contains a systray applet for NetworkManager. It displays
6116the available networks and allows users to easily switch between them.")
6117 (license license:gpl2+)))
56196594
RW
6118
6119(define-public libxml++
6120 (package
6121 (name "libxml++")
8344a85e 6122 (version "3.0.1")
56196594
RW
6123 (source (origin
6124 (method url-fetch)
6125 (uri (string-append "mirror://gnome/sources/" name "/"
6126 (version-major+minor version) "/"
6127 name "-" version ".tar.xz"))
6128 (sha256
6129 (base32
8344a85e 6130 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6131 (build-system gnu-build-system)
6132 ;; libxml++-3.0.pc refers to all these.
6133 (propagated-inputs
6134 `(("libxml2" ,libxml2)
6135 ("glibmm" ,glibmm)))
6136 (native-inputs
6137 `(("perl" ,perl)
6138 ("pkg-config" ,pkg-config)))
6139 (home-page "http://libxmlplusplus.sourceforge.net/")
6140 (synopsis "C++ wrapper for XML parser library libxml2")
6141 (description
6142 "This package provides a C++ wrapper for the XML parser library
6143libxml2.")
6144 (license license:lgpl2.1+)))
df12f04a 6145
b61d9627
AW
6146(define-public libxml++-2
6147 (package
6148 (inherit libxml++)
6149 (name "libxml++")
6150 (version "2.40.1")
6151 (source (origin
6152 (method url-fetch)
6153 (uri (string-append "mirror://gnome/sources/" name "/"
6154 (version-major+minor version) "/"
6155 name "-" version ".tar.xz"))
6156 (sha256
6157 (base32
6158 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6159
df12f04a
SB
6160(define-public gdm
6161 (package
6162 (name "gdm")
bcca95dc 6163 (version "3.32.0")
df12f04a
SB
6164 (source (origin
6165 (method url-fetch)
6166 (uri (string-append "mirror://gnome/sources/" name "/"
6167 (version-major+minor version) "/"
6168 name "-" version ".tar.xz"))
6169 (sha256
6170 (base32
bcca95dc 6171 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6172 (build-system glib-or-gtk-build-system)
df12f04a
SB
6173 (arguments
6174 '(#:configure-flags
af37e6bb 6175 `("--without-plymouth"
957dbc0a 6176 "--disable-systemd-journal"
51bc8357
TS
6177
6178 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6179 ;; instead of having to replace it (i.e., stopping the mingetty
6180 ;; service for TTY 1 before starting GDM).
6181 "--with-initial-vt=7"
6182
89c86562
TS
6183 ;; Use '/etc/environment' for locale settings instead of the
6184 ;; systemd-specific '/etc/locale.conf'.
6185 "--with-lang-file=/etc/environment"
6186
b74ef0ba
RW
6187 ,(string-append "--with-udevdir="
6188 (assoc-ref %outputs "out") "/lib/udev")
6189
af37e6bb
AW
6190 "--localstatedir=/var"
6191 ,(string-append "--with-default-path="
6192 (string-join '("/run/setuid-programs"
6193 "/run/current-system/profile/bin"
6194 "/run/current-system/profile/sbin")
957dbc0a
AW
6195 ":"))
6196 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6197 ;; XDG_DATA_DIRS so that it finds its schemas.
6198 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6199 #:phases
6200 (modify-phases %standard-phases
6201 (add-before
6202 'configure 'pre-configure
e8c6e771 6203 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6204 ;; We don't have <systemd/sd-daemon.h>.
6205 (substitute* '("common/gdm-log.c"
6206 "daemon/gdm-server.c"
6207 "daemon/gdm-session-worker.c"
6208 "daemon/gdm-session-worker-job.c")
6209 (("#include <systemd/sd-daemon\\.h>") ""))
6210 ;; Use elogind for sd-login.
6211 (substitute* '("common/gdm-common.c"
6212 "daemon/gdm-manager.c"
6213 "libgdm/gdm-user-switching.c")
6214 (("#include <systemd/sd-login\\.h>")
6215 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6216 ;; Check for elogind.
6217 (substitute* '("configure")
6218 (("libsystemd")
6219 "libelogind"))
af37e6bb
AW
6220 ;; Look for system-installed sessions in
6221 ;; /run/current-system/profile/share.
6222 (substitute* '("libgdm/gdm-sessions.c"
6223 "daemon/gdm-session.c"
6224 "daemon/gdm-display.c"
6225 "daemon/gdm-launch-environment.c")
6226 (("DATADIR \"/x")
6227 "\"/run/current-system/profile/share/x")
6228 (("DATADIR \"/wayland")
6229 "\"/run/current-system/profile/share/wayland")
6230 (("DATADIR \"/gnome")
6231 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6232 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6233 "GDM_DBUS_DAEMON"
c9ff92b5 6234 "GDM_X_SERVER"
41fa9f18 6235 "GDM_X_SESSION"
c9ff92b5
TS
6236 ;; XXX: Remove this once GNOME Shell is
6237 ;; a dependency of GDM.
6238 "XDG_DATA_DIRS")))
6239 (substitute* "daemon/gdm-session.c"
6240 (("set_up_session_environment \\(self\\);")
6241 (apply string-append
6242 "set_up_session_environment (self);\n"
6243 (map (lambda (name)
6244 (string-append
6245 "gdm_session_set_environment_variable "
6246 "(self, \"" name "\","
6247 "g_getenv (\"" name "\"));\n"))
6248 propagate)))))
a430a350
TS
6249 ;; Find the configuration file using an environment variable.
6250 (substitute* '("common/gdm-settings.c")
e0e6756f 6251 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6252 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6253 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6254 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6255 ;; Use service-supplied path to X.
6256 (substitute* '("daemon/gdm-server.c")
6257 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6258 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6259 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6260 (("\"dbus-daemon\"")
6261 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6262 (("X_SERVER")
41fa9f18
TS
6263 "g_getenv (\"GDM_X_SERVER\")")
6264 (("GDMCONFDIR \"/Xsession\"")
6265 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6266 ;; Use an absolute path for GNOME Session.
6267 (substitute* "daemon/gdm-launch-environment.c"
6268 (("\"gnome-session\"")
6269 (string-append "\"" (assoc-ref inputs "gnome-session")
6270 "/bin/gnome-session\"")))
e8c6e771
TS
6271 ;; Do not automatically select the placeholder session.
6272 (substitute* "daemon/gdm-session.c"
6273 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6274 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6275 "(g_strcmp0(search_dirs[i], \""
6276 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6277 "\") == 0 && "
6278 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6279 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6280 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6281 #t))
8caa4589
TS
6282 ;; GDM requires that there be at least one desktop entry
6283 ;; file. This phase installs a hidden one that simply
6284 ;; fails. This enables users to use GDM with a
6285 ;; '~/.xsession' script with no other desktop entry files.
6286 ;; See <https://bugs.gnu.org/35068>.
6287 (add-after 'install 'install-placeholder-desktop-entry
6288 (lambda* (#:key inputs outputs #:allow-other-keys)
6289 (let* ((out (assoc-ref outputs "out"))
6290 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6291 (fail (string-append sessions "/fail.desktop")))
6292 (mkdir-p sessions)
6293 (with-output-to-file fail
6294 (lambda ()
6295 (for-each
6296 display
6297 '("[Desktop Entry]\n"
6298 "Encoding=UTF-8\n"
6299 "Type=Application\n"
6300 "Name=Fail\n"
6301 "Comment=This session fails immediately.\n"
6302 "NoDisplay=true\n"
6303 "Exec=false\n"))))
6304 #t)))
69544798
TS
6305 ;; GDM needs GNOME Session to run these applications. We link
6306 ;; their autostart files in `share/gdm/greeter/autostart'
6307 ;; because GDM explicitly tells GNOME Session to look there.
6308 ;;
6309 ;; XXX: GNOME Shell should be linked here too, but currently
6310 ;; GNOME Shell depends on GDM.
6311 (add-after 'install 'link-autostart-files
6312 (lambda* (#:key inputs outputs #:allow-other-keys)
6313 (let* ((out (assoc-ref outputs "out"))
6314 (autostart (string-append out "/share/gdm/"
6315 "greeter/autostart"))
6316 (settings (assoc-ref inputs "gnome-settings-daemon")))
6317 (mkdir-p autostart)
6318 (with-directory-excursion autostart
6319 (for-each (lambda (desktop)
6320 (symlink desktop (basename desktop)))
6321 (find-files (string-append settings "/etc/xdg"))))
6322 #t))))))
df12f04a
SB
6323 (native-inputs
6324 `(("dconf" ,dconf)
6325 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6326 ("gobject-introspection" ,gobject-introspection)
6327 ("intltool" ,intltool)
6328 ("itstool" ,itstool)
6329 ("pkg-config" ,pkg-config)
6330 ("xmllint" ,libxml2)))
6331 (inputs
6332 `(("accountsservice" ,accountsservice)
6333 ("check" ,check) ; for testing
6334 ("elogind" ,elogind)
def6d6b6 6335 ("gnome-session" ,gnome-session)
69544798 6336 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6337 ("gtk+" ,gtk+)
6338 ("iso-codes" ,iso-codes)
6339 ("libcanberra" ,libcanberra)
6340 ("linux-pam" ,linux-pam)))
6341 (synopsis "Display manager for GNOME")
f032d0be 6342 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6343 (description
6344 "GNOME Display Manager is a system service that is responsible for
6345providing graphical log-ins and managing local and remote displays.")
6346 (license license:gpl2+)))
8e1dd04f
SB
6347
6348(define-public libgtop
6349 (package
6350 (name "libgtop")
015fc036 6351 (version "2.40.0")
8e1dd04f
SB
6352 (source (origin
6353 (method url-fetch)
59487fc2 6354 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6355 (version-major+minor version) "/"
59487fc2 6356 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6357 (sha256
6358 (base32
015fc036 6359 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
6360 (build-system gnu-build-system)
6361 (native-inputs
6362 `(("gobject-introspection" ,gobject-introspection)
6363 ("intltool" ,intltool)
6364 ("perl" ,perl)
6365 ("pkg-config" ,pkg-config)))
6366 (propagated-inputs
6367 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6368 (synopsis "Portable system access library")
6369 (home-page "https://www.gnome.org/")
6370 (description
6371 "LibGTop is a library to get system specific data such as CPU and memory
6372usage and information about running processes.")
6373 (license license:gpl2+)))
b96c4260
SB
6374
6375(define-public gnome-bluetooth
6376 (package
6377 (name "gnome-bluetooth")
723afae6 6378 (version "3.32.1")
b96c4260
SB
6379 (source (origin
6380 (method url-fetch)
6381 (uri (string-append "mirror://gnome/sources/" name "/"
6382 (version-major+minor version) "/"
6383 name "-" version ".tar.xz"))
6384 (sha256
6385 (base32
723afae6 6386 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 6387 (build-system meson-build-system)
b96c4260
SB
6388 (native-inputs
6389 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 6390 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
6391 ("gobject-introspection" ,gobject-introspection)
6392 ("intltool" ,intltool)
6393 ("pkg-config" ,pkg-config)
6394 ("xmllint" ,libxml2)))
6395 (propagated-inputs
6396 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
6397 `(("glib" ,glib)
6398 ("gtk+" ,gtk+)))
b96c4260 6399 (inputs
723afae6
KK
6400 `(("eudev" ,eudev)
6401 ("libcanberra" ,libcanberra)
b96c4260
SB
6402 ("libnotify" ,libnotify)))
6403 (synopsis "GNOME Bluetooth subsystem")
6404 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6405 (description
6406 "This package contains tools for managing and manipulating Bluetooth
6407devices using the GNOME desktop.")
6408 (license license:lgpl2.1+)))
b645146f
SB
6409
6410(define-public gnome-control-center
6411 (package
6412 (name "gnome-control-center")
a6938bac 6413 (version "3.32.2")
b645146f
SB
6414 (source (origin
6415 (method url-fetch)
6416 (uri (string-append "mirror://gnome/sources/" name "/"
6417 (version-major+minor version) "/"
6418 name "-" version ".tar.xz"))
6419 (sha256
6420 (base32
a6938bac 6421 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 6422 (build-system meson-build-system)
b645146f 6423 (arguments
59dac026
RW
6424 '(#:glib-or-gtk? #t
6425 #:configure-flags
64c70430
KK
6426 (list "-Dcheese=false"
6427 (string-append "-Dgnome_session_libexecdir="
6428 (assoc-ref %build-inputs "gnome-session")
6429 "/libexec"))
59dac026 6430 #:phases
b645146f
SB
6431 (modify-phases %standard-phases
6432 (add-before 'configure 'patch-paths
6433 (lambda* (#:key inputs #:allow-other-keys)
6434 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 6435 (tzdata (assoc-ref inputs "tzdata"))
341225ac 6436 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
6437 (nm-applet (assoc-ref inputs "network-manager-applet"))
6438 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
6439 (substitute* "panels/datetime/tz.h"
6440 (("/usr/share/zoneinfo/zone.tab")
6441 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 6442 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
6443 (("/usr/share/locale")
6444 (string-append libc "/share/locale")))
1df38cfc
LC
6445 (substitute* "panels/region/cc-region-panel.c"
6446 (("\"gkbd-keyboard-display")
6447 (string-append "\"" libgnomekbd
6448 "/bin/gkbd-keyboard-display")))
341225ac
LC
6449 (substitute* '("panels/network/net-device-wifi.c"
6450 "panels/network/net-device.c"
6451 "panels/network/connection-editor/net-connection-editor.c")
6452 (("\"nm-connection-editor")
6453 (string-append "\"" nm-applet
6454 "/bin/nm-connection-editor")))
1acd107c
FP
6455 (substitute* '("panels/user-accounts/run-passwd.c")
6456 (("/usr/bin/passwd")
6457 "/run/setuid-programs/passwd"))
64c70430
KK
6458 (substitute* "panels/info/cc-info-overview-panel.c"
6459 (("DATADIR \"/gnome/gnome-version.xml\"")
6460 (string-append "\"" gnome-desktop
6461 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
6462 #t))))))
6463 (native-inputs
6464 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 6465 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
6466 ("intltool" ,intltool)
6467 ("pkg-config" ,pkg-config)
a6938bac
KK
6468 ("xsltproc" ,libxslt)
6469 ;; For tests
6470 ("hicolor-icon-theme" ,hicolor-icon-theme)
6471 ("python-dbusmock" ,python-dbusmock)
6472 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
6473 (inputs
6474 `(("accountsservice" ,accountsservice)
6475 ("clutter-gtk" ,clutter-gtk)
6476 ("colord-gtk" ,colord-gtk)
6477 ("cups" ,cups)
6478 ("dconf" ,dconf)
6479 ("docbook-xsl" ,docbook-xsl)
3446ffb5 6480 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
6481 ("gnome-bluetooth" ,gnome-bluetooth)
6482 ("gnome-desktop" ,gnome-desktop)
6483 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 6484 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 6485 ("gnome-session" ,gnome-session)
b645146f
SB
6486 ("gnome-settings-daemon" ,gnome-settings-daemon)
6487 ("grilo" ,grilo)
a6938bac 6488 ("gsound" ,gsound)
b645146f
SB
6489 ("ibus" ,ibus)
6490 ("libcanberra" ,libcanberra)
1df38cfc 6491 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
6492 ("libgudev" ,libgudev)
6493 ("libgtop" ,libgtop)
6494 ("libpwquality" ,libpwquality)
982c0b36 6495 ("libsecret" ,libsecret)
b645146f
SB
6496 ("libsoup" ,libsoup)
6497 ("libxml2" ,libxml2)
6498 ("libwacom" ,libwacom)
6499 ("mesa" ,mesa)
6500 ("mit-krb5" ,mit-krb5)
6501 ("modem-manager" ,modem-manager)
6502 ("network-manager-applet" ,network-manager-applet)
6503 ("polkit" ,polkit)
6504 ("pulseaudio" ,pulseaudio)
6505 ("smbclient" ,samba)
6506 ("tzdata" ,tzdata)
982c0b36 6507 ("udisks" ,udisks)
b645146f
SB
6508 ("upower" ,upower)))
6509 (synopsis "Utilities to configure the GNOME desktop")
6510 (home-page "https://www.gnome.org/")
6511 (description
6512 "This package contains configuration applets for the GNOME desktop,
6513allowing to set accessibility configuration, desktop fonts, keyboard and mouse
6514properties, sound setup, desktop theme and background, user interface
6515properties, screen resolution, and other GNOME parameters.")
6516 (license license:gpl2+)))
a4df5756
SB
6517
6518(define-public gnome-shell
6519 (package
6520 (name "gnome-shell")
d5e615ca 6521 (version "3.32.2")
a4df5756
SB
6522 (source (origin
6523 (method url-fetch)
6524 (uri (string-append "mirror://gnome/sources/" name "/"
6525 (version-major+minor version) "/"
6526 name "-" version ".tar.xz"))
6527 (sha256
6528 (base32
d5e615ca 6529 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
6530 (patches (search-patches "gnome-shell-theme.patch"))
6531 (modules '((guix build utils)))
6532 (snippet
6533 #~(begin
a76d0f03
LC
6534 ;; Copy images for use on the GDM log-in screen.
6535 (copy-file #$(file-append %artwork-repository
6536 "/slim/0.x/background.png")
6537 "data/theme/guix-background.png")
45fef894
LC
6538 (copy-file #$(file-append %artwork-repository
6539 "/logo/Guix-horizontal-white.svg")
6540 "data/theme/guix-logo.svg")
a76d0f03 6541 #t))))
2b0c755d 6542 (build-system meson-build-system)
a4df5756 6543 (arguments
08185081
MB
6544 `(#:glib-or-gtk? #t
6545 #:disallowed-references ((,glib "bin")
11e1df56
LC
6546 ,inkscape ,libxslt
6547 ,ruby-sass)
2b0c755d
RW
6548 #:configure-flags
6549 (list "-Dsystemd=false"
6550 ;; Otherwise, the RUNPATH will lack the final path component.
6551 (string-append "-Dc_link_args=-Wl,-rpath="
6552 (assoc-ref %outputs "out")
6553 "/lib/gnome-shell"))
11e1df56 6554
08185081 6555 #:modules ((guix build meson-build-system)
11e1df56
LC
6556 (guix build utils)
6557 (srfi srfi-1))
6558
2b0c755d 6559 #:phases
a4df5756 6560 (modify-phases %standard-phases
2b0c755d 6561 (add-after 'unpack 'fix-keysdir
a4df5756
SB
6562 (lambda* (#:key outputs #:allow-other-keys)
6563 (let* ((out (assoc-ref outputs "out"))
6564 (keysdir (string-append
6565 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
6566 (substitute* "meson.build"
6567 (("keysdir =.*")
6568 (string-append "keysdir = '" keysdir "'\n")))
6569 #t)))
ebfe259f
MB
6570 (add-before 'configure 'convert-logo-to-png
6571 (lambda* (#:key inputs #:allow-other-keys)
6572 ;; Convert the logo from SVG to PNG.
6573 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
6574 "data/theme/guix-logo.svg")))
ba00235a 6575 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
6576 (lambda* (#:key inputs #:allow-other-keys)
6577 (substitute* "js/misc/ibusManager.js"
6578 (("'ibus-daemon'")
6579 (string-append "'" (assoc-ref inputs "ibus")
6580 "/bin/ibus-daemon'")))
d6fda4d3
LC
6581 (substitute* "js/ui/status/keyboard.js"
6582 (("'gkbd-keyboard-display'")
6583 (string-append "'" (assoc-ref inputs "libgnomekbd")
6584 "/bin/gkbd-keyboard-display'")))
2472cdec 6585 #t))
2b0c755d
RW
6586 (add-before 'check 'pre-check
6587 (lambda* (#:key inputs #:allow-other-keys)
6588 ;; Tests require a running X server.
6589 (system "Xvfb :1 &")
6590 (setenv "DISPLAY" ":1")
6591 #t))
6592 (add-after 'install 'wrap-programs
6593 (lambda* (#:key inputs outputs #:allow-other-keys)
6594 (let ((out (assoc-ref outputs "out"))
6595 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6596 (python-path (getenv "PYTHONPATH")))
6597 (wrap-program (string-append out "/bin/gnome-shell")
6598 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6599 ;; FIXME: gnome-shell loads these libraries with unqualified
6600 ;; names only, so they need to be on LD_LIBRARY_PATH. The
6601 ;; alternative might be to patch gnome-shell.
6602 `("LD_LIBRARY_PATH" ":" prefix
6603 ,(map (lambda (pkg)
6604 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
6605 '("gdk-pixbuf"
6606 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
6607 (for-each
6608 (lambda (prog)
6609 (wrap-program (string-append out "/bin/" prog)
6610 `("PYTHONPATH" ":" prefix (,python-path))
6611 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6612 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 6613 #t)))
11e1df56
LC
6614 (replace 'glib-or-gtk-wrap
6615 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
6616 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
6617 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
6618 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
6619 ;; phase. Fix that since we don't need these.
6620 (wrap #:inputs (fold alist-delete inputs
6621 '("inkscape" "intltool" "glib:bin"))
6622 #:outputs outputs)))))))
a4df5756
SB
6623 (native-inputs
6624 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 6625 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 6626 ("gobject-introspection" ,gobject-introspection)
ebfe259f 6627 ("inkscape" ,inkscape)
a4df5756
SB
6628 ("intltool" ,intltool)
6629 ("pkg-config" ,pkg-config)
6630 ("python" ,python)
2b0c755d
RW
6631 ("ruby-sass" ,ruby-sass)
6632 ("sassc" ,sassc)
a76d0f03 6633 ("xsltproc" ,libxslt)
2b0c755d 6634 ;; For tests
0b4504f6 6635 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
6636 (inputs
6637 `(("accountsservice" ,accountsservice)
6638 ("caribou" ,caribou)
6639 ("docbook-xsl" ,docbook-xsl)
6640 ("evolution-data-server" ,evolution-data-server)
6641 ("gcr" ,gcr)
6642 ("gdm" ,gdm)
c5db31d4 6643 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
6644 ("gjs" ,gjs)
6645 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
6646 ("gnome-desktop" ,gnome-desktop)
6647 ("gnome-settings-daemon" ,gnome-settings-daemon)
6648 ("gst-plugins-base" ,gst-plugins-base)
6649 ("ibus" ,ibus)
6650 ("libcanberra" ,libcanberra)
6651 ("libcroco" ,libcroco)
d6fda4d3 6652 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
6653 ("libgweather" ,libgweather)
6654 ("libsoup" ,libsoup)
6655 ("mesa-headers" ,mesa-headers)
6656 ("mutter" ,mutter)
6657 ("network-manager-applet" ,network-manager-applet)
6658 ("polkit" ,polkit)
6659 ("pulseaudio" ,pulseaudio)
6660 ("python-pygobject" ,python-pygobject)
6661 ("startup-notification" ,startup-notification)
6662 ("telepathy-logger" ,telepathy-logger)
6663 ("upower" ,upower)
30e760f0
MB
6664 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
6665 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
6666 ("librsvg" ,librsvg)
2b0c755d 6667 ("geoclue" ,geoclue)))
a4df5756
SB
6668 (synopsis "Desktop shell for GNOME")
6669 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
6670 (description
6671 "GNOME Shell provides core user interface functions for the GNOME desktop,
6672like switching to windows and launching applications.")
6673 (license license:gpl2+)))
c3f29bc9
RS
6674
6675(define-public gtk-vnc
6676 (package
6677 (name "gtk-vnc")
965ff023 6678 (version "0.9.0")
c3f29bc9
RS
6679 (source
6680 (origin
6681 (method url-fetch)
6682 (uri (string-append "mirror://gnome/sources/" name "/"
6683 (version-major+minor version) "/"
6684 name "-" version ".tar.xz"))
6685 (sha256
6686 (base32
965ff023 6687 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
6688 (build-system gnu-build-system)
6689 (arguments
6690 '(#:configure-flags '("--with-gtk=3.0")))
6691 (propagated-inputs
6692 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
6693 (inputs
6694 `(("cyrus-sasl" ,cyrus-sasl)
6695 ("gnutls" ,gnutls)
6696 ("libgcrypt" ,libgcrypt)
6697 ("pulseaudio" ,pulseaudio)))
6698 (native-inputs
6699 `(("glib:bin" ,glib "bin")
6700 ("gobject-introspection" ,gobject-introspection)
6701 ("intltool" ,intltool)
6702 ("pkg-config" ,pkg-config)
2f17e939 6703 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
6704 ("vala" ,vala)))
6705 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
6706 (synopsis "VNC viewer widget for GTK+")
6707 (description
6708 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
6709applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
6710GTK-VNC implements client side RFB protocol and authentication extensions such
6711as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
6712 (license license:lgpl2.1+)))
8b877545 6713
dc69fe18
MW
6714(define-public gnome-autoar
6715 (package
6716 (name "gnome-autoar")
c7da8510 6717 (version "0.2.3")
dc69fe18
MW
6718 (source (origin
6719 (method url-fetch)
6720 (uri (string-append "mirror://gnome/sources/" name "/"
6721 (version-major+minor version) "/"
6722 name "-" version ".tar.xz"))
6723 (sha256
6724 (base32
c7da8510 6725 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
6726 (build-system glib-or-gtk-build-system)
6727 (native-inputs
6728 `(("gnome-common" ,gnome-common)
6729 ("gobject-introspection" ,gobject-introspection)
6730 ("pkg-config" ,pkg-config)))
6731 (propagated-inputs
6732 `(("libarchive" ,libarchive))) ; XXX document why
6733 (inputs
0a6e9e13 6734 `(("gtk+" ,gtk+)))
dc69fe18
MW
6735 (synopsis "Archives integration support for GNOME")
6736 (home-page "https://git.gnome.org/browse/gnome-autoar/")
6737 (description
6738 "GNOME Autoar is a library which makes creating and extracting archives
6739easy, safe, and automatic.")
6740 (license license:lgpl2.1+)))
6741
b64e217f
MW
6742(define-public tracker
6743 (package
6744 (name "tracker")
5ada561c 6745 (version "2.2.2")
b64e217f
MW
6746 (source (origin
6747 (method url-fetch)
b5b0fd23 6748 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 6749 (version-major+minor version) "/"
b5b0fd23 6750 "tracker-" version ".tar.xz"))
b64e217f
MW
6751 (sha256
6752 (base32
5ada561c
KK
6753 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
6754 (build-system meson-build-system)
c8bdf589 6755 (arguments
5ada561c
KK
6756 `(#:glib-or-gtk? #t
6757 #:configure-flags
6758 ;; Otherwise, the RUNPATH will lack the final path component.
6759 (list (string-append "-Dc_link_args=-Wl,-rpath="
6760 (assoc-ref %outputs "out") "/lib:"
6761 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
6762 #:phases
c8bdf589
RW
6763 (modify-phases %standard-phases
6764 (add-after 'unpack 'disable-broken-tests
6765 (lambda _
c8bdf589
RW
6766 ;; These fail because the SPARQL backend could not be loaded.
6767 ;; That's because /etc/machine-id is missing, but
6768 ;; DBUS_FATAL_WARNINGS does not help here.
5ada561c
KK
6769 (substitute* "tests/libtracker-sparql/meson.build"
6770 (("'sparql',") ""))
6771 (substitute* "tests/tracker-steroids/meson.build"
6772 (("test\\(.*") ""))
c8bdf589
RW
6773 #t))
6774 ;; Two tests fail if LANG is not set.
6775 (add-before 'check 'pre-check
6776 (lambda _
6777 (setenv "LANG" "en_US.UTF-8")
6778 ;; For the missing /etc/machine-id.
6779 (setenv "DBUS_FATAL_WARNINGS" "0")
6780 #t)))))
b64e217f 6781 (native-inputs
5ada561c
KK
6782 `(("glib:bin" ,glib "bin")
6783 ("gnome-common" ,gnome-common)
b64e217f 6784 ("gobject-introspection" ,gobject-introspection)
5ada561c 6785 ("python-pygobject" ,python-pygobject)
b64e217f
MW
6786 ("intltool" ,intltool)
6787 ("pkg-config" ,pkg-config)
6788 ("vala" ,vala)))
6789 (inputs
6790 `(("gtk+" ,gtk+)
6791 ("dbus" ,dbus)
44ed6284 6792 ("sqlite" ,sqlite)
c8bdf589 6793 ("python" ,python)
b64e217f 6794 ("poppler" ,poppler)
b64e217f
MW
6795 ("libpng" ,libpng)
6796 ("libtiff" ,libtiff)
b64e217f 6797 ("zlib" ,zlib)
b64e217f 6798 ("libxml2" ,libxml2)
b64e217f 6799 ("libunistring" ,libunistring)
0ef48cd9 6800 ("json-glib" ,json-glib)
b64e217f 6801 ("openjpeg" ,openjpeg-1)
b64e217f 6802 ("libseccomp" ,libseccomp)
0ef48cd9 6803 ("libsoup" ,libsoup)
5ada561c
KK
6804 ("libuuid" ,util-linux)
6805 ("network-manager" ,network-manager)))
b64e217f
MW
6806 (synopsis "Metadata database, indexer and search tool")
6807 (home-page "https://wiki.gnome.org/Projects/Tracker")
6808 (description
6809 "Tracker is an advanced framework for first class objects with associated
6810metadata and tags. It provides a one stop solution for all metadata, tags,
6811shared object databases, search tools and indexing.")
6812 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
6813 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
6814 (license (list license:gpl2+
6815 license:lgpl2.1+
6816 license:lgpl2.0+))))
6817
03be9874
KK
6818(define-public tracker-miners
6819 (package
6820 (name "tracker-miners")
6821 (version "2.2.2")
6822 (source (origin
6823 (method url-fetch)
6824 (uri (string-append "mirror://gnome/sources/tracker-miners/"
6825 (version-major+minor version)
6826 "/tracker-miners-" version ".tar.xz"))
6827 (sha256
6828 (base32
6829 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
6830 (build-system meson-build-system)
6831 (arguments
6832 `(#:glib-or-gtk? #t
6833 #:configure-flags
6834 (list "-Dminer_rss=false" ; libgrss is required.
6835 ;; Ensure the RUNPATH contains all installed library locations.
6836 (string-append "-Dc_link_args=-Wl,-rpath="
6837 (assoc-ref %outputs "out")
6838 "/lib/tracker-miners-2.0")
6839 ;; TODO: Enable functional tests. Currently, the following error
6840 ;; appears:
6841 ;; Exception: The functional tests require DConf to be the default
6842 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
6843 "-Dfunctional_tests=false")))
6844 (native-inputs
6845 `(("dbus" ,dbus)
6846 ("intltool" ,intltool)
6847 ("glib:bin" ,glib "bin")
6848 ("gobject-introspection" ,gobject-introspection)
6849 ("pkg-config" ,pkg-config)
6850 ("python-pygobject" ,python-pygobject)))
6851 (inputs
6852 `(("exempi" ,exempi)
6853 ("ffmpeg" ,ffmpeg)
6854 ("flac" ,flac)
6855 ("giflib" ,giflib)
6856 ("glib" ,glib)
6857 ("gstreamer" ,gstreamer)
6858 ("icu4c" ,icu4c)
6859 ("libcue" ,libcue)
6860 ("libexif" ,libexif)
6861 ("libgsf" ,libgsf)
6862 ("libgxps" ,libgxps)
6863 ("libiptcdata" ,libiptcdata)
6864 ("libjpeg" ,libjpeg)
6865 ("libosinfo" ,libosinfo)
6866 ("libpng" ,libpng)
6867 ("libseccomp" ,libseccomp)
6868 ("libtiff" ,libtiff)
6869 ("libvorbis" ,libvorbis)
6870 ("libxml2" ,libxml2)
6871 ("poppler" ,poppler)
6872 ("taglib" ,taglib)
6873 ("totem-pl-parser" ,totem-pl-parser)
6874 ("tracker" ,tracker)
6875 ("upower" ,upower)
6876 ("zlib" ,zlib)))
6877 (synopsis "Metadata database, indexer and search tool")
6878 (home-page "https://wiki.gnome.org/Projects/Tracker")
6879 (description
6880 "Tracker is an advanced framework for first class objects with associated
6881metadata and tags. It provides a one stop solution for all metadata, tags,
6882shared object databases, search tools and indexing.")
6883 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
6884 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
6885 (license (list license:gpl2+
6886 license:lgpl2.1+
6887 license:lgpl2.0+))))
6888
8b877545
RS
6889(define-public nautilus
6890 (package
6891 (name "nautilus")
d682c599 6892 (version "3.32.3")
8b877545
RS
6893 (source (origin
6894 (method url-fetch)
6895 (uri (string-append "mirror://gnome/sources/" name "/"
6896 (version-major+minor version) "/"
6897 name "-" version ".tar.xz"))
6898 (sha256
6899 (base32
d682c599 6900 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 6901 (build-system meson-build-system)
8b877545 6902 (arguments
35e2d0cf 6903 '(#:glib-or-gtk? #t
8b877545
RS
6904 ;; XXX: FAIL: check-nautilus
6905 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
6906 #:tests? #f))
6907 (native-inputs
35e2d0cf
R
6908 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6909 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6910 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
6911 ("gobject-introspection" ,gobject-introspection)
6912 ("intltool" ,intltool)
6913 ("pkg-config" ,pkg-config)))
8b877545 6914 (inputs
8b877545 6915 `(("dconf" ,dconf)
caf6c363 6916 ("gexiv2" ,gexiv2)
dd05e731 6917 ("gvfs" ,gvfs)
8b877545
RS
6918 ("exempi" ,exempi)
6919 ("gnome-desktop" ,gnome-desktop)
09d88905 6920 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 6921 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 6922 ("libseccomp" ,libseccomp)
35e2d0cf 6923 ("libselinux" ,libselinux)
09d88905 6924 ("tracker" ,tracker)
3cafb9d4 6925 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
6926 ;; XXX: gtk+ is required by libnautilus-extension.pc
6927 ;;
6928 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
6929 ;; package. See:
6930 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
6931 ("gtk+" ,gtk+)
8b877545
RS
6932 ("libexif" ,libexif)
6933 ("libxml2" ,libxml2)))
6934 (synopsis "File manager for GNOME")
6935 (home-page "https://wiki.gnome.org/Apps/Nautilus")
6936 (description
6937 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
6938design and behaviour, giving the user a simple way to navigate and manage its
6939files.")
6940 (license license:gpl2+)))
3c697ffd
JR
6941
6942(define-public baobab
6943 (package
6944 (name "baobab")
e0c5f20c 6945 (version "3.32.0")
3c697ffd
JR
6946 (source (origin
6947 (method url-fetch)
6948 (uri (string-append
6949 "mirror://gnome/sources/" name "/"
6950 (version-major+minor version) "/"
6951 name "-" version ".tar.xz"))
6952 (sha256
6953 (base32
e0c5f20c 6954 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
6955 (build-system meson-build-system)
6956 (arguments
6957 '(#:glib-or-gtk? #t))
3c697ffd
JR
6958 (native-inputs
6959 `(("intltool" ,intltool)
6960 ("pkg-config" ,pkg-config)
d233d373
RJ
6961 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6962 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
6963 ("itstool" ,itstool)
6964 ("xmllint" ,libxml2)
6965 ("glib" ,glib "bin")
6966 ("vala" ,vala)))
6967 (inputs
6968 `(("gtk+" ,gtk+)))
6969 (synopsis "Disk usage analyzer for GNOME")
6970 (description
6971 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
6972usage in the GNOME desktop environment. It can easily scan device volumes or
6973a specific user-requested directory branch (local or remote). Once the scan
6974is complete it provides a graphical representation of each selected folder.")
6975 (home-page "https://wiki.gnome.org/Apps/Baobab")
6976 (license license:gpl2+)))
dc050251 6977
fdba447c
RS
6978(define-public gnome-backgrounds
6979 (package
6980 (name "gnome-backgrounds")
e04e8a8c 6981 (version "3.32.0")
fdba447c
RS
6982 (source
6983 (origin
6984 (method url-fetch)
6985 (uri (string-append "mirror://gnome/sources/" name "/"
6986 (version-major+minor version) "/"
6987 name "-" version ".tar.xz"))
6988 (sha256
6989 (base32
e04e8a8c 6990 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 6991 (build-system meson-build-system)
fdba447c
RS
6992 (native-inputs
6993 `(("intltool" ,intltool)))
e04e8a8c 6994 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
6995 (synopsis "Background images for the GNOME desktop")
6996 (description
6997 "GNOME backgrounds package contains a collection of graphics files which
6998can be used as backgrounds in the GNOME Desktop environment. Additionally,
6999the package creates the proper framework and directory structure so that you
7000can add your own files to the collection.")
7001 (license (list license:gpl2+
7002 license:cc-by2.0
7003 license:cc-by-sa2.0
7004 license:cc-by-sa3.0))))
7005
b784b1a9
RS
7006(define-public gnome-screenshot
7007 (package
7008 (name "gnome-screenshot")
6acf4033 7009 (version "3.32.0")
b784b1a9
RS
7010 (source
7011 (origin
7012 (method url-fetch)
7013 (uri (string-append "mirror://gnome/sources/" name "/"
7014 (version-major+minor version) "/"
7015 name "-" version ".tar.xz"))
7016 (sha256
7017 (base32
6acf4033 7018 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7019 (build-system meson-build-system)
b784b1a9
RS
7020 (native-inputs
7021 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7022 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7023 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7024 ("intltool" ,intltool)
8356aefa 7025 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7026 ("pkg-config" ,pkg-config)))
7027 (inputs
7028 `(("gtk+" ,gtk+)
7029 ("libcanberra" ,libcanberra)
7030 ("libx11" ,libx11)
7031 ("libxext" ,libxext)))
676e7cb4 7032 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7033 (synopsis "Take pictures of your screen")
7034 (description
7035 "GNOME Screenshot is a utility used for taking screenshots of the entire
7036screen, a window or a user defined area of the screen, with optional
7037beautifying border effects.")
7038 (license license:gpl2+)))
7039
66d59111
RS
7040(define-public dconf-editor
7041 (package
7042 (name "dconf-editor")
66261451 7043 (version "3.32.0")
66d59111
RS
7044 (source
7045 (origin
7046 (method url-fetch)
7047 (uri (string-append "mirror://gnome/sources/" name "/"
7048 (version-major+minor version) "/"
7049 name "-" version ".tar.xz"))
7050 (sha256
7051 (base32
66261451 7052 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7053 (build-system meson-build-system)
86f2124b
LC
7054 (arguments
7055 '(#:phases (modify-phases %standard-phases
7056 (add-before 'configure 'set-glib-minimum-version
7057 (lambda _
7058 ;; Change the minimum required GLib version so that
7059 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7060 ;; do that, it complains that "55" is not an even
7061 ;; number. See <https://bugs.gnu.org/37503>.
7062 (substitute* "editor/meson.build"
7063 (("2\\.55\\.1") "2.60.0"))
7064 #t)))))
66d59111
RS
7065 (native-inputs
7066 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7067 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7068 ("intltool" ,intltool)
294ff39d
RW
7069 ("pkg-config" ,pkg-config)
7070 ("vala" ,vala)))
66d59111
RS
7071 (inputs
7072 `(("dconf" ,dconf)
7073 ("gtk+" ,gtk+)
7074 ("libxml2" ,libxml2)))
7075 (home-page "https://git.gnome.org/browse/dconf-editor")
7076 (synopsis "Graphical editor for GNOME's dconf configuration system")
7077 (description
7078 "Dconf-editor is a graphical tool for browsing and editing the dconf
7079configuration system for GNOME. It allows users to configure desktop
7080software that do not provide their own configuration interface.")
7081 (license license:lgpl2.1+)))
7082
96d36f38
AW
7083(define-public gnome-default-applications
7084 (package
7085 (name "gnome-default-applications")
7086 (version "0")
7087 (build-system trivial-build-system)
7088 (source #f)
7089 (propagated-inputs
8ad4f0aa
LC
7090 `(("nautilus" ,nautilus)
7091 ("evince" ,evince)))
96d36f38
AW
7092 (arguments
7093 `(#:modules ((guix build utils))
7094 #:builder
7095 (begin
7096 (use-modules (guix build utils))
7097 (let* ((out (assoc-ref %outputs "out"))
7098 (apps (string-append out "/share/applications")))
7099 (mkdir-p apps)
7100 (call-with-output-file (string-append apps "/defaults.list")
7101 (lambda (port)
7102 (format port "[Default Applications]\n")
8ad4f0aa
LC
7103 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7104 (format port "application/pdf=evince.desktop\n")
7105 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7106 #t))))
7107 (synopsis "Default MIME type associations for the GNOME desktop")
7108 (description
7109 "Given many installed packages which might handle a given MIME type, a
7110user running the GNOME desktop probably has some preferences: for example,
7111that folders be opened by default by the Nautilus file manager, not the Baobab
7112disk usage analyzer. This package establishes that set of default MIME type
7113associations for GNOME.")
7114 (license license:gpl3+)
7115 (home-page #f)))
7116
dc050251
SB
7117(define-public gnome
7118 (package
7119 (name "gnome")
7120 (version (package-version gnome-shell))
7121 (source #f)
7122 (build-system trivial-build-system)
e3cfef22 7123 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251
SB
7124 (propagated-inputs
7125 ;; TODO: Add more packages according to:
7126 ;; <https://packages.debian.org/jessie/gnome-core>.
7127 `(("adwaita-icon-theme" ,adwaita-icon-theme)
05f651c4 7128 ("baobab" ,baobab)
0bd3597b 7129 ("font-cantarell" ,font-cantarell)
a9dbefdc 7130 ("font-dejavu" ,font-dejavu)
dc050251
SB
7131 ("at-spi2-core" ,at-spi2-core)
7132 ("dbus" ,dbus)
7133 ("dconf" ,dconf)
72360453 7134 ("desktop-file-utils" ,desktop-file-utils)
dc050251
SB
7135 ("eog" ,eog)
7136 ("epiphany" ,epiphany)
7137 ("evince" ,evince)
71d9b980 7138 ("file-roller" ,file-roller)
dc050251
SB
7139 ("gedit" ,gedit)
7140 ("glib-networking" ,glib-networking)
05f651c4 7141 ("gnome-backgrounds" ,gnome-backgrounds)
63ad9b80
AW
7142 ("gnome-bluetooth" ,gnome-bluetooth)
7143 ("gnome-calculator" ,gnome-calculator)
43840c31 7144 ("gnome-contacts" ,gnome-contacts)
dc050251 7145 ("gnome-control-center" ,gnome-control-center)
63ad9b80 7146 ("gnome-disk-utility" ,gnome-disk-utility)
96d36f38 7147 ("gnome-default-applications" ,gnome-default-applications)
dc050251 7148 ("gnome-keyring" ,gnome-keyring)
63ad9b80 7149 ("gnome-online-accounts" ,gnome-online-accounts)
56987d78 7150 ("gnome-screenshot" ,gnome-screenshot)
dc050251
SB
7151 ("gnome-session" ,gnome-session)
7152 ("gnome-settings-daemon" ,gnome-settings-daemon)
7153 ("gnome-shell" ,gnome-shell)
63ad9b80 7154 ("gnome-system-monitor" ,gnome-system-monitor)
dc050251
SB
7155 ("gnome-terminal" ,gnome-terminal)
7156 ("gnome-themes-standard" ,gnome-themes-standard)
2999dcd5
AW
7157 ("gst-plugins-base" ,gst-plugins-base)
7158 ("gst-plugins-good" ,gst-plugins-good)
63ad9b80 7159 ("gucharmap" ,gucharmap)
05f651c4 7160 ("gvfs" ,gvfs)
dc050251
SB
7161 ("hicolor-icon-theme" ,hicolor-icon-theme)
7162 ("nautilus" ,nautilus)
69308043 7163 ("pinentry-gnome3" ,pinentry-gnome3)
dc050251
SB
7164 ("pulseaudio" ,pulseaudio)
7165 ("shared-mime-info" ,shared-mime-info)
f6f4370f 7166 ("system-config-printer" ,system-config-printer)
dc050251 7167 ("totem" ,totem)
c20cd0d2 7168 ("xdg-user-dirs" ,xdg-user-dirs)
dc050251
SB
7169 ("yelp" ,yelp)
7170 ("zenity" ,zenity)))
fe4e698d 7171 (synopsis "The GNU desktop environment")
dc050251
SB
7172 (home-page "https://www.gnome.org/")
7173 (description
fe4e698d
LC
7174 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7175applications for browsing the web, editing text and images, creating
7176documents and diagrams, playing media, scanning, and much more.")
dc050251 7177 (license license:gpl2+)))
4a526711
DT
7178
7179(define-public byzanz
7180 ;; The last stable release of Byzanz was in 2011, but there have been many
7181 ;; useful commits made to the Byzanz repository since then that it would be
7182 ;; silly to use such an old release.
7183 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7184 (package
7185 (name "byzanz")
7186 (version (string-append "0.2-1." (string-take commit 7)))
7187 (source (origin
7188 (method git-fetch)
7189 (uri (git-reference
5f13bf09 7190 (url "https://git.gnome.org/browse/byzanz")
4a526711 7191 (commit commit)))
5a6527e4 7192 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7193 (sha256
7194 (base32
7195 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7196 (build-system glib-or-gtk-build-system)
7197 (arguments
7198 '(#:phases
7199 (modify-phases %standard-phases
189be331 7200 (replace 'bootstrap
4a526711
DT
7201 (lambda _
7202 ;; The build system cleverly detects that we're not building from
7203 ;; a release tarball and turns on -Werror for GCC.
7204 ;; Unsurprisingly, there is a warning during compilation that
7205 ;; causes the build to fail unnecessarily, so we remove the flag.
7206 (substitute* '("configure.ac")
7207 (("-Werror") ""))
7208 ;; The autogen.sh script in gnome-common will run ./configure
7209 ;; by default, which is problematic because source shebangs
7210 ;; have not yet been patched.
7211 (setenv "NOCONFIGURE" "t")
7212 (zero? (system* "sh" "autogen.sh")))))))
7213 (native-inputs
7214 `(("autoconf" ,autoconf)
7215 ("automake" ,automake)
7216 ("gnome-common" ,gnome-common)
7217 ("intltool" ,intltool)
7218 ("libtool" ,libtool)
7219 ("pkg-config" ,pkg-config)
7220 ("which" ,which)))
7221 (inputs
7222 `(("glib" ,glib)
7223 ("gstreamer" ,gstreamer)
7224 ("gst-plugins-base" ,gst-plugins-base)
7225 ("gtk+" ,gtk+)))
7226 (synopsis "Desktop recording program")
7227 (description "Byzanz is a simple desktop recording program with a
7228command-line interface. It can record part or all of an X display for a
7229specified duration and save it as a GIF encoded animated image file.")
7230 (home-page "https://git.gnome.org/browse/byzanz")
7231 (license license:gpl2+))))
3a9a4c51 7232
0ec171ec
MS
7233(define-public gsound
7234 (package
7235 (name "gsound")
7236 (version "1.0.2")
7237 (source (origin
7238 (method url-fetch)
7239 (uri (string-append "mirror://gnome/sources/" name "/"
7240 (version-major+minor version) "/"
7241 name "-" version ".tar.xz"))
7242 (sha256
7243 (base32
7244 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7245 (build-system glib-or-gtk-build-system)
7246 (native-inputs
7247 `(("pkg-config" ,pkg-config)
7248 ("gobject-introspection" ,gobject-introspection)
7249 ("vala" ,vala)))
7250 (inputs
7251 `(("glib" ,glib)
7252 ("libcanberra" ,libcanberra)))
7253 (home-page "https://wiki.gnome.org/Projects/GSound")
7254 (synopsis "GObject wrapper for libcanberra")
7255 (description
7256 "GSound is a small library for playing system sounds. It's designed to be
7257used via GObject Introspection, and is a thin wrapper around the libcanberra C
7258library.")
7259 (license license:lgpl2.1+)))
7260
3a9a4c51
RS
7261(define-public libzapojit
7262 (package
7263 (name "libzapojit")
7264 (version "0.0.3")
7265 (source (origin
7266 (method url-fetch)
7267 (uri (string-append "mirror://gnome/sources/" name "/"
7268 (version-major+minor version) "/"
7269 name "-" version ".tar.xz"))
7270 (sha256
7271 (base32
7272 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7273 (build-system gnu-build-system)
7274 (native-inputs
7275 `(("gobject-introspection" ,gobject-introspection)
7276 ("intltool" ,intltool)
7277 ("pkg-config" ,pkg-config)))
7278 (inputs
14c297fd 7279 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
7280 ("json-glib" ,json-glib)
7281 ("rest" ,rest)))
7282 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7283 (synopsis "Library for accessing SkyDrive and Hotmail")
7284 (description
7285 "Libzapojit is a GLib-based library for accessing online service APIs of
7286Microsoft SkyDrive and Hotmail, using their REST protocols.")
7287 (license license:lgpl2.1+)))
9365ee1c 7288
60e2a9ae
MS
7289(define-public gnome-clocks
7290 (package
7291 (name "gnome-clocks")
c76d0dbc 7292 (version "3.32.0")
60e2a9ae
MS
7293 (source (origin
7294 (method url-fetch)
7295 (uri (string-append "mirror://gnome/sources/" name "/"
7296 (version-major+minor version) "/"
7297 name "-" version ".tar.xz"))
7298 (sha256
7299 (base32
c76d0dbc 7300 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
7301 (build-system meson-build-system)
7302 (arguments
7303 '(#:glib-or-gtk? #t))
7304 (native-inputs
7305 `(("vala" ,vala)
7306 ("pkg-config" ,pkg-config)
7307 ("glib" ,glib "bin") ; for glib-compile-resources
7308 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7309 ("desktop-file-utils" ,desktop-file-utils)
7310 ("gettext" ,gettext-minimal)
7311 ("itstool" ,itstool)))
7312 (inputs
7313 `(("glib" ,glib)
7314 ("gtk+" ,gtk+)
7315 ("gsound" ,gsound)
7316 ("geoclue" ,geoclue)
7317 ("geocode-glib" ,geocode-glib)
7318 ("libgweather" ,libgweather)
7319 ("gnome-desktop" ,gnome-desktop)))
7320 (home-page "https://wiki.gnome.org/Apps/Clocks")
7321 (synopsis "GNOME's clock application")
7322 (description
7323 "GNOME Clocks is a simple clocks application designed to fit the GNOME
7324desktop. It supports world clock, stop watch, alarms, and count down timer.")
7325 (license license:gpl3+)))
7326
3c474897
KY
7327(define-public gnome-calendar
7328 (package
7329 (name "gnome-calendar")
339b59bf 7330 (version "3.32.2")
3c474897
KY
7331 (source (origin
7332 (method url-fetch)
7333 (uri (string-append "mirror://gnome/sources/" name "/"
7334 (version-major+minor version) "/"
7335 name "-" version ".tar.xz"))
7336 (sha256
7337 (base32
339b59bf 7338 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
7339 (build-system meson-build-system)
7340 (arguments
7341 '(#:glib-or-gtk? #t
7342 ;; gnome-calendar has to be installed before the tests can be run
7343 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
7344 #:tests? #f))
3c474897 7345 (native-inputs
a49d3e37
MS
7346 `(("gettext" ,gettext-minimal)
7347 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
7348 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
7349 ("pkg-config" ,pkg-config)))
7350 (inputs
a49d3e37 7351 `(("evolution-data-server" ,evolution-data-server)
14c297fd 7352 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
7353 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7354 ("libdazzle" ,libdazzle)
b63c06f1 7355 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
7356 ("libgweather" ,libgweather)
7357 ("geoclue" ,geoclue)))
3c474897
KY
7358 (home-page "https://wiki.gnome.org/Apps/Calendar")
7359 (synopsis "GNOME's calendar application")
7360 (description
7361 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 7362desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
7363 (license license:gpl3+)))
7364
57b14665
MS
7365(define-public gnome-todo
7366 (package
7367 (name "gnome-todo")
9f3c6c88 7368 (version "3.28.1")
57b14665
MS
7369 (source (origin
7370 (method url-fetch)
7371 (uri (string-append "mirror://gnome/sources/" name "/"
7372 (version-major+minor version) "/"
7373 name "-" version ".tar.xz"))
7374 (sha256
7375 (base32
9f3c6c88 7376 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
7377 (build-system meson-build-system)
7378 (arguments
7379 '(#:glib-or-gtk? #t
7380 #:phases (modify-phases %standard-phases
7381 (add-after
7382 'install 'wrap-gnome-todo
7383 (lambda* (#:key inputs outputs #:allow-other-keys)
7384 (let ((out (assoc-ref outputs "out"))
7385 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7386 (python-path (getenv "PYTHONPATH")))
7387 (wrap-program (string-append out "/bin/gnome-todo")
7388 ;; XXX: gi plugins are broken.
7389 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
7390 ;; For plugins.
7391 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7392 `("PYTHONPATH" ":" prefix (,python-path))))
7393 #t)))))
7394 (native-inputs
7395 `(("gettext" ,gettext-minimal)
7396 ("gobject-introspection" ,gobject-introspection)
7397 ("glib:bin" ,glib "bin") ; For glib-compile-resources
7398 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7399 ("pkg-config" ,pkg-config)))
7400 (inputs
7401 `(("rest" ,rest) ; For Todoist plugin
7402 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 7403 ("libedataserverui" ,evolution-data-server)
57b14665
MS
7404 ("libical" ,libical)
7405 ("libpeas" ,libpeas)
7406 ("python-pygobject" ,python-pygobject)
7407 ("evolution-data-server" ,evolution-data-server)
14c297fd 7408 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
7409 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
7410 (home-page "https://wiki.gnome.org/Apps/Todo")
7411 (synopsis "GNOME's ToDo Application")
7412 (description
7413 "GNOME To Do is a simplistic personal task manager designed to perfectly
7414fit the GNOME desktop.")
7415 (license license:gpl3+)))
7416
ab179eaf
SB
7417(define-public gnome-dictionary
7418 (package
7419 (name "gnome-dictionary")
cf81ddef 7420 (version "3.26.1")
ab179eaf
SB
7421 (source (origin
7422 (method url-fetch)
7423 (uri (string-append "mirror://gnome/sources/" name "/"
7424 (version-major+minor version) "/"
7425 name "-" version ".tar.xz"))
7426 (sha256
7427 (base32
cf81ddef
LC
7428 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
7429 (build-system meson-build-system)
2776b5d5
MB
7430 (arguments '(#:glib-or-gtk? #t
7431 #:phases (modify-phases %standard-phases
7432 (add-after 'unpack 'patch-install-script
7433 (lambda _
7434 ;; This script attempts to compile glib schemas
7435 ;; and create an empty MIME database. We do
7436 ;; that elsewhere, so prevent it from running.
7437 (substitute* "build-aux/post-install.sh"
7438 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
7439 #t)))))
ab179eaf
SB
7440 (native-inputs
7441 `(("glib:bin" ,glib "bin")
7442 ("gobject-introspection" ,gobject-introspection)
7443 ("intltool" ,intltool)
7444 ("itstool" ,itstool)
7445 ("pkg-config" ,pkg-config)
7446 ("xmllint" ,libxml2)))
7447 (inputs
7448 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7449 ("gtk+" ,gtk+)))
7450 (home-page "https://wiki.gnome.org/Apps/Dictionary")
7451 (synopsis "Look up words in dictionary sources")
7452 (description
7453 "GNOME Dictionary can look for the definition or translation of a word in
7454existing databases over the internet.")
7455 (license license:gpl3+)))
7456
d13f3a03 7457(define-public gnome-tweaks
9365ee1c 7458 (package
d13f3a03 7459 (name "gnome-tweaks")
652af676 7460 (version "3.32.0")
9365ee1c
JN
7461 (source (origin
7462 (method url-fetch)
d13f3a03 7463 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 7464 (version-major+minor version) "/"
d13f3a03
RW
7465 "gnome-tweaks-" version ".tar.xz"))
7466 (patches
7467 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
7468 (sha256
7469 (base32
652af676 7470 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 7471 (build-system meson-build-system)
9365ee1c 7472 (arguments
d13f3a03
RW
7473 `(#:glib-or-gtk? #t
7474 #:configure-flags '("-Dlocalstatedir=/tmp"
7475 "-Dsysconfdir=/tmp")
9365ee1c 7476 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
7477 ,@%meson-build-system-modules)
7478 #:phases
7479 (modify-phases %standard-phases
7480 (add-after 'install 'wrap
7481 (@@ (guix build python-build-system) wrap))
7482 (add-after 'wrap 'wrap-gi-typelib
7483 (lambda* (#:key inputs outputs #:allow-other-keys)
7484 (let ((out (assoc-ref outputs "out"))
7485 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7486 (wrap-program (string-append out "/bin/gnome-tweaks")
7487 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7488 #t)))))
9365ee1c 7489 (native-inputs
c7fc414e
RH
7490 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7491 ("intltool" ,intltool)
9365ee1c
JN
7492 ("pkg-config" ,pkg-config)))
7493 (inputs
c7fc414e
RH
7494 `(("gnome-desktop" ,gnome-desktop)
7495 ("gtk+" ,gtk+)
9365ee1c
JN
7496 ("gobject-introspection" ,gobject-introspection)
7497 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
7498 ("libnotify" ,libnotify)
7499 ("libsoup" ,libsoup)
7500 ("nautilus" ,nautilus)
7501 ("python" ,python)
7502 ("python-pygobject" ,python-pygobject)))
9365ee1c 7503 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 7504 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 7505 (description
d13f3a03 7506 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
7507GNOME 3. This includes things like the fonts used in user interface elements,
7508alternative user interface themes, changes in window management behavior,
7509GNOME Shell appearance and extension, etc.")
7510 (license license:gpl3+)))
813f814a 7511
d13f3a03
RW
7512;; This package has been renamed by upstream.
7513(define-public gnome-tweak-tool
7514 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
7515
32ac717c
DT
7516(define-public gnome-shell-extensions
7517 (package
7518 (name "gnome-shell-extensions")
ae4c05e0 7519 (version "3.32.1")
32ac717c
DT
7520 (source (origin
7521 (method url-fetch)
7522 (uri (string-append "mirror://gnome/sources/" name "/"
7523 (version-major+minor version) "/"
7524 name "-" version ".tar.xz"))
7525 (sha256
7526 (base32
ae4c05e0 7527 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 7528 (build-system meson-build-system)
32ac717c 7529 (arguments
100f625b 7530 '(#:configure-flags '("-Dextension_set=all")))
32ac717c
DT
7531 (native-inputs
7532 `(("intltool" ,intltool)
7533 ("pkg-config" ,pkg-config)))
7534 (propagated-inputs
7535 `(("glib" ,glib)
7536 ("glib" ,glib "bin")))
7537 (synopsis "Extensions for GNOME Shell")
7538 (description "GNOME Shell extensions modify and extend GNOME Shell
7539functionality and behavior.")
7540 (home-page "https://extensions.gnome.org/")
7541 (license license:gpl3+)))
7542
813f814a
DT
7543(define-public arc-theme
7544 (package
7545 (name "arc-theme")
37781323 7546 (version "20190917")
813f814a 7547 (source (origin
a18f8eaf
BH
7548 (method git-fetch)
7549 (uri (git-reference
7550 (url "https://github.com/NicoHood/arc-theme.git")
7551 (commit version)))
7552 (file-name (git-file-name name version))
813f814a
DT
7553 (sha256
7554 (base32
37781323 7555 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 7556 (build-system gnu-build-system)
d88884fa
EF
7557 (arguments
7558 '(#:phases
7559 (modify-phases %standard-phases
7560 ;; autogen.sh calls configure at the end of the script.
7561 (replace 'bootstrap
7562 (lambda _ (invoke "autoreconf" "-vfi"))))))
813f814a
DT
7563 (native-inputs
7564 `(("autoconf" ,autoconf)
7565 ("automake" ,automake)
a18f8eaf
BH
7566 ("glib" ,glib "bin") ; for glib-compile-resources
7567 ("gnome-shell" ,gnome-shell)
7568 ("gtk+" ,gtk+)
7569 ("inkscape" ,inkscape)
7570 ("optipng" ,optipng)
7571 ("pkg-config" ,pkg-config)
7572 ("sassc" ,sassc)))
813f814a
DT
7573 (synopsis "A flat GTK+ theme with transparent elements")
7574 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
75752, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
7576like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
7577 (home-page "https://github.com/horst3180/arc-theme")
7578 ;; No "or later" language found.
a18f8eaf 7579 (license license:gpl3+)))
9987c57c 7580
d935e6a1 7581(define-public faba-icon-theme
9987c57c 7582 (package
d935e6a1 7583 (name "faba-icon-theme")
2eee7ee3 7584 (version "4.3")
d935e6a1
BT
7585 (source
7586 (origin
757e4027
TGR
7587 (method git-fetch)
7588 (uri (git-reference
7589 (url "https://github.com/snwh/faba-icon-theme.git")
7590 (commit (string-append "v" version))))
7591 (file-name (git-file-name name version))
d935e6a1 7592 (sha256
757e4027 7593 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 7594 (build-system meson-build-system)
9987c57c 7595 (arguments
82da291a 7596 `(#:phases
9987c57c 7597 (modify-phases %standard-phases
82da291a 7598 (add-before 'configure 'disable-post-install
9987c57c 7599 (lambda _
82da291a
JL
7600 (substitute* "meson.build"
7601 (("meson.add_install_script.*") "")))))))
9987c57c
DT
7602 (native-inputs
7603 `(("autoconf" ,autoconf)
7604 ("automake" ,automake)))
d935e6a1
BT
7605 (synopsis "Faba icon theme")
7606 (description
7607 "Faba is a minimal icon set used as a basis for other themes such as
7608Moka")
7609 (home-page "https://snwh.org/moka")
7610 (license (list license:lgpl3+
7611 license:cc-by-sa4.0))))
7612
9987c57c
DT
7613(define-public moka-icon-theme
7614 (package
8b0e4177 7615 (inherit faba-icon-theme)
9987c57c 7616 (name "moka-icon-theme")
105a3625 7617 (version "5.4.0")
8c3f2170
TGR
7618 (source
7619 (origin
7620 (method git-fetch)
7621 (uri (git-reference
7622 (url "https://github.com/snwh/moka-icon-theme.git")
7623 (commit (string-append "v" version))))
7624 (file-name (git-file-name name version))
7625 (sha256
7626 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
7627 (propagated-inputs
7628 ;; Moka is based on Faba by using it as a fallback icon set instead of
7629 ;; bundling it, so we need to add it as a propagated input.
7630 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
7631 (synopsis "Moka icon theme")
7632 (description "Moka is a stylized desktop icon set, designed to be clear,
7633simple and consistent.")
fedde43b
BT
7634 (license (list license:gpl3+
7635 license:cc-by-sa4.0))))
6fd8f8d6
DT
7636
7637(define-public arc-icon-theme
7638 (package
7639 (name "arc-icon-theme")
c4180240 7640 (version "20161122")
bbf66cbf
TGR
7641 (source
7642 (origin
7643 (method git-fetch)
7644 (uri (git-reference
7645 (url "https://github.com/horst3180/arc-icon-theme.git")
7646 (commit version)))
7647 (file-name (git-file-name name version))
7648 (sha256
7649 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 7650 (build-system gnu-build-system)
9e1ede95
JL
7651 (arguments
7652 `(#:phases
7653 (modify-phases %standard-phases
7654 (add-after 'unpack 'disable-configure-during-bootstrap
7655 (lambda _
7656 (substitute* "autogen.sh"
7657 (("^\"\\$srcdir/configure\".*") ""))
7658 #t)))))
6fd8f8d6
DT
7659 (native-inputs
7660 `(("autoconf" ,autoconf)
7661 ("automake" ,automake)))
7662 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
7663 (propagated-inputs
7664 `(("moka-icon-theme" ,moka-icon-theme)))
7665 (synopsis "Arc icon theme")
7666 (description "The Arc icon theme provides a set of icons matching the
7667style of the Arc GTK theme. Icons missing from the Arc theme are provided by
7668the Moka icon theme.")
7669 (home-page "https://github.com/horst3180/arc-icon-theme")
7670 (license license:gpl3+)))
6064a4e8
LF
7671
7672(define-public folks
7673 (package
7674 (name "folks")
d23495fa 7675 (version "0.11.4")
6064a4e8
LF
7676 (source (origin
7677 (method url-fetch)
7678 (uri (string-append
e5f4796e 7679 "mirror://gnome/sources/folks/"
6064a4e8 7680 (version-major+minor version) "/"
e5f4796e 7681 "folks-" version ".tar.xz"))
6064a4e8
LF
7682 (sha256
7683 (base32
d23495fa 7684 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
7685 (build-system glib-or-gtk-build-system)
7686 (inputs
7687 `(("bdb" ,bdb)
7688 ("dbus-glib" ,dbus-glib)
7689 ("evolution-data-server" ,evolution-data-server)
7690 ("glib" ,glib)
7691 ("libgee" ,libgee)
7692 ("telepathy-glib" ,telepathy-glib)))
7693 (native-inputs
7694 `(("gobject-introspection" ,gobject-introspection)
7695 ("intltool" ,intltool)
7696 ("pkg-config" ,pkg-config)
7697 ("vala" ,vala)))
7698 (synopsis "Library to aggregate data about people")
7699 (description "Libfolks is a library that aggregates information about people
7700from multiple sources (e.g., Telepathy connection managers for IM contacts,
7701Evolution Data Server for local contacts, libsocialweb for web service contacts,
7702etc.) to create metacontacts. It's written in Vala, which generates C code when
7703compiled.")
7704 (home-page "https://wiki.gnome.org/Projects/Folks")
7705 (license license:lgpl2.1+)))
01ea778f
LF
7706
7707(define-public gfbgraph
7708 (package
7709 (name "gfbgraph")
7710 (version "0.2.3")
7711 (source (origin
7712 (method url-fetch)
7713 (uri (string-append
237d4cf7 7714 "mirror://gnome/sources/gfbgraph/"
01ea778f 7715 (version-major+minor version) "/"
237d4cf7 7716 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
7717 (sha256
7718 (base32
7719 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
7720 (build-system glib-or-gtk-build-system)
7721 (arguments
7722 `(#:tests? #f ; Tests appear to require the network.
7723 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
7724 #:configure-flags '("--disable-gtk-doc"
7725 "--disable-static"
7726 "--enable-introspection")))
7727 (native-inputs
7728 `(("pkg-config" ,pkg-config)
7729 ("gobject-introspection" ,gobject-introspection)))
7730 (inputs
7731 `(("json-glib" ,json-glib)
14c297fd 7732 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
7733 ("rest" ,rest)))
7734 (synopsis "GLib/GObject wrapper for the Facebook API")
7735 (description "This library allows you to use the Facebook API from
7736GLib/GObject code.")
7737 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
7738 (license license:lgpl2.1+)))
3920868c 7739
7740(define-public libgnomekbd
7741 (package
7742 (name "libgnomekbd")
70f2b0f9 7743 (version "3.26.1")
3920868c 7744 (source (origin
7745 (method url-fetch)
d47fa82d 7746 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 7747 (version-major+minor version) "/"
d47fa82d 7748 "libgnomekbd-" version ".tar.xz"))
3920868c 7749 (sha256
7750 (base32
70f2b0f9 7751 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 7752 (build-system gnu-build-system)
7753 (native-inputs
7754 `(("pkg-config" ,pkg-config)
7755 ("glib" ,glib "bin")
7756 ("intltool" ,intltool)))
7757 (propagated-inputs
7758 ;; Referred to in .h files and .pc.
7759 `(("glib" ,glib)
7760 ("gtk+" ,gtk+)
7761 ("libxklavier" ,libxklavier)))
7762 (home-page "https://www.gnome.org")
7763 (synopsis "GNOME keyboard configuration library")
7764 (description
7765 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
7766environment, which can notably display keyboard layouts.")
7767 (license license:lgpl2.0+)))
85327d0d 7768
7769;;; This package is no longer maintained:
7770;;; https://wiki.gnome.org/Attic/LibUnique
7771;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
7772;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
7773(define-public libunique
7774 (package
7775 (name "libunique")
7776 (version "3.0.2")
7777 (source (origin
7778 (method url-fetch)
7779 (uri (string-append "mirror://gnome/sources/" name "/"
7780 (version-major+minor version) "/"
7781 name "-" version ".tar.xz"))
7782 (sha256
7783 (base32
7784 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
7785 (build-system glib-or-gtk-build-system)
7786 (arguments
7787 `(#:configure-flags '("--disable-static"
7788 "--disable-dbus" ; use gdbus
7789 "--enable-introspection")))
7790 (native-inputs
7791 `(("pkg-config" ,pkg-config)
7792 ("gobject-introspection" ,gobject-introspection)
7793 ("glib:bin" ,glib "bin")
7794 ("gtk-doc" ,gtk-doc)))
7795 (propagated-inputs
7796 ;; Referred to in .h files and .pc.
7797 `(("gtk+" ,gtk+)))
7798 (home-page "https://wiki.gnome.org/Attic/LibUnique")
7799 (synopsis "Library for writing single instance applications")
7800 (description
7801 "Libunique is a library for writing single instance applications. If you
7802launch a single instance application twice, the second instance will either just
7803quit or will send a message to the running instance. Libunique makes it easy to
7804write this kind of application, by providing a base class, taking care of all
7805the IPC machinery needed to send messages to a running instance, and also
7806handling the startup notification side.")
7807 (license license:lgpl2.1+)))
54021cd8
RS
7808
7809(define-public gnome-calculator
7810 (package
7811 (name "gnome-calculator")
07ace641 7812 (version "3.32.2")
54021cd8
RS
7813 (source
7814 (origin
7815 (method url-fetch)
7816 (uri (string-append "mirror://gnome/sources/" name "/"
7817 (version-major+minor version) "/"
7818 name "-" version ".tar.xz"))
7819 (sha256
7820 (base32
07ace641 7821 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
2d475910
RW
7822 (build-system meson-build-system)
7823 (arguments '(#:glib-or-gtk? #t))
54021cd8
RS
7824 (native-inputs
7825 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 7826 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8
RS
7827 ("intltool" ,intltool)
7828 ("itstool" ,itstool)
2d475910 7829 ("vala" ,vala)
54021cd8
RS
7830 ("pkg-config" ,pkg-config)))
7831 (inputs
112e9083 7832 `(("glib" ,glib)
07ace641 7833 ("gtksourceview" ,gtksourceview)
54021cd8 7834 ("libsoup" ,libsoup)
112e9083 7835 ("libxml2" ,libxml2)
2c2da7ec 7836 ("mpc" ,mpc)
54021cd8
RS
7837 ("mpfr" ,mpfr)))
7838 (home-page "https://wiki.gnome.org/Apps/Calculator")
7839 (synopsis "Desktop calculator")
7840 (description
7841 "Calculator is an application that solves mathematical equations and
7842is suitable as a default application in a Desktop environment.")
7843 (license license:gpl3)))
0bd69759
RS
7844
7845(define-public xpad
7846 (package
7847 (name "xpad")
c85626bb 7848 (version "5.1.0")
0bd69759
RS
7849 (source
7850 (origin
7851 (method url-fetch)
08fda9c6
R
7852 (uri (string-append "https://launchpad.net/xpad/trunk/"
7853 version "/+download/"
0bd69759
RS
7854 name "-" version ".tar.bz2"))
7855 (sha256
7856 (base32
c85626bb 7857 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
7858 (build-system gnu-build-system)
7859 (native-inputs
08fda9c6
R
7860 `(("autoconf" ,autoconf)
7861 ("automake" ,automake)
7862 ("gtk+:bin" ,gtk+ "bin")
7863 ("intltool" ,intltool)
0bd69759
RS
7864 ("pkg-config" ,pkg-config)))
7865 (inputs
c72647fb 7866 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
7867 ("libsm" ,libsm)))
7868 (home-page "https://wiki.gnome.org/Apps/Xpad")
7869 (synopsis "Virtual sticky note")
7870 (description
7871 "Xpad is a sticky note that strives to be simple, fault tolerant,
7872and customizable. Xpad consists of independent pad windows, each is
7873basically a text box in which notes can be written.")
7874 (license license:gpl3+)))
3ad7dce1
RS
7875
7876(define-public gucharmap
c60063ea
RW
7877 (let ((unicode-files
7878 '(("Blocks.txt"
1f8b5515 7879 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 7880 ("DerivedAge.txt"
1f8b5515 7881 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 7882 ("NamesList.txt"
1f8b5515 7883 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 7884 ("Scripts.txt"
1f8b5515 7885 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 7886 ("UnicodeData.txt"
1f8b5515 7887 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 7888 ("Unihan.zip"
1f8b5515 7889 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
7890 (package
7891 (name "gucharmap")
1f8b5515 7892 (version "12.0.1")
c60063ea
RW
7893 (source
7894 (origin
7895 (method url-fetch)
7896 (uri (string-append "mirror://gnome/sources/" name "/"
7897 (version-major+minor version) "/"
7898 name "-" version ".tar.xz"))
7899 (sha256
7900 (base32
1f8b5515 7901 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
7902 (build-system glib-or-gtk-build-system)
7903 (arguments
7904 `(#:modules ((ice-9 match)
7905 (guix build glib-or-gtk-build-system)
7906 (guix build utils))
7907 #:configure-flags
7908 (list "--with-unicode-data=../unicode-data")
7909 #:phases
7910 (modify-phases %standard-phases
7911 (add-after 'unpack 'prepare-unicode-data
7912 (lambda* (#:key inputs #:allow-other-keys)
7913 (mkdir-p "../unicode-data")
7914 (with-directory-excursion "../unicode-data"
7915 (for-each (match-lambda
7916 ((file _)
7917 (install-file (assoc-ref inputs file) ".")))
7918 ',unicode-files))
7919 #t)))))
7920 (native-inputs
7921 `(("desktop-file-utils" ,desktop-file-utils)
7922 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
7923 ("gobject-introspection" ,gobject-introspection)
7924 ("intltool" ,intltool)
7925 ("itstool" ,itstool)
7926 ("pkg-config" ,pkg-config)
7927 ,@(map (match-lambda
7928 ((file hash)
7929 `(,file
7930 ,(origin
7931 (method url-fetch)
7932 (uri (string-append
1f8b5515 7933 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
7934 file))
7935 (sha256 (base32 hash))))))
7936 unicode-files)
7937 ("unzip" ,unzip)))
7938 (inputs
7939 `(("gtk+" ,gtk+)
7940 ("xmllint" ,libxml2)))
7941 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
7942 (synopsis "Unicode character picker and font browser")
7943 (description
7944 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
7945characters and categories for the installed fonts, and to examine their
7946detailed properties. It is an easy way to find the character you might
7947only know by its Unicode name or code point.")
c60063ea 7948 (license license:gpl3+))))
04ce840a
RS
7949
7950(define-public bluefish
7951 (package
7952 (name "bluefish")
ea8afaf3 7953 (version "2.2.10")
04ce840a
RS
7954 (source
7955 (origin
7956 (method url-fetch)
7957 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
7958 name "-" version ".tar.gz"))
7959 (sha256
7960 (base32
ea8afaf3 7961 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
04ce840a
RS
7962 (build-system gnu-build-system)
7963 (native-inputs
7964 `(("desktop-file-utils" ,desktop-file-utils)
7965 ("intltool" ,intltool)
7966 ("pkg-config" ,pkg-config)))
7967 (inputs
7968 `(("enchant" ,enchant)
7969 ("gtk+" ,gtk+)
7970 ("python" ,python-2)
7971 ("xmllint" ,libxml2)
7972 ("gucharmap" ,gucharmap)))
7973 (home-page "http://bluefish.openoffice.nl")
7974 (synopsis "Web development studio")
7975 (description
7976 "Bluefish is an editor targeted towards programmers and web developers,
7977with many options to write web sites, scripts and other code.
7978Bluefish supports many programming and markup languages.")
7979 (license license:gpl3+)))
1f6a73ee
RS
7980
7981(define-public gnome-system-monitor
7982 (package
7983 (name "gnome-system-monitor")
083cffaf 7984 (version "3.32.1")
1f6a73ee
RS
7985 (source
7986 (origin
7987 (method url-fetch)
7988 (uri (string-append "mirror://gnome/sources/" name "/"
7989 (version-major+minor version) "/"
7990 name "-" version ".tar.xz"))
7991 (sha256
7992 (base32
083cffaf 7993 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
7994 (build-system meson-build-system)
7995 (arguments
7996 '(#:glib-or-gtk? #t
7997 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
7998 (native-inputs
7999 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8000 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8001 ("intltool" ,intltool)
8002 ("itstool" ,itstool)
8003 ("libgtop" ,libgtop)
4985d9aa 8004 ("polkit" ,polkit)
1f6a73ee
RS
8005 ("pkg-config" ,pkg-config)))
8006 (inputs
8007 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8008 ("gtk+" ,gtk+)
8009 ("gtkmm" ,gtkmm)
8010 ("librsvg" ,librsvg)
4985d9aa
RW
8011 ("libxml2" ,libxml2)
8012 ("libwnck" ,libwnck)))
1f6a73ee
RS
8013 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8014 (synopsis "Process viewer and system resource monitor for GNOME")
8015 (description
8016 "GNOME System Monitor is a GNOME process viewer and system monitor with
8017an attractive, easy-to-use interface. It has features, such as a tree view
8018for process dependencies, icons for processes, the ability to hide processes,
8019graphical time histories of CPU/memory/swap usage and the ability to
8020kill/reinice processes.")
8021 (license license:gpl2+)))
3e00ac47
SB
8022
8023(define-public python-pyatspi
8024 (package
8025 (name "python-pyatspi")
4f937a32 8026 (version "2.34.0")
3e00ac47
SB
8027 (source (origin
8028 (method url-fetch)
8029 (uri (string-append
8030 "mirror://gnome/sources/pyatspi/"
8031 (version-major+minor version)
8032 "/pyatspi-" version ".tar.xz"))
8033 (sha256
8034 (base32
4f937a32 8035 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8036 (build-system gnu-build-system)
b95af3f6
JL
8037 (arguments
8038 `(#:phases
8039 (modify-phases %standard-phases
8040 (add-before 'build 'fix-atk-load
8041 (lambda _
8042 (substitute* "pyatspi/__init__.py"
8043 (("from gi.repository import Atspi")
8044 "gi.require_version('Gtk', '3.0')
8045from gi.repository import Gtk
8046from gi.repository import Atspi"))
8047 #t)))))
3e00ac47
SB
8048 (native-inputs
8049 `(("pkg-config" ,pkg-config)))
8050 (inputs
8051 `(("python" ,python)
8052 ("python-pygobject" ,python-pygobject)))
8053 (synopsis "Python client bindings for D-Bus AT-SPI")
8054 (home-page "https://wiki.linuxfoundation.org/accessibility\
8055/atk/at-spi/at-spi_on_d-bus")
8056 (description
8057 "This package includes a python client library for the AT-SPI D-Bus
8058accessibility infrastructure.")
8059 (license license:lgpl2.0)
8060 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8061
8062(define-public orca
8063 (package
8064 (name "orca")
089e8585 8065 (version "3.32.0")
53201c0d
SB
8066 (source (origin
8067 (method url-fetch)
8068 (uri (string-append
8069 "mirror://gnome/sources/" name "/"
8070 (version-major+minor version) "/"
8071 name "-" version ".tar.xz"))
8072 (sha256
8073 (base32
089e8585 8074 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8075 (build-system glib-or-gtk-build-system)
8076 (arguments
8077 '(#:phases
8078 (modify-phases %standard-phases
8079 (add-before 'configure 'qualify-xkbcomp
8080 (lambda* (#:key inputs #:allow-other-keys)
8081 (let ((xkbcomp (string-append
8082 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8083 (substitute* "src/orca/orca.py"
8084 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8085 #t))
8086 (add-after 'install 'wrap-orca
8087 (lambda* (#:key outputs #:allow-other-keys)
8088 (let* ((out (assoc-ref outputs "out"))
8089 (prog (string-append out "/bin/orca")))
8090 (wrap-program prog
8091 `("GI_TYPELIB_PATH" ":" prefix
8092 (,(getenv "GI_TYPELIB_PATH")))
8093 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8094 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8095 `("PYTHONPATH" ":" prefix
8096 (,(getenv "PYTHONPATH")))))
8097 #t)))))
8098 (native-inputs
8099 `(("intltool" ,intltool)
8100 ("itstool" ,itstool)
8101 ("pkg-config" ,pkg-config)
8102 ("xmllint" ,libxml2)))
8103 (inputs
8104 `(("at-spi2-atk" ,at-spi2-atk)
8105 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8106 ("gstreamer" ,gstreamer)
8107 ("gst-plugins-base" ,gst-plugins-base)
8108 ("gst-plugins-good" ,gst-plugins-good)
8109 ("gtk+" ,gtk+)
8110 ("python" ,python)
8111 ("python-pygobject" ,python-pygobject)
8112 ("python-pyatspi" ,python-pyatspi)
8113 ("python-speechd" ,speech-dispatcher)
8114 ("xkbcomp" ,xkbcomp)))
8115 (synopsis
8116 "Screen reader for individuals who are blind or visually impaired")
8117 (home-page "https://wiki.gnome.org/Projects/Orca")
8118 (description
8119 "Orca is a screen reader that provides access to the graphical desktop
8120via speech and refreshable braille. Orca works with applications and toolkits
8121that support the Assistive Technology Service Provider Interface (AT-SPI).")
8122 (license license:lgpl2.1+)))
411ba511
LC
8123
8124(define-public gspell
8125 (package
8126 (name "gspell")
7a6bbe9b 8127 (version "1.8.2")
411ba511
LC
8128 (source (origin
8129 (method url-fetch)
8130 (uri (string-append "mirror://gnome/sources/" name "/"
8131 (version-major+minor version) "/"
8132 name "-" version ".tar.xz"))
8133 (sha256
8134 (base32
7a6bbe9b 8135 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8136 (patches (search-patches "gspell-dash-test.patch"))))
8137 (build-system glib-or-gtk-build-system)
8138 (arguments
8139 '(#:phases
8140 (modify-phases %standard-phases
8141 (add-before 'check 'pre-check
8142 (lambda* (#:key inputs #:allow-other-keys)
8143 ;; Tests require a running X server.
8144 (system "Xvfb :1 &")
8145 (setenv "DISPLAY" ":1")
8146
8147 ;; For the missing /etc/machine-id.
8148 (setenv "DBUS_FATAL_WARNINGS" "0")
8149
8150 ;; Allow Enchant and its Aspell backend to find the en_US
8151 ;; dictionary.
8152 (setenv "ASPELL_DICT_DIR"
8153 (string-append (assoc-ref inputs "aspell-dict-en")
8154 "/lib/aspell"))
8155 #t)))))
8156 (inputs
eccd35be 8157 `(("gtk+" ,gtk+)
a801ae4c
TGR
8158 ("glib" ,glib)
8159 ("iso-codes" ,iso-codes)))
411ba511
LC
8160 (native-inputs
8161 `(("glib" ,glib "bin")
8162 ("pkg-config" ,pkg-config)
8163 ("xmllint" ,libxml2)
8164
8165 ;; For tests.
a801ae4c 8166 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8167 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8168 (propagated-inputs
9b1bb757 8169 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8170 (home-page "https://wiki.gnome.org/Projects/gspell")
8171 (synopsis "GNOME's alternative spell checker")
8172 (description
8173 "gspell provides a flexible API to add spell-checking to a GTK+
8174application. It provides a GObject API, spell-checking to text entries and
8175text views, and buttons to choose the language.")
8176 (license license:gpl2+)))
d1d739fa
CM
8177
8178(define-public gnome-planner
8179 (package
8180 (name "gnome-planner")
8181 (version "0.14.6")
8182 (source (origin
8183 (method url-fetch)
8184 (uri (string-append "mirror://gnome/sources/planner/"
8185 (version-major+minor version) "/planner-"
8186 version ".tar.xz"))
8187 (sha256
8188 (base32
8189 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8190 (build-system glib-or-gtk-build-system)
8191 (arguments
8192 ;; Disable the Python bindings because the Planner program functions
8193 ;; without them, and (as of 2017-06-13) we have not packaged all of
8194 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8195 `(#:configure-flags
8196 (list "--disable-python"
8197 ,@(if (string=? "aarch64-linux" (%current-system))
8198 '("--build=aarch64-unknown-linux-gnu")
8199 '()))))
d1d739fa
CM
8200 (inputs
8201 `(("libgnomecanvas" ,libgnomecanvas)
8202 ("libgnomeui" ,libgnomeui)
8203 ("libglade" ,libglade)
8204 ("gnome-vfs" ,gnome-vfs)
8205 ("gconf" ,gconf)
8206 ("libxml2" ,libxml2)
8207 ("libxslt" ,libxslt)
8208 ("gtk+" ,gtk+)
8209 ("glib" ,glib)))
8210 (native-inputs
8211 `(("intltool" ,intltool)
8212 ("scrollkeeper" ,scrollkeeper)
8213 ("pkg-config" ,pkg-config)))
8214 (home-page "https://wiki.gnome.org/Apps/Planner")
8215 (synopsis "Project management software for the GNOME desktop")
8216 (description
8217 "GNOME Planner is a project management tool based on the Work Breakdown
8218Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8219the resources, tasks, and constraints that you define, Planner generates
8220various views into a project. For example, Planner can show a Gantt chart of
8221the project. It can show a detailed summary of tasks including their
8222duration, cost, and current progress. It can also show a report of resource
8223utilization that highlights under-utilized and over-utilized resources. These
8224views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8225 (license license:gpl2+)))
64fce637
RS
8226
8227(define-public lollypop
8228 (package
8229 (name "lollypop")
ca32627a 8230 (version "1.2.7")
64fce637
RS
8231 (source
8232 (origin
8233 (method url-fetch)
b98eace8 8234 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 8235 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 8236 "lollypop-" version ".tar.xz"))
64fce637 8237 (sha256
ca32627a 8238 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 8239 (build-system meson-build-system)
64fce637
RS
8240 (arguments
8241 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
8242 ,@%meson-build-system-modules)
8243 #:glib-or-gtk? #t
5fc9b6c1
EF
8244 #:tests? #f ; no test suite
8245 #:phases
8246 (modify-phases %standard-phases
5fc9b6c1
EF
8247 (add-after 'install 'wrap-program
8248 (lambda* (#:key outputs #:allow-other-keys)
8249 (let ((out (assoc-ref outputs "out"))
8250 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8251 (wrap-program (string-append out "/bin/lollypop")
8252 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8253 #t))
8ac8b3b3
TGR
8254 (add-after 'install 'wrap-python
8255 (@@ (guix build python-build-system) wrap))
8256 (add-after 'install 'wrap-glib-or-gtk
8257 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
8258 (native-inputs
8259 `(("intltool" ,intltool)
8260 ("itstool" ,itstool)
aa498fc0
TD
8261 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8262 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
8263 ("pkg-config" ,pkg-config)))
8264 (inputs
8265 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 8266 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 8267 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
8268 ("libnotify" ,libnotify)
8269 ("libsecret" ,libsecret)
8270 ("libsoup" ,libsoup)
8271 ("python" ,python)
8272 ("python-beautifulsoup4" ,python-beautifulsoup4)
8273 ("python-gst" ,python-gst)
d029afdd 8274 ("python-pil" ,python-pillow)
64fce637 8275 ("python-pycairo" ,python-pycairo)
7460f346 8276 ("python-pygobject" ,python-pygobject-3.34)
64fce637
RS
8277 ("python-pylast" ,python-pylast)
8278 ("totem-pl-parser" ,totem-pl-parser)
8279 ("webkitgtk" ,webkitgtk)))
8280 (propagated-inputs
8281 `(;; gst-plugins-base is required to start Lollypop,
8282 ;; the others are required to play streaming.
64fce637
RS
8283 ("gst-plugins-good" ,gst-plugins-good)
8284 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 8285 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
8286 (synopsis "GNOME music playing application")
8287 (description
8288 "Lollypop is a music player designed to play well with GNOME desktop.
8289Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
8290from artists and tracks from the web. It also fetches cover artworks
8291automatically and it can stream songs from online music services and charts.")
8292 (license license:gpl3+)))
d831d49d
AW
8293
8294(define-public gnome-video-effects
8295 (package
8296 (name "gnome-video-effects")
8297 (version "0.4.3")
8298 (source (origin
8299 (method url-fetch)
8300 (uri (string-append "mirror://gnome/sources/" name "/"
8301 (version-major+minor version) "/" name "-"
8302 version ".tar.xz"))
8303 (sha256
8304 (base32
8305 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
8306 (build-system glib-or-gtk-build-system)
8307 (arguments
8308 `(#:out-of-source? #f))
8309 (native-inputs
8310 `(("glib:bin" ,glib "bin")
8311 ("intltool" ,intltool)
8312 ("gettext" ,gettext-minimal)
8313 ("pkg-config" ,pkg-config)))
8314 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
8315 (synopsis "Video effects for Cheese and other GNOME applications")
8316 (description
8317 "A collection of GStreamer video filters and effects to be used in
8318photo-booth-like software, such as Cheese.")
8319 (license license:gpl2+)))
3511c780
AW
8320
8321(define-public cheese
8322 (package
8323 (name "cheese")
dd33b337 8324 (version "3.32.1")
3511c780
AW
8325 (source (origin
8326 (method url-fetch)
8327 (uri (string-append "mirror://gnome/sources/" name "/"
8328 (version-major+minor version) "/" name "-"
8329 version ".tar.xz"))
8330 (sha256
8331 (base32
dd33b337 8332 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
8333 (arguments
8334 ;; Tests require GDK.
8335 `(#:tests? #f
8336 #:phases
8337 (modify-phases %standard-phases
8338 (add-before 'install 'skip-gtk-update-icon-cache
8339 (lambda _
8340 ;; Don't create 'icon-theme.cache'
8341 (substitute* "Makefile"
8342 (("gtk-update-icon-cache") (which "true")))
8343 #t))
8344 (add-after 'install 'wrap-cheese
8345 (lambda* (#:key inputs outputs #:allow-other-keys)
8346 (let ((out (assoc-ref outputs "out"))
8347 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8348 (wrap-program (string-append out "/bin/cheese")
8349 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8350 #t)))))
8351 (build-system glib-or-gtk-build-system)
8352 (native-inputs
8353 `(("glib:bin" ,glib "bin")
8354 ("intltool" ,intltool)
8355 ("itstool" ,itstool)
8356 ("libxml2" ,libxml2)
8357 ("pkg-config" ,pkg-config)
8358 ("vala" ,vala)))
8359 (propagated-inputs
6a19f03e
RW
8360 `(("gnome-video-effects" ,gnome-video-effects)
8361 ("clutter" ,clutter)
3511c780
AW
8362 ("clutter-gst" ,clutter-gst)
8363 ("clutter-gtk" ,clutter-gtk)
6a19f03e 8364 ("libcanberra" ,libcanberra)
3511c780
AW
8365 ("gdk-pixbuf" ,gdk-pixbuf)
8366 ("glib" ,glib)
6a19f03e
RW
8367 ("gstreamer" ,gstreamer)))
8368 (inputs
8369 `(("gnome-desktop" ,gnome-desktop)
3511c780 8370 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
8371 ("gst-plugins-base" ,gst-plugins-base)
8372 ("gst-plugins-bad" ,gst-plugins-bad)
8373 ("gtk+" ,gtk+)
3511c780
AW
8374 ("libx11" ,libx11)
8375 ("libxtst" ,libxtst)))
8376 (home-page "https://wiki.gnome.org/Apps/Cheese")
8377 (synopsis "Webcam photo booth software for GNOME")
8378 (description
8379 "Cheese uses your webcam to take photos and videos. Cheese can also
8380apply fancy special effects and lets you share the fun with others.")
8381 (license license:gpl2+)))
3c5dbd2b 8382
8383(define-public sound-juicer
8384 (package
8385 (name "sound-juicer")
8386 (version "3.24.0")
8387 (source
8388 (origin
8389 (method url-fetch)
8390 (uri (string-append "mirror://gnome/sources/" name "/"
8391 (version-major+minor version) "/"
8392 name "-" version ".tar.xz"))
8393 (sha256
8394 (base32
8395 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
8396 (build-system glib-or-gtk-build-system)
8397 (native-inputs
8398 `(("desktop-file-utils" ,desktop-file-utils)
8399 ("intltool" ,intltool)
8400 ("itstool" ,itstool)
8401 ("pkg-config" ,pkg-config)
8402 ("xmllint" ,libxml2)))
8403 (inputs
8404 `(("gtk+" ,gtk+)
8405 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8406 ("gstreamer" ,gstreamer)
8407 ("gst-plugins-base" ,gst-plugins-base)
8408 ("gst-plugins-good" ,gst-plugins-good)
8409 ("iso-codes" ,iso-codes)
8410 ("libbrasero-media3" ,brasero)
8411 ("libcanberra" ,libcanberra)
8412 ("libdiscid" ,libdiscid)
8413 ("libmusicbrainz" ,libmusicbrainz)
8414 ("neon" ,neon)))
8415 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
8416 (synopsis "Audio music cd ripper")
8417 (description "Sound Juicer extracts audio from compact discs and convert it
8418into audio files that a personal computer or digital audio player can play.
8419It supports ripping to any audio codec supported by a GStreamer plugin, such as
8420mp3, Ogg Vorbis and FLAC")
8421 (license license:gpl2+)))
4e3fdeb7 8422
0d3f1708
CB
8423(define-public soundconverter
8424 (package
8425 (name "soundconverter")
fa75a213 8426 (version "3.0.1")
0d3f1708
CB
8427 (source
8428 (origin
8429 (method url-fetch)
8430 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
8431 version "/+download/"
8432 "soundconverter-" version ".tar.xz"))
8433
8434 (sha256
fa75a213 8435 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
8436 (patches
8437 (search-patches
8438 "soundconverter-remove-gconf-dependency.patch"))))
8439 (build-system glib-or-gtk-build-system)
8440 (arguments
8441 `(#:imported-modules ((guix build python-build-system)
8442 (guix build glib-or-gtk-build-system)
8443 ,@%gnu-build-system-modules)
8444
8445 #:modules ((guix build glib-or-gtk-build-system)
8446 (guix build utils)
8447 ((guix build gnu-build-system) #:prefix gnu:)
8448 ((guix build python-build-system) #:prefix python:))
8449
8450 #:phases
8451 (modify-phases %standard-phases
0d3f1708
CB
8452 (add-after 'install 'wrap-soundconverter-for-python
8453 (assoc-ref python:%standard-phases 'wrap))
8454 (add-after 'install 'wrap-soundconverter
8455 (lambda* (#:key inputs outputs #:allow-other-keys)
8456 (let ((out (assoc-ref outputs "out"))
8457 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8458 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8459 (wrap-program (string-append out "/bin/soundconverter")
8460 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8461 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8462 #t)))))
8463 (native-inputs
8464 `(("intltool" ,intltool)
8465 ("pkg-config" ,pkg-config)
8466 ("glib:bin" ,glib "bin")))
8467 (inputs
8468 `(("gtk+" ,gtk+)
8469 ("python" ,python)
8470 ("python-pygobject" ,python-pygobject)
8471 ("gstreamer" ,gstreamer)
8472 ("gst-plugins-base" ,gst-plugins-base)))
8473 (home-page "http://soundconverter.org/")
8474 (synopsis "Convert between audio formats with a graphical interface")
8475 (description
8476 "SoundConverter supports converting between many audio formats including
8477Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
8478configurable file renaming. ")
8479 (license license:gpl3)))
8480
4e3fdeb7 8481(define-public workrave
89f2d736
TGR
8482 (package
8483 (name "workrave")
aa51d92c 8484 (version "1.10.34")
89f2d736
TGR
8485 (source
8486 (origin
8487 (method git-fetch)
8488 (uri (git-reference
8489 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
8490 (commit (string-append "v" (string-map
8491 (match-lambda (#\. #\_) (chr chr))
8492 version)))))
89f2d736
TGR
8493 (file-name (git-file-name name version))
8494 (sha256
aa51d92c 8495 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
89f2d736 8496 (build-system glib-or-gtk-build-system)
d1c96847
MC
8497 (inputs `(("glib" ,glib)
8498 ("gtk+" ,gtk+)
8499 ("gdk-pixbuf" ,gdk-pixbuf)
8500 ("gtkmm" ,gtkmm)
8501 ("glibmm" ,glibmm)
8502 ("libx11" ,libx11)
8503 ("libxtst" ,libxtst)
8504 ("dconf" ,dconf)
8505 ("libice" ,libice)
8506 ("libsm" ,libsm)
8507 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 8508 (native-inputs `(("boost" ,boost)
89f2d736
TGR
8509 ("pkg-config" ,pkg-config)
8510 ("gettext" ,gnu-gettext)
8511 ("autoconf" ,autoconf)
8512 ("autoconf-archive" , autoconf-archive)
8513 ("automake" ,automake)
8514 ("libtool" ,libtool)
8515 ("intltool" ,intltool)
89f2d736 8516 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
8517 ("python3" ,python-3)
8518 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
8519 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
8520 (description
8521 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
8522repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
8523micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
8524 (home-page "http://www.workrave.org")
8525 (license license:gpl3+)))
312afa7d
LC
8526
8527(define-public ghex
8528 (package
8529 (name "ghex")
3748992a 8530 (version "3.18.4")
312afa7d
LC
8531 (source (origin
8532 (method url-fetch)
2fbab848 8533 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 8534 (version-major+minor version) "/"
2fbab848 8535 "ghex-" version ".tar.xz"))
312afa7d
LC
8536 (sha256
8537 (base32
3748992a
KK
8538 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
8539 (build-system meson-build-system)
8540 (arguments
8541 '(#:glib-or-gtk? #t
8542 #:phases
8543 (modify-phases %standard-phases
8544 (add-after 'unpack 'skip-gtk-update-icon-cache
8545 ;; Don't create 'icon-theme.cache'.
8546 (lambda _
8547 (substitute* "meson_post_install.py"
8548 (("gtk-update-icon-cache") (which "true")))
8549 #t)))))
312afa7d
LC
8550 (native-inputs
8551 `(("pkg-config" ,pkg-config)
3748992a 8552 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
8553 ("gnome-common" ,gnome-common)
8554 ("which" ,which)
8555 ("intltool" ,intltool)
8556 ("yelp-tools" ,yelp-tools)
2fbab848 8557 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
8558 (inputs
8559 `(("atk" ,atk)
8560 ("gtk" ,gtk+)))
8561 (synopsis "GNOME hexadecimal editor")
8562 (description "The GHex program can view and edit files in two ways:
8563hexadecimal or ASCII. It is useful for editing binary files in general.")
8564 (home-page "https://wiki.gnome.org/Apps/Ghex")
8565 (license license:gpl2)))
4b2ed6c2
RW
8566
8567(define-public libdazzle
8568 (package
8569 (name "libdazzle")
64fa66ba 8570 (version "3.33.90")
4b2ed6c2
RW
8571 (source (origin
8572 (method url-fetch)
687b4909 8573 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 8574 (version-major+minor version) "/"
687b4909 8575 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
8576 (sha256
8577 (base32
64fa66ba 8578 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
8579 (build-system meson-build-system)
8580 (arguments
8581 `(#:phases
8582 (modify-phases %standard-phases
4b2ed6c2
RW
8583 (add-before 'check 'pre-check
8584 (lambda _
8585 ;; Tests require a running X server.
8586 (system "Xvfb :1 &")
8587 (setenv "DISPLAY" ":1")
8588 #t)))))
8589 (native-inputs
687b4909 8590 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 8591 ("pkg-config" ,pkg-config)
687b4909 8592 ;; For tests.
ff337525 8593 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
8594 (inputs
8595 `(("glib" ,glib)
8596 ("gobject-introspection" ,gobject-introspection)
8597 ("gtk+" ,gtk+)
8598 ("vala" ,vala)))
8599 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
8600 (synopsis "Companion library to GObject and Gtk+")
8601 (description "The libdazzle library is a companion library to GObject and
8602Gtk+. It provides various features that the authors wish were in the
8603underlying library but cannot for various reasons. In most cases, they are
8604wildly out of scope for those libraries. In other cases, they are not quite
8605generic enough to work for everyone.")
8606 (license license:gpl3+)))
7d3bb433
RW
8607
8608(define-public evolution
8609 (package
8610 (name "evolution")
06141f83 8611 (version "3.32.4")
7d3bb433
RW
8612 (source (origin
8613 (method url-fetch)
8614 (uri (string-append "mirror://gnome/sources/evolution/"
8615 (version-major+minor version) "/"
8616 "evolution-" version ".tar.xz"))
8617 (sha256
8618 (base32
06141f83 8619 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
8620 (build-system cmake-build-system)
8621 (arguments
5229bea1
KK
8622 `(#:imported-modules (,@%cmake-build-system-modules
8623 (guix build glib-or-gtk-build-system))
8624 #:modules ((guix build cmake-build-system)
8625 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8626 (guix build utils))
8627 #:configure-flags
7d3bb433 8628 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 8629 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 8630 ; in four years and cannot be built.
5229bea1
KK
8631 #:phases
8632 (modify-phases %standard-phases
8633 ;; The build system attempts to install user interface modules to the
8634 ;; output directory of the "evolution-data-server" package. This
8635 ;; change redirects that change.
8636 (add-after 'unpack 'patch-ui-module-dir
8637 (lambda* (#:key outputs #:allow-other-keys)
8638 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
8639 (("\\$\\{edsuimoduledir\\}")
8640 (string-append (assoc-ref outputs "out")
8641 "/lib/evolution-data-server/ui-modules")))
8642 #t))
8643 (add-after 'install 'glib-or-gtk-compile-schemas
8644 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
8645 (add-after 'install 'glib-or-gtk-wrap
8646 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 8647 (native-inputs
ad6e168b 8648 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
8649 ("pkg-config" ,pkg-config)
8650 ("intltool" ,intltool)
8651 ("itstool" ,itstool)))
8652 (inputs
8653 `(("enchant" ,enchant)
8654 ("evolution-data-server" ,evolution-data-server) ; must be the same version
8655 ("gcr" ,gcr)
ad6e168b 8656 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
8657 ("gnome-autoar" ,gnome-autoar)
8658 ("gnome-desktop" ,gnome-desktop)
8659 ("gtkspell3" ,gtkspell3)
8660 ("highlight" ,highlight)
8661 ("libcanberra" ,libcanberra)
b63c06f1 8662 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
8663 ("libgweather" ,libgweather)
8664 ("libnotify" ,libnotify)
8665 ("libsoup" ,libsoup)
8666 ("nss" ,nss)
8667 ("openldap" ,openldap)
8668 ("webkitgtk" ,webkitgtk)
8669 ("ytnef" ,ytnef)))
8670 (home-page "https://gitlab.gnome.org/GNOME/evolution")
8671 (synopsis "Manage your email, contacts and schedule")
8672 (description "Evolution is a personal information management application
8673that provides integrated mail, calendaring and address book
8674functionality.")
8675 ;; See COPYING for details.
23dbe621 8676 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 8677 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 8678 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
8679
8680(define-public gthumb
8681 (package
8682 (name "gthumb")
8280676b 8683 (version "3.8.2")
169d63f5
AT
8684 (source (origin
8685 (method url-fetch)
8686 (uri (string-append "mirror://gnome/sources/gthumb/"
8687 (version-major+minor version) "/"
8688 "gthumb-" version ".tar.xz"))
8689 (sha256
8690 (base32
8280676b 8691 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
8692 (build-system meson-build-system)
8693 (arguments
8694 `(#:glib-or-gtk? #t
8695 #:configure-flags
8696 ;; Ensure the RUNPATH contains all installed library locations.
8697 (list (string-append "-Dc_link_args=-Wl,-rpath="
8698 (assoc-ref %outputs "out")
8699 "/lib/gthumb/extensions")
8700 (string-append "-Dcpp_link_args=-Wl,-rpath="
8701 (assoc-ref %outputs "out")
8702 "/lib/gthumb/extensions"))))
8703 (native-inputs
8704 `(("pkg-config" ,pkg-config)
8705 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8706 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8707 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8708 ("intltool" ,intltool)
8709 ("itstool" ,itstool)))
8710 (inputs
8711 `(("exiv2" ,exiv2)
8712 ("gtk" ,gtk+)
8713 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8714 ("gstreamer" ,gstreamer)
8715 ("clutter" ,clutter)
8716 ("clutter-gst" ,clutter-gst)
8717 ("clutter-gtk" ,clutter-gtk)
8718 ("libjpeg" ,libjpeg)
8719 ("libtiff" ,libtiff)
8720 ("libraw" ,libraw)))
8721 (home-page "https://wiki.gnome.org/Apps/Gthumb")
8722 (synopsis "GNOME image viewer and browser")
8723 (description "GThumb is an image viewer, browser, organizer, editor and
8724advanced image management tool")
8725 (license license:gpl2+)))
08be02be
AT
8726
8727(define-public terminator
8728 (package
8729 (name "terminator")
8730 (version "1.91")
8731 (source (origin
8732 (method url-fetch)
8733 (uri (string-append "https://launchpad.net/" name "/"
8734 "gtk3/" version "/" "+download/"
8735 name "-" version ".tar.gz"))
8736 (sha256
8737 (base32
8738 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
8739 (build-system python-build-system)
8740 (native-inputs
8741 `(("intltool" ,intltool)
8742 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8743 ("gettext" ,gettext-minimal)
8744 ("pkg-config" ,pkg-config)))
8745 (inputs
8746 `(("cairo" ,cairo)
8747 ("gobject-introspection" ,gobject-introspection)
96681d4b 8748 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
8749 ("python2-pycairo" ,python2-pycairo)
8750 ("python2-pygobject" ,python2-pygobject)
8751 ("python2-psutil" ,python2-psutil)
8752 ("vte" ,vte)))
8753 (arguments
96681d4b
TGR
8754 `(#:python ,python-2 ; Python 3 isn't supported
8755 #:imported-modules ((guix build glib-or-gtk-build-system)
8756 ,@%python-build-system-modules)
8757 #:modules ((guix build python-build-system)
8758 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8759 (guix build utils))
08be02be
AT
8760 #:phases
8761 (modify-phases %standard-phases
8762 (add-after
8763 'install 'wrap-program
8764 (lambda* (#:key outputs #:allow-other-keys)
8765 (let ((prog (string-append (assoc-ref outputs "out")
8766 "/bin/terminator")))
8767 (wrap-program prog
8768 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
8769 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
8770 #t)))
8771 (add-after 'wrap-program 'glib-or-gtk-wrap
8772 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
8773 (home-page "https://gnometerminator.blogspot.com/")
8774 (synopsis "Store and run multiple GNOME terminals in one window")
8775 (description
8776 "Terminator allows you to run multiple GNOME terminals in a grid and
8777+tabs, and it supports drag and drop re-ordering of terminals.")
8778 (license license:gpl2)))
213315d4
JF
8779
8780(define-public libhandy
8781 (package
8782 (name "libhandy")
d41ee146 8783 (version "0.0.11")
213315d4
JF
8784 (source
8785 (origin
8786 (method git-fetch)
8787 (uri (git-reference
8788 (url "https://source.puri.sm/Librem5/libhandy")
8789 (commit (string-append "v" version))))
8790 (file-name (git-file-name name version))
8791 (sha256
d41ee146 8792 (base32 "0622zp5wrvn5bvgardijxd11y76g1i54fs32y03dw9nrar7i6vb0"))))
213315d4
JF
8793 (build-system meson-build-system)
8794 (arguments
8795 `(#:configure-flags
8796 '("-Dglade_catalog=disabled"
8797 "-Dgtk_doc=true")
8798 #:phases
8799 (modify-phases %standard-phases
213315d4
JF
8800 (add-before 'check 'pre-check
8801 (lambda _
8802 ;; Tests require a running X server.
8803 (system "Xvfb :1 &")
8804 (setenv "DISPLAY" ":1")
8805 #t)))))
8806 (inputs
8807 `(("gtk+" ,gtk+)))
8808 (native-inputs
8809 `(("glib:bin" ,glib "bin")
8810 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
8811 ("vala" ,vala)
8812 ("gtk-doc" ,gtk-doc)
8813 ("pkg-config" ,pkg-config)
8814 ("gettext" ,gettext-minimal)
d41ee146
TGR
8815
8816 ;; Test suite dependencies.
ff337525 8817 ("xorg-server" ,xorg-server-for-tests)
d41ee146 8818 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
8819 (home-page "https://source.puri.sm/Librem5/libhandy")
8820 (synopsis "Library full of GTK+ widgets for mobile phones")
8821 (description "The aim of the handy library is to help with developing user
8822intefaces for mobile devices using GTK+.")
8823 (license license:lgpl2.1+)))
a830d14d
GL
8824
8825(define-public libgit2-glib
8826 (package
8827 (name "libgit2-glib")
8828 (version "0.28.0.1")
8829 (source (origin
8830 (method url-fetch)
8831 (uri (string-append "mirror://gnome/sources/" name "/"
8832 (version-major+minor version) "/"
8833 name "-" version ".tar.xz"))
8834 (sha256
8835 (base32
8836 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
8837 (build-system meson-build-system)
8838 (native-inputs
8839 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
8840 ("gobject-introspection" ,gobject-introspection)
8841 ("intltool" ,intltool)
8842 ("libssh2" ,libssh2)
8843 ("pkg-config" ,pkg-config)
8844 ("python-pygobject" ,python-pygobject)
8845 ("python-wrapper" ,python-wrapper)
8846 ("vala" ,vala)))
8847 (inputs
8848 `(("glib" ,glib)
8849 ("libgit2" ,libgit2)))
8850 (synopsis "GLib wrapper around the libgit2 Git access library")
8851 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
8852access library. It only implements the core plumbing functions, not really the
8853higher level porcelain stuff.")
8854 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
8855 (license license:gpl2+)))
93beace0 8856
08db81c9
LP
8857(define-public gitg
8858 (package
8859 (name "gitg")
8860 (version "3.32.1")
8861 (source (origin
8862 (method url-fetch)
8863 (uri (string-append "mirror://gnome/sources/" name "/"
8864 (version-major+minor version) "/"
8865 name "-" version ".tar.xz"))
8866 (sha256
8867 (base32
8868 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
8869 (build-system meson-build-system)
8870 (arguments
8871 `(#:glib-or-gtk? #t
8872 #:phases
8873 (modify-phases %standard-phases
8874 (add-after 'unpack 'disable-post-install-partially
8875 (lambda _
8876 (substitute* "meson_post_install.py"
8877 (("'python'") ; there are no python sources to compile
8878 (string-append "'" (which "true") "'"))
8879 (("gtk-update-icon-cache") (which "true")))
8880 #t))
8881 (add-after 'unpack 'fix-test-sources
8882 (lambda _
8883 (substitute* "tests/libgitg/test-commit.vala"
8884 (("/bin/bash") (which "bash")))
8885 #t))
8886 (add-after 'glib-or-gtk-wrap 'wrap-typelib
8887 (lambda* (#:key outputs #:allow-other-keys)
8888 (let ((prog (string-append (assoc-ref outputs "out")
8889 "/bin/gitg")))
8890 (wrap-program prog
8891 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
8892 #t))))))
8893 (inputs
8894 `(("glib" ,glib)
8895 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8896 ("gtk+" ,gtk+)
8897 ("gtkspell3" ,gtkspell3)
8898 ("gtksourceview" ,gtksourceview-3)
8899 ("json-glib" ,json-glib)
8900 ("libdazzle" ,libdazzle)
8901 ("libgee" ,libgee)
8902 ("libgit2" ,libgit2) ; propagated by libgit2-glib
8903 ("libgit2-glib" ,libgit2-glib)
8904 ("libpeas" ,libpeas)
8905 ("libsecret" ,libsecret)
8906 ("libsoup" ,libsoup)
8907 ("libxml2" ,libxml2)))
8908 (native-inputs
8909 `(("glib:bin" ,glib "bin")
8910 ("gtk+:bin" ,gtk+ "bin")
8911 ("gobject-introspection" ,gobject-introspection)
8912 ("intltool" ,intltool)
8913 ("pkg-config" ,pkg-config)
8914 ("vala" ,vala)))
8915 (synopsis "Graphical user interface for git")
8916 (description
8917 "gitg is a graphical user interface for git. It aims at being a small,
8918fast and convenient tool to visualize the history of git repositories.
8919Besides visualization, gitg also provides several utilities to manage your
8920repository and commit your work.")
8921 (home-page "https://wiki.gnome.org/Apps/Gitg")
8922 (license license:gpl2+)))
8923
93beace0
DW
8924(define-public gnome-mahjongg
8925 (package
8926 (name "gnome-mahjongg")
8927 (version "3.35.1")
8928 (source (origin
8929 (method git-fetch)
8930 (uri (git-reference
8931 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
8932 (commit version)))
8933 (file-name (git-file-name name version))
8934 (sha256
8935 (base32
8936 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
8937 (build-system meson-build-system)
8938 (arguments
8939 `(#:glib-or-gtk? #t))
8940 (native-inputs
8941 `(("appstream-glib" ,appstream-glib)
8942 ("gettext" ,gettext-minimal)
8943 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
8944 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
8945 ("itstool" ,itstool)
8946 ("pkg-config" ,pkg-config)
8947 ("vala" ,vala)))
8948 (propagated-inputs
8949 `(("dconf" ,dconf)))
8950 (inputs
8951 `(("glib" ,glib)
8952 ("gtk+" ,gtk+)
8953 ("librsvg" ,librsvg)))
8954 (synopsis "Mahjongg tile-matching game")
8955 (description "GNOME Mahjongg is a game based on the classic Chinese
8956tile-matching game Mahjong. It features multiple board layouts, tile themes,
8957and a high score table.")
8958 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
8959 (license license:gpl2+)))