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