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