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