services: Add ‘/usr/bin/env’ special file.
[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")
5f39050b 2540 (version "5.4")
6f96a359 2541 (source (origin
5f39050b 2542 ;; Note: There's no tarball at ftp.gnome.org for this version.
2543 (method git-fetch)
2544 (uri (git-reference
2545 (url "https://anongit.freedesktop.org/git/libxklavier")
2546 (commit (string-append "libxklavier-" version))))
6f96a359
SB
2547 (sha256
2548 (base32
5f39050b 2549 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
2550 (file-name (git-file-name name version))))
6f96a359
SB
2551 (build-system gnu-build-system)
2552 (arguments
5f39050b 2553 '(#:phases
2554 (modify-phases %standard-phases
2555 (add-after 'unpack 'no-configure
2556 (lambda* _
2557 (setenv "NOCONFIGURE" "1")
2558 #t)))
2559 #:configure-flags
6f96a359
SB
2560 (list (string-append "--with-xkb-base="
2561 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 2562 "/share/X11/xkb")
2563 "--disable-xmodmap-support")))
6f96a359
SB
2564 (native-inputs
2565 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
2566 ("gobject-introspection" ,gobject-introspection)
5f39050b 2567 ("pkg-config" ,pkg-config)
2568 ("gtk-doc" ,gtk-doc)
2569 ("intltool" ,intltool)
2570 ("which" ,which)
2571 ("autoconf" ,autoconf)
2572 ("automake" ,automake)
2573 ("libtool" ,libtool)))
6f96a359
SB
2574 (propagated-inputs
2575 ;; Required by libxklavier.pc.
2576 `(("glib" ,glib)
2577 ("libxml2" ,libxml2)))
2578 (inputs
2579 `(("iso-codes" ,iso-codes)
2580 ("libxi" ,libxi)
2581 ("libxkbfile" ,libxkbfile)
2582 ("xkbcomp" ,xkbcomp)
2583 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 2584 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
2585 (synopsis "High-level API for X Keyboard Extension")
2586 (description
2587 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
2588Extension known as XKB. This library is intended to support XFree86 and other
2589commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
2590indicators etc).")
2591 (license license:lgpl2.0+)))
619936a4
LC
2592
2593(define-public python2-rsvg
2594 ;; XXX: This is actually a subset of gnome-python-desktop.
2595 (package
2596 (name "python2-rsvg")
2597 (version "2.32.0")
2598 (source
2599 (origin
2600 (method url-fetch)
2601 (uri (string-append
2602 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
2603 version ".tar.bz2"))
2604 (sha256
2605 (base32
2606 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
2607 (build-system gnu-build-system)
2608 (native-inputs
2609 `(("pkg-config" ,pkg-config)))
2610 (inputs
2611 `(("python" ,python-2)
2612 ("python2-pygtk" ,python2-pygtk)
2613 ("librsvg" ,librsvg)))
f032d0be 2614 (home-page "https://www.gnome.org")
619936a4
LC
2615 (synopsis "Python bindings to librsvg")
2616 (description
3ad75446 2617 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
2618library.")
2619
2620 ;; This is the license of the rsvg bindings. The license of each module
2621 ;; of gnome-python-desktop is given in 'COPYING'.
2622 (license license:lgpl2.1+)))
a31a6d22 2623
f2ca414a
SB
2624(define-public glib-networking
2625 (package
2626 (name "glib-networking")
65211552 2627 (version "2.58.0")
f2ca414a
SB
2628 (source (origin
2629 (method url-fetch)
2630 (uri (string-append "mirror://gnome/sources/glib-networking/"
2631 (version-major+minor version) "/"
2632 name "-" version ".tar.xz"))
2633 (sha256
2634 (base32
1262be5c
EF
2635 "0s006gs9nsq6mg31spqha1jffzmp6qjh10y27h0fxf1iw1ah5ymx"))
2636 (patches (search-patches "glib-networking-connection.patch"))))
65211552 2637 (build-system meson-build-system)
f2ca414a 2638 (arguments
65211552
MB
2639 `(#:configure-flags '("-Dlibproxy_support=false")
2640 #:phases (modify-phases %standard-phases
2641 (add-before 'check 'disable-TLSv1.3
2642 (lambda _
2643 ;; XXX: One test fails when TLS 1.3 is enabled, fixed in 2.60.0:
2644 ;; <https://gitlab.com/gnutls/gnutls/issues/615>.
2645 (setenv "G_TLS_GNUTLS_PRIORITY" "NORMAL:-VERS-TLS1.3")
2646 #t)))))
f2ca414a
SB
2647 (native-inputs
2648 `(("pkg-config" ,pkg-config)
2649 ("intltool" ,intltool)))
2650 (inputs
2651 `(("glib" ,glib)
2652 ("gnutls" ,gnutls)
2653 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2654 ("p11-kit" ,p11-kit)))
f032d0be 2655 (home-page "https://www.gnome.org")
f2ca414a
SB
2656 (synopsis "Network-related GIO modules")
2657 (description
2658 "This package contains various network related extensions for the GIO
2659library.")
2660 (license license:lgpl2.0+)))
2661
ca649680 2662(define-public rest
4510b2da 2663 (package
ca649680 2664 (name "rest")
a4194d16 2665 (version "0.8.1")
4510b2da
SB
2666 (source (origin
2667 (method url-fetch)
2668 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
2669 (version-major+minor version) "/"
2670 name "-" version ".tar.xz"))
4510b2da
SB
2671 (sha256
2672 (base32
a4194d16 2673 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
2674 (build-system gnu-build-system)
2675 (arguments
2676 '(#:tests? #f ; tests require internet connection
2677 #:configure-flags
2678 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
2679 (native-inputs
2680 `(("glib-mkenums" ,glib "bin")
2681 ("gobject-introspection" ,gobject-introspection)
2682 ("pkg-config" ,pkg-config)))
2683 (propagated-inputs
2684 ;; rest-0.7.pc refers to all these.
2685 `(("glib" ,glib)
2686 ("libsoup" ,libsoup)
2687 ("libxml2" ,libxml2)))
24d6cc1d 2688 (home-page "https://www.gtk.org/")
4510b2da
SB
2689 (synopsis "RESTful web api query library")
2690 (description
2691 "This library was designed to make it easier to access web services that
2692claim to be \"RESTful\". It includes convenience wrappers for libsoup and
2693libxml to ease remote use of the RESTful API.")
2694 (license license:lgpl2.1+)))
2695
6e1bb642
SB
2696(define-public libsoup
2697 (package
2698 (name "libsoup")
b1d81ba0 2699 (version "2.66.2")
6e1bb642
SB
2700 (source (origin
2701 (method url-fetch)
2702 (uri (string-append "mirror://gnome/sources/libsoup/"
2703 (version-major+minor version) "/"
2704 name "-" version ".tar.xz"))
2705 (sha256
2706 (base32
b1d81ba0 2707 "0amfw1yvy1kjrg41rfh2vvrw5gkwnyckqbw1fab50hm6xc1acbmx"))))
eccaa8bf 2708 (build-system meson-build-system)
6e1bb642
SB
2709 (outputs '("out" "doc"))
2710 (arguments
2deb146f 2711 `(#:modules ((guix build utils)
eccaa8bf 2712 (guix build meson-build-system)
2deb146f
LC
2713 (ice-9 popen))
2714
eccaa8bf 2715 #:configure-flags '("-Ddoc=true")
6e1bb642
SB
2716 #:phases
2717 (modify-phases %standard-phases
eccaa8bf 2718 (add-after 'unpack 'adjust-tests
26c228f9 2719 (lambda _
eccaa8bf
MB
2720 ;; This test fails due to missing /etc/nsswitch.conf
2721 ;; in the build environment.
26c228f9
LC
2722 (substitute* "tests/socket-test.c"
2723 ((".*/sockets/unconnected.*") ""))
2deb146f
LC
2724
2725 ;; Generate a self-signed certificate that has "localhost" as its
2726 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
2727 ;; 3.5.12, tests such as "ssl-tests" fail:
2728 ;;
2729 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
2730 ;;
2731 ;; 'certtool' is interactive so we have to pipe it the answers.
2732 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
2733 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
2734 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
2735 (for-each (lambda (line)
2736 (display line pipe)
2737 (newline pipe))
2738 '("" ;Common name
2739 "" ;UID
2740 "Guix" ;Organizational unit name
2741 "GNU" ;Organization name
2742 "" ;Locality name
2743 "" ;State or province
2744 "" ;Country
2745 "" ;subject's domain component (DC)
2746 "" ;E-mail
2747 "" ;serial number
2748 "-1" ;expiration time
2749 "N" ;belong to authority?
2750 "N" ;web client certificate?
2751 "N" ;IPsec IKE?
2752 "Y" ;web server certificate?
2753 "localhost" ;dnsName of subject
2754 "" ;dnsName of subject (end)
2755 "" ;URI of subject
2756 "127.0.0.1" ;IP address of subject
2757 "" ;signing?
06f5bc4e
MB
2758 "" ;encryption (RSA)?
2759 "" ;data encryption?
2deb146f
LC
2760 "" ;sign OCSP requests?
2761 "" ;sign code?
2762 "" ;time stamping?
2763 "" ;email protection?
2764 "" ;URI of the CRL distribution point
2765 "y" ;above info OK?
2766 ))
2767 (close-pipe pipe))
26c228f9 2768 #t))
eccaa8bf
MB
2769 (add-after 'install 'move-doc
2770 (lambda* (#:key outputs #:allow-other-keys)
2771 (let ((out (assoc-ref outputs "out"))
2772 (doc (assoc-ref outputs "doc")))
2773 (mkdir-p (string-append doc "/share"))
2774 (copy-recursively (string-append out "/share/gtk-doc")
2775 (string-append doc "/share/gtk-doc"))
2776 (delete-file-recursively (string-append out "/share/gtk-doc"))
2777 #t))))))
6e1bb642 2778 (native-inputs
26c228f9 2779 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 2780 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 2781 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
2782 ("intltool" ,intltool)
2783 ("pkg-config" ,pkg-config)
2784 ("python" ,python-wrapper)
fd730590 2785 ("vala" ,vala)
6e1bb642
SB
2786 ;; These are needed for the tests.
2787 ;; FIXME: Add PHP once available.
2788 ("curl" ,curl)
2deb146f 2789 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
2790 ("httpd" ,httpd)))
2791 (propagated-inputs
2792 ;; libsoup-2.4.pc refers to all these.
2793 `(("glib" ,glib)
249846bf 2794 ("libpsl" ,libpsl)
eccaa8bf 2795 ("libxml2" ,libxml2)
6e1bb642 2796 ("sqlite" ,sqlite)))
eccaa8bf
MB
2797 (inputs
2798 `(("glib-networking" ,glib-networking)
2799 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
2800 (home-page "https://live.gnome.org/LibSoup/")
2801 (synopsis "GLib-based HTTP Library")
2802 (description
2803 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
2804and the GLib main loop, to integrate well with GNOME applications.")
2805 (license license:lgpl2.0+)))
2806
bba229a3
SB
2807(define-public libsecret
2808 (package
2809 (name "libsecret")
b0251c71 2810 (version "0.18.8")
bba229a3
SB
2811 (source (origin
2812 (method url-fetch)
2813 (uri (string-append
896dcbc7
EF
2814 "mirror://gnome/sources/libsecret/"
2815 (version-major+minor version) "/"
bba229a3
SB
2816 name "-" version ".tar.xz"))
2817 (sha256
2818 (base32
b0251c71 2819 "058x64689k55wxfkdp4svhnwvv8jmqm7z5mrynybl38f4sfqiyiv"))))
bba229a3
SB
2820 (build-system gnu-build-system)
2821 (outputs '("out" "doc"))
2822 (arguments
2823 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
2824 #:configure-flags
2825 (list (string-append "--with-html-dir="
2826 (assoc-ref %outputs "doc")
2827 "/share/gtk-doc/html"))))
2828 (native-inputs
c06ef010
MB
2829 `(("gettext" ,gettext-minimal)
2830 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 2831 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
2832 ("pkg-config" ,pkg-config)
2833 ("vala" ,vala)
2834 ("xsltproc" ,libxslt)))
2835 ;; These are needed for the tests.
2836 ;; FIXME: Add gjs once available.
2837 ;("dbus" ,dbus)
2838 ;("python2" ,python-2)
2839 ;("python2-dbus" ,python2-dbus)
2840 ;("python2-pygobject" ,python2-pygobject)
2841 ;("python2-pygobject-2" ,python2-pygobject-2)))
2842 (propagated-inputs
2843 `(("glib" ,glib))) ; required by libsecret-1.pc
2844 (inputs
2845 `(("docbook-xsl" ,docbook-xsl)
2846 ("libgcrypt" ,libgcrypt)
2847 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
2848 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
2849 (synopsis "GObject bindings for \"Secret Service\" API")
2850 (description
2851 "Libsecret is a GObject based library for storing and retrieving passwords
2852and other secrets. It communicates with the \"Secret Service\" using DBus.")
2853 (license license:lgpl2.1+)))
2854
b6821ee0 2855(define-public five-or-more
2856 (package
2857 (name "five-or-more")
83232ba2 2858 (version "3.28.0")
b6821ee0 2859 (source
2860 (origin
2861 (method url-fetch)
2862 (uri (string-append "mirror://gnome/sources/" name "/"
2863 (version-major+minor version) "/"
2864 name "-" version ".tar.xz"))
2865 (sha256
2866 (base32
83232ba2 2867 "1fy4a7qdjqvabm0cl45d6xlx6hy4paxvm0b2paifff73bl250d5c"))))
b6821ee0 2868 (build-system glib-or-gtk-build-system)
2869 (native-inputs
2870 `(("pkg-config" ,pkg-config)
2871 ("desktop-file-utils" ,desktop-file-utils)
2872 ("intltool" ,intltool)
2873 ("itstool" ,itstool)
2874 ("xmllint" ,libxml2)))
2875 (inputs
2876 `(("gtk+" ,gtk+)
2877 ("librsvg" ,librsvg)))
2878 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
2879 (synopsis "Logic puzzle game")
2880 (description "Five or More is a game where you try to align
2881 five or more objects of the same color and shape causing them to disappear.
2882 On every turn more objects will appear, until the board is full.
2883 Try to last as long as possible.")
2884 (license license:gpl2+)))
2885
a31a6d22
SB
2886(define-public gnome-mines
2887 (package
2888 (name "gnome-mines")
8c0fab36 2889 (version "3.28.0")
a31a6d22
SB
2890 (source
2891 (origin
2892 (method url-fetch)
2893 (uri (string-append "mirror://gnome/sources/" name "/"
2894 (version-major+minor version) "/"
2895 name "-" version ".tar.xz"))
2896 (sha256
2897 (base32
8c0fab36
RW
2898 "16w55hqaxipcv870n9gpn6qiywbqbyg7bjshaa02r75ias8dfxvf"))))
2899 (build-system meson-build-system)
a31a6d22 2900 (arguments
8c0fab36 2901 `(#:phases
a31a6d22 2902 (modify-phases %standard-phases
8c0fab36 2903 (delete 'bootstrap))))
a31a6d22 2904 (native-inputs
8c0fab36
RW
2905 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
2906 ("pkg-config" ,pkg-config)
a31a6d22
SB
2907 ("desktop-file-utils" ,desktop-file-utils)
2908 ("intltool" ,intltool)
bcb354ad 2909 ("itstool" ,itstool)
8c0fab36
RW
2910 ("vala" ,vala)
2911 ("yelp" ,yelp)
2912 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
2913 (inputs
2914 `(("gtk+" ,gtk+)
73992962 2915 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
2916 ("librsvg" ,librsvg)))
2917 (home-page "https://wiki.gnome.org/Apps/Mines")
2918 (synopsis "Minesweeper game")
2919 (description
2920 "Mines (previously gnomine) is a puzzle game where you locate mines
2921floating in an ocean using only your brain and a little bit of luck.")
2922 (license license:gpl2+)))
88f70665 2923
dfc407f3
KY
2924(define-public gnome-sudoku
2925 (package
2926 (name "gnome-sudoku")
7d20d983 2927 (version "3.28.0")
dfc407f3
KY
2928 (source
2929 (origin
2930 (method url-fetch)
2931 (uri (string-append "mirror://gnome/sources/" name "/"
2932 (version-major+minor version) "/"
2933 name "-" version ".tar.xz"))
2934 (sha256
2935 (base32
7d20d983 2936 "07b4lzniaf3gjsss6zl1lslv18smwc4nrijykvn2z90f423q2xav"))))
dfc407f3
KY
2937 (build-system glib-or-gtk-build-system)
2938 (native-inputs
2939 `(("pkg-config" ,pkg-config)
2940 ("desktop-file-utils" ,desktop-file-utils)
2941 ("intltool" ,intltool)
2942 ("itstool" ,itstool)
2943 ("xmllint" ,libxml2)))
2944 (inputs
2945 `(("gtk+" ,gtk+)
2946 ("json-glib" ,json-glib)
2947 ("libgee" ,libgee)
2948 ("librsvg" ,librsvg)
2949 ("qqwing" ,qqwing)))
2950 (home-page "https://wiki.gnome.org/Apps/Sudoku")
2951 (synopsis "Japanese logic game")
2952 (description
2953 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
2954GNOME Sudoku is meant to have an interface as simple and unobstrusive as
2955possible while still providing features that make playing difficult Sudoku
2956more fun.")
2957 (license license:gpl2+)))
2958
88f70665
AW
2959(define-public gnome-terminal
2960 (package
2961 (name "gnome-terminal")
9cf329ae 2962 (version "3.28.2")
88f70665
AW
2963 (source
2964 (origin
2965 (method url-fetch)
2966 (uri (string-append "mirror://gnome/sources/" name "/"
2967 (version-major+minor version) "/"
2968 name "-" version ".tar.xz"))
2969 (sha256
2970 (base32
9cf329ae 2971 "0ybjansg6lr279191w8z8r45gy4rxwzw1ajm98cgkv0fk2jdr0x2"))))
88f70665
AW
2972 (build-system glib-or-gtk-build-system)
2973 (arguments
2974 '(#:configure-flags
2975 (list "--disable-migration" "--disable-search-provider"
2976 "--without-nautilus-extension")
2977 #:phases
2978 (modify-phases %standard-phases
3a4de6b2 2979 (add-before 'configure 'patch-/bin/true
88f70665
AW
2980 (lambda _
2981 (substitute* "configure"
2982 (("/bin/true") (which "true"))))))))
2983 (native-inputs
2984 `(("pkg-config" ,pkg-config)
2985 ("desktop-file-utils" ,desktop-file-utils)
2986 ("intltool" ,intltool)
bcb354ad
SB
2987 ("itstool" ,itstool)
2988 ("xmllint" ,libxml2)))
68702167
MW
2989 (propagated-inputs
2990 `(("dconf" ,dconf)))
88f70665
AW
2991 (inputs
2992 `(("gtk+" ,gtk+)
2993 ("vte" ,vte)
2994 ("gnutls" ,gnutls)
88f70665
AW
2995 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2996 ("util-linux" ,util-linux)
2997 ("vala" ,vala)))
2998 (home-page "https://wiki.gnome.org/Apps/Terminal")
2999 (synopsis "Terminal emulator")
3000 (description
3001 "GNOME Terminal is a terminal emulator application for accessing a
3002UNIX shell environment which can be used to run programs available on
3003your system.
3004
3005It supports several profiles, multiple tabs and implements several
3006keyboard shortcuts.")
3007 (license license:gpl3+)))
75016d07
AW
3008
3009(define-public colord
3010 (package
3011 (name "colord")
3012 (version "1.1.8")
3013 (source
3014 (origin
3015 (method url-fetch)
5cc3096c 3016 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
75016d07
AW
3017 name "-" version ".tar.xz"))
3018 (sha256
3019 (base32
3020 "01w97rgzk4qi6fp03scq5jyw0ayx11b479p7dkm2r77k84b9agph"))))
3021 (build-system glib-or-gtk-build-system)
3022 (arguments
3023 '(;; The tests want to run valgrind. Punt for now.
3024 #:tests? #f
3025 #:configure-flags (list "--localstatedir=/var"
3026 ;; GUSB not packaged yet.
3027 "--disable-gusb"
3028 ;; No dep on systemd.
3029 "--disable-systemd-login"
3030 ;; Wants to install to global completion dir;
3031 ;; punt.
3032 "--disable-bash-completion"
3033 ;; colord-gtk not packaged yet.
3034 "--disable-session-example"
3035 "--with-daemon-user=colord"
3036 "--enable-sane"
3037 (string-append "--with-udevrulesdir="
3038 (assoc-ref %outputs "out")
3039 "/lib/udev/rules.d"))
3040 #:phases
3041 (modify-phases %standard-phases
3a4de6b2 3042 (add-before 'configure 'patch-/bin/true
75016d07
AW
3043 (lambda _
3044 (substitute* "configure"
3045 (("/bin/true") (which "true")))
3046 (substitute* "src/Makefile.in"
3047 (("if test -w \\$\\(DESTDIR\\)\\$\\(prefix\\)/;")
b19d6805 3048 "if test -w $(DESTDIR)$(localstatedir);")))))))
75016d07
AW
3049 (native-inputs
3050 `(("pkg-config" ,pkg-config)
3051 ("gobject-introspection" ,gobject-introspection)
3052 ("libtool" ,libtool)
3053 ("intltool" ,intltool)))
65cb2d61
SB
3054 (propagated-inputs
3055 ;; colord.pc refers to all these.
3056 `(("glib" ,glib)
3057 ("udev" ,eudev)
3058 ("lcms" ,lcms)))
75016d07 3059 (inputs
65cb2d61 3060 `(("dbus-glib" ,dbus-glib)
80c7dd1a 3061 ("libgudev" ,libgudev)
75016d07 3062 ("libusb" ,libusb)
75016d07
AW
3063 ("sqlite" ,sqlite)
3064 ("polkit" ,polkit)
4c928743 3065 ("sane-backends" ,sane-backends)))
57e7d748 3066 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
3067 (synopsis "Color management service")
3068 (description "Colord is a system service that makes it easy to manage,
3069install and generate color profiles to accurately color manage input and
3070output devices.")
3071 (license license:gpl2+)))
7b2abd00
AW
3072
3073(define-public geoclue
3074 (package
3075 (name "geoclue")
b433c7b3 3076 (version "2.4.8")
7b2abd00
AW
3077 (source
3078 (origin
3079 (method url-fetch)
5cc3096c 3080 (uri (string-append "https://www.freedesktop.org/software/" name
7b2abd00
AW
3081 "/releases/" (version-major+minor version) "/"
3082 name "-" version ".tar.xz"))
3083 (sha256
3084 (base32
b433c7b3 3085 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
fc1adab1 3086 (patches (search-patches "geoclue-config.patch"))))
7b2abd00
AW
3087 (build-system glib-or-gtk-build-system)
3088 (arguments
3089 '(;; The tests want to run the system bus.
3090 #:tests? #f
3091 #:configure-flags (list ;; Disable bits requiring ModemManager.
3092 "--disable-3g-source"
3093 "--disable-cdma-source"
3094 "--disable-modem-gps-source"
3095 "--with-dbus-service-user=geoclue")
3096 #:phases
3097 (modify-phases %standard-phases
3a4de6b2 3098 (add-before 'configure 'patch-/bin/true
7b2abd00
AW
3099 (lambda _
3100 (substitute* "configure"
e3eb53e7
MW
3101 (("/bin/true") (which "true")))
3102 #t)))))
7b2abd00
AW
3103 (native-inputs
3104 `(("pkg-config" ,pkg-config)
758798a9 3105 ("gobject-introspection" ,gobject-introspection)
7b2abd00
AW
3106 ("intltool" ,intltool)))
3107 (inputs
54e911bc
SB
3108 `(("avahi" ,avahi)
3109 ("glib" ,glib)
7b2abd00
AW
3110 ("json-glib" ,json-glib)
3111 ("libsoup" ,libsoup)))
99adfd7d 3112 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
7b2abd00
AW
3113 (synopsis "Geolocation service")
3114 (description "Geoclue is a D-Bus service that provides location
3115information. The primary goal of the Geoclue project is to make creating
3116location-aware applications as simple as possible, while the secondary goal is
3117to ensure that no application can access location information without explicit
e881752c 3118permission from user.")
7b2abd00 3119 (license license:gpl2+)))
2bfe7437
AW
3120
3121(define-public geocode-glib
3122 (package
3123 (name "geocode-glib")
a7dd0c02 3124 (version "3.26.0")
2bfe7437
AW
3125 (source (origin
3126 (method url-fetch)
3127 (uri (string-append "mirror://gnome/sources/geocode-glib/"
3128 (version-major+minor version) "/"
3129 name "-" version ".tar.xz"))
3130 (sha256
3131 (base32
a7dd0c02
RW
3132 "1vmydxs5xizcmaxpkfrq75xpj6pqrpdjizxyb30m00h54yqqch7a"))))
3133 (build-system meson-build-system)
2bfe7437 3134 (arguments
a7dd0c02
RW
3135 `(#:phases
3136 (modify-phases %standard-phases
3137 ;; The tests require a bunch of locales.
3138 (add-before 'check 'set-locales
3139 (lambda* (#:key inputs #:allow-other-keys)
3140 (setenv "GUIX_LOCPATH"
3141 (string-append (assoc-ref inputs "glibc-locales")
3142 "/lib/locale"))
3143 #t)))))
2bfe7437
AW
3144 (native-inputs
3145 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
3146 ("glibc-locales" ,glibc-locales) ; for tests
3147 ("gettext" ,gettext-minimal)
2bfe7437 3148 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 3149 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
3150 ("pkg-config" ,pkg-config)
3151 ("json-glib" ,json-glib)))
3152 (propagated-inputs
3153 ;; geocode-glib-1.0.pc refers to GIO.
3154 `(("glib" ,glib)))
3155 (inputs
3156 `(("libsoup" ,libsoup)))
3157 (home-page "https://github.com/GNOME/geocode-glib/")
3158 (synopsis "Geocoding and reverse-geocoding library")
3159 (description
3160 "geocode-glib is a convenience library for geocoding (finding longitude,
3161and latitude from an address) and reverse geocoding (finding an address from
3162coordinates) using the Nominatim service. geocode-glib caches requests for
3163faster results and to avoid unnecessary server load.")
3164 (license license:lgpl2.0+)))
a1d5bb0e
AW
3165
3166(define-public upower
3167 (package
3168 (name "upower")
4088d809 3169 (version "0.99.10")
a1d5bb0e
AW
3170 (source (origin
3171 (method url-fetch)
9ec54965 3172 (uri (string-append "https://gitlab.freedesktop.org/upower/upower/"
4088d809 3173 "uploads/c438511024b9bc5a904f8775cfc8e4c4/"
9ec54965 3174 "upower-" version ".tar.xz"))
a1d5bb0e
AW
3175 (sha256
3176 (base32
4088d809 3177 "17d2bclv5fgma2y3g8bsn9pdvspn1zrzismzdnzfivc0f2wm28k4"))
fc1adab1 3178 (patches (search-patches "upower-builddir.patch"))))
a1d5bb0e
AW
3179 (build-system glib-or-gtk-build-system)
3180 (arguments
3181 '( ;; The tests want to contact the system bus, which can't be done in the
3182 ;; build environment. The integration test can run, but the last of
3183 ;; the up-self-tests doesn't. Disable tests for now.
3184 #:tests? #f
3185 #:configure-flags (list "--localstatedir=/var"
3186 (string-append "--with-udevrulesdir="
3187 (assoc-ref %outputs "out")
9ec54965 3188 "/lib/udev/rules.d"))))
a1d5bb0e 3189 (native-inputs
ebeabe2d
SB
3190 `(("gobject-introspection" ,gobject-introspection)
3191 ("pkg-config" ,pkg-config)
a1d5bb0e 3192 ("intltool" ,intltool)
55409295
LC
3193 ("python" ,python)
3194
3195 ;; For man pages.
3196 ("libxslt" ,libxslt) ;for 'xsltproc'
3197 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
3198 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 3199 (inputs
ea226291
SB
3200 `(("dbus-glib" ,dbus-glib)
3201 ("libgudev" ,libgudev)
a1d5bb0e 3202 ("libusb" ,libusb)))
d7a503fc
MB
3203 (propagated-inputs
3204 ;; In Requires of upower-glib.pc.
3205 `(("glib" ,glib)))
57e7d748 3206 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
3207 (synopsis "System daemon for managing power devices")
3208 (description
3209 "UPower is an abstraction for enumerating power devices,
3210listening to device events and querying history and statistics. Any
3211application or service on the system can access the org.freedesktop.UPower
3212service via the system message bus.")
3213 (license license:gpl2+)))
6a180f6f
AW
3214
3215(define-public libgweather
3216 (package
3217 (name "libgweather")
cf6cbc34 3218 (version "3.28.2")
6a180f6f
AW
3219 (source (origin
3220 (method url-fetch)
3221 (uri (string-append "mirror://gnome/sources/" name "/"
3222 (version-major+minor version) "/"
3223 name "-" version ".tar.xz"))
3224 (sha256
3225 (base32
cf6cbc34
RW
3226 "0xfy5ghwvnz2g9074dy6512m4z2pv66pmja14vhi9imgacbfh708"))))
3227 (build-system meson-build-system)
6a180f6f 3228 (arguments
cf6cbc34
RW
3229 `(#:tests? #f ; one of two tests requires network access
3230 #:configure-flags
3231 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 3232 (assoc-ref %build-inputs "tzdata")
cf6cbc34 3233 "/share/zoneinfo"))))
6a180f6f
AW
3234 (native-inputs
3235 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 3236 ("gobject-introspection" ,gobject-introspection)
6a180f6f 3237 ("pkg-config" ,pkg-config)
1d3fcf94 3238 ("vala" ,vala)
6a180f6f
AW
3239 ("intltool" ,intltool)))
3240 (propagated-inputs
3241 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
3242 ;; libsoup.
3243 `(("gtk+" ,gtk+)
3244 ("gdk-pixbuf" ,gdk-pixbuf)
3245 ("libxml2" ,libxml2)
cf6cbc34 3246 ("libsoup" ,libsoup)
6a180f6f 3247 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
3248 (inputs
3249 `(("tzdata" ,tzdata)))
6a180f6f
AW
3250 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
3251 (synopsis "Location, time zone, and weather library for GNOME")
3252 (description
3253 "libgweather is a library to access weather information from online
3254services for numerous locations.")
3255 (license license:gpl2+)))
23a22af6
AW
3256
3257(define-public gnome-settings-daemon
3258 (package
3259 (name "gnome-settings-daemon")
e644f9fa 3260 (version "3.28.1")
23a22af6
AW
3261 (source
3262 (origin
3263 (method url-fetch)
3264 (uri (string-append "mirror://gnome/sources/" name "/"
3265 (version-major+minor version) "/"
3266 name "-" version ".tar.xz"))
3267 (sha256
3268 (base32
e644f9fa
RW
3269 "0z9dip9p0iav646cmxisii5sbkdr9hmaklc5fzvschpbjkhphksr"))))
3270 (build-system meson-build-system)
23a22af6 3271 (arguments
e644f9fa
RW
3272 `(#:glib-or-gtk? #t
3273 #:configure-flags
3274 (list (string-append "-Dudev_dir="
3275 (assoc-ref %outputs "out")
4d0e085b
RW
3276 "/lib/udev/rules.d/")
3277 ;; Otherwise, the RUNPATH will lack the final path component.
3278 (string-append "-Dc_link_args=-Wl,-rpath="
3279 (assoc-ref %outputs "out")
3280 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 3281 ;; Color management test can't reach the colord system service.
23a22af6
AW
3282 #:tests? #f))
3283 (native-inputs
e644f9fa
RW
3284 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3285 ("pkg-config" ,pkg-config)
23a22af6
AW
3286 ("intltool" ,intltool)
3287 ("xsltproc" ,libxslt)
3288 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3289 ("docbook-xml" ,docbook-xml-4.2)
3290 ("docbook-xsl" ,docbook-xsl)))
3291 (inputs
e644f9fa
RW
3292 `(("alsa-lib" ,alsa-lib)
3293 ("colord" ,colord)
ea226291 3294 ("libgudev" ,libgudev)
23a22af6
AW
3295 ("upower" ,upower)
3296 ("polkit" ,polkit)
3297 ("pulseaudio" ,pulseaudio)
3298 ("libcanberra" ,libcanberra)
3299 ("libx11" ,libx11)
3300 ("libxtst" ,libxtst)
3301 ("lcms" ,lcms)
3302 ("libnotify" ,libnotify)
3303 ("geoclue" ,geoclue)
3304 ("geocode-glib" ,geocode-glib)
3305 ("libgweather" ,libgweather)
3306 ("gnome-desktop" ,gnome-desktop)
3307 ("nss" ,nss)
3308 ("cups" ,cups)
ec2b1921
AW
3309 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3310 ("libwacom" ,libwacom)
3311 ("librsvg" ,librsvg)
eee7878f 3312 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 3313 ("wayland" ,wayland)
eee7878f 3314 ("network-manager" ,network-manager)))
f032d0be 3315 (home-page "https://www.gnome.org")
23a22af6
AW
3316 (synopsis "GNOME settings daemon")
3317 (description
3318 "This package contains the daemon responsible for setting the various
3319parameters of a GNOME session and the applications that run under it. It
3320handles settings such keyboard layout, shortcuts, and accessibility, clipboard
3321settings, themes, mouse settings, and startup of other daemons.")
3322 (license license:gpl2+)))
1e7464a9
DH
3323
3324(define-public totem-pl-parser
3325 (package
3326 (name "totem-pl-parser")
1e9b19dd 3327 (version "3.26.1")
1e7464a9
DH
3328 (source (origin
3329 (method url-fetch)
e980cbe9
MW
3330 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
3331 (version-major+minor version) "/"
1e7464a9
DH
3332 "totem-pl-parser-" version ".tar.xz"))
3333 (sha256
3334 (base32
1e9b19dd
RW
3335 "0k5pnka907invgds48d73c1xx1a366v5dcld3gr2l1dgmjwc9qka"))))
3336 (build-system meson-build-system)
1e7464a9
DH
3337 (arguments
3338 ;; FIXME: Tests require gvfs.
3339 `(#:tests? #f))
3340 (native-inputs
3341 `(("intltool" ,intltool)
3342 ("glib" ,glib "bin")
4d6d8281 3343 ("gobject-introspection" ,gobject-introspection)
1e7464a9 3344 ("pkg-config" ,pkg-config)))
22a6ad6a 3345 (propagated-inputs
1e7464a9
DH
3346 `(("glib" ,glib)
3347 ("gmime" ,gmime)
1e9b19dd
RW
3348 ("libarchive" ,libarchive)
3349 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
3350 ("libxml2" ,libxml2)))
3351 (inputs
1e9b19dd 3352 `(("nettle" ,nettle)
22a6ad6a 3353 ("libsoup" ,libsoup)))
1e7464a9
DH
3354 (home-page "https://projects.gnome.org/totem")
3355 (synopsis "Library to parse and save media playlists for GNOME")
3356 (description "Totem-pl-parser is a GObjects-based library to parse and save
3357playlists in a variety of formats.")
3358 (license license:lgpl2.0+)))
3359
6b888eff
SB
3360(define-public aisleriot
3361 (package
3362 (name "aisleriot")
39c0a3fd 3363 (version "3.22.8")
6b888eff
SB
3364 (source (origin
3365 (method url-fetch)
e43f622a 3366 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 3367 (version-major+minor version) "/"
e43f622a 3368 "aisleriot-" version ".tar.xz"))
6b888eff
SB
3369 (sha256
3370 (base32
39c0a3fd 3371 "15pm39679ymxki07sb5nvhycz4z53zwbvascyp5wm4864bn98815"))))
6b888eff
SB
3372 (build-system glib-or-gtk-build-system)
3373 (arguments
3374 '(#:configure-flags
3375 '("--with-platform=gtk-only"
3376 "--with-card-theme-formats=svg")))
3377 (native-inputs
3378 `(("desktop-file-utils" ,desktop-file-utils)
3379 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
3380 ("intltool" ,intltool)
3381 ("itstool" ,itstool)
3382 ("pkg-config" ,pkg-config)
3383 ("xmllint" ,libxml2)))
3384 (inputs
3385 `(("gtk+" ,gtk+)
226e57d6 3386 ("guile" ,guile-2.2)
6b888eff
SB
3387 ("libcanberra" ,libcanberra)
3388 ("librsvg" ,librsvg)))
3389 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
3390 (synopsis "Solitaire card games")
3391 (description
3392 "Aisleriot (also known as Solitaire or sol) is a collection of card games
3393which are easy to play with the aid of a mouse.")
3394 (license license:gpl3+)))
4a79e256
SB
3395
3396(define-public devhelp
3397 (package
3398 (name "devhelp")
5dd12afc 3399 (version "3.28.1")
4a79e256
SB
3400 (source (origin
3401 (method url-fetch)
3402 (uri (string-append "mirror://gnome/sources/" name "/"
3403 (version-major+minor version) "/"
3404 name "-" version ".tar.xz"))
3405 (sha256
3406 (base32
5dd12afc 3407 "08a8xizjqz68k30zd37r7g516azhan9bbrjsvv10hjd5dg3f476s"))))
4a79e256
SB
3408 (build-system glib-or-gtk-build-system)
3409 (native-inputs
3410 `(("intltool" ,intltool)
5dd12afc 3411 ("itstool" ,itstool)
4a79e256
SB
3412 ("pkg-config" ,pkg-config)))
3413 (inputs
3414 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3415 ("webkitgtk" ,webkitgtk)))
3416 (home-page "https://wiki.gnome.org/Apps/Devhelp")
3417 (synopsis "API documentation browser for GNOME")
3418 (description
3419 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
3420natively with GTK-Doc (the API reference system developed for GTK+ and used
3421throughout GNOME for API documentation).")
3422 (license license:gpl2+)))
ba421ab7
MW
3423
3424(define-public cogl
3425 (package
3426 (name "cogl")
6a55accc 3427 (version "1.22.2")
ba421ab7
MW
3428 (source
3429 (origin
3430 (method url-fetch)
3431 (uri (string-append "mirror://gnome/sources/" name "/"
3432 (version-major+minor version) "/"
3433 name "-" version ".tar.xz"))
3434 (sha256
3435 (base32
6a55accc 3436 "03f0ha3qk7ca0nnkkcr1garrm1n1vvfqhkz9lwjm592fnv6ii9rr"))))
a88d5a0c
MW
3437 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
3438 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
3439 (build-system gnu-build-system)
3440 (native-inputs
3441 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3442 ("gobject-introspection" ,gobject-introspection)
3443 ;;("xorg-server" ,xorg-server) ; for the test suite
3444 ("pkg-config" ,pkg-config)))
3445 (propagated-inputs
3446 `(("glib" ,glib)
3447 ("gdk-pixbuf" ,gdk-pixbuf)
3448 ("libx11" ,libx11)
3449 ("libxext" ,libxext)
3450 ("libxfixes" ,libxfixes)
3451 ("libxdamage" ,libxdamage)
3452 ("libxcomposite" ,libxcomposite)
3453 ("libxrandr" ,libxrandr)))
3454 (inputs
3455 `(("mesa" ,mesa)
3456 ("cairo" ,cairo)
3457 ("pango" ,pango)
3458 ("gstreamer" ,gstreamer)
31860852
KK
3459 ("gst-plugins-base" ,gst-plugins-base)
3460 ("wayland" ,wayland)))
ba421ab7
MW
3461 (arguments
3462 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
3463 "--enable-wayland-egl-platform"
3464 "--enable-wayland-egl-server"
3465
ba421ab7
MW
3466 ;; Arrange to pass an absolute file name to
3467 ;; dlopen for libGL.so.
3468 (string-append "--with-gl-libname="
3469 (assoc-ref %build-inputs "mesa")
3470 "/lib/libGL.so"))
3471 ;; XXX FIXME: All tests fail, with many warnings printed like this:
3472 ;; _FontTransOpen: Unable to Parse address
3473 ;; ${prefix}/share/fonts/X11/misc/
3474 #:tests? #f
3475 #; #:phases
3476 #;
3477 (modify-phases %standard-phases
3478 (add-before 'check 'start-xorg-server
3479 (lambda* (#:key inputs #:allow-other-keys)
3480 ;; The test suite requires a running X server.
3481 (system (format #f "~a/bin/Xvfb :1 &"
3482 (assoc-ref inputs "xorg-server")))
3483 (setenv "DISPLAY" ":1")
3484 #t)))))
3485 (home-page "http://www.cogl3d.org")
3486 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
3487 (description
3488 "Cogl is a small library for using 3D graphics hardware to draw pretty
3489pictures. The API departs from the flat state machine style of OpenGL and is
3490designed to make it easy to write orthogonal components that can render
3491without stepping on each others toes.")
3492 (license (list license:expat ; most of the code
3493 license:bsd-3 ; cogl/cogl-point-in-poly.c
3494 license:sgifreeb2.0 ; cogl-path/tesselator/
3495 license:asl2.0)))) ; examples/android/
fb182b8a
MW
3496
3497(define-public clutter
3498 (package
3499 (name "clutter")
6a88e4ee 3500 (version "1.26.2")
fb182b8a
MW
3501 (source
3502 (origin
3503 (method url-fetch)
3504 (uri (string-append "mirror://gnome/sources/" name "/"
3505 (version-major+minor version) "/"
3506 name "-" version ".tar.xz"))
3507 (sha256
3508 (base32
6a88e4ee 3509 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
3510 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
3511 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 3512 (build-system gnu-build-system)
600233bd
LC
3513 (outputs '("out"
3514 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
3515 (native-inputs
3516 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
3517 ("gobject-introspection" ,gobject-introspection)
3518 ("pkg-config" ,pkg-config)
3519 ("xsltproc" ,libxslt)))
3520 (propagated-inputs
3521 `(("cogl" ,cogl)
3522 ("cairo" ,cairo)
3523 ("atk" ,atk)
3524 ("gtk+" ,gtk+)
3525 ("json-glib" ,json-glib)
3526 ("glib" ,glib)
3527 ("libxcomposite" ,libxcomposite)
3528 ("libxdamage" ,libxdamage)
3529 ("libxext" ,libxext)
3530 ("xinput" ,xinput)))
3531 (inputs
3532 `(("libxkbcommon" ,libxkbcommon)
3533 ("udev" ,eudev)))
3534 (arguments
600233bd
LC
3535 `(#:configure-flags (list "--enable-x11-backend=yes"
3536
3537 ;; This produces share/doc/{clutter,cally}.
3538 (string-append "--with-html-dir="
3539 (assoc-ref %outputs "doc")
3540 "/share/doc"))
fb182b8a
MW
3541 ;; XXX FIXME: Get test suite working. It would probably fail in the
3542 ;; same way the cogl tests fail, since clutter is based on cogl.
3543 #:tests? #f))
3544 (home-page "http://www.clutter-project.org")
476af713 3545 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 3546 (description
476af713 3547 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
3548creating fast, mainly 2D single window applications such as media box UIs,
3549presentations, kiosk style applications and so on.")
3550 (license license:lgpl2.0+)))
bf7f17ba
MW
3551
3552(define-public clutter-gtk
3553 (package
3554 (name "clutter-gtk")
5d1a3219 3555 (version "1.8.4")
bf7f17ba
MW
3556 (source
3557 (origin
3558 (method url-fetch)
3559 (uri (string-append "mirror://gnome/sources/" name "/"
3560 (version-major+minor version) "/"
3561 name "-" version ".tar.xz"))
3562 (sha256
3563 (base32
5d1a3219 3564 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
3565 (build-system gnu-build-system)
3566 (native-inputs
3567 `(("pkg-config" ,pkg-config)
3568 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
3569 (propagated-inputs
3570 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
3571 `(("clutter" ,clutter)
3572 ("gtk+" ,gtk+)))
3573 (home-page "http://www.clutter-project.org")
476af713 3574 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 3575 (description
476af713 3576 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
3577creating fast, mainly 2D single window applications such as media box UIs,
3578presentations, kiosk style applications and so on.")
3579 (license license:lgpl2.0+)))
86d6a893
MW
3580
3581(define-public clutter-gst
3582 (package
3583 (name "clutter-gst")
ba07ac19 3584 (version "3.0.27")
86d6a893
MW
3585 (source
3586 (origin
3587 (method url-fetch)
f010f89b 3588 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 3589 (version-major+minor version) "/"
f010f89b 3590 "clutter-gst-" version ".tar.xz"))
86d6a893 3591 (sha256
ba07ac19 3592 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
3593 (build-system gnu-build-system)
3594 (native-inputs
ba07ac19 3595 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
3596 ("pkg-config" ,pkg-config)
3597 ("gobject-introspection" ,gobject-introspection)))
3598 (inputs
3599 `(("clutter" ,clutter)
3600 ("gstreamer" ,gstreamer)
3601 ("gst-plugins-base" ,gst-plugins-base)))
3602 (home-page "http://www.clutter-project.org")
3603 (synopsis "Integration library for using GStreamer with Clutter")
3604 (description
3605 "Clutter-Gst is an integration library for using GStreamer with Clutter.
3606It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
3607implements the ClutterGstPlayer interface using playbin. Clutter is an
3608OpenGL-based interactive canvas library.")
86d6a893 3609 (license license:lgpl2.0+)))
607a04ae 3610
30dc88d9
LC
3611(define-public libchamplain
3612 (package
3613 (name "libchamplain")
5564b2c5 3614 (version "0.12.16")
30dc88d9
LC
3615 (source (origin
3616 (method url-fetch)
3617 (uri (string-append
3618 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
3619 version ".tar.xz"))
3620 (sha256
3621 (base32
5564b2c5 3622 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 3623 (build-system gnu-build-system)
f7c6833f
LF
3624 (arguments '(#:configure-flags '("--enable-vala")))
3625 (native-inputs
3626 `(("gobject-introspection" ,gobject-introspection)
3627 ("pkg-config" ,pkg-config)
3628 ("vala" ,vala)))
30dc88d9
LC
3629 (propagated-inputs
3630 `(("libsoup" ,libsoup)
3631 ("sqlite" ,sqlite)
3632 ("clutter" ,clutter)
3633 ("clutter-gtk" ,clutter-gtk)
3634 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
3635 ("cairo" ,cairo)
3636 ("gtk+3" ,gtk+)
3637 ("glib" ,glib)))
f032d0be 3638 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
3639 (synopsis "C library providing a ClutterActor to display maps")
3640 (description
3641 "libchamplain is a C library providing a ClutterActor to display maps.
3642It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
3643and Perl bindings are also available. It supports numerous free map sources
3644such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
3645 (license license:lgpl2.1+)))
3646
607a04ae
MW
3647(define-public gom
3648 (package
3649 (name "gom")
0510440b 3650 (version "0.3.2")
607a04ae
MW
3651 (source
3652 (origin
3653 (method url-fetch)
6c8a0b6f 3654 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 3655 (version-major+minor version) "/"
6c8a0b6f 3656 "gom-" version ".tar.xz"))
607a04ae
MW
3657 (sha256
3658 (base32
0510440b 3659 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
3660 (build-system gnu-build-system)
3661 (native-inputs
3662 `(("intltool" ,intltool)
3663 ("pkg-config" ,pkg-config)
3664 ("gobject-introspection" ,gobject-introspection)))
3665 (inputs
3666 `(("glib" ,glib)
3667 ("gdk-pixbuf" ,gdk-pixbuf)
3668 ("sqlite" ,sqlite)))
3669 ;; XXX TODO: Figure out how to run the test suite.
3670 (arguments `(#:tests? #f))
3671 (home-page "https://wiki.gnome.org/Projects/Gom")
3672 (synopsis "Object mapper from GObjects to SQLite")
3673 (description
3674 "Gom provides an object mapper from GObjects to SQLite. It helps you
3675write applications that need to store structured data as well as make complex
3676queries upon that data.")
3677 (license license:lgpl2.1+)))
b7a3cf11 3678
865aacc9 3679(define-public libgnome-games-support
f09520db 3680 (package
865aacc9 3681 (name "libgnome-games-support")
dd7a2446 3682 (version "1.4.1")
f09520db
SB
3683 (source (origin
3684 (method url-fetch)
3685 (uri (string-append "mirror://gnome/sources/" name "/"
3686 (version-major+minor version) "/"
3687 name "-" version ".tar.xz"))
3688 (sha256
3689 (base32
dd7a2446 3690 "1j7lfcnc29lgn8ppn13wkn9w2y1n3lsapagwp91zh3bf0h2h4hv1"))))
f09520db
SB
3691 (build-system gnu-build-system)
3692 (arguments
3693 '(#:phases
3694 (modify-phases %standard-phases
3695 (add-before 'check 'pre-check
3696 (lambda _
865aacc9 3697 ;; Tests require a writable HOME.
f09520db
SB
3698 (setenv "HOME" (getcwd))
3699 #t)))))
3700 (native-inputs
3701 `(("intltool" ,intltool)
3702 ("pkg-config" ,pkg-config)
3703 ("vala" ,vala)))
3704 (propagated-inputs
865aacc9 3705 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
3706 `(("gtk+" ,gtk+)
3707 ("libgee" ,libgee)))
3708 (home-page "https://www.gnome.org/")
3709 (synopsis "Useful functionality shared among GNOME games")
3710 (description
865aacc9 3711 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
3712GNOME Games, but it may be used by others.")
3713 (license license:lgpl3+)))
3714
b7a3cf11
SB
3715(define-public gnome-klotski
3716 (package
3717 (name "gnome-klotski")
36828576 3718 (version "3.22.3")
b7a3cf11
SB
3719 (source (origin
3720 (method url-fetch)
3721 (uri (string-append "mirror://gnome/sources/" name "/"
3722 (version-major+minor version) "/"
3723 name "-" version ".tar.xz"))
3724 (sha256
3725 (base32
36828576 3726 "0prc0s28pdflgzyvk1g0yfx982q2grivmz3858nwpqmbkha81r7f"))))
b7a3cf11
SB
3727 (build-system glib-or-gtk-build-system)
3728 (native-inputs
3729 `(("desktop-file-utils" ,desktop-file-utils)
3730 ("intltool" ,intltool)
3731 ("itstool" ,itstool)
bcb354ad
SB
3732 ("pkg-config" ,pkg-config)
3733 ("xmllint" ,libxml2)))
b7a3cf11
SB
3734 (inputs
3735 `(("gtk+" ,gtk+)
f4eae76f 3736 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
3737 ("librsvg" ,librsvg)))
3738 (home-page "https://wiki.gnome.org/Apps/Klotski")
3739 (synopsis "Sliding block puzzles")
3740 (description
3741 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
3742the patterned block to the area bordered by green markers. To do so, you will
3743need to slide other blocks out of the way. Complete each puzzle in as few moves
3744as possible!")
3745 (license license:gpl2+)))
8d4791bf
MW
3746
3747(define-public grilo
3748 (package
3749 (name "grilo")
99dd2af9 3750 (version "0.3.3")
8d4791bf
MW
3751 (source
3752 (origin
3753 (method url-fetch)
3754 (uri (string-append "mirror://gnome/sources/" name "/"
3755 (version-major+minor version) "/"
3756 name "-" version ".tar.xz"))
3757 (sha256
3758 (base32
99dd2af9 3759 "1qx072m0gl6m3d5g5cbbf13p4h217icmlxjnrn829x5xqwi451sw"))))
8d4791bf
MW
3760 (build-system gnu-build-system)
3761 (native-inputs
3762 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
3763 ("intltool" ,intltool)
3764 ("pkg-config" ,pkg-config)
3765 ("gobject-introspection" ,gobject-introspection)))
3766 (inputs
6d7273a0
KK
3767 `(("cyrus-sasl" ,cyrus-sasl)
3768 ("glib" ,glib)
8d4791bf
MW
3769 ("gtk+" ,gtk+)
3770 ("libxml2" ,libxml2)
6d7273a0 3771 ("liboauth" ,liboauth)
8d4791bf 3772 ("libsoup" ,libsoup)
e7305878 3773 ("nettle" ,nettle)
8d4791bf
MW
3774 ("totem-pl-parser" ,totem-pl-parser)))
3775 (arguments
3776 `(#:phases
3777 (modify-phases %standard-phases
3778 (add-after 'unpack 'fix-introspection-install-dir
3779 (lambda* (#:key outputs #:allow-other-keys)
3780 (let ((out (assoc-ref outputs "out")))
3781 (substitute* '("src/Makefile.in"
3782 "libs/pls/Makefile.in"
3783 "libs/net/Makefile.in")
3784 (("@INTROSPECTION_GIRDIR@")
3785 (string-append out "/share/gir-1.0/"))
3786 (("@INTROSPECTION_TYPELIBDIR@")
8c52aab4
MW
3787 (string-append out "/lib/girepository-1.0/")))
3788 #t))))))
8d4791bf
MW
3789 (native-search-paths
3790 (list (search-path-specification
3791 (variable "GRL_PLUGIN_PATH")
3792 (files (list (string-append "lib/grilo-"
3793 (version-major+minor version)))))))
f032d0be 3794 (home-page "https://live.gnome.org/Grilo")
8d4791bf
MW
3795 (synopsis "Framework for discovering and browsing media")
3796 (description
3797 "Grilo is a framework focused on making media discovery and browsing easy
3798for application developers.")
3799 (license license:lgpl2.1+)))
7b212526
MW
3800
3801(define-public grilo-plugins
3802 (package
3803 (name "grilo-plugins")
22753632 3804 (version "0.3.3")
7b212526
MW
3805 (source
3806 (origin
3807 (method url-fetch)
3808 (uri (string-append "mirror://gnome/sources/" name "/"
3809 (version-major+minor version) "/"
3810 name "-" version ".tar.xz"))
3811 (sha256
3812 (base32
22753632 3813 "172vr1y98d2mzlmg5akjn4ibrcj3gh22cwnb3cv9rvvzhj3yhrpy"))))
7b212526
MW
3814 (build-system gnu-build-system)
3815 (native-inputs
3816 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
3817 ("intltool" ,intltool)
3818 ("itstool" ,itstool)
3819 ("pkg-config" ,pkg-config)))
3820 (inputs
3821 `(("grilo" ,grilo)
924ae80f 3822 ("nettle" ,nettle) ; XXX: required by libgrlpls-0.3.la
7b212526
MW
3823 ("glib" ,glib)
3824 ("libxml2" ,libxml2)
3825 ("sqlite" ,sqlite)
3826 ("gom" ,gom)
3827 ;; XXX TODO: Add oauth
3828 ;; XXX TODO: Add goa
3829 ;; XXX TODO: Add gdata (e.g. needed for youtube plugin)
3830 ;; XXX TODO: Add lua (needs help finding it)
3831 ("json-glib" ,json-glib)
3832 ("avahi" ,avahi)
3833 ("gmime" ,gmime)
3834 ("libsoup" ,libsoup)
3835 ("libarchive" ,libarchive)
3836 ("totem-pl-parser" ,totem-pl-parser)))
3837 (arguments
3838 `(#:make-flags (list (string-append "GRL_PLUGINS_DIR="
3839 %output
3840 "/lib/grilo-"
3841 ,(version-major+minor version)))
3842 ;; XXX FIXME: Try to get the test suite working. It appears to require
3843 ;; a working system dbus. Inside the build container, all tests fail
3844 ;; with: "assertion failed: (source)". Outside of the build container,
3845 ;; most tests succeed.
3846 #:tests? #f))
f032d0be 3847 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
3848 (synopsis "Plugins for the Grilo media discovery library")
3849 (description
3850 "Grilo is a framework focused on making media discovery and browsing easy
3851for application developers.")
3852 (license license:lgpl2.1+)))
4e3fc547
MW
3853
3854(define-public totem
3855 (package
3856 (name "totem")
0e091b3e 3857 (version "3.26.2")
4e3fc547
MW
3858 (source
3859 (origin
3860 (method url-fetch)
3861 (uri (string-append "mirror://gnome/sources/" name "/"
3862 (version-major+minor version) "/"
3863 name "-" version ".tar.xz"))
3864 (sha256
3865 (base32
0e091b3e 3866 "1llyisls3pzf5bwkpxyfyxc2d3gpa09n5pjy7qsjdqrp3ya4k36g"))
81382e3f
MB
3867 (patches (search-patches "totem-meson-easy-codec.patch"
3868 "totem-meson-compat.patch"))))
7ad81b8b 3869 (build-system meson-build-system)
4e3fc547
MW
3870 (native-inputs
3871 `(("pkg-config" ,pkg-config)
3872 ("desktop-file-utils" ,desktop-file-utils)
3873 ("gobject-introspection" ,gobject-introspection)
7ad81b8b
LC
3874 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
3875 ("gtk:bin" ,gtk+ "bin") ;for 'gtk-update-icon-cache'
4e3fc547 3876 ("intltool" ,intltool)
bcb354ad
SB
3877 ("itstool" ,itstool)
3878 ("xmllint" ,libxml2)))
4e3fc547
MW
3879 (propagated-inputs
3880 `(("dconf" ,dconf)))
3881 (inputs
3882 `(("gtk+" ,gtk+)
3883 ("gdk-pixbuf" ,gdk-pixbuf)
3884 ("atk" ,atk)
3885 ("cairo" ,cairo)
3886 ("dbus-glib" ,dbus-glib)
3887 ("clutter" ,clutter)
3888 ("clutter-gtk" ,clutter-gtk)
3889 ("clutter-gst" ,clutter-gst)
6a6db57f 3890 ("xorgproto" ,xorgproto)
4e3fc547
MW
3891 ("libxxf86vm" ,libxxf86vm)
3892 ("libxtst" ,libxtst)
3893 ("libxrandr" ,libxrandr)
3894 ("libxml2" ,libxml2)
3895 ("libsoup" ,libsoup)
3896 ("libpeas" ,libpeas)
3897 ("librsvg" ,librsvg)
3898 ("lirc" ,lirc)
3899 ("gnome-desktop" ,gnome-desktop)
3900 ("gstreamer" ,gstreamer)
3901 ("gst-plugins-base" ,gst-plugins-base)
3902 ("gst-plugins-good" ,gst-plugins-good)
3903 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3904 ("adwaita-icon-theme" ,adwaita-icon-theme)
3905 ;; XXX We use python-2 because libxml2 because itstool (which needs
3906 ;; libxml) currently uses python-2.
3907 ("python" ,python-2)
3908 ("python-pygobject" ,python2-pygobject)
3909 ;; XXX TODO pylint needed for python support
3910 ("totem-pl-parser" ,totem-pl-parser)
3911 ("grilo" ,grilo)
3912 ("grilo-plugins" ,grilo-plugins)
3913 ("nettle" ,nettle)
3914 ("vala" ,vala)))
3915 (arguments
7ad81b8b
LC
3916 `(#:glib-or-gtk? #t
3917
a97bfa46
AVY
3918 ;; Disable parallel builds until
3919 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28813 is
3920 ;; fixed. Try enabling it when updating this package in case
3921 ;; upstream has fixed it.
3922 #:parallel-build? #f
3923
7ad81b8b 3924 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 3925 ;; all that.
7ad81b8b 3926 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
3927
3928 ;; Do not build .a files for the plugins, it's
3929 ;; completely useless. This saves 2 MiB.
7ad81b8b 3930 "--default-library" "shared")
ec5c24f9
LC
3931
3932 #:phases
4e3fc547 3933 (modify-phases %standard-phases
6368eb39
DM
3934 (add-before
3935 'install 'disable-cache-generation
3936 (lambda _
3937 (setenv "DESTDIR" "/")
3938 #t))
4e3fc547
MW
3939 (add-after
3940 'install 'wrap-totem
3941 (lambda* (#:key inputs outputs #:allow-other-keys)
3942 (let ((out (assoc-ref outputs "out"))
3943 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
3944 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
3945 (wrap-program (string-append out "/bin/totem")
3946 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
3947 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
3948 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
3949 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
3950 #t)))))
3951 (home-page "https://wiki.gnome.org/Apps/Videos")
3952 (synopsis "Simple media player for GNOME based on GStreamer")
3953 (description "Totem is a simple yet featureful media player for GNOME
3954which can read a large number of file formats.")
3955 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
3956 ;; to be used and distributed together with GStreamer and Totem. See
3957 ;; file://COPYING in the source distribution for details.
3958 (license license:gpl2+)))
f0afb0c8
DH
3959
3960(define-public rhythmbox
3961 (package
3962 (name "rhythmbox")
8190e1ed 3963 (version "3.4.3")
f0afb0c8
DH
3964 (source (origin
3965 (method url-fetch)
3966 (uri (string-append "mirror://gnome/sources/" name "/"
3967 (version-major+minor version) "/"
3968 name "-" version ".tar.xz"))
3969 (sha256
3970 (base32
8190e1ed 3971 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
f0afb0c8
DH
3972 (build-system glib-or-gtk-build-system)
3973 (arguments
3974 `(#:configure-flags
3975 (list "--enable-lirc"
3976 "--enable-python"
3977 "--enable-vala"
3978 "--with-brasero"
3979 "--with-gudev"
3980 "--with-libsecret")
3981 #:phases
3982 (modify-phases %standard-phases
3983 (add-after
3984 'install 'wrap-rhythmbox
3985 (lambda* (#:key inputs outputs #:allow-other-keys)
3986 (let ((out (assoc-ref outputs "out"))
3987 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
3988 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
3989 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
3990 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
3991 (wrap-program (string-append out "/bin/rhythmbox")
3992 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
3993 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
3994 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
3995 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
3996 #t)))))
3997 (propagated-inputs
3998 `(("dconf" ,dconf)))
3999 (native-inputs
bcb354ad
SB
4000 `(("itstool" ,itstool)
4001 ("intltool" ,intltool)
f0afb0c8
DH
4002 ("glib" ,glib "bin")
4003 ("gobject-introspection" ,gobject-introspection)
4004 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
4005 ("pkg-config" ,pkg-config)
4006 ("xmllint" ,libxml2)))
f0afb0c8
DH
4007 (inputs
4008 `(("json-glib" ,json-glib)
4009 ("tdb" ,tdb)
4010 ("gnome-desktop" ,gnome-desktop)
4011 ("python" ,python)
4012 ("python-pygobject" ,python2-pygobject)
4013 ("vala" ,vala)
4014 ("gmime" ,gmime)
4015 ("nettle" ,nettle)
f0afb0c8
DH
4016 ("adwaita-icon-theme" ,adwaita-icon-theme)
4017 ("grilo" ,grilo)
4018 ("grilo-plugins" ,grilo-plugins)
4019 ("gstreamer" ,gstreamer)
4020 ("gst-plugins-base" ,gst-plugins-base)
4021 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 4022 ("totem-pl-parser" ,totem-pl-parser)
ea226291 4023 ("libgudev" ,libgudev)
f0afb0c8
DH
4024 ;;("libmtp" ,libmtp) FIXME: Not detected
4025 ("libsecret" ,libsecret)
4026 ("libsoup" ,libsoup)
4027 ("libnotify" ,libnotify)
4028 ("libpeas" ,libpeas)
4029 ("lirc" ,lirc)
4030 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4031 ;;("clutter" ,clutter)
4032 ;;("clutter-gtk" ,clutter-gtk)
4033 ;;("clutter-gst" ,clutter-gst)
4034 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4035 ("atk" ,atk)
4036 ("pango" ,pango)
4037 ("gtk+" ,gtk+)
4038 ;; TODO:
4039 ;; * libgpod
4040 ;; * mx
f0afb0c8
DH
4041 ("brasero" ,brasero)))
4042 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4043 (synopsis "Music player for GNOME")
4044 (description "Rhythmbox is a music playing application for GNOME. It
4045supports playlists, song ratings, and any codecs installed through gstreamer.")
4046 (license license:gpl2+)))
f70d8383
DH
4047
4048(define-public eog
4049 (package
4050 (name "eog")
61fb581f 4051 (version "3.28.2")
f70d8383
DH
4052 (source (origin
4053 (method url-fetch)
4054 (uri (string-append "mirror://gnome/sources/" name "/"
4055 (version-major+minor version) "/"
4056 name "-" version ".tar.xz"))
4057 (sha256
4058 (base32
61fb581f
RW
4059 "1gasrfqi7qrzdq1idh29r0n6ikkqjb6pbp7a8k5krfz5hkhyfin0"))))
4060 (build-system meson-build-system)
f70d8383 4061 (arguments
34c44a34
RW
4062 `(#:configure-flags
4063 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
4064 (list (string-append "-Dc_link_args=-Wl,-rpath="
4065 (assoc-ref %outputs "out") "/lib/eog"))
4066 #:phases
f70d8383 4067 (modify-phases %standard-phases
61fb581f
RW
4068 (add-after 'install 'wrap-eog
4069 (lambda* (#:key outputs #:allow-other-keys)
4070 (let ((out (assoc-ref outputs "out"))
4071 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
4072 (wrap-program (string-append out "/bin/eog")
4073 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
4074 #t)))))
f70d8383
DH
4075 (propagated-inputs
4076 `(("dconf" ,dconf)))
4077 (native-inputs
4078 `(("intltool" ,intltool)
b3546174 4079 ("itstool" ,itstool)
f70d8383 4080 ("glib" ,glib "bin")
61fb581f 4081 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
f70d8383 4082 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
4083 ("pkg-config" ,pkg-config)
4084 ("xmllint" ,libxml2)))
f70d8383
DH
4085 (inputs
4086 `(("gnome-desktop" ,gnome-desktop)
4087 ("shared-mime-info" ,shared-mime-info)
4088 ("adwaita-icon-theme" ,adwaita-icon-theme)
4089 ("exempi" ,exempi)
4090 ("lcms" ,lcms)
4091 ("libexif" ,libexif)
4092 ("libpeas" ,libpeas)
4093 ("libjpeg" ,libjpeg)
4094 ("librsvg" ,librsvg)
4095 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4096 ("gtk+" ,gtk+)))
4097 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
4098 (synopsis "GNOME image viewer")
4099 (description "Eye of GNOME is the GNOME image viewer. It
4100supports image conversion, rotation, and slideshows.")
4101 (license license:gpl2+)))
41af5e7b 4102
0c3f8cb8
LC
4103(define-public eog-plugins
4104 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
4105 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
4106 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
4107 ;; 'XDG_DATA_DIRS' appropriately set.
4108 (package
4109 (name "eog-plugins")
5fed63dd 4110 (version "3.26.3")
0c3f8cb8
LC
4111 (source (origin
4112 (method url-fetch)
f3b88ed2 4113 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 4114 (version-major+minor version) "/"
f3b88ed2 4115 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
4116 (sha256
4117 (base32
5fed63dd 4118 "06fnjs2p18ad5vk07z685cx26sc7d3azywss00w9xvz794b2i1g3"))))
0c3f8cb8
LC
4119 (build-system gnu-build-system)
4120 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
4121 (synopsis "Extensions for the Eye of GNOME image viewer")
4122 (native-inputs
4123 `(("pkg-config" ,pkg-config)
4124 ("gettext" ,gnu-gettext)))
4125 (inputs
4126 `(("eog" ,eog)
4127 ("glib" ,glib)
4128 ("gtk+" ,gtk+)
4129 ("libpeas" ,libpeas)
4130 ("libexif" ,libexif)
4131 ("libchamplain" ,libchamplain)))
4132 (description
4133 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
4134notably:
4135
4136@itemize
4137@item @dfn{EXIF Display}, which displays camera (EXIF) information;
4138@item @dfn{Map}, which displays a map of where the picture was taken on the
4139side panel;
4140@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
4141@end itemize\n")
4142
4143 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
4144 ;; long suspicious byte stream that goes to a
4145 ;; ".gresource.eog_postasa_plugin" ELF section.
4146 (license license:gpl2+)))
4147
41af5e7b
SB
4148(define-public libgudev
4149 (package
4150 (name "libgudev")
b78f5118 4151 (version "232")
41af5e7b
SB
4152 (source (origin
4153 (method url-fetch)
4154 (uri (string-append "mirror://gnome/sources/" name "/"
4155 version "/" name "-" version ".tar.xz"))
4156 (sha256
4157 (base32
b78f5118 4158 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 4159 (build-system gnu-build-system)
b78f5118
RW
4160 (arguments
4161 '(#:configure-flags
4162 ;; umockdev depends on libgudev.
4163 (list "--disable-umockdev")))
41af5e7b
SB
4164 (native-inputs
4165 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4166 ("gobject-introspection" ,gobject-introspection)
4167 ("pkg-config" ,pkg-config)))
4168 (propagated-inputs
4169 `(("glib" ,glib))) ; required by gudev-1.0.pc
4170 (inputs
4171 `(("udev" ,eudev)))
4172 (home-page "https://wiki.gnome.org/Projects/libgudev")
4173 (synopsis "GObject bindings for libudev")
4174 (description
4175 "This library provides GObject bindings for libudev. It was originally
4176part of udev-extras, then udev, then systemd. It's now a project on its own.")
4177 (license license:lgpl2.1+)))
3dc8828f
SB
4178
4179(define-public gvfs
4180 (package
4181 (name "gvfs")
0ab9f949 4182 (version "1.36.2")
3dc8828f
SB
4183 (source (origin
4184 (method url-fetch)
4185 (uri (string-append "mirror://gnome/sources/" name "/"
4186 (version-major+minor version) "/"
4187 name "-" version ".tar.xz"))
4188 (sha256
4189 (base32
0ab9f949 4190 "1xq105596sk9yram5a143b369wpaiiwc9gz86n0j1kfr7nipkqn4"))))
3dc8828f
SB
4191 (build-system gnu-build-system)
4192 (arguments
0ab9f949
RW
4193 '(#:tests? #f ; XXX: requiring `pidof'
4194 #:phases
4195 (modify-phases %standard-phases
4196 (add-after 'unpack 'remove-broken-autogen-script
4197 (lambda _ (delete-file "autogen.sh") #t)))))
3dc8828f
SB
4198 (native-inputs
4199 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
4200 ("autoconf" ,autoconf)
4201 ("automake" ,automake)
4202 ("gettext" ,gettext-minimal)
4203 ("gtk-doc" ,gtk-doc)
4204 ("libtool" ,libtool)
3dc8828f
SB
4205 ("pkg-config" ,pkg-config)
4206 ("xsltproc" ,libxslt)))
4207 (inputs
4208 `(("avahi" ,avahi)
4209 ("docbook-xml" ,docbook-xml-4.2)
4210 ("docbook-xsl" ,docbook-xsl)
4211 ("dbus" ,dbus)
4212 ("fuse" ,fuse)
24a78aa6 4213 ("gcr" ,gcr)
3dc8828f
SB
4214 ("glib" ,glib)
4215 ("libarchive" ,libarchive)
4216 ("libbluray" ,libbluray)
8852ca24 4217 ("libcap" ,libcap)
3dc8828f
SB
4218 ("libcdio-paranoia" ,libcdio-paranoia)
4219 ("libgcrypt" ,libgcrypt)
4220 ("libgphoto2" ,libgphoto2)
4221 ("libgudev" ,libgudev)
0ab9f949 4222 ("libimobiledevice" ,libimobiledevice)
3dc8828f
SB
4223 ("libmtp" ,libmtp)
4224 ("libsecret" ,libsecret)
4225 ("libsmbclient" ,samba)
4226 ("libsoup" ,libsoup)
4227 ("libxml2" ,libxml2)
4228 ("nettle" ,nettle) ; XXX: required by libarchive.pc
8852ca24 4229 ("polkit" ,polkit)
3dc8828f
SB
4230 ("udisks" ,udisks)))
4231 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 4232 (synopsis "Userspace virtual file system for GIO")
3dc8828f 4233 (description
8f65585b 4234 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
4235abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
4236to all applications using the GIO API. It also supports exposing the GVFS
4237mounts to non-GIO applications using FUSE.
4238
4239GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
4240DAV, and others.")
4241 (license license:lgpl2.0+)))
7c88b6bd
AW
4242
4243(define-public gusb
4244 (package
4245 (name "gusb")
536b3274 4246 (version "0.3.0")
7c88b6bd
AW
4247 (source (origin
4248 (method url-fetch)
4249 (uri (string-append "https://github.com/hughsie/libgusb/archive/"
536b3274 4250 version ".tar.gz"))
7c88b6bd
AW
4251 (sha256
4252 (base32
536b3274
MB
4253 "1wa9787ww7s1kl9jml6kiyrjgimlgagq4jmgdj7xcpsx83w10qxk"))))
4254 (build-system meson-build-system)
7c88b6bd 4255 (native-inputs
536b3274 4256 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
4257 ("pkg-config" ,pkg-config)
4258 ("vala" ,vala)
7c88b6bd
AW
4259 ("gtk-doc" ,gtk-doc)))
4260 (propagated-inputs
4261 ;; Both of these are required by gusb.pc.
4262 `(("glib" ,glib)
4263 ("libusb" ,libusb)))
4264 (arguments
536b3274 4265 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 4266 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 4267 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
4268 (description
4269 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
4270asynchronous control, bulk and interrupt transfers with proper cancellation
4271and integration into a mainloop. This makes it easy to integrate low level
4272USB transfers with your high-level application or system daemon.")
4273 (license license:lgpl2.1+)))
0abe1d86
AW
4274
4275(define-public simple-scan
4276 (package
4277 (name "simple-scan")
baca5333 4278 (version "3.24.1")
0abe1d86
AW
4279 (source (origin
4280 (method url-fetch)
4281 (uri (string-append "https://launchpad.net/simple-scan/"
4282 (version-major+minor version) "/"
4283 version "/+download/simple-scan-"
4284 version ".tar.xz"))
4285 (sha256
4286 (base32
baca5333 4287 "1czg21cdbd2fgqylxfnzfhhzy69gycf816d5bbaq6hb62hmq7bjy"))))
0abe1d86
AW
4288 (build-system glib-or-gtk-build-system)
4289 (inputs
4290 `(("gtk" ,gtk+)
4291 ("zlib" ,zlib)
4292 ("cairo" ,cairo)
4293 ("gdk-pixbuf" ,gdk-pixbuf)
4294 ("gusb" ,gusb)
4c928743 4295 ("libsane" ,sane-backends)))
0abe1d86 4296 (native-inputs
b94a6ca0 4297 `(("gettext" ,gettext-minimal)
0abe1d86
AW
4298 ("itstool" ,itstool)
4299 ("colord" ,colord)
4300 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
4301 ("pkg-config" ,pkg-config)
bcb354ad
SB
4302 ("vala" ,vala)
4303 ("xmllint" ,libxml2)))
fb9ca511
TGR
4304 (arguments
4305 '(#:configure-flags '("--disable-packagekit")
4306 #:phases
4307 (modify-phases %standard-phases
4308 (add-after 'unpack 'clean
4309 (lambda _
4310 ;; Remove a left-over reference to PackageKit.
4311
4312 ;; https://bugs.launchpad.net/simple-scan/+bug/1462769
4313
4314 ;; There are some generated C files erroneously
4315 ;; included in the source distribution, and this
4316 ;; one breaks the build by referring to a
4317 ;; non-existent header (packagekit.h)
4318 (delete-file "src/ui.c"))))))
0abe1d86
AW
4319 (home-page "https://launchpad.net/simple-scan")
4320 (synopsis "Document and image scanner")
4321 (description "Simple Scan is an easy-to-use application, designed to let
4322users connect their scanner and quickly have the image/document in an
4323appropriate format. Simple Scan is basically a frontend for SANE - which is
4324the same backend as XSANE uses. This means that all existing scanners will
4325work and the interface is well tested.")
4326 (license license:gpl3+)))
7549f984 4327
ab466d79
RW
4328(define-public eolie
4329 (package
4330 (name "eolie")
fa8ef3ed 4331 (version "0.9.63")
ab466d79
RW
4332 (source (origin
4333 (method url-fetch)
00014781 4334 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 4335 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 4336 "eolie-" version ".tar.xz"))
ab466d79
RW
4337 (sha256
4338 (base32
fa8ef3ed 4339 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 4340 (build-system meson-build-system)
ab466d79 4341 (arguments
00014781
RW
4342 `(#:glib-or-gtk? #t
4343 #:phases
ab466d79
RW
4344 (modify-phases %standard-phases
4345 (add-after 'wrap 'wrap-more
4346 (lambda* (#:key inputs outputs #:allow-other-keys)
4347 (let* ((out (assoc-ref outputs "out"))
4348 ;; These libraries must be on LD_LIBRARY_PATH.
4349 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
4350 "atk" "gtk+" "gsettings-desktop-schemas"
84b33436 4351 "gcc:lib" ; needed b/c webkitgtk is built with gcc-7
ab466d79
RW
4352 "gobject-introspection"))
4353 (path (string-join
4354 (map (lambda (lib)
4355 (string-append (assoc-ref inputs lib) "/lib"))
4356 libs)
4357 ":")))
4358 (wrap-program (string-append out "/bin/eolie")
4359 `("LD_LIBRARY_PATH" ":" prefix (,path))
4360 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
4361 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
4362 #t)))))
4363 (native-inputs
84b33436
MW
4364 `(("gcc:lib" ,gcc-7 "lib") ; needed because webkitgtk is built with gcc-7
4365 ("intltool" ,intltool)
ab466d79 4366 ("itstool" ,itstool)
d95f1041 4367 ("pkg-config" ,pkg-config)
d95f1041 4368 ("python" ,python)
00014781 4369 ("glib:bin" ,glib "bin")
d95f1041 4370 ("gtk+" ,gtk+ "bin")))
ab466d79
RW
4371 (inputs
4372 `(("gobject-introspection" ,gobject-introspection)
4373 ("glib-networking" ,glib-networking)
4374 ("cairo" ,cairo)
4375 ("gtk+" ,gtk+)
4376 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
4377 ("python" ,python-wrapper)
d72f76df 4378 ("python-dateutil" ,python-dateutil)
00014781 4379 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
4380 ("python-pygobject" ,python-pygobject)
4381 ("python-pycairo" ,python-pycairo)
00014781 4382 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
4383 ("libsecret" ,libsecret)
4384 ("gtkspell3" ,gtkspell3)
4385 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
72663b48 4386 ("webkitgtk" ,webkitgtk-2.24)))
166b2c97 4387 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
4388 (synopsis "Web browser for GNOME")
4389 (description
4390 "Eolie is a new web browser for GNOME. It features Firefox sync support,
4391a secret password store, an adblocker, and a modern UI.")
4392 (license license:gpl3+)))
4393
7549f984
SB
4394(define-public epiphany
4395 (package
4396 (name "epiphany")
0e4d4d98 4397 (version "3.28.3.1")
7549f984
SB
4398 (source (origin
4399 (method url-fetch)
dd3266ec 4400 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 4401 (version-major+minor version) "/"
dd3266ec 4402 "epiphany-" version ".tar.xz"))
7549f984
SB
4403 (sha256
4404 (base32
0e4d4d98 4405 "1xz6xl6b0iihvczyr0cs1z5ifvpai6anb4m0ng1caiph06klc1b9"))))
fc5c5b92
R
4406
4407 (build-system meson-build-system)
7549f984
SB
4408 (arguments
4409 ;; FIXME: tests run under Xvfb, but fail with:
4410 ;; /src/bookmarks/ephy-bookmarks/create:
4411 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
4412 ;; subsystem
4413 ;; FAIL
6f48d9db 4414 '(#:tests? #f
e19f9c24
LF
4415 #:glib-or-gtk? #t
4416 #:configure-flags
4417 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
4418 (list (string-append "-Dc_link_args=-Wl,-rpath="
4419 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
4420 (propagated-inputs
4421 `(("dconf" ,dconf)))
7549f984 4422 (native-inputs
fc5c5b92 4423 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
480d39a6 4424 ("gcc" ,gcc-7) ; needed because webkitgtk-2.22 is compiled with gcc-7
fc5c5b92
R
4425 ("glib:bin" ,glib "bin") ; for glib-mkenums
4426 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
4427 ("intltool" ,intltool)
7549f984 4428 ("itstool" ,itstool)
bcb354ad
SB
4429 ("pkg-config" ,pkg-config)
4430 ("xmllint" ,libxml2)))
7549f984
SB
4431 (inputs
4432 `(("avahi" ,avahi)
4433 ("gcr" ,gcr)
fc5c5b92 4434 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
4435 ("glib-networking" ,glib-networking)
4436 ("gnome-desktop" ,gnome-desktop)
4437 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 4438 ("json-glib" ,json-glib)
7549f984
SB
4439 ("iso-codes" ,iso-codes)
4440 ("libnotify" ,libnotify)
4441 ("libsecret" ,libsecret)
7549f984 4442 ("libxslt" ,libxslt)
fc5c5b92 4443 ("nettle" ,nettle) ; for hogweed
7549f984 4444 ("sqlite" ,sqlite)
72663b48 4445 ("webkitgtk" ,webkitgtk-2.24)))
7549f984
SB
4446 (home-page "https://wiki.gnome.org/Apps/Web")
4447 (synopsis "GNOME web browser")
4448 (description
4449 "Epiphany is a GNOME web browser targeted at non-technical users. Its
4450principles are simplicity and standards compliance.")
4451 (license license:gpl2+)))
a3856b2c
SB
4452
4453(define-public d-feet
4454 (package
4455 (name "d-feet")
458e9221 4456 (version "0.3.14")
a3856b2c
SB
4457 (source (origin
4458 (method url-fetch)
4459 (uri (string-append "mirror://gnome/sources/" name "/"
4460 (version-major+minor version) "/"
4461 name "-" version ".tar.xz"))
4462 (sha256
4463 (base32
458e9221 4464 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
4465 (build-system glib-or-gtk-build-system)
4466 (arguments
4467 '(#:out-of-source? #f ; tests need to run in the source directory.
4468 #:phases
4469 (modify-phases %standard-phases
4470 (add-before
4471 'check 'pre-check
86aff791 4472 (lambda _
a3856b2c
SB
4473 ;; The test suite requires a running X server.
4474 (system "Xvfb :1 &")
4475 (setenv "DISPLAY" ":1")
4476 ;; Don't fail on missing '/etc/machine-id'.
4477 (setenv "DBUS_FATAL_WARNINGS" "0")
4478 ;; tests.py and window.py don't meet E402:
4479 ;; E402 module level import not at top of file
4480 (substitute* "src/tests/Makefile"
86aff791
MW
4481 (("--ignore=E123") "--ignore=E123,E402"))
4482 #t))
a3856b2c
SB
4483 (add-after
4484 'install 'wrap-program
4485 (lambda* (#:key outputs #:allow-other-keys)
4486 (let ((prog (string-append (assoc-ref outputs "out")
4487 "/bin/d-feet")))
4488 (wrap-program prog
4489 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
4490 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
4491 #t))))))
a3856b2c
SB
4492 (native-inputs
4493 `(("intltool" ,intltool)
4494 ("itstool" ,itstool)
4495 ("pkg-config" ,pkg-config)
4496 ("python-pep8" ,python-pep8)
4497 ("xmllint" ,libxml2)
4498 ("xorg-server" ,xorg-server)))
4499 (inputs
4500 `(("gobject-introspection" ,gobject-introspection)
4501 ("gtk+" ,gtk+)
4502 ("python" ,python-wrapper)
458e9221 4503 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
4504 ("python-pygobject" ,python-pygobject)))
4505 (home-page "https://wiki.gnome.org/Apps/DFeet")
4506 (synopsis "D-Bus debugger")
4507 (description
4508 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
4509of running programs and invoke methods on those interfaces.")
4510 (license license:gpl2+)))
c3b97bd9
SB
4511
4512(define-public yelp-xsl
4513 (package
4514 (name "yelp-xsl")
7c213900 4515 (version "3.28.0")
c3b97bd9
SB
4516 (source (origin
4517 (method url-fetch)
4518 (uri (string-append "mirror://gnome/sources/" name "/"
4519 (version-major+minor version) "/"
4520 name "-" version ".tar.xz"))
4521 (sha256
4522 (base32
7c213900 4523 "14rznm1qpsnmkwksnkd5j7zplakl01kvrcw0fdmd5gdc65xz9kcc"))))
c3b97bd9
SB
4524 (build-system gnu-build-system)
4525 (native-inputs
4526 `(("intltool" ,intltool)
4527 ("itstool" ,itstool)
4528 ("xmllint" ,libxml2)))
4529 (home-page "https://wiki.gnome.org/Apps/Yelp")
4530 (synopsis "XSL stylesheets for Yelp")
4531 (description
4532 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
4533to format Docbook and Mallard documents.")
4534 (license license:gpl2+)))
de3d612a
SB
4535
4536(define-public yelp
4537 (package
4538 (name "yelp")
ef7f084f 4539 (version "3.28.1")
de3d612a
SB
4540 (source (origin
4541 (method url-fetch)
4542 (uri (string-append "mirror://gnome/sources/" name "/"
4543 (version-major+minor version) "/"
4544 name "-" version ".tar.xz"))
4545 (sha256
4546 (base32
ef7f084f 4547 "033w5qnhm495pnvscnb3k2dagzgq4fsnzcrh0k2rgr10mw2mv2p8"))))
de3d612a
SB
4548 (build-system glib-or-gtk-build-system)
4549 (native-inputs
4550 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4551 ("intltool" ,intltool)
4552 ("itstool" ,itstool)
4553 ("pkg-config" ,pkg-config)))
4554 (propagated-inputs
4555 `(("dconf" ,dconf)))
4556 (inputs
ad1b7d8b
SB
4557 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4558 ("libxslt" ,libxslt)
de3d612a 4559 ("sqlite" ,sqlite)
4c28ca1d
SB
4560 ("webkitgtk" ,webkitgtk)
4561 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
4562 (home-page "https://wiki.gnome.org/Apps/Yelp")
4563 (synopsis "GNOME help browser")
4564 (description
4565 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
4566man, info, and HTML documents. It can locate documents according to the
4567freedesktop.org help system specification.")
4568 (license license:gpl2+)))
122d0d10
SB
4569
4570(define-public yelp-tools
4571 (package
4572 (name "yelp-tools")
2089bca5 4573 (version "3.28.0")
122d0d10
SB
4574 (source (origin
4575 (method url-fetch)
4576 (uri (string-append "mirror://gnome/sources/" name "/"
4577 (version-major+minor version) "/"
4578 name "-" version ".tar.xz"))
4579 (sha256
4580 (base32
2089bca5 4581 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
4582 (build-system gnu-build-system)
4583 (native-inputs
4584 `(("pkg-config" ,pkg-config)))
4585 (propagated-inputs
4586 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
4587 `(("itstool" ,itstool)
4588 ("xmllint" ,libxml2)
4589 ("xsltproc" ,libxslt)))
4590 (inputs
4591 `(("yelp-xsl" ,yelp-xsl)))
4592 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
4593 (synopsis "Yelp documentation tools")
4594 (description
4595 "Yelp-tools is a collection of scripts and build utilities to help create,
4596manage, and publish documentation for Yelp and the web. Most of the heavy
4597lifting is done by packages like yelp-xsl and itstool. This package just
4598wraps things up in a developer-friendly way.")
4599 (license license:gpl2+)))
af8f9f23
RW
4600
4601(define-public libgee
4602 (package
4603 (name "libgee")
b1be07cf 4604 (version "0.20.1")
af8f9f23
RW
4605 (source (origin
4606 (method url-fetch)
4607 (uri (string-append "mirror://gnome/sources/" name "/"
4608 (version-major+minor version) "/"
4609 name "-" version ".tar.xz"))
4610 (sha256
4611 (base32
b1be07cf 4612 "0c26x8gi3ivmhlbqcmiag4jwrkvcy28ld24j55nqr3jikb904a5v"))))
af8f9f23
RW
4613 (build-system gnu-build-system)
4614 (arguments
4615 `(#:phases
4616 (modify-phases %standard-phases
4617 (add-after 'unpack 'fix-introspection-install-dir
4618 (lambda* (#:key outputs #:allow-other-keys)
4619 (let ((out (assoc-ref outputs "out")))
4620 (substitute* "gee/Makefile.in"
4621 (("@INTROSPECTION_GIRDIR@")
4622 (string-append out "/share/gir-1.0/"))
4623 (("@INTROSPECTION_TYPELIBDIR@")
4624 (string-append out "/lib/girepository-1.0/")))))))))
4625 (native-inputs
4626 `(("glib" ,glib "bin")
4627 ("pkg-config" ,pkg-config)))
4628 (inputs
4629 `(("glib" ,glib)
4630 ("gobject-introspection" ,gobject-introspection)))
4631 (home-page "https://wiki.gnome.org/Projects/Libgee")
4632 (synopsis "GObject collection library")
4633 (description
4634 "Libgee is a utility library providing GObject-based interfaces and
4635classes for commonly used data structures.")
4636 (license license:lgpl2.1+)))
b0f9c4b8
RW
4637
4638(define-public gexiv2
4639 (package
4640 (name "gexiv2")
adf0b482 4641 (version "0.10.10")
b0f9c4b8
RW
4642 (source (origin
4643 (method url-fetch)
4644 (uri (string-append "mirror://gnome/sources/" name "/"
4645 (version-major+minor version) "/"
4646 name "-" version ".tar.xz"))
4647 (sha256
4648 (base32
adf0b482 4649 "1qbcwq89g4r67k1dj4laqj441pj4195c8hzhxn8vc6mmg8adg6kx"))))
51c482e4 4650 (build-system meson-build-system)
094aaa1a
LC
4651 (arguments
4652 ;; On 32-bit platforms, the test fails with a rounding error:
4653 ;; <https://bugzilla.gnome.org/show_bug.cgi?id=775249>. Just skip it for
4654 ;; now.
4655 (if (and (not (%current-target-system))
4656 (member (%current-system) '("i686-linux" "armhf-linux")))
4657 '(#:tests? #f)
4658 '()))
b0f9c4b8
RW
4659 (native-inputs
4660 `(("glib" ,glib "bin")
4661 ("pkg-config" ,pkg-config)))
4662 (propagated-inputs
4663 ;; Listed in "Requires" section of gexiv2.pc
4664 `(("exiv2" ,exiv2)))
4665 (inputs
4666 `(("glib" ,glib)
4667 ("gobject-introspection" ,gobject-introspection)))
4668 (home-page "https://wiki.gnome.org/Projects/gexiv2")
4669 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
4670 (description
4671 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
4672allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
4673metadata in photo and video files of various formats.")
4674 (license license:gpl2+)))
fed5a689
RW
4675
4676(define-public shotwell
4677 (package
4678 (name "shotwell")
e266043e 4679 (version "0.28.4")
fed5a689
RW
4680 (source (origin
4681 (method url-fetch)
4682 (uri (string-append "mirror://gnome/sources/" name "/"
4683 (version-major+minor version) "/"
4684 name "-" version ".tar.xz"))
4685 (sha256
4686 (base32
e266043e 4687 "03k7n2kmzqn11kf3733w7m6xjh2b5q9xr84za2hli11fjymzaxm9"))))
fed5a689 4688 (build-system glib-or-gtk-build-system)
735b8db6
TGR
4689 (propagated-inputs
4690 `(("dconf" ,dconf)))
fed5a689
RW
4691 (native-inputs
4692 `(("pkg-config" ,pkg-config)
f819c21d 4693 ("itstool" ,itstool)
b94a6ca0 4694 ("gettext" ,gettext-minimal)
77e9c993 4695 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
735b8db6
TGR
4696 ("itstool" ,itstool)
4697 ("vala" ,vala)))
fed5a689 4698 (inputs
735b8db6
TGR
4699 `(("glib:bin" ,glib "bin")
4700 ("gstreamer" ,gstreamer)
fed5a689 4701 ("gst-plugins-base" ,gst-plugins-base)
dfb0323d 4702 ("libgdata" ,libgdata)
fed5a689
RW
4703 ("libgee" ,libgee)
4704 ("gexiv2" ,gexiv2)
4705 ("libraw" ,libraw)
4706 ("json-glib" ,json-glib)
7108425c 4707 ("webkitgtk" ,webkitgtk)
fed5a689
RW
4708 ("sqlite" ,sqlite)
4709 ("libsoup" ,libsoup)
4710 ("libxml2" ,libxml2)
fed5a689 4711 ("libgudev" ,libgudev)
522fc32e
LF
4712 ("libgphoto2" ,libgphoto2)
4713 ("gcr" ,gcr)))
fed5a689
RW
4714 (home-page "https://wiki.gnome.org/Apps/Shotwell")
4715 (synopsis "Photo manager for GNOME 3")
4716 (description
4717 "Shotwell is a digital photo manager designed for the GNOME desktop
4718environment. It allows you to import photos from disk or camera, organize
4719them by keywords and events, view them in full-window or fullscreen mode, and
4720share them with others via social networking and more.")
4721 (license license:lgpl2.1+)))
293ff8b2
DT
4722
4723(define-public file-roller
4724 (package
4725 (name "file-roller")
0a500745 4726 (version "3.28.0")
293ff8b2
DT
4727 (source (origin
4728 (method url-fetch)
4729 (uri (string-append "mirror://gnome/sources/" name "/"
4730 (version-major+minor version) "/"
4731 name "-" version ".tar.xz"))
4732 (sha256
4733 (base32
0a500745
RW
4734 "15pn2m80x45bzibig4zrqybnbr0n1f9wpqx7f2p6difldns3jwf1"))))
4735 (build-system meson-build-system)
293ff8b2 4736 (native-inputs
0a500745
RW
4737 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
4738 ("intltool" ,intltool)
4739 ("pkg-config" ,pkg-config)
4740 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
4741 ("glib:bin" ,glib "bin")))
293ff8b2
DT
4742 ;; TODO: Add libnautilus.
4743 (inputs
4744 `(("gtk+" ,gtk+)
4745 ("gdk-pixbuf" ,gdk-pixbuf)
4746 ("json-glib" ,json-glib)
4747 ("libarchive" ,libarchive)
4748 ("libnotify" ,libnotify)
4749 ("nettle" ,nettle)
4750 ("itstool" ,itstool)
4751 ("libxml2" ,libxml2)))
4752 (synopsis "Graphical archive manager for GNOME")
4753 (description "File Roller is an archive manager for the GNOME desktop
4754environment that allows users to view, unpack, and create compressed archives
4755such as gzip tarballs.")
4756 (home-page "http://fileroller.sourceforge.net/")
4757 (license license:gpl2+)))
7ce49365
SB
4758
4759(define-public gnome-session
4760 (package
4761 (name "gnome-session")
df278071 4762 (version "3.28.1")
7ce49365
SB
4763 (source (origin
4764 (method url-fetch)
4765 (uri (string-append "mirror://gnome/sources/" name "/"
4766 (version-major+minor version) "/"
4767 name "-" version ".tar.xz"))
4768 (sha256
4769 (base32
df278071 4770 "14nmbirgrp2nm16khbz109saqdlinlbrlhjnbjydpnrlimfgg4xq"))))
2914af3c 4771 (arguments
df278071
RW
4772 '(#:glib-or-gtk? #t
4773 #:phases
2914af3c
AW
4774 (modify-phases %standard-phases
4775 (add-before 'configure 'pre-configure
4776 (lambda* (#:key outputs #:allow-other-keys)
4777 ;; Use elogind instead of systemd.
df278071
RW
4778 (substitute* "meson.build"
4779 (("libsystemd-login") "libelogind")
4780 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
4781 (substitute* "gnome-session/gsm-systemd.c"
4782 (("#include <systemd/sd-login.h>")
4783 "#include <elogind/sd-login.h>"))
df278071 4784 ;; Remove uses of the systemd daemon.
803ab416
SB
4785 (substitute* "gnome-session/gsm-autostart-app.c"
4786 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
4787 #t))
4788 (add-after 'install 'wrap-gnome-session
4789 (lambda* (#:key inputs outputs #:allow-other-keys)
4790 ;; Make sure 'gnome-session' finds the 'gsettings' program.
4791 (let ((glib (assoc-ref inputs "glib:bin"))
4792 (out (assoc-ref outputs "out")))
4793 (wrap-program (string-append out "/bin/gnome-session")
4794 `("PATH" ":" prefix (,(string-append glib "/bin"))))
1d7bff4b
TS
4795 #t)))
4796 (add-after 'install 'add-absolute-paths-to-desktop-files
4797 (lambda* (#:key outputs #:allow-other-keys)
4798 (let* ((out (assoc-ref outputs "out")))
4799 (substitute* (map (lambda (x)
4800 (string-append out "/share/xsessions/" x))
4801 '("gnome.desktop" "gnome-xorg.desktop"))
4802 (("gnome-session") (string-append out "/bin/gnome-session")))
a0d7baaf 4803 #t))))
6cbc8d57 4804
2914af3c 4805 #:configure-flags
df278071
RW
4806 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
4807 "-Dman=false" ; FIXME: disabled because of docbook validation error
4808 "-Dsystemd_journal=false")))
4809 (build-system meson-build-system)
7ce49365
SB
4810 (native-inputs
4811 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4812 ("pkg-config" ,pkg-config)
4813 ("intltool" ,intltool)
df278071
RW
4814 ("xsltproc" ,libxslt)
4815 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4816 ("docbook-xsl" ,docbook-xsl)
4817 ("docbook-xml" ,docbook-xml)
4818 ("xmlto" ,xmlto)))
7ce49365 4819 (inputs
2914af3c
AW
4820 `(("elogind" ,elogind)
4821 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 4822 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
4823 ("gtk+" ,gtk+)
4824 ("json-glib" ,json-glib)
4825 ("libsm" ,libsm)
4826 ("libxcomposite" ,libxcomposite)
4827 ("libxtst" ,libxtst)
4828 ("mesa" ,mesa)
4829 ("upower" ,upower)
4830 ("xtrans" ,xtrans)))
4831 (synopsis "Session manager for GNOME")
4832 (description
4833 "This package contains the GNOME session manager, as well as a
4834configuration program to choose applications starting on login.")
4835 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
4836 (license license:gpl2+)))
f47ba77e
SB
4837
4838(define-public gjs
4839 (package
4840 (name "gjs")
72717817 4841 (version "1.52.3")
f47ba77e
SB
4842 (source (origin
4843 (method url-fetch)
4844 (uri (string-append "mirror://gnome/sources/" name "/"
4845 (version-major+minor version) "/"
4846 name "-" version ".tar.xz"))
4847 (sha256
4848 (base32
72717817 4849 "1z4n15wdz6pbqd2hfzrqc8mmprhv50v4jk43p08v0xv07yldh8ff"))))
f47ba77e
SB
4850 (build-system gnu-build-system)
4851 (arguments
4852 '(#:phases
4853 (modify-phases %standard-phases
4854 (add-before
4855 'check 'pre-check
4856 (lambda _
fc119619
MW
4857 ;; The test suite requires a running X server.
4858 (system "Xvfb :1 &")
4859 (setenv "DISPLAY" ":1")
4860
f47ba77e
SB
4861 ;; For the missing /etc/machine-id.
4862 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 4863
144f94d0
KK
4864 ;; Our mozjs-38 package does not compile the required Intl API
4865 ;; support for these failing tests.
4866 (substitute* "installed-tests/js/testLocale.js"
4867 ((".*toBeDefined.*") "")
4868 ((".*expect\\(datestr\\).*") ""))
f47ba77e
SB
4869 #t)))))
4870 (native-inputs
8a831c6f 4871 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
4872 ("pkg-config" ,pkg-config)
4873 ("xmllint" ,libxml2)
4874 ;; For testing
4875 ("dbus-launch" ,dbus)
4876 ("uuidgen" ,util-linux)
ebebee94 4877 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
4878 (propagated-inputs
4879 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
4880 `(("cairo" ,cairo)
4881 ("gobject-introspection" ,gobject-introspection)
72717817 4882 ("mozjs" ,mozjs-52)))
f47ba77e
SB
4883 (inputs
4884 `(("gtk+" ,gtk+)
4885 ("readline" ,readline)))
4886 (synopsis "Javascript bindings for GNOME")
f032d0be 4887 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
4888 (description
4889 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
4890javascript engine and the GObject introspection framework.")
4891 (license license:gpl2+)))
329d731b
DH
4892
4893(define-public gedit
4894 (package
4895 (name "gedit")
6a29c8d3 4896 (version "3.28.1")
329d731b
DH
4897 (source (origin
4898 (method url-fetch)
4899 (uri (string-append "mirror://gnome/sources/" name "/"
4900 (version-major+minor version) "/"
4901 name "-" version ".tar.xz"))
4902 (sha256
4903 (base32
6a29c8d3 4904 "0791r07d3ixmmfk68lvhp3d5i4vnlrnx10csxwgpfqyfb04vwx7i"))))
329d731b
DH
4905 (build-system glib-or-gtk-build-system)
4906 (arguments
0d2df50c 4907 `(#:phases
329d731b
DH
4908 (modify-phases %standard-phases
4909 (add-after
4910 'install 'wrap-gedit
4911 (lambda* (#:key inputs outputs #:allow-other-keys)
4912 (let ((out (assoc-ref outputs "out"))
4913 (gtksourceview (assoc-ref inputs "gtksourceview"))
afc25242
SB
4914 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4915 (python-path (getenv "PYTHONPATH")))
329d731b 4916 (wrap-program (string-append out "/bin/gedit")
afc25242 4917 ;; For plugins.
329d731b 4918 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
afc25242 4919 `("PYTHONPATH" ":" prefix (,python-path))
329d731b
DH
4920 ;; For language-specs.
4921 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
4922 "/share")))))
4923 #t)))))
4924 (propagated-inputs
4925 `(("dconf" ,dconf)))
4926 (native-inputs
4927 `(("intltool" ,intltool)
b3546174 4928 ("itstool" ,itstool)
329d731b
DH
4929 ("gobject-introspection" ,gobject-introspection)
4930 ("pkg-config" ,pkg-config)))
4931 (inputs
4932 `(("glib" ,glib)
0d2df50c 4933 ("gspell" ,gspell)
329d731b 4934 ("gtk+" ,gtk+)
b54c2289 4935 ("gtksourceview" ,gtksourceview-3)
329d731b
DH
4936 ("libpeas" ,libpeas)
4937 ("libxml2" ,libxml2)
329d731b
DH
4938 ("iso-codes" ,iso-codes)
4939 ("python-pygobject" ,python-pygobject)
4940 ("python" ,python)
4941 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4942 ("libx11" ,libx11)
4943 ("vala" ,vala)
4944 ("adwaita-icon-theme" ,adwaita-icon-theme)
4945 ("libsoup" ,libsoup)
4946 ("gnome-desktop" ,gnome-desktop)))
4947 (home-page "https://wiki.gnome.org/Apps/Gedit")
4948 (synopsis "GNOME text editor")
4949 (description "While aiming at simplicity and ease of use, gedit is a
4950powerful general purpose text editor.")
4951 (license license:gpl2+)))
b7179363
SB
4952
4953(define-public zenity
4954 (package
4955 (name "zenity")
f8e2b577 4956 (version "3.28.1")
b7179363
SB
4957 (source (origin
4958 (method url-fetch)
4959 (uri (string-append "mirror://gnome/sources/" name "/"
4960 (version-major+minor version) "/"
4961 name "-" version ".tar.xz"))
4962 (sha256
4963 (base32
f8e2b577 4964 "0swavrkc5ps3fwzy6h6l5mmim0wwy10xrq0qqkay5d0zf9a965yv"))))
b7179363
SB
4965 (build-system gnu-build-system)
4966 (native-inputs
b94a6ca0 4967 `(("gettext" ,gettext-minimal)
b7179363
SB
4968 ("itstool" ,itstool)
4969 ("pkg-config" ,pkg-config)))
4970 (inputs
4971 `(("libnotify" ,libnotify)
4972 ("webkitgtk" ,webkitgtk)))
4973 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 4974 (home-page "https://www.gnome.org")
b7179363
SB
4975 (description
4976 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
4977to display dialog boxes from the commandline and shell scripts.")
4978 (license license:lgpl2.0+)))
60c3627c
SB
4979
4980(define-public mutter
4981 (package
4982 (name "mutter")
5055d385 4983 (version "3.28.2")
60c3627c 4984 (source (origin
86c44e72
KK
4985 (method url-fetch)
4986 (uri (string-append "mirror://gnome/sources/" name "/"
4987 (version-major+minor version) "/"
4988 name "-" version ".tar.xz"))
60c3627c
SB
4989 (sha256
4990 (base32
5055d385 4991 "0ighs1zvlssgq16v1h3vg280za7y448snq65gc5m1zmqqawqkymg"))))
86c44e72
KK
4992 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
4993 ;; versions of cogl and clutter. As a result, many of the inputs,
4994 ;; propagated-inputs, and configure flags used in cogl and clutter are
4995 ;; needed here as well.
60c3627c
SB
4996 (build-system gnu-build-system)
4997 (arguments
4998 '(#:configure-flags
4999 ;; XXX: build fails with [-Werror]:
5000 ;; backends/meta-cursor-renderer.c:112:5: error:
5001 ;; implicit declaration of function ?roundf?
a88d5a0c
MW
5002 (list "--enable-compile-warnings=minimum"
5003
86c44e72 5004 "--enable-native-backend"
a88d5a0c
MW
5005
5006 ;; The following flags are needed for the bundled clutter
5007 "--enable-x11-backend=yes"
5008
d633f2f6
RH
5009 (string-append "--with-xwayland-path="
5010 (assoc-ref %build-inputs "xorg-server-xwayland")
5011 "/bin/Xwayland")
5012
a88d5a0c
MW
5013 ;; the remaining flags are needed for the bundled cogl
5014 "--enable-cogl-gst"
5015 (string-append "--with-gl-libname="
5016 (assoc-ref %build-inputs "mesa")
f23052a6
DC
5017 "/lib/libGL.so"))
5018 #:phases
5019 (modify-phases %standard-phases
86c44e72
KK
5020 ;; Replace references to systemd libraries to elogind references.
5021 (add-before 'configure 'use-elogind
5022 (lambda _
5023 (substitute* (list "configure"
5024 "src/backends/native/meta-launcher.c"
5025 "src/core/main.c")
5026 (("systemd") "elogind"))
5027 #t)))))
60c3627c
SB
5028 (native-inputs
5029 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5030 ("gobject-introspection" ,gobject-introspection)
5031 ("intltool" ,intltool)
f23052a6
DC
5032 ("pkg-config" ,pkg-config)
5033 ;; For git build
5034 ("autoconf" ,autoconf)
5035 ("automake" ,automake)
5036 ("libtool" ,libtool)))
60c3627c 5037 (propagated-inputs
a88d5a0c
MW
5038 `(;; libmutter.pc refers to these:
5039 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5040 ("gtk+" ,gtk+)
5041 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
5042 ("atk" ,atk)
5043 ("cairo" ,cairo)
5044 ("gdk-pixbuf" ,gdk-pixbuf)
5045 ("glib" ,glib)
a88d5a0c
MW
5046 ("json-glib" ,json-glib)
5047 ("libinput" ,libinput)
5048 ("libx11" ,libx11)
5049 ("libxcomposite" ,libxcomposite)
5050 ("libxdamage" ,libxdamage)
5051 ("libxext" ,libxext)
5052 ("libxfixes" ,libxfixes)
5053 ("libxkbcommon" ,libxkbcommon)
5054 ("libxrandr" ,libxrandr)
5055 ("mesa" ,mesa)
5056 ("pango" ,pango)
5057 ("udev" ,eudev)
a88d5a0c 5058 ("xinput" ,xinput)))
60c3627c 5059 (inputs
86c44e72
KK
5060 `(("elogind" ,elogind)
5061 ("gnome-desktop" ,gnome-desktop)
60c3627c 5062 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 5063 ("libgudev" ,libgudev)
60c3627c
SB
5064 ("libice" ,libice)
5065 ("libsm" ,libsm)
60c3627c 5066 ("libxkbfile" ,libxkbfile)
a88d5a0c 5067 ("libxrandr" ,libxrandr)
86c44e72 5068 ("libxtst" ,libxtst)
60c3627c
SB
5069 ("startup-notification" ,startup-notification)
5070 ("upower-glib" ,upower)
5071 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 5072 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
5073 ("zenity" ,zenity)))
5074 (synopsis "Window and compositing manager")
f032d0be 5075 (home-page "https://www.gnome.org")
60c3627c
SB
5076 (description
5077 "Mutter is a window and compositing manager that displays and manages your
5078desktop via OpenGL. Mutter combines a sophisticated display engine using the
5079Clutter toolkit with solid window-management logic inherited from the Metacity
5080window manager.")
86c44e72 5081 (license license:gpl2+)))
685cee87
SB
5082
5083(define-public gnome-online-accounts
5084 (package
5085 (name "gnome-online-accounts")
fc984c85 5086 (version "3.28.0")
685cee87
SB
5087 (source (origin
5088 (method url-fetch)
5089 (uri (string-append "mirror://gnome/sources/" name "/"
5090 (version-major+minor version) "/"
5091 name "-" version ".tar.xz"))
5092 (sha256
5093 (base32
fc984c85 5094 "035lmm21imr7ddpzffqabv53g3ggjscmqvlzy3j1qkv00zrlxg47"))))
14c297fd 5095 (outputs '("out" "lib"))
685cee87 5096 (build-system glib-or-gtk-build-system)
14c297fd
TS
5097 (arguments
5098 `(#:configure-flags
5099 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
5100 #:phases
5101 (modify-phases %standard-phases
5102 (add-before 'configure 'patch-libgoa-output
5103 (lambda* (#:key outputs #:allow-other-keys)
5104 (let ((lib (assoc-ref outputs "lib")))
5105 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
5106 (("@prefix@") lib)
5107 (("@exec_prefix@") lib)
5108 (("@libdir@") (string-append lib "/lib"))
5109 (("@includedir@") (string-append lib "/include"))
5110 (("@datadir@") (string-append lib "/share")))
5111 #t))))))
685cee87
SB
5112 (native-inputs
5113 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5114 ("gobject-introspection" ,gobject-introspection)
5115 ("intltool" ,intltool)
5116 ("pkg-config" ,pkg-config)
5117 ("xsltproc" ,libxslt)))
5118 (propagated-inputs
5119 `(("glib" ,glib) ; required by goa-1.0.pc
5120 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
5121 (inputs
5122 `(("docbook-xsl" ,docbook-xsl)
5123 ("json-glib" ,json-glib)
5124 ("libsecret" ,libsecret)
5125 ("rest" ,rest)
685cee87
SB
5126 ("webkitgtk" ,webkitgtk)))
5127 (synopsis "Single sign-on framework for GNOME")
5128 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
5129 (description
5130 "GNOME Online Accounts provides interfaces so that applications and
5131libraries in GNOME can access the user's online accounts. It has providers for
5132Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
5133Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
5134 (license license:lgpl2.0+)))
df217748
SB
5135
5136(define-public evolution-data-server
5137 (package
5138 (name "evolution-data-server")
bb10e7c8 5139 (version "3.28.3")
df217748
SB
5140 (source (origin
5141 (method url-fetch)
5142 (uri (string-append "mirror://gnome/sources/" name "/"
5143 (version-major+minor version) "/"
5144 name "-" version ".tar.xz"))
5145 (sha256
5146 (base32
bb10e7c8 5147 "11sq795115vrcgxl9svscm6wg8isjj784c3d84qzb6z47zq92zj3"))))
da43d1cb 5148 (outputs '("out" "libedataserverui"))
743aebd7 5149 (build-system cmake-build-system)
df217748 5150 (arguments
743aebd7 5151 '(;; XXX FIXME: 11/85 tests are failing.
df217748
SB
5152 #:tests? #f
5153 #:configure-flags
ac033c7b
MB
5154 (let* ((lib (string-append (assoc-ref %outputs "out")
5155 "/lib"))
5156 (runpaths (map (lambda (s) (string-append
5157 lib "/evolution-data-server/" s))
5158 '("addressbook-backends" "calendar-backends"
5159 "camel-providers" "credential-modules"
5160 "registry-modules"))))
5161 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
5162 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
5163 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
5164 "-DENABLE_VALA_BINDINGS=ON"
5165 ;; FIXME: Building against ICU 60 requires C++11 or higher. Remove
c97f2f70
MW
5166 ;; "-std=gnu++11" when our default compiler is >= GCC6.
5167 ;; FIXME: Temporarily use "-DU_USING_ICU_NAMESPACE=1" until
5168 ;; evolution-data-server has been updated to qualify ICU types
5169 ;; explicitly, as required by ICU 61 and later. See:
5170 ;; <https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild>
5171 "-DCMAKE_CXX_FLAGS=-std=gnu++11 -DU_USING_ICU_NAMESPACE=1"
ac033c7b
MB
5172 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
5173 (string-append lib "/evolution-data-server;")
5174 (string-join runpaths ";"))
5175 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
5176 #:phases
5177 (modify-phases %standard-phases
743aebd7 5178 (add-after 'unpack 'patch-paths
df217748
SB
5179 (lambda _
5180 (substitute* "tests/test-server-utils/e-test-server-utils.c"
5181 (("/bin/rm") (which "rm")))
ac033c7b
MB
5182 #t))
5183 (add-before 'configure 'dont-override-rpath
5184 (lambda _
5185 (substitute* "CMakeLists.txt"
5186 ;; CMakeLists.txt hard-codes runpath to just the libdir.
5187 ;; Remove it so the configure flag is respected.
5188 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
da43d1cb 5189 #t))
da43d1cb
TS
5190 (add-after 'install 'split
5191 (lambda* (#:key outputs #:allow-other-keys)
5192 (let ((out (assoc-ref outputs "out"))
5193 (libedsui (assoc-ref outputs "libedataserverui")))
5194 (for-each (lambda (file)
5195 (mkdir-p (dirname (string-append libedsui file)))
5196 (rename-file (string-append out file)
5197 (string-append libedsui file)))
5198 '("/lib/pkgconfig/libedataserverui-1.2.pc"
5199 "/lib/libedataserverui-1.2.so"
5200 "/lib/libedataserverui-1.2.so.2"
5201 "/lib/libedataserverui-1.2.so.2.0.0"
5202 "/lib/girepository-1.0/EDataServerUI-1.2.typelib"
5203 "/include/evolution-data-server/libedataserverui"
5204 "/share/gir-1.0/EDataServerUI-1.2.gir"
5205 "/share/vala/vapi/libedataserverui-1.2.vapi"
5206 "/share/vala/vapi/libedataserverui-1.2.deps"))
5207 (substitute* (string-append libedsui "/lib/pkgconfig/"
5208 "libedataserverui-1.2.pc")
5209 ((out) libedsui))
5210 #t))))))
df217748
SB
5211 (native-inputs
5212 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5213 ("gobject-introspection" ,gobject-introspection)
5214 ("gperf" ,gperf)
5215 ("intltool" ,intltool)
5216 ("pkg-config" ,pkg-config)
a73c1cf8 5217 ("vala" ,vala)
743aebd7 5218 ("python" ,python-wrapper)))
df217748
SB
5219 (propagated-inputs
5220 ;; These are all in the Requires field of .pc files.
5221 `(("gtk+" ,gtk+)
5222 ("libical" ,libical)
5223 ("libsecret" ,libsecret)
5224 ("libsoup" ,libsoup)
5225 ("nss" ,nss)
5226 ("sqlite" ,sqlite)))
5227 (inputs
5228 `(("bdb" ,bdb)
5229 ("gcr" ,gcr)
14c297fd 5230 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 5231 ("json-glib" ,json-glib)
743aebd7
MB
5232 ("libgweather" ,libgweather)
5233 ("mit-krb5" ,mit-krb5)
891199c6
MW
5234 ("openldap" ,openldap)
5235 ("webkitgtk" ,webkitgtk)))
df217748
SB
5236 (synopsis "Store address books and calendars")
5237 (home-page "https://wiki.gnome.org/Apps/Evolution")
5238 (description
5239 "This package provides a unified backend for programs that work with
5240contacts, tasks, and calendar information. It was originally developed for
5241Evolution (hence the name), but is now used by other packages as well.")
5242 (license license:lgpl2.0)))
bd7dfafa
SB
5243
5244(define-public caribou
5245 (package
5246 (name "caribou")
fe964bb5 5247 (version "0.4.21")
bd7dfafa
SB
5248 (source (origin
5249 (method url-fetch)
5250 (uri (string-append "mirror://gnome/sources/" name "/"
5251 (version-major+minor version) "/"
5252 name "-" version ".tar.xz"))
5253 (sha256
5254 (base32
fe964bb5 5255 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
5256 (build-system glib-or-gtk-build-system)
5257 (arguments
5258 '(#:phases
5259 (modify-phases %standard-phases
5260 (add-before
5261 'build 'pre-build
5262 (lambda* (#:key outputs #:allow-other-keys)
5263 (let ((out (assoc-ref outputs "out")))
5264 ;; Use absolute shared library path in Caribou-1.0.typelib.
5265 (substitute* "libcaribou/Makefile"
5266 (("--shared-library=libcaribou.so")
5267 (string-append "--shared-library="
5268 out "/lib/libcaribou.so")))
5269 #t)))
5270 (add-after 'install 'wrap-programs
5271 (lambda* (#:key outputs #:allow-other-keys)
5272 (let* ((out (assoc-ref outputs "out"))
5273 (python-path (getenv "PYTHONPATH"))
5274 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5275 (for-each
5276 (lambda (prog)
5277 (wrap-program prog
5278 `("PYTHONPATH" ":" prefix (,python-path))
5279 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5280 (list (string-append out "/bin/caribou-preferences")
5281 (string-append out "/libexec/antler-keyboard"))))
5282 #t)))))
5283 (native-inputs
5284 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5285 ("gobject-introspection" ,gobject-introspection)
5286 ("intltool" ,intltool)
5287 ("pkg-config" ,pkg-config)
5288 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5289 ("vala" ,vala)
5290 ("xsltproc" ,libxslt)))
5291 (propagated-inputs
5292 ;; caribou-1.0.pc refers to all these.
5293 `(("libgee" ,libgee)
5294 ("libxklavier" ,libxklavier)
5295 ("libxtst" ,libxtst)
5296 ("gtk+" ,gtk+)))
5297 (inputs
5298 `(("clutter" ,clutter)
5299 ("dconf" ,dconf)
5300 ("gtk+-2" ,gtk+-2)
5301 ("python-pygobject" ,python2-pygobject)))
5302 (synopsis "Text entry and UI navigation application")
5303 (home-page "https://wiki.gnome.org/Projects/Caribou")
5304 (description
5305 "Caribou is an input assistive technology intended for switch and pointer
5306users.")
5307 (license license:lgpl2.1)))
ba5dd105 5308
ba5dd105
SB
5309(define-public network-manager
5310 (package
5311 (name "network-manager")
45f80fce 5312 (version "1.10.10")
ba5dd105
SB
5313 (source (origin
5314 (method url-fetch)
5315 (uri (string-append "mirror://gnome/sources/NetworkManager/"
5316 (version-major+minor version) "/"
5317 "NetworkManager-" version ".tar.xz"))
7d1861e2 5318 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
5319 (sha256
5320 (base32
45f80fce 5321 "1jn3g0f2x1irc88awqp8m3gnpdx1whqqqbdgkbgr4x55s702jki4"))
fd070f35
CM
5322 (snippet
5323 '(begin
5324 (use-modules (guix build utils))
5325 (substitute* "configure"
5326 ;; Replace libsystemd-login with libelogind.
5327 (("libsystemd-login") "libelogind"))
5328 (substitute* "src/devices/wwan/nm-modem-manager.c"
5329 (("systemd") "elogind"))
5330 (substitute* "src/nm-session-monitor.c"
5331 (("systemd") "elogind"))
5332 (substitute* "./src/nm-logging.c"
6cbee49d
MW
5333 (("systemd") "elogind"))
5334 #t))))
ba5dd105
SB
5335 (build-system gnu-build-system)
5336 (outputs '("out"
5337 "doc")) ; 8 MiB of gtk-doc HTML
5338 (arguments
5339 '(#:configure-flags
5340 (let ((out (assoc-ref %outputs "out"))
5341 (doc (assoc-ref %outputs "doc"))
5342 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
5343 "/sbin/dhclient")))
59e80445 5344 (list "--with-systemd-logind=yes" ;In Guix System, this is provided by elogind.
fd070f35
CM
5345 "--with-consolekit=no"
5346 "--with-crypto=gnutls"
ba5dd105
SB
5347 "--disable-config-plugin-ibft"
5348 "--sysconfdir=/etc"
5349 "--localstatedir=/var"
5350 (string-append "--with-udev-dir="
5351 out "/lib/udev")
5352 (string-append "--with-dbus-sys-dir="
5353 out "/etc/dbus-1/system.d")
5354 (string-append "--with-html-dir="
5355 doc "/share/gtk-doc/html")
5356 (string-append "--with-dhclient=" dhclient)))
5357 #:phases
5358 (modify-phases %standard-phases
b4f59d87
AW
5359 (add-before 'configure 'pre-configure
5360 (lambda _
5361 ;; These tests try to test aspects of network-manager's
5362 ;; functionality within restricted containers, but they don't
5363 ;; cope with being already in the Guix build jail as that jail
5364 ;; lacks some features that they would like to proxy over (like
5365 ;; a /sys mount).
d04687dc
HG
5366 (substitute* '("Makefile.in")
5367 (("src/platform/tests/test-address-linux") " ")
5368 (("src/platform/tests/test-cleanup-linux") " ")
5369 (("src/platform/tests/test-link-linux") " ")
5370 (("src/platform/tests/test-route-linux") " ")
5371 (("src/devices/tests/test-arping") " ")
5372 (("src/devices/tests/test-lldp") " ")
5373 (("src/tests/test-route-manager-linux") " "))
b4f59d87 5374 #t))
45f80fce
RW
5375 (add-after 'unpack 'delete-failing-tests
5376 (lambda _
5377 ;; FIXME: These four tests fail for unknown reasons.
5378 ;; ERROR:libnm-core/tests/test-general.c:5842:
5379 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
5380 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
5381 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
5382 ;; ERROR:libnm-core/tests/test-setting.c:907:
5383 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
5384 ;; NetworkManager:ERROR:src/platform/tests/test-nmp-object.c:397:
5385 ;; test_cache_link: assertion failed: (nmp_object_is_visible (obj_new))
5386 (substitute* "Makefile.in"
5387 (("libnm-core/tests/test-general") " ")
5388 (("libnm-core/tests/test-keyfile") " ")
5389 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " ")
5390 (("src/platform/tests/test-nmp-object") " "))
5391 #t))
ba5dd105
SB
5392 (add-before 'check 'pre-check
5393 (lambda _
5394 ;; For the missing /etc/machine-id.
5395 (setenv "DBUS_FATAL_WARNINGS" "0")
5396 #t))
5397 (replace 'install
5398 (lambda _
45f80fce
RW
5399 (invoke "make"
5400 "sysconfdir=/tmp"
5401 "rundir=/tmp"
5402 "statedir=/tmp"
5403 "nmstatedir=/tmp/nm"
5404 "install")
5405 #t)))))
b93502d6
DC
5406 (propagated-inputs
5407 `(("glib" ,glib)))
ba5dd105
SB
5408 (native-inputs
5409 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
5410 ("gobject-introspection" ,gobject-introspection)
d04687dc 5411 ("docbook-xsl" ,docbook-xsl)
ba5dd105 5412 ("intltool" ,intltool)
d04687dc
HG
5413 ("libxslt" ,libxslt)
5414 ("libxml2" ,libxml2)
ba5dd105
SB
5415 ("pkg-config" ,pkg-config)
5416 ;; For testing.
5417 ("python" ,python-wrapper)
5418 ("python-dbus" ,python-dbus)
5419 ("python-pygobject" ,python-pygobject)))
5420 (inputs
856ca567
KK
5421 `(("curl" ,curl)
5422 ("cyrus-sasl" ,cyrus-sasl)
5423 ("dbus-glib" ,dbus-glib)
ba5dd105 5424 ("dnsmasq" ,dnsmasq)
856ca567 5425 ("eudev" ,eudev)
ba5dd105
SB
5426 ("gnutls" ,gnutls)
5427 ("iptables" ,iptables)
5428 ("isc-dhcp" ,isc-dhcp)
d04687dc 5429 ("jansson" ,jansson)
ba5dd105
SB
5430 ("libgcrypt" ,libgcrypt)
5431 ("libgudev" ,libgudev)
5432 ("libndp" ,libndp)
5433 ("libnl" ,libnl)
5434 ("libsoup" ,libsoup)
142bdcbc 5435 ("modem-manager" ,modem-manager)
c27e02bf 5436 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
5437 ("polkit" ,polkit)
5438 ("ppp" ,ppp)
5439 ("readline" ,readline)
fd070f35
CM
5440 ("util-linux" ,util-linux)
5441 ("elogind" ,elogind)))
ba5dd105 5442 (synopsis "Network connection manager")
f032d0be 5443 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
5444 (description
5445 "NetworkManager is a system network service that manages your network
5446devices and connections, attempting to keep active network connectivity when
5447available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
5448devices, and provides VPN integration with a variety of different VPN
5449services.")
29d2f451
LC
5450 (license license:gpl2+)
5451 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 5452
f2b96b3a
LC
5453(define-public network-manager-openvpn
5454 (package
5455 (name "network-manager-openvpn")
0310eb96 5456 (version "1.8.4")
f2b96b3a
LC
5457 (source (origin
5458 (method url-fetch)
5459 (uri (string-append
5460 "mirror://gnome/sources/NetworkManager-openvpn/"
5461 (version-major+minor version)
5462 "/NetworkManager-openvpn-" version ".tar.xz"))
5463 (sha256
5464 (base32
0310eb96 5465 "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"))))
f2b96b3a
LC
5466 (build-system gnu-build-system)
5467 (arguments
633422b0
JL
5468 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
5469 #:phases
5470 (modify-phases %standard-phases
5471 (add-after 'configure 'patch-path
5472 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
5473 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
5474 "/sbin/openvpn"))
5475 (modprobe (string-append (assoc-ref inputs "kmod")
5476 "/bin/modprobe"))
5477 (pretty-ovpn (string-append "\"" ovpn "\"")))
5478 (for-each
5479 (lambda (file)
5480 (substitute* file
5481 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
5482 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
5483 (("\"/sbin/openvpn\"") pretty-ovpn)
5484 (("/sbin/modprobe") modprobe)))
5485 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
5486 #t)))))
f2b96b3a
LC
5487 (native-inputs
5488 `(("pkg-config" ,pkg-config)
5489 ("intltool" ,intltool)))
5490 (inputs
5491 `(("gtk+" ,gtk+)
633422b0 5492 ("kmod" ,kmod)
f2b96b3a
LC
5493 ("openvpn" ,openvpn)
5494 ("network-manager" ,network-manager)
5495 ("network-manager-applet" ,network-manager-applet) ;for libnma
5496 ("libsecret" ,libsecret)))
5497 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
5498 (synopsis "OpenVPN plug-in for NetworkManager")
5499 (description
5500 "This extension of NetworkManager allows it to take care of connections
5501to virtual private networks (VPNs) via OpenVPN.")
5502 (license license:gpl2+)
5503 (properties `((upstream-name . "NetworkManager-openvpn")))))
5504
d376129f
JL
5505(define-public network-manager-vpnc
5506 (package
5507 (name "network-manager-vpnc")
5508 (version "1.2.6")
5509 (source (origin
5510 (method url-fetch)
5511 (uri (string-append
5512 "mirror://gnome/sources/NetworkManager-vpnc/"
5513 (version-major+minor version)
5514 "/NetworkManager-vpnc-" version ".tar.xz"))
5515 (sha256
5516 (base32
5517 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
5518 (build-system gnu-build-system)
5519 (arguments
5520 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
5521 #:phases
5522 (modify-phases %standard-phases
5523 (add-after 'configure 'patch-path
5524 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
5525 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
5526 "/sbin/vpnc"))
5527 (modprobe (string-append (assoc-ref inputs "kmod")
5528 "/bin/modprobe"))
5529 (pretty-ovpn (string-append "\"" vpnc "\"")))
5530 (substitute* "src/nm-vpnc-service.c"
5531 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
5532 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
5533 (("\"/sbin/vpnc\"") pretty-ovpn)
5534 (("/sbin/modprobe") modprobe)))
5535 #t)))))
5536 (native-inputs
5537 `(("pkg-config" ,pkg-config)
5538 ("intltool" ,intltool)))
5539 (inputs
5540 `(("gtk+" ,gtk+)
5541 ("kmod" ,kmod)
5542 ("vpnc" ,vpnc)
5543 ("network-manager" ,network-manager)
5544 ("network-manager-applet" ,network-manager-applet) ;for libnma
5545 ("libsecret" ,libsecret)))
5546 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
5547 (synopsis "VPNC plug-in for NetworkManager")
5548 (description
5549 "Support for configuring virtual private networks based on VPNC.
5550Compatible with Cisco VPN concentrators configured to use IPsec.")
5551 (license license:gpl2+)
5552 (properties `((upstream-name . "NetworkManager-vpnc")))))
5553
8378c87a
EF
5554(define-public network-manager-openconnect
5555 (package
5556 (name "network-manager-openconnect")
5557 (version "1.2.6")
5558 (source (origin
5559 (method url-fetch)
5560 (uri (string-append
5561 "mirror://gnome/sources/NetworkManager-openconnect/"
5562 (version-major+minor version)
5563 "/NetworkManager-openconnect-" version ".tar.xz"))
5564 (sha256
5565 (base32
5566 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
5567 (build-system gnu-build-system)
5568 (arguments
5569 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
5570 #:phases
5571 (modify-phases %standard-phases
5572 (add-after 'configure 'patch-path
5573 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
5574 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
5575 "/sbin/openconnect"))
5576 (modprobe (string-append (assoc-ref inputs "kmod")
5577 "/bin/modprobe"))
5578 (pretty-ovpn (string-append "\"" openconnect "\"")))
5579 (substitute* "src/nm-openconnect-service.c"
5580 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
5581 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
5582 (("/sbin/modprobe") modprobe)))
5583 #t)))))
5584 (native-inputs
5585 `(("intltool" ,intltool)
5586 ("network-manager-applet" ,network-manager-applet) ;for libnma
5587 ("pkg-config" ,pkg-config)))
5588 (inputs
5589 `(("gcr" ,gcr)
5590 ("gtk+" ,gtk+)
5591 ("kmod" ,kmod)
5592 ("libsecret" ,libsecret)
5593 ("libxml2" ,libxml2)
5594 ("network-manager" ,network-manager)
5595 ("openconnect" ,openconnect)))
5596 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
5597 (synopsis "OpenConnect plug-in for NetworkManager")
5598 (description
5599 "This extension of NetworkManager allows it to take care of connections
5600to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
5601Cisco's AnyConnect SSL VPN.")
5602 (license license:gpl2+)
5603 (properties `((upstream-name . "NetworkManager-openconnect")))))
5604
e5e1df4d
DC
5605(define-public mobile-broadband-provider-info
5606 (package
5607 (name "mobile-broadband-provider-info")
310c89e3 5608 (version "20190116")
e5e1df4d
DC
5609 (source (origin
5610 (method url-fetch)
5611 (uri (string-append
5612 "mirror://gnome/sources/"
5613 "mobile-broadband-provider-info/" version "/"
5614 "mobile-broadband-provider-info-" version ".tar.xz"))
5615 (sha256
5616 (base32
310c89e3 5617 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
5618 (build-system gnu-build-system)
5619 (arguments
310c89e3 5620 `(#:tests? #f)) ; no tests
e5e1df4d
DC
5621 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
5622 (synopsis "Database of broadband connection configuration")
5623 (description "Database of broadband connection configuration.")
5624 (license license:public-domain)))
5625
4d62a9d3
SB
5626(define-public network-manager-applet
5627 (package
5628 (name "network-manager-applet")
9f475e3c 5629 (version "1.8.14")
4d62a9d3
SB
5630 (source (origin
5631 (method url-fetch)
5632 (uri (string-append "mirror://gnome/sources/" name "/"
5633 (version-major+minor version) "/"
5634 name "-" version ".tar.xz"))
5635 (sha256
5636 (base32
9f475e3c 5637 "1js0i2kwfklahsn77qgxzdscy33drrlym3mrj1qhlw0zf8ri56ya"))))
4d62a9d3 5638 (build-system glib-or-gtk-build-system)
3e9c80b2
FP
5639 (arguments '(#:configure-flags '("--disable-migration")
5640 #:phases
5641 (modify-phases %standard-phases
5642 (add-after 'unpack 'patch-source
5643 (lambda* (#:key inputs #:allow-other-keys)
5644 (let ((mbpi (assoc-ref inputs
5645 "mobile-broadband-provider-info"))
5646 (iso-codes (assoc-ref inputs "iso-codes")))
5647 (substitute* "src/libnma/nma-mobile-providers.c"
5648 (("(g_build_filename \\()dirs\\[i\\].*,\
5649 (MOBILE_BROADBAND_PROVIDER_INFO.*)" all start end)
5650 (string-append start "\"" mbpi "/share\", " end)))
5651 (substitute* "src/libnma/nma-mobile-providers.c"
5652 (("(g_build_filename \\()dirs\\[i\\].*,\
5653 (ISO_3166_COUNTRY_CODES.*)" all start end)
5654 (string-append start "\"" iso-codes
5655 "/share\", " end)))
5656 #t))))))
4d62a9d3
SB
5657 (native-inputs
5658 `(("intltool" ,intltool)
5659 ("gobject-introspection" ,gobject-introspection)
5660 ("pkg-config" ,pkg-config)))
5661 (propagated-inputs
5662 ;; libnm-gtk.pc refers to all these.
5663 `(("dbus-glib" ,dbus-glib)
5664 ("gtk+" ,gtk+)
5665 ("network-manager" ,network-manager)))
5666 (inputs
5667 `(("iso-codes" ,iso-codes)
5668 ("libgudev" ,libgudev)
5669 ("libnotify" ,libnotify)
2116bfb3 5670 ("libsecret" ,libsecret)
240cee8a
KK
5671 ("libselinux" ,libselinux)
5672 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
5673 ("modem-manager" ,modem-manager)
5674 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 5675 (synopsis "Applet for managing network connections")
f032d0be 5676 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
5677 (description
5678 "This package contains a systray applet for NetworkManager. It displays
5679the available networks and allows users to easily switch between them.")
5680 (license license:gpl2+)))
56196594
RW
5681
5682(define-public libxml++
5683 (package
5684 (name "libxml++")
8344a85e 5685 (version "3.0.1")
56196594
RW
5686 (source (origin
5687 (method url-fetch)
5688 (uri (string-append "mirror://gnome/sources/" name "/"
5689 (version-major+minor version) "/"
5690 name "-" version ".tar.xz"))
5691 (sha256
5692 (base32
8344a85e 5693 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
5694 (build-system gnu-build-system)
5695 ;; libxml++-3.0.pc refers to all these.
5696 (propagated-inputs
5697 `(("libxml2" ,libxml2)
5698 ("glibmm" ,glibmm)))
5699 (native-inputs
5700 `(("perl" ,perl)
5701 ("pkg-config" ,pkg-config)))
5702 (home-page "http://libxmlplusplus.sourceforge.net/")
5703 (synopsis "C++ wrapper for XML parser library libxml2")
5704 (description
5705 "This package provides a C++ wrapper for the XML parser library
5706libxml2.")
5707 (license license:lgpl2.1+)))
df12f04a 5708
b61d9627
AW
5709(define-public libxml++-2
5710 (package
5711 (inherit libxml++)
5712 (name "libxml++")
5713 (version "2.40.1")
5714 (source (origin
5715 (method url-fetch)
5716 (uri (string-append "mirror://gnome/sources/" name "/"
5717 (version-major+minor version) "/"
5718 name "-" version ".tar.xz"))
5719 (sha256
5720 (base32
5721 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
5722
df12f04a
SB
5723(define-public gdm
5724 (package
5725 (name "gdm")
0a76f2bd 5726 (version "3.28.2")
df12f04a
SB
5727 (source (origin
5728 (method url-fetch)
5729 (uri (string-append "mirror://gnome/sources/" name "/"
5730 (version-major+minor version) "/"
5731 name "-" version ".tar.xz"))
feccc810 5732 (patches (search-patches "gdm-CVE-2018-14424.patch"))
df12f04a
SB
5733 (sha256
5734 (base32
0a76f2bd 5735 "0wdm1503x66n1crdlmzmincbd2hccpxsdgjsl5anx3yjpdzs0hb0"))))
957dbc0a 5736 (build-system glib-or-gtk-build-system)
df12f04a
SB
5737 (arguments
5738 '(#:configure-flags
af37e6bb 5739 `("--without-plymouth"
957dbc0a 5740 "--disable-systemd-journal"
51bc8357
TS
5741
5742 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
5743 ;; instead of having to replace it (i.e., stopping the mingetty
5744 ;; service for TTY 1 before starting GDM).
5745 "--with-initial-vt=7"
5746
89c86562
TS
5747 ;; Use '/etc/environment' for locale settings instead of the
5748 ;; systemd-specific '/etc/locale.conf'.
5749 "--with-lang-file=/etc/environment"
5750
af37e6bb
AW
5751 "--localstatedir=/var"
5752 ,(string-append "--with-default-path="
5753 (string-join '("/run/setuid-programs"
5754 "/run/current-system/profile/bin"
5755 "/run/current-system/profile/sbin")
957dbc0a
AW
5756 ":"))
5757 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
5758 ;; XDG_DATA_DIRS so that it finds its schemas.
5759 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
5760 #:phases
5761 (modify-phases %standard-phases
5762 (add-before
5763 'configure 'pre-configure
e8c6e771 5764 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
5765 ;; We don't have <systemd/sd-daemon.h>.
5766 (substitute* '("common/gdm-log.c"
5767 "daemon/gdm-server.c"
5768 "daemon/gdm-session-worker.c"
5769 "daemon/gdm-session-worker-job.c")
5770 (("#include <systemd/sd-daemon\\.h>") ""))
5771 ;; Use elogind for sd-login.
5772 (substitute* '("common/gdm-common.c"
5773 "daemon/gdm-manager.c"
5774 "libgdm/gdm-user-switching.c")
5775 (("#include <systemd/sd-login\\.h>")
5776 "#include <elogind/sd-login.h>"))
957dbc0a
AW
5777 ;; Check for elogind.
5778 (substitute* '("configure")
5779 (("libsystemd")
5780 "libelogind"))
af37e6bb
AW
5781 ;; Look for system-installed sessions in
5782 ;; /run/current-system/profile/share.
5783 (substitute* '("libgdm/gdm-sessions.c"
5784 "daemon/gdm-session.c"
5785 "daemon/gdm-display.c"
5786 "daemon/gdm-launch-environment.c")
5787 (("DATADIR \"/x")
5788 "\"/run/current-system/profile/share/x")
5789 (("DATADIR \"/wayland")
5790 "\"/run/current-system/profile/share/wayland")
5791 (("DATADIR \"/gnome")
5792 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 5793 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 5794 "GDM_DBUS_DAEMON"
c9ff92b5 5795 "GDM_X_SERVER"
41fa9f18 5796 "GDM_X_SESSION"
c9ff92b5
TS
5797 ;; XXX: Remove this once GNOME Shell is
5798 ;; a dependency of GDM.
5799 "XDG_DATA_DIRS")))
5800 (substitute* "daemon/gdm-session.c"
5801 (("set_up_session_environment \\(self\\);")
5802 (apply string-append
5803 "set_up_session_environment (self);\n"
5804 (map (lambda (name)
5805 (string-append
5806 "gdm_session_set_environment_variable "
5807 "(self, \"" name "\","
5808 "g_getenv (\"" name "\"));\n"))
5809 propagate)))))
a430a350
TS
5810 ;; Find the configuration file using an environment variable.
5811 (substitute* '("common/gdm-settings.c")
e0e6756f 5812 (("GDM_CUSTOM_CONF")
e57c2adb
TS
5813 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
5814 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
5815 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
5816 ;; Use service-supplied path to X.
5817 (substitute* '("daemon/gdm-server.c")
5818 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
5819 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
5820 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
5821 (("\"dbus-daemon\"")
5822 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 5823 (("X_SERVER")
41fa9f18
TS
5824 "g_getenv (\"GDM_X_SERVER\")")
5825 (("GDMCONFDIR \"/Xsession\"")
5826 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
5827 ;; Use an absolute path for GNOME Session.
5828 (substitute* "daemon/gdm-launch-environment.c"
5829 (("\"gnome-session\"")
5830 (string-append "\"" (assoc-ref inputs "gnome-session")
5831 "/bin/gnome-session\"")))
e8c6e771
TS
5832 ;; Do not automatically select the placeholder session.
5833 (substitute* "daemon/gdm-session.c"
5834 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
5835 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
5836 "(g_strcmp0(search_dirs[i], \""
5837 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
5838 "\") == 0 && "
5839 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
5840 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
5841 "{ self->priv->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 5842 #t))
8caa4589
TS
5843 ;; GDM requires that there be at least one desktop entry
5844 ;; file. This phase installs a hidden one that simply
5845 ;; fails. This enables users to use GDM with a
5846 ;; '~/.xsession' script with no other desktop entry files.
5847 ;; See <https://bugs.gnu.org/35068>.
5848 (add-after 'install 'install-placeholder-desktop-entry
5849 (lambda* (#:key inputs outputs #:allow-other-keys)
5850 (let* ((out (assoc-ref outputs "out"))
5851 (sessions (string-append out "/share/gdm/BuiltInSessions"))
5852 (fail (string-append sessions "/fail.desktop")))
5853 (mkdir-p sessions)
5854 (with-output-to-file fail
5855 (lambda ()
5856 (for-each
5857 display
5858 '("[Desktop Entry]\n"
5859 "Encoding=UTF-8\n"
5860 "Type=Application\n"
5861 "Name=Fail\n"
5862 "Comment=This session fails immediately.\n"
5863 "NoDisplay=true\n"
5864 "Exec=false\n"))))
5865 #t)))
69544798
TS
5866 ;; GDM needs GNOME Session to run these applications. We link
5867 ;; their autostart files in `share/gdm/greeter/autostart'
5868 ;; because GDM explicitly tells GNOME Session to look there.
5869 ;;
5870 ;; XXX: GNOME Shell should be linked here too, but currently
5871 ;; GNOME Shell depends on GDM.
5872 (add-after 'install 'link-autostart-files
5873 (lambda* (#:key inputs outputs #:allow-other-keys)
5874 (let* ((out (assoc-ref outputs "out"))
5875 (autostart (string-append out "/share/gdm/"
5876 "greeter/autostart"))
5877 (settings (assoc-ref inputs "gnome-settings-daemon")))
5878 (mkdir-p autostart)
5879 (with-directory-excursion autostart
5880 (for-each (lambda (desktop)
5881 (symlink desktop (basename desktop)))
5882 (find-files (string-append settings "/etc/xdg"))))
5883 #t))))))
df12f04a
SB
5884 (native-inputs
5885 `(("dconf" ,dconf)
5886 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5887 ("gobject-introspection" ,gobject-introspection)
5888 ("intltool" ,intltool)
5889 ("itstool" ,itstool)
5890 ("pkg-config" ,pkg-config)
5891 ("xmllint" ,libxml2)))
5892 (inputs
5893 `(("accountsservice" ,accountsservice)
5894 ("check" ,check) ; for testing
5895 ("elogind" ,elogind)
def6d6b6 5896 ("gnome-session" ,gnome-session)
69544798 5897 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
5898 ("gtk+" ,gtk+)
5899 ("iso-codes" ,iso-codes)
5900 ("libcanberra" ,libcanberra)
5901 ("linux-pam" ,linux-pam)))
5902 (synopsis "Display manager for GNOME")
f032d0be 5903 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
5904 (description
5905 "GNOME Display Manager is a system service that is responsible for
5906providing graphical log-ins and managing local and remote displays.")
5907 (license license:gpl2+)))
8e1dd04f
SB
5908
5909(define-public libgtop
5910 (package
5911 (name "libgtop")
4f80158d 5912 (version "2.38.0")
8e1dd04f
SB
5913 (source (origin
5914 (method url-fetch)
5915 (uri (string-append "mirror://gnome/sources/" name "/"
5916 (version-major+minor version) "/"
5917 name "-" version ".tar.xz"))
5918 (sha256
5919 (base32
4f80158d 5920 "04mnxgzyb26wqk6qij4iw8cxwl82r8pcsna5dg8vz2j3pdi0wv2g"))))
8e1dd04f
SB
5921 (build-system gnu-build-system)
5922 (native-inputs
5923 `(("gobject-introspection" ,gobject-introspection)
5924 ("intltool" ,intltool)
5925 ("perl" ,perl)
5926 ("pkg-config" ,pkg-config)))
5927 (propagated-inputs
5928 `(("glib" ,glib))) ; required by libgtop-2.0.pc
5929 (synopsis "Portable system access library")
5930 (home-page "https://www.gnome.org/")
5931 (description
5932 "LibGTop is a library to get system specific data such as CPU and memory
5933usage and information about running processes.")
5934 (license license:gpl2+)))
b96c4260
SB
5935
5936(define-public gnome-bluetooth
5937 (package
5938 (name "gnome-bluetooth")
fd3b1171 5939 (version "3.28.0")
b96c4260
SB
5940 (source (origin
5941 (method url-fetch)
5942 (uri (string-append "mirror://gnome/sources/" name "/"
5943 (version-major+minor version) "/"
5944 name "-" version ".tar.xz"))
5945 (sha256
5946 (base32
fd3b1171
RW
5947 "0q7yzklrlayj99risj096mr5x35anx94wvr6nbf6pwbvvzv7453p"))))
5948 (build-system meson-build-system)
b96c4260
SB
5949 (native-inputs
5950 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 5951 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
5952 ("gobject-introspection" ,gobject-introspection)
5953 ("intltool" ,intltool)
5954 ("pkg-config" ,pkg-config)
5955 ("xmllint" ,libxml2)))
5956 (propagated-inputs
5957 ;; gnome-bluetooth-1.0.pc refers to all these.
5958 `(("gtk+" ,gtk+)
5959 ("udev" ,eudev)))
5960 (inputs
5961 `(("libcanberra" ,libcanberra)
5962 ("libnotify" ,libnotify)))
5963 (synopsis "GNOME Bluetooth subsystem")
5964 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
5965 (description
5966 "This package contains tools for managing and manipulating Bluetooth
5967devices using the GNOME desktop.")
5968 (license license:lgpl2.1+)))
b645146f
SB
5969
5970(define-public gnome-control-center
5971 (package
5972 (name "gnome-control-center")
59dac026 5973 (version "3.28.2")
b645146f
SB
5974 (source (origin
5975 (method url-fetch)
5976 (uri (string-append "mirror://gnome/sources/" name "/"
5977 (version-major+minor version) "/"
5978 name "-" version ".tar.xz"))
5979 (sha256
5980 (base32
59dac026
RW
5981 "0d6pjdbsra16nav8201kaadja5yma92bhziki9601ilk2ry3v7pz"))))
5982 (build-system meson-build-system)
b645146f 5983 (arguments
59dac026
RW
5984 '(#:glib-or-gtk? #t
5985 #:configure-flags
64c70430
KK
5986 (list "-Dcheese=false"
5987 (string-append "-Dgnome_session_libexecdir="
5988 (assoc-ref %build-inputs "gnome-session")
5989 "/libexec"))
59dac026 5990 #:phases
b645146f
SB
5991 (modify-phases %standard-phases
5992 (add-before 'configure 'patch-paths
5993 (lambda* (#:key inputs #:allow-other-keys)
5994 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 5995 (tzdata (assoc-ref inputs "tzdata"))
341225ac 5996 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
5997 (nm-applet (assoc-ref inputs "network-manager-applet"))
5998 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
5999 (substitute* "panels/datetime/tz.h"
6000 (("/usr/share/zoneinfo/zone.tab")
6001 (string-append tzdata "/share/zoneinfo/zone.tab")))
6002 (substitute* "panels/datetime/test-endianess.c"
6003 (("/usr/share/locale")
6004 (string-append libc "/share/locale")))
1df38cfc
LC
6005 (substitute* "panels/region/cc-region-panel.c"
6006 (("\"gkbd-keyboard-display")
6007 (string-append "\"" libgnomekbd
6008 "/bin/gkbd-keyboard-display")))
341225ac
LC
6009 (substitute* '("panels/network/net-device-wifi.c"
6010 "panels/network/net-device.c"
6011 "panels/network/connection-editor/net-connection-editor.c")
6012 (("\"nm-connection-editor")
6013 (string-append "\"" nm-applet
6014 "/bin/nm-connection-editor")))
1acd107c
FP
6015 (substitute* '("panels/user-accounts/run-passwd.c")
6016 (("/usr/bin/passwd")
6017 "/run/setuid-programs/passwd"))
64c70430
KK
6018 (substitute* "panels/info/cc-info-overview-panel.c"
6019 (("DATADIR \"/gnome/gnome-version.xml\"")
6020 (string-append "\"" gnome-desktop
6021 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
6022 #t))))))
6023 (native-inputs
6024 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 6025 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
6026 ("intltool" ,intltool)
6027 ("pkg-config" ,pkg-config)
6028 ("xsltproc" ,libxslt)))
6029 (inputs
6030 `(("accountsservice" ,accountsservice)
6031 ("clutter-gtk" ,clutter-gtk)
6032 ("colord-gtk" ,colord-gtk)
6033 ("cups" ,cups)
6034 ("dconf" ,dconf)
6035 ("docbook-xsl" ,docbook-xsl)
3446ffb5 6036 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
6037 ("gnome-bluetooth" ,gnome-bluetooth)
6038 ("gnome-desktop" ,gnome-desktop)
6039 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 6040 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 6041 ("gnome-session" ,gnome-session)
b645146f
SB
6042 ("gnome-settings-daemon" ,gnome-settings-daemon)
6043 ("grilo" ,grilo)
6044 ("ibus" ,ibus)
6045 ("libcanberra" ,libcanberra)
1df38cfc 6046 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
6047 ("libgudev" ,libgudev)
6048 ("libgtop" ,libgtop)
6049 ("libpwquality" ,libpwquality)
6050 ("libsoup" ,libsoup)
6051 ("libxml2" ,libxml2)
6052 ("libwacom" ,libwacom)
6053 ("mesa" ,mesa)
6054 ("mit-krb5" ,mit-krb5)
6055 ("modem-manager" ,modem-manager)
6056 ("network-manager-applet" ,network-manager-applet)
6057 ("polkit" ,polkit)
6058 ("pulseaudio" ,pulseaudio)
6059 ("smbclient" ,samba)
6060 ("tzdata" ,tzdata)
6061 ("upower" ,upower)))
6062 (synopsis "Utilities to configure the GNOME desktop")
6063 (home-page "https://www.gnome.org/")
6064 (description
6065 "This package contains configuration applets for the GNOME desktop,
6066allowing to set accessibility configuration, desktop fonts, keyboard and mouse
6067properties, sound setup, desktop theme and background, user interface
6068properties, screen resolution, and other GNOME parameters.")
6069 (license license:gpl2+)))
a4df5756
SB
6070
6071(define-public gnome-shell
6072 (package
6073 (name "gnome-shell")
2b0c755d 6074 (version "3.28.2")
a4df5756
SB
6075 (source (origin
6076 (method url-fetch)
6077 (uri (string-append "mirror://gnome/sources/" name "/"
6078 (version-major+minor version) "/"
6079 name "-" version ".tar.xz"))
6080 (sha256
6081 (base32
2b0c755d 6082 "1b9n89ij2g5nqaqp7a13jnqcd8qa2v9p55rbi71al3xvqk091ri7"))
a76d0f03
LC
6083 (patches (search-patches "gnome-shell-theme.patch"))
6084 (modules '((guix build utils)))
6085 (snippet
6086 #~(begin
a76d0f03
LC
6087 ;; Copy images for use on the GDM log-in screen.
6088 (copy-file #$(file-append %artwork-repository
6089 "/slim/0.x/background.png")
6090 "data/theme/guix-background.png")
45fef894
LC
6091 (copy-file #$(file-append %artwork-repository
6092 "/logo/Guix-horizontal-white.svg")
6093 "data/theme/guix-logo.svg")
a76d0f03 6094 #t))))
2b0c755d 6095 (build-system meson-build-system)
a4df5756 6096 (arguments
08185081
MB
6097 `(#:glib-or-gtk? #t
6098 #:disallowed-references ((,glib "bin")
11e1df56
LC
6099 ,inkscape ,libxslt
6100 ,ruby-sass)
2b0c755d
RW
6101 #:configure-flags
6102 (list "-Dsystemd=false"
6103 ;; Otherwise, the RUNPATH will lack the final path component.
6104 (string-append "-Dc_link_args=-Wl,-rpath="
6105 (assoc-ref %outputs "out")
6106 "/lib/gnome-shell"))
11e1df56 6107
08185081 6108 #:modules ((guix build meson-build-system)
11e1df56
LC
6109 (guix build utils)
6110 (srfi srfi-1))
6111
6112 #:phases
a4df5756 6113 (modify-phases %standard-phases
2b0c755d 6114 (add-after 'unpack 'fix-keysdir
a4df5756
SB
6115 (lambda* (#:key outputs #:allow-other-keys)
6116 (let* ((out (assoc-ref outputs "out"))
6117 (keysdir (string-append
6118 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
6119 (substitute* "meson.build"
6120 (("keysdir =.*")
6121 (string-append "keysdir = '" keysdir "'\n")))
6122 #t)))
ebfe259f 6123 (add-before 'configure 'convert-logo-to-png
45fef894
LC
6124 (lambda* (#:key inputs #:allow-other-keys)
6125 ;; Convert the logo from SVG to PNG.
6126 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
6127 "data/theme/guix-logo.svg")))
ba00235a 6128 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
6129 (lambda* (#:key inputs #:allow-other-keys)
6130 (substitute* "js/misc/ibusManager.js"
6131 (("'ibus-daemon'")
6132 (string-append "'" (assoc-ref inputs "ibus")
6133 "/bin/ibus-daemon'")))
d6fda4d3
LC
6134 (substitute* "js/ui/status/keyboard.js"
6135 (("'gkbd-keyboard-display'")
6136 (string-append "'" (assoc-ref inputs "libgnomekbd")
6137 "/bin/gkbd-keyboard-display'")))
2472cdec 6138 #t))
2b0c755d
RW
6139 (add-before 'check 'pre-check
6140 (lambda* (#:key inputs #:allow-other-keys)
6141 ;; Tests require a running X server.
6142 (system "Xvfb :1 &")
6143 (setenv "DISPLAY" ":1")
6144 #t))
6145 (add-after 'install 'wrap-programs
6146 (lambda* (#:key inputs outputs #:allow-other-keys)
6147 (let ((out (assoc-ref outputs "out"))
6148 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6149 (python-path (getenv "PYTHONPATH")))
6150 (wrap-program (string-append out "/bin/gnome-shell")
6151 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6152 ;; FIXME: gnome-shell loads these libraries with unqualified
6153 ;; names only, so they need to be on LD_LIBRARY_PATH. The
6154 ;; alternative might be to patch gnome-shell.
6155 `("LD_LIBRARY_PATH" ":" prefix
6156 ,(map (lambda (pkg)
6157 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
6158 '("gdk-pixbuf"
6159 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
6160 (for-each
6161 (lambda (prog)
6162 (wrap-program (string-append out "/bin/" prog)
6163 `("PYTHONPATH" ":" prefix (,python-path))
6164 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6165 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 6166 #t)))
11e1df56
LC
6167 (replace 'glib-or-gtk-wrap
6168 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
6169 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
6170 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
6171 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
6172 ;; phase. Fix that since we don't need these.
6173 (wrap #:inputs (fold alist-delete inputs
6174 '("inkscape" "intltool" "glib:bin"))
6175 #:outputs outputs)))))))
a4df5756
SB
6176 (native-inputs
6177 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 6178 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 6179 ("gobject-introspection" ,gobject-introspection)
ebfe259f 6180 ("inkscape" ,inkscape)
a4df5756
SB
6181 ("intltool" ,intltool)
6182 ("pkg-config" ,pkg-config)
6183 ("python" ,python)
45fef894 6184 ("ruby-sass" ,ruby-sass)
2b0c755d 6185 ("sassc" ,sassc)
a76d0f03 6186 ("xsltproc" ,libxslt)
2b0c755d 6187 ;; For tests
0b4504f6 6188 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
6189 (inputs
6190 `(("accountsservice" ,accountsservice)
6191 ("caribou" ,caribou)
6192 ("docbook-xsl" ,docbook-xsl)
6193 ("evolution-data-server" ,evolution-data-server)
6194 ("gcr" ,gcr)
6195 ("gdm" ,gdm)
c5db31d4 6196 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
6197 ("gjs" ,gjs)
6198 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
6199 ("gnome-desktop" ,gnome-desktop)
6200 ("gnome-settings-daemon" ,gnome-settings-daemon)
6201 ("gst-plugins-base" ,gst-plugins-base)
6202 ("ibus" ,ibus)
6203 ("libcanberra" ,libcanberra)
6204 ("libcroco" ,libcroco)
d6fda4d3 6205 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
6206 ("libgweather" ,libgweather)
6207 ("libsoup" ,libsoup)
6208 ("mesa-headers" ,mesa-headers)
6209 ("mutter" ,mutter)
6210 ("network-manager-applet" ,network-manager-applet)
6211 ("polkit" ,polkit)
6212 ("pulseaudio" ,pulseaudio)
6213 ("python-pygobject" ,python-pygobject)
6214 ("startup-notification" ,startup-notification)
6215 ("telepathy-logger" ,telepathy-logger)
6216 ("upower" ,upower)
30e760f0
MB
6217 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
6218 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
6219 ("librsvg" ,librsvg)
2b0c755d 6220 ("geoclue" ,geoclue)))
a4df5756
SB
6221 (synopsis "Desktop shell for GNOME")
6222 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
6223 (description
6224 "GNOME Shell provides core user interface functions for the GNOME desktop,
6225like switching to windows and launching applications.")
6226 (license license:gpl2+)))
c3f29bc9
RS
6227
6228(define-public gtk-vnc
6229 (package
6230 (name "gtk-vnc")
965ff023 6231 (version "0.9.0")
c3f29bc9
RS
6232 (source
6233 (origin
6234 (method url-fetch)
6235 (uri (string-append "mirror://gnome/sources/" name "/"
6236 (version-major+minor version) "/"
6237 name "-" version ".tar.xz"))
6238 (sha256
6239 (base32
965ff023 6240 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
6241 (build-system gnu-build-system)
6242 (arguments
6243 '(#:configure-flags '("--with-gtk=3.0")))
6244 (propagated-inputs
6245 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
6246 (inputs
6247 `(("cyrus-sasl" ,cyrus-sasl)
6248 ("gnutls" ,gnutls)
6249 ("libgcrypt" ,libgcrypt)
6250 ("pulseaudio" ,pulseaudio)))
6251 (native-inputs
6252 `(("glib:bin" ,glib "bin")
6253 ("gobject-introspection" ,gobject-introspection)
6254 ("intltool" ,intltool)
6255 ("pkg-config" ,pkg-config)
2f17e939 6256 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
6257 ("vala" ,vala)))
6258 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
6259 (synopsis "VNC viewer widget for GTK+")
6260 (description
6261 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
6262applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
6263GTK-VNC implements client side RFB protocol and authentication extensions such
6264as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
6265 (license license:lgpl2.1+)))
8b877545 6266
dc69fe18
MW
6267(define-public gnome-autoar
6268 (package
6269 (name "gnome-autoar")
c7da8510 6270 (version "0.2.3")
dc69fe18
MW
6271 (source (origin
6272 (method url-fetch)
6273 (uri (string-append "mirror://gnome/sources/" name "/"
6274 (version-major+minor version) "/"
6275 name "-" version ".tar.xz"))
6276 (sha256
6277 (base32
c7da8510 6278 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
6279 (build-system glib-or-gtk-build-system)
6280 (native-inputs
6281 `(("gnome-common" ,gnome-common)
6282 ("gobject-introspection" ,gobject-introspection)
6283 ("pkg-config" ,pkg-config)))
6284 (propagated-inputs
6285 `(("libarchive" ,libarchive))) ; XXX document why
6286 (inputs
6287 `(("gtk+" ,gtk+)
6288 ("nettle" ,nettle))) ; XXX: required by libarchive.pc
6289 (synopsis "Archives integration support for GNOME")
6290 (home-page "https://git.gnome.org/browse/gnome-autoar/")
6291 (description
6292 "GNOME Autoar is a library which makes creating and extracting archives
6293easy, safe, and automatic.")
6294 (license license:lgpl2.1+)))
6295
b64e217f
MW
6296(define-public tracker
6297 (package
6298 (name "tracker")
c8bdf589 6299 (version "2.0.4")
b64e217f
MW
6300 (source (origin
6301 (method url-fetch)
6302 (uri (string-append "mirror://gnome/sources/" name "/"
6303 (version-major+minor version) "/"
6304 name "-" version ".tar.xz"))
6305 (sha256
6306 (base32
c8bdf589 6307 "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf"))))
b64e217f 6308 (build-system glib-or-gtk-build-system)
c8bdf589
RW
6309 (arguments
6310 `(#:phases
6311 (modify-phases %standard-phases
6312 (add-after 'unpack 'disable-broken-tests
6313 (lambda _
6314 ;; FIXME: Most of these fail with GLib-GIO-FATAL-ERROR: Settings
6315 ;; schema 'org.freedesktop.Tracker.FTS' is not installed.
6316 (substitute* "tests/libtracker-miner/Makefile.in"
6317 (("tracker-file-notifier-test\\$\\(EXEEXT\\)") "")
6318 (("tracker-miner-fs-test\\$\\(EXEEXT\\)") "")
6319 (("tracker-monitor-test\\$\\(EXEEXT\\)") ""))
6320 (substitute* "tests/libtracker-fts/Makefile.in"
6321 (("tracker-fts-test\\$\\(EXEEXT\\)") ""))
6322 (substitute* "tests/libtracker-data/Makefile.in"
6323 (("tracker-ontology\\$\\(EXEEXT\\)") "")
6324 (("tracker-ontology-change\\$\\(EXEEXT\\)") "")
6325 (("tracker-backup\\$\\(EXEEXT\\)") "")
6326 (("tracker-sparql-blank\\$\\(EXEEXT\\)") "")
6327 (("tracker-sparql\\$\\(EXEEXT\\)") ""))
6328 ;; These fail because the SPARQL backend could not be loaded.
6329 ;; That's because /etc/machine-id is missing, but
6330 ;; DBUS_FATAL_WARNINGS does not help here.
6331 (substitute* "tests/libtracker-sparql/Makefile.in"
6332 (("tracker-gb-737023-test\\$\\(EXEEXT\\)") "")
6333 (("tracker-sparql-test\\$\\(EXEEXT\\)") ""))
6334 (substitute* "tests/tracker-steroids/Makefile.in"
6335 (("tracker-test\\$\\(EXEEXT\\)") ""))
6336 #t))
6337 ;; Two tests fail if LANG is not set.
6338 (add-before 'check 'pre-check
6339 (lambda _
6340 (setenv "LANG" "en_US.UTF-8")
6341 ;; For the missing /etc/machine-id.
6342 (setenv "DBUS_FATAL_WARNINGS" "0")
6343 #t)))))
b64e217f
MW
6344 (native-inputs
6345 `(("gnome-common" ,gnome-common)
6346 ("gobject-introspection" ,gobject-introspection)
6347 ("intltool" ,intltool)
6348 ("pkg-config" ,pkg-config)
6349 ("vala" ,vala)))
6350 (inputs
6351 `(("gtk+" ,gtk+)
6352 ("dbus" ,dbus)
6353 ("gstreamer" ,gstreamer)
6354 ("gst-plugins-base" ,gst-plugins-base)
44ed6284 6355 ("sqlite" ,sqlite)
b64e217f 6356 ("nettle" ,nettle) ; XXX why is this needed?
c8bdf589 6357 ("python" ,python)
b64e217f
MW
6358 ("poppler" ,poppler)
6359 ("libgsf" ,libgsf)
6360 ("libexif" ,libexif)
6361 ("libpng" ,libpng)
6362 ("libtiff" ,libtiff)
6363 ("libvorbis" ,libvorbis)
6364 ("flac" ,flac)
6365 ("totem-pl-parser" ,totem-pl-parser)
6366 ("zlib" ,zlib)
6367 ("exempi" ,exempi)
6368 ("libxml2" ,libxml2)
6369 ("upower" ,upower)
b64e217f
MW
6370 ("libunistring" ,libunistring)
6371 ("giflib" ,giflib)
0ef48cd9 6372 ("json-glib" ,json-glib)
b64e217f
MW
6373 ("openjpeg" ,openjpeg-1)
6374 ("libosinfo" ,libosinfo)
6375 ("libcue" ,libcue)
6376 ("libseccomp" ,libseccomp)
0ef48cd9 6377 ("libsoup" ,libsoup)
b64e217f 6378 ("libuuid" ,util-linux)))
b64e217f
MW
6379 (synopsis "Metadata database, indexer and search tool")
6380 (home-page "https://wiki.gnome.org/Projects/Tracker")
6381 (description
6382 "Tracker is an advanced framework for first class objects with associated
6383metadata and tags. It provides a one stop solution for all metadata, tags,
6384shared object databases, search tools and indexing.")
6385 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
6386 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
6387 (license (list license:gpl2+
6388 license:lgpl2.1+
6389 license:lgpl2.0+))))
6390
8b877545
RS
6391(define-public nautilus
6392 (package
6393 (name "nautilus")
caf6c363 6394 (version "3.28.1")
8b877545
RS
6395 (source (origin
6396 (method url-fetch)
6397 (uri (string-append "mirror://gnome/sources/" name "/"
6398 (version-major+minor version) "/"
6399 name "-" version ".tar.xz"))
6400 (sha256
6401 (base32
caf6c363 6402 "19dhpa2ylrg8d5274lahy7xqr2p9z3jnq1h4qmsh95czkpy7is4w"))))
35e2d0cf 6403 (build-system meson-build-system)
8b877545 6404 (arguments
35e2d0cf 6405 '(#:glib-or-gtk? #t
8b877545
RS
6406 ;; XXX: FAIL: check-nautilus
6407 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
6408 #:tests? #f))
6409 (native-inputs
35e2d0cf
R
6410 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6411 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6412 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
6413 ("gobject-introspection" ,gobject-introspection)
6414 ("intltool" ,intltool)
6415 ("pkg-config" ,pkg-config)))
8b877545 6416 (inputs
8b877545 6417 `(("dconf" ,dconf)
caf6c363 6418 ("gexiv2" ,gexiv2)
dd05e731 6419 ("gvfs" ,gvfs)
8b877545
RS
6420 ("exempi" ,exempi)
6421 ("gnome-desktop" ,gnome-desktop)
09d88905 6422 ("gnome-autoar" ,gnome-autoar)
35e2d0cf
R
6423 ("libselinux" ,libselinux)
6424 ("nettle" ,nettle) ; XXX required by libarchive.pc via gnome-autoar
09d88905 6425 ("tracker" ,tracker)
ce6027bf
SB
6426 ;; XXX: gtk+ is required by libnautilus-extension.pc
6427 ;;
6428 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
6429 ;; package. See:
6430 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
6431 ("gtk+" ,gtk+)
8b877545
RS
6432 ("libexif" ,libexif)
6433 ("libxml2" ,libxml2)))
6434 (synopsis "File manager for GNOME")
6435 (home-page "https://wiki.gnome.org/Apps/Nautilus")
6436 (description
6437 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
6438design and behaviour, giving the user a simple way to navigate and manage its
6439files.")
6440 (license license:gpl2+)))
3c697ffd
JR
6441
6442(define-public baobab
6443 (package
6444 (name "baobab")
d233d373 6445 (version "3.28.0")
3c697ffd
JR
6446 (source (origin
6447 (method url-fetch)
6448 (uri (string-append
6449 "mirror://gnome/sources/" name "/"
6450 (version-major+minor version) "/"
6451 name "-" version ".tar.xz"))
6452 (sha256
6453 (base32
d233d373
RJ
6454 "0qsx7vx5c3n4yxlxbr11sppw7qwcv9z3g45b5xb9y7wxw5lv42sk"))))
6455 (build-system meson-build-system)
6456 (arguments
6457 '(#:glib-or-gtk? #t))
3c697ffd
JR
6458 (native-inputs
6459 `(("intltool" ,intltool)
6460 ("pkg-config" ,pkg-config)
d233d373
RJ
6461 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6462 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
6463 ("itstool" ,itstool)
6464 ("xmllint" ,libxml2)
6465 ("glib" ,glib "bin")
6466 ("vala" ,vala)))
6467 (inputs
6468 `(("gtk+" ,gtk+)))
6469 (synopsis "Disk usage analyzer for GNOME")
6470 (description
6471 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
6472usage in the GNOME desktop environment. It can easily scan device volumes or
6473a specific user-requested directory branch (local or remote). Once the scan
6474is complete it provides a graphical representation of each selected folder.")
6475 (home-page "https://wiki.gnome.org/Apps/Baobab")
6476 (license license:gpl2+)))
dc050251 6477
fdba447c
RS
6478(define-public gnome-backgrounds
6479 (package
6480 (name "gnome-backgrounds")
9ca381f0 6481 (version "3.28.0")
fdba447c
RS
6482 (source
6483 (origin
6484 (method url-fetch)
6485 (uri (string-append "mirror://gnome/sources/" name "/"
6486 (version-major+minor version) "/"
6487 name "-" version ".tar.xz"))
6488 (sha256
6489 (base32
9ca381f0
RW
6490 "1qgim0yhzjgcq172y4vp5hqz4rh1ak38a7pgi6s7dq0wklyrcnxj"))))
6491 (build-system meson-build-system)
fdba447c
RS
6492 (native-inputs
6493 `(("intltool" ,intltool)))
6494 (home-page "https://git.gnome.org/browse/gnome-backgrounds")
6495 (synopsis "Background images for the GNOME desktop")
6496 (description
6497 "GNOME backgrounds package contains a collection of graphics files which
6498can be used as backgrounds in the GNOME Desktop environment. Additionally,
6499the package creates the proper framework and directory structure so that you
6500can add your own files to the collection.")
6501 (license (list license:gpl2+
6502 license:cc-by2.0
6503 license:cc-by-sa2.0
6504 license:cc-by-sa3.0))))
6505
b784b1a9
RS
6506(define-public gnome-screenshot
6507 (package
6508 (name "gnome-screenshot")
8356aefa 6509 (version "3.26.0")
b784b1a9
RS
6510 (source
6511 (origin
6512 (method url-fetch)
6513 (uri (string-append "mirror://gnome/sources/" name "/"
6514 (version-major+minor version) "/"
6515 name "-" version ".tar.xz"))
6516 (sha256
6517 (base32
8356aefa
RW
6518 "1fy8fjl29i3xhj8caik03d3za06x96xgkk8r4fwz88iqbmci3g0v"))))
6519 (build-system meson-build-system)
b784b1a9
RS
6520 (native-inputs
6521 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
6522 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6523 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 6524 ("intltool" ,intltool)
8356aefa 6525 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
6526 ("pkg-config" ,pkg-config)))
6527 (inputs
6528 `(("gtk+" ,gtk+)
6529 ("libcanberra" ,libcanberra)
6530 ("libx11" ,libx11)
6531 ("libxext" ,libxext)))
6532 (home-page "https://git.gnome.org/browse/gnome-screenshot")
6533 (synopsis "Take pictures of your screen")
6534 (description
6535 "GNOME Screenshot is a utility used for taking screenshots of the entire
6536screen, a window or a user defined area of the screen, with optional
6537beautifying border effects.")
6538 (license license:gpl2+)))
6539
66d59111
RS
6540(define-public dconf-editor
6541 (package
6542 (name "dconf-editor")
294ff39d 6543 (version "3.28.0")
66d59111
RS
6544 (source
6545 (origin
6546 (method url-fetch)
6547 (uri (string-append "mirror://gnome/sources/" name "/"
6548 (version-major+minor version) "/"
6549 name "-" version ".tar.xz"))
6550 (sha256
6551 (base32
294ff39d
RW
6552 "0nhcpwqrkmpxbhaf0cafvy6dlp6s7vhm5vknl4lgs3l24zc56ns5"))))
6553 (build-system meson-build-system)
66d59111
RS
6554 (native-inputs
6555 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 6556 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 6557 ("intltool" ,intltool)
294ff39d
RW
6558 ("pkg-config" ,pkg-config)
6559 ("vala" ,vala)))
66d59111
RS
6560 (inputs
6561 `(("dconf" ,dconf)
6562 ("gtk+" ,gtk+)
6563 ("libxml2" ,libxml2)))
6564 (home-page "https://git.gnome.org/browse/dconf-editor")
6565 (synopsis "Graphical editor for GNOME's dconf configuration system")
6566 (description
6567 "Dconf-editor is a graphical tool for browsing and editing the dconf
6568configuration system for GNOME. It allows users to configure desktop
6569software that do not provide their own configuration interface.")
6570 (license license:lgpl2.1+)))
6571
96d36f38
AW
6572(define-public gnome-default-applications
6573 (package
6574 (name "gnome-default-applications")
6575 (version "0")
6576 (build-system trivial-build-system)
6577 (source #f)
6578 (propagated-inputs
8ad4f0aa
LC
6579 `(("nautilus" ,nautilus)
6580 ("evince" ,evince)))
96d36f38
AW
6581 (arguments
6582 `(#:modules ((guix build utils))
6583 #:builder
6584 (begin
6585 (use-modules (guix build utils))
6586 (let* ((out (assoc-ref %outputs "out"))
6587 (apps (string-append out "/share/applications")))
6588 (mkdir-p apps)
6589 (call-with-output-file (string-append apps "/defaults.list")
6590 (lambda (port)
6591 (format port "[Default Applications]\n")
8ad4f0aa
LC
6592 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
6593 (format port "application/pdf=evince.desktop\n")
6594 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
6595 #t))))
6596 (synopsis "Default MIME type associations for the GNOME desktop")
6597 (description
6598 "Given many installed packages which might handle a given MIME type, a
6599user running the GNOME desktop probably has some preferences: for example,
6600that folders be opened by default by the Nautilus file manager, not the Baobab
6601disk usage analyzer. This package establishes that set of default MIME type
6602associations for GNOME.")
6603 (license license:gpl3+)
6604 (home-page #f)))
6605
dc050251
SB
6606(define-public gnome
6607 (package
6608 (name "gnome")
6609 (version (package-version gnome-shell))
6610 (source #f)
6611 (build-system trivial-build-system)
e3cfef22 6612 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251
SB
6613 (propagated-inputs
6614 ;; TODO: Add more packages according to:
6615 ;; <https://packages.debian.org/jessie/gnome-core>.
6616 `(("adwaita-icon-theme" ,adwaita-icon-theme)
05f651c4 6617 ("baobab" ,baobab)
0bd3597b 6618 ("font-cantarell" ,font-cantarell)
a9dbefdc 6619 ("font-dejavu" ,font-dejavu)
dc050251
SB
6620 ("at-spi2-core" ,at-spi2-core)
6621 ("dbus" ,dbus)
6622 ("dconf" ,dconf)
72360453 6623 ("desktop-file-utils" ,desktop-file-utils)
dc050251
SB
6624 ("eog" ,eog)
6625 ("epiphany" ,epiphany)
6626 ("evince" ,evince)
71d9b980 6627 ("file-roller" ,file-roller)
dc050251
SB
6628 ("gedit" ,gedit)
6629 ("glib-networking" ,glib-networking)
05f651c4 6630 ("gnome-backgrounds" ,gnome-backgrounds)
63ad9b80
AW
6631 ("gnome-bluetooth" ,gnome-bluetooth)
6632 ("gnome-calculator" ,gnome-calculator)
dc050251 6633 ("gnome-control-center" ,gnome-control-center)
63ad9b80 6634 ("gnome-disk-utility" ,gnome-disk-utility)
96d36f38 6635 ("gnome-default-applications" ,gnome-default-applications)
dc050251 6636 ("gnome-keyring" ,gnome-keyring)
63ad9b80 6637 ("gnome-online-accounts" ,gnome-online-accounts)
dc050251
SB
6638 ("gnome-session" ,gnome-session)
6639 ("gnome-settings-daemon" ,gnome-settings-daemon)
6640 ("gnome-shell" ,gnome-shell)
63ad9b80 6641 ("gnome-system-monitor" ,gnome-system-monitor)
dc050251
SB
6642 ("gnome-terminal" ,gnome-terminal)
6643 ("gnome-themes-standard" ,gnome-themes-standard)
2999dcd5
AW
6644 ("gst-plugins-base" ,gst-plugins-base)
6645 ("gst-plugins-good" ,gst-plugins-good)
63ad9b80 6646 ("gucharmap" ,gucharmap)
05f651c4 6647 ("gvfs" ,gvfs)
dc050251
SB
6648 ("hicolor-icon-theme" ,hicolor-icon-theme)
6649 ("nautilus" ,nautilus)
69308043 6650 ("pinentry-gnome3" ,pinentry-gnome3)
dc050251
SB
6651 ("pulseaudio" ,pulseaudio)
6652 ("shared-mime-info" ,shared-mime-info)
f6f4370f 6653 ("system-config-printer" ,system-config-printer)
dc050251 6654 ("totem" ,totem)
c20cd0d2 6655 ("xdg-user-dirs" ,xdg-user-dirs)
dc050251
SB
6656 ("yelp" ,yelp)
6657 ("zenity" ,zenity)))
fe4e698d 6658 (synopsis "The GNU desktop environment")
dc050251
SB
6659 (home-page "https://www.gnome.org/")
6660 (description
fe4e698d
LC
6661 "GNOME is the graphical desktop for GNU. It includes a wide variety of
6662applications for browsing the web, editing text and images, creating
6663documents and diagrams, playing media, scanning, and much more.")
dc050251 6664 (license license:gpl2+)))
4a526711
DT
6665
6666(define-public byzanz
6667 ;; The last stable release of Byzanz was in 2011, but there have been many
6668 ;; useful commits made to the Byzanz repository since then that it would be
6669 ;; silly to use such an old release.
6670 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
6671 (package
6672 (name "byzanz")
6673 (version (string-append "0.2-1." (string-take commit 7)))
6674 (source (origin
6675 (method git-fetch)
6676 (uri (git-reference
5f13bf09 6677 (url "https://git.gnome.org/browse/byzanz")
4a526711 6678 (commit commit)))
5a6527e4 6679 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
6680 (sha256
6681 (base32
6682 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
6683 (build-system glib-or-gtk-build-system)
6684 (arguments
6685 '(#:phases
6686 (modify-phases %standard-phases
189be331 6687 (replace 'bootstrap
4a526711
DT
6688 (lambda _
6689 ;; The build system cleverly detects that we're not building from
6690 ;; a release tarball and turns on -Werror for GCC.
6691 ;; Unsurprisingly, there is a warning during compilation that
6692 ;; causes the build to fail unnecessarily, so we remove the flag.
6693 (substitute* '("configure.ac")
6694 (("-Werror") ""))
6695 ;; The autogen.sh script in gnome-common will run ./configure
6696 ;; by default, which is problematic because source shebangs
6697 ;; have not yet been patched.
6698 (setenv "NOCONFIGURE" "t")
6699 (zero? (system* "sh" "autogen.sh")))))))
6700 (native-inputs
6701 `(("autoconf" ,autoconf)
6702 ("automake" ,automake)
6703 ("gnome-common" ,gnome-common)
6704 ("intltool" ,intltool)
6705 ("libtool" ,libtool)
6706 ("pkg-config" ,pkg-config)
6707 ("which" ,which)))
6708 (inputs
6709 `(("glib" ,glib)
6710 ("gstreamer" ,gstreamer)
6711 ("gst-plugins-base" ,gst-plugins-base)
6712 ("gtk+" ,gtk+)))
6713 (synopsis "Desktop recording program")
6714 (description "Byzanz is a simple desktop recording program with a
6715command-line interface. It can record part or all of an X display for a
6716specified duration and save it as a GIF encoded animated image file.")
6717 (home-page "https://git.gnome.org/browse/byzanz")
6718 (license license:gpl2+))))
3a9a4c51 6719
0ec171ec
MS
6720(define-public gsound
6721 (package
6722 (name "gsound")
6723 (version "1.0.2")
6724 (source (origin
6725 (method url-fetch)
6726 (uri (string-append "mirror://gnome/sources/" name "/"
6727 (version-major+minor version) "/"
6728 name "-" version ".tar.xz"))
6729 (sha256
6730 (base32
6731 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
6732 (build-system glib-or-gtk-build-system)
6733 (native-inputs
6734 `(("pkg-config" ,pkg-config)
6735 ("gobject-introspection" ,gobject-introspection)
6736 ("vala" ,vala)))
6737 (inputs
6738 `(("glib" ,glib)
6739 ("libcanberra" ,libcanberra)))
6740 (home-page "https://wiki.gnome.org/Projects/GSound")
6741 (synopsis "GObject wrapper for libcanberra")
6742 (description
6743 "GSound is a small library for playing system sounds. It's designed to be
6744used via GObject Introspection, and is a thin wrapper around the libcanberra C
6745library.")
6746 (license license:lgpl2.1+)))
6747
3a9a4c51
RS
6748(define-public libzapojit
6749 (package
6750 (name "libzapojit")
6751 (version "0.0.3")
6752 (source (origin
6753 (method url-fetch)
6754 (uri (string-append "mirror://gnome/sources/" name "/"
6755 (version-major+minor version) "/"
6756 name "-" version ".tar.xz"))
6757 (sha256
6758 (base32
6759 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
6760 (build-system gnu-build-system)
6761 (native-inputs
6762 `(("gobject-introspection" ,gobject-introspection)
6763 ("intltool" ,intltool)
6764 ("pkg-config" ,pkg-config)))
6765 (inputs
14c297fd 6766 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
6767 ("json-glib" ,json-glib)
6768 ("rest" ,rest)))
6769 (home-page "https://wiki.gnome.org/Projects/Zapojit")
6770 (synopsis "Library for accessing SkyDrive and Hotmail")
6771 (description
6772 "Libzapojit is a GLib-based library for accessing online service APIs of
6773Microsoft SkyDrive and Hotmail, using their REST protocols.")
6774 (license license:lgpl2.1+)))
9365ee1c 6775
60e2a9ae
MS
6776(define-public gnome-clocks
6777 (package
6778 (name "gnome-clocks")
80d1e4c0 6779 (version "3.28.0")
60e2a9ae
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
80d1e4c0 6787 "1dd739vchb592mck1dia2hkywn4213cpramyqzgmlmwv8z80p3nl"))))
60e2a9ae
MS
6788 (build-system meson-build-system)
6789 (arguments
6790 '(#:glib-or-gtk? #t))
6791 (native-inputs
6792 `(("vala" ,vala)
6793 ("pkg-config" ,pkg-config)
6794 ("glib" ,glib "bin") ; for glib-compile-resources
6795 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6796 ("desktop-file-utils" ,desktop-file-utils)
6797 ("gettext" ,gettext-minimal)
6798 ("itstool" ,itstool)))
6799 (inputs
6800 `(("glib" ,glib)
6801 ("gtk+" ,gtk+)
6802 ("gsound" ,gsound)
6803 ("geoclue" ,geoclue)
6804 ("geocode-glib" ,geocode-glib)
6805 ("libgweather" ,libgweather)
6806 ("gnome-desktop" ,gnome-desktop)))
6807 (home-page "https://wiki.gnome.org/Apps/Clocks")
6808 (synopsis "GNOME's clock application")
6809 (description
6810 "GNOME Clocks is a simple clocks application designed to fit the GNOME
6811desktop. It supports world clock, stop watch, alarms, and count down timer.")
6812 (license license:gpl3+)))
6813
3c474897
KY
6814(define-public gnome-calendar
6815 (package
6816 (name "gnome-calendar")
a286b5eb 6817 (version "3.28.2")
3c474897
KY
6818 (source (origin
6819 (method url-fetch)
6820 (uri (string-append "mirror://gnome/sources/" name "/"
6821 (version-major+minor version) "/"
6822 name "-" version ".tar.xz"))
6823 (sha256
6824 (base32
a286b5eb 6825 "0x6wxngf8fkwgbl6x7rzp0srrb43rm55klpb2vfjk2hahpbjvxyw"))))
a49d3e37
MS
6826 (build-system meson-build-system)
6827 (arguments
6828 '(#:glib-or-gtk? #t
6829 ;; gnome-calendar has to be installed before the tests can be run
6830 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
6831 #:tests? #f))
3c474897 6832 (native-inputs
a49d3e37
MS
6833 `(("gettext" ,gettext-minimal)
6834 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
6835 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
6836 ("pkg-config" ,pkg-config)))
6837 (inputs
a49d3e37 6838 `(("evolution-data-server" ,evolution-data-server)
14c297fd 6839 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
da43d1cb 6840 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
a286b5eb 6841 ("libdazzle" ,libdazzle)
571fb008 6842 ("libedataserverui" ,evolution-data-server "libedataserverui")
a286b5eb
RW
6843 ("libgweather" ,libgweather)
6844 ("geoclue" ,geoclue)))
3c474897
KY
6845 (home-page "https://wiki.gnome.org/Apps/Calendar")
6846 (synopsis "GNOME's calendar application")
6847 (description
6848 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 6849desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
6850 (license license:gpl3+)))
6851
57b14665
MS
6852(define-public gnome-todo
6853 (package
6854 (name "gnome-todo")
9f3c6c88 6855 (version "3.28.1")
57b14665
MS
6856 (source (origin
6857 (method url-fetch)
6858 (uri (string-append "mirror://gnome/sources/" name "/"
6859 (version-major+minor version) "/"
6860 name "-" version ".tar.xz"))
6861 (sha256
6862 (base32
9f3c6c88 6863 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
6864 (build-system meson-build-system)
6865 (arguments
6866 '(#:glib-or-gtk? #t
6867 #:phases (modify-phases %standard-phases
6868 (add-after
6869 'install 'wrap-gnome-todo
6870 (lambda* (#:key inputs outputs #:allow-other-keys)
6871 (let ((out (assoc-ref outputs "out"))
6872 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6873 (python-path (getenv "PYTHONPATH")))
6874 (wrap-program (string-append out "/bin/gnome-todo")
6875 ;; XXX: gi plugins are broken.
6876 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
6877 ;; For plugins.
6878 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6879 `("PYTHONPATH" ":" prefix (,python-path))))
6880 #t)))))
6881 (native-inputs
6882 `(("gettext" ,gettext-minimal)
6883 ("gobject-introspection" ,gobject-introspection)
6884 ("glib:bin" ,glib "bin") ; For glib-compile-resources
6885 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
6886 ("pkg-config" ,pkg-config)))
6887 (inputs
6888 `(("rest" ,rest) ; For Todoist plugin
6889 ("json-glib" ,json-glib) ; For Todoist plugin
da43d1cb 6890 ("libedataserverui" ,evolution-data-server "libedataserverui")
57b14665
MS
6891 ("libical" ,libical)
6892 ("libpeas" ,libpeas)
6893 ("python-pygobject" ,python-pygobject)
6894 ("evolution-data-server" ,evolution-data-server)
14c297fd 6895 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
6896 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
6897 (home-page "https://wiki.gnome.org/Apps/Todo")
6898 (synopsis "GNOME's ToDo Application")
6899 (description
6900 "GNOME To Do is a simplistic personal task manager designed to perfectly
6901fit the GNOME desktop.")
6902 (license license:gpl3+)))
6903
ab179eaf
SB
6904(define-public gnome-dictionary
6905 (package
6906 (name "gnome-dictionary")
cf81ddef 6907 (version "3.26.1")
ab179eaf
SB
6908 (source (origin
6909 (method url-fetch)
6910 (uri (string-append "mirror://gnome/sources/" name "/"
6911 (version-major+minor version) "/"
6912 name "-" version ".tar.xz"))
6913 (sha256
6914 (base32
cf81ddef
LC
6915 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
6916 (build-system meson-build-system)
2776b5d5
MB
6917 (arguments '(#:glib-or-gtk? #t
6918 #:phases (modify-phases %standard-phases
6919 (add-after 'unpack 'patch-install-script
6920 (lambda _
6921 ;; This script attempts to compile glib schemas
6922 ;; and create an empty MIME database. We do
6923 ;; that elsewhere, so prevent it from running.
6924 (substitute* "build-aux/post-install.sh"
6925 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
6926 #t)))))
ab179eaf
SB
6927 (native-inputs
6928 `(("glib:bin" ,glib "bin")
6929 ("gobject-introspection" ,gobject-introspection)
6930 ("intltool" ,intltool)
6931 ("itstool" ,itstool)
6932 ("pkg-config" ,pkg-config)
6933 ("xmllint" ,libxml2)))
6934 (inputs
6935 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6936 ("gtk+" ,gtk+)))
6937 (home-page "https://wiki.gnome.org/Apps/Dictionary")
6938 (synopsis "Look up words in dictionary sources")
6939 (description
6940 "GNOME Dictionary can look for the definition or translation of a word in
6941existing databases over the internet.")
6942 (license license:gpl3+)))
6943
d13f3a03 6944(define-public gnome-tweaks
9365ee1c 6945 (package
d13f3a03
RW
6946 (name "gnome-tweaks")
6947 (version "3.28.1")
9365ee1c
JN
6948 (source (origin
6949 (method url-fetch)
d13f3a03 6950 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 6951 (version-major+minor version) "/"
d13f3a03
RW
6952 "gnome-tweaks-" version ".tar.xz"))
6953 (patches
6954 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
6955 (sha256
6956 (base32
d13f3a03
RW
6957 "1p5xydr0haz4389h6dvvbna6i1mipdzvmlfksnv0jqfvfs9sy6fp"))))
6958 (build-system meson-build-system)
9365ee1c 6959 (arguments
d13f3a03
RW
6960 `(#:glib-or-gtk? #t
6961 #:configure-flags '("-Dlocalstatedir=/tmp"
6962 "-Dsysconfdir=/tmp")
9365ee1c 6963 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
6964 ,@%meson-build-system-modules)
6965 #:phases
6966 (modify-phases %standard-phases
6967 (add-after 'install 'wrap
6968 (@@ (guix build python-build-system) wrap))
6969 (add-after 'wrap 'wrap-gi-typelib
6970 (lambda* (#:key inputs outputs #:allow-other-keys)
6971 (let ((out (assoc-ref outputs "out"))
6972 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6973 (wrap-program (string-append out "/bin/gnome-tweaks")
6974 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6975 #t)))))
9365ee1c 6976 (native-inputs
c7fc414e
RH
6977 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
6978 ("intltool" ,intltool)
9365ee1c
JN
6979 ("pkg-config" ,pkg-config)))
6980 (inputs
c7fc414e
RH
6981 `(("gnome-desktop" ,gnome-desktop)
6982 ("gtk+" ,gtk+)
9365ee1c
JN
6983 ("gobject-introspection" ,gobject-introspection)
6984 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
6985 ("libnotify" ,libnotify)
6986 ("libsoup" ,libsoup)
6987 ("nautilus" ,nautilus)
6988 ("python" ,python)
6989 ("python-pygobject" ,python-pygobject)))
9365ee1c 6990 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 6991 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 6992 (description
d13f3a03 6993 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
6994GNOME 3. This includes things like the fonts used in user interface elements,
6995alternative user interface themes, changes in window management behavior,
6996GNOME Shell appearance and extension, etc.")
6997 (license license:gpl3+)))
813f814a 6998
d13f3a03
RW
6999;; This package has been renamed by upstream.
7000(define-public gnome-tweak-tool
7001 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
7002
32ac717c
DT
7003(define-public gnome-shell-extensions
7004 (package
7005 (name "gnome-shell-extensions")
100f625b 7006 (version "3.28.1")
32ac717c
DT
7007 (source (origin
7008 (method url-fetch)
7009 (uri (string-append "mirror://gnome/sources/" name "/"
7010 (version-major+minor version) "/"
7011 name "-" version ".tar.xz"))
7012 (sha256
7013 (base32
100f625b
RW
7014 "0n4h8rdnq3knrvlg6inrl62a73h20dbhfgniwy18572jicrh5ip9"))))
7015 (build-system meson-build-system)
32ac717c 7016 (arguments
100f625b 7017 '(#:configure-flags '("-Dextension_set=all")))
32ac717c
DT
7018 (native-inputs
7019 `(("intltool" ,intltool)
7020 ("pkg-config" ,pkg-config)))
7021 (propagated-inputs
7022 `(("glib" ,glib)
7023 ("glib" ,glib "bin")))
7024 (synopsis "Extensions for GNOME Shell")
7025 (description "GNOME Shell extensions modify and extend GNOME Shell
7026functionality and behavior.")
7027 (home-page "https://extensions.gnome.org/")
7028 (license license:gpl3+)))
7029
a7a31827
GL
7030(define-public numix-theme
7031 (package
7032 (name "numix-theme")
7033 (version "2.6.7")
7034 (source (origin
7035 (method git-fetch)
7036 (uri (git-reference
7037 (url "https://github.com/numixproject/numix-gtk-theme.git")
7038 (commit version)))
7039 (file-name (git-file-name name version))
7040 (sha256
7041 (base32
7042 "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7"))))
7043 (build-system gnu-build-system)
7044 (arguments
7045 '(#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
7046 #:phases
7047 (modify-phases %standard-phases
7048 (delete 'configure)
7049 (delete 'check))))
7050 (native-inputs
7051 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas
7052 ("gnome-shell" ,gnome-shell)
7053 ("gtk+" ,gtk+)
7054 ("xmllint" ,libxml2)
7055 ("ruby-sass" ,ruby-sass)))
7056 (synopsis "Flat theme with light and dark elements")
7057 (description "Numix is a modern flat theme with a combination of light and
7058dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
7059 (home-page "https://numixproject.github.io")
7060 (license license:gpl3+)))
7061
813f814a
DT
7062(define-public arc-theme
7063 (package
7064 (name "arc-theme")
a18f8eaf 7065 (version "20181022")
813f814a 7066 (source (origin
a18f8eaf
BH
7067 (method git-fetch)
7068 (uri (git-reference
7069 (url "https://github.com/NicoHood/arc-theme.git")
7070 (commit version)))
7071 (file-name (git-file-name name version))
813f814a
DT
7072 (sha256
7073 (base32
a18f8eaf 7074 "08951dk1irfadwpr3p323a4fprmxg53rk2r2niwq3v62ryhi3663"))))
813f814a 7075 (build-system gnu-build-system)
d88884fa
EF
7076 (arguments
7077 '(#:phases
7078 (modify-phases %standard-phases
7079 ;; autogen.sh calls configure at the end of the script.
7080 (replace 'bootstrap
7081 (lambda _ (invoke "autoreconf" "-vfi"))))))
813f814a
DT
7082 (native-inputs
7083 `(("autoconf" ,autoconf)
7084 ("automake" ,automake)
a18f8eaf
BH
7085 ("glib" ,glib "bin") ; for glib-compile-resources
7086 ("gnome-shell" ,gnome-shell)
7087 ("gtk+" ,gtk+)
7088 ("inkscape" ,inkscape)
7089 ("optipng" ,optipng)
7090 ("pkg-config" ,pkg-config)
7091 ("sassc" ,sassc)))
813f814a
DT
7092 (synopsis "A flat GTK+ theme with transparent elements")
7093 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
70942, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
7095like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
7096 (home-page "https://github.com/horst3180/arc-theme")
7097 ;; No "or later" language found.
a18f8eaf 7098 (license license:gpl3+)))
9987c57c 7099
d935e6a1 7100(define-public faba-icon-theme
9987c57c 7101 (package
d935e6a1 7102 (name "faba-icon-theme")
2eee7ee3 7103 (version "4.3")
d935e6a1
BT
7104 (source
7105 (origin
7106 (method url-fetch)
7107 (uri (string-append "https://github.com/moka-project/"
7108 name "/archive/v" version ".tar.gz"))
7109 (file-name (string-append name "-" version ".tar.gz"))
7110 (sha256
7111 (base32
2eee7ee3 7112 "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68"))))
f6a9b345 7113 (build-system meson-build-system)
9987c57c 7114 (arguments
82da291a 7115 `(#:phases
9987c57c 7116 (modify-phases %standard-phases
82da291a 7117 (add-before 'configure 'disable-post-install
9987c57c 7118 (lambda _
82da291a
JL
7119 (substitute* "meson.build"
7120 (("meson.add_install_script.*") "")))))))
9987c57c
DT
7121 (native-inputs
7122 `(("autoconf" ,autoconf)
7123 ("automake" ,automake)))
d935e6a1
BT
7124 (synopsis "Faba icon theme")
7125 (description
7126 "Faba is a minimal icon set used as a basis for other themes such as
7127Moka")
7128 (home-page "https://snwh.org/moka")
7129 (license (list license:lgpl3+
7130 license:cc-by-sa4.0))))
7131
9987c57c
DT
7132(define-public moka-icon-theme
7133 (package
8b0e4177 7134 (inherit faba-icon-theme)
9987c57c 7135 (name "moka-icon-theme")
105a3625 7136 (version "5.4.0")
9987c57c
DT
7137 (source (origin
7138 (method url-fetch)
7139 (uri (string-append "https://github.com/moka-project"
7140 "/moka-icon-theme/archive/v"
7141 version ".tar.gz"))
7142 (file-name (string-append name "-" version ".tar.gz"))
7143 (sha256
7144 (base32
105a3625 7145 "1nbwdjj268hxv9lfagd9aylily9f0hhallp841v0i3imljp84bmk"))))
550281fb
BT
7146 (propagated-inputs
7147 ;; Moka is based on Faba by using it as a fallback icon set instead of
7148 ;; bundling it, so we need to add it as a propagated input.
7149 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
7150 (synopsis "Moka icon theme")
7151 (description "Moka is a stylized desktop icon set, designed to be clear,
7152simple and consistent.")
fedde43b
BT
7153 (license (list license:gpl3+
7154 license:cc-by-sa4.0))))
6fd8f8d6
DT
7155
7156(define-public arc-icon-theme
7157 (package
7158 (name "arc-icon-theme")
c4180240 7159 (version "20161122")
6fd8f8d6
DT
7160 (source (origin
7161 (method url-fetch)
7162 (uri (string-append "https://github.com/horst3180/arc-icon-theme"
7163 "/archive/" version ".tar.gz"))
7164 (file-name (string-append name "-" version ".tar.gz"))
7165 (sha256
7166 (base32
c4180240 7167 "1ya1cqvv8q847c0rpcg6apzky87q3h04y8jz5nmi52qk6kg8si0b"))))
6fd8f8d6 7168 (build-system gnu-build-system)
9e1ede95
JL
7169 (arguments
7170 `(#:phases
7171 (modify-phases %standard-phases
7172 (add-after 'unpack 'disable-configure-during-bootstrap
7173 (lambda _
7174 (substitute* "autogen.sh"
7175 (("^\"\\$srcdir/configure\".*") ""))
7176 #t)))))
6fd8f8d6
DT
7177 (native-inputs
7178 `(("autoconf" ,autoconf)
7179 ("automake" ,automake)))
7180 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
7181 (propagated-inputs
7182 `(("moka-icon-theme" ,moka-icon-theme)))
7183 (synopsis "Arc icon theme")
7184 (description "The Arc icon theme provides a set of icons matching the
7185style of the Arc GTK theme. Icons missing from the Arc theme are provided by
7186the Moka icon theme.")
7187 (home-page "https://github.com/horst3180/arc-icon-theme")
7188 (license license:gpl3+)))
6064a4e8
LF
7189
7190(define-public folks
7191 (package
7192 (name "folks")
d23495fa 7193 (version "0.11.4")
6064a4e8
LF
7194 (source (origin
7195 (method url-fetch)
7196 (uri (string-append
e5f4796e 7197 "mirror://gnome/sources/folks/"
6064a4e8 7198 (version-major+minor version) "/"
e5f4796e 7199 "folks-" version ".tar.xz"))
6064a4e8
LF
7200 (sha256
7201 (base32
d23495fa 7202 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
7203 (build-system glib-or-gtk-build-system)
7204 (inputs
7205 `(("bdb" ,bdb)
7206 ("dbus-glib" ,dbus-glib)
7207 ("evolution-data-server" ,evolution-data-server)
7208 ("glib" ,glib)
7209 ("libgee" ,libgee)
7210 ("telepathy-glib" ,telepathy-glib)))
7211 (native-inputs
7212 `(("gobject-introspection" ,gobject-introspection)
7213 ("intltool" ,intltool)
7214 ("pkg-config" ,pkg-config)
7215 ("vala" ,vala)))
7216 (synopsis "Library to aggregate data about people")
7217 (description "Libfolks is a library that aggregates information about people
7218from multiple sources (e.g., Telepathy connection managers for IM contacts,
7219Evolution Data Server for local contacts, libsocialweb for web service contacts,
7220etc.) to create metacontacts. It's written in Vala, which generates C code when
7221compiled.")
7222 (home-page "https://wiki.gnome.org/Projects/Folks")
7223 (license license:lgpl2.1+)))
01ea778f
LF
7224
7225(define-public gfbgraph
7226 (package
7227 (name "gfbgraph")
7228 (version "0.2.3")
7229 (source (origin
7230 (method url-fetch)
7231 (uri (string-append
7232 "mirror://gnome/sources/" name "/"
7233 (version-major+minor version) "/"
7234 name "-" version ".tar.xz"))
7235 (sha256
7236 (base32
7237 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
7238 (build-system glib-or-gtk-build-system)
7239 (arguments
7240 `(#:tests? #f ; Tests appear to require the network.
7241 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
7242 #:configure-flags '("--disable-gtk-doc"
7243 "--disable-static"
7244 "--enable-introspection")))
7245 (native-inputs
7246 `(("pkg-config" ,pkg-config)
7247 ("gobject-introspection" ,gobject-introspection)))
7248 (inputs
7249 `(("json-glib" ,json-glib)
14c297fd 7250 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
7251 ("rest" ,rest)))
7252 (synopsis "GLib/GObject wrapper for the Facebook API")
7253 (description "This library allows you to use the Facebook API from
7254GLib/GObject code.")
7255 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
7256 (license license:lgpl2.1+)))
3920868c 7257
7258(define-public libgnomekbd
7259 (package
7260 (name "libgnomekbd")
4a3f6e02 7261 (version "3.26.0")
3920868c 7262 (source (origin
7263 (method url-fetch)
7264 (uri (string-append "mirror://gnome/sources/" name "/"
7265 (version-major+minor version) "/"
7266 name "-" version ".tar.xz"))
7267 (sha256
7268 (base32
4a3f6e02 7269 "0xc8jrc44x2h24v28wv36k70k7bwxy6p2vsvxvvia1n3ay642fza"))))
3920868c 7270 (build-system gnu-build-system)
7271 (native-inputs
7272 `(("pkg-config" ,pkg-config)
7273 ("glib" ,glib "bin")
7274 ("intltool" ,intltool)))
7275 (propagated-inputs
7276 ;; Referred to in .h files and .pc.
7277 `(("glib" ,glib)
7278 ("gtk+" ,gtk+)
7279 ("libxklavier" ,libxklavier)))
7280 (home-page "https://www.gnome.org")
7281 (synopsis "GNOME keyboard configuration library")
7282 (description
7283 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
7284environment, which can notably display keyboard layouts.")
7285 (license license:lgpl2.0+)))
85327d0d 7286
7287;;; This package is no longer maintained:
7288;;; https://wiki.gnome.org/Attic/LibUnique
7289;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
7290;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
7291(define-public libunique
7292 (package
7293 (name "libunique")
7294 (version "3.0.2")
7295 (source (origin
7296 (method url-fetch)
7297 (uri (string-append "mirror://gnome/sources/" name "/"
7298 (version-major+minor version) "/"
7299 name "-" version ".tar.xz"))
7300 (sha256
7301 (base32
7302 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
7303 (build-system glib-or-gtk-build-system)
7304 (arguments
7305 `(#:configure-flags '("--disable-static"
7306 "--disable-dbus" ; use gdbus
7307 "--enable-introspection")))
7308 (native-inputs
7309 `(("pkg-config" ,pkg-config)
7310 ("gobject-introspection" ,gobject-introspection)
7311 ("glib:bin" ,glib "bin")
7312 ("gtk-doc" ,gtk-doc)))
7313 (propagated-inputs
7314 ;; Referred to in .h files and .pc.
7315 `(("gtk+" ,gtk+)))
7316 (home-page "https://wiki.gnome.org/Attic/LibUnique")
7317 (synopsis "Library for writing single instance applications")
7318 (description
7319 "Libunique is a library for writing single instance applications. If you
7320launch a single instance application twice, the second instance will either just
7321quit or will send a message to the running instance. Libunique makes it easy to
7322write this kind of application, by providing a base class, taking care of all
7323the IPC machinery needed to send messages to a running instance, and also
7324handling the startup notification side.")
7325 (license license:lgpl2.1+)))
54021cd8
RS
7326
7327(define-public gnome-calculator
7328 (package
7329 (name "gnome-calculator")
112e9083 7330 (version "3.28.2")
54021cd8
RS
7331 (source
7332 (origin
7333 (method url-fetch)
7334 (uri (string-append "mirror://gnome/sources/" name "/"
7335 (version-major+minor version) "/"
7336 name "-" version ".tar.xz"))
7337 (sha256
7338 (base32
112e9083 7339 "0izsrqc9fm2lh25jr3nzi94p5hh2d3cklxqczbq16by85wr1xm5s"))))
54021cd8
RS
7340 (build-system glib-or-gtk-build-system)
7341 (native-inputs
7342 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7343 ("intltool" ,intltool)
7344 ("itstool" ,itstool)
7345 ("pkg-config" ,pkg-config)))
7346 (inputs
112e9083
RW
7347 `(("glib" ,glib)
7348 ("gtksourceview" ,gtksourceview-3)
54021cd8 7349 ("libsoup" ,libsoup)
112e9083 7350 ("libxml2" ,libxml2)
2c2da7ec 7351 ("mpc" ,mpc)
54021cd8
RS
7352 ("mpfr" ,mpfr)))
7353 (home-page "https://wiki.gnome.org/Apps/Calculator")
7354 (synopsis "Desktop calculator")
7355 (description
7356 "Calculator is an application that solves mathematical equations and
7357is suitable as a default application in a Desktop environment.")
7358 (license license:gpl3)))
0bd69759
RS
7359
7360(define-public xpad
7361 (package
7362 (name "xpad")
c85626bb 7363 (version "5.1.0")
0bd69759
RS
7364 (source
7365 (origin
7366 (method url-fetch)
08fda9c6
R
7367 (uri (string-append "https://launchpad.net/xpad/trunk/"
7368 version "/+download/"
0bd69759
RS
7369 name "-" version ".tar.bz2"))
7370 (sha256
7371 (base32
c85626bb 7372 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
7373 (build-system gnu-build-system)
7374 (native-inputs
08fda9c6
R
7375 `(("autoconf" ,autoconf)
7376 ("automake" ,automake)
7377 ("gtk+:bin" ,gtk+ "bin")
7378 ("intltool" ,intltool)
0bd69759
RS
7379 ("pkg-config" ,pkg-config)))
7380 (inputs
c72647fb 7381 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
7382 ("libsm" ,libsm)))
7383 (home-page "https://wiki.gnome.org/Apps/Xpad")
7384 (synopsis "Virtual sticky note")
7385 (description
7386 "Xpad is a sticky note that strives to be simple, fault tolerant,
7387and customizable. Xpad consists of independent pad windows, each is
7388basically a text box in which notes can be written.")
7389 (license license:gpl3+)))
3ad7dce1
RS
7390
7391(define-public gucharmap
c60063ea
RW
7392 (let ((unicode-files
7393 '(("Blocks.txt"
7394 "19zf2kd198mcv1paa194c1zf36hay1irbxssi35yi2pd8ad69qas")
7395 ("DerivedAge.txt"
7396 "1h9p1g0wnh686l6cqar7cmky465vwc6vjzzn1s7v0i9zcjaqkr4h")
7397 ("NamesList.txt"
7398 "0gvpcyq852rnlqmx4y5i1by7bavvcw6rj40i54w48yc7xr3zmgd1")
7399 ("Scripts.txt"
7400 "0b9prz2hs6w61afqaplcxnv115f8yk4d5hn9dc5hks8nqpj28bnh")
7401 ("UnicodeData.txt"
7402 "1cfak1j753zcrbgixwgppyxhm4w8vda8vxhqymi7n5ljfi6kwhjj")
7403 ("Unihan.zip"
7404 "199kz6laypkvc0ykms6d7bkb571jmpds39sv2p7kd5jjm1ij08q1"))))
7405 (package
7406 (name "gucharmap")
7407 (version "10.0.4")
7408 (source
7409 (origin
7410 (method url-fetch)
7411 (uri (string-append "mirror://gnome/sources/" name "/"
7412 (version-major+minor version) "/"
7413 name "-" version ".tar.xz"))
7414 (sha256
7415 (base32
7416 "00gh3lll6wykd2qg1lrj05a4wvscsypmrx7rpb6jsbvb4scnh9mv"))))
7417 (build-system glib-or-gtk-build-system)
7418 (arguments
7419 `(#:modules ((ice-9 match)
7420 (guix build glib-or-gtk-build-system)
7421 (guix build utils))
7422 #:configure-flags
7423 (list "--with-unicode-data=../unicode-data")
7424 #:phases
7425 (modify-phases %standard-phases
7426 (add-after 'unpack 'prepare-unicode-data
7427 (lambda* (#:key inputs #:allow-other-keys)
7428 (mkdir-p "../unicode-data")
7429 (with-directory-excursion "../unicode-data"
7430 (for-each (match-lambda
7431 ((file _)
7432 (install-file (assoc-ref inputs file) ".")))
7433 ',unicode-files))
7434 #t)))))
7435 (native-inputs
7436 `(("desktop-file-utils" ,desktop-file-utils)
7437 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
7438 ("gobject-introspection" ,gobject-introspection)
7439 ("intltool" ,intltool)
7440 ("itstool" ,itstool)
7441 ("pkg-config" ,pkg-config)
7442 ,@(map (match-lambda
7443 ((file hash)
7444 `(,file
7445 ,(origin
7446 (method url-fetch)
7447 (uri (string-append
7448 "http://www.unicode.org/Public/10.0.0/ucd/"
7449 file))
7450 (sha256 (base32 hash))))))
7451 unicode-files)
7452 ("unzip" ,unzip)))
7453 (inputs
7454 `(("gtk+" ,gtk+)
7455 ("xmllint" ,libxml2)))
7456 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
7457 (synopsis "Unicode character picker and font browser")
7458 (description
7459 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
7460characters and categories for the installed fonts, and to examine their
7461detailed properties. It is an easy way to find the character you might
7462only know by its Unicode name or code point.")
c60063ea 7463 (license license:gpl3+))))
04ce840a
RS
7464
7465(define-public bluefish
7466 (package
7467 (name "bluefish")
ea8afaf3 7468 (version "2.2.10")
04ce840a
RS
7469 (source
7470 (origin
7471 (method url-fetch)
7472 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
7473 name "-" version ".tar.gz"))
7474 (sha256
7475 (base32
ea8afaf3 7476 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
04ce840a
RS
7477 (build-system gnu-build-system)
7478 (native-inputs
7479 `(("desktop-file-utils" ,desktop-file-utils)
7480 ("intltool" ,intltool)
7481 ("pkg-config" ,pkg-config)))
7482 (inputs
7483 `(("enchant" ,enchant)
7484 ("gtk+" ,gtk+)
7485 ("python" ,python-2)
7486 ("xmllint" ,libxml2)
7487 ("gucharmap" ,gucharmap)))
7488 (home-page "http://bluefish.openoffice.nl")
7489 (synopsis "Web development studio")
7490 (description
7491 "Bluefish is an editor targeted towards programmers and web developers,
7492with many options to write web sites, scripts and other code.
7493Bluefish supports many programming and markup languages.")
7494 (license license:gpl3+)))
1f6a73ee
RS
7495
7496(define-public gnome-system-monitor
7497 (package
7498 (name "gnome-system-monitor")
4985d9aa 7499 (version "3.28.2")
1f6a73ee
RS
7500 (source
7501 (origin
7502 (method url-fetch)
7503 (uri (string-append "mirror://gnome/sources/" name "/"
7504 (version-major+minor version) "/"
7505 name "-" version ".tar.xz"))
7506 (sha256
7507 (base32
4985d9aa 7508 "164in885dyfvna5yjzgdyrbrsskvh5wzxdmkjgb4mbh54lzqd1zb"))))
1f6a73ee
RS
7509 (build-system glib-or-gtk-build-system)
7510 (native-inputs
7511 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
7512 ("intltool" ,intltool)
7513 ("itstool" ,itstool)
7514 ("libgtop" ,libgtop)
4985d9aa 7515 ("polkit" ,polkit)
1f6a73ee
RS
7516 ("pkg-config" ,pkg-config)))
7517 (inputs
7518 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
7519 ("gtk+" ,gtk+)
7520 ("gtkmm" ,gtkmm)
7521 ("librsvg" ,librsvg)
4985d9aa
RW
7522 ("libxml2" ,libxml2)
7523 ("libwnck" ,libwnck)))
1f6a73ee
RS
7524 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
7525 (synopsis "Process viewer and system resource monitor for GNOME")
7526 (description
7527 "GNOME System Monitor is a GNOME process viewer and system monitor with
7528an attractive, easy-to-use interface. It has features, such as a tree view
7529for process dependencies, icons for processes, the ability to hide processes,
7530graphical time histories of CPU/memory/swap usage and the ability to
7531kill/reinice processes.")
7532 (license license:gpl2+)))
3e00ac47
SB
7533
7534(define-public python-pyatspi
7535 (package
7536 (name "python-pyatspi")
84548bd7 7537 (version "2.26.0")
3e00ac47
SB
7538 (source (origin
7539 (method url-fetch)
7540 (uri (string-append
7541 "mirror://gnome/sources/pyatspi/"
7542 (version-major+minor version)
7543 "/pyatspi-" version ".tar.xz"))
7544 (sha256
7545 (base32
b95af3f6
JL
7546 "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))
7547 ;; Patch from upstream, fixed in newer versions.
7548 (patches (search-patches "python-pyatspi-python-37.patch"))))
3e00ac47 7549 (build-system gnu-build-system)
b95af3f6
JL
7550 (arguments
7551 `(#:phases
7552 (modify-phases %standard-phases
7553 (add-before 'build 'fix-atk-load
7554 (lambda _
7555 (substitute* "pyatspi/__init__.py"
7556 (("from gi.repository import Atspi")
7557 "gi.require_version('Gtk', '3.0')
7558from gi.repository import Gtk
7559from gi.repository import Atspi"))
7560 #t)))))
3e00ac47
SB
7561 (native-inputs
7562 `(("pkg-config" ,pkg-config)))
7563 (inputs
7564 `(("python" ,python)
7565 ("python-pygobject" ,python-pygobject)))
7566 (synopsis "Python client bindings for D-Bus AT-SPI")
7567 (home-page "https://wiki.linuxfoundation.org/accessibility\
7568/atk/at-spi/at-spi_on_d-bus")
7569 (description
7570 "This package includes a python client library for the AT-SPI D-Bus
7571accessibility infrastructure.")
7572 (license license:lgpl2.0)
7573 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
7574
7575(define-public orca
7576 (package
7577 (name "orca")
870a4e70 7578 (version "3.28.1")
53201c0d
SB
7579 (source (origin
7580 (method url-fetch)
7581 (uri (string-append
7582 "mirror://gnome/sources/" name "/"
7583 (version-major+minor version) "/"
7584 name "-" version ".tar.xz"))
7585 (sha256
7586 (base32
870a4e70 7587 "04l5ccn7wf175gyq3blfpx0yh70ny06n161297jwc9idf951852g"))))
53201c0d
SB
7588 (build-system glib-or-gtk-build-system)
7589 (arguments
7590 '(#:phases
7591 (modify-phases %standard-phases
7592 (add-before 'configure 'qualify-xkbcomp
7593 (lambda* (#:key inputs #:allow-other-keys)
7594 (let ((xkbcomp (string-append
7595 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
7596 (substitute* "src/orca/orca.py"
7597 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
7598 #t))
7599 (add-after 'install 'wrap-orca
7600 (lambda* (#:key outputs #:allow-other-keys)
7601 (let* ((out (assoc-ref outputs "out"))
7602 (prog (string-append out "/bin/orca")))
7603 (wrap-program prog
7604 `("GI_TYPELIB_PATH" ":" prefix
7605 (,(getenv "GI_TYPELIB_PATH")))
7606 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
7607 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
7608 `("PYTHONPATH" ":" prefix
7609 (,(getenv "PYTHONPATH")))))
7610 #t)))))
7611 (native-inputs
7612 `(("intltool" ,intltool)
7613 ("itstool" ,itstool)
7614 ("pkg-config" ,pkg-config)
7615 ("xmllint" ,libxml2)))
7616 (inputs
7617 `(("at-spi2-atk" ,at-spi2-atk)
7618 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7619 ("gstreamer" ,gstreamer)
7620 ("gst-plugins-base" ,gst-plugins-base)
7621 ("gst-plugins-good" ,gst-plugins-good)
7622 ("gtk+" ,gtk+)
7623 ("python" ,python)
7624 ("python-pygobject" ,python-pygobject)
7625 ("python-pyatspi" ,python-pyatspi)
7626 ("python-speechd" ,speech-dispatcher)
7627 ("xkbcomp" ,xkbcomp)))
7628 (synopsis
7629 "Screen reader for individuals who are blind or visually impaired")
7630 (home-page "https://wiki.gnome.org/Projects/Orca")
7631 (description
7632 "Orca is a screen reader that provides access to the graphical desktop
7633via speech and refreshable braille. Orca works with applications and toolkits
7634that support the Assistive Technology Service Provider Interface (AT-SPI).")
7635 (license license:lgpl2.1+)))
411ba511
LC
7636
7637(define-public gspell
7638 (package
7639 (name "gspell")
9b1bb757 7640 (version "1.8.1")
411ba511
LC
7641 (source (origin
7642 (method url-fetch)
7643 (uri (string-append "mirror://gnome/sources/" name "/"
7644 (version-major+minor version) "/"
7645 name "-" version ".tar.xz"))
7646 (sha256
7647 (base32
9b1bb757 7648 "1rdv873ixhwr15jwgc2z6k6y0hj353fqnwsy7zkh0c30qwiiv6l1"))
411ba511
LC
7649 (patches (search-patches "gspell-dash-test.patch"))))
7650 (build-system glib-or-gtk-build-system)
7651 (arguments
7652 '(#:phases
7653 (modify-phases %standard-phases
7654 (add-before 'check 'pre-check
7655 (lambda* (#:key inputs #:allow-other-keys)
7656 ;; Tests require a running X server.
7657 (system "Xvfb :1 &")
7658 (setenv "DISPLAY" ":1")
7659
7660 ;; For the missing /etc/machine-id.
7661 (setenv "DBUS_FATAL_WARNINGS" "0")
7662
7663 ;; Allow Enchant and its Aspell backend to find the en_US
7664 ;; dictionary.
7665 (setenv "ASPELL_DICT_DIR"
7666 (string-append (assoc-ref inputs "aspell-dict-en")
7667 "/lib/aspell"))
7668 #t)))))
7669 (inputs
eccd35be 7670 `(("gtk+" ,gtk+)
a801ae4c
TGR
7671 ("glib" ,glib)
7672 ("iso-codes" ,iso-codes)))
411ba511
LC
7673 (native-inputs
7674 `(("glib" ,glib "bin")
7675 ("pkg-config" ,pkg-config)
7676 ("xmllint" ,libxml2)
7677
7678 ;; For tests.
a801ae4c
TGR
7679 ("aspell-dict-en" ,aspell-dict-en)
7680 ("xorg-server" ,xorg-server)))
eccd35be 7681 (propagated-inputs
9b1bb757 7682 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
7683 (home-page "https://wiki.gnome.org/Projects/gspell")
7684 (synopsis "GNOME's alternative spell checker")
7685 (description
7686 "gspell provides a flexible API to add spell-checking to a GTK+
7687application. It provides a GObject API, spell-checking to text entries and
7688text views, and buttons to choose the language.")
7689 (license license:gpl2+)))
d1d739fa
CM
7690
7691(define-public gnome-planner
7692 (package
7693 (name "gnome-planner")
7694 (version "0.14.6")
7695 (source (origin
7696 (method url-fetch)
7697 (uri (string-append "mirror://gnome/sources/planner/"
7698 (version-major+minor version) "/planner-"
7699 version ".tar.xz"))
7700 (sha256
7701 (base32
7702 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
7703 (build-system glib-or-gtk-build-system)
7704 (arguments
7705 ;; Disable the Python bindings because the Planner program functions
7706 ;; without them, and (as of 2017-06-13) we have not packaged all of
7707 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
7708 `(#:configure-flags
7709 (list "--disable-python"
7710 ,@(if (string=? "aarch64-linux" (%current-system))
7711 '("--build=aarch64-unknown-linux-gnu")
7712 '()))))
d1d739fa
CM
7713 (inputs
7714 `(("libgnomecanvas" ,libgnomecanvas)
7715 ("libgnomeui" ,libgnomeui)
7716 ("libglade" ,libglade)
7717 ("gnome-vfs" ,gnome-vfs)
7718 ("gconf" ,gconf)
7719 ("libxml2" ,libxml2)
7720 ("libxslt" ,libxslt)
7721 ("gtk+" ,gtk+)
7722 ("glib" ,glib)))
7723 (native-inputs
7724 `(("intltool" ,intltool)
7725 ("scrollkeeper" ,scrollkeeper)
7726 ("pkg-config" ,pkg-config)))
7727 (home-page "https://wiki.gnome.org/Apps/Planner")
7728 (synopsis "Project management software for the GNOME desktop")
7729 (description
7730 "GNOME Planner is a project management tool based on the Work Breakdown
7731Structure (WBS). Its goal is to enable you to easily plan projects. Based on
7732the resources, tasks, and constraints that you define, Planner generates
7733various views into a project. For example, Planner can show a Gantt chart of
7734the project. It can show a detailed summary of tasks including their
7735duration, cost, and current progress. It can also show a report of resource
7736utilization that highlights under-utilized and over-utilized resources. These
7737views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 7738 (license license:gpl2+)))
64fce637
RS
7739
7740(define-public lollypop
7741 (package
7742 (name "lollypop")
d029afdd 7743 (version "1.1.3.1")
64fce637
RS
7744 (source
7745 (origin
7746 (method url-fetch)
b98eace8 7747 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
d029afdd 7748 "5a7cd7c72b6d83ae08d0c54c4691f9df/"
64fce637
RS
7749 name "-" version ".tar.xz"))
7750 (sha256
7751 (base32
d029afdd 7752 "1r5wn0bja9psz6nr1rcaysdkkwz84rbyzpdfw66cxa6wiy52pkjm"))))
aa498fc0 7753 (build-system meson-build-system)
64fce637
RS
7754 (arguments
7755 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
7756 ,@%meson-build-system-modules)
7757 #:glib-or-gtk? #t
5fc9b6c1
EF
7758 #:tests? #f ; no test suite
7759 #:phases
7760 (modify-phases %standard-phases
5fc9b6c1
EF
7761 (add-after 'install 'wrap-program
7762 (lambda* (#:key outputs #:allow-other-keys)
7763 (let ((out (assoc-ref outputs "out"))
7764 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7765 (wrap-program (string-append out "/bin/lollypop")
7766 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7767 #t))
7768 (add-after 'install 'wrap
7769 (@@ (guix build python-build-system) wrap)))))
64fce637
RS
7770 (native-inputs
7771 `(("intltool" ,intltool)
7772 ("itstool" ,itstool)
aa498fc0
TD
7773 ("glib:bin" ,glib "bin") ; For glib-compile-resources
7774 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
7775 ("pkg-config" ,pkg-config)))
7776 (inputs
7777 `(("gobject-introspection" ,gobject-introspection)
5fc9b6c1 7778 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
7779 ("libnotify" ,libnotify)
7780 ("libsecret" ,libsecret)
7781 ("libsoup" ,libsoup)
7782 ("python" ,python)
7783 ("python-beautifulsoup4" ,python-beautifulsoup4)
7784 ("python-gst" ,python-gst)
d029afdd 7785 ("python-pil" ,python-pillow)
64fce637
RS
7786 ("python-pycairo" ,python-pycairo)
7787 ("python-pygobject" ,python-pygobject)
7788 ("python-pylast" ,python-pylast)
7789 ("totem-pl-parser" ,totem-pl-parser)
7790 ("webkitgtk" ,webkitgtk)))
7791 (propagated-inputs
7792 `(;; gst-plugins-base is required to start Lollypop,
7793 ;; the others are required to play streaming.
64fce637
RS
7794 ("gst-plugins-good" ,gst-plugins-good)
7795 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 7796 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
7797 (synopsis "GNOME music playing application")
7798 (description
7799 "Lollypop is a music player designed to play well with GNOME desktop.
7800Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
7801from artists and tracks from the web. It also fetches cover artworks
7802automatically and it can stream songs from online music services and charts.")
7803 (license license:gpl3+)))
d831d49d
AW
7804
7805(define-public gnome-video-effects
7806 (package
7807 (name "gnome-video-effects")
7808 (version "0.4.3")
7809 (source (origin
7810 (method url-fetch)
7811 (uri (string-append "mirror://gnome/sources/" name "/"
7812 (version-major+minor version) "/" name "-"
7813 version ".tar.xz"))
7814 (sha256
7815 (base32
7816 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
7817 (build-system glib-or-gtk-build-system)
7818 (arguments
7819 `(#:out-of-source? #f))
7820 (native-inputs
7821 `(("glib:bin" ,glib "bin")
7822 ("intltool" ,intltool)
7823 ("gettext" ,gettext-minimal)
7824 ("pkg-config" ,pkg-config)))
7825 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
7826 (synopsis "Video effects for Cheese and other GNOME applications")
7827 (description
7828 "A collection of GStreamer video filters and effects to be used in
7829photo-booth-like software, such as Cheese.")
7830 (license license:gpl2+)))
3511c780
AW
7831
7832(define-public cheese
7833 (package
7834 (name "cheese")
4b3480d6 7835 (version "3.28.0")
3511c780
AW
7836 (source (origin
7837 (method url-fetch)
7838 (uri (string-append "mirror://gnome/sources/" name "/"
7839 (version-major+minor version) "/" name "-"
7840 version ".tar.xz"))
7841 (sha256
7842 (base32
4b3480d6 7843 "06da5qc5hdvwwd5vkbgbx8pjx1l3mvr07yrnnv3v1hfc3wp7l7jw"))))
3511c780
AW
7844 (arguments
7845 ;; Tests require GDK.
7846 `(#:tests? #f
7847 #:phases
7848 (modify-phases %standard-phases
7849 (add-before 'install 'skip-gtk-update-icon-cache
7850 (lambda _
7851 ;; Don't create 'icon-theme.cache'
7852 (substitute* "Makefile"
7853 (("gtk-update-icon-cache") (which "true")))
7854 #t))
7855 (add-after 'install 'wrap-cheese
7856 (lambda* (#:key inputs outputs #:allow-other-keys)
7857 (let ((out (assoc-ref outputs "out"))
7858 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
7859 (wrap-program (string-append out "/bin/cheese")
7860 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
7861 #t)))))
7862 (build-system glib-or-gtk-build-system)
7863 (native-inputs
7864 `(("glib:bin" ,glib "bin")
7865 ("intltool" ,intltool)
7866 ("itstool" ,itstool)
7867 ("libxml2" ,libxml2)
7868 ("pkg-config" ,pkg-config)
7869 ("vala" ,vala)))
7870 (propagated-inputs
6a19f03e
RW
7871 `(("gnome-video-effects" ,gnome-video-effects)
7872 ("clutter" ,clutter)
3511c780
AW
7873 ("clutter-gst" ,clutter-gst)
7874 ("clutter-gtk" ,clutter-gtk)
6a19f03e 7875 ("libcanberra" ,libcanberra)
3511c780
AW
7876 ("gdk-pixbuf" ,gdk-pixbuf)
7877 ("glib" ,glib)
6a19f03e
RW
7878 ("gstreamer" ,gstreamer)))
7879 (inputs
7880 `(("gnome-desktop" ,gnome-desktop)
3511c780 7881 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
7882 ("gst-plugins-base" ,gst-plugins-base)
7883 ("gst-plugins-bad" ,gst-plugins-bad)
7884 ("gtk+" ,gtk+)
3511c780
AW
7885 ("libx11" ,libx11)
7886 ("libxtst" ,libxtst)))
7887 (home-page "https://wiki.gnome.org/Apps/Cheese")
7888 (synopsis "Webcam photo booth software for GNOME")
7889 (description
7890 "Cheese uses your webcam to take photos and videos. Cheese can also
7891apply fancy special effects and lets you share the fun with others.")
7892 (license license:gpl2+)))
3c5dbd2b 7893
7894(define-public sound-juicer
7895 (package
7896 (name "sound-juicer")
7897 (version "3.24.0")
7898 (source
7899 (origin
7900 (method url-fetch)
7901 (uri (string-append "mirror://gnome/sources/" name "/"
7902 (version-major+minor version) "/"
7903 name "-" version ".tar.xz"))
7904 (sha256
7905 (base32
7906 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
7907 (build-system glib-or-gtk-build-system)
7908 (native-inputs
7909 `(("desktop-file-utils" ,desktop-file-utils)
7910 ("intltool" ,intltool)
7911 ("itstool" ,itstool)
7912 ("pkg-config" ,pkg-config)
7913 ("xmllint" ,libxml2)))
7914 (inputs
7915 `(("gtk+" ,gtk+)
7916 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7917 ("gstreamer" ,gstreamer)
7918 ("gst-plugins-base" ,gst-plugins-base)
7919 ("gst-plugins-good" ,gst-plugins-good)
7920 ("iso-codes" ,iso-codes)
7921 ("libbrasero-media3" ,brasero)
7922 ("libcanberra" ,libcanberra)
7923 ("libdiscid" ,libdiscid)
7924 ("libmusicbrainz" ,libmusicbrainz)
7925 ("neon" ,neon)))
7926 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
7927 (synopsis "Audio music cd ripper")
7928 (description "Sound Juicer extracts audio from compact discs and convert it
7929into audio files that a personal computer or digital audio player can play.
7930It supports ripping to any audio codec supported by a GStreamer plugin, such as
7931mp3, Ogg Vorbis and FLAC")
7932 (license license:gpl2+)))
4e3fdeb7 7933
0d3f1708
CB
7934(define-public soundconverter
7935 (package
7936 (name "soundconverter")
fa75a213 7937 (version "3.0.1")
0d3f1708
CB
7938 (source
7939 (origin
7940 (method url-fetch)
7941 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
7942 version "/+download/"
7943 "soundconverter-" version ".tar.xz"))
7944
7945 (sha256
fa75a213 7946 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
7947 (patches
7948 (search-patches
7949 "soundconverter-remove-gconf-dependency.patch"))))
7950 (build-system glib-or-gtk-build-system)
7951 (arguments
7952 `(#:imported-modules ((guix build python-build-system)
7953 (guix build glib-or-gtk-build-system)
7954 ,@%gnu-build-system-modules)
7955
7956 #:modules ((guix build glib-or-gtk-build-system)
7957 (guix build utils)
7958 ((guix build gnu-build-system) #:prefix gnu:)
7959 ((guix build python-build-system) #:prefix python:))
7960
7961 #:phases
7962 (modify-phases %standard-phases
0d3f1708
CB
7963 (add-after 'install 'wrap-soundconverter-for-python
7964 (assoc-ref python:%standard-phases 'wrap))
7965 (add-after 'install 'wrap-soundconverter
7966 (lambda* (#:key inputs outputs #:allow-other-keys)
7967 (let ((out (assoc-ref outputs "out"))
7968 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7969 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
7970 (wrap-program (string-append out "/bin/soundconverter")
7971 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7972 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
7973 #t)))))
7974 (native-inputs
7975 `(("intltool" ,intltool)
7976 ("pkg-config" ,pkg-config)
7977 ("glib:bin" ,glib "bin")))
7978 (inputs
7979 `(("gtk+" ,gtk+)
7980 ("python" ,python)
7981 ("python-pygobject" ,python-pygobject)
7982 ("gstreamer" ,gstreamer)
7983 ("gst-plugins-base" ,gst-plugins-base)))
7984 (home-page "http://soundconverter.org/")
7985 (synopsis "Convert between audio formats with a graphical interface")
7986 (description
7987 "SoundConverter supports converting between many audio formats including
7988Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
7989configurable file renaming. ")
7990 (license license:gpl3)))
7991
4e3fdeb7 7992(define-public workrave
89f2d736
TGR
7993 (package
7994 (name "workrave")
c2e50474 7995 (version "1.10.23")
89f2d736
TGR
7996 (source
7997 (origin
7998 (method git-fetch)
7999 (uri (git-reference
8000 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
8001 (commit (string-append "v" (string-map
8002 (match-lambda (#\. #\_) (chr chr))
8003 version)))))
89f2d736
TGR
8004 (file-name (git-file-name name version))
8005 (sha256
c2e50474 8006 (base32 "1qhlwfhwk5agv4904d6bsf83k9k89q7bms6agg967vsca4905vcw"))))
89f2d736
TGR
8007 (build-system glib-or-gtk-build-system)
8008 (propagated-inputs `(("glib" ,glib)
8009 ("gtk+" ,gtk+)
8010 ("gdk-pixbuf" ,gdk-pixbuf)
8011 ("gtkmm" ,gtkmm)
8012 ("glibmm" ,glibmm)
8013 ("libx11" ,libx11)
8014 ("libxtst" ,libxtst)
8015 ("dconf" ,dconf)
8016 ("libice" ,libice)))
8017 (inputs `(("libsm" ,libsm)
8018 ("python-cheetah" ,python2-cheetah)))
8019 (native-inputs `(("glib" ,glib "bin")
8020 ("pkg-config" ,pkg-config)
8021 ("gettext" ,gnu-gettext)
8022 ("autoconf" ,autoconf)
8023 ("autoconf-archive" , autoconf-archive)
8024 ("automake" ,automake)
8025 ("libtool" ,libtool)
8026 ("intltool" ,intltool)
8027 ("libxscrnsaver" ,libxscrnsaver)
8028 ("gobject-introspection" ,gobject-introspection)
8029 ("python2" ,python-2)))
8030 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
8031 (description
8032 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
8033repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
8034micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
8035 (home-page "http://www.workrave.org")
8036 (license license:gpl3+)))
312afa7d
LC
8037
8038(define-public ghex
8039 (package
8040 (name "ghex")
8041 (version "3.18.3")
8042 (source (origin
8043 (method url-fetch)
2fbab848 8044 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 8045 (version-major+minor version) "/"
2fbab848 8046 "ghex-" version ".tar.xz"))
312afa7d
LC
8047 (sha256
8048 (base32
8049 "1lq8920ad2chi9ibmyq0x9hg9yk63b0kdbzid03w42cwdzw50x66"))))
8050 (build-system glib-or-gtk-build-system)
8051 (native-inputs
8052 `(("pkg-config" ,pkg-config)
8053 ("gnome-common" ,gnome-common)
8054 ("which" ,which)
8055 ("intltool" ,intltool)
8056 ("yelp-tools" ,yelp-tools)
2fbab848 8057 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
8058 (inputs
8059 `(("atk" ,atk)
8060 ("gtk" ,gtk+)))
8061 (synopsis "GNOME hexadecimal editor")
8062 (description "The GHex program can view and edit files in two ways:
8063hexadecimal or ASCII. It is useful for editing binary files in general.")
8064 (home-page "https://wiki.gnome.org/Apps/Ghex")
8065 (license license:gpl2)))
4b2ed6c2
RW
8066
8067(define-public libdazzle
8068 (package
8069 (name "libdazzle")
64fa66ba 8070 (version "3.33.90")
4b2ed6c2
RW
8071 (source (origin
8072 (method url-fetch)
687b4909 8073 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 8074 (version-major+minor version) "/"
687b4909 8075 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
8076 (sha256
8077 (base32
64fa66ba 8078 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
8079 (build-system meson-build-system)
8080 (arguments
8081 `(#:phases
8082 (modify-phases %standard-phases
4b2ed6c2
RW
8083 (add-before 'check 'pre-check
8084 (lambda _
8085 ;; Tests require a running X server.
8086 (system "Xvfb :1 &")
8087 (setenv "DISPLAY" ":1")
8088 #t)))))
8089 (native-inputs
687b4909 8090 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 8091 ("pkg-config" ,pkg-config)
687b4909 8092 ;; For tests.
4b2ed6c2
RW
8093 ("xorg-server" ,xorg-server)))
8094 (inputs
8095 `(("glib" ,glib)
8096 ("gobject-introspection" ,gobject-introspection)
8097 ("gtk+" ,gtk+)
8098 ("vala" ,vala)))
8099 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
8100 (synopsis "Companion library to GObject and Gtk+")
8101 (description "The libdazzle library is a companion library to GObject and
8102Gtk+. It provides various features that the authors wish were in the
8103underlying library but cannot for various reasons. In most cases, they are
8104wildly out of scope for those libraries. In other cases, they are not quite
8105generic enough to work for everyone.")
8106 (license license:gpl3+)))
7d3bb433
RW
8107
8108(define-public evolution
8109 (package
8110 (name "evolution")
8111 (version "3.28.1")
8112 (source (origin
8113 (method url-fetch)
8114 (uri (string-append "mirror://gnome/sources/evolution/"
8115 (version-major+minor version) "/"
8116 "evolution-" version ".tar.xz"))
8117 (sha256
8118 (base32
8119 "0sdv5lg2vlz5f4raymz9d8a5jq4j18vbqyigaip6508p3bjnfj8l"))))
8120 (build-system cmake-build-system)
8121 (arguments
8122 `(#:configure-flags
8123 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
8124 "-DENABLE_LIBCRYPTUI=OFF"))) ; libcryptui hasn't seen a release
8125 ; in four years and cannot be built.
8126 (native-inputs
8127 `(("glib" ,glib "bin") ; glib-mkenums
8128 ("pkg-config" ,pkg-config)
8129 ("intltool" ,intltool)
8130 ("itstool" ,itstool)))
8131 (inputs
8132 `(("enchant" ,enchant)
8133 ("evolution-data-server" ,evolution-data-server) ; must be the same version
8134 ("gcr" ,gcr)
8135 ("gnome-autoar" ,gnome-autoar)
8136 ("gnome-desktop" ,gnome-desktop)
8137 ("gtkspell3" ,gtkspell3)
8138 ("highlight" ,highlight)
8139 ("libcanberra" ,libcanberra)
da43d1cb 8140 ("libedataserverui" ,evolution-data-server "libedataserverui")
7d3bb433
RW
8141 ("libgweather" ,libgweather)
8142 ("libnotify" ,libnotify)
8143 ("libsoup" ,libsoup)
8144 ("nss" ,nss)
8145 ("openldap" ,openldap)
8146 ("webkitgtk" ,webkitgtk)
8147 ("ytnef" ,ytnef)))
8148 (home-page "https://gitlab.gnome.org/GNOME/evolution")
8149 (synopsis "Manage your email, contacts and schedule")
8150 (description "Evolution is a personal information management application
8151that provides integrated mail, calendaring and address book
8152functionality.")
8153 ;; See COPYING for details.
23dbe621 8154 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 8155 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 8156 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
8157
8158(define-public gthumb
8159 (package
8160 (name "gthumb")
8161 (version "3.8.0")
8162 (source (origin
8163 (method url-fetch)
8164 (uri (string-append "mirror://gnome/sources/gthumb/"
8165 (version-major+minor version) "/"
8166 "gthumb-" version ".tar.xz"))
8167 (sha256
8168 (base32
8169 "1l2s1facq1r6yvqjqc34aqfzlvb3nhkhn79xisxbbdlgrrxdq52f"))))
8170 (build-system meson-build-system)
8171 (arguments
8172 `(#:glib-or-gtk? #t
8173 #:configure-flags
8174 ;; Ensure the RUNPATH contains all installed library locations.
8175 (list (string-append "-Dc_link_args=-Wl,-rpath="
8176 (assoc-ref %outputs "out")
8177 "/lib/gthumb/extensions")
8178 (string-append "-Dcpp_link_args=-Wl,-rpath="
8179 (assoc-ref %outputs "out")
8180 "/lib/gthumb/extensions"))))
8181 (native-inputs
8182 `(("pkg-config" ,pkg-config)
8183 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8184 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8185 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8186 ("intltool" ,intltool)
8187 ("itstool" ,itstool)))
8188 (inputs
8189 `(("exiv2" ,exiv2)
8190 ("gtk" ,gtk+)
8191 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8192 ("gstreamer" ,gstreamer)
8193 ("clutter" ,clutter)
8194 ("clutter-gst" ,clutter-gst)
8195 ("clutter-gtk" ,clutter-gtk)
8196 ("libjpeg" ,libjpeg)
8197 ("libtiff" ,libtiff)
8198 ("libraw" ,libraw)))
8199 (home-page "https://wiki.gnome.org/Apps/Gthumb")
8200 (synopsis "GNOME image viewer and browser")
8201 (description "GThumb is an image viewer, browser, organizer, editor and
8202advanced image management tool")
8203 (license license:gpl2+)))
08be02be
AT
8204
8205(define-public terminator
8206 (package
8207 (name "terminator")
8208 (version "1.91")
8209 (source (origin
8210 (method url-fetch)
8211 (uri (string-append "https://launchpad.net/" name "/"
8212 "gtk3/" version "/" "+download/"
8213 name "-" version ".tar.gz"))
8214 (sha256
8215 (base32
8216 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
8217 (build-system python-build-system)
8218 (native-inputs
8219 `(("intltool" ,intltool)
8220 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8221 ("gettext" ,gettext-minimal)
8222 ("pkg-config" ,pkg-config)))
8223 (inputs
8224 `(("cairo" ,cairo)
8225 ("gobject-introspection" ,gobject-introspection)
96681d4b 8226 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
8227 ("python2-pycairo" ,python2-pycairo)
8228 ("python2-pygobject" ,python2-pygobject)
8229 ("python2-psutil" ,python2-psutil)
8230 ("vte" ,vte)))
8231 (arguments
96681d4b
TGR
8232 `(#:python ,python-2 ; Python 3 isn't supported
8233 #:imported-modules ((guix build glib-or-gtk-build-system)
8234 ,@%python-build-system-modules)
8235 #:modules ((guix build python-build-system)
8236 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8237 (guix build utils))
08be02be
AT
8238 #:phases
8239 (modify-phases %standard-phases
8240 (add-after
8241 'install 'wrap-program
8242 (lambda* (#:key outputs #:allow-other-keys)
8243 (let ((prog (string-append (assoc-ref outputs "out")
8244 "/bin/terminator")))
8245 (wrap-program prog
8246 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
8247 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
8248 #t)))
8249 (add-after 'wrap-program 'glib-or-gtk-wrap
8250 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
8251 (home-page "https://gnometerminator.blogspot.com/")
8252 (synopsis "Store and run multiple GNOME terminals in one window")
8253 (description
8254 "Terminator allows you to run multiple GNOME terminals in a grid and
8255+tabs, and it supports drag and drop re-ordering of terminals.")
8256 (license license:gpl2)))
213315d4
JF
8257
8258(define-public libhandy
8259 (package
8260 (name "libhandy")
d41ee146 8261 (version "0.0.11")
213315d4
JF
8262 (source
8263 (origin
8264 (method git-fetch)
8265 (uri (git-reference
8266 (url "https://source.puri.sm/Librem5/libhandy")
8267 (commit (string-append "v" version))))
8268 (file-name (git-file-name name version))
8269 (sha256
d41ee146 8270 (base32 "0622zp5wrvn5bvgardijxd11y76g1i54fs32y03dw9nrar7i6vb0"))))
213315d4
JF
8271 (build-system meson-build-system)
8272 (arguments
8273 `(#:configure-flags
8274 '("-Dglade_catalog=disabled"
8275 "-Dgtk_doc=true")
8276 #:phases
8277 (modify-phases %standard-phases
213315d4
JF
8278 (add-before 'check 'pre-check
8279 (lambda _
8280 ;; Tests require a running X server.
8281 (system "Xvfb :1 &")
8282 (setenv "DISPLAY" ":1")
8283 #t)))))
8284 (inputs
8285 `(("gtk+" ,gtk+)))
8286 (native-inputs
8287 `(("glib:bin" ,glib "bin")
8288 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
8289 ("vala" ,vala)
8290 ("gtk-doc" ,gtk-doc)
8291 ("pkg-config" ,pkg-config)
8292 ("gettext" ,gettext-minimal)
d41ee146
TGR
8293 ("xorg-server" ,xorg-server)
8294
8295 ;; Test suite dependencies.
8296 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
8297 (home-page "https://source.puri.sm/Librem5/libhandy")
8298 (synopsis "Library full of GTK+ widgets for mobile phones")
8299 (description "The aim of the handy library is to help with developing user
8300intefaces for mobile devices using GTK+.")
8301 (license license:lgpl2.1+)))
a830d14d
GL
8302
8303(define-public libgit2-glib
8304 (package
8305 (name "libgit2-glib")
8306 (version "0.28.0.1")
8307 (source (origin
8308 (method url-fetch)
8309 (uri (string-append "mirror://gnome/sources/" name "/"
8310 (version-major+minor version) "/"
8311 name "-" version ".tar.xz"))
8312 (sha256
8313 (base32
8314 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
8315 (build-system meson-build-system)
8316 (native-inputs
8317 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
8318 ("gobject-introspection" ,gobject-introspection)
8319 ("intltool" ,intltool)
8320 ("libssh2" ,libssh2)
8321 ("pkg-config" ,pkg-config)
8322 ("python-pygobject" ,python-pygobject)
8323 ("python-wrapper" ,python-wrapper)
8324 ("vala" ,vala)))
8325 (inputs
8326 `(("glib" ,glib)
8327 ("libgit2" ,libgit2)))
8328 (synopsis "GLib wrapper around the libgit2 Git access library")
8329 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
8330access library. It only implements the core plumbing functions, not really the
8331higher level porcelain stuff.")
8332 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
8333 (license license:gpl2+)))