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