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