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