gnu: sysstat: Update to 12.3.1.
[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>
03be9874 17;;; Copyright © 2016, 2017, 2019 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>
ac631328 24;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
cce0da5e 25;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
d04687dc 26;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
3c5dbd2b 27;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
d1d739fa 28;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
1d3fcf94 29;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
dcfa0acd 30;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
0438f1d8 31;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
4e3fdeb7 32;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
2eee7ee3 33;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
a18f8eaf 34;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
e57c2adb 35;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
8caa4589 36;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
ec47c07d 37;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
3e9c80b2 38;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
a7a31827 39;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
633422b0 40;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
213315d4 41;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
aa51d92c 42;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
ad6e168b 43;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
93beace0 44;;; Copyright © 2019 David Wilson <david@daviwil.com>
4e868d22 45;;; Copyright © 2019 Raghav Gururajan <raghavgururajan@disroot.org>
f6501b9f 46;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
26ba3f07 47;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
995b7261
AE
48;;;
49;;; This file is part of GNU Guix.
50;;;
51;;; GNU Guix is free software; you can redistribute it and/or modify it
52;;; under the terms of the GNU General Public License as published by
53;;; the Free Software Foundation; either version 3 of the License, or (at
54;;; your option) any later version.
55;;;
56;;; GNU Guix is distributed in the hope that it will be useful, but
57;;; WITHOUT ANY WARRANTY; without even the implied warranty of
58;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
59;;; GNU General Public License for more details.
60;;;
61;;; You should have received a copy of the GNU General Public License
62;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
63
64(define-module (gnu packages gnome)
ed19903d 65 #:use-module (gnu packages)
ba5dd105 66 #:use-module (gnu packages admin)
411ba511 67 #:use-module (gnu packages aspell)
75016d07 68 #:use-module (gnu packages autotools)
7b212526 69 #:use-module (gnu packages avahi)
b29909b4 70 #:use-module (gnu packages backup)
6a180f6f 71 #:use-module (gnu packages base)
1e33331c 72 #:use-module (gnu packages bash)
5698b8b8 73 #:use-module (gnu packages bison)
aa51d92c 74 #:use-module (gnu packages boost)
5fc9b6c1 75 #:use-module (gnu packages build-tools)
df217748 76 #:use-module (gnu packages calendar)
b29909b4 77 #:use-module (gnu packages cdrom)
df12f04a 78 #:use-module (gnu packages check)
d61a894b 79 #:use-module (gnu packages cmake)
b29909b4 80 #:use-module (gnu packages compression)
8f523eb9 81 #:use-module (gnu packages crates-io)
23a22af6 82 #:use-module (gnu packages cups)
6e1bb642 83 #:use-module (gnu packages curl)
c3f29bc9 84 #:use-module (gnu packages cyrus-sasl)
6e1bb642 85 #:use-module (gnu packages databases)
255d1bbe 86 #:use-module (gnu packages dbm)
c769cf9f 87 #:use-module (gnu packages djvu)
ba5dd105 88 #:use-module (gnu packages dns)
b4ce6300 89 #:use-module (gnu packages docbook)
b29909b4 90 #:use-module (gnu packages documentation)
329d731b 91 #:use-module (gnu packages enchant)
b29909b4
TGR
92 #:use-module (gnu packages flex)
93 #:use-module (gnu packages fonts)
e762d943 94 #:use-module (gnu packages file-systems)
a56be436 95 #:use-module (gnu packages fontutils)
b29909b4 96 #:use-module (gnu packages freedesktop)
dfc407f3 97 #:use-module (gnu packages game-development)
fed5a689 98 #:use-module (gnu packages gettext)
b29909b4
TGR
99 #:use-module (gnu packages ghostscript)
100 #:use-module (gnu packages gl)
995b7261 101 #:use-module (gnu packages glib)
c1354b90 102 #:use-module (gnu packages gnupg)
23a22af6 103 #:use-module (gnu packages gnuzilla)
8d8c6bff 104 #:use-module (gnu packages geo)
b29909b4
TGR
105 #:use-module (gnu packages gperf)
106 #:use-module (gnu packages graphviz)
85f5dc19 107 #:use-module (gnu packages gstreamer)
d9c1a22b 108 #:use-module (gnu packages gtk)
6b888eff 109 #:use-module (gnu packages guile)
b645146f 110 #:use-module (gnu packages ibus)
03be9874 111 #:use-module (gnu packages icu4c)
b29909b4
TGR
112 #:use-module (gnu packages image)
113 #:use-module (gnu packages imagemagick)
114 #:use-module (gnu packages inkscape)
9cc98f8a 115 #:use-module (gnu packages iso-codes)
b29909b4 116 #:use-module (gnu packages kerberos)
85f5dc19 117 #:use-module (gnu packages libcanberra)
b64e217f 118 #:use-module (gnu packages libunistring)
75016d07 119 #:use-module (gnu packages libusb)
b29909b4 120 #:use-module (gnu packages linux)
4e3fc547 121 #:use-module (gnu packages lirc)
7b212526 122 #:use-module (gnu packages lua)
b29909b4 123 #:use-module (gnu packages mail)
03be9874 124 #:use-module (gnu packages mp3)
b29909b4 125 #:use-module (gnu packages multiprecision)
64fce637 126 #:use-module (gnu packages music)
b29909b4
TGR
127 #:use-module (gnu packages ncurses)
128 #:use-module (gnu packages nettle)
ba5dd105 129 #:use-module (gnu packages networking)
5fc9b6c1 130 #:use-module (gnu packages ninja)
aff0cce9 131 #:use-module (gnu packages nss)
b29909b4 132 #:use-module (gnu packages openldap)
b645146f 133 #:use-module (gnu packages password-utils)
de1215e2 134 #:use-module (gnu packages pcre)
b29909b4 135 #:use-module (gnu packages pdf)
27477d2d 136 #:use-module (gnu packages perl)
f70d8383 137 #:use-module (gnu packages photo)
995b7261 138 #:use-module (gnu packages pkg-config)
b29909b4
TGR
139 #:use-module (gnu packages polkit)
140 #:use-module (gnu packages popt)
7d3bb433 141 #:use-module (gnu packages pretty-print)
23a22af6 142 #:use-module (gnu packages pulseaudio)
995b7261 143 #:use-module (gnu packages python)
00014781
RW
144 #:use-module (gnu packages python-crypto)
145 #:use-module (gnu packages python-web)
44d10b1f 146 #:use-module (gnu packages python-xyz)
cce0da5e 147 #:use-module (gnu packages rdesktop)
b29909b4 148 #:use-module (gnu packages readline)
a76d0f03 149 #:use-module (gnu packages ruby)
ec47c07d 150 #:use-module (gnu packages rust)
b29909b4 151 #:use-module (gnu packages samba)
75016d07 152 #:use-module (gnu packages scanner)
240cee8a 153 #:use-module (gnu packages selinux)
c27e02bf 154 #:use-module (gnu packages slang)
b29909b4
TGR
155 #:use-module (gnu packages speech)
156 #:use-module (gnu packages spice)
cd0322a3 157 #:use-module (gnu packages sqlite)
4a1bf090 158 #:use-module (gnu packages ssh)
8f9ac901 159 #:use-module (gnu packages tex)
33dc54b0 160 #:use-module (gnu packages time)
a7fd7b68 161 #:use-module (gnu packages tls)
3c5dbd2b 162 #:use-module (gnu packages version-control)
b29909b4 163 #:use-module (gnu packages video)
59132b80 164 #:use-module (gnu packages virtualization)
f2b96b3a 165 #:use-module (gnu packages vpn)
a18f8eaf 166 #:use-module (gnu packages web)
b29909b4
TGR
167 #:use-module (gnu packages web)
168 #:use-module (gnu packages webkit)
169 #:use-module (gnu packages xdisorg)
170 #:use-module (gnu packages xiph)
171 #:use-module (gnu packages xml)
d633f2f6 172 #:use-module (gnu packages xorg)
b29909b4 173 #:use-module (gnu packages xorg)
a76d0f03 174 #:use-module (gnu artwork)
8f523eb9 175 #:use-module (guix build-system cargo)
b29909b4
TGR
176 #:use-module (guix build-system cmake)
177 #:use-module (guix build-system glib-or-gtk)
178 #:use-module (guix build-system gnu)
179 #:use-module (guix build-system meson)
08be02be 180 #:use-module (guix build-system python)
b29909b4
TGR
181 #:use-module (guix build-system trivial)
182 #:use-module (guix download)
183 #:use-module (guix git-download)
184 #:use-module ((guix licenses) #:prefix license:)
185 #:use-module (guix packages)
186 #:use-module (guix utils)
a76d0f03 187 #:use-module (guix gexp)
8f523eb9
EF
188 #:use-module (guix monads)
189 #:use-module (guix store)
4e3fdeb7 190 #:use-module (ice-9 match)
c024ae36 191 #:use-module (srfi srfi-1))
85f5dc19
AE
192
193(define-public brasero
194 (package
195 (name "brasero")
e2bf423a 196 (version "3.12.2")
85f5dc19
AE
197 (source (origin
198 (method url-fetch)
d1df7554 199 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 200 (version-major+minor version) "/"
d1df7554 201 "brasero-" version ".tar.xz"))
85f5dc19
AE
202 (sha256
203 (base32
e2bf423a 204 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 205 (build-system glib-or-gtk-build-system)
e8627cd9
DH
206 (arguments
207 `(#:configure-flags (list
208 (string-append "--with-girdir="
209 (assoc-ref %outputs "out")
210 "/share/gir-1.0")
211 (string-append "--with-typelibdir="
212 (assoc-ref %outputs "out")
ce426deb
TD
213 "/lib/girepository-1.0"))
214 #:phases
215 (modify-phases %standard-phases
216 (add-before 'configure 'embed-growisofs
217 (lambda* (#:key inputs #:allow-other-keys)
218 (substitute* "plugins/growisofs/burn-growisofs.c"
219 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 220 #t)))))
85f5dc19
AE
221 (propagated-inputs
222 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
223 (native-inputs
224 `(("intltool" ,intltool)
ba549e17 225 ("itstool" ,itstool)
426adbe8 226 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 227 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 228 ("pkg-config" ,pkg-config)))
85f5dc19 229 (inputs
ce426deb
TD
230 `(("dvd+rw-tools" ,dvd+rw-tools)
231 ("glib" ,glib)
85f5dc19
AE
232 ("gnome-doc-utils" ,gnome-doc-utils)
233 ("gstreamer" ,gstreamer)
234 ("gst-plugins-base" ,gst-plugins-base)
235 ("gtk+" ,gtk+)
85f5dc19
AE
236 ("libcanberra" ,libcanberra)
237 ("libice" ,libice)
238 ("libnotify" ,libnotify)
239 ("libsm" ,libsm)
e8627cd9 240 ("libxml2" ,libxml2)
e8627cd9 241 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 242 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
243 (synopsis "CD/DVD burning tool for Gnome")
244 (description "Brasero is an application to burn CD/DVD for the Gnome
245Desktop. It is designed to be as simple as possible and has some unique
246features to enable users to create their discs easily and quickly.")
1dd26275 247 (license license:gpl2+)))
995b7261 248
30416265
RG
249(define-public gnome-menus
250 (package
251 (name "gnome-menus")
252 (version "3.32.0")
253 (source (origin
254 (method url-fetch)
255 (uri (string-append "mirror://gnome/sources/gnome-menus/"
256 (version-major+minor version) "/"
257 name "-" version ".tar.xz"))
258 (sha256
259 (base32
260 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
261 (build-system gnu-build-system)
262 (native-inputs
263 `(("gettext" ,gettext-minimal)
264 ("glib" ,glib)
265 ("pkg-config" ,pkg-config)))
266 (synopsis "Menu support for GNOME desktop")
267 (description "GNOME Menus contains the libgnome-menu library, the layout
268configuration files for the GNOME menu, as well as a simple menu editor.")
269 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
270 (license license:gpl2)))
271
d61a894b
CB
272(define-public deja-dup
273 (package
274 (name "deja-dup")
275 (version "34.3")
276 (source (origin
277 (method url-fetch)
278 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
279 (sha256
280 (base32
281 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
282 (patches
283 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
284 (build-system glib-or-gtk-build-system)
285 (arguments
286 `(#:modules ((guix build gnu-build-system)
287 ((guix build cmake-build-system) #:prefix cmake:)
288 (guix build glib-or-gtk-build-system)
289 (guix build utils))
290 #:imported-modules (,@%glib-or-gtk-build-system-modules
291 (guix build cmake-build-system))
292 #:test-target "test"
293 #:configure-flags (list (string-append
294 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
295 (string-append
296 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
297 #:phases
298 (modify-phases %standard-phases
299 (add-after 'unpack 'patch-lockfile-deletion
300 (lambda rest
301 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
302 (("/bin/rm")
303 (which "rm")))))
304 (replace 'configure
305 (assoc-ref cmake:%standard-phases 'configure))
306 (delete 'check) ;; Fails due to issues with DBus
307 (add-after 'install 'wrap-deja-dup
308 (lambda* (#:key inputs outputs #:allow-other-keys)
309 (let ((python (assoc-ref inputs "python"))
310 (python-path (getenv "PYTHONPATH"))
311 (duplicity (assoc-ref inputs "duplicity"))
312 (out (assoc-ref outputs "out")))
313 (for-each
314 (lambda (program)
315 (wrap-program program
316 `("PATH" ":" prefix (,(string-append python "/bin")
317 ,(string-append duplicity "/bin"))))
318 (wrap-program program
319 `("PYTHONPATH" ":" prefix (,python-path))))
320
321 (find-files (string-append out "/bin")))
322 #t))))))
323 (inputs
324 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
325 ("gobject-introspection" ,gobject-introspection)
326 ("duplicity" ,duplicity)
61506fe5 327 ("python" ,python-2)
d61a894b
CB
328 ("python-pygobject" ,python2-pygobject)
329 ("gtk+" ,gtk+)
330 ("libnotify" ,libnotify)
331 ("libpeas" ,libpeas)
332 ("libsecret" ,libsecret)
333 ("packagekit" ,packagekit)))
334 (native-inputs
335 `(("pkg-config" ,pkg-config)
336 ("vala" ,vala)
337 ("gettext" ,gettext-minimal)
338 ("itstool" ,itstool)
339 ("intltool" ,intltool)
c69959f0 340 ("cmake" ,cmake-minimal)))
d61a894b
CB
341 (home-page "https://launchpad.net/deja-dup")
342 (synopsis "Simple backup tool, for regular encrypted backups")
343 (description
344 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
345uses duplicity as the backend, which supports incremental backups and storage
346either on a local, or remote machine via a number of methods.")
347 (license license:gpl3+)))
348
823b77fb
RG
349(define-public gnome-user-docs
350 (package
351 (name "gnome-user-docs")
352 (version "3.32.3")
353 (source
354 (origin
355 (method url-fetch)
356 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
357 (version-major+minor version)
358 "/gnome-user-docs-" version ".tar.xz"))
359 (sha256
360 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
361 (build-system gnu-build-system)
362 (native-inputs
363 `(("gettext" ,gettext-minimal)
364 ("itstool" ,itstool)
365 ("pkg-config" ,pkg-config)
366 ("xmllint" ,libxml2)))
367 (synopsis "User documentation for the GNOME desktop")
368 (description
369 "The GNOME User Documentation explains how to use the GNOME desktop and its
370components. It covers usage and setup of the core GNOME programs by end-users
371and system administrators.")
372 (home-page "https://live.gnome.org/DocumentationProject")
373 (license license:cc-by3.0)))
374
be93299d
RG
375(define-public gnome-getting-started-docs
376 (package
377 (name "gnome-getting-started-docs")
378 (version "3.32.2")
379 (source
380 (origin
381 (method url-fetch)
382 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
383 (version-major+minor version)
384 "/gnome-getting-started-docs-" version ".tar.xz"))
385 (sha256
386 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
387 (build-system gnu-build-system)
388 (native-inputs
389 `(("gettext" ,gettext-minimal)
390 ("itstool" ,itstool)
391 ("pkg-config" ,pkg-config)
392 ("xmllint" ,libxml2)))
393 (synopsis "Help to get new users started with the GNOME desktop")
394 (description
395 "The GNOME Getting Started Documentation contains GNOME's intuitive
396\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
397
398It is normally used together with @command{gnome-initial-setup}, but is also
399useful as a tutorial and users' guide for new or less experienced users.")
400 (home-page "https://live.gnome.org/DocumentationProject")
401 (license license:cc-by-sa3.0)))
402
a56be436
RJ
403(define-public dia
404 ;; This version from GNOME's repository includes fixes for compiling with
405 ;; recent versions of the build tools. The latest activity on the
406 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
407 ;; fixes in 2016.
408 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
409 (package
410 (name "dia")
914c8cdf 411 (version (git-version "0.97.3" "1" commit))
a56be436
RJ
412 (source (origin
413 (method git-fetch)
414 (uri (git-reference
914c8cdf 415 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 416 (commit commit)))
914c8cdf 417 (file-name (git-file-name name version))
a56be436
RJ
418 (sha256
419 (base32
420 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
421 (build-system gnu-build-system)
422 (inputs
a315afa3 423 `(("freetype" ,freetype)
a56be436
RJ
424 ("gdk-pixbuf" ,gdk-pixbuf)
425 ("gtk+" ,gtk+-2)
a315afa3 426 ("libart-lgpl" ,libart-lgpl)
a56be436 427 ("libxml2" ,libxml2)
a315afa3 428 ("pango" ,pango)))
a56be436 429 (native-inputs
a315afa3 430 `(("autoconf" ,autoconf)
a56be436 431 ("automake" ,automake)
a315afa3
EF
432 ("intltool" ,intltool)
433 ("glib" ,glib "bin")
a56be436
RJ
434 ("libtool" ,libtool)
435 ("perl" ,perl)
a315afa3 436 ("pkg-config" ,pkg-config)
a56be436
RJ
437 ("python-wrapper" ,python-wrapper)))
438 (arguments
439 `(#:phases
440 (modify-phases %standard-phases
4b3e91de 441 (add-before 'bootstrap 'dont-configure-during-bootstrap
a56be436 442 (lambda _
4b3e91de
EF
443 (setenv "NOCONFIGURE" "true")
444 #t)))))
a56be436
RJ
445 (home-page "https://wiki.gnome.org/Apps/Dia")
446 (synopsis "Diagram creation for GNOME")
447 (description "Dia can be used to draw different types of diagrams, and
448includes support for UML static structure diagrams (class diagrams), entity
449relationship modeling, and network diagrams. The program supports various file
450formats like PNG, SVG, PDF and EPS.")
451 (license license:gpl2+))))
452
d0b19e44
RW
453;; This is the unstable release, but it is required for the current stable
454;; release of gvfs (1.38.1).
adc5cb1b
KK
455(define-public libgdata
456 (package
457 (name "libgdata")
d0b19e44 458 (version "0.17.9")
adc5cb1b
KK
459 (source (origin
460 (method url-fetch)
461 (uri (string-append "mirror://gnome/sources/" name "/"
462 (version-major+minor version) "/"
463 name "-" version ".tar.xz"))
464 (sha256
465 (base32
d0b19e44 466 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
467 (build-system gnu-build-system)
468 (arguments
469 '(#:phases
470 (modify-phases %standard-phases
448052b7
TGR
471 (add-before 'check 'disable-failing-tests
472 (lambda _
473 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
474 ;; They have been removed in libgdata 0.17.6, so just do the same.
475 (substitute* "gdata/tests/Makefile"
476 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
477 #t)))))
478 (native-inputs
479 `(("glib:bin" ,glib "bin")
480 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
481 ("intltool" ,intltool)
482 ("pkg-config" ,pkg-config)
483 ("uhttpmock" ,uhttpmock)))
484 (inputs
485 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 486 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
487 (propagated-inputs
488 `(("gcr" ,gcr)
d0b19e44 489 ("glib" ,glib)
14c297fd 490 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 491 ("json-glib" ,json-glib)
adc5cb1b 492 ("liboauth" ,liboauth)
d0b19e44 493 ("libsoup" ,libsoup)
adc5cb1b
KK
494 ("libxml2" ,libxml2)))
495 (home-page "https://wiki.gnome.org/Projects/libgdata")
496 (synopsis "Library for accessing online service APIs")
497 (description
498 "libgdata is a GLib-based library for accessing online service APIs using
499the GData protocol — most notably, Google's services. It provides APIs to
500access the common Google services, and has full asynchronous support.")
501 (license license:lgpl2.1+)))
502
94e10cf4
KK
503(define-public libgxps
504 (package
505 (name "libgxps")
66470a5a 506 (version "0.3.1")
94e10cf4
KK
507 (source (origin
508 (method url-fetch)
7f10628c 509 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
510 (version-major+minor version) "/"
511 name "-" version ".tar.xz"))
512 (sha256
513 (base32
66470a5a 514 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 515 (build-system meson-build-system)
94e10cf4
KK
516 (native-inputs
517 `(("gobject-introspection" ,gobject-introspection)
518 ("pkg-config" ,pkg-config)))
519 (inputs
c8d62d93 520 `(("gtk+" ,gtk+)
b6b3e512 521 ("libjpeg" ,libjpeg-turbo)
94e10cf4 522 ("lcms" ,lcms)
0a6e9e13 523 ("libtiff" ,libtiff)))
c8d62d93
MB
524 (propagated-inputs
525 ;; In Requires of libgxps.pc.
526 `(("cairo" ,cairo)
527 ("glib" ,glib)
528 ("libarchive" ,libarchive)))
94e10cf4
KK
529 (home-page "https://wiki.gnome.org/Projects/libgxps")
530 (synopsis "GObject-based library for handling and rendering XPS documents")
531 (description
532 "libgxps is a GObject-based library for handling and rendering XPS
533documents. This package also contains binaries that can convert XPS documents
534to other formats.")
535 (license license:lgpl2.1+)))
536
4e09f57a
RG
537(define-public gnome-characters
538 (package
539 (name "gnome-characters")
540 (version "3.30.0")
541 (source
542 (origin
543 (method url-fetch)
544 (uri (string-append "mirror://gnome/sources/"
545 "gnome-characters/" (version-major+minor version)
546 "/gnome-characters-" version ".tar.xz"))
547 (sha256
548 (base32
549 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
550 (build-system meson-build-system)
5757c641 551 (arguments
552 `(#:glib-or-gtk? #t
553 #:phases (modify-phases %standard-phases
554 (add-after 'install 'wrap
555 (lambda* (#:key outputs #:allow-other-keys)
556 ;; GNOME Characters needs Typelib files from GTK and
557 ;; gnome-desktop.
558 (wrap-program (string-append (assoc-ref outputs "out")
559 "/bin/gnome-characters")
560 `("GI_TYPELIB_PATH" ":" prefix
561 (,(getenv "GI_TYPELIB_PATH"))))
562 #t)))))
4e09f57a
RG
563 (native-inputs
564 `(("gettext" ,gettext-minimal)
565 ("glib:bin" ,glib "bin")
566 ("gtk+:bin" ,gtk+ "bin")
567 ("pkg-config" ,pkg-config)
568 ("python" ,python-minimal)))
569 (inputs
570 `(("gjs" ,gjs)
571 ("gtk+" ,gtk+)
5757c641 572 ("libunistring" ,libunistring)
573 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
574 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
575 (synopsis "Find and insert unusual characters")
576 (description "Characters is a simple utility application to find
577and insert unusual characters. It allows you to quickly find the
578character you are looking for by searching for keywords.")
579 (license license:bsd-3)))
580
7aab13f1
ML
581(define-public gnome-common
582 (package
583 (name "gnome-common")
af83490d 584 (version "3.18.0")
7aab13f1
ML
585 (source
586 (origin
587 (method url-fetch)
588 (uri (string-append "mirror://gnome/sources/" name "/"
589 (version-major+minor version) "/"
590 name "-" version ".tar.xz"))
591 (sha256
592 (base32
af83490d 593 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
594 (build-system gnu-build-system)
595 (home-page "https://www.gnome.org/")
596 (synopsis "Bootstrap GNOME modules built from Git")
597 (description "gnome-common contains various files needed to bootstrap
598GNOME modules built from Git. It contains a common \"autogen.sh\" script that
599can be used to configure a source directory checked out from Git and some
600commonly used macros.")
601 (license license:gpl2+)))
602
4e868d22
RG
603(define-public gnome-contacts
604 (package
605 (name "gnome-contacts")
6a6138b2 606 (version "3.32.1")
4e868d22
RG
607 (source (origin
608 (method url-fetch)
609 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
610 (version-major+minor version) "/"
611 name "-" version ".tar.xz"))
612 (sha256
613 (base32
6a6138b2 614 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
615 (build-system meson-build-system)
616 (arguments
617 `(#:phases
618 (modify-phases %standard-phases
619 (add-after 'unpack 'generate-vapis
620 (lambda* (#:key inputs #:allow-other-keys)
621 ;; To generate goa's missing .vapi file
622 (define goa
623 (assoc-ref inputs "gnome-online-accounts:lib"))
624
625 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
626 "--library=goa-1.0"
627 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
628 #t)))))
629 (native-inputs
630 `(("glib:bin" ,glib "bin")
631 ("gtk+:bin" ,gtk+ "bin")
632 ("pkg-config" ,pkg-config)))
633 (inputs
634 `(("cheese" ,cheese)
635 ("docbook-xml" ,docbook-xml)
636 ("dockbook-xsl" ,docbook-xsl)
637 ("evolution-data-server" ,evolution-data-server)
638 ("gettext" ,gettext-minimal)
639 ("gnome-desktop" ,gnome-desktop)
640 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
641 ("gobject-introspection" ,gobject-introspection)
642 ("gst-plugins-base" ,gst-plugins-base)
643 ("gtk+" ,gtk+)
644 ("libgee" ,libgee)
645 ("libxslt" ,libxslt)
646 ("telepathy-glib" ,telepathy-glib)
647 ("vala" ,vala)))
648 (propagated-inputs
649 `(("folks", folks)
650 ("telepathy-mission-control" ,telepathy-mission-control)))
651 (synopsis "GNOME's integrated address book")
652 (description
653 "GNOME Contacts organizes your contact information from online and
654offline sources, providing a centralized place for managing your contacts.")
655 (home-page "https://wiki.gnome.org/Apps/Contacts")
656 (license license:gpl2+)))
657
9cc98f8a
CR
658(define-public gnome-desktop
659 (package
660 (name "gnome-desktop")
e8a26caa 661 (version "3.32.2")
9cc98f8a
CR
662 (source
663 (origin
664 (method url-fetch)
b38e45d8
EB
665 (uri (string-append "mirror://gnome/sources/" name "/"
666 (version-major+minor version) "/"
9cc98f8a
CR
667 name "-" version ".tar.xz"))
668 (sha256
669 (base32
e8a26caa
KK
670 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
671 (build-system meson-build-system)
a0fe7c06
CB
672 (arguments
673 '(#:phases
674 (modify-phases %standard-phases
675 (add-before 'configure 'patch-path
676 (lambda* (#:key inputs #:allow-other-keys)
677 (let ((libc (assoc-ref inputs "libc")))
678 (substitute* "libgnome-desktop/gnome-languages.c"
679 (("\"locale\"")
680 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
681 #t)))
682 (add-before 'check 'pre-check
683 (lambda* (#:key inputs #:allow-other-keys)
684 ;; Tests require a running X server and locales.
685 (system "Xvfb :1 &")
686 (setenv "DISPLAY" ":1")
687 (setenv "GUIX_LOCPATH"
688 (string-append (assoc-ref inputs "glibc-locales")
689 "/lib/locale"))
690 #t)))))
9cc98f8a 691 (native-inputs
e8a26caa
KK
692 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
693 ("glibc-locales" ,glibc-locales) ; for tests
694 ("gobject-introspection" ,gobject-introspection)
a8340482 695 ("itstool" ,itstool)
bcb354ad
SB
696 ("intltool" ,intltool)
697 ("pkg-config" ,pkg-config)
e8a26caa
KK
698 ("xmllint" ,libxml2)
699 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
700 (propagated-inputs
701 ;; Required by gnome-desktop-3.0.pc.
702 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 703 ("gtk+" ,gtk+)
9cc98f8a 704 ("iso-codes" ,iso-codes)
9863ce20 705 ("libseccomp" ,libseccomp)
9cc98f8a 706 ("libx11" ,libx11)
e8a26caa
KK
707 ("xkeyboard-config" ,xkeyboard-config)))
708 (inputs
709 `(("gdk-pixbuf" ,gdk-pixbuf)
710 ("glib" ,glib)
9cc98f8a
CR
711 ("libxext" ,libxext)
712 ("libxkbfile" ,libxkbfile)
e8a26caa 713 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
714 (home-page "https://www.gnome.org/")
715 (synopsis
35b9e423 716 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
717 (description
718 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
719on the desktop, but that cannot live in the platform for various reasons.
720There is no API or ABI guarantee, although we are doing our best to provide
721stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
722
723The gnome-about program helps find which version of GNOME is installed.")
724 ; Some bits under the LGPL.
1dd26275 725 (license license:gpl2+)))
9cc98f8a 726
995b7261
AE
727(define-public gnome-doc-utils
728 (package
729 (name "gnome-doc-utils")
730 (version "0.20.10")
731 (source
732 (origin
733 (method url-fetch)
b38e45d8
EB
734 (uri (string-append "mirror://gnome/sources/" name "/"
735 (version-major+minor version) "/"
995b7261
AE
736 name "-" version ".tar.xz"))
737 (sha256
738 (base32
739 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
740 (build-system gnu-build-system)
c4c4cc05 741 (native-inputs
995b7261 742 `(("intltool" ,intltool)
b4ce6300 743 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 744 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
745 ("libxml2" ,libxml2)
746 ("libxslt" ,libxslt)
747 ("pkg-config" ,pkg-config)
748 ("python-2" ,python-2)))
995b7261
AE
749 (home-page "https://wiki.gnome.org/GnomeDocUtils")
750 (synopsis
751 "Documentation utilities for the Gnome project")
752 (description
753 "Gnome-doc-utils is a collection of documentation utilities for the
754Gnome project. It includes xml2po tool which makes it easier to translate
755and keep up to date translations of documentation.")
1dd26275 756 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 757
6c4f7022
DC
758(define-public gnome-disk-utility
759 (package
760 (name "gnome-disk-utility")
e106d0a6 761 (version "3.32.1")
6c4f7022
DC
762 (source (origin
763 (method url-fetch)
764 (uri (string-append "mirror://gnome/sources/" name "/"
765 (version-major+minor version) "/"
766 name "-" version ".tar.xz"))
767 (sha256
768 (base32
e106d0a6 769 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 770 (build-system meson-build-system)
321c73c3
EF
771 (arguments
772 '(#:phases
773 (modify-phases %standard-phases
774 (add-after 'unpack 'skip-gtk-update-icon-cache
775 ;; Don't create 'icon-theme.cache'.
776 (lambda _
777 (substitute* "meson_post_install.py"
778 (("gtk-update-icon-cache") "true"))
779 #t)))))
6c4f7022
DC
780 (native-inputs
781 `(("glib:bin" ,glib "bin")
782 ("intltool" ,intltool)
783 ("pkg-config" ,pkg-config)
784 ("docbook-xml" ,docbook-xml)
785 ("docbook-xsl" ,docbook-xsl)
786 ("libxml2" ,libxml2)
787 ("libxslt" ,libxslt)))
788 (inputs
789 `(("glib" ,glib)
790 ("appstream-glib" ,appstream-glib)
791 ("gnome-settings-daemon" ,gnome-settings-daemon)
792 ("gtk+" ,gtk+)
793 ("libcanberra" ,libcanberra)
794 ("libdvdread" ,libdvdread)
795 ("libnotify" ,libnotify)
796 ("libpwquality" ,libpwquality)
797 ("libsecret" ,libsecret)
798 ("udisks" ,udisks)))
799 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
800 (synopsis "Disk management utility for GNOME")
801 (description "Disk management utility for GNOME.")
802 (license license:gpl2+)))
803
3d217317
RG
804(define-public gnome-font-viewer
805 (package
806 (name "gnome-font-viewer")
807 (version "3.30.0")
808 (source (origin
809 (method url-fetch)
810 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
811 (version-major+minor version)
812 "/gnome-font-viewer-" version ".tar.xz"))
813 (sha256
814 (base32
815 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
816 (build-system meson-build-system)
817 (arguments
818 '(#:phases
819 (modify-phases %standard-phases
820 (add-after 'unpack 'patch-post-install-script
821 (lambda _
822 (substitute* "meson-postinstall.sh"
823 (("update-desktop-database") (which "true")))
824 #t)))))
825 (native-inputs
826 `(("gettext" ,gettext-minimal)
827 ("glib:bin" ,glib "bin")
828 ("pkg-config" ,pkg-config)))
829 (inputs
830 `(("glib" ,glib)
831 ("gnome-desktop" ,gnome-desktop)
832 ("gtk+" ,gtk+)))
833 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
834 (synopsis "GNOME Fonts")
835 (description "Application to show you the fonts installed on your computer
836for your use as thumbnails. Selecting any thumbnails shows the full view of how
837the font would look under various sizes.")
838 (license license:gpl2+)))
839
8ff49011
RW
840(define-public gcr
841 (package
842 (name "gcr")
bea6b829 843 (version "3.28.1")
8ff49011 844 (source (origin
0daf0efb
RW
845 (method url-fetch)
846 (uri (string-append "mirror://gnome/sources/" name "/"
847 (version-major+minor version) "/"
848 name "-" version ".tar.xz"))
849 (sha256
850 (base32
bea6b829 851 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
03ecf85a
MB
852 (patches
853 (list
854 ;; This patch solves an ordering issue that showed up when
855 ;; running the test suite against newer Glib 2.60. See
856 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
857 (origin
858 (method url-fetch)
859 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
860 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
861 (file-name "gcr-hashtable-ordering.patch")
862 (sha256
863 (base32
864 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
8ff49011
RW
865 (build-system gnu-build-system)
866 (arguments
0daf0efb
RW
867 '(#:phases
868 (modify-phases %standard-phases
869 ;; These fail because /var/lib/dbus/machine-id is not present in the
870 ;; build environment.
871 (add-after 'unpack 'disable-failing-tests
872 (lambda _
873 (substitute* "gcr/test-system-prompt.c"
874 (("g_test_add") "//")
875 (("return.*") "return 0;"))
876 #t))
877 (add-before 'check 'pre-check
878 (lambda _
879 ;; Some tests expect to write to $HOME.
880 (setenv "HOME" "/tmp")
881 #t)))))
8ff49011
RW
882 (inputs
883 `(("dbus" ,dbus)
0daf0efb 884 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
885 ("libgcrypt" ,libgcrypt)))
886 (native-inputs
0daf0efb 887 `(("python" ,python-2) ;for tests
8ff49011
RW
888 ("pkg-config" ,pkg-config)
889 ("glib" ,glib "bin")
2af4f5b0
SB
890 ("gobject-introspection" ,gobject-introspection)
891 ("intltool" ,intltool)
0daf0efb 892 ("libxml2" ,libxml2)
bea6b829 893 ("vala" ,vala)
2af4f5b0 894 ("xsltproc" ,libxslt)))
8ff49011
RW
895 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
896 (propagated-inputs
897 `(("p11-kit" ,p11-kit)
898 ("glib" ,glib)
899 ("gtk+" ,gtk+)))
f032d0be 900 (home-page "https://www.gnome.org")
8ff49011
RW
901 (synopsis "Libraries for displaying certificates and accessing key stores")
902 (description
903 "The GCR package contains libraries used for displaying certificates and
904accessing key stores. It also provides the viewer for crypto files on the
905GNOME Desktop.")
906 (license license:lgpl2.1+)))
907
c1354b90
LC
908(define-public libgnome-keyring
909 (package
910 (name "libgnome-keyring")
5e8aec2c 911 (version "3.12.0")
c1354b90
LC
912 (source (origin
913 (method url-fetch)
b38e45d8
EB
914 (uri (string-append "mirror://gnome/sources/" name "/"
915 (version-major+minor version) "/"
916 name "-" version ".tar.xz"))
c1354b90
LC
917 (sha256
918 (base32
5e8aec2c 919 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 920 (build-system gnu-build-system)
c1354b90 921 (inputs
c4c4cc05 922 `(("libgcrypt" ,libgcrypt)
c1354b90 923 ("dbus" ,dbus)))
c4c4cc05
JD
924 (native-inputs
925 `(("pkg-config" ,pkg-config)
426adbe8 926 ("glib" ,glib "bin")
c4c4cc05 927 ("intltool" ,intltool)))
c1354b90
LC
928 (propagated-inputs
929 ;; Referred to in .h files and .pc.
930 `(("glib" ,glib)))
f032d0be 931 (home-page "https://www.gnome.org")
c1354b90
LC
932 (synopsis "Accessing passwords from the GNOME keyring")
933 (description
934 "Client library to access passwords from the GNOME keyring.")
935
936 ;; Though a couple of files are LGPLv2.1+.
1dd26275 937 (license license:lgpl2.0+)))
c1354b90 938
e99a3d6f
RW
939(define-public gnome-keyring
940 (package
941 (name "gnome-keyring")
ab35cc6e 942 (version "3.28.2")
e99a3d6f
RW
943 (source (origin
944 (method url-fetch)
945 (uri (string-append "mirror://gnome/sources/" name "/"
946 (version-major+minor version) "/"
947 name "-" version ".tar.xz"))
948 (sha256
949 (base32
ab35cc6e 950 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
951 (build-system gnu-build-system)
952 (arguments
953 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
954 ;not exist
955 #:configure-flags
956 (list
957 (string-append "--with-pkcs11-config="
958 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
959 (string-append "--with-pkcs11-modules="
960 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
961 #:phases
962 (modify-phases %standard-phases
ab35cc6e
RW
963 (add-after 'unpack 'fix-/bin/sh-reference
964 (lambda _
965 (substitute* "po/Makefile.in.in"
966 (("/bin/sh") (which "sh")))
967 #t))
5120f24f
RW
968 (add-after 'unpack 'fix-docbook
969 (lambda* (#:key inputs #:allow-other-keys)
970 (substitute* "docs/Makefile.am"
971 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
972 (string-append (assoc-ref inputs "docbook-xsl")
973 "/xml/xsl/docbook-xsl-"
974 ,(package-version docbook-xsl)
975 "/manpages/docbook.xsl")))
976 (setenv "XML_CATALOG_FILES"
977 (string-append (assoc-ref inputs "docbook-xml")
978 "/xml/dtd/docbook/catalog.xml"))
979 ;; Rerun the whole thing to avoid version mismatch ("This is
980 ;; Automake 1.15.1, but the definition used by this
981 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
982 ;; use 'autoreconf' because it insists on running 'libtoolize'.
983 (invoke "autoconf")
984 (invoke "aclocal")
985 (invoke "automake" "-ac"))))))
e99a3d6f
RW
986 (inputs
987 `(("libgcrypt" ,libgcrypt)
1a0b2d82 988 ("linux-pam" ,linux-pam)
ab35cc6e 989 ("openssh" ,openssh)
e99a3d6f
RW
990 ("dbus" ,dbus)
991 ("gcr" ,gcr)))
992 (native-inputs
993 `(("pkg-config" ,pkg-config)
994 ("glib" ,glib "bin")
5120f24f 995 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
996 ("python" ,python-2) ;for tests
997 ("intltool" ,intltool)
998 ("autoconf" ,autoconf)
999 ("automake" ,automake)
1000 ("libxslt" ,libxslt) ;for documentation
1001 ("docbook-xml" ,docbook-xml-4.2)
1002 ("docbook-xsl" ,docbook-xsl)))
f032d0be 1003 (home-page "https://www.gnome.org")
e99a3d6f
RW
1004 (synopsis "Daemon to store passwords and encryption keys")
1005 (description
1006 "gnome-keyring is a program that keeps passwords and other secrets for
1007users. It is run as a daemon in the session, similar to ssh-agent, and other
1008applications locate it via an environment variable or D-Bus.
1009
1010The program can manage several keyrings, each with its own master password,
1011and there is also a session keyring which is never stored to disk, but
1012forgotten when the session ends.")
1013 (license license:lgpl2.1+)))
1014
c1354b90
LC
1015(define-public evince
1016 (package
1017 (name "evince")
936d5642 1018 (version "3.34.2")
c1354b90
LC
1019 (source (origin
1020 (method url-fetch)
ac631328 1021 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1022 (version-major+minor version) "/"
ac631328 1023 "evince-" version ".tar.xz"))
c1354b90
LC
1024 (sha256
1025 (base32
936d5642 1026 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1027 (build-system glib-or-gtk-build-system)
c1354b90
LC
1028 (arguments
1029 `(#:configure-flags '("--disable-nautilus")
554b2dac
SB
1030 #:phases
1031 (modify-phases %standard-phases
1032 (add-before 'install 'skip-gtk-update-icon-cache
1033 ;; Don't create 'icon-theme.cache'.
1034 (lambda _
1035 (substitute* "data/Makefile"
1036 (("gtk-update-icon-cache") "true"))
1037 #t)))))
c1354b90 1038 (inputs
9a096881
KK
1039 `(("libarchive" ,libarchive)
1040 ("libgxps" ,libgxps)
1041 ("libspectre" ,libspectre)
c769cf9f 1042 ("djvulibre" ,djvulibre)
c1354b90
LC
1043 ("ghostscript" ,ghostscript)
1044 ("poppler" ,poppler)
c769cf9f
SB
1045 ("libtiff" ,libtiff)
1046 ;; TODO:
c769cf9f
SB
1047 ;; Build libkpathsea as a shared library for DVI support.
1048 ;; ("libkpathsea" ,texlive-bin)
1049 ("gnome-desktop" ,gnome-desktop)
c1354b90 1050 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1051 ("gspell" ,gspell)
c1354b90 1052 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1053 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1054 ("gdk-pixbuf" ,gdk-pixbuf)
1055 ("atk" ,atk)
1056 ("pango" ,pango)
1057 ("gtk+" ,gtk+)
1058 ("glib" ,glib)
1059 ("libxml2" ,libxml2)
c1354b90
LC
1060 ("libsm" ,libsm)
1061 ("libice" ,libice)
96e42467 1062 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1063 ("dconf" ,dconf)
1064 ("libcanberra" ,libcanberra)
c769cf9f 1065 ("libsecret" ,libsecret)
a271096b 1066
c1354b90
LC
1067 ;; For tests.
1068 ("dogtail" ,python2-dogtail)))
96e42467 1069 (native-inputs
bcb354ad
SB
1070 `(("itstool" ,itstool)
1071 ("intltool" ,intltool)
426adbe8 1072 ("glib" ,glib "bin")
bcb354ad
SB
1073 ("pkg-config" ,pkg-config)
1074 ("xmllint" ,libxml2)))
c1354b90 1075 (home-page
f032d0be 1076 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1077 (synopsis "GNOME's document viewer")
1078 (description
1079 "Evince is a document viewer for multiple document formats. It
1080currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1081of Evince is to replace the multiple document viewers that exist
96e42467 1082on the GNOME Desktop with a single simple application.")
1dd26275 1083 (license license:gpl2+)))
c1354b90 1084
22e32e69
AE
1085(define-public gsettings-desktop-schemas
1086 (package
1087 (name "gsettings-desktop-schemas")
c900dabd 1088 (version "3.32.0")
22e32e69
AE
1089 (source
1090 (origin
1091 (method url-fetch)
1092 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1093 (version-major+minor version) "/"
22e32e69
AE
1094 name "-" version ".tar.xz"))
1095 (sha256
1096 (base32
c900dabd
KK
1097 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1098 (build-system meson-build-system)
65209ffa
LC
1099 (arguments
1100 '(#:phases (modify-phases %standard-phases
1101 (add-after 'unpack 'set-adwaita-theme-file-name
1102 (lambda* (#:key inputs #:allow-other-keys)
1103 ;; Provide the correct file name of the default GNOME
1104 ;; background, 'adwaita-timed.xml'.
1105 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1106 (substitute* (find-files "schemas"
1107 "\\.gschema\\.xml\\.in$")
1108 (("@datadir@/backgrounds/gnome")
1109 (string-append theme "/share/backgrounds/gnome")))
1110 #t))))))
22e32e69 1111 (inputs
65209ffa
LC
1112 `(("glib" ,glib)
1113 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1114 (native-inputs
1115 `(("intltool" ,intltool)
426adbe8 1116 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1117 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1118 ("pkg-config" ,pkg-config)))
1119 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1120 (synopsis
1121 "GNOME settings for various desktop components")
1122 (description
1123 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1124for settings shared by various components of the GNOME desktop.")
1dd26275 1125 (license license:lgpl2.1+)))
22e32e69 1126
27477d2d
AE
1127(define-public icon-naming-utils
1128 (package
1129 (name "icon-naming-utils")
1130 (version "0.8.90")
1131 (source
1132 (origin
1133 (method url-fetch)
5cc3096c 1134 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1135 version ".tar.bz2"))
1136 (sha256
1137 (base32
1138 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1139 (build-system gnu-build-system)
1140 (inputs
1141 `(("perl" ,perl)
1142 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1143 (arguments
1144 '(#:phases
dc1d3cde
KK
1145 (modify-phases %standard-phases
1146 (add-after 'install 'set-load-paths
1147 ;; Tell 'icon-name-mapping' where XML::Simple is.
1148 (lambda* (#:key outputs #:allow-other-keys)
1149 (let* ((out (assoc-ref outputs "out"))
1150 (prog (string-append out "/libexec/icon-name-mapping")))
1151 (wrap-program
1152 prog
1153 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1154 #t)))))
27477d2d
AE
1155 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1156 (synopsis
1157 "Utility to implement the Freedesktop Icon Naming Specification")
1158 (description
1159 "To help with the transition to the Freedesktop Icon Naming
1160Specification, the icon naming utility maps the icon names used by the
1161GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1162 (license license:lgpl2.1+)))
27477d2d 1163
7d3f3651
AE
1164(define-public gnome-icon-theme
1165 (package
1166 (name "gnome-icon-theme")
b32f58dd 1167 (version "3.12.0")
7d3f3651
AE
1168 (source
1169 (origin
1170 (method url-fetch)
1171 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1172 (version-major+minor version) "/"
7d3f3651
AE
1173 name "-" version ".tar.xz"))
1174 (sha256
1175 (base32
b32f58dd 1176 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1177 (build-system gnu-build-system)
5613c27d
SB
1178 (arguments
1179 '(#:configure-flags
1180 ;; Don't create 'icon-theme.cache'.
1181 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1182 (true (string-append coreutils "/bin/true")))
1183 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1184 (native-inputs
5613c27d 1185 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1186 ("intltool" ,intltool)
1187 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1188 (home-page "https://wiki.gnome.org/Personalization")
1189 (synopsis "GNOME icon theme")
1190 (description "Icons for the GNOME desktop.")
1dd26275 1191 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1192
14eeefa2
SB
1193;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1194(define-public adwaita-icon-theme
1195 (package (inherit gnome-icon-theme)
1196 (name "adwaita-icon-theme")
9be59d7f 1197 (version "3.32.0")
14eeefa2
SB
1198 (source (origin
1199 (method url-fetch)
1200 (uri (string-append "mirror://gnome/sources/" name "/"
1201 (version-major+minor version) "/"
1202 name "-" version ".tar.xz"))
1203 (sha256
1204 (base32
9be59d7f 1205 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1206 (native-inputs
1207 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1208
ae792dba
RW
1209(define-public tango-icon-theme
1210 (package
1211 (name "tango-icon-theme")
1212 (version "0.8.90")
1213 (source (origin
1214 (method url-fetch)
1215 (uri (string-append "http://tango.freedesktop.org/releases/"
1216 "tango-icon-theme-" version ".tar.bz2"))
1217 (sha256
1218 (base32
1219 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1220 (build-system gnu-build-system)
1221 (native-inputs
1222 `(("icon-naming-utils" ,icon-naming-utils)
1223 ("intltool" ,intltool)
1224 ("imagemagick" ,imagemagick)
1225 ("pkg-config" ,pkg-config)))
1226 (home-page "http://tango-project.org/")
1227 (synopsis "Tango icon theme")
1228 (description "This is an icon theme that follows the Tango visual
1229guidelines.")
1230 (license license:public-domain)))
1231
9167f8e6
LC
1232(define-public shared-mime-info
1233 (package
1234 (name "shared-mime-info")
18138ab9 1235 (version "1.10")
9167f8e6
LC
1236 (source (origin
1237 (method url-fetch)
5cc3096c 1238 (uri (string-append "https://freedesktop.org/~hadess/"
b38e45d8 1239 "shared-mime-info-" version ".tar.xz"))
9167f8e6
LC
1240 (sha256
1241 (base32
18138ab9 1242 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
9167f8e6
LC
1243 (build-system gnu-build-system)
1244 (arguments
1245 ;; The build system appears not to be parallel-safe.
1246 '(#:parallel-build? #f))
1247 (inputs
1248 `(("glib" ,glib)
c4c4cc05 1249 ("libxml2" ,libxml2)))
9167f8e6 1250 (native-inputs
c4c4cc05
JD
1251 `(("intltool" ,intltool)
1252 ("pkg-config" ,pkg-config)))
57e7d748 1253 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1254 (synopsis "Database of common MIME types")
1255 (description
1256 "The shared-mime-info package contains the core database of common types
1257and the update-mime-database command used to extend it. It requires glib2 to
1258be installed for building the update command. Additionally, it uses intltool
1259for translations, though this is only a dependency for the maintainers. This
1260database is translated at Transifex.")
1dd26275 1261 (license license:gpl2+)))
9167f8e6 1262
dd1fcddc
CB
1263(define-public system-config-printer
1264 (package
1265 (name "system-config-printer")
1266 (version "1.5.11")
a5643044
TGR
1267 (source
1268 (origin
1269 (method url-fetch)
1270 (uri (string-append
1271 "https://github.com/OpenPrinting/system-config-printer/releases/"
1272 "download/" version
1273 "/system-config-printer-" version ".tar.xz"))
1274 (sha256
1275 (base32 "1lq0q51bhanirpjjvvh4xiafi8hgpk8r32h0dj6dn3f32z8pib9q"))))
dd1fcddc
CB
1276 (build-system glib-or-gtk-build-system)
1277 (arguments
1278 `(#:imported-modules ((guix build python-build-system)
1279 ,@%glib-or-gtk-build-system-modules)
1280 #:phases
1281 (modify-phases %standard-phases
1282 (add-after 'unpack 'patch-Makefile.am
1283 (lambda _
1284 ;; The Makefile generates some scripts, so set a valid shebang
1285 (substitute* "Makefile.am"
1286 (("/bin/bash") (which "bash")))
1287 (delete-file "configure")
1288 #t))
1289 (add-after 'unpack 'patch-docbook-xml
1290 (lambda* (#:key inputs #:allow-other-keys)
1291 ;; Modify the man XML otherwise xmlto tries to access the network
1292 (substitute* "man/system-config-printer.xml"
1293 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1294 (string-append (assoc-ref inputs "docbook-xml")
1295 "/xml/dtd/docbook/")))
1296 #t))
1297 (add-after 'install 'wrap-for-python
1298 (@@ (guix build python-build-system) wrap))
1299 (add-after 'install 'wrap
1300 (lambda* (#:key outputs #:allow-other-keys)
1301 (let ((out (assoc-ref outputs "out"))
1302 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1303 (for-each
1304 (lambda (program)
1305 (wrap-program program
1306 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1307 (map (lambda (name)
1308 (string-append out "/bin/" name))
1309 '("system-config-printer"
1310 "system-config-printer-applet"
1311 "install-printerdriver"
1312 "scp-dbus-service"))))
1313 #t)))))
1314 (inputs
1315 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1316 ("gobject-introspection" ,gobject-introspection)
1317 ("python" ,python)
1318 ("cups" ,cups)
1319 ("python-dbus" ,python-dbus)
1320 ("python-pygobject" ,python-pygobject)
1321 ("python-pycups" ,python-pycups)
1322 ("python-requests" ,python-requests)
1323 ("python-pycairo" ,python-pycairo)
1324 ("libnotify" ,libnotify)
1325 ("packagekit" ,packagekit)))
1326 (native-inputs
1327 `(("pkg-config" ,pkg-config)
1328 ("desktop-file-utils" ,desktop-file-utils)
1329 ("glib" ,glib)
1330 ("autoconf" ,autoconf)
1331 ("automake" ,automake)
1332 ("intltool" ,intltool)
1333 ("xmlto" ,xmlto)
1334 ("docbook-xml" ,docbook-xml-4.1.2)
1335 ("docbook-xsl" ,docbook-xsl)
1336 ("libxml2" ,libxml2)))
1337 (home-page "https://github.com/zdohnal/system-config-printer")
1338 (synopsis "CUPS administration tool")
1339 (description
1340 "system-config-printer is a CUPS administration tool. It's written in
1341Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1342configuring CUPS.")
1343 (license license:gpl2+)))
1344
bef4dd92
AE
1345(define-public hicolor-icon-theme
1346 (package
1347 (name "hicolor-icon-theme")
851cb6dd 1348 (version "0.17")
bef4dd92
AE
1349 (source
1350 (origin
1351 (method url-fetch)
5cc3096c 1352 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1353 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1354 (sha256
1355 (base32
851cb6dd 1356 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1357 (build-system gnu-build-system)
1358 (arguments
1359 `(#:tests? #f)) ; no check target
57e7d748 1360 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1361 (synopsis
1362 "Freedesktop icon theme")
1363 (description
1364 "Freedesktop icon theme.")
1dd26275 1365 (license license:gpl2)))
bef4dd92 1366
d9c1a22b
AE
1367(define-public libnotify
1368 (package
1369 (name "libnotify")
195bfa68 1370 (version "0.7.7")
d9c1a22b
AE
1371 (source
1372 (origin
1373 (method url-fetch)
1374 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1375 (version-major+minor version) "/"
d9c1a22b
AE
1376 name "-" version ".tar.xz"))
1377 (sha256
1378 (base32
195bfa68 1379 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1380 (build-system gnu-build-system)
6acf6cec
MB
1381 (arguments
1382 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1383 (propagated-inputs
1384 `(;; In Requires of libnotify.pc.
1385 ("gdk-pixbuf" ,gdk-pixbuf)
1386 ("glib" ,glib)))
d9c1a22b 1387 (inputs
7ef08efa 1388 `(("gtk+" ,gtk+)
c4c4cc05
JD
1389 ("libpng" ,libpng)))
1390 (native-inputs
426adbe8 1391 `(("pkg-config" ,pkg-config)
277a7d82
JN
1392 ("glib" ,glib "bin")
1393 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1394 (home-page "https://developer-next.gnome.org/libnotify/")
1395 (synopsis
1396 "GNOME desktop notification library")
1397 (description
1398 "Libnotify is a library that sends desktop notifications to a
35b9e423 1399notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1400notifications can be used to inform the user about an event or display
1401some form of information without getting in the user's way.")
1dd26275 1402 (license license:lgpl2.1+)))
7a8605ce
CR
1403
1404(define-public libpeas
1405 (package
1406 (name "libpeas")
db122a9b 1407 (version "1.22.0")
7a8605ce
CR
1408 (source
1409 (origin
1410 (method url-fetch)
1411 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1412 (version-major+minor version) "/"
7a8605ce
CR
1413 name "-" version ".tar.xz"))
1414 (sha256
1415 (base32
db122a9b 1416 "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv"))))
7a8605ce 1417 (build-system gnu-build-system)
7a8605ce 1418 (inputs
2ed6522a
SB
1419 `(("gtk+" ,gtk+)
1420 ("glade" ,glade3)
2ed6522a
SB
1421 ("python" ,python)
1422 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1423 (native-inputs
1424 `(("pkg-config" ,pkg-config)
93622993 1425 ("glib:bin" ,glib "bin")
141aed80
LC
1426 ("gobject-introspection" ,gobject-introspection)
1427 ("intltool" ,intltool)))
55b7bbd8
LC
1428 (propagated-inputs
1429 ;; The .pc file "Requires" gobject-introspection.
1430 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1431 (home-page "https://wiki.gnome.org/Libpeas")
1432 (synopsis "GObject plugin system")
1433 (description
d1e4ad1b
TGR
1434 "Libpeas is a gobject-based plugin engine, targeted at giving every
1435application the chance to assume its own extensibility. It also has a set of
1436features including, but not limited to: multiple extension points; on-demand
1437(lazy) programming language support for C, Python and JS; simplicity of the
1438API.")
1dd26275 1439 (license license:lgpl2.0+)))
ed19903d
JD
1440
1441(define-public gtkglext
1442 (package
1443 (name "gtkglext")
1444 (version "1.2.0")
1445 (source (origin
1446 (method url-fetch)
0f971a04 1447 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1448 version "/gtkglext-" version ".tar.gz"))
1449 (sha256
1450 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1451 (patches (search-patches
1452 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1453 (build-system gnu-build-system)
14e2f61a
RW
1454 (arguments
1455 `(#:phases
1456 (modify-phases %standard-phases
1457 ;; Fix a collision between a local variable and a definition from
1458 ;; glibc's string.h.
1459 (add-after 'unpack 'fix-collision
1460 (lambda _
1461 (substitute* "gdk/gdkglshapes.c"
1462 ((" index") " triangle_index"))
1463 #t)))))
ed19903d
JD
1464 (inputs `(("gtk+" ,gtk+-2)
1465 ("mesa" ,mesa)
cc8b02f4 1466 ("glu" ,glu)
ed19903d
JD
1467 ("libx11" ,libx11)
1468 ("libxt" ,libxt)))
426adbe8
LC
1469 (native-inputs `(("pkg-config" ,pkg-config)
1470 ("glib" ,glib "bin")))
a83b6a06 1471 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1472 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1473 (synopsis "OpenGL extension to GTK+")
35b9e423 1474 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1475additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1476API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 1477 (license license:lgpl2.1+)))
3600420e
JD
1478
1479(define-public glade3
1480 (package
1481 (name "glade")
c6571adb 1482 (version "3.22.1")
b38e45d8
EB
1483 (source (origin
1484 (method url-fetch)
1485 (uri (string-append "mirror://gnome/sources/" name "/"
1486 (version-major+minor version) "/"
f5ca44b8 1487 name "-" version ".tar.xz"))
3600420e 1488 (sha256
f714d9fe 1489 (base32
c6571adb 1490 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 1491 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
1492 (arguments
1493 `(#:tests? #f ; needs X, GL, and software rendering
1494 #:phases
1495 (modify-phases %standard-phases
1496 (add-before 'configure 'fix-docbook
1497 (lambda* (#:key inputs #:allow-other-keys)
1498 (substitute* "man/Makefile.in"
1499 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1500 (string-append (assoc-ref inputs "docbook-xsl")
1501 "/xml/xsl/docbook-xsl-"
1502 ,(package-version docbook-xsl)
1503 "/manpages/docbook.xsl")))
1504 #t)))))
3600420e 1505 (inputs
f5ca44b8 1506 `(("gtk+" ,gtk+)
3600420e
JD
1507 ("libxml2" ,libxml2)))
1508 (native-inputs
1509 `(("intltool" ,intltool)
f5ca44b8
RW
1510 ("itstool" ,itstool)
1511 ("libxslt" ,libxslt) ;for xsltproc
1512 ("docbook-xml" ,docbook-xml-4.2)
1513 ("docbook-xsl" ,docbook-xsl)
1514 ("python" ,python-2)
3600420e
JD
1515 ("pkg-config" ,pkg-config)))
1516 (home-page "https://glade.gnome.org")
1517 (synopsis "GTK+ rapid application development tool")
1518 (description "Glade is a rapid application development (RAD) tool to
1519enable quick & easy development of user interfaces for the GTK+ toolkit and
1520the GNOME desktop environment.")
1dd26275
LC
1521 (license license:lgpl2.0+)))
1522
1523(define-public libcroco
1524 (package
1525 (name "libcroco")
8bdacad2 1526 (version "0.6.13")
1dd26275
LC
1527 (source (origin
1528 (method url-fetch)
b38e45d8
EB
1529 (uri (string-append "mirror://gnome/sources/" name "/"
1530 (version-major+minor version) "/"
1531 name "-" version ".tar.xz"))
1dd26275
LC
1532 (sha256
1533 (base32
8bdacad2 1534 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
1535 (build-system gnu-build-system)
1536 (native-inputs
1537 `(("pkg-config" ,pkg-config)))
1538 (inputs
1539 `(("glib" ,glib)
1540 ("libxml2" ,libxml2)
1541 ("zlib" ,zlib)))
1542 (home-page "https://github.com/GNOME/libcroco")
1543 (synopsis "CSS2 parsing and manipulation library")
1544 (description
1545 "Libcroco is a standalone CSS2 parsing and manipulation library.
1546The parser provides a low level event driven SAC-like API and a CSS object
1547model like API. Libcroco provides a CSS2 selection engine and an experimental
1548XML/CSS rendering engine.")
1549
1550 ;; LGPLv2.1-only.
1551 (license license:lgpl2.1)))
25178594
LC
1552
1553(define-public libgsf
1554 (package
1555 (name "libgsf")
8d1644a1 1556 (version "1.14.46")
25178594
LC
1557 (source (origin
1558 (method url-fetch)
b38e45d8
EB
1559 (uri (string-append "mirror://gnome/sources/" name "/"
1560 (version-major+minor version) "/"
1561 name "-" version ".tar.xz"))
25178594
LC
1562 (sha256
1563 (base32
8d1644a1 1564 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
1565 (build-system gnu-build-system)
1566 (native-inputs
1567 `(("intltool" ,intltool)
1568 ("pkg-config" ,pkg-config)))
1569 (inputs
1570 `(("python" ,python)
1571 ("zlib" ,zlib)
1572 ("bzip2" ,bzip2)))
1573 (propagated-inputs
1574 `(("gdk-pixbuf" ,gdk-pixbuf)
1575 ("glib" ,glib)
1576 ("libxml2" ,libxml2)))
f032d0be 1577 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
1578 (synopsis "GNOME's Structured File Library")
1579 (description
1580 "Libgsf aims to provide an efficient extensible I/O abstraction for
1581dealing with different structured file formats.")
1582
1583 ;; LGPLv2.1-only.
1584 (license license:lgpl2.1)))
63016e7c
LC
1585
1586(define-public librsvg
f67417a1
MB
1587 (package
1588 (name "librsvg")
1589 (version "2.40.20")
1590 (source (origin
1591 (method url-fetch)
1592 (uri (string-append "mirror://gnome/sources/" name "/"
1593 (version-major+minor version) "/"
1594 name "-" version ".tar.xz"))
1595 (sha256
1596 (base32
1597 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
1598 (build-system gnu-build-system)
1599 (arguments
1600 `(#:configure-flags
1601 (list "--disable-static"
1602 "--enable-vala") ; needed for e.g. gnome-mines
1603 #:phases
1604 (modify-phases %standard-phases
1605 (add-before 'configure 'pre-configure
1606 (lambda* (#:key inputs #:allow-other-keys)
1607 (substitute* "gdk-pixbuf-loader/Makefile.in"
1608 ;; By default the gdk-pixbuf loader is installed under
1609 ;; gdk-pixbuf's prefix. Work around that.
1610 (("gdk_pixbuf_moduledir = .*$")
1611 (string-append "gdk_pixbuf_moduledir = "
1612 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1613 "loaders\n"))
1614 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1615 (("gdk_pixbuf_cache_file = .*$")
1616 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1617 #t))
1618 (add-before 'check 'remove-failing-tests
1619 (lambda _
1620 (with-directory-excursion "tests/fixtures/reftests"
1621 (for-each delete-file
1622 '(;; This test fails on i686:
1623 "svg1.1/masking-path-04-b.svg"
1624 ;; This test fails on armhf:
1625 "svg1.1/masking-mask-01-b.svg"
1626 ;; This test fails on aarch64:
1627 "bugs/777834-empty-text-children.svg")))
1628 #t)))))
1629 (native-inputs
1630 `(("pkg-config" ,pkg-config)
1631 ("vala" ,vala)
1632 ("glib" ,glib "bin") ; glib-mkenums, etc.
1633 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1634 (inputs
1635 `(("pango" ,pango)
1636 ("libcroco" ,libcroco)
1637 ("bzip2" ,bzip2)
1638 ("libgsf" ,libgsf)
1639 ("libxml2" ,libxml2)))
1640 (propagated-inputs
1641 ;; librsvg-2.0.pc refers to all of that.
1642 `(("cairo" ,cairo)
1643 ("gdk-pixbuf" ,gdk-pixbuf)
1644 ("glib" ,glib)))
1645 (home-page "https://wiki.gnome.org/LibRsvg")
1646 (synopsis "Render SVG files using Cairo")
1647 (description
1648 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
1649library.")
1650 (license license:lgpl2.0+)))
1651
8f523eb9
EF
1652(define* (computed-origin-method gexp-promise hash-algo hash
1653 #:optional (name "source")
1654 #:key (system (%current-system))
1655 (guile (default-guile)))
1656 "Return a derivation that executes the G-expression that results
1657from forcing GEXP-PROMISE."
1658 (mlet %store-monad ((guile (package->derivation guile system)))
1659 (gexp->derivation (or name "computed-origin")
1660 (force gexp-promise)
1661 #:graft? #f ;nothing to graft
1662 #:system system
1663 #:guile-for-build guile)))
1664
1665(define librsvg-next-source
1666 (let* ((version "2.46.3")
1667 (upstream-source (origin
1668 (method url-fetch)
1669 (uri (string-append "mirror://gnome/sources/librsvg/"
1670 (version-major+minor version) "/"
1671 "librsvg-" version ".tar.xz"))
1672 (sha256
1673 (base32
1674 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
1675 (origin
1676 (method computed-origin-method)
1677 (file-name (string-append "librsvg-" version ".tar.xz"))
1678 (sha256 #f)
1679 (uri
1680 (delay
1681 (with-imported-modules '((guix build utils))
1682 #~(begin
1683 (use-modules (guix build utils))
1684 (set-path-environment-variable
1685 "PATH" '("bin")
1686 (list "/tmp"
1687 #+(canonical-package xz)
1688 #+(canonical-package gzip)
1689 #+(canonical-package tar)))
1690 (invoke "tar" "xvf" #+upstream-source)
1691 (with-directory-excursion (string-append "librsvg-" #$version)
1692 (for-each
1693 (lambda (crate)
1694 (delete-file-recursively (string-append "vendor/" (car crate)))
1695 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
1696 '(
1697;; aho-corasick 0.7
1698;; alga 0.9
1699;; approx 0.3
1700;; arrayvec 0.4
1701 ("atty" . #+(package-source rust-atty-0.2))
1702 ("autocfg" . #+(package-source rust-autocfg-0.1))
1703 ("bitflags" . #+(package-source rust-bitflags-1))
1704;; block 0.1
1705;; bstr 0.2
1706;; byteorder 1.3
1707;; cairo-rs 0.7
1708;; cairo-sys-rs 0.9
1709;; cast 0.2
1710 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
1711 ("clap" . #+(package-source rust-clap-2))
1712 ;("cloudabi" . #+(package-source rust-cloudabi-0.0))
1713;; criterion 0.2
1714;; criterion-plot 0.3
1715;; crossbeam-deque 0.7
1716;; crossbeam-epoch 0.7
1717;; crossbeam-queue 0.1
1718;; crossbeam-utils 0.6
1719;; cssparser 0.25
1720;; cssparser-macros 0.3
1721;; csv 1.1
1722;; csv-core 0.1
1723;; data-url 0.1
1724;; downcast-rs 1.0
1725 ("dtoa" . #+(package-source rust-dtoa-0.4))
1726;; dtoa-short 0.3
1727;; either 1.5
1728;; encoding 0.2
1729;; encoding-index-japanese 1.20141219.5
1730;; encoding-index-korean 1.20141219.5
1731;; encoding-index-simpchinese 1.20141219.5
1732;; encoding-index-singlebyte 1.20141219.5
1733;; encoding-index-tradchinese 1.20141219.5
1734;; encoding_index_tests 0.1
1735;; float-cmp 0.5
1736;; fragile 0.3
1737 ;("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
1738;; futf 0.1
1739;; gdk-pixbuf 0.7
1740;; gdk-pixbuf-sys 0.9
1741;; generic-array 0.12
1742;; gio 0.7
1743;; gio-sys 0.9
1744;; glib 0.8
1745;; glib-sys 0.9
1746;; gobject-sys 0.9
1747;; idna 0.2
1748;; itertools 0.8
1749 ("itoa" . #+(package-source rust-itoa-0.4))
1750 ;("language-tags" . #+(package-source rust-language-tags-0.2))
1751 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
1752 ("libc" . #+(package-source rust-libc-0.2))
1753;; libm 0.1
1754;; locale_config 0.3
1755 ("log" . #+(package-source rust-log-0.4))
1756;; mac 0.1
1757;; malloc_buf 0.0
1758;; markup5ever 0.9
1759 ;("matches" . #+(package-source rust-matches-0.1))
1760;; matrixmultiply 0.2
1761;; memchr 2.2
1762;; memoffset 0.5
1763;; nalgebra 0.18
1764;; new_debug_unreachable 1.0
1765 ("nodrop" . #+(package-source rust-nodrop-0.1))
1766;; num-complex 0.2
1767 ("num-integer" . #+(package-source rust-num-integer-0.1))
1768;; num-rational 0.2
1769 ("num-traits" . #+(package-source rust-num-traits-0.2))
1770 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
1771;; objc 0.2
1772;; objc-foundation 0.1
1773;; objc_id 0.1
1774;; pango 0.7
1775;; pango-sys 0.9
1776;; pangocairo 0.8
1777;; pangocairo-sys 0.10
1778 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
1779;; phf 0.7.24
1780;; phf_codegen 0.7.24
1781;; phf_generator 0.7.24
1782;; phf_shared 0.7.24
1783 ;("pkg-config" . #+(package-source rust-pkg-config-0.3))
1784;; precomputed-hash 0.1
1785 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
1786;; procedural-masquerade 0.1
1787 ("quote" . #+(package-source rust-quote-1.0))
1788 ;("rand" . #+(package-source rust-rand-0.6))
1789 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
1790 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
1791 ("rand_core" . #+(package-source rust-rand-core-0.4))
1792 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
1793 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
1794 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
1795 ("rand_os" . #+(package-source rust-rand-os-0.1))
1796 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
1797 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
1798;; rand_xoshiro 0.1
1799 ;("rawpointer" . #+(package-source rust-rawpointer-0.1))
1800;; rayon 1.2
1801;; rayon-core 1.6
1802;; rctree 0.3
1803 ("rdrand" . #+(package-source rust-rdrand-0.4))
1804;; regex 1.3
1805;; regex-automata 0.1
1806 ;("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
1807;; rustc_version 0.2
1808 ("ryu" . #+(package-source rust-ryu-1.0))
1809 ("same-file" . #+(package-source rust-same-file-1.0))
1810 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
1811;; semver 0.9
1812 ;("semver-parser" . #+(package-source rust-semver-parser-0.7))
1813 ("serde" . #+(package-source rust-serde-1.0))
1814 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
1815 ("serde_json" . #+(package-source rust-serde-json-1.0))
1816;; siphasher 0.2
1817;; smallvec 0.6
1818;; string_cache 0.7
1819;; string_cache_codegen 0.4
1820;; string_cache_shared 0.3
1821 ("syn" . #+(package-source rust-syn-1.0))
1822;; tendril 0.4
1823 ("textwrap" . #+(package-source rust-textwrap-0.11))
1824 ;("thread_local" . #+(package-source rust-thread-local-0.3))
1825;; tinytemplate 1.0
1826 ;("typenum" . #+(package-source rust-typenum-1.10))
1827;; unicode-bidi 0.3
1828;; unicode-normalization 0.1
1829 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
1830 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
1831;; url 2.1
1832;; utf-8 0.7
1833 ("walkdir" . #+(package-source rust-walkdir-2.2))
1834 ("winapi" . #+(package-source rust-winapi-0.3))
1835 ;("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
1836 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
1837 ;("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
1838;; xml-rs 0.8
1839 )))
1840 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
1841 (force-output)
1842 (invoke "tar" "cfa" #$output
1843 ;; Avoid non-determinism in the archive. We set the
1844 ;; mtime of files in the archive to early 1980 because
1845 ;; the build process fails if the mtime of source
1846 ;; files is pre-1980, due to the creation of zip
1847 ;; archives.
1848 "--mtime=@315619200" ; 1980-01-02 UTC
1849 "--owner=root:0"
1850 "--group=root:0"
1851 "--sort=name"
1852 (string-append "librsvg-" #$version))
1853 #t)))))))
1854
f67417a1 1855(define-public librsvg-next
63016e7c
LC
1856 (package
1857 (name "librsvg")
cf9dad6c 1858 (version "2.46.3")
8f523eb9 1859 (source librsvg-next-source)
63016e7c
LC
1860 (build-system gnu-build-system)
1861 (arguments
d953418a
RW
1862 `(#:configure-flags
1863 (list "--disable-static"
1864 "--enable-vala") ; needed for e.g. gnome-mines
7e0f4cb1 1865 #:make-flags '("CC=gcc")
8f523eb9 1866 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
ec47c07d 1867 #:phases
b6239e45 1868 (modify-phases %standard-phases
8f523eb9 1869 (add-after 'configure 'patch-cargo-checksums
ec47c07d 1870 (lambda _
8f523eb9
EF
1871 (use-modules (guix build cargo-utils))
1872 (substitute* "librsvg/Cargo.toml"
1873 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
b665a246 1874 (generate-all-checksums "vendor")
8f523eb9
EF
1875 (delete-file "Cargo.lock")
1876 (invoke "cargo" "generate-lockfile")))
b6239e45
EF
1877 (add-before 'configure 'pre-configure
1878 (lambda* (#:key inputs #:allow-other-keys)
1879 (substitute* "gdk-pixbuf-loader/Makefile.in"
1880 ;; By default the gdk-pixbuf loader is installed under
1881 ;; gdk-pixbuf's prefix. Work around that.
1882 (("gdk_pixbuf_moduledir = .*$")
1883 (string-append "gdk_pixbuf_moduledir = "
1884 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1885 "loaders\n"))
1886 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1887 (("gdk_pixbuf_cache_file = .*$")
1888 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1889 #t))
ec47c07d 1890 (add-before 'check 'remove-failing-tests
b6239e45 1891 (lambda _
64a153bd
MW
1892 (with-directory-excursion "tests/fixtures/reftests"
1893 (for-each delete-file
ec47c07d
MB
1894 '(;; The images produced by these tests differ slightly
1895 ;; from their reference counterparts due to differences
1896 ;; in the build environment (missing fonts, etc). See
1897 ;; <tests/README.md> for details.
1898 ;; These fail on x86_64.
1899 "svg1.1/coords-viewattr-02-b.svg"
1900 "svg1.1/filters-composite-04-f.svg"
1901 "svg1.1/filters-image-01-b.svg"
1902 "svg1.1/filters-conv-02-f.svg"
1903 "svg1.1/filters-conv-04-f.svg"
1904 ;; This test fails on i686:
64a153bd 1905 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
1906 ;; This test fails on armhf:
1907 "svg1.1/masking-mask-01-b.svg"
64a153bd 1908 ;; This test fails on aarch64:
ec47c07d 1909 "bugs/777834-empty-text-children.svg")))
b6239e45 1910 #t)))))
63016e7c
LC
1911 (native-inputs
1912 `(("pkg-config" ,pkg-config)
64855281
MB
1913 ;; This is the minimum supported Rust version in Librsvg 2.46.
1914 ("rust" ,rust-1.34)
1915 ("cargo" ,rust-1.34 "cargo")
d953418a 1916 ("vala" ,vala)
44add1ce 1917 ("glib" ,glib "bin") ; glib-mkenums, etc.
63016e7c
LC
1918 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1919 (inputs
1920 `(("pango" ,pango)
1921 ("libcroco" ,libcroco)
1922 ("bzip2" ,bzip2)
1923 ("libgsf" ,libgsf)
1924 ("libxml2" ,libxml2)))
1925 (propagated-inputs
1926 ;; librsvg-2.0.pc refers to all of that.
1927 `(("cairo" ,cairo)
1928 ("gdk-pixbuf" ,gdk-pixbuf)
1929 ("glib" ,glib)))
1930 (home-page "https://wiki.gnome.org/LibRsvg")
1931 (synopsis "Render SVG files using Cairo")
1932 (description
35b9e423 1933 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
63016e7c 1934library.")
cf9dad6c 1935 (license license:lgpl2.1+)))
5698b8b8
JD
1936
1937(define-public libidl
1938 (package
1939 (name "libidl")
1940 (version "0.8.14")
1941 (source (origin
1942 (method url-fetch)
80a06e62
EF
1943 (uri (string-append "mirror://gnome/sources/libIDL/"
1944 (version-major+minor version) "/"
1945 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
1946 (sha256
1947 (base32
1948 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
1949 (build-system gnu-build-system)
1950 (inputs `(("glib" ,glib)))
1951 (native-inputs
1952 `(("pkg-config" ,pkg-config)
b3546174 1953 ("flex" ,flex)
5698b8b8
JD
1954 ("bison" ,bison)))
1955 (home-page "http://freecode.com/projects/libidl")
1956 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 1957 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
1958Definition Language (idl) files, which is a specification for defining
1959portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 1960GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 1961functionality was designed to be as reusable and portable as possible.")
ef2c55bb 1962 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
1963 (license license:lgpl2.0+)))
1964
1965
1966(define-public orbit2
1967 (package
1968 (name "orbit2")
1969 (version "2.14.19")
1970 (source (origin
1971 (method url-fetch)
2e6ecc5c 1972 (uri (let ((upstream-name "ORBit2"))
a124bbd2 1973 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
1974 (version-major+minor version) "/"
1975 upstream-name "-" version ".tar.bz2")))
5698b8b8 1976 (sha256
a124bbd2
SB
1977 (base32
1978 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
1979 (build-system gnu-build-system)
1980 (arguments
a124bbd2 1981 `(#:configure-flags
8aad2e32
LC
1982 '(;; We don't need static libraries, plus they don't build reproducibly
1983 ;; (non-deterministic ordering of .o files in the archive.)
1984 "--disable-static"
1985
1986 ;; The programmer kindly gives us a hook to turn off deprecation
1987 ;; warnings ...
1988 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
1989 ;; ... which they then completly ignore !!
1990 #:phases
dc1d3cde
KK
1991 (modify-phases %standard-phases
1992 (add-before 'configure 'ignore-deprecations
1993 (lambda _
1994 (substitute* "linc2/src/Makefile.in"
1995 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1996 #t)))))
5698b8b8
JD
1997 (inputs `(("glib" ,glib)
1998 ("libidl" ,libidl)))
1999 (native-inputs
2000 `(("pkg-config" ,pkg-config)))
2001 (home-page "https://projects.gnome.org/orbit2/")
2002 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 2003 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 2004featuring mature C, C++ and Python bindings.")
a124bbd2
SB
2005 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2006 ;; a version. SOME of the code files have licence notices for GPLv2+.
2007 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
2008 (license license:gpl2+)
2009 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
2010
2011
2012(define-public libbonobo
2013 (package
2014 (name "libbonobo")
2015 (version "2.32.1")
2016 (source (origin
2017 (method url-fetch)
5becd025 2018 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2019 (version-major+minor version)
5becd025 2020 "/" name "-" version ".tar.bz2"))
5698b8b8 2021 (sha256
f1fc45a9 2022 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2023 (patches (search-patches
2024 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2025 (build-system gnu-build-system)
2026 (arguments
2027 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2028 `(#:configure-flags
2029 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2030 ;; ... which they then completly ignore !!
2031 #:phases
dc1d3cde
KK
2032 (modify-phases %standard-phases
2033 (add-before 'configure 'ignore-deprecations
2034 (lambda _
2035 (substitute* "activation-server/Makefile.in"
2036 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2037 #t)))
2038
2039 ;; There's apparently a race condition between the server stub
2040 ;; generation and linking of the example under 'samples/echo' that can
2041 ;; lead do undefined references when building in parallel, as reported
2042 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2043 ;; Thus, disable parallel builds.
2044 #:parallel-build? #f))
5698b8b8
JD
2045 (inputs `(("popt" ,popt)
2046 ("libxml2" ,libxml2)))
2047 ;; The following are Required by the .pc file
44add1ce 2048 (propagated-inputs
5698b8b8
JD
2049 `(("glib" ,glib)
2050 ("orbit2" ,orbit2)))
2051 (native-inputs
2052 `(("intltool" ,intltool)
2053 ("pkg-config" ,pkg-config)
221ed17a 2054 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2055 ("flex" ,flex)
2056 ("bison" ,bison)))
2057 (home-page "https://developer.gnome.org/libbonobo/")
2058 (synopsis "Framework for creating reusable components for use in GNOME applications")
2059 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2060use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2061 ;; Licence not explicitly stated. Source files contain no licence notices.
2062 ;; Tarball contains text of both GPLv2 and LGPLv2
2063 ;; GPLv2 covers both conditions
2064 (license license:gpl2+)))
2065
2066
2067(define-public gconf
2068 (package
2069 (name "gconf")
2070 (version "3.2.6")
2071 (source (origin
2072 (method url-fetch)
a124bbd2
SB
2073 (uri
2074 (let ((upstream-name "GConf"))
2075 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2076 (version-major+minor version) "/"
2077 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2078 (sha256
2079 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2080 (build-system gnu-build-system)
2e88d113 2081 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2082 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2083 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2084 ("orbit2" ,orbit2)))
5698b8b8
JD
2085 (native-inputs
2086 `(("intltool" ,intltool)
221ed17a 2087 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2088 ("pkg-config" ,pkg-config)))
2089 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2090 (synopsis "Store application preferences")
2091 (description "Gconf is a system for storing application preferences. It
2092is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2093 (license license:lgpl2.0+)
2094 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2095
2096
2097(define-public gnome-mime-data
2098 (package
2099 (name "gnome-mime-data")
2100 (version "2.18.0")
2101 (source (origin
2102 (method url-fetch)
b38e45d8
EB
2103 (uri (string-append "mirror://gnome/sources/" name "/"
2104 (version-major+minor version) "/"
2105 name "-" version ".tar.bz2"))
5698b8b8
JD
2106 (sha256
2107 (base32
2108 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2109 (build-system gnu-build-system)
2110 (native-inputs
2111 `(("perl" ,perl)
2112 ("intltool" ,intltool)))
3e6add96
LC
2113 (arguments
2114 '(#:phases (modify-phases %standard-phases
2115 (add-after 'configure 'use-our-intltool
2116 (lambda _
2117 ;; Do not use the bundled intltool commands, which lack
2118 ;; the "dotless @INC" fixes of our 'intltool' package.
2119 (substitute* (find-files "." "^Makefile$")
2120 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2121 (string-append "INTLTOOL_" tool " = intltool-"
2122 (string-downcase tool) "\n")))
2123 #t)))))
f032d0be 2124 (home-page "https://www.gnome.org")
35b9e423 2125 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2126 (description "GNOME Mime Data is a module which contains the base MIME
2127and Application database for GNOME. The data stored by this module is
2128designed to be accessed through the MIME functions in GnomeVFS.")
2129 (license license:gpl2+)))
2130
2131
2132(define-public gnome-vfs
2133 (package
2134 (name "gnome-vfs")
2135 (version "2.24.4")
2136 (source (origin
2137 (method url-fetch)
b38e45d8
EB
2138 (uri (string-append "mirror://gnome/sources/" name "/"
2139 (version-major+minor version) "/"
2140 name "-" version ".tar.bz2"))
5698b8b8 2141 (sha256
9e12bc34
MW
2142 (base32
2143 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2144 (build-system gnu-build-system)
2145 (arguments
db5127d8 2146 `(#:phases
dc1d3cde
KK
2147 (modify-phases %standard-phases
2148 (add-before 'configure 'ignore-deprecations
2149 (lambda _
2150 (substitute* '("libgnomevfs/Makefile.in"
2151 "daemon/Makefile.in")
2152 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2153 #t))
2154 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2155 (lambda _
2156 (substitute* "test/test-async-cancel.c"
2157 (("EXIT_FAILURE") "77"))
2158 #t)))))
2e6ecc5c 2159 (inputs `(("libxml2" ,libxml2)
5698b8b8 2160 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2161 ("gconf" ,gconf)
2162 ("gnome-mime-data" ,gnome-mime-data)
2163 ("zlib" ,zlib)))
2164 (native-inputs
221ed17a
EB
2165 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2166 ("intltool" ,intltool)
5698b8b8
JD
2167 ("pkg-config" ,pkg-config)))
2168 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2169 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2170 (description
2171 "GnomeVFS is the core library used to access files and folders in GNOME
2172applications. It provides a file system abstraction which allows applications
2173to access local and remote files with a single consistent API.")
5698b8b8
JD
2174 (license license:lgpl2.0+)))
2175
2176
2177
2178(define-public libgnome
2179 (package
2180 (name "libgnome")
2181 (version "2.32.1")
2182 (source (origin
2183 (method url-fetch)
b38e45d8
EB
2184 (uri (string-append "mirror://gnome/sources/" name "/"
2185 (version-major+minor version) "/"
2186 name "-" version ".tar.bz2"))
5698b8b8
JD
2187 (sha256
2188 (base32
17c3eea7
LC
2189 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2190 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2191 (build-system gnu-build-system)
2192 (arguments
2193 `(#:phases
dc1d3cde
KK
2194 (modify-phases %standard-phases
2195 (add-before 'configure 'enable-deprecated
2196 (lambda _
2197 (substitute* "libgnome/Makefile.in"
2198 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2199 #t)))))
25338e9f 2200 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2201 (native-inputs
221ed17a
EB
2202 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2203 ("intltool" ,intltool)
5698b8b8
JD
2204 ("pkg-config" ,pkg-config)))
2205 ;; The following are listed as Required in the .pc file
2206 ;; (except for libcanberra -- which seems to be oversight on the part
2207 ;; of the upstream developers -- anything that links against libgnome,
2208 ;; must also link against libcanberra
2209 (propagated-inputs
2210 `(("libcanberra" ,libcanberra)
2211 ("libbonobo" ,libbonobo)
2212 ("gconf" ,gconf)
a640d3d5
LC
2213 ("gnome-vfs" ,gnome-vfs)
2214 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2215 (home-page "https://developer.gnome.org/libgnome/")
2216 (synopsis "Useful routines for building applications")
2217 (description "The libgnome library provides a number of useful routines
2218for building modern applications, including session management, activation of
2219files and URIs, and displaying help.")
2220 (license license:lgpl2.0+)))
2221
2222
2223(define-public libart-lgpl
2224 (package
2225 (name "libart-lgpl")
76c9b6aa 2226 (version "2.3.21")
5698b8b8
JD
2227 (source (origin
2228 (method url-fetch)
2229 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2230 (string-append "mirror://gnome/sources/" upstream-name "/"
2231 (version-major+minor version) "/"
2232 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2233 (sha256
2234 (base32
76c9b6aa 2235 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2236 (build-system gnu-build-system)
2237 (native-inputs
2238 `(("pkg-config" ,pkg-config)))
2239 (home-page "https://people.gnome.org/~mathieu/libart")
2240 (synopsis "2D drawing library")
2e6ecc5c 2241 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2242high-quality vector-based 2D library with antialiasing and alpha composition.")
2243 (license license:lgpl2.0+)))
2244
2245
2246
2247(define-public libgnomecanvas
2248 (package
2249 (name "libgnomecanvas")
2250 (version "2.30.3")
2251 (source (origin
2252 (method url-fetch)
b38e45d8
EB
2253 (uri (string-append "mirror://gnome/sources/" name "/"
2254 (version-major+minor version) "/"
2255 name "-" version ".tar.gz"))
5698b8b8
JD
2256 (sha256
2257 (base32
2258 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2259 (build-system gnu-build-system)
2260 ;; Mentioned as Required in the .pc file
2261 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2262 ("gtk+" ,gtk+-2)))
2263 (native-inputs
2264 `(("intltool" ,intltool)
221ed17a 2265 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2266 ("pkg-config" ,pkg-config)))
2267 (home-page "https://developer.gnome.org/libgnomecanvas/")
2268 (synopsis "Flexible widget for creating interactive structured graphics")
2269 (description "The GnomeCanvas widget provides a flexible widget for
2270creating interactive structured graphics.")
2271 (license license:lgpl2.0+)))
2272
eadc734e
RW
2273(define-public libgnomecanvasmm
2274 (package
2275 (name "libgnomecanvasmm")
2276 (version "2.26.0")
2277 (source (origin
2278 (method url-fetch)
2279 (uri (string-append "mirror://gnome/sources/" name "/"
2280 (version-major+minor version) "/"
2281 name "-" version ".tar.bz2"))
2282 (sha256
2283 (base32
2284 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2285 (build-system gnu-build-system)
2286 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2287 (native-inputs
2288 `(("gtkmm-2" ,gtkmm-2)
2289 ("pkg-config" ,pkg-config)))
8e933cb3 2290 (home-page "https://gtkmm.org")
eadc734e
RW
2291 (synopsis "C++ bindings to the GNOME Canvas library")
2292 (description "C++ bindings to the GNOME Canvas library.")
2293 (license license:lgpl2.0+)))
2294
5698b8b8
JD
2295(define-public libgnomeui
2296 (package
2297 (name "libgnomeui")
2298 (version "2.24.5")
2299 (source (origin
2300 (method url-fetch)
b38e45d8
EB
2301 (uri (string-append "mirror://gnome/sources/" name "/"
2302 (version-major+minor version) "/"
2303 name "-" version ".tar.bz2"))
8fa1872a 2304 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2305 (sha256
2306 (base32
2307 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2308 (build-system gnu-build-system)
2309 ;; Mentioned as Required in the .pc file
0a38a497
AE
2310 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2311 ("libgnome" ,libgnome)
2312 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2313 ("libgnome-keyring" ,libgnome-keyring)))
0a38a497 2314 (inputs `(("libjpeg" ,libjpeg)
5698b8b8
JD
2315 ("popt" ,popt)
2316 ("libbonobo" ,libbonobo)
2317 ("libxml2" ,libxml2)
2318 ("libglade" ,libglade)))
2319 (native-inputs
221ed17a
EB
2320 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2321 ("intltool" ,intltool)
5698b8b8
JD
2322 ("pkg-config" ,pkg-config)))
2323 (home-page "https://developer.gnome.org/libgnomeui/")
2324 (synopsis "Additional widgets for applications")
35b9e423 2325 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2326applications. Many of the widgets from libgnomeui have already been
2327ported to GTK+.")
5698b8b8
JD
2328 (license license:lgpl2.0+)))
2329
2330(define-public libglade
2331 (package
2332 (name "libglade")
2333 (version "2.6.4")
2334 (source (origin
2335 (method url-fetch)
b38e45d8
EB
2336 (uri (string-append "mirror://gnome/sources/" name "/"
2337 (version-major+minor version) "/"
2338 name "-" version ".tar.bz2"))
5698b8b8
JD
2339 (sha256
2340 (base32
2341 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2342 (build-system gnu-build-system)
2343 (inputs
92dcc23d
AE
2344 `(("python" ,python))) ;; needed for the optional libglade-convert program
2345 (propagated-inputs
5698b8b8 2346 `(("gtk+-2" ,gtk+-2)
92dcc23d 2347 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2348 (native-inputs
2349 `(("pkg-config" ,pkg-config)))
2350 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2351 (synopsis "Load glade interfaces and access the glade built widgets")
2352 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2353graphical interfaces described in glade files and for accessing the
2354widgets built in the loading process.")
2355 (license license:gpl2+))) ; This is correct. GPL not LGPL
2356
2357(define-public libgnomeprint
eb497b66
LC
2358 ;; This library has been deprecated since 2006; see
2359 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2360 (package
2361 (name "libgnomeprint")
d19db454 2362 (version "2.18.8")
5698b8b8
JD
2363 (source (origin
2364 (method url-fetch)
b38e45d8
EB
2365 (uri (string-append "mirror://gnome/sources/" name "/"
2366 (version-major+minor version) "/"
2367 name "-" version ".tar.bz2"))
5698b8b8
JD
2368 (sha256
2369 (base32
d19db454 2370 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2371 (build-system gnu-build-system)
2372 (inputs
2373 `(("popt" ,popt)
2374 ("libart-lgpl" ,libart-lgpl)
2375 ("gtk+" ,gtk+-2)
44add1ce 2376 ("libxml2" ,libxml2)))
5698b8b8
JD
2377 (native-inputs
2378 `(("intltool" ,intltool)
221ed17a 2379 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2380 ("pkg-config" ,pkg-config)))
2381 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2382 (synopsis "Printing framework for GNOME")
eb497b66
LC
2383 (description
2384 "GNOME-print was a printing framework for GNOME. It has been deprecated
2385since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2386 (license license:lgpl2.0+)))
2387
2388
2389(define-public libgnomeprintui
eb497b66 2390 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2391 (package
2392 (name "libgnomeprintui")
36053d7f 2393 (version "2.18.6")
5698b8b8
JD
2394 (source (origin
2395 (method url-fetch)
b38e45d8
EB
2396 (uri (string-append "mirror://gnome/sources/" name "/"
2397 (version-major+minor version) "/"
2398 name "-" version ".tar.bz2"))
5698b8b8
JD
2399 (sha256
2400 (base32
36053d7f 2401 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2402 (build-system gnu-build-system)
2403 ;; Mentioned as Required in the .pc file
2404 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2405 (inputs `(("gtk+" ,gtk+-2)
2406 ("glib" ,glib)
2407 ("gnome-icon-theme" ,gnome-icon-theme)
2408 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2409 ("libxml2" ,libxml2)))
5698b8b8
JD
2410 (native-inputs
2411 `(("intltool" ,intltool)
2412 ("pkg-config" ,pkg-config)))
2413 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2414 (synopsis "Printing framework for GNOME")
eb497b66 2415 (description (package-description libgnomeprint))
5698b8b8
JD
2416 (license license:lgpl2.0+)))
2417
5698b8b8
JD
2418(define-public libbonoboui
2419 (package
2420 (name "libbonoboui")
2421 (version "2.24.5")
2422 (source (origin
2423 (method url-fetch)
b38e45d8
EB
2424 (uri (string-append "mirror://gnome/sources/" name "/"
2425 (version-major+minor version) "/"
2426 name "-" version ".tar.bz2"))
5698b8b8
JD
2427 (sha256
2428 (base32
2429 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2430 (build-system gnu-build-system)
2431 (arguments
2432 `(#:phases
dc1d3cde
KK
2433 (modify-phases %standard-phases
2434 (add-before 'check 'start-xserver
2435 (lambda* (#:key inputs #:allow-other-keys)
2436 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2437 (disp ":1"))
2438
2439 (setenv "HOME" (getcwd))
2440 (setenv "DISPLAY" disp)
2441 ;; There must be a running X server and make check doesn't start one.
2442 ;; Therefore we must do it.
2443 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2444 ;; Mentioned as Required by the .pc file
2445 (propagated-inputs `(("libxml2" ,libxml2)))
2446 (inputs
2447 `(("popt" ,popt)
2448 ("pangox-compat" ,pangox-compat)
2449 ("libgnome" ,libgnome)
2450 ("libgnomecanvas" ,libgnomecanvas)
2451 ("libglade" ,libglade)))
2452 (native-inputs
221ed17a
EB
2453 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2454 ("intltool" ,intltool)
ff337525 2455 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2456 ("pkg-config" ,pkg-config)))
2457 (home-page "https://developer.gnome.org/libbonoboui/")
2458 (synopsis "Some user interface controls using Bonobo")
2459 (description "The Bonobo UI library provides a number of user interface
2460controls using the Bonobo component framework.")
2461 (license license:lgpl2.0+)))
2462
fecbf86e
SB
2463(define-public libwnck
2464 (package
2465 (name "libwnck")
d3b40696 2466 (version "3.32.0")
fecbf86e
SB
2467 (source (origin
2468 (method url-fetch)
2469 (uri (string-append "mirror://gnome/sources/" name "/"
2470 (version-major+minor version) "/"
2471 name "-" version ".tar.xz"))
2472 (sha256
ad9b8987 2473 (base32
d3b40696
KK
2474 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2475 (build-system meson-build-system)
fecbf86e
SB
2476 (native-inputs
2477 `(("pkg-config" ,pkg-config)
d3b40696
KK
2478 ("glib" ,glib "bin") ; for glib-mkenums
2479 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2480 ("intltool" ,intltool)))
2481 (propagated-inputs
427476d5
SB
2482 `(("gtk+" ,gtk+)
2483 ("libxres" ,libxres)
2484 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2485 (home-page "https://developer.gnome.org/libwnck/")
2486 (synopsis "Window Navigator Construction Kit")
2487 (description
2488 "Libwnck is the Window Navigator Construction Kit, a library for use in
2489writing pagers, tasklists, and more generally applications that are dealing
2490with window management. It tries hard to respect the Extended Window Manager
2491Hints specification (EWMH).")
2492 (license license:lgpl2.0+)))
2493
2494;; stable version for gtk2, required by xfwm4.
dbb7a081 2495(define-public libwnck-2
fecbf86e
SB
2496 (package (inherit libwnck)
2497 (name "libwnck")
2498 (version "2.30.7")
2499 (source (origin
2500 (method url-fetch)
2501 (uri (string-append "mirror://gnome/sources/" name "/"
2502 (version-major+minor version) "/"
2503 name "-" version ".tar.xz"))
2504 (sha256
2505 (base32
2506 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2507 (build-system gnu-build-system)
2508 (native-inputs
2509 `(("pkg-config" ,pkg-config)
2510 ("intltool" ,intltool)))
fecbf86e 2511 (propagated-inputs
427476d5
SB
2512 `(("gtk+" ,gtk+-2)
2513 ("libxres" ,libxres)
2514 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2515
2516(define-public goffice
2517 (package
2518 (name "goffice")
09abffcc 2519 (version "0.10.46")
b804c61e
JD
2520 (source (origin
2521 (method url-fetch)
16243f0b 2522 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2523 (version-major+minor version) "/"
16243f0b 2524 "goffice-" version ".tar.xz"))
b804c61e 2525 (sha256
09abffcc 2526 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 2527 (build-system gnu-build-system)
72a06d3e 2528 (outputs '("out"
355420c6 2529 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
2530 (arguments
2531 '(#:configure-flags (list (string-append "--with-html-dir="
2532 (assoc-ref %outputs "doc")
2533 "/share/gtk-doc/html"))))
b804c61e
JD
2534 (inputs
2535 `(("gtk+" ,gtk+)
2536 ("libgsf" ,libgsf)
2537 ("librsvg" ,librsvg)
2538 ("libxslt" ,libxslt)
2539 ("libxml2" ,libxml2)))
2540 (native-inputs
2541 `(("intltool" ,intltool)
f280cdb1 2542 ("glib" ,glib "bin")
b804c61e
JD
2543 ("pkg-config" ,pkg-config)))
2544 (home-page "https://developer.gnome.org/goffice/")
2545 (synopsis "Document-centric objects and utilities")
2546 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 2547 (license
b804c61e
JD
2548 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2549 ;; Note: NOT LGPL
2550 (list license:gpl2 license:gpl3))))
2551
c024ae36
RW
2552(define-public goffice-0.8
2553 (package (inherit goffice)
2554 (version "0.8.17")
2555 (source (origin
2556 (method url-fetch)
2557 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2558 (version-major+minor version) "/"
2559 (package-name goffice) "-" version ".tar.xz"))
2560 (sha256
2561 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2562 (arguments
2563 `(#:phases
dc1d3cde
KK
2564 (modify-phases %standard-phases
2565 (add-after 'unpack 'fix-pcre-check
2566 (lambda _
2567 ;; Only glib.h can be included directly. See
2568 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2569 (substitute* "configure"
2570 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
2571
2572 ,@(package-arguments goffice)))
c024ae36
RW
2573 (propagated-inputs
2574 ;; libgoffice-0.8.pc mentions libgsf-1
2575 `(("libgsf" ,libgsf)))
2576 (inputs
2577 `(("gtk" ,gtk+-2)
2578 ,@(alist-delete "gtk" (package-inputs goffice))))))
2579
b804c61e
JD
2580(define-public gnumeric
2581 (package
2582 (name "gnumeric")
f0517b5d 2583 (version "1.12.46")
b804c61e
JD
2584 (source (origin
2585 (method url-fetch)
b7fd0217 2586 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 2587 (version-major+minor version) "/"
b7fd0217 2588 "gnumeric-" version ".tar.xz"))
b804c61e
JD
2589 (sha256
2590 (base32
f0517b5d 2591 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 2592 (build-system glib-or-gtk-build-system)
b804c61e
JD
2593 (arguments
2594 `(;; The gnumeric developers don't worry much about failing tests.
2595 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 2596 #:tests? #f
b804c61e 2597 #:phases
7bcbd40d
EF
2598 (modify-phases %standard-phases
2599 (add-before
2600 'configure 'pre-conf
2601 (lambda* (#:key outputs #:allow-other-keys)
2602 ;; Make install tries to write into the directory of goffice
2603 ;; I am informed that this only affects the possibility to embed a
2604 ;; spreadsheet inside an Abiword document. So presumably when we
2605 ;; package Abiword we'll have to refer it to this directory.
2606 (substitute* "configure"
2607 (("^GOFFICE_PLUGINS_DIR=.*")
2608 (string-append "GOFFICE_PLUGINS_DIR="
2609 (assoc-ref outputs "out")
2610 "/goffice/plugins"))))))))
b804c61e
JD
2611 (inputs
2612 `(("glib" ,glib)
2613 ("gtk+" ,gtk+)
2614 ("goffice" ,goffice)
2615 ("libgsf" ,libgsf)
7bcbd40d 2616 ("librsvg" ,librsvg)
b804c61e 2617 ("libxml2" ,libxml2)
7bcbd40d 2618 ("libxslt" ,libxslt)
2e4c5457 2619 ("python" ,python-2)
6983ba56 2620 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
2621 ("zlib" ,zlib)))
2622 (native-inputs
6983ba56 2623 `(("bison" ,bison)
1ed398d1 2624 ("docbook-xml" ,docbook-xml)
6983ba56 2625 ("intltool" ,intltool)
3a2efbc8 2626 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
b9663471 2627 ("glib:bin" ,glib "bin")
b804c61e
JD
2628 ("pkg-config" ,pkg-config)))
2629 (home-page "http://www.gnumeric.org")
66672a45
LC
2630 (synopsis "Spreadsheet application")
2631 (description
2632 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
2633interoperable with other spreadsheet applications. It has a vast array of
2634features beyond typical spreadsheet functionality, such as support for linear
2635and non-linear solvers, statistical analysis, and telecommunication
2636engineering.")
2637 (license
b804c61e
JD
2638 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2639 (list license:gpl2 license:gpl3))))
6f885c05
FB
2640
2641(define-public gnome-themes-standard
2642 (package
2643 (name "gnome-themes-standard")
0b7b8fb0 2644 (version "3.22.3")
6f885c05
FB
2645 (source
2646 (origin
2647 (method url-fetch)
2e6ecc5c 2648 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
2649 (version-major+minor version) "/" name "-"
2650 version ".tar.xz"))
2651 (sha256
2652 (base32
0b7b8fb0 2653 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 2654 (build-system gnu-build-system)
8ac70c7f
SB
2655 (arguments
2656 '(#:configure-flags
2657 ;; Don't create 'icon-theme.cache'.
2658 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2659 (true (string-append coreutils "/bin/true")))
2660 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
2661 (inputs
2662 `(("gtk+" ,gtk+)
2663 ("gtk+-2" ,gtk+-2)
2664 ("librsvg" ,librsvg)
2665 ("libxml2" ,libxml2)
2666 ("glib" ,glib)))
2667 (native-inputs
2668 `(("intltool" ,intltool)
2669 ("glib:bin" ,glib "bin")
2670 ("pkg-config" ,pkg-config)))
6f885c05
FB
2671 (home-page "https://launchpad.net/gnome-themes-standard")
2672 (synopsis "Default GNOME 3 themes")
2673 (description
2674 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
2675 (license license:lgpl2.1+)))
5a659a48 2676
df90c701
RW
2677(define-public seahorse
2678 (package
2679 (name "seahorse")
bcea3c11 2680 (version "3.32.2")
df90c701
RW
2681 (source
2682 (origin
2683 (method url-fetch)
2684 (uri (string-append "mirror://gnome/sources/" name "/"
2685 (version-major+minor version) "/" name "-"
2686 version ".tar.xz"))
2687 (sha256
2688 (base32
bcea3c11 2689 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
2690 (patches (search-patches
2691 "seahorse-gkr-use-0-on-empty-flags.patch"))))
2692 (build-system meson-build-system)
2693 (arguments
bcea3c11
KK
2694 '(#:glib-or-gtk? #t
2695 #:phases
af561664
MÁAV
2696 (modify-phases %standard-phases
2697 (add-after 'unpack 'skip-gtk-update-icon-cache
2698 ;; Don't create 'icon-theme.cache'.
2699 (lambda _
2700 (substitute* "build-aux/meson_post_install.py"
2701 (("gtk-update-icon-cache") "true"))
2702 #t)))))
df90c701
RW
2703 (inputs
2704 `(("gtk+" ,gtk+)
2705 ("gcr" ,gcr)
34b979b9 2706 ("gnupg" ,gnupg)
df90c701 2707 ("gpgme" ,gpgme)
34b979b9 2708 ("openldap" ,openldap)
4a1bf090 2709 ("openssh" ,openssh)
af561664 2710 ("avahi" ,avahi)
bcea3c11 2711 ("libpwquality" ,libpwquality)
34b979b9
EF
2712 ("libsecret" ,libsecret)
2713 ("libsoup" ,libsoup)))
df90c701 2714 (native-inputs
af561664 2715 `(("gettext" ,gettext-minimal)
df90c701
RW
2716 ("glib:bin" ,glib "bin")
2717 ("itstool" ,itstool)
bcb354ad 2718 ("pkg-config" ,pkg-config)
af561664 2719 ("vala" ,vala)
bcb354ad 2720 ("xmllint" ,libxml2)))
bcea3c11 2721 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
2722 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
2723 (description
2724 "Seahorse is a GNOME application for managing encryption keys and
2725passwords in the GNOME keyring.")
2726 (license license:gpl2+)))
2727
5a659a48
SB
2728(define-public vala
2729 (package
2730 (name "vala")
2d6872f6 2731 (version "0.44.5")
5a659a48
SB
2732 (source (origin
2733 (method url-fetch)
2734 (uri (string-append "mirror://gnome/sources/" name "/"
2735 (version-major+minor version) "/"
2736 name "-" version ".tar.xz"))
2737 (sha256
2738 (base32
2d6872f6 2739 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
5a659a48 2740 (build-system gnu-build-system)
1ea90625
SB
2741 (arguments
2742 '(#:phases
2743 (modify-phases %standard-phases
f4925a4f 2744 (add-before 'check 'pre-check
1ea90625
SB
2745 (lambda _
2746 (setenv "CC" "gcc")
8839b6be
RW
2747 (substitute* "valadoc/tests/testrunner.sh"
2748 (("export PKG_CONFIG_PATH=" m)
2749 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
2750 ;; For missing '/etc/machine-id'.
2751 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 2752 #t)))))
5a659a48
SB
2753 (native-inputs
2754 `(("pkg-config" ,pkg-config)
2755 ("flex" ,flex)
2756 ("bison" ,bison)
2757 ("xsltproc" ,libxslt)
2758 ("dbus" ,dbus) ; for dbus tests
2759 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
2760 (inputs
2761 `(("graphviz" ,graphviz)))
5a659a48 2762 (propagated-inputs
8839b6be 2763 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 2764 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
2765 (synopsis "Compiler for the GObject type system")
2766 (description
2767 "Vala is a programming language that aims to bring modern programming
2768language features to GNOME developers without imposing any additional runtime
2769requirements and without using a different ABI compared to applications and
2770libraries written in C.")
2771 (license license:lgpl2.1+)))
ea57378f
SB
2772
2773(define-public vte
2774 (package
2775 (name "vte")
68c47474 2776 (version "0.58.3")
ea57378f
SB
2777 (source (origin
2778 (method url-fetch)
ac87ffb8 2779 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 2780 (version-major+minor version) "/"
ac87ffb8 2781 "vte-" version ".tar.xz"))
ea57378f
SB
2782 (sha256
2783 (base32
68c47474
TGR
2784 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
2785 (build-system meson-build-system)
ea57378f
SB
2786 (native-inputs
2787 `(("pkg-config" ,pkg-config)
2788 ("intltool" ,intltool)
2789 ("vala" ,vala)
2790 ("gobject-introspection" ,gobject-introspection)
68c47474 2791 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 2792 ("gperf" ,gperf)
ea57378f
SB
2793 ("xmllint" ,libxml2)))
2794 (propagated-inputs
68c47474
TGR
2795 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
2796 ("gnutls" ,gnutls) ; ditto
2797 ("pcre2" ,pcre2))) ; ditto
f032d0be 2798 (home-page "https://www.gnome.org/")
ea57378f
SB
2799 (synopsis "Virtual Terminal Emulator")
2800 (description
2801 "VTE is a library (libvte) implementing a terminal emulator widget for
2802GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
2803gnome-terminal, but can also be used to embed a console/terminal in games,
2804editors, IDEs, etc.")
2805 (license license:lgpl2.1+)))
2806
c44fb4df
MO
2807(define-public vte-ng
2808 (package
2809 (inherit vte)
2810 (name "vte-ng")
24f4fcbe 2811 (version "0.58.2.a")
afd90f8d 2812 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
2813 (source (origin
2814 (method git-fetch)
2815 (uri (git-reference (url home-page) (commit version)))
2816 (file-name (git-file-name name version))
2817 (sha256
2818 (base32
24f4fcbe
MB
2819 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
2820 (build-system meson-build-system)
c44fb4df
MO
2821 (native-inputs
2822 `(("gtk-doc" ,gtk-doc)
c44fb4df 2823 ,@(package-native-inputs vte)))
c44fb4df 2824 (arguments
24f4fcbe 2825 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
2826 (synopsis "Enhanced VTE terminal widget")
2827 (description
2828 "VTE is a library (libvte) implementing a terminal emulator widget for
2829GTK+, this fork provides additional functions exposed for keyboard text
2830selection and URL hints.")))
2831
2776d72c
EF
2832;; provides vte 2.90, required for some terminal emulators
2833;; tilda bug: https://github.com/lanoxx/tilda/issues/94
2834;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
2835;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
2836;; pantheon-terminal, roxterm are not currently packaged
2837(define-public vte-0.36
2838 (package (inherit vte)
2839 (name "vte")
2840 (version "0.36.5")
2841 (source (origin
2842 (method url-fetch)
2843 (uri (string-append "mirror://gnome/sources/" name "/"
2844 (version-major+minor version) "/"
2845 name "-" version ".tar.xz"))
2846 (sha256
2847 (base32
2848 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
2849 (propagated-inputs
2850 `(("gtk" ,gtk+)
2851 ("ncurses" ,ncurses)))))
2852
ea57378f
SB
2853;; stable version for gtk2, required by xfce4-terminal.
2854(define-public vte/gtk+-2
2855 (package (inherit vte)
2856 (name "vte")
2857 (version "0.28.2")
2858 (source (origin
2859 (method url-fetch)
2860 (uri (string-append "mirror://gnome/sources/" name "/"
2861 (version-major+minor version) "/"
2862 name "-" version ".tar.xz"))
2863 (sha256
2864 (base32
7d48938a
EF
2865 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
2866 (patches (search-patches
2867 "vte-CVE-2012-2738-pt1.patch"
2868 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 2869 (build-system gnu-build-system)
ea57378f
SB
2870 (arguments
2871 '(#:configure-flags '("--disable-python")))
2872 (native-inputs
2873 `(("pkg-config" ,pkg-config)
2874 ("intltool" ,intltool)
2875 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
2876 (propagated-inputs
2877 `(("gtk+" ,gtk+-2) ; required by libvte.pc
2878 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 2879
cce0da5e
TD
2880(define-public vinagre
2881 (package
2882 (name "vinagre")
2883 (version "3.22.0")
2884 (source (origin
2885 (method url-fetch)
2886 (uri (string-append "mirror://gnome/sources/" name "/"
2887 (version-major+minor version) "/"
2888 name "-" version ".tar.xz"))
684f97f8
EF
2889 (patches (search-patches "vinagre-newer-freerdp.patch"
2890 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
2891 (sha256
2892 (base32
2893 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
2894 (build-system glib-or-gtk-build-system)
684f97f8 2895 (arguments
7f486d25
MC
2896 ;; Disable -Werror and such, to avoid build failures on compilation
2897 ;; warnings.
2898 '(#:configure-flags '("--enable-compile-warnings=minimum")
2899 #:phases
684f97f8 2900 (modify-phases %standard-phases
1839768c
EF
2901 (add-before 'install 'skip-gtk-update-icon-cache
2902 (lambda _
2903 ;; Don't create 'icon-theme.cache'
2904 (substitute* (find-files "." "^Makefile$")
2905 (("gtk-update-icon-cache") (which "true")))
2906 #t))
684f97f8
EF
2907 (add-after 'unpack 'patch-configure
2908 (lambda _
2909 (substitute* "configure"
2910 (("freerdp") "freerdp2"))
2911 #t)))))
cce0da5e
TD
2912 (native-inputs
2913 `(("pkg-config" ,pkg-config)
2914 ("intltool" ,intltool)
2915 ("itstool" ,itstool)
1839768c 2916 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
2917 (inputs
2918 `(("libxml2" ,libxml2)
2919 ("gtk-vnc" ,gtk-vnc)
2920 ("gnome-keyring" ,gnome-keyring)
2921 ("libsecret" ,libsecret)
2922 ("freerdp" ,freerdp)
2923 ("spice" ,spice)
2924 ("spice-gtk" ,spice-gtk)
2925 ("telepathy-glib" ,telepathy-glib)
2926 ("vte" ,vte)))
cce0da5e
TD
2927 (home-page "https://wiki.gnome.org/Apps/Vinagre")
2928 (synopsis "Remote desktop viewer for GNOME")
2929 (description "Vinagre is a remote display client supporting the VNC, SPICE
2930and RDP protocols.")
2931 (license license:gpl3+)))
2932
b47e1b20
FB
2933(define-public dconf
2934 (package
2935 (name "dconf")
1e33331c 2936 (version "0.32.0")
b47e1b20
FB
2937 (source (origin
2938 (method url-fetch)
2939 (uri (string-append
2e6ecc5c 2940 "mirror://gnome/sources/" name "/"
b47e1b20
FB
2941 (version-major+minor version) "/"
2942 name "-" version ".tar.xz"))
2943 (sha256
f05c809f 2944 (base32
1e33331c 2945 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 2946 (build-system meson-build-system)
bc036f4c
MB
2947 (propagated-inputs
2948 ;; In Requires of dconf.pc.
2949 `(("glib" ,glib)))
b47e1b20
FB
2950 (inputs
2951 `(("gtk+" ,gtk+)
bc036f4c 2952 ("dbus" ,dbus)))
b47e1b20 2953 (native-inputs
1e33331c
MB
2954 `(("bash-completion" ,bash-completion)
2955 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 2956 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
2957 ("docbook-xml" ,docbook-xml-4.2)
2958 ("docbook-xsl" ,docbook-xsl)
35fa923d 2959 ("glib:bin" ,glib "bin")
03676d6f 2960 ("gtk-doc" ,gtk-doc)
35fa923d
MB
2961 ("pkg-config" ,pkg-config)
2962 ("vala" ,vala)))
b47e1b20
FB
2963 (arguments
2964 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
2965 ; or /etc/machine-id.
35fa923d
MB
2966 #:glib-or-gtk? #t
2967 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
2968 (home-page "https://developer.gnome.org/dconf")
2969 (synopsis "Low-level GNOME configuration system")
2970 (description "Dconf is a low-level configuration system. Its main purpose
2971is to provide a backend to GSettings on platforms that don't already have
2972configuration storage systems.")
e20e6b40 2973 (license license:lgpl2.1+)))
109da1c0
AE
2974
2975(define-public json-glib
2976 (package
2977 (name "json-glib")
4115e8ea 2978 (version "1.4.4")
109da1c0
AE
2979 (source (origin
2980 (method url-fetch)
2981 (uri (string-append "mirror://gnome/sources/" name "/"
2982 (version-major+minor version) "/"
2983 name "-" version ".tar.xz"))
2984 (sha256
2985 (base32
4115e8ea 2986 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 2987 (build-system meson-build-system)
109da1c0 2988 (native-inputs
98afa184
MB
2989 `(("gettext" ,gettext-minimal)
2990 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
2991 ("gobject-introspection" ,gobject-introspection)
2992 ("pkg-config" ,pkg-config)))
2993 (propagated-inputs
88c6b580 2994 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
2995 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
2996 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
2997 (description
2998 "JSON-GLib is a C library based on GLib providing serialization and
2999deserialization support for the JavaScript Object Notation (JSON) format
3000described by RFC 4627. It provides parser and generator GObject classes and
3001various wrappers for the complex data types employed by JSON, such as arrays
3002and objects.")
109da1c0 3003 (license license:lgpl2.1+)))
6f96a359
SB
3004
3005(define-public libxklavier
3006 (package
3007 (name "libxklavier")
5f39050b 3008 (version "5.4")
6f96a359 3009 (source (origin
5f39050b 3010 ;; Note: There's no tarball at ftp.gnome.org for this version.
3011 (method git-fetch)
3012 (uri (git-reference
3013 (url "https://anongit.freedesktop.org/git/libxklavier")
3014 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3015 (sha256
3016 (base32
5f39050b 3017 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3018 (file-name (git-file-name name version))))
6f96a359
SB
3019 (build-system gnu-build-system)
3020 (arguments
5f39050b 3021 '(#:phases
3022 (modify-phases %standard-phases
3023 (add-after 'unpack 'no-configure
3024 (lambda* _
3025 (setenv "NOCONFIGURE" "1")
3026 #t)))
3027 #:configure-flags
6f96a359
SB
3028 (list (string-append "--with-xkb-base="
3029 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3030 "/share/X11/xkb")
3031 "--disable-xmodmap-support")))
6f96a359
SB
3032 (native-inputs
3033 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3034 ("gobject-introspection" ,gobject-introspection)
5f39050b 3035 ("pkg-config" ,pkg-config)
3036 ("gtk-doc" ,gtk-doc)
3037 ("intltool" ,intltool)
3038 ("which" ,which)
3039 ("autoconf" ,autoconf)
3040 ("automake" ,automake)
3041 ("libtool" ,libtool)))
6f96a359
SB
3042 (propagated-inputs
3043 ;; Required by libxklavier.pc.
3044 `(("glib" ,glib)
3045 ("libxml2" ,libxml2)))
3046 (inputs
3047 `(("iso-codes" ,iso-codes)
3048 ("libxi" ,libxi)
3049 ("libxkbfile" ,libxkbfile)
3050 ("xkbcomp" ,xkbcomp)
3051 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3052 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3053 (synopsis "High-level API for X Keyboard Extension")
3054 (description
3055 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3056Extension known as XKB. This library is intended to support XFree86 and other
3057commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3058indicators etc).")
3059 (license license:lgpl2.0+)))
619936a4
LC
3060
3061(define-public python2-rsvg
3062 ;; XXX: This is actually a subset of gnome-python-desktop.
3063 (package
3064 (name "python2-rsvg")
3065 (version "2.32.0")
3066 (source
3067 (origin
3068 (method url-fetch)
3069 (uri (string-append
3070 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3071 version ".tar.bz2"))
3072 (sha256
3073 (base32
3074 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3075 (build-system gnu-build-system)
3076 (native-inputs
3077 `(("pkg-config" ,pkg-config)))
3078 (inputs
3079 `(("python" ,python-2)
3080 ("python2-pygtk" ,python2-pygtk)
3081 ("librsvg" ,librsvg)))
f032d0be 3082 (home-page "https://www.gnome.org")
619936a4
LC
3083 (synopsis "Python bindings to librsvg")
3084 (description
3ad75446 3085 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3086library.")
3087
3088 ;; This is the license of the rsvg bindings. The license of each module
3089 ;; of gnome-python-desktop is given in 'COPYING'.
3090 (license license:lgpl2.1+)))
a31a6d22 3091
f2ca414a
SB
3092(define-public glib-networking
3093 (package
3094 (name "glib-networking")
0d75c64d 3095 (version "2.60.3")
f2ca414a
SB
3096 (source (origin
3097 (method url-fetch)
3098 (uri (string-append "mirror://gnome/sources/glib-networking/"
3099 (version-major+minor version) "/"
fb8fe1e8 3100 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3101 (sha256
3102 (base32
0d75c64d 3103 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3104 (build-system meson-build-system)
f2ca414a 3105 (arguments
0d75c64d 3106 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3107 (native-inputs
3108 `(("pkg-config" ,pkg-config)
3109 ("intltool" ,intltool)))
3110 (inputs
3111 `(("glib" ,glib)
3112 ("gnutls" ,gnutls)
4b8f1313 3113 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3114 (home-page "https://www.gnome.org")
f2ca414a
SB
3115 (synopsis "Network-related GIO modules")
3116 (description
3117 "This package contains various network related extensions for the GIO
3118library.")
3119 (license license:lgpl2.0+)))
3120
ca649680 3121(define-public rest
4510b2da 3122 (package
ca649680 3123 (name "rest")
a4194d16 3124 (version "0.8.1")
4510b2da
SB
3125 (source (origin
3126 (method url-fetch)
3127 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3128 (version-major+minor version) "/"
3129 name "-" version ".tar.xz"))
4510b2da
SB
3130 (sha256
3131 (base32
a4194d16 3132 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3133 (build-system gnu-build-system)
3134 (arguments
3135 '(#:tests? #f ; tests require internet connection
3136 #:configure-flags
3137 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3138 (native-inputs
3139 `(("glib-mkenums" ,glib "bin")
3140 ("gobject-introspection" ,gobject-introspection)
3141 ("pkg-config" ,pkg-config)))
3142 (propagated-inputs
3143 ;; rest-0.7.pc refers to all these.
3144 `(("glib" ,glib)
3145 ("libsoup" ,libsoup)
3146 ("libxml2" ,libxml2)))
24d6cc1d 3147 (home-page "https://www.gtk.org/")
4510b2da
SB
3148 (synopsis "RESTful web api query library")
3149 (description
3150 "This library was designed to make it easier to access web services that
3151claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3152libxml to ease remote use of the RESTful API.")
3153 (license license:lgpl2.1+)))
3154
6e1bb642
SB
3155(define-public libsoup
3156 (package
3157 (name "libsoup")
9ae87870 3158 (version "2.68.3")
6e1bb642
SB
3159 (source (origin
3160 (method url-fetch)
3161 (uri (string-append "mirror://gnome/sources/libsoup/"
3162 (version-major+minor version) "/"
c1b79b36 3163 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3164 (sha256
3165 (base32
9ae87870 3166 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
eccaa8bf 3167 (build-system meson-build-system)
6e1bb642
SB
3168 (outputs '("out" "doc"))
3169 (arguments
2deb146f 3170 `(#:modules ((guix build utils)
eccaa8bf 3171 (guix build meson-build-system)
2deb146f
LC
3172 (ice-9 popen))
3173
f8026a79 3174 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3175 #:phases
3176 (modify-phases %standard-phases
eccaa8bf 3177 (add-after 'unpack 'adjust-tests
26c228f9 3178 (lambda _
eccaa8bf
MB
3179 ;; This test fails due to missing /etc/nsswitch.conf
3180 ;; in the build environment.
26c228f9
LC
3181 (substitute* "tests/socket-test.c"
3182 ((".*/sockets/unconnected.*") ""))
2deb146f 3183
f8026a79
MB
3184 ;; These fail because "subdomain.localhost" does not resolve in
3185 ;; the build environment.
3186 (substitute* "tests/hsts-test.c"
3187 ((".*/hsts/basic.*") "")
3188 ((".*/hsts/subdomains.*") "")
3189 ((".*/hsts/superdomain.*") "")
3190 ((".*/hsts/utf8-address.*") ""))
3191 (substitute* "tests/hsts-db-test.c"
3192 ((".*/hsts-db/subdomains.*") ""))
3193
2deb146f
LC
3194 ;; Generate a self-signed certificate that has "localhost" as its
3195 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3196 ;; 3.5.12, tests such as "ssl-tests" fail:
3197 ;;
3198 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3199 ;;
3200 ;; 'certtool' is interactive so we have to pipe it the answers.
3201 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3202 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3203 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3204 (for-each (lambda (line)
3205 (display line pipe)
3206 (newline pipe))
3207 '("" ;Common name
3208 "" ;UID
3209 "Guix" ;Organizational unit name
3210 "GNU" ;Organization name
3211 "" ;Locality name
3212 "" ;State or province
3213 "" ;Country
3214 "" ;subject's domain component (DC)
3215 "" ;E-mail
3216 "" ;serial number
3217 "-1" ;expiration time
3218 "N" ;belong to authority?
3219 "N" ;web client certificate?
3220 "N" ;IPsec IKE?
3221 "Y" ;web server certificate?
3222 "localhost" ;dnsName of subject
3223 "" ;dnsName of subject (end)
3224 "" ;URI of subject
3225 "127.0.0.1" ;IP address of subject
3226 "" ;signing?
06f5bc4e
MB
3227 "" ;encryption (RSA)?
3228 "" ;data encryption?
2deb146f
LC
3229 "" ;sign OCSP requests?
3230 "" ;sign code?
3231 "" ;time stamping?
3232 "" ;email protection?
3233 "" ;URI of the CRL distribution point
3234 "y" ;above info OK?
3235 ))
3236 (close-pipe pipe))
26c228f9 3237 #t))
eccaa8bf
MB
3238 (add-after 'install 'move-doc
3239 (lambda* (#:key outputs #:allow-other-keys)
3240 (let ((out (assoc-ref outputs "out"))
3241 (doc (assoc-ref outputs "doc")))
3242 (mkdir-p (string-append doc "/share"))
3243 (copy-recursively (string-append out "/share/gtk-doc")
3244 (string-append doc "/share/gtk-doc"))
3245 (delete-file-recursively (string-append out "/share/gtk-doc"))
3246 #t))))))
6e1bb642 3247 (native-inputs
26c228f9 3248 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3249 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3250 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3251 ("intltool" ,intltool)
3252 ("pkg-config" ,pkg-config)
3253 ("python" ,python-wrapper)
fd730590 3254 ("vala" ,vala)
6e1bb642
SB
3255 ;; These are needed for the tests.
3256 ;; FIXME: Add PHP once available.
3257 ("curl" ,curl)
2deb146f 3258 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3259 ("httpd" ,httpd)))
3260 (propagated-inputs
3261 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3262 `(("brotli" ,google-brotli)
3263 ("glib" ,glib)
249846bf 3264 ("libpsl" ,libpsl)
eccaa8bf 3265 ("libxml2" ,libxml2)
f8026a79
MB
3266 ("sqlite" ,sqlite)
3267 ("zlib" ,zlib)))
eccaa8bf
MB
3268 (inputs
3269 `(("glib-networking" ,glib-networking)
3270 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3271 (home-page "https://live.gnome.org/LibSoup/")
3272 (synopsis "GLib-based HTTP Library")
3273 (description
3274 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3275and the GLib main loop, to integrate well with GNOME applications.")
3276 (license license:lgpl2.0+)))
3277
bba229a3
SB
3278(define-public libsecret
3279 (package
3280 (name "libsecret")
b243d2f7 3281 (version "0.19.1")
bba229a3
SB
3282 (source (origin
3283 (method url-fetch)
3284 (uri (string-append
896dcbc7
EF
3285 "mirror://gnome/sources/libsecret/"
3286 (version-major+minor version) "/"
0ada4e29 3287 "libsecret-" version ".tar.xz"))
bba229a3
SB
3288 (sha256
3289 (base32
b243d2f7 3290 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
bba229a3
SB
3291 (build-system gnu-build-system)
3292 (outputs '("out" "doc"))
3293 (arguments
3294 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3295 #:configure-flags
3296 (list (string-append "--with-html-dir="
3297 (assoc-ref %outputs "doc")
3298 "/share/gtk-doc/html"))))
3299 (native-inputs
c06ef010
MB
3300 `(("gettext" ,gettext-minimal)
3301 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3302 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3303 ("pkg-config" ,pkg-config)
3304 ("vala" ,vala)
3305 ("xsltproc" ,libxslt)))
3306 ;; These are needed for the tests.
3307 ;; FIXME: Add gjs once available.
3308 ;("dbus" ,dbus)
3309 ;("python2" ,python-2)
3310 ;("python2-dbus" ,python2-dbus)
3311 ;("python2-pygobject" ,python2-pygobject)
3312 ;("python2-pygobject-2" ,python2-pygobject-2)))
3313 (propagated-inputs
3314 `(("glib" ,glib))) ; required by libsecret-1.pc
3315 (inputs
3316 `(("docbook-xsl" ,docbook-xsl)
3317 ("libgcrypt" ,libgcrypt)
3318 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3319 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3320 (synopsis "GObject bindings for \"Secret Service\" API")
3321 (description
3322 "Libsecret is a GObject based library for storing and retrieving passwords
3323and other secrets. It communicates with the \"Secret Service\" using DBus.")
3324 (license license:lgpl2.1+)))
3325
b6821ee0 3326(define-public five-or-more
3327 (package
3328 (name "five-or-more")
d9795e93 3329 (version "3.32.0")
b6821ee0 3330 (source
3331 (origin
3332 (method url-fetch)
3333 (uri (string-append "mirror://gnome/sources/" name "/"
3334 (version-major+minor version) "/"
3335 name "-" version ".tar.xz"))
3336 (sha256
3337 (base32
d9795e93
KK
3338 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3339 (build-system meson-build-system)
3340 (arguments
3341 '(#:glib-or-gtk? #t
3342 #:phases
3343 (modify-phases %standard-phases
3344 (add-after 'unpack 'skip-gtk-update-icon-cache
3345 (lambda _
3346 (substitute* "meson_post_install.py"
3347 (("gtk-update-icon-cache") (which "true")))
3348 #t)))))
b6821ee0 3349 (native-inputs
3350 `(("pkg-config" ,pkg-config)
d9795e93 3351 ("appstream-glib" ,appstream-glib)
b6821ee0 3352 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3353 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3354 ("intltool" ,intltool)
3355 ("itstool" ,itstool)
d9795e93 3356 ("vala" ,vala)
b6821ee0 3357 ("xmllint" ,libxml2)))
3358 (inputs
3359 `(("gtk+" ,gtk+)
d9795e93 3360 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3361 ("librsvg" ,librsvg)))
3362 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3363 (synopsis "Logic puzzle game")
3364 (description "Five or More is a game where you try to align
3365 five or more objects of the same color and shape causing them to disappear.
3366 On every turn more objects will appear, until the board is full.
3367 Try to last as long as possible.")
3368 (license license:gpl2+)))
3369
a31a6d22
SB
3370(define-public gnome-mines
3371 (package
3372 (name "gnome-mines")
2d817e41 3373 (version "3.32.2")
a31a6d22
SB
3374 (source
3375 (origin
3376 (method url-fetch)
3377 (uri (string-append "mirror://gnome/sources/" name "/"
3378 (version-major+minor version) "/"
3379 name "-" version ".tar.xz"))
3380 (sha256
3381 (base32
2d817e41 3382 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3383 (build-system meson-build-system)
a31a6d22 3384 (arguments
2d817e41
KK
3385 '(#:glib-or-gtk? #t
3386 #:phases
a31a6d22 3387 (modify-phases %standard-phases
2d817e41
KK
3388 (add-after 'unpack 'skip-gtk-update-icon-cache
3389 (lambda _
3390 (substitute* "build-aux/meson_post_install.py"
3391 (("gtk-update-icon-cache") (which "true")))
3392 #t)))))
a31a6d22 3393 (native-inputs
8c0fab36
RW
3394 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3395 ("pkg-config" ,pkg-config)
a31a6d22
SB
3396 ("desktop-file-utils" ,desktop-file-utils)
3397 ("intltool" ,intltool)
bcb354ad 3398 ("itstool" ,itstool)
8c0fab36
RW
3399 ("vala" ,vala)
3400 ("yelp" ,yelp)
3401 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3402 (inputs
3403 `(("gtk+" ,gtk+)
73992962 3404 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3405 ("librsvg" ,librsvg)))
3406 (home-page "https://wiki.gnome.org/Apps/Mines")
3407 (synopsis "Minesweeper game")
3408 (description
3409 "Mines (previously gnomine) is a puzzle game where you locate mines
3410floating in an ocean using only your brain and a little bit of luck.")
3411 (license license:gpl2+)))
88f70665 3412
dfc407f3
KY
3413(define-public gnome-sudoku
3414 (package
3415 (name "gnome-sudoku")
7dc728c4 3416 (version "3.32.0")
dfc407f3
KY
3417 (source
3418 (origin
3419 (method url-fetch)
3420 (uri (string-append "mirror://gnome/sources/" name "/"
3421 (version-major+minor version) "/"
3422 name "-" version ".tar.xz"))
3423 (sha256
3424 (base32
7dc728c4
KK
3425 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3426 (build-system meson-build-system)
3427 (arguments
3428 '(#:glib-or-gtk? #t
3429 #:phases
3430 (modify-phases %standard-phases
3431 (add-after 'unpack 'skip-gtk-update-icon-cache
3432 (lambda _
3433 (substitute* "build-aux/post_install.py"
3434 (("gtk-update-icon-cache") (which "true")))
3435 #t)))))
dfc407f3
KY
3436 (native-inputs
3437 `(("pkg-config" ,pkg-config)
3438 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3439 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3440 ("intltool" ,intltool)
3441 ("itstool" ,itstool)
7dc728c4 3442 ("vala" ,vala)
dfc407f3
KY
3443 ("xmllint" ,libxml2)))
3444 (inputs
3445 `(("gtk+" ,gtk+)
3446 ("json-glib" ,json-glib)
3447 ("libgee" ,libgee)
3448 ("librsvg" ,librsvg)
3449 ("qqwing" ,qqwing)))
3450 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3451 (synopsis "Japanese logic game")
3452 (description
3453 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3454GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3455possible while still providing features that make playing difficult Sudoku
3456more fun.")
3457 (license license:gpl2+)))
3458
88f70665
AW
3459(define-public gnome-terminal
3460 (package
3461 (name "gnome-terminal")
7dee3942 3462 (version "3.32.2")
88f70665
AW
3463 (source
3464 (origin
3465 (method url-fetch)
3466 (uri (string-append "mirror://gnome/sources/" name "/"
3467 (version-major+minor version) "/"
3468 name "-" version ".tar.xz"))
3469 (sha256
3470 (base32
7dee3942 3471 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3472 (build-system glib-or-gtk-build-system)
3473 (arguments
3474 '(#:configure-flags
3475 (list "--disable-migration" "--disable-search-provider"
3476 "--without-nautilus-extension")
3477 #:phases
3478 (modify-phases %standard-phases
3a4de6b2 3479 (add-before 'configure 'patch-/bin/true
88f70665
AW
3480 (lambda _
3481 (substitute* "configure"
3482 (("/bin/true") (which "true"))))))))
3483 (native-inputs
3484 `(("pkg-config" ,pkg-config)
3485 ("desktop-file-utils" ,desktop-file-utils)
3486 ("intltool" ,intltool)
bcb354ad
SB
3487 ("itstool" ,itstool)
3488 ("xmllint" ,libxml2)))
68702167
MW
3489 (propagated-inputs
3490 `(("dconf" ,dconf)))
88f70665
AW
3491 (inputs
3492 `(("gtk+" ,gtk+)
3493 ("vte" ,vte)
3494 ("gnutls" ,gnutls)
88f70665
AW
3495 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3496 ("util-linux" ,util-linux)
3497 ("vala" ,vala)))
3498 (home-page "https://wiki.gnome.org/Apps/Terminal")
3499 (synopsis "Terminal emulator")
3500 (description
3501 "GNOME Terminal is a terminal emulator application for accessing a
3502UNIX shell environment which can be used to run programs available on
3503your system.
3504
3505It supports several profiles, multiple tabs and implements several
3506keyboard shortcuts.")
3507 (license license:gpl3+)))
75016d07
AW
3508
3509(define-public colord
3510 (package
3511 (name "colord")
f98be942 3512 (version "1.4.4")
75016d07
AW
3513 (source
3514 (origin
3515 (method url-fetch)
5cc3096c 3516 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3517 "colord-" version ".tar.xz"))
75016d07 3518 (sha256
f98be942 3519 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3520 (build-system meson-build-system)
75016d07 3521 (arguments
a68544a8
RW
3522 '(;; FIXME: One test fails:
3523 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3524 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3525 ;; application/x-zerosize
75016d07 3526 #:tests? #f
a68544a8
RW
3527 #:glib-or-gtk? #t
3528 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 3529 ;; No dep on systemd.
a68544a8 3530 "-Dsystemd=false"
75016d07
AW
3531 ;; Wants to install to global completion dir;
3532 ;; punt.
a68544a8 3533 "-Dbash_completion=false"
a68544a8
RW
3534 "-Ddaemon_user=colord"
3535 "-Dsane=true"
dac26e22 3536 "-Dvapi=true"
6f20e2dc 3537 ;; Requires spotread.
a68544a8 3538 "-Dargyllcms_sensor=false"
6f20e2dc 3539 ;; TODO: Requires docbook2x.
a68544a8 3540 "-Dman=false")
75016d07
AW
3541 #:phases
3542 (modify-phases %standard-phases
a68544a8
RW
3543 (add-before 'configure 'patch-build-system
3544 (lambda* (#:key outputs #:allow-other-keys)
3545 (substitute* "rules/meson.build"
3546 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3547 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
3548 #t))
3549 (add-before 'configure 'set-sqlite3-file-name
3550 (lambda* (#:key inputs #:allow-other-keys)
3551 ;; "colormgr dump" works by invoking the "sqlite3" command.
3552 ;; Record its absolute file name.
3553 (let ((sqlite (assoc-ref inputs "sqlite")))
3554 (substitute* "client/cd-util.c"
3555 (("\"sqlite3\"")
3556 (string-append "\"" sqlite "/bin/sqlite3\"")))
3557 #t))))))
75016d07 3558 (native-inputs
6f20e2dc 3559 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 3560 ("gettext" ,gettext-minimal)
75016d07 3561 ("gobject-introspection" ,gobject-introspection)
a68544a8 3562 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
3563 ("pkg-config" ,pkg-config)
3564 ("vala" ,vala)))
65cb2d61
SB
3565 (propagated-inputs
3566 ;; colord.pc refers to all these.
3567 `(("glib" ,glib)
6f20e2dc
TGR
3568 ("lcms" ,lcms)
3569 ("udev" ,eudev)))
75016d07 3570 (inputs
65cb2d61 3571 `(("dbus-glib" ,dbus-glib)
a68544a8 3572 ("gusb" ,gusb)
80c7dd1a 3573 ("libgudev" ,libgudev)
75016d07 3574 ("libusb" ,libusb)
75016d07 3575 ("polkit" ,polkit)
a68544a8 3576 ("python" ,python-wrapper)
6f20e2dc 3577 ("sqlite" ,sqlite)
4c928743 3578 ("sane-backends" ,sane-backends)))
57e7d748 3579 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
3580 (synopsis "Color management service")
3581 (description "Colord is a system service that makes it easy to manage,
3582install and generate color profiles to accurately color manage input and
3583output devices.")
3584 (license license:gpl2+)))
7b2abd00
AW
3585
3586(define-public geoclue
3587 (package
3588 (name "geoclue")
b433c7b3 3589 (version "2.4.8")
7b2abd00
AW
3590 (source
3591 (origin
3592 (method url-fetch)
5cc3096c 3593 (uri (string-append "https://www.freedesktop.org/software/" name
7b2abd00
AW
3594 "/releases/" (version-major+minor version) "/"
3595 name "-" version ".tar.xz"))
3596 (sha256
3597 (base32
b433c7b3 3598 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
fc1adab1 3599 (patches (search-patches "geoclue-config.patch"))))
7b2abd00
AW
3600 (build-system glib-or-gtk-build-system)
3601 (arguments
3602 '(;; The tests want to run the system bus.
3603 #:tests? #f
3604 #:configure-flags (list ;; Disable bits requiring ModemManager.
3605 "--disable-3g-source"
3606 "--disable-cdma-source"
3607 "--disable-modem-gps-source"
3608 "--with-dbus-service-user=geoclue")
3609 #:phases
3610 (modify-phases %standard-phases
3a4de6b2 3611 (add-before 'configure 'patch-/bin/true
7b2abd00
AW
3612 (lambda _
3613 (substitute* "configure"
e3eb53e7
MW
3614 (("/bin/true") (which "true")))
3615 #t)))))
7b2abd00
AW
3616 (native-inputs
3617 `(("pkg-config" ,pkg-config)
758798a9 3618 ("gobject-introspection" ,gobject-introspection)
7b2abd00
AW
3619 ("intltool" ,intltool)))
3620 (inputs
54e911bc
SB
3621 `(("avahi" ,avahi)
3622 ("glib" ,glib)
7b2abd00
AW
3623 ("json-glib" ,json-glib)
3624 ("libsoup" ,libsoup)))
99adfd7d 3625 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
7b2abd00
AW
3626 (synopsis "Geolocation service")
3627 (description "Geoclue is a D-Bus service that provides location
3628information. The primary goal of the Geoclue project is to make creating
3629location-aware applications as simple as possible, while the secondary goal is
3630to ensure that no application can access location information without explicit
e881752c 3631permission from user.")
7b2abd00 3632 (license license:gpl2+)))
2bfe7437
AW
3633
3634(define-public geocode-glib
3635 (package
3636 (name "geocode-glib")
65de725f 3637 (version "3.26.1")
2bfe7437
AW
3638 (source (origin
3639 (method url-fetch)
3640 (uri (string-append "mirror://gnome/sources/geocode-glib/"
3641 (version-major+minor version) "/"
d485cdc0 3642 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
3643 (sha256
3644 (base32
65de725f 3645 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 3646 (build-system meson-build-system)
2bfe7437 3647 (arguments
a7dd0c02
RW
3648 `(#:phases
3649 (modify-phases %standard-phases
3650 ;; The tests require a bunch of locales.
3651 (add-before 'check 'set-locales
3652 (lambda* (#:key inputs #:allow-other-keys)
3653 (setenv "GUIX_LOCPATH"
3654 (string-append (assoc-ref inputs "glibc-locales")
3655 "/lib/locale"))
3656 #t)))))
2bfe7437
AW
3657 (native-inputs
3658 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
3659 ("glibc-locales" ,glibc-locales) ; for tests
3660 ("gettext" ,gettext-minimal)
2bfe7437 3661 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 3662 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
3663 ("pkg-config" ,pkg-config)
3664 ("json-glib" ,json-glib)))
3665 (propagated-inputs
3666 ;; geocode-glib-1.0.pc refers to GIO.
3667 `(("glib" ,glib)))
3668 (inputs
3669 `(("libsoup" ,libsoup)))
3670 (home-page "https://github.com/GNOME/geocode-glib/")
3671 (synopsis "Geocoding and reverse-geocoding library")
3672 (description
3673 "geocode-glib is a convenience library for geocoding (finding longitude,
3674and latitude from an address) and reverse geocoding (finding an address from
3675coordinates) using the Nominatim service. geocode-glib caches requests for
3676faster results and to avoid unnecessary server load.")
3677 (license license:lgpl2.0+)))
a1d5bb0e
AW
3678
3679(define-public upower
3680 (package
3681 (name "upower")
4088d809 3682 (version "0.99.10")
a1d5bb0e
AW
3683 (source (origin
3684 (method url-fetch)
9ec54965 3685 (uri (string-append "https://gitlab.freedesktop.org/upower/upower/"
4088d809 3686 "uploads/c438511024b9bc5a904f8775cfc8e4c4/"
9ec54965 3687 "upower-" version ".tar.xz"))
a1d5bb0e
AW
3688 (sha256
3689 (base32
4088d809 3690 "17d2bclv5fgma2y3g8bsn9pdvspn1zrzismzdnzfivc0f2wm28k4"))
fc1adab1 3691 (patches (search-patches "upower-builddir.patch"))))
a1d5bb0e
AW
3692 (build-system glib-or-gtk-build-system)
3693 (arguments
3694 '( ;; The tests want to contact the system bus, which can't be done in the
3695 ;; build environment. The integration test can run, but the last of
3696 ;; the up-self-tests doesn't. Disable tests for now.
3697 #:tests? #f
3698 #:configure-flags (list "--localstatedir=/var"
3699 (string-append "--with-udevrulesdir="
3700 (assoc-ref %outputs "out")
9ec54965 3701 "/lib/udev/rules.d"))))
a1d5bb0e 3702 (native-inputs
ebeabe2d
SB
3703 `(("gobject-introspection" ,gobject-introspection)
3704 ("pkg-config" ,pkg-config)
a1d5bb0e 3705 ("intltool" ,intltool)
55409295
LC
3706 ("python" ,python)
3707
3708 ;; For man pages.
3709 ("libxslt" ,libxslt) ;for 'xsltproc'
3710 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
3711 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 3712 (inputs
ea226291
SB
3713 `(("dbus-glib" ,dbus-glib)
3714 ("libgudev" ,libgudev)
a1d5bb0e 3715 ("libusb" ,libusb)))
d7a503fc
MB
3716 (propagated-inputs
3717 ;; In Requires of upower-glib.pc.
3718 `(("glib" ,glib)))
57e7d748 3719 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
3720 (synopsis "System daemon for managing power devices")
3721 (description
3722 "UPower is an abstraction for enumerating power devices,
3723listening to device events and querying history and statistics. Any
3724application or service on the system can access the org.freedesktop.UPower
3725service via the system message bus.")
3726 (license license:gpl2+)))
6a180f6f
AW
3727
3728(define-public libgweather
3729 (package
3730 (name "libgweather")
794ce8ea 3731 (version "3.28.3")
6a180f6f
AW
3732 (source (origin
3733 (method url-fetch)
3734 (uri (string-append "mirror://gnome/sources/" name "/"
3735 (version-major+minor version) "/"
3736 name "-" version ".tar.xz"))
3737 (sha256
3738 (base32
794ce8ea 3739 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 3740 (build-system meson-build-system)
6a180f6f 3741 (arguments
cf6cbc34
RW
3742 `(#:tests? #f ; one of two tests requires network access
3743 #:configure-flags
3744 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 3745 (assoc-ref %build-inputs "tzdata")
cf6cbc34 3746 "/share/zoneinfo"))))
6a180f6f
AW
3747 (native-inputs
3748 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 3749 ("gobject-introspection" ,gobject-introspection)
6a180f6f 3750 ("pkg-config" ,pkg-config)
1d3fcf94 3751 ("vala" ,vala)
6a180f6f
AW
3752 ("intltool" ,intltool)))
3753 (propagated-inputs
3754 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
3755 ;; libsoup.
3756 `(("gtk+" ,gtk+)
3757 ("gdk-pixbuf" ,gdk-pixbuf)
3758 ("libxml2" ,libxml2)
cf6cbc34 3759 ("libsoup" ,libsoup)
6a180f6f 3760 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
3761 (inputs
3762 `(("tzdata" ,tzdata)))
6a180f6f
AW
3763 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
3764 (synopsis "Location, time zone, and weather library for GNOME")
3765 (description
3766 "libgweather is a library to access weather information from online
3767services for numerous locations.")
3768 (license license:gpl2+)))
23a22af6
AW
3769
3770(define-public gnome-settings-daemon
3771 (package
3772 (name "gnome-settings-daemon")
4be0719f 3773 (version "3.32.1")
23a22af6
AW
3774 (source
3775 (origin
3776 (method url-fetch)
3777 (uri (string-append "mirror://gnome/sources/" name "/"
3778 (version-major+minor version) "/"
3779 name "-" version ".tar.xz"))
3780 (sha256
3781 (base32
4be0719f 3782 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 3783 (build-system meson-build-system)
23a22af6 3784 (arguments
e644f9fa
RW
3785 `(#:glib-or-gtk? #t
3786 #:configure-flags
3787 (list (string-append "-Dudev_dir="
3788 (assoc-ref %outputs "out")
4d0e085b
RW
3789 "/lib/udev/rules.d/")
3790 ;; Otherwise, the RUNPATH will lack the final path component.
3791 (string-append "-Dc_link_args=-Wl,-rpath="
3792 (assoc-ref %outputs "out")
3793 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 3794 ;; Color management test can't reach the colord system service.
23a22af6
AW
3795 #:tests? #f))
3796 (native-inputs
e644f9fa
RW
3797 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3798 ("pkg-config" ,pkg-config)
23a22af6
AW
3799 ("intltool" ,intltool)
3800 ("xsltproc" ,libxslt)
3801 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3802 ("docbook-xml" ,docbook-xml-4.2)
3803 ("docbook-xsl" ,docbook-xsl)))
3804 (inputs
e644f9fa
RW
3805 `(("alsa-lib" ,alsa-lib)
3806 ("colord" ,colord)
ea226291 3807 ("libgudev" ,libgudev)
23a22af6
AW
3808 ("upower" ,upower)
3809 ("polkit" ,polkit)
3810 ("pulseaudio" ,pulseaudio)
3811 ("libcanberra" ,libcanberra)
3812 ("libx11" ,libx11)
3813 ("libxtst" ,libxtst)
3814 ("lcms" ,lcms)
3815 ("libnotify" ,libnotify)
3816 ("geoclue" ,geoclue)
3817 ("geocode-glib" ,geocode-glib)
3818 ("libgweather" ,libgweather)
3819 ("gnome-desktop" ,gnome-desktop)
3820 ("nss" ,nss)
3821 ("cups" ,cups)
ec2b1921
AW
3822 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3823 ("libwacom" ,libwacom)
3824 ("librsvg" ,librsvg)
eee7878f 3825 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 3826 ("wayland" ,wayland)
eee7878f 3827 ("network-manager" ,network-manager)))
f032d0be 3828 (home-page "https://www.gnome.org")
23a22af6
AW
3829 (synopsis "GNOME settings daemon")
3830 (description
3831 "This package contains the daemon responsible for setting the various
3832parameters of a GNOME session and the applications that run under it. It
3833handles settings such keyboard layout, shortcuts, and accessibility, clipboard
3834settings, themes, mouse settings, and startup of other daemons.")
3835 (license license:gpl2+)))
1e7464a9
DH
3836
3837(define-public totem-pl-parser
3838 (package
3839 (name "totem-pl-parser")
77425f04 3840 (version "3.26.3")
1e7464a9
DH
3841 (source (origin
3842 (method url-fetch)
e980cbe9
MW
3843 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
3844 (version-major+minor version) "/"
1e7464a9
DH
3845 "totem-pl-parser-" version ".tar.xz"))
3846 (sha256
3847 (base32
77425f04 3848 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 3849 (build-system meson-build-system)
1e7464a9
DH
3850 (arguments
3851 ;; FIXME: Tests require gvfs.
3852 `(#:tests? #f))
3853 (native-inputs
3854 `(("intltool" ,intltool)
3855 ("glib" ,glib "bin")
4d6d8281 3856 ("gobject-introspection" ,gobject-introspection)
1e7464a9 3857 ("pkg-config" ,pkg-config)))
22a6ad6a 3858 (propagated-inputs
1e7464a9
DH
3859 `(("glib" ,glib)
3860 ("gmime" ,gmime)
1e9b19dd
RW
3861 ("libarchive" ,libarchive)
3862 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
3863 ("libxml2" ,libxml2)))
3864 (inputs
0a6e9e13 3865 `(("libsoup" ,libsoup)))
1e7464a9
DH
3866 (home-page "https://projects.gnome.org/totem")
3867 (synopsis "Library to parse and save media playlists for GNOME")
3868 (description "Totem-pl-parser is a GObjects-based library to parse and save
3869playlists in a variety of formats.")
3870 (license license:lgpl2.0+)))
3871
6b888eff
SB
3872(define-public aisleriot
3873 (package
3874 (name "aisleriot")
36ed9b46 3875 (version "3.22.9")
6b888eff
SB
3876 (source (origin
3877 (method url-fetch)
e43f622a 3878 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 3879 (version-major+minor version) "/"
e43f622a 3880 "aisleriot-" version ".tar.xz"))
6b888eff
SB
3881 (sha256
3882 (base32
36ed9b46 3883 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
3884 (build-system glib-or-gtk-build-system)
3885 (arguments
3886 '(#:configure-flags
3887 '("--with-platform=gtk-only"
3888 "--with-card-theme-formats=svg")))
3889 (native-inputs
3890 `(("desktop-file-utils" ,desktop-file-utils)
3891 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
3892 ("intltool" ,intltool)
3893 ("itstool" ,itstool)
3894 ("pkg-config" ,pkg-config)
3895 ("xmllint" ,libxml2)))
3896 (inputs
3897 `(("gtk+" ,gtk+)
226e57d6 3898 ("guile" ,guile-2.2)
6b888eff
SB
3899 ("libcanberra" ,libcanberra)
3900 ("librsvg" ,librsvg)))
3901 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
3902 (synopsis "Solitaire card games")
3903 (description
3904 "Aisleriot (also known as Solitaire or sol) is a collection of card games
3905which are easy to play with the aid of a mouse.")
3906 (license license:gpl3+)))
4a79e256 3907
f828d05b
KK
3908(define-public amtk
3909 (package
3910 (name "amtk")
09c4e43f 3911 (version "5.0.1")
f828d05b
KK
3912 (source (origin
3913 (method url-fetch)
bf92ba6b 3914 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 3915 (version-major+minor version) "/"
bf92ba6b 3916 "amtk-" version ".tar.xz"))
f828d05b
KK
3917 (sha256
3918 (base32
09c4e43f 3919 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
f828d05b
KK
3920 (build-system gnu-build-system)
3921 (arguments
3922 '(#:configure-flags '("--enable-gtk-doc")))
3923 (native-inputs
3924 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 3925 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
3926 ("gtk-doc" ,gtk-doc)
3927 ("pkg-config" ,pkg-config)))
3928 (inputs
3929 `(("glib" ,glib)
3930 ("gtk+" ,gtk+)))
3931 (home-page "https://wiki.gnome.org/Projects/Amtk")
3932 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
3933 (description
3934 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
3935It is a basic GtkUIManager replacement based on GAction. It is suitable for
3936both a traditional UI or a modern UI with a GtkHeaderBar.")
3937 (license license:lgpl2.1+)))
3938
4a79e256
SB
3939(define-public devhelp
3940 (package
3941 (name "devhelp")
20db7a3d 3942 (version "3.32.0")
4a79e256
SB
3943 (source (origin
3944 (method url-fetch)
3945 (uri (string-append "mirror://gnome/sources/" name "/"
3946 (version-major+minor version) "/"
3947 name "-" version ".tar.xz"))
3948 (sha256
3949 (base32
20db7a3d 3950 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 3951 (build-system meson-build-system)
35407f94 3952 (arguments
20db7a3d
KK
3953 '(#:glib-or-gtk? #t
3954 #:phases
35407f94
EF
3955 (modify-phases %standard-phases
3956 (add-after 'unpack 'skip-gtk-update-icon-cache
3957 ;; Don't create 'icon-theme.cache'.
3958 (lambda _
3959 (substitute* "meson_post_install.py"
3960 (("gtk-update-icon-cache") "true"))
3961 #t)))))
4a79e256
SB
3962 (native-inputs
3963 `(("intltool" ,intltool)
5dd12afc 3964 ("itstool" ,itstool)
11d28bd9
KK
3965 ("gobject-introspection" ,gobject-introspection)
3966 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
3967 ("pkg-config" ,pkg-config)))
3968 (inputs
11d28bd9
KK
3969 `(("amtk" ,amtk)
3970 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
3971 ("webkitgtk" ,webkitgtk)))
3972 (home-page "https://wiki.gnome.org/Apps/Devhelp")
3973 (synopsis "API documentation browser for GNOME")
3974 (description
3975 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
3976natively with GTK-Doc (the API reference system developed for GTK+ and used
3977throughout GNOME for API documentation).")
3978 (license license:gpl2+)))
ba421ab7
MW
3979
3980(define-public cogl
3981 (package
3982 (name "cogl")
54c69ae1 3983 (version "1.22.4")
ba421ab7
MW
3984 (source
3985 (origin
3986 (method url-fetch)
5754f0cf 3987 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 3988 (version-major+minor version) "/"
5754f0cf 3989 "cogl-" version ".tar.xz"))
ba421ab7 3990 (sha256
54c69ae1 3991 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
3992 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
3993 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
3994 (build-system gnu-build-system)
3995 (native-inputs
3996 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3997 ("gobject-introspection" ,gobject-introspection)
3998 ;;("xorg-server" ,xorg-server) ; for the test suite
3999 ("pkg-config" ,pkg-config)))
4000 (propagated-inputs
4001 `(("glib" ,glib)
4002 ("gdk-pixbuf" ,gdk-pixbuf)
4003 ("libx11" ,libx11)
4004 ("libxext" ,libxext)
4005 ("libxfixes" ,libxfixes)
4006 ("libxdamage" ,libxdamage)
4007 ("libxcomposite" ,libxcomposite)
4008 ("libxrandr" ,libxrandr)))
4009 (inputs
4010 `(("mesa" ,mesa)
4011 ("cairo" ,cairo)
4012 ("pango" ,pango)
4013 ("gstreamer" ,gstreamer)
31860852
KK
4014 ("gst-plugins-base" ,gst-plugins-base)
4015 ("wayland" ,wayland)))
ba421ab7
MW
4016 (arguments
4017 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4018 "--enable-wayland-egl-platform"
4019 "--enable-wayland-egl-server"
4020
ba421ab7
MW
4021 ;; Arrange to pass an absolute file name to
4022 ;; dlopen for libGL.so.
4023 (string-append "--with-gl-libname="
4024 (assoc-ref %build-inputs "mesa")
4025 "/lib/libGL.so"))
4026 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4027 ;; _FontTransOpen: Unable to Parse address
4028 ;; ${prefix}/share/fonts/X11/misc/
4029 #:tests? #f
4030 #; #:phases
4031 #;
4032 (modify-phases %standard-phases
4033 (add-before 'check 'start-xorg-server
4034 (lambda* (#:key inputs #:allow-other-keys)
4035 ;; The test suite requires a running X server.
4036 (system (format #f "~a/bin/Xvfb :1 &"
4037 (assoc-ref inputs "xorg-server")))
4038 (setenv "DISPLAY" ":1")
4039 #t)))))
4040 (home-page "http://www.cogl3d.org")
4041 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4042 (description
4043 "Cogl is a small library for using 3D graphics hardware to draw pretty
4044pictures. The API departs from the flat state machine style of OpenGL and is
4045designed to make it easy to write orthogonal components that can render
4046without stepping on each others toes.")
4047 (license (list license:expat ; most of the code
4048 license:bsd-3 ; cogl/cogl-point-in-poly.c
4049 license:sgifreeb2.0 ; cogl-path/tesselator/
4050 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4051
4052(define-public clutter
4053 (package
4054 (name "clutter")
6a88e4ee 4055 (version "1.26.2")
fb182b8a
MW
4056 (source
4057 (origin
4058 (method url-fetch)
4059 (uri (string-append "mirror://gnome/sources/" name "/"
4060 (version-major+minor version) "/"
4061 name "-" version ".tar.xz"))
4062 (sha256
4063 (base32
6a88e4ee 4064 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4065 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4066 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4067 (build-system gnu-build-system)
600233bd
LC
4068 (outputs '("out"
4069 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4070 (native-inputs
4071 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4072 ("gobject-introspection" ,gobject-introspection)
4073 ("pkg-config" ,pkg-config)
4074 ("xsltproc" ,libxslt)))
4075 (propagated-inputs
4076 `(("cogl" ,cogl)
4077 ("cairo" ,cairo)
4078 ("atk" ,atk)
4079 ("gtk+" ,gtk+)
4080 ("json-glib" ,json-glib)
4081 ("glib" ,glib)
4082 ("libxcomposite" ,libxcomposite)
4083 ("libxdamage" ,libxdamage)
4084 ("libxext" ,libxext)
4085 ("xinput" ,xinput)))
4086 (inputs
4087 `(("libxkbcommon" ,libxkbcommon)
4088 ("udev" ,eudev)))
4089 (arguments
600233bd
LC
4090 `(#:configure-flags (list "--enable-x11-backend=yes"
4091
4092 ;; This produces share/doc/{clutter,cally}.
4093 (string-append "--with-html-dir="
4094 (assoc-ref %outputs "doc")
4095 "/share/doc"))
fb182b8a
MW
4096 ;; XXX FIXME: Get test suite working. It would probably fail in the
4097 ;; same way the cogl tests fail, since clutter is based on cogl.
4098 #:tests? #f))
4099 (home-page "http://www.clutter-project.org")
476af713 4100 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4101 (description
476af713 4102 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4103creating fast, mainly 2D single window applications such as media box UIs,
4104presentations, kiosk style applications and so on.")
4105 (license license:lgpl2.0+)))
bf7f17ba
MW
4106
4107(define-public clutter-gtk
4108 (package
4109 (name "clutter-gtk")
5d1a3219 4110 (version "1.8.4")
bf7f17ba
MW
4111 (source
4112 (origin
4113 (method url-fetch)
4114 (uri (string-append "mirror://gnome/sources/" name "/"
4115 (version-major+minor version) "/"
4116 name "-" version ".tar.xz"))
4117 (sha256
4118 (base32
5d1a3219 4119 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4120 (build-system gnu-build-system)
4121 (native-inputs
4122 `(("pkg-config" ,pkg-config)
4123 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4124 (propagated-inputs
4125 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4126 `(("clutter" ,clutter)
4127 ("gtk+" ,gtk+)))
4128 (home-page "http://www.clutter-project.org")
476af713 4129 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4130 (description
476af713 4131 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4132creating fast, mainly 2D single window applications such as media box UIs,
4133presentations, kiosk style applications and so on.")
4134 (license license:lgpl2.0+)))
86d6a893
MW
4135
4136(define-public clutter-gst
4137 (package
4138 (name "clutter-gst")
ba07ac19 4139 (version "3.0.27")
86d6a893
MW
4140 (source
4141 (origin
4142 (method url-fetch)
f010f89b 4143 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4144 (version-major+minor version) "/"
f010f89b 4145 "clutter-gst-" version ".tar.xz"))
86d6a893 4146 (sha256
ba07ac19 4147 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4148 (build-system gnu-build-system)
4149 (native-inputs
ba07ac19 4150 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4151 ("pkg-config" ,pkg-config)
4152 ("gobject-introspection" ,gobject-introspection)))
4153 (inputs
4154 `(("clutter" ,clutter)
4155 ("gstreamer" ,gstreamer)
4156 ("gst-plugins-base" ,gst-plugins-base)))
4157 (home-page "http://www.clutter-project.org")
4158 (synopsis "Integration library for using GStreamer with Clutter")
4159 (description
4160 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4161It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4162implements the ClutterGstPlayer interface using playbin. Clutter is an
4163OpenGL-based interactive canvas library.")
86d6a893 4164 (license license:lgpl2.0+)))
607a04ae 4165
30dc88d9
LC
4166(define-public libchamplain
4167 (package
4168 (name "libchamplain")
5564b2c5 4169 (version "0.12.16")
30dc88d9
LC
4170 (source (origin
4171 (method url-fetch)
4172 (uri (string-append
4173 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4174 version ".tar.xz"))
4175 (sha256
4176 (base32
5564b2c5 4177 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4178 (build-system gnu-build-system)
f7c6833f
LF
4179 (arguments '(#:configure-flags '("--enable-vala")))
4180 (native-inputs
4181 `(("gobject-introspection" ,gobject-introspection)
4182 ("pkg-config" ,pkg-config)
4183 ("vala" ,vala)))
30dc88d9
LC
4184 (propagated-inputs
4185 `(("libsoup" ,libsoup)
4186 ("sqlite" ,sqlite)
4187 ("clutter" ,clutter)
4188 ("clutter-gtk" ,clutter-gtk)
4189 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4190 ("cairo" ,cairo)
4191 ("gtk+3" ,gtk+)
4192 ("glib" ,glib)))
f032d0be 4193 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4194 (synopsis "C library providing a ClutterActor to display maps")
4195 (description
4196 "libchamplain is a C library providing a ClutterActor to display maps.
4197It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4198and Perl bindings are also available. It supports numerous free map sources
4199such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4200 (license license:lgpl2.1+)))
4201
607a04ae
MW
4202(define-public gom
4203 (package
4204 (name "gom")
0510440b 4205 (version "0.3.2")
607a04ae
MW
4206 (source
4207 (origin
4208 (method url-fetch)
6c8a0b6f 4209 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4210 (version-major+minor version) "/"
6c8a0b6f 4211 "gom-" version ".tar.xz"))
607a04ae
MW
4212 (sha256
4213 (base32
0510440b 4214 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4215 (build-system gnu-build-system)
4216 (native-inputs
4217 `(("intltool" ,intltool)
4218 ("pkg-config" ,pkg-config)
4219 ("gobject-introspection" ,gobject-introspection)))
4220 (inputs
4221 `(("glib" ,glib)
4222 ("gdk-pixbuf" ,gdk-pixbuf)
4223 ("sqlite" ,sqlite)))
4224 ;; XXX TODO: Figure out how to run the test suite.
4225 (arguments `(#:tests? #f))
4226 (home-page "https://wiki.gnome.org/Projects/Gom")
4227 (synopsis "Object mapper from GObjects to SQLite")
4228 (description
4229 "Gom provides an object mapper from GObjects to SQLite. It helps you
4230write applications that need to store structured data as well as make complex
4231queries upon that data.")
4232 (license license:lgpl2.1+)))
b7a3cf11 4233
865aacc9 4234(define-public libgnome-games-support
f09520db 4235 (package
865aacc9 4236 (name "libgnome-games-support")
4c6d15cf 4237 (version "1.4.4")
f09520db
SB
4238 (source (origin
4239 (method url-fetch)
2d8dca9d 4240 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4241 (version-major+minor version) "/"
2d8dca9d 4242 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4243 (sha256
4244 (base32
4c6d15cf 4245 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4246 (build-system gnu-build-system)
4247 (arguments
4248 '(#:phases
4249 (modify-phases %standard-phases
4250 (add-before 'check 'pre-check
4251 (lambda _
865aacc9 4252 ;; Tests require a writable HOME.
f09520db
SB
4253 (setenv "HOME" (getcwd))
4254 #t)))))
4255 (native-inputs
4256 `(("intltool" ,intltool)
4257 ("pkg-config" ,pkg-config)
4258 ("vala" ,vala)))
4259 (propagated-inputs
865aacc9 4260 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4261 `(("gtk+" ,gtk+)
4262 ("libgee" ,libgee)))
4263 (home-page "https://www.gnome.org/")
4264 (synopsis "Useful functionality shared among GNOME games")
4265 (description
865aacc9 4266 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4267GNOME Games, but it may be used by others.")
4268 (license license:lgpl3+)))
4269
b7a3cf11
SB
4270(define-public gnome-klotski
4271 (package
4272 (name "gnome-klotski")
c1e419c4 4273 (version "3.32.0")
b7a3cf11
SB
4274 (source (origin
4275 (method url-fetch)
4276 (uri (string-append "mirror://gnome/sources/" name "/"
4277 (version-major+minor version) "/"
4278 name "-" version ".tar.xz"))
4279 (sha256
4280 (base32
c1e419c4
KK
4281 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4282 (build-system meson-build-system)
4283 (arguments
4284 '(#:glib-or-gtk? #t
4285 #:phases
4286 (modify-phases %standard-phases
4287 (add-after 'unpack 'skip-gtk-update-icon-cache
4288 ;; Don't create 'icon-theme.cache'.
4289 (lambda _
4290 (substitute* "build-aux/meson_post_install.py"
4291 (("gtk-update-icon-cache") (which "true")))
4292 #t)))))
b7a3cf11
SB
4293 (native-inputs
4294 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4295 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4296 ("intltool" ,intltool)
4297 ("itstool" ,itstool)
bcb354ad 4298 ("pkg-config" ,pkg-config)
c1e419c4 4299 ("vala" ,vala)
bcb354ad 4300 ("xmllint" ,libxml2)))
b7a3cf11
SB
4301 (inputs
4302 `(("gtk+" ,gtk+)
f4eae76f 4303 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4304 ("librsvg" ,librsvg)))
4305 (home-page "https://wiki.gnome.org/Apps/Klotski")
4306 (synopsis "Sliding block puzzles")
4307 (description
4308 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4309the patterned block to the area bordered by green markers. To do so, you will
4310need to slide other blocks out of the way. Complete each puzzle in as few moves
4311as possible!")
4312 (license license:gpl2+)))
8d4791bf
MW
4313
4314(define-public grilo
4315 (package
4316 (name "grilo")
a865e938 4317 (version "0.3.10")
8d4791bf
MW
4318 (source
4319 (origin
4320 (method url-fetch)
4321 (uri (string-append "mirror://gnome/sources/" name "/"
4322 (version-major+minor version) "/"
4323 name "-" version ".tar.xz"))
4324 (sha256
4325 (base32
a865e938 4326 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4327 (build-system meson-build-system)
8d4791bf
MW
4328 (native-inputs
4329 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4330 ("intltool" ,intltool)
4331 ("pkg-config" ,pkg-config)
d48d4c98
KK
4332 ("gobject-introspection" ,gobject-introspection)
4333 ("gtk-doc" ,gtk-doc)
4334 ("vala" ,vala)))
8d4791bf 4335 (inputs
6d7273a0
KK
4336 `(("cyrus-sasl" ,cyrus-sasl)
4337 ("glib" ,glib)
8d4791bf
MW
4338 ("gtk+" ,gtk+)
4339 ("libxml2" ,libxml2)
6d7273a0 4340 ("liboauth" ,liboauth)
8d4791bf
MW
4341 ("libsoup" ,libsoup)
4342 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4343 (native-search-paths
4344 (list (search-path-specification
4345 (variable "GRL_PLUGIN_PATH")
4346 (files (list (string-append "lib/grilo-"
4347 (version-major+minor version)))))))
d48d4c98 4348 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4349 (synopsis "Framework for discovering and browsing media")
4350 (description
4351 "Grilo is a framework focused on making media discovery and browsing easy
4352for application developers.")
4353 (license license:lgpl2.1+)))
7b212526
MW
4354
4355(define-public grilo-plugins
4356 (package
4357 (name "grilo-plugins")
22753632 4358 (version "0.3.3")
7b212526
MW
4359 (source
4360 (origin
4361 (method url-fetch)
4362 (uri (string-append "mirror://gnome/sources/" name "/"
4363 (version-major+minor version) "/"
4364 name "-" version ".tar.xz"))
4365 (sha256
4366 (base32
22753632 4367 "172vr1y98d2mzlmg5akjn4ibrcj3gh22cwnb3cv9rvvzhj3yhrpy"))))
7b212526
MW
4368 (build-system gnu-build-system)
4369 (native-inputs
4370 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4371 ("intltool" ,intltool)
4372 ("itstool" ,itstool)
4373 ("pkg-config" ,pkg-config)))
4374 (inputs
4375 `(("grilo" ,grilo)
4376 ("glib" ,glib)
4377 ("libxml2" ,libxml2)
4378 ("sqlite" ,sqlite)
4379 ("gom" ,gom)
4380 ;; XXX TODO: Add oauth
4381 ;; XXX TODO: Add goa
4382 ;; XXX TODO: Add gdata (e.g. needed for youtube plugin)
4383 ;; XXX TODO: Add lua (needs help finding it)
4384 ("json-glib" ,json-glib)
4385 ("avahi" ,avahi)
4386 ("gmime" ,gmime)
4387 ("libsoup" ,libsoup)
4388 ("libarchive" ,libarchive)
4389 ("totem-pl-parser" ,totem-pl-parser)))
4390 (arguments
4391 `(#:make-flags (list (string-append "GRL_PLUGINS_DIR="
4392 %output
4393 "/lib/grilo-"
4394 ,(version-major+minor version)))
4395 ;; XXX FIXME: Try to get the test suite working. It appears to require
4396 ;; a working system dbus. Inside the build container, all tests fail
4397 ;; with: "assertion failed: (source)". Outside of the build container,
4398 ;; most tests succeed.
4399 #:tests? #f))
f032d0be 4400 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4401 (synopsis "Plugins for the Grilo media discovery library")
4402 (description
4403 "Grilo is a framework focused on making media discovery and browsing easy
4404for application developers.")
4405 (license license:lgpl2.1+)))
4e3fc547
MW
4406
4407(define-public totem
4408 (package
4409 (name "totem")
995ef5ea 4410 (version "3.32.1")
4e3fc547
MW
4411 (source
4412 (origin
4413 (method url-fetch)
4414 (uri (string-append "mirror://gnome/sources/" name "/"
4415 (version-major+minor version) "/"
4416 name "-" version ".tar.xz"))
4417 (sha256
4418 (base32
995ef5ea 4419 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4420 (build-system meson-build-system)
4e3fc547
MW
4421 (native-inputs
4422 `(("pkg-config" ,pkg-config)
4423 ("desktop-file-utils" ,desktop-file-utils)
4424 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4425 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4426 ("intltool" ,intltool)
bcb354ad 4427 ("itstool" ,itstool)
995ef5ea
KK
4428 ("xmllint" ,libxml2)
4429 ("python-pylint" ,python-pylint)
4430 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4431 (propagated-inputs
4432 `(("dconf" ,dconf)))
4433 (inputs
4434 `(("gtk+" ,gtk+)
4435 ("gdk-pixbuf" ,gdk-pixbuf)
4436 ("atk" ,atk)
4437 ("cairo" ,cairo)
4438 ("dbus-glib" ,dbus-glib)
4439 ("clutter" ,clutter)
4440 ("clutter-gtk" ,clutter-gtk)
4441 ("clutter-gst" ,clutter-gst)
6a6db57f 4442 ("xorgproto" ,xorgproto)
4e3fc547
MW
4443 ("libxxf86vm" ,libxxf86vm)
4444 ("libxtst" ,libxtst)
4445 ("libxrandr" ,libxrandr)
4446 ("libxml2" ,libxml2)
4447 ("libsoup" ,libsoup)
4448 ("libpeas" ,libpeas)
4449 ("librsvg" ,librsvg)
4450 ("lirc" ,lirc)
4451 ("gnome-desktop" ,gnome-desktop)
4452 ("gstreamer" ,gstreamer)
4453 ("gst-plugins-base" ,gst-plugins-base)
4454 ("gst-plugins-good" ,gst-plugins-good)
4455 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4456 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4457 ("python" ,python)
995ef5ea 4458 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4459 ("totem-pl-parser" ,totem-pl-parser)
4460 ("grilo" ,grilo)
4461 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4462 ("vala" ,vala)))
4463 (arguments
7ad81b8b
LC
4464 `(#:glib-or-gtk? #t
4465
4466 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4467 ;; all that.
7ad81b8b 4468 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4469
4470 ;; Do not build .a files for the plugins, it's
4471 ;; completely useless. This saves 2 MiB.
7ad81b8b 4472 "--default-library" "shared")
ec5c24f9 4473 #:phases
4e3fc547 4474 (modify-phases %standard-phases
d51b19ad
EF
4475 (add-after 'unpack 'skip-gtk-update-icon-cache
4476 ;; Don't create 'icon-theme.cache'.
4477 (lambda _
4478 (substitute* "meson_post_install.py"
4479 (("gtk-update-icon-cache") "true"))
4480 #t))
6368eb39
DM
4481 (add-before
4482 'install 'disable-cache-generation
4483 (lambda _
4484 (setenv "DESTDIR" "/")
4485 #t))
995ef5ea
KK
4486 (add-before
4487 'check 'pre-check
4488 (lambda _
4489 ;; Tests require a running X server.
4490 (system "Xvfb :1 &")
4491 (setenv "DISPLAY" ":1")
4492 #t))
4e3fc547
MW
4493 (add-after
4494 'install 'wrap-totem
4495 (lambda* (#:key inputs outputs #:allow-other-keys)
4496 (let ((out (assoc-ref outputs "out"))
4497 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4498 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4499 (wrap-program (string-append out "/bin/totem")
4500 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4501 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4502 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4503 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4504 #t)))))
4505 (home-page "https://wiki.gnome.org/Apps/Videos")
4506 (synopsis "Simple media player for GNOME based on GStreamer")
4507 (description "Totem is a simple yet featureful media player for GNOME
4508which can read a large number of file formats.")
4509 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4510 ;; to be used and distributed together with GStreamer and Totem. See
4511 ;; file://COPYING in the source distribution for details.
4512 (license license:gpl2+)))
f0afb0c8
DH
4513
4514(define-public rhythmbox
4515 (package
4516 (name "rhythmbox")
8190e1ed 4517 (version "3.4.3")
f0afb0c8
DH
4518 (source (origin
4519 (method url-fetch)
4520 (uri (string-append "mirror://gnome/sources/" name "/"
4521 (version-major+minor version) "/"
4522 name "-" version ".tar.xz"))
4523 (sha256
4524 (base32
8190e1ed 4525 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
f0afb0c8
DH
4526 (build-system glib-or-gtk-build-system)
4527 (arguments
4528 `(#:configure-flags
4529 (list "--enable-lirc"
4530 "--enable-python"
4531 "--enable-vala"
4532 "--with-brasero"
4533 "--with-gudev"
4534 "--with-libsecret")
4535 #:phases
4536 (modify-phases %standard-phases
4537 (add-after
4538 'install 'wrap-rhythmbox
4539 (lambda* (#:key inputs outputs #:allow-other-keys)
4540 (let ((out (assoc-ref outputs "out"))
4541 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4542 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
4543 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4544 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
4545 (wrap-program (string-append out "/bin/rhythmbox")
4546 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4547 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
4548 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4549 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
4550 #t)))))
4551 (propagated-inputs
4552 `(("dconf" ,dconf)))
4553 (native-inputs
bcb354ad
SB
4554 `(("itstool" ,itstool)
4555 ("intltool" ,intltool)
f0afb0c8
DH
4556 ("glib" ,glib "bin")
4557 ("gobject-introspection" ,gobject-introspection)
4558 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
4559 ("pkg-config" ,pkg-config)
4560 ("xmllint" ,libxml2)))
f0afb0c8
DH
4561 (inputs
4562 `(("json-glib" ,json-glib)
4563 ("tdb" ,tdb)
4564 ("gnome-desktop" ,gnome-desktop)
4565 ("python" ,python)
4566 ("python-pygobject" ,python2-pygobject)
4567 ("vala" ,vala)
4568 ("gmime" ,gmime)
f0afb0c8
DH
4569 ("adwaita-icon-theme" ,adwaita-icon-theme)
4570 ("grilo" ,grilo)
4571 ("grilo-plugins" ,grilo-plugins)
4572 ("gstreamer" ,gstreamer)
4573 ("gst-plugins-base" ,gst-plugins-base)
4574 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 4575 ("totem-pl-parser" ,totem-pl-parser)
ea226291 4576 ("libgudev" ,libgudev)
f0afb0c8
DH
4577 ;;("libmtp" ,libmtp) FIXME: Not detected
4578 ("libsecret" ,libsecret)
4579 ("libsoup" ,libsoup)
4580 ("libnotify" ,libnotify)
4581 ("libpeas" ,libpeas)
4582 ("lirc" ,lirc)
4583 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4584 ;;("clutter" ,clutter)
4585 ;;("clutter-gtk" ,clutter-gtk)
4586 ;;("clutter-gst" ,clutter-gst)
4587 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4588 ("atk" ,atk)
4589 ("pango" ,pango)
4590 ("gtk+" ,gtk+)
4591 ;; TODO:
4592 ;; * libgpod
4593 ;; * mx
f0afb0c8
DH
4594 ("brasero" ,brasero)))
4595 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4596 (synopsis "Music player for GNOME")
4597 (description "Rhythmbox is a music playing application for GNOME. It
4598supports playlists, song ratings, and any codecs installed through gstreamer.")
4599 (license license:gpl2+)))
f70d8383
DH
4600
4601(define-public eog
4602 (package
4603 (name "eog")
b0f24a82 4604 (version "3.32.2")
f70d8383
DH
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
b0f24a82 4612 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 4613 (build-system meson-build-system)
f70d8383 4614 (arguments
34c44a34
RW
4615 `(#:configure-flags
4616 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
4617 (list (string-append "-Dc_link_args=-Wl,-rpath="
4618 (assoc-ref %outputs "out") "/lib/eog"))
4619 #:phases
f70d8383 4620 (modify-phases %standard-phases
7a034665
EF
4621 (add-after 'unpack 'skip-gtk-update-icon-cache
4622 ;; Don't create 'icon-theme.cache'.
4623 (lambda _
4624 (substitute* "meson_post_install.py"
4625 (("gtk-update-icon-cache") "true"))
4626 #t))
61fb581f
RW
4627 (add-after 'install 'wrap-eog
4628 (lambda* (#:key outputs #:allow-other-keys)
4629 (let ((out (assoc-ref outputs "out"))
4630 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
4631 (wrap-program (string-append out "/bin/eog")
4632 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
4633 #t)))))
f70d8383
DH
4634 (propagated-inputs
4635 `(("dconf" ,dconf)))
4636 (native-inputs
4637 `(("intltool" ,intltool)
b3546174 4638 ("itstool" ,itstool)
f70d8383
DH
4639 ("glib" ,glib "bin")
4640 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
4641 ("pkg-config" ,pkg-config)
4642 ("xmllint" ,libxml2)))
f70d8383
DH
4643 (inputs
4644 `(("gnome-desktop" ,gnome-desktop)
4645 ("shared-mime-info" ,shared-mime-info)
4646 ("adwaita-icon-theme" ,adwaita-icon-theme)
4647 ("exempi" ,exempi)
4648 ("lcms" ,lcms)
4649 ("libexif" ,libexif)
4650 ("libpeas" ,libpeas)
4651 ("libjpeg" ,libjpeg)
4652 ("librsvg" ,librsvg)
4653 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4654 ("gtk+" ,gtk+)))
4655 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
4656 (synopsis "GNOME image viewer")
4657 (description "Eye of GNOME is the GNOME image viewer. It
4658supports image conversion, rotation, and slideshows.")
4659 (license license:gpl2+)))
41af5e7b 4660
0c3f8cb8
LC
4661(define-public eog-plugins
4662 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
4663 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
4664 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
4665 ;; 'XDG_DATA_DIRS' appropriately set.
4666 (package
4667 (name "eog-plugins")
54b74cc6 4668 (version "3.26.4")
0c3f8cb8
LC
4669 (source (origin
4670 (method url-fetch)
f3b88ed2 4671 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 4672 (version-major+minor version) "/"
f3b88ed2 4673 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
4674 (sha256
4675 (base32
54b74cc6 4676 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
4677 (build-system gnu-build-system)
4678 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
4679 (synopsis "Extensions for the Eye of GNOME image viewer")
4680 (native-inputs
4681 `(("pkg-config" ,pkg-config)
4682 ("gettext" ,gnu-gettext)))
4683 (inputs
4684 `(("eog" ,eog)
4685 ("glib" ,glib)
4686 ("gtk+" ,gtk+)
4687 ("libpeas" ,libpeas)
4688 ("libexif" ,libexif)
4689 ("libchamplain" ,libchamplain)))
4690 (description
4691 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
4692notably:
4693
4694@itemize
4695@item @dfn{EXIF Display}, which displays camera (EXIF) information;
4696@item @dfn{Map}, which displays a map of where the picture was taken on the
4697side panel;
4698@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
4699@end itemize\n")
4700
4701 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
4702 ;; long suspicious byte stream that goes to a
4703 ;; ".gresource.eog_postasa_plugin" ELF section.
4704 (license license:gpl2+)))
4705
41af5e7b
SB
4706(define-public libgudev
4707 (package
4708 (name "libgudev")
b78f5118 4709 (version "232")
41af5e7b
SB
4710 (source (origin
4711 (method url-fetch)
4712 (uri (string-append "mirror://gnome/sources/" name "/"
4713 version "/" name "-" version ".tar.xz"))
4714 (sha256
4715 (base32
b78f5118 4716 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 4717 (build-system gnu-build-system)
b78f5118
RW
4718 (arguments
4719 '(#:configure-flags
4720 ;; umockdev depends on libgudev.
4721 (list "--disable-umockdev")))
41af5e7b
SB
4722 (native-inputs
4723 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4724 ("gobject-introspection" ,gobject-introspection)
4725 ("pkg-config" ,pkg-config)))
4726 (propagated-inputs
4727 `(("glib" ,glib))) ; required by gudev-1.0.pc
4728 (inputs
4729 `(("udev" ,eudev)))
4730 (home-page "https://wiki.gnome.org/Projects/libgudev")
4731 (synopsis "GObject bindings for libudev")
4732 (description
4733 "This library provides GObject bindings for libudev. It was originally
4734part of udev-extras, then udev, then systemd. It's now a project on its own.")
4735 (license license:lgpl2.1+)))
3dc8828f
SB
4736
4737(define-public gvfs
4738 (package
4739 (name "gvfs")
12fe4846 4740 (version "1.40.1")
3dc8828f
SB
4741 (source (origin
4742 (method url-fetch)
1d68eb32 4743 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 4744 (version-major+minor version) "/"
1d68eb32 4745 "gvfs-" version ".tar.xz"))
3dc8828f
SB
4746 (sha256
4747 (base32
12fe4846 4748 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 4749 (build-system meson-build-system)
3dc8828f 4750 (arguments
e762d943
RW
4751 '(#:glib-or-gtk? #t
4752 #:configure-flags
4753 (list "-Dsystemduserunitdir=no"
4754 "-Dtmpfilesdir=no"
4755 ;; Otherwise, the RUNPATH will lack the final path component.
4756 (string-append "-Dc_link_args=-Wl,-rpath="
4757 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
4758 (native-inputs
4759 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
4760 ("gettext" ,gettext-minimal)
4761 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
4762 ("pkg-config" ,pkg-config)
4763 ("xsltproc" ,libxslt)))
4764 (inputs
4765 `(("avahi" ,avahi)
4766 ("docbook-xml" ,docbook-xml-4.2)
4767 ("docbook-xsl" ,docbook-xsl)
4768 ("dbus" ,dbus)
e762d943 4769 ("elogind" ,elogind)
3dc8828f 4770 ("fuse" ,fuse)
24a78aa6 4771 ("gcr" ,gcr)
3dc8828f 4772 ("glib" ,glib)
e762d943 4773 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
4774 ("libarchive" ,libarchive)
4775 ("libbluray" ,libbluray)
8852ca24 4776 ("libcap" ,libcap)
3dc8828f
SB
4777 ("libcdio-paranoia" ,libcdio-paranoia)
4778 ("libgcrypt" ,libgcrypt)
e762d943 4779 ("libgdata" ,libgdata)
3dc8828f
SB
4780 ("libgphoto2" ,libgphoto2)
4781 ("libgudev" ,libgudev)
0ab9f949 4782 ("libimobiledevice" ,libimobiledevice)
3dc8828f 4783 ("libmtp" ,libmtp)
e762d943 4784 ("libnfs" ,libnfs)
3dc8828f
SB
4785 ("libsecret" ,libsecret)
4786 ("libsmbclient" ,samba)
4787 ("libsoup" ,libsoup)
4788 ("libxml2" ,libxml2)
e762d943 4789 ("openssh" ,openssh)
8852ca24 4790 ("polkit" ,polkit)
3dc8828f
SB
4791 ("udisks" ,udisks)))
4792 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 4793 (synopsis "Userspace virtual file system for GIO")
3dc8828f 4794 (description
8f65585b 4795 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
4796abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
4797to all applications using the GIO API. It also supports exposing the GVFS
4798mounts to non-GIO applications using FUSE.
4799
4800GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
4801DAV, and others.")
4802 (license license:lgpl2.0+)))
7c88b6bd
AW
4803
4804(define-public gusb
4805 (package
4806 (name "gusb")
536b3274 4807 (version "0.3.0")
7c88b6bd 4808 (source (origin
bbfb36f9
EF
4809 (method git-fetch)
4810 (uri (git-reference
4811 (url "https://github.com/hughsie/libgusb.git")
4812 (commit version)))
4813 (file-name (git-file-name name version))
7c88b6bd
AW
4814 (sha256
4815 (base32
bbfb36f9 4816 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 4817 (build-system meson-build-system)
7c88b6bd 4818 (native-inputs
536b3274 4819 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
4820 ("pkg-config" ,pkg-config)
4821 ("vala" ,vala)
7c88b6bd
AW
4822 ("gtk-doc" ,gtk-doc)))
4823 (propagated-inputs
4824 ;; Both of these are required by gusb.pc.
4825 `(("glib" ,glib)
4826 ("libusb" ,libusb)))
4827 (arguments
536b3274 4828 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 4829 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 4830 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
4831 (description
4832 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
4833asynchronous control, bulk and interrupt transfers with proper cancellation
4834and integration into a mainloop. This makes it easy to integrate low level
4835USB transfers with your high-level application or system daemon.")
4836 (license license:lgpl2.1+)))
0abe1d86
AW
4837
4838(define-public simple-scan
4839 (package
4840 (name "simple-scan")
4afb7dd9 4841 (version "3.34.2")
d9f6d587
TGR
4842 (source
4843 (origin
4844 (method url-fetch)
4845 (uri (string-append "mirror://gnome/sources/simple-scan/"
4846 (version-major+minor version) "/"
4847 "simple-scan-" version ".tar.xz"))
4848 (sha256
4afb7dd9 4849 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
d9f6d587
TGR
4850 (build-system meson-build-system)
4851 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
4852 (arguments
4853 '(#:glib-or-gtk? #t))
0abe1d86
AW
4854 (inputs
4855 `(("gtk" ,gtk+)
4856 ("zlib" ,zlib)
4857 ("cairo" ,cairo)
c501f592 4858 ("colord" ,colord)
0abe1d86
AW
4859 ("gdk-pixbuf" ,gdk-pixbuf)
4860 ("gusb" ,gusb)
4c928743 4861 ("libsane" ,sane-backends)))
0abe1d86 4862 (native-inputs
b94a6ca0 4863 `(("gettext" ,gettext-minimal)
0abe1d86 4864 ("itstool" ,itstool)
c501f592 4865 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 4866 ("pkg-config" ,pkg-config)
bcb354ad
SB
4867 ("vala" ,vala)
4868 ("xmllint" ,libxml2)))
dff0eedb 4869 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 4870 (synopsis "Document and image scanner")
d9f6d587
TGR
4871 (description
4872 "Document Scanner is an easy-to-use application that lets you connect your
4873scanner and quickly capture images and documents in an appropriate format. It
4874supports any scanner for which a suitable SANE driver is available, which is
4875almost all of them.")
0abe1d86 4876 (license license:gpl3+)))
7549f984 4877
ab466d79
RW
4878(define-public eolie
4879 (package
4880 (name "eolie")
fa8ef3ed 4881 (version "0.9.63")
ab466d79
RW
4882 (source (origin
4883 (method url-fetch)
00014781 4884 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 4885 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 4886 "eolie-" version ".tar.xz"))
ab466d79
RW
4887 (sha256
4888 (base32
fa8ef3ed 4889 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 4890 (build-system meson-build-system)
ab466d79 4891 (arguments
00014781
RW
4892 `(#:glib-or-gtk? #t
4893 #:phases
ab466d79 4894 (modify-phases %standard-phases
f0c68100
EF
4895 (add-after 'unpack 'skip-gtk-update-icon-cache
4896 ;; Don't create 'icon-theme.cache'.
4897 (lambda _
4898 (substitute* "meson_post_install.py"
4899 (("gtk-update-icon-cache") "true"))
4900 #t))
ab466d79
RW
4901 (add-after 'wrap 'wrap-more
4902 (lambda* (#:key inputs outputs #:allow-other-keys)
4903 (let* ((out (assoc-ref outputs "out"))
4904 ;; These libraries must be on LD_LIBRARY_PATH.
4905 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
4906 "atk" "gtk+" "gsettings-desktop-schemas"
4907 "gobject-introspection"))
4908 (path (string-join
4909 (map (lambda (lib)
4910 (string-append (assoc-ref inputs lib) "/lib"))
4911 libs)
4912 ":")))
4913 (wrap-program (string-append out "/bin/eolie")
4914 `("LD_LIBRARY_PATH" ":" prefix (,path))
4915 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
4916 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
4917 #t)))))
4918 (native-inputs
f85ca6ed 4919 `(("intltool" ,intltool)
ab466d79 4920 ("itstool" ,itstool)
d95f1041 4921 ("pkg-config" ,pkg-config)
d95f1041 4922 ("python" ,python)
f0c68100 4923 ("glib:bin" ,glib "bin")))
ab466d79
RW
4924 (inputs
4925 `(("gobject-introspection" ,gobject-introspection)
4926 ("glib-networking" ,glib-networking)
4927 ("cairo" ,cairo)
4928 ("gtk+" ,gtk+)
4929 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
4930 ("python" ,python-wrapper)
d72f76df 4931 ("python-dateutil" ,python-dateutil)
00014781 4932 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
4933 ("python-pygobject" ,python-pygobject)
4934 ("python-pycairo" ,python-pycairo)
00014781 4935 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
4936 ("libsecret" ,libsecret)
4937 ("gtkspell3" ,gtkspell3)
4938 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 4939 ("webkitgtk" ,webkitgtk)))
166b2c97 4940 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
4941 (synopsis "Web browser for GNOME")
4942 (description
4943 "Eolie is a new web browser for GNOME. It features Firefox sync support,
4944a secret password store, an adblocker, and a modern UI.")
4945 (license license:gpl3+)))
4946
7549f984
SB
4947(define-public epiphany
4948 (package
4949 (name "epiphany")
60680365 4950 (version "3.32.5")
7549f984
SB
4951 (source (origin
4952 (method url-fetch)
dd3266ec 4953 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 4954 (version-major+minor version) "/"
dd3266ec 4955 "epiphany-" version ".tar.xz"))
7549f984
SB
4956 (sha256
4957 (base32
60680365 4958 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
4959
4960 (build-system meson-build-system)
7549f984
SB
4961 (arguments
4962 ;; FIXME: tests run under Xvfb, but fail with:
4963 ;; /src/bookmarks/ephy-bookmarks/create:
4964 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
4965 ;; subsystem
4966 ;; FAIL
6f48d9db 4967 '(#:tests? #f
e19f9c24 4968 #:glib-or-gtk? #t
bb7ff88f
EF
4969 #:phases
4970 (modify-phases %standard-phases
4971 (add-after 'unpack 'skip-gtk-update-icon-cache
4972 ;; Don't create 'icon-theme.cache'.
4973 (lambda _
4974 (substitute* "post_install.py"
4975 (("gtk-update-icon-cache") "true"))
4976 #t)))
e19f9c24
LF
4977 #:configure-flags
4978 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
4979 (list (string-append "-Dc_link_args=-Wl,-rpath="
4980 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
4981 (propagated-inputs
4982 `(("dconf" ,dconf)))
7549f984 4983 (native-inputs
fc5c5b92
R
4984 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
4985 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 4986 ("intltool" ,intltool)
7549f984 4987 ("itstool" ,itstool)
bcb354ad
SB
4988 ("pkg-config" ,pkg-config)
4989 ("xmllint" ,libxml2)))
7549f984
SB
4990 (inputs
4991 `(("avahi" ,avahi)
4992 ("gcr" ,gcr)
fc5c5b92 4993 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
4994 ("glib-networking" ,glib-networking)
4995 ("gnome-desktop" ,gnome-desktop)
4996 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 4997 ("json-glib" ,json-glib)
7549f984 4998 ("iso-codes" ,iso-codes)
8748e29c 4999 ("libdazzle" ,libdazzle)
7549f984
SB
5000 ("libnotify" ,libnotify)
5001 ("libsecret" ,libsecret)
7549f984 5002 ("libxslt" ,libxslt)
fc5c5b92 5003 ("nettle" ,nettle) ; for hogweed
7549f984 5004 ("sqlite" ,sqlite)
f85ca6ed 5005 ("webkitgtk" ,webkitgtk)))
7549f984
SB
5006 (home-page "https://wiki.gnome.org/Apps/Web")
5007 (synopsis "GNOME web browser")
5008 (description
5009 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5010principles are simplicity and standards compliance.")
5011 (license license:gpl2+)))
a3856b2c
SB
5012
5013(define-public d-feet
5014 (package
5015 (name "d-feet")
458e9221 5016 (version "0.3.14")
a3856b2c
SB
5017 (source (origin
5018 (method url-fetch)
5019 (uri (string-append "mirror://gnome/sources/" name "/"
5020 (version-major+minor version) "/"
5021 name "-" version ".tar.xz"))
5022 (sha256
5023 (base32
458e9221 5024 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5025 (build-system glib-or-gtk-build-system)
5026 (arguments
5027 '(#:out-of-source? #f ; tests need to run in the source directory.
5028 #:phases
5029 (modify-phases %standard-phases
5030 (add-before
5031 'check 'pre-check
86aff791 5032 (lambda _
a3856b2c
SB
5033 ;; The test suite requires a running X server.
5034 (system "Xvfb :1 &")
5035 (setenv "DISPLAY" ":1")
5036 ;; Don't fail on missing '/etc/machine-id'.
5037 (setenv "DBUS_FATAL_WARNINGS" "0")
5038 ;; tests.py and window.py don't meet E402:
5039 ;; E402 module level import not at top of file
5040 (substitute* "src/tests/Makefile"
86aff791
MW
5041 (("--ignore=E123") "--ignore=E123,E402"))
5042 #t))
a3856b2c
SB
5043 (add-after
5044 'install 'wrap-program
5045 (lambda* (#:key outputs #:allow-other-keys)
5046 (let ((prog (string-append (assoc-ref outputs "out")
5047 "/bin/d-feet")))
5048 (wrap-program prog
5049 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5050 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5051 #t))))))
a3856b2c
SB
5052 (native-inputs
5053 `(("intltool" ,intltool)
5054 ("itstool" ,itstool)
5055 ("pkg-config" ,pkg-config)
5056 ("python-pep8" ,python-pep8)
5057 ("xmllint" ,libxml2)
ff337525 5058 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5059 (inputs
5060 `(("gobject-introspection" ,gobject-introspection)
5061 ("gtk+" ,gtk+)
5062 ("python" ,python-wrapper)
458e9221 5063 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5064 ("python-pygobject" ,python-pygobject)))
5065 (home-page "https://wiki.gnome.org/Apps/DFeet")
5066 (synopsis "D-Bus debugger")
5067 (description
5068 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5069of running programs and invoke methods on those interfaces.")
5070 (license license:gpl2+)))
c3b97bd9
SB
5071
5072(define-public yelp-xsl
5073 (package
5074 (name "yelp-xsl")
b3640e79 5075 (version "3.32.1")
c3b97bd9
SB
5076 (source (origin
5077 (method url-fetch)
5078 (uri (string-append "mirror://gnome/sources/" name "/"
5079 (version-major+minor version) "/"
5080 name "-" version ".tar.xz"))
5081 (sha256
5082 (base32
b3640e79 5083 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
c3b97bd9
SB
5084 (build-system gnu-build-system)
5085 (native-inputs
5086 `(("intltool" ,intltool)
5087 ("itstool" ,itstool)
5088 ("xmllint" ,libxml2)))
5089 (home-page "https://wiki.gnome.org/Apps/Yelp")
5090 (synopsis "XSL stylesheets for Yelp")
5091 (description
5092 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5093to format Docbook and Mallard documents.")
5094 (license license:gpl2+)))
de3d612a
SB
5095
5096(define-public yelp
5097 (package
5098 (name "yelp")
1f1b6d60 5099 (version "3.32.2")
de3d612a
SB
5100 (source (origin
5101 (method url-fetch)
5102 (uri (string-append "mirror://gnome/sources/" name "/"
5103 (version-major+minor version) "/"
5104 name "-" version ".tar.xz"))
5105 (sha256
5106 (base32
1f1b6d60 5107 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5108 (build-system glib-or-gtk-build-system)
5109 (native-inputs
5110 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5111 ("intltool" ,intltool)
5112 ("itstool" ,itstool)
5113 ("pkg-config" ,pkg-config)))
5114 (propagated-inputs
5115 `(("dconf" ,dconf)))
5116 (inputs
ad1b7d8b
SB
5117 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5118 ("libxslt" ,libxslt)
de3d612a 5119 ("sqlite" ,sqlite)
4c28ca1d
SB
5120 ("webkitgtk" ,webkitgtk)
5121 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5122 (home-page "https://wiki.gnome.org/Apps/Yelp")
5123 (synopsis "GNOME help browser")
5124 (description
5125 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5126man, info, and HTML documents. It can locate documents according to the
5127freedesktop.org help system specification.")
5128 (license license:gpl2+)))
122d0d10
SB
5129
5130(define-public yelp-tools
5131 (package
5132 (name "yelp-tools")
2089bca5 5133 (version "3.28.0")
122d0d10
SB
5134 (source (origin
5135 (method url-fetch)
5136 (uri (string-append "mirror://gnome/sources/" name "/"
5137 (version-major+minor version) "/"
5138 name "-" version ".tar.xz"))
5139 (sha256
5140 (base32
2089bca5 5141 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
5142 (build-system gnu-build-system)
5143 (native-inputs
5144 `(("pkg-config" ,pkg-config)))
5145 (propagated-inputs
5146 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5147 `(("itstool" ,itstool)
5148 ("xmllint" ,libxml2)
5149 ("xsltproc" ,libxslt)))
5150 (inputs
5151 `(("yelp-xsl" ,yelp-xsl)))
5152 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5153 (synopsis "Yelp documentation tools")
5154 (description
5155 "Yelp-tools is a collection of scripts and build utilities to help create,
5156manage, and publish documentation for Yelp and the web. Most of the heavy
5157lifting is done by packages like yelp-xsl and itstool. This package just
5158wraps things up in a developer-friendly way.")
5159 (license license:gpl2+)))
af8f9f23 5160
4ed041d9
MB
5161(define-public yelp-tools/fixed
5162 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5163 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5164 ;; the next rebuild cycle.
5165 (hidden-package
5166 (package/inherit
5167 yelp-tools
5168 (propagated-inputs
5169 `(("itstool" ,itstool/fixed)
5170 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5171
af8f9f23
RW
5172(define-public libgee
5173 (package
5174 (name "libgee")
4c2c5ae6 5175 (version "0.20.2")
af8f9f23
RW
5176 (source (origin
5177 (method url-fetch)
84a1b007 5178 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5179 (version-major+minor version) "/"
84a1b007 5180 "libgee-" version ".tar.xz"))
af8f9f23
RW
5181 (sha256
5182 (base32
4c2c5ae6 5183 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
af8f9f23
RW
5184 (build-system gnu-build-system)
5185 (arguments
5186 `(#:phases
5187 (modify-phases %standard-phases
5188 (add-after 'unpack 'fix-introspection-install-dir
5189 (lambda* (#:key outputs #:allow-other-keys)
5190 (let ((out (assoc-ref outputs "out")))
5191 (substitute* "gee/Makefile.in"
5192 (("@INTROSPECTION_GIRDIR@")
5193 (string-append out "/share/gir-1.0/"))
5194 (("@INTROSPECTION_TYPELIBDIR@")
5195 (string-append out "/lib/girepository-1.0/")))))))))
5196 (native-inputs
5197 `(("glib" ,glib "bin")
5198 ("pkg-config" ,pkg-config)))
5199 (inputs
5200 `(("glib" ,glib)
5201 ("gobject-introspection" ,gobject-introspection)))
5202 (home-page "https://wiki.gnome.org/Projects/Libgee")
5203 (synopsis "GObject collection library")
5204 (description
5205 "Libgee is a utility library providing GObject-based interfaces and
5206classes for commonly used data structures.")
5207 (license license:lgpl2.1+)))
b0f9c4b8
RW
5208
5209(define-public gexiv2
5210 (package
5211 (name "gexiv2")
b1a8b408 5212 (version "0.12.0")
b0f9c4b8
RW
5213 (source (origin
5214 (method url-fetch)
5215 (uri (string-append "mirror://gnome/sources/" name "/"
5216 (version-major+minor version) "/"
5217 name "-" version ".tar.xz"))
5218 (sha256
5219 (base32
b1a8b408 5220 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5221 (build-system meson-build-system)
b0f9c4b8 5222 (native-inputs
b1a8b408
KK
5223 `(("gcr" ,gcr)
5224 ("glib" ,glib "bin")
5225 ("pkg-config" ,pkg-config)
5226 ("vala" ,vala)))
b0f9c4b8
RW
5227 (propagated-inputs
5228 ;; Listed in "Requires" section of gexiv2.pc
5229 `(("exiv2" ,exiv2)))
5230 (inputs
5231 `(("glib" ,glib)
5232 ("gobject-introspection" ,gobject-introspection)))
5233 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5234 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5235 (description
5236 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5237allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5238metadata in photo and video files of various formats.")
5239 (license license:gpl2+)))
fed5a689
RW
5240
5241(define-public shotwell
5242 (package
5243 (name "shotwell")
a1c6fb52 5244 (version "0.30.7")
fed5a689
RW
5245 (source (origin
5246 (method url-fetch)
5497d682 5247 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5248 (version-major+minor version) "/"
5497d682 5249 "shotwell-" version ".tar.xz"))
fed5a689
RW
5250 (sha256
5251 (base32
a1c6fb52 5252 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
3b79afa6
KK
5253 (build-system meson-build-system)
5254 (arguments
5a0beca3
EF
5255 '(#:glib-or-gtk? #t
5256 #:phases
5257 (modify-phases %standard-phases
5258 (add-after 'unpack 'skip-gtk-update-icon-cache
5259 (lambda _
5260 (substitute* "build-aux/meson/postinstall.py"
5261 (("gtk-update-icon-cache") (which "true"))
5262 (("update-desktop-database") (which "true")))
5263 #t)))))
735b8db6
TGR
5264 (propagated-inputs
5265 `(("dconf" ,dconf)))
fed5a689 5266 (native-inputs
5a0beca3
EF
5267 `(("gettext" ,gettext-minimal)
5268 ("glib:bin" ,glib "bin")
735b8db6 5269 ("itstool" ,itstool)
3b79afa6 5270 ("pkg-config" ,pkg-config)
735b8db6 5271 ("vala" ,vala)))
fed5a689 5272 (inputs
5a0beca3
EF
5273 `(("gcr" ,gcr)
5274 ("gexiv2" ,gexiv2)
fed5a689 5275 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5276 ("gstreamer" ,gstreamer)
5277 ("json-glib" ,json-glib)
dfb0323d 5278 ("libgdata" ,libgdata)
fed5a689 5279 ("libgee" ,libgee)
5a0beca3
EF
5280 ("libgphoto2" ,libgphoto2)
5281 ("libgudev" ,libgudev)
fed5a689 5282 ("libraw" ,libraw)
fed5a689
RW
5283 ("libsoup" ,libsoup)
5284 ("libxml2" ,libxml2)
5a0beca3
EF
5285 ("sqlite" ,sqlite)
5286 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5287 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5288 (synopsis "Photo manager for GNOME 3")
5289 (description
5290 "Shotwell is a digital photo manager designed for the GNOME desktop
5291environment. It allows you to import photos from disk or camera, organize
5292them by keywords and events, view them in full-window or fullscreen mode, and
5293share them with others via social networking and more.")
5294 (license license:lgpl2.1+)))
293ff8b2
DT
5295
5296(define-public file-roller
5297 (package
5298 (name "file-roller")
dcae4270 5299 (version "3.32.3")
293ff8b2
DT
5300 (source (origin
5301 (method url-fetch)
f89a27c6 5302 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5303 (version-major+minor version) "/"
f89a27c6 5304 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5305 (sha256
5306 (base32
dcae4270 5307 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 5308 (build-system meson-build-system)
293ff8b2 5309 (native-inputs
0a500745
RW
5310 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5311 ("intltool" ,intltool)
4c96e5d1 5312 ("itstool" ,itstool)
0a500745
RW
5313 ("pkg-config" ,pkg-config)
5314 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5315 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5316 ;; TODO: Add libnautilus.
5317 (inputs
5318 `(("gtk+" ,gtk+)
5319 ("gdk-pixbuf" ,gdk-pixbuf)
5320 ("json-glib" ,json-glib)
5321 ("libarchive" ,libarchive)
5322 ("libnotify" ,libnotify)
4c96e5d1 5323 ("nettle" ,nettle)
293ff8b2
DT
5324 ("libxml2" ,libxml2)))
5325 (synopsis "Graphical archive manager for GNOME")
5326 (description "File Roller is an archive manager for the GNOME desktop
5327environment that allows users to view, unpack, and create compressed archives
5328such as gzip tarballs.")
5329 (home-page "http://fileroller.sourceforge.net/")
5330 (license license:gpl2+)))
7ce49365
SB
5331
5332(define-public gnome-session
5333 (package
5334 (name "gnome-session")
1fc2ec79 5335 (version "3.32.0")
7ce49365
SB
5336 (source (origin
5337 (method url-fetch)
5338 (uri (string-append "mirror://gnome/sources/" name "/"
5339 (version-major+minor version) "/"
5340 name "-" version ".tar.xz"))
5341 (sha256
5342 (base32
1fc2ec79 5343 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5344 (arguments
df278071
RW
5345 '(#:glib-or-gtk? #t
5346 #:phases
2914af3c
AW
5347 (modify-phases %standard-phases
5348 (add-before 'configure 'pre-configure
5349 (lambda* (#:key outputs #:allow-other-keys)
5350 ;; Use elogind instead of systemd.
df278071
RW
5351 (substitute* "meson.build"
5352 (("libsystemd-login") "libelogind")
5353 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5354 (substitute* "gnome-session/gsm-systemd.c"
5355 (("#include <systemd/sd-login.h>")
5356 "#include <elogind/sd-login.h>"))
df278071 5357 ;; Remove uses of the systemd daemon.
803ab416
SB
5358 (substitute* "gnome-session/gsm-autostart-app.c"
5359 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5360 #t))
5361 (add-after 'install 'wrap-gnome-session
5362 (lambda* (#:key inputs outputs #:allow-other-keys)
5363 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5364 (let ((glib (assoc-ref inputs "glib:bin"))
5365 (out (assoc-ref outputs "out")))
5366 (wrap-program (string-append out "/bin/gnome-session")
5367 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5368 #t))))
6cbc8d57 5369
2914af3c 5370 #:configure-flags
df278071
RW
5371 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5372 "-Dman=false" ; FIXME: disabled because of docbook validation error
5373 "-Dsystemd_journal=false")))
5374 (build-system meson-build-system)
7ce49365
SB
5375 (native-inputs
5376 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5377 ("pkg-config" ,pkg-config)
5378 ("intltool" ,intltool)
df278071
RW
5379 ("xsltproc" ,libxslt)
5380 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5381 ("docbook-xsl" ,docbook-xsl)
5382 ("docbook-xml" ,docbook-xml)
5383 ("xmlto" ,xmlto)))
7ce49365 5384 (inputs
2914af3c
AW
5385 `(("elogind" ,elogind)
5386 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5387 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5388 ("gtk+" ,gtk+)
5389 ("json-glib" ,json-glib)
5390 ("libsm" ,libsm)
5391 ("libxcomposite" ,libxcomposite)
5392 ("libxtst" ,libxtst)
5393 ("mesa" ,mesa)
5394 ("upower" ,upower)
5395 ("xtrans" ,xtrans)))
5396 (synopsis "Session manager for GNOME")
5397 (description
5398 "This package contains the GNOME session manager, as well as a
5399configuration program to choose applications starting on login.")
5400 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5401 (license license:gpl2+)))
f47ba77e
SB
5402
5403(define-public gjs
5404 (package
5405 (name "gjs")
d054fbf5 5406 (version "1.56.2")
f47ba77e
SB
5407 (source (origin
5408 (method url-fetch)
5409 (uri (string-append "mirror://gnome/sources/" name "/"
5410 (version-major+minor version) "/"
5411 name "-" version ".tar.xz"))
5412 (sha256
5413 (base32
d054fbf5 5414 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5415 (build-system gnu-build-system)
5416 (arguments
5417 '(#:phases
5418 (modify-phases %standard-phases
5419 (add-before
5420 'check 'pre-check
5421 (lambda _
fc119619
MW
5422 ;; The test suite requires a running X server.
5423 (system "Xvfb :1 &")
5424 (setenv "DISPLAY" ":1")
5425
f47ba77e
SB
5426 ;; For the missing /etc/machine-id.
5427 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5428
144f94d0
KK
5429 ;; Our mozjs-38 package does not compile the required Intl API
5430 ;; support for these failing tests.
5431 (substitute* "installed-tests/js/testLocale.js"
5432 ((".*toBeDefined.*") "")
5433 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5434 (substitute* "installed-tests/scripts/testCommandLine.sh"
5435 (("Valentín") "")
5436 (("☭") ""))
f47ba77e
SB
5437 #t)))))
5438 (native-inputs
8a831c6f 5439 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5440 ("pkg-config" ,pkg-config)
5441 ("xmllint" ,libxml2)
5442 ;; For testing
5443 ("dbus-launch" ,dbus)
5444 ("uuidgen" ,util-linux)
ebebee94 5445 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5446 (propagated-inputs
5447 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5448 `(("cairo" ,cairo)
5449 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5450 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5451 (inputs
5452 `(("gtk+" ,gtk+)
5453 ("readline" ,readline)))
5454 (synopsis "Javascript bindings for GNOME")
f032d0be 5455 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5456 (description
5457 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5458javascript engine and the GObject introspection framework.")
5459 (license license:gpl2+)))
329d731b
DH
5460
5461(define-public gedit
5462 (package
5463 (name "gedit")
480c9226 5464 (version "3.32.2")
329d731b
DH
5465 (source (origin
5466 (method url-fetch)
5467 (uri (string-append "mirror://gnome/sources/" name "/"
5468 (version-major+minor version) "/"
5469 name "-" version ".tar.xz"))
5470 (sha256
5471 (base32
480c9226
KK
5472 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5473 (build-system meson-build-system)
329d731b 5474 (arguments
480c9226
KK
5475 `(#:glib-or-gtk? #t
5476 #:configure-flags
5477 ;; Otherwise, the RUNPATH will lack the final path component.
5478 (list (string-append "-Dc_link_args=-Wl,-rpath="
5479 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5480
5481 ;; XXX: Generated .h files are sometimes used before being built.
5482 #:parallel-build? #f
5483
480c9226 5484 #:phases
329d731b 5485 (modify-phases %standard-phases
480c9226
KK
5486 (add-after 'unpack 'skip-gtk-update-icon-cache
5487 ;; Don't create 'icon-theme.cache'.
5488 (lambda _
5489 (substitute* "build-aux/meson/post_install.py"
5490 (("gtk-update-icon-cache") (which "true")))
5491 #t))
5492 (add-after 'unpack 'patch-libgd-fetch
5493 (lambda* (#:key inputs #:allow-other-keys)
5494 (let ((libgd (assoc-ref inputs "libgd")))
5495 ;; Calling git is unnecessary because libgd is fetched as a
5496 ;; native input to this package.
5497 (substitute* "meson.build"
5498 ((".*git.*") ""))
5499 (copy-recursively libgd "subprojects/libgd")
5500 #t)))
5501 (add-after 'install 'wrap-gedit
5502 (lambda* (#:key inputs outputs #:allow-other-keys)
5503 (let ((out (assoc-ref outputs "out"))
5504 (gtksourceview (assoc-ref inputs "gtksourceview"))
5505 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5506 (python-path (getenv "PYTHONPATH")))
5507 (wrap-program (string-append out "/bin/gedit")
5508 ;; For plugins.
5509 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5510 `("PYTHONPATH" ":" prefix (,python-path))
5511 ;; For language-specs.
5512 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5513 "/share")))))
5514 #t)))))
329d731b
DH
5515 (propagated-inputs
5516 `(("dconf" ,dconf)))
5517 (native-inputs
480c9226
KK
5518 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5519 ("intltool" ,intltool)
b3546174 5520 ("itstool" ,itstool)
480c9226 5521 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5522 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5523 ("libgd"
5524 ,(origin
5525 (method git-fetch)
5526 (uri (git-reference
5527 (url "https://gitlab.gnome.org/GNOME/libgd")
5528 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5529 (file-name (git-file-name "libgd" version))
5530 (sha256
5531 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
5532 ("pkg-config" ,pkg-config)))
5533 (inputs
5534 `(("glib" ,glib)
0d2df50c 5535 ("gspell" ,gspell)
329d731b 5536 ("gtk+" ,gtk+)
480c9226 5537 ("gtksourceview" ,gtksourceview)
329d731b
DH
5538 ("libpeas" ,libpeas)
5539 ("libxml2" ,libxml2)
329d731b
DH
5540 ("iso-codes" ,iso-codes)
5541 ("python-pygobject" ,python-pygobject)
5542 ("python" ,python)
5543 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5544 ("libx11" ,libx11)
5545 ("vala" ,vala)
5546 ("adwaita-icon-theme" ,adwaita-icon-theme)
5547 ("libsoup" ,libsoup)
5548 ("gnome-desktop" ,gnome-desktop)))
5549 (home-page "https://wiki.gnome.org/Apps/Gedit")
5550 (synopsis "GNOME text editor")
5551 (description "While aiming at simplicity and ease of use, gedit is a
5552powerful general purpose text editor.")
5553 (license license:gpl2+)))
b7179363
SB
5554
5555(define-public zenity
5556 (package
5557 (name "zenity")
4f581bd0 5558 (version "3.32.0")
b7179363
SB
5559 (source (origin
5560 (method url-fetch)
5958df04 5561 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 5562 (version-major+minor version) "/"
5958df04 5563 "zenity-" version ".tar.xz"))
b7179363
SB
5564 (sha256
5565 (base32
4f581bd0 5566 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
5567 (build-system gnu-build-system)
5568 (native-inputs
b94a6ca0 5569 `(("gettext" ,gettext-minimal)
b7179363
SB
5570 ("itstool" ,itstool)
5571 ("pkg-config" ,pkg-config)))
5572 (inputs
5573 `(("libnotify" ,libnotify)
5574 ("webkitgtk" ,webkitgtk)))
5575 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 5576 (home-page "https://www.gnome.org")
b7179363
SB
5577 (description
5578 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
5579to display dialog boxes from the commandline and shell scripts.")
5580 (license license:lgpl2.0+)))
60c3627c
SB
5581
5582(define-public mutter
5583 (package
5584 (name "mutter")
edf43f68 5585 (version "3.32.2")
60c3627c 5586 (source (origin
86c44e72
KK
5587 (method url-fetch)
5588 (uri (string-append "mirror://gnome/sources/" name "/"
5589 (version-major+minor version) "/"
5590 name "-" version ".tar.xz"))
60c3627c
SB
5591 (sha256
5592 (base32
edf43f68 5593 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
5594 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
5595 ;; versions of cogl and clutter. As a result, many of the inputs,
5596 ;; propagated-inputs, and configure flags used in cogl and clutter are
5597 ;; needed here as well.
edf43f68 5598 (build-system meson-build-system)
60c3627c 5599 (arguments
edf43f68
KK
5600 '(;; XXX: All mutter tests fail with the following error:
5601 ;; Settings schema 'org.gnome.mutter' is not installed
5602 #:tests? #f
5603 #:glib-or-gtk? #t
5604 #:configure-flags
5605 ;; Otherwise, the RUNPATH will lack the final path component.
5606 (list (string-append "-Dc_link_args=-Wl,-rpath="
5607 (assoc-ref %outputs "out") "/lib:"
5608 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
5609
5610 ;; The following flags are needed for the bundled clutter
edf43f68 5611 (string-append "-Dxwayland_path="
d633f2f6
RH
5612 (assoc-ref %build-inputs "xorg-server-xwayland")
5613 "/bin/Xwayland")
5614
a88d5a0c 5615 ;; the remaining flags are needed for the bundled cogl
edf43f68 5616 (string-append "-Dopengl_libname="
a88d5a0c 5617 (assoc-ref %build-inputs "mesa")
f23052a6
DC
5618 "/lib/libGL.so"))
5619 #:phases
5620 (modify-phases %standard-phases
edf43f68
KK
5621 (add-after 'unpack 'disable-werror
5622 (lambda _
5623 ;; XXX: build fails with [-Werror]:
5624 ;; backends/meta-cursor-renderer.c:112:5: error:
5625 ;; implicit declaration of function ?roundf?
5626 (substitute* "meson.build"
5627 (("'-Werror=.*',") ""))
5628 #t))
86c44e72
KK
5629 ;; Replace references to systemd libraries to elogind references.
5630 (add-before 'configure 'use-elogind
5631 (lambda _
edf43f68 5632 (substitute* (list "meson.build"
86c44e72
KK
5633 "src/backends/native/meta-launcher.c"
5634 "src/core/main.c")
5635 (("systemd") "elogind"))
5636 #t)))))
60c3627c
SB
5637 (native-inputs
5638 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5639 ("gobject-introspection" ,gobject-introspection)
5640 ("intltool" ,intltool)
f23052a6 5641 ("pkg-config" ,pkg-config)
edf43f68 5642 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
5643 ;; For git build
5644 ("autoconf" ,autoconf)
5645 ("automake" ,automake)
5646 ("libtool" ,libtool)))
60c3627c 5647 (propagated-inputs
a88d5a0c
MW
5648 `(;; libmutter.pc refers to these:
5649 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5650 ("gtk+" ,gtk+)
5651 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
5652 ("atk" ,atk)
5653 ("cairo" ,cairo)
5654 ("gdk-pixbuf" ,gdk-pixbuf)
5655 ("glib" ,glib)
a88d5a0c
MW
5656 ("json-glib" ,json-glib)
5657 ("libinput" ,libinput)
5658 ("libx11" ,libx11)
5659 ("libxcomposite" ,libxcomposite)
5660 ("libxdamage" ,libxdamage)
5661 ("libxext" ,libxext)
5662 ("libxfixes" ,libxfixes)
5663 ("libxkbcommon" ,libxkbcommon)
5664 ("libxrandr" ,libxrandr)
5665 ("mesa" ,mesa)
5666 ("pango" ,pango)
5667 ("udev" ,eudev)
a88d5a0c 5668 ("xinput" ,xinput)))
60c3627c 5669 (inputs
86c44e72
KK
5670 `(("elogind" ,elogind)
5671 ("gnome-desktop" ,gnome-desktop)
edf43f68 5672 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 5673 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 5674 ("libgudev" ,libgudev)
60c3627c
SB
5675 ("libice" ,libice)
5676 ("libsm" ,libsm)
edf43f68 5677 ("libwacom" ,libwacom)
60c3627c 5678 ("libxkbfile" ,libxkbfile)
a88d5a0c 5679 ("libxrandr" ,libxrandr)
86c44e72 5680 ("libxtst" ,libxtst)
edf43f68 5681 ("pipewire" ,pipewire)
60c3627c
SB
5682 ("startup-notification" ,startup-notification)
5683 ("upower-glib" ,upower)
5684 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 5685 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
5686 ("zenity" ,zenity)))
5687 (synopsis "Window and compositing manager")
f032d0be 5688 (home-page "https://www.gnome.org")
60c3627c
SB
5689 (description
5690 "Mutter is a window and compositing manager that displays and manages your
5691desktop via OpenGL. Mutter combines a sophisticated display engine using the
5692Clutter toolkit with solid window-management logic inherited from the Metacity
5693window manager.")
86c44e72 5694 (license license:gpl2+)))
685cee87
SB
5695
5696(define-public gnome-online-accounts
5697 (package
5698 (name "gnome-online-accounts")
aa200347 5699 (version "3.32.1")
685cee87
SB
5700 (source (origin
5701 (method url-fetch)
5702 (uri (string-append "mirror://gnome/sources/" name "/"
5703 (version-major+minor version) "/"
5704 name "-" version ".tar.xz"))
5705 (sha256
5706 (base32
aa200347 5707 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 5708 (outputs '("out" "lib"))
685cee87 5709 (build-system glib-or-gtk-build-system)
14c297fd
TS
5710 (arguments
5711 `(#:configure-flags
5712 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
5713 #:phases
5714 (modify-phases %standard-phases
5715 (add-before 'configure 'patch-libgoa-output
5716 (lambda* (#:key outputs #:allow-other-keys)
5717 (let ((lib (assoc-ref outputs "lib")))
5718 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
5719 (("@prefix@") lib)
5720 (("@exec_prefix@") lib)
5721 (("@libdir@") (string-append lib "/lib"))
5722 (("@includedir@") (string-append lib "/include"))
5723 (("@datadir@") (string-append lib "/share")))
7555d539
MB
5724 ;; Make sure gobject-introspection knows about the output
5725 ;; too (see <https://bugs.gnu.org/36535>).
5726 (setenv "outputs" "out lib")
14c297fd 5727 #t))))))
685cee87
SB
5728 (native-inputs
5729 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5730 ("gobject-introspection" ,gobject-introspection)
5731 ("intltool" ,intltool)
5732 ("pkg-config" ,pkg-config)
ebb2873d 5733 ("vala" ,vala)
685cee87
SB
5734 ("xsltproc" ,libxslt)))
5735 (propagated-inputs
5736 `(("glib" ,glib) ; required by goa-1.0.pc
5737 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
5738 (inputs
5739 `(("docbook-xsl" ,docbook-xsl)
5740 ("json-glib" ,json-glib)
5741 ("libsecret" ,libsecret)
5742 ("rest" ,rest)
685cee87
SB
5743 ("webkitgtk" ,webkitgtk)))
5744 (synopsis "Single sign-on framework for GNOME")
5745 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
5746 (description
5747 "GNOME Online Accounts provides interfaces so that applications and
5748libraries in GNOME can access the user's online accounts. It has providers for
5749Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
5750Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
5751 (license license:lgpl2.0+)))
df217748
SB
5752
5753(define-public evolution-data-server
5754 (package
5755 (name "evolution-data-server")
2196a8d4 5756 (version "3.32.4")
df217748
SB
5757 (source (origin
5758 (method url-fetch)
5759 (uri (string-append "mirror://gnome/sources/" name "/"
5760 (version-major+minor version) "/"
5761 name "-" version ".tar.xz"))
e1f174ae 5762 (patches (search-patches "evolution-data-server-locales.patch"))
df217748
SB
5763 (sha256
5764 (base32
2196a8d4 5765 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 5766 (build-system cmake-build-system)
df217748 5767 (arguments
b468eedc
RW
5768 '(#:configure-flags
5769 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
5770 (runpaths (map (lambda (s)
5771 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
5772 '("addressbook-backends" "calendar-backends"
5773 "camel-providers" "credential-modules"
5774 "registry-modules"))))
5775 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
5776 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
5777 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
5778 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
5779 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
5780 (string-append lib "/evolution-data-server;")
5781 (string-join runpaths ";"))
5782 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
5783 #:phases
5784 (modify-phases %standard-phases
b468eedc
RW
5785 (add-after 'unpack 'disable-failing-tests
5786 (lambda _
5787 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
5788 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
5789 (delete-file-recursively "tests/book-migration")
5790 (substitute* "tests/CMakeLists.txt"
5791 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
5792 ;; tests/libebook/client/test-book-client-view-operations:8077):
5793 ;; e-data-server-WARNING **:
5794 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
5795 ;; runtime check failed:
5796 ;; (!g_main_context_pending (closure->main_context))
5797 (substitute* "tests/libebook/client/CMakeLists.txt"
5798 (("test-book-client-view-operations") ""))
b468eedc 5799 #t))
743aebd7 5800 (add-after 'unpack 'patch-paths
df217748 5801 (lambda _
b468eedc
RW
5802 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
5803 "tests/libedata-book/data-test-utils.c"
5804 "tests/libedata-book/test-book-cache-utils.c"
5805 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 5806 (("/bin/rm") (which "rm")))
ac033c7b
MB
5807 #t))
5808 (add-before 'configure 'dont-override-rpath
5809 (lambda _
5810 (substitute* "CMakeLists.txt"
5811 ;; CMakeLists.txt hard-codes runpath to just the libdir.
5812 ;; Remove it so the configure flag is respected.
5813 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 5814 #t)))))
df217748
SB
5815 (native-inputs
5816 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5817 ("gobject-introspection" ,gobject-introspection)
5818 ("gperf" ,gperf)
5819 ("intltool" ,intltool)
5820 ("pkg-config" ,pkg-config)
a73c1cf8 5821 ("vala" ,vala)
743aebd7 5822 ("python" ,python-wrapper)))
df217748
SB
5823 (propagated-inputs
5824 ;; These are all in the Requires field of .pc files.
5825 `(("gtk+" ,gtk+)
5826 ("libical" ,libical)
5827 ("libsecret" ,libsecret)
5828 ("libsoup" ,libsoup)
5829 ("nss" ,nss)
5830 ("sqlite" ,sqlite)))
5831 (inputs
5832 `(("bdb" ,bdb)
5833 ("gcr" ,gcr)
14c297fd 5834 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 5835 ("json-glib" ,json-glib)
b468eedc 5836 ("libcanberra" ,libcanberra)
743aebd7
MB
5837 ("libgweather" ,libgweather)
5838 ("mit-krb5" ,mit-krb5)
891199c6
MW
5839 ("openldap" ,openldap)
5840 ("webkitgtk" ,webkitgtk)))
df217748
SB
5841 (synopsis "Store address books and calendars")
5842 (home-page "https://wiki.gnome.org/Apps/Evolution")
5843 (description
5844 "This package provides a unified backend for programs that work with
5845contacts, tasks, and calendar information. It was originally developed for
5846Evolution (hence the name), but is now used by other packages as well.")
5847 (license license:lgpl2.0)))
bd7dfafa
SB
5848
5849(define-public caribou
5850 (package
5851 (name "caribou")
fe964bb5 5852 (version "0.4.21")
bd7dfafa
SB
5853 (source (origin
5854 (method url-fetch)
5855 (uri (string-append "mirror://gnome/sources/" name "/"
5856 (version-major+minor version) "/"
5857 name "-" version ".tar.xz"))
5858 (sha256
5859 (base32
fe964bb5 5860 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
5861 (build-system glib-or-gtk-build-system)
5862 (arguments
5863 '(#:phases
5864 (modify-phases %standard-phases
5865 (add-before
5866 'build 'pre-build
5867 (lambda* (#:key outputs #:allow-other-keys)
5868 (let ((out (assoc-ref outputs "out")))
5869 ;; Use absolute shared library path in Caribou-1.0.typelib.
5870 (substitute* "libcaribou/Makefile"
5871 (("--shared-library=libcaribou.so")
5872 (string-append "--shared-library="
5873 out "/lib/libcaribou.so")))
5874 #t)))
5875 (add-after 'install 'wrap-programs
5876 (lambda* (#:key outputs #:allow-other-keys)
5877 (let* ((out (assoc-ref outputs "out"))
5878 (python-path (getenv "PYTHONPATH"))
5879 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5880 (for-each
5881 (lambda (prog)
5882 (wrap-program prog
5883 `("PYTHONPATH" ":" prefix (,python-path))
5884 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5885 (list (string-append out "/bin/caribou-preferences")
5886 (string-append out "/libexec/antler-keyboard"))))
5887 #t)))))
5888 (native-inputs
5889 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5890 ("gobject-introspection" ,gobject-introspection)
5891 ("intltool" ,intltool)
5892 ("pkg-config" ,pkg-config)
5893 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5894 ("vala" ,vala)
5895 ("xsltproc" ,libxslt)))
5896 (propagated-inputs
5897 ;; caribou-1.0.pc refers to all these.
5898 `(("libgee" ,libgee)
5899 ("libxklavier" ,libxklavier)
5900 ("libxtst" ,libxtst)
5901 ("gtk+" ,gtk+)))
5902 (inputs
5903 `(("clutter" ,clutter)
5904 ("dconf" ,dconf)
5905 ("gtk+-2" ,gtk+-2)
5906 ("python-pygobject" ,python2-pygobject)))
5907 (synopsis "Text entry and UI navigation application")
5908 (home-page "https://wiki.gnome.org/Projects/Caribou")
5909 (description
5910 "Caribou is an input assistive technology intended for switch and pointer
5911users.")
5912 (license license:lgpl2.1)))
ba5dd105 5913
ba5dd105
SB
5914(define-public network-manager
5915 (package
5916 (name "network-manager")
6425d87a 5917 (version "1.18.4")
ba5dd105
SB
5918 (source (origin
5919 (method url-fetch)
5920 (uri (string-append "mirror://gnome/sources/NetworkManager/"
5921 (version-major+minor version) "/"
5922 "NetworkManager-" version ".tar.xz"))
7d1861e2 5923 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
5924 (sha256
5925 (base32
6425d87a 5926 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 5927 (modules '((guix build utils)))
fd070f35 5928 (snippet
02710a9b
RW
5929 '(begin
5930 (substitute* "src/devices/wwan/nm-modem-manager.c"
5931 (("systemd") "elogind"))
5932 #t))))
ba5dd105
SB
5933 (build-system gnu-build-system)
5934 (outputs '("out"
5935 "doc")) ; 8 MiB of gtk-doc HTML
5936 (arguments
5937 '(#:configure-flags
5938 (let ((out (assoc-ref %outputs "out"))
5939 (doc (assoc-ref %outputs "doc"))
5940 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
5941 "/sbin/dhclient")))
02710a9b
RW
5942 (list "--with-libnm-glib" ; needed by network-manager-applet
5943 "--with-systemd-journal=no"
5944 "--with-session-tracking=elogind"
5945 "--with-suspend-resume=elogind"
fd070f35
CM
5946 "--with-consolekit=no"
5947 "--with-crypto=gnutls"
ba5dd105
SB
5948 "--disable-config-plugin-ibft"
5949 "--sysconfdir=/etc"
5950 "--localstatedir=/var"
5951 (string-append "--with-udev-dir="
5952 out "/lib/udev")
5953 (string-append "--with-dbus-sys-dir="
5954 out "/etc/dbus-1/system.d")
5955 (string-append "--with-html-dir="
5956 doc "/share/gtk-doc/html")
5957 (string-append "--with-dhclient=" dhclient)))
5958 #:phases
5959 (modify-phases %standard-phases
02710a9b
RW
5960 ;; This bare "ls" invocation breaks some tests.
5961 (add-after 'unpack 'patch-ls-invocation
5962 (lambda _
5963 (substitute* "build-aux/ltmain.sh"
5964 (("`ls -")
5965 (string-append "`" (which "ls") " -")))
5966 #t))
b4f59d87
AW
5967 (add-before 'configure 'pre-configure
5968 (lambda _
5969 ;; These tests try to test aspects of network-manager's
5970 ;; functionality within restricted containers, but they don't
5971 ;; cope with being already in the Guix build jail as that jail
5972 ;; lacks some features that they would like to proxy over (like
5973 ;; a /sys mount).
d04687dc
HG
5974 (substitute* '("Makefile.in")
5975 (("src/platform/tests/test-address-linux") " ")
5976 (("src/platform/tests/test-cleanup-linux") " ")
5977 (("src/platform/tests/test-link-linux") " ")
5978 (("src/platform/tests/test-route-linux") " ")
02710a9b 5979 (("src/devices/tests/test-acd") "")
d04687dc
HG
5980 (("src/devices/tests/test-arping") " ")
5981 (("src/devices/tests/test-lldp") " ")
5982 (("src/tests/test-route-manager-linux") " "))
b4f59d87 5983 #t))
45f80fce
RW
5984 (add-after 'unpack 'delete-failing-tests
5985 (lambda _
02710a9b 5986 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
5987 ;; ERROR:libnm-core/tests/test-general.c:5842:
5988 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
5989 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
5990 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
5991 ;; ERROR:libnm-core/tests/test-setting.c:907:
5992 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
5993 (substitute* "Makefile.in"
5994 (("libnm-core/tests/test-general") " ")
5995 (("libnm-core/tests/test-keyfile") " ")
02710a9b 5996 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 5997 #t))
ba5dd105
SB
5998 (add-before 'check 'pre-check
5999 (lambda _
6000 ;; For the missing /etc/machine-id.
6001 (setenv "DBUS_FATAL_WARNINGS" "0")
6002 #t))
6003 (replace 'install
6004 (lambda _
45f80fce
RW
6005 (invoke "make"
6006 "sysconfdir=/tmp"
6007 "rundir=/tmp"
6008 "statedir=/tmp"
6009 "nmstatedir=/tmp/nm"
6010 "install")
6011 #t)))))
b93502d6
DC
6012 (propagated-inputs
6013 `(("glib" ,glib)))
ba5dd105
SB
6014 (native-inputs
6015 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6016 ("gobject-introspection" ,gobject-introspection)
d04687dc 6017 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6018 ("intltool" ,intltool)
d04687dc
HG
6019 ("libxslt" ,libxslt)
6020 ("libxml2" ,libxml2)
ba5dd105
SB
6021 ("pkg-config" ,pkg-config)
6022 ;; For testing.
6023 ("python" ,python-wrapper)
6024 ("python-dbus" ,python-dbus)
6025 ("python-pygobject" ,python-pygobject)))
6026 (inputs
02710a9b
RW
6027 `(("coreutils" ,coreutils) ; for ls
6028 ("curl" ,curl)
856ca567
KK
6029 ("cyrus-sasl" ,cyrus-sasl)
6030 ("dbus-glib" ,dbus-glib)
ba5dd105 6031 ("dnsmasq" ,dnsmasq)
856ca567 6032 ("eudev" ,eudev)
ba5dd105
SB
6033 ("gnutls" ,gnutls)
6034 ("iptables" ,iptables)
6035 ("isc-dhcp" ,isc-dhcp)
d04687dc 6036 ("jansson" ,jansson)
ba5dd105
SB
6037 ("libgcrypt" ,libgcrypt)
6038 ("libgudev" ,libgudev)
6039 ("libndp" ,libndp)
6040 ("libnl" ,libnl)
6041 ("libsoup" ,libsoup)
142bdcbc 6042 ("modem-manager" ,modem-manager)
c27e02bf 6043 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6044 ("polkit" ,polkit)
6045 ("ppp" ,ppp)
6046 ("readline" ,readline)
fd070f35
CM
6047 ("util-linux" ,util-linux)
6048 ("elogind" ,elogind)))
ba5dd105 6049 (synopsis "Network connection manager")
f032d0be 6050 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6051 (description
6052 "NetworkManager is a system network service that manages your network
6053devices and connections, attempting to keep active network connectivity when
6054available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6055devices, and provides VPN integration with a variety of different VPN
6056services.")
29d2f451
LC
6057 (license license:gpl2+)
6058 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6059
f2b96b3a
LC
6060(define-public network-manager-openvpn
6061 (package
6062 (name "network-manager-openvpn")
be1c4b07 6063 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6064 (version "1.8.10")
f2b96b3a
LC
6065 (source (origin
6066 (method url-fetch)
6067 (uri (string-append
6068 "mirror://gnome/sources/NetworkManager-openvpn/"
6069 (version-major+minor version)
6070 "/NetworkManager-openvpn-" version ".tar.xz"))
6071 (sha256
6072 (base32
7d87eede 6073 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6074 (build-system gnu-build-system)
6075 (arguments
633422b0
JL
6076 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6077 #:phases
6078 (modify-phases %standard-phases
6079 (add-after 'configure 'patch-path
6080 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6081 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6082 "/sbin/openvpn"))
6083 (modprobe (string-append (assoc-ref inputs "kmod")
6084 "/bin/modprobe"))
6085 (pretty-ovpn (string-append "\"" ovpn "\"")))
6086 (for-each
6087 (lambda (file)
6088 (substitute* file
6089 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6090 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6091 (("\"/sbin/openvpn\"") pretty-ovpn)
6092 (("/sbin/modprobe") modprobe)))
6093 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6094 #t)))))
f2b96b3a
LC
6095 (native-inputs
6096 `(("pkg-config" ,pkg-config)
6097 ("intltool" ,intltool)))
6098 (inputs
6099 `(("gtk+" ,gtk+)
633422b0 6100 ("kmod" ,kmod)
f2b96b3a
LC
6101 ("openvpn" ,openvpn)
6102 ("network-manager" ,network-manager)
6103 ("network-manager-applet" ,network-manager-applet) ;for libnma
6104 ("libsecret" ,libsecret)))
6105 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6106 (synopsis "OpenVPN plug-in for NetworkManager")
6107 (description
6108 "This extension of NetworkManager allows it to take care of connections
6109to virtual private networks (VPNs) via OpenVPN.")
6110 (license license:gpl2+)
6111 (properties `((upstream-name . "NetworkManager-openvpn")))))
6112
d376129f
JL
6113(define-public network-manager-vpnc
6114 (package
6115 (name "network-manager-vpnc")
6116 (version "1.2.6")
6117 (source (origin
6118 (method url-fetch)
6119 (uri (string-append
6120 "mirror://gnome/sources/NetworkManager-vpnc/"
6121 (version-major+minor version)
6122 "/NetworkManager-vpnc-" version ".tar.xz"))
6123 (sha256
6124 (base32
6125 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6126 (build-system gnu-build-system)
6127 (arguments
6128 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6129 #:phases
6130 (modify-phases %standard-phases
6131 (add-after 'configure 'patch-path
6132 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6133 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6134 "/sbin/vpnc"))
6135 (modprobe (string-append (assoc-ref inputs "kmod")
6136 "/bin/modprobe"))
6137 (pretty-ovpn (string-append "\"" vpnc "\"")))
6138 (substitute* "src/nm-vpnc-service.c"
6139 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6140 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6141 (("\"/sbin/vpnc\"") pretty-ovpn)
6142 (("/sbin/modprobe") modprobe)))
6143 #t)))))
6144 (native-inputs
6145 `(("pkg-config" ,pkg-config)
6146 ("intltool" ,intltool)))
6147 (inputs
6148 `(("gtk+" ,gtk+)
6149 ("kmod" ,kmod)
6150 ("vpnc" ,vpnc)
6151 ("network-manager" ,network-manager)
6152 ("network-manager-applet" ,network-manager-applet) ;for libnma
6153 ("libsecret" ,libsecret)))
6154 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6155 (synopsis "VPNC plug-in for NetworkManager")
6156 (description
6157 "Support for configuring virtual private networks based on VPNC.
6158Compatible with Cisco VPN concentrators configured to use IPsec.")
6159 (license license:gpl2+)
6160 (properties `((upstream-name . "NetworkManager-vpnc")))))
6161
8378c87a
EF
6162(define-public network-manager-openconnect
6163 (package
6164 (name "network-manager-openconnect")
6165 (version "1.2.6")
6166 (source (origin
6167 (method url-fetch)
6168 (uri (string-append
6169 "mirror://gnome/sources/NetworkManager-openconnect/"
6170 (version-major+minor version)
6171 "/NetworkManager-openconnect-" version ".tar.xz"))
6172 (sha256
6173 (base32
6174 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6175 (build-system gnu-build-system)
6176 (arguments
6177 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6178 #:phases
6179 (modify-phases %standard-phases
6180 (add-after 'configure 'patch-path
6181 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6182 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6183 "/sbin/openconnect"))
6184 (modprobe (string-append (assoc-ref inputs "kmod")
6185 "/bin/modprobe"))
6186 (pretty-ovpn (string-append "\"" openconnect "\"")))
6187 (substitute* "src/nm-openconnect-service.c"
6188 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6189 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6190 (("/sbin/modprobe") modprobe)))
6191 #t)))))
6192 (native-inputs
6193 `(("intltool" ,intltool)
6194 ("network-manager-applet" ,network-manager-applet) ;for libnma
6195 ("pkg-config" ,pkg-config)))
6196 (inputs
6197 `(("gcr" ,gcr)
6198 ("gtk+" ,gtk+)
6199 ("kmod" ,kmod)
6200 ("libsecret" ,libsecret)
6201 ("libxml2" ,libxml2)
6202 ("network-manager" ,network-manager)
6203 ("openconnect" ,openconnect)))
6204 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6205 (synopsis "OpenConnect plug-in for NetworkManager")
6206 (description
6207 "This extension of NetworkManager allows it to take care of connections
6208to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6209Cisco's AnyConnect SSL VPN.")
6210 (license license:gpl2+)
e52b9534
LC
6211 (properties `((upstream-name . "NetworkManager-openconnect")
6212
6213 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6214 ;; file refers to account "nm-openconnect". Specify it here
6215 ;; so that 'network-manager-service-type' creates it.
6216 (user-accounts . ("nm-openconnect"))))))
8378c87a 6217
e5e1df4d
DC
6218(define-public mobile-broadband-provider-info
6219 (package
6220 (name "mobile-broadband-provider-info")
310c89e3 6221 (version "20190116")
e5e1df4d
DC
6222 (source (origin
6223 (method url-fetch)
6224 (uri (string-append
6225 "mirror://gnome/sources/"
6226 "mobile-broadband-provider-info/" version "/"
6227 "mobile-broadband-provider-info-" version ".tar.xz"))
6228 (sha256
6229 (base32
310c89e3 6230 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6231 (build-system gnu-build-system)
6232 (arguments
310c89e3 6233 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6234 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6235 (synopsis "Database of broadband connection configuration")
6236 (description "Database of broadband connection configuration.")
6237 (license license:public-domain)))
6238
4d62a9d3
SB
6239(define-public network-manager-applet
6240 (package
6241 (name "network-manager-applet")
8fc3a337 6242 (version "1.8.24")
4d62a9d3
SB
6243 (source (origin
6244 (method url-fetch)
3df63444 6245 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6246 (version-major+minor version) "/"
3df63444 6247 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6248 (sha256
6249 (base32
8fc3a337 6250 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6251 (build-system meson-build-system)
6252 (arguments
be1c4b07
TGR
6253 '(#:configure-flags
6254 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6255 (list "-Dlibnm_gtk=true")
6256 #:glib-or-gtk? #t))
4d62a9d3
SB
6257 (native-inputs
6258 `(("intltool" ,intltool)
cd7f718e 6259 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6260 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6261 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6262 ("pkg-config" ,pkg-config)))
6263 (propagated-inputs
6264 ;; libnm-gtk.pc refers to all these.
6265 `(("dbus-glib" ,dbus-glib)
6266 ("gtk+" ,gtk+)
6267 ("network-manager" ,network-manager)))
6268 (inputs
cd7f718e
RW
6269 `(("gcr" ,gcr)
6270 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6271 ("libgudev" ,libgudev)
6272 ("libnotify" ,libnotify)
2116bfb3 6273 ("libsecret" ,libsecret)
240cee8a
KK
6274 ("libselinux" ,libselinux)
6275 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6276 ("modem-manager" ,modem-manager)
6277 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6278 (synopsis "Applet for managing network connections")
f032d0be 6279 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6280 (description
6281 "This package contains a systray applet for NetworkManager. It displays
6282the available networks and allows users to easily switch between them.")
6283 (license license:gpl2+)))
56196594
RW
6284
6285(define-public libxml++
6286 (package
6287 (name "libxml++")
8344a85e 6288 (version "3.0.1")
56196594
RW
6289 (source (origin
6290 (method url-fetch)
6291 (uri (string-append "mirror://gnome/sources/" name "/"
6292 (version-major+minor version) "/"
6293 name "-" version ".tar.xz"))
6294 (sha256
6295 (base32
8344a85e 6296 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6297 (build-system gnu-build-system)
6298 ;; libxml++-3.0.pc refers to all these.
6299 (propagated-inputs
6300 `(("libxml2" ,libxml2)
6301 ("glibmm" ,glibmm)))
6302 (native-inputs
6303 `(("perl" ,perl)
6304 ("pkg-config" ,pkg-config)))
6305 (home-page "http://libxmlplusplus.sourceforge.net/")
6306 (synopsis "C++ wrapper for XML parser library libxml2")
6307 (description
6308 "This package provides a C++ wrapper for the XML parser library
6309libxml2.")
6310 (license license:lgpl2.1+)))
df12f04a 6311
b61d9627
AW
6312(define-public libxml++-2
6313 (package
6314 (inherit libxml++)
6315 (name "libxml++")
6316 (version "2.40.1")
6317 (source (origin
6318 (method url-fetch)
6319 (uri (string-append "mirror://gnome/sources/" name "/"
6320 (version-major+minor version) "/"
6321 name "-" version ".tar.xz"))
6322 (sha256
6323 (base32
6324 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6325
df12f04a
SB
6326(define-public gdm
6327 (package
6328 (name "gdm")
bcca95dc 6329 (version "3.32.0")
df12f04a
SB
6330 (source (origin
6331 (method url-fetch)
6332 (uri (string-append "mirror://gnome/sources/" name "/"
6333 (version-major+minor version) "/"
6334 name "-" version ".tar.xz"))
6335 (sha256
6336 (base32
bcca95dc 6337 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6338 (build-system glib-or-gtk-build-system)
df12f04a
SB
6339 (arguments
6340 '(#:configure-flags
af37e6bb 6341 `("--without-plymouth"
957dbc0a 6342 "--disable-systemd-journal"
51bc8357
TS
6343
6344 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6345 ;; instead of having to replace it (i.e., stopping the mingetty
6346 ;; service for TTY 1 before starting GDM).
6347 "--with-initial-vt=7"
6348
89c86562
TS
6349 ;; Use '/etc/environment' for locale settings instead of the
6350 ;; systemd-specific '/etc/locale.conf'.
6351 "--with-lang-file=/etc/environment"
6352
b74ef0ba
RW
6353 ,(string-append "--with-udevdir="
6354 (assoc-ref %outputs "out") "/lib/udev")
6355
af37e6bb
AW
6356 "--localstatedir=/var"
6357 ,(string-append "--with-default-path="
6358 (string-join '("/run/setuid-programs"
6359 "/run/current-system/profile/bin"
6360 "/run/current-system/profile/sbin")
957dbc0a
AW
6361 ":"))
6362 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6363 ;; XDG_DATA_DIRS so that it finds its schemas.
6364 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6365 #:phases
6366 (modify-phases %standard-phases
6367 (add-before
6368 'configure 'pre-configure
e8c6e771 6369 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6370 ;; We don't have <systemd/sd-daemon.h>.
6371 (substitute* '("common/gdm-log.c"
6372 "daemon/gdm-server.c"
6373 "daemon/gdm-session-worker.c"
6374 "daemon/gdm-session-worker-job.c")
6375 (("#include <systemd/sd-daemon\\.h>") ""))
6376 ;; Use elogind for sd-login.
6377 (substitute* '("common/gdm-common.c"
6378 "daemon/gdm-manager.c"
6379 "libgdm/gdm-user-switching.c")
6380 (("#include <systemd/sd-login\\.h>")
6381 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6382 ;; Check for elogind.
6383 (substitute* '("configure")
6384 (("libsystemd")
6385 "libelogind"))
af37e6bb
AW
6386 ;; Look for system-installed sessions in
6387 ;; /run/current-system/profile/share.
6388 (substitute* '("libgdm/gdm-sessions.c"
6389 "daemon/gdm-session.c"
6390 "daemon/gdm-display.c"
6391 "daemon/gdm-launch-environment.c")
6392 (("DATADIR \"/x")
6393 "\"/run/current-system/profile/share/x")
6394 (("DATADIR \"/wayland")
6395 "\"/run/current-system/profile/share/wayland")
6396 (("DATADIR \"/gnome")
6397 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6398 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6399 "GDM_DBUS_DAEMON"
c9ff92b5 6400 "GDM_X_SERVER"
41fa9f18 6401 "GDM_X_SESSION"
c9ff92b5
TS
6402 ;; XXX: Remove this once GNOME Shell is
6403 ;; a dependency of GDM.
6404 "XDG_DATA_DIRS")))
6405 (substitute* "daemon/gdm-session.c"
6406 (("set_up_session_environment \\(self\\);")
6407 (apply string-append
6408 "set_up_session_environment (self);\n"
6409 (map (lambda (name)
6410 (string-append
6411 "gdm_session_set_environment_variable "
6412 "(self, \"" name "\","
6413 "g_getenv (\"" name "\"));\n"))
6414 propagate)))))
a430a350
TS
6415 ;; Find the configuration file using an environment variable.
6416 (substitute* '("common/gdm-settings.c")
e0e6756f 6417 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6418 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6419 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6420 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6421 ;; Use service-supplied path to X.
6422 (substitute* '("daemon/gdm-server.c")
6423 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6424 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6425 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6426 (("\"dbus-daemon\"")
6427 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6428 (("X_SERVER")
41fa9f18
TS
6429 "g_getenv (\"GDM_X_SERVER\")")
6430 (("GDMCONFDIR \"/Xsession\"")
6431 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6432 ;; Use an absolute path for GNOME Session.
6433 (substitute* "daemon/gdm-launch-environment.c"
6434 (("\"gnome-session\"")
6435 (string-append "\"" (assoc-ref inputs "gnome-session")
6436 "/bin/gnome-session\"")))
e8c6e771
TS
6437 ;; Do not automatically select the placeholder session.
6438 (substitute* "daemon/gdm-session.c"
6439 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6440 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6441 "(g_strcmp0(search_dirs[i], \""
6442 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6443 "\") == 0 && "
6444 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6445 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6446 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6447 #t))
8caa4589
TS
6448 ;; GDM requires that there be at least one desktop entry
6449 ;; file. This phase installs a hidden one that simply
6450 ;; fails. This enables users to use GDM with a
6451 ;; '~/.xsession' script with no other desktop entry files.
6452 ;; See <https://bugs.gnu.org/35068>.
6453 (add-after 'install 'install-placeholder-desktop-entry
6454 (lambda* (#:key inputs outputs #:allow-other-keys)
6455 (let* ((out (assoc-ref outputs "out"))
6456 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6457 (fail (string-append sessions "/fail.desktop")))
6458 (mkdir-p sessions)
6459 (with-output-to-file fail
6460 (lambda ()
6461 (for-each
6462 display
6463 '("[Desktop Entry]\n"
6464 "Encoding=UTF-8\n"
6465 "Type=Application\n"
6466 "Name=Fail\n"
6467 "Comment=This session fails immediately.\n"
6468 "NoDisplay=true\n"
6469 "Exec=false\n"))))
6470 #t)))
69544798
TS
6471 ;; GDM needs GNOME Session to run these applications. We link
6472 ;; their autostart files in `share/gdm/greeter/autostart'
6473 ;; because GDM explicitly tells GNOME Session to look there.
6474 ;;
6475 ;; XXX: GNOME Shell should be linked here too, but currently
6476 ;; GNOME Shell depends on GDM.
6477 (add-after 'install 'link-autostart-files
6478 (lambda* (#:key inputs outputs #:allow-other-keys)
6479 (let* ((out (assoc-ref outputs "out"))
6480 (autostart (string-append out "/share/gdm/"
6481 "greeter/autostart"))
6482 (settings (assoc-ref inputs "gnome-settings-daemon")))
6483 (mkdir-p autostart)
6484 (with-directory-excursion autostart
6485 (for-each (lambda (desktop)
6486 (symlink desktop (basename desktop)))
6487 (find-files (string-append settings "/etc/xdg"))))
6488 #t))))))
df12f04a
SB
6489 (native-inputs
6490 `(("dconf" ,dconf)
6491 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6492 ("gobject-introspection" ,gobject-introspection)
6493 ("intltool" ,intltool)
6494 ("itstool" ,itstool)
6495 ("pkg-config" ,pkg-config)
6496 ("xmllint" ,libxml2)))
6497 (inputs
6498 `(("accountsservice" ,accountsservice)
6499 ("check" ,check) ; for testing
6500 ("elogind" ,elogind)
def6d6b6 6501 ("gnome-session" ,gnome-session)
69544798 6502 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6503 ("gtk+" ,gtk+)
6504 ("iso-codes" ,iso-codes)
6505 ("libcanberra" ,libcanberra)
6506 ("linux-pam" ,linux-pam)))
6507 (synopsis "Display manager for GNOME")
f032d0be 6508 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6509 (description
6510 "GNOME Display Manager is a system service that is responsible for
6511providing graphical log-ins and managing local and remote displays.")
6512 (license license:gpl2+)))
8e1dd04f
SB
6513
6514(define-public libgtop
6515 (package
6516 (name "libgtop")
015fc036 6517 (version "2.40.0")
8e1dd04f
SB
6518 (source (origin
6519 (method url-fetch)
59487fc2 6520 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6521 (version-major+minor version) "/"
59487fc2 6522 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6523 (sha256
6524 (base32
015fc036 6525 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
6526 (build-system gnu-build-system)
6527 (native-inputs
6528 `(("gobject-introspection" ,gobject-introspection)
6529 ("intltool" ,intltool)
6530 ("perl" ,perl)
6531 ("pkg-config" ,pkg-config)))
6532 (propagated-inputs
6533 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6534 (synopsis "Portable system access library")
6535 (home-page "https://www.gnome.org/")
6536 (description
6537 "LibGTop is a library to get system specific data such as CPU and memory
6538usage and information about running processes.")
6539 (license license:gpl2+)))
b96c4260
SB
6540
6541(define-public gnome-bluetooth
6542 (package
6543 (name "gnome-bluetooth")
723afae6 6544 (version "3.32.1")
b96c4260
SB
6545 (source (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
723afae6 6552 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 6553 (build-system meson-build-system)
b96c4260
SB
6554 (native-inputs
6555 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 6556 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
6557 ("gobject-introspection" ,gobject-introspection)
6558 ("intltool" ,intltool)
6559 ("pkg-config" ,pkg-config)
6560 ("xmllint" ,libxml2)))
6561 (propagated-inputs
6562 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
6563 `(("glib" ,glib)
6564 ("gtk+" ,gtk+)))
b96c4260 6565 (inputs
723afae6
KK
6566 `(("eudev" ,eudev)
6567 ("libcanberra" ,libcanberra)
b96c4260
SB
6568 ("libnotify" ,libnotify)))
6569 (synopsis "GNOME Bluetooth subsystem")
6570 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6571 (description
6572 "This package contains tools for managing and manipulating Bluetooth
6573devices using the GNOME desktop.")
6574 (license license:lgpl2.1+)))
b645146f
SB
6575
6576(define-public gnome-control-center
6577 (package
6578 (name "gnome-control-center")
a6938bac 6579 (version "3.32.2")
b645146f
SB
6580 (source (origin
6581 (method url-fetch)
6582 (uri (string-append "mirror://gnome/sources/" name "/"
6583 (version-major+minor version) "/"
6584 name "-" version ".tar.xz"))
6585 (sha256
6586 (base32
a6938bac 6587 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 6588 (build-system meson-build-system)
b645146f 6589 (arguments
59dac026
RW
6590 '(#:glib-or-gtk? #t
6591 #:configure-flags
64c70430
KK
6592 (list "-Dcheese=false"
6593 (string-append "-Dgnome_session_libexecdir="
6594 (assoc-ref %build-inputs "gnome-session")
6595 "/libexec"))
59dac026 6596 #:phases
b645146f
SB
6597 (modify-phases %standard-phases
6598 (add-before 'configure 'patch-paths
6599 (lambda* (#:key inputs #:allow-other-keys)
6600 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 6601 (tzdata (assoc-ref inputs "tzdata"))
341225ac 6602 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
6603 (nm-applet (assoc-ref inputs "network-manager-applet"))
6604 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
6605 (substitute* "panels/datetime/tz.h"
6606 (("/usr/share/zoneinfo/zone.tab")
6607 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 6608 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
6609 (("/usr/share/locale")
6610 (string-append libc "/share/locale")))
1df38cfc
LC
6611 (substitute* "panels/region/cc-region-panel.c"
6612 (("\"gkbd-keyboard-display")
6613 (string-append "\"" libgnomekbd
6614 "/bin/gkbd-keyboard-display")))
341225ac
LC
6615 (substitute* '("panels/network/net-device-wifi.c"
6616 "panels/network/net-device.c"
6617 "panels/network/connection-editor/net-connection-editor.c")
6618 (("\"nm-connection-editor")
6619 (string-append "\"" nm-applet
6620 "/bin/nm-connection-editor")))
1acd107c
FP
6621 (substitute* '("panels/user-accounts/run-passwd.c")
6622 (("/usr/bin/passwd")
6623 "/run/setuid-programs/passwd"))
64c70430
KK
6624 (substitute* "panels/info/cc-info-overview-panel.c"
6625 (("DATADIR \"/gnome/gnome-version.xml\"")
6626 (string-append "\"" gnome-desktop
6627 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
6628 #t))))))
6629 (native-inputs
6630 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 6631 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
6632 ("intltool" ,intltool)
6633 ("pkg-config" ,pkg-config)
a6938bac
KK
6634 ("xsltproc" ,libxslt)
6635 ;; For tests
6636 ("hicolor-icon-theme" ,hicolor-icon-theme)
6637 ("python-dbusmock" ,python-dbusmock)
6638 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
6639 (inputs
6640 `(("accountsservice" ,accountsservice)
6641 ("clutter-gtk" ,clutter-gtk)
6642 ("colord-gtk" ,colord-gtk)
6643 ("cups" ,cups)
6644 ("dconf" ,dconf)
6645 ("docbook-xsl" ,docbook-xsl)
3446ffb5 6646 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
6647 ("gnome-bluetooth" ,gnome-bluetooth)
6648 ("gnome-desktop" ,gnome-desktop)
6649 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 6650 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 6651 ("gnome-session" ,gnome-session)
b645146f
SB
6652 ("gnome-settings-daemon" ,gnome-settings-daemon)
6653 ("grilo" ,grilo)
a6938bac 6654 ("gsound" ,gsound)
b645146f
SB
6655 ("ibus" ,ibus)
6656 ("libcanberra" ,libcanberra)
1df38cfc 6657 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
6658 ("libgudev" ,libgudev)
6659 ("libgtop" ,libgtop)
6660 ("libpwquality" ,libpwquality)
982c0b36 6661 ("libsecret" ,libsecret)
b645146f
SB
6662 ("libsoup" ,libsoup)
6663 ("libxml2" ,libxml2)
6664 ("libwacom" ,libwacom)
6665 ("mesa" ,mesa)
6666 ("mit-krb5" ,mit-krb5)
6667 ("modem-manager" ,modem-manager)
6668 ("network-manager-applet" ,network-manager-applet)
6669 ("polkit" ,polkit)
6670 ("pulseaudio" ,pulseaudio)
6671 ("smbclient" ,samba)
6672 ("tzdata" ,tzdata)
982c0b36 6673 ("udisks" ,udisks)
b645146f
SB
6674 ("upower" ,upower)))
6675 (synopsis "Utilities to configure the GNOME desktop")
6676 (home-page "https://www.gnome.org/")
6677 (description
6678 "This package contains configuration applets for the GNOME desktop,
6679allowing to set accessibility configuration, desktop fonts, keyboard and mouse
6680properties, sound setup, desktop theme and background, user interface
6681properties, screen resolution, and other GNOME parameters.")
6682 (license license:gpl2+)))
a4df5756
SB
6683
6684(define-public gnome-shell
6685 (package
6686 (name "gnome-shell")
d5e615ca 6687 (version "3.32.2")
a4df5756
SB
6688 (source (origin
6689 (method url-fetch)
6690 (uri (string-append "mirror://gnome/sources/" name "/"
6691 (version-major+minor version) "/"
6692 name "-" version ".tar.xz"))
6693 (sha256
6694 (base32
d5e615ca 6695 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
6696 (patches (search-patches "gnome-shell-theme.patch"))
6697 (modules '((guix build utils)))
6698 (snippet
6699 #~(begin
a76d0f03
LC
6700 ;; Copy images for use on the GDM log-in screen.
6701 (copy-file #$(file-append %artwork-repository
6702 "/slim/0.x/background.png")
6703 "data/theme/guix-background.png")
45fef894
LC
6704 (copy-file #$(file-append %artwork-repository
6705 "/logo/Guix-horizontal-white.svg")
6706 "data/theme/guix-logo.svg")
a76d0f03 6707 #t))))
2b0c755d 6708 (build-system meson-build-system)
a4df5756 6709 (arguments
08185081
MB
6710 `(#:glib-or-gtk? #t
6711 #:disallowed-references ((,glib "bin")
11e1df56
LC
6712 ,inkscape ,libxslt
6713 ,ruby-sass)
2b0c755d
RW
6714 #:configure-flags
6715 (list "-Dsystemd=false"
6716 ;; Otherwise, the RUNPATH will lack the final path component.
6717 (string-append "-Dc_link_args=-Wl,-rpath="
6718 (assoc-ref %outputs "out")
6719 "/lib/gnome-shell"))
11e1df56 6720
08185081 6721 #:modules ((guix build meson-build-system)
11e1df56
LC
6722 (guix build utils)
6723 (srfi srfi-1))
6724
2b0c755d 6725 #:phases
a4df5756 6726 (modify-phases %standard-phases
2b0c755d 6727 (add-after 'unpack 'fix-keysdir
a4df5756
SB
6728 (lambda* (#:key outputs #:allow-other-keys)
6729 (let* ((out (assoc-ref outputs "out"))
6730 (keysdir (string-append
6731 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
6732 (substitute* "meson.build"
6733 (("keysdir =.*")
6734 (string-append "keysdir = '" keysdir "'\n")))
6735 #t)))
ebfe259f
MB
6736 (add-before 'configure 'convert-logo-to-png
6737 (lambda* (#:key inputs #:allow-other-keys)
6738 ;; Convert the logo from SVG to PNG.
6739 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
6740 "data/theme/guix-logo.svg")))
ba00235a 6741 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
6742 (lambda* (#:key inputs #:allow-other-keys)
6743 (substitute* "js/misc/ibusManager.js"
6744 (("'ibus-daemon'")
6745 (string-append "'" (assoc-ref inputs "ibus")
6746 "/bin/ibus-daemon'")))
d6fda4d3
LC
6747 (substitute* "js/ui/status/keyboard.js"
6748 (("'gkbd-keyboard-display'")
6749 (string-append "'" (assoc-ref inputs "libgnomekbd")
6750 "/bin/gkbd-keyboard-display'")))
2472cdec 6751 #t))
2b0c755d
RW
6752 (add-before 'check 'pre-check
6753 (lambda* (#:key inputs #:allow-other-keys)
6754 ;; Tests require a running X server.
6755 (system "Xvfb :1 &")
6756 (setenv "DISPLAY" ":1")
6757 #t))
6758 (add-after 'install 'wrap-programs
6759 (lambda* (#:key inputs outputs #:allow-other-keys)
6760 (let ((out (assoc-ref outputs "out"))
6761 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6762 (python-path (getenv "PYTHONPATH")))
6763 (wrap-program (string-append out "/bin/gnome-shell")
6764 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6765 ;; FIXME: gnome-shell loads these libraries with unqualified
6766 ;; names only, so they need to be on LD_LIBRARY_PATH. The
6767 ;; alternative might be to patch gnome-shell.
6768 `("LD_LIBRARY_PATH" ":" prefix
6769 ,(map (lambda (pkg)
6770 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
6771 '("gdk-pixbuf"
6772 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
6773 (for-each
6774 (lambda (prog)
6775 (wrap-program (string-append out "/bin/" prog)
6776 `("PYTHONPATH" ":" prefix (,python-path))
6777 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6778 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 6779 #t)))
11e1df56
LC
6780 (replace 'glib-or-gtk-wrap
6781 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
6782 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
6783 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
6784 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
6785 ;; phase. Fix that since we don't need these.
6786 (wrap #:inputs (fold alist-delete inputs
6787 '("inkscape" "intltool" "glib:bin"))
6788 #:outputs outputs)))))))
a4df5756
SB
6789 (native-inputs
6790 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 6791 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 6792 ("gobject-introspection" ,gobject-introspection)
ebfe259f 6793 ("inkscape" ,inkscape)
a4df5756
SB
6794 ("intltool" ,intltool)
6795 ("pkg-config" ,pkg-config)
6796 ("python" ,python)
2b0c755d
RW
6797 ("ruby-sass" ,ruby-sass)
6798 ("sassc" ,sassc)
a76d0f03 6799 ("xsltproc" ,libxslt)
2b0c755d 6800 ;; For tests
0b4504f6 6801 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
6802 (inputs
6803 `(("accountsservice" ,accountsservice)
6804 ("caribou" ,caribou)
6805 ("docbook-xsl" ,docbook-xsl)
6806 ("evolution-data-server" ,evolution-data-server)
6807 ("gcr" ,gcr)
6808 ("gdm" ,gdm)
c5db31d4 6809 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
6810 ("gjs" ,gjs)
6811 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
6812 ("gnome-desktop" ,gnome-desktop)
6813 ("gnome-settings-daemon" ,gnome-settings-daemon)
6814 ("gst-plugins-base" ,gst-plugins-base)
6815 ("ibus" ,ibus)
6816 ("libcanberra" ,libcanberra)
6817 ("libcroco" ,libcroco)
d6fda4d3 6818 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
6819 ("libgweather" ,libgweather)
6820 ("libsoup" ,libsoup)
6821 ("mesa-headers" ,mesa-headers)
6822 ("mutter" ,mutter)
6823 ("network-manager-applet" ,network-manager-applet)
6824 ("polkit" ,polkit)
6825 ("pulseaudio" ,pulseaudio)
6826 ("python-pygobject" ,python-pygobject)
6827 ("startup-notification" ,startup-notification)
6828 ("telepathy-logger" ,telepathy-logger)
6829 ("upower" ,upower)
30e760f0
MB
6830 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
6831 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
6832 ("librsvg" ,librsvg)
2b0c755d 6833 ("geoclue" ,geoclue)))
a4df5756
SB
6834 (synopsis "Desktop shell for GNOME")
6835 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
6836 (description
6837 "GNOME Shell provides core user interface functions for the GNOME desktop,
6838like switching to windows and launching applications.")
6839 (license license:gpl2+)))
c3f29bc9
RS
6840
6841(define-public gtk-vnc
6842 (package
6843 (name "gtk-vnc")
965ff023 6844 (version "0.9.0")
c3f29bc9
RS
6845 (source
6846 (origin
6847 (method url-fetch)
6848 (uri (string-append "mirror://gnome/sources/" name "/"
6849 (version-major+minor version) "/"
6850 name "-" version ".tar.xz"))
6851 (sha256
6852 (base32
965ff023 6853 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
6854 (build-system gnu-build-system)
6855 (arguments
6856 '(#:configure-flags '("--with-gtk=3.0")))
6857 (propagated-inputs
6858 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
6859 (inputs
6860 `(("cyrus-sasl" ,cyrus-sasl)
6861 ("gnutls" ,gnutls)
6862 ("libgcrypt" ,libgcrypt)
6863 ("pulseaudio" ,pulseaudio)))
6864 (native-inputs
6865 `(("glib:bin" ,glib "bin")
6866 ("gobject-introspection" ,gobject-introspection)
6867 ("intltool" ,intltool)
6868 ("pkg-config" ,pkg-config)
2f17e939 6869 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
6870 ("vala" ,vala)))
6871 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
6872 (synopsis "VNC viewer widget for GTK+")
6873 (description
6874 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
6875applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
6876GTK-VNC implements client side RFB protocol and authentication extensions such
6877as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
6878 (license license:lgpl2.1+)))
8b877545 6879
dc69fe18
MW
6880(define-public gnome-autoar
6881 (package
6882 (name "gnome-autoar")
c7da8510 6883 (version "0.2.3")
dc69fe18
MW
6884 (source (origin
6885 (method url-fetch)
6886 (uri (string-append "mirror://gnome/sources/" name "/"
6887 (version-major+minor version) "/"
6888 name "-" version ".tar.xz"))
6889 (sha256
6890 (base32
c7da8510 6891 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
6892 (build-system glib-or-gtk-build-system)
6893 (native-inputs
6894 `(("gnome-common" ,gnome-common)
6895 ("gobject-introspection" ,gobject-introspection)
6896 ("pkg-config" ,pkg-config)))
6897 (propagated-inputs
6898 `(("libarchive" ,libarchive))) ; XXX document why
6899 (inputs
0a6e9e13 6900 `(("gtk+" ,gtk+)))
dc69fe18
MW
6901 (synopsis "Archives integration support for GNOME")
6902 (home-page "https://git.gnome.org/browse/gnome-autoar/")
6903 (description
6904 "GNOME Autoar is a library which makes creating and extracting archives
6905easy, safe, and automatic.")
6906 (license license:lgpl2.1+)))
6907
b64e217f
MW
6908(define-public tracker
6909 (package
6910 (name "tracker")
5ada561c 6911 (version "2.2.2")
b64e217f
MW
6912 (source (origin
6913 (method url-fetch)
b5b0fd23 6914 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 6915 (version-major+minor version) "/"
b5b0fd23 6916 "tracker-" version ".tar.xz"))
b64e217f
MW
6917 (sha256
6918 (base32
5ada561c
KK
6919 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
6920 (build-system meson-build-system)
c8bdf589 6921 (arguments
5ada561c
KK
6922 `(#:glib-or-gtk? #t
6923 #:configure-flags
6924 ;; Otherwise, the RUNPATH will lack the final path component.
6925 (list (string-append "-Dc_link_args=-Wl,-rpath="
6926 (assoc-ref %outputs "out") "/lib:"
6927 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
6928 #:phases
c8bdf589
RW
6929 (modify-phases %standard-phases
6930 (add-after 'unpack 'disable-broken-tests
6931 (lambda _
c8bdf589
RW
6932 ;; These fail because the SPARQL backend could not be loaded.
6933 ;; That's because /etc/machine-id is missing, but
6934 ;; DBUS_FATAL_WARNINGS does not help here.
5ada561c
KK
6935 (substitute* "tests/libtracker-sparql/meson.build"
6936 (("'sparql',") ""))
6937 (substitute* "tests/tracker-steroids/meson.build"
6938 (("test\\(.*") ""))
c8bdf589
RW
6939 #t))
6940 ;; Two tests fail if LANG is not set.
6941 (add-before 'check 'pre-check
6942 (lambda _
6943 (setenv "LANG" "en_US.UTF-8")
6944 ;; For the missing /etc/machine-id.
6945 (setenv "DBUS_FATAL_WARNINGS" "0")
6946 #t)))))
b64e217f 6947 (native-inputs
5ada561c
KK
6948 `(("glib:bin" ,glib "bin")
6949 ("gnome-common" ,gnome-common)
b64e217f 6950 ("gobject-introspection" ,gobject-introspection)
5ada561c 6951 ("python-pygobject" ,python-pygobject)
b64e217f
MW
6952 ("intltool" ,intltool)
6953 ("pkg-config" ,pkg-config)
6954 ("vala" ,vala)))
6955 (inputs
6956 `(("gtk+" ,gtk+)
6957 ("dbus" ,dbus)
44ed6284 6958 ("sqlite" ,sqlite)
c8bdf589 6959 ("python" ,python)
b64e217f 6960 ("poppler" ,poppler)
b64e217f
MW
6961 ("libpng" ,libpng)
6962 ("libtiff" ,libtiff)
b64e217f 6963 ("zlib" ,zlib)
b64e217f 6964 ("libxml2" ,libxml2)
b64e217f 6965 ("libunistring" ,libunistring)
0ef48cd9 6966 ("json-glib" ,json-glib)
b64e217f 6967 ("openjpeg" ,openjpeg-1)
b64e217f 6968 ("libseccomp" ,libseccomp)
0ef48cd9 6969 ("libsoup" ,libsoup)
5ada561c
KK
6970 ("libuuid" ,util-linux)
6971 ("network-manager" ,network-manager)))
b64e217f
MW
6972 (synopsis "Metadata database, indexer and search tool")
6973 (home-page "https://wiki.gnome.org/Projects/Tracker")
6974 (description
6975 "Tracker is an advanced framework for first class objects with associated
6976metadata and tags. It provides a one stop solution for all metadata, tags,
6977shared object databases, search tools and indexing.")
6978 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
6979 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
6980 (license (list license:gpl2+
6981 license:lgpl2.1+
6982 license:lgpl2.0+))))
6983
03be9874
KK
6984(define-public tracker-miners
6985 (package
6986 (name "tracker-miners")
6987 (version "2.2.2")
6988 (source (origin
6989 (method url-fetch)
6990 (uri (string-append "mirror://gnome/sources/tracker-miners/"
6991 (version-major+minor version)
6992 "/tracker-miners-" version ".tar.xz"))
6993 (sha256
6994 (base32
6995 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
6996 (build-system meson-build-system)
6997 (arguments
6998 `(#:glib-or-gtk? #t
6999 #:configure-flags
7000 (list "-Dminer_rss=false" ; libgrss is required.
7001 ;; Ensure the RUNPATH contains all installed library locations.
7002 (string-append "-Dc_link_args=-Wl,-rpath="
7003 (assoc-ref %outputs "out")
7004 "/lib/tracker-miners-2.0")
7005 ;; TODO: Enable functional tests. Currently, the following error
7006 ;; appears:
7007 ;; Exception: The functional tests require DConf to be the default
7008 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7009 "-Dfunctional_tests=false")))
7010 (native-inputs
7011 `(("dbus" ,dbus)
7012 ("intltool" ,intltool)
7013 ("glib:bin" ,glib "bin")
7014 ("gobject-introspection" ,gobject-introspection)
7015 ("pkg-config" ,pkg-config)
7016 ("python-pygobject" ,python-pygobject)))
7017 (inputs
7018 `(("exempi" ,exempi)
7019 ("ffmpeg" ,ffmpeg)
7020 ("flac" ,flac)
7021 ("giflib" ,giflib)
7022 ("glib" ,glib)
7023 ("gstreamer" ,gstreamer)
7024 ("icu4c" ,icu4c)
7025 ("libcue" ,libcue)
7026 ("libexif" ,libexif)
7027 ("libgsf" ,libgsf)
7028 ("libgxps" ,libgxps)
7029 ("libiptcdata" ,libiptcdata)
7030 ("libjpeg" ,libjpeg)
7031 ("libosinfo" ,libosinfo)
7032 ("libpng" ,libpng)
7033 ("libseccomp" ,libseccomp)
7034 ("libtiff" ,libtiff)
7035 ("libvorbis" ,libvorbis)
7036 ("libxml2" ,libxml2)
7037 ("poppler" ,poppler)
7038 ("taglib" ,taglib)
7039 ("totem-pl-parser" ,totem-pl-parser)
7040 ("tracker" ,tracker)
7041 ("upower" ,upower)
7042 ("zlib" ,zlib)))
7043 (synopsis "Metadata database, indexer and search tool")
7044 (home-page "https://wiki.gnome.org/Projects/Tracker")
7045 (description
7046 "Tracker is an advanced framework for first class objects with associated
7047metadata and tags. It provides a one stop solution for all metadata, tags,
7048shared object databases, search tools and indexing.")
7049 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7050 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7051 (license (list license:gpl2+
7052 license:lgpl2.1+
7053 license:lgpl2.0+))))
7054
8b877545
RS
7055(define-public nautilus
7056 (package
7057 (name "nautilus")
d682c599 7058 (version "3.32.3")
8b877545
RS
7059 (source (origin
7060 (method url-fetch)
7061 (uri (string-append "mirror://gnome/sources/" name "/"
7062 (version-major+minor version) "/"
7063 name "-" version ".tar.xz"))
7064 (sha256
7065 (base32
d682c599 7066 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7067 (build-system meson-build-system)
8b877545 7068 (arguments
35e2d0cf 7069 '(#:glib-or-gtk? #t
8b877545
RS
7070 ;; XXX: FAIL: check-nautilus
7071 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7072 #:tests? #f))
7073 (native-inputs
35e2d0cf
R
7074 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7075 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7076 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7077 ("gobject-introspection" ,gobject-introspection)
7078 ("intltool" ,intltool)
7079 ("pkg-config" ,pkg-config)))
8b877545 7080 (inputs
8b877545 7081 `(("dconf" ,dconf)
caf6c363 7082 ("gexiv2" ,gexiv2)
dd05e731 7083 ("gvfs" ,gvfs)
8b877545
RS
7084 ("exempi" ,exempi)
7085 ("gnome-desktop" ,gnome-desktop)
09d88905 7086 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7087 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7088 ("libseccomp" ,libseccomp)
35e2d0cf 7089 ("libselinux" ,libselinux)
09d88905 7090 ("tracker" ,tracker)
3cafb9d4 7091 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7092 ;; XXX: gtk+ is required by libnautilus-extension.pc
7093 ;;
7094 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7095 ;; package. See:
7096 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7097 ("gtk+" ,gtk+)
8b877545
RS
7098 ("libexif" ,libexif)
7099 ("libxml2" ,libxml2)))
7100 (synopsis "File manager for GNOME")
7101 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7102 (description
7103 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7104design and behaviour, giving the user a simple way to navigate and manage its
7105files.")
7106 (license license:gpl2+)))
3c697ffd
JR
7107
7108(define-public baobab
7109 (package
7110 (name "baobab")
e0c5f20c 7111 (version "3.32.0")
3c697ffd
JR
7112 (source (origin
7113 (method url-fetch)
7114 (uri (string-append
7115 "mirror://gnome/sources/" name "/"
7116 (version-major+minor version) "/"
7117 name "-" version ".tar.xz"))
7118 (sha256
7119 (base32
e0c5f20c 7120 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7121 (build-system meson-build-system)
7122 (arguments
7123 '(#:glib-or-gtk? #t))
3c697ffd
JR
7124 (native-inputs
7125 `(("intltool" ,intltool)
7126 ("pkg-config" ,pkg-config)
d233d373
RJ
7127 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7128 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7129 ("itstool" ,itstool)
7130 ("xmllint" ,libxml2)
7131 ("glib" ,glib "bin")
7132 ("vala" ,vala)))
7133 (inputs
7134 `(("gtk+" ,gtk+)))
7135 (synopsis "Disk usage analyzer for GNOME")
7136 (description
7137 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7138usage in the GNOME desktop environment. It can easily scan device volumes or
7139a specific user-requested directory branch (local or remote). Once the scan
7140is complete it provides a graphical representation of each selected folder.")
7141 (home-page "https://wiki.gnome.org/Apps/Baobab")
7142 (license license:gpl2+)))
dc050251 7143
fdba447c
RS
7144(define-public gnome-backgrounds
7145 (package
7146 (name "gnome-backgrounds")
e04e8a8c 7147 (version "3.32.0")
fdba447c
RS
7148 (source
7149 (origin
7150 (method url-fetch)
7151 (uri (string-append "mirror://gnome/sources/" name "/"
7152 (version-major+minor version) "/"
7153 name "-" version ".tar.xz"))
7154 (sha256
7155 (base32
e04e8a8c 7156 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7157 (build-system meson-build-system)
fdba447c
RS
7158 (native-inputs
7159 `(("intltool" ,intltool)))
e04e8a8c 7160 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7161 (synopsis "Background images for the GNOME desktop")
7162 (description
7163 "GNOME backgrounds package contains a collection of graphics files which
7164can be used as backgrounds in the GNOME Desktop environment. Additionally,
7165the package creates the proper framework and directory structure so that you
7166can add your own files to the collection.")
7167 (license (list license:gpl2+
7168 license:cc-by2.0
7169 license:cc-by-sa2.0
7170 license:cc-by-sa3.0))))
7171
b784b1a9
RS
7172(define-public gnome-screenshot
7173 (package
7174 (name "gnome-screenshot")
6acf4033 7175 (version "3.32.0")
b784b1a9
RS
7176 (source
7177 (origin
7178 (method url-fetch)
7179 (uri (string-append "mirror://gnome/sources/" name "/"
7180 (version-major+minor version) "/"
7181 name "-" version ".tar.xz"))
7182 (sha256
7183 (base32
6acf4033 7184 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7185 (build-system meson-build-system)
b784b1a9
RS
7186 (native-inputs
7187 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7188 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7189 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7190 ("intltool" ,intltool)
8356aefa 7191 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7192 ("pkg-config" ,pkg-config)))
7193 (inputs
7194 `(("gtk+" ,gtk+)
7195 ("libcanberra" ,libcanberra)
7196 ("libx11" ,libx11)
7197 ("libxext" ,libxext)))
676e7cb4 7198 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7199 (synopsis "Take pictures of your screen")
7200 (description
7201 "GNOME Screenshot is a utility used for taking screenshots of the entire
7202screen, a window or a user defined area of the screen, with optional
7203beautifying border effects.")
7204 (license license:gpl2+)))
7205
66d59111
RS
7206(define-public dconf-editor
7207 (package
7208 (name "dconf-editor")
66261451 7209 (version "3.32.0")
66d59111
RS
7210 (source
7211 (origin
7212 (method url-fetch)
7213 (uri (string-append "mirror://gnome/sources/" name "/"
7214 (version-major+minor version) "/"
7215 name "-" version ".tar.xz"))
7216 (sha256
7217 (base32
66261451 7218 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7219 (build-system meson-build-system)
86f2124b
LC
7220 (arguments
7221 '(#:phases (modify-phases %standard-phases
7222 (add-before 'configure 'set-glib-minimum-version
7223 (lambda _
7224 ;; Change the minimum required GLib version so that
7225 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7226 ;; do that, it complains that "55" is not an even
7227 ;; number. See <https://bugs.gnu.org/37503>.
7228 (substitute* "editor/meson.build"
7229 (("2\\.55\\.1") "2.60.0"))
7230 #t)))))
66d59111
RS
7231 (native-inputs
7232 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7233 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7234 ("intltool" ,intltool)
294ff39d
RW
7235 ("pkg-config" ,pkg-config)
7236 ("vala" ,vala)))
66d59111
RS
7237 (inputs
7238 `(("dconf" ,dconf)
7239 ("gtk+" ,gtk+)
7240 ("libxml2" ,libxml2)))
7241 (home-page "https://git.gnome.org/browse/dconf-editor")
7242 (synopsis "Graphical editor for GNOME's dconf configuration system")
7243 (description
7244 "Dconf-editor is a graphical tool for browsing and editing the dconf
7245configuration system for GNOME. It allows users to configure desktop
7246software that do not provide their own configuration interface.")
7247 (license license:lgpl2.1+)))
7248
96d36f38
AW
7249(define-public gnome-default-applications
7250 (package
7251 (name "gnome-default-applications")
7252 (version "0")
7253 (build-system trivial-build-system)
7254 (source #f)
7255 (propagated-inputs
8ad4f0aa
LC
7256 `(("nautilus" ,nautilus)
7257 ("evince" ,evince)))
96d36f38
AW
7258 (arguments
7259 `(#:modules ((guix build utils))
7260 #:builder
7261 (begin
7262 (use-modules (guix build utils))
7263 (let* ((out (assoc-ref %outputs "out"))
7264 (apps (string-append out "/share/applications")))
7265 (mkdir-p apps)
7266 (call-with-output-file (string-append apps "/defaults.list")
7267 (lambda (port)
7268 (format port "[Default Applications]\n")
8ad4f0aa
LC
7269 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7270 (format port "application/pdf=evince.desktop\n")
7271 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7272 #t))))
7273 (synopsis "Default MIME type associations for the GNOME desktop")
7274 (description
7275 "Given many installed packages which might handle a given MIME type, a
7276user running the GNOME desktop probably has some preferences: for example,
7277that folders be opened by default by the Nautilus file manager, not the Baobab
7278disk usage analyzer. This package establishes that set of default MIME type
7279associations for GNOME.")
7280 (license license:gpl3+)
7281 (home-page #f)))
7282
dc050251
SB
7283(define-public gnome
7284 (package
7285 (name "gnome")
7286 (version (package-version gnome-shell))
7287 (source #f)
7288 (build-system trivial-build-system)
e3cfef22 7289 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7290 (propagated-inputs
8d8c6bff 7291 ;; TODO: Add or remove packages according to:
a8cda7f5 7292 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7293 `(
8d8c6bff 7294 ;; GNOME-Core-OS-Services
7922b6f7 7295 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7296 ("network-manager" ,network-manager)
7297 ("packagekit" ,packagekit)
7298 ("upower" ,upower)
7299 ;; GNOME-Core-Shell
7300 ("adwaita-icon-theme" ,adwaita-icon-theme)
7301 ("gdm" ,gdm)
7302 ("glib-networking" ,glib-networking)
7303 ("gnome-backgrounds" ,gnome-backgrounds)
7304 ("gnome-bluetooth" ,gnome-bluetooth)
7305 ("gnome-control-center" ,gnome-control-center)
7306 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7307 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8d8c6bff 7308 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7309 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7310 ("gnome-session" ,gnome-session)
7311 ("gnome-settings-daemon" ,gnome-settings-daemon)
7312 ("gnome-shell-extensions" ,gnome-shell-extensions)
7313 ("gnome-shell" ,gnome-shell)
7314 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7315 ("gnome-user-docs" ,gnome-user-docs)
a8cda7f5 7316 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7317 ("gvfs" ,gvfs)
7318 ("mutter" ,mutter)
7319 ("orca" ,orca)
7320 ;; GNOME-Core-Utilities
7321 ("baobab" ,baobab)
7322 ("cheese" ,cheese)
7323 ("eog" ,eog)
7324 ("epiphany" ,epiphany)
7325 ("evince" ,evince)
7326 ("file-roller" ,file-roller)
7327 ("gedit" ,gedit)
7328 ("gnome-calculator" ,gnome-calculator)
7329 ("gnome-calendar" ,gnome-calendar)
7330 ("gnome-characters" ,gnome-characters)
7331 ("gnome-clocks" ,gnome-clocks)
7332 ("gnome-contacts" ,gnome-contacts)
7333 ("gnome-disk-utility" ,gnome-disk-utility)
7334 ("gnome-font-viewer" ,gnome-font-viewer)
7335 ("gnome-maps" ,gnome-maps)
7336 ("gnome-screenshot" ,gnome-screenshot)
7337 ("gnome-system-monitor" ,gnome-system-monitor)
7338 ("gnome-terminal" ,gnome-terminal)
7339 ("nautilus" ,nautilus)
7340 ("simple-scan" ,simple-scan)
7341 ("totem" ,totem)
7922b6f7
RG
7342 ("yelp" ,yelp)
7343 ;; Others
7344 ("hicolor-icon-theme" ,hicolor-icon-theme)
7345 ("gnome-online-accounts" ,gnome-online-accounts)))
fe4e698d 7346 (synopsis "The GNU desktop environment")
dc050251
SB
7347 (home-page "https://www.gnome.org/")
7348 (description
fe4e698d
LC
7349 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7350applications for browsing the web, editing text and images, creating
7351documents and diagrams, playing media, scanning, and much more.")
dc050251 7352 (license license:gpl2+)))
4a526711
DT
7353
7354(define-public byzanz
7355 ;; The last stable release of Byzanz was in 2011, but there have been many
7356 ;; useful commits made to the Byzanz repository since then that it would be
7357 ;; silly to use such an old release.
7358 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7359 (package
7360 (name "byzanz")
7361 (version (string-append "0.2-1." (string-take commit 7)))
7362 (source (origin
7363 (method git-fetch)
7364 (uri (git-reference
5f13bf09 7365 (url "https://git.gnome.org/browse/byzanz")
4a526711 7366 (commit commit)))
5a6527e4 7367 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7368 (sha256
7369 (base32
7370 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7371 (build-system glib-or-gtk-build-system)
7372 (arguments
7373 '(#:phases
7374 (modify-phases %standard-phases
189be331 7375 (replace 'bootstrap
4a526711
DT
7376 (lambda _
7377 ;; The build system cleverly detects that we're not building from
7378 ;; a release tarball and turns on -Werror for GCC.
7379 ;; Unsurprisingly, there is a warning during compilation that
7380 ;; causes the build to fail unnecessarily, so we remove the flag.
7381 (substitute* '("configure.ac")
7382 (("-Werror") ""))
7383 ;; The autogen.sh script in gnome-common will run ./configure
7384 ;; by default, which is problematic because source shebangs
7385 ;; have not yet been patched.
7386 (setenv "NOCONFIGURE" "t")
7387 (zero? (system* "sh" "autogen.sh")))))))
7388 (native-inputs
7389 `(("autoconf" ,autoconf)
7390 ("automake" ,automake)
7391 ("gnome-common" ,gnome-common)
7392 ("intltool" ,intltool)
7393 ("libtool" ,libtool)
7394 ("pkg-config" ,pkg-config)
7395 ("which" ,which)))
7396 (inputs
7397 `(("glib" ,glib)
7398 ("gstreamer" ,gstreamer)
7399 ("gst-plugins-base" ,gst-plugins-base)
7400 ("gtk+" ,gtk+)))
7401 (synopsis "Desktop recording program")
7402 (description "Byzanz is a simple desktop recording program with a
7403command-line interface. It can record part or all of an X display for a
7404specified duration and save it as a GIF encoded animated image file.")
7405 (home-page "https://git.gnome.org/browse/byzanz")
7406 (license license:gpl2+))))
3a9a4c51 7407
0ec171ec
MS
7408(define-public gsound
7409 (package
7410 (name "gsound")
7411 (version "1.0.2")
7412 (source (origin
7413 (method url-fetch)
7414 (uri (string-append "mirror://gnome/sources/" name "/"
7415 (version-major+minor version) "/"
7416 name "-" version ".tar.xz"))
7417 (sha256
7418 (base32
7419 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7420 (build-system glib-or-gtk-build-system)
7421 (native-inputs
7422 `(("pkg-config" ,pkg-config)
7423 ("gobject-introspection" ,gobject-introspection)
7424 ("vala" ,vala)))
7425 (inputs
7426 `(("glib" ,glib)
7427 ("libcanberra" ,libcanberra)))
7428 (home-page "https://wiki.gnome.org/Projects/GSound")
7429 (synopsis "GObject wrapper for libcanberra")
7430 (description
7431 "GSound is a small library for playing system sounds. It's designed to be
7432used via GObject Introspection, and is a thin wrapper around the libcanberra C
7433library.")
7434 (license license:lgpl2.1+)))
7435
3a9a4c51
RS
7436(define-public libzapojit
7437 (package
7438 (name "libzapojit")
7439 (version "0.0.3")
7440 (source (origin
7441 (method url-fetch)
7442 (uri (string-append "mirror://gnome/sources/" name "/"
7443 (version-major+minor version) "/"
7444 name "-" version ".tar.xz"))
7445 (sha256
7446 (base32
7447 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7448 (build-system gnu-build-system)
7449 (native-inputs
7450 `(("gobject-introspection" ,gobject-introspection)
7451 ("intltool" ,intltool)
7452 ("pkg-config" ,pkg-config)))
7453 (inputs
14c297fd 7454 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
7455 ("json-glib" ,json-glib)
7456 ("rest" ,rest)))
7457 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7458 (synopsis "Library for accessing SkyDrive and Hotmail")
7459 (description
7460 "Libzapojit is a GLib-based library for accessing online service APIs of
7461Microsoft SkyDrive and Hotmail, using their REST protocols.")
7462 (license license:lgpl2.1+)))
9365ee1c 7463
60e2a9ae
MS
7464(define-public gnome-clocks
7465 (package
7466 (name "gnome-clocks")
c76d0dbc 7467 (version "3.32.0")
60e2a9ae
MS
7468 (source (origin
7469 (method url-fetch)
7470 (uri (string-append "mirror://gnome/sources/" name "/"
7471 (version-major+minor version) "/"
7472 name "-" version ".tar.xz"))
7473 (sha256
7474 (base32
c76d0dbc 7475 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
7476 (build-system meson-build-system)
7477 (arguments
7478 '(#:glib-or-gtk? #t))
7479 (native-inputs
7480 `(("vala" ,vala)
7481 ("pkg-config" ,pkg-config)
7482 ("glib" ,glib "bin") ; for glib-compile-resources
7483 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7484 ("desktop-file-utils" ,desktop-file-utils)
7485 ("gettext" ,gettext-minimal)
7486 ("itstool" ,itstool)))
7487 (inputs
7488 `(("glib" ,glib)
7489 ("gtk+" ,gtk+)
7490 ("gsound" ,gsound)
7491 ("geoclue" ,geoclue)
7492 ("geocode-glib" ,geocode-glib)
7493 ("libgweather" ,libgweather)
7494 ("gnome-desktop" ,gnome-desktop)))
7495 (home-page "https://wiki.gnome.org/Apps/Clocks")
7496 (synopsis "GNOME's clock application")
7497 (description
7498 "GNOME Clocks is a simple clocks application designed to fit the GNOME
7499desktop. It supports world clock, stop watch, alarms, and count down timer.")
7500 (license license:gpl3+)))
7501
3c474897
KY
7502(define-public gnome-calendar
7503 (package
7504 (name "gnome-calendar")
339b59bf 7505 (version "3.32.2")
3c474897
KY
7506 (source (origin
7507 (method url-fetch)
7508 (uri (string-append "mirror://gnome/sources/" name "/"
7509 (version-major+minor version) "/"
7510 name "-" version ".tar.xz"))
7511 (sha256
7512 (base32
339b59bf 7513 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
7514 (build-system meson-build-system)
7515 (arguments
7516 '(#:glib-or-gtk? #t
7517 ;; gnome-calendar has to be installed before the tests can be run
7518 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
7519 #:tests? #f))
3c474897 7520 (native-inputs
a49d3e37
MS
7521 `(("gettext" ,gettext-minimal)
7522 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
7523 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
7524 ("pkg-config" ,pkg-config)))
7525 (inputs
a49d3e37 7526 `(("evolution-data-server" ,evolution-data-server)
14c297fd 7527 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
7528 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7529 ("libdazzle" ,libdazzle)
b63c06f1 7530 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
7531 ("libgweather" ,libgweather)
7532 ("geoclue" ,geoclue)))
3c474897
KY
7533 (home-page "https://wiki.gnome.org/Apps/Calendar")
7534 (synopsis "GNOME's calendar application")
7535 (description
7536 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 7537desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
7538 (license license:gpl3+)))
7539
57b14665
MS
7540(define-public gnome-todo
7541 (package
7542 (name "gnome-todo")
9f3c6c88 7543 (version "3.28.1")
57b14665
MS
7544 (source (origin
7545 (method url-fetch)
7546 (uri (string-append "mirror://gnome/sources/" name "/"
7547 (version-major+minor version) "/"
7548 name "-" version ".tar.xz"))
7549 (sha256
7550 (base32
9f3c6c88 7551 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
7552 (build-system meson-build-system)
7553 (arguments
7554 '(#:glib-or-gtk? #t
7555 #:phases (modify-phases %standard-phases
7556 (add-after
7557 'install 'wrap-gnome-todo
7558 (lambda* (#:key inputs outputs #:allow-other-keys)
7559 (let ((out (assoc-ref outputs "out"))
7560 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7561 (python-path (getenv "PYTHONPATH")))
7562 (wrap-program (string-append out "/bin/gnome-todo")
7563 ;; XXX: gi plugins are broken.
7564 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
7565 ;; For plugins.
7566 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7567 `("PYTHONPATH" ":" prefix (,python-path))))
7568 #t)))))
7569 (native-inputs
7570 `(("gettext" ,gettext-minimal)
7571 ("gobject-introspection" ,gobject-introspection)
7572 ("glib:bin" ,glib "bin") ; For glib-compile-resources
7573 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7574 ("pkg-config" ,pkg-config)))
7575 (inputs
7576 `(("rest" ,rest) ; For Todoist plugin
7577 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 7578 ("libedataserverui" ,evolution-data-server)
57b14665
MS
7579 ("libical" ,libical)
7580 ("libpeas" ,libpeas)
7581 ("python-pygobject" ,python-pygobject)
7582 ("evolution-data-server" ,evolution-data-server)
14c297fd 7583 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
7584 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
7585 (home-page "https://wiki.gnome.org/Apps/Todo")
7586 (synopsis "GNOME's ToDo Application")
7587 (description
7588 "GNOME To Do is a simplistic personal task manager designed to perfectly
7589fit the GNOME desktop.")
7590 (license license:gpl3+)))
7591
ab179eaf
SB
7592(define-public gnome-dictionary
7593 (package
7594 (name "gnome-dictionary")
cf81ddef 7595 (version "3.26.1")
ab179eaf
SB
7596 (source (origin
7597 (method url-fetch)
7598 (uri (string-append "mirror://gnome/sources/" name "/"
7599 (version-major+minor version) "/"
7600 name "-" version ".tar.xz"))
7601 (sha256
7602 (base32
cf81ddef
LC
7603 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
7604 (build-system meson-build-system)
2776b5d5
MB
7605 (arguments '(#:glib-or-gtk? #t
7606 #:phases (modify-phases %standard-phases
7607 (add-after 'unpack 'patch-install-script
7608 (lambda _
7609 ;; This script attempts to compile glib schemas
7610 ;; and create an empty MIME database. We do
7611 ;; that elsewhere, so prevent it from running.
7612 (substitute* "build-aux/post-install.sh"
7613 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
7614 #t)))))
ab179eaf
SB
7615 (native-inputs
7616 `(("glib:bin" ,glib "bin")
7617 ("gobject-introspection" ,gobject-introspection)
7618 ("intltool" ,intltool)
7619 ("itstool" ,itstool)
7620 ("pkg-config" ,pkg-config)
7621 ("xmllint" ,libxml2)))
7622 (inputs
7623 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7624 ("gtk+" ,gtk+)))
7625 (home-page "https://wiki.gnome.org/Apps/Dictionary")
7626 (synopsis "Look up words in dictionary sources")
7627 (description
7628 "GNOME Dictionary can look for the definition or translation of a word in
7629existing databases over the internet.")
7630 (license license:gpl3+)))
7631
d13f3a03 7632(define-public gnome-tweaks
9365ee1c 7633 (package
d13f3a03 7634 (name "gnome-tweaks")
652af676 7635 (version "3.32.0")
9365ee1c
JN
7636 (source (origin
7637 (method url-fetch)
d13f3a03 7638 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 7639 (version-major+minor version) "/"
d13f3a03
RW
7640 "gnome-tweaks-" version ".tar.xz"))
7641 (patches
7642 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
7643 (sha256
7644 (base32
652af676 7645 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 7646 (build-system meson-build-system)
9365ee1c 7647 (arguments
d13f3a03
RW
7648 `(#:glib-or-gtk? #t
7649 #:configure-flags '("-Dlocalstatedir=/tmp"
7650 "-Dsysconfdir=/tmp")
9365ee1c 7651 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
7652 ,@%meson-build-system-modules)
7653 #:phases
7654 (modify-phases %standard-phases
7655 (add-after 'install 'wrap
7656 (@@ (guix build python-build-system) wrap))
7657 (add-after 'wrap 'wrap-gi-typelib
7658 (lambda* (#:key inputs outputs #:allow-other-keys)
7659 (let ((out (assoc-ref outputs "out"))
7660 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7661 (wrap-program (string-append out "/bin/gnome-tweaks")
7662 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7663 #t)))))
9365ee1c 7664 (native-inputs
c7fc414e
RH
7665 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7666 ("intltool" ,intltool)
9365ee1c
JN
7667 ("pkg-config" ,pkg-config)))
7668 (inputs
c7fc414e
RH
7669 `(("gnome-desktop" ,gnome-desktop)
7670 ("gtk+" ,gtk+)
9365ee1c
JN
7671 ("gobject-introspection" ,gobject-introspection)
7672 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
7673 ("libnotify" ,libnotify)
7674 ("libsoup" ,libsoup)
7675 ("nautilus" ,nautilus)
7676 ("python" ,python)
7677 ("python-pygobject" ,python-pygobject)))
9365ee1c 7678 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 7679 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 7680 (description
d13f3a03 7681 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
7682GNOME 3. This includes things like the fonts used in user interface elements,
7683alternative user interface themes, changes in window management behavior,
7684GNOME Shell appearance and extension, etc.")
7685 (license license:gpl3+)))
813f814a 7686
d13f3a03
RW
7687;; This package has been renamed by upstream.
7688(define-public gnome-tweak-tool
7689 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
7690
32ac717c
DT
7691(define-public gnome-shell-extensions
7692 (package
7693 (name "gnome-shell-extensions")
ae4c05e0 7694 (version "3.32.1")
32ac717c
DT
7695 (source (origin
7696 (method url-fetch)
7697 (uri (string-append "mirror://gnome/sources/" name "/"
7698 (version-major+minor version) "/"
7699 name "-" version ".tar.xz"))
7700 (sha256
7701 (base32
ae4c05e0 7702 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 7703 (build-system meson-build-system)
32ac717c 7704 (arguments
100f625b 7705 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 7706 (native-inputs
c9ea8873
LP
7707 `(("glib:bin" ,glib "bin")
7708 ("intltool" ,intltool)
32ac717c
DT
7709 ("pkg-config" ,pkg-config)))
7710 (propagated-inputs
c9ea8873 7711 `(("glib" ,glib)))
32ac717c
DT
7712 (synopsis "Extensions for GNOME Shell")
7713 (description "GNOME Shell extensions modify and extend GNOME Shell
7714functionality and behavior.")
7715 (home-page "https://extensions.gnome.org/")
7716 (license license:gpl3+)))
7717
813f814a
DT
7718(define-public arc-theme
7719 (package
7720 (name "arc-theme")
37781323 7721 (version "20190917")
813f814a 7722 (source (origin
a18f8eaf
BH
7723 (method git-fetch)
7724 (uri (git-reference
7725 (url "https://github.com/NicoHood/arc-theme.git")
7726 (commit version)))
7727 (file-name (git-file-name name version))
813f814a
DT
7728 (sha256
7729 (base32
37781323 7730 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 7731 (build-system gnu-build-system)
d88884fa
EF
7732 (arguments
7733 '(#:phases
7734 (modify-phases %standard-phases
7735 ;; autogen.sh calls configure at the end of the script.
7736 (replace 'bootstrap
7737 (lambda _ (invoke "autoreconf" "-vfi"))))))
813f814a
DT
7738 (native-inputs
7739 `(("autoconf" ,autoconf)
7740 ("automake" ,automake)
a18f8eaf
BH
7741 ("glib" ,glib "bin") ; for glib-compile-resources
7742 ("gnome-shell" ,gnome-shell)
7743 ("gtk+" ,gtk+)
7744 ("inkscape" ,inkscape)
7745 ("optipng" ,optipng)
7746 ("pkg-config" ,pkg-config)
7747 ("sassc" ,sassc)))
813f814a
DT
7748 (synopsis "A flat GTK+ theme with transparent elements")
7749 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
77502, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
7751like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
7752 (home-page "https://github.com/horst3180/arc-theme")
7753 ;; No "or later" language found.
a18f8eaf 7754 (license license:gpl3+)))
9987c57c 7755
d935e6a1 7756(define-public faba-icon-theme
9987c57c 7757 (package
d935e6a1 7758 (name "faba-icon-theme")
2eee7ee3 7759 (version "4.3")
d935e6a1
BT
7760 (source
7761 (origin
757e4027
TGR
7762 (method git-fetch)
7763 (uri (git-reference
7764 (url "https://github.com/snwh/faba-icon-theme.git")
7765 (commit (string-append "v" version))))
7766 (file-name (git-file-name name version))
d935e6a1 7767 (sha256
757e4027 7768 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 7769 (build-system meson-build-system)
9987c57c 7770 (arguments
82da291a 7771 `(#:phases
9987c57c 7772 (modify-phases %standard-phases
82da291a 7773 (add-before 'configure 'disable-post-install
9987c57c 7774 (lambda _
82da291a
JL
7775 (substitute* "meson.build"
7776 (("meson.add_install_script.*") "")))))))
9987c57c
DT
7777 (native-inputs
7778 `(("autoconf" ,autoconf)
7779 ("automake" ,automake)))
d935e6a1
BT
7780 (synopsis "Faba icon theme")
7781 (description
7782 "Faba is a minimal icon set used as a basis for other themes such as
7783Moka")
7784 (home-page "https://snwh.org/moka")
7785 (license (list license:lgpl3+
7786 license:cc-by-sa4.0))))
7787
9987c57c
DT
7788(define-public moka-icon-theme
7789 (package
8b0e4177 7790 (inherit faba-icon-theme)
9987c57c 7791 (name "moka-icon-theme")
105a3625 7792 (version "5.4.0")
8c3f2170
TGR
7793 (source
7794 (origin
7795 (method git-fetch)
7796 (uri (git-reference
7797 (url "https://github.com/snwh/moka-icon-theme.git")
7798 (commit (string-append "v" version))))
7799 (file-name (git-file-name name version))
7800 (sha256
7801 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
7802 (propagated-inputs
7803 ;; Moka is based on Faba by using it as a fallback icon set instead of
7804 ;; bundling it, so we need to add it as a propagated input.
7805 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
7806 (synopsis "Moka icon theme")
7807 (description "Moka is a stylized desktop icon set, designed to be clear,
7808simple and consistent.")
fedde43b
BT
7809 (license (list license:gpl3+
7810 license:cc-by-sa4.0))))
6fd8f8d6
DT
7811
7812(define-public arc-icon-theme
7813 (package
7814 (name "arc-icon-theme")
c4180240 7815 (version "20161122")
bbf66cbf
TGR
7816 (source
7817 (origin
7818 (method git-fetch)
7819 (uri (git-reference
7820 (url "https://github.com/horst3180/arc-icon-theme.git")
7821 (commit version)))
7822 (file-name (git-file-name name version))
7823 (sha256
7824 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 7825 (build-system gnu-build-system)
9e1ede95
JL
7826 (arguments
7827 `(#:phases
7828 (modify-phases %standard-phases
7829 (add-after 'unpack 'disable-configure-during-bootstrap
7830 (lambda _
7831 (substitute* "autogen.sh"
7832 (("^\"\\$srcdir/configure\".*") ""))
7833 #t)))))
6fd8f8d6
DT
7834 (native-inputs
7835 `(("autoconf" ,autoconf)
7836 ("automake" ,automake)))
7837 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
7838 (propagated-inputs
7839 `(("moka-icon-theme" ,moka-icon-theme)))
7840 (synopsis "Arc icon theme")
7841 (description "The Arc icon theme provides a set of icons matching the
7842style of the Arc GTK theme. Icons missing from the Arc theme are provided by
7843the Moka icon theme.")
7844 (home-page "https://github.com/horst3180/arc-icon-theme")
7845 (license license:gpl3+)))
6064a4e8
LF
7846
7847(define-public folks
7848 (package
7849 (name "folks")
d23495fa 7850 (version "0.11.4")
6064a4e8
LF
7851 (source (origin
7852 (method url-fetch)
7853 (uri (string-append
e5f4796e 7854 "mirror://gnome/sources/folks/"
6064a4e8 7855 (version-major+minor version) "/"
e5f4796e 7856 "folks-" version ".tar.xz"))
6064a4e8
LF
7857 (sha256
7858 (base32
d23495fa 7859 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
7860 (build-system glib-or-gtk-build-system)
7861 (inputs
7862 `(("bdb" ,bdb)
7863 ("dbus-glib" ,dbus-glib)
7864 ("evolution-data-server" ,evolution-data-server)
7865 ("glib" ,glib)
7866 ("libgee" ,libgee)
7867 ("telepathy-glib" ,telepathy-glib)))
7868 (native-inputs
7869 `(("gobject-introspection" ,gobject-introspection)
7870 ("intltool" ,intltool)
7871 ("pkg-config" ,pkg-config)
7872 ("vala" ,vala)))
7873 (synopsis "Library to aggregate data about people")
7874 (description "Libfolks is a library that aggregates information about people
7875from multiple sources (e.g., Telepathy connection managers for IM contacts,
7876Evolution Data Server for local contacts, libsocialweb for web service contacts,
7877etc.) to create metacontacts. It's written in Vala, which generates C code when
7878compiled.")
7879 (home-page "https://wiki.gnome.org/Projects/Folks")
7880 (license license:lgpl2.1+)))
01ea778f
LF
7881
7882(define-public gfbgraph
7883 (package
7884 (name "gfbgraph")
7885 (version "0.2.3")
7886 (source (origin
7887 (method url-fetch)
7888 (uri (string-append
237d4cf7 7889 "mirror://gnome/sources/gfbgraph/"
01ea778f 7890 (version-major+minor version) "/"
237d4cf7 7891 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
7892 (sha256
7893 (base32
7894 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
7895 (build-system glib-or-gtk-build-system)
7896 (arguments
7897 `(#:tests? #f ; Tests appear to require the network.
7898 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
7899 #:configure-flags '("--disable-gtk-doc"
7900 "--disable-static"
7901 "--enable-introspection")))
7902 (native-inputs
7903 `(("pkg-config" ,pkg-config)
7904 ("gobject-introspection" ,gobject-introspection)))
7905 (inputs
7906 `(("json-glib" ,json-glib)
14c297fd 7907 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
7908 ("rest" ,rest)))
7909 (synopsis "GLib/GObject wrapper for the Facebook API")
7910 (description "This library allows you to use the Facebook API from
7911GLib/GObject code.")
7912 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
7913 (license license:lgpl2.1+)))
3920868c 7914
7915(define-public libgnomekbd
7916 (package
7917 (name "libgnomekbd")
70f2b0f9 7918 (version "3.26.1")
3920868c 7919 (source (origin
7920 (method url-fetch)
d47fa82d 7921 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 7922 (version-major+minor version) "/"
d47fa82d 7923 "libgnomekbd-" version ".tar.xz"))
3920868c 7924 (sha256
7925 (base32
70f2b0f9 7926 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 7927 (build-system gnu-build-system)
7928 (native-inputs
7929 `(("pkg-config" ,pkg-config)
7930 ("glib" ,glib "bin")
7931 ("intltool" ,intltool)))
7932 (propagated-inputs
7933 ;; Referred to in .h files and .pc.
7934 `(("glib" ,glib)
7935 ("gtk+" ,gtk+)
7936 ("libxklavier" ,libxklavier)))
7937 (home-page "https://www.gnome.org")
7938 (synopsis "GNOME keyboard configuration library")
7939 (description
7940 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
7941environment, which can notably display keyboard layouts.")
7942 (license license:lgpl2.0+)))
85327d0d 7943
7944;;; This package is no longer maintained:
7945;;; https://wiki.gnome.org/Attic/LibUnique
7946;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
7947;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
7948(define-public libunique
7949 (package
7950 (name "libunique")
7951 (version "3.0.2")
7952 (source (origin
7953 (method url-fetch)
7954 (uri (string-append "mirror://gnome/sources/" name "/"
7955 (version-major+minor version) "/"
7956 name "-" version ".tar.xz"))
7957 (sha256
7958 (base32
7959 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
7960 (build-system glib-or-gtk-build-system)
7961 (arguments
7962 `(#:configure-flags '("--disable-static"
7963 "--disable-dbus" ; use gdbus
7964 "--enable-introspection")))
7965 (native-inputs
7966 `(("pkg-config" ,pkg-config)
7967 ("gobject-introspection" ,gobject-introspection)
7968 ("glib:bin" ,glib "bin")
7969 ("gtk-doc" ,gtk-doc)))
7970 (propagated-inputs
7971 ;; Referred to in .h files and .pc.
7972 `(("gtk+" ,gtk+)))
7973 (home-page "https://wiki.gnome.org/Attic/LibUnique")
7974 (synopsis "Library for writing single instance applications")
7975 (description
7976 "Libunique is a library for writing single instance applications. If you
7977launch a single instance application twice, the second instance will either just
7978quit or will send a message to the running instance. Libunique makes it easy to
7979write this kind of application, by providing a base class, taking care of all
7980the IPC machinery needed to send messages to a running instance, and also
7981handling the startup notification side.")
7982 (license license:lgpl2.1+)))
54021cd8
RS
7983
7984(define-public gnome-calculator
7985 (package
7986 (name "gnome-calculator")
07ace641 7987 (version "3.32.2")
54021cd8
RS
7988 (source
7989 (origin
7990 (method url-fetch)
7991 (uri (string-append "mirror://gnome/sources/" name "/"
7992 (version-major+minor version) "/"
7993 name "-" version ".tar.xz"))
7994 (sha256
7995 (base32
07ace641 7996 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
2d475910
RW
7997 (build-system meson-build-system)
7998 (arguments '(#:glib-or-gtk? #t))
54021cd8
RS
7999 (native-inputs
8000 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 8001 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8
RS
8002 ("intltool" ,intltool)
8003 ("itstool" ,itstool)
2d475910 8004 ("vala" ,vala)
54021cd8
RS
8005 ("pkg-config" ,pkg-config)))
8006 (inputs
112e9083 8007 `(("glib" ,glib)
07ace641 8008 ("gtksourceview" ,gtksourceview)
54021cd8 8009 ("libsoup" ,libsoup)
112e9083 8010 ("libxml2" ,libxml2)
2c2da7ec 8011 ("mpc" ,mpc)
54021cd8
RS
8012 ("mpfr" ,mpfr)))
8013 (home-page "https://wiki.gnome.org/Apps/Calculator")
8014 (synopsis "Desktop calculator")
8015 (description
8016 "Calculator is an application that solves mathematical equations and
8017is suitable as a default application in a Desktop environment.")
8018 (license license:gpl3)))
0bd69759
RS
8019
8020(define-public xpad
8021 (package
8022 (name "xpad")
c85626bb 8023 (version "5.1.0")
0bd69759
RS
8024 (source
8025 (origin
8026 (method url-fetch)
08fda9c6
R
8027 (uri (string-append "https://launchpad.net/xpad/trunk/"
8028 version "/+download/"
0bd69759
RS
8029 name "-" version ".tar.bz2"))
8030 (sha256
8031 (base32
c85626bb 8032 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8033 (build-system gnu-build-system)
8034 (native-inputs
08fda9c6
R
8035 `(("autoconf" ,autoconf)
8036 ("automake" ,automake)
8037 ("gtk+:bin" ,gtk+ "bin")
8038 ("intltool" ,intltool)
0bd69759
RS
8039 ("pkg-config" ,pkg-config)))
8040 (inputs
c72647fb 8041 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8042 ("libsm" ,libsm)))
8043 (home-page "https://wiki.gnome.org/Apps/Xpad")
8044 (synopsis "Virtual sticky note")
8045 (description
8046 "Xpad is a sticky note that strives to be simple, fault tolerant,
8047and customizable. Xpad consists of independent pad windows, each is
8048basically a text box in which notes can be written.")
8049 (license license:gpl3+)))
3ad7dce1
RS
8050
8051(define-public gucharmap
c60063ea
RW
8052 (let ((unicode-files
8053 '(("Blocks.txt"
1f8b5515 8054 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8055 ("DerivedAge.txt"
1f8b5515 8056 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8057 ("NamesList.txt"
1f8b5515 8058 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8059 ("Scripts.txt"
1f8b5515 8060 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8061 ("UnicodeData.txt"
1f8b5515 8062 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8063 ("Unihan.zip"
1f8b5515 8064 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8065 (package
8066 (name "gucharmap")
1f8b5515 8067 (version "12.0.1")
c60063ea
RW
8068 (source
8069 (origin
8070 (method url-fetch)
8071 (uri (string-append "mirror://gnome/sources/" name "/"
8072 (version-major+minor version) "/"
8073 name "-" version ".tar.xz"))
8074 (sha256
8075 (base32
1f8b5515 8076 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8077 (build-system glib-or-gtk-build-system)
8078 (arguments
8079 `(#:modules ((ice-9 match)
8080 (guix build glib-or-gtk-build-system)
8081 (guix build utils))
8082 #:configure-flags
8083 (list "--with-unicode-data=../unicode-data")
8084 #:phases
8085 (modify-phases %standard-phases
8086 (add-after 'unpack 'prepare-unicode-data
8087 (lambda* (#:key inputs #:allow-other-keys)
8088 (mkdir-p "../unicode-data")
8089 (with-directory-excursion "../unicode-data"
8090 (for-each (match-lambda
8091 ((file _)
8092 (install-file (assoc-ref inputs file) ".")))
8093 ',unicode-files))
8094 #t)))))
8095 (native-inputs
8096 `(("desktop-file-utils" ,desktop-file-utils)
8097 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8098 ("gobject-introspection" ,gobject-introspection)
8099 ("intltool" ,intltool)
8100 ("itstool" ,itstool)
8101 ("pkg-config" ,pkg-config)
8102 ,@(map (match-lambda
8103 ((file hash)
8104 `(,file
8105 ,(origin
8106 (method url-fetch)
8107 (uri (string-append
1f8b5515 8108 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8109 file))
8110 (sha256 (base32 hash))))))
8111 unicode-files)
8112 ("unzip" ,unzip)))
8113 (inputs
8114 `(("gtk+" ,gtk+)
8115 ("xmllint" ,libxml2)))
8116 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8117 (synopsis "Unicode character picker and font browser")
8118 (description
8119 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8120characters and categories for the installed fonts, and to examine their
8121detailed properties. It is an easy way to find the character you might
8122only know by its Unicode name or code point.")
c60063ea 8123 (license license:gpl3+))))
04ce840a
RS
8124
8125(define-public bluefish
8126 (package
8127 (name "bluefish")
ea8afaf3 8128 (version "2.2.10")
04ce840a
RS
8129 (source
8130 (origin
8131 (method url-fetch)
8132 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8133 name "-" version ".tar.gz"))
8134 (sha256
8135 (base32
ea8afaf3 8136 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
04ce840a
RS
8137 (build-system gnu-build-system)
8138 (native-inputs
8139 `(("desktop-file-utils" ,desktop-file-utils)
8140 ("intltool" ,intltool)
8141 ("pkg-config" ,pkg-config)))
8142 (inputs
8143 `(("enchant" ,enchant)
8144 ("gtk+" ,gtk+)
8145 ("python" ,python-2)
8146 ("xmllint" ,libxml2)
8147 ("gucharmap" ,gucharmap)))
8148 (home-page "http://bluefish.openoffice.nl")
8149 (synopsis "Web development studio")
8150 (description
8151 "Bluefish is an editor targeted towards programmers and web developers,
8152with many options to write web sites, scripts and other code.
8153Bluefish supports many programming and markup languages.")
8154 (license license:gpl3+)))
1f6a73ee
RS
8155
8156(define-public gnome-system-monitor
8157 (package
8158 (name "gnome-system-monitor")
083cffaf 8159 (version "3.32.1")
1f6a73ee
RS
8160 (source
8161 (origin
8162 (method url-fetch)
8163 (uri (string-append "mirror://gnome/sources/" name "/"
8164 (version-major+minor version) "/"
8165 name "-" version ".tar.xz"))
8166 (sha256
8167 (base32
083cffaf 8168 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8169 (build-system meson-build-system)
8170 (arguments
8171 '(#:glib-or-gtk? #t
8172 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8173 (native-inputs
8174 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8175 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8176 ("intltool" ,intltool)
8177 ("itstool" ,itstool)
8178 ("libgtop" ,libgtop)
4985d9aa 8179 ("polkit" ,polkit)
1f6a73ee
RS
8180 ("pkg-config" ,pkg-config)))
8181 (inputs
8182 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8183 ("gtk+" ,gtk+)
8184 ("gtkmm" ,gtkmm)
8185 ("librsvg" ,librsvg)
4985d9aa
RW
8186 ("libxml2" ,libxml2)
8187 ("libwnck" ,libwnck)))
1f6a73ee
RS
8188 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8189 (synopsis "Process viewer and system resource monitor for GNOME")
8190 (description
8191 "GNOME System Monitor is a GNOME process viewer and system monitor with
8192an attractive, easy-to-use interface. It has features, such as a tree view
8193for process dependencies, icons for processes, the ability to hide processes,
8194graphical time histories of CPU/memory/swap usage and the ability to
8195kill/reinice processes.")
8196 (license license:gpl2+)))
3e00ac47
SB
8197
8198(define-public python-pyatspi
8199 (package
8200 (name "python-pyatspi")
4f937a32 8201 (version "2.34.0")
3e00ac47
SB
8202 (source (origin
8203 (method url-fetch)
8204 (uri (string-append
8205 "mirror://gnome/sources/pyatspi/"
8206 (version-major+minor version)
8207 "/pyatspi-" version ".tar.xz"))
8208 (sha256
8209 (base32
4f937a32 8210 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8211 (build-system gnu-build-system)
b95af3f6
JL
8212 (arguments
8213 `(#:phases
8214 (modify-phases %standard-phases
8215 (add-before 'build 'fix-atk-load
8216 (lambda _
8217 (substitute* "pyatspi/__init__.py"
8218 (("from gi.repository import Atspi")
8219 "gi.require_version('Gtk', '3.0')
8220from gi.repository import Gtk
8221from gi.repository import Atspi"))
8222 #t)))))
3e00ac47
SB
8223 (native-inputs
8224 `(("pkg-config" ,pkg-config)))
8225 (inputs
8226 `(("python" ,python)
8227 ("python-pygobject" ,python-pygobject)))
8228 (synopsis "Python client bindings for D-Bus AT-SPI")
8229 (home-page "https://wiki.linuxfoundation.org/accessibility\
8230/atk/at-spi/at-spi_on_d-bus")
8231 (description
8232 "This package includes a python client library for the AT-SPI D-Bus
8233accessibility infrastructure.")
8234 (license license:lgpl2.0)
8235 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8236
8237(define-public orca
8238 (package
8239 (name "orca")
089e8585 8240 (version "3.32.0")
53201c0d
SB
8241 (source (origin
8242 (method url-fetch)
8243 (uri (string-append
8244 "mirror://gnome/sources/" name "/"
8245 (version-major+minor version) "/"
8246 name "-" version ".tar.xz"))
8247 (sha256
8248 (base32
089e8585 8249 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8250 (build-system glib-or-gtk-build-system)
8251 (arguments
8252 '(#:phases
8253 (modify-phases %standard-phases
8254 (add-before 'configure 'qualify-xkbcomp
8255 (lambda* (#:key inputs #:allow-other-keys)
8256 (let ((xkbcomp (string-append
8257 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8258 (substitute* "src/orca/orca.py"
8259 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8260 #t))
8261 (add-after 'install 'wrap-orca
8262 (lambda* (#:key outputs #:allow-other-keys)
8263 (let* ((out (assoc-ref outputs "out"))
8264 (prog (string-append out "/bin/orca")))
8265 (wrap-program prog
8266 `("GI_TYPELIB_PATH" ":" prefix
8267 (,(getenv "GI_TYPELIB_PATH")))
8268 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8269 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8270 `("PYTHONPATH" ":" prefix
8271 (,(getenv "PYTHONPATH")))))
8272 #t)))))
8273 (native-inputs
8274 `(("intltool" ,intltool)
8275 ("itstool" ,itstool)
8276 ("pkg-config" ,pkg-config)
8277 ("xmllint" ,libxml2)))
8278 (inputs
8279 `(("at-spi2-atk" ,at-spi2-atk)
8280 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8281 ("gstreamer" ,gstreamer)
8282 ("gst-plugins-base" ,gst-plugins-base)
8283 ("gst-plugins-good" ,gst-plugins-good)
8284 ("gtk+" ,gtk+)
8285 ("python" ,python)
8286 ("python-pygobject" ,python-pygobject)
8287 ("python-pyatspi" ,python-pyatspi)
8288 ("python-speechd" ,speech-dispatcher)
8289 ("xkbcomp" ,xkbcomp)))
8290 (synopsis
8291 "Screen reader for individuals who are blind or visually impaired")
8292 (home-page "https://wiki.gnome.org/Projects/Orca")
8293 (description
8294 "Orca is a screen reader that provides access to the graphical desktop
8295via speech and refreshable braille. Orca works with applications and toolkits
8296that support the Assistive Technology Service Provider Interface (AT-SPI).")
8297 (license license:lgpl2.1+)))
411ba511
LC
8298
8299(define-public gspell
8300 (package
8301 (name "gspell")
7a6bbe9b 8302 (version "1.8.2")
411ba511
LC
8303 (source (origin
8304 (method url-fetch)
8305 (uri (string-append "mirror://gnome/sources/" name "/"
8306 (version-major+minor version) "/"
8307 name "-" version ".tar.xz"))
8308 (sha256
8309 (base32
7a6bbe9b 8310 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8311 (patches (search-patches "gspell-dash-test.patch"))))
8312 (build-system glib-or-gtk-build-system)
8313 (arguments
8314 '(#:phases
8315 (modify-phases %standard-phases
8316 (add-before 'check 'pre-check
8317 (lambda* (#:key inputs #:allow-other-keys)
8318 ;; Tests require a running X server.
8319 (system "Xvfb :1 &")
8320 (setenv "DISPLAY" ":1")
8321
8322 ;; For the missing /etc/machine-id.
8323 (setenv "DBUS_FATAL_WARNINGS" "0")
8324
8325 ;; Allow Enchant and its Aspell backend to find the en_US
8326 ;; dictionary.
8327 (setenv "ASPELL_DICT_DIR"
8328 (string-append (assoc-ref inputs "aspell-dict-en")
8329 "/lib/aspell"))
8330 #t)))))
8331 (inputs
eccd35be 8332 `(("gtk+" ,gtk+)
a801ae4c
TGR
8333 ("glib" ,glib)
8334 ("iso-codes" ,iso-codes)))
411ba511
LC
8335 (native-inputs
8336 `(("glib" ,glib "bin")
26ba3f07 8337 ("gobject-introspection" ,gobject-introspection)
411ba511
LC
8338 ("pkg-config" ,pkg-config)
8339 ("xmllint" ,libxml2)
8340
8341 ;; For tests.
a801ae4c 8342 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8343 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8344 (propagated-inputs
9b1bb757 8345 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8346 (home-page "https://wiki.gnome.org/Projects/gspell")
8347 (synopsis "GNOME's alternative spell checker")
8348 (description
8349 "gspell provides a flexible API to add spell-checking to a GTK+
8350application. It provides a GObject API, spell-checking to text entries and
8351text views, and buttons to choose the language.")
8352 (license license:gpl2+)))
d1d739fa
CM
8353
8354(define-public gnome-planner
8355 (package
8356 (name "gnome-planner")
8357 (version "0.14.6")
8358 (source (origin
8359 (method url-fetch)
8360 (uri (string-append "mirror://gnome/sources/planner/"
8361 (version-major+minor version) "/planner-"
8362 version ".tar.xz"))
8363 (sha256
8364 (base32
8365 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8366 (build-system glib-or-gtk-build-system)
8367 (arguments
8368 ;; Disable the Python bindings because the Planner program functions
8369 ;; without them, and (as of 2017-06-13) we have not packaged all of
8370 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8371 `(#:configure-flags
8372 (list "--disable-python"
8373 ,@(if (string=? "aarch64-linux" (%current-system))
8374 '("--build=aarch64-unknown-linux-gnu")
8375 '()))))
d1d739fa
CM
8376 (inputs
8377 `(("libgnomecanvas" ,libgnomecanvas)
8378 ("libgnomeui" ,libgnomeui)
8379 ("libglade" ,libglade)
8380 ("gnome-vfs" ,gnome-vfs)
8381 ("gconf" ,gconf)
8382 ("libxml2" ,libxml2)
8383 ("libxslt" ,libxslt)
8384 ("gtk+" ,gtk+)
8385 ("glib" ,glib)))
8386 (native-inputs
8387 `(("intltool" ,intltool)
8388 ("scrollkeeper" ,scrollkeeper)
8389 ("pkg-config" ,pkg-config)))
8390 (home-page "https://wiki.gnome.org/Apps/Planner")
8391 (synopsis "Project management software for the GNOME desktop")
8392 (description
8393 "GNOME Planner is a project management tool based on the Work Breakdown
8394Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8395the resources, tasks, and constraints that you define, Planner generates
8396various views into a project. For example, Planner can show a Gantt chart of
8397the project. It can show a detailed summary of tasks including their
8398duration, cost, and current progress. It can also show a report of resource
8399utilization that highlights under-utilized and over-utilized resources. These
8400views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8401 (license license:gpl2+)))
64fce637
RS
8402
8403(define-public lollypop
8404 (package
8405 (name "lollypop")
ca32627a 8406 (version "1.2.7")
64fce637
RS
8407 (source
8408 (origin
8409 (method url-fetch)
b98eace8 8410 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 8411 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 8412 "lollypop-" version ".tar.xz"))
64fce637 8413 (sha256
ca32627a 8414 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 8415 (build-system meson-build-system)
64fce637
RS
8416 (arguments
8417 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
8418 ,@%meson-build-system-modules)
8419 #:glib-or-gtk? #t
5fc9b6c1
EF
8420 #:tests? #f ; no test suite
8421 #:phases
8422 (modify-phases %standard-phases
5fc9b6c1
EF
8423 (add-after 'install 'wrap-program
8424 (lambda* (#:key outputs #:allow-other-keys)
8425 (let ((out (assoc-ref outputs "out"))
8426 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8427 (wrap-program (string-append out "/bin/lollypop")
8428 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8429 #t))
8ac8b3b3
TGR
8430 (add-after 'install 'wrap-python
8431 (@@ (guix build python-build-system) wrap))
8432 (add-after 'install 'wrap-glib-or-gtk
8433 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
8434 (native-inputs
8435 `(("intltool" ,intltool)
8436 ("itstool" ,itstool)
aa498fc0
TD
8437 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8438 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
8439 ("pkg-config" ,pkg-config)))
8440 (inputs
8441 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 8442 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 8443 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
8444 ("libnotify" ,libnotify)
8445 ("libsecret" ,libsecret)
8446 ("libsoup" ,libsoup)
8447 ("python" ,python)
8448 ("python-beautifulsoup4" ,python-beautifulsoup4)
8449 ("python-gst" ,python-gst)
d029afdd 8450 ("python-pil" ,python-pillow)
64fce637 8451 ("python-pycairo" ,python-pycairo)
7460f346 8452 ("python-pygobject" ,python-pygobject-3.34)
64fce637
RS
8453 ("python-pylast" ,python-pylast)
8454 ("totem-pl-parser" ,totem-pl-parser)
8455 ("webkitgtk" ,webkitgtk)))
8456 (propagated-inputs
8457 `(;; gst-plugins-base is required to start Lollypop,
8458 ;; the others are required to play streaming.
64fce637
RS
8459 ("gst-plugins-good" ,gst-plugins-good)
8460 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 8461 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
8462 (synopsis "GNOME music playing application")
8463 (description
8464 "Lollypop is a music player designed to play well with GNOME desktop.
8465Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
8466from artists and tracks from the web. It also fetches cover artworks
8467automatically and it can stream songs from online music services and charts.")
8468 (license license:gpl3+)))
d831d49d
AW
8469
8470(define-public gnome-video-effects
8471 (package
8472 (name "gnome-video-effects")
8473 (version "0.4.3")
8474 (source (origin
8475 (method url-fetch)
8476 (uri (string-append "mirror://gnome/sources/" name "/"
8477 (version-major+minor version) "/" name "-"
8478 version ".tar.xz"))
8479 (sha256
8480 (base32
8481 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
8482 (build-system glib-or-gtk-build-system)
8483 (arguments
8484 `(#:out-of-source? #f))
8485 (native-inputs
8486 `(("glib:bin" ,glib "bin")
8487 ("intltool" ,intltool)
8488 ("gettext" ,gettext-minimal)
8489 ("pkg-config" ,pkg-config)))
8490 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
8491 (synopsis "Video effects for Cheese and other GNOME applications")
8492 (description
8493 "A collection of GStreamer video filters and effects to be used in
8494photo-booth-like software, such as Cheese.")
8495 (license license:gpl2+)))
3511c780
AW
8496
8497(define-public cheese
8498 (package
8499 (name "cheese")
dd33b337 8500 (version "3.32.1")
3511c780
AW
8501 (source (origin
8502 (method url-fetch)
8503 (uri (string-append "mirror://gnome/sources/" name "/"
8504 (version-major+minor version) "/" name "-"
8505 version ".tar.xz"))
8506 (sha256
8507 (base32
dd33b337 8508 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
8509 (arguments
8510 ;; Tests require GDK.
8511 `(#:tests? #f
8512 #:phases
8513 (modify-phases %standard-phases
8514 (add-before 'install 'skip-gtk-update-icon-cache
8515 (lambda _
8516 ;; Don't create 'icon-theme.cache'
8517 (substitute* "Makefile"
8518 (("gtk-update-icon-cache") (which "true")))
8519 #t))
8520 (add-after 'install 'wrap-cheese
8521 (lambda* (#:key inputs outputs #:allow-other-keys)
8522 (let ((out (assoc-ref outputs "out"))
8523 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8524 (wrap-program (string-append out "/bin/cheese")
8525 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8526 #t)))))
8527 (build-system glib-or-gtk-build-system)
8528 (native-inputs
8529 `(("glib:bin" ,glib "bin")
8530 ("intltool" ,intltool)
8531 ("itstool" ,itstool)
8532 ("libxml2" ,libxml2)
8533 ("pkg-config" ,pkg-config)
8534 ("vala" ,vala)))
8535 (propagated-inputs
6a19f03e
RW
8536 `(("gnome-video-effects" ,gnome-video-effects)
8537 ("clutter" ,clutter)
3511c780
AW
8538 ("clutter-gst" ,clutter-gst)
8539 ("clutter-gtk" ,clutter-gtk)
6a19f03e 8540 ("libcanberra" ,libcanberra)
3511c780
AW
8541 ("gdk-pixbuf" ,gdk-pixbuf)
8542 ("glib" ,glib)
6a19f03e
RW
8543 ("gstreamer" ,gstreamer)))
8544 (inputs
8545 `(("gnome-desktop" ,gnome-desktop)
3511c780 8546 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
8547 ("gst-plugins-base" ,gst-plugins-base)
8548 ("gst-plugins-bad" ,gst-plugins-bad)
8549 ("gtk+" ,gtk+)
3511c780
AW
8550 ("libx11" ,libx11)
8551 ("libxtst" ,libxtst)))
8552 (home-page "https://wiki.gnome.org/Apps/Cheese")
8553 (synopsis "Webcam photo booth software for GNOME")
8554 (description
8555 "Cheese uses your webcam to take photos and videos. Cheese can also
8556apply fancy special effects and lets you share the fun with others.")
8557 (license license:gpl2+)))
3c5dbd2b 8558
8559(define-public sound-juicer
8560 (package
8561 (name "sound-juicer")
8562 (version "3.24.0")
8563 (source
8564 (origin
8565 (method url-fetch)
8566 (uri (string-append "mirror://gnome/sources/" name "/"
8567 (version-major+minor version) "/"
8568 name "-" version ".tar.xz"))
8569 (sha256
8570 (base32
8571 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
8572 (build-system glib-or-gtk-build-system)
8573 (native-inputs
8574 `(("desktop-file-utils" ,desktop-file-utils)
8575 ("intltool" ,intltool)
8576 ("itstool" ,itstool)
8577 ("pkg-config" ,pkg-config)
8578 ("xmllint" ,libxml2)))
8579 (inputs
8580 `(("gtk+" ,gtk+)
8581 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8582 ("gstreamer" ,gstreamer)
8583 ("gst-plugins-base" ,gst-plugins-base)
8584 ("gst-plugins-good" ,gst-plugins-good)
8585 ("iso-codes" ,iso-codes)
8586 ("libbrasero-media3" ,brasero)
8587 ("libcanberra" ,libcanberra)
8588 ("libdiscid" ,libdiscid)
8589 ("libmusicbrainz" ,libmusicbrainz)
8590 ("neon" ,neon)))
8591 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
8592 (synopsis "Audio music cd ripper")
8593 (description "Sound Juicer extracts audio from compact discs and convert it
8594into audio files that a personal computer or digital audio player can play.
8595It supports ripping to any audio codec supported by a GStreamer plugin, such as
8596mp3, Ogg Vorbis and FLAC")
8597 (license license:gpl2+)))
4e3fdeb7 8598
0d3f1708
CB
8599(define-public soundconverter
8600 (package
8601 (name "soundconverter")
fa75a213 8602 (version "3.0.1")
0d3f1708
CB
8603 (source
8604 (origin
8605 (method url-fetch)
8606 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
8607 version "/+download/"
8608 "soundconverter-" version ".tar.xz"))
8609
8610 (sha256
fa75a213 8611 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
8612 (patches
8613 (search-patches
8614 "soundconverter-remove-gconf-dependency.patch"))))
8615 (build-system glib-or-gtk-build-system)
8616 (arguments
8617 `(#:imported-modules ((guix build python-build-system)
8618 (guix build glib-or-gtk-build-system)
8619 ,@%gnu-build-system-modules)
8620
8621 #:modules ((guix build glib-or-gtk-build-system)
8622 (guix build utils)
8623 ((guix build gnu-build-system) #:prefix gnu:)
8624 ((guix build python-build-system) #:prefix python:))
8625
8626 #:phases
8627 (modify-phases %standard-phases
0d3f1708
CB
8628 (add-after 'install 'wrap-soundconverter-for-python
8629 (assoc-ref python:%standard-phases 'wrap))
8630 (add-after 'install 'wrap-soundconverter
8631 (lambda* (#:key inputs outputs #:allow-other-keys)
8632 (let ((out (assoc-ref outputs "out"))
8633 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8634 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8635 (wrap-program (string-append out "/bin/soundconverter")
8636 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8637 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8638 #t)))))
8639 (native-inputs
8640 `(("intltool" ,intltool)
8641 ("pkg-config" ,pkg-config)
8642 ("glib:bin" ,glib "bin")))
8643 (inputs
8644 `(("gtk+" ,gtk+)
8645 ("python" ,python)
8646 ("python-pygobject" ,python-pygobject)
8647 ("gstreamer" ,gstreamer)
8648 ("gst-plugins-base" ,gst-plugins-base)))
8649 (home-page "http://soundconverter.org/")
8650 (synopsis "Convert between audio formats with a graphical interface")
8651 (description
8652 "SoundConverter supports converting between many audio formats including
8653Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
8654configurable file renaming. ")
8655 (license license:gpl3)))
8656
4e3fdeb7 8657(define-public workrave
89f2d736
TGR
8658 (package
8659 (name "workrave")
aa51d92c 8660 (version "1.10.34")
89f2d736
TGR
8661 (source
8662 (origin
8663 (method git-fetch)
8664 (uri (git-reference
8665 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
8666 (commit (string-append "v" (string-map
8667 (match-lambda (#\. #\_) (chr chr))
8668 version)))))
89f2d736
TGR
8669 (file-name (git-file-name name version))
8670 (sha256
aa51d92c 8671 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
89f2d736 8672 (build-system glib-or-gtk-build-system)
d1c96847
MC
8673 (inputs `(("glib" ,glib)
8674 ("gtk+" ,gtk+)
8675 ("gdk-pixbuf" ,gdk-pixbuf)
8676 ("gtkmm" ,gtkmm)
8677 ("glibmm" ,glibmm)
8678 ("libx11" ,libx11)
8679 ("libxtst" ,libxtst)
8680 ("dconf" ,dconf)
8681 ("libice" ,libice)
8682 ("libsm" ,libsm)
8683 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 8684 (native-inputs `(("boost" ,boost)
89f2d736
TGR
8685 ("pkg-config" ,pkg-config)
8686 ("gettext" ,gnu-gettext)
8687 ("autoconf" ,autoconf)
8688 ("autoconf-archive" , autoconf-archive)
8689 ("automake" ,automake)
8690 ("libtool" ,libtool)
8691 ("intltool" ,intltool)
89f2d736 8692 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
8693 ("python3" ,python-3)
8694 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
8695 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
8696 (description
8697 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
8698repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
8699micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
8700 (home-page "http://www.workrave.org")
8701 (license license:gpl3+)))
312afa7d
LC
8702
8703(define-public ghex
8704 (package
8705 (name "ghex")
3748992a 8706 (version "3.18.4")
312afa7d
LC
8707 (source (origin
8708 (method url-fetch)
2fbab848 8709 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 8710 (version-major+minor version) "/"
2fbab848 8711 "ghex-" version ".tar.xz"))
312afa7d
LC
8712 (sha256
8713 (base32
3748992a
KK
8714 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
8715 (build-system meson-build-system)
8716 (arguments
8717 '(#:glib-or-gtk? #t
8718 #:phases
8719 (modify-phases %standard-phases
8720 (add-after 'unpack 'skip-gtk-update-icon-cache
8721 ;; Don't create 'icon-theme.cache'.
8722 (lambda _
8723 (substitute* "meson_post_install.py"
8724 (("gtk-update-icon-cache") (which "true")))
8725 #t)))))
312afa7d
LC
8726 (native-inputs
8727 `(("pkg-config" ,pkg-config)
3748992a 8728 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
8729 ("gnome-common" ,gnome-common)
8730 ("which" ,which)
8731 ("intltool" ,intltool)
8732 ("yelp-tools" ,yelp-tools)
2fbab848 8733 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
8734 (inputs
8735 `(("atk" ,atk)
8736 ("gtk" ,gtk+)))
8737 (synopsis "GNOME hexadecimal editor")
8738 (description "The GHex program can view and edit files in two ways:
8739hexadecimal or ASCII. It is useful for editing binary files in general.")
8740 (home-page "https://wiki.gnome.org/Apps/Ghex")
8741 (license license:gpl2)))
4b2ed6c2
RW
8742
8743(define-public libdazzle
8744 (package
8745 (name "libdazzle")
64fa66ba 8746 (version "3.33.90")
4b2ed6c2
RW
8747 (source (origin
8748 (method url-fetch)
687b4909 8749 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 8750 (version-major+minor version) "/"
687b4909 8751 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
8752 (sha256
8753 (base32
64fa66ba 8754 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
8755 (build-system meson-build-system)
8756 (arguments
8757 `(#:phases
8758 (modify-phases %standard-phases
4b2ed6c2
RW
8759 (add-before 'check 'pre-check
8760 (lambda _
8761 ;; Tests require a running X server.
8762 (system "Xvfb :1 &")
8763 (setenv "DISPLAY" ":1")
8764 #t)))))
8765 (native-inputs
687b4909 8766 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 8767 ("pkg-config" ,pkg-config)
687b4909 8768 ;; For tests.
ff337525 8769 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
8770 (inputs
8771 `(("glib" ,glib)
8772 ("gobject-introspection" ,gobject-introspection)
8773 ("gtk+" ,gtk+)
8774 ("vala" ,vala)))
8775 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
8776 (synopsis "Companion library to GObject and Gtk+")
8777 (description "The libdazzle library is a companion library to GObject and
8778Gtk+. It provides various features that the authors wish were in the
8779underlying library but cannot for various reasons. In most cases, they are
8780wildly out of scope for those libraries. In other cases, they are not quite
8781generic enough to work for everyone.")
8782 (license license:gpl3+)))
7d3bb433
RW
8783
8784(define-public evolution
8785 (package
8786 (name "evolution")
06141f83 8787 (version "3.32.4")
7d3bb433
RW
8788 (source (origin
8789 (method url-fetch)
8790 (uri (string-append "mirror://gnome/sources/evolution/"
8791 (version-major+minor version) "/"
8792 "evolution-" version ".tar.xz"))
8793 (sha256
8794 (base32
06141f83 8795 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
8796 (build-system cmake-build-system)
8797 (arguments
5229bea1
KK
8798 `(#:imported-modules (,@%cmake-build-system-modules
8799 (guix build glib-or-gtk-build-system))
8800 #:modules ((guix build cmake-build-system)
8801 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8802 (guix build utils))
8803 #:configure-flags
7d3bb433 8804 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 8805 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 8806 ; in four years and cannot be built.
5229bea1
KK
8807 #:phases
8808 (modify-phases %standard-phases
8809 ;; The build system attempts to install user interface modules to the
8810 ;; output directory of the "evolution-data-server" package. This
8811 ;; change redirects that change.
8812 (add-after 'unpack 'patch-ui-module-dir
8813 (lambda* (#:key outputs #:allow-other-keys)
8814 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
8815 (("\\$\\{edsuimoduledir\\}")
8816 (string-append (assoc-ref outputs "out")
8817 "/lib/evolution-data-server/ui-modules")))
8818 #t))
8819 (add-after 'install 'glib-or-gtk-compile-schemas
8820 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
8821 (add-after 'install 'glib-or-gtk-wrap
8822 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 8823 (native-inputs
ad6e168b 8824 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
8825 ("pkg-config" ,pkg-config)
8826 ("intltool" ,intltool)
8827 ("itstool" ,itstool)))
8828 (inputs
8829 `(("enchant" ,enchant)
8830 ("evolution-data-server" ,evolution-data-server) ; must be the same version
8831 ("gcr" ,gcr)
ad6e168b 8832 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
8833 ("gnome-autoar" ,gnome-autoar)
8834 ("gnome-desktop" ,gnome-desktop)
8835 ("gtkspell3" ,gtkspell3)
8836 ("highlight" ,highlight)
8837 ("libcanberra" ,libcanberra)
b63c06f1 8838 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
8839 ("libgweather" ,libgweather)
8840 ("libnotify" ,libnotify)
8841 ("libsoup" ,libsoup)
8842 ("nss" ,nss)
8843 ("openldap" ,openldap)
8844 ("webkitgtk" ,webkitgtk)
8845 ("ytnef" ,ytnef)))
8846 (home-page "https://gitlab.gnome.org/GNOME/evolution")
8847 (synopsis "Manage your email, contacts and schedule")
8848 (description "Evolution is a personal information management application
8849that provides integrated mail, calendaring and address book
8850functionality.")
8851 ;; See COPYING for details.
23dbe621 8852 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 8853 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 8854 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
8855
8856(define-public gthumb
8857 (package
8858 (name "gthumb")
8280676b 8859 (version "3.8.2")
169d63f5
AT
8860 (source (origin
8861 (method url-fetch)
8862 (uri (string-append "mirror://gnome/sources/gthumb/"
8863 (version-major+minor version) "/"
8864 "gthumb-" version ".tar.xz"))
8865 (sha256
8866 (base32
8280676b 8867 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
8868 (build-system meson-build-system)
8869 (arguments
8870 `(#:glib-or-gtk? #t
8871 #:configure-flags
8872 ;; Ensure the RUNPATH contains all installed library locations.
8873 (list (string-append "-Dc_link_args=-Wl,-rpath="
8874 (assoc-ref %outputs "out")
8875 "/lib/gthumb/extensions")
8876 (string-append "-Dcpp_link_args=-Wl,-rpath="
8877 (assoc-ref %outputs "out")
8878 "/lib/gthumb/extensions"))))
8879 (native-inputs
8880 `(("pkg-config" ,pkg-config)
8881 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8882 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8883 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8884 ("intltool" ,intltool)
8885 ("itstool" ,itstool)))
8886 (inputs
8887 `(("exiv2" ,exiv2)
8888 ("gtk" ,gtk+)
8889 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8890 ("gstreamer" ,gstreamer)
8891 ("clutter" ,clutter)
8892 ("clutter-gst" ,clutter-gst)
8893 ("clutter-gtk" ,clutter-gtk)
8894 ("libjpeg" ,libjpeg)
8895 ("libtiff" ,libtiff)
8896 ("libraw" ,libraw)))
8897 (home-page "https://wiki.gnome.org/Apps/Gthumb")
8898 (synopsis "GNOME image viewer and browser")
8899 (description "GThumb is an image viewer, browser, organizer, editor and
8900advanced image management tool")
8901 (license license:gpl2+)))
08be02be
AT
8902
8903(define-public terminator
8904 (package
8905 (name "terminator")
8906 (version "1.91")
8907 (source (origin
8908 (method url-fetch)
8909 (uri (string-append "https://launchpad.net/" name "/"
8910 "gtk3/" version "/" "+download/"
8911 name "-" version ".tar.gz"))
8912 (sha256
8913 (base32
8914 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
8915 (build-system python-build-system)
8916 (native-inputs
8917 `(("intltool" ,intltool)
8918 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8919 ("gettext" ,gettext-minimal)
8920 ("pkg-config" ,pkg-config)))
8921 (inputs
8922 `(("cairo" ,cairo)
8923 ("gobject-introspection" ,gobject-introspection)
96681d4b 8924 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
8925 ("python2-pycairo" ,python2-pycairo)
8926 ("python2-pygobject" ,python2-pygobject)
8927 ("python2-psutil" ,python2-psutil)
8928 ("vte" ,vte)))
8929 (arguments
96681d4b
TGR
8930 `(#:python ,python-2 ; Python 3 isn't supported
8931 #:imported-modules ((guix build glib-or-gtk-build-system)
8932 ,@%python-build-system-modules)
8933 #:modules ((guix build python-build-system)
8934 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8935 (guix build utils))
08be02be
AT
8936 #:phases
8937 (modify-phases %standard-phases
8938 (add-after
8939 'install 'wrap-program
8940 (lambda* (#:key outputs #:allow-other-keys)
8941 (let ((prog (string-append (assoc-ref outputs "out")
8942 "/bin/terminator")))
8943 (wrap-program prog
8944 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
8945 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
8946 #t)))
8947 (add-after 'wrap-program 'glib-or-gtk-wrap
8948 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
8949 (home-page "https://gnometerminator.blogspot.com/")
8950 (synopsis "Store and run multiple GNOME terminals in one window")
8951 (description
8952 "Terminator allows you to run multiple GNOME terminals in a grid and
8953+tabs, and it supports drag and drop re-ordering of terminals.")
8954 (license license:gpl2)))
213315d4
JF
8955
8956(define-public libhandy
8957 (package
8958 (name "libhandy")
f6501b9f 8959 (version "0.0.12")
213315d4
JF
8960 (source
8961 (origin
8962 (method git-fetch)
8963 (uri (git-reference
8964 (url "https://source.puri.sm/Librem5/libhandy")
8965 (commit (string-append "v" version))))
8966 (file-name (git-file-name name version))
8967 (sha256
f6501b9f 8968 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
8969 (build-system meson-build-system)
8970 (arguments
8971 `(#:configure-flags
8972 '("-Dglade_catalog=disabled"
8973 "-Dgtk_doc=true")
8974 #:phases
8975 (modify-phases %standard-phases
213315d4
JF
8976 (add-before 'check 'pre-check
8977 (lambda _
8978 ;; Tests require a running X server.
8979 (system "Xvfb :1 &")
8980 (setenv "DISPLAY" ":1")
8981 #t)))))
8982 (inputs
8983 `(("gtk+" ,gtk+)))
8984 (native-inputs
8985 `(("glib:bin" ,glib "bin")
8986 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
8987 ("vala" ,vala)
8988 ("gtk-doc" ,gtk-doc)
8989 ("pkg-config" ,pkg-config)
8990 ("gettext" ,gettext-minimal)
d41ee146
TGR
8991
8992 ;; Test suite dependencies.
ff337525 8993 ("xorg-server" ,xorg-server-for-tests)
d41ee146 8994 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
8995 (home-page "https://source.puri.sm/Librem5/libhandy")
8996 (synopsis "Library full of GTK+ widgets for mobile phones")
8997 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
8998interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
8999for usage on small and big screens.")
213315d4 9000 (license license:lgpl2.1+)))
a830d14d
GL
9001
9002(define-public libgit2-glib
9003 (package
9004 (name "libgit2-glib")
9005 (version "0.28.0.1")
9006 (source (origin
9007 (method url-fetch)
9008 (uri (string-append "mirror://gnome/sources/" name "/"
9009 (version-major+minor version) "/"
9010 name "-" version ".tar.xz"))
9011 (sha256
9012 (base32
9013 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9014 (build-system meson-build-system)
9015 (native-inputs
9016 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9017 ("gobject-introspection" ,gobject-introspection)
9018 ("intltool" ,intltool)
9019 ("libssh2" ,libssh2)
9020 ("pkg-config" ,pkg-config)
9021 ("python-pygobject" ,python-pygobject)
9022 ("python-wrapper" ,python-wrapper)
9023 ("vala" ,vala)))
9024 (inputs
9025 `(("glib" ,glib)
9026 ("libgit2" ,libgit2)))
9027 (synopsis "GLib wrapper around the libgit2 Git access library")
9028 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9029access library. It only implements the core plumbing functions, not really the
9030higher level porcelain stuff.")
9031 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9032 (license license:gpl2+)))
93beace0 9033
08db81c9
LP
9034(define-public gitg
9035 (package
9036 (name "gitg")
9037 (version "3.32.1")
9038 (source (origin
9039 (method url-fetch)
9040 (uri (string-append "mirror://gnome/sources/" name "/"
9041 (version-major+minor version) "/"
9042 name "-" version ".tar.xz"))
9043 (sha256
9044 (base32
9045 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9046 (build-system meson-build-system)
9047 (arguments
9048 `(#:glib-or-gtk? #t
9049 #:phases
9050 (modify-phases %standard-phases
9051 (add-after 'unpack 'disable-post-install-partially
9052 (lambda _
9053 (substitute* "meson_post_install.py"
9054 (("'python'") ; there are no python sources to compile
9055 (string-append "'" (which "true") "'"))
9056 (("gtk-update-icon-cache") (which "true")))
9057 #t))
9058 (add-after 'unpack 'fix-test-sources
9059 (lambda _
9060 (substitute* "tests/libgitg/test-commit.vala"
9061 (("/bin/bash") (which "bash")))
9062 #t))
9063 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9064 (lambda* (#:key outputs #:allow-other-keys)
9065 (let ((prog (string-append (assoc-ref outputs "out")
9066 "/bin/gitg")))
9067 (wrap-program prog
9068 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9069 #t))))))
9070 (inputs
9071 `(("glib" ,glib)
9072 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9073 ("gtk+" ,gtk+)
9074 ("gtkspell3" ,gtkspell3)
9075 ("gtksourceview" ,gtksourceview-3)
9076 ("json-glib" ,json-glib)
9077 ("libdazzle" ,libdazzle)
9078 ("libgee" ,libgee)
9079 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9080 ("libgit2-glib" ,libgit2-glib)
9081 ("libpeas" ,libpeas)
9082 ("libsecret" ,libsecret)
9083 ("libsoup" ,libsoup)
9084 ("libxml2" ,libxml2)))
9085 (native-inputs
9086 `(("glib:bin" ,glib "bin")
9087 ("gtk+:bin" ,gtk+ "bin")
9088 ("gobject-introspection" ,gobject-introspection)
9089 ("intltool" ,intltool)
9090 ("pkg-config" ,pkg-config)
9091 ("vala" ,vala)))
9092 (synopsis "Graphical user interface for git")
9093 (description
9094 "gitg is a graphical user interface for git. It aims at being a small,
9095fast and convenient tool to visualize the history of git repositories.
9096Besides visualization, gitg also provides several utilities to manage your
9097repository and commit your work.")
9098 (home-page "https://wiki.gnome.org/Apps/Gitg")
9099 (license license:gpl2+)))
9100
1e600ed0
RW
9101(define-public gamin
9102 (package
9103 (name "gamin")
9104 (version "0.1.10")
9105 (source (origin
9106 (method url-fetch)
9107 (uri (string-append "mirror://gnome/sources/" name "/"
9108 (version-major+minor version) "/"
9109 name "-" version ".tar.bz2"))
9110 (sha256
9111 (base32
9112 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9113 (build-system gnu-build-system)
9114 (arguments
9115 `(#:phases
9116 (modify-phases %standard-phases
9117 (add-after 'unpack 'remove-deprecated-macro
9118 (lambda _
9119 (substitute* '("server/gam_node.c"
9120 "server/gam_subscription.h"
9121 "server/gam_node.h"
9122 "server/gam_subscription.c")
9123 (("G_CONST_RETURN") "const"))
9124 #t)))))
9125 (inputs
9126 `(("glib" ,glib)))
9127 (native-inputs
9128 `(("intltool" ,intltool)
9129 ("pkg-config" ,pkg-config)))
9130 (home-page "https://people.gnome.org/~veillard/gamin/")
9131 (synopsis "File alteration monitor")
9132 (description
9133 "Gamin is a file and directory monitoring system defined to be a subset
9134of the FAM (File Alteration Monitor) system. This is a service provided by a
9135library which allows to detect when a file or a directory has been modified.")
9136 (license license:gpl2+)))
9137
93beace0
DW
9138(define-public gnome-mahjongg
9139 (package
9140 (name "gnome-mahjongg")
9141 (version "3.35.1")
9142 (source (origin
9143 (method git-fetch)
9144 (uri (git-reference
9145 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9146 (commit version)))
9147 (file-name (git-file-name name version))
9148 (sha256
9149 (base32
9150 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9151 (build-system meson-build-system)
9152 (arguments
9153 `(#:glib-or-gtk? #t))
9154 (native-inputs
9155 `(("appstream-glib" ,appstream-glib)
9156 ("gettext" ,gettext-minimal)
9157 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9158 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9159 ("itstool" ,itstool)
9160 ("pkg-config" ,pkg-config)
9161 ("vala" ,vala)))
9162 (propagated-inputs
9163 `(("dconf" ,dconf)))
9164 (inputs
9165 `(("glib" ,glib)
9166 ("gtk+" ,gtk+)
9167 ("librsvg" ,librsvg)))
9168 (synopsis "Mahjongg tile-matching game")
9169 (description "GNOME Mahjongg is a game based on the classic Chinese
9170tile-matching game Mahjong. It features multiple board layouts, tile themes,
9171and a high score table.")
9172 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9173 (license license:gpl2+)))
f825476c 9174
76ea7632
RG
9175(define-public gnome-themes-extra
9176 (package
9177 (name "gnome-themes-extra")
9178 (version "3.28")
9179 (source
9180 (origin
9181 (method url-fetch)
9182 (uri (string-append "mirror://gnome/sources/" name "/"
9183 (version-major+minor version) "/" name "-"
9184 version ".tar.xz"))
9185 (sha256
9186 (base32
9187 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9188 (build-system gnu-build-system)
885424bf
RG
9189 (arguments
9190 '(#:configure-flags
9191 ;; Don't create 'icon-theme.cache'.
9192 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9193 (true (string-append coreutils "/bin/true")))
9194 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9195 (native-inputs
9196 `(("glib:bin" ,glib "bin")
9197 ("intltool" ,intltool)
9198 ("pkg-config" ,pkg-config)))
9199 (inputs
9200 `(("glib" ,glib)
9201 ("gtk+" ,gtk+)
9202 ("gtk+-2" ,gtk+-2)
9203 ("librsvg" ,librsvg)
9204 ("libxml2" ,libxml2)))
9205 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9206 (synopsis "GNOME Extra Themes")
9207 (description "This package provides themes and related elements that don't
9208really fit in other upstream packages. It offers legacy support for GTK+ 2
9209versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9210index files needed for Adwaita to be used outside of GNOME.")
9211 (license license:lgpl2.1+)))
9212
f825476c
LP
9213(define-public polari
9214 (package
9215 (name "polari")
9216 (version "3.32.2")
9217 (source (origin
9218 (method url-fetch)
9219 (uri (string-append "mirror://gnome/sources/polari/"
9220 (version-major+minor version)
9221 "/polari-" version ".tar.xz"))
9222 (sha256
9223 (base32
9224 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9225 (build-system meson-build-system)
9226 (arguments
9227 `(#:glib-or-gtk? #t
9228 #:phases
9229 (modify-phases %standard-phases
9230 (add-after 'unpack 'skip-gtk-update-icon-cache
9231 (lambda _
9232 (substitute* "meson/meson-postinstall.sh"
9233 (("gtk-update-icon-cache") (which "true")))
9234 #t))
9235 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9236 (lambda* (#:key outputs #:allow-other-keys)
9237 (let ((prog (string-append (assoc-ref outputs "out")
9238 "/bin/polari")))
9239 (wrap-program prog
9240 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9241 #t))))))
9242 (inputs
9243 `(("glib" ,glib)
9244 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9245 ("gspell" ,gspell)
9246 ("gtk+" ,gtk+)
9247 ("gjs" ,gjs)
9248 ("libsecret" ,libsecret)
9249 ("libsoup" ,libsoup)
9250 ("telepathy-glib" ,telepathy-glib)
9251 ("telepathy-logger" ,telepathy-logger)))
9252 (native-inputs
9253 `(("glib:bin" ,glib "bin")
9254 ("gobject-introspection" ,gobject-introspection)
9255 ("intltool" ,intltool)
9256 ("pkg-config" ,pkg-config)
9257 ("yelp-tools" ,yelp-tools)))
9258 (propagated-inputs
9259 `(("telepathy-idle" ,telepathy-idle)
9260 ("telepathy-mission-control" ,telepathy-mission-control)))
9261 (synopsis "Simple IRC Client")
9262 (description
9263 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9264integrate seamlessly with the GNOME desktop.")
9265 (home-page "https://wiki.gnome.org/Apps/Polari")
9266 (license license:gpl2+)))