services: host-name: Make service one-shot.
[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)
551 (arguments '(#:glib-or-gtk? #t))
552 (native-inputs
553 `(("gettext" ,gettext-minimal)
554 ("glib:bin" ,glib "bin")
555 ("gtk+:bin" ,gtk+ "bin")
556 ("pkg-config" ,pkg-config)
557 ("python" ,python-minimal)))
558 (inputs
559 `(("gjs" ,gjs)
560 ("gtk+" ,gtk+)
561 ("libunistring" ,libunistring)))
562 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
563 (synopsis "Find and insert unusual characters")
564 (description "Characters is a simple utility application to find
565and insert unusual characters. It allows you to quickly find the
566character you are looking for by searching for keywords.")
567 (license license:bsd-3)))
568
7aab13f1
ML
569(define-public gnome-common
570 (package
571 (name "gnome-common")
af83490d 572 (version "3.18.0")
7aab13f1
ML
573 (source
574 (origin
575 (method url-fetch)
576 (uri (string-append "mirror://gnome/sources/" name "/"
577 (version-major+minor version) "/"
578 name "-" version ".tar.xz"))
579 (sha256
580 (base32
af83490d 581 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
582 (build-system gnu-build-system)
583 (home-page "https://www.gnome.org/")
584 (synopsis "Bootstrap GNOME modules built from Git")
585 (description "gnome-common contains various files needed to bootstrap
586GNOME modules built from Git. It contains a common \"autogen.sh\" script that
587can be used to configure a source directory checked out from Git and some
588commonly used macros.")
589 (license license:gpl2+)))
590
4e868d22
RG
591(define-public gnome-contacts
592 (package
593 (name "gnome-contacts")
6a6138b2 594 (version "3.32.1")
4e868d22
RG
595 (source (origin
596 (method url-fetch)
597 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
598 (version-major+minor version) "/"
599 name "-" version ".tar.xz"))
600 (sha256
601 (base32
6a6138b2 602 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
4e868d22
RG
603 (build-system meson-build-system)
604 (arguments
605 `(#:phases
606 (modify-phases %standard-phases
607 (add-after 'unpack 'generate-vapis
608 (lambda* (#:key inputs #:allow-other-keys)
609 ;; To generate goa's missing .vapi file
610 (define goa
611 (assoc-ref inputs "gnome-online-accounts:lib"))
612
613 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
614 "--library=goa-1.0"
615 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
616 #t)))))
617 (native-inputs
618 `(("glib:bin" ,glib "bin")
619 ("gtk+:bin" ,gtk+ "bin")
620 ("pkg-config" ,pkg-config)))
621 (inputs
622 `(("cheese" ,cheese)
623 ("docbook-xml" ,docbook-xml)
624 ("dockbook-xsl" ,docbook-xsl)
625 ("evolution-data-server" ,evolution-data-server)
626 ("gettext" ,gettext-minimal)
627 ("gnome-desktop" ,gnome-desktop)
628 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
629 ("gobject-introspection" ,gobject-introspection)
630 ("gst-plugins-base" ,gst-plugins-base)
631 ("gtk+" ,gtk+)
632 ("libgee" ,libgee)
633 ("libxslt" ,libxslt)
634 ("telepathy-glib" ,telepathy-glib)
635 ("vala" ,vala)))
636 (propagated-inputs
637 `(("folks", folks)
638 ("telepathy-mission-control" ,telepathy-mission-control)))
639 (synopsis "GNOME's integrated address book")
640 (description
641 "GNOME Contacts organizes your contact information from online and
642offline sources, providing a centralized place for managing your contacts.")
643 (home-page "https://wiki.gnome.org/Apps/Contacts")
644 (license license:gpl2+)))
645
9cc98f8a
CR
646(define-public gnome-desktop
647 (package
648 (name "gnome-desktop")
e8a26caa 649 (version "3.32.2")
9cc98f8a
CR
650 (source
651 (origin
652 (method url-fetch)
b38e45d8
EB
653 (uri (string-append "mirror://gnome/sources/" name "/"
654 (version-major+minor version) "/"
9cc98f8a
CR
655 name "-" version ".tar.xz"))
656 (sha256
657 (base32
e8a26caa
KK
658 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
659 (build-system meson-build-system)
a0fe7c06
CB
660 (arguments
661 '(#:phases
662 (modify-phases %standard-phases
663 (add-before 'configure 'patch-path
664 (lambda* (#:key inputs #:allow-other-keys)
665 (let ((libc (assoc-ref inputs "libc")))
666 (substitute* "libgnome-desktop/gnome-languages.c"
667 (("\"locale\"")
668 (string-append "\"" libc "/bin/locale\"")))
e8a26caa
KK
669 #t)))
670 (add-before 'check 'pre-check
671 (lambda* (#:key inputs #:allow-other-keys)
672 ;; Tests require a running X server and locales.
673 (system "Xvfb :1 &")
674 (setenv "DISPLAY" ":1")
675 (setenv "GUIX_LOCPATH"
676 (string-append (assoc-ref inputs "glibc-locales")
677 "/lib/locale"))
678 #t)))))
9cc98f8a 679 (native-inputs
e8a26caa
KK
680 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
681 ("glibc-locales" ,glibc-locales) ; for tests
682 ("gobject-introspection" ,gobject-introspection)
a8340482 683 ("itstool" ,itstool)
bcb354ad
SB
684 ("intltool" ,intltool)
685 ("pkg-config" ,pkg-config)
e8a26caa
KK
686 ("xmllint" ,libxml2)
687 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
688 (propagated-inputs
689 ;; Required by gnome-desktop-3.0.pc.
690 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 691 ("gtk+" ,gtk+)
9cc98f8a 692 ("iso-codes" ,iso-codes)
9863ce20 693 ("libseccomp" ,libseccomp)
9cc98f8a 694 ("libx11" ,libx11)
e8a26caa
KK
695 ("xkeyboard-config" ,xkeyboard-config)))
696 (inputs
697 `(("gdk-pixbuf" ,gdk-pixbuf)
698 ("glib" ,glib)
9cc98f8a
CR
699 ("libxext" ,libxext)
700 ("libxkbfile" ,libxkbfile)
e8a26caa 701 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
702 (home-page "https://www.gnome.org/")
703 (synopsis
35b9e423 704 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
705 (description
706 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
707on the desktop, but that cannot live in the platform for various reasons.
708There is no API or ABI guarantee, although we are doing our best to provide
709stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
710
711The gnome-about program helps find which version of GNOME is installed.")
712 ; Some bits under the LGPL.
1dd26275 713 (license license:gpl2+)))
9cc98f8a 714
995b7261
AE
715(define-public gnome-doc-utils
716 (package
717 (name "gnome-doc-utils")
718 (version "0.20.10")
719 (source
720 (origin
721 (method url-fetch)
b38e45d8
EB
722 (uri (string-append "mirror://gnome/sources/" name "/"
723 (version-major+minor version) "/"
995b7261
AE
724 name "-" version ".tar.xz"))
725 (sha256
726 (base32
727 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
728 (build-system gnu-build-system)
c4c4cc05 729 (native-inputs
995b7261 730 `(("intltool" ,intltool)
b4ce6300 731 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 732 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
733 ("libxml2" ,libxml2)
734 ("libxslt" ,libxslt)
735 ("pkg-config" ,pkg-config)
736 ("python-2" ,python-2)))
995b7261
AE
737 (home-page "https://wiki.gnome.org/GnomeDocUtils")
738 (synopsis
739 "Documentation utilities for the Gnome project")
740 (description
741 "Gnome-doc-utils is a collection of documentation utilities for the
742Gnome project. It includes xml2po tool which makes it easier to translate
743and keep up to date translations of documentation.")
1dd26275 744 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 745
6c4f7022
DC
746(define-public gnome-disk-utility
747 (package
748 (name "gnome-disk-utility")
e106d0a6 749 (version "3.32.1")
6c4f7022
DC
750 (source (origin
751 (method url-fetch)
752 (uri (string-append "mirror://gnome/sources/" name "/"
753 (version-major+minor version) "/"
754 name "-" version ".tar.xz"))
755 (sha256
756 (base32
e106d0a6 757 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
4b9a65bf 758 (build-system meson-build-system)
321c73c3
EF
759 (arguments
760 '(#:phases
761 (modify-phases %standard-phases
762 (add-after 'unpack 'skip-gtk-update-icon-cache
763 ;; Don't create 'icon-theme.cache'.
764 (lambda _
765 (substitute* "meson_post_install.py"
766 (("gtk-update-icon-cache") "true"))
767 #t)))))
6c4f7022
DC
768 (native-inputs
769 `(("glib:bin" ,glib "bin")
770 ("intltool" ,intltool)
771 ("pkg-config" ,pkg-config)
772 ("docbook-xml" ,docbook-xml)
773 ("docbook-xsl" ,docbook-xsl)
774 ("libxml2" ,libxml2)
775 ("libxslt" ,libxslt)))
776 (inputs
777 `(("glib" ,glib)
778 ("appstream-glib" ,appstream-glib)
779 ("gnome-settings-daemon" ,gnome-settings-daemon)
780 ("gtk+" ,gtk+)
781 ("libcanberra" ,libcanberra)
782 ("libdvdread" ,libdvdread)
783 ("libnotify" ,libnotify)
784 ("libpwquality" ,libpwquality)
785 ("libsecret" ,libsecret)
786 ("udisks" ,udisks)))
787 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
788 (synopsis "Disk management utility for GNOME")
789 (description "Disk management utility for GNOME.")
790 (license license:gpl2+)))
791
3d217317
RG
792(define-public gnome-font-viewer
793 (package
794 (name "gnome-font-viewer")
795 (version "3.30.0")
796 (source (origin
797 (method url-fetch)
798 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
799 (version-major+minor version)
800 "/gnome-font-viewer-" version ".tar.xz"))
801 (sha256
802 (base32
803 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
804 (build-system meson-build-system)
805 (arguments
806 '(#:phases
807 (modify-phases %standard-phases
808 (add-after 'unpack 'patch-post-install-script
809 (lambda _
810 (substitute* "meson-postinstall.sh"
811 (("update-desktop-database") (which "true")))
812 #t)))))
813 (native-inputs
814 `(("gettext" ,gettext-minimal)
815 ("glib:bin" ,glib "bin")
816 ("pkg-config" ,pkg-config)))
817 (inputs
818 `(("glib" ,glib)
819 ("gnome-desktop" ,gnome-desktop)
820 ("gtk+" ,gtk+)))
821 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
822 (synopsis "GNOME Fonts")
823 (description "Application to show you the fonts installed on your computer
824for your use as thumbnails. Selecting any thumbnails shows the full view of how
825the font would look under various sizes.")
826 (license license:gpl2+)))
827
8ff49011
RW
828(define-public gcr
829 (package
830 (name "gcr")
bea6b829 831 (version "3.28.1")
8ff49011 832 (source (origin
0daf0efb
RW
833 (method url-fetch)
834 (uri (string-append "mirror://gnome/sources/" name "/"
835 (version-major+minor version) "/"
836 name "-" version ".tar.xz"))
837 (sha256
838 (base32
bea6b829 839 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
03ecf85a
MB
840 (patches
841 (list
842 ;; This patch solves an ordering issue that showed up when
843 ;; running the test suite against newer Glib 2.60. See
844 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
845 (origin
846 (method url-fetch)
847 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
848 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
849 (file-name "gcr-hashtable-ordering.patch")
850 (sha256
851 (base32
852 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
8ff49011
RW
853 (build-system gnu-build-system)
854 (arguments
0daf0efb
RW
855 '(#:phases
856 (modify-phases %standard-phases
857 ;; These fail because /var/lib/dbus/machine-id is not present in the
858 ;; build environment.
859 (add-after 'unpack 'disable-failing-tests
860 (lambda _
861 (substitute* "gcr/test-system-prompt.c"
862 (("g_test_add") "//")
863 (("return.*") "return 0;"))
864 #t))
865 (add-before 'check 'pre-check
866 (lambda _
867 ;; Some tests expect to write to $HOME.
868 (setenv "HOME" "/tmp")
869 #t)))))
8ff49011
RW
870 (inputs
871 `(("dbus" ,dbus)
0daf0efb 872 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
873 ("libgcrypt" ,libgcrypt)))
874 (native-inputs
0daf0efb 875 `(("python" ,python-2) ;for tests
8ff49011
RW
876 ("pkg-config" ,pkg-config)
877 ("glib" ,glib "bin")
2af4f5b0
SB
878 ("gobject-introspection" ,gobject-introspection)
879 ("intltool" ,intltool)
0daf0efb 880 ("libxml2" ,libxml2)
bea6b829 881 ("vala" ,vala)
2af4f5b0 882 ("xsltproc" ,libxslt)))
8ff49011
RW
883 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
884 (propagated-inputs
885 `(("p11-kit" ,p11-kit)
886 ("glib" ,glib)
887 ("gtk+" ,gtk+)))
f032d0be 888 (home-page "https://www.gnome.org")
8ff49011
RW
889 (synopsis "Libraries for displaying certificates and accessing key stores")
890 (description
891 "The GCR package contains libraries used for displaying certificates and
892accessing key stores. It also provides the viewer for crypto files on the
893GNOME Desktop.")
894 (license license:lgpl2.1+)))
895
c1354b90
LC
896(define-public libgnome-keyring
897 (package
898 (name "libgnome-keyring")
5e8aec2c 899 (version "3.12.0")
c1354b90
LC
900 (source (origin
901 (method url-fetch)
b38e45d8
EB
902 (uri (string-append "mirror://gnome/sources/" name "/"
903 (version-major+minor version) "/"
904 name "-" version ".tar.xz"))
c1354b90
LC
905 (sha256
906 (base32
5e8aec2c 907 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 908 (build-system gnu-build-system)
c1354b90 909 (inputs
c4c4cc05 910 `(("libgcrypt" ,libgcrypt)
c1354b90 911 ("dbus" ,dbus)))
c4c4cc05
JD
912 (native-inputs
913 `(("pkg-config" ,pkg-config)
426adbe8 914 ("glib" ,glib "bin")
c4c4cc05 915 ("intltool" ,intltool)))
c1354b90
LC
916 (propagated-inputs
917 ;; Referred to in .h files and .pc.
918 `(("glib" ,glib)))
f032d0be 919 (home-page "https://www.gnome.org")
c1354b90
LC
920 (synopsis "Accessing passwords from the GNOME keyring")
921 (description
922 "Client library to access passwords from the GNOME keyring.")
923
924 ;; Though a couple of files are LGPLv2.1+.
1dd26275 925 (license license:lgpl2.0+)))
c1354b90 926
e99a3d6f
RW
927(define-public gnome-keyring
928 (package
929 (name "gnome-keyring")
ab35cc6e 930 (version "3.28.2")
e99a3d6f
RW
931 (source (origin
932 (method url-fetch)
933 (uri (string-append "mirror://gnome/sources/" name "/"
934 (version-major+minor version) "/"
935 name "-" version ".tar.xz"))
936 (sha256
937 (base32
ab35cc6e 938 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
e99a3d6f
RW
939 (build-system gnu-build-system)
940 (arguments
941 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
942 ;not exist
943 #:configure-flags
944 (list
945 (string-append "--with-pkcs11-config="
946 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
947 (string-append "--with-pkcs11-modules="
948 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
949 #:phases
950 (modify-phases %standard-phases
ab35cc6e
RW
951 (add-after 'unpack 'fix-/bin/sh-reference
952 (lambda _
953 (substitute* "po/Makefile.in.in"
954 (("/bin/sh") (which "sh")))
955 #t))
5120f24f
RW
956 (add-after 'unpack 'fix-docbook
957 (lambda* (#:key inputs #:allow-other-keys)
958 (substitute* "docs/Makefile.am"
959 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
960 (string-append (assoc-ref inputs "docbook-xsl")
961 "/xml/xsl/docbook-xsl-"
962 ,(package-version docbook-xsl)
963 "/manpages/docbook.xsl")))
964 (setenv "XML_CATALOG_FILES"
965 (string-append (assoc-ref inputs "docbook-xml")
966 "/xml/dtd/docbook/catalog.xml"))
967 ;; Rerun the whole thing to avoid version mismatch ("This is
968 ;; Automake 1.15.1, but the definition used by this
969 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
970 ;; use 'autoreconf' because it insists on running 'libtoolize'.
971 (invoke "autoconf")
972 (invoke "aclocal")
973 (invoke "automake" "-ac"))))))
e99a3d6f
RW
974 (inputs
975 `(("libgcrypt" ,libgcrypt)
1a0b2d82 976 ("linux-pam" ,linux-pam)
ab35cc6e 977 ("openssh" ,openssh)
e99a3d6f
RW
978 ("dbus" ,dbus)
979 ("gcr" ,gcr)))
980 (native-inputs
981 `(("pkg-config" ,pkg-config)
982 ("glib" ,glib "bin")
5120f24f 983 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
984 ("python" ,python-2) ;for tests
985 ("intltool" ,intltool)
986 ("autoconf" ,autoconf)
987 ("automake" ,automake)
988 ("libxslt" ,libxslt) ;for documentation
989 ("docbook-xml" ,docbook-xml-4.2)
990 ("docbook-xsl" ,docbook-xsl)))
f032d0be 991 (home-page "https://www.gnome.org")
e99a3d6f
RW
992 (synopsis "Daemon to store passwords and encryption keys")
993 (description
994 "gnome-keyring is a program that keeps passwords and other secrets for
995users. It is run as a daemon in the session, similar to ssh-agent, and other
996applications locate it via an environment variable or D-Bus.
997
998The program can manage several keyrings, each with its own master password,
999and there is also a session keyring which is never stored to disk, but
1000forgotten when the session ends.")
1001 (license license:lgpl2.1+)))
1002
c1354b90
LC
1003(define-public evince
1004 (package
1005 (name "evince")
936d5642 1006 (version "3.34.2")
c1354b90
LC
1007 (source (origin
1008 (method url-fetch)
ac631328 1009 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 1010 (version-major+minor version) "/"
ac631328 1011 "evince-" version ".tar.xz"))
c1354b90
LC
1012 (sha256
1013 (base32
936d5642 1014 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
121de2e1 1015 (build-system glib-or-gtk-build-system)
c1354b90
LC
1016 (arguments
1017 `(#:configure-flags '("--disable-nautilus")
554b2dac
SB
1018 #:phases
1019 (modify-phases %standard-phases
1020 (add-before 'install 'skip-gtk-update-icon-cache
1021 ;; Don't create 'icon-theme.cache'.
1022 (lambda _
1023 (substitute* "data/Makefile"
1024 (("gtk-update-icon-cache") "true"))
1025 #t)))))
c1354b90 1026 (inputs
9a096881
KK
1027 `(("libarchive" ,libarchive)
1028 ("libgxps" ,libgxps)
1029 ("libspectre" ,libspectre)
c769cf9f 1030 ("djvulibre" ,djvulibre)
c1354b90
LC
1031 ("ghostscript" ,ghostscript)
1032 ("poppler" ,poppler)
c769cf9f
SB
1033 ("libtiff" ,libtiff)
1034 ;; TODO:
c769cf9f
SB
1035 ;; Build libkpathsea as a shared library for DVI support.
1036 ;; ("libkpathsea" ,texlive-bin)
1037 ("gnome-desktop" ,gnome-desktop)
c1354b90 1038 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 1039 ("gspell" ,gspell)
c1354b90 1040 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 1041 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
1042 ("gdk-pixbuf" ,gdk-pixbuf)
1043 ("atk" ,atk)
1044 ("pango" ,pango)
1045 ("gtk+" ,gtk+)
1046 ("glib" ,glib)
1047 ("libxml2" ,libxml2)
c1354b90
LC
1048 ("libsm" ,libsm)
1049 ("libice" ,libice)
96e42467 1050 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
1051 ("dconf" ,dconf)
1052 ("libcanberra" ,libcanberra)
c769cf9f 1053 ("libsecret" ,libsecret)
a271096b 1054
c1354b90
LC
1055 ;; For tests.
1056 ("dogtail" ,python2-dogtail)))
96e42467 1057 (native-inputs
bcb354ad
SB
1058 `(("itstool" ,itstool)
1059 ("intltool" ,intltool)
426adbe8 1060 ("glib" ,glib "bin")
bcb354ad
SB
1061 ("pkg-config" ,pkg-config)
1062 ("xmllint" ,libxml2)))
c1354b90 1063 (home-page
f032d0be 1064 "https://www.gnome.org/projects/evince/")
c1354b90
LC
1065 (synopsis "GNOME's document viewer")
1066 (description
1067 "Evince is a document viewer for multiple document formats. It
1068currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1069of Evince is to replace the multiple document viewers that exist
96e42467 1070on the GNOME Desktop with a single simple application.")
1dd26275 1071 (license license:gpl2+)))
c1354b90 1072
22e32e69
AE
1073(define-public gsettings-desktop-schemas
1074 (package
1075 (name "gsettings-desktop-schemas")
c900dabd 1076 (version "3.32.0")
22e32e69
AE
1077 (source
1078 (origin
1079 (method url-fetch)
1080 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1081 (version-major+minor version) "/"
22e32e69
AE
1082 name "-" version ".tar.xz"))
1083 (sha256
1084 (base32
c900dabd
KK
1085 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1086 (build-system meson-build-system)
65209ffa
LC
1087 (arguments
1088 '(#:phases (modify-phases %standard-phases
1089 (add-after 'unpack 'set-adwaita-theme-file-name
1090 (lambda* (#:key inputs #:allow-other-keys)
1091 ;; Provide the correct file name of the default GNOME
1092 ;; background, 'adwaita-timed.xml'.
1093 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1094 (substitute* (find-files "schemas"
1095 "\\.gschema\\.xml\\.in$")
1096 (("@datadir@/backgrounds/gnome")
1097 (string-append theme "/share/backgrounds/gnome")))
1098 #t))))))
22e32e69 1099 (inputs
65209ffa
LC
1100 `(("glib" ,glib)
1101 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
1102 (native-inputs
1103 `(("intltool" ,intltool)
426adbe8 1104 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 1105 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
1106 ("pkg-config" ,pkg-config)))
1107 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1108 (synopsis
1109 "GNOME settings for various desktop components")
1110 (description
1111 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1112for settings shared by various components of the GNOME desktop.")
1dd26275 1113 (license license:lgpl2.1+)))
22e32e69 1114
27477d2d
AE
1115(define-public icon-naming-utils
1116 (package
1117 (name "icon-naming-utils")
1118 (version "0.8.90")
1119 (source
1120 (origin
1121 (method url-fetch)
5cc3096c 1122 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
1123 version ".tar.bz2"))
1124 (sha256
1125 (base32
1126 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1127 (build-system gnu-build-system)
1128 (inputs
1129 `(("perl" ,perl)
1130 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
1131 (arguments
1132 '(#:phases
dc1d3cde
KK
1133 (modify-phases %standard-phases
1134 (add-after 'install 'set-load-paths
1135 ;; Tell 'icon-name-mapping' where XML::Simple is.
1136 (lambda* (#:key outputs #:allow-other-keys)
1137 (let* ((out (assoc-ref outputs "out"))
1138 (prog (string-append out "/libexec/icon-name-mapping")))
1139 (wrap-program
1140 prog
1141 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1142 #t)))))
27477d2d
AE
1143 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1144 (synopsis
1145 "Utility to implement the Freedesktop Icon Naming Specification")
1146 (description
1147 "To help with the transition to the Freedesktop Icon Naming
1148Specification, the icon naming utility maps the icon names used by the
1149GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 1150 (license license:lgpl2.1+)))
27477d2d 1151
7d3f3651
AE
1152(define-public gnome-icon-theme
1153 (package
1154 (name "gnome-icon-theme")
b32f58dd 1155 (version "3.12.0")
7d3f3651
AE
1156 (source
1157 (origin
1158 (method url-fetch)
1159 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1160 (version-major+minor version) "/"
7d3f3651
AE
1161 name "-" version ".tar.xz"))
1162 (sha256
1163 (base32
b32f58dd 1164 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 1165 (build-system gnu-build-system)
5613c27d
SB
1166 (arguments
1167 '(#:configure-flags
1168 ;; Don't create 'icon-theme.cache'.
1169 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1170 (true (string-append coreutils "/bin/true")))
1171 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 1172 (native-inputs
5613c27d 1173 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
1174 ("intltool" ,intltool)
1175 ("pkg-config" ,pkg-config)))
5c610d4f
KK
1176 (home-page "https://wiki.gnome.org/Personalization")
1177 (synopsis "GNOME icon theme")
1178 (description "Icons for the GNOME desktop.")
1dd26275 1179 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 1180
14eeefa2
SB
1181;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1182(define-public adwaita-icon-theme
1183 (package (inherit gnome-icon-theme)
1184 (name "adwaita-icon-theme")
9be59d7f 1185 (version "3.32.0")
14eeefa2
SB
1186 (source (origin
1187 (method url-fetch)
1188 (uri (string-append "mirror://gnome/sources/" name "/"
1189 (version-major+minor version) "/"
1190 name "-" version ".tar.xz"))
1191 (sha256
1192 (base32
9be59d7f 1193 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
5613c27d
SB
1194 (native-inputs
1195 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 1196
ae792dba
RW
1197(define-public tango-icon-theme
1198 (package
1199 (name "tango-icon-theme")
1200 (version "0.8.90")
1201 (source (origin
1202 (method url-fetch)
1203 (uri (string-append "http://tango.freedesktop.org/releases/"
1204 "tango-icon-theme-" version ".tar.bz2"))
1205 (sha256
1206 (base32
1207 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1208 (build-system gnu-build-system)
1209 (native-inputs
1210 `(("icon-naming-utils" ,icon-naming-utils)
1211 ("intltool" ,intltool)
1212 ("imagemagick" ,imagemagick)
1213 ("pkg-config" ,pkg-config)))
1214 (home-page "http://tango-project.org/")
1215 (synopsis "Tango icon theme")
1216 (description "This is an icon theme that follows the Tango visual
1217guidelines.")
1218 (license license:public-domain)))
1219
9167f8e6
LC
1220(define-public shared-mime-info
1221 (package
1222 (name "shared-mime-info")
18138ab9 1223 (version "1.10")
9167f8e6
LC
1224 (source (origin
1225 (method url-fetch)
5cc3096c 1226 (uri (string-append "https://freedesktop.org/~hadess/"
b38e45d8 1227 "shared-mime-info-" version ".tar.xz"))
9167f8e6
LC
1228 (sha256
1229 (base32
18138ab9 1230 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
9167f8e6
LC
1231 (build-system gnu-build-system)
1232 (arguments
1233 ;; The build system appears not to be parallel-safe.
1234 '(#:parallel-build? #f))
1235 (inputs
1236 `(("glib" ,glib)
c4c4cc05 1237 ("libxml2" ,libxml2)))
9167f8e6 1238 (native-inputs
c4c4cc05
JD
1239 `(("intltool" ,intltool)
1240 ("pkg-config" ,pkg-config)))
57e7d748 1241 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
1242 (synopsis "Database of common MIME types")
1243 (description
1244 "The shared-mime-info package contains the core database of common types
1245and the update-mime-database command used to extend it. It requires glib2 to
1246be installed for building the update command. Additionally, it uses intltool
1247for translations, though this is only a dependency for the maintainers. This
1248database is translated at Transifex.")
1dd26275 1249 (license license:gpl2+)))
9167f8e6 1250
dd1fcddc
CB
1251(define-public system-config-printer
1252 (package
1253 (name "system-config-printer")
1254 (version "1.5.11")
1255 (source (origin
1256 (method url-fetch)
1257 (uri (string-append
1258 "https://github.com/zdohnal/system-config-printer/releases/"
1259 "download/" version
1260 "/system-config-printer-" version ".tar.xz"))
1261 (sha256
1262 (base32
1263 "1lq0q51bhanirpjjvvh4xiafi8hgpk8r32h0dj6dn3f32z8pib9q"))))
1264 (build-system glib-or-gtk-build-system)
1265 (arguments
1266 `(#:imported-modules ((guix build python-build-system)
1267 ,@%glib-or-gtk-build-system-modules)
1268 #:phases
1269 (modify-phases %standard-phases
1270 (add-after 'unpack 'patch-Makefile.am
1271 (lambda _
1272 ;; The Makefile generates some scripts, so set a valid shebang
1273 (substitute* "Makefile.am"
1274 (("/bin/bash") (which "bash")))
1275 (delete-file "configure")
1276 #t))
1277 (add-after 'unpack 'patch-docbook-xml
1278 (lambda* (#:key inputs #:allow-other-keys)
1279 ;; Modify the man XML otherwise xmlto tries to access the network
1280 (substitute* "man/system-config-printer.xml"
1281 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1282 (string-append (assoc-ref inputs "docbook-xml")
1283 "/xml/dtd/docbook/")))
1284 #t))
1285 (add-after 'install 'wrap-for-python
1286 (@@ (guix build python-build-system) wrap))
1287 (add-after 'install 'wrap
1288 (lambda* (#:key outputs #:allow-other-keys)
1289 (let ((out (assoc-ref outputs "out"))
1290 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1291 (for-each
1292 (lambda (program)
1293 (wrap-program program
1294 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1295 (map (lambda (name)
1296 (string-append out "/bin/" name))
1297 '("system-config-printer"
1298 "system-config-printer-applet"
1299 "install-printerdriver"
1300 "scp-dbus-service"))))
1301 #t)))))
1302 (inputs
1303 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1304 ("gobject-introspection" ,gobject-introspection)
1305 ("python" ,python)
1306 ("cups" ,cups)
1307 ("python-dbus" ,python-dbus)
1308 ("python-pygobject" ,python-pygobject)
1309 ("python-pycups" ,python-pycups)
1310 ("python-requests" ,python-requests)
1311 ("python-pycairo" ,python-pycairo)
1312 ("libnotify" ,libnotify)
1313 ("packagekit" ,packagekit)))
1314 (native-inputs
1315 `(("pkg-config" ,pkg-config)
1316 ("desktop-file-utils" ,desktop-file-utils)
1317 ("glib" ,glib)
1318 ("autoconf" ,autoconf)
1319 ("automake" ,automake)
1320 ("intltool" ,intltool)
1321 ("xmlto" ,xmlto)
1322 ("docbook-xml" ,docbook-xml-4.1.2)
1323 ("docbook-xsl" ,docbook-xsl)
1324 ("libxml2" ,libxml2)))
1325 (home-page "https://github.com/zdohnal/system-config-printer")
1326 (synopsis "CUPS administration tool")
1327 (description
1328 "system-config-printer is a CUPS administration tool. It's written in
1329Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1330configuring CUPS.")
1331 (license license:gpl2+)))
1332
bef4dd92
AE
1333(define-public hicolor-icon-theme
1334 (package
1335 (name "hicolor-icon-theme")
851cb6dd 1336 (version "0.17")
bef4dd92
AE
1337 (source
1338 (origin
1339 (method url-fetch)
5cc3096c 1340 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 1341 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
1342 (sha256
1343 (base32
851cb6dd 1344 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
1345 (build-system gnu-build-system)
1346 (arguments
1347 `(#:tests? #f)) ; no check target
57e7d748 1348 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
1349 (synopsis
1350 "Freedesktop icon theme")
1351 (description
1352 "Freedesktop icon theme.")
1dd26275 1353 (license license:gpl2)))
bef4dd92 1354
d9c1a22b
AE
1355(define-public libnotify
1356 (package
1357 (name "libnotify")
195bfa68 1358 (version "0.7.7")
d9c1a22b
AE
1359 (source
1360 (origin
1361 (method url-fetch)
1362 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1363 (version-major+minor version) "/"
d9c1a22b
AE
1364 name "-" version ".tar.xz"))
1365 (sha256
1366 (base32
195bfa68 1367 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 1368 (build-system gnu-build-system)
6acf6cec
MB
1369 (arguments
1370 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
1371 (propagated-inputs
1372 `(;; In Requires of libnotify.pc.
1373 ("gdk-pixbuf" ,gdk-pixbuf)
1374 ("glib" ,glib)))
d9c1a22b 1375 (inputs
7ef08efa 1376 `(("gtk+" ,gtk+)
c4c4cc05
JD
1377 ("libpng" ,libpng)))
1378 (native-inputs
426adbe8 1379 `(("pkg-config" ,pkg-config)
277a7d82
JN
1380 ("glib" ,glib "bin")
1381 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
1382 (home-page "https://developer-next.gnome.org/libnotify/")
1383 (synopsis
1384 "GNOME desktop notification library")
1385 (description
1386 "Libnotify is a library that sends desktop notifications to a
35b9e423 1387notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
1388notifications can be used to inform the user about an event or display
1389some form of information without getting in the user's way.")
1dd26275 1390 (license license:lgpl2.1+)))
7a8605ce
CR
1391
1392(define-public libpeas
1393 (package
1394 (name "libpeas")
db122a9b 1395 (version "1.22.0")
7a8605ce
CR
1396 (source
1397 (origin
1398 (method url-fetch)
1399 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 1400 (version-major+minor version) "/"
7a8605ce
CR
1401 name "-" version ".tar.xz"))
1402 (sha256
1403 (base32
db122a9b 1404 "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv"))))
7a8605ce 1405 (build-system gnu-build-system)
7a8605ce 1406 (inputs
2ed6522a
SB
1407 `(("gtk+" ,gtk+)
1408 ("glade" ,glade3)
2ed6522a
SB
1409 ("python" ,python)
1410 ("python-pygobject" ,python-pygobject)))
141aed80
LC
1411 (native-inputs
1412 `(("pkg-config" ,pkg-config)
93622993 1413 ("glib:bin" ,glib "bin")
141aed80
LC
1414 ("gobject-introspection" ,gobject-introspection)
1415 ("intltool" ,intltool)))
55b7bbd8
LC
1416 (propagated-inputs
1417 ;; The .pc file "Requires" gobject-introspection.
1418 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
1419 (home-page "https://wiki.gnome.org/Libpeas")
1420 (synopsis "GObject plugin system")
1421 (description
d1e4ad1b
TGR
1422 "Libpeas is a gobject-based plugin engine, targeted at giving every
1423application the chance to assume its own extensibility. It also has a set of
1424features including, but not limited to: multiple extension points; on-demand
1425(lazy) programming language support for C, Python and JS; simplicity of the
1426API.")
1dd26275 1427 (license license:lgpl2.0+)))
ed19903d
JD
1428
1429(define-public gtkglext
1430 (package
1431 (name "gtkglext")
1432 (version "1.2.0")
1433 (source (origin
1434 (method url-fetch)
0f971a04 1435 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
1436 version "/gtkglext-" version ".tar.gz"))
1437 (sha256
1438 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
1439 (patches (search-patches
1440 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 1441 (build-system gnu-build-system)
14e2f61a
RW
1442 (arguments
1443 `(#:phases
1444 (modify-phases %standard-phases
1445 ;; Fix a collision between a local variable and a definition from
1446 ;; glibc's string.h.
1447 (add-after 'unpack 'fix-collision
1448 (lambda _
1449 (substitute* "gdk/gdkglshapes.c"
1450 ((" index") " triangle_index"))
1451 #t)))))
ed19903d
JD
1452 (inputs `(("gtk+" ,gtk+-2)
1453 ("mesa" ,mesa)
cc8b02f4 1454 ("glu" ,glu)
ed19903d
JD
1455 ("libx11" ,libx11)
1456 ("libxt" ,libxt)))
426adbe8
LC
1457 (native-inputs `(("pkg-config" ,pkg-config)
1458 ("glib" ,glib "bin")))
a83b6a06 1459 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 1460 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 1461 (synopsis "OpenGL extension to GTK+")
35b9e423 1462 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
1463additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1464API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 1465 (license license:lgpl2.1+)))
3600420e
JD
1466
1467(define-public glade3
1468 (package
1469 (name "glade")
c6571adb 1470 (version "3.22.1")
b38e45d8
EB
1471 (source (origin
1472 (method url-fetch)
1473 (uri (string-append "mirror://gnome/sources/" name "/"
1474 (version-major+minor version) "/"
f5ca44b8 1475 name "-" version ".tar.xz"))
3600420e 1476 (sha256
f714d9fe 1477 (base32
c6571adb 1478 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
6983ba56 1479 (build-system glib-or-gtk-build-system)
f5ca44b8
RW
1480 (arguments
1481 `(#:tests? #f ; needs X, GL, and software rendering
1482 #:phases
1483 (modify-phases %standard-phases
1484 (add-before 'configure 'fix-docbook
1485 (lambda* (#:key inputs #:allow-other-keys)
1486 (substitute* "man/Makefile.in"
1487 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1488 (string-append (assoc-ref inputs "docbook-xsl")
1489 "/xml/xsl/docbook-xsl-"
1490 ,(package-version docbook-xsl)
1491 "/manpages/docbook.xsl")))
1492 #t)))))
3600420e 1493 (inputs
f5ca44b8 1494 `(("gtk+" ,gtk+)
3600420e
JD
1495 ("libxml2" ,libxml2)))
1496 (native-inputs
1497 `(("intltool" ,intltool)
f5ca44b8
RW
1498 ("itstool" ,itstool)
1499 ("libxslt" ,libxslt) ;for xsltproc
1500 ("docbook-xml" ,docbook-xml-4.2)
1501 ("docbook-xsl" ,docbook-xsl)
1502 ("python" ,python-2)
3600420e
JD
1503 ("pkg-config" ,pkg-config)))
1504 (home-page "https://glade.gnome.org")
1505 (synopsis "GTK+ rapid application development tool")
1506 (description "Glade is a rapid application development (RAD) tool to
1507enable quick & easy development of user interfaces for the GTK+ toolkit and
1508the GNOME desktop environment.")
1dd26275
LC
1509 (license license:lgpl2.0+)))
1510
1511(define-public libcroco
1512 (package
1513 (name "libcroco")
8bdacad2 1514 (version "0.6.13")
1dd26275
LC
1515 (source (origin
1516 (method url-fetch)
b38e45d8
EB
1517 (uri (string-append "mirror://gnome/sources/" name "/"
1518 (version-major+minor version) "/"
1519 name "-" version ".tar.xz"))
1dd26275
LC
1520 (sha256
1521 (base32
8bdacad2 1522 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
1523 (build-system gnu-build-system)
1524 (native-inputs
1525 `(("pkg-config" ,pkg-config)))
1526 (inputs
1527 `(("glib" ,glib)
1528 ("libxml2" ,libxml2)
1529 ("zlib" ,zlib)))
1530 (home-page "https://github.com/GNOME/libcroco")
1531 (synopsis "CSS2 parsing and manipulation library")
1532 (description
1533 "Libcroco is a standalone CSS2 parsing and manipulation library.
1534The parser provides a low level event driven SAC-like API and a CSS object
1535model like API. Libcroco provides a CSS2 selection engine and an experimental
1536XML/CSS rendering engine.")
1537
1538 ;; LGPLv2.1-only.
1539 (license license:lgpl2.1)))
25178594
LC
1540
1541(define-public libgsf
1542 (package
1543 (name "libgsf")
8d1644a1 1544 (version "1.14.46")
25178594
LC
1545 (source (origin
1546 (method url-fetch)
b38e45d8
EB
1547 (uri (string-append "mirror://gnome/sources/" name "/"
1548 (version-major+minor version) "/"
1549 name "-" version ".tar.xz"))
25178594
LC
1550 (sha256
1551 (base32
8d1644a1 1552 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
25178594
LC
1553 (build-system gnu-build-system)
1554 (native-inputs
1555 `(("intltool" ,intltool)
1556 ("pkg-config" ,pkg-config)))
1557 (inputs
1558 `(("python" ,python)
1559 ("zlib" ,zlib)
1560 ("bzip2" ,bzip2)))
1561 (propagated-inputs
1562 `(("gdk-pixbuf" ,gdk-pixbuf)
1563 ("glib" ,glib)
1564 ("libxml2" ,libxml2)))
f032d0be 1565 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
1566 (synopsis "GNOME's Structured File Library")
1567 (description
1568 "Libgsf aims to provide an efficient extensible I/O abstraction for
1569dealing with different structured file formats.")
1570
1571 ;; LGPLv2.1-only.
1572 (license license:lgpl2.1)))
63016e7c
LC
1573
1574(define-public librsvg
f67417a1
MB
1575 (package
1576 (name "librsvg")
1577 (version "2.40.20")
1578 (source (origin
1579 (method url-fetch)
1580 (uri (string-append "mirror://gnome/sources/" name "/"
1581 (version-major+minor version) "/"
1582 name "-" version ".tar.xz"))
1583 (sha256
1584 (base32
1585 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
1586 (build-system gnu-build-system)
1587 (arguments
1588 `(#:configure-flags
1589 (list "--disable-static"
1590 "--enable-vala") ; needed for e.g. gnome-mines
1591 #:phases
1592 (modify-phases %standard-phases
1593 (add-before 'configure 'pre-configure
1594 (lambda* (#:key inputs #:allow-other-keys)
1595 (substitute* "gdk-pixbuf-loader/Makefile.in"
1596 ;; By default the gdk-pixbuf loader is installed under
1597 ;; gdk-pixbuf's prefix. Work around that.
1598 (("gdk_pixbuf_moduledir = .*$")
1599 (string-append "gdk_pixbuf_moduledir = "
1600 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1601 "loaders\n"))
1602 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1603 (("gdk_pixbuf_cache_file = .*$")
1604 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1605 #t))
1606 (add-before 'check 'remove-failing-tests
1607 (lambda _
1608 (with-directory-excursion "tests/fixtures/reftests"
1609 (for-each delete-file
1610 '(;; This test fails on i686:
1611 "svg1.1/masking-path-04-b.svg"
1612 ;; This test fails on armhf:
1613 "svg1.1/masking-mask-01-b.svg"
1614 ;; This test fails on aarch64:
1615 "bugs/777834-empty-text-children.svg")))
1616 #t)))))
1617 (native-inputs
1618 `(("pkg-config" ,pkg-config)
1619 ("vala" ,vala)
1620 ("glib" ,glib "bin") ; glib-mkenums, etc.
1621 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1622 (inputs
1623 `(("pango" ,pango)
1624 ("libcroco" ,libcroco)
1625 ("bzip2" ,bzip2)
1626 ("libgsf" ,libgsf)
1627 ("libxml2" ,libxml2)))
1628 (propagated-inputs
1629 ;; librsvg-2.0.pc refers to all of that.
1630 `(("cairo" ,cairo)
1631 ("gdk-pixbuf" ,gdk-pixbuf)
1632 ("glib" ,glib)))
1633 (home-page "https://wiki.gnome.org/LibRsvg")
1634 (synopsis "Render SVG files using Cairo")
1635 (description
1636 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
1637library.")
1638 (license license:lgpl2.0+)))
1639
8f523eb9
EF
1640(define* (computed-origin-method gexp-promise hash-algo hash
1641 #:optional (name "source")
1642 #:key (system (%current-system))
1643 (guile (default-guile)))
1644 "Return a derivation that executes the G-expression that results
1645from forcing GEXP-PROMISE."
1646 (mlet %store-monad ((guile (package->derivation guile system)))
1647 (gexp->derivation (or name "computed-origin")
1648 (force gexp-promise)
1649 #:graft? #f ;nothing to graft
1650 #:system system
1651 #:guile-for-build guile)))
1652
1653(define librsvg-next-source
1654 (let* ((version "2.46.3")
1655 (upstream-source (origin
1656 (method url-fetch)
1657 (uri (string-append "mirror://gnome/sources/librsvg/"
1658 (version-major+minor version) "/"
1659 "librsvg-" version ".tar.xz"))
1660 (sha256
1661 (base32
1662 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
1663 (origin
1664 (method computed-origin-method)
1665 (file-name (string-append "librsvg-" version ".tar.xz"))
1666 (sha256 #f)
1667 (uri
1668 (delay
1669 (with-imported-modules '((guix build utils))
1670 #~(begin
1671 (use-modules (guix build utils))
1672 (set-path-environment-variable
1673 "PATH" '("bin")
1674 (list "/tmp"
1675 #+(canonical-package xz)
1676 #+(canonical-package gzip)
1677 #+(canonical-package tar)))
1678 (invoke "tar" "xvf" #+upstream-source)
1679 (with-directory-excursion (string-append "librsvg-" #$version)
1680 (for-each
1681 (lambda (crate)
1682 (delete-file-recursively (string-append "vendor/" (car crate)))
1683 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
1684 '(
1685;; aho-corasick 0.7
1686;; alga 0.9
1687;; approx 0.3
1688;; arrayvec 0.4
1689 ("atty" . #+(package-source rust-atty-0.2))
1690 ("autocfg" . #+(package-source rust-autocfg-0.1))
1691 ("bitflags" . #+(package-source rust-bitflags-1))
1692;; block 0.1
1693;; bstr 0.2
1694;; byteorder 1.3
1695;; cairo-rs 0.7
1696;; cairo-sys-rs 0.9
1697;; cast 0.2
1698 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
1699 ("clap" . #+(package-source rust-clap-2))
1700 ;("cloudabi" . #+(package-source rust-cloudabi-0.0))
1701;; criterion 0.2
1702;; criterion-plot 0.3
1703;; crossbeam-deque 0.7
1704;; crossbeam-epoch 0.7
1705;; crossbeam-queue 0.1
1706;; crossbeam-utils 0.6
1707;; cssparser 0.25
1708;; cssparser-macros 0.3
1709;; csv 1.1
1710;; csv-core 0.1
1711;; data-url 0.1
1712;; downcast-rs 1.0
1713 ("dtoa" . #+(package-source rust-dtoa-0.4))
1714;; dtoa-short 0.3
1715;; either 1.5
1716;; encoding 0.2
1717;; encoding-index-japanese 1.20141219.5
1718;; encoding-index-korean 1.20141219.5
1719;; encoding-index-simpchinese 1.20141219.5
1720;; encoding-index-singlebyte 1.20141219.5
1721;; encoding-index-tradchinese 1.20141219.5
1722;; encoding_index_tests 0.1
1723;; float-cmp 0.5
1724;; fragile 0.3
1725 ;("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
1726;; futf 0.1
1727;; gdk-pixbuf 0.7
1728;; gdk-pixbuf-sys 0.9
1729;; generic-array 0.12
1730;; gio 0.7
1731;; gio-sys 0.9
1732;; glib 0.8
1733;; glib-sys 0.9
1734;; gobject-sys 0.9
1735;; idna 0.2
1736;; itertools 0.8
1737 ("itoa" . #+(package-source rust-itoa-0.4))
1738 ;("language-tags" . #+(package-source rust-language-tags-0.2))
1739 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
1740 ("libc" . #+(package-source rust-libc-0.2))
1741;; libm 0.1
1742;; locale_config 0.3
1743 ("log" . #+(package-source rust-log-0.4))
1744;; mac 0.1
1745;; malloc_buf 0.0
1746;; markup5ever 0.9
1747 ;("matches" . #+(package-source rust-matches-0.1))
1748;; matrixmultiply 0.2
1749;; memchr 2.2
1750;; memoffset 0.5
1751;; nalgebra 0.18
1752;; new_debug_unreachable 1.0
1753 ("nodrop" . #+(package-source rust-nodrop-0.1))
1754;; num-complex 0.2
1755 ("num-integer" . #+(package-source rust-num-integer-0.1))
1756;; num-rational 0.2
1757 ("num-traits" . #+(package-source rust-num-traits-0.2))
1758 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
1759;; objc 0.2
1760;; objc-foundation 0.1
1761;; objc_id 0.1
1762;; pango 0.7
1763;; pango-sys 0.9
1764;; pangocairo 0.8
1765;; pangocairo-sys 0.10
1766 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
1767;; phf 0.7.24
1768;; phf_codegen 0.7.24
1769;; phf_generator 0.7.24
1770;; phf_shared 0.7.24
1771 ;("pkg-config" . #+(package-source rust-pkg-config-0.3))
1772;; precomputed-hash 0.1
1773 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
1774;; procedural-masquerade 0.1
1775 ("quote" . #+(package-source rust-quote-1.0))
1776 ;("rand" . #+(package-source rust-rand-0.6))
1777 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
1778 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
1779 ("rand_core" . #+(package-source rust-rand-core-0.4))
1780 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
1781 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
1782 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
1783 ("rand_os" . #+(package-source rust-rand-os-0.1))
1784 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
1785 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
1786;; rand_xoshiro 0.1
1787 ;("rawpointer" . #+(package-source rust-rawpointer-0.1))
1788;; rayon 1.2
1789;; rayon-core 1.6
1790;; rctree 0.3
1791 ("rdrand" . #+(package-source rust-rdrand-0.4))
1792;; regex 1.3
1793;; regex-automata 0.1
1794 ;("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
1795;; rustc_version 0.2
1796 ("ryu" . #+(package-source rust-ryu-1.0))
1797 ("same-file" . #+(package-source rust-same-file-1.0))
1798 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
1799;; semver 0.9
1800 ;("semver-parser" . #+(package-source rust-semver-parser-0.7))
1801 ("serde" . #+(package-source rust-serde-1.0))
1802 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
1803 ("serde_json" . #+(package-source rust-serde-json-1.0))
1804;; siphasher 0.2
1805;; smallvec 0.6
1806;; string_cache 0.7
1807;; string_cache_codegen 0.4
1808;; string_cache_shared 0.3
1809 ("syn" . #+(package-source rust-syn-1.0))
1810;; tendril 0.4
1811 ("textwrap" . #+(package-source rust-textwrap-0.11))
1812 ;("thread_local" . #+(package-source rust-thread-local-0.3))
1813;; tinytemplate 1.0
1814 ;("typenum" . #+(package-source rust-typenum-1.10))
1815;; unicode-bidi 0.3
1816;; unicode-normalization 0.1
1817 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
1818 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
1819;; url 2.1
1820;; utf-8 0.7
1821 ("walkdir" . #+(package-source rust-walkdir-2.2))
1822 ("winapi" . #+(package-source rust-winapi-0.3))
1823 ;("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
1824 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
1825 ;("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
1826;; xml-rs 0.8
1827 )))
1828 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
1829 (force-output)
1830 (invoke "tar" "cfa" #$output
1831 ;; Avoid non-determinism in the archive. We set the
1832 ;; mtime of files in the archive to early 1980 because
1833 ;; the build process fails if the mtime of source
1834 ;; files is pre-1980, due to the creation of zip
1835 ;; archives.
1836 "--mtime=@315619200" ; 1980-01-02 UTC
1837 "--owner=root:0"
1838 "--group=root:0"
1839 "--sort=name"
1840 (string-append "librsvg-" #$version))
1841 #t)))))))
1842
f67417a1 1843(define-public librsvg-next
63016e7c
LC
1844 (package
1845 (name "librsvg")
cf9dad6c 1846 (version "2.46.3")
8f523eb9 1847 (source librsvg-next-source)
63016e7c
LC
1848 (build-system gnu-build-system)
1849 (arguments
d953418a
RW
1850 `(#:configure-flags
1851 (list "--disable-static"
1852 "--enable-vala") ; needed for e.g. gnome-mines
7e0f4cb1 1853 #:make-flags '("CC=gcc")
8f523eb9 1854 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
ec47c07d 1855 #:phases
b6239e45 1856 (modify-phases %standard-phases
8f523eb9 1857 (add-after 'configure 'patch-cargo-checksums
ec47c07d 1858 (lambda _
8f523eb9
EF
1859 (use-modules (guix build cargo-utils))
1860 (substitute* "librsvg/Cargo.toml"
1861 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
b665a246 1862 (generate-all-checksums "vendor")
8f523eb9
EF
1863 (delete-file "Cargo.lock")
1864 (invoke "cargo" "generate-lockfile")))
b6239e45
EF
1865 (add-before 'configure 'pre-configure
1866 (lambda* (#:key inputs #:allow-other-keys)
1867 (substitute* "gdk-pixbuf-loader/Makefile.in"
1868 ;; By default the gdk-pixbuf loader is installed under
1869 ;; gdk-pixbuf's prefix. Work around that.
1870 (("gdk_pixbuf_moduledir = .*$")
1871 (string-append "gdk_pixbuf_moduledir = "
1872 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1873 "loaders\n"))
1874 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1875 (("gdk_pixbuf_cache_file = .*$")
1876 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1877 #t))
ec47c07d 1878 (add-before 'check 'remove-failing-tests
b6239e45 1879 (lambda _
64a153bd
MW
1880 (with-directory-excursion "tests/fixtures/reftests"
1881 (for-each delete-file
ec47c07d
MB
1882 '(;; The images produced by these tests differ slightly
1883 ;; from their reference counterparts due to differences
1884 ;; in the build environment (missing fonts, etc). See
1885 ;; <tests/README.md> for details.
1886 ;; These fail on x86_64.
1887 "svg1.1/coords-viewattr-02-b.svg"
1888 "svg1.1/filters-composite-04-f.svg"
1889 "svg1.1/filters-image-01-b.svg"
1890 "svg1.1/filters-conv-02-f.svg"
1891 "svg1.1/filters-conv-04-f.svg"
1892 ;; This test fails on i686:
64a153bd 1893 "svg1.1/masking-path-04-b.svg"
64a153bd
MW
1894 ;; This test fails on armhf:
1895 "svg1.1/masking-mask-01-b.svg"
64a153bd 1896 ;; This test fails on aarch64:
ec47c07d 1897 "bugs/777834-empty-text-children.svg")))
b6239e45 1898 #t)))))
63016e7c
LC
1899 (native-inputs
1900 `(("pkg-config" ,pkg-config)
64855281
MB
1901 ;; This is the minimum supported Rust version in Librsvg 2.46.
1902 ("rust" ,rust-1.34)
1903 ("cargo" ,rust-1.34 "cargo")
d953418a 1904 ("vala" ,vala)
44add1ce 1905 ("glib" ,glib "bin") ; glib-mkenums, etc.
63016e7c
LC
1906 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1907 (inputs
1908 `(("pango" ,pango)
1909 ("libcroco" ,libcroco)
1910 ("bzip2" ,bzip2)
1911 ("libgsf" ,libgsf)
1912 ("libxml2" ,libxml2)))
1913 (propagated-inputs
1914 ;; librsvg-2.0.pc refers to all of that.
1915 `(("cairo" ,cairo)
1916 ("gdk-pixbuf" ,gdk-pixbuf)
1917 ("glib" ,glib)))
1918 (home-page "https://wiki.gnome.org/LibRsvg")
1919 (synopsis "Render SVG files using Cairo")
1920 (description
35b9e423 1921 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
63016e7c 1922library.")
cf9dad6c 1923 (license license:lgpl2.1+)))
5698b8b8
JD
1924
1925(define-public libidl
1926 (package
1927 (name "libidl")
1928 (version "0.8.14")
1929 (source (origin
1930 (method url-fetch)
80a06e62
EF
1931 (uri (string-append "mirror://gnome/sources/libIDL/"
1932 (version-major+minor version) "/"
1933 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
1934 (sha256
1935 (base32
1936 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
1937 (build-system gnu-build-system)
1938 (inputs `(("glib" ,glib)))
1939 (native-inputs
1940 `(("pkg-config" ,pkg-config)
b3546174 1941 ("flex" ,flex)
5698b8b8
JD
1942 ("bison" ,bison)))
1943 (home-page "http://freecode.com/projects/libidl")
1944 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 1945 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
1946Definition Language (idl) files, which is a specification for defining
1947portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 1948GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 1949functionality was designed to be as reusable and portable as possible.")
ef2c55bb 1950 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
1951 (license license:lgpl2.0+)))
1952
1953
1954(define-public orbit2
1955 (package
1956 (name "orbit2")
1957 (version "2.14.19")
1958 (source (origin
1959 (method url-fetch)
2e6ecc5c 1960 (uri (let ((upstream-name "ORBit2"))
a124bbd2 1961 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
1962 (version-major+minor version) "/"
1963 upstream-name "-" version ".tar.bz2")))
5698b8b8 1964 (sha256
a124bbd2
SB
1965 (base32
1966 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
1967 (build-system gnu-build-system)
1968 (arguments
a124bbd2 1969 `(#:configure-flags
8aad2e32
LC
1970 '(;; We don't need static libraries, plus they don't build reproducibly
1971 ;; (non-deterministic ordering of .o files in the archive.)
1972 "--disable-static"
1973
1974 ;; The programmer kindly gives us a hook to turn off deprecation
1975 ;; warnings ...
1976 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
1977 ;; ... which they then completly ignore !!
1978 #:phases
dc1d3cde
KK
1979 (modify-phases %standard-phases
1980 (add-before 'configure 'ignore-deprecations
1981 (lambda _
1982 (substitute* "linc2/src/Makefile.in"
1983 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1984 #t)))))
5698b8b8
JD
1985 (inputs `(("glib" ,glib)
1986 ("libidl" ,libidl)))
1987 (native-inputs
1988 `(("pkg-config" ,pkg-config)))
1989 (home-page "https://projects.gnome.org/orbit2/")
1990 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 1991 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 1992featuring mature C, C++ and Python bindings.")
a124bbd2
SB
1993 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
1994 ;; a version. SOME of the code files have licence notices for GPLv2+.
1995 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
1996 (license license:gpl2+)
1997 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
1998
1999
2000(define-public libbonobo
2001 (package
2002 (name "libbonobo")
2003 (version "2.32.1")
2004 (source (origin
2005 (method url-fetch)
5becd025 2006 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 2007 (version-major+minor version)
5becd025 2008 "/" name "-" version ".tar.bz2"))
5698b8b8 2009 (sha256
f1fc45a9 2010 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
2011 (patches (search-patches
2012 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
2013 (build-system gnu-build-system)
2014 (arguments
2015 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
2016 `(#:configure-flags
2017 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2018 ;; ... which they then completly ignore !!
2019 #:phases
dc1d3cde
KK
2020 (modify-phases %standard-phases
2021 (add-before 'configure 'ignore-deprecations
2022 (lambda _
2023 (substitute* "activation-server/Makefile.in"
2024 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
2025 #t)))
2026
2027 ;; There's apparently a race condition between the server stub
2028 ;; generation and linking of the example under 'samples/echo' that can
2029 ;; lead do undefined references when building in parallel, as reported
2030 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2031 ;; Thus, disable parallel builds.
2032 #:parallel-build? #f))
5698b8b8
JD
2033 (inputs `(("popt" ,popt)
2034 ("libxml2" ,libxml2)))
2035 ;; The following are Required by the .pc file
44add1ce 2036 (propagated-inputs
5698b8b8
JD
2037 `(("glib" ,glib)
2038 ("orbit2" ,orbit2)))
2039 (native-inputs
2040 `(("intltool" ,intltool)
2041 ("pkg-config" ,pkg-config)
221ed17a 2042 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2043 ("flex" ,flex)
2044 ("bison" ,bison)))
2045 (home-page "https://developer.gnome.org/libbonobo/")
2046 (synopsis "Framework for creating reusable components for use in GNOME applications")
2047 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 2048use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
2049 ;; Licence not explicitly stated. Source files contain no licence notices.
2050 ;; Tarball contains text of both GPLv2 and LGPLv2
2051 ;; GPLv2 covers both conditions
2052 (license license:gpl2+)))
2053
2054
2055(define-public gconf
2056 (package
2057 (name "gconf")
2058 (version "3.2.6")
2059 (source (origin
2060 (method url-fetch)
a124bbd2
SB
2061 (uri
2062 (let ((upstream-name "GConf"))
2063 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
2064 (version-major+minor version) "/"
2065 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
2066 (sha256
2067 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2068 (build-system gnu-build-system)
2e88d113 2069 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 2070 ("libxml2" ,libxml2)))
2e6ecc5c
AE
2071 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2072 ("orbit2" ,orbit2)))
5698b8b8
JD
2073 (native-inputs
2074 `(("intltool" ,intltool)
221ed17a 2075 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2076 ("pkg-config" ,pkg-config)))
2077 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
2078 (synopsis "Store application preferences")
2079 (description "Gconf is a system for storing application preferences. It
2080is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
2081 (license license:lgpl2.0+)
2082 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
2083
2084
2085(define-public gnome-mime-data
2086 (package
2087 (name "gnome-mime-data")
2088 (version "2.18.0")
2089 (source (origin
2090 (method url-fetch)
b38e45d8
EB
2091 (uri (string-append "mirror://gnome/sources/" name "/"
2092 (version-major+minor version) "/"
2093 name "-" version ".tar.bz2"))
5698b8b8
JD
2094 (sha256
2095 (base32
2096 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2097 (build-system gnu-build-system)
2098 (native-inputs
2099 `(("perl" ,perl)
2100 ("intltool" ,intltool)))
3e6add96
LC
2101 (arguments
2102 '(#:phases (modify-phases %standard-phases
2103 (add-after 'configure 'use-our-intltool
2104 (lambda _
2105 ;; Do not use the bundled intltool commands, which lack
2106 ;; the "dotless @INC" fixes of our 'intltool' package.
2107 (substitute* (find-files "." "^Makefile$")
2108 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2109 (string-append "INTLTOOL_" tool " = intltool-"
2110 (string-downcase tool) "\n")))
2111 #t)))))
f032d0be 2112 (home-page "https://www.gnome.org")
35b9e423 2113 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
2114 (description "GNOME Mime Data is a module which contains the base MIME
2115and Application database for GNOME. The data stored by this module is
2116designed to be accessed through the MIME functions in GnomeVFS.")
2117 (license license:gpl2+)))
2118
2119
2120(define-public gnome-vfs
2121 (package
2122 (name "gnome-vfs")
2123 (version "2.24.4")
2124 (source (origin
2125 (method url-fetch)
b38e45d8
EB
2126 (uri (string-append "mirror://gnome/sources/" name "/"
2127 (version-major+minor version) "/"
2128 name "-" version ".tar.bz2"))
5698b8b8 2129 (sha256
9e12bc34
MW
2130 (base32
2131 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
2132 (build-system gnu-build-system)
2133 (arguments
db5127d8 2134 `(#:phases
dc1d3cde
KK
2135 (modify-phases %standard-phases
2136 (add-before 'configure 'ignore-deprecations
2137 (lambda _
2138 (substitute* '("libgnomevfs/Makefile.in"
2139 "daemon/Makefile.in")
2140 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2141 #t))
2142 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2143 (lambda _
2144 (substitute* "test/test-async-cancel.c"
2145 (("EXIT_FAILURE") "77"))
2146 #t)))))
2e6ecc5c 2147 (inputs `(("libxml2" ,libxml2)
5698b8b8 2148 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
2149 ("gconf" ,gconf)
2150 ("gnome-mime-data" ,gnome-mime-data)
2151 ("zlib" ,zlib)))
2152 (native-inputs
221ed17a
EB
2153 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2154 ("intltool" ,intltool)
5698b8b8
JD
2155 ("pkg-config" ,pkg-config)))
2156 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 2157 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
2158 (description
2159 "GnomeVFS is the core library used to access files and folders in GNOME
2160applications. It provides a file system abstraction which allows applications
2161to access local and remote files with a single consistent API.")
5698b8b8
JD
2162 (license license:lgpl2.0+)))
2163
2164
2165
2166(define-public libgnome
2167 (package
2168 (name "libgnome")
2169 (version "2.32.1")
2170 (source (origin
2171 (method url-fetch)
b38e45d8
EB
2172 (uri (string-append "mirror://gnome/sources/" name "/"
2173 (version-major+minor version) "/"
2174 name "-" version ".tar.bz2"))
5698b8b8
JD
2175 (sha256
2176 (base32
17c3eea7
LC
2177 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2178 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
2179 (build-system gnu-build-system)
2180 (arguments
2181 `(#:phases
dc1d3cde
KK
2182 (modify-phases %standard-phases
2183 (add-before 'configure 'enable-deprecated
2184 (lambda _
2185 (substitute* "libgnome/Makefile.in"
2186 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2187 #t)))))
25338e9f 2188 (inputs `(("libxml2" ,libxml2)))
5698b8b8 2189 (native-inputs
221ed17a
EB
2190 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2191 ("intltool" ,intltool)
5698b8b8
JD
2192 ("pkg-config" ,pkg-config)))
2193 ;; The following are listed as Required in the .pc file
2194 ;; (except for libcanberra -- which seems to be oversight on the part
2195 ;; of the upstream developers -- anything that links against libgnome,
2196 ;; must also link against libcanberra
2197 (propagated-inputs
2198 `(("libcanberra" ,libcanberra)
2199 ("libbonobo" ,libbonobo)
2200 ("gconf" ,gconf)
a640d3d5
LC
2201 ("gnome-vfs" ,gnome-vfs)
2202 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
2203 (home-page "https://developer.gnome.org/libgnome/")
2204 (synopsis "Useful routines for building applications")
2205 (description "The libgnome library provides a number of useful routines
2206for building modern applications, including session management, activation of
2207files and URIs, and displaying help.")
2208 (license license:lgpl2.0+)))
2209
2210
2211(define-public libart-lgpl
2212 (package
2213 (name "libart-lgpl")
76c9b6aa 2214 (version "2.3.21")
5698b8b8
JD
2215 (source (origin
2216 (method url-fetch)
2217 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
2218 (string-append "mirror://gnome/sources/" upstream-name "/"
2219 (version-major+minor version) "/"
2220 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
2221 (sha256
2222 (base32
76c9b6aa 2223 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
2224 (build-system gnu-build-system)
2225 (native-inputs
2226 `(("pkg-config" ,pkg-config)))
2227 (home-page "https://people.gnome.org/~mathieu/libart")
2228 (synopsis "2D drawing library")
2e6ecc5c 2229 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
2230high-quality vector-based 2D library with antialiasing and alpha composition.")
2231 (license license:lgpl2.0+)))
2232
2233
2234
2235(define-public libgnomecanvas
2236 (package
2237 (name "libgnomecanvas")
2238 (version "2.30.3")
2239 (source (origin
2240 (method url-fetch)
b38e45d8
EB
2241 (uri (string-append "mirror://gnome/sources/" name "/"
2242 (version-major+minor version) "/"
2243 name "-" version ".tar.gz"))
5698b8b8
JD
2244 (sha256
2245 (base32
2246 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2247 (build-system gnu-build-system)
2248 ;; Mentioned as Required in the .pc file
2249 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2250 ("gtk+" ,gtk+-2)))
2251 (native-inputs
2252 `(("intltool" ,intltool)
221ed17a 2253 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2254 ("pkg-config" ,pkg-config)))
2255 (home-page "https://developer.gnome.org/libgnomecanvas/")
2256 (synopsis "Flexible widget for creating interactive structured graphics")
2257 (description "The GnomeCanvas widget provides a flexible widget for
2258creating interactive structured graphics.")
2259 (license license:lgpl2.0+)))
2260
eadc734e
RW
2261(define-public libgnomecanvasmm
2262 (package
2263 (name "libgnomecanvasmm")
2264 (version "2.26.0")
2265 (source (origin
2266 (method url-fetch)
2267 (uri (string-append "mirror://gnome/sources/" name "/"
2268 (version-major+minor version) "/"
2269 name "-" version ".tar.bz2"))
2270 (sha256
2271 (base32
2272 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2273 (build-system gnu-build-system)
2274 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2275 (native-inputs
2276 `(("gtkmm-2" ,gtkmm-2)
2277 ("pkg-config" ,pkg-config)))
8e933cb3 2278 (home-page "https://gtkmm.org")
eadc734e
RW
2279 (synopsis "C++ bindings to the GNOME Canvas library")
2280 (description "C++ bindings to the GNOME Canvas library.")
2281 (license license:lgpl2.0+)))
2282
5698b8b8
JD
2283(define-public libgnomeui
2284 (package
2285 (name "libgnomeui")
2286 (version "2.24.5")
2287 (source (origin
2288 (method url-fetch)
b38e45d8
EB
2289 (uri (string-append "mirror://gnome/sources/" name "/"
2290 (version-major+minor version) "/"
2291 name "-" version ".tar.bz2"))
8fa1872a 2292 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
2293 (sha256
2294 (base32
2295 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2296 (build-system gnu-build-system)
2297 ;; Mentioned as Required in the .pc file
0a38a497
AE
2298 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2299 ("libgnome" ,libgnome)
2300 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 2301 ("libgnome-keyring" ,libgnome-keyring)))
0a38a497 2302 (inputs `(("libjpeg" ,libjpeg)
5698b8b8
JD
2303 ("popt" ,popt)
2304 ("libbonobo" ,libbonobo)
2305 ("libxml2" ,libxml2)
2306 ("libglade" ,libglade)))
2307 (native-inputs
221ed17a
EB
2308 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2309 ("intltool" ,intltool)
5698b8b8
JD
2310 ("pkg-config" ,pkg-config)))
2311 (home-page "https://developer.gnome.org/libgnomeui/")
2312 (synopsis "Additional widgets for applications")
35b9e423 2313 (description "The libgnomeui library provides additional widgets for
e881752c
AK
2314applications. Many of the widgets from libgnomeui have already been
2315ported to GTK+.")
5698b8b8
JD
2316 (license license:lgpl2.0+)))
2317
2318(define-public libglade
2319 (package
2320 (name "libglade")
2321 (version "2.6.4")
2322 (source (origin
2323 (method url-fetch)
b38e45d8
EB
2324 (uri (string-append "mirror://gnome/sources/" name "/"
2325 (version-major+minor version) "/"
2326 name "-" version ".tar.bz2"))
5698b8b8
JD
2327 (sha256
2328 (base32
2329 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2330 (build-system gnu-build-system)
2331 (inputs
92dcc23d
AE
2332 `(("python" ,python))) ;; needed for the optional libglade-convert program
2333 (propagated-inputs
5698b8b8 2334 `(("gtk+-2" ,gtk+-2)
92dcc23d 2335 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
2336 (native-inputs
2337 `(("pkg-config" ,pkg-config)))
2338 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
2339 (synopsis "Load glade interfaces and access the glade built widgets")
2340 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
2341graphical interfaces described in glade files and for accessing the
2342widgets built in the loading process.")
2343 (license license:gpl2+))) ; This is correct. GPL not LGPL
2344
2345(define-public libgnomeprint
eb497b66
LC
2346 ;; This library has been deprecated since 2006; see
2347 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
2348 (package
2349 (name "libgnomeprint")
d19db454 2350 (version "2.18.8")
5698b8b8
JD
2351 (source (origin
2352 (method url-fetch)
b38e45d8
EB
2353 (uri (string-append "mirror://gnome/sources/" name "/"
2354 (version-major+minor version) "/"
2355 name "-" version ".tar.bz2"))
5698b8b8
JD
2356 (sha256
2357 (base32
d19db454 2358 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
2359 (build-system gnu-build-system)
2360 (inputs
2361 `(("popt" ,popt)
2362 ("libart-lgpl" ,libart-lgpl)
2363 ("gtk+" ,gtk+-2)
44add1ce 2364 ("libxml2" ,libxml2)))
5698b8b8
JD
2365 (native-inputs
2366 `(("intltool" ,intltool)
221ed17a 2367 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
2368 ("pkg-config" ,pkg-config)))
2369 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 2370 (synopsis "Printing framework for GNOME")
eb497b66
LC
2371 (description
2372 "GNOME-print was a printing framework for GNOME. It has been deprecated
2373since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
2374 (license license:lgpl2.0+)))
2375
2376
2377(define-public libgnomeprintui
eb497b66 2378 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
2379 (package
2380 (name "libgnomeprintui")
36053d7f 2381 (version "2.18.6")
5698b8b8
JD
2382 (source (origin
2383 (method url-fetch)
b38e45d8
EB
2384 (uri (string-append "mirror://gnome/sources/" name "/"
2385 (version-major+minor version) "/"
2386 name "-" version ".tar.bz2"))
5698b8b8
JD
2387 (sha256
2388 (base32
36053d7f 2389 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
2390 (build-system gnu-build-system)
2391 ;; Mentioned as Required in the .pc file
2392 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2393 (inputs `(("gtk+" ,gtk+-2)
2394 ("glib" ,glib)
2395 ("gnome-icon-theme" ,gnome-icon-theme)
2396 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 2397 ("libxml2" ,libxml2)))
5698b8b8
JD
2398 (native-inputs
2399 `(("intltool" ,intltool)
2400 ("pkg-config" ,pkg-config)))
2401 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2402 (synopsis "Printing framework for GNOME")
eb497b66 2403 (description (package-description libgnomeprint))
5698b8b8
JD
2404 (license license:lgpl2.0+)))
2405
5698b8b8
JD
2406(define-public libbonoboui
2407 (package
2408 (name "libbonoboui")
2409 (version "2.24.5")
2410 (source (origin
2411 (method url-fetch)
b38e45d8
EB
2412 (uri (string-append "mirror://gnome/sources/" name "/"
2413 (version-major+minor version) "/"
2414 name "-" version ".tar.bz2"))
5698b8b8
JD
2415 (sha256
2416 (base32
2417 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2418 (build-system gnu-build-system)
2419 (arguments
2420 `(#:phases
dc1d3cde
KK
2421 (modify-phases %standard-phases
2422 (add-before 'check 'start-xserver
2423 (lambda* (#:key inputs #:allow-other-keys)
2424 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2425 (disp ":1"))
2426
2427 (setenv "HOME" (getcwd))
2428 (setenv "DISPLAY" disp)
2429 ;; There must be a running X server and make check doesn't start one.
2430 ;; Therefore we must do it.
2431 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
2432 ;; Mentioned as Required by the .pc file
2433 (propagated-inputs `(("libxml2" ,libxml2)))
2434 (inputs
2435 `(("popt" ,popt)
2436 ("pangox-compat" ,pangox-compat)
2437 ("libgnome" ,libgnome)
2438 ("libgnomecanvas" ,libgnomecanvas)
2439 ("libglade" ,libglade)))
2440 (native-inputs
221ed17a
EB
2441 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2442 ("intltool" ,intltool)
ff337525 2443 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
2444 ("pkg-config" ,pkg-config)))
2445 (home-page "https://developer.gnome.org/libbonoboui/")
2446 (synopsis "Some user interface controls using Bonobo")
2447 (description "The Bonobo UI library provides a number of user interface
2448controls using the Bonobo component framework.")
2449 (license license:lgpl2.0+)))
2450
fecbf86e
SB
2451(define-public libwnck
2452 (package
2453 (name "libwnck")
d3b40696 2454 (version "3.32.0")
fecbf86e
SB
2455 (source (origin
2456 (method url-fetch)
2457 (uri (string-append "mirror://gnome/sources/" name "/"
2458 (version-major+minor version) "/"
2459 name "-" version ".tar.xz"))
2460 (sha256
ad9b8987 2461 (base32
d3b40696
KK
2462 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2463 (build-system meson-build-system)
fecbf86e
SB
2464 (native-inputs
2465 `(("pkg-config" ,pkg-config)
d3b40696
KK
2466 ("glib" ,glib "bin") ; for glib-mkenums
2467 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
2468 ("intltool" ,intltool)))
2469 (propagated-inputs
427476d5
SB
2470 `(("gtk+" ,gtk+)
2471 ("libxres" ,libxres)
2472 ("startup-notification" ,startup-notification)))
fecbf86e
SB
2473 (home-page "https://developer.gnome.org/libwnck/")
2474 (synopsis "Window Navigator Construction Kit")
2475 (description
2476 "Libwnck is the Window Navigator Construction Kit, a library for use in
2477writing pagers, tasklists, and more generally applications that are dealing
2478with window management. It tries hard to respect the Extended Window Manager
2479Hints specification (EWMH).")
2480 (license license:lgpl2.0+)))
2481
2482;; stable version for gtk2, required by xfwm4.
dbb7a081 2483(define-public libwnck-2
fecbf86e
SB
2484 (package (inherit libwnck)
2485 (name "libwnck")
2486 (version "2.30.7")
2487 (source (origin
2488 (method url-fetch)
2489 (uri (string-append "mirror://gnome/sources/" name "/"
2490 (version-major+minor version) "/"
2491 name "-" version ".tar.xz"))
2492 (sha256
2493 (base32
2494 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
2495 (build-system gnu-build-system)
2496 (native-inputs
2497 `(("pkg-config" ,pkg-config)
2498 ("intltool" ,intltool)))
fecbf86e 2499 (propagated-inputs
427476d5
SB
2500 `(("gtk+" ,gtk+-2)
2501 ("libxres" ,libxres)
2502 ("startup-notification" ,startup-notification)))))
b804c61e
JD
2503
2504(define-public goffice
2505 (package
2506 (name "goffice")
09abffcc 2507 (version "0.10.46")
b804c61e
JD
2508 (source (origin
2509 (method url-fetch)
16243f0b 2510 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 2511 (version-major+minor version) "/"
16243f0b 2512 "goffice-" version ".tar.xz"))
b804c61e 2513 (sha256
09abffcc 2514 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
b804c61e 2515 (build-system gnu-build-system)
72a06d3e 2516 (outputs '("out"
355420c6 2517 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
2518 (arguments
2519 '(#:configure-flags (list (string-append "--with-html-dir="
2520 (assoc-ref %outputs "doc")
2521 "/share/gtk-doc/html"))))
b804c61e
JD
2522 (inputs
2523 `(("gtk+" ,gtk+)
2524 ("libgsf" ,libgsf)
2525 ("librsvg" ,librsvg)
2526 ("libxslt" ,libxslt)
2527 ("libxml2" ,libxml2)))
2528 (native-inputs
2529 `(("intltool" ,intltool)
f280cdb1 2530 ("glib" ,glib "bin")
b804c61e
JD
2531 ("pkg-config" ,pkg-config)))
2532 (home-page "https://developer.gnome.org/goffice/")
2533 (synopsis "Document-centric objects and utilities")
2534 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 2535 (license
b804c61e
JD
2536 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2537 ;; Note: NOT LGPL
2538 (list license:gpl2 license:gpl3))))
2539
c024ae36
RW
2540(define-public goffice-0.8
2541 (package (inherit goffice)
2542 (version "0.8.17")
2543 (source (origin
2544 (method url-fetch)
2545 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2546 (version-major+minor version) "/"
2547 (package-name goffice) "-" version ".tar.xz"))
2548 (sha256
2549 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2550 (arguments
2551 `(#:phases
dc1d3cde
KK
2552 (modify-phases %standard-phases
2553 (add-after 'unpack 'fix-pcre-check
2554 (lambda _
2555 ;; Only glib.h can be included directly. See
2556 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2557 (substitute* "configure"
2558 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
2559
2560 ,@(package-arguments goffice)))
c024ae36
RW
2561 (propagated-inputs
2562 ;; libgoffice-0.8.pc mentions libgsf-1
2563 `(("libgsf" ,libgsf)))
2564 (inputs
2565 `(("gtk" ,gtk+-2)
2566 ,@(alist-delete "gtk" (package-inputs goffice))))))
2567
b804c61e
JD
2568(define-public gnumeric
2569 (package
2570 (name "gnumeric")
f0517b5d 2571 (version "1.12.46")
b804c61e
JD
2572 (source (origin
2573 (method url-fetch)
b7fd0217 2574 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 2575 (version-major+minor version) "/"
b7fd0217 2576 "gnumeric-" version ".tar.xz"))
b804c61e
JD
2577 (sha256
2578 (base32
f0517b5d 2579 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 2580 (build-system glib-or-gtk-build-system)
b804c61e
JD
2581 (arguments
2582 `(;; The gnumeric developers don't worry much about failing tests.
2583 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 2584 #:tests? #f
b804c61e 2585 #:phases
7bcbd40d
EF
2586 (modify-phases %standard-phases
2587 (add-before
2588 'configure 'pre-conf
2589 (lambda* (#:key outputs #:allow-other-keys)
2590 ;; Make install tries to write into the directory of goffice
2591 ;; I am informed that this only affects the possibility to embed a
2592 ;; spreadsheet inside an Abiword document. So presumably when we
2593 ;; package Abiword we'll have to refer it to this directory.
2594 (substitute* "configure"
2595 (("^GOFFICE_PLUGINS_DIR=.*")
2596 (string-append "GOFFICE_PLUGINS_DIR="
2597 (assoc-ref outputs "out")
2598 "/goffice/plugins"))))))))
b804c61e
JD
2599 (inputs
2600 `(("glib" ,glib)
2601 ("gtk+" ,gtk+)
2602 ("goffice" ,goffice)
2603 ("libgsf" ,libgsf)
7bcbd40d 2604 ("librsvg" ,librsvg)
b804c61e 2605 ("libxml2" ,libxml2)
7bcbd40d 2606 ("libxslt" ,libxslt)
2e4c5457 2607 ("python" ,python-2)
6983ba56 2608 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
2609 ("zlib" ,zlib)))
2610 (native-inputs
6983ba56 2611 `(("bison" ,bison)
1ed398d1 2612 ("docbook-xml" ,docbook-xml)
6983ba56 2613 ("intltool" ,intltool)
3a2efbc8 2614 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
b9663471 2615 ("glib:bin" ,glib "bin")
b804c61e
JD
2616 ("pkg-config" ,pkg-config)))
2617 (home-page "http://www.gnumeric.org")
66672a45
LC
2618 (synopsis "Spreadsheet application")
2619 (description
2620 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
2621interoperable with other spreadsheet applications. It has a vast array of
2622features beyond typical spreadsheet functionality, such as support for linear
2623and non-linear solvers, statistical analysis, and telecommunication
2624engineering.")
2625 (license
b804c61e
JD
2626 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2627 (list license:gpl2 license:gpl3))))
6f885c05
FB
2628
2629(define-public gnome-themes-standard
2630 (package
2631 (name "gnome-themes-standard")
0b7b8fb0 2632 (version "3.22.3")
6f885c05
FB
2633 (source
2634 (origin
2635 (method url-fetch)
2e6ecc5c 2636 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
2637 (version-major+minor version) "/" name "-"
2638 version ".tar.xz"))
2639 (sha256
2640 (base32
0b7b8fb0 2641 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 2642 (build-system gnu-build-system)
8ac70c7f
SB
2643 (arguments
2644 '(#:configure-flags
2645 ;; Don't create 'icon-theme.cache'.
2646 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2647 (true (string-append coreutils "/bin/true")))
2648 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
2649 (inputs
2650 `(("gtk+" ,gtk+)
2651 ("gtk+-2" ,gtk+-2)
2652 ("librsvg" ,librsvg)
2653 ("libxml2" ,libxml2)
2654 ("glib" ,glib)))
2655 (native-inputs
2656 `(("intltool" ,intltool)
2657 ("glib:bin" ,glib "bin")
2658 ("pkg-config" ,pkg-config)))
6f885c05
FB
2659 (home-page "https://launchpad.net/gnome-themes-standard")
2660 (synopsis "Default GNOME 3 themes")
2661 (description
2662 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
2663 (license license:lgpl2.1+)))
5a659a48 2664
df90c701
RW
2665(define-public seahorse
2666 (package
2667 (name "seahorse")
bcea3c11 2668 (version "3.32.2")
df90c701
RW
2669 (source
2670 (origin
2671 (method url-fetch)
2672 (uri (string-append "mirror://gnome/sources/" name "/"
2673 (version-major+minor version) "/" name "-"
2674 version ".tar.xz"))
2675 (sha256
2676 (base32
bcea3c11 2677 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
af561664
MÁAV
2678 (patches (search-patches
2679 "seahorse-gkr-use-0-on-empty-flags.patch"))))
2680 (build-system meson-build-system)
2681 (arguments
bcea3c11
KK
2682 '(#:glib-or-gtk? #t
2683 #:phases
af561664
MÁAV
2684 (modify-phases %standard-phases
2685 (add-after 'unpack 'skip-gtk-update-icon-cache
2686 ;; Don't create 'icon-theme.cache'.
2687 (lambda _
2688 (substitute* "build-aux/meson_post_install.py"
2689 (("gtk-update-icon-cache") "true"))
2690 #t)))))
df90c701
RW
2691 (inputs
2692 `(("gtk+" ,gtk+)
2693 ("gcr" ,gcr)
34b979b9 2694 ("gnupg" ,gnupg)
df90c701 2695 ("gpgme" ,gpgme)
34b979b9 2696 ("openldap" ,openldap)
4a1bf090 2697 ("openssh" ,openssh)
af561664 2698 ("avahi" ,avahi)
bcea3c11 2699 ("libpwquality" ,libpwquality)
34b979b9
EF
2700 ("libsecret" ,libsecret)
2701 ("libsoup" ,libsoup)))
df90c701 2702 (native-inputs
af561664 2703 `(("gettext" ,gettext-minimal)
df90c701
RW
2704 ("glib:bin" ,glib "bin")
2705 ("itstool" ,itstool)
bcb354ad 2706 ("pkg-config" ,pkg-config)
af561664 2707 ("vala" ,vala)
bcb354ad 2708 ("xmllint" ,libxml2)))
bcea3c11 2709 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
2710 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
2711 (description
2712 "Seahorse is a GNOME application for managing encryption keys and
2713passwords in the GNOME keyring.")
2714 (license license:gpl2+)))
2715
5a659a48
SB
2716(define-public vala
2717 (package
2718 (name "vala")
2d6872f6 2719 (version "0.44.5")
5a659a48
SB
2720 (source (origin
2721 (method url-fetch)
2722 (uri (string-append "mirror://gnome/sources/" name "/"
2723 (version-major+minor version) "/"
2724 name "-" version ".tar.xz"))
2725 (sha256
2726 (base32
2d6872f6 2727 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
5a659a48 2728 (build-system gnu-build-system)
1ea90625
SB
2729 (arguments
2730 '(#:phases
2731 (modify-phases %standard-phases
f4925a4f 2732 (add-before 'check 'pre-check
1ea90625
SB
2733 (lambda _
2734 (setenv "CC" "gcc")
8839b6be
RW
2735 (substitute* "valadoc/tests/testrunner.sh"
2736 (("export PKG_CONFIG_PATH=" m)
2737 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
2738 ;; For missing '/etc/machine-id'.
2739 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 2740 #t)))))
5a659a48
SB
2741 (native-inputs
2742 `(("pkg-config" ,pkg-config)
2743 ("flex" ,flex)
2744 ("bison" ,bison)
2745 ("xsltproc" ,libxslt)
2746 ("dbus" ,dbus) ; for dbus tests
2747 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
2748 (inputs
2749 `(("graphviz" ,graphviz)))
5a659a48 2750 (propagated-inputs
8839b6be 2751 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 2752 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
2753 (synopsis "Compiler for the GObject type system")
2754 (description
2755 "Vala is a programming language that aims to bring modern programming
2756language features to GNOME developers without imposing any additional runtime
2757requirements and without using a different ABI compared to applications and
2758libraries written in C.")
2759 (license license:lgpl2.1+)))
ea57378f
SB
2760
2761(define-public vte
2762 (package
2763 (name "vte")
68c47474 2764 (version "0.58.3")
ea57378f
SB
2765 (source (origin
2766 (method url-fetch)
ac87ffb8 2767 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 2768 (version-major+minor version) "/"
ac87ffb8 2769 "vte-" version ".tar.xz"))
ea57378f
SB
2770 (sha256
2771 (base32
68c47474
TGR
2772 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
2773 (build-system meson-build-system)
ea57378f
SB
2774 (native-inputs
2775 `(("pkg-config" ,pkg-config)
2776 ("intltool" ,intltool)
2777 ("vala" ,vala)
2778 ("gobject-introspection" ,gobject-introspection)
68c47474 2779 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 2780 ("gperf" ,gperf)
ea57378f
SB
2781 ("xmllint" ,libxml2)))
2782 (propagated-inputs
68c47474
TGR
2783 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
2784 ("gnutls" ,gnutls) ; ditto
2785 ("pcre2" ,pcre2))) ; ditto
f032d0be 2786 (home-page "https://www.gnome.org/")
ea57378f
SB
2787 (synopsis "Virtual Terminal Emulator")
2788 (description
2789 "VTE is a library (libvte) implementing a terminal emulator widget for
2790GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
2791gnome-terminal, but can also be used to embed a console/terminal in games,
2792editors, IDEs, etc.")
2793 (license license:lgpl2.1+)))
2794
c44fb4df
MO
2795(define-public vte-ng
2796 (package
2797 (inherit vte)
2798 (name "vte-ng")
24f4fcbe 2799 (version "0.58.2.a")
afd90f8d 2800 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
2801 (source (origin
2802 (method git-fetch)
2803 (uri (git-reference (url home-page) (commit version)))
2804 (file-name (git-file-name name version))
2805 (sha256
2806 (base32
24f4fcbe
MB
2807 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
2808 (build-system meson-build-system)
c44fb4df
MO
2809 (native-inputs
2810 `(("gtk-doc" ,gtk-doc)
c44fb4df 2811 ,@(package-native-inputs vte)))
c44fb4df 2812 (arguments
24f4fcbe 2813 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
2814 (synopsis "Enhanced VTE terminal widget")
2815 (description
2816 "VTE is a library (libvte) implementing a terminal emulator widget for
2817GTK+, this fork provides additional functions exposed for keyboard text
2818selection and URL hints.")))
2819
2776d72c
EF
2820;; provides vte 2.90, required for some terminal emulators
2821;; tilda bug: https://github.com/lanoxx/tilda/issues/94
2822;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
2823;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
2824;; pantheon-terminal, roxterm are not currently packaged
2825(define-public vte-0.36
2826 (package (inherit vte)
2827 (name "vte")
2828 (version "0.36.5")
2829 (source (origin
2830 (method url-fetch)
2831 (uri (string-append "mirror://gnome/sources/" name "/"
2832 (version-major+minor version) "/"
2833 name "-" version ".tar.xz"))
2834 (sha256
2835 (base32
2836 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
2837 (propagated-inputs
2838 `(("gtk" ,gtk+)
2839 ("ncurses" ,ncurses)))))
2840
ea57378f
SB
2841;; stable version for gtk2, required by xfce4-terminal.
2842(define-public vte/gtk+-2
2843 (package (inherit vte)
2844 (name "vte")
2845 (version "0.28.2")
2846 (source (origin
2847 (method url-fetch)
2848 (uri (string-append "mirror://gnome/sources/" name "/"
2849 (version-major+minor version) "/"
2850 name "-" version ".tar.xz"))
2851 (sha256
2852 (base32
7d48938a
EF
2853 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
2854 (patches (search-patches
2855 "vte-CVE-2012-2738-pt1.patch"
2856 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 2857 (build-system gnu-build-system)
ea57378f
SB
2858 (arguments
2859 '(#:configure-flags '("--disable-python")))
2860 (native-inputs
2861 `(("pkg-config" ,pkg-config)
2862 ("intltool" ,intltool)
2863 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
2864 (propagated-inputs
2865 `(("gtk+" ,gtk+-2) ; required by libvte.pc
2866 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 2867
cce0da5e
TD
2868(define-public vinagre
2869 (package
2870 (name "vinagre")
2871 (version "3.22.0")
2872 (source (origin
2873 (method url-fetch)
2874 (uri (string-append "mirror://gnome/sources/" name "/"
2875 (version-major+minor version) "/"
2876 name "-" version ".tar.xz"))
684f97f8
EF
2877 (patches (search-patches "vinagre-newer-freerdp.patch"
2878 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
2879 (sha256
2880 (base32
2881 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
2882 (build-system glib-or-gtk-build-system)
684f97f8 2883 (arguments
7f486d25
MC
2884 ;; Disable -Werror and such, to avoid build failures on compilation
2885 ;; warnings.
2886 '(#:configure-flags '("--enable-compile-warnings=minimum")
2887 #:phases
684f97f8 2888 (modify-phases %standard-phases
1839768c
EF
2889 (add-before 'install 'skip-gtk-update-icon-cache
2890 (lambda _
2891 ;; Don't create 'icon-theme.cache'
2892 (substitute* (find-files "." "^Makefile$")
2893 (("gtk-update-icon-cache") (which "true")))
2894 #t))
684f97f8
EF
2895 (add-after 'unpack 'patch-configure
2896 (lambda _
2897 (substitute* "configure"
2898 (("freerdp") "freerdp2"))
2899 #t)))))
cce0da5e
TD
2900 (native-inputs
2901 `(("pkg-config" ,pkg-config)
2902 ("intltool" ,intltool)
2903 ("itstool" ,itstool)
1839768c 2904 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
2905 (inputs
2906 `(("libxml2" ,libxml2)
2907 ("gtk-vnc" ,gtk-vnc)
2908 ("gnome-keyring" ,gnome-keyring)
2909 ("libsecret" ,libsecret)
2910 ("freerdp" ,freerdp)
2911 ("spice" ,spice)
2912 ("spice-gtk" ,spice-gtk)
2913 ("telepathy-glib" ,telepathy-glib)
2914 ("vte" ,vte)))
cce0da5e
TD
2915 (home-page "https://wiki.gnome.org/Apps/Vinagre")
2916 (synopsis "Remote desktop viewer for GNOME")
2917 (description "Vinagre is a remote display client supporting the VNC, SPICE
2918and RDP protocols.")
2919 (license license:gpl3+)))
2920
b47e1b20
FB
2921(define-public dconf
2922 (package
2923 (name "dconf")
1e33331c 2924 (version "0.32.0")
b47e1b20
FB
2925 (source (origin
2926 (method url-fetch)
2927 (uri (string-append
2e6ecc5c 2928 "mirror://gnome/sources/" name "/"
b47e1b20
FB
2929 (version-major+minor version) "/"
2930 name "-" version ".tar.xz"))
2931 (sha256
f05c809f 2932 (base32
1e33331c 2933 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
35fa923d 2934 (build-system meson-build-system)
bc036f4c
MB
2935 (propagated-inputs
2936 ;; In Requires of dconf.pc.
2937 `(("glib" ,glib)))
b47e1b20
FB
2938 (inputs
2939 `(("gtk+" ,gtk+)
bc036f4c 2940 ("dbus" ,dbus)))
b47e1b20 2941 (native-inputs
1e33331c
MB
2942 `(("bash-completion" ,bash-completion)
2943 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 2944 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
2945 ("docbook-xml" ,docbook-xml-4.2)
2946 ("docbook-xsl" ,docbook-xsl)
35fa923d 2947 ("glib:bin" ,glib "bin")
03676d6f 2948 ("gtk-doc" ,gtk-doc)
35fa923d
MB
2949 ("pkg-config" ,pkg-config)
2950 ("vala" ,vala)))
b47e1b20
FB
2951 (arguments
2952 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
2953 ; or /etc/machine-id.
35fa923d
MB
2954 #:glib-or-gtk? #t
2955 #:configure-flags '("-Denable-gtk-doc=true")))
b47e1b20
FB
2956 (home-page "https://developer.gnome.org/dconf")
2957 (synopsis "Low-level GNOME configuration system")
2958 (description "Dconf is a low-level configuration system. Its main purpose
2959is to provide a backend to GSettings on platforms that don't already have
2960configuration storage systems.")
e20e6b40 2961 (license license:lgpl2.1+)))
109da1c0
AE
2962
2963(define-public json-glib
2964 (package
2965 (name "json-glib")
4115e8ea 2966 (version "1.4.4")
109da1c0
AE
2967 (source (origin
2968 (method url-fetch)
2969 (uri (string-append "mirror://gnome/sources/" name "/"
2970 (version-major+minor version) "/"
2971 name "-" version ".tar.xz"))
2972 (sha256
2973 (base32
4115e8ea 2974 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 2975 (build-system meson-build-system)
109da1c0 2976 (native-inputs
98afa184
MB
2977 `(("gettext" ,gettext-minimal)
2978 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
2979 ("gobject-introspection" ,gobject-introspection)
2980 ("pkg-config" ,pkg-config)))
2981 (propagated-inputs
88c6b580 2982 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
2983 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
2984 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
2985 (description
2986 "JSON-GLib is a C library based on GLib providing serialization and
2987deserialization support for the JavaScript Object Notation (JSON) format
2988described by RFC 4627. It provides parser and generator GObject classes and
2989various wrappers for the complex data types employed by JSON, such as arrays
2990and objects.")
109da1c0 2991 (license license:lgpl2.1+)))
6f96a359
SB
2992
2993(define-public libxklavier
2994 (package
2995 (name "libxklavier")
5f39050b 2996 (version "5.4")
6f96a359 2997 (source (origin
5f39050b 2998 ;; Note: There's no tarball at ftp.gnome.org for this version.
2999 (method git-fetch)
3000 (uri (git-reference
3001 (url "https://anongit.freedesktop.org/git/libxklavier")
3002 (commit (string-append "libxklavier-" version))))
6f96a359
SB
3003 (sha256
3004 (base32
5f39050b 3005 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3006 (file-name (git-file-name name version))))
6f96a359
SB
3007 (build-system gnu-build-system)
3008 (arguments
5f39050b 3009 '(#:phases
3010 (modify-phases %standard-phases
3011 (add-after 'unpack 'no-configure
3012 (lambda* _
3013 (setenv "NOCONFIGURE" "1")
3014 #t)))
3015 #:configure-flags
6f96a359
SB
3016 (list (string-append "--with-xkb-base="
3017 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 3018 "/share/X11/xkb")
3019 "--disable-xmodmap-support")))
6f96a359
SB
3020 (native-inputs
3021 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3022 ("gobject-introspection" ,gobject-introspection)
5f39050b 3023 ("pkg-config" ,pkg-config)
3024 ("gtk-doc" ,gtk-doc)
3025 ("intltool" ,intltool)
3026 ("which" ,which)
3027 ("autoconf" ,autoconf)
3028 ("automake" ,automake)
3029 ("libtool" ,libtool)))
6f96a359
SB
3030 (propagated-inputs
3031 ;; Required by libxklavier.pc.
3032 `(("glib" ,glib)
3033 ("libxml2" ,libxml2)))
3034 (inputs
3035 `(("iso-codes" ,iso-codes)
3036 ("libxi" ,libxi)
3037 ("libxkbfile" ,libxkbfile)
3038 ("xkbcomp" ,xkbcomp)
3039 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 3040 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
3041 (synopsis "High-level API for X Keyboard Extension")
3042 (description
3043 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
3044Extension known as XKB. This library is intended to support XFree86 and other
3045commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
3046indicators etc).")
3047 (license license:lgpl2.0+)))
619936a4
LC
3048
3049(define-public python2-rsvg
3050 ;; XXX: This is actually a subset of gnome-python-desktop.
3051 (package
3052 (name "python2-rsvg")
3053 (version "2.32.0")
3054 (source
3055 (origin
3056 (method url-fetch)
3057 (uri (string-append
3058 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3059 version ".tar.bz2"))
3060 (sha256
3061 (base32
3062 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3063 (build-system gnu-build-system)
3064 (native-inputs
3065 `(("pkg-config" ,pkg-config)))
3066 (inputs
3067 `(("python" ,python-2)
3068 ("python2-pygtk" ,python2-pygtk)
3069 ("librsvg" ,librsvg)))
f032d0be 3070 (home-page "https://www.gnome.org")
619936a4
LC
3071 (synopsis "Python bindings to librsvg")
3072 (description
3ad75446 3073 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
3074library.")
3075
3076 ;; This is the license of the rsvg bindings. The license of each module
3077 ;; of gnome-python-desktop is given in 'COPYING'.
3078 (license license:lgpl2.1+)))
a31a6d22 3079
f2ca414a
SB
3080(define-public glib-networking
3081 (package
3082 (name "glib-networking")
0d75c64d 3083 (version "2.60.3")
f2ca414a
SB
3084 (source (origin
3085 (method url-fetch)
3086 (uri (string-append "mirror://gnome/sources/glib-networking/"
3087 (version-major+minor version) "/"
fb8fe1e8 3088 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
3089 (sha256
3090 (base32
0d75c64d 3091 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
65211552 3092 (build-system meson-build-system)
f2ca414a 3093 (arguments
0d75c64d 3094 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
3095 (native-inputs
3096 `(("pkg-config" ,pkg-config)
3097 ("intltool" ,intltool)))
3098 (inputs
3099 `(("glib" ,glib)
3100 ("gnutls" ,gnutls)
4b8f1313 3101 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 3102 (home-page "https://www.gnome.org")
f2ca414a
SB
3103 (synopsis "Network-related GIO modules")
3104 (description
3105 "This package contains various network related extensions for the GIO
3106library.")
3107 (license license:lgpl2.0+)))
3108
ca649680 3109(define-public rest
4510b2da 3110 (package
ca649680 3111 (name "rest")
a4194d16 3112 (version "0.8.1")
4510b2da
SB
3113 (source (origin
3114 (method url-fetch)
3115 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
3116 (version-major+minor version) "/"
3117 name "-" version ".tar.xz"))
4510b2da
SB
3118 (sha256
3119 (base32
a4194d16 3120 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
3121 (build-system gnu-build-system)
3122 (arguments
3123 '(#:tests? #f ; tests require internet connection
3124 #:configure-flags
3125 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3126 (native-inputs
3127 `(("glib-mkenums" ,glib "bin")
3128 ("gobject-introspection" ,gobject-introspection)
3129 ("pkg-config" ,pkg-config)))
3130 (propagated-inputs
3131 ;; rest-0.7.pc refers to all these.
3132 `(("glib" ,glib)
3133 ("libsoup" ,libsoup)
3134 ("libxml2" ,libxml2)))
24d6cc1d 3135 (home-page "https://www.gtk.org/")
4510b2da
SB
3136 (synopsis "RESTful web api query library")
3137 (description
3138 "This library was designed to make it easier to access web services that
3139claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3140libxml to ease remote use of the RESTful API.")
3141 (license license:lgpl2.1+)))
3142
6e1bb642
SB
3143(define-public libsoup
3144 (package
3145 (name "libsoup")
9ae87870 3146 (version "2.68.3")
6e1bb642
SB
3147 (source (origin
3148 (method url-fetch)
3149 (uri (string-append "mirror://gnome/sources/libsoup/"
3150 (version-major+minor version) "/"
c1b79b36 3151 "libsoup-" version ".tar.xz"))
6e1bb642
SB
3152 (sha256
3153 (base32
9ae87870 3154 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
eccaa8bf 3155 (build-system meson-build-system)
6e1bb642
SB
3156 (outputs '("out" "doc"))
3157 (arguments
2deb146f 3158 `(#:modules ((guix build utils)
eccaa8bf 3159 (guix build meson-build-system)
2deb146f
LC
3160 (ice-9 popen))
3161
f8026a79 3162 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
3163 #:phases
3164 (modify-phases %standard-phases
eccaa8bf 3165 (add-after 'unpack 'adjust-tests
26c228f9 3166 (lambda _
eccaa8bf
MB
3167 ;; This test fails due to missing /etc/nsswitch.conf
3168 ;; in the build environment.
26c228f9
LC
3169 (substitute* "tests/socket-test.c"
3170 ((".*/sockets/unconnected.*") ""))
2deb146f 3171
f8026a79
MB
3172 ;; These fail because "subdomain.localhost" does not resolve in
3173 ;; the build environment.
3174 (substitute* "tests/hsts-test.c"
3175 ((".*/hsts/basic.*") "")
3176 ((".*/hsts/subdomains.*") "")
3177 ((".*/hsts/superdomain.*") "")
3178 ((".*/hsts/utf8-address.*") ""))
3179 (substitute* "tests/hsts-db-test.c"
3180 ((".*/hsts-db/subdomains.*") ""))
3181
2deb146f
LC
3182 ;; Generate a self-signed certificate that has "localhost" as its
3183 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3184 ;; 3.5.12, tests such as "ssl-tests" fail:
3185 ;;
3186 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3187 ;;
3188 ;; 'certtool' is interactive so we have to pipe it the answers.
3189 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3190 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3191 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3192 (for-each (lambda (line)
3193 (display line pipe)
3194 (newline pipe))
3195 '("" ;Common name
3196 "" ;UID
3197 "Guix" ;Organizational unit name
3198 "GNU" ;Organization name
3199 "" ;Locality name
3200 "" ;State or province
3201 "" ;Country
3202 "" ;subject's domain component (DC)
3203 "" ;E-mail
3204 "" ;serial number
3205 "-1" ;expiration time
3206 "N" ;belong to authority?
3207 "N" ;web client certificate?
3208 "N" ;IPsec IKE?
3209 "Y" ;web server certificate?
3210 "localhost" ;dnsName of subject
3211 "" ;dnsName of subject (end)
3212 "" ;URI of subject
3213 "127.0.0.1" ;IP address of subject
3214 "" ;signing?
06f5bc4e
MB
3215 "" ;encryption (RSA)?
3216 "" ;data encryption?
2deb146f
LC
3217 "" ;sign OCSP requests?
3218 "" ;sign code?
3219 "" ;time stamping?
3220 "" ;email protection?
3221 "" ;URI of the CRL distribution point
3222 "y" ;above info OK?
3223 ))
3224 (close-pipe pipe))
26c228f9 3225 #t))
eccaa8bf
MB
3226 (add-after 'install 'move-doc
3227 (lambda* (#:key outputs #:allow-other-keys)
3228 (let ((out (assoc-ref outputs "out"))
3229 (doc (assoc-ref outputs "doc")))
3230 (mkdir-p (string-append doc "/share"))
3231 (copy-recursively (string-append out "/share/gtk-doc")
3232 (string-append doc "/share/gtk-doc"))
3233 (delete-file-recursively (string-append out "/share/gtk-doc"))
3234 #t))))))
6e1bb642 3235 (native-inputs
26c228f9 3236 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 3237 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 3238 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
3239 ("intltool" ,intltool)
3240 ("pkg-config" ,pkg-config)
3241 ("python" ,python-wrapper)
fd730590 3242 ("vala" ,vala)
6e1bb642
SB
3243 ;; These are needed for the tests.
3244 ;; FIXME: Add PHP once available.
3245 ("curl" ,curl)
2deb146f 3246 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
3247 ("httpd" ,httpd)))
3248 (propagated-inputs
3249 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
3250 `(("brotli" ,google-brotli)
3251 ("glib" ,glib)
249846bf 3252 ("libpsl" ,libpsl)
eccaa8bf 3253 ("libxml2" ,libxml2)
f8026a79
MB
3254 ("sqlite" ,sqlite)
3255 ("zlib" ,zlib)))
eccaa8bf
MB
3256 (inputs
3257 `(("glib-networking" ,glib-networking)
3258 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
3259 (home-page "https://live.gnome.org/LibSoup/")
3260 (synopsis "GLib-based HTTP Library")
3261 (description
3262 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3263and the GLib main loop, to integrate well with GNOME applications.")
3264 (license license:lgpl2.0+)))
3265
bba229a3
SB
3266(define-public libsecret
3267 (package
3268 (name "libsecret")
b243d2f7 3269 (version "0.19.1")
bba229a3
SB
3270 (source (origin
3271 (method url-fetch)
3272 (uri (string-append
896dcbc7
EF
3273 "mirror://gnome/sources/libsecret/"
3274 (version-major+minor version) "/"
0ada4e29 3275 "libsecret-" version ".tar.xz"))
bba229a3
SB
3276 (sha256
3277 (base32
b243d2f7 3278 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
bba229a3
SB
3279 (build-system gnu-build-system)
3280 (outputs '("out" "doc"))
3281 (arguments
3282 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
3283 #:configure-flags
3284 (list (string-append "--with-html-dir="
3285 (assoc-ref %outputs "doc")
3286 "/share/gtk-doc/html"))))
3287 (native-inputs
c06ef010
MB
3288 `(("gettext" ,gettext-minimal)
3289 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 3290 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
3291 ("pkg-config" ,pkg-config)
3292 ("vala" ,vala)
3293 ("xsltproc" ,libxslt)))
3294 ;; These are needed for the tests.
3295 ;; FIXME: Add gjs once available.
3296 ;("dbus" ,dbus)
3297 ;("python2" ,python-2)
3298 ;("python2-dbus" ,python2-dbus)
3299 ;("python2-pygobject" ,python2-pygobject)
3300 ;("python2-pygobject-2" ,python2-pygobject-2)))
3301 (propagated-inputs
3302 `(("glib" ,glib))) ; required by libsecret-1.pc
3303 (inputs
3304 `(("docbook-xsl" ,docbook-xsl)
3305 ("libgcrypt" ,libgcrypt)
3306 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3307 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3308 (synopsis "GObject bindings for \"Secret Service\" API")
3309 (description
3310 "Libsecret is a GObject based library for storing and retrieving passwords
3311and other secrets. It communicates with the \"Secret Service\" using DBus.")
3312 (license license:lgpl2.1+)))
3313
b6821ee0 3314(define-public five-or-more
3315 (package
3316 (name "five-or-more")
d9795e93 3317 (version "3.32.0")
b6821ee0 3318 (source
3319 (origin
3320 (method url-fetch)
3321 (uri (string-append "mirror://gnome/sources/" name "/"
3322 (version-major+minor version) "/"
3323 name "-" version ".tar.xz"))
3324 (sha256
3325 (base32
d9795e93
KK
3326 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3327 (build-system meson-build-system)
3328 (arguments
3329 '(#:glib-or-gtk? #t
3330 #:phases
3331 (modify-phases %standard-phases
3332 (add-after 'unpack 'skip-gtk-update-icon-cache
3333 (lambda _
3334 (substitute* "meson_post_install.py"
3335 (("gtk-update-icon-cache") (which "true")))
3336 #t)))))
b6821ee0 3337 (native-inputs
3338 `(("pkg-config" ,pkg-config)
d9795e93 3339 ("appstream-glib" ,appstream-glib)
b6821ee0 3340 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 3341 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 3342 ("intltool" ,intltool)
3343 ("itstool" ,itstool)
d9795e93 3344 ("vala" ,vala)
b6821ee0 3345 ("xmllint" ,libxml2)))
3346 (inputs
3347 `(("gtk+" ,gtk+)
d9795e93 3348 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 3349 ("librsvg" ,librsvg)))
3350 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3351 (synopsis "Logic puzzle game")
3352 (description "Five or More is a game where you try to align
3353 five or more objects of the same color and shape causing them to disappear.
3354 On every turn more objects will appear, until the board is full.
3355 Try to last as long as possible.")
3356 (license license:gpl2+)))
3357
a31a6d22
SB
3358(define-public gnome-mines
3359 (package
3360 (name "gnome-mines")
2d817e41 3361 (version "3.32.2")
a31a6d22
SB
3362 (source
3363 (origin
3364 (method url-fetch)
3365 (uri (string-append "mirror://gnome/sources/" name "/"
3366 (version-major+minor version) "/"
3367 name "-" version ".tar.xz"))
3368 (sha256
3369 (base32
2d817e41 3370 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
8c0fab36 3371 (build-system meson-build-system)
a31a6d22 3372 (arguments
2d817e41
KK
3373 '(#:glib-or-gtk? #t
3374 #:phases
a31a6d22 3375 (modify-phases %standard-phases
2d817e41
KK
3376 (add-after 'unpack 'skip-gtk-update-icon-cache
3377 (lambda _
3378 (substitute* "build-aux/meson_post_install.py"
3379 (("gtk-update-icon-cache") (which "true")))
3380 #t)))))
a31a6d22 3381 (native-inputs
8c0fab36
RW
3382 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3383 ("pkg-config" ,pkg-config)
a31a6d22
SB
3384 ("desktop-file-utils" ,desktop-file-utils)
3385 ("intltool" ,intltool)
bcb354ad 3386 ("itstool" ,itstool)
8c0fab36
RW
3387 ("vala" ,vala)
3388 ("yelp" ,yelp)
3389 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
3390 (inputs
3391 `(("gtk+" ,gtk+)
73992962 3392 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
3393 ("librsvg" ,librsvg)))
3394 (home-page "https://wiki.gnome.org/Apps/Mines")
3395 (synopsis "Minesweeper game")
3396 (description
3397 "Mines (previously gnomine) is a puzzle game where you locate mines
3398floating in an ocean using only your brain and a little bit of luck.")
3399 (license license:gpl2+)))
88f70665 3400
dfc407f3
KY
3401(define-public gnome-sudoku
3402 (package
3403 (name "gnome-sudoku")
7dc728c4 3404 (version "3.32.0")
dfc407f3
KY
3405 (source
3406 (origin
3407 (method url-fetch)
3408 (uri (string-append "mirror://gnome/sources/" name "/"
3409 (version-major+minor version) "/"
3410 name "-" version ".tar.xz"))
3411 (sha256
3412 (base32
7dc728c4
KK
3413 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3414 (build-system meson-build-system)
3415 (arguments
3416 '(#:glib-or-gtk? #t
3417 #:phases
3418 (modify-phases %standard-phases
3419 (add-after 'unpack 'skip-gtk-update-icon-cache
3420 (lambda _
3421 (substitute* "build-aux/post_install.py"
3422 (("gtk-update-icon-cache") (which "true")))
3423 #t)))))
dfc407f3
KY
3424 (native-inputs
3425 `(("pkg-config" ,pkg-config)
3426 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 3427 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
3428 ("intltool" ,intltool)
3429 ("itstool" ,itstool)
7dc728c4 3430 ("vala" ,vala)
dfc407f3
KY
3431 ("xmllint" ,libxml2)))
3432 (inputs
3433 `(("gtk+" ,gtk+)
3434 ("json-glib" ,json-glib)
3435 ("libgee" ,libgee)
3436 ("librsvg" ,librsvg)
3437 ("qqwing" ,qqwing)))
3438 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3439 (synopsis "Japanese logic game")
3440 (description
3441 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3442GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3443possible while still providing features that make playing difficult Sudoku
3444more fun.")
3445 (license license:gpl2+)))
3446
88f70665
AW
3447(define-public gnome-terminal
3448 (package
3449 (name "gnome-terminal")
7dee3942 3450 (version "3.32.2")
88f70665
AW
3451 (source
3452 (origin
3453 (method url-fetch)
3454 (uri (string-append "mirror://gnome/sources/" name "/"
3455 (version-major+minor version) "/"
3456 name "-" version ".tar.xz"))
3457 (sha256
3458 (base32
7dee3942 3459 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
88f70665
AW
3460 (build-system glib-or-gtk-build-system)
3461 (arguments
3462 '(#:configure-flags
3463 (list "--disable-migration" "--disable-search-provider"
3464 "--without-nautilus-extension")
3465 #:phases
3466 (modify-phases %standard-phases
3a4de6b2 3467 (add-before 'configure 'patch-/bin/true
88f70665
AW
3468 (lambda _
3469 (substitute* "configure"
3470 (("/bin/true") (which "true"))))))))
3471 (native-inputs
3472 `(("pkg-config" ,pkg-config)
3473 ("desktop-file-utils" ,desktop-file-utils)
3474 ("intltool" ,intltool)
bcb354ad
SB
3475 ("itstool" ,itstool)
3476 ("xmllint" ,libxml2)))
68702167
MW
3477 (propagated-inputs
3478 `(("dconf" ,dconf)))
88f70665
AW
3479 (inputs
3480 `(("gtk+" ,gtk+)
3481 ("vte" ,vte)
3482 ("gnutls" ,gnutls)
88f70665
AW
3483 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3484 ("util-linux" ,util-linux)
3485 ("vala" ,vala)))
3486 (home-page "https://wiki.gnome.org/Apps/Terminal")
3487 (synopsis "Terminal emulator")
3488 (description
3489 "GNOME Terminal is a terminal emulator application for accessing a
3490UNIX shell environment which can be used to run programs available on
3491your system.
3492
3493It supports several profiles, multiple tabs and implements several
3494keyboard shortcuts.")
3495 (license license:gpl3+)))
75016d07
AW
3496
3497(define-public colord
3498 (package
3499 (name "colord")
f98be942 3500 (version "1.4.4")
75016d07
AW
3501 (source
3502 (origin
3503 (method url-fetch)
5cc3096c 3504 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 3505 "colord-" version ".tar.xz"))
75016d07 3506 (sha256
f98be942 3507 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 3508 (build-system meson-build-system)
75016d07 3509 (arguments
a68544a8
RW
3510 '(;; FIXME: One test fails:
3511 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3512 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3513 ;; application/x-zerosize
75016d07 3514 #:tests? #f
a68544a8
RW
3515 #:glib-or-gtk? #t
3516 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 3517 ;; No dep on systemd.
a68544a8 3518 "-Dsystemd=false"
75016d07
AW
3519 ;; Wants to install to global completion dir;
3520 ;; punt.
a68544a8 3521 "-Dbash_completion=false"
a68544a8
RW
3522 "-Ddaemon_user=colord"
3523 "-Dsane=true"
dac26e22 3524 "-Dvapi=true"
6f20e2dc 3525 ;; Requires spotread.
a68544a8 3526 "-Dargyllcms_sensor=false"
6f20e2dc 3527 ;; TODO: Requires docbook2x.
a68544a8 3528 "-Dman=false")
75016d07
AW
3529 #:phases
3530 (modify-phases %standard-phases
a68544a8
RW
3531 (add-before 'configure 'patch-build-system
3532 (lambda* (#:key outputs #:allow-other-keys)
3533 (substitute* "rules/meson.build"
3534 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3535 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
3536 #t))
3537 (add-before 'configure 'set-sqlite3-file-name
3538 (lambda* (#:key inputs #:allow-other-keys)
3539 ;; "colormgr dump" works by invoking the "sqlite3" command.
3540 ;; Record its absolute file name.
3541 (let ((sqlite (assoc-ref inputs "sqlite")))
3542 (substitute* "client/cd-util.c"
3543 (("\"sqlite3\"")
3544 (string-append "\"" sqlite "/bin/sqlite3\"")))
3545 #t))))))
75016d07 3546 (native-inputs
6f20e2dc 3547 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
75016d07 3548 ("gobject-introspection" ,gobject-introspection)
a68544a8 3549 ("gtk-doc" ,gtk-doc)
6f20e2dc 3550 ("intltool" ,intltool)
75016d07 3551 ("libtool" ,libtool)
dac26e22
TGR
3552 ("pkg-config" ,pkg-config)
3553 ("vala" ,vala)))
65cb2d61
SB
3554 (propagated-inputs
3555 ;; colord.pc refers to all these.
3556 `(("glib" ,glib)
6f20e2dc
TGR
3557 ("lcms" ,lcms)
3558 ("udev" ,eudev)))
75016d07 3559 (inputs
65cb2d61 3560 `(("dbus-glib" ,dbus-glib)
a68544a8 3561 ("gusb" ,gusb)
80c7dd1a 3562 ("libgudev" ,libgudev)
75016d07 3563 ("libusb" ,libusb)
75016d07 3564 ("polkit" ,polkit)
a68544a8 3565 ("python" ,python-wrapper)
6f20e2dc 3566 ("sqlite" ,sqlite)
4c928743 3567 ("sane-backends" ,sane-backends)))
57e7d748 3568 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
3569 (synopsis "Color management service")
3570 (description "Colord is a system service that makes it easy to manage,
3571install and generate color profiles to accurately color manage input and
3572output devices.")
3573 (license license:gpl2+)))
7b2abd00
AW
3574
3575(define-public geoclue
3576 (package
3577 (name "geoclue")
b433c7b3 3578 (version "2.4.8")
7b2abd00
AW
3579 (source
3580 (origin
3581 (method url-fetch)
5cc3096c 3582 (uri (string-append "https://www.freedesktop.org/software/" name
7b2abd00
AW
3583 "/releases/" (version-major+minor version) "/"
3584 name "-" version ".tar.xz"))
3585 (sha256
3586 (base32
b433c7b3 3587 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
fc1adab1 3588 (patches (search-patches "geoclue-config.patch"))))
7b2abd00
AW
3589 (build-system glib-or-gtk-build-system)
3590 (arguments
3591 '(;; The tests want to run the system bus.
3592 #:tests? #f
3593 #:configure-flags (list ;; Disable bits requiring ModemManager.
3594 "--disable-3g-source"
3595 "--disable-cdma-source"
3596 "--disable-modem-gps-source"
3597 "--with-dbus-service-user=geoclue")
3598 #:phases
3599 (modify-phases %standard-phases
3a4de6b2 3600 (add-before 'configure 'patch-/bin/true
7b2abd00
AW
3601 (lambda _
3602 (substitute* "configure"
e3eb53e7
MW
3603 (("/bin/true") (which "true")))
3604 #t)))))
7b2abd00
AW
3605 (native-inputs
3606 `(("pkg-config" ,pkg-config)
758798a9 3607 ("gobject-introspection" ,gobject-introspection)
7b2abd00
AW
3608 ("intltool" ,intltool)))
3609 (inputs
54e911bc
SB
3610 `(("avahi" ,avahi)
3611 ("glib" ,glib)
7b2abd00
AW
3612 ("json-glib" ,json-glib)
3613 ("libsoup" ,libsoup)))
99adfd7d 3614 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
7b2abd00
AW
3615 (synopsis "Geolocation service")
3616 (description "Geoclue is a D-Bus service that provides location
3617information. The primary goal of the Geoclue project is to make creating
3618location-aware applications as simple as possible, while the secondary goal is
3619to ensure that no application can access location information without explicit
e881752c 3620permission from user.")
7b2abd00 3621 (license license:gpl2+)))
2bfe7437
AW
3622
3623(define-public geocode-glib
3624 (package
3625 (name "geocode-glib")
65de725f 3626 (version "3.26.1")
2bfe7437
AW
3627 (source (origin
3628 (method url-fetch)
3629 (uri (string-append "mirror://gnome/sources/geocode-glib/"
3630 (version-major+minor version) "/"
d485cdc0 3631 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
3632 (sha256
3633 (base32
65de725f 3634 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 3635 (build-system meson-build-system)
2bfe7437 3636 (arguments
a7dd0c02
RW
3637 `(#:phases
3638 (modify-phases %standard-phases
3639 ;; The tests require a bunch of locales.
3640 (add-before 'check 'set-locales
3641 (lambda* (#:key inputs #:allow-other-keys)
3642 (setenv "GUIX_LOCPATH"
3643 (string-append (assoc-ref inputs "glibc-locales")
3644 "/lib/locale"))
3645 #t)))))
2bfe7437
AW
3646 (native-inputs
3647 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
3648 ("glibc-locales" ,glibc-locales) ; for tests
3649 ("gettext" ,gettext-minimal)
2bfe7437 3650 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 3651 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
3652 ("pkg-config" ,pkg-config)
3653 ("json-glib" ,json-glib)))
3654 (propagated-inputs
3655 ;; geocode-glib-1.0.pc refers to GIO.
3656 `(("glib" ,glib)))
3657 (inputs
3658 `(("libsoup" ,libsoup)))
3659 (home-page "https://github.com/GNOME/geocode-glib/")
3660 (synopsis "Geocoding and reverse-geocoding library")
3661 (description
3662 "geocode-glib is a convenience library for geocoding (finding longitude,
3663and latitude from an address) and reverse geocoding (finding an address from
3664coordinates) using the Nominatim service. geocode-glib caches requests for
3665faster results and to avoid unnecessary server load.")
3666 (license license:lgpl2.0+)))
a1d5bb0e
AW
3667
3668(define-public upower
3669 (package
3670 (name "upower")
4088d809 3671 (version "0.99.10")
a1d5bb0e
AW
3672 (source (origin
3673 (method url-fetch)
9ec54965 3674 (uri (string-append "https://gitlab.freedesktop.org/upower/upower/"
4088d809 3675 "uploads/c438511024b9bc5a904f8775cfc8e4c4/"
9ec54965 3676 "upower-" version ".tar.xz"))
a1d5bb0e
AW
3677 (sha256
3678 (base32
4088d809 3679 "17d2bclv5fgma2y3g8bsn9pdvspn1zrzismzdnzfivc0f2wm28k4"))
fc1adab1 3680 (patches (search-patches "upower-builddir.patch"))))
a1d5bb0e
AW
3681 (build-system glib-or-gtk-build-system)
3682 (arguments
3683 '( ;; The tests want to contact the system bus, which can't be done in the
3684 ;; build environment. The integration test can run, but the last of
3685 ;; the up-self-tests doesn't. Disable tests for now.
3686 #:tests? #f
3687 #:configure-flags (list "--localstatedir=/var"
3688 (string-append "--with-udevrulesdir="
3689 (assoc-ref %outputs "out")
9ec54965 3690 "/lib/udev/rules.d"))))
a1d5bb0e 3691 (native-inputs
ebeabe2d
SB
3692 `(("gobject-introspection" ,gobject-introspection)
3693 ("pkg-config" ,pkg-config)
a1d5bb0e 3694 ("intltool" ,intltool)
55409295
LC
3695 ("python" ,python)
3696
3697 ;; For man pages.
3698 ("libxslt" ,libxslt) ;for 'xsltproc'
3699 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
3700 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 3701 (inputs
ea226291
SB
3702 `(("dbus-glib" ,dbus-glib)
3703 ("libgudev" ,libgudev)
a1d5bb0e 3704 ("libusb" ,libusb)))
d7a503fc
MB
3705 (propagated-inputs
3706 ;; In Requires of upower-glib.pc.
3707 `(("glib" ,glib)))
57e7d748 3708 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
3709 (synopsis "System daemon for managing power devices")
3710 (description
3711 "UPower is an abstraction for enumerating power devices,
3712listening to device events and querying history and statistics. Any
3713application or service on the system can access the org.freedesktop.UPower
3714service via the system message bus.")
3715 (license license:gpl2+)))
6a180f6f
AW
3716
3717(define-public libgweather
3718 (package
3719 (name "libgweather")
794ce8ea 3720 (version "3.28.3")
6a180f6f
AW
3721 (source (origin
3722 (method url-fetch)
3723 (uri (string-append "mirror://gnome/sources/" name "/"
3724 (version-major+minor version) "/"
3725 name "-" version ".tar.xz"))
3726 (sha256
3727 (base32
794ce8ea 3728 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
cf6cbc34 3729 (build-system meson-build-system)
6a180f6f 3730 (arguments
cf6cbc34
RW
3731 `(#:tests? #f ; one of two tests requires network access
3732 #:configure-flags
3733 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 3734 (assoc-ref %build-inputs "tzdata")
cf6cbc34 3735 "/share/zoneinfo"))))
6a180f6f
AW
3736 (native-inputs
3737 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 3738 ("gobject-introspection" ,gobject-introspection)
6a180f6f 3739 ("pkg-config" ,pkg-config)
1d3fcf94 3740 ("vala" ,vala)
6a180f6f
AW
3741 ("intltool" ,intltool)))
3742 (propagated-inputs
3743 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
3744 ;; libsoup.
3745 `(("gtk+" ,gtk+)
3746 ("gdk-pixbuf" ,gdk-pixbuf)
3747 ("libxml2" ,libxml2)
cf6cbc34 3748 ("libsoup" ,libsoup)
6a180f6f 3749 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
3750 (inputs
3751 `(("tzdata" ,tzdata)))
6a180f6f
AW
3752 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
3753 (synopsis "Location, time zone, and weather library for GNOME")
3754 (description
3755 "libgweather is a library to access weather information from online
3756services for numerous locations.")
3757 (license license:gpl2+)))
23a22af6
AW
3758
3759(define-public gnome-settings-daemon
3760 (package
3761 (name "gnome-settings-daemon")
4be0719f 3762 (version "3.32.1")
23a22af6
AW
3763 (source
3764 (origin
3765 (method url-fetch)
3766 (uri (string-append "mirror://gnome/sources/" name "/"
3767 (version-major+minor version) "/"
3768 name "-" version ".tar.xz"))
3769 (sha256
3770 (base32
4be0719f 3771 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
e644f9fa 3772 (build-system meson-build-system)
23a22af6 3773 (arguments
e644f9fa
RW
3774 `(#:glib-or-gtk? #t
3775 #:configure-flags
3776 (list (string-append "-Dudev_dir="
3777 (assoc-ref %outputs "out")
4d0e085b
RW
3778 "/lib/udev/rules.d/")
3779 ;; Otherwise, the RUNPATH will lack the final path component.
3780 (string-append "-Dc_link_args=-Wl,-rpath="
3781 (assoc-ref %outputs "out")
3782 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 3783 ;; Color management test can't reach the colord system service.
23a22af6
AW
3784 #:tests? #f))
3785 (native-inputs
e644f9fa
RW
3786 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3787 ("pkg-config" ,pkg-config)
23a22af6
AW
3788 ("intltool" ,intltool)
3789 ("xsltproc" ,libxslt)
3790 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3791 ("docbook-xml" ,docbook-xml-4.2)
3792 ("docbook-xsl" ,docbook-xsl)))
3793 (inputs
e644f9fa
RW
3794 `(("alsa-lib" ,alsa-lib)
3795 ("colord" ,colord)
ea226291 3796 ("libgudev" ,libgudev)
23a22af6
AW
3797 ("upower" ,upower)
3798 ("polkit" ,polkit)
3799 ("pulseaudio" ,pulseaudio)
3800 ("libcanberra" ,libcanberra)
3801 ("libx11" ,libx11)
3802 ("libxtst" ,libxtst)
3803 ("lcms" ,lcms)
3804 ("libnotify" ,libnotify)
3805 ("geoclue" ,geoclue)
3806 ("geocode-glib" ,geocode-glib)
3807 ("libgweather" ,libgweather)
3808 ("gnome-desktop" ,gnome-desktop)
3809 ("nss" ,nss)
3810 ("cups" ,cups)
ec2b1921
AW
3811 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3812 ("libwacom" ,libwacom)
3813 ("librsvg" ,librsvg)
eee7878f 3814 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 3815 ("wayland" ,wayland)
eee7878f 3816 ("network-manager" ,network-manager)))
f032d0be 3817 (home-page "https://www.gnome.org")
23a22af6
AW
3818 (synopsis "GNOME settings daemon")
3819 (description
3820 "This package contains the daemon responsible for setting the various
3821parameters of a GNOME session and the applications that run under it. It
3822handles settings such keyboard layout, shortcuts, and accessibility, clipboard
3823settings, themes, mouse settings, and startup of other daemons.")
3824 (license license:gpl2+)))
1e7464a9
DH
3825
3826(define-public totem-pl-parser
3827 (package
3828 (name "totem-pl-parser")
77425f04 3829 (version "3.26.3")
1e7464a9
DH
3830 (source (origin
3831 (method url-fetch)
e980cbe9
MW
3832 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
3833 (version-major+minor version) "/"
1e7464a9
DH
3834 "totem-pl-parser-" version ".tar.xz"))
3835 (sha256
3836 (base32
77425f04 3837 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 3838 (build-system meson-build-system)
1e7464a9
DH
3839 (arguments
3840 ;; FIXME: Tests require gvfs.
3841 `(#:tests? #f))
3842 (native-inputs
3843 `(("intltool" ,intltool)
3844 ("glib" ,glib "bin")
4d6d8281 3845 ("gobject-introspection" ,gobject-introspection)
1e7464a9 3846 ("pkg-config" ,pkg-config)))
22a6ad6a 3847 (propagated-inputs
1e7464a9
DH
3848 `(("glib" ,glib)
3849 ("gmime" ,gmime)
1e9b19dd
RW
3850 ("libarchive" ,libarchive)
3851 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
3852 ("libxml2" ,libxml2)))
3853 (inputs
0a6e9e13 3854 `(("libsoup" ,libsoup)))
1e7464a9
DH
3855 (home-page "https://projects.gnome.org/totem")
3856 (synopsis "Library to parse and save media playlists for GNOME")
3857 (description "Totem-pl-parser is a GObjects-based library to parse and save
3858playlists in a variety of formats.")
3859 (license license:lgpl2.0+)))
3860
6b888eff
SB
3861(define-public aisleriot
3862 (package
3863 (name "aisleriot")
36ed9b46 3864 (version "3.22.9")
6b888eff
SB
3865 (source (origin
3866 (method url-fetch)
e43f622a 3867 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 3868 (version-major+minor version) "/"
e43f622a 3869 "aisleriot-" version ".tar.xz"))
6b888eff
SB
3870 (sha256
3871 (base32
36ed9b46 3872 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
3873 (build-system glib-or-gtk-build-system)
3874 (arguments
3875 '(#:configure-flags
3876 '("--with-platform=gtk-only"
3877 "--with-card-theme-formats=svg")))
3878 (native-inputs
3879 `(("desktop-file-utils" ,desktop-file-utils)
3880 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
3881 ("intltool" ,intltool)
3882 ("itstool" ,itstool)
3883 ("pkg-config" ,pkg-config)
3884 ("xmllint" ,libxml2)))
3885 (inputs
3886 `(("gtk+" ,gtk+)
226e57d6 3887 ("guile" ,guile-2.2)
6b888eff
SB
3888 ("libcanberra" ,libcanberra)
3889 ("librsvg" ,librsvg)))
3890 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
3891 (synopsis "Solitaire card games")
3892 (description
3893 "Aisleriot (also known as Solitaire or sol) is a collection of card games
3894which are easy to play with the aid of a mouse.")
3895 (license license:gpl3+)))
4a79e256 3896
f828d05b
KK
3897(define-public amtk
3898 (package
3899 (name "amtk")
09c4e43f 3900 (version "5.0.1")
f828d05b
KK
3901 (source (origin
3902 (method url-fetch)
bf92ba6b 3903 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 3904 (version-major+minor version) "/"
bf92ba6b 3905 "amtk-" version ".tar.xz"))
f828d05b
KK
3906 (sha256
3907 (base32
09c4e43f 3908 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
f828d05b
KK
3909 (build-system gnu-build-system)
3910 (arguments
3911 '(#:configure-flags '("--enable-gtk-doc")))
3912 (native-inputs
3913 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 3914 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
3915 ("gtk-doc" ,gtk-doc)
3916 ("pkg-config" ,pkg-config)))
3917 (inputs
3918 `(("glib" ,glib)
3919 ("gtk+" ,gtk+)))
3920 (home-page "https://wiki.gnome.org/Projects/Amtk")
3921 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
3922 (description
3923 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
3924It is a basic GtkUIManager replacement based on GAction. It is suitable for
3925both a traditional UI or a modern UI with a GtkHeaderBar.")
3926 (license license:lgpl2.1+)))
3927
4a79e256
SB
3928(define-public devhelp
3929 (package
3930 (name "devhelp")
20db7a3d 3931 (version "3.32.0")
4a79e256
SB
3932 (source (origin
3933 (method url-fetch)
3934 (uri (string-append "mirror://gnome/sources/" name "/"
3935 (version-major+minor version) "/"
3936 name "-" version ".tar.xz"))
3937 (sha256
3938 (base32
20db7a3d 3939 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
11d28bd9 3940 (build-system meson-build-system)
35407f94 3941 (arguments
20db7a3d
KK
3942 '(#:glib-or-gtk? #t
3943 #:phases
35407f94
EF
3944 (modify-phases %standard-phases
3945 (add-after 'unpack 'skip-gtk-update-icon-cache
3946 ;; Don't create 'icon-theme.cache'.
3947 (lambda _
3948 (substitute* "meson_post_install.py"
3949 (("gtk-update-icon-cache") "true"))
3950 #t)))))
4a79e256
SB
3951 (native-inputs
3952 `(("intltool" ,intltool)
5dd12afc 3953 ("itstool" ,itstool)
11d28bd9
KK
3954 ("gobject-introspection" ,gobject-introspection)
3955 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
3956 ("pkg-config" ,pkg-config)))
3957 (inputs
11d28bd9
KK
3958 `(("amtk" ,amtk)
3959 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
3960 ("webkitgtk" ,webkitgtk)))
3961 (home-page "https://wiki.gnome.org/Apps/Devhelp")
3962 (synopsis "API documentation browser for GNOME")
3963 (description
3964 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
3965natively with GTK-Doc (the API reference system developed for GTK+ and used
3966throughout GNOME for API documentation).")
3967 (license license:gpl2+)))
ba421ab7
MW
3968
3969(define-public cogl
3970 (package
3971 (name "cogl")
54c69ae1 3972 (version "1.22.4")
ba421ab7
MW
3973 (source
3974 (origin
3975 (method url-fetch)
5754f0cf 3976 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 3977 (version-major+minor version) "/"
5754f0cf 3978 "cogl-" version ".tar.xz"))
ba421ab7 3979 (sha256
54c69ae1 3980 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
a88d5a0c
MW
3981 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
3982 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
3983 (build-system gnu-build-system)
3984 (native-inputs
3985 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3986 ("gobject-introspection" ,gobject-introspection)
3987 ;;("xorg-server" ,xorg-server) ; for the test suite
3988 ("pkg-config" ,pkg-config)))
3989 (propagated-inputs
3990 `(("glib" ,glib)
3991 ("gdk-pixbuf" ,gdk-pixbuf)
3992 ("libx11" ,libx11)
3993 ("libxext" ,libxext)
3994 ("libxfixes" ,libxfixes)
3995 ("libxdamage" ,libxdamage)
3996 ("libxcomposite" ,libxcomposite)
3997 ("libxrandr" ,libxrandr)))
3998 (inputs
3999 `(("mesa" ,mesa)
4000 ("cairo" ,cairo)
4001 ("pango" ,pango)
4002 ("gstreamer" ,gstreamer)
31860852
KK
4003 ("gst-plugins-base" ,gst-plugins-base)
4004 ("wayland" ,wayland)))
ba421ab7
MW
4005 (arguments
4006 `(#:configure-flags (list "--enable-cogl-gst"
31860852
KK
4007 "--enable-wayland-egl-platform"
4008 "--enable-wayland-egl-server"
4009
ba421ab7
MW
4010 ;; Arrange to pass an absolute file name to
4011 ;; dlopen for libGL.so.
4012 (string-append "--with-gl-libname="
4013 (assoc-ref %build-inputs "mesa")
4014 "/lib/libGL.so"))
4015 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4016 ;; _FontTransOpen: Unable to Parse address
4017 ;; ${prefix}/share/fonts/X11/misc/
4018 #:tests? #f
4019 #; #:phases
4020 #;
4021 (modify-phases %standard-phases
4022 (add-before 'check 'start-xorg-server
4023 (lambda* (#:key inputs #:allow-other-keys)
4024 ;; The test suite requires a running X server.
4025 (system (format #f "~a/bin/Xvfb :1 &"
4026 (assoc-ref inputs "xorg-server")))
4027 (setenv "DISPLAY" ":1")
4028 #t)))))
4029 (home-page "http://www.cogl3d.org")
4030 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4031 (description
4032 "Cogl is a small library for using 3D graphics hardware to draw pretty
4033pictures. The API departs from the flat state machine style of OpenGL and is
4034designed to make it easy to write orthogonal components that can render
4035without stepping on each others toes.")
4036 (license (list license:expat ; most of the code
4037 license:bsd-3 ; cogl/cogl-point-in-poly.c
4038 license:sgifreeb2.0 ; cogl-path/tesselator/
4039 license:asl2.0)))) ; examples/android/
fb182b8a
MW
4040
4041(define-public clutter
4042 (package
4043 (name "clutter")
6a88e4ee 4044 (version "1.26.2")
fb182b8a
MW
4045 (source
4046 (origin
4047 (method url-fetch)
4048 (uri (string-append "mirror://gnome/sources/" name "/"
4049 (version-major+minor version) "/"
4050 name "-" version ".tar.xz"))
4051 (sha256
4052 (base32
6a88e4ee 4053 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
4054 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4055 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 4056 (build-system gnu-build-system)
600233bd
LC
4057 (outputs '("out"
4058 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
4059 (native-inputs
4060 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4061 ("gobject-introspection" ,gobject-introspection)
4062 ("pkg-config" ,pkg-config)
4063 ("xsltproc" ,libxslt)))
4064 (propagated-inputs
4065 `(("cogl" ,cogl)
4066 ("cairo" ,cairo)
4067 ("atk" ,atk)
4068 ("gtk+" ,gtk+)
4069 ("json-glib" ,json-glib)
4070 ("glib" ,glib)
4071 ("libxcomposite" ,libxcomposite)
4072 ("libxdamage" ,libxdamage)
4073 ("libxext" ,libxext)
4074 ("xinput" ,xinput)))
4075 (inputs
4076 `(("libxkbcommon" ,libxkbcommon)
4077 ("udev" ,eudev)))
4078 (arguments
600233bd
LC
4079 `(#:configure-flags (list "--enable-x11-backend=yes"
4080
4081 ;; This produces share/doc/{clutter,cally}.
4082 (string-append "--with-html-dir="
4083 (assoc-ref %outputs "doc")
4084 "/share/doc"))
fb182b8a
MW
4085 ;; XXX FIXME: Get test suite working. It would probably fail in the
4086 ;; same way the cogl tests fail, since clutter is based on cogl.
4087 #:tests? #f))
4088 (home-page "http://www.clutter-project.org")
476af713 4089 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 4090 (description
476af713 4091 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
4092creating fast, mainly 2D single window applications such as media box UIs,
4093presentations, kiosk style applications and so on.")
4094 (license license:lgpl2.0+)))
bf7f17ba
MW
4095
4096(define-public clutter-gtk
4097 (package
4098 (name "clutter-gtk")
5d1a3219 4099 (version "1.8.4")
bf7f17ba
MW
4100 (source
4101 (origin
4102 (method url-fetch)
4103 (uri (string-append "mirror://gnome/sources/" name "/"
4104 (version-major+minor version) "/"
4105 name "-" version ".tar.xz"))
4106 (sha256
4107 (base32
5d1a3219 4108 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
4109 (build-system gnu-build-system)
4110 (native-inputs
4111 `(("pkg-config" ,pkg-config)
4112 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
4113 (propagated-inputs
4114 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
4115 `(("clutter" ,clutter)
4116 ("gtk+" ,gtk+)))
4117 (home-page "http://www.clutter-project.org")
476af713 4118 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 4119 (description
476af713 4120 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
4121creating fast, mainly 2D single window applications such as media box UIs,
4122presentations, kiosk style applications and so on.")
4123 (license license:lgpl2.0+)))
86d6a893
MW
4124
4125(define-public clutter-gst
4126 (package
4127 (name "clutter-gst")
ba07ac19 4128 (version "3.0.27")
86d6a893
MW
4129 (source
4130 (origin
4131 (method url-fetch)
f010f89b 4132 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 4133 (version-major+minor version) "/"
f010f89b 4134 "clutter-gst-" version ".tar.xz"))
86d6a893 4135 (sha256
ba07ac19 4136 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
4137 (build-system gnu-build-system)
4138 (native-inputs
ba07ac19 4139 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
4140 ("pkg-config" ,pkg-config)
4141 ("gobject-introspection" ,gobject-introspection)))
4142 (inputs
4143 `(("clutter" ,clutter)
4144 ("gstreamer" ,gstreamer)
4145 ("gst-plugins-base" ,gst-plugins-base)))
4146 (home-page "http://www.clutter-project.org")
4147 (synopsis "Integration library for using GStreamer with Clutter")
4148 (description
4149 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4150It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
4151implements the ClutterGstPlayer interface using playbin. Clutter is an
4152OpenGL-based interactive canvas library.")
86d6a893 4153 (license license:lgpl2.0+)))
607a04ae 4154
30dc88d9
LC
4155(define-public libchamplain
4156 (package
4157 (name "libchamplain")
5564b2c5 4158 (version "0.12.16")
30dc88d9
LC
4159 (source (origin
4160 (method url-fetch)
4161 (uri (string-append
4162 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4163 version ".tar.xz"))
4164 (sha256
4165 (base32
5564b2c5 4166 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 4167 (build-system gnu-build-system)
f7c6833f
LF
4168 (arguments '(#:configure-flags '("--enable-vala")))
4169 (native-inputs
4170 `(("gobject-introspection" ,gobject-introspection)
4171 ("pkg-config" ,pkg-config)
4172 ("vala" ,vala)))
30dc88d9
LC
4173 (propagated-inputs
4174 `(("libsoup" ,libsoup)
4175 ("sqlite" ,sqlite)
4176 ("clutter" ,clutter)
4177 ("clutter-gtk" ,clutter-gtk)
4178 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4179 ("cairo" ,cairo)
4180 ("gtk+3" ,gtk+)
4181 ("glib" ,glib)))
f032d0be 4182 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
4183 (synopsis "C library providing a ClutterActor to display maps")
4184 (description
4185 "libchamplain is a C library providing a ClutterActor to display maps.
4186It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4187and Perl bindings are also available. It supports numerous free map sources
4188such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4189 (license license:lgpl2.1+)))
4190
607a04ae
MW
4191(define-public gom
4192 (package
4193 (name "gom")
0510440b 4194 (version "0.3.2")
607a04ae
MW
4195 (source
4196 (origin
4197 (method url-fetch)
6c8a0b6f 4198 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 4199 (version-major+minor version) "/"
6c8a0b6f 4200 "gom-" version ".tar.xz"))
607a04ae
MW
4201 (sha256
4202 (base32
0510440b 4203 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
4204 (build-system gnu-build-system)
4205 (native-inputs
4206 `(("intltool" ,intltool)
4207 ("pkg-config" ,pkg-config)
4208 ("gobject-introspection" ,gobject-introspection)))
4209 (inputs
4210 `(("glib" ,glib)
4211 ("gdk-pixbuf" ,gdk-pixbuf)
4212 ("sqlite" ,sqlite)))
4213 ;; XXX TODO: Figure out how to run the test suite.
4214 (arguments `(#:tests? #f))
4215 (home-page "https://wiki.gnome.org/Projects/Gom")
4216 (synopsis "Object mapper from GObjects to SQLite")
4217 (description
4218 "Gom provides an object mapper from GObjects to SQLite. It helps you
4219write applications that need to store structured data as well as make complex
4220queries upon that data.")
4221 (license license:lgpl2.1+)))
b7a3cf11 4222
865aacc9 4223(define-public libgnome-games-support
f09520db 4224 (package
865aacc9 4225 (name "libgnome-games-support")
4c6d15cf 4226 (version "1.4.4")
f09520db
SB
4227 (source (origin
4228 (method url-fetch)
2d8dca9d 4229 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 4230 (version-major+minor version) "/"
2d8dca9d 4231 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
4232 (sha256
4233 (base32
4c6d15cf 4234 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
4235 (build-system gnu-build-system)
4236 (arguments
4237 '(#:phases
4238 (modify-phases %standard-phases
4239 (add-before 'check 'pre-check
4240 (lambda _
865aacc9 4241 ;; Tests require a writable HOME.
f09520db
SB
4242 (setenv "HOME" (getcwd))
4243 #t)))))
4244 (native-inputs
4245 `(("intltool" ,intltool)
4246 ("pkg-config" ,pkg-config)
4247 ("vala" ,vala)))
4248 (propagated-inputs
865aacc9 4249 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
4250 `(("gtk+" ,gtk+)
4251 ("libgee" ,libgee)))
4252 (home-page "https://www.gnome.org/")
4253 (synopsis "Useful functionality shared among GNOME games")
4254 (description
865aacc9 4255 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
4256GNOME Games, but it may be used by others.")
4257 (license license:lgpl3+)))
4258
b7a3cf11
SB
4259(define-public gnome-klotski
4260 (package
4261 (name "gnome-klotski")
c1e419c4 4262 (version "3.32.0")
b7a3cf11
SB
4263 (source (origin
4264 (method url-fetch)
4265 (uri (string-append "mirror://gnome/sources/" name "/"
4266 (version-major+minor version) "/"
4267 name "-" version ".tar.xz"))
4268 (sha256
4269 (base32
c1e419c4
KK
4270 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4271 (build-system meson-build-system)
4272 (arguments
4273 '(#:glib-or-gtk? #t
4274 #:phases
4275 (modify-phases %standard-phases
4276 (add-after 'unpack 'skip-gtk-update-icon-cache
4277 ;; Don't create 'icon-theme.cache'.
4278 (lambda _
4279 (substitute* "build-aux/meson_post_install.py"
4280 (("gtk-update-icon-cache") (which "true")))
4281 #t)))))
b7a3cf11
SB
4282 (native-inputs
4283 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 4284 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
4285 ("intltool" ,intltool)
4286 ("itstool" ,itstool)
bcb354ad 4287 ("pkg-config" ,pkg-config)
c1e419c4 4288 ("vala" ,vala)
bcb354ad 4289 ("xmllint" ,libxml2)))
b7a3cf11
SB
4290 (inputs
4291 `(("gtk+" ,gtk+)
f4eae76f 4292 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
4293 ("librsvg" ,librsvg)))
4294 (home-page "https://wiki.gnome.org/Apps/Klotski")
4295 (synopsis "Sliding block puzzles")
4296 (description
4297 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4298the patterned block to the area bordered by green markers. To do so, you will
4299need to slide other blocks out of the way. Complete each puzzle in as few moves
4300as possible!")
4301 (license license:gpl2+)))
8d4791bf
MW
4302
4303(define-public grilo
4304 (package
4305 (name "grilo")
a865e938 4306 (version "0.3.10")
8d4791bf
MW
4307 (source
4308 (origin
4309 (method url-fetch)
4310 (uri (string-append "mirror://gnome/sources/" name "/"
4311 (version-major+minor version) "/"
4312 name "-" version ".tar.xz"))
4313 (sha256
4314 (base32
a865e938 4315 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 4316 (build-system meson-build-system)
8d4791bf
MW
4317 (native-inputs
4318 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4319 ("intltool" ,intltool)
4320 ("pkg-config" ,pkg-config)
d48d4c98
KK
4321 ("gobject-introspection" ,gobject-introspection)
4322 ("gtk-doc" ,gtk-doc)
4323 ("vala" ,vala)))
8d4791bf 4324 (inputs
6d7273a0
KK
4325 `(("cyrus-sasl" ,cyrus-sasl)
4326 ("glib" ,glib)
8d4791bf
MW
4327 ("gtk+" ,gtk+)
4328 ("libxml2" ,libxml2)
6d7273a0 4329 ("liboauth" ,liboauth)
8d4791bf
MW
4330 ("libsoup" ,libsoup)
4331 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
4332 (native-search-paths
4333 (list (search-path-specification
4334 (variable "GRL_PLUGIN_PATH")
4335 (files (list (string-append "lib/grilo-"
4336 (version-major+minor version)))))))
d48d4c98 4337 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
4338 (synopsis "Framework for discovering and browsing media")
4339 (description
4340 "Grilo is a framework focused on making media discovery and browsing easy
4341for application developers.")
4342 (license license:lgpl2.1+)))
7b212526
MW
4343
4344(define-public grilo-plugins
4345 (package
4346 (name "grilo-plugins")
22753632 4347 (version "0.3.3")
7b212526
MW
4348 (source
4349 (origin
4350 (method url-fetch)
4351 (uri (string-append "mirror://gnome/sources/" name "/"
4352 (version-major+minor version) "/"
4353 name "-" version ".tar.xz"))
4354 (sha256
4355 (base32
22753632 4356 "172vr1y98d2mzlmg5akjn4ibrcj3gh22cwnb3cv9rvvzhj3yhrpy"))))
7b212526
MW
4357 (build-system gnu-build-system)
4358 (native-inputs
4359 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4360 ("intltool" ,intltool)
4361 ("itstool" ,itstool)
4362 ("pkg-config" ,pkg-config)))
4363 (inputs
4364 `(("grilo" ,grilo)
4365 ("glib" ,glib)
4366 ("libxml2" ,libxml2)
4367 ("sqlite" ,sqlite)
4368 ("gom" ,gom)
4369 ;; XXX TODO: Add oauth
4370 ;; XXX TODO: Add goa
4371 ;; XXX TODO: Add gdata (e.g. needed for youtube plugin)
4372 ;; XXX TODO: Add lua (needs help finding it)
4373 ("json-glib" ,json-glib)
4374 ("avahi" ,avahi)
4375 ("gmime" ,gmime)
4376 ("libsoup" ,libsoup)
4377 ("libarchive" ,libarchive)
4378 ("totem-pl-parser" ,totem-pl-parser)))
4379 (arguments
4380 `(#:make-flags (list (string-append "GRL_PLUGINS_DIR="
4381 %output
4382 "/lib/grilo-"
4383 ,(version-major+minor version)))
4384 ;; XXX FIXME: Try to get the test suite working. It appears to require
4385 ;; a working system dbus. Inside the build container, all tests fail
4386 ;; with: "assertion failed: (source)". Outside of the build container,
4387 ;; most tests succeed.
4388 #:tests? #f))
f032d0be 4389 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
4390 (synopsis "Plugins for the Grilo media discovery library")
4391 (description
4392 "Grilo is a framework focused on making media discovery and browsing easy
4393for application developers.")
4394 (license license:lgpl2.1+)))
4e3fc547
MW
4395
4396(define-public totem
4397 (package
4398 (name "totem")
995ef5ea 4399 (version "3.32.1")
4e3fc547
MW
4400 (source
4401 (origin
4402 (method url-fetch)
4403 (uri (string-append "mirror://gnome/sources/" name "/"
4404 (version-major+minor version) "/"
4405 name "-" version ".tar.xz"))
4406 (sha256
4407 (base32
995ef5ea 4408 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
7ad81b8b 4409 (build-system meson-build-system)
4e3fc547
MW
4410 (native-inputs
4411 `(("pkg-config" ,pkg-config)
4412 ("desktop-file-utils" ,desktop-file-utils)
4413 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 4414 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 4415 ("intltool" ,intltool)
bcb354ad 4416 ("itstool" ,itstool)
995ef5ea
KK
4417 ("xmllint" ,libxml2)
4418 ("python-pylint" ,python-pylint)
4419 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
4420 (propagated-inputs
4421 `(("dconf" ,dconf)))
4422 (inputs
4423 `(("gtk+" ,gtk+)
4424 ("gdk-pixbuf" ,gdk-pixbuf)
4425 ("atk" ,atk)
4426 ("cairo" ,cairo)
4427 ("dbus-glib" ,dbus-glib)
4428 ("clutter" ,clutter)
4429 ("clutter-gtk" ,clutter-gtk)
4430 ("clutter-gst" ,clutter-gst)
6a6db57f 4431 ("xorgproto" ,xorgproto)
4e3fc547
MW
4432 ("libxxf86vm" ,libxxf86vm)
4433 ("libxtst" ,libxtst)
4434 ("libxrandr" ,libxrandr)
4435 ("libxml2" ,libxml2)
4436 ("libsoup" ,libsoup)
4437 ("libpeas" ,libpeas)
4438 ("librsvg" ,librsvg)
4439 ("lirc" ,lirc)
4440 ("gnome-desktop" ,gnome-desktop)
4441 ("gstreamer" ,gstreamer)
4442 ("gst-plugins-base" ,gst-plugins-base)
4443 ("gst-plugins-good" ,gst-plugins-good)
4444 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4445 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 4446 ("python" ,python)
995ef5ea 4447 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
4448 ("totem-pl-parser" ,totem-pl-parser)
4449 ("grilo" ,grilo)
4450 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
4451 ("vala" ,vala)))
4452 (arguments
7ad81b8b
LC
4453 `(#:glib-or-gtk? #t
4454
4455 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 4456 ;; all that.
7ad81b8b 4457 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
4458
4459 ;; Do not build .a files for the plugins, it's
4460 ;; completely useless. This saves 2 MiB.
7ad81b8b 4461 "--default-library" "shared")
ec5c24f9 4462 #:phases
4e3fc547 4463 (modify-phases %standard-phases
d51b19ad
EF
4464 (add-after 'unpack 'skip-gtk-update-icon-cache
4465 ;; Don't create 'icon-theme.cache'.
4466 (lambda _
4467 (substitute* "meson_post_install.py"
4468 (("gtk-update-icon-cache") "true"))
4469 #t))
6368eb39
DM
4470 (add-before
4471 'install 'disable-cache-generation
4472 (lambda _
4473 (setenv "DESTDIR" "/")
4474 #t))
995ef5ea
KK
4475 (add-before
4476 'check 'pre-check
4477 (lambda _
4478 ;; Tests require a running X server.
4479 (system "Xvfb :1 &")
4480 (setenv "DISPLAY" ":1")
4481 #t))
4e3fc547
MW
4482 (add-after
4483 'install 'wrap-totem
4484 (lambda* (#:key inputs outputs #:allow-other-keys)
4485 (let ((out (assoc-ref outputs "out"))
4486 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4487 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4488 (wrap-program (string-append out "/bin/totem")
4489 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
4490 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4491 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4492 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
4493 #t)))))
4494 (home-page "https://wiki.gnome.org/Apps/Videos")
4495 (synopsis "Simple media player for GNOME based on GStreamer")
4496 (description "Totem is a simple yet featureful media player for GNOME
4497which can read a large number of file formats.")
4498 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4499 ;; to be used and distributed together with GStreamer and Totem. See
4500 ;; file://COPYING in the source distribution for details.
4501 (license license:gpl2+)))
f0afb0c8
DH
4502
4503(define-public rhythmbox
4504 (package
4505 (name "rhythmbox")
8190e1ed 4506 (version "3.4.3")
f0afb0c8
DH
4507 (source (origin
4508 (method url-fetch)
4509 (uri (string-append "mirror://gnome/sources/" name "/"
4510 (version-major+minor version) "/"
4511 name "-" version ".tar.xz"))
4512 (sha256
4513 (base32
8190e1ed 4514 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
f0afb0c8
DH
4515 (build-system glib-or-gtk-build-system)
4516 (arguments
4517 `(#:configure-flags
4518 (list "--enable-lirc"
4519 "--enable-python"
4520 "--enable-vala"
4521 "--with-brasero"
4522 "--with-gudev"
4523 "--with-libsecret")
4524 #:phases
4525 (modify-phases %standard-phases
4526 (add-after
4527 'install 'wrap-rhythmbox
4528 (lambda* (#:key inputs outputs #:allow-other-keys)
4529 (let ((out (assoc-ref outputs "out"))
4530 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4531 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
4532 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4533 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
4534 (wrap-program (string-append out "/bin/rhythmbox")
4535 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4536 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
4537 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4538 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
4539 #t)))))
4540 (propagated-inputs
4541 `(("dconf" ,dconf)))
4542 (native-inputs
bcb354ad
SB
4543 `(("itstool" ,itstool)
4544 ("intltool" ,intltool)
f0afb0c8
DH
4545 ("glib" ,glib "bin")
4546 ("gobject-introspection" ,gobject-introspection)
4547 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
4548 ("pkg-config" ,pkg-config)
4549 ("xmllint" ,libxml2)))
f0afb0c8
DH
4550 (inputs
4551 `(("json-glib" ,json-glib)
4552 ("tdb" ,tdb)
4553 ("gnome-desktop" ,gnome-desktop)
4554 ("python" ,python)
4555 ("python-pygobject" ,python2-pygobject)
4556 ("vala" ,vala)
4557 ("gmime" ,gmime)
f0afb0c8
DH
4558 ("adwaita-icon-theme" ,adwaita-icon-theme)
4559 ("grilo" ,grilo)
4560 ("grilo-plugins" ,grilo-plugins)
4561 ("gstreamer" ,gstreamer)
4562 ("gst-plugins-base" ,gst-plugins-base)
4563 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 4564 ("totem-pl-parser" ,totem-pl-parser)
ea226291 4565 ("libgudev" ,libgudev)
f0afb0c8
DH
4566 ;;("libmtp" ,libmtp) FIXME: Not detected
4567 ("libsecret" ,libsecret)
4568 ("libsoup" ,libsoup)
4569 ("libnotify" ,libnotify)
4570 ("libpeas" ,libpeas)
4571 ("lirc" ,lirc)
4572 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4573 ;;("clutter" ,clutter)
4574 ;;("clutter-gtk" ,clutter-gtk)
4575 ;;("clutter-gst" ,clutter-gst)
4576 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4577 ("atk" ,atk)
4578 ("pango" ,pango)
4579 ("gtk+" ,gtk+)
4580 ;; TODO:
4581 ;; * libgpod
4582 ;; * mx
f0afb0c8
DH
4583 ("brasero" ,brasero)))
4584 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4585 (synopsis "Music player for GNOME")
4586 (description "Rhythmbox is a music playing application for GNOME. It
4587supports playlists, song ratings, and any codecs installed through gstreamer.")
4588 (license license:gpl2+)))
f70d8383
DH
4589
4590(define-public eog
4591 (package
4592 (name "eog")
b0f24a82 4593 (version "3.32.2")
f70d8383
DH
4594 (source (origin
4595 (method url-fetch)
4596 (uri (string-append "mirror://gnome/sources/" name "/"
4597 (version-major+minor version) "/"
4598 name "-" version ".tar.xz"))
4599 (sha256
4600 (base32
b0f24a82 4601 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
61fb581f 4602 (build-system meson-build-system)
f70d8383 4603 (arguments
34c44a34
RW
4604 `(#:configure-flags
4605 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
4606 (list (string-append "-Dc_link_args=-Wl,-rpath="
4607 (assoc-ref %outputs "out") "/lib/eog"))
4608 #:phases
f70d8383 4609 (modify-phases %standard-phases
7a034665
EF
4610 (add-after 'unpack 'skip-gtk-update-icon-cache
4611 ;; Don't create 'icon-theme.cache'.
4612 (lambda _
4613 (substitute* "meson_post_install.py"
4614 (("gtk-update-icon-cache") "true"))
4615 #t))
61fb581f
RW
4616 (add-after 'install 'wrap-eog
4617 (lambda* (#:key outputs #:allow-other-keys)
4618 (let ((out (assoc-ref outputs "out"))
4619 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
4620 (wrap-program (string-append out "/bin/eog")
4621 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
4622 #t)))))
f70d8383
DH
4623 (propagated-inputs
4624 `(("dconf" ,dconf)))
4625 (native-inputs
4626 `(("intltool" ,intltool)
b3546174 4627 ("itstool" ,itstool)
f70d8383
DH
4628 ("glib" ,glib "bin")
4629 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
4630 ("pkg-config" ,pkg-config)
4631 ("xmllint" ,libxml2)))
f70d8383
DH
4632 (inputs
4633 `(("gnome-desktop" ,gnome-desktop)
4634 ("shared-mime-info" ,shared-mime-info)
4635 ("adwaita-icon-theme" ,adwaita-icon-theme)
4636 ("exempi" ,exempi)
4637 ("lcms" ,lcms)
4638 ("libexif" ,libexif)
4639 ("libpeas" ,libpeas)
4640 ("libjpeg" ,libjpeg)
4641 ("librsvg" ,librsvg)
4642 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4643 ("gtk+" ,gtk+)))
4644 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
4645 (synopsis "GNOME image viewer")
4646 (description "Eye of GNOME is the GNOME image viewer. It
4647supports image conversion, rotation, and slideshows.")
4648 (license license:gpl2+)))
41af5e7b 4649
0c3f8cb8
LC
4650(define-public eog-plugins
4651 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
4652 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
4653 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
4654 ;; 'XDG_DATA_DIRS' appropriately set.
4655 (package
4656 (name "eog-plugins")
54b74cc6 4657 (version "3.26.4")
0c3f8cb8
LC
4658 (source (origin
4659 (method url-fetch)
f3b88ed2 4660 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 4661 (version-major+minor version) "/"
f3b88ed2 4662 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
4663 (sha256
4664 (base32
54b74cc6 4665 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
4666 (build-system gnu-build-system)
4667 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
4668 (synopsis "Extensions for the Eye of GNOME image viewer")
4669 (native-inputs
4670 `(("pkg-config" ,pkg-config)
4671 ("gettext" ,gnu-gettext)))
4672 (inputs
4673 `(("eog" ,eog)
4674 ("glib" ,glib)
4675 ("gtk+" ,gtk+)
4676 ("libpeas" ,libpeas)
4677 ("libexif" ,libexif)
4678 ("libchamplain" ,libchamplain)))
4679 (description
4680 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
4681notably:
4682
4683@itemize
4684@item @dfn{EXIF Display}, which displays camera (EXIF) information;
4685@item @dfn{Map}, which displays a map of where the picture was taken on the
4686side panel;
4687@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
4688@end itemize\n")
4689
4690 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
4691 ;; long suspicious byte stream that goes to a
4692 ;; ".gresource.eog_postasa_plugin" ELF section.
4693 (license license:gpl2+)))
4694
41af5e7b
SB
4695(define-public libgudev
4696 (package
4697 (name "libgudev")
b78f5118 4698 (version "232")
41af5e7b
SB
4699 (source (origin
4700 (method url-fetch)
4701 (uri (string-append "mirror://gnome/sources/" name "/"
4702 version "/" name "-" version ".tar.xz"))
4703 (sha256
4704 (base32
b78f5118 4705 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 4706 (build-system gnu-build-system)
b78f5118
RW
4707 (arguments
4708 '(#:configure-flags
4709 ;; umockdev depends on libgudev.
4710 (list "--disable-umockdev")))
41af5e7b
SB
4711 (native-inputs
4712 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4713 ("gobject-introspection" ,gobject-introspection)
4714 ("pkg-config" ,pkg-config)))
4715 (propagated-inputs
4716 `(("glib" ,glib))) ; required by gudev-1.0.pc
4717 (inputs
4718 `(("udev" ,eudev)))
4719 (home-page "https://wiki.gnome.org/Projects/libgudev")
4720 (synopsis "GObject bindings for libudev")
4721 (description
4722 "This library provides GObject bindings for libudev. It was originally
4723part of udev-extras, then udev, then systemd. It's now a project on its own.")
4724 (license license:lgpl2.1+)))
3dc8828f
SB
4725
4726(define-public gvfs
4727 (package
4728 (name "gvfs")
12fe4846 4729 (version "1.40.1")
3dc8828f
SB
4730 (source (origin
4731 (method url-fetch)
1d68eb32 4732 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 4733 (version-major+minor version) "/"
1d68eb32 4734 "gvfs-" version ".tar.xz"))
3dc8828f
SB
4735 (sha256
4736 (base32
12fe4846 4737 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
e762d943 4738 (build-system meson-build-system)
3dc8828f 4739 (arguments
e762d943
RW
4740 '(#:glib-or-gtk? #t
4741 #:configure-flags
4742 (list "-Dsystemduserunitdir=no"
4743 "-Dtmpfilesdir=no"
4744 ;; Otherwise, the RUNPATH will lack the final path component.
4745 (string-append "-Dc_link_args=-Wl,-rpath="
4746 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
4747 (native-inputs
4748 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
4749 ("gettext" ,gettext-minimal)
4750 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
4751 ("pkg-config" ,pkg-config)
4752 ("xsltproc" ,libxslt)))
4753 (inputs
4754 `(("avahi" ,avahi)
4755 ("docbook-xml" ,docbook-xml-4.2)
4756 ("docbook-xsl" ,docbook-xsl)
4757 ("dbus" ,dbus)
e762d943 4758 ("elogind" ,elogind)
3dc8828f 4759 ("fuse" ,fuse)
24a78aa6 4760 ("gcr" ,gcr)
3dc8828f 4761 ("glib" ,glib)
e762d943 4762 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
4763 ("libarchive" ,libarchive)
4764 ("libbluray" ,libbluray)
8852ca24 4765 ("libcap" ,libcap)
3dc8828f
SB
4766 ("libcdio-paranoia" ,libcdio-paranoia)
4767 ("libgcrypt" ,libgcrypt)
e762d943 4768 ("libgdata" ,libgdata)
3dc8828f
SB
4769 ("libgphoto2" ,libgphoto2)
4770 ("libgudev" ,libgudev)
0ab9f949 4771 ("libimobiledevice" ,libimobiledevice)
3dc8828f 4772 ("libmtp" ,libmtp)
e762d943 4773 ("libnfs" ,libnfs)
3dc8828f
SB
4774 ("libsecret" ,libsecret)
4775 ("libsmbclient" ,samba)
4776 ("libsoup" ,libsoup)
4777 ("libxml2" ,libxml2)
e762d943 4778 ("openssh" ,openssh)
8852ca24 4779 ("polkit" ,polkit)
3dc8828f
SB
4780 ("udisks" ,udisks)))
4781 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 4782 (synopsis "Userspace virtual file system for GIO")
3dc8828f 4783 (description
8f65585b 4784 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
4785abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
4786to all applications using the GIO API. It also supports exposing the GVFS
4787mounts to non-GIO applications using FUSE.
4788
4789GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
4790DAV, and others.")
4791 (license license:lgpl2.0+)))
7c88b6bd
AW
4792
4793(define-public gusb
4794 (package
4795 (name "gusb")
536b3274 4796 (version "0.3.0")
7c88b6bd 4797 (source (origin
bbfb36f9
EF
4798 (method git-fetch)
4799 (uri (git-reference
4800 (url "https://github.com/hughsie/libgusb.git")
4801 (commit version)))
4802 (file-name (git-file-name name version))
7c88b6bd
AW
4803 (sha256
4804 (base32
bbfb36f9 4805 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 4806 (build-system meson-build-system)
7c88b6bd 4807 (native-inputs
536b3274 4808 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
4809 ("pkg-config" ,pkg-config)
4810 ("vala" ,vala)
7c88b6bd
AW
4811 ("gtk-doc" ,gtk-doc)))
4812 (propagated-inputs
4813 ;; Both of these are required by gusb.pc.
4814 `(("glib" ,glib)
4815 ("libusb" ,libusb)))
4816 (arguments
536b3274 4817 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 4818 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 4819 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
4820 (description
4821 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
4822asynchronous control, bulk and interrupt transfers with proper cancellation
4823and integration into a mainloop. This makes it easy to integrate low level
4824USB transfers with your high-level application or system daemon.")
4825 (license license:lgpl2.1+)))
0abe1d86
AW
4826
4827(define-public simple-scan
4828 (package
4829 (name "simple-scan")
4afb7dd9 4830 (version "3.34.2")
d9f6d587
TGR
4831 (source
4832 (origin
4833 (method url-fetch)
4834 (uri (string-append "mirror://gnome/sources/simple-scan/"
4835 (version-major+minor version) "/"
4836 "simple-scan-" version ".tar.xz"))
4837 (sha256
4afb7dd9 4838 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
d9f6d587
TGR
4839 (build-system meson-build-system)
4840 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
4841 (arguments
4842 '(#:glib-or-gtk? #t))
0abe1d86
AW
4843 (inputs
4844 `(("gtk" ,gtk+)
4845 ("zlib" ,zlib)
4846 ("cairo" ,cairo)
c501f592 4847 ("colord" ,colord)
0abe1d86
AW
4848 ("gdk-pixbuf" ,gdk-pixbuf)
4849 ("gusb" ,gusb)
4c928743 4850 ("libsane" ,sane-backends)))
0abe1d86 4851 (native-inputs
b94a6ca0 4852 `(("gettext" ,gettext-minimal)
0abe1d86 4853 ("itstool" ,itstool)
c501f592 4854 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 4855 ("pkg-config" ,pkg-config)
bcb354ad
SB
4856 ("vala" ,vala)
4857 ("xmllint" ,libxml2)))
dff0eedb 4858 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 4859 (synopsis "Document and image scanner")
d9f6d587
TGR
4860 (description
4861 "Document Scanner is an easy-to-use application that lets you connect your
4862scanner and quickly capture images and documents in an appropriate format. It
4863supports any scanner for which a suitable SANE driver is available, which is
4864almost all of them.")
0abe1d86 4865 (license license:gpl3+)))
7549f984 4866
ab466d79
RW
4867(define-public eolie
4868 (package
4869 (name "eolie")
fa8ef3ed 4870 (version "0.9.63")
ab466d79
RW
4871 (source (origin
4872 (method url-fetch)
00014781 4873 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
fa8ef3ed 4874 "uploads/d42b466752729a0d3fa828a721e25043/"
00014781 4875 "eolie-" version ".tar.xz"))
ab466d79
RW
4876 (sha256
4877 (base32
fa8ef3ed 4878 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
00014781 4879 (build-system meson-build-system)
ab466d79 4880 (arguments
00014781
RW
4881 `(#:glib-or-gtk? #t
4882 #:phases
ab466d79 4883 (modify-phases %standard-phases
f0c68100
EF
4884 (add-after 'unpack 'skip-gtk-update-icon-cache
4885 ;; Don't create 'icon-theme.cache'.
4886 (lambda _
4887 (substitute* "meson_post_install.py"
4888 (("gtk-update-icon-cache") "true"))
4889 #t))
ab466d79
RW
4890 (add-after 'wrap 'wrap-more
4891 (lambda* (#:key inputs outputs #:allow-other-keys)
4892 (let* ((out (assoc-ref outputs "out"))
4893 ;; These libraries must be on LD_LIBRARY_PATH.
4894 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
4895 "atk" "gtk+" "gsettings-desktop-schemas"
4896 "gobject-introspection"))
4897 (path (string-join
4898 (map (lambda (lib)
4899 (string-append (assoc-ref inputs lib) "/lib"))
4900 libs)
4901 ":")))
4902 (wrap-program (string-append out "/bin/eolie")
4903 `("LD_LIBRARY_PATH" ":" prefix (,path))
4904 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
4905 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
4906 #t)))))
4907 (native-inputs
f85ca6ed 4908 `(("intltool" ,intltool)
ab466d79 4909 ("itstool" ,itstool)
d95f1041 4910 ("pkg-config" ,pkg-config)
d95f1041 4911 ("python" ,python)
f0c68100 4912 ("glib:bin" ,glib "bin")))
ab466d79
RW
4913 (inputs
4914 `(("gobject-introspection" ,gobject-introspection)
4915 ("glib-networking" ,glib-networking)
4916 ("cairo" ,cairo)
4917 ("gtk+" ,gtk+)
4918 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
4919 ("python" ,python-wrapper)
d72f76df 4920 ("python-dateutil" ,python-dateutil)
00014781 4921 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
4922 ("python-pygobject" ,python-pygobject)
4923 ("python-pycairo" ,python-pycairo)
00014781 4924 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
4925 ("libsecret" ,libsecret)
4926 ("gtkspell3" ,gtkspell3)
4927 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 4928 ("webkitgtk" ,webkitgtk)))
166b2c97 4929 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
4930 (synopsis "Web browser for GNOME")
4931 (description
4932 "Eolie is a new web browser for GNOME. It features Firefox sync support,
4933a secret password store, an adblocker, and a modern UI.")
4934 (license license:gpl3+)))
4935
7549f984
SB
4936(define-public epiphany
4937 (package
4938 (name "epiphany")
60680365 4939 (version "3.32.5")
7549f984
SB
4940 (source (origin
4941 (method url-fetch)
dd3266ec 4942 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 4943 (version-major+minor version) "/"
dd3266ec 4944 "epiphany-" version ".tar.xz"))
7549f984
SB
4945 (sha256
4946 (base32
60680365 4947 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
fc5c5b92
R
4948
4949 (build-system meson-build-system)
7549f984
SB
4950 (arguments
4951 ;; FIXME: tests run under Xvfb, but fail with:
4952 ;; /src/bookmarks/ephy-bookmarks/create:
4953 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
4954 ;; subsystem
4955 ;; FAIL
6f48d9db 4956 '(#:tests? #f
e19f9c24 4957 #:glib-or-gtk? #t
bb7ff88f
EF
4958 #:phases
4959 (modify-phases %standard-phases
4960 (add-after 'unpack 'skip-gtk-update-icon-cache
4961 ;; Don't create 'icon-theme.cache'.
4962 (lambda _
4963 (substitute* "post_install.py"
4964 (("gtk-update-icon-cache") "true"))
4965 #t)))
e19f9c24
LF
4966 #:configure-flags
4967 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
4968 (list (string-append "-Dc_link_args=-Wl,-rpath="
4969 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
4970 (propagated-inputs
4971 `(("dconf" ,dconf)))
7549f984 4972 (native-inputs
fc5c5b92
R
4973 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
4974 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 4975 ("intltool" ,intltool)
7549f984 4976 ("itstool" ,itstool)
bcb354ad
SB
4977 ("pkg-config" ,pkg-config)
4978 ("xmllint" ,libxml2)))
7549f984
SB
4979 (inputs
4980 `(("avahi" ,avahi)
4981 ("gcr" ,gcr)
fc5c5b92 4982 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
4983 ("glib-networking" ,glib-networking)
4984 ("gnome-desktop" ,gnome-desktop)
4985 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 4986 ("json-glib" ,json-glib)
7549f984 4987 ("iso-codes" ,iso-codes)
8748e29c 4988 ("libdazzle" ,libdazzle)
7549f984
SB
4989 ("libnotify" ,libnotify)
4990 ("libsecret" ,libsecret)
7549f984 4991 ("libxslt" ,libxslt)
fc5c5b92 4992 ("nettle" ,nettle) ; for hogweed
7549f984 4993 ("sqlite" ,sqlite)
f85ca6ed 4994 ("webkitgtk" ,webkitgtk)))
7549f984
SB
4995 (home-page "https://wiki.gnome.org/Apps/Web")
4996 (synopsis "GNOME web browser")
4997 (description
4998 "Epiphany is a GNOME web browser targeted at non-technical users. Its
4999principles are simplicity and standards compliance.")
5000 (license license:gpl2+)))
a3856b2c
SB
5001
5002(define-public d-feet
5003 (package
5004 (name "d-feet")
458e9221 5005 (version "0.3.14")
a3856b2c
SB
5006 (source (origin
5007 (method url-fetch)
5008 (uri (string-append "mirror://gnome/sources/" name "/"
5009 (version-major+minor version) "/"
5010 name "-" version ".tar.xz"))
5011 (sha256
5012 (base32
458e9221 5013 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
5014 (build-system glib-or-gtk-build-system)
5015 (arguments
5016 '(#:out-of-source? #f ; tests need to run in the source directory.
5017 #:phases
5018 (modify-phases %standard-phases
5019 (add-before
5020 'check 'pre-check
86aff791 5021 (lambda _
a3856b2c
SB
5022 ;; The test suite requires a running X server.
5023 (system "Xvfb :1 &")
5024 (setenv "DISPLAY" ":1")
5025 ;; Don't fail on missing '/etc/machine-id'.
5026 (setenv "DBUS_FATAL_WARNINGS" "0")
5027 ;; tests.py and window.py don't meet E402:
5028 ;; E402 module level import not at top of file
5029 (substitute* "src/tests/Makefile"
86aff791
MW
5030 (("--ignore=E123") "--ignore=E123,E402"))
5031 #t))
a3856b2c
SB
5032 (add-after
5033 'install 'wrap-program
5034 (lambda* (#:key outputs #:allow-other-keys)
5035 (let ((prog (string-append (assoc-ref outputs "out")
5036 "/bin/d-feet")))
5037 (wrap-program prog
5038 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
5039 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5040 #t))))))
a3856b2c
SB
5041 (native-inputs
5042 `(("intltool" ,intltool)
5043 ("itstool" ,itstool)
5044 ("pkg-config" ,pkg-config)
5045 ("python-pep8" ,python-pep8)
5046 ("xmllint" ,libxml2)
ff337525 5047 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
5048 (inputs
5049 `(("gobject-introspection" ,gobject-introspection)
5050 ("gtk+" ,gtk+)
5051 ("python" ,python-wrapper)
458e9221 5052 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
5053 ("python-pygobject" ,python-pygobject)))
5054 (home-page "https://wiki.gnome.org/Apps/DFeet")
5055 (synopsis "D-Bus debugger")
5056 (description
5057 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5058of running programs and invoke methods on those interfaces.")
5059 (license license:gpl2+)))
c3b97bd9
SB
5060
5061(define-public yelp-xsl
5062 (package
5063 (name "yelp-xsl")
b3640e79 5064 (version "3.32.1")
c3b97bd9
SB
5065 (source (origin
5066 (method url-fetch)
5067 (uri (string-append "mirror://gnome/sources/" name "/"
5068 (version-major+minor version) "/"
5069 name "-" version ".tar.xz"))
5070 (sha256
5071 (base32
b3640e79 5072 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
c3b97bd9
SB
5073 (build-system gnu-build-system)
5074 (native-inputs
5075 `(("intltool" ,intltool)
5076 ("itstool" ,itstool)
5077 ("xmllint" ,libxml2)))
5078 (home-page "https://wiki.gnome.org/Apps/Yelp")
5079 (synopsis "XSL stylesheets for Yelp")
5080 (description
5081 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5082to format Docbook and Mallard documents.")
5083 (license license:gpl2+)))
de3d612a
SB
5084
5085(define-public yelp
5086 (package
5087 (name "yelp")
1f1b6d60 5088 (version "3.32.2")
de3d612a
SB
5089 (source (origin
5090 (method url-fetch)
5091 (uri (string-append "mirror://gnome/sources/" name "/"
5092 (version-major+minor version) "/"
5093 name "-" version ".tar.xz"))
5094 (sha256
5095 (base32
1f1b6d60 5096 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
5097 (build-system glib-or-gtk-build-system)
5098 (native-inputs
5099 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5100 ("intltool" ,intltool)
5101 ("itstool" ,itstool)
5102 ("pkg-config" ,pkg-config)))
5103 (propagated-inputs
5104 `(("dconf" ,dconf)))
5105 (inputs
ad1b7d8b
SB
5106 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5107 ("libxslt" ,libxslt)
de3d612a 5108 ("sqlite" ,sqlite)
4c28ca1d
SB
5109 ("webkitgtk" ,webkitgtk)
5110 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
5111 (home-page "https://wiki.gnome.org/Apps/Yelp")
5112 (synopsis "GNOME help browser")
5113 (description
5114 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5115man, info, and HTML documents. It can locate documents according to the
5116freedesktop.org help system specification.")
5117 (license license:gpl2+)))
122d0d10
SB
5118
5119(define-public yelp-tools
5120 (package
5121 (name "yelp-tools")
2089bca5 5122 (version "3.28.0")
122d0d10
SB
5123 (source (origin
5124 (method url-fetch)
5125 (uri (string-append "mirror://gnome/sources/" name "/"
5126 (version-major+minor version) "/"
5127 name "-" version ".tar.xz"))
5128 (sha256
5129 (base32
2089bca5 5130 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
122d0d10
SB
5131 (build-system gnu-build-system)
5132 (native-inputs
5133 `(("pkg-config" ,pkg-config)))
5134 (propagated-inputs
5135 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5136 `(("itstool" ,itstool)
5137 ("xmllint" ,libxml2)
5138 ("xsltproc" ,libxslt)))
5139 (inputs
5140 `(("yelp-xsl" ,yelp-xsl)))
5141 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5142 (synopsis "Yelp documentation tools")
5143 (description
5144 "Yelp-tools is a collection of scripts and build utilities to help create,
5145manage, and publish documentation for Yelp and the web. Most of the heavy
5146lifting is done by packages like yelp-xsl and itstool. This package just
5147wraps things up in a developer-friendly way.")
5148 (license license:gpl2+)))
af8f9f23 5149
4ed041d9
MB
5150(define-public yelp-tools/fixed
5151 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5152 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5153 ;; the next rebuild cycle.
5154 (hidden-package
5155 (package/inherit
5156 yelp-tools
5157 (propagated-inputs
5158 `(("itstool" ,itstool/fixed)
5159 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5160
af8f9f23
RW
5161(define-public libgee
5162 (package
5163 (name "libgee")
4c2c5ae6 5164 (version "0.20.2")
af8f9f23
RW
5165 (source (origin
5166 (method url-fetch)
84a1b007 5167 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 5168 (version-major+minor version) "/"
84a1b007 5169 "libgee-" version ".tar.xz"))
af8f9f23
RW
5170 (sha256
5171 (base32
4c2c5ae6 5172 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
af8f9f23
RW
5173 (build-system gnu-build-system)
5174 (arguments
5175 `(#:phases
5176 (modify-phases %standard-phases
5177 (add-after 'unpack 'fix-introspection-install-dir
5178 (lambda* (#:key outputs #:allow-other-keys)
5179 (let ((out (assoc-ref outputs "out")))
5180 (substitute* "gee/Makefile.in"
5181 (("@INTROSPECTION_GIRDIR@")
5182 (string-append out "/share/gir-1.0/"))
5183 (("@INTROSPECTION_TYPELIBDIR@")
5184 (string-append out "/lib/girepository-1.0/")))))))))
5185 (native-inputs
5186 `(("glib" ,glib "bin")
5187 ("pkg-config" ,pkg-config)))
5188 (inputs
5189 `(("glib" ,glib)
5190 ("gobject-introspection" ,gobject-introspection)))
5191 (home-page "https://wiki.gnome.org/Projects/Libgee")
5192 (synopsis "GObject collection library")
5193 (description
5194 "Libgee is a utility library providing GObject-based interfaces and
5195classes for commonly used data structures.")
5196 (license license:lgpl2.1+)))
b0f9c4b8
RW
5197
5198(define-public gexiv2
5199 (package
5200 (name "gexiv2")
b1a8b408 5201 (version "0.12.0")
b0f9c4b8
RW
5202 (source (origin
5203 (method url-fetch)
5204 (uri (string-append "mirror://gnome/sources/" name "/"
5205 (version-major+minor version) "/"
5206 name "-" version ".tar.xz"))
5207 (sha256
5208 (base32
b1a8b408 5209 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
51c482e4 5210 (build-system meson-build-system)
b0f9c4b8 5211 (native-inputs
b1a8b408
KK
5212 `(("gcr" ,gcr)
5213 ("glib" ,glib "bin")
5214 ("pkg-config" ,pkg-config)
5215 ("vala" ,vala)))
b0f9c4b8
RW
5216 (propagated-inputs
5217 ;; Listed in "Requires" section of gexiv2.pc
5218 `(("exiv2" ,exiv2)))
5219 (inputs
5220 `(("glib" ,glib)
5221 ("gobject-introspection" ,gobject-introspection)))
5222 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5223 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5224 (description
5225 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5226allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5227metadata in photo and video files of various formats.")
5228 (license license:gpl2+)))
fed5a689
RW
5229
5230(define-public shotwell
5231 (package
5232 (name "shotwell")
a1c6fb52 5233 (version "0.30.7")
fed5a689
RW
5234 (source (origin
5235 (method url-fetch)
5497d682 5236 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 5237 (version-major+minor version) "/"
5497d682 5238 "shotwell-" version ".tar.xz"))
fed5a689
RW
5239 (sha256
5240 (base32
a1c6fb52 5241 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
3b79afa6
KK
5242 (build-system meson-build-system)
5243 (arguments
5a0beca3
EF
5244 '(#:glib-or-gtk? #t
5245 #:phases
5246 (modify-phases %standard-phases
5247 (add-after 'unpack 'skip-gtk-update-icon-cache
5248 (lambda _
5249 (substitute* "build-aux/meson/postinstall.py"
5250 (("gtk-update-icon-cache") (which "true"))
5251 (("update-desktop-database") (which "true")))
5252 #t)))))
735b8db6
TGR
5253 (propagated-inputs
5254 `(("dconf" ,dconf)))
fed5a689 5255 (native-inputs
5a0beca3
EF
5256 `(("gettext" ,gettext-minimal)
5257 ("glib:bin" ,glib "bin")
735b8db6 5258 ("itstool" ,itstool)
3b79afa6 5259 ("pkg-config" ,pkg-config)
735b8db6 5260 ("vala" ,vala)))
fed5a689 5261 (inputs
5a0beca3
EF
5262 `(("gcr" ,gcr)
5263 ("gexiv2" ,gexiv2)
fed5a689 5264 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
5265 ("gstreamer" ,gstreamer)
5266 ("json-glib" ,json-glib)
dfb0323d 5267 ("libgdata" ,libgdata)
fed5a689 5268 ("libgee" ,libgee)
5a0beca3
EF
5269 ("libgphoto2" ,libgphoto2)
5270 ("libgudev" ,libgudev)
fed5a689 5271 ("libraw" ,libraw)
fed5a689
RW
5272 ("libsoup" ,libsoup)
5273 ("libxml2" ,libxml2)
5a0beca3
EF
5274 ("sqlite" ,sqlite)
5275 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
5276 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5277 (synopsis "Photo manager for GNOME 3")
5278 (description
5279 "Shotwell is a digital photo manager designed for the GNOME desktop
5280environment. It allows you to import photos from disk or camera, organize
5281them by keywords and events, view them in full-window or fullscreen mode, and
5282share them with others via social networking and more.")
5283 (license license:lgpl2.1+)))
293ff8b2
DT
5284
5285(define-public file-roller
5286 (package
5287 (name "file-roller")
2b019199 5288 (version "3.32.2")
293ff8b2
DT
5289 (source (origin
5290 (method url-fetch)
f89a27c6 5291 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 5292 (version-major+minor version) "/"
f89a27c6 5293 "file-roller-" version ".tar.xz"))
293ff8b2
DT
5294 (sha256
5295 (base32
2b019199 5296 "0w8s6hakgsvb2nqwbv0lr8ki4cbf1pz5z3qwkb0b2k7ppbh7j2n6"))))
0a500745 5297 (build-system meson-build-system)
293ff8b2 5298 (native-inputs
0a500745
RW
5299 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5300 ("intltool" ,intltool)
4c96e5d1 5301 ("itstool" ,itstool)
0a500745
RW
5302 ("pkg-config" ,pkg-config)
5303 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5304 ("glib:bin" ,glib "bin")))
293ff8b2
DT
5305 ;; TODO: Add libnautilus.
5306 (inputs
5307 `(("gtk+" ,gtk+)
5308 ("gdk-pixbuf" ,gdk-pixbuf)
5309 ("json-glib" ,json-glib)
5310 ("libarchive" ,libarchive)
5311 ("libnotify" ,libnotify)
4c96e5d1 5312 ("nettle" ,nettle)
293ff8b2
DT
5313 ("libxml2" ,libxml2)))
5314 (synopsis "Graphical archive manager for GNOME")
5315 (description "File Roller is an archive manager for the GNOME desktop
5316environment that allows users to view, unpack, and create compressed archives
5317such as gzip tarballs.")
5318 (home-page "http://fileroller.sourceforge.net/")
5319 (license license:gpl2+)))
7ce49365
SB
5320
5321(define-public gnome-session
5322 (package
5323 (name "gnome-session")
1fc2ec79 5324 (version "3.32.0")
7ce49365
SB
5325 (source (origin
5326 (method url-fetch)
5327 (uri (string-append "mirror://gnome/sources/" name "/"
5328 (version-major+minor version) "/"
5329 name "-" version ".tar.xz"))
5330 (sha256
5331 (base32
1fc2ec79 5332 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
2914af3c 5333 (arguments
df278071
RW
5334 '(#:glib-or-gtk? #t
5335 #:phases
2914af3c
AW
5336 (modify-phases %standard-phases
5337 (add-before 'configure 'pre-configure
5338 (lambda* (#:key outputs #:allow-other-keys)
5339 ;; Use elogind instead of systemd.
df278071
RW
5340 (substitute* "meson.build"
5341 (("libsystemd-login") "libelogind")
5342 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
5343 (substitute* "gnome-session/gsm-systemd.c"
5344 (("#include <systemd/sd-login.h>")
5345 "#include <elogind/sd-login.h>"))
df278071 5346 ;; Remove uses of the systemd daemon.
803ab416
SB
5347 (substitute* "gnome-session/gsm-autostart-app.c"
5348 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
5349 #t))
5350 (add-after 'install 'wrap-gnome-session
5351 (lambda* (#:key inputs outputs #:allow-other-keys)
5352 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5353 (let ((glib (assoc-ref inputs "glib:bin"))
5354 (out (assoc-ref outputs "out")))
5355 (wrap-program (string-append out "/bin/gnome-session")
5356 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5357 #t))))
6cbc8d57 5358
2914af3c 5359 #:configure-flags
df278071
RW
5360 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5361 "-Dman=false" ; FIXME: disabled because of docbook validation error
5362 "-Dsystemd_journal=false")))
5363 (build-system meson-build-system)
7ce49365
SB
5364 (native-inputs
5365 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5366 ("pkg-config" ,pkg-config)
5367 ("intltool" ,intltool)
df278071
RW
5368 ("xsltproc" ,libxslt)
5369 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5370 ("docbook-xsl" ,docbook-xsl)
5371 ("docbook-xml" ,docbook-xml)
5372 ("xmlto" ,xmlto)))
7ce49365 5373 (inputs
2914af3c
AW
5374 `(("elogind" ,elogind)
5375 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 5376 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
5377 ("gtk+" ,gtk+)
5378 ("json-glib" ,json-glib)
5379 ("libsm" ,libsm)
5380 ("libxcomposite" ,libxcomposite)
5381 ("libxtst" ,libxtst)
5382 ("mesa" ,mesa)
5383 ("upower" ,upower)
5384 ("xtrans" ,xtrans)))
5385 (synopsis "Session manager for GNOME")
5386 (description
5387 "This package contains the GNOME session manager, as well as a
5388configuration program to choose applications starting on login.")
5389 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5390 (license license:gpl2+)))
f47ba77e
SB
5391
5392(define-public gjs
5393 (package
5394 (name "gjs")
d054fbf5 5395 (version "1.56.2")
f47ba77e
SB
5396 (source (origin
5397 (method url-fetch)
5398 (uri (string-append "mirror://gnome/sources/" name "/"
5399 (version-major+minor version) "/"
5400 name "-" version ".tar.xz"))
5401 (sha256
5402 (base32
d054fbf5 5403 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
f47ba77e
SB
5404 (build-system gnu-build-system)
5405 (arguments
5406 '(#:phases
5407 (modify-phases %standard-phases
5408 (add-before
5409 'check 'pre-check
5410 (lambda _
fc119619
MW
5411 ;; The test suite requires a running X server.
5412 (system "Xvfb :1 &")
5413 (setenv "DISPLAY" ":1")
5414
f47ba77e
SB
5415 ;; For the missing /etc/machine-id.
5416 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 5417
144f94d0
KK
5418 ;; Our mozjs-38 package does not compile the required Intl API
5419 ;; support for these failing tests.
5420 (substitute* "installed-tests/js/testLocale.js"
5421 ((".*toBeDefined.*") "")
5422 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
5423 (substitute* "installed-tests/scripts/testCommandLine.sh"
5424 (("Valentín") "")
5425 (("☭") ""))
f47ba77e
SB
5426 #t)))))
5427 (native-inputs
8a831c6f 5428 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
5429 ("pkg-config" ,pkg-config)
5430 ("xmllint" ,libxml2)
5431 ;; For testing
5432 ("dbus-launch" ,dbus)
5433 ("uuidgen" ,util-linux)
ebebee94 5434 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
5435 (propagated-inputs
5436 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
5437 `(("cairo" ,cairo)
5438 ("gobject-introspection" ,gobject-introspection)
d054fbf5 5439 ("mozjs" ,mozjs-60)))
f47ba77e
SB
5440 (inputs
5441 `(("gtk+" ,gtk+)
5442 ("readline" ,readline)))
5443 (synopsis "Javascript bindings for GNOME")
f032d0be 5444 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
5445 (description
5446 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5447javascript engine and the GObject introspection framework.")
5448 (license license:gpl2+)))
329d731b
DH
5449
5450(define-public gedit
5451 (package
5452 (name "gedit")
480c9226 5453 (version "3.32.2")
329d731b
DH
5454 (source (origin
5455 (method url-fetch)
5456 (uri (string-append "mirror://gnome/sources/" name "/"
5457 (version-major+minor version) "/"
5458 name "-" version ".tar.xz"))
5459 (sha256
5460 (base32
480c9226
KK
5461 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5462 (build-system meson-build-system)
329d731b 5463 (arguments
480c9226
KK
5464 `(#:glib-or-gtk? #t
5465 #:configure-flags
5466 ;; Otherwise, the RUNPATH will lack the final path component.
5467 (list (string-append "-Dc_link_args=-Wl,-rpath="
5468 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
5469
5470 ;; XXX: Generated .h files are sometimes used before being built.
5471 #:parallel-build? #f
5472
480c9226 5473 #:phases
329d731b 5474 (modify-phases %standard-phases
480c9226
KK
5475 (add-after 'unpack 'skip-gtk-update-icon-cache
5476 ;; Don't create 'icon-theme.cache'.
5477 (lambda _
5478 (substitute* "build-aux/meson/post_install.py"
5479 (("gtk-update-icon-cache") (which "true")))
5480 #t))
5481 (add-after 'unpack 'patch-libgd-fetch
5482 (lambda* (#:key inputs #:allow-other-keys)
5483 (let ((libgd (assoc-ref inputs "libgd")))
5484 ;; Calling git is unnecessary because libgd is fetched as a
5485 ;; native input to this package.
5486 (substitute* "meson.build"
5487 ((".*git.*") ""))
5488 (copy-recursively libgd "subprojects/libgd")
5489 #t)))
5490 (add-after 'install 'wrap-gedit
5491 (lambda* (#:key inputs outputs #:allow-other-keys)
5492 (let ((out (assoc-ref outputs "out"))
5493 (gtksourceview (assoc-ref inputs "gtksourceview"))
5494 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5495 (python-path (getenv "PYTHONPATH")))
5496 (wrap-program (string-append out "/bin/gedit")
5497 ;; For plugins.
5498 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5499 `("PYTHONPATH" ":" prefix (,python-path))
5500 ;; For language-specs.
5501 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5502 "/share")))))
5503 #t)))))
329d731b
DH
5504 (propagated-inputs
5505 `(("dconf" ,dconf)))
5506 (native-inputs
480c9226
KK
5507 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5508 ("intltool" ,intltool)
b3546174 5509 ("itstool" ,itstool)
480c9226 5510 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 5511 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
5512 ("libgd"
5513 ,(origin
5514 (method git-fetch)
5515 (uri (git-reference
5516 (url "https://gitlab.gnome.org/GNOME/libgd")
5517 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5518 (file-name (git-file-name "libgd" version))
5519 (sha256
5520 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
5521 ("pkg-config" ,pkg-config)))
5522 (inputs
5523 `(("glib" ,glib)
0d2df50c 5524 ("gspell" ,gspell)
329d731b 5525 ("gtk+" ,gtk+)
480c9226 5526 ("gtksourceview" ,gtksourceview)
329d731b
DH
5527 ("libpeas" ,libpeas)
5528 ("libxml2" ,libxml2)
329d731b
DH
5529 ("iso-codes" ,iso-codes)
5530 ("python-pygobject" ,python-pygobject)
5531 ("python" ,python)
5532 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5533 ("libx11" ,libx11)
5534 ("vala" ,vala)
5535 ("adwaita-icon-theme" ,adwaita-icon-theme)
5536 ("libsoup" ,libsoup)
5537 ("gnome-desktop" ,gnome-desktop)))
5538 (home-page "https://wiki.gnome.org/Apps/Gedit")
5539 (synopsis "GNOME text editor")
5540 (description "While aiming at simplicity and ease of use, gedit is a
5541powerful general purpose text editor.")
5542 (license license:gpl2+)))
b7179363
SB
5543
5544(define-public zenity
5545 (package
5546 (name "zenity")
4f581bd0 5547 (version "3.32.0")
b7179363
SB
5548 (source (origin
5549 (method url-fetch)
5958df04 5550 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 5551 (version-major+minor version) "/"
5958df04 5552 "zenity-" version ".tar.xz"))
b7179363
SB
5553 (sha256
5554 (base32
4f581bd0 5555 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
5556 (build-system gnu-build-system)
5557 (native-inputs
b94a6ca0 5558 `(("gettext" ,gettext-minimal)
b7179363
SB
5559 ("itstool" ,itstool)
5560 ("pkg-config" ,pkg-config)))
5561 (inputs
5562 `(("libnotify" ,libnotify)
5563 ("webkitgtk" ,webkitgtk)))
5564 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 5565 (home-page "https://www.gnome.org")
b7179363
SB
5566 (description
5567 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
5568to display dialog boxes from the commandline and shell scripts.")
5569 (license license:lgpl2.0+)))
60c3627c
SB
5570
5571(define-public mutter
5572 (package
5573 (name "mutter")
edf43f68 5574 (version "3.32.2")
60c3627c 5575 (source (origin
86c44e72
KK
5576 (method url-fetch)
5577 (uri (string-append "mirror://gnome/sources/" name "/"
5578 (version-major+minor version) "/"
5579 name "-" version ".tar.xz"))
60c3627c
SB
5580 (sha256
5581 (base32
edf43f68 5582 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
86c44e72
KK
5583 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
5584 ;; versions of cogl and clutter. As a result, many of the inputs,
5585 ;; propagated-inputs, and configure flags used in cogl and clutter are
5586 ;; needed here as well.
edf43f68 5587 (build-system meson-build-system)
60c3627c 5588 (arguments
edf43f68
KK
5589 '(;; XXX: All mutter tests fail with the following error:
5590 ;; Settings schema 'org.gnome.mutter' is not installed
5591 #:tests? #f
5592 #:glib-or-gtk? #t
5593 #:configure-flags
5594 ;; Otherwise, the RUNPATH will lack the final path component.
5595 (list (string-append "-Dc_link_args=-Wl,-rpath="
5596 (assoc-ref %outputs "out") "/lib:"
5597 (assoc-ref %outputs "out") "/lib/mutter-4")
a88d5a0c
MW
5598
5599 ;; The following flags are needed for the bundled clutter
edf43f68 5600 (string-append "-Dxwayland_path="
d633f2f6
RH
5601 (assoc-ref %build-inputs "xorg-server-xwayland")
5602 "/bin/Xwayland")
5603
a88d5a0c 5604 ;; the remaining flags are needed for the bundled cogl
edf43f68 5605 (string-append "-Dopengl_libname="
a88d5a0c 5606 (assoc-ref %build-inputs "mesa")
f23052a6
DC
5607 "/lib/libGL.so"))
5608 #:phases
5609 (modify-phases %standard-phases
edf43f68
KK
5610 (add-after 'unpack 'disable-werror
5611 (lambda _
5612 ;; XXX: build fails with [-Werror]:
5613 ;; backends/meta-cursor-renderer.c:112:5: error:
5614 ;; implicit declaration of function ?roundf?
5615 (substitute* "meson.build"
5616 (("'-Werror=.*',") ""))
5617 #t))
86c44e72
KK
5618 ;; Replace references to systemd libraries to elogind references.
5619 (add-before 'configure 'use-elogind
5620 (lambda _
edf43f68 5621 (substitute* (list "meson.build"
86c44e72
KK
5622 "src/backends/native/meta-launcher.c"
5623 "src/core/main.c")
5624 (("systemd") "elogind"))
5625 #t)))))
60c3627c
SB
5626 (native-inputs
5627 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5628 ("gobject-introspection" ,gobject-introspection)
5629 ("intltool" ,intltool)
f23052a6 5630 ("pkg-config" ,pkg-config)
edf43f68 5631 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
5632 ;; For git build
5633 ("autoconf" ,autoconf)
5634 ("automake" ,automake)
5635 ("libtool" ,libtool)))
60c3627c 5636 (propagated-inputs
a88d5a0c
MW
5637 `(;; libmutter.pc refers to these:
5638 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5639 ("gtk+" ,gtk+)
5640 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
5641 ("atk" ,atk)
5642 ("cairo" ,cairo)
5643 ("gdk-pixbuf" ,gdk-pixbuf)
5644 ("glib" ,glib)
a88d5a0c
MW
5645 ("json-glib" ,json-glib)
5646 ("libinput" ,libinput)
5647 ("libx11" ,libx11)
5648 ("libxcomposite" ,libxcomposite)
5649 ("libxdamage" ,libxdamage)
5650 ("libxext" ,libxext)
5651 ("libxfixes" ,libxfixes)
5652 ("libxkbcommon" ,libxkbcommon)
5653 ("libxrandr" ,libxrandr)
5654 ("mesa" ,mesa)
5655 ("pango" ,pango)
5656 ("udev" ,eudev)
a88d5a0c 5657 ("xinput" ,xinput)))
60c3627c 5658 (inputs
86c44e72
KK
5659 `(("elogind" ,elogind)
5660 ("gnome-desktop" ,gnome-desktop)
edf43f68 5661 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 5662 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 5663 ("libgudev" ,libgudev)
60c3627c
SB
5664 ("libice" ,libice)
5665 ("libsm" ,libsm)
edf43f68 5666 ("libwacom" ,libwacom)
60c3627c 5667 ("libxkbfile" ,libxkbfile)
a88d5a0c 5668 ("libxrandr" ,libxrandr)
86c44e72 5669 ("libxtst" ,libxtst)
edf43f68 5670 ("pipewire" ,pipewire)
60c3627c
SB
5671 ("startup-notification" ,startup-notification)
5672 ("upower-glib" ,upower)
5673 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 5674 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
5675 ("zenity" ,zenity)))
5676 (synopsis "Window and compositing manager")
f032d0be 5677 (home-page "https://www.gnome.org")
60c3627c
SB
5678 (description
5679 "Mutter is a window and compositing manager that displays and manages your
5680desktop via OpenGL. Mutter combines a sophisticated display engine using the
5681Clutter toolkit with solid window-management logic inherited from the Metacity
5682window manager.")
86c44e72 5683 (license license:gpl2+)))
685cee87
SB
5684
5685(define-public gnome-online-accounts
5686 (package
5687 (name "gnome-online-accounts")
aa200347 5688 (version "3.32.1")
685cee87
SB
5689 (source (origin
5690 (method url-fetch)
5691 (uri (string-append "mirror://gnome/sources/" name "/"
5692 (version-major+minor version) "/"
5693 name "-" version ".tar.xz"))
5694 (sha256
5695 (base32
aa200347 5696 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
14c297fd 5697 (outputs '("out" "lib"))
685cee87 5698 (build-system glib-or-gtk-build-system)
14c297fd
TS
5699 (arguments
5700 `(#:configure-flags
5701 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
5702 #:phases
5703 (modify-phases %standard-phases
5704 (add-before 'configure 'patch-libgoa-output
5705 (lambda* (#:key outputs #:allow-other-keys)
5706 (let ((lib (assoc-ref outputs "lib")))
5707 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
5708 (("@prefix@") lib)
5709 (("@exec_prefix@") lib)
5710 (("@libdir@") (string-append lib "/lib"))
5711 (("@includedir@") (string-append lib "/include"))
5712 (("@datadir@") (string-append lib "/share")))
7555d539
MB
5713 ;; Make sure gobject-introspection knows about the output
5714 ;; too (see <https://bugs.gnu.org/36535>).
5715 (setenv "outputs" "out lib")
14c297fd 5716 #t))))))
685cee87
SB
5717 (native-inputs
5718 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5719 ("gobject-introspection" ,gobject-introspection)
5720 ("intltool" ,intltool)
5721 ("pkg-config" ,pkg-config)
ebb2873d 5722 ("vala" ,vala)
685cee87
SB
5723 ("xsltproc" ,libxslt)))
5724 (propagated-inputs
5725 `(("glib" ,glib) ; required by goa-1.0.pc
5726 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
5727 (inputs
5728 `(("docbook-xsl" ,docbook-xsl)
5729 ("json-glib" ,json-glib)
5730 ("libsecret" ,libsecret)
5731 ("rest" ,rest)
685cee87
SB
5732 ("webkitgtk" ,webkitgtk)))
5733 (synopsis "Single sign-on framework for GNOME")
5734 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
5735 (description
5736 "GNOME Online Accounts provides interfaces so that applications and
5737libraries in GNOME can access the user's online accounts. It has providers for
5738Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
5739Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
5740 (license license:lgpl2.0+)))
df217748
SB
5741
5742(define-public evolution-data-server
5743 (package
5744 (name "evolution-data-server")
2196a8d4 5745 (version "3.32.4")
df217748
SB
5746 (source (origin
5747 (method url-fetch)
5748 (uri (string-append "mirror://gnome/sources/" name "/"
5749 (version-major+minor version) "/"
5750 name "-" version ".tar.xz"))
e1f174ae 5751 (patches (search-patches "evolution-data-server-locales.patch"))
df217748
SB
5752 (sha256
5753 (base32
2196a8d4 5754 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
743aebd7 5755 (build-system cmake-build-system)
df217748 5756 (arguments
b468eedc
RW
5757 '(#:configure-flags
5758 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
5759 (runpaths (map (lambda (s)
5760 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
5761 '("addressbook-backends" "calendar-backends"
5762 "camel-providers" "credential-modules"
5763 "registry-modules"))))
5764 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
5765 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
5766 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
5767 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
5768 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
5769 (string-append lib "/evolution-data-server;")
5770 (string-join runpaths ";"))
5771 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
5772 #:phases
5773 (modify-phases %standard-phases
b468eedc
RW
5774 (add-after 'unpack 'disable-failing-tests
5775 (lambda _
5776 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
5777 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
5778 (delete-file-recursively "tests/book-migration")
5779 (substitute* "tests/CMakeLists.txt"
5780 (("add_subdirectory\\(book-migration\\)") ""))
2196a8d4
KK
5781 ;; tests/libebook/client/test-book-client-view-operations:8077):
5782 ;; e-data-server-WARNING **:
5783 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
5784 ;; runtime check failed:
5785 ;; (!g_main_context_pending (closure->main_context))
5786 (substitute* "tests/libebook/client/CMakeLists.txt"
5787 (("test-book-client-view-operations") ""))
b468eedc 5788 #t))
743aebd7 5789 (add-after 'unpack 'patch-paths
df217748 5790 (lambda _
b468eedc
RW
5791 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
5792 "tests/libedata-book/data-test-utils.c"
5793 "tests/libedata-book/test-book-cache-utils.c"
5794 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 5795 (("/bin/rm") (which "rm")))
ac033c7b
MB
5796 #t))
5797 (add-before 'configure 'dont-override-rpath
5798 (lambda _
5799 (substitute* "CMakeLists.txt"
5800 ;; CMakeLists.txt hard-codes runpath to just the libdir.
5801 ;; Remove it so the configure flag is respected.
5802 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 5803 #t)))))
df217748
SB
5804 (native-inputs
5805 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5806 ("gobject-introspection" ,gobject-introspection)
5807 ("gperf" ,gperf)
5808 ("intltool" ,intltool)
5809 ("pkg-config" ,pkg-config)
a73c1cf8 5810 ("vala" ,vala)
743aebd7 5811 ("python" ,python-wrapper)))
df217748
SB
5812 (propagated-inputs
5813 ;; These are all in the Requires field of .pc files.
5814 `(("gtk+" ,gtk+)
5815 ("libical" ,libical)
5816 ("libsecret" ,libsecret)
5817 ("libsoup" ,libsoup)
5818 ("nss" ,nss)
5819 ("sqlite" ,sqlite)))
5820 (inputs
5821 `(("bdb" ,bdb)
5822 ("gcr" ,gcr)
14c297fd 5823 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 5824 ("json-glib" ,json-glib)
b468eedc 5825 ("libcanberra" ,libcanberra)
743aebd7
MB
5826 ("libgweather" ,libgweather)
5827 ("mit-krb5" ,mit-krb5)
891199c6
MW
5828 ("openldap" ,openldap)
5829 ("webkitgtk" ,webkitgtk)))
df217748
SB
5830 (synopsis "Store address books and calendars")
5831 (home-page "https://wiki.gnome.org/Apps/Evolution")
5832 (description
5833 "This package provides a unified backend for programs that work with
5834contacts, tasks, and calendar information. It was originally developed for
5835Evolution (hence the name), but is now used by other packages as well.")
5836 (license license:lgpl2.0)))
bd7dfafa
SB
5837
5838(define-public caribou
5839 (package
5840 (name "caribou")
fe964bb5 5841 (version "0.4.21")
bd7dfafa
SB
5842 (source (origin
5843 (method url-fetch)
5844 (uri (string-append "mirror://gnome/sources/" name "/"
5845 (version-major+minor version) "/"
5846 name "-" version ".tar.xz"))
5847 (sha256
5848 (base32
fe964bb5 5849 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
5850 (build-system glib-or-gtk-build-system)
5851 (arguments
5852 '(#:phases
5853 (modify-phases %standard-phases
5854 (add-before
5855 'build 'pre-build
5856 (lambda* (#:key outputs #:allow-other-keys)
5857 (let ((out (assoc-ref outputs "out")))
5858 ;; Use absolute shared library path in Caribou-1.0.typelib.
5859 (substitute* "libcaribou/Makefile"
5860 (("--shared-library=libcaribou.so")
5861 (string-append "--shared-library="
5862 out "/lib/libcaribou.so")))
5863 #t)))
5864 (add-after 'install 'wrap-programs
5865 (lambda* (#:key outputs #:allow-other-keys)
5866 (let* ((out (assoc-ref outputs "out"))
5867 (python-path (getenv "PYTHONPATH"))
5868 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5869 (for-each
5870 (lambda (prog)
5871 (wrap-program prog
5872 `("PYTHONPATH" ":" prefix (,python-path))
5873 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5874 (list (string-append out "/bin/caribou-preferences")
5875 (string-append out "/libexec/antler-keyboard"))))
5876 #t)))))
5877 (native-inputs
5878 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5879 ("gobject-introspection" ,gobject-introspection)
5880 ("intltool" ,intltool)
5881 ("pkg-config" ,pkg-config)
5882 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5883 ("vala" ,vala)
5884 ("xsltproc" ,libxslt)))
5885 (propagated-inputs
5886 ;; caribou-1.0.pc refers to all these.
5887 `(("libgee" ,libgee)
5888 ("libxklavier" ,libxklavier)
5889 ("libxtst" ,libxtst)
5890 ("gtk+" ,gtk+)))
5891 (inputs
5892 `(("clutter" ,clutter)
5893 ("dconf" ,dconf)
5894 ("gtk+-2" ,gtk+-2)
5895 ("python-pygobject" ,python2-pygobject)))
5896 (synopsis "Text entry and UI navigation application")
5897 (home-page "https://wiki.gnome.org/Projects/Caribou")
5898 (description
5899 "Caribou is an input assistive technology intended for switch and pointer
5900users.")
5901 (license license:lgpl2.1)))
ba5dd105 5902
ba5dd105
SB
5903(define-public network-manager
5904 (package
5905 (name "network-manager")
6425d87a 5906 (version "1.18.4")
ba5dd105
SB
5907 (source (origin
5908 (method url-fetch)
5909 (uri (string-append "mirror://gnome/sources/NetworkManager/"
5910 (version-major+minor version) "/"
5911 "NetworkManager-" version ".tar.xz"))
7d1861e2 5912 (patches (search-patches "nm-plugin-path.patch"))
ba5dd105
SB
5913 (sha256
5914 (base32
6425d87a 5915 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
02710a9b 5916 (modules '((guix build utils)))
fd070f35 5917 (snippet
02710a9b
RW
5918 '(begin
5919 (substitute* "src/devices/wwan/nm-modem-manager.c"
5920 (("systemd") "elogind"))
5921 #t))))
ba5dd105
SB
5922 (build-system gnu-build-system)
5923 (outputs '("out"
5924 "doc")) ; 8 MiB of gtk-doc HTML
5925 (arguments
5926 '(#:configure-flags
5927 (let ((out (assoc-ref %outputs "out"))
5928 (doc (assoc-ref %outputs "doc"))
5929 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
5930 "/sbin/dhclient")))
02710a9b
RW
5931 (list "--with-libnm-glib" ; needed by network-manager-applet
5932 "--with-systemd-journal=no"
5933 "--with-session-tracking=elogind"
5934 "--with-suspend-resume=elogind"
fd070f35
CM
5935 "--with-consolekit=no"
5936 "--with-crypto=gnutls"
ba5dd105
SB
5937 "--disable-config-plugin-ibft"
5938 "--sysconfdir=/etc"
5939 "--localstatedir=/var"
5940 (string-append "--with-udev-dir="
5941 out "/lib/udev")
5942 (string-append "--with-dbus-sys-dir="
5943 out "/etc/dbus-1/system.d")
5944 (string-append "--with-html-dir="
5945 doc "/share/gtk-doc/html")
5946 (string-append "--with-dhclient=" dhclient)))
5947 #:phases
5948 (modify-phases %standard-phases
02710a9b
RW
5949 ;; This bare "ls" invocation breaks some tests.
5950 (add-after 'unpack 'patch-ls-invocation
5951 (lambda _
5952 (substitute* "build-aux/ltmain.sh"
5953 (("`ls -")
5954 (string-append "`" (which "ls") " -")))
5955 #t))
b4f59d87
AW
5956 (add-before 'configure 'pre-configure
5957 (lambda _
5958 ;; These tests try to test aspects of network-manager's
5959 ;; functionality within restricted containers, but they don't
5960 ;; cope with being already in the Guix build jail as that jail
5961 ;; lacks some features that they would like to proxy over (like
5962 ;; a /sys mount).
d04687dc
HG
5963 (substitute* '("Makefile.in")
5964 (("src/platform/tests/test-address-linux") " ")
5965 (("src/platform/tests/test-cleanup-linux") " ")
5966 (("src/platform/tests/test-link-linux") " ")
5967 (("src/platform/tests/test-route-linux") " ")
02710a9b 5968 (("src/devices/tests/test-acd") "")
d04687dc
HG
5969 (("src/devices/tests/test-arping") " ")
5970 (("src/devices/tests/test-lldp") " ")
5971 (("src/tests/test-route-manager-linux") " "))
b4f59d87 5972 #t))
45f80fce
RW
5973 (add-after 'unpack 'delete-failing-tests
5974 (lambda _
02710a9b 5975 ;; FIXME: These three tests fail for unknown reasons.
45f80fce
RW
5976 ;; ERROR:libnm-core/tests/test-general.c:5842:
5977 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
5978 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
5979 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
5980 ;; ERROR:libnm-core/tests/test-setting.c:907:
5981 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
45f80fce
RW
5982 (substitute* "Makefile.in"
5983 (("libnm-core/tests/test-general") " ")
5984 (("libnm-core/tests/test-keyfile") " ")
02710a9b 5985 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
45f80fce 5986 #t))
ba5dd105
SB
5987 (add-before 'check 'pre-check
5988 (lambda _
5989 ;; For the missing /etc/machine-id.
5990 (setenv "DBUS_FATAL_WARNINGS" "0")
5991 #t))
5992 (replace 'install
5993 (lambda _
45f80fce
RW
5994 (invoke "make"
5995 "sysconfdir=/tmp"
5996 "rundir=/tmp"
5997 "statedir=/tmp"
5998 "nmstatedir=/tmp/nm"
5999 "install")
6000 #t)))))
b93502d6
DC
6001 (propagated-inputs
6002 `(("glib" ,glib)))
ba5dd105
SB
6003 (native-inputs
6004 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6005 ("gobject-introspection" ,gobject-introspection)
d04687dc 6006 ("docbook-xsl" ,docbook-xsl)
ba5dd105 6007 ("intltool" ,intltool)
d04687dc
HG
6008 ("libxslt" ,libxslt)
6009 ("libxml2" ,libxml2)
ba5dd105
SB
6010 ("pkg-config" ,pkg-config)
6011 ;; For testing.
6012 ("python" ,python-wrapper)
6013 ("python-dbus" ,python-dbus)
6014 ("python-pygobject" ,python-pygobject)))
6015 (inputs
02710a9b
RW
6016 `(("coreutils" ,coreutils) ; for ls
6017 ("curl" ,curl)
856ca567
KK
6018 ("cyrus-sasl" ,cyrus-sasl)
6019 ("dbus-glib" ,dbus-glib)
ba5dd105 6020 ("dnsmasq" ,dnsmasq)
856ca567 6021 ("eudev" ,eudev)
ba5dd105
SB
6022 ("gnutls" ,gnutls)
6023 ("iptables" ,iptables)
6024 ("isc-dhcp" ,isc-dhcp)
d04687dc 6025 ("jansson" ,jansson)
ba5dd105
SB
6026 ("libgcrypt" ,libgcrypt)
6027 ("libgudev" ,libgudev)
6028 ("libndp" ,libndp)
6029 ("libnl" ,libnl)
6030 ("libsoup" ,libsoup)
142bdcbc 6031 ("modem-manager" ,modem-manager)
c27e02bf 6032 ("newt" ,newt) ;for the 'nmtui' console interface
ba5dd105
SB
6033 ("polkit" ,polkit)
6034 ("ppp" ,ppp)
6035 ("readline" ,readline)
fd070f35
CM
6036 ("util-linux" ,util-linux)
6037 ("elogind" ,elogind)))
ba5dd105 6038 (synopsis "Network connection manager")
f032d0be 6039 (home-page "https://www.gnome.org/projects/NetworkManager/")
ba5dd105
SB
6040 (description
6041 "NetworkManager is a system network service that manages your network
6042devices and connections, attempting to keep active network connectivity when
6043available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6044devices, and provides VPN integration with a variety of different VPN
6045services.")
29d2f451
LC
6046 (license license:gpl2+)
6047 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 6048
f2b96b3a
LC
6049(define-public network-manager-openvpn
6050 (package
6051 (name "network-manager-openvpn")
be1c4b07 6052 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
7d87eede 6053 (version "1.8.10")
f2b96b3a
LC
6054 (source (origin
6055 (method url-fetch)
6056 (uri (string-append
6057 "mirror://gnome/sources/NetworkManager-openvpn/"
6058 (version-major+minor version)
6059 "/NetworkManager-openvpn-" version ".tar.xz"))
6060 (sha256
6061 (base32
7d87eede 6062 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
f2b96b3a
LC
6063 (build-system gnu-build-system)
6064 (arguments
633422b0
JL
6065 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6066 #:phases
6067 (modify-phases %standard-phases
6068 (add-after 'configure 'patch-path
6069 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6070 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6071 "/sbin/openvpn"))
6072 (modprobe (string-append (assoc-ref inputs "kmod")
6073 "/bin/modprobe"))
6074 (pretty-ovpn (string-append "\"" ovpn "\"")))
6075 (for-each
6076 (lambda (file)
6077 (substitute* file
6078 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6079 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6080 (("\"/sbin/openvpn\"") pretty-ovpn)
6081 (("/sbin/modprobe") modprobe)))
6082 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6083 #t)))))
f2b96b3a
LC
6084 (native-inputs
6085 `(("pkg-config" ,pkg-config)
6086 ("intltool" ,intltool)))
6087 (inputs
6088 `(("gtk+" ,gtk+)
633422b0 6089 ("kmod" ,kmod)
f2b96b3a
LC
6090 ("openvpn" ,openvpn)
6091 ("network-manager" ,network-manager)
6092 ("network-manager-applet" ,network-manager-applet) ;for libnma
6093 ("libsecret" ,libsecret)))
6094 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6095 (synopsis "OpenVPN plug-in for NetworkManager")
6096 (description
6097 "This extension of NetworkManager allows it to take care of connections
6098to virtual private networks (VPNs) via OpenVPN.")
6099 (license license:gpl2+)
6100 (properties `((upstream-name . "NetworkManager-openvpn")))))
6101
d376129f
JL
6102(define-public network-manager-vpnc
6103 (package
6104 (name "network-manager-vpnc")
6105 (version "1.2.6")
6106 (source (origin
6107 (method url-fetch)
6108 (uri (string-append
6109 "mirror://gnome/sources/NetworkManager-vpnc/"
6110 (version-major+minor version)
6111 "/NetworkManager-vpnc-" version ".tar.xz"))
6112 (sha256
6113 (base32
6114 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6115 (build-system gnu-build-system)
6116 (arguments
6117 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6118 #:phases
6119 (modify-phases %standard-phases
6120 (add-after 'configure 'patch-path
6121 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6122 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6123 "/sbin/vpnc"))
6124 (modprobe (string-append (assoc-ref inputs "kmod")
6125 "/bin/modprobe"))
6126 (pretty-ovpn (string-append "\"" vpnc "\"")))
6127 (substitute* "src/nm-vpnc-service.c"
6128 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6129 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6130 (("\"/sbin/vpnc\"") pretty-ovpn)
6131 (("/sbin/modprobe") modprobe)))
6132 #t)))))
6133 (native-inputs
6134 `(("pkg-config" ,pkg-config)
6135 ("intltool" ,intltool)))
6136 (inputs
6137 `(("gtk+" ,gtk+)
6138 ("kmod" ,kmod)
6139 ("vpnc" ,vpnc)
6140 ("network-manager" ,network-manager)
6141 ("network-manager-applet" ,network-manager-applet) ;for libnma
6142 ("libsecret" ,libsecret)))
6143 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6144 (synopsis "VPNC plug-in for NetworkManager")
6145 (description
6146 "Support for configuring virtual private networks based on VPNC.
6147Compatible with Cisco VPN concentrators configured to use IPsec.")
6148 (license license:gpl2+)
6149 (properties `((upstream-name . "NetworkManager-vpnc")))))
6150
8378c87a
EF
6151(define-public network-manager-openconnect
6152 (package
6153 (name "network-manager-openconnect")
6154 (version "1.2.6")
6155 (source (origin
6156 (method url-fetch)
6157 (uri (string-append
6158 "mirror://gnome/sources/NetworkManager-openconnect/"
6159 (version-major+minor version)
6160 "/NetworkManager-openconnect-" version ".tar.xz"))
6161 (sha256
6162 (base32
6163 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6164 (build-system gnu-build-system)
6165 (arguments
6166 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6167 #:phases
6168 (modify-phases %standard-phases
6169 (add-after 'configure 'patch-path
6170 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6171 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6172 "/sbin/openconnect"))
6173 (modprobe (string-append (assoc-ref inputs "kmod")
6174 "/bin/modprobe"))
6175 (pretty-ovpn (string-append "\"" openconnect "\"")))
6176 (substitute* "src/nm-openconnect-service.c"
6177 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6178 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6179 (("/sbin/modprobe") modprobe)))
6180 #t)))))
6181 (native-inputs
6182 `(("intltool" ,intltool)
6183 ("network-manager-applet" ,network-manager-applet) ;for libnma
6184 ("pkg-config" ,pkg-config)))
6185 (inputs
6186 `(("gcr" ,gcr)
6187 ("gtk+" ,gtk+)
6188 ("kmod" ,kmod)
6189 ("libsecret" ,libsecret)
6190 ("libxml2" ,libxml2)
6191 ("network-manager" ,network-manager)
6192 ("openconnect" ,openconnect)))
6193 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6194 (synopsis "OpenConnect plug-in for NetworkManager")
6195 (description
6196 "This extension of NetworkManager allows it to take care of connections
6197to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6198Cisco's AnyConnect SSL VPN.")
6199 (license license:gpl2+)
e52b9534
LC
6200 (properties `((upstream-name . "NetworkManager-openconnect")
6201
6202 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6203 ;; file refers to account "nm-openconnect". Specify it here
6204 ;; so that 'network-manager-service-type' creates it.
6205 (user-accounts . ("nm-openconnect"))))))
8378c87a 6206
e5e1df4d
DC
6207(define-public mobile-broadband-provider-info
6208 (package
6209 (name "mobile-broadband-provider-info")
310c89e3 6210 (version "20190116")
e5e1df4d
DC
6211 (source (origin
6212 (method url-fetch)
6213 (uri (string-append
6214 "mirror://gnome/sources/"
6215 "mobile-broadband-provider-info/" version "/"
6216 "mobile-broadband-provider-info-" version ".tar.xz"))
6217 (sha256
6218 (base32
310c89e3 6219 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
6220 (build-system gnu-build-system)
6221 (arguments
310c89e3 6222 `(#:tests? #f)) ; no tests
e5e1df4d
DC
6223 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6224 (synopsis "Database of broadband connection configuration")
6225 (description "Database of broadband connection configuration.")
6226 (license license:public-domain)))
6227
4d62a9d3
SB
6228(define-public network-manager-applet
6229 (package
6230 (name "network-manager-applet")
8fc3a337 6231 (version "1.8.24")
4d62a9d3
SB
6232 (source (origin
6233 (method url-fetch)
3df63444 6234 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 6235 (version-major+minor version) "/"
3df63444 6236 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
6237 (sha256
6238 (base32
8fc3a337 6239 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
cd7f718e
RW
6240 (build-system meson-build-system)
6241 (arguments
be1c4b07
TGR
6242 '(#:configure-flags
6243 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6244 (list "-Dlibnm_gtk=true")
6245 #:glib-or-gtk? #t))
4d62a9d3
SB
6246 (native-inputs
6247 `(("intltool" ,intltool)
cd7f718e 6248 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 6249 ("gobject-introspection" ,gobject-introspection)
cd7f718e 6250 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
6251 ("pkg-config" ,pkg-config)))
6252 (propagated-inputs
6253 ;; libnm-gtk.pc refers to all these.
6254 `(("dbus-glib" ,dbus-glib)
6255 ("gtk+" ,gtk+)
6256 ("network-manager" ,network-manager)))
6257 (inputs
cd7f718e
RW
6258 `(("gcr" ,gcr)
6259 ("iso-codes" ,iso-codes)
4d62a9d3
SB
6260 ("libgudev" ,libgudev)
6261 ("libnotify" ,libnotify)
2116bfb3 6262 ("libsecret" ,libsecret)
240cee8a
KK
6263 ("libselinux" ,libselinux)
6264 ("jansson" ,jansson) ; for team support
3e9c80b2
FP
6265 ("modem-manager" ,modem-manager)
6266 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
4d62a9d3 6267 (synopsis "Applet for managing network connections")
f032d0be 6268 (home-page "https://www.gnome.org/projects/NetworkManager/")
4d62a9d3
SB
6269 (description
6270 "This package contains a systray applet for NetworkManager. It displays
6271the available networks and allows users to easily switch between them.")
6272 (license license:gpl2+)))
56196594
RW
6273
6274(define-public libxml++
6275 (package
6276 (name "libxml++")
8344a85e 6277 (version "3.0.1")
56196594
RW
6278 (source (origin
6279 (method url-fetch)
6280 (uri (string-append "mirror://gnome/sources/" name "/"
6281 (version-major+minor version) "/"
6282 name "-" version ".tar.xz"))
6283 (sha256
6284 (base32
8344a85e 6285 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
6286 (build-system gnu-build-system)
6287 ;; libxml++-3.0.pc refers to all these.
6288 (propagated-inputs
6289 `(("libxml2" ,libxml2)
6290 ("glibmm" ,glibmm)))
6291 (native-inputs
6292 `(("perl" ,perl)
6293 ("pkg-config" ,pkg-config)))
6294 (home-page "http://libxmlplusplus.sourceforge.net/")
6295 (synopsis "C++ wrapper for XML parser library libxml2")
6296 (description
6297 "This package provides a C++ wrapper for the XML parser library
6298libxml2.")
6299 (license license:lgpl2.1+)))
df12f04a 6300
b61d9627
AW
6301(define-public libxml++-2
6302 (package
6303 (inherit libxml++)
6304 (name "libxml++")
6305 (version "2.40.1")
6306 (source (origin
6307 (method url-fetch)
6308 (uri (string-append "mirror://gnome/sources/" name "/"
6309 (version-major+minor version) "/"
6310 name "-" version ".tar.xz"))
6311 (sha256
6312 (base32
6313 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6314
df12f04a
SB
6315(define-public gdm
6316 (package
6317 (name "gdm")
bcca95dc 6318 (version "3.32.0")
df12f04a
SB
6319 (source (origin
6320 (method url-fetch)
6321 (uri (string-append "mirror://gnome/sources/" name "/"
6322 (version-major+minor version) "/"
6323 name "-" version ".tar.xz"))
6324 (sha256
6325 (base32
bcca95dc 6326 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
957dbc0a 6327 (build-system glib-or-gtk-build-system)
df12f04a
SB
6328 (arguments
6329 '(#:configure-flags
af37e6bb 6330 `("--without-plymouth"
957dbc0a 6331 "--disable-systemd-journal"
51bc8357
TS
6332
6333 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6334 ;; instead of having to replace it (i.e., stopping the mingetty
6335 ;; service for TTY 1 before starting GDM).
6336 "--with-initial-vt=7"
6337
89c86562
TS
6338 ;; Use '/etc/environment' for locale settings instead of the
6339 ;; systemd-specific '/etc/locale.conf'.
6340 "--with-lang-file=/etc/environment"
6341
b74ef0ba
RW
6342 ,(string-append "--with-udevdir="
6343 (assoc-ref %outputs "out") "/lib/udev")
6344
af37e6bb
AW
6345 "--localstatedir=/var"
6346 ,(string-append "--with-default-path="
6347 (string-join '("/run/setuid-programs"
6348 "/run/current-system/profile/bin"
6349 "/run/current-system/profile/sbin")
957dbc0a
AW
6350 ":"))
6351 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6352 ;; XDG_DATA_DIRS so that it finds its schemas.
6353 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
6354 #:phases
6355 (modify-phases %standard-phases
6356 (add-before
6357 'configure 'pre-configure
e8c6e771 6358 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
6359 ;; We don't have <systemd/sd-daemon.h>.
6360 (substitute* '("common/gdm-log.c"
6361 "daemon/gdm-server.c"
6362 "daemon/gdm-session-worker.c"
6363 "daemon/gdm-session-worker-job.c")
6364 (("#include <systemd/sd-daemon\\.h>") ""))
6365 ;; Use elogind for sd-login.
6366 (substitute* '("common/gdm-common.c"
6367 "daemon/gdm-manager.c"
6368 "libgdm/gdm-user-switching.c")
6369 (("#include <systemd/sd-login\\.h>")
6370 "#include <elogind/sd-login.h>"))
957dbc0a
AW
6371 ;; Check for elogind.
6372 (substitute* '("configure")
6373 (("libsystemd")
6374 "libelogind"))
af37e6bb
AW
6375 ;; Look for system-installed sessions in
6376 ;; /run/current-system/profile/share.
6377 (substitute* '("libgdm/gdm-sessions.c"
6378 "daemon/gdm-session.c"
6379 "daemon/gdm-display.c"
6380 "daemon/gdm-launch-environment.c")
6381 (("DATADIR \"/x")
6382 "\"/run/current-system/profile/share/x")
6383 (("DATADIR \"/wayland")
6384 "\"/run/current-system/profile/share/wayland")
6385 (("DATADIR \"/gnome")
6386 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 6387 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 6388 "GDM_DBUS_DAEMON"
c9ff92b5 6389 "GDM_X_SERVER"
41fa9f18 6390 "GDM_X_SESSION"
c9ff92b5
TS
6391 ;; XXX: Remove this once GNOME Shell is
6392 ;; a dependency of GDM.
6393 "XDG_DATA_DIRS")))
6394 (substitute* "daemon/gdm-session.c"
6395 (("set_up_session_environment \\(self\\);")
6396 (apply string-append
6397 "set_up_session_environment (self);\n"
6398 (map (lambda (name)
6399 (string-append
6400 "gdm_session_set_environment_variable "
6401 "(self, \"" name "\","
6402 "g_getenv (\"" name "\"));\n"))
6403 propagate)))))
a430a350
TS
6404 ;; Find the configuration file using an environment variable.
6405 (substitute* '("common/gdm-settings.c")
e0e6756f 6406 (("GDM_CUSTOM_CONF")
e57c2adb
TS
6407 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6408 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6409 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
6410 ;; Use service-supplied path to X.
6411 (substitute* '("daemon/gdm-server.c")
6412 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6413 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6414 (substitute* '("daemon/gdm-x-session.c")
1f564c15
TS
6415 (("\"dbus-daemon\"")
6416 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 6417 (("X_SERVER")
41fa9f18
TS
6418 "g_getenv (\"GDM_X_SERVER\")")
6419 (("GDMCONFDIR \"/Xsession\"")
6420 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
6421 ;; Use an absolute path for GNOME Session.
6422 (substitute* "daemon/gdm-launch-environment.c"
6423 (("\"gnome-session\"")
6424 (string-append "\"" (assoc-ref inputs "gnome-session")
6425 "/bin/gnome-session\"")))
e8c6e771
TS
6426 ;; Do not automatically select the placeholder session.
6427 (substitute* "daemon/gdm-session.c"
6428 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6429 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6430 "(g_strcmp0(search_dirs[i], \""
6431 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6432 "\") == 0 && "
6433 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6434 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 6435 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 6436 #t))
8caa4589
TS
6437 ;; GDM requires that there be at least one desktop entry
6438 ;; file. This phase installs a hidden one that simply
6439 ;; fails. This enables users to use GDM with a
6440 ;; '~/.xsession' script with no other desktop entry files.
6441 ;; See <https://bugs.gnu.org/35068>.
6442 (add-after 'install 'install-placeholder-desktop-entry
6443 (lambda* (#:key inputs outputs #:allow-other-keys)
6444 (let* ((out (assoc-ref outputs "out"))
6445 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6446 (fail (string-append sessions "/fail.desktop")))
6447 (mkdir-p sessions)
6448 (with-output-to-file fail
6449 (lambda ()
6450 (for-each
6451 display
6452 '("[Desktop Entry]\n"
6453 "Encoding=UTF-8\n"
6454 "Type=Application\n"
6455 "Name=Fail\n"
6456 "Comment=This session fails immediately.\n"
6457 "NoDisplay=true\n"
6458 "Exec=false\n"))))
6459 #t)))
69544798
TS
6460 ;; GDM needs GNOME Session to run these applications. We link
6461 ;; their autostart files in `share/gdm/greeter/autostart'
6462 ;; because GDM explicitly tells GNOME Session to look there.
6463 ;;
6464 ;; XXX: GNOME Shell should be linked here too, but currently
6465 ;; GNOME Shell depends on GDM.
6466 (add-after 'install 'link-autostart-files
6467 (lambda* (#:key inputs outputs #:allow-other-keys)
6468 (let* ((out (assoc-ref outputs "out"))
6469 (autostart (string-append out "/share/gdm/"
6470 "greeter/autostart"))
6471 (settings (assoc-ref inputs "gnome-settings-daemon")))
6472 (mkdir-p autostart)
6473 (with-directory-excursion autostart
6474 (for-each (lambda (desktop)
6475 (symlink desktop (basename desktop)))
6476 (find-files (string-append settings "/etc/xdg"))))
6477 #t))))))
df12f04a
SB
6478 (native-inputs
6479 `(("dconf" ,dconf)
6480 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6481 ("gobject-introspection" ,gobject-introspection)
6482 ("intltool" ,intltool)
6483 ("itstool" ,itstool)
6484 ("pkg-config" ,pkg-config)
6485 ("xmllint" ,libxml2)))
6486 (inputs
6487 `(("accountsservice" ,accountsservice)
6488 ("check" ,check) ; for testing
6489 ("elogind" ,elogind)
def6d6b6 6490 ("gnome-session" ,gnome-session)
69544798 6491 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
6492 ("gtk+" ,gtk+)
6493 ("iso-codes" ,iso-codes)
6494 ("libcanberra" ,libcanberra)
6495 ("linux-pam" ,linux-pam)))
6496 (synopsis "Display manager for GNOME")
f032d0be 6497 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
6498 (description
6499 "GNOME Display Manager is a system service that is responsible for
6500providing graphical log-ins and managing local and remote displays.")
6501 (license license:gpl2+)))
8e1dd04f
SB
6502
6503(define-public libgtop
6504 (package
6505 (name "libgtop")
015fc036 6506 (version "2.40.0")
8e1dd04f
SB
6507 (source (origin
6508 (method url-fetch)
59487fc2 6509 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 6510 (version-major+minor version) "/"
59487fc2 6511 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
6512 (sha256
6513 (base32
015fc036 6514 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
6515 (build-system gnu-build-system)
6516 (native-inputs
6517 `(("gobject-introspection" ,gobject-introspection)
6518 ("intltool" ,intltool)
6519 ("perl" ,perl)
6520 ("pkg-config" ,pkg-config)))
6521 (propagated-inputs
6522 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6523 (synopsis "Portable system access library")
6524 (home-page "https://www.gnome.org/")
6525 (description
6526 "LibGTop is a library to get system specific data such as CPU and memory
6527usage and information about running processes.")
6528 (license license:gpl2+)))
b96c4260
SB
6529
6530(define-public gnome-bluetooth
6531 (package
6532 (name "gnome-bluetooth")
723afae6 6533 (version "3.32.1")
b96c4260
SB
6534 (source (origin
6535 (method url-fetch)
6536 (uri (string-append "mirror://gnome/sources/" name "/"
6537 (version-major+minor version) "/"
6538 name "-" version ".tar.xz"))
6539 (sha256
6540 (base32
723afae6 6541 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
fd3b1171 6542 (build-system meson-build-system)
b96c4260
SB
6543 (native-inputs
6544 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 6545 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
6546 ("gobject-introspection" ,gobject-introspection)
6547 ("intltool" ,intltool)
6548 ("pkg-config" ,pkg-config)
6549 ("xmllint" ,libxml2)))
6550 (propagated-inputs
6551 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
6552 `(("glib" ,glib)
6553 ("gtk+" ,gtk+)))
b96c4260 6554 (inputs
723afae6
KK
6555 `(("eudev" ,eudev)
6556 ("libcanberra" ,libcanberra)
b96c4260
SB
6557 ("libnotify" ,libnotify)))
6558 (synopsis "GNOME Bluetooth subsystem")
6559 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6560 (description
6561 "This package contains tools for managing and manipulating Bluetooth
6562devices using the GNOME desktop.")
6563 (license license:lgpl2.1+)))
b645146f
SB
6564
6565(define-public gnome-control-center
6566 (package
6567 (name "gnome-control-center")
a6938bac 6568 (version "3.32.2")
b645146f
SB
6569 (source (origin
6570 (method url-fetch)
6571 (uri (string-append "mirror://gnome/sources/" name "/"
6572 (version-major+minor version) "/"
6573 name "-" version ".tar.xz"))
6574 (sha256
6575 (base32
a6938bac 6576 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
59dac026 6577 (build-system meson-build-system)
b645146f 6578 (arguments
59dac026
RW
6579 '(#:glib-or-gtk? #t
6580 #:configure-flags
64c70430
KK
6581 (list "-Dcheese=false"
6582 (string-append "-Dgnome_session_libexecdir="
6583 (assoc-ref %build-inputs "gnome-session")
6584 "/libexec"))
59dac026 6585 #:phases
b645146f
SB
6586 (modify-phases %standard-phases
6587 (add-before 'configure 'patch-paths
6588 (lambda* (#:key inputs #:allow-other-keys)
6589 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 6590 (tzdata (assoc-ref inputs "tzdata"))
341225ac 6591 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
6592 (nm-applet (assoc-ref inputs "network-manager-applet"))
6593 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
6594 (substitute* "panels/datetime/tz.h"
6595 (("/usr/share/zoneinfo/zone.tab")
6596 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 6597 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
6598 (("/usr/share/locale")
6599 (string-append libc "/share/locale")))
1df38cfc
LC
6600 (substitute* "panels/region/cc-region-panel.c"
6601 (("\"gkbd-keyboard-display")
6602 (string-append "\"" libgnomekbd
6603 "/bin/gkbd-keyboard-display")))
341225ac
LC
6604 (substitute* '("panels/network/net-device-wifi.c"
6605 "panels/network/net-device.c"
6606 "panels/network/connection-editor/net-connection-editor.c")
6607 (("\"nm-connection-editor")
6608 (string-append "\"" nm-applet
6609 "/bin/nm-connection-editor")))
1acd107c
FP
6610 (substitute* '("panels/user-accounts/run-passwd.c")
6611 (("/usr/bin/passwd")
6612 "/run/setuid-programs/passwd"))
64c70430
KK
6613 (substitute* "panels/info/cc-info-overview-panel.c"
6614 (("DATADIR \"/gnome/gnome-version.xml\"")
6615 (string-append "\"" gnome-desktop
6616 "/share/gnome/gnome-version.xml\"")))
b645146f
SB
6617 #t))))))
6618 (native-inputs
6619 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
59dac026 6620 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
b645146f
SB
6621 ("intltool" ,intltool)
6622 ("pkg-config" ,pkg-config)
a6938bac
KK
6623 ("xsltproc" ,libxslt)
6624 ;; For tests
6625 ("hicolor-icon-theme" ,hicolor-icon-theme)
6626 ("python-dbusmock" ,python-dbusmock)
6627 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
6628 (inputs
6629 `(("accountsservice" ,accountsservice)
6630 ("clutter-gtk" ,clutter-gtk)
6631 ("colord-gtk" ,colord-gtk)
6632 ("cups" ,cups)
6633 ("dconf" ,dconf)
6634 ("docbook-xsl" ,docbook-xsl)
3446ffb5 6635 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
6636 ("gnome-bluetooth" ,gnome-bluetooth)
6637 ("gnome-desktop" ,gnome-desktop)
6638 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 6639 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 6640 ("gnome-session" ,gnome-session)
b645146f
SB
6641 ("gnome-settings-daemon" ,gnome-settings-daemon)
6642 ("grilo" ,grilo)
a6938bac 6643 ("gsound" ,gsound)
b645146f
SB
6644 ("ibus" ,ibus)
6645 ("libcanberra" ,libcanberra)
1df38cfc 6646 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
6647 ("libgudev" ,libgudev)
6648 ("libgtop" ,libgtop)
6649 ("libpwquality" ,libpwquality)
982c0b36 6650 ("libsecret" ,libsecret)
b645146f
SB
6651 ("libsoup" ,libsoup)
6652 ("libxml2" ,libxml2)
6653 ("libwacom" ,libwacom)
6654 ("mesa" ,mesa)
6655 ("mit-krb5" ,mit-krb5)
6656 ("modem-manager" ,modem-manager)
6657 ("network-manager-applet" ,network-manager-applet)
6658 ("polkit" ,polkit)
6659 ("pulseaudio" ,pulseaudio)
6660 ("smbclient" ,samba)
6661 ("tzdata" ,tzdata)
982c0b36 6662 ("udisks" ,udisks)
b645146f
SB
6663 ("upower" ,upower)))
6664 (synopsis "Utilities to configure the GNOME desktop")
6665 (home-page "https://www.gnome.org/")
6666 (description
6667 "This package contains configuration applets for the GNOME desktop,
6668allowing to set accessibility configuration, desktop fonts, keyboard and mouse
6669properties, sound setup, desktop theme and background, user interface
6670properties, screen resolution, and other GNOME parameters.")
6671 (license license:gpl2+)))
a4df5756
SB
6672
6673(define-public gnome-shell
6674 (package
6675 (name "gnome-shell")
d5e615ca 6676 (version "3.32.2")
a4df5756
SB
6677 (source (origin
6678 (method url-fetch)
6679 (uri (string-append "mirror://gnome/sources/" name "/"
6680 (version-major+minor version) "/"
6681 name "-" version ".tar.xz"))
6682 (sha256
6683 (base32
d5e615ca 6684 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
a76d0f03
LC
6685 (patches (search-patches "gnome-shell-theme.patch"))
6686 (modules '((guix build utils)))
6687 (snippet
6688 #~(begin
a76d0f03
LC
6689 ;; Copy images for use on the GDM log-in screen.
6690 (copy-file #$(file-append %artwork-repository
6691 "/slim/0.x/background.png")
6692 "data/theme/guix-background.png")
45fef894
LC
6693 (copy-file #$(file-append %artwork-repository
6694 "/logo/Guix-horizontal-white.svg")
6695 "data/theme/guix-logo.svg")
a76d0f03 6696 #t))))
2b0c755d 6697 (build-system meson-build-system)
a4df5756 6698 (arguments
08185081
MB
6699 `(#:glib-or-gtk? #t
6700 #:disallowed-references ((,glib "bin")
11e1df56
LC
6701 ,inkscape ,libxslt
6702 ,ruby-sass)
2b0c755d
RW
6703 #:configure-flags
6704 (list "-Dsystemd=false"
6705 ;; Otherwise, the RUNPATH will lack the final path component.
6706 (string-append "-Dc_link_args=-Wl,-rpath="
6707 (assoc-ref %outputs "out")
6708 "/lib/gnome-shell"))
11e1df56 6709
08185081 6710 #:modules ((guix build meson-build-system)
11e1df56
LC
6711 (guix build utils)
6712 (srfi srfi-1))
6713
2b0c755d 6714 #:phases
a4df5756 6715 (modify-phases %standard-phases
2b0c755d 6716 (add-after 'unpack 'fix-keysdir
a4df5756
SB
6717 (lambda* (#:key outputs #:allow-other-keys)
6718 (let* ((out (assoc-ref outputs "out"))
6719 (keysdir (string-append
6720 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
6721 (substitute* "meson.build"
6722 (("keysdir =.*")
6723 (string-append "keysdir = '" keysdir "'\n")))
6724 #t)))
ebfe259f
MB
6725 (add-before 'configure 'convert-logo-to-png
6726 (lambda* (#:key inputs #:allow-other-keys)
6727 ;; Convert the logo from SVG to PNG.
6728 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
6729 "data/theme/guix-logo.svg")))
ba00235a 6730 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
6731 (lambda* (#:key inputs #:allow-other-keys)
6732 (substitute* "js/misc/ibusManager.js"
6733 (("'ibus-daemon'")
6734 (string-append "'" (assoc-ref inputs "ibus")
6735 "/bin/ibus-daemon'")))
d6fda4d3
LC
6736 (substitute* "js/ui/status/keyboard.js"
6737 (("'gkbd-keyboard-display'")
6738 (string-append "'" (assoc-ref inputs "libgnomekbd")
6739 "/bin/gkbd-keyboard-display'")))
2472cdec 6740 #t))
2b0c755d
RW
6741 (add-before 'check 'pre-check
6742 (lambda* (#:key inputs #:allow-other-keys)
6743 ;; Tests require a running X server.
6744 (system "Xvfb :1 &")
6745 (setenv "DISPLAY" ":1")
6746 #t))
6747 (add-after 'install 'wrap-programs
6748 (lambda* (#:key inputs outputs #:allow-other-keys)
6749 (let ((out (assoc-ref outputs "out"))
6750 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6751 (python-path (getenv "PYTHONPATH")))
6752 (wrap-program (string-append out "/bin/gnome-shell")
6753 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6754 ;; FIXME: gnome-shell loads these libraries with unqualified
6755 ;; names only, so they need to be on LD_LIBRARY_PATH. The
6756 ;; alternative might be to patch gnome-shell.
6757 `("LD_LIBRARY_PATH" ":" prefix
6758 ,(map (lambda (pkg)
6759 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
6760 '("gdk-pixbuf"
6761 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
6762 (for-each
6763 (lambda (prog)
6764 (wrap-program (string-append out "/bin/" prog)
6765 `("PYTHONPATH" ":" prefix (,python-path))
6766 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6767 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 6768 #t)))
11e1df56
LC
6769 (replace 'glib-or-gtk-wrap
6770 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
6771 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
6772 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
6773 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
6774 ;; phase. Fix that since we don't need these.
6775 (wrap #:inputs (fold alist-delete inputs
6776 '("inkscape" "intltool" "glib:bin"))
6777 #:outputs outputs)))))))
a4df5756
SB
6778 (native-inputs
6779 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 6780 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 6781 ("gobject-introspection" ,gobject-introspection)
ebfe259f 6782 ("inkscape" ,inkscape)
a4df5756
SB
6783 ("intltool" ,intltool)
6784 ("pkg-config" ,pkg-config)
6785 ("python" ,python)
2b0c755d
RW
6786 ("ruby-sass" ,ruby-sass)
6787 ("sassc" ,sassc)
a76d0f03 6788 ("xsltproc" ,libxslt)
2b0c755d 6789 ;; For tests
0b4504f6 6790 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
6791 (inputs
6792 `(("accountsservice" ,accountsservice)
6793 ("caribou" ,caribou)
6794 ("docbook-xsl" ,docbook-xsl)
6795 ("evolution-data-server" ,evolution-data-server)
6796 ("gcr" ,gcr)
6797 ("gdm" ,gdm)
c5db31d4 6798 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756
SB
6799 ("gjs" ,gjs)
6800 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
6801 ("gnome-desktop" ,gnome-desktop)
6802 ("gnome-settings-daemon" ,gnome-settings-daemon)
6803 ("gst-plugins-base" ,gst-plugins-base)
6804 ("ibus" ,ibus)
6805 ("libcanberra" ,libcanberra)
6806 ("libcroco" ,libcroco)
d6fda4d3 6807 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756
SB
6808 ("libgweather" ,libgweather)
6809 ("libsoup" ,libsoup)
6810 ("mesa-headers" ,mesa-headers)
6811 ("mutter" ,mutter)
6812 ("network-manager-applet" ,network-manager-applet)
6813 ("polkit" ,polkit)
6814 ("pulseaudio" ,pulseaudio)
6815 ("python-pygobject" ,python-pygobject)
6816 ("startup-notification" ,startup-notification)
6817 ("telepathy-logger" ,telepathy-logger)
6818 ("upower" ,upower)
30e760f0
MB
6819 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
6820 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
6821 ("librsvg" ,librsvg)
2b0c755d 6822 ("geoclue" ,geoclue)))
a4df5756
SB
6823 (synopsis "Desktop shell for GNOME")
6824 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
6825 (description
6826 "GNOME Shell provides core user interface functions for the GNOME desktop,
6827like switching to windows and launching applications.")
6828 (license license:gpl2+)))
c3f29bc9
RS
6829
6830(define-public gtk-vnc
6831 (package
6832 (name "gtk-vnc")
965ff023 6833 (version "0.9.0")
c3f29bc9
RS
6834 (source
6835 (origin
6836 (method url-fetch)
6837 (uri (string-append "mirror://gnome/sources/" name "/"
6838 (version-major+minor version) "/"
6839 name "-" version ".tar.xz"))
6840 (sha256
6841 (base32
965ff023 6842 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
6843 (build-system gnu-build-system)
6844 (arguments
6845 '(#:configure-flags '("--with-gtk=3.0")))
6846 (propagated-inputs
6847 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
6848 (inputs
6849 `(("cyrus-sasl" ,cyrus-sasl)
6850 ("gnutls" ,gnutls)
6851 ("libgcrypt" ,libgcrypt)
6852 ("pulseaudio" ,pulseaudio)))
6853 (native-inputs
6854 `(("glib:bin" ,glib "bin")
6855 ("gobject-introspection" ,gobject-introspection)
6856 ("intltool" ,intltool)
6857 ("pkg-config" ,pkg-config)
2f17e939 6858 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
6859 ("vala" ,vala)))
6860 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
6861 (synopsis "VNC viewer widget for GTK+")
6862 (description
6863 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
6864applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
6865GTK-VNC implements client side RFB protocol and authentication extensions such
6866as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
6867 (license license:lgpl2.1+)))
8b877545 6868
dc69fe18
MW
6869(define-public gnome-autoar
6870 (package
6871 (name "gnome-autoar")
c7da8510 6872 (version "0.2.3")
dc69fe18
MW
6873 (source (origin
6874 (method url-fetch)
6875 (uri (string-append "mirror://gnome/sources/" name "/"
6876 (version-major+minor version) "/"
6877 name "-" version ".tar.xz"))
6878 (sha256
6879 (base32
c7da8510 6880 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
dc69fe18
MW
6881 (build-system glib-or-gtk-build-system)
6882 (native-inputs
6883 `(("gnome-common" ,gnome-common)
6884 ("gobject-introspection" ,gobject-introspection)
6885 ("pkg-config" ,pkg-config)))
6886 (propagated-inputs
6887 `(("libarchive" ,libarchive))) ; XXX document why
6888 (inputs
0a6e9e13 6889 `(("gtk+" ,gtk+)))
dc69fe18
MW
6890 (synopsis "Archives integration support for GNOME")
6891 (home-page "https://git.gnome.org/browse/gnome-autoar/")
6892 (description
6893 "GNOME Autoar is a library which makes creating and extracting archives
6894easy, safe, and automatic.")
6895 (license license:lgpl2.1+)))
6896
b64e217f
MW
6897(define-public tracker
6898 (package
6899 (name "tracker")
5ada561c 6900 (version "2.2.2")
b64e217f
MW
6901 (source (origin
6902 (method url-fetch)
b5b0fd23 6903 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 6904 (version-major+minor version) "/"
b5b0fd23 6905 "tracker-" version ".tar.xz"))
b64e217f
MW
6906 (sha256
6907 (base32
5ada561c
KK
6908 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
6909 (build-system meson-build-system)
c8bdf589 6910 (arguments
5ada561c
KK
6911 `(#:glib-or-gtk? #t
6912 #:configure-flags
6913 ;; Otherwise, the RUNPATH will lack the final path component.
6914 (list (string-append "-Dc_link_args=-Wl,-rpath="
6915 (assoc-ref %outputs "out") "/lib:"
6916 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
6917 #:phases
c8bdf589
RW
6918 (modify-phases %standard-phases
6919 (add-after 'unpack 'disable-broken-tests
6920 (lambda _
c8bdf589
RW
6921 ;; These fail because the SPARQL backend could not be loaded.
6922 ;; That's because /etc/machine-id is missing, but
6923 ;; DBUS_FATAL_WARNINGS does not help here.
5ada561c
KK
6924 (substitute* "tests/libtracker-sparql/meson.build"
6925 (("'sparql',") ""))
6926 (substitute* "tests/tracker-steroids/meson.build"
6927 (("test\\(.*") ""))
c8bdf589
RW
6928 #t))
6929 ;; Two tests fail if LANG is not set.
6930 (add-before 'check 'pre-check
6931 (lambda _
6932 (setenv "LANG" "en_US.UTF-8")
6933 ;; For the missing /etc/machine-id.
6934 (setenv "DBUS_FATAL_WARNINGS" "0")
6935 #t)))))
b64e217f 6936 (native-inputs
5ada561c
KK
6937 `(("glib:bin" ,glib "bin")
6938 ("gnome-common" ,gnome-common)
b64e217f 6939 ("gobject-introspection" ,gobject-introspection)
5ada561c 6940 ("python-pygobject" ,python-pygobject)
b64e217f
MW
6941 ("intltool" ,intltool)
6942 ("pkg-config" ,pkg-config)
6943 ("vala" ,vala)))
6944 (inputs
6945 `(("gtk+" ,gtk+)
6946 ("dbus" ,dbus)
44ed6284 6947 ("sqlite" ,sqlite)
c8bdf589 6948 ("python" ,python)
b64e217f 6949 ("poppler" ,poppler)
b64e217f
MW
6950 ("libpng" ,libpng)
6951 ("libtiff" ,libtiff)
b64e217f 6952 ("zlib" ,zlib)
b64e217f 6953 ("libxml2" ,libxml2)
b64e217f 6954 ("libunistring" ,libunistring)
0ef48cd9 6955 ("json-glib" ,json-glib)
b64e217f 6956 ("openjpeg" ,openjpeg-1)
b64e217f 6957 ("libseccomp" ,libseccomp)
0ef48cd9 6958 ("libsoup" ,libsoup)
5ada561c
KK
6959 ("libuuid" ,util-linux)
6960 ("network-manager" ,network-manager)))
b64e217f
MW
6961 (synopsis "Metadata database, indexer and search tool")
6962 (home-page "https://wiki.gnome.org/Projects/Tracker")
6963 (description
6964 "Tracker is an advanced framework for first class objects with associated
6965metadata and tags. It provides a one stop solution for all metadata, tags,
6966shared object databases, search tools and indexing.")
6967 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
6968 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
6969 (license (list license:gpl2+
6970 license:lgpl2.1+
6971 license:lgpl2.0+))))
6972
03be9874
KK
6973(define-public tracker-miners
6974 (package
6975 (name "tracker-miners")
6976 (version "2.2.2")
6977 (source (origin
6978 (method url-fetch)
6979 (uri (string-append "mirror://gnome/sources/tracker-miners/"
6980 (version-major+minor version)
6981 "/tracker-miners-" version ".tar.xz"))
6982 (sha256
6983 (base32
6984 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
6985 (build-system meson-build-system)
6986 (arguments
6987 `(#:glib-or-gtk? #t
6988 #:configure-flags
6989 (list "-Dminer_rss=false" ; libgrss is required.
6990 ;; Ensure the RUNPATH contains all installed library locations.
6991 (string-append "-Dc_link_args=-Wl,-rpath="
6992 (assoc-ref %outputs "out")
6993 "/lib/tracker-miners-2.0")
6994 ;; TODO: Enable functional tests. Currently, the following error
6995 ;; appears:
6996 ;; Exception: The functional tests require DConf to be the default
6997 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
6998 "-Dfunctional_tests=false")))
6999 (native-inputs
7000 `(("dbus" ,dbus)
7001 ("intltool" ,intltool)
7002 ("glib:bin" ,glib "bin")
7003 ("gobject-introspection" ,gobject-introspection)
7004 ("pkg-config" ,pkg-config)
7005 ("python-pygobject" ,python-pygobject)))
7006 (inputs
7007 `(("exempi" ,exempi)
7008 ("ffmpeg" ,ffmpeg)
7009 ("flac" ,flac)
7010 ("giflib" ,giflib)
7011 ("glib" ,glib)
7012 ("gstreamer" ,gstreamer)
7013 ("icu4c" ,icu4c)
7014 ("libcue" ,libcue)
7015 ("libexif" ,libexif)
7016 ("libgsf" ,libgsf)
7017 ("libgxps" ,libgxps)
7018 ("libiptcdata" ,libiptcdata)
7019 ("libjpeg" ,libjpeg)
7020 ("libosinfo" ,libosinfo)
7021 ("libpng" ,libpng)
7022 ("libseccomp" ,libseccomp)
7023 ("libtiff" ,libtiff)
7024 ("libvorbis" ,libvorbis)
7025 ("libxml2" ,libxml2)
7026 ("poppler" ,poppler)
7027 ("taglib" ,taglib)
7028 ("totem-pl-parser" ,totem-pl-parser)
7029 ("tracker" ,tracker)
7030 ("upower" ,upower)
7031 ("zlib" ,zlib)))
7032 (synopsis "Metadata database, indexer and search tool")
7033 (home-page "https://wiki.gnome.org/Projects/Tracker")
7034 (description
7035 "Tracker is an advanced framework for first class objects with associated
7036metadata and tags. It provides a one stop solution for all metadata, tags,
7037shared object databases, search tools and indexing.")
7038 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7039 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7040 (license (list license:gpl2+
7041 license:lgpl2.1+
7042 license:lgpl2.0+))))
7043
8b877545
RS
7044(define-public nautilus
7045 (package
7046 (name "nautilus")
d682c599 7047 (version "3.32.3")
8b877545
RS
7048 (source (origin
7049 (method url-fetch)
7050 (uri (string-append "mirror://gnome/sources/" name "/"
7051 (version-major+minor version) "/"
7052 name "-" version ".tar.xz"))
7053 (sha256
7054 (base32
d682c599 7055 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
35e2d0cf 7056 (build-system meson-build-system)
8b877545 7057 (arguments
35e2d0cf 7058 '(#:glib-or-gtk? #t
8b877545
RS
7059 ;; XXX: FAIL: check-nautilus
7060 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7061 #:tests? #f))
7062 (native-inputs
35e2d0cf
R
7063 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7064 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7065 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8b877545
RS
7066 ("gobject-introspection" ,gobject-introspection)
7067 ("intltool" ,intltool)
7068 ("pkg-config" ,pkg-config)))
8b877545 7069 (inputs
8b877545 7070 `(("dconf" ,dconf)
caf6c363 7071 ("gexiv2" ,gexiv2)
dd05e731 7072 ("gvfs" ,gvfs)
8b877545
RS
7073 ("exempi" ,exempi)
7074 ("gnome-desktop" ,gnome-desktop)
09d88905 7075 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 7076 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 7077 ("libseccomp" ,libseccomp)
35e2d0cf 7078 ("libselinux" ,libselinux)
09d88905 7079 ("tracker" ,tracker)
3cafb9d4 7080 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
7081 ;; XXX: gtk+ is required by libnautilus-extension.pc
7082 ;;
7083 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7084 ;; package. See:
7085 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7086 ("gtk+" ,gtk+)
8b877545
RS
7087 ("libexif" ,libexif)
7088 ("libxml2" ,libxml2)))
7089 (synopsis "File manager for GNOME")
7090 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7091 (description
7092 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7093design and behaviour, giving the user a simple way to navigate and manage its
7094files.")
7095 (license license:gpl2+)))
3c697ffd
JR
7096
7097(define-public baobab
7098 (package
7099 (name "baobab")
e0c5f20c 7100 (version "3.32.0")
3c697ffd
JR
7101 (source (origin
7102 (method url-fetch)
7103 (uri (string-append
7104 "mirror://gnome/sources/" name "/"
7105 (version-major+minor version) "/"
7106 name "-" version ".tar.xz"))
7107 (sha256
7108 (base32
e0c5f20c 7109 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
7110 (build-system meson-build-system)
7111 (arguments
7112 '(#:glib-or-gtk? #t))
3c697ffd
JR
7113 (native-inputs
7114 `(("intltool" ,intltool)
7115 ("pkg-config" ,pkg-config)
d233d373
RJ
7116 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7117 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
7118 ("itstool" ,itstool)
7119 ("xmllint" ,libxml2)
7120 ("glib" ,glib "bin")
7121 ("vala" ,vala)))
7122 (inputs
7123 `(("gtk+" ,gtk+)))
7124 (synopsis "Disk usage analyzer for GNOME")
7125 (description
7126 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7127usage in the GNOME desktop environment. It can easily scan device volumes or
7128a specific user-requested directory branch (local or remote). Once the scan
7129is complete it provides a graphical representation of each selected folder.")
7130 (home-page "https://wiki.gnome.org/Apps/Baobab")
7131 (license license:gpl2+)))
dc050251 7132
fdba447c
RS
7133(define-public gnome-backgrounds
7134 (package
7135 (name "gnome-backgrounds")
e04e8a8c 7136 (version "3.32.0")
fdba447c
RS
7137 (source
7138 (origin
7139 (method url-fetch)
7140 (uri (string-append "mirror://gnome/sources/" name "/"
7141 (version-major+minor version) "/"
7142 name "-" version ".tar.xz"))
7143 (sha256
7144 (base32
e04e8a8c 7145 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
9ca381f0 7146 (build-system meson-build-system)
fdba447c
RS
7147 (native-inputs
7148 `(("intltool" ,intltool)))
e04e8a8c 7149 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
7150 (synopsis "Background images for the GNOME desktop")
7151 (description
7152 "GNOME backgrounds package contains a collection of graphics files which
7153can be used as backgrounds in the GNOME Desktop environment. Additionally,
7154the package creates the proper framework and directory structure so that you
7155can add your own files to the collection.")
7156 (license (list license:gpl2+
7157 license:cc-by2.0
7158 license:cc-by-sa2.0
7159 license:cc-by-sa3.0))))
7160
b784b1a9
RS
7161(define-public gnome-screenshot
7162 (package
7163 (name "gnome-screenshot")
6acf4033 7164 (version "3.32.0")
b784b1a9
RS
7165 (source
7166 (origin
7167 (method url-fetch)
7168 (uri (string-append "mirror://gnome/sources/" name "/"
7169 (version-major+minor version) "/"
7170 name "-" version ".tar.xz"))
7171 (sha256
7172 (base32
6acf4033 7173 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
8356aefa 7174 (build-system meson-build-system)
b784b1a9
RS
7175 (native-inputs
7176 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa
RW
7177 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7178 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 7179 ("intltool" ,intltool)
8356aefa 7180 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
7181 ("pkg-config" ,pkg-config)))
7182 (inputs
7183 `(("gtk+" ,gtk+)
7184 ("libcanberra" ,libcanberra)
7185 ("libx11" ,libx11)
7186 ("libxext" ,libxext)))
676e7cb4 7187 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
7188 (synopsis "Take pictures of your screen")
7189 (description
7190 "GNOME Screenshot is a utility used for taking screenshots of the entire
7191screen, a window or a user defined area of the screen, with optional
7192beautifying border effects.")
7193 (license license:gpl2+)))
7194
66d59111
RS
7195(define-public dconf-editor
7196 (package
7197 (name "dconf-editor")
66261451 7198 (version "3.32.0")
66d59111
RS
7199 (source
7200 (origin
7201 (method url-fetch)
7202 (uri (string-append "mirror://gnome/sources/" name "/"
7203 (version-major+minor version) "/"
7204 name "-" version ".tar.xz"))
7205 (sha256
7206 (base32
66261451 7207 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
294ff39d 7208 (build-system meson-build-system)
86f2124b
LC
7209 (arguments
7210 '(#:phases (modify-phases %standard-phases
7211 (add-before 'configure 'set-glib-minimum-version
7212 (lambda _
7213 ;; Change the minimum required GLib version so that
7214 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7215 ;; do that, it complains that "55" is not an even
7216 ;; number. See <https://bugs.gnu.org/37503>.
7217 (substitute* "editor/meson.build"
7218 (("2\\.55\\.1") "2.60.0"))
7219 #t)))))
66d59111
RS
7220 (native-inputs
7221 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 7222 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 7223 ("intltool" ,intltool)
294ff39d
RW
7224 ("pkg-config" ,pkg-config)
7225 ("vala" ,vala)))
66d59111
RS
7226 (inputs
7227 `(("dconf" ,dconf)
7228 ("gtk+" ,gtk+)
7229 ("libxml2" ,libxml2)))
7230 (home-page "https://git.gnome.org/browse/dconf-editor")
7231 (synopsis "Graphical editor for GNOME's dconf configuration system")
7232 (description
7233 "Dconf-editor is a graphical tool for browsing and editing the dconf
7234configuration system for GNOME. It allows users to configure desktop
7235software that do not provide their own configuration interface.")
7236 (license license:lgpl2.1+)))
7237
96d36f38
AW
7238(define-public gnome-default-applications
7239 (package
7240 (name "gnome-default-applications")
7241 (version "0")
7242 (build-system trivial-build-system)
7243 (source #f)
7244 (propagated-inputs
8ad4f0aa
LC
7245 `(("nautilus" ,nautilus)
7246 ("evince" ,evince)))
96d36f38
AW
7247 (arguments
7248 `(#:modules ((guix build utils))
7249 #:builder
7250 (begin
7251 (use-modules (guix build utils))
7252 (let* ((out (assoc-ref %outputs "out"))
7253 (apps (string-append out "/share/applications")))
7254 (mkdir-p apps)
7255 (call-with-output-file (string-append apps "/defaults.list")
7256 (lambda (port)
7257 (format port "[Default Applications]\n")
8ad4f0aa
LC
7258 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7259 (format port "application/pdf=evince.desktop\n")
7260 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
7261 #t))))
7262 (synopsis "Default MIME type associations for the GNOME desktop")
7263 (description
7264 "Given many installed packages which might handle a given MIME type, a
7265user running the GNOME desktop probably has some preferences: for example,
7266that folders be opened by default by the Nautilus file manager, not the Baobab
7267disk usage analyzer. This package establishes that set of default MIME type
7268associations for GNOME.")
7269 (license license:gpl3+)
7270 (home-page #f)))
7271
dc050251
SB
7272(define-public gnome
7273 (package
7274 (name "gnome")
7275 (version (package-version gnome-shell))
7276 (source #f)
7277 (build-system trivial-build-system)
e3cfef22 7278 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 7279 (propagated-inputs
8d8c6bff 7280 ;; TODO: Add or remove packages according to:
a8cda7f5 7281 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 7282 `(
8d8c6bff 7283 ;; GNOME-Core-OS-Services
7922b6f7 7284 ("accountsservice" ,accountsservice)
8d8c6bff
RG
7285 ("network-manager" ,network-manager)
7286 ("packagekit" ,packagekit)
7287 ("upower" ,upower)
7288 ;; GNOME-Core-Shell
7289 ("adwaita-icon-theme" ,adwaita-icon-theme)
7290 ("gdm" ,gdm)
7291 ("glib-networking" ,glib-networking)
7292 ("gnome-backgrounds" ,gnome-backgrounds)
7293 ("gnome-bluetooth" ,gnome-bluetooth)
7294 ("gnome-control-center" ,gnome-control-center)
7295 ("gnome-desktop" ,gnome-desktop)
7922b6f7 7296 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8d8c6bff 7297 ("gnome-keyring" ,gnome-keyring)
7922b6f7 7298 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
7299 ("gnome-session" ,gnome-session)
7300 ("gnome-settings-daemon" ,gnome-settings-daemon)
7301 ("gnome-shell-extensions" ,gnome-shell-extensions)
7302 ("gnome-shell" ,gnome-shell)
7303 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 7304 ("gnome-user-docs" ,gnome-user-docs)
a8cda7f5 7305 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
7306 ("gvfs" ,gvfs)
7307 ("mutter" ,mutter)
7308 ("orca" ,orca)
7309 ;; GNOME-Core-Utilities
7310 ("baobab" ,baobab)
7311 ("cheese" ,cheese)
7312 ("eog" ,eog)
7313 ("epiphany" ,epiphany)
7314 ("evince" ,evince)
7315 ("file-roller" ,file-roller)
7316 ("gedit" ,gedit)
7317 ("gnome-calculator" ,gnome-calculator)
7318 ("gnome-calendar" ,gnome-calendar)
7319 ("gnome-characters" ,gnome-characters)
7320 ("gnome-clocks" ,gnome-clocks)
7321 ("gnome-contacts" ,gnome-contacts)
7322 ("gnome-disk-utility" ,gnome-disk-utility)
7323 ("gnome-font-viewer" ,gnome-font-viewer)
7324 ("gnome-maps" ,gnome-maps)
7325 ("gnome-screenshot" ,gnome-screenshot)
7326 ("gnome-system-monitor" ,gnome-system-monitor)
7327 ("gnome-terminal" ,gnome-terminal)
7328 ("nautilus" ,nautilus)
7329 ("simple-scan" ,simple-scan)
7330 ("totem" ,totem)
7922b6f7
RG
7331 ("yelp" ,yelp)
7332 ;; Others
7333 ("hicolor-icon-theme" ,hicolor-icon-theme)
7334 ("gnome-online-accounts" ,gnome-online-accounts)))
fe4e698d 7335 (synopsis "The GNU desktop environment")
dc050251
SB
7336 (home-page "https://www.gnome.org/")
7337 (description
fe4e698d
LC
7338 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7339applications for browsing the web, editing text and images, creating
7340documents and diagrams, playing media, scanning, and much more.")
dc050251 7341 (license license:gpl2+)))
4a526711
DT
7342
7343(define-public byzanz
7344 ;; The last stable release of Byzanz was in 2011, but there have been many
7345 ;; useful commits made to the Byzanz repository since then that it would be
7346 ;; silly to use such an old release.
7347 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7348 (package
7349 (name "byzanz")
7350 (version (string-append "0.2-1." (string-take commit 7)))
7351 (source (origin
7352 (method git-fetch)
7353 (uri (git-reference
5f13bf09 7354 (url "https://git.gnome.org/browse/byzanz")
4a526711 7355 (commit commit)))
5a6527e4 7356 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
7357 (sha256
7358 (base32
7359 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7360 (build-system glib-or-gtk-build-system)
7361 (arguments
7362 '(#:phases
7363 (modify-phases %standard-phases
189be331 7364 (replace 'bootstrap
4a526711
DT
7365 (lambda _
7366 ;; The build system cleverly detects that we're not building from
7367 ;; a release tarball and turns on -Werror for GCC.
7368 ;; Unsurprisingly, there is a warning during compilation that
7369 ;; causes the build to fail unnecessarily, so we remove the flag.
7370 (substitute* '("configure.ac")
7371 (("-Werror") ""))
7372 ;; The autogen.sh script in gnome-common will run ./configure
7373 ;; by default, which is problematic because source shebangs
7374 ;; have not yet been patched.
7375 (setenv "NOCONFIGURE" "t")
7376 (zero? (system* "sh" "autogen.sh")))))))
7377 (native-inputs
7378 `(("autoconf" ,autoconf)
7379 ("automake" ,automake)
7380 ("gnome-common" ,gnome-common)
7381 ("intltool" ,intltool)
7382 ("libtool" ,libtool)
7383 ("pkg-config" ,pkg-config)
7384 ("which" ,which)))
7385 (inputs
7386 `(("glib" ,glib)
7387 ("gstreamer" ,gstreamer)
7388 ("gst-plugins-base" ,gst-plugins-base)
7389 ("gtk+" ,gtk+)))
7390 (synopsis "Desktop recording program")
7391 (description "Byzanz is a simple desktop recording program with a
7392command-line interface. It can record part or all of an X display for a
7393specified duration and save it as a GIF encoded animated image file.")
7394 (home-page "https://git.gnome.org/browse/byzanz")
7395 (license license:gpl2+))))
3a9a4c51 7396
0ec171ec
MS
7397(define-public gsound
7398 (package
7399 (name "gsound")
7400 (version "1.0.2")
7401 (source (origin
7402 (method url-fetch)
7403 (uri (string-append "mirror://gnome/sources/" name "/"
7404 (version-major+minor version) "/"
7405 name "-" version ".tar.xz"))
7406 (sha256
7407 (base32
7408 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7409 (build-system glib-or-gtk-build-system)
7410 (native-inputs
7411 `(("pkg-config" ,pkg-config)
7412 ("gobject-introspection" ,gobject-introspection)
7413 ("vala" ,vala)))
7414 (inputs
7415 `(("glib" ,glib)
7416 ("libcanberra" ,libcanberra)))
7417 (home-page "https://wiki.gnome.org/Projects/GSound")
7418 (synopsis "GObject wrapper for libcanberra")
7419 (description
7420 "GSound is a small library for playing system sounds. It's designed to be
7421used via GObject Introspection, and is a thin wrapper around the libcanberra C
7422library.")
7423 (license license:lgpl2.1+)))
7424
3a9a4c51
RS
7425(define-public libzapojit
7426 (package
7427 (name "libzapojit")
7428 (version "0.0.3")
7429 (source (origin
7430 (method url-fetch)
7431 (uri (string-append "mirror://gnome/sources/" name "/"
7432 (version-major+minor version) "/"
7433 name "-" version ".tar.xz"))
7434 (sha256
7435 (base32
7436 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7437 (build-system gnu-build-system)
7438 (native-inputs
7439 `(("gobject-introspection" ,gobject-introspection)
7440 ("intltool" ,intltool)
7441 ("pkg-config" ,pkg-config)))
7442 (inputs
14c297fd 7443 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
7444 ("json-glib" ,json-glib)
7445 ("rest" ,rest)))
7446 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7447 (synopsis "Library for accessing SkyDrive and Hotmail")
7448 (description
7449 "Libzapojit is a GLib-based library for accessing online service APIs of
7450Microsoft SkyDrive and Hotmail, using their REST protocols.")
7451 (license license:lgpl2.1+)))
9365ee1c 7452
60e2a9ae
MS
7453(define-public gnome-clocks
7454 (package
7455 (name "gnome-clocks")
c76d0dbc 7456 (version "3.32.0")
60e2a9ae
MS
7457 (source (origin
7458 (method url-fetch)
7459 (uri (string-append "mirror://gnome/sources/" name "/"
7460 (version-major+minor version) "/"
7461 name "-" version ".tar.xz"))
7462 (sha256
7463 (base32
c76d0dbc 7464 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
60e2a9ae
MS
7465 (build-system meson-build-system)
7466 (arguments
7467 '(#:glib-or-gtk? #t))
7468 (native-inputs
7469 `(("vala" ,vala)
7470 ("pkg-config" ,pkg-config)
7471 ("glib" ,glib "bin") ; for glib-compile-resources
7472 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7473 ("desktop-file-utils" ,desktop-file-utils)
7474 ("gettext" ,gettext-minimal)
7475 ("itstool" ,itstool)))
7476 (inputs
7477 `(("glib" ,glib)
7478 ("gtk+" ,gtk+)
7479 ("gsound" ,gsound)
7480 ("geoclue" ,geoclue)
7481 ("geocode-glib" ,geocode-glib)
7482 ("libgweather" ,libgweather)
7483 ("gnome-desktop" ,gnome-desktop)))
7484 (home-page "https://wiki.gnome.org/Apps/Clocks")
7485 (synopsis "GNOME's clock application")
7486 (description
7487 "GNOME Clocks is a simple clocks application designed to fit the GNOME
7488desktop. It supports world clock, stop watch, alarms, and count down timer.")
7489 (license license:gpl3+)))
7490
3c474897
KY
7491(define-public gnome-calendar
7492 (package
7493 (name "gnome-calendar")
339b59bf 7494 (version "3.32.2")
3c474897
KY
7495 (source (origin
7496 (method url-fetch)
7497 (uri (string-append "mirror://gnome/sources/" name "/"
7498 (version-major+minor version) "/"
7499 name "-" version ".tar.xz"))
7500 (sha256
7501 (base32
339b59bf 7502 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
a49d3e37
MS
7503 (build-system meson-build-system)
7504 (arguments
7505 '(#:glib-or-gtk? #t
7506 ;; gnome-calendar has to be installed before the tests can be run
7507 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
7508 #:tests? #f))
3c474897 7509 (native-inputs
a49d3e37
MS
7510 `(("gettext" ,gettext-minimal)
7511 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
7512 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
3c474897
KY
7513 ("pkg-config" ,pkg-config)))
7514 (inputs
a49d3e37 7515 `(("evolution-data-server" ,evolution-data-server)
14c297fd 7516 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
7517 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7518 ("libdazzle" ,libdazzle)
b63c06f1 7519 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
7520 ("libgweather" ,libgweather)
7521 ("geoclue" ,geoclue)))
3c474897
KY
7522 (home-page "https://wiki.gnome.org/Apps/Calendar")
7523 (synopsis "GNOME's calendar application")
7524 (description
7525 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 7526desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
7527 (license license:gpl3+)))
7528
57b14665
MS
7529(define-public gnome-todo
7530 (package
7531 (name "gnome-todo")
9f3c6c88 7532 (version "3.28.1")
57b14665
MS
7533 (source (origin
7534 (method url-fetch)
7535 (uri (string-append "mirror://gnome/sources/" name "/"
7536 (version-major+minor version) "/"
7537 name "-" version ".tar.xz"))
7538 (sha256
7539 (base32
9f3c6c88 7540 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
57b14665
MS
7541 (build-system meson-build-system)
7542 (arguments
7543 '(#:glib-or-gtk? #t
7544 #:phases (modify-phases %standard-phases
7545 (add-after
7546 'install 'wrap-gnome-todo
7547 (lambda* (#:key inputs outputs #:allow-other-keys)
7548 (let ((out (assoc-ref outputs "out"))
7549 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7550 (python-path (getenv "PYTHONPATH")))
7551 (wrap-program (string-append out "/bin/gnome-todo")
7552 ;; XXX: gi plugins are broken.
7553 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
7554 ;; For plugins.
7555 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7556 `("PYTHONPATH" ":" prefix (,python-path))))
7557 #t)))))
7558 (native-inputs
7559 `(("gettext" ,gettext-minimal)
7560 ("gobject-introspection" ,gobject-introspection)
7561 ("glib:bin" ,glib "bin") ; For glib-compile-resources
7562 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7563 ("pkg-config" ,pkg-config)))
7564 (inputs
7565 `(("rest" ,rest) ; For Todoist plugin
7566 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 7567 ("libedataserverui" ,evolution-data-server)
57b14665
MS
7568 ("libical" ,libical)
7569 ("libpeas" ,libpeas)
7570 ("python-pygobject" ,python-pygobject)
7571 ("evolution-data-server" ,evolution-data-server)
14c297fd 7572 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
7573 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
7574 (home-page "https://wiki.gnome.org/Apps/Todo")
7575 (synopsis "GNOME's ToDo Application")
7576 (description
7577 "GNOME To Do is a simplistic personal task manager designed to perfectly
7578fit the GNOME desktop.")
7579 (license license:gpl3+)))
7580
ab179eaf
SB
7581(define-public gnome-dictionary
7582 (package
7583 (name "gnome-dictionary")
cf81ddef 7584 (version "3.26.1")
ab179eaf
SB
7585 (source (origin
7586 (method url-fetch)
7587 (uri (string-append "mirror://gnome/sources/" name "/"
7588 (version-major+minor version) "/"
7589 name "-" version ".tar.xz"))
7590 (sha256
7591 (base32
cf81ddef
LC
7592 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
7593 (build-system meson-build-system)
2776b5d5
MB
7594 (arguments '(#:glib-or-gtk? #t
7595 #:phases (modify-phases %standard-phases
7596 (add-after 'unpack 'patch-install-script
7597 (lambda _
7598 ;; This script attempts to compile glib schemas
7599 ;; and create an empty MIME database. We do
7600 ;; that elsewhere, so prevent it from running.
7601 (substitute* "build-aux/post-install.sh"
7602 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
7603 #t)))))
ab179eaf
SB
7604 (native-inputs
7605 `(("glib:bin" ,glib "bin")
7606 ("gobject-introspection" ,gobject-introspection)
7607 ("intltool" ,intltool)
7608 ("itstool" ,itstool)
7609 ("pkg-config" ,pkg-config)
7610 ("xmllint" ,libxml2)))
7611 (inputs
7612 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7613 ("gtk+" ,gtk+)))
7614 (home-page "https://wiki.gnome.org/Apps/Dictionary")
7615 (synopsis "Look up words in dictionary sources")
7616 (description
7617 "GNOME Dictionary can look for the definition or translation of a word in
7618existing databases over the internet.")
7619 (license license:gpl3+)))
7620
d13f3a03 7621(define-public gnome-tweaks
9365ee1c 7622 (package
d13f3a03 7623 (name "gnome-tweaks")
652af676 7624 (version "3.32.0")
9365ee1c
JN
7625 (source (origin
7626 (method url-fetch)
d13f3a03 7627 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 7628 (version-major+minor version) "/"
d13f3a03
RW
7629 "gnome-tweaks-" version ".tar.xz"))
7630 (patches
7631 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
7632 (sha256
7633 (base32
652af676 7634 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
d13f3a03 7635 (build-system meson-build-system)
9365ee1c 7636 (arguments
d13f3a03
RW
7637 `(#:glib-or-gtk? #t
7638 #:configure-flags '("-Dlocalstatedir=/tmp"
7639 "-Dsysconfdir=/tmp")
9365ee1c 7640 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
7641 ,@%meson-build-system-modules)
7642 #:phases
7643 (modify-phases %standard-phases
7644 (add-after 'install 'wrap
7645 (@@ (guix build python-build-system) wrap))
7646 (add-after 'wrap 'wrap-gi-typelib
7647 (lambda* (#:key inputs outputs #:allow-other-keys)
7648 (let ((out (assoc-ref outputs "out"))
7649 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7650 (wrap-program (string-append out "/bin/gnome-tweaks")
7651 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7652 #t)))))
9365ee1c 7653 (native-inputs
c7fc414e
RH
7654 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7655 ("intltool" ,intltool)
9365ee1c
JN
7656 ("pkg-config" ,pkg-config)))
7657 (inputs
c7fc414e
RH
7658 `(("gnome-desktop" ,gnome-desktop)
7659 ("gtk+" ,gtk+)
9365ee1c
JN
7660 ("gobject-introspection" ,gobject-introspection)
7661 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
c7fc414e
RH
7662 ("libnotify" ,libnotify)
7663 ("libsoup" ,libsoup)
7664 ("nautilus" ,nautilus)
7665 ("python" ,python)
7666 ("python-pygobject" ,python-pygobject)))
9365ee1c 7667 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 7668 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 7669 (description
d13f3a03 7670 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
7671GNOME 3. This includes things like the fonts used in user interface elements,
7672alternative user interface themes, changes in window management behavior,
7673GNOME Shell appearance and extension, etc.")
7674 (license license:gpl3+)))
813f814a 7675
d13f3a03
RW
7676;; This package has been renamed by upstream.
7677(define-public gnome-tweak-tool
7678 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
7679
32ac717c
DT
7680(define-public gnome-shell-extensions
7681 (package
7682 (name "gnome-shell-extensions")
ae4c05e0 7683 (version "3.32.1")
32ac717c
DT
7684 (source (origin
7685 (method url-fetch)
7686 (uri (string-append "mirror://gnome/sources/" name "/"
7687 (version-major+minor version) "/"
7688 name "-" version ".tar.xz"))
7689 (sha256
7690 (base32
ae4c05e0 7691 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
100f625b 7692 (build-system meson-build-system)
32ac717c 7693 (arguments
100f625b 7694 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 7695 (native-inputs
c9ea8873
LP
7696 `(("glib:bin" ,glib "bin")
7697 ("intltool" ,intltool)
32ac717c
DT
7698 ("pkg-config" ,pkg-config)))
7699 (propagated-inputs
c9ea8873 7700 `(("glib" ,glib)))
32ac717c
DT
7701 (synopsis "Extensions for GNOME Shell")
7702 (description "GNOME Shell extensions modify and extend GNOME Shell
7703functionality and behavior.")
7704 (home-page "https://extensions.gnome.org/")
7705 (license license:gpl3+)))
7706
813f814a
DT
7707(define-public arc-theme
7708 (package
7709 (name "arc-theme")
37781323 7710 (version "20190917")
813f814a 7711 (source (origin
a18f8eaf
BH
7712 (method git-fetch)
7713 (uri (git-reference
7714 (url "https://github.com/NicoHood/arc-theme.git")
7715 (commit version)))
7716 (file-name (git-file-name name version))
813f814a
DT
7717 (sha256
7718 (base32
37781323 7719 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 7720 (build-system gnu-build-system)
d88884fa
EF
7721 (arguments
7722 '(#:phases
7723 (modify-phases %standard-phases
7724 ;; autogen.sh calls configure at the end of the script.
7725 (replace 'bootstrap
7726 (lambda _ (invoke "autoreconf" "-vfi"))))))
813f814a
DT
7727 (native-inputs
7728 `(("autoconf" ,autoconf)
7729 ("automake" ,automake)
a18f8eaf
BH
7730 ("glib" ,glib "bin") ; for glib-compile-resources
7731 ("gnome-shell" ,gnome-shell)
7732 ("gtk+" ,gtk+)
7733 ("inkscape" ,inkscape)
7734 ("optipng" ,optipng)
7735 ("pkg-config" ,pkg-config)
7736 ("sassc" ,sassc)))
813f814a
DT
7737 (synopsis "A flat GTK+ theme with transparent elements")
7738 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
77392, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
7740like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
7741 (home-page "https://github.com/horst3180/arc-theme")
7742 ;; No "or later" language found.
a18f8eaf 7743 (license license:gpl3+)))
9987c57c 7744
d935e6a1 7745(define-public faba-icon-theme
9987c57c 7746 (package
d935e6a1 7747 (name "faba-icon-theme")
2eee7ee3 7748 (version "4.3")
d935e6a1
BT
7749 (source
7750 (origin
757e4027
TGR
7751 (method git-fetch)
7752 (uri (git-reference
7753 (url "https://github.com/snwh/faba-icon-theme.git")
7754 (commit (string-append "v" version))))
7755 (file-name (git-file-name name version))
d935e6a1 7756 (sha256
757e4027 7757 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 7758 (build-system meson-build-system)
9987c57c 7759 (arguments
82da291a 7760 `(#:phases
9987c57c 7761 (modify-phases %standard-phases
82da291a 7762 (add-before 'configure 'disable-post-install
9987c57c 7763 (lambda _
82da291a
JL
7764 (substitute* "meson.build"
7765 (("meson.add_install_script.*") "")))))))
9987c57c
DT
7766 (native-inputs
7767 `(("autoconf" ,autoconf)
7768 ("automake" ,automake)))
d935e6a1
BT
7769 (synopsis "Faba icon theme")
7770 (description
7771 "Faba is a minimal icon set used as a basis for other themes such as
7772Moka")
7773 (home-page "https://snwh.org/moka")
7774 (license (list license:lgpl3+
7775 license:cc-by-sa4.0))))
7776
9987c57c
DT
7777(define-public moka-icon-theme
7778 (package
8b0e4177 7779 (inherit faba-icon-theme)
9987c57c 7780 (name "moka-icon-theme")
105a3625 7781 (version "5.4.0")
8c3f2170
TGR
7782 (source
7783 (origin
7784 (method git-fetch)
7785 (uri (git-reference
7786 (url "https://github.com/snwh/moka-icon-theme.git")
7787 (commit (string-append "v" version))))
7788 (file-name (git-file-name name version))
7789 (sha256
7790 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
7791 (propagated-inputs
7792 ;; Moka is based on Faba by using it as a fallback icon set instead of
7793 ;; bundling it, so we need to add it as a propagated input.
7794 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
7795 (synopsis "Moka icon theme")
7796 (description "Moka is a stylized desktop icon set, designed to be clear,
7797simple and consistent.")
fedde43b
BT
7798 (license (list license:gpl3+
7799 license:cc-by-sa4.0))))
6fd8f8d6
DT
7800
7801(define-public arc-icon-theme
7802 (package
7803 (name "arc-icon-theme")
c4180240 7804 (version "20161122")
bbf66cbf
TGR
7805 (source
7806 (origin
7807 (method git-fetch)
7808 (uri (git-reference
7809 (url "https://github.com/horst3180/arc-icon-theme.git")
7810 (commit version)))
7811 (file-name (git-file-name name version))
7812 (sha256
7813 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 7814 (build-system gnu-build-system)
9e1ede95
JL
7815 (arguments
7816 `(#:phases
7817 (modify-phases %standard-phases
7818 (add-after 'unpack 'disable-configure-during-bootstrap
7819 (lambda _
7820 (substitute* "autogen.sh"
7821 (("^\"\\$srcdir/configure\".*") ""))
7822 #t)))))
6fd8f8d6
DT
7823 (native-inputs
7824 `(("autoconf" ,autoconf)
7825 ("automake" ,automake)))
7826 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
7827 (propagated-inputs
7828 `(("moka-icon-theme" ,moka-icon-theme)))
7829 (synopsis "Arc icon theme")
7830 (description "The Arc icon theme provides a set of icons matching the
7831style of the Arc GTK theme. Icons missing from the Arc theme are provided by
7832the Moka icon theme.")
7833 (home-page "https://github.com/horst3180/arc-icon-theme")
7834 (license license:gpl3+)))
6064a4e8
LF
7835
7836(define-public folks
7837 (package
7838 (name "folks")
d23495fa 7839 (version "0.11.4")
6064a4e8
LF
7840 (source (origin
7841 (method url-fetch)
7842 (uri (string-append
e5f4796e 7843 "mirror://gnome/sources/folks/"
6064a4e8 7844 (version-major+minor version) "/"
e5f4796e 7845 "folks-" version ".tar.xz"))
6064a4e8
LF
7846 (sha256
7847 (base32
d23495fa 7848 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
6064a4e8
LF
7849 (build-system glib-or-gtk-build-system)
7850 (inputs
7851 `(("bdb" ,bdb)
7852 ("dbus-glib" ,dbus-glib)
7853 ("evolution-data-server" ,evolution-data-server)
7854 ("glib" ,glib)
7855 ("libgee" ,libgee)
7856 ("telepathy-glib" ,telepathy-glib)))
7857 (native-inputs
7858 `(("gobject-introspection" ,gobject-introspection)
7859 ("intltool" ,intltool)
7860 ("pkg-config" ,pkg-config)
7861 ("vala" ,vala)))
7862 (synopsis "Library to aggregate data about people")
7863 (description "Libfolks is a library that aggregates information about people
7864from multiple sources (e.g., Telepathy connection managers for IM contacts,
7865Evolution Data Server for local contacts, libsocialweb for web service contacts,
7866etc.) to create metacontacts. It's written in Vala, which generates C code when
7867compiled.")
7868 (home-page "https://wiki.gnome.org/Projects/Folks")
7869 (license license:lgpl2.1+)))
01ea778f
LF
7870
7871(define-public gfbgraph
7872 (package
7873 (name "gfbgraph")
7874 (version "0.2.3")
7875 (source (origin
7876 (method url-fetch)
7877 (uri (string-append
237d4cf7 7878 "mirror://gnome/sources/gfbgraph/"
01ea778f 7879 (version-major+minor version) "/"
237d4cf7 7880 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
7881 (sha256
7882 (base32
7883 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
7884 (build-system glib-or-gtk-build-system)
7885 (arguments
7886 `(#:tests? #f ; Tests appear to require the network.
7887 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
7888 #:configure-flags '("--disable-gtk-doc"
7889 "--disable-static"
7890 "--enable-introspection")))
7891 (native-inputs
7892 `(("pkg-config" ,pkg-config)
7893 ("gobject-introspection" ,gobject-introspection)))
7894 (inputs
7895 `(("json-glib" ,json-glib)
14c297fd 7896 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
7897 ("rest" ,rest)))
7898 (synopsis "GLib/GObject wrapper for the Facebook API")
7899 (description "This library allows you to use the Facebook API from
7900GLib/GObject code.")
7901 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
7902 (license license:lgpl2.1+)))
3920868c 7903
7904(define-public libgnomekbd
7905 (package
7906 (name "libgnomekbd")
70f2b0f9 7907 (version "3.26.1")
3920868c 7908 (source (origin
7909 (method url-fetch)
d47fa82d 7910 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 7911 (version-major+minor version) "/"
d47fa82d 7912 "libgnomekbd-" version ".tar.xz"))
3920868c 7913 (sha256
7914 (base32
70f2b0f9 7915 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 7916 (build-system gnu-build-system)
7917 (native-inputs
7918 `(("pkg-config" ,pkg-config)
7919 ("glib" ,glib "bin")
7920 ("intltool" ,intltool)))
7921 (propagated-inputs
7922 ;; Referred to in .h files and .pc.
7923 `(("glib" ,glib)
7924 ("gtk+" ,gtk+)
7925 ("libxklavier" ,libxklavier)))
7926 (home-page "https://www.gnome.org")
7927 (synopsis "GNOME keyboard configuration library")
7928 (description
7929 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
7930environment, which can notably display keyboard layouts.")
7931 (license license:lgpl2.0+)))
85327d0d 7932
7933;;; This package is no longer maintained:
7934;;; https://wiki.gnome.org/Attic/LibUnique
7935;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
7936;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
7937(define-public libunique
7938 (package
7939 (name "libunique")
7940 (version "3.0.2")
7941 (source (origin
7942 (method url-fetch)
7943 (uri (string-append "mirror://gnome/sources/" name "/"
7944 (version-major+minor version) "/"
7945 name "-" version ".tar.xz"))
7946 (sha256
7947 (base32
7948 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
7949 (build-system glib-or-gtk-build-system)
7950 (arguments
7951 `(#:configure-flags '("--disable-static"
7952 "--disable-dbus" ; use gdbus
7953 "--enable-introspection")))
7954 (native-inputs
7955 `(("pkg-config" ,pkg-config)
7956 ("gobject-introspection" ,gobject-introspection)
7957 ("glib:bin" ,glib "bin")
7958 ("gtk-doc" ,gtk-doc)))
7959 (propagated-inputs
7960 ;; Referred to in .h files and .pc.
7961 `(("gtk+" ,gtk+)))
7962 (home-page "https://wiki.gnome.org/Attic/LibUnique")
7963 (synopsis "Library for writing single instance applications")
7964 (description
7965 "Libunique is a library for writing single instance applications. If you
7966launch a single instance application twice, the second instance will either just
7967quit or will send a message to the running instance. Libunique makes it easy to
7968write this kind of application, by providing a base class, taking care of all
7969the IPC machinery needed to send messages to a running instance, and also
7970handling the startup notification side.")
7971 (license license:lgpl2.1+)))
54021cd8
RS
7972
7973(define-public gnome-calculator
7974 (package
7975 (name "gnome-calculator")
07ace641 7976 (version "3.32.2")
54021cd8
RS
7977 (source
7978 (origin
7979 (method url-fetch)
7980 (uri (string-append "mirror://gnome/sources/" name "/"
7981 (version-major+minor version) "/"
7982 name "-" version ".tar.xz"))
7983 (sha256
7984 (base32
07ace641 7985 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
2d475910
RW
7986 (build-system meson-build-system)
7987 (arguments '(#:glib-or-gtk? #t))
54021cd8
RS
7988 (native-inputs
7989 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 7990 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8
RS
7991 ("intltool" ,intltool)
7992 ("itstool" ,itstool)
2d475910 7993 ("vala" ,vala)
54021cd8
RS
7994 ("pkg-config" ,pkg-config)))
7995 (inputs
112e9083 7996 `(("glib" ,glib)
07ace641 7997 ("gtksourceview" ,gtksourceview)
54021cd8 7998 ("libsoup" ,libsoup)
112e9083 7999 ("libxml2" ,libxml2)
2c2da7ec 8000 ("mpc" ,mpc)
54021cd8
RS
8001 ("mpfr" ,mpfr)))
8002 (home-page "https://wiki.gnome.org/Apps/Calculator")
8003 (synopsis "Desktop calculator")
8004 (description
8005 "Calculator is an application that solves mathematical equations and
8006is suitable as a default application in a Desktop environment.")
8007 (license license:gpl3)))
0bd69759
RS
8008
8009(define-public xpad
8010 (package
8011 (name "xpad")
c85626bb 8012 (version "5.1.0")
0bd69759
RS
8013 (source
8014 (origin
8015 (method url-fetch)
08fda9c6
R
8016 (uri (string-append "https://launchpad.net/xpad/trunk/"
8017 version "/+download/"
0bd69759
RS
8018 name "-" version ".tar.bz2"))
8019 (sha256
8020 (base32
c85626bb 8021 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
8022 (build-system gnu-build-system)
8023 (native-inputs
08fda9c6
R
8024 `(("autoconf" ,autoconf)
8025 ("automake" ,automake)
8026 ("gtk+:bin" ,gtk+ "bin")
8027 ("intltool" ,intltool)
0bd69759
RS
8028 ("pkg-config" ,pkg-config)))
8029 (inputs
c72647fb 8030 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
8031 ("libsm" ,libsm)))
8032 (home-page "https://wiki.gnome.org/Apps/Xpad")
8033 (synopsis "Virtual sticky note")
8034 (description
8035 "Xpad is a sticky note that strives to be simple, fault tolerant,
8036and customizable. Xpad consists of independent pad windows, each is
8037basically a text box in which notes can be written.")
8038 (license license:gpl3+)))
3ad7dce1
RS
8039
8040(define-public gucharmap
c60063ea
RW
8041 (let ((unicode-files
8042 '(("Blocks.txt"
1f8b5515 8043 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 8044 ("DerivedAge.txt"
1f8b5515 8045 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 8046 ("NamesList.txt"
1f8b5515 8047 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 8048 ("Scripts.txt"
1f8b5515 8049 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 8050 ("UnicodeData.txt"
1f8b5515 8051 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 8052 ("Unihan.zip"
1f8b5515 8053 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
8054 (package
8055 (name "gucharmap")
1f8b5515 8056 (version "12.0.1")
c60063ea
RW
8057 (source
8058 (origin
8059 (method url-fetch)
8060 (uri (string-append "mirror://gnome/sources/" name "/"
8061 (version-major+minor version) "/"
8062 name "-" version ".tar.xz"))
8063 (sha256
8064 (base32
1f8b5515 8065 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
8066 (build-system glib-or-gtk-build-system)
8067 (arguments
8068 `(#:modules ((ice-9 match)
8069 (guix build glib-or-gtk-build-system)
8070 (guix build utils))
8071 #:configure-flags
8072 (list "--with-unicode-data=../unicode-data")
8073 #:phases
8074 (modify-phases %standard-phases
8075 (add-after 'unpack 'prepare-unicode-data
8076 (lambda* (#:key inputs #:allow-other-keys)
8077 (mkdir-p "../unicode-data")
8078 (with-directory-excursion "../unicode-data"
8079 (for-each (match-lambda
8080 ((file _)
8081 (install-file (assoc-ref inputs file) ".")))
8082 ',unicode-files))
8083 #t)))))
8084 (native-inputs
8085 `(("desktop-file-utils" ,desktop-file-utils)
8086 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8087 ("gobject-introspection" ,gobject-introspection)
8088 ("intltool" ,intltool)
8089 ("itstool" ,itstool)
8090 ("pkg-config" ,pkg-config)
8091 ,@(map (match-lambda
8092 ((file hash)
8093 `(,file
8094 ,(origin
8095 (method url-fetch)
8096 (uri (string-append
1f8b5515 8097 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
8098 file))
8099 (sha256 (base32 hash))))))
8100 unicode-files)
8101 ("unzip" ,unzip)))
8102 (inputs
8103 `(("gtk+" ,gtk+)
8104 ("xmllint" ,libxml2)))
8105 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8106 (synopsis "Unicode character picker and font browser")
8107 (description
8108 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
8109characters and categories for the installed fonts, and to examine their
8110detailed properties. It is an easy way to find the character you might
8111only know by its Unicode name or code point.")
c60063ea 8112 (license license:gpl3+))))
04ce840a
RS
8113
8114(define-public bluefish
8115 (package
8116 (name "bluefish")
ea8afaf3 8117 (version "2.2.10")
04ce840a
RS
8118 (source
8119 (origin
8120 (method url-fetch)
8121 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8122 name "-" version ".tar.gz"))
8123 (sha256
8124 (base32
ea8afaf3 8125 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
04ce840a
RS
8126 (build-system gnu-build-system)
8127 (native-inputs
8128 `(("desktop-file-utils" ,desktop-file-utils)
8129 ("intltool" ,intltool)
8130 ("pkg-config" ,pkg-config)))
8131 (inputs
8132 `(("enchant" ,enchant)
8133 ("gtk+" ,gtk+)
8134 ("python" ,python-2)
8135 ("xmllint" ,libxml2)
8136 ("gucharmap" ,gucharmap)))
8137 (home-page "http://bluefish.openoffice.nl")
8138 (synopsis "Web development studio")
8139 (description
8140 "Bluefish is an editor targeted towards programmers and web developers,
8141with many options to write web sites, scripts and other code.
8142Bluefish supports many programming and markup languages.")
8143 (license license:gpl3+)))
1f6a73ee
RS
8144
8145(define-public gnome-system-monitor
8146 (package
8147 (name "gnome-system-monitor")
083cffaf 8148 (version "3.32.1")
1f6a73ee
RS
8149 (source
8150 (origin
8151 (method url-fetch)
8152 (uri (string-append "mirror://gnome/sources/" name "/"
8153 (version-major+minor version) "/"
8154 name "-" version ".tar.xz"))
8155 (sha256
8156 (base32
083cffaf 8157 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
8158 (build-system meson-build-system)
8159 (arguments
8160 '(#:glib-or-gtk? #t
8161 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
8162 (native-inputs
8163 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 8164 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
8165 ("intltool" ,intltool)
8166 ("itstool" ,itstool)
8167 ("libgtop" ,libgtop)
4985d9aa 8168 ("polkit" ,polkit)
1f6a73ee
RS
8169 ("pkg-config" ,pkg-config)))
8170 (inputs
8171 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8172 ("gtk+" ,gtk+)
8173 ("gtkmm" ,gtkmm)
8174 ("librsvg" ,librsvg)
4985d9aa
RW
8175 ("libxml2" ,libxml2)
8176 ("libwnck" ,libwnck)))
1f6a73ee
RS
8177 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8178 (synopsis "Process viewer and system resource monitor for GNOME")
8179 (description
8180 "GNOME System Monitor is a GNOME process viewer and system monitor with
8181an attractive, easy-to-use interface. It has features, such as a tree view
8182for process dependencies, icons for processes, the ability to hide processes,
8183graphical time histories of CPU/memory/swap usage and the ability to
8184kill/reinice processes.")
8185 (license license:gpl2+)))
3e00ac47
SB
8186
8187(define-public python-pyatspi
8188 (package
8189 (name "python-pyatspi")
4f937a32 8190 (version "2.34.0")
3e00ac47
SB
8191 (source (origin
8192 (method url-fetch)
8193 (uri (string-append
8194 "mirror://gnome/sources/pyatspi/"
8195 (version-major+minor version)
8196 "/pyatspi-" version ".tar.xz"))
8197 (sha256
8198 (base32
4f937a32 8199 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 8200 (build-system gnu-build-system)
b95af3f6
JL
8201 (arguments
8202 `(#:phases
8203 (modify-phases %standard-phases
8204 (add-before 'build 'fix-atk-load
8205 (lambda _
8206 (substitute* "pyatspi/__init__.py"
8207 (("from gi.repository import Atspi")
8208 "gi.require_version('Gtk', '3.0')
8209from gi.repository import Gtk
8210from gi.repository import Atspi"))
8211 #t)))))
3e00ac47
SB
8212 (native-inputs
8213 `(("pkg-config" ,pkg-config)))
8214 (inputs
8215 `(("python" ,python)
8216 ("python-pygobject" ,python-pygobject)))
8217 (synopsis "Python client bindings for D-Bus AT-SPI")
8218 (home-page "https://wiki.linuxfoundation.org/accessibility\
8219/atk/at-spi/at-spi_on_d-bus")
8220 (description
8221 "This package includes a python client library for the AT-SPI D-Bus
8222accessibility infrastructure.")
8223 (license license:lgpl2.0)
8224 (properties '((upstream-name . "pyatspi")))))
53201c0d
SB
8225
8226(define-public orca
8227 (package
8228 (name "orca")
089e8585 8229 (version "3.32.0")
53201c0d
SB
8230 (source (origin
8231 (method url-fetch)
8232 (uri (string-append
8233 "mirror://gnome/sources/" name "/"
8234 (version-major+minor version) "/"
8235 name "-" version ".tar.xz"))
8236 (sha256
8237 (base32
089e8585 8238 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
53201c0d
SB
8239 (build-system glib-or-gtk-build-system)
8240 (arguments
8241 '(#:phases
8242 (modify-phases %standard-phases
8243 (add-before 'configure 'qualify-xkbcomp
8244 (lambda* (#:key inputs #:allow-other-keys)
8245 (let ((xkbcomp (string-append
8246 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8247 (substitute* "src/orca/orca.py"
8248 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8249 #t))
8250 (add-after 'install 'wrap-orca
8251 (lambda* (#:key outputs #:allow-other-keys)
8252 (let* ((out (assoc-ref outputs "out"))
8253 (prog (string-append out "/bin/orca")))
8254 (wrap-program prog
8255 `("GI_TYPELIB_PATH" ":" prefix
8256 (,(getenv "GI_TYPELIB_PATH")))
8257 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8258 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8259 `("PYTHONPATH" ":" prefix
8260 (,(getenv "PYTHONPATH")))))
8261 #t)))))
8262 (native-inputs
8263 `(("intltool" ,intltool)
8264 ("itstool" ,itstool)
8265 ("pkg-config" ,pkg-config)
8266 ("xmllint" ,libxml2)))
8267 (inputs
8268 `(("at-spi2-atk" ,at-spi2-atk)
8269 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8270 ("gstreamer" ,gstreamer)
8271 ("gst-plugins-base" ,gst-plugins-base)
8272 ("gst-plugins-good" ,gst-plugins-good)
8273 ("gtk+" ,gtk+)
8274 ("python" ,python)
8275 ("python-pygobject" ,python-pygobject)
8276 ("python-pyatspi" ,python-pyatspi)
8277 ("python-speechd" ,speech-dispatcher)
8278 ("xkbcomp" ,xkbcomp)))
8279 (synopsis
8280 "Screen reader for individuals who are blind or visually impaired")
8281 (home-page "https://wiki.gnome.org/Projects/Orca")
8282 (description
8283 "Orca is a screen reader that provides access to the graphical desktop
8284via speech and refreshable braille. Orca works with applications and toolkits
8285that support the Assistive Technology Service Provider Interface (AT-SPI).")
8286 (license license:lgpl2.1+)))
411ba511
LC
8287
8288(define-public gspell
8289 (package
8290 (name "gspell")
7a6bbe9b 8291 (version "1.8.2")
411ba511
LC
8292 (source (origin
8293 (method url-fetch)
8294 (uri (string-append "mirror://gnome/sources/" name "/"
8295 (version-major+minor version) "/"
8296 name "-" version ".tar.xz"))
8297 (sha256
8298 (base32
7a6bbe9b 8299 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
8300 (patches (search-patches "gspell-dash-test.patch"))))
8301 (build-system glib-or-gtk-build-system)
8302 (arguments
8303 '(#:phases
8304 (modify-phases %standard-phases
8305 (add-before 'check 'pre-check
8306 (lambda* (#:key inputs #:allow-other-keys)
8307 ;; Tests require a running X server.
8308 (system "Xvfb :1 &")
8309 (setenv "DISPLAY" ":1")
8310
8311 ;; For the missing /etc/machine-id.
8312 (setenv "DBUS_FATAL_WARNINGS" "0")
8313
8314 ;; Allow Enchant and its Aspell backend to find the en_US
8315 ;; dictionary.
8316 (setenv "ASPELL_DICT_DIR"
8317 (string-append (assoc-ref inputs "aspell-dict-en")
8318 "/lib/aspell"))
8319 #t)))))
8320 (inputs
eccd35be 8321 `(("gtk+" ,gtk+)
a801ae4c
TGR
8322 ("glib" ,glib)
8323 ("iso-codes" ,iso-codes)))
411ba511
LC
8324 (native-inputs
8325 `(("glib" ,glib "bin")
26ba3f07 8326 ("gobject-introspection" ,gobject-introspection)
411ba511
LC
8327 ("pkg-config" ,pkg-config)
8328 ("xmllint" ,libxml2)
8329
8330 ;; For tests.
a801ae4c 8331 ("aspell-dict-en" ,aspell-dict-en)
ff337525 8332 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 8333 (propagated-inputs
9b1bb757 8334 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
8335 (home-page "https://wiki.gnome.org/Projects/gspell")
8336 (synopsis "GNOME's alternative spell checker")
8337 (description
8338 "gspell provides a flexible API to add spell-checking to a GTK+
8339application. It provides a GObject API, spell-checking to text entries and
8340text views, and buttons to choose the language.")
8341 (license license:gpl2+)))
d1d739fa
CM
8342
8343(define-public gnome-planner
8344 (package
8345 (name "gnome-planner")
8346 (version "0.14.6")
8347 (source (origin
8348 (method url-fetch)
8349 (uri (string-append "mirror://gnome/sources/planner/"
8350 (version-major+minor version) "/planner-"
8351 version ".tar.xz"))
8352 (sha256
8353 (base32
8354 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8355 (build-system glib-or-gtk-build-system)
8356 (arguments
8357 ;; Disable the Python bindings because the Planner program functions
8358 ;; without them, and (as of 2017-06-13) we have not packaged all of
8359 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
8360 `(#:configure-flags
8361 (list "--disable-python"
8362 ,@(if (string=? "aarch64-linux" (%current-system))
8363 '("--build=aarch64-unknown-linux-gnu")
8364 '()))))
d1d739fa
CM
8365 (inputs
8366 `(("libgnomecanvas" ,libgnomecanvas)
8367 ("libgnomeui" ,libgnomeui)
8368 ("libglade" ,libglade)
8369 ("gnome-vfs" ,gnome-vfs)
8370 ("gconf" ,gconf)
8371 ("libxml2" ,libxml2)
8372 ("libxslt" ,libxslt)
8373 ("gtk+" ,gtk+)
8374 ("glib" ,glib)))
8375 (native-inputs
8376 `(("intltool" ,intltool)
8377 ("scrollkeeper" ,scrollkeeper)
8378 ("pkg-config" ,pkg-config)))
8379 (home-page "https://wiki.gnome.org/Apps/Planner")
8380 (synopsis "Project management software for the GNOME desktop")
8381 (description
8382 "GNOME Planner is a project management tool based on the Work Breakdown
8383Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8384the resources, tasks, and constraints that you define, Planner generates
8385various views into a project. For example, Planner can show a Gantt chart of
8386the project. It can show a detailed summary of tasks including their
8387duration, cost, and current progress. It can also show a report of resource
8388utilization that highlights under-utilized and over-utilized resources. These
8389views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 8390 (license license:gpl2+)))
64fce637
RS
8391
8392(define-public lollypop
8393 (package
8394 (name "lollypop")
ca32627a 8395 (version "1.2.7")
64fce637
RS
8396 (source
8397 (origin
8398 (method url-fetch)
b98eace8 8399 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
ca32627a 8400 "08f973788c7ca46d9285eec2ac818edb/"
3275d43d 8401 "lollypop-" version ".tar.xz"))
64fce637 8402 (sha256
ca32627a 8403 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
aa498fc0 8404 (build-system meson-build-system)
64fce637
RS
8405 (arguments
8406 `(#:imported-modules ((guix build python-build-system)
aa498fc0
TD
8407 ,@%meson-build-system-modules)
8408 #:glib-or-gtk? #t
5fc9b6c1
EF
8409 #:tests? #f ; no test suite
8410 #:phases
8411 (modify-phases %standard-phases
5fc9b6c1
EF
8412 (add-after 'install 'wrap-program
8413 (lambda* (#:key outputs #:allow-other-keys)
8414 (let ((out (assoc-ref outputs "out"))
8415 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8416 (wrap-program (string-append out "/bin/lollypop")
8417 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8418 #t))
8ac8b3b3
TGR
8419 (add-after 'install 'wrap-python
8420 (@@ (guix build python-build-system) wrap))
8421 (add-after 'install 'wrap-glib-or-gtk
8422 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
64fce637
RS
8423 (native-inputs
8424 `(("intltool" ,intltool)
8425 ("itstool" ,itstool)
aa498fc0
TD
8426 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8427 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
8428 ("pkg-config" ,pkg-config)))
8429 (inputs
8430 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 8431 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 8432 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
8433 ("libnotify" ,libnotify)
8434 ("libsecret" ,libsecret)
8435 ("libsoup" ,libsoup)
8436 ("python" ,python)
8437 ("python-beautifulsoup4" ,python-beautifulsoup4)
8438 ("python-gst" ,python-gst)
d029afdd 8439 ("python-pil" ,python-pillow)
64fce637 8440 ("python-pycairo" ,python-pycairo)
7460f346 8441 ("python-pygobject" ,python-pygobject-3.34)
64fce637
RS
8442 ("python-pylast" ,python-pylast)
8443 ("totem-pl-parser" ,totem-pl-parser)
8444 ("webkitgtk" ,webkitgtk)))
8445 (propagated-inputs
8446 `(;; gst-plugins-base is required to start Lollypop,
8447 ;; the others are required to play streaming.
64fce637
RS
8448 ("gst-plugins-good" ,gst-plugins-good)
8449 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 8450 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
8451 (synopsis "GNOME music playing application")
8452 (description
8453 "Lollypop is a music player designed to play well with GNOME desktop.
8454Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
8455from artists and tracks from the web. It also fetches cover artworks
8456automatically and it can stream songs from online music services and charts.")
8457 (license license:gpl3+)))
d831d49d
AW
8458
8459(define-public gnome-video-effects
8460 (package
8461 (name "gnome-video-effects")
8462 (version "0.4.3")
8463 (source (origin
8464 (method url-fetch)
8465 (uri (string-append "mirror://gnome/sources/" name "/"
8466 (version-major+minor version) "/" name "-"
8467 version ".tar.xz"))
8468 (sha256
8469 (base32
8470 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
8471 (build-system glib-or-gtk-build-system)
8472 (arguments
8473 `(#:out-of-source? #f))
8474 (native-inputs
8475 `(("glib:bin" ,glib "bin")
8476 ("intltool" ,intltool)
8477 ("gettext" ,gettext-minimal)
8478 ("pkg-config" ,pkg-config)))
8479 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
8480 (synopsis "Video effects for Cheese and other GNOME applications")
8481 (description
8482 "A collection of GStreamer video filters and effects to be used in
8483photo-booth-like software, such as Cheese.")
8484 (license license:gpl2+)))
3511c780
AW
8485
8486(define-public cheese
8487 (package
8488 (name "cheese")
dd33b337 8489 (version "3.32.1")
3511c780
AW
8490 (source (origin
8491 (method url-fetch)
8492 (uri (string-append "mirror://gnome/sources/" name "/"
8493 (version-major+minor version) "/" name "-"
8494 version ".tar.xz"))
8495 (sha256
8496 (base32
dd33b337 8497 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
3511c780
AW
8498 (arguments
8499 ;; Tests require GDK.
8500 `(#:tests? #f
8501 #:phases
8502 (modify-phases %standard-phases
8503 (add-before 'install 'skip-gtk-update-icon-cache
8504 (lambda _
8505 ;; Don't create 'icon-theme.cache'
8506 (substitute* "Makefile"
8507 (("gtk-update-icon-cache") (which "true")))
8508 #t))
8509 (add-after 'install 'wrap-cheese
8510 (lambda* (#:key inputs outputs #:allow-other-keys)
8511 (let ((out (assoc-ref outputs "out"))
8512 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8513 (wrap-program (string-append out "/bin/cheese")
8514 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8515 #t)))))
8516 (build-system glib-or-gtk-build-system)
8517 (native-inputs
8518 `(("glib:bin" ,glib "bin")
8519 ("intltool" ,intltool)
8520 ("itstool" ,itstool)
8521 ("libxml2" ,libxml2)
8522 ("pkg-config" ,pkg-config)
8523 ("vala" ,vala)))
8524 (propagated-inputs
6a19f03e
RW
8525 `(("gnome-video-effects" ,gnome-video-effects)
8526 ("clutter" ,clutter)
3511c780
AW
8527 ("clutter-gst" ,clutter-gst)
8528 ("clutter-gtk" ,clutter-gtk)
6a19f03e 8529 ("libcanberra" ,libcanberra)
3511c780
AW
8530 ("gdk-pixbuf" ,gdk-pixbuf)
8531 ("glib" ,glib)
6a19f03e
RW
8532 ("gstreamer" ,gstreamer)))
8533 (inputs
8534 `(("gnome-desktop" ,gnome-desktop)
3511c780 8535 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
8536 ("gst-plugins-base" ,gst-plugins-base)
8537 ("gst-plugins-bad" ,gst-plugins-bad)
8538 ("gtk+" ,gtk+)
3511c780
AW
8539 ("libx11" ,libx11)
8540 ("libxtst" ,libxtst)))
8541 (home-page "https://wiki.gnome.org/Apps/Cheese")
8542 (synopsis "Webcam photo booth software for GNOME")
8543 (description
8544 "Cheese uses your webcam to take photos and videos. Cheese can also
8545apply fancy special effects and lets you share the fun with others.")
8546 (license license:gpl2+)))
3c5dbd2b 8547
8548(define-public sound-juicer
8549 (package
8550 (name "sound-juicer")
8551 (version "3.24.0")
8552 (source
8553 (origin
8554 (method url-fetch)
8555 (uri (string-append "mirror://gnome/sources/" name "/"
8556 (version-major+minor version) "/"
8557 name "-" version ".tar.xz"))
8558 (sha256
8559 (base32
8560 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
8561 (build-system glib-or-gtk-build-system)
8562 (native-inputs
8563 `(("desktop-file-utils" ,desktop-file-utils)
8564 ("intltool" ,intltool)
8565 ("itstool" ,itstool)
8566 ("pkg-config" ,pkg-config)
8567 ("xmllint" ,libxml2)))
8568 (inputs
8569 `(("gtk+" ,gtk+)
8570 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8571 ("gstreamer" ,gstreamer)
8572 ("gst-plugins-base" ,gst-plugins-base)
8573 ("gst-plugins-good" ,gst-plugins-good)
8574 ("iso-codes" ,iso-codes)
8575 ("libbrasero-media3" ,brasero)
8576 ("libcanberra" ,libcanberra)
8577 ("libdiscid" ,libdiscid)
8578 ("libmusicbrainz" ,libmusicbrainz)
8579 ("neon" ,neon)))
8580 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
8581 (synopsis "Audio music cd ripper")
8582 (description "Sound Juicer extracts audio from compact discs and convert it
8583into audio files that a personal computer or digital audio player can play.
8584It supports ripping to any audio codec supported by a GStreamer plugin, such as
8585mp3, Ogg Vorbis and FLAC")
8586 (license license:gpl2+)))
4e3fdeb7 8587
0d3f1708
CB
8588(define-public soundconverter
8589 (package
8590 (name "soundconverter")
fa75a213 8591 (version "3.0.1")
0d3f1708
CB
8592 (source
8593 (origin
8594 (method url-fetch)
8595 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
8596 version "/+download/"
8597 "soundconverter-" version ".tar.xz"))
8598
8599 (sha256
fa75a213 8600 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
0d3f1708
CB
8601 (patches
8602 (search-patches
8603 "soundconverter-remove-gconf-dependency.patch"))))
8604 (build-system glib-or-gtk-build-system)
8605 (arguments
8606 `(#:imported-modules ((guix build python-build-system)
8607 (guix build glib-or-gtk-build-system)
8608 ,@%gnu-build-system-modules)
8609
8610 #:modules ((guix build glib-or-gtk-build-system)
8611 (guix build utils)
8612 ((guix build gnu-build-system) #:prefix gnu:)
8613 ((guix build python-build-system) #:prefix python:))
8614
8615 #:phases
8616 (modify-phases %standard-phases
0d3f1708
CB
8617 (add-after 'install 'wrap-soundconverter-for-python
8618 (assoc-ref python:%standard-phases 'wrap))
8619 (add-after 'install 'wrap-soundconverter
8620 (lambda* (#:key inputs outputs #:allow-other-keys)
8621 (let ((out (assoc-ref outputs "out"))
8622 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8623 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8624 (wrap-program (string-append out "/bin/soundconverter")
8625 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8626 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8627 #t)))))
8628 (native-inputs
8629 `(("intltool" ,intltool)
8630 ("pkg-config" ,pkg-config)
8631 ("glib:bin" ,glib "bin")))
8632 (inputs
8633 `(("gtk+" ,gtk+)
8634 ("python" ,python)
8635 ("python-pygobject" ,python-pygobject)
8636 ("gstreamer" ,gstreamer)
8637 ("gst-plugins-base" ,gst-plugins-base)))
8638 (home-page "http://soundconverter.org/")
8639 (synopsis "Convert between audio formats with a graphical interface")
8640 (description
8641 "SoundConverter supports converting between many audio formats including
8642Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
8643configurable file renaming. ")
8644 (license license:gpl3)))
8645
4e3fdeb7 8646(define-public workrave
89f2d736
TGR
8647 (package
8648 (name "workrave")
aa51d92c 8649 (version "1.10.34")
89f2d736
TGR
8650 (source
8651 (origin
8652 (method git-fetch)
8653 (uri (git-reference
8654 (url "https://github.com/rcaelers/workrave.git")
c2e50474
TGR
8655 (commit (string-append "v" (string-map
8656 (match-lambda (#\. #\_) (chr chr))
8657 version)))))
89f2d736
TGR
8658 (file-name (git-file-name name version))
8659 (sha256
aa51d92c 8660 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
89f2d736 8661 (build-system glib-or-gtk-build-system)
d1c96847
MC
8662 (inputs `(("glib" ,glib)
8663 ("gtk+" ,gtk+)
8664 ("gdk-pixbuf" ,gdk-pixbuf)
8665 ("gtkmm" ,gtkmm)
8666 ("glibmm" ,glibmm)
8667 ("libx11" ,libx11)
8668 ("libxtst" ,libxtst)
8669 ("dconf" ,dconf)
8670 ("libice" ,libice)
8671 ("libsm" ,libsm)
8672 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 8673 (native-inputs `(("boost" ,boost)
89f2d736
TGR
8674 ("pkg-config" ,pkg-config)
8675 ("gettext" ,gnu-gettext)
8676 ("autoconf" ,autoconf)
8677 ("autoconf-archive" , autoconf-archive)
8678 ("automake" ,automake)
8679 ("libtool" ,libtool)
8680 ("intltool" ,intltool)
89f2d736 8681 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
8682 ("python3" ,python-3)
8683 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
8684 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
8685 (description
8686 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
8687repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
8688micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
8689 (home-page "http://www.workrave.org")
8690 (license license:gpl3+)))
312afa7d
LC
8691
8692(define-public ghex
8693 (package
8694 (name "ghex")
3748992a 8695 (version "3.18.4")
312afa7d
LC
8696 (source (origin
8697 (method url-fetch)
2fbab848 8698 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 8699 (version-major+minor version) "/"
2fbab848 8700 "ghex-" version ".tar.xz"))
312afa7d
LC
8701 (sha256
8702 (base32
3748992a
KK
8703 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
8704 (build-system meson-build-system)
8705 (arguments
8706 '(#:glib-or-gtk? #t
8707 #:phases
8708 (modify-phases %standard-phases
8709 (add-after 'unpack 'skip-gtk-update-icon-cache
8710 ;; Don't create 'icon-theme.cache'.
8711 (lambda _
8712 (substitute* "meson_post_install.py"
8713 (("gtk-update-icon-cache") (which "true")))
8714 #t)))))
312afa7d
LC
8715 (native-inputs
8716 `(("pkg-config" ,pkg-config)
3748992a 8717 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
8718 ("gnome-common" ,gnome-common)
8719 ("which" ,which)
8720 ("intltool" ,intltool)
8721 ("yelp-tools" ,yelp-tools)
2fbab848 8722 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
8723 (inputs
8724 `(("atk" ,atk)
8725 ("gtk" ,gtk+)))
8726 (synopsis "GNOME hexadecimal editor")
8727 (description "The GHex program can view and edit files in two ways:
8728hexadecimal or ASCII. It is useful for editing binary files in general.")
8729 (home-page "https://wiki.gnome.org/Apps/Ghex")
8730 (license license:gpl2)))
4b2ed6c2
RW
8731
8732(define-public libdazzle
8733 (package
8734 (name "libdazzle")
64fa66ba 8735 (version "3.33.90")
4b2ed6c2
RW
8736 (source (origin
8737 (method url-fetch)
687b4909 8738 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 8739 (version-major+minor version) "/"
687b4909 8740 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
8741 (sha256
8742 (base32
64fa66ba 8743 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
4b2ed6c2
RW
8744 (build-system meson-build-system)
8745 (arguments
8746 `(#:phases
8747 (modify-phases %standard-phases
4b2ed6c2
RW
8748 (add-before 'check 'pre-check
8749 (lambda _
8750 ;; Tests require a running X server.
8751 (system "Xvfb :1 &")
8752 (setenv "DISPLAY" ":1")
8753 #t)))))
8754 (native-inputs
687b4909 8755 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 8756 ("pkg-config" ,pkg-config)
687b4909 8757 ;; For tests.
ff337525 8758 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
8759 (inputs
8760 `(("glib" ,glib)
8761 ("gobject-introspection" ,gobject-introspection)
8762 ("gtk+" ,gtk+)
8763 ("vala" ,vala)))
8764 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
8765 (synopsis "Companion library to GObject and Gtk+")
8766 (description "The libdazzle library is a companion library to GObject and
8767Gtk+. It provides various features that the authors wish were in the
8768underlying library but cannot for various reasons. In most cases, they are
8769wildly out of scope for those libraries. In other cases, they are not quite
8770generic enough to work for everyone.")
8771 (license license:gpl3+)))
7d3bb433
RW
8772
8773(define-public evolution
8774 (package
8775 (name "evolution")
06141f83 8776 (version "3.32.4")
7d3bb433
RW
8777 (source (origin
8778 (method url-fetch)
8779 (uri (string-append "mirror://gnome/sources/evolution/"
8780 (version-major+minor version) "/"
8781 "evolution-" version ".tar.xz"))
8782 (sha256
8783 (base32
06141f83 8784 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
7d3bb433
RW
8785 (build-system cmake-build-system)
8786 (arguments
5229bea1
KK
8787 `(#:imported-modules (,@%cmake-build-system-modules
8788 (guix build glib-or-gtk-build-system))
8789 #:modules ((guix build cmake-build-system)
8790 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8791 (guix build utils))
8792 #:configure-flags
7d3bb433 8793 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 8794 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 8795 ; in four years and cannot be built.
5229bea1
KK
8796 #:phases
8797 (modify-phases %standard-phases
8798 ;; The build system attempts to install user interface modules to the
8799 ;; output directory of the "evolution-data-server" package. This
8800 ;; change redirects that change.
8801 (add-after 'unpack 'patch-ui-module-dir
8802 (lambda* (#:key outputs #:allow-other-keys)
8803 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
8804 (("\\$\\{edsuimoduledir\\}")
8805 (string-append (assoc-ref outputs "out")
8806 "/lib/evolution-data-server/ui-modules")))
8807 #t))
8808 (add-after 'install 'glib-or-gtk-compile-schemas
8809 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
8810 (add-after 'install 'glib-or-gtk-wrap
8811 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 8812 (native-inputs
ad6e168b 8813 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
8814 ("pkg-config" ,pkg-config)
8815 ("intltool" ,intltool)
8816 ("itstool" ,itstool)))
8817 (inputs
8818 `(("enchant" ,enchant)
8819 ("evolution-data-server" ,evolution-data-server) ; must be the same version
8820 ("gcr" ,gcr)
ad6e168b 8821 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
8822 ("gnome-autoar" ,gnome-autoar)
8823 ("gnome-desktop" ,gnome-desktop)
8824 ("gtkspell3" ,gtkspell3)
8825 ("highlight" ,highlight)
8826 ("libcanberra" ,libcanberra)
b63c06f1 8827 ("libedataserverui" ,evolution-data-server)
7d3bb433
RW
8828 ("libgweather" ,libgweather)
8829 ("libnotify" ,libnotify)
8830 ("libsoup" ,libsoup)
8831 ("nss" ,nss)
8832 ("openldap" ,openldap)
8833 ("webkitgtk" ,webkitgtk)
8834 ("ytnef" ,ytnef)))
8835 (home-page "https://gitlab.gnome.org/GNOME/evolution")
8836 (synopsis "Manage your email, contacts and schedule")
8837 (description "Evolution is a personal information management application
8838that provides integrated mail, calendaring and address book
8839functionality.")
8840 ;; See COPYING for details.
23dbe621 8841 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 8842 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 8843 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
8844
8845(define-public gthumb
8846 (package
8847 (name "gthumb")
8280676b 8848 (version "3.8.2")
169d63f5
AT
8849 (source (origin
8850 (method url-fetch)
8851 (uri (string-append "mirror://gnome/sources/gthumb/"
8852 (version-major+minor version) "/"
8853 "gthumb-" version ".tar.xz"))
8854 (sha256
8855 (base32
8280676b 8856 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
8857 (build-system meson-build-system)
8858 (arguments
8859 `(#:glib-or-gtk? #t
8860 #:configure-flags
8861 ;; Ensure the RUNPATH contains all installed library locations.
8862 (list (string-append "-Dc_link_args=-Wl,-rpath="
8863 (assoc-ref %outputs "out")
8864 "/lib/gthumb/extensions")
8865 (string-append "-Dcpp_link_args=-Wl,-rpath="
8866 (assoc-ref %outputs "out")
8867 "/lib/gthumb/extensions"))))
8868 (native-inputs
8869 `(("pkg-config" ,pkg-config)
8870 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8871 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8872 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8873 ("intltool" ,intltool)
8874 ("itstool" ,itstool)))
8875 (inputs
8876 `(("exiv2" ,exiv2)
8877 ("gtk" ,gtk+)
8878 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8879 ("gstreamer" ,gstreamer)
8880 ("clutter" ,clutter)
8881 ("clutter-gst" ,clutter-gst)
8882 ("clutter-gtk" ,clutter-gtk)
8883 ("libjpeg" ,libjpeg)
8884 ("libtiff" ,libtiff)
8885 ("libraw" ,libraw)))
8886 (home-page "https://wiki.gnome.org/Apps/Gthumb")
8887 (synopsis "GNOME image viewer and browser")
8888 (description "GThumb is an image viewer, browser, organizer, editor and
8889advanced image management tool")
8890 (license license:gpl2+)))
08be02be
AT
8891
8892(define-public terminator
8893 (package
8894 (name "terminator")
8895 (version "1.91")
8896 (source (origin
8897 (method url-fetch)
8898 (uri (string-append "https://launchpad.net/" name "/"
8899 "gtk3/" version "/" "+download/"
8900 name "-" version ".tar.gz"))
8901 (sha256
8902 (base32
8903 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
8904 (build-system python-build-system)
8905 (native-inputs
8906 `(("intltool" ,intltool)
8907 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8908 ("gettext" ,gettext-minimal)
8909 ("pkg-config" ,pkg-config)))
8910 (inputs
8911 `(("cairo" ,cairo)
8912 ("gobject-introspection" ,gobject-introspection)
96681d4b 8913 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
8914 ("python2-pycairo" ,python2-pycairo)
8915 ("python2-pygobject" ,python2-pygobject)
8916 ("python2-psutil" ,python2-psutil)
8917 ("vte" ,vte)))
8918 (arguments
96681d4b
TGR
8919 `(#:python ,python-2 ; Python 3 isn't supported
8920 #:imported-modules ((guix build glib-or-gtk-build-system)
8921 ,@%python-build-system-modules)
8922 #:modules ((guix build python-build-system)
8923 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
8924 (guix build utils))
08be02be
AT
8925 #:phases
8926 (modify-phases %standard-phases
8927 (add-after
8928 'install 'wrap-program
8929 (lambda* (#:key outputs #:allow-other-keys)
8930 (let ((prog (string-append (assoc-ref outputs "out")
8931 "/bin/terminator")))
8932 (wrap-program prog
8933 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
8934 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
8935 #t)))
8936 (add-after 'wrap-program 'glib-or-gtk-wrap
8937 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
8938 (home-page "https://gnometerminator.blogspot.com/")
8939 (synopsis "Store and run multiple GNOME terminals in one window")
8940 (description
8941 "Terminator allows you to run multiple GNOME terminals in a grid and
8942+tabs, and it supports drag and drop re-ordering of terminals.")
8943 (license license:gpl2)))
213315d4
JF
8944
8945(define-public libhandy
8946 (package
8947 (name "libhandy")
f6501b9f 8948 (version "0.0.12")
213315d4
JF
8949 (source
8950 (origin
8951 (method git-fetch)
8952 (uri (git-reference
8953 (url "https://source.puri.sm/Librem5/libhandy")
8954 (commit (string-append "v" version))))
8955 (file-name (git-file-name name version))
8956 (sha256
f6501b9f 8957 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
8958 (build-system meson-build-system)
8959 (arguments
8960 `(#:configure-flags
8961 '("-Dglade_catalog=disabled"
8962 "-Dgtk_doc=true")
8963 #:phases
8964 (modify-phases %standard-phases
213315d4
JF
8965 (add-before 'check 'pre-check
8966 (lambda _
8967 ;; Tests require a running X server.
8968 (system "Xvfb :1 &")
8969 (setenv "DISPLAY" ":1")
8970 #t)))))
8971 (inputs
8972 `(("gtk+" ,gtk+)))
8973 (native-inputs
8974 `(("glib:bin" ,glib "bin")
8975 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
8976 ("vala" ,vala)
8977 ("gtk-doc" ,gtk-doc)
8978 ("pkg-config" ,pkg-config)
8979 ("gettext" ,gettext-minimal)
d41ee146
TGR
8980
8981 ;; Test suite dependencies.
ff337525 8982 ("xorg-server" ,xorg-server-for-tests)
d41ee146 8983 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
8984 (home-page "https://source.puri.sm/Librem5/libhandy")
8985 (synopsis "Library full of GTK+ widgets for mobile phones")
8986 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
8987interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
8988for usage on small and big screens.")
213315d4 8989 (license license:lgpl2.1+)))
a830d14d
GL
8990
8991(define-public libgit2-glib
8992 (package
8993 (name "libgit2-glib")
8994 (version "0.28.0.1")
8995 (source (origin
8996 (method url-fetch)
8997 (uri (string-append "mirror://gnome/sources/" name "/"
8998 (version-major+minor version) "/"
8999 name "-" version ".tar.xz"))
9000 (sha256
9001 (base32
9002 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9003 (build-system meson-build-system)
9004 (native-inputs
9005 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9006 ("gobject-introspection" ,gobject-introspection)
9007 ("intltool" ,intltool)
9008 ("libssh2" ,libssh2)
9009 ("pkg-config" ,pkg-config)
9010 ("python-pygobject" ,python-pygobject)
9011 ("python-wrapper" ,python-wrapper)
9012 ("vala" ,vala)))
9013 (inputs
9014 `(("glib" ,glib)
9015 ("libgit2" ,libgit2)))
9016 (synopsis "GLib wrapper around the libgit2 Git access library")
9017 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9018access library. It only implements the core plumbing functions, not really the
9019higher level porcelain stuff.")
9020 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9021 (license license:gpl2+)))
93beace0 9022
08db81c9
LP
9023(define-public gitg
9024 (package
9025 (name "gitg")
9026 (version "3.32.1")
9027 (source (origin
9028 (method url-fetch)
9029 (uri (string-append "mirror://gnome/sources/" name "/"
9030 (version-major+minor version) "/"
9031 name "-" version ".tar.xz"))
9032 (sha256
9033 (base32
9034 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9035 (build-system meson-build-system)
9036 (arguments
9037 `(#:glib-or-gtk? #t
9038 #:phases
9039 (modify-phases %standard-phases
9040 (add-after 'unpack 'disable-post-install-partially
9041 (lambda _
9042 (substitute* "meson_post_install.py"
9043 (("'python'") ; there are no python sources to compile
9044 (string-append "'" (which "true") "'"))
9045 (("gtk-update-icon-cache") (which "true")))
9046 #t))
9047 (add-after 'unpack 'fix-test-sources
9048 (lambda _
9049 (substitute* "tests/libgitg/test-commit.vala"
9050 (("/bin/bash") (which "bash")))
9051 #t))
9052 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9053 (lambda* (#:key outputs #:allow-other-keys)
9054 (let ((prog (string-append (assoc-ref outputs "out")
9055 "/bin/gitg")))
9056 (wrap-program prog
9057 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9058 #t))))))
9059 (inputs
9060 `(("glib" ,glib)
9061 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9062 ("gtk+" ,gtk+)
9063 ("gtkspell3" ,gtkspell3)
9064 ("gtksourceview" ,gtksourceview-3)
9065 ("json-glib" ,json-glib)
9066 ("libdazzle" ,libdazzle)
9067 ("libgee" ,libgee)
9068 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9069 ("libgit2-glib" ,libgit2-glib)
9070 ("libpeas" ,libpeas)
9071 ("libsecret" ,libsecret)
9072 ("libsoup" ,libsoup)
9073 ("libxml2" ,libxml2)))
9074 (native-inputs
9075 `(("glib:bin" ,glib "bin")
9076 ("gtk+:bin" ,gtk+ "bin")
9077 ("gobject-introspection" ,gobject-introspection)
9078 ("intltool" ,intltool)
9079 ("pkg-config" ,pkg-config)
9080 ("vala" ,vala)))
9081 (synopsis "Graphical user interface for git")
9082 (description
9083 "gitg is a graphical user interface for git. It aims at being a small,
9084fast and convenient tool to visualize the history of git repositories.
9085Besides visualization, gitg also provides several utilities to manage your
9086repository and commit your work.")
9087 (home-page "https://wiki.gnome.org/Apps/Gitg")
9088 (license license:gpl2+)))
9089
1e600ed0
RW
9090(define-public gamin
9091 (package
9092 (name "gamin")
9093 (version "0.1.10")
9094 (source (origin
9095 (method url-fetch)
9096 (uri (string-append "mirror://gnome/sources/" name "/"
9097 (version-major+minor version) "/"
9098 name "-" version ".tar.bz2"))
9099 (sha256
9100 (base32
9101 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9102 (build-system gnu-build-system)
9103 (arguments
9104 `(#:phases
9105 (modify-phases %standard-phases
9106 (add-after 'unpack 'remove-deprecated-macro
9107 (lambda _
9108 (substitute* '("server/gam_node.c"
9109 "server/gam_subscription.h"
9110 "server/gam_node.h"
9111 "server/gam_subscription.c")
9112 (("G_CONST_RETURN") "const"))
9113 #t)))))
9114 (inputs
9115 `(("glib" ,glib)))
9116 (native-inputs
9117 `(("intltool" ,intltool)
9118 ("pkg-config" ,pkg-config)))
9119 (home-page "https://people.gnome.org/~veillard/gamin/")
9120 (synopsis "File alteration monitor")
9121 (description
9122 "Gamin is a file and directory monitoring system defined to be a subset
9123of the FAM (File Alteration Monitor) system. This is a service provided by a
9124library which allows to detect when a file or a directory has been modified.")
9125 (license license:gpl2+)))
9126
93beace0
DW
9127(define-public gnome-mahjongg
9128 (package
9129 (name "gnome-mahjongg")
9130 (version "3.35.1")
9131 (source (origin
9132 (method git-fetch)
9133 (uri (git-reference
9134 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9135 (commit version)))
9136 (file-name (git-file-name name version))
9137 (sha256
9138 (base32
9139 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9140 (build-system meson-build-system)
9141 (arguments
9142 `(#:glib-or-gtk? #t))
9143 (native-inputs
9144 `(("appstream-glib" ,appstream-glib)
9145 ("gettext" ,gettext-minimal)
9146 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9147 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9148 ("itstool" ,itstool)
9149 ("pkg-config" ,pkg-config)
9150 ("vala" ,vala)))
9151 (propagated-inputs
9152 `(("dconf" ,dconf)))
9153 (inputs
9154 `(("glib" ,glib)
9155 ("gtk+" ,gtk+)
9156 ("librsvg" ,librsvg)))
9157 (synopsis "Mahjongg tile-matching game")
9158 (description "GNOME Mahjongg is a game based on the classic Chinese
9159tile-matching game Mahjong. It features multiple board layouts, tile themes,
9160and a high score table.")
9161 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9162 (license license:gpl2+)))
f825476c 9163
76ea7632
RG
9164(define-public gnome-themes-extra
9165 (package
9166 (name "gnome-themes-extra")
9167 (version "3.28")
9168 (source
9169 (origin
9170 (method url-fetch)
9171 (uri (string-append "mirror://gnome/sources/" name "/"
9172 (version-major+minor version) "/" name "-"
9173 version ".tar.xz"))
9174 (sha256
9175 (base32
9176 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9177 (build-system gnu-build-system)
885424bf
RG
9178 (arguments
9179 '(#:configure-flags
9180 ;; Don't create 'icon-theme.cache'.
9181 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9182 (true (string-append coreutils "/bin/true")))
9183 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
9184 (native-inputs
9185 `(("glib:bin" ,glib "bin")
9186 ("intltool" ,intltool)
9187 ("pkg-config" ,pkg-config)))
9188 (inputs
9189 `(("glib" ,glib)
9190 ("gtk+" ,gtk+)
9191 ("gtk+-2" ,gtk+-2)
9192 ("librsvg" ,librsvg)
9193 ("libxml2" ,libxml2)))
9194 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9195 (synopsis "GNOME Extra Themes")
9196 (description "This package provides themes and related elements that don't
9197really fit in other upstream packages. It offers legacy support for GTK+ 2
9198versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9199index files needed for Adwaita to be used outside of GNOME.")
9200 (license license:lgpl2.1+)))
9201
f825476c
LP
9202(define-public polari
9203 (package
9204 (name "polari")
9205 (version "3.32.2")
9206 (source (origin
9207 (method url-fetch)
9208 (uri (string-append "mirror://gnome/sources/polari/"
9209 (version-major+minor version)
9210 "/polari-" version ".tar.xz"))
9211 (sha256
9212 (base32
9213 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9214 (build-system meson-build-system)
9215 (arguments
9216 `(#:glib-or-gtk? #t
9217 #:phases
9218 (modify-phases %standard-phases
9219 (add-after 'unpack 'skip-gtk-update-icon-cache
9220 (lambda _
9221 (substitute* "meson/meson-postinstall.sh"
9222 (("gtk-update-icon-cache") (which "true")))
9223 #t))
9224 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9225 (lambda* (#:key outputs #:allow-other-keys)
9226 (let ((prog (string-append (assoc-ref outputs "out")
9227 "/bin/polari")))
9228 (wrap-program prog
9229 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9230 #t))))))
9231 (inputs
9232 `(("glib" ,glib)
9233 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9234 ("gspell" ,gspell)
9235 ("gtk+" ,gtk+)
9236 ("gjs" ,gjs)
9237 ("libsecret" ,libsecret)
9238 ("libsoup" ,libsoup)
9239 ("telepathy-glib" ,telepathy-glib)
9240 ("telepathy-logger" ,telepathy-logger)))
9241 (native-inputs
9242 `(("glib:bin" ,glib "bin")
9243 ("gobject-introspection" ,gobject-introspection)
9244 ("intltool" ,intltool)
9245 ("pkg-config" ,pkg-config)
9246 ("yelp-tools" ,yelp-tools)))
9247 (propagated-inputs
9248 `(("telepathy-idle" ,telepathy-idle)
9249 ("telepathy-mission-control" ,telepathy-mission-control)))
9250 (synopsis "Simple IRC Client")
9251 (description
9252 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9253integrate seamlessly with the GNOME desktop.")
9254 (home-page "https://wiki.gnome.org/Apps/Polari")
9255 (license license:gpl2+)))