gnu: Add memphis.
[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>
5dc6d5ce 3;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
29a7c98a 4;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
754cfbdc 5;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
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>
ed783404 11;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 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>
e19cb895 14;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 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>
3c986a7d 22;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
e5e1df4d 23;;; Copyright © 2016 David Craven <david@craven.ch>
ac631328 24;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
cce0da5e 25;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
d04687dc 26;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
3c5dbd2b 27;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
d1d739fa 28;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
1d3fcf94 29;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
2cd1de32 30;;; Copyright © 2017, 2020 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>
f2d56e39 37;;; Copyright © 2019, 2020 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>
4690e3a4 42;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
50e96d25 43;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
93beace0 44;;; Copyright © 2019 David Wilson <david@daviwil.com>
d36fa50f 45;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
0faed399 46;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
3861fb1c 47;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
fa01e10d 48;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
63db190a 49;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
0e26c3cf 50;;; Copyright © 2020 raingloom <raingloom@riseup.net>
1a17d21b 51;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
dd233e4d 52;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
663def11 53;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
21051eb7 54;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
01c22be7 55;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
031315e4 56;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
92b9cdd5 57;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
995b7261
AE
58;;;
59;;; This file is part of GNU Guix.
60;;;
61;;; GNU Guix is free software; you can redistribute it and/or modify it
62;;; under the terms of the GNU General Public License as published by
63;;; the Free Software Foundation; either version 3 of the License, or (at
64;;; your option) any later version.
65;;;
66;;; GNU Guix is distributed in the hope that it will be useful, but
67;;; WITHOUT ANY WARRANTY; without even the implied warranty of
68;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
69;;; GNU General Public License for more details.
70;;;
71;;; You should have received a copy of the GNU General Public License
72;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
73
74(define-module (gnu packages gnome)
ed19903d 75 #:use-module (gnu packages)
ba5dd105 76 #:use-module (gnu packages admin)
411ba511 77 #:use-module (gnu packages aspell)
75016d07 78 #:use-module (gnu packages autotools)
7b212526 79 #:use-module (gnu packages avahi)
b29909b4 80 #:use-module (gnu packages backup)
6a180f6f 81 #:use-module (gnu packages base)
1e33331c 82 #:use-module (gnu packages bash)
5698b8b8 83 #:use-module (gnu packages bison)
aa51d92c 84 #:use-module (gnu packages boost)
5fc9b6c1 85 #:use-module (gnu packages build-tools)
df217748 86 #:use-module (gnu packages calendar)
b29909b4 87 #:use-module (gnu packages cdrom)
df12f04a 88 #:use-module (gnu packages check)
d61a894b 89 #:use-module (gnu packages cmake)
b29909b4 90 #:use-module (gnu packages compression)
8f523eb9 91 #:use-module (gnu packages crates-io)
23a22af6 92 #:use-module (gnu packages cups)
6e1bb642 93 #:use-module (gnu packages curl)
c3f29bc9 94 #:use-module (gnu packages cyrus-sasl)
6e1bb642 95 #:use-module (gnu packages databases)
255d1bbe 96 #:use-module (gnu packages dbm)
c769cf9f 97 #:use-module (gnu packages djvu)
ba5dd105 98 #:use-module (gnu packages dns)
b4ce6300 99 #:use-module (gnu packages docbook)
b29909b4 100 #:use-module (gnu packages documentation)
329d731b 101 #:use-module (gnu packages enchant)
b29909b4
TGR
102 #:use-module (gnu packages flex)
103 #:use-module (gnu packages fonts)
e762d943 104 #:use-module (gnu packages file-systems)
a56be436 105 #:use-module (gnu packages fontutils)
b29909b4 106 #:use-module (gnu packages freedesktop)
dfc407f3 107 #:use-module (gnu packages game-development)
fed5a689 108 #:use-module (gnu packages gettext)
b29909b4 109 #:use-module (gnu packages ghostscript)
56db7a66 110 #:use-module (gnu packages gimp)
b29909b4 111 #:use-module (gnu packages gl)
995b7261 112 #:use-module (gnu packages glib)
c1354b90 113 #:use-module (gnu packages gnupg)
23a22af6 114 #:use-module (gnu packages gnuzilla)
8d8c6bff 115 #:use-module (gnu packages geo)
b29909b4
TGR
116 #:use-module (gnu packages gperf)
117 #:use-module (gnu packages graphviz)
85f5dc19 118 #:use-module (gnu packages gstreamer)
d9c1a22b 119 #:use-module (gnu packages gtk)
6b888eff 120 #:use-module (gnu packages guile)
b645146f 121 #:use-module (gnu packages ibus)
03be9874 122 #:use-module (gnu packages icu4c)
b29909b4
TGR
123 #:use-module (gnu packages image)
124 #:use-module (gnu packages imagemagick)
125 #:use-module (gnu packages inkscape)
9cc98f8a 126 #:use-module (gnu packages iso-codes)
b29909b4 127 #:use-module (gnu packages kerberos)
85f5dc19 128 #:use-module (gnu packages libcanberra)
b64e217f 129 #:use-module (gnu packages libunistring)
0e26c3cf 130 #:use-module (gnu packages libunwind)
75016d07 131 #:use-module (gnu packages libusb)
b29909b4 132 #:use-module (gnu packages linux)
4e3fc547 133 #:use-module (gnu packages lirc)
7b212526 134 #:use-module (gnu packages lua)
b29909b4 135 #:use-module (gnu packages mail)
03be9874 136 #:use-module (gnu packages mp3)
b29909b4 137 #:use-module (gnu packages multiprecision)
64fce637 138 #:use-module (gnu packages music)
b29909b4
TGR
139 #:use-module (gnu packages ncurses)
140 #:use-module (gnu packages nettle)
ba5dd105 141 #:use-module (gnu packages networking)
5fc9b6c1 142 #:use-module (gnu packages ninja)
aff0cce9 143 #:use-module (gnu packages nss)
b29909b4 144 #:use-module (gnu packages openldap)
72fd1b3f 145 #:use-module (gnu packages package-management)
b645146f 146 #:use-module (gnu packages password-utils)
de1215e2 147 #:use-module (gnu packages pcre)
b29909b4 148 #:use-module (gnu packages pdf)
27477d2d 149 #:use-module (gnu packages perl)
f70d8383 150 #:use-module (gnu packages photo)
53c41e95 151 #:use-module (gnu packages php)
995b7261 152 #:use-module (gnu packages pkg-config)
b29909b4
TGR
153 #:use-module (gnu packages polkit)
154 #:use-module (gnu packages popt)
7d3bb433 155 #:use-module (gnu packages pretty-print)
23a22af6 156 #:use-module (gnu packages pulseaudio)
995b7261 157 #:use-module (gnu packages python)
00014781
RW
158 #:use-module (gnu packages python-crypto)
159 #:use-module (gnu packages python-web)
44d10b1f 160 #:use-module (gnu packages python-xyz)
cce0da5e 161 #:use-module (gnu packages rdesktop)
70f33d3c 162 #:use-module (gnu packages rdf)
b29909b4 163 #:use-module (gnu packages readline)
a76d0f03 164 #:use-module (gnu packages ruby)
ec47c07d 165 #:use-module (gnu packages rust)
b29909b4 166 #:use-module (gnu packages samba)
75016d07 167 #:use-module (gnu packages scanner)
70f33d3c
RG
168 #:use-module (gnu packages sdl)
169 #:use-module (gnu packages search)
240cee8a 170 #:use-module (gnu packages selinux)
c27e02bf 171 #:use-module (gnu packages slang)
b29909b4
TGR
172 #:use-module (gnu packages speech)
173 #:use-module (gnu packages spice)
cd0322a3 174 #:use-module (gnu packages sqlite)
4a1bf090 175 #:use-module (gnu packages ssh)
2cd1de32 176 #:use-module (gnu packages swig)
8f9ac901 177 #:use-module (gnu packages tex)
33dc54b0 178 #:use-module (gnu packages time)
a7fd7b68 179 #:use-module (gnu packages tls)
2cd1de32 180 #:use-module (gnu packages valgrind)
3c5dbd2b 181 #:use-module (gnu packages version-control)
b29909b4 182 #:use-module (gnu packages video)
59132b80 183 #:use-module (gnu packages virtualization)
f2b96b3a 184 #:use-module (gnu packages vpn)
a18f8eaf 185 #:use-module (gnu packages web)
b29909b4
TGR
186 #:use-module (gnu packages webkit)
187 #:use-module (gnu packages xdisorg)
188 #:use-module (gnu packages xiph)
189 #:use-module (gnu packages xml)
d633f2f6 190 #:use-module (gnu packages xorg)
a76d0f03 191 #:use-module (gnu artwork)
43b6b45e 192 #:use-module ((guix build utils) #:select (modify-phases))
8f523eb9 193 #:use-module (guix build-system cargo)
b29909b4
TGR
194 #:use-module (guix build-system cmake)
195 #:use-module (guix build-system glib-or-gtk)
196 #:use-module (guix build-system gnu)
197 #:use-module (guix build-system meson)
08be02be 198 #:use-module (guix build-system python)
b29909b4
TGR
199 #:use-module (guix build-system trivial)
200 #:use-module (guix download)
201 #:use-module (guix git-download)
202 #:use-module ((guix licenses) #:prefix license:)
203 #:use-module (guix packages)
204 #:use-module (guix utils)
a76d0f03 205 #:use-module (guix gexp)
8f523eb9
EF
206 #:use-module (guix monads)
207 #:use-module (guix store)
4e3fdeb7 208 #:use-module (ice-9 match)
c024ae36 209 #:use-module (srfi srfi-1))
85f5dc19
AE
210
211(define-public brasero
212 (package
213 (name "brasero")
e2bf423a 214 (version "3.12.2")
85f5dc19
AE
215 (source (origin
216 (method url-fetch)
d1df7554 217 (uri (string-append "mirror://gnome/sources/brasero/"
e8627cd9 218 (version-major+minor version) "/"
d1df7554 219 "brasero-" version ".tar.xz"))
85f5dc19
AE
220 (sha256
221 (base32
e2bf423a 222 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
1c40e3b7 223 (build-system glib-or-gtk-build-system)
e8627cd9
DH
224 (arguments
225 `(#:configure-flags (list
226 (string-append "--with-girdir="
227 (assoc-ref %outputs "out")
228 "/share/gir-1.0")
229 (string-append "--with-typelibdir="
230 (assoc-ref %outputs "out")
ce426deb
TD
231 "/lib/girepository-1.0"))
232 #:phases
233 (modify-phases %standard-phases
234 (add-before 'configure 'embed-growisofs
235 (lambda* (#:key inputs #:allow-other-keys)
236 (substitute* "plugins/growisofs/burn-growisofs.c"
237 (("\"growisofs") (string-append "\"" (which "growisofs"))))
e2bf423a 238 #t)))))
85f5dc19
AE
239 (propagated-inputs
240 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
9cc98f8a
CR
241 (native-inputs
242 `(("intltool" ,intltool)
ba549e17 243 ("itstool" ,itstool)
426adbe8 244 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
e8627cd9 245 ("gobject-introspection" ,gobject-introspection)
9cc98f8a 246 ("pkg-config" ,pkg-config)))
85f5dc19 247 (inputs
ce426deb
TD
248 `(("dvd+rw-tools" ,dvd+rw-tools)
249 ("glib" ,glib)
85f5dc19
AE
250 ("gnome-doc-utils" ,gnome-doc-utils)
251 ("gstreamer" ,gstreamer)
252 ("gst-plugins-base" ,gst-plugins-base)
253 ("gtk+" ,gtk+)
85f5dc19
AE
254 ("libcanberra" ,libcanberra)
255 ("libice" ,libice)
256 ("libnotify" ,libnotify)
257 ("libsm" ,libsm)
e8627cd9 258 ("libxml2" ,libxml2)
e8627cd9 259 ("totem-pl-parser" ,totem-pl-parser)))
fb9399e9 260 (home-page "https://wiki.gnome.org/Apps/Brasero")
85f5dc19
AE
261 (synopsis "CD/DVD burning tool for Gnome")
262 (description "Brasero is an application to burn CD/DVD for the Gnome
263Desktop. It is designed to be as simple as possible and has some unique
264features to enable users to create their discs easily and quickly.")
1dd26275 265 (license license:gpl2+)))
995b7261 266
c1082b02
RG
267(define-public gnome-js-common
268 (package
269 (name "gnome-js-common")
270 (version "0.1.2")
271 (source
272 (origin
273 (method url-fetch)
274 (uri
275 (string-append "mirror://gnome/sources/" name "/"
276 (version-major+minor version) "/"
277 name "-" version ".tar.gz"))
278 (sha256
279 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
280 (build-system glib-or-gtk-build-system)
281 (arguments
282 `(#:configure-flags
283 (list
284 "--disable-static")))
285 (native-inputs
286 `(("gettext" ,gettext-minimal)
287 ("intltool" ,intltool)
288 ("pkg-config" ,pkg-config)))
289 (synopsis "Common JS Modules")
290 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
291bindings.")
292 (home-page "https://wiki.gnome.org/Projects/Seed")
293 (license license:gpl3+)))
294
77d7bbf4
RG
295(define-public seed
296 (package
297 (name "seed")
298 (version "3.8.1")
299 (source
300 (origin
301 (method url-fetch)
302 (uri
303 (string-append "mirror://gnome/sources/" name "/"
304 (version-major+minor version) "/"
305 name "-" version ".tar.xz"))
306 (sha256
307 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
308 (patches
309 (search-patches "seed-webkit.patch"))))
310 (build-system glib-or-gtk-build-system)
311 (outputs '("out" "doc"))
312 (arguments
313 `(#:configure-flags
314 (list
315 "--disable-static"
316 "--enable-xorg-module"
317 (string-append "--with-html-dir="
318 (assoc-ref %outputs "doc")
319 "/share/gtk-doc/html")
320 "--with-webkit=4.0")
321 #:phases
322 (modify-phases %standard-phases
323 ;; The seed-webkit.patch patches configure.ac.
324 ;; So the source files need to be re-bootstrapped.
325 (add-after 'unpack 'trigger-bootstrap
326 (lambda _
327 (for-each delete-file
328 (list
329 "configure"
330 "Makefile.in"))
331 #t))
332 (add-before 'build 'patch-docbook-xml
333 (lambda* (#:key inputs #:allow-other-keys)
334 (with-directory-excursion "doc"
335 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
336 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
337 (string-append (assoc-ref inputs "docbook-xml")
338 "/xml/dtd/docbook/"))))
339 #t)))))
340 (native-inputs
341 `(("autoconf" ,autoconf)
342 ("automake" ,automake)
343 ("docbook-xml" ,docbook-xml-4.1.2)
344 ("gettext" ,gettext-minimal)
345 ("gobject-introspection" ,gobject-introspection)
346 ("gtk-doc" ,gtk-doc)
347 ("intltool" ,intltool)
348 ("libtool" ,libtool)
349 ("pkg-config" ,pkg-config)))
350 (inputs
351 `(("cairo" ,cairo)
352 ("dbus" ,dbus)
353 ("dbus-glib" ,dbus-glib)
354 ("gnome-js-common" ,gnome-js-common)
355 ("gtk+" ,gtk+)
356 ("gtk+-2" ,gtk+-2)
357 ("libffi" ,libffi)
358 ("libxml2" ,libxml2)
359 ("mpfr" ,mpfr)
360 ("readline" ,readline)
361 ("sqlite" ,sqlite)
362 ("xscrnsaver" ,libxscrnsaver)))
363 (propagated-inputs
364 `(("glib" ,glib)
365 ("webkit" ,webkitgtk)))
366 (synopsis "GObject JavaScriptCore bridge")
367 (description "Seed is a library and interpreter, dynamically bridging
368(through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
369GNOME platform. It serves as something which enables you to write standalone
370applications in JavaScript, or easily enable your application to be extensible
371in JavaScript.")
372 (home-page "https://wiki.gnome.org/Projects/Seed")
373 (license license:lgpl2.0+)))
374
d668963d
RG
375(define-public libdmapsharing
376 (package
377 (name "libdmapsharing")
378 (version "3.9.10")
379 (source
380 (origin
381 (method url-fetch)
382 (uri
383 (string-append "https://www.flyn.org/projects/"
384 name "/" name "-" version ".tar.gz"))
385 (sha256
386 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
387 (build-system glib-or-gtk-build-system)
388 (outputs '("out" "doc"))
389 (arguments
390 `(#:tests? #f ; Tests require networking.
391 #:configure-flags
392 (list
393 "--disable-static"
394 (string-append "--with-html-dir="
395 (assoc-ref %outputs "doc")
396 "/share/gtk-doc/html"))
397 #:phases
398 (modify-phases %standard-phases
399 (add-after 'unpack 'patch-docbook-xml
400 (lambda* (#:key inputs #:allow-other-keys)
401 (with-directory-excursion "doc"
402 (substitute* "libdmapsharing-4.0-docs.xml"
403 (("http://www.oasis-open.org/docbook/xml/4.3/")
404 (string-append (assoc-ref inputs "docbook-xml")
405 "/xml/dtd/docbook/"))))
406 #t)))))
407 (native-inputs
408 `(("check" ,check)
409 ("docbook-xml" ,docbook-xml-4.3)
410 ("gobject-introspection" ,gobject-introspection)
411 ("pedansee" ,pedansee)
412 ("pkg-config" ,pkg-config)
413 ("vala" ,vala)))
414 (inputs
415 `(("avahi" ,avahi)
416 ("gdk-pixbuf" ,gdk-pixbuf+svg)
417 ("gee" ,libgee)
418 ("gst-plugins-base" ,gst-plugins-base)
419 ("gtk+" ,gtk+)))
420 (propagated-inputs
421 `(("glib" ,glib)
422 ("glib-networking" ,glib-networking)
423 ("gstreamer" ,gstreamer)
424 ("libsoup" ,libsoup)))
425 (synopsis "Media management library")
426 (description "Libdmapsharing is a library which allows programs to access,
427share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
428It is written in C using GObject and libsoup.")
429 (home-page "https://launchpad.net/gtx")
430 (license license:lgpl2.1+)))
431
c15ff237
RG
432(define-public gtx
433 (package
434 (name "gtx")
435 (version "0.2.2")
436 (source
437 (origin
438 (method url-fetch)
439 (uri
440 (string-append "https://launchpad.net/gtx/trunk/"
441 version "/+download/gtx-" version ".tar.gz"))
442 (sha256
443 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
444 (build-system glib-or-gtk-build-system)
445 (outputs '("out" "doc"))
446 (arguments
447 `(#:configure-flags
448 (list
449 "--disable-static"
450 "--enable-gtk-doc"
451 (string-append "--with-html-dir="
452 (assoc-ref %outputs "doc")
453 "/share/gtk-doc/html"))))
454 (native-inputs
455 `(("gobject-introspection" ,gobject-introspection)
456 ("gtk-doc" ,gtk-doc)
457 ("pkg-config" ,pkg-config)))
458 (propagated-inputs
459 `(("glib" ,glib)))
460 (synopsis "GLib Testing Framework")
461 (description "GTX is a small collection of convenience functions intended to
462enhance the GLib testing framework. With specific emphasis on easing the pain
463of writing test cases for asynchronous interactions.")
464 (home-page "https://launchpad.net/gtx")
465 (license license:lgpl2.1+)))
466
8fd769dd
RG
467(define-public dee
468 (package
469 (name "dee")
470 (version "1.2.7")
471 (source
472 (origin
473 (method url-fetch)
474 (uri
475 (string-append "https://launchpad.net/dee/1.0/"
476 version "/+download/dee-" version ".tar.gz"))
477 (sha256
478 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
479 (patches
480 (search-patches "dee-vapi.patch"))))
481 (build-system glib-or-gtk-build-system)
482 (outputs '("out" "doc"))
483 (arguments
484 `(#:configure-flags
485 (list
486 "--disable-maintainer-flags"
487 (string-append "--with-pygi-overrides-dir="
488 (assoc-ref %outputs "out")
489 "/lib/python"
490 ,(version-major+minor
491 (package-version python))
492 "/site-packages/gi/overrides")
493 (string-append "--with-html-dir="
494 (assoc-ref %outputs "doc")
495 "/share/gtk-doc/html"))
496 #:phases
497 (modify-phases %standard-phases
498 (add-after 'unpack 'patch-docbook-xml
499 (lambda* (#:key inputs #:allow-other-keys)
500 (with-directory-excursion "doc/reference/dee-1.0"
501 (substitute* "dee-1.0-docs.sgml"
502 (("http://www.oasis-open.org/docbook/xml/4.3/")
503 (string-append (assoc-ref inputs "docbook-xml")
504 "/xml/dtd/docbook/"))))
505 #t))
506 (add-after 'patch-docbook-xml 'disable-failing-tests
507 (lambda _
508 (substitute* "tests/test-icu.c"
509 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
510 "")
511 (("setup, test_ascii_folder, teardown\\);")
512 ""))
513 #t))
514 (add-before 'check 'pre-check
515 (lambda _
516 ;; Tests require a running dbus-daemon.
517 (system "dbus-daemon &")
518 ;; For missing '/etc/machine-id'.
519 (setenv "DBUS_FATAL_WARNINGS" "0")
520 #t)))))
521 (native-inputs
522 `(("dbus" ,dbus)
523 ("dbus-test-runner" ,dbus-test-runner)
524 ("docbook-xml" ,docbook-xml-4.3)
525 ("gobject-introspection" ,gobject-introspection)
526 ("gtk-doc" ,gtk-doc)
527 ;; Would only be required by configure flag "--enable-extended-tests".
528 ;("gtx" ,gtx)
529 ("pkg-config" ,pkg-config)
530 ("pygobject" ,python-pygobject)
531 ("python" ,python-wrapper)
532 ("vala" ,vala)))
533 (inputs
534 `(("icu" ,icu4c)))
535 (propagated-inputs
536 `(("glib" ,glib)))
537 (synopsis "Model to synchronize multiple instances over DBus")
538 (description "Dee is a library that uses DBus to provide objects allowing
539you to create Model-View-Controller type programs across DBus. It also consists
540of utility objects which extend DBus allowing for peer-to-peer discoverability
541of known objects without needing a central registrar.")
542 (home-page "https://launchpad.net/dee")
543 (license
544 ;; Dual-licensed
545 (list
546 license:lgpl3+
547 license:gpl3+))))
548
70f33d3c
RG
549(define-public zeitgeist
550 (package
551 (name "zeitgeist")
552 (version "1.0.2")
553 (source
554 (origin
555 (method git-fetch)
556 (uri
557 (git-reference
558 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
559 (commit
560 (string-append "v" version))))
561 (file-name
562 (git-file-name name version))
563 (sha256
564 (base32 "0ig3d3j1n0ghaxsgfww6g2hhcdwx8cljwwfmp9jk1nrvkxd6rnmv"))))
565 (build-system glib-or-gtk-build-system)
566 (arguments
567 `(#:configure-flags
568 (list
569 "--enable-explain-queries"
570 "--enable-fts"
571 "--enable-docs")
572 #:phases
573 (modify-phases %standard-phases
574 (add-after 'unpack 'patch-docbook-xml
575 (lambda* (#:key inputs #:allow-other-keys)
576 (with-directory-excursion "doc/libzeitgeist"
577 (substitute* "zeitgeist-gtkdoc-index.sgml"
578 (("http://www.oasis-open.org/docbook/xml/4.3/")
579 (string-append (assoc-ref inputs "docbook-xml")
580 "/xml/dtd/docbook/"))))
581 #t))
582 (add-after 'patch-docbook-xml 'disable-failing-tests
583 (lambda _
584 (substitute* "test/direct/Makefile.am"
585 ((" log-test ")
586 ""))
587 (substitute* "test/c/Makefile.am"
588 ((" test-log ")
589 ""))
590 #t))
591 (add-before 'bootstrap 'remove-autogen-script
592 (lambda _
593 ;; To honor `autoreconf -vif` by build-system.
594 (delete-file "autogen.sh")
595 #t)))))
596 (native-inputs
597 `(("autoconf" ,autoconf)
598 ("automake" ,automake)
599 ("docbook-xml" ,docbook-xml-4.3)
600 ("gettext" ,gettext-minimal)
601 ("gobject-introspection" ,gobject-introspection)
602 ("gtk-doc" ,gtk-doc)
603 ("libtool" ,libtool)
604 ("pkg-config" ,pkg-config)
605 ("vala" ,vala)
606 ("xorg-server-for-tests" ,xorg-server-for-tests)))
607 (inputs
608 `(("dee-icu" ,dee)
609 ("gtk+" ,gtk+)
610 ("json-glib" ,json-glib)
611 ("sqlite" ,sqlite)
612 ("telepathy-glib" ,telepathy-glib)
613 ("python" ,python-wrapper)
614 ("python-rdflib" ,python-rdflib)
615 ("xapian-config" ,xapian)))
616 (propagated-inputs
617 `(("glib" ,glib)))
618 (synopsis "Desktop Activity Logging")
619 (description "Zeitgeist is a service which logs the users’s activities and
620events, anywhere from files opened to websites visited and conversations. It
621makes this information readily available for other applications to use. It is
622able to establish relationships between items based on similarity and usage
623patterns.")
624 (home-page "https://zeitgeist.freedesktop.org/")
625 (license
626 ;; Dual-licensed
627 (list
628 license:lgpl2.1+
629 license:gpl2+))))
630
c15ff237
RG
631(define-public libcloudproviders
632 (package
633 (name "libcloudproviders")
634 (version "0.3.1")
635 (source
636 (origin
637 (method url-fetch)
638 (uri
639 (string-append "mirror://gnome/sources/" name "/"
640 (version-major+minor version) "/"
641 name "-" version ".tar.xz"))
642 (sha256
643 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
644 (build-system meson-build-system)
645 (outputs '("out" "doc"))
646 (arguments
647 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
648 #:configure-flags
649 (list
650 "-Denable-gtk-doc=true")
651 #:phases
652 (modify-phases %standard-phases
653 (add-after 'install 'move-doc
654 (lambda* (#:key outputs #:allow-other-keys)
655 (let* ((out (assoc-ref outputs "out"))
656 (doc (assoc-ref outputs "doc")))
657 (mkdir-p (string-append doc "/share"))
658 (rename-file
659 (string-append out "/share/gtk-doc")
660 (string-append doc "/share/gtk-doc"))
661 #t))))))
662 (native-inputs
663 `(("glib:bin" ,glib "bin")
664 ("gobject-introspection" ,gobject-introspection)
665 ("gtk-doc" ,gtk-doc)
666 ("pkg-config" ,pkg-config)
667 ("vala" ,vala)))
668 (inputs
669 `(("glib" ,glib)
670 ("glib-networking" ,glib-networking)))
671 (synopsis "Cloudproviders Integration API")
672 (description "Libcloudproviders is a DBus API that allows cloud storage sync
673clients to expose their services. Clients such as file managers and desktop
674environments can then provide integrated access to the cloud providers
675services.")
676 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
677 (license license:lgpl3+)))
678
4e36c8a0
RG
679(define-public sysprof
680 (package
681 (name "sysprof")
682 (version "3.36.0")
683 (source
684 (origin
685 (method url-fetch)
686 (uri
687 (string-append "mirror://gnome/sources/" name "/"
688 (version-major+minor version) "/"
689 name "-" version ".tar.xz"))
690 (sha256
691 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
692 (build-system meson-build-system)
693 (arguments
694 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas.
695 #:configure-flags
696 (list
697 ;; SystemD not required.
698 "-Dsystemdunitdir=/tmp")))
699 (native-inputs
700 `(("desktop-file-utils" ,desktop-file-utils)
701 ("gettext" ,gettext-minimal)
702 ("glib:bin" ,glib "bin")
703 ("gobject-introspection" ,gobject-introspection)
704 ("gtk+:bin" ,gtk+ "bin")
705 ("itstool" ,itstool)
706 ("pkg-config" ,pkg-config)
707 ("xmllint" ,libxml2)))
708 (inputs
709 `(("libdazzle" ,libdazzle)
710 ("libunwind" ,libunwind)
711 ("pango" ,pango)
712 ("polkit" ,polkit)))
713 (propagated-inputs
714 `(("glib" ,glib)
715 ("gtk+" ,gtk+)))
716 (synopsis "Kernel based performance profiler")
717 (description "Sysprof is a sampling profiler that uses a kernel module to
718generate stacktraces which are then interpreted by the userspace program
719sysprof.")
720 (home-page "https://wiki.gnome.org/Apps/Sysprof")
721 (license
722 (list
723 ;; For newer codes.
724 license:gpl3+
725 ;; For older codes.
726 license:gpl2+))))
727
56db7a66
RG
728(define-public gnome-photos
729 (package
730 (name "gnome-photos")
731 (version "3.34.2")
732 (source
733 (origin
734 (method url-fetch)
735 (uri
736 (string-append "mirror://gnome/sources/" name "/"
737 (version-major+minor version) "/"
738 name "-" version ".tar.xz"))
739 (sha256
740 (base32
741 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
742 (build-system meson-build-system)
743 (arguments
744 `(#:glib-or-gtk? #t
745 #:configure-flags
746 (list "-Ddogtail=false" ; Not available
747 ;; Required for RUNPATH validation.
748 (string-append "-Dc_link_args=-Wl,-rpath="
749 (assoc-ref %outputs "out") "/lib/gnome-photos"))
750 #:phases
751 (modify-phases %standard-phases
752 (add-after 'install 'wrap-gnome-photos
753 (lambda* (#:key inputs outputs #:allow-other-keys)
754 (let*
755 ((out (assoc-ref outputs "out")))
756 (wrap-program (string-append out "/bin/gnome-photos")
757 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
758 #t)))))
759 (native-inputs
760 `(("dbus" ,dbus)
761 ("desktop-file-utils" ,desktop-file-utils)
762 ("gettext" ,gettext-minimal)
763 ("git" ,git-minimal)
764 ("glib:bin" ,glib "bin")
765 ("gobject-introspection" ,gobject-introspection)
766 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
767 ("gtk+:bin" ,gtk+ "bin")
768 ("itstool" ,itstool)
769 ("pkg-config" ,pkg-config)))
770 (inputs
771 `(("babl" ,babl)
772 ("cairo" ,cairo)
773 ("gdk-pixbuf" ,gdk-pixbuf+svg)
774 ("gegl" ,gegl)
775 ("geocode-glib" ,geocode-glib)
776 ("gexiv2" ,gexiv2)
777 ("gnome-online-accounts" ,gnome-online-accounts)
778 ("gnome-online-miners" ,gnome-online-miners)
779 ("grilo" ,grilo)
780 ("grilo-plugins" ,grilo-plugins)
781 ("gtk+" ,gtk+)
782 ("libdazzle" ,libdazzle)
783 ("libgdata" ,libgdata)
784 ("libgfbgraph" ,gfbgraph)
785 ("libjpeg" ,libjpeg-turbo)
786 ("libpng" ,libpng)
787 ("librest" ,rest)
788 ("pygobject" ,python-pygobject)
789 ("tracker" ,tracker)
790 ("tracker-miners" ,tracker-miners)))
791 (synopsis "Access, organize and share your photos on GNOME desktop")
792 (description "GNOME Photos is a simple and elegant replacement for using a
793file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
794cloud integration is offered through GNOME Online Accounts.")
795 (home-page "https://wiki.gnome.org/Apps/Photos")
796 (license license:gpl3+)))
797
1aefe650
RG
798(define-public gnome-music
799 (package
800 (name "gnome-music")
801 (version "3.34.5")
802 (source
803 (origin
804 (method url-fetch)
805 (uri
806 (string-append "mirror://gnome/sources/" name "/"
807 (version-major+minor version) "/"
808 name "-" version ".tar.xz"))
809 (sha256
810 (base32
811 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
812 (build-system meson-build-system)
813 (arguments
814 `(#:glib-or-gtk? #t
815 #:phases
816 (modify-phases %standard-phases
817 (add-after 'install 'wrap-gnome-music
818 (lambda* (#:key inputs outputs #:allow-other-keys)
819 (let*
820 ((out (assoc-ref outputs "out"))
821 (pylib (string-append out "/lib/python"
822 ,(version-major+minor
823 (package-version python))
824 "/site-packages")))
825 (wrap-program (string-append out "/bin/gnome-music")
826 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
827 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
828 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
829 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
830 #t)))))
831 (native-inputs
832 `(("desktop-file-utils" ,desktop-file-utils)
833 ("gettext" ,gettext-minimal)
834 ("glib:bin" ,glib "bin")
835 ("gobject-introspection" ,gobject-introspection)
836 ("gtk+:bin" ,gtk+ "bin")
837 ("itstools" ,itstool)
838 ("pkg-config" ,pkg-config)))
839 (inputs
840 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
841 ("grilo" ,grilo)
842 ("grilo-plugins" ,grilo-plugins)
843 ("gst-plugins-base" ,gst-plugins-base)
844 ("gstreamer" ,gstreamer)
845 ("gvfs" ,gvfs)
846 ("libdazzle" ,libdazzle)
847 ("libmediaart" ,libmediaart)
848 ("libsoup" ,libsoup)
849 ("pycairo" ,python-pycairo)
850 ("pygobject" ,python-pygobject)
851 ("tracker" ,tracker)
852 ("tracker-miners" ,tracker-miners)))
853 (synopsis "Simple music player for GNOME desktop")
854 (description "GNOME Music is the new GNOME music playing application that
855aims to combine an elegant and immersive browsing experience with simple
856and straightforward controls.")
857 (home-page "https://wiki.gnome.org/Apps/Music")
858 (license license:gpl2+)))
859
72fd1b3f
RG
860(define-public portablexdr
861 (package
862 (name "portablexdr")
863 (version "4.9.1")
864 (source
865 (origin
866 (method url-fetch)
867 (uri
868 (string-append "https://people.redhat.com/~rjones/" name "/files/"
869 name "-" version ".tar.gz"))
870 (sha256
871 (base32
872 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
873 (build-system gnu-build-system)
874 (synopsis "External Data Representation Library")
875 (description "PortableXDR is an implementation of External Data
876Representation (XDR) Library. It is a standard data serialization format, for
877uses such as computer network protocols. It allows data to be transferred
878between different kinds of computer systems.")
879 (home-page "https://people.redhat.com/~rjones/portablexdr/")
880 (license
881 (list
882 license:gpl2+
883 license:lgpl2.1+))))
884
30003a64
RG
885(define-public tepl
886 (package
887 (name "tepl")
888 (version "4.4.0")
889 (source
890 (origin
891 (method url-fetch)
892 (uri
893 (string-append "mirror://gnome/sources/" name "/"
894 (version-major+minor version) "/"
895 name "-" version ".tar.xz"))
896 (sha256
897 (base32
898 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
899 (build-system glib-or-gtk-build-system)
900 (arguments
901 `(#:tests? #f)) ; FIX-ME: Requires gvfs
902 (native-inputs
903 `(("gobject-introspection" ,gobject-introspection)
904 ("pkg-config" ,pkg-config)))
905 (inputs
906 `(("amtk" ,amtk)
907 ("glib" ,glib)
908 ("gtk+" ,gtk+)
909 ("gtksourceview" ,gtksourceview)
910 ("libxml2" ,libxml2)
911 ("uchardet" ,uchardet)))
912 (synopsis "Text editor product line")
913 (description "Tepl is a library that eases the development of
914GtkSourceView-based text editors and IDEs.")
915 (home-page "https://wiki.gnome.org/Projects/Tepl")
916 (license license:lgpl2.1+)))
917
2e6bc595
RG
918(define-public krb5-auth-dialog
919 (package
920 (name "krb5-auth-dialog")
921 (version "3.26.1")
922 (source
923 (origin
924 (method url-fetch)
925 (uri
926 (string-append "mirror://gnome/sources/" name "/"
927 (version-major+minor version) "/"
928 name "-" version ".tar.xz"))
929 (sha256
930 (base32
931 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
932 (build-system glib-or-gtk-build-system)
933 (native-inputs
934 `(("intltool" ,intltool)
935 ("itstool" ,itstool)
936 ("libxml2" ,libxml2)
937 ("pkg-config" ,pkg-config)
938 ("python-wrapper" ,python-wrapper)))
939 (inputs
940 `(("glib" ,glib)
941 ("gtk+" ,gtk+)
942 ("libnotify" ,libnotify)
943 ("mit-krb5" ,mit-krb5)
944 ("network-manager" ,network-manager)))
945 (synopsis "Popup dialogs for Kerberos 5")
946 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
947tickets, and pops up a dialog when they are about to expire.")
948 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
949 (license license:gpl2+)))
950
a3cbcbaf
RG
951(define-public notification-daemon
952 (package
953 (name "notification-daemon")
954 (version "3.20.0")
955 (source
956 (origin
957 (method url-fetch)
958 (uri
959 (string-append "mirror://gnome/sources/" name "/"
960 (version-major+minor version) "/"
961 name "-" version ".tar.xz"))
962 (sha256
963 (base32
964 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
965 (build-system glib-or-gtk-build-system)
966 (native-inputs
967 `(("intltool" ,intltool)
968 ("pkg-config" ,pkg-config)))
969 (inputs
970 `(("glib" ,glib)
971 ("gtk+" ,gtk+)
972 ("x11" ,libx11)))
973 (synopsis "Notification Daemon for GNOME Desktop")
974 (description "Notification-Daemon is the server implementation of the
975freedesktop.org desktop notification specification.")
976 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
977 (license license:gpl2+)))
978
4e8bdbf8
RG
979(define-public mm-common
980 (package
981 (name "mm-common")
553f2f3f 982 (version "1.0.1")
4e8bdbf8
RG
983 (source (origin
984 (method url-fetch)
02cb4ca7 985 (uri (string-append "mirror://gnome/sources/mm-common/"
4e8bdbf8 986 (version-major+minor version) "/"
02cb4ca7 987 "mm-common-" version ".tar.xz"))
4e8bdbf8
RG
988 (sha256
989 (base32
553f2f3f 990 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
4e8bdbf8
RG
991 (build-system meson-build-system)
992 (arguments
993 `(#:phases
994 (modify-phases %standard-phases
995 (add-after 'unpack 'patch
996 (lambda* (#:key inputs #:allow-other-keys)
997 (substitute* "util/mm-common-prepare.in"
998 (("ln") (string-append (assoc-ref inputs "coreutils")
999 "/bin/ln"))
1000 (("cp") (string-append (assoc-ref inputs "coreutils")
1001 "/bin/cp"))
1002 (("sed") (string-append (assoc-ref inputs "sed")
1003 "/bin/sed"))
1004 (("cat") (string-append (assoc-ref inputs "coreutils")
1005 "/bin/cat")))
1006 #t)))))
1007 (native-inputs
4e8bdbf8 1008 `(("coreutils" ,coreutils)
74a65885
DM
1009 ("gettext" ,gettext-minimal)
1010 ("pkg-config" ,pkg-config)
4e8bdbf8 1011 ("sed" ,sed)))
74a65885
DM
1012 (inputs
1013 `(("python" ,python)))
4e8bdbf8
RG
1014 (synopsis "Module of GNOME C++ bindings")
1015 (description "The mm-common module provides the build infrastructure
1016and utilities shared among the GNOME C++ binding libraries. Release
1017archives of mm-common include the Doxygen tag file for the GNU C++
1018Library reference documentation.")
1019 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1020 (license license:gpl2+)))
1021
e05ce17d
RG
1022(define-public phodav
1023 (package
1024 (name "phodav")
1025 (version "2.4")
1026 (source (origin
1027 (method url-fetch)
1028 (uri (string-append "mirror://gnome/sources/" name "/"
1029 (version-major+minor version) "/"
1030 name "-" version ".tar.xz"))
1031 (sha256
1032 (base32
1033 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
1034 (build-system meson-build-system)
1035 (native-inputs
1036 `(("gettext" ,gettext-minimal)
1037 ("glib:bin" ,glib "bin")
1038 ("gtk-doc" ,gtk-doc)
1039 ("pkg-config" ,pkg-config)))
1040 (inputs
1041 `(("avahi" ,avahi)
1042 ("libgudev" ,libgudev)
1043 ("libsoup" ,libsoup)))
1044 (synopsis "WebDav server implementation using libsoup")
1045 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1046but it is generic enough to be reused in other projects,
1047in particular in the GNOME desktop.")
1048 (home-page "https://wiki.gnome.org/phodav")
1049 (license license:lgpl2.1+)))
1050
29ae18db
RG
1051(define-public gnome-color-manager
1052 (package
1053 (name "gnome-color-manager")
1054 (version "3.32.0")
1055 (source (origin
1056 (method url-fetch)
1057 (uri (string-append "mirror://gnome/sources/" name "/"
1058 (version-major+minor version) "/"
1059 name "-" version ".tar.xz"))
1060 (sha256
1061 (base32
1062 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
1063 (build-system meson-build-system)
1064 (arguments
1065 `(#:glib-or-gtk? #t
1066 #:phases
1067 (modify-phases %standard-phases
1068 (add-before
1069 'check 'pre-check
1070 (lambda _
1071 ;; Tests require a running X server.
1072 (system "Xvfb :1 &")
1073 (setenv "DISPLAY" ":1")
1074 #t)))))
1075 (native-inputs
1076 `(("desktop-file-utils" ,desktop-file-utils)
1077 ("gettext" ,gettext-minimal)
1078 ("glib:bin" ,glib "bin")
1079 ("gtk+:bin" ,gtk+ "bin")
1080 ("itstool" ,itstool)
1081 ("pkg-config" ,pkg-config)
1082 ("xorg-server" ,xorg-server-for-tests)))
1083 (inputs
1084 `(("adwaita-icon-theme" ,adwaita-icon-theme)
1085 ("appstream-glib" ,appstream-glib)
1086 ("colord-gtk" ,colord-gtk)
1087 ("exiv2" ,exiv2)
1088 ("gnome-desktop" ,gnome-desktop)
1089 ("libcanberra" ,libcanberra)
1090 ("libexif" ,libexif)
1091 ("libtiff" ,libtiff)
1092 ("libxrandr" ,libxrandr)
1093 ("libxtst" ,libxtst)
1094 ("libxxf86vm" ,libxxf86vm)
1095 ("vte" ,vte)
1096 ("xorgproto" ,xorgproto)))
1097 (synopsis "Color profile manager for the GNOME desktop")
1098 (description "GNOME Color Manager is a session framework that makes
1099it easy to manage, install and generate color profiles
1100in the GNOME desktop.")
1101 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
7bd000d1 1102 (license license:gpl2+)))
29ae18db 1103
e05471a1
RG
1104(define-public gnome-online-miners
1105 (package
1106 (name "gnome-online-miners")
49dcd7fc 1107 (version "3.34.0")
e05471a1
RG
1108 (source (origin
1109 (method url-fetch)
1110 (uri (string-append "mirror://gnome/sources/" name "/"
1111 (version-major+minor version) "/"
1112 name "-" version ".tar.xz"))
1113 (sha256
1114 (base32
49dcd7fc 1115 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
e05471a1
RG
1116 (build-system glib-or-gtk-build-system)
1117 (native-inputs
1118 `(("gettext" ,gettext-minimal)
1119 ("glib:bin" ,glib "bin")
29ae18db 1120 ("gobject-introspection" ,gobject-introspection)
e05471a1
RG
1121 ("gtk+:bin" ,gtk+ "bin")
1122 ("pkg-config" ,pkg-config)))
1123 (inputs
1124 `(("gnome-online-accounts" ,gnome-online-accounts)
1125 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
e05471a1
RG
1126 ("grilo" ,grilo)
1127 ("libgdata" ,libgdata)
1128 ("libgfbgraph" ,gfbgraph)
1129 ("libzapojit" ,libzapojit)
1130 ("rest" ,rest)
1131 ("tracker" ,tracker)))
1132 (synopsis "Web Crawlers for GNOME")
1133 (description "GNOME Online Miners provides a set of crawlers that
1134go through your online content and index them locally in Tracker.
1135It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1136 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
7bd000d1 1137 (license license:gpl2+)))
e05471a1 1138
e2aed29c
RG
1139(define-public gssdp
1140 (package
1141 (name "gssdp")
c257e0ec 1142 (version "1.2.3")
e2aed29c
RG
1143 (source (origin
1144 (method url-fetch)
1145 (uri (string-append "mirror://gnome/sources/" name "/"
1146 (version-major+minor version) "/"
1147 name "-" version ".tar.xz"))
1148 (sha256
1149 (base32
c257e0ec 1150 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
e2aed29c
RG
1151 (build-system meson-build-system)
1152 (native-inputs
1153 `(("gettext" ,gettext-minimal)
1154 ("glib:bin" ,glib "bin")
1155 ("gobject-introspection" ,gobject-introspection)
1156 ("gtk-doc" ,gtk-doc)
1157 ("pkg-config" ,pkg-config)
1158 ("vala" ,vala)))
1159 (inputs
1160 `(("gtk+" ,gtk+)
1161 ("libsoup" ,libsoup)))
1162 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1163Protocol} for GNOME")
1164 (description "This package provides a library to handle resource discovery
1165and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1166a debugging tool, @command{gssdp-device-sniffer}.")
1167 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1168 (license license:lgpl2.0+)))
1169
291a85b2
RG
1170(define-public gupnp
1171 (package
1172 (name "gupnp")
5b882f47 1173 (version "1.2.4")
291a85b2
RG
1174 (source (origin
1175 (method url-fetch)
1176 (uri (string-append "mirror://gnome/sources/" name "/"
1177 (version-major+minor version) "/"
1178 name "-" version ".tar.xz"))
1179 (sha256
1180 (base32
5b882f47 1181 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
291a85b2
RG
1182 (build-system meson-build-system)
1183 (native-inputs
1184 `(("gettext" ,gettext-minimal)
1185 ("glib:bin" ,glib "bin")
1186 ("gobject-introspection" ,gobject-introspection)
1187 ("gtk-doc" ,gtk-doc)
1188 ("pkg-config" ,pkg-config)
1189 ("vala" ,vala)))
1190 (inputs
1191 `(("gssdp" ,gssdp)
1192 ("gtk+" ,gtk+)
1193 ("libsoup" ,libsoup)))
1194 (synopsis "PnP API for GNOME")
1195 (description "This package provides GUPnP, an object-oriented framework
1196for creating UPnP devices and control points, written in C using
1197@code{GObject} and @code{libsoup}.")
1198 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1199 (license license:lgpl2.0+)))
1200
747d7fe4
RG
1201(define-public gupnp-dlna
1202 (package
1203 (name "gupnp-dlna")
1204 (version "0.10.5")
1205 (source (origin
1206 (method url-fetch)
1207 (uri (string-append "mirror://gnome/sources/" name "/"
1208 (version-major+minor version) "/"
1209 name "-" version ".tar.xz"))
1210 (sha256
1211 (base32
1212 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1213 (build-system gnu-build-system)
1214 (native-inputs
1215 `(("gettext" ,gettext-minimal)
1216 ("glib:bin" ,glib "bin")
1217 ("gobject-introspection" ,gobject-introspection)
1218 ("gtk-doc" ,gtk-doc)
1219 ("libxml" ,libxml2)
1220 ("pkg-config" ,pkg-config)
1221 ("vala" ,vala)))
1222 (inputs
1223 `(("gstreamer" ,gstreamer)
1224 ("gupnp" ,gupnp)))
1225 (propagated-inputs
1226 `(("gst-plugins-base" ,gst-plugins-base)
1227 ("gst-plugins-good" ,gst-plugins-good)))
1228 (synopsis "GUPnP DLNA for GNOME")
1229 (description "This package provides a small utility library to
1230support DLNA-related tasks such as media profile guessing, transcoding to a
1231given profile, etc. DLNA is a subset of UPnP A/V.")
1232 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1233 (license license:lgpl2.0+)))
1234
1b4cb628
RG
1235(define-public gupnp-av
1236 (package
1237 (name "gupnp-av")
1238 (version "0.12.11")
1239 (source (origin
1240 (method url-fetch)
1241 (uri (string-append "mirror://gnome/sources/" name "/"
1242 (version-major+minor version) "/"
1243 name "-" version ".tar.xz"))
1244 (sha256
1245 (base32
1246 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1247 (build-system gnu-build-system)
1248 (native-inputs
1249 `(("gettext" ,gettext-minimal)
1250 ("glib:bin" ,glib "bin")
1251 ("gobject-introspection" ,gobject-introspection)
1252 ("gtk-doc" ,gtk-doc)
1253 ("libxml" ,libxml2)
1254 ("pkg-config" ,pkg-config)))
1255 (inputs
1256 `(("gtk+" ,gtk+)
1257 ("gupnp" ,gupnp)))
1258 (synopsis "GUPnP A/V for GNOME")
1259 (description "This package provides a small library for handling
1260and implementation of UPnP A/V profiles.")
1261 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1262 (license license:lgpl2.0+)))
e05471a1 1263
02ebbca8
RG
1264(define-public libmediaart
1265 (package
1266 (name "libmediaart")
1267 (version "1.9.4")
1268 (source (origin
1269 (method url-fetch)
1270 (uri (string-append "mirror://gnome/sources/" name "/"
1271 (version-major+minor version) "/"
1272 name "-" version ".tar.xz"))
1273 (sha256
1274 (base32
1275 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
1276 (build-system gnu-build-system)
1277 (native-inputs
1278 `(("glib:bin" ,glib "bin")
1279 ("pkg-config" ,pkg-config)))
1280 (inputs
1281 `(("gdk-pixbuf" ,gdk-pixbuf)
1282 ("gettext" ,gettext-minimal)
1283 ("gobject-introspection" ,gobject-introspection)
1284 ("gtk+:doc", gtk+ "doc")
1285 ("vala" ,vala)))
1286 (synopsis "Media art library for the GNOME desktop")
1287 (description
1288 "The libmediaart library is the foundation for media art caching,
1289extraction, and lookup for applications on the desktop.")
1290 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1291 (license license:lgpl2.1+)))
1292
a26680eb
RG
1293(define-public gnome-initial-setup
1294 (package
1295 (name "gnome-initial-setup")
1296 (version "3.32.1")
1297 (source (origin
1298 (method url-fetch)
1299 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1300 (version-major+minor version)
1301 "/gnome-initial-setup-" version ".tar.xz"))
1302 (sha256
1303 (base32
1304 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
1305 (build-system meson-build-system)
1306 (arguments
a65cc579
DM
1307 '(#:configure-flags '(;; Enable camera support for user selfie.
1308 "-Dcheese=auto"
c627e2cb
LC
1309 "-Dsystemd=false")
1310 #:phases (modify-phases %standard-phases
1311 (add-after 'unpack 'set-gkbd-file-name
1312 (lambda* (#:key inputs #:allow-other-keys)
1313 ;; Allow the "Preview" button in the keyboard layout
1314 ;; selection dialog to display the layout.
1315 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
1316 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1317 (("\"gkbd-keyboard-display")
1318 (string-append "\"" libgnomekbd
1319 "/bin/gkbd-keyboard-display")))
1320 #t))))))
a26680eb
RG
1321 (native-inputs
1322 `(("gettext" ,gettext-minimal)
1323 ("glib:bin" ,glib "bin")
1324 ("gobject-introspection" ,gobject-introspection)
1325 ("gtk+:bin" ,gtk+ "bin")
1326 ("pkg-config" ,pkg-config)))
1327 (inputs
1328 `(("accountsservice" ,accountsservice)
1329 ;("adwaita-icon-theme" ,adwaita-icon-theme)
1330 ("gdm" ,gdm)
1331 ("geoclue" ,geoclue)
1332 ("gnome-desktop" ,gnome-desktop)
1333 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1334 ("gnome-online-accounts" ,gnome-online-accounts)
1335 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1336 ("gstreamer" ,gstreamer)
1337 ("ibus" ,ibus)
1338 ("json-glib" ,json-glib)
1339 ("krb5" ,mit-krb5)
1340 ("libgweather" ,libgweather)
8d9477b8 1341 ("libnma" ,libnma)
a26680eb
RG
1342 ("libsecret" ,libsecret)
1343 ("network-manager" ,network-manager)
a26680eb
RG
1344 ("packagekit" ,packagekit)
1345 ("polkit" ,polkit)
1346 ("pwquality" ,libpwquality)
1347 ("rest" ,rest)
1348 ("upower" ,upower)
c627e2cb
LC
1349 ("webkitgtk" ,webkitgtk)
1350 ("libgnomekbd" ,libgnomekbd)))
a26680eb 1351 (synopsis "Initial setup wizard for GNOME desktop")
a65cc579
DM
1352 (description "This package provides a set-up wizard when a
1353user logs into GNOME for the first time. It typically provides a
1354tour of all gnome components and allows the user to set them up.")
a26680eb
RG
1355 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1356 (license license:gpl2)))
1357
b5f01392
RG
1358(define-public gnome-user-share
1359 (package
1360 (name "gnome-user-share")
1361 (version "3.33.1")
1362 (source (origin
1363 (method url-fetch)
1364 (uri (string-append "mirror://gnome/sources/" name "/"
1365 (version-major+minor version) "/"
1366 name "-" version ".tar.xz"))
1367 (sha256
1368 (base32
1369 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1370 (build-system meson-build-system)
1371 (arguments
1372 `(#:glib-or-gtk? #t
1373 #:configure-flags
1374 `("-Dsystemd=false"
1375 ;; Enable nautilus extension for file sharing.
1376 "-Dnautilus_extension=true")))
1377 (native-inputs
1378 `(("gettext" ,gettext-minimal)
1379 ("glib:bin" ,glib "bin")
1380 ("gobject-introspection" ,gobject-introspection)
1381 ("gtk+:bin" ,gtk+ "bin")
1382 ("pkg-config" ,pkg-config)
1383 ("yelp-tools" ,yelp-tools)))
1384 (inputs
1385 `(("glib" ,glib)
1386 ("gnome-bluetooth" ,gnome-bluetooth)
1387 ("gtk+" ,gtk+)
1388 ("libcanberra" ,libcanberra)
1389 ("libnotify" ,libnotify)
1390 ("nautilus" ,nautilus))) ; For nautilus extension.
1391 (synopsis "File sharing for GNOME desktop")
1392 (description "GNOME User Share is a small package that binds together
1393various free software projects to bring easy to use user-level file
1394sharing to the masses.")
1395 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
2aeca24b 1396 (license license:gpl2+)))
b5f01392 1397
04b201bb
RG
1398(define-public sushi
1399 (package
1400 (name "sushi")
1401 (version "3.32.1")
1402 (source (origin
1403 (method url-fetch)
1404 (uri (string-append "mirror://gnome/sources/" name "/"
1405 (version-major+minor version) "/"
1406 name "-" version ".tar.xz"))
1407 (sha256
1408 (base32
1409 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1410 (build-system meson-build-system)
1411 (arguments
1412 `(#:glib-or-gtk? #t
1413 #:phases
1414 (modify-phases %standard-phases
1415 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1416 (lambda* (#:key outputs #:allow-other-keys)
1417 (let ((prog (string-append (assoc-ref outputs "out")
1418 "/bin/sushi")))
1419 ;; Put existing typelibs before sushi's deps, so as to correctly
1420 ;; infer gdk-pixbuf
1421 (wrap-program prog
1422 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1423 #t))))))
1424 (native-inputs
1425 `(("glib:bin" ,glib "bin")
1426 ("gettext" ,gettext-minimal)
1427 ("gobject-introspection" ,gobject-introspection)
1428 ("pkg-config" ,pkg-config)))
1429 (inputs
1430 `(("clutter" ,clutter)
1431 ("clutter-gst" ,clutter-gst)
1432 ("clutter-gtk" ,clutter-gtk)
1433 ("evince" ,evince) ; For file previewing.
1434 ("freetype" ,freetype)
1435 ("gdk-pixbuf" ,gdk-pixbuf)
1436 ("gjs" ,gjs)
1437 ("gst-plugins-base" ,gst-plugins-base)
1438 ("gstreamer" ,gstreamer)
1439 ("gtksourceview" ,gtksourceview-3)
1440 ("harfbuzz" ,harfbuzz)
1441 ("libepoxy" ,libepoxy)
1442 ("libmusicbrainz" ,libmusicbrainz)
1443 ("libxml2" ,libxml2)
1444 ("neon" ,neon)
1445 ("webkitgtk" ,webkitgtk)))
1446 (synopsis "File previewer for the GNOME desktop")
1447 (description "Sushi is a DBus-activated service that allows applications to
1448preview files on the GNOME desktop.")
1449 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1450 (license license:gpl2+)))
1451
89af0902
RG
1452(define-public rygel
1453 (package
1454 (name "rygel")
1455 (version "0.38.3")
1456 (source (origin
1457 (method url-fetch)
1458 (uri (string-append "mirror://gnome/sources/" name "/"
1459 (version-major+minor version) "/"
1460 name "-" version ".tar.xz"))
1461 (sha256
1462 (base32
1463 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1464 (build-system gnu-build-system)
1465 (native-inputs
1466 `(("gettext" ,gettext-minimal)
1467 ("gobject-introspection" ,gobject-introspection)
1468 ("gtk-doc" ,gtk-doc)
1469 ("pkg-config" ,pkg-config)
1470 ("vala" ,vala)))
1471 (inputs
1472 `(("gdk-pixbuf" ,gdk-pixbuf)
1473 ("gssdp" ,gssdp)
1474 ("gstreamer" ,gstreamer)
1475 ("gst-plugins-base" ,gst-plugins-base)
1476 ("gtk+" ,gtk+)
1477 ("gupnp" ,gupnp)
1478 ("gupnp-av" ,gupnp-av)
1479 ("gupnp-dlna" ,gupnp-dlna)
1480 ("libgee" ,libgee)
1481 ("libmediaart" ,libmediaart)
1482 ("libsoup" ,libsoup)
1483 ("libxslt" ,libxslt)
1484 ("libunistring" ,libunistring)
1485 ("tracker" ,tracker)))
1486 (synopsis "Share audio, video, and pictures with other devices")
1487 (description
1488 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1489MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1490pictures, and to control a media player on your home network.
1491
1492Rygel achieves interoperability with other devices by trying to conform to the
1493strict requirements of DLNA and by converting media on-the-fly to formats that
1494client devices can handle.")
1495 (home-page "https://wiki.gnome.org/Projects/Rygel")
1496 (license (list
1497 ;; For logo (data/icons/*).
1498 license:cc-by-sa3.0
1499 ;; For all others.
1500 license:lgpl2.1+))))
1501
47e87093
RG
1502(define-public libnma
1503 (package
b1da33d9
BW
1504 (name "libnma")
1505 (version "1.8.28")
1506 (source (origin
1507 (method url-fetch)
1508 (uri (string-append "mirror://gnome/sources/" name "/"
1509 (version-major+minor version) "/"
1510 name "-" version ".tar.xz"))
1511 (sha256
1512 (base32
1513 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1514 (build-system meson-build-system)
1515 (arguments
1516 `(#:phases
1517 (modify-phases %standard-phases
1518 (add-after 'unpack 'patch-docbook-xml
1519 (lambda* (#:key inputs #:allow-other-keys)
1520 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1521 "/xml/dtd/docbook")))
1522 (substitute* "libnma-docs.xml"
1523 (("http://.*/docbookx\\.dtd")
1524 (string-append xmldoc "/docbookx.dtd")))
1525 #t))))))
1526 (native-inputs
1527 `(("docbook-xml" ,docbook-xml-4.3)
1528 ("gettext" ,gettext-minimal)
1529 ("glib:bin" ,glib "bin")
1530 ("gtk-doc" ,gtk-doc)
1531 ("gobject-introspection" ,gobject-introspection)
1532 ("pkg-config" ,pkg-config)
1533 ("vala" ,vala)))
1534 (inputs
1535 `(("gcr" ,gcr)
1536 ("gtk+" ,gtk+)
1537 ("iso-codes" ,iso-codes)
1538 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1539 ("network-manager" ,network-manager)))
1540 (synopsis "Network Manager's applet library")
1541 (description "Libnma is an applet library for Network Manager. It was
47e87093
RG
1542initially part of network-manager-applet and has now become a separate
1543project.")
c25ca6b7
BW
1544 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1545 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1546 ;; "LGPL-2.1+".
1547 (license license:gpl2+)))
47e87093 1548
30416265
RG
1549(define-public gnome-menus
1550 (package
1551 (name "gnome-menus")
1552 (version "3.32.0")
1553 (source (origin
1554 (method url-fetch)
1555 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1556 (version-major+minor version) "/"
1557 name "-" version ".tar.xz"))
1558 (sha256
1559 (base32
1560 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1561 (build-system gnu-build-system)
1562 (native-inputs
1563 `(("gettext" ,gettext-minimal)
1564 ("glib" ,glib)
1565 ("pkg-config" ,pkg-config)))
1566 (synopsis "Menu support for GNOME desktop")
1567 (description "GNOME Menus contains the libgnome-menu library, the layout
1568configuration files for the GNOME menu, as well as a simple menu editor.")
1569 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
7bd000d1 1570 (license license:lgpl2.0+)))
30416265 1571
d61a894b
CB
1572(define-public deja-dup
1573 (package
1574 (name "deja-dup")
899ffa13 1575 (version "40.6")
d61a894b 1576 (source (origin
899ffa13
BW
1577 (method url-fetch)
1578 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1579 version "/deja-dup-" version ".tar.bz2"))
1580 (sha256
1581 (base32
1582 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1583 (build-system meson-build-system)
d61a894b 1584 (arguments
899ffa13
BW
1585 `(#:glib-or-gtk? #t
1586 #:configure-flags
1587 (list
1588 ;; Otherwise, the RUNPATH will lack the final path component.
1589 (string-append "-Dc_link_args=-Wl,-rpath="
1590 (assoc-ref %outputs "out") "/lib/deja-dup"))
d61a894b
CB
1591 #:phases
1592 (modify-phases %standard-phases
899ffa13
BW
1593 (add-after 'unpack 'patch-paths
1594 (lambda* (#:key inputs #:allow-other-keys)
1595 (let ((python (assoc-ref inputs "python")))
1596 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1597 "libdeja/tests/scripts/instance-error.test")
1598 (("/bin/rm")
1599 (which "rm")))
1600 (substitute* "libdeja/tests/runner.vala"
1601 (("/bin/sh")
1602 (which "sh")))
1603 (substitute* "libdeja/tests/scripts/instance-error.test"
1604 (("`which python3`")
1605 (string-append python "/bin/python3"))))))
1606 (add-after 'unpack 'patch-libgpg-error
1607 (lambda* (#:key inputs #:allow-other-keys)
1608 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1609 (substitute* "meson.build"
1610 (("(gpgerror_libs = ).*" _ var)
1611 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1612 #t))
1613 (add-after 'unpack 'skip-gtk-update-icon-cache
1614 ;; Don't create 'icon-theme.cache'.
1615 (lambda _
1616 (substitute* "data/post-install.sh"
1617 (("gtk-update-icon-cache") "true"))
1618 #t)))))
d61a894b
CB
1619 (inputs
1620 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
d61a894b 1621 ("duplicity" ,duplicity)
899ffa13
BW
1622 ("python" ,python)
1623 ("python-pygobject" ,python-pygobject)
d61a894b 1624 ("gtk+" ,gtk+)
899ffa13 1625 ("json-glib" ,json-glib)
d61a894b 1626 ("libnotify" ,libnotify)
899ffa13 1627 ("libgpg-error" ,libgpg-error)
d61a894b 1628 ("libsecret" ,libsecret)
899ffa13 1629 ("libsoup" ,libsoup)
d61a894b
CB
1630 ("packagekit" ,packagekit)))
1631 (native-inputs
899ffa13
BW
1632 `(("appstream-glib" ,appstream-glib)
1633 ("desktop-file-utils" ,desktop-file-utils)
d61a894b 1634 ("gettext" ,gettext-minimal)
899ffa13
BW
1635 ("glib" ,glib "bin") ; for glib-compile-schemas.
1636 ("gobject-introspection" ,gobject-introspection)
d61a894b 1637 ("itstool" ,itstool)
899ffa13
BW
1638 ("pkg-config" ,pkg-config)
1639 ("vala" ,vala)))
1640 (home-page "https://wiki.gnome.org/Apps/DejaDup")
d61a894b
CB
1641 (synopsis "Simple backup tool, for regular encrypted backups")
1642 (description
1643 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1644uses duplicity as the backend, which supports incremental backups and storage
1645either on a local, or remote machine via a number of methods.")
1646 (license license:gpl3+)))
1647
823b77fb
RG
1648(define-public gnome-user-docs
1649 (package
1650 (name "gnome-user-docs")
1651 (version "3.32.3")
1652 (source
1653 (origin
1654 (method url-fetch)
1655 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1656 (version-major+minor version)
1657 "/gnome-user-docs-" version ".tar.xz"))
1658 (sha256
1659 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1660 (build-system gnu-build-system)
1661 (native-inputs
1662 `(("gettext" ,gettext-minimal)
1663 ("itstool" ,itstool)
1664 ("pkg-config" ,pkg-config)
1665 ("xmllint" ,libxml2)))
1666 (synopsis "User documentation for the GNOME desktop")
1667 (description
1668 "The GNOME User Documentation explains how to use the GNOME desktop and its
1669components. It covers usage and setup of the core GNOME programs by end-users
1670and system administrators.")
1671 (home-page "https://live.gnome.org/DocumentationProject")
1672 (license license:cc-by3.0)))
1673
be93299d
RG
1674(define-public gnome-getting-started-docs
1675 (package
1676 (name "gnome-getting-started-docs")
1677 (version "3.32.2")
1678 (source
1679 (origin
1680 (method url-fetch)
1681 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1682 (version-major+minor version)
1683 "/gnome-getting-started-docs-" version ".tar.xz"))
1684 (sha256
1685 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1686 (build-system gnu-build-system)
1687 (native-inputs
1688 `(("gettext" ,gettext-minimal)
1689 ("itstool" ,itstool)
1690 ("pkg-config" ,pkg-config)
1691 ("xmllint" ,libxml2)))
1692 (synopsis "Help to get new users started with the GNOME desktop")
1693 (description
1694 "The GNOME Getting Started Documentation contains GNOME's intuitive
1695\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1696
1697It is normally used together with @command{gnome-initial-setup}, but is also
1698useful as a tutorial and users' guide for new or less experienced users.")
1699 (home-page "https://live.gnome.org/DocumentationProject")
1700 (license license:cc-by-sa3.0)))
1701
a56be436
RJ
1702(define-public dia
1703 ;; This version from GNOME's repository includes fixes for compiling with
1704 ;; recent versions of the build tools. The latest activity on the
1705 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
f8687cb2
TGR
1706 ;; fixes since.
1707 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1708 (revision "2"))
a56be436
RJ
1709 (package
1710 (name "dia")
f8687cb2 1711 (version (git-version "0.97.3" revision commit))
a56be436
RJ
1712 (source (origin
1713 (method git-fetch)
1714 (uri (git-reference
914c8cdf 1715 (url "https://gitlab.gnome.org/GNOME/dia.git/")
a56be436 1716 (commit commit)))
914c8cdf 1717 (file-name (git-file-name name version))
a56be436
RJ
1718 (sha256
1719 (base32
f8687cb2
TGR
1720 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1721 (build-system meson-build-system)
a56be436 1722 (inputs
f8687cb2 1723 `(("graphene" ,graphene)
a56be436
RJ
1724 ("gtk+" ,gtk+-2)
1725 ("libxml2" ,libxml2)
f8687cb2
TGR
1726 ("libxslt" ,libxslt)
1727 ("poppler" ,poppler)
1728 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1729 ;; ERROR: Unknown method "dependency" in object.
1730 ("python-2" ,python-2)))
a56be436 1731 (native-inputs
f8687cb2
TGR
1732 `(("appstream-glib" ,appstream-glib)
1733 ("docbook-xsl" ,docbook-xsl)
a315afa3 1734 ("glib" ,glib "bin")
f8687cb2
TGR
1735 ("intltool" ,intltool)
1736 ("pkg-config" ,pkg-config)))
a56be436
RJ
1737 (home-page "https://wiki.gnome.org/Apps/Dia")
1738 (synopsis "Diagram creation for GNOME")
1739 (description "Dia can be used to draw different types of diagrams, and
1740includes support for UML static structure diagrams (class diagrams), entity
1741relationship modeling, and network diagrams. The program supports various file
1742formats like PNG, SVG, PDF and EPS.")
1743 (license license:gpl2+))))
1744
d0b19e44
RW
1745;; This is the unstable release, but it is required for the current stable
1746;; release of gvfs (1.38.1).
adc5cb1b
KK
1747(define-public libgdata
1748 (package
1749 (name "libgdata")
d0b19e44 1750 (version "0.17.9")
adc5cb1b
KK
1751 (source (origin
1752 (method url-fetch)
1753 (uri (string-append "mirror://gnome/sources/" name "/"
1754 (version-major+minor version) "/"
1755 name "-" version ".tar.xz"))
1756 (sha256
1757 (base32
d0b19e44 1758 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
adc5cb1b
KK
1759 (build-system gnu-build-system)
1760 (arguments
1761 '(#:phases
1762 (modify-phases %standard-phases
448052b7
TGR
1763 (add-before 'check 'disable-failing-tests
1764 (lambda _
1765 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1766 ;; They have been removed in libgdata 0.17.6, so just do the same.
1767 (substitute* "gdata/tests/Makefile"
1768 (("picasaweb\\$\\(EXEEXT\\) ") ""))
adc5cb1b
KK
1769 #t)))))
1770 (native-inputs
1771 `(("glib:bin" ,glib "bin")
1772 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1773 ("intltool" ,intltool)
1774 ("pkg-config" ,pkg-config)
1775 ("uhttpmock" ,uhttpmock)))
1776 (inputs
1777 `(("cyrus-sasl" ,cyrus-sasl)
d0b19e44 1778 ("glib-networking" ,glib-networking)))
adc5cb1b
KK
1779 (propagated-inputs
1780 `(("gcr" ,gcr)
d0b19e44 1781 ("glib" ,glib)
14c297fd 1782 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
d0b19e44 1783 ("json-glib" ,json-glib)
adc5cb1b 1784 ("liboauth" ,liboauth)
d0b19e44 1785 ("libsoup" ,libsoup)
adc5cb1b
KK
1786 ("libxml2" ,libxml2)))
1787 (home-page "https://wiki.gnome.org/Projects/libgdata")
1788 (synopsis "Library for accessing online service APIs")
1789 (description
1790 "libgdata is a GLib-based library for accessing online service APIs using
1791the GData protocol — most notably, Google's services. It provides APIs to
1792access the common Google services, and has full asynchronous support.")
1793 (license license:lgpl2.1+)))
1794
94e10cf4
KK
1795(define-public libgxps
1796 (package
1797 (name "libgxps")
66470a5a 1798 (version "0.3.1")
94e10cf4
KK
1799 (source (origin
1800 (method url-fetch)
7f10628c 1801 (uri (string-append "mirror://gnome/sources/" name "/"
94e10cf4
KK
1802 (version-major+minor version) "/"
1803 name "-" version ".tar.xz"))
1804 (sha256
1805 (base32
66470a5a 1806 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
b6b3e512 1807 (build-system meson-build-system)
94e10cf4
KK
1808 (native-inputs
1809 `(("gobject-introspection" ,gobject-introspection)
1810 ("pkg-config" ,pkg-config)))
1811 (inputs
c8d62d93 1812 `(("gtk+" ,gtk+)
b6b3e512 1813 ("libjpeg" ,libjpeg-turbo)
94e10cf4 1814 ("lcms" ,lcms)
0a6e9e13 1815 ("libtiff" ,libtiff)))
c8d62d93
MB
1816 (propagated-inputs
1817 ;; In Requires of libgxps.pc.
1818 `(("cairo" ,cairo)
1819 ("glib" ,glib)
1820 ("libarchive" ,libarchive)))
94e10cf4
KK
1821 (home-page "https://wiki.gnome.org/Projects/libgxps")
1822 (synopsis "GObject-based library for handling and rendering XPS documents")
1823 (description
1824 "libgxps is a GObject-based library for handling and rendering XPS
1825documents. This package also contains binaries that can convert XPS documents
1826to other formats.")
1827 (license license:lgpl2.1+)))
1828
4e09f57a
RG
1829(define-public gnome-characters
1830 (package
1831 (name "gnome-characters")
1832 (version "3.30.0")
1833 (source
1834 (origin
1835 (method url-fetch)
1836 (uri (string-append "mirror://gnome/sources/"
1837 "gnome-characters/" (version-major+minor version)
1838 "/gnome-characters-" version ".tar.xz"))
1839 (sha256
1840 (base32
1841 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1842 (build-system meson-build-system)
5757c641 1843 (arguments
1844 `(#:glib-or-gtk? #t
1845 #:phases (modify-phases %standard-phases
1846 (add-after 'install 'wrap
1847 (lambda* (#:key outputs #:allow-other-keys)
1848 ;; GNOME Characters needs Typelib files from GTK and
1849 ;; gnome-desktop.
1850 (wrap-program (string-append (assoc-ref outputs "out")
1851 "/bin/gnome-characters")
1852 `("GI_TYPELIB_PATH" ":" prefix
1853 (,(getenv "GI_TYPELIB_PATH"))))
1854 #t)))))
4e09f57a
RG
1855 (native-inputs
1856 `(("gettext" ,gettext-minimal)
1857 ("glib:bin" ,glib "bin")
1858 ("gtk+:bin" ,gtk+ "bin")
1859 ("pkg-config" ,pkg-config)
1860 ("python" ,python-minimal)))
1861 (inputs
1862 `(("gjs" ,gjs)
1863 ("gtk+" ,gtk+)
5757c641 1864 ("libunistring" ,libunistring)
1865 ("gnome-desktop" ,gnome-desktop)))
4e09f57a
RG
1866 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1867 (synopsis "Find and insert unusual characters")
1868 (description "Characters is a simple utility application to find
1869and insert unusual characters. It allows you to quickly find the
1870character you are looking for by searching for keywords.")
1871 (license license:bsd-3)))
1872
7aab13f1
ML
1873(define-public gnome-common
1874 (package
1875 (name "gnome-common")
af83490d 1876 (version "3.18.0")
7aab13f1
ML
1877 (source
1878 (origin
1879 (method url-fetch)
1880 (uri (string-append "mirror://gnome/sources/" name "/"
1881 (version-major+minor version) "/"
1882 name "-" version ".tar.xz"))
1883 (sha256
1884 (base32
af83490d 1885 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
7aab13f1
ML
1886 (build-system gnu-build-system)
1887 (home-page "https://www.gnome.org/")
1888 (synopsis "Bootstrap GNOME modules built from Git")
1889 (description "gnome-common contains various files needed to bootstrap
1890GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1891can be used to configure a source directory checked out from Git and some
1892commonly used macros.")
1893 (license license:gpl2+)))
1894
4e868d22
RG
1895(define-public gnome-contacts
1896 (package
1897 (name "gnome-contacts")
b3492e39 1898 (version "3.34")
4e868d22
RG
1899 (source (origin
1900 (method url-fetch)
1901 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1902 (version-major+minor version) "/"
1903 name "-" version ".tar.xz"))
1904 (sha256
1905 (base32
b3492e39 1906 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
4e868d22
RG
1907 (build-system meson-build-system)
1908 (arguments
b3492e39
KK
1909 `(#:configure-flags '("-Dcheese=false")
1910 #:phases
4e868d22
RG
1911 (modify-phases %standard-phases
1912 (add-after 'unpack 'generate-vapis
1913 (lambda* (#:key inputs #:allow-other-keys)
1914 ;; To generate goa's missing .vapi file
1915 (define goa
1916 (assoc-ref inputs "gnome-online-accounts:lib"))
1917
1918 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1919 "--library=goa-1.0"
1920 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
b3492e39
KK
1921 #t))
1922 (add-after 'unpack 'skip-gtk-update-icon-cache
1923 ;; Don't create 'icon-theme.cache'.
1924 (lambda _
1925 (substitute* "build-aux/meson_post_install.py"
1926 (("gtk-update-icon-cache") "true"))
4e868d22
RG
1927 #t)))))
1928 (native-inputs
1929 `(("glib:bin" ,glib "bin")
4e868d22
RG
1930 ("pkg-config" ,pkg-config)))
1931 (inputs
b3492e39 1932 `(("docbook-xml" ,docbook-xml)
4e868d22
RG
1933 ("dockbook-xsl" ,docbook-xsl)
1934 ("evolution-data-server" ,evolution-data-server)
1935 ("gettext" ,gettext-minimal)
1936 ("gnome-desktop" ,gnome-desktop)
1937 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1938 ("gobject-introspection" ,gobject-introspection)
1939 ("gst-plugins-base" ,gst-plugins-base)
1940 ("gtk+" ,gtk+)
1941 ("libgee" ,libgee)
1942 ("libxslt" ,libxslt)
1943 ("telepathy-glib" ,telepathy-glib)
1944 ("vala" ,vala)))
1945 (propagated-inputs
1946 `(("folks", folks)
1947 ("telepathy-mission-control" ,telepathy-mission-control)))
1948 (synopsis "GNOME's integrated address book")
1949 (description
1950 "GNOME Contacts organizes your contact information from online and
1951offline sources, providing a centralized place for managing your contacts.")
1952 (home-page "https://wiki.gnome.org/Apps/Contacts")
1953 (license license:gpl2+)))
1954
9cc98f8a
CR
1955(define-public gnome-desktop
1956 (package
1957 (name "gnome-desktop")
8a7afc81 1958 (version "3.34.2")
9cc98f8a
CR
1959 (source
1960 (origin
1961 (method url-fetch)
b38e45d8
EB
1962 (uri (string-append "mirror://gnome/sources/" name "/"
1963 (version-major+minor version) "/"
9cc98f8a
CR
1964 name "-" version ".tar.xz"))
1965 (sha256
1966 (base32
8a7afc81 1967 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
e8a26caa 1968 (build-system meson-build-system)
a0fe7c06
CB
1969 (arguments
1970 '(#:phases
1971 (modify-phases %standard-phases
1972 (add-before 'configure 'patch-path
1973 (lambda* (#:key inputs #:allow-other-keys)
1974 (let ((libc (assoc-ref inputs "libc")))
1975 (substitute* "libgnome-desktop/gnome-languages.c"
1976 (("\"locale\"")
1977 (string-append "\"" libc "/bin/locale\"")))
e8a26caa 1978 #t)))
3857aba7
CB
1979 (add-before 'configure 'patch-bubblewrap
1980 (lambda* (#:key inputs #:allow-other-keys)
1981 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
1982 (("\"bwrap\",")
1983 (string-append "\"" (which "bwrap") "\","))
1984 (("\"--ro-bind\", \"/usr\", \"/usr\",")
1985 (string-append "\"--ro-bind\", \""
1986 (%store-directory)
1987 "\", \""
1988 (%store-directory)
1989 "\","))
1990 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
1991 #t))
e8a26caa
KK
1992 (add-before 'check 'pre-check
1993 (lambda* (#:key inputs #:allow-other-keys)
1994 ;; Tests require a running X server and locales.
1995 (system "Xvfb :1 &")
1996 (setenv "DISPLAY" ":1")
1997 (setenv "GUIX_LOCPATH"
1998 (string-append (assoc-ref inputs "glibc-locales")
1999 "/lib/locale"))
2000 #t)))))
9cc98f8a 2001 (native-inputs
e8a26caa
KK
2002 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
2003 ("glibc-locales" ,glibc-locales) ; for tests
2004 ("gobject-introspection" ,gobject-introspection)
a8340482 2005 ("itstool" ,itstool)
bcb354ad
SB
2006 ("intltool" ,intltool)
2007 ("pkg-config" ,pkg-config)
e8a26caa
KK
2008 ("xmllint" ,libxml2)
2009 ("xorg-server" ,xorg-server-for-tests)))
a8340482
SB
2010 (propagated-inputs
2011 ;; Required by gnome-desktop-3.0.pc.
2012 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
e8a26caa 2013 ("gtk+" ,gtk+)
9cc98f8a 2014 ("iso-codes" ,iso-codes)
9863ce20 2015 ("libseccomp" ,libseccomp)
9cc98f8a 2016 ("libx11" ,libx11)
e8a26caa
KK
2017 ("xkeyboard-config" ,xkeyboard-config)))
2018 (inputs
2019 `(("gdk-pixbuf" ,gdk-pixbuf)
2020 ("glib" ,glib)
3857aba7 2021 ("bubblewrap" ,bubblewrap)
9cc98f8a
CR
2022 ("libxext" ,libxext)
2023 ("libxkbfile" ,libxkbfile)
e8a26caa 2024 ("libxrandr" ,libxrandr)))
9cc98f8a
CR
2025 (home-page "https://www.gnome.org/")
2026 (synopsis
35b9e423 2027 "Libgnome-desktop, gnome-about, and desktop-wide documents")
9cc98f8a
CR
2028 (description
2029 "The libgnome-desktop library provides API shared by several applications
35b9e423
EB
2030on the desktop, but that cannot live in the platform for various reasons.
2031There is no API or ABI guarantee, although we are doing our best to provide
2032stability. Documentation for the API is available with gtk-doc.
9cc98f8a
CR
2033
2034The gnome-about program helps find which version of GNOME is installed.")
2035 ; Some bits under the LGPL.
1dd26275 2036 (license license:gpl2+)))
9cc98f8a 2037
995b7261
AE
2038(define-public gnome-doc-utils
2039 (package
2040 (name "gnome-doc-utils")
2041 (version "0.20.10")
2042 (source
2043 (origin
2044 (method url-fetch)
b38e45d8
EB
2045 (uri (string-append "mirror://gnome/sources/" name "/"
2046 (version-major+minor version) "/"
995b7261
AE
2047 name "-" version ".tar.xz"))
2048 (sha256
2049 (base32
2050 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
2051 (build-system gnu-build-system)
c4c4cc05 2052 (native-inputs
995b7261 2053 `(("intltool" ,intltool)
b4ce6300 2054 ("docbook-xml" ,docbook-xml-4.4)
d80b0d4a 2055 ("python2-libxml2" ,python2-libxml2)
995b7261
AE
2056 ("libxml2" ,libxml2)
2057 ("libxslt" ,libxslt)
2058 ("pkg-config" ,pkg-config)
2059 ("python-2" ,python-2)))
995b7261
AE
2060 (home-page "https://wiki.gnome.org/GnomeDocUtils")
2061 (synopsis
2062 "Documentation utilities for the Gnome project")
2063 (description
2064 "Gnome-doc-utils is a collection of documentation utilities for the
2065Gnome project. It includes xml2po tool which makes it easier to translate
2066and keep up to date translations of documentation.")
1dd26275 2067 (license license:gpl2+))) ; xslt under lgpl
d9c1a22b 2068
6c4f7022
DC
2069(define-public gnome-disk-utility
2070 (package
2071 (name "gnome-disk-utility")
262e660e 2072 (version "3.34.0")
6c4f7022
DC
2073 (source (origin
2074 (method url-fetch)
2075 (uri (string-append "mirror://gnome/sources/" name "/"
2076 (version-major+minor version) "/"
2077 name "-" version ".tar.xz"))
2078 (sha256
2079 (base32
262e660e 2080 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
4b9a65bf 2081 (build-system meson-build-system)
321c73c3 2082 (arguments
262e660e
KK
2083 '(#:configure-flags '("-Dlogind=libelogind")
2084 #:phases
321c73c3
EF
2085 (modify-phases %standard-phases
2086 (add-after 'unpack 'skip-gtk-update-icon-cache
2087 ;; Don't create 'icon-theme.cache'.
2088 (lambda _
2089 (substitute* "meson_post_install.py"
2090 (("gtk-update-icon-cache") "true"))
2091 #t)))))
6c4f7022
DC
2092 (native-inputs
2093 `(("glib:bin" ,glib "bin")
2094 ("intltool" ,intltool)
2095 ("pkg-config" ,pkg-config)
2096 ("docbook-xml" ,docbook-xml)
2097 ("docbook-xsl" ,docbook-xsl)
2098 ("libxml2" ,libxml2)
2099 ("libxslt" ,libxslt)))
2100 (inputs
262e660e
KK
2101 `(("elogind" ,elogind)
2102 ("glib" ,glib)
6c4f7022
DC
2103 ("appstream-glib" ,appstream-glib)
2104 ("gnome-settings-daemon" ,gnome-settings-daemon)
2105 ("gtk+" ,gtk+)
2106 ("libcanberra" ,libcanberra)
2107 ("libdvdread" ,libdvdread)
2108 ("libnotify" ,libnotify)
2109 ("libpwquality" ,libpwquality)
2110 ("libsecret" ,libsecret)
2111 ("udisks" ,udisks)))
2112 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2113 (synopsis "Disk management utility for GNOME")
2114 (description "Disk management utility for GNOME.")
2115 (license license:gpl2+)))
2116
3d217317
RG
2117(define-public gnome-font-viewer
2118 (package
2119 (name "gnome-font-viewer")
2120 (version "3.30.0")
2121 (source (origin
2122 (method url-fetch)
2123 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2124 (version-major+minor version)
2125 "/gnome-font-viewer-" version ".tar.xz"))
2126 (sha256
2127 (base32
2128 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
2129 (build-system meson-build-system)
2130 (arguments
2131 '(#:phases
2132 (modify-phases %standard-phases
2133 (add-after 'unpack 'patch-post-install-script
2134 (lambda _
2135 (substitute* "meson-postinstall.sh"
2136 (("update-desktop-database") (which "true")))
2137 #t)))))
2138 (native-inputs
2139 `(("gettext" ,gettext-minimal)
2140 ("glib:bin" ,glib "bin")
2141 ("pkg-config" ,pkg-config)))
2142 (inputs
2143 `(("glib" ,glib)
2144 ("gnome-desktop" ,gnome-desktop)
2145 ("gtk+" ,gtk+)))
2146 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2147 (synopsis "GNOME Fonts")
2148 (description "Application to show you the fonts installed on your computer
2149for your use as thumbnails. Selecting any thumbnails shows the full view of how
2150the font would look under various sizes.")
2151 (license license:gpl2+)))
2152
8ff49011
RW
2153(define-public gcr
2154 (package
2155 (name "gcr")
1de804da 2156 (version "3.34.0")
8ff49011 2157 (source (origin
0daf0efb
RW
2158 (method url-fetch)
2159 (uri (string-append "mirror://gnome/sources/" name "/"
2160 (version-major+minor version) "/"
2161 name "-" version ".tar.xz"))
2162 (sha256
2163 (base32
1de804da 2164 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
8ff49011
RW
2165 (build-system gnu-build-system)
2166 (arguments
0daf0efb
RW
2167 '(#:phases
2168 (modify-phases %standard-phases
2169 ;; These fail because /var/lib/dbus/machine-id is not present in the
2170 ;; build environment.
2171 (add-after 'unpack 'disable-failing-tests
2172 (lambda _
1de804da
MB
2173 (substitute* "Makefile.in"
2174 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
2175 ""))
0daf0efb
RW
2176 #t))
2177 (add-before 'check 'pre-check
2178 (lambda _
2179 ;; Some tests expect to write to $HOME.
2180 (setenv "HOME" "/tmp")
2181 #t)))))
8ff49011
RW
2182 (inputs
2183 `(("dbus" ,dbus)
0daf0efb 2184 ("gnupg" ,gnupg) ;called as a child process during tests
8ff49011
RW
2185 ("libgcrypt" ,libgcrypt)))
2186 (native-inputs
1de804da 2187 `(("python" ,python-wrapper) ;for tests
8ff49011 2188 ("pkg-config" ,pkg-config)
1de804da 2189 ("gettext" ,gettext-minimal)
8ff49011 2190 ("glib" ,glib "bin")
2af4f5b0 2191 ("gobject-introspection" ,gobject-introspection)
0daf0efb 2192 ("libxml2" ,libxml2)
bea6b829 2193 ("vala" ,vala)
2af4f5b0 2194 ("xsltproc" ,libxslt)))
8ff49011
RW
2195 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2196 (propagated-inputs
2197 `(("p11-kit" ,p11-kit)
2198 ("glib" ,glib)
2199 ("gtk+" ,gtk+)))
f032d0be 2200 (home-page "https://www.gnome.org")
8ff49011
RW
2201 (synopsis "Libraries for displaying certificates and accessing key stores")
2202 (description
2203 "The GCR package contains libraries used for displaying certificates and
2204accessing key stores. It also provides the viewer for crypto files on the
2205GNOME Desktop.")
2206 (license license:lgpl2.1+)))
2207
88e61bd4
MC
2208(define-public gdl
2209 (package
2210 (name "gdl")
2211 (version "3.34.0")
2212 (source (origin
2213 (method git-fetch)
2214 (uri (git-reference
2215 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2216 (commit (string-append "GDL_" (string-map (match-lambda
2217 (#\. #\_)
2218 (c c))
2219 version)))))
2220 (file-name (git-file-name name version))
2221 (sha256
2222 (base32
2223 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2224 (build-system gnu-build-system)
88e61bd4
MC
2225 (native-inputs
2226 `(("autoconf" ,autoconf)
2227 ("automake" ,automake)
2228 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2229 ("gnome-common" ,gnome-common)
2230 ("gtk-doc" ,gtk-doc)
2231 ("intltool" ,intltool)
2232 ("pkg-config" ,pkg-config)
2233 ("libtool" ,libtool)
2234 ("which" ,which)))
2235 (inputs
2236 `(("libxml2" ,libxml2)))
2237 (propagated-inputs
2238 ;; The gdl-3.0.pc file 'Requires' GTK+.
2239 `(("gtk+" ,gtk+)))
2240 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2241 (synopsis "GNOME docking library")
2242 (description "This library provides docking features for gtk+.")
2243 (license license:lgpl2.1+)))
2244
ca3adf26
MC
2245;;; A minimal variant used to break a cycle with Inkscape.
2246(define-public gdl-minimal
2247 (package
2248 (inherit gdl)
2249 (name "gdl-minimal")
2250 (arguments
70cf0113
EF
2251 '(#:phases
2252 (modify-phases %standard-phases
2253 (add-after 'unpack 'disable-doc-generation
2254 ;; XXX: There is no easy way to disable generating the
2255 ;; documentation.
2256 (lambda _
2257 (substitute* "configure.in"
2258 (("GTK_DOC_CHECK.*") "")
2259 (("docs/.*") ""))
2260 (substitute* "Makefile.am"
2261 (("gdl docs po") "gdl po"))
2262 #t)))))
ca3adf26
MC
2263 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2264
c1354b90
LC
2265(define-public libgnome-keyring
2266 (package
2267 (name "libgnome-keyring")
5e8aec2c 2268 (version "3.12.0")
c1354b90
LC
2269 (source (origin
2270 (method url-fetch)
b38e45d8
EB
2271 (uri (string-append "mirror://gnome/sources/" name "/"
2272 (version-major+minor version) "/"
2273 name "-" version ".tar.xz"))
c1354b90
LC
2274 (sha256
2275 (base32
5e8aec2c 2276 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
c1354b90 2277 (build-system gnu-build-system)
c1354b90 2278 (inputs
c4c4cc05 2279 `(("libgcrypt" ,libgcrypt)
c1354b90 2280 ("dbus" ,dbus)))
c4c4cc05
JD
2281 (native-inputs
2282 `(("pkg-config" ,pkg-config)
426adbe8 2283 ("glib" ,glib "bin")
c4c4cc05 2284 ("intltool" ,intltool)))
c1354b90
LC
2285 (propagated-inputs
2286 ;; Referred to in .h files and .pc.
2287 `(("glib" ,glib)))
f032d0be 2288 (home-page "https://www.gnome.org")
c1354b90
LC
2289 (synopsis "Accessing passwords from the GNOME keyring")
2290 (description
2291 "Client library to access passwords from the GNOME keyring.")
2292
2293 ;; Though a couple of files are LGPLv2.1+.
1dd26275 2294 (license license:lgpl2.0+)))
c1354b90 2295
e99a3d6f
RW
2296(define-public gnome-keyring
2297 (package
2298 (name "gnome-keyring")
14faeadd 2299 (version "3.34.0")
e99a3d6f
RW
2300 (source (origin
2301 (method url-fetch)
2302 (uri (string-append "mirror://gnome/sources/" name "/"
2303 (version-major+minor version) "/"
2304 name "-" version ".tar.xz"))
2305 (sha256
2306 (base32
14faeadd 2307 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
e99a3d6f
RW
2308 (build-system gnu-build-system)
2309 (arguments
2310 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
2311 ;not exist
2312 #:configure-flags
2313 (list
2314 (string-append "--with-pkcs11-config="
2315 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
2316 (string-append "--with-pkcs11-modules="
2317 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
2318 #:phases
2319 (modify-phases %standard-phases
ab35cc6e
RW
2320 (add-after 'unpack 'fix-/bin/sh-reference
2321 (lambda _
2322 (substitute* "po/Makefile.in.in"
2323 (("/bin/sh") (which "sh")))
2324 #t))
5120f24f
RW
2325 (add-after 'unpack 'fix-docbook
2326 (lambda* (#:key inputs #:allow-other-keys)
2327 (substitute* "docs/Makefile.am"
2328 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2329 (string-append (assoc-ref inputs "docbook-xsl")
2330 "/xml/xsl/docbook-xsl-"
2331 ,(package-version docbook-xsl)
2332 "/manpages/docbook.xsl")))
2333 (setenv "XML_CATALOG_FILES"
2334 (string-append (assoc-ref inputs "docbook-xml")
2335 "/xml/dtd/docbook/catalog.xml"))
2336 ;; Rerun the whole thing to avoid version mismatch ("This is
2337 ;; Automake 1.15.1, but the definition used by this
2338 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2339 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2340 (invoke "autoconf")
2341 (invoke "aclocal")
2342 (invoke "automake" "-ac"))))))
e99a3d6f
RW
2343 (inputs
2344 `(("libgcrypt" ,libgcrypt)
1a0b2d82 2345 ("linux-pam" ,linux-pam)
ab35cc6e 2346 ("openssh" ,openssh)
e99a3d6f
RW
2347 ("dbus" ,dbus)
2348 ("gcr" ,gcr)))
2349 (native-inputs
2350 `(("pkg-config" ,pkg-config)
2351 ("glib" ,glib "bin")
5120f24f 2352 ("glib" ,glib) ; for m4 macros
e99a3d6f
RW
2353 ("python" ,python-2) ;for tests
2354 ("intltool" ,intltool)
2355 ("autoconf" ,autoconf)
2356 ("automake" ,automake)
2357 ("libxslt" ,libxslt) ;for documentation
2358 ("docbook-xml" ,docbook-xml-4.2)
2359 ("docbook-xsl" ,docbook-xsl)))
f032d0be 2360 (home-page "https://www.gnome.org")
e99a3d6f
RW
2361 (synopsis "Daemon to store passwords and encryption keys")
2362 (description
2363 "gnome-keyring is a program that keeps passwords and other secrets for
2364users. It is run as a daemon in the session, similar to ssh-agent, and other
2365applications locate it via an environment variable or D-Bus.
2366
2367The program can manage several keyrings, each with its own master password,
2368and there is also a session keyring which is never stored to disk, but
2369forgotten when the session ends.")
2370 (license license:lgpl2.1+)))
2371
c1354b90
LC
2372(define-public evince
2373 (package
2374 (name "evince")
de08b5b2 2375 (version "3.36.5")
c1354b90
LC
2376 (source (origin
2377 (method url-fetch)
ac631328 2378 (uri (string-append "mirror://gnome/sources/evince/"
b38e45d8 2379 (version-major+minor version) "/"
ac631328 2380 "evince-" version ".tar.xz"))
c1354b90
LC
2381 (sha256
2382 (base32
de08b5b2 2383 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
121de2e1 2384 (build-system glib-or-gtk-build-system)
c1354b90 2385 (arguments
169b8f77 2386 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
554b2dac
SB
2387 #:phases
2388 (modify-phases %standard-phases
2389 (add-before 'install 'skip-gtk-update-icon-cache
2390 ;; Don't create 'icon-theme.cache'.
2391 (lambda _
2392 (substitute* "data/Makefile"
2393 (("gtk-update-icon-cache") "true"))
2394 #t)))))
c1354b90 2395 (inputs
9a096881
KK
2396 `(("libarchive" ,libarchive)
2397 ("libgxps" ,libgxps)
2398 ("libspectre" ,libspectre)
c769cf9f 2399 ("djvulibre" ,djvulibre)
c1354b90
LC
2400 ("ghostscript" ,ghostscript)
2401 ("poppler" ,poppler)
c769cf9f
SB
2402 ("libtiff" ,libtiff)
2403 ;; TODO:
c769cf9f
SB
2404 ;; Build libkpathsea as a shared library for DVI support.
2405 ;; ("libkpathsea" ,texlive-bin)
2406 ("gnome-desktop" ,gnome-desktop)
c1354b90 2407 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2dfc16d1 2408 ("gspell" ,gspell)
c1354b90 2409 ("libgnome-keyring" ,libgnome-keyring)
c769cf9f 2410 ("adwaita-icon-theme" ,adwaita-icon-theme)
c1354b90
LC
2411 ("gdk-pixbuf" ,gdk-pixbuf)
2412 ("atk" ,atk)
2413 ("pango" ,pango)
2414 ("gtk+" ,gtk+)
2415 ("glib" ,glib)
2416 ("libxml2" ,libxml2)
c1354b90
LC
2417 ("libsm" ,libsm)
2418 ("libice" ,libice)
96e42467 2419 ("shared-mime-info" ,shared-mime-info)
3d243e9c
FB
2420 ("dconf" ,dconf)
2421 ("libcanberra" ,libcanberra)
c769cf9f 2422 ("libsecret" ,libsecret)
a271096b 2423
c1354b90
LC
2424 ;; For tests.
2425 ("dogtail" ,python2-dogtail)))
96e42467 2426 (native-inputs
bcb354ad
SB
2427 `(("itstool" ,itstool)
2428 ("intltool" ,intltool)
426adbe8 2429 ("glib" ,glib "bin")
169b8f77 2430 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
2431 ("pkg-config" ,pkg-config)
2432 ("xmllint" ,libxml2)))
6f64a05e 2433 (home-page "https://www.gnome.org/projects/evince/")
c1354b90
LC
2434 (synopsis "GNOME's document viewer")
2435 (description
2436 "Evince is a document viewer for multiple document formats. It
2437currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2438of Evince is to replace the multiple document viewers that exist
96e42467 2439on the GNOME Desktop with a single simple application.")
1dd26275 2440 (license license:gpl2+)))
c1354b90 2441
22e32e69
AE
2442(define-public gsettings-desktop-schemas
2443 (package
2444 (name "gsettings-desktop-schemas")
8468117e 2445 (version "3.34.0")
22e32e69
AE
2446 (source
2447 (origin
2448 (method url-fetch)
2449 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2450 (version-major+minor version) "/"
22e32e69
AE
2451 name "-" version ".tar.xz"))
2452 (sha256
2453 (base32
8468117e 2454 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
c900dabd 2455 (build-system meson-build-system)
65209ffa
LC
2456 (arguments
2457 '(#:phases (modify-phases %standard-phases
3861fb1c 2458 (add-after 'unpack 'patch-schemas
65209ffa 2459 (lambda* (#:key inputs #:allow-other-keys)
65209ffa
LC
2460 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2461 (substitute* (find-files "schemas"
2462 "\\.gschema\\.xml\\.in$")
3861fb1c
LP
2463 ;; Provide the correct file name of the default GNOME
2464 ;; background, 'adwaita-timed.xml'.
65209ffa 2465 (("@datadir@/backgrounds/gnome")
3861fb1c
LP
2466 (string-append theme "/share/backgrounds/gnome"))
2467 ;; Do not reference fonts, that may not exist.
2468 (("'Source Code Pro 10'") "'Monospace 11'"))
65209ffa 2469 #t))))))
22e32e69 2470 (inputs
65209ffa
LC
2471 `(("glib" ,glib)
2472 ("gnome-backgrounds" ,gnome-backgrounds)))
c4c4cc05
JD
2473 (native-inputs
2474 `(("intltool" ,intltool)
426adbe8 2475 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
7211944a 2476 ("gobject-introspection" ,gobject-introspection)
22e32e69
AE
2477 ("pkg-config" ,pkg-config)))
2478 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2479 (synopsis
2480 "GNOME settings for various desktop components")
2481 (description
2482 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2483for settings shared by various components of the GNOME desktop.")
1dd26275 2484 (license license:lgpl2.1+)))
22e32e69 2485
27477d2d
AE
2486(define-public icon-naming-utils
2487 (package
2488 (name "icon-naming-utils")
2489 (version "0.8.90")
2490 (source
2491 (origin
2492 (method url-fetch)
5cc3096c 2493 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
27477d2d
AE
2494 version ".tar.bz2"))
2495 (sha256
2496 (base32
2497 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2498 (build-system gnu-build-system)
2499 (inputs
2500 `(("perl" ,perl)
2501 ("perl-xml-simple" ,perl-xml-simple)))
f4e97277
SB
2502 (arguments
2503 '(#:phases
dc1d3cde
KK
2504 (modify-phases %standard-phases
2505 (add-after 'install 'set-load-paths
2506 ;; Tell 'icon-name-mapping' where XML::Simple is.
2507 (lambda* (#:key outputs #:allow-other-keys)
2508 (let* ((out (assoc-ref outputs "out"))
2509 (prog (string-append out "/libexec/icon-name-mapping")))
2510 (wrap-program
2511 prog
2512 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2513 #t)))))
27477d2d
AE
2514 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2515 (synopsis
2516 "Utility to implement the Freedesktop Icon Naming Specification")
2517 (description
2518 "To help with the transition to the Freedesktop Icon Naming
2519Specification, the icon naming utility maps the icon names used by the
2520GNOME and KDE desktops to the icon names proposed in the specification.")
1dd26275 2521 (license license:lgpl2.1+)))
27477d2d 2522
7d3f3651
AE
2523(define-public gnome-icon-theme
2524 (package
2525 (name "gnome-icon-theme")
b32f58dd 2526 (version "3.12.0")
7d3f3651
AE
2527 (source
2528 (origin
2529 (method url-fetch)
2530 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2531 (version-major+minor version) "/"
7d3f3651
AE
2532 name "-" version ".tar.xz"))
2533 (sha256
2534 (base32
b32f58dd 2535 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
7d3f3651 2536 (build-system gnu-build-system)
5613c27d
SB
2537 (arguments
2538 '(#:configure-flags
2539 ;; Don't create 'icon-theme.cache'.
2540 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2541 (true (string-append coreutils "/bin/true")))
2542 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
c4c4cc05 2543 (native-inputs
5613c27d 2544 `(("icon-naming-utils" ,icon-naming-utils)
73b6cf42
SB
2545 ("intltool" ,intltool)
2546 ("pkg-config" ,pkg-config)))
5c610d4f
KK
2547 (home-page "https://wiki.gnome.org/Personalization")
2548 (synopsis "GNOME icon theme")
2549 (description "Icons for the GNOME desktop.")
1dd26275 2550 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
7d3f3651 2551
14eeefa2
SB
2552;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2553(define-public adwaita-icon-theme
2554 (package (inherit gnome-icon-theme)
2555 (name "adwaita-icon-theme")
e21788f2 2556 (version "3.34.3")
14eeefa2
SB
2557 (source (origin
2558 (method url-fetch)
2559 (uri (string-append "mirror://gnome/sources/" name "/"
2560 (version-major+minor version) "/"
2561 name "-" version ".tar.xz"))
2562 (sha256
2563 (base32
e21788f2 2564 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
5613c27d
SB
2565 (native-inputs
2566 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
14eeefa2 2567
ae792dba
RW
2568(define-public tango-icon-theme
2569 (package
2570 (name "tango-icon-theme")
2571 (version "0.8.90")
2572 (source (origin
2573 (method url-fetch)
2574 (uri (string-append "http://tango.freedesktop.org/releases/"
2575 "tango-icon-theme-" version ".tar.bz2"))
2576 (sha256
2577 (base32
2578 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2579 (build-system gnu-build-system)
2580 (native-inputs
2581 `(("icon-naming-utils" ,icon-naming-utils)
2582 ("intltool" ,intltool)
2583 ("imagemagick" ,imagemagick)
2584 ("pkg-config" ,pkg-config)))
2585 (home-page "http://tango-project.org/")
2586 (synopsis "Tango icon theme")
2587 (description "This is an icon theme that follows the Tango visual
2588guidelines.")
2589 (license license:public-domain)))
2590
9167f8e6
LC
2591(define-public shared-mime-info
2592 (package
2593 (name "shared-mime-info")
404e386e 2594 (version "1.15")
9167f8e6
LC
2595 (source (origin
2596 (method url-fetch)
404e386e
MB
2597 (uri (string-append
2598 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2599 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2600 ".tar.xz"))
9167f8e6
LC
2601 (sha256
2602 (base32
404e386e 2603 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
9167f8e6
LC
2604 (build-system gnu-build-system)
2605 (arguments
2606 ;; The build system appears not to be parallel-safe.
2607 '(#:parallel-build? #f))
2608 (inputs
2609 `(("glib" ,glib)
c4c4cc05 2610 ("libxml2" ,libxml2)))
9167f8e6 2611 (native-inputs
404e386e
MB
2612 `(("gettext" ,gettext-minimal)
2613 ("itstool" ,itstool)
c4c4cc05 2614 ("pkg-config" ,pkg-config)))
57e7d748 2615 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
9167f8e6
LC
2616 (synopsis "Database of common MIME types")
2617 (description
2618 "The shared-mime-info package contains the core database of common types
2619and the update-mime-database command used to extend it. It requires glib2 to
2620be installed for building the update command. Additionally, it uses intltool
2621for translations, though this is only a dependency for the maintainers. This
2622database is translated at Transifex.")
1dd26275 2623 (license license:gpl2+)))
9167f8e6 2624
dd1fcddc
CB
2625(define-public system-config-printer
2626 (package
2627 (name "system-config-printer")
fa01e10d 2628 (version "1.5.12")
a5643044
TGR
2629 (source
2630 (origin
2631 (method url-fetch)
2632 (uri (string-append
2633 "https://github.com/OpenPrinting/system-config-printer/releases/"
2634 "download/" version
2635 "/system-config-printer-" version ".tar.xz"))
2636 (sha256
fa01e10d 2637 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
dd1fcddc
CB
2638 (build-system glib-or-gtk-build-system)
2639 (arguments
2640 `(#:imported-modules ((guix build python-build-system)
2641 ,@%glib-or-gtk-build-system-modules)
2642 #:phases
2643 (modify-phases %standard-phases
2644 (add-after 'unpack 'patch-Makefile.am
2645 (lambda _
2646 ;; The Makefile generates some scripts, so set a valid shebang
2647 (substitute* "Makefile.am"
2648 (("/bin/bash") (which "bash")))
2649 (delete-file "configure")
2650 #t))
2651 (add-after 'unpack 'patch-docbook-xml
2652 (lambda* (#:key inputs #:allow-other-keys)
2653 ;; Modify the man XML otherwise xmlto tries to access the network
2654 (substitute* "man/system-config-printer.xml"
2655 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2656 (string-append (assoc-ref inputs "docbook-xml")
2657 "/xml/dtd/docbook/")))
2658 #t))
2659 (add-after 'install 'wrap-for-python
2660 (@@ (guix build python-build-system) wrap))
2661 (add-after 'install 'wrap
2662 (lambda* (#:key outputs #:allow-other-keys)
2663 (let ((out (assoc-ref outputs "out"))
2664 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2665 (for-each
2666 (lambda (program)
2667 (wrap-program program
2668 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2669 (map (lambda (name)
2670 (string-append out "/bin/" name))
2671 '("system-config-printer"
2672 "system-config-printer-applet"
2673 "install-printerdriver"
2674 "scp-dbus-service"))))
2675 #t)))))
2676 (inputs
2677 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2678 ("gobject-introspection" ,gobject-introspection)
2679 ("python" ,python)
2680 ("cups" ,cups)
92b9cdd5 2681 ("gtk+" ,gtk+)
dd1fcddc
CB
2682 ("python-dbus" ,python-dbus)
2683 ("python-pygobject" ,python-pygobject)
2684 ("python-pycups" ,python-pycups)
2685 ("python-requests" ,python-requests)
2686 ("python-pycairo" ,python-pycairo)
2687 ("libnotify" ,libnotify)
2688 ("packagekit" ,packagekit)))
2689 (native-inputs
2690 `(("pkg-config" ,pkg-config)
2691 ("desktop-file-utils" ,desktop-file-utils)
2692 ("glib" ,glib)
2693 ("autoconf" ,autoconf)
2694 ("automake" ,automake)
2695 ("intltool" ,intltool)
2696 ("xmlto" ,xmlto)
2697 ("docbook-xml" ,docbook-xml-4.1.2)
2698 ("docbook-xsl" ,docbook-xsl)
2699 ("libxml2" ,libxml2)))
2700 (home-page "https://github.com/zdohnal/system-config-printer")
2701 (synopsis "CUPS administration tool")
2702 (description
2703 "system-config-printer is a CUPS administration tool. It's written in
2704Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2705configuring CUPS.")
2706 (license license:gpl2+)))
2707
bef4dd92
AE
2708(define-public hicolor-icon-theme
2709 (package
2710 (name "hicolor-icon-theme")
851cb6dd 2711 (version "0.17")
bef4dd92
AE
2712 (source
2713 (origin
2714 (method url-fetch)
5cc3096c 2715 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
b62a0070 2716 "hicolor-icon-theme-" version ".tar.xz"))
bef4dd92
AE
2717 (sha256
2718 (base32
851cb6dd 2719 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
bef4dd92
AE
2720 (build-system gnu-build-system)
2721 (arguments
2722 `(#:tests? #f)) ; no check target
57e7d748 2723 (home-page "https://icon-theme.freedesktop.org/releases/")
bef4dd92
AE
2724 (synopsis
2725 "Freedesktop icon theme")
2726 (description
2727 "Freedesktop icon theme.")
1dd26275 2728 (license license:gpl2)))
bef4dd92 2729
d9c1a22b
AE
2730(define-public libnotify
2731 (package
2732 (name "libnotify")
195bfa68 2733 (version "0.7.7")
d9c1a22b
AE
2734 (source
2735 (origin
2736 (method url-fetch)
2737 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2738 (version-major+minor version) "/"
d9c1a22b
AE
2739 name "-" version ".tar.xz"))
2740 (sha256
2741 (base32
195bfa68 2742 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
d9c1a22b 2743 (build-system gnu-build-system)
6acf6cec
MB
2744 (arguments
2745 `(#:configure-flags '("--disable-static")))
7ef08efa
UK
2746 (propagated-inputs
2747 `(;; In Requires of libnotify.pc.
2748 ("gdk-pixbuf" ,gdk-pixbuf)
2749 ("glib" ,glib)))
d9c1a22b 2750 (inputs
7ef08efa 2751 `(("gtk+" ,gtk+)
c4c4cc05
JD
2752 ("libpng" ,libpng)))
2753 (native-inputs
426adbe8 2754 `(("pkg-config" ,pkg-config)
277a7d82
JN
2755 ("glib" ,glib "bin")
2756 ("gobject-introspection" ,gobject-introspection)))
d9c1a22b
AE
2757 (home-page "https://developer-next.gnome.org/libnotify/")
2758 (synopsis
2759 "GNOME desktop notification library")
2760 (description
2761 "Libnotify is a library that sends desktop notifications to a
35b9e423 2762notification daemon, as defined in the Desktop Notifications spec. These
d9c1a22b
AE
2763notifications can be used to inform the user about an event or display
2764some form of information without getting in the user's way.")
1dd26275 2765 (license license:lgpl2.1+)))
7a8605ce
CR
2766
2767(define-public libpeas
2768 (package
2769 (name "libpeas")
f2d56e39 2770 (version "1.24.1")
7a8605ce
CR
2771 (source
2772 (origin
2773 (method url-fetch)
2774 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8 2775 (version-major+minor version) "/"
7a8605ce
CR
2776 name "-" version ".tar.xz"))
2777 (sha256
2778 (base32
f2d56e39
MB
2779 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2780 (build-system meson-build-system)
2781 (arguments
2782 '(#:phases
2783 (modify-phases %standard-phases
2784 (add-before 'check 'start-xserver
2785 (lambda* (#:key inputs #:allow-other-keys)
2786 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2787 (disp ":1"))
2788 (setenv "DISPLAY" disp)
2789 ;; Tests require a running X server.
2790 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2791 #t))))))
7a8605ce 2792 (inputs
2ed6522a
SB
2793 `(("gtk+" ,gtk+)
2794 ("glade" ,glade3)
2ed6522a
SB
2795 ("python" ,python)
2796 ("python-pygobject" ,python-pygobject)))
141aed80
LC
2797 (native-inputs
2798 `(("pkg-config" ,pkg-config)
f2d56e39 2799 ("gettext" ,gettext-minimal)
93622993 2800 ("glib:bin" ,glib "bin")
141aed80 2801 ("gobject-introspection" ,gobject-introspection)
f2d56e39 2802 ("xorg-server" ,xorg-server-for-tests)))
55b7bbd8
LC
2803 (propagated-inputs
2804 ;; The .pc file "Requires" gobject-introspection.
2805 `(("gobject-introspection" ,gobject-introspection)))
7a8605ce
CR
2806 (home-page "https://wiki.gnome.org/Libpeas")
2807 (synopsis "GObject plugin system")
2808 (description
d1e4ad1b
TGR
2809 "Libpeas is a gobject-based plugin engine, targeted at giving every
2810application the chance to assume its own extensibility. It also has a set of
2811features including, but not limited to: multiple extension points; on-demand
2812(lazy) programming language support for C, Python and JS; simplicity of the
2813API.")
1dd26275 2814 (license license:lgpl2.0+)))
ed19903d
JD
2815
2816(define-public gtkglext
2817 (package
2818 (name "gtkglext")
2819 (version "1.2.0")
2820 (source (origin
2821 (method url-fetch)
0f971a04 2822 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
ed19903d
JD
2823 version "/gtkglext-" version ".tar.gz"))
2824 (sha256
2825 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
fc1adab1
AK
2826 (patches (search-patches
2827 "gtkglext-disable-disable-deprecated.patch"))))
ed19903d 2828 (build-system gnu-build-system)
14e2f61a
RW
2829 (arguments
2830 `(#:phases
2831 (modify-phases %standard-phases
2832 ;; Fix a collision between a local variable and a definition from
2833 ;; glibc's string.h.
2834 (add-after 'unpack 'fix-collision
2835 (lambda _
2836 (substitute* "gdk/gdkglshapes.c"
2837 ((" index") " triangle_index"))
2838 #t)))))
ed19903d
JD
2839 (inputs `(("gtk+" ,gtk+-2)
2840 ("mesa" ,mesa)
cc8b02f4 2841 ("glu" ,glu)
ed19903d
JD
2842 ("libx11" ,libx11)
2843 ("libxt" ,libxt)))
426adbe8
LC
2844 (native-inputs `(("pkg-config" ,pkg-config)
2845 ("glib" ,glib "bin")))
a83b6a06 2846 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
ed19903d 2847 (home-page "https://projects.gnome.org/gtkglext")
9e771e3b 2848 (synopsis "OpenGL extension to GTK+")
35b9e423 2849 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
ed19903d
JD
2850additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2851API add-ons to make GTK+ widgets OpenGL-capable.")
1dd26275 2852 (license license:lgpl2.1+)))
3600420e
JD
2853
2854(define-public glade3
2855 (package
2856 (name "glade")
031315e4 2857 (version "3.36.0")
b38e45d8
EB
2858 (source (origin
2859 (method url-fetch)
2860 (uri (string-append "mirror://gnome/sources/" name "/"
2861 (version-major+minor version) "/"
f5ca44b8 2862 name "-" version ".tar.xz"))
3600420e 2863 (sha256
f714d9fe 2864 (base32
031315e4 2865 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
6983ba56 2866 (build-system glib-or-gtk-build-system)
f5ca44b8 2867 (arguments
ec8e1c91 2868 `(#:phases
f5ca44b8
RW
2869 (modify-phases %standard-phases
2870 (add-before 'configure 'fix-docbook
2871 (lambda* (#:key inputs #:allow-other-keys)
2872 (substitute* "man/Makefile.in"
2873 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2874 (string-append (assoc-ref inputs "docbook-xsl")
2875 "/xml/xsl/docbook-xsl-"
2876 ,(package-version docbook-xsl)
2877 "/manpages/docbook.xsl")))
ec8e1c91
AI
2878 #t))
2879 (add-before 'check 'pre-check
2880 (lambda _
2881 (setenv "HOME" "/tmp")
2882 ;; Tests require a running X server.
2883 (system "Xvfb :1 &")
2884 (setenv "DISPLAY" ":1")
f5ca44b8 2885 #t)))))
3600420e 2886 (inputs
f5ca44b8 2887 `(("gtk+" ,gtk+)
3600420e
JD
2888 ("libxml2" ,libxml2)))
2889 (native-inputs
ec8e1c91
AI
2890 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2891 ("intltool" ,intltool)
f5ca44b8
RW
2892 ("itstool" ,itstool)
2893 ("libxslt" ,libxslt) ;for xsltproc
2894 ("docbook-xml" ,docbook-xml-4.2)
2895 ("docbook-xsl" ,docbook-xsl)
2896 ("python" ,python-2)
ec8e1c91
AI
2897 ("pkg-config" ,pkg-config)
2898 ("xorg-server" ,xorg-server-for-tests)))
3600420e
JD
2899 (home-page "https://glade.gnome.org")
2900 (synopsis "GTK+ rapid application development tool")
2901 (description "Glade is a rapid application development (RAD) tool to
2902enable quick & easy development of user interfaces for the GTK+ toolkit and
2903the GNOME desktop environment.")
1dd26275
LC
2904 (license license:lgpl2.0+)))
2905
2906(define-public libcroco
2907 (package
2908 (name "libcroco")
8bdacad2 2909 (version "0.6.13")
1dd26275
LC
2910 (source (origin
2911 (method url-fetch)
b38e45d8
EB
2912 (uri (string-append "mirror://gnome/sources/" name "/"
2913 (version-major+minor version) "/"
2914 name "-" version ".tar.xz"))
1dd26275
LC
2915 (sha256
2916 (base32
8bdacad2 2917 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1dd26275
LC
2918 (build-system gnu-build-system)
2919 (native-inputs
2920 `(("pkg-config" ,pkg-config)))
2921 (inputs
2922 `(("glib" ,glib)
2923 ("libxml2" ,libxml2)
2924 ("zlib" ,zlib)))
2925 (home-page "https://github.com/GNOME/libcroco")
2926 (synopsis "CSS2 parsing and manipulation library")
2927 (description
2928 "Libcroco is a standalone CSS2 parsing and manipulation library.
2929The parser provides a low level event driven SAC-like API and a CSS object
2930model like API. Libcroco provides a CSS2 selection engine and an experimental
2931XML/CSS rendering engine.")
2932
2933 ;; LGPLv2.1-only.
2934 (license license:lgpl2.1)))
25178594
LC
2935
2936(define-public libgsf
2937 (package
2938 (name "libgsf")
2b9b854c 2939 (version "1.14.47")
25178594
LC
2940 (source (origin
2941 (method url-fetch)
b38e45d8
EB
2942 (uri (string-append "mirror://gnome/sources/" name "/"
2943 (version-major+minor version) "/"
2944 name "-" version ".tar.xz"))
25178594
LC
2945 (sha256
2946 (base32
2b9b854c 2947 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
25178594 2948 (build-system gnu-build-system)
23904adb
MB
2949 (arguments
2950 '(#:configure-flags '("--disable-static")))
25178594 2951 (native-inputs
0a1559cc
MB
2952 `(("pkg-config" ,pkg-config)
2953 ("gettext" ,gettext-minimal)
2954
2955 ;; For tests.
2956 ("perl" ,perl)
2957 ("perl-xml-parser" ,perl-xml-parser)))
25178594 2958 (inputs
4ffa9f6b 2959 `(("zlib" ,zlib)
25178594
LC
2960 ("bzip2" ,bzip2)))
2961 (propagated-inputs
2962 `(("gdk-pixbuf" ,gdk-pixbuf)
2963 ("glib" ,glib)
2964 ("libxml2" ,libxml2)))
f032d0be 2965 (home-page "https://www.gnome.org/projects/libgsf")
25178594
LC
2966 (synopsis "GNOME's Structured File Library")
2967 (description
2968 "Libgsf aims to provide an efficient extensible I/O abstraction for
2969dealing with different structured file formats.")
2970
2971 ;; LGPLv2.1-only.
2972 (license license:lgpl2.1)))
63016e7c
LC
2973
2974(define-public librsvg
f67417a1
MB
2975 (package
2976 (name "librsvg")
c1cc52a2 2977 (version "2.40.21")
f67417a1
MB
2978 (source (origin
2979 (method url-fetch)
2980 (uri (string-append "mirror://gnome/sources/" name "/"
2981 (version-major+minor version) "/"
2982 name "-" version ".tar.xz"))
2983 (sha256
2984 (base32
c1cc52a2 2985 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
f67417a1
MB
2986 (build-system gnu-build-system)
2987 (arguments
2988 `(#:configure-flags
2989 (list "--disable-static"
2990 "--enable-vala") ; needed for e.g. gnome-mines
2991 #:phases
2992 (modify-phases %standard-phases
2993 (add-before 'configure 'pre-configure
2994 (lambda* (#:key inputs #:allow-other-keys)
2995 (substitute* "gdk-pixbuf-loader/Makefile.in"
2996 ;; By default the gdk-pixbuf loader is installed under
2997 ;; gdk-pixbuf's prefix. Work around that.
2998 (("gdk_pixbuf_moduledir = .*$")
2999 (string-append "gdk_pixbuf_moduledir = "
3000 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3001 "loaders\n"))
3002 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3003 (("gdk_pixbuf_cache_file = .*$")
3004 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3005 #t))
3006 (add-before 'check 'remove-failing-tests
3007 (lambda _
3008 (with-directory-excursion "tests/fixtures/reftests"
3009 (for-each delete-file
3010 '(;; This test fails on i686:
3011 "svg1.1/masking-path-04-b.svg"
3012 ;; This test fails on armhf:
3013 "svg1.1/masking-mask-01-b.svg"
3014 ;; This test fails on aarch64:
3015 "bugs/777834-empty-text-children.svg")))
3016 #t)))))
3017 (native-inputs
3018 `(("pkg-config" ,pkg-config)
3019 ("vala" ,vala)
3020 ("glib" ,glib "bin") ; glib-mkenums, etc.
3021 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
3022 (inputs
869b63cb
MB
3023 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
3024 ;; this ancient version of librsvg.
3025 ("pango" ,pango-1.42)
f67417a1
MB
3026 ("libcroco" ,libcroco)
3027 ("bzip2" ,bzip2)
3028 ("libgsf" ,libgsf)
3029 ("libxml2" ,libxml2)))
3030 (propagated-inputs
3031 ;; librsvg-2.0.pc refers to all of that.
3032 `(("cairo" ,cairo)
3033 ("gdk-pixbuf" ,gdk-pixbuf)
3034 ("glib" ,glib)))
3035 (home-page "https://wiki.gnome.org/LibRsvg")
3036 (synopsis "Render SVG files using Cairo")
3037 (description
3038 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
3039library.")
3040 (license license:lgpl2.0+)))
3041
3042(define-public librsvg-next
63016e7c 3043 (package
25d39a2a 3044 (inherit librsvg)
63016e7c 3045 (name "librsvg")
4f9db569 3046 (version "2.48.8")
69568670
EF
3047 (source (origin
3048 (method url-fetch)
3049 (uri (string-append "mirror://gnome/sources/librsvg/"
3050 (version-major+minor version) "/"
3051 "librsvg-" version ".tar.xz"))
3052 (sha256
3053 (base32
4f9db569 3054 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
69568670
EF
3055 (modules '((guix build utils)))
3056 (snippet
3057 '(begin (delete-file-recursively "vendor")
69568670
EF
3058 #t))))
3059 (build-system cargo-build-system)
63016e7c 3060 (arguments
69568670
EF
3061 `(#:modules ((guix build cargo-build-system)
3062 (guix build utils)
3063 ((guix build gnu-build-system) #:prefix gnu:))
3064 #:vendor-dir "vendor"
3065 #:cargo-inputs
3066 (("rust-bitflags" ,rust-bitflags-1)
4f9db569 3067 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
69568670 3068 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
4f9db569
EF
3069 ("rust-cast" ,rust-cast-0.2)
3070 ("rust-cssparser" ,rust-cssparser-0.27)
69568670
EF
3071 ("rust-data-url" ,rust-data-url-0.1)
3072 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
3073 ("rust-encoding" ,rust-encoding-0.2)
4f9db569
EF
3074 ("rust-float-cmp" ,rust-float-cmp-0.6)
3075 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
69568670 3076 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
4f9db569 3077 ("rust-gio" ,rust-gio-0.8)
69568670 3078 ("rust-gio-sys" ,rust-gio-sys-0.9)
4f9db569 3079 ("rust-glib" ,rust-glib-0.9)
69568670
EF
3080 ("rust-glib-sys" ,rust-glib-sys-0.9)
3081 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3082 ("rust-itertools" ,rust-itertools-0.8)
3083 ("rust-language-tags" ,rust-language-tags-0.2)
69568670
EF
3084 ("rust-libc" ,rust-libc-0.2)
3085 ("rust-locale-config" ,rust-locale-config-0.3)
4f9db569
EF
3086 ("rust-markup5ever" ,rust-markup5ever-0.10)
3087 ("rust-nalgebra" ,rust-nalgebra-0.19)
69568670 3088 ("rust-num-traits" ,rust-num-traits-0.2)
4f9db569 3089 ("rust-once-cell" ,rust-once-cell-1.2)
69568670 3090 ("rust-pkg-config" ,rust-pkg-config-0.3)
4f9db569 3091 ("rust-pango" ,rust-pango-0.8)
69568670 3092 ("rust-pango-sys" ,rust-pango-sys-0.9)
4f9db569 3093 ("rust-pangocairo" ,rust-pangocairo-0.9)
a5630553 3094 ("rust-rayon" ,rust-rayon-1)
69568670 3095 ("rust-rctree" ,rust-rctree-0.3)
4f9db569 3096 ("rust-rgb" ,rust-rgb-0.8)
6cd7b355 3097 ("rust-regex" ,rust-regex-1)
4f9db569 3098 ("rust-selectors" ,rust-selectors-0.22)
69568670 3099 ("rust-url" ,rust-url-2.1)
4f9db569 3100 ("rust-xml5ever" ,rust-xml5ever-0.16))
69568670 3101 #:cargo-development-inputs
4f9db569
EF
3102 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
3103 ("rust-criterion" ,rust-criterion-0.3))
ec47c07d 3104 #:phases
b6239e45 3105 (modify-phases %standard-phases
69568670 3106 (add-after 'unpack 'prepare-for-build
ec47c07d 3107 (lambda _
69568670 3108 ;; In lieu of #:make-flags
4f9db569 3109 (setenv "CC" ,(cc-for-target))
69568670
EF
3110 ;; Something about the build environment resists building
3111 ;; successfully with the '--locked' flag.
3112 (substitute* '("Makefile.am"
3113 "Makefile.in")
3114 (("--locked") ""))
3115 #t))
b6239e45 3116 (add-before 'configure 'pre-configure
69568670 3117 (lambda _
b6239e45
EF
3118 (substitute* "gdk-pixbuf-loader/Makefile.in"
3119 ;; By default the gdk-pixbuf loader is installed under
3120 ;; gdk-pixbuf's prefix. Work around that.
3121 (("gdk_pixbuf_moduledir = .*$")
3122 (string-append "gdk_pixbuf_moduledir = "
3123 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3124 "loaders\n"))
3125 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3126 (("gdk_pixbuf_cache_file = .*$")
3127 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3128 #t))
69568670 3129 (add-after 'configure 'gnu-configure
4b16cb64
EF
3130 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
3131 ((assoc-ref gnu:%standard-phases 'configure)
3132 #:native-inputs native-inputs
3133 #:inputs inputs
3134 #:outputs outputs
3135 #:configure-flags (list "--disable-static"
3136 "--enable-vala"))))
69568670
EF
3137 (add-after 'configure 'dont-vendor-self
3138 (lambda* (#:key vendor-dir #:allow-other-keys)
3139 ;; Don't keep the whole tarball in the vendor directory
3140 (delete-file-recursively
3141 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
3142 #t))
3143 (replace 'build
3144 (assoc-ref gnu:%standard-phases 'build))
3145 (replace 'check
3146 (lambda* args
3147 ((assoc-ref gnu:%standard-phases 'check)
3148 #:test-target "check")))
3149 (replace 'install
4f9db569
EF
3150 (assoc-ref gnu:%standard-phases 'install)))))
3151 (inputs
3152 `(("pango" ,pango)
3153 ,@(alist-delete "pango" (package-inputs librsvg))))
cf9dad6c 3154 (license license:lgpl2.1+)))
5698b8b8
JD
3155
3156(define-public libidl
3157 (package
3158 (name "libidl")
3159 (version "0.8.14")
3160 (source (origin
3161 (method url-fetch)
80a06e62
EF
3162 (uri (string-append "mirror://gnome/sources/libIDL/"
3163 (version-major+minor version) "/"
3164 "libIDL-" version ".tar.bz2"))
5698b8b8
JD
3165 (sha256
3166 (base32
3167 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3168 (build-system gnu-build-system)
3169 (inputs `(("glib" ,glib)))
3170 (native-inputs
3171 `(("pkg-config" ,pkg-config)
b3546174 3172 ("flex" ,flex)
5698b8b8
JD
3173 ("bison" ,bison)))
3174 (home-page "http://freecode.com/projects/libidl")
3175 (synopsis "Create trees of CORBA Interface Definition Language files")
35b9e423 3176 (description "Libidl is a library for creating trees of CORBA Interface
5698b8b8
JD
3177Definition Language (idl) files, which is a specification for defining
3178portable interfaces. libidl was initially written for orbit (the orb from the
35b9e423 3179GNOME project, and the primary means of libidl distribution). However, the
2e6ecc5c 3180functionality was designed to be as reusable and portable as possible.")
ef2c55bb 3181 (properties `((upstream-name . "libIDL")))
5698b8b8
JD
3182 (license license:lgpl2.0+)))
3183
3184
3185(define-public orbit2
3186 (package
3187 (name "orbit2")
3188 (version "2.14.19")
3189 (source (origin
3190 (method url-fetch)
2e6ecc5c 3191 (uri (let ((upstream-name "ORBit2"))
a124bbd2 3192 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
3193 (version-major+minor version) "/"
3194 upstream-name "-" version ".tar.bz2")))
5698b8b8 3195 (sha256
a124bbd2
SB
3196 (base32
3197 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
5698b8b8
JD
3198 (build-system gnu-build-system)
3199 (arguments
c2d837b9
MB
3200 `(;; The "timeout-server" test hangs when run in parallel.
3201 #:parallel-tests? #f
3202 #:configure-flags
8aad2e32
LC
3203 '(;; We don't need static libraries, plus they don't build reproducibly
3204 ;; (non-deterministic ordering of .o files in the archive.)
3205 "--disable-static"
3206
3207 ;; The programmer kindly gives us a hook to turn off deprecation
3208 ;; warnings ...
3209 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
a124bbd2
SB
3210 ;; ... which they then completly ignore !!
3211 #:phases
dc1d3cde
KK
3212 (modify-phases %standard-phases
3213 (add-before 'configure 'ignore-deprecations
3214 (lambda _
3215 (substitute* "linc2/src/Makefile.in"
3216 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3217 #t)))))
5698b8b8
JD
3218 (inputs `(("glib" ,glib)
3219 ("libidl" ,libidl)))
3220 (native-inputs
3221 `(("pkg-config" ,pkg-config)))
3222 (home-page "https://projects.gnome.org/orbit2/")
3223 (synopsis "CORBA 2.4-compliant Object Request Broker")
35b9e423 3224 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2e6ecc5c 3225featuring mature C, C++ and Python bindings.")
a124bbd2
SB
3226 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3227 ;; a version. SOME of the code files have licence notices for GPLv2+.
3228 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
892307ae
LC
3229 (license license:gpl2+)
3230 (properties `((upstream-name . "ORBit2")))))
5698b8b8
JD
3231
3232
3233(define-public libbonobo
3234 (package
3235 (name "libbonobo")
3236 (version "2.32.1")
3237 (source (origin
3238 (method url-fetch)
5becd025 3239 (uri (string-append "mirror://gnome/sources/" name "/"
29a7c98a 3240 (version-major+minor version)
5becd025 3241 "/" name "-" version ".tar.bz2"))
5698b8b8 3242 (sha256
f1fc45a9 3243 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
fc1adab1
AK
3244 (patches (search-patches
3245 "libbonobo-activation-test-race.patch"))))
5698b8b8
JD
3246 (build-system gnu-build-system)
3247 (arguments
3248 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
5becd025
EB
3249 `(#:configure-flags
3250 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3251 ;; ... which they then completly ignore !!
3252 #:phases
dc1d3cde
KK
3253 (modify-phases %standard-phases
3254 (add-before 'configure 'ignore-deprecations
3255 (lambda _
3256 (substitute* "activation-server/Makefile.in"
3257 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
994b5b1d
LC
3258 #t)))
3259
3260 ;; There's apparently a race condition between the server stub
3261 ;; generation and linking of the example under 'samples/echo' that can
3262 ;; lead do undefined references when building in parallel, as reported
3263 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3264 ;; Thus, disable parallel builds.
3265 #:parallel-build? #f))
5698b8b8
JD
3266 (inputs `(("popt" ,popt)
3267 ("libxml2" ,libxml2)))
3268 ;; The following are Required by the .pc file
44add1ce 3269 (propagated-inputs
5698b8b8
JD
3270 `(("glib" ,glib)
3271 ("orbit2" ,orbit2)))
3272 (native-inputs
3273 `(("intltool" ,intltool)
3274 ("pkg-config" ,pkg-config)
221ed17a 3275 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
3276 ("flex" ,flex)
3277 ("bison" ,bison)))
3278 (home-page "https://developer.gnome.org/libbonobo/")
3279 (synopsis "Framework for creating reusable components for use in GNOME applications")
3280 (description "Bonobo is a framework for creating reusable components for
2e6ecc5c 3281use in GNOME applications, built on top of CORBA.")
5698b8b8
JD
3282 ;; Licence not explicitly stated. Source files contain no licence notices.
3283 ;; Tarball contains text of both GPLv2 and LGPLv2
3284 ;; GPLv2 covers both conditions
3285 (license license:gpl2+)))
3286
3287
3288(define-public gconf
3289 (package
3290 (name "gconf")
3291 (version "3.2.6")
3292 (source (origin
3293 (method url-fetch)
a124bbd2
SB
3294 (uri
3295 (let ((upstream-name "GConf"))
3296 (string-append "mirror://gnome/sources/" upstream-name "/"
b38e45d8
EB
3297 (version-major+minor version) "/"
3298 upstream-name "-" version ".tar.xz")))
5698b8b8
JD
3299 (sha256
3300 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3301 (build-system gnu-build-system)
2e88d113 3302 (inputs `(("dbus-glib" ,dbus-glib)
5698b8b8 3303 ("libxml2" ,libxml2)))
2e6ecc5c
AE
3304 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
3305 ("orbit2" ,orbit2)))
5698b8b8
JD
3306 (native-inputs
3307 `(("intltool" ,intltool)
221ed17a 3308 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
3309 ("pkg-config" ,pkg-config)))
3310 (home-page "https://projects.gnome.org/gconf/")
35b9e423
EB
3311 (synopsis "Store application preferences")
3312 (description "Gconf is a system for storing application preferences. It
3313is intended for user preferences; not arbitrary data storage.")
29d2f451
LC
3314 (license license:lgpl2.0+)
3315 (properties '((upstream-name . "GConf")))))
5698b8b8
JD
3316
3317
3318(define-public gnome-mime-data
3319 (package
3320 (name "gnome-mime-data")
3321 (version "2.18.0")
3322 (source (origin
3323 (method url-fetch)
b38e45d8
EB
3324 (uri (string-append "mirror://gnome/sources/" name "/"
3325 (version-major+minor version) "/"
3326 name "-" version ".tar.bz2"))
5698b8b8
JD
3327 (sha256
3328 (base32
3329 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3330 (build-system gnu-build-system)
3331 (native-inputs
3332 `(("perl" ,perl)
3333 ("intltool" ,intltool)))
3e6add96
LC
3334 (arguments
3335 '(#:phases (modify-phases %standard-phases
3336 (add-after 'configure 'use-our-intltool
3337 (lambda _
3338 ;; Do not use the bundled intltool commands, which lack
3339 ;; the "dotless @INC" fixes of our 'intltool' package.
3340 (substitute* (find-files "." "^Makefile$")
3341 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3342 (string-append "INTLTOOL_" tool " = intltool-"
3343 (string-downcase tool) "\n")))
3344 #t)))))
f032d0be 3345 (home-page "https://www.gnome.org")
35b9e423 3346 (synopsis "Base MIME and Application database for GNOME")
5698b8b8
JD
3347 (description "GNOME Mime Data is a module which contains the base MIME
3348and Application database for GNOME. The data stored by this module is
3349designed to be accessed through the MIME functions in GnomeVFS.")
3350 (license license:gpl2+)))
3351
3352
3353(define-public gnome-vfs
3354 (package
3355 (name "gnome-vfs")
3356 (version "2.24.4")
3357 (source (origin
3358 (method url-fetch)
b38e45d8
EB
3359 (uri (string-append "mirror://gnome/sources/" name "/"
3360 (version-major+minor version) "/"
3361 name "-" version ".tar.bz2"))
5698b8b8 3362 (sha256
9e12bc34
MW
3363 (base32
3364 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
5698b8b8
JD
3365 (build-system gnu-build-system)
3366 (arguments
db5127d8 3367 `(#:phases
dc1d3cde
KK
3368 (modify-phases %standard-phases
3369 (add-before 'configure 'ignore-deprecations
3370 (lambda _
3371 (substitute* '("libgnomevfs/Makefile.in"
3372 "daemon/Makefile.in")
3373 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3374 #t))
3375 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3376 (lambda _
3377 (substitute* "test/test-async-cancel.c"
3378 (("EXIT_FAILURE") "77"))
3379 #t)))))
2e6ecc5c 3380 (inputs `(("libxml2" ,libxml2)
5698b8b8 3381 ("dbus-glib" ,dbus-glib)
5698b8b8
JD
3382 ("gconf" ,gconf)
3383 ("gnome-mime-data" ,gnome-mime-data)
3384 ("zlib" ,zlib)))
3385 (native-inputs
221ed17a
EB
3386 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3387 ("intltool" ,intltool)
5698b8b8
JD
3388 ("pkg-config" ,pkg-config)))
3389 (home-page "https://developer.gnome.org/gnome-vfs/")
35b9e423 3390 (synopsis "Access files and folders in GNOME applications")
9e12bc34
MW
3391 (description
3392 "GnomeVFS is the core library used to access files and folders in GNOME
3393applications. It provides a file system abstraction which allows applications
3394to access local and remote files with a single consistent API.")
5698b8b8
JD
3395 (license license:lgpl2.0+)))
3396
3397
3398
3399(define-public libgnome
3400 (package
3401 (name "libgnome")
3402 (version "2.32.1")
3403 (source (origin
3404 (method url-fetch)
b38e45d8
EB
3405 (uri (string-append "mirror://gnome/sources/" name "/"
3406 (version-major+minor version) "/"
3407 name "-" version ".tar.bz2"))
5698b8b8
JD
3408 (sha256
3409 (base32
17c3eea7
LC
3410 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3411 (patches (search-patches "libgnome-encoding.patch"))))
5698b8b8
JD
3412 (build-system gnu-build-system)
3413 (arguments
3414 `(#:phases
dc1d3cde
KK
3415 (modify-phases %standard-phases
3416 (add-before 'configure 'enable-deprecated
3417 (lambda _
3418 (substitute* "libgnome/Makefile.in"
3419 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3420 #t)))))
25338e9f 3421 (inputs `(("libxml2" ,libxml2)))
5698b8b8 3422 (native-inputs
221ed17a
EB
3423 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3424 ("intltool" ,intltool)
5698b8b8
JD
3425 ("pkg-config" ,pkg-config)))
3426 ;; The following are listed as Required in the .pc file
3427 ;; (except for libcanberra -- which seems to be oversight on the part
3428 ;; of the upstream developers -- anything that links against libgnome,
3429 ;; must also link against libcanberra
3430 (propagated-inputs
3431 `(("libcanberra" ,libcanberra)
3432 ("libbonobo" ,libbonobo)
3433 ("gconf" ,gconf)
a640d3d5
LC
3434 ("gnome-vfs" ,gnome-vfs)
3435 ("popt" ,popt))) ;gnome-program.h includes popt.h
5698b8b8
JD
3436 (home-page "https://developer.gnome.org/libgnome/")
3437 (synopsis "Useful routines for building applications")
3438 (description "The libgnome library provides a number of useful routines
3439for building modern applications, including session management, activation of
3440files and URIs, and displaying help.")
3441 (license license:lgpl2.0+)))
3442
3443
3444(define-public libart-lgpl
3445 (package
3446 (name "libart-lgpl")
76c9b6aa 3447 (version "2.3.21")
5698b8b8
JD
3448 (source (origin
3449 (method url-fetch)
3450 (uri (let ((upstream-name "libart_lgpl"))
b38e45d8
EB
3451 (string-append "mirror://gnome/sources/" upstream-name "/"
3452 (version-major+minor version) "/"
3453 upstream-name "-" version ".tar.bz2")))
5698b8b8
JD
3454 (sha256
3455 (base32
76c9b6aa 3456 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
5698b8b8
JD
3457 (build-system gnu-build-system)
3458 (native-inputs
3459 `(("pkg-config" ,pkg-config)))
3460 (home-page "https://people.gnome.org/~mathieu/libart")
3461 (synopsis "2D drawing library")
2e6ecc5c 3462 (description "Libart is a 2D drawing library intended as a
5698b8b8
JD
3463high-quality vector-based 2D library with antialiasing and alpha composition.")
3464 (license license:lgpl2.0+)))
3465
3466
3467
3468(define-public libgnomecanvas
3469 (package
3470 (name "libgnomecanvas")
3471 (version "2.30.3")
3472 (source (origin
3473 (method url-fetch)
b38e45d8
EB
3474 (uri (string-append "mirror://gnome/sources/" name "/"
3475 (version-major+minor version) "/"
3476 name "-" version ".tar.gz"))
5698b8b8
JD
3477 (sha256
3478 (base32
3479 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3480 (build-system gnu-build-system)
3481 ;; Mentioned as Required in the .pc file
3482 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3483 ("gtk+" ,gtk+-2)))
3484 (native-inputs
3485 `(("intltool" ,intltool)
221ed17a 3486 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
3487 ("pkg-config" ,pkg-config)))
3488 (home-page "https://developer.gnome.org/libgnomecanvas/")
3489 (synopsis "Flexible widget for creating interactive structured graphics")
3490 (description "The GnomeCanvas widget provides a flexible widget for
3491creating interactive structured graphics.")
3492 (license license:lgpl2.0+)))
3493
eadc734e
RW
3494(define-public libgnomecanvasmm
3495 (package
3496 (name "libgnomecanvasmm")
3497 (version "2.26.0")
3498 (source (origin
3499 (method url-fetch)
3500 (uri (string-append "mirror://gnome/sources/" name "/"
3501 (version-major+minor version) "/"
3502 name "-" version ".tar.bz2"))
3503 (sha256
3504 (base32
3505 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3506 (build-system gnu-build-system)
3507 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3508 (native-inputs
3509 `(("gtkmm-2" ,gtkmm-2)
3510 ("pkg-config" ,pkg-config)))
8e933cb3 3511 (home-page "https://gtkmm.org")
eadc734e
RW
3512 (synopsis "C++ bindings to the GNOME Canvas library")
3513 (description "C++ bindings to the GNOME Canvas library.")
3514 (license license:lgpl2.0+)))
3515
5698b8b8
JD
3516(define-public libgnomeui
3517 (package
3518 (name "libgnomeui")
3519 (version "2.24.5")
3520 (source (origin
3521 (method url-fetch)
b38e45d8
EB
3522 (uri (string-append "mirror://gnome/sources/" name "/"
3523 (version-major+minor version) "/"
3524 name "-" version ".tar.bz2"))
8fa1872a 3525 (patches (search-patches "libgnomeui-utf8.patch"))
5698b8b8
JD
3526 (sha256
3527 (base32
3528 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3529 (build-system gnu-build-system)
3530 ;; Mentioned as Required in the .pc file
0a38a497
AE
3531 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3532 ("libgnome" ,libgnome)
3533 ("libgnomecanvas" ,libgnomecanvas)
5698b8b8 3534 ("libgnome-keyring" ,libgnome-keyring)))
4bd428a7 3535 (inputs `(("libjpeg" ,libjpeg-turbo)
5698b8b8
JD
3536 ("popt" ,popt)
3537 ("libbonobo" ,libbonobo)
3538 ("libxml2" ,libxml2)
3539 ("libglade" ,libglade)))
3540 (native-inputs
221ed17a
EB
3541 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3542 ("intltool" ,intltool)
5698b8b8
JD
3543 ("pkg-config" ,pkg-config)))
3544 (home-page "https://developer.gnome.org/libgnomeui/")
3545 (synopsis "Additional widgets for applications")
35b9e423 3546 (description "The libgnomeui library provides additional widgets for
e881752c
AK
3547applications. Many of the widgets from libgnomeui have already been
3548ported to GTK+.")
5698b8b8
JD
3549 (license license:lgpl2.0+)))
3550
3551(define-public libglade
3552 (package
3553 (name "libglade")
3554 (version "2.6.4")
3555 (source (origin
3556 (method url-fetch)
b38e45d8
EB
3557 (uri (string-append "mirror://gnome/sources/" name "/"
3558 (version-major+minor version) "/"
3559 name "-" version ".tar.bz2"))
5698b8b8
JD
3560 (sha256
3561 (base32
3562 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3563 (build-system gnu-build-system)
3564 (inputs
92dcc23d
AE
3565 `(("python" ,python))) ;; needed for the optional libglade-convert program
3566 (propagated-inputs
5698b8b8 3567 `(("gtk+-2" ,gtk+-2)
92dcc23d 3568 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
5698b8b8
JD
3569 (native-inputs
3570 `(("pkg-config" ,pkg-config)))
3571 (home-page "https://developer.gnome.org/libglade")
35b9e423
EB
3572 (synopsis "Load glade interfaces and access the glade built widgets")
3573 (description "Libglade is a library that provides interfaces for loading
5698b8b8
JD
3574graphical interfaces described in glade files and for accessing the
3575widgets built in the loading process.")
3576 (license license:gpl2+))) ; This is correct. GPL not LGPL
3577
3578(define-public libgnomeprint
eb497b66
LC
3579 ;; This library has been deprecated since 2006; see
3580 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
5698b8b8
JD
3581 (package
3582 (name "libgnomeprint")
d19db454 3583 (version "2.18.8")
5698b8b8
JD
3584 (source (origin
3585 (method url-fetch)
b38e45d8
EB
3586 (uri (string-append "mirror://gnome/sources/" name "/"
3587 (version-major+minor version) "/"
3588 name "-" version ".tar.bz2"))
5698b8b8
JD
3589 (sha256
3590 (base32
d19db454 3591 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
5698b8b8
JD
3592 (build-system gnu-build-system)
3593 (inputs
3594 `(("popt" ,popt)
3595 ("libart-lgpl" ,libart-lgpl)
3596 ("gtk+" ,gtk+-2)
44add1ce 3597 ("libxml2" ,libxml2)))
5698b8b8
JD
3598 (native-inputs
3599 `(("intltool" ,intltool)
221ed17a 3600 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
5698b8b8
JD
3601 ("pkg-config" ,pkg-config)))
3602 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
35b9e423 3603 (synopsis "Printing framework for GNOME")
eb497b66
LC
3604 (description
3605 "GNOME-print was a printing framework for GNOME. It has been deprecated
3606since ca. 2006, when GTK+ itself incorporated printing support.")
5698b8b8
JD
3607 (license license:lgpl2.0+)))
3608
3609
3610(define-public libgnomeprintui
eb497b66 3611 ;; Deprecated; see libgnomeprint.
5698b8b8
JD
3612 (package
3613 (name "libgnomeprintui")
36053d7f 3614 (version "2.18.6")
5698b8b8
JD
3615 (source (origin
3616 (method url-fetch)
b38e45d8
EB
3617 (uri (string-append "mirror://gnome/sources/" name "/"
3618 (version-major+minor version) "/"
3619 name "-" version ".tar.bz2"))
5698b8b8
JD
3620 (sha256
3621 (base32
36053d7f 3622 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
5698b8b8
JD
3623 (build-system gnu-build-system)
3624 ;; Mentioned as Required in the .pc file
3625 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
3626 (inputs `(("gtk+" ,gtk+-2)
3627 ("glib" ,glib)
3628 ("gnome-icon-theme" ,gnome-icon-theme)
3629 ("libgnomecanvas" ,libgnomecanvas)
2e6ecc5c 3630 ("libxml2" ,libxml2)))
5698b8b8
JD
3631 (native-inputs
3632 `(("intltool" ,intltool)
3633 ("pkg-config" ,pkg-config)))
3634 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3635 (synopsis "Printing framework for GNOME")
eb497b66 3636 (description (package-description libgnomeprint))
5698b8b8
JD
3637 (license license:lgpl2.0+)))
3638
5698b8b8
JD
3639(define-public libbonoboui
3640 (package
3641 (name "libbonoboui")
3642 (version "2.24.5")
3643 (source (origin
3644 (method url-fetch)
b38e45d8
EB
3645 (uri (string-append "mirror://gnome/sources/" name "/"
3646 (version-major+minor version) "/"
3647 name "-" version ".tar.bz2"))
5698b8b8
JD
3648 (sha256
3649 (base32
3650 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3651 (build-system gnu-build-system)
3652 (arguments
3653 `(#:phases
dc1d3cde
KK
3654 (modify-phases %standard-phases
3655 (add-before 'check 'start-xserver
3656 (lambda* (#:key inputs #:allow-other-keys)
3657 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3658 (disp ":1"))
3659
3660 (setenv "HOME" (getcwd))
3661 (setenv "DISPLAY" disp)
3662 ;; There must be a running X server and make check doesn't start one.
3663 ;; Therefore we must do it.
3664 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
5698b8b8
JD
3665 ;; Mentioned as Required by the .pc file
3666 (propagated-inputs `(("libxml2" ,libxml2)))
3667 (inputs
3668 `(("popt" ,popt)
3669 ("pangox-compat" ,pangox-compat)
3670 ("libgnome" ,libgnome)
3671 ("libgnomecanvas" ,libgnomecanvas)
3672 ("libglade" ,libglade)))
3673 (native-inputs
221ed17a
EB
3674 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3675 ("intltool" ,intltool)
ff337525 3676 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
5698b8b8
JD
3677 ("pkg-config" ,pkg-config)))
3678 (home-page "https://developer.gnome.org/libbonoboui/")
3679 (synopsis "Some user interface controls using Bonobo")
3680 (description "The Bonobo UI library provides a number of user interface
3681controls using the Bonobo component framework.")
3682 (license license:lgpl2.0+)))
3683
fecbf86e
SB
3684(define-public libwnck
3685 (package
3686 (name "libwnck")
d3b40696 3687 (version "3.32.0")
fecbf86e
SB
3688 (source (origin
3689 (method url-fetch)
3690 (uri (string-append "mirror://gnome/sources/" name "/"
3691 (version-major+minor version) "/"
3692 name "-" version ".tar.xz"))
3693 (sha256
ad9b8987 3694 (base32
d3b40696
KK
3695 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3696 (build-system meson-build-system)
fecbf86e
SB
3697 (native-inputs
3698 `(("pkg-config" ,pkg-config)
d3b40696
KK
3699 ("glib" ,glib "bin") ; for glib-mkenums
3700 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
fecbf86e
SB
3701 ("intltool" ,intltool)))
3702 (propagated-inputs
427476d5
SB
3703 `(("gtk+" ,gtk+)
3704 ("libxres" ,libxres)
3705 ("startup-notification" ,startup-notification)))
fecbf86e
SB
3706 (home-page "https://developer.gnome.org/libwnck/")
3707 (synopsis "Window Navigator Construction Kit")
3708 (description
3709 "Libwnck is the Window Navigator Construction Kit, a library for use in
3710writing pagers, tasklists, and more generally applications that are dealing
3711with window management. It tries hard to respect the Extended Window Manager
3712Hints specification (EWMH).")
3713 (license license:lgpl2.0+)))
3714
3715;; stable version for gtk2, required by xfwm4.
dbb7a081 3716(define-public libwnck-2
fecbf86e
SB
3717 (package (inherit libwnck)
3718 (name "libwnck")
3719 (version "2.30.7")
3720 (source (origin
3721 (method url-fetch)
3722 (uri (string-append "mirror://gnome/sources/" name "/"
3723 (version-major+minor version) "/"
3724 name "-" version ".tar.xz"))
3725 (sha256
3726 (base32
3727 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
ba7fed8e
MÁAV
3728 (build-system gnu-build-system)
3729 (native-inputs
3730 `(("pkg-config" ,pkg-config)
3731 ("intltool" ,intltool)))
fecbf86e 3732 (propagated-inputs
427476d5
SB
3733 `(("gtk+" ,gtk+-2)
3734 ("libxres" ,libxres)
3735 ("startup-notification" ,startup-notification)))))
b804c61e
JD
3736
3737(define-public goffice
3738 (package
3739 (name "goffice")
2e60eafb 3740 (version "0.10.47")
b804c61e
JD
3741 (source (origin
3742 (method url-fetch)
16243f0b 3743 (uri (string-append "mirror://gnome/sources/goffice/"
b38e45d8 3744 (version-major+minor version) "/"
16243f0b 3745 "goffice-" version ".tar.xz"))
b804c61e 3746 (sha256
2e60eafb 3747 (base32 "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215"))))
b804c61e 3748 (build-system gnu-build-system)
72a06d3e 3749 (outputs '("out"
355420c6 3750 "doc")) ; 4.0 MiB of gtk-doc
72a06d3e
LC
3751 (arguments
3752 '(#:configure-flags (list (string-append "--with-html-dir="
3753 (assoc-ref %outputs "doc")
3754 "/share/gtk-doc/html"))))
b804c61e
JD
3755 (inputs
3756 `(("gtk+" ,gtk+)
3757 ("libgsf" ,libgsf)
3758 ("librsvg" ,librsvg)
3759 ("libxslt" ,libxslt)
3760 ("libxml2" ,libxml2)))
3761 (native-inputs
3762 `(("intltool" ,intltool)
f280cdb1 3763 ("glib" ,glib "bin")
b804c61e
JD
3764 ("pkg-config" ,pkg-config)))
3765 (home-page "https://developer.gnome.org/goffice/")
3766 (synopsis "Document-centric objects and utilities")
3767 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2e6ecc5c 3768 (license
b804c61e
JD
3769 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3770 ;; Note: NOT LGPL
3771 (list license:gpl2 license:gpl3))))
3772
c024ae36
RW
3773(define-public goffice-0.8
3774 (package (inherit goffice)
3775 (version "0.8.17")
3776 (source (origin
3777 (method url-fetch)
3778 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3779 (version-major+minor version) "/"
3780 (package-name goffice) "-" version ".tar.xz"))
3781 (sha256
3782 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3783 (arguments
3784 `(#:phases
dc1d3cde
KK
3785 (modify-phases %standard-phases
3786 (add-after 'unpack 'fix-pcre-check
3787 (lambda _
3788 ;; Only glib.h can be included directly. See
3789 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3790 (substitute* "configure"
3791 (("glib/gregex\\.h") "glib.h")) #t)))
72a06d3e
LC
3792
3793 ,@(package-arguments goffice)))
c024ae36
RW
3794 (propagated-inputs
3795 ;; libgoffice-0.8.pc mentions libgsf-1
3796 `(("libgsf" ,libgsf)))
3797 (inputs
3798 `(("gtk" ,gtk+-2)
3799 ,@(alist-delete "gtk" (package-inputs goffice))))))
3800
b804c61e
JD
3801(define-public gnumeric
3802 (package
3803 (name "gnumeric")
f0517b5d 3804 (version "1.12.46")
b804c61e
JD
3805 (source (origin
3806 (method url-fetch)
b7fd0217 3807 (uri (string-append "mirror://gnome/sources/gnumeric/"
b38e45d8 3808 (version-major+minor version) "/"
b7fd0217 3809 "gnumeric-" version ".tar.xz"))
b804c61e
JD
3810 (sha256
3811 (base32
f0517b5d 3812 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
bd1b1e05 3813 (build-system glib-or-gtk-build-system)
b804c61e
JD
3814 (arguments
3815 `(;; The gnumeric developers don't worry much about failing tests.
3816 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2e6ecc5c 3817 #:tests? #f
b804c61e 3818 #:phases
7bcbd40d
EF
3819 (modify-phases %standard-phases
3820 (add-before
3821 'configure 'pre-conf
3822 (lambda* (#:key outputs #:allow-other-keys)
3823 ;; Make install tries to write into the directory of goffice
3824 ;; I am informed that this only affects the possibility to embed a
3825 ;; spreadsheet inside an Abiword document. So presumably when we
3826 ;; package Abiword we'll have to refer it to this directory.
3827 (substitute* "configure"
3828 (("^GOFFICE_PLUGINS_DIR=.*")
3829 (string-append "GOFFICE_PLUGINS_DIR="
3830 (assoc-ref outputs "out")
3831 "/goffice/plugins"))))))))
b804c61e
JD
3832 (inputs
3833 `(("glib" ,glib)
3834 ("gtk+" ,gtk+)
3835 ("goffice" ,goffice)
3836 ("libgsf" ,libgsf)
7bcbd40d 3837 ("librsvg" ,librsvg)
b804c61e 3838 ("libxml2" ,libxml2)
7bcbd40d 3839 ("libxslt" ,libxslt)
2e4c5457 3840 ("python" ,python-2)
6983ba56 3841 ("python2-pygobject" ,python2-pygobject)
b804c61e
JD
3842 ("zlib" ,zlib)))
3843 (native-inputs
6983ba56 3844 `(("bison" ,bison)
1ed398d1 3845 ("docbook-xml" ,docbook-xml)
6983ba56 3846 ("intltool" ,intltool)
785fcb62 3847 ("itstool" ,itstool)
b9663471 3848 ("glib:bin" ,glib "bin")
b804c61e
JD
3849 ("pkg-config" ,pkg-config)))
3850 (home-page "http://www.gnumeric.org")
66672a45
LC
3851 (synopsis "Spreadsheet application")
3852 (description
3853 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3854interoperable with other spreadsheet applications. It has a vast array of
3855features beyond typical spreadsheet functionality, such as support for linear
3856and non-linear solvers, statistical analysis, and telecommunication
3857engineering.")
3858 (license
b804c61e
JD
3859 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3860 (list license:gpl2 license:gpl3))))
6f885c05
FB
3861
3862(define-public gnome-themes-standard
3863 (package
3864 (name "gnome-themes-standard")
0b7b8fb0 3865 (version "3.22.3")
6f885c05
FB
3866 (source
3867 (origin
3868 (method url-fetch)
2e6ecc5c 3869 (uri (string-append "mirror://gnome/sources/" name "/"
6f885c05
FB
3870 (version-major+minor version) "/" name "-"
3871 version ".tar.xz"))
3872 (sha256
3873 (base32
0b7b8fb0 3874 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
6f885c05 3875 (build-system gnu-build-system)
8ac70c7f
SB
3876 (arguments
3877 '(#:configure-flags
3878 ;; Don't create 'icon-theme.cache'.
3879 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3880 (true (string-append coreutils "/bin/true")))
3881 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
6f885c05
FB
3882 (inputs
3883 `(("gtk+" ,gtk+)
3884 ("gtk+-2" ,gtk+-2)
3885 ("librsvg" ,librsvg)
3886 ("libxml2" ,libxml2)
3887 ("glib" ,glib)))
3888 (native-inputs
3889 `(("intltool" ,intltool)
3890 ("glib:bin" ,glib "bin")
3891 ("pkg-config" ,pkg-config)))
6f885c05
FB
3892 (home-page "https://launchpad.net/gnome-themes-standard")
3893 (synopsis "Default GNOME 3 themes")
3894 (description
3895 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3896 (license license:lgpl2.1+)))
5a659a48 3897
df90c701
RW
3898(define-public seahorse
3899 (package
3900 (name "seahorse")
1efcf722 3901 (version "3.34")
df90c701
RW
3902 (source
3903 (origin
3904 (method url-fetch)
3905 (uri (string-append "mirror://gnome/sources/" name "/"
3906 (version-major+minor version) "/" name "-"
3907 version ".tar.xz"))
3908 (sha256
3909 (base32
1efcf722 3910 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
af561664
MÁAV
3911 (build-system meson-build-system)
3912 (arguments
bcea3c11
KK
3913 '(#:glib-or-gtk? #t
3914 #:phases
af561664
MÁAV
3915 (modify-phases %standard-phases
3916 (add-after 'unpack 'skip-gtk-update-icon-cache
3917 ;; Don't create 'icon-theme.cache'.
3918 (lambda _
3919 (substitute* "build-aux/meson_post_install.py"
3920 (("gtk-update-icon-cache") "true"))
3921 #t)))))
df90c701
RW
3922 (inputs
3923 `(("gtk+" ,gtk+)
3924 ("gcr" ,gcr)
34b979b9 3925 ("gnupg" ,gnupg)
df90c701 3926 ("gpgme" ,gpgme)
34b979b9 3927 ("openldap" ,openldap)
4a1bf090 3928 ("openssh" ,openssh)
af561664 3929 ("avahi" ,avahi)
bcea3c11 3930 ("libpwquality" ,libpwquality)
34b979b9
EF
3931 ("libsecret" ,libsecret)
3932 ("libsoup" ,libsoup)))
df90c701 3933 (native-inputs
af561664 3934 `(("gettext" ,gettext-minimal)
df90c701
RW
3935 ("glib:bin" ,glib "bin")
3936 ("itstool" ,itstool)
bcb354ad 3937 ("pkg-config" ,pkg-config)
af561664 3938 ("vala" ,vala)
bcb354ad 3939 ("xmllint" ,libxml2)))
bcea3c11 3940 (home-page "https://wiki.gnome.org/Apps/Seahorse")
df90c701
RW
3941 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3942 (description
3943 "Seahorse is a GNOME application for managing encryption keys and
3944passwords in the GNOME keyring.")
3945 (license license:gpl2+)))
3946
5a659a48
SB
3947(define-public vala
3948 (package
3949 (name "vala")
b92a36db 3950 (version "0.46.5")
5a659a48
SB
3951 (source (origin
3952 (method url-fetch)
3953 (uri (string-append "mirror://gnome/sources/" name "/"
3954 (version-major+minor version) "/"
3955 name "-" version ".tar.xz"))
3956 (sha256
3957 (base32
b92a36db 3958 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
5a659a48 3959 (build-system gnu-build-system)
1ea90625
SB
3960 (arguments
3961 '(#:phases
3962 (modify-phases %standard-phases
f4925a4f 3963 (add-before 'check 'pre-check
1ea90625
SB
3964 (lambda _
3965 (setenv "CC" "gcc")
8839b6be
RW
3966 (substitute* "valadoc/tests/testrunner.sh"
3967 (("export PKG_CONFIG_PATH=" m)
3968 (string-append m "$PKG_CONFIG_PATH:")))
f4925a4f
SB
3969 ;; For missing '/etc/machine-id'.
3970 (setenv "DBUS_FATAL_WARNINGS" "0")
8839b6be 3971 #t)))))
5a659a48
SB
3972 (native-inputs
3973 `(("pkg-config" ,pkg-config)
3974 ("flex" ,flex)
3975 ("bison" ,bison)
3976 ("xsltproc" ,libxslt)
3977 ("dbus" ,dbus) ; for dbus tests
3978 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
8839b6be
RW
3979 (inputs
3980 `(("graphviz" ,graphviz)))
5a659a48 3981 (propagated-inputs
8839b6be 3982 `(("glib" ,glib))) ; required by libvala-0.40.pc
f032d0be 3983 (home-page "https://live.gnome.org/Vala/")
5a659a48
SB
3984 (synopsis "Compiler for the GObject type system")
3985 (description
3986 "Vala is a programming language that aims to bring modern programming
3987language features to GNOME developers without imposing any additional runtime
3988requirements and without using a different ABI compared to applications and
3989libraries written in C.")
3990 (license license:lgpl2.1+)))
ea57378f 3991
2dcaa760
RP
3992(define-public vala-0.48
3993 (package
3994 (inherit vala)
9a299d4d 3995 (version "0.48.7")
2dcaa760
RP
3996 (source (origin
3997 (method url-fetch)
3998 (uri (string-append "mirror://gnome/sources/vala/"
3999 (version-major+minor version) "/"
4000 "vala-" version ".tar.xz"))
4001 (sha256
4002 (base32
9a299d4d 4003 "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8"))))))
2dcaa760 4004
ea57378f
SB
4005(define-public vte
4006 (package
4007 (name "vte")
53865a93 4008 (version "0.60.3")
ea57378f
SB
4009 (source (origin
4010 (method url-fetch)
ac87ffb8 4011 (uri (string-append "mirror://gnome/sources/vte/"
ea57378f 4012 (version-major+minor version) "/"
ac87ffb8 4013 "vte-" version ".tar.xz"))
ea57378f
SB
4014 (sha256
4015 (base32
53865a93 4016 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
68c47474 4017 (build-system meson-build-system)
663def11
RPG
4018 (arguments
4019 `(#:configure-flags
11491e1b
DM
4020 '("-Dvapi=true"
4021 "-D_systemd=false")))
ea57378f
SB
4022 (native-inputs
4023 `(("pkg-config" ,pkg-config)
4684580a 4024 ("gettext" ,gettext-minimal)
ea57378f
SB
4025 ("vala" ,vala)
4026 ("gobject-introspection" ,gobject-introspection)
68c47474 4027 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
73f0e1ab 4028 ("gperf" ,gperf)
ea57378f
SB
4029 ("xmllint" ,libxml2)))
4030 (propagated-inputs
68c47474
TGR
4031 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
4032 ("gnutls" ,gnutls) ; ditto
4033 ("pcre2" ,pcre2))) ; ditto
f032d0be 4034 (home-page "https://www.gnome.org/")
ea57378f
SB
4035 (synopsis "Virtual Terminal Emulator")
4036 (description
4037 "VTE is a library (libvte) implementing a terminal emulator widget for
4038GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4039gnome-terminal, but can also be used to embed a console/terminal in games,
4040editors, IDEs, etc.")
4041 (license license:lgpl2.1+)))
4042
c44fb4df
MO
4043(define-public vte-ng
4044 (package
4045 (inherit vte)
4046 (name "vte-ng")
24f4fcbe 4047 (version "0.58.2.a")
afd90f8d 4048 (home-page "https://github.com/thestinger/vte-ng")
6bc00737
MB
4049 (source (origin
4050 (method git-fetch)
4051 (uri (git-reference (url home-page) (commit version)))
4052 (file-name (git-file-name name version))
4053 (sha256
4054 (base32
24f4fcbe
MB
4055 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4056 (build-system meson-build-system)
c44fb4df
MO
4057 (native-inputs
4058 `(("gtk-doc" ,gtk-doc)
c44fb4df 4059 ,@(package-native-inputs vte)))
c44fb4df 4060 (arguments
24f4fcbe 4061 `(#:configure-flags '("-Ddocs=true")))
c44fb4df
MO
4062 (synopsis "Enhanced VTE terminal widget")
4063 (description
4064 "VTE is a library (libvte) implementing a terminal emulator widget for
4065GTK+, this fork provides additional functions exposed for keyboard text
4066selection and URL hints.")))
4067
da11c16b 4068;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
ea57378f
SB
4069(define-public vte/gtk+-2
4070 (package (inherit vte)
4071 (name "vte")
4072 (version "0.28.2")
4073 (source (origin
4074 (method url-fetch)
4075 (uri (string-append "mirror://gnome/sources/" name "/"
4076 (version-major+minor version) "/"
4077 name "-" version ".tar.xz"))
4078 (sha256
4079 (base32
7d48938a
EF
4080 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4081 (patches (search-patches
4082 "vte-CVE-2012-2738-pt1.patch"
4083 "vte-CVE-2012-2738-pt2.patch"))))
8eebde74 4084 (build-system gnu-build-system)
ea57378f
SB
4085 (arguments
4086 '(#:configure-flags '("--disable-python")))
4087 (native-inputs
4088 `(("pkg-config" ,pkg-config)
4089 ("intltool" ,intltool)
4090 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
4091 (propagated-inputs
4092 `(("gtk+" ,gtk+-2) ; required by libvte.pc
4093 ("ncurses" ,ncurses))))) ; required by libvte.la
b47e1b20 4094
cce0da5e
TD
4095(define-public vinagre
4096 (package
4097 (name "vinagre")
4098 (version "3.22.0")
4099 (source (origin
4100 (method url-fetch)
4101 (uri (string-append "mirror://gnome/sources/" name "/"
4102 (version-major+minor version) "/"
4103 name "-" version ".tar.xz"))
684f97f8
EF
4104 (patches (search-patches "vinagre-newer-freerdp.patch"
4105 "vinagre-newer-rdp-parameters.patch"))
cce0da5e
TD
4106 (sha256
4107 (base32
4108 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4109 (build-system glib-or-gtk-build-system)
684f97f8 4110 (arguments
7f486d25
MC
4111 ;; Disable -Werror and such, to avoid build failures on compilation
4112 ;; warnings.
4113 '(#:configure-flags '("--enable-compile-warnings=minimum")
4114 #:phases
684f97f8 4115 (modify-phases %standard-phases
1839768c
EF
4116 (add-before 'install 'skip-gtk-update-icon-cache
4117 (lambda _
4118 ;; Don't create 'icon-theme.cache'
4119 (substitute* (find-files "." "^Makefile$")
4120 (("gtk-update-icon-cache") (which "true")))
4121 #t))
684f97f8
EF
4122 (add-after 'unpack 'patch-configure
4123 (lambda _
4124 (substitute* "configure"
4125 (("freerdp") "freerdp2"))
4126 #t)))))
cce0da5e
TD
4127 (native-inputs
4128 `(("pkg-config" ,pkg-config)
4129 ("intltool" ,intltool)
4130 ("itstool" ,itstool)
1839768c 4131 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
cce0da5e
TD
4132 (inputs
4133 `(("libxml2" ,libxml2)
4134 ("gtk-vnc" ,gtk-vnc)
4135 ("gnome-keyring" ,gnome-keyring)
4136 ("libsecret" ,libsecret)
4137 ("freerdp" ,freerdp)
4138 ("spice" ,spice)
4139 ("spice-gtk" ,spice-gtk)
4140 ("telepathy-glib" ,telepathy-glib)
4141 ("vte" ,vte)))
cce0da5e
TD
4142 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4143 (synopsis "Remote desktop viewer for GNOME")
4144 (description "Vinagre is a remote display client supporting the VNC, SPICE
4145and RDP protocols.")
4146 (license license:gpl3+)))
4147
b47e1b20
FB
4148(define-public dconf
4149 (package
4150 (name "dconf")
7f4d075d 4151 (version "0.34.0")
b47e1b20
FB
4152 (source (origin
4153 (method url-fetch)
4154 (uri (string-append
2e6ecc5c 4155 "mirror://gnome/sources/" name "/"
b47e1b20
FB
4156 (version-major+minor version) "/"
4157 name "-" version ".tar.xz"))
46c3a08b 4158 (patches (search-patches "dconf-meson-0.52.patch"))
b47e1b20 4159 (sha256
f05c809f 4160 (base32
7f4d075d 4161 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
35fa923d 4162 (build-system meson-build-system)
bc036f4c
MB
4163 (propagated-inputs
4164 ;; In Requires of dconf.pc.
4165 `(("glib" ,glib)))
b47e1b20
FB
4166 (inputs
4167 `(("gtk+" ,gtk+)
bc036f4c 4168 ("dbus" ,dbus)))
b47e1b20 4169 (native-inputs
1e33331c
MB
4170 `(("bash-completion" ,bash-completion)
4171 ("libxslt" ,libxslt) ;for xsltproc
bc036f4c 4172 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b47e1b20
FB
4173 ("docbook-xml" ,docbook-xml-4.2)
4174 ("docbook-xsl" ,docbook-xsl)
35fa923d 4175 ("glib:bin" ,glib "bin")
03676d6f 4176 ("gtk-doc" ,gtk-doc)
35fa923d
MB
4177 ("pkg-config" ,pkg-config)
4178 ("vala" ,vala)))
b47e1b20
FB
4179 (arguments
4180 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
4181 ; or /etc/machine-id.
35fa923d
MB
4182 #:glib-or-gtk? #t
4183 #:configure-flags '("-Denable-gtk-doc=true")))
79d7b527 4184 (home-page "https://developer.gnome.org/dconf/")
b47e1b20
FB
4185 (synopsis "Low-level GNOME configuration system")
4186 (description "Dconf is a low-level configuration system. Its main purpose
4187is to provide a backend to GSettings on platforms that don't already have
4188configuration storage systems.")
e20e6b40 4189 (license license:lgpl2.1+)))
109da1c0
AE
4190
4191(define-public json-glib
4192 (package
4193 (name "json-glib")
4115e8ea 4194 (version "1.4.4")
109da1c0
AE
4195 (source (origin
4196 (method url-fetch)
4197 (uri (string-append "mirror://gnome/sources/" name "/"
4198 (version-major+minor version) "/"
4199 name "-" version ".tar.xz"))
4200 (sha256
4201 (base32
4115e8ea 4202 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
98afa184 4203 (build-system meson-build-system)
109da1c0 4204 (native-inputs
98afa184
MB
4205 `(("gettext" ,gettext-minimal)
4206 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
109da1c0
AE
4207 ("gobject-introspection" ,gobject-introspection)
4208 ("pkg-config" ,pkg-config)))
4209 (propagated-inputs
88c6b580 4210 `(("glib" ,glib))) ;according to json-glib-1.0.pc
109da1c0
AE
4211 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4212 (synopsis "Compiler for the GObject type system")
7c125ce0
AK
4213 (description
4214 "JSON-GLib is a C library based on GLib providing serialization and
4215deserialization support for the JavaScript Object Notation (JSON) format
4216described by RFC 4627. It provides parser and generator GObject classes and
4217various wrappers for the complex data types employed by JSON, such as arrays
4218and objects.")
109da1c0 4219 (license license:lgpl2.1+)))
6f96a359
SB
4220
4221(define-public libxklavier
4222 (package
4223 (name "libxklavier")
5f39050b 4224 (version "5.4")
6f96a359 4225 (source (origin
5f39050b 4226 ;; Note: There's no tarball at ftp.gnome.org for this version.
4227 (method git-fetch)
4228 (uri (git-reference
4229 (url "https://anongit.freedesktop.org/git/libxklavier")
4230 (commit (string-append "libxklavier-" version))))
6f96a359
SB
4231 (sha256
4232 (base32
5f39050b 4233 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4234 (file-name (git-file-name name version))))
6f96a359
SB
4235 (build-system gnu-build-system)
4236 (arguments
778d6b52 4237 '(#:configure-flags
6f96a359
SB
4238 (list (string-append "--with-xkb-base="
4239 (assoc-ref %build-inputs "xkeyboard-config")
5f39050b 4240 "/share/X11/xkb")
4241 "--disable-xmodmap-support")))
6f96a359
SB
4242 (native-inputs
4243 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4244 ("gobject-introspection" ,gobject-introspection)
5f39050b 4245 ("pkg-config" ,pkg-config)
4246 ("gtk-doc" ,gtk-doc)
4247 ("intltool" ,intltool)
4248 ("which" ,which)
4249 ("autoconf" ,autoconf)
4250 ("automake" ,automake)
4251 ("libtool" ,libtool)))
6f96a359
SB
4252 (propagated-inputs
4253 ;; Required by libxklavier.pc.
4254 `(("glib" ,glib)
4255 ("libxml2" ,libxml2)))
4256 (inputs
4257 `(("iso-codes" ,iso-codes)
4258 ("libxi" ,libxi)
4259 ("libxkbfile" ,libxkbfile)
4260 ("xkbcomp" ,xkbcomp)
4261 ("xkeyboard-config" ,xkeyboard-config)))
57e7d748 4262 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
6f96a359
SB
4263 (synopsis "High-level API for X Keyboard Extension")
4264 (description
4265 "LibXklavier is a library providing high-level API for X Keyboard
e881752c
AK
4266Extension known as XKB. This library is intended to support XFree86 and other
4267commercial X servers. It is useful for creating XKB-related software (layout
6f96a359
SB
4268indicators etc).")
4269 (license license:lgpl2.0+)))
619936a4
LC
4270
4271(define-public python2-rsvg
4272 ;; XXX: This is actually a subset of gnome-python-desktop.
4273 (package
4274 (name "python2-rsvg")
4275 (version "2.32.0")
4276 (source
4277 (origin
4278 (method url-fetch)
4279 (uri (string-append
4280 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
4281 version ".tar.bz2"))
4282 (sha256
4283 (base32
4284 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
4285 (build-system gnu-build-system)
4286 (native-inputs
4287 `(("pkg-config" ,pkg-config)))
4288 (inputs
4289 `(("python" ,python-2)
4290 ("python2-pygtk" ,python2-pygtk)
4291 ("librsvg" ,librsvg)))
f032d0be 4292 (home-page "https://www.gnome.org")
619936a4
LC
4293 (synopsis "Python bindings to librsvg")
4294 (description
3ad75446 4295 "This package provides Python bindings to librsvg, the SVG rendering
619936a4
LC
4296library.")
4297
4298 ;; This is the license of the rsvg bindings. The license of each module
4299 ;; of gnome-python-desktop is given in 'COPYING'.
4300 (license license:lgpl2.1+)))
a31a6d22 4301
f2ca414a
SB
4302(define-public glib-networking
4303 (package
4304 (name "glib-networking")
ea9f74b0 4305 (version "2.62.2")
f2ca414a
SB
4306 (source (origin
4307 (method url-fetch)
4308 (uri (string-append "mirror://gnome/sources/glib-networking/"
4309 (version-major+minor version) "/"
fb8fe1e8 4310 "glib-networking-" version ".tar.xz"))
f2ca414a
SB
4311 (sha256
4312 (base32
ea9f74b0 4313 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
65211552 4314 (build-system meson-build-system)
f2ca414a 4315 (arguments
0d75c64d 4316 `(#:configure-flags '("-Dlibproxy_support=false")))
f2ca414a
SB
4317 (native-inputs
4318 `(("pkg-config" ,pkg-config)
4319 ("intltool" ,intltool)))
4320 (inputs
4321 `(("glib" ,glib)
4322 ("gnutls" ,gnutls)
4b8f1313 4323 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
f032d0be 4324 (home-page "https://www.gnome.org")
f2ca414a
SB
4325 (synopsis "Network-related GIO modules")
4326 (description
4327 "This package contains various network related extensions for the GIO
4328library.")
4329 (license license:lgpl2.0+)))
4330
ca649680 4331(define-public rest
4510b2da 4332 (package
ca649680 4333 (name "rest")
a4194d16 4334 (version "0.8.1")
4510b2da
SB
4335 (source (origin
4336 (method url-fetch)
4337 (uri (string-append "mirror://gnome/sources/rest/"
ca649680
SB
4338 (version-major+minor version) "/"
4339 name "-" version ".tar.xz"))
4510b2da
SB
4340 (sha256
4341 (base32
a4194d16 4342 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4510b2da
SB
4343 (build-system gnu-build-system)
4344 (arguments
4345 '(#:tests? #f ; tests require internet connection
4346 #:configure-flags
4347 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4348 (native-inputs
4349 `(("glib-mkenums" ,glib "bin")
4350 ("gobject-introspection" ,gobject-introspection)
4351 ("pkg-config" ,pkg-config)))
4352 (propagated-inputs
4353 ;; rest-0.7.pc refers to all these.
4354 `(("glib" ,glib)
4355 ("libsoup" ,libsoup)
4356 ("libxml2" ,libxml2)))
24d6cc1d 4357 (home-page "https://www.gtk.org/")
4510b2da
SB
4358 (synopsis "RESTful web api query library")
4359 (description
4360 "This library was designed to make it easier to access web services that
4361claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4362libxml to ease remote use of the RESTful API.")
4363 (license license:lgpl2.1+)))
4364
6e1bb642
SB
4365(define-public libsoup
4366 (package
4367 (name "libsoup")
9a9cd9bc 4368 (version "2.70.0")
6e1bb642
SB
4369 (source (origin
4370 (method url-fetch)
4371 (uri (string-append "mirror://gnome/sources/libsoup/"
4372 (version-major+minor version) "/"
c1b79b36 4373 "libsoup-" version ".tar.xz"))
6e1bb642
SB
4374 (sha256
4375 (base32
9a9cd9bc 4376 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
eccaa8bf 4377 (build-system meson-build-system)
6e1bb642
SB
4378 (outputs '("out" "doc"))
4379 (arguments
2deb146f 4380 `(#:modules ((guix build utils)
eccaa8bf 4381 (guix build meson-build-system)
2deb146f
LC
4382 (ice-9 popen))
4383
f8026a79 4384 #:configure-flags '("-Dgtk_doc=true")
6e1bb642
SB
4385 #:phases
4386 (modify-phases %standard-phases
eccaa8bf 4387 (add-after 'unpack 'adjust-tests
26c228f9 4388 (lambda _
eccaa8bf
MB
4389 ;; This test fails due to missing /etc/nsswitch.conf
4390 ;; in the build environment.
26c228f9
LC
4391 (substitute* "tests/socket-test.c"
4392 ((".*/sockets/unconnected.*") ""))
2deb146f 4393
f8026a79
MB
4394 ;; These fail because "subdomain.localhost" does not resolve in
4395 ;; the build environment.
4396 (substitute* "tests/hsts-test.c"
4397 ((".*/hsts/basic.*") "")
4398 ((".*/hsts/subdomains.*") "")
4399 ((".*/hsts/superdomain.*") "")
4400 ((".*/hsts/utf8-address.*") ""))
4401 (substitute* "tests/hsts-db-test.c"
4402 ((".*/hsts-db/subdomains.*") ""))
4403
2deb146f
LC
4404 ;; Generate a self-signed certificate that has "localhost" as its
4405 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4406 ;; 3.5.12, tests such as "ssl-tests" fail:
4407 ;;
4408 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4409 ;;
4410 ;; 'certtool' is interactive so we have to pipe it the answers.
4411 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4412 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4413 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4414 (for-each (lambda (line)
4415 (display line pipe)
4416 (newline pipe))
4417 '("" ;Common name
4418 "" ;UID
4419 "Guix" ;Organizational unit name
4420 "GNU" ;Organization name
4421 "" ;Locality name
4422 "" ;State or province
4423 "" ;Country
4424 "" ;subject's domain component (DC)
4425 "" ;E-mail
4426 "" ;serial number
4427 "-1" ;expiration time
4428 "N" ;belong to authority?
4429 "N" ;web client certificate?
4430 "N" ;IPsec IKE?
4431 "Y" ;web server certificate?
4432 "localhost" ;dnsName of subject
4433 "" ;dnsName of subject (end)
4434 "" ;URI of subject
4435 "127.0.0.1" ;IP address of subject
4436 "" ;signing?
06f5bc4e
MB
4437 "" ;encryption (RSA)?
4438 "" ;data encryption?
2deb146f
LC
4439 "" ;sign OCSP requests?
4440 "" ;sign code?
4441 "" ;time stamping?
4442 "" ;email protection?
4443 "" ;URI of the CRL distribution point
4444 "y" ;above info OK?
4445 ))
4446 (close-pipe pipe))
26c228f9 4447 #t))
eccaa8bf
MB
4448 (add-after 'install 'move-doc
4449 (lambda* (#:key outputs #:allow-other-keys)
4450 (let ((out (assoc-ref outputs "out"))
4451 (doc (assoc-ref outputs "doc")))
4452 (mkdir-p (string-append doc "/share"))
4453 (copy-recursively (string-append out "/share/gtk-doc")
4454 (string-append doc "/share/gtk-doc"))
4455 (delete-file-recursively (string-append out "/share/gtk-doc"))
4456 #t))))))
6e1bb642 4457 (native-inputs
26c228f9 4458 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6e1bb642 4459 ("gobject-introspection" ,gobject-introspection)
eccaa8bf 4460 ("gtk-doc" ,gtk-doc)
6e1bb642
SB
4461 ("intltool" ,intltool)
4462 ("pkg-config" ,pkg-config)
4463 ("python" ,python-wrapper)
fd730590 4464 ("vala" ,vala)
53c41e95 4465 ("php" ,php)
6e1bb642 4466 ("curl" ,curl)
2deb146f 4467 ("gnutls" ,gnutls) ;for 'certtool'
6e1bb642
SB
4468 ("httpd" ,httpd)))
4469 (propagated-inputs
4470 ;; libsoup-2.4.pc refers to all these.
f8026a79
MB
4471 `(("brotli" ,google-brotli)
4472 ("glib" ,glib)
249846bf 4473 ("libpsl" ,libpsl)
eccaa8bf 4474 ("libxml2" ,libxml2)
f8026a79
MB
4475 ("sqlite" ,sqlite)
4476 ("zlib" ,zlib)))
eccaa8bf
MB
4477 (inputs
4478 `(("glib-networking" ,glib-networking)
4479 ("mit-krb5" ,mit-krb5)))
6e1bb642
SB
4480 (home-page "https://live.gnome.org/LibSoup/")
4481 (synopsis "GLib-based HTTP Library")
4482 (description
4483 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4484and the GLib main loop, to integrate well with GNOME applications.")
4485 (license license:lgpl2.0+)))
4486
43b6b45e
MC
4487
4488;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4489(define-public libsoup-minimal
4490 (package
4491 (inherit libsoup)
4492 (name "libsoup-minimal")
4493 (outputs (delete "doc" (package-outputs libsoup)))
4494 (arguments
4495 (substitute-keyword-arguments (package-arguments libsoup)
4496 ((#:configure-flags configure-flags)
4497 `(delete "-Dgtk_doc=true" ,configure-flags))
4498 ((#:phases phases)
4499 `(modify-phases ,phases
4500 (delete 'move-doc)))))
4501 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4502
bba229a3
SB
4503(define-public libsecret
4504 (package
4505 (name "libsecret")
b05a2f62 4506 (version "0.20.3")
bba229a3
SB
4507 (source (origin
4508 (method url-fetch)
4509 (uri (string-append
896dcbc7
EF
4510 "mirror://gnome/sources/libsecret/"
4511 (version-major+minor version) "/"
0ada4e29 4512 "libsecret-" version ".tar.xz"))
bba229a3
SB
4513 (sha256
4514 (base32
b05a2f62 4515 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
bba229a3
SB
4516 (build-system gnu-build-system)
4517 (outputs '("out" "doc"))
4518 (arguments
4519 `(#:tests? #f ; FIXME: Testing hangs.
bba229a3
SB
4520 #:configure-flags
4521 (list (string-append "--with-html-dir="
4522 (assoc-ref %outputs "doc")
4523 "/share/gtk-doc/html"))))
4524 (native-inputs
c06ef010
MB
4525 `(("gettext" ,gettext-minimal)
4526 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
bba229a3 4527 ("gobject-introspection" ,gobject-introspection)
bba229a3
SB
4528 ("pkg-config" ,pkg-config)
4529 ("vala" ,vala)
4530 ("xsltproc" ,libxslt)))
4531 ;; These are needed for the tests.
4532 ;; FIXME: Add gjs once available.
4533 ;("dbus" ,dbus)
4534 ;("python2" ,python-2)
4535 ;("python2-dbus" ,python2-dbus)
4536 ;("python2-pygobject" ,python2-pygobject)
4537 ;("python2-pygobject-2" ,python2-pygobject-2)))
4538 (propagated-inputs
4539 `(("glib" ,glib))) ; required by libsecret-1.pc
4540 (inputs
4541 `(("docbook-xsl" ,docbook-xsl)
4542 ("libgcrypt" ,libgcrypt)
4543 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4544 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4545 (synopsis "GObject bindings for \"Secret Service\" API")
4546 (description
4547 "Libsecret is a GObject based library for storing and retrieving passwords
4548and other secrets. It communicates with the \"Secret Service\" using DBus.")
4549 (license license:lgpl2.1+)))
4550
b6821ee0 4551(define-public five-or-more
4552 (package
4553 (name "five-or-more")
ee75b46f 4554 (version "3.32.2")
b6821ee0 4555 (source
4556 (origin
4557 (method url-fetch)
bf782bfc 4558 (uri (string-append "mirror://gnome/sources/five-or-more/"
b6821ee0 4559 (version-major+minor version) "/"
bf782bfc 4560 "five-or-more-" version ".tar.xz"))
b6821ee0 4561 (sha256
ee75b46f 4562 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
d9795e93
KK
4563 (build-system meson-build-system)
4564 (arguments
4565 '(#:glib-or-gtk? #t
4566 #:phases
4567 (modify-phases %standard-phases
4568 (add-after 'unpack 'skip-gtk-update-icon-cache
4569 (lambda _
4570 (substitute* "meson_post_install.py"
4571 (("gtk-update-icon-cache") (which "true")))
4572 #t)))))
b6821ee0 4573 (native-inputs
4574 `(("pkg-config" ,pkg-config)
d9795e93 4575 ("appstream-glib" ,appstream-glib)
b6821ee0 4576 ("desktop-file-utils" ,desktop-file-utils)
d9795e93 4577 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b6821ee0 4578 ("intltool" ,intltool)
4579 ("itstool" ,itstool)
d9795e93 4580 ("vala" ,vala)
b6821ee0 4581 ("xmllint" ,libxml2)))
4582 (inputs
4583 `(("gtk+" ,gtk+)
d9795e93 4584 ("libgnome-games-support" ,libgnome-games-support)
b6821ee0 4585 ("librsvg" ,librsvg)))
4586 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4587 (synopsis "Logic puzzle game")
4588 (description "Five or More is a game where you try to align
4589 five or more objects of the same color and shape causing them to disappear.
4590 On every turn more objects will appear, until the board is full.
4591 Try to last as long as possible.")
4592 (license license:gpl2+)))
4593
a31a6d22
SB
4594(define-public gnome-mines
4595 (package
4596 (name "gnome-mines")
d79e9b1b 4597 (version "3.34.0")
a31a6d22
SB
4598 (source
4599 (origin
4600 (method url-fetch)
4601 (uri (string-append "mirror://gnome/sources/" name "/"
4602 (version-major+minor version) "/"
4603 name "-" version ".tar.xz"))
4604 (sha256
4605 (base32
d79e9b1b 4606 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
8c0fab36 4607 (build-system meson-build-system)
a31a6d22 4608 (arguments
2d817e41
KK
4609 '(#:glib-or-gtk? #t
4610 #:phases
a31a6d22 4611 (modify-phases %standard-phases
2d817e41
KK
4612 (add-after 'unpack 'skip-gtk-update-icon-cache
4613 (lambda _
4614 (substitute* "build-aux/meson_post_install.py"
4615 (("gtk-update-icon-cache") (which "true")))
4616 #t)))))
a31a6d22 4617 (native-inputs
8c0fab36
RW
4618 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4619 ("pkg-config" ,pkg-config)
a31a6d22
SB
4620 ("desktop-file-utils" ,desktop-file-utils)
4621 ("intltool" ,intltool)
bcb354ad 4622 ("itstool" ,itstool)
8c0fab36
RW
4623 ("vala" ,vala)
4624 ("yelp" ,yelp)
4625 ("appstream-glib" ,appstream-glib)))
a31a6d22
SB
4626 (inputs
4627 `(("gtk+" ,gtk+)
73992962 4628 ("libgnome-games-support" ,libgnome-games-support)
a31a6d22
SB
4629 ("librsvg" ,librsvg)))
4630 (home-page "https://wiki.gnome.org/Apps/Mines")
4631 (synopsis "Minesweeper game")
4632 (description
4633 "Mines (previously gnomine) is a puzzle game where you locate mines
4634floating in an ocean using only your brain and a little bit of luck.")
754cfbdc
EB
4635 (license license:gpl2+)))
4636
4637(define-public gnome-multi-writer
4638 (package
4639 (name "gnome-multi-writer")
4640 (version "3.35.90")
4641 (source
4642 (origin
4643 (method url-fetch)
4644 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4645 (version-major+minor version) "/"
4646 "gnome-multi-writer-" version ".tar.xz"))
4647 (sha256
4648 (base32
4649 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4650 (build-system meson-build-system)
4651 (arguments
4652 '(#:glib-or-gtk? #t
4653 #:phases
4654 (modify-phases %standard-phases
4655 (add-after 'unpack 'skip-post-install
4656 (lambda _
4657 (substitute* "meson.build"
4658 (("meson.add_install_script" &) (string-append "# " &)))
4659 #t)))))
4660 (native-inputs
4661 `(("glib:bin" ,glib "bin")
4662 ("pkg-config" ,pkg-config)))
4663 (inputs
4664 `(("gtk+" ,gtk+)
4665 ("glib" ,glib) ; for gio
4666 ("gusb" ,gusb)
4667 ("udisks" ,udisks)
4668 ("libgudev" ,libgudev)
4669 ("libcanberra" ,libcanberra)
4670 ("polkit" ,polkit)))
4671 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4672 (synopsis "Write to multiple USB devices at once")
4673 (description
4674 "MultiWriter can be used to write an ISO file to multiple USB devices at
4675once.")
a31a6d22 4676 (license license:gpl2+)))
88f70665 4677
dfc407f3
KY
4678(define-public gnome-sudoku
4679 (package
4680 (name "gnome-sudoku")
857eb190 4681 (version "3.34.1")
dfc407f3
KY
4682 (source
4683 (origin
4684 (method url-fetch)
4685 (uri (string-append "mirror://gnome/sources/" name "/"
4686 (version-major+minor version) "/"
4687 name "-" version ".tar.xz"))
4688 (sha256
4689 (base32
857eb190 4690 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
7dc728c4
KK
4691 (build-system meson-build-system)
4692 (arguments
4693 '(#:glib-or-gtk? #t
4694 #:phases
4695 (modify-phases %standard-phases
4696 (add-after 'unpack 'skip-gtk-update-icon-cache
4697 (lambda _
4698 (substitute* "build-aux/post_install.py"
4699 (("gtk-update-icon-cache") (which "true")))
4700 #t)))))
dfc407f3
KY
4701 (native-inputs
4702 `(("pkg-config" ,pkg-config)
4703 ("desktop-file-utils" ,desktop-file-utils)
7dc728c4 4704 ("glib:bin" ,glib "bin") ; for glib-compile-resources
dfc407f3
KY
4705 ("intltool" ,intltool)
4706 ("itstool" ,itstool)
7dc728c4 4707 ("vala" ,vala)
dfc407f3
KY
4708 ("xmllint" ,libxml2)))
4709 (inputs
4710 `(("gtk+" ,gtk+)
4711 ("json-glib" ,json-glib)
4712 ("libgee" ,libgee)
4713 ("librsvg" ,librsvg)
4714 ("qqwing" ,qqwing)))
4715 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4716 (synopsis "Japanese logic game")
4717 (description
4718 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4719GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4720possible while still providing features that make playing difficult Sudoku
4721more fun.")
4722 (license license:gpl2+)))
4723
88f70665
AW
4724(define-public gnome-terminal
4725 (package
4726 (name "gnome-terminal")
80f6f9d8 4727 (version "3.34.2")
88f70665
AW
4728 (source
4729 (origin
4730 (method url-fetch)
4731 (uri (string-append "mirror://gnome/sources/" name "/"
4732 (version-major+minor version) "/"
4733 name "-" version ".tar.xz"))
4734 (sha256
4735 (base32
80f6f9d8 4736 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
88f70665
AW
4737 (build-system glib-or-gtk-build-system)
4738 (arguments
4739 '(#:configure-flags
4740 (list "--disable-migration" "--disable-search-provider"
4741 "--without-nautilus-extension")
4742 #:phases
4743 (modify-phases %standard-phases
3a4de6b2 4744 (add-before 'configure 'patch-/bin/true
88f70665
AW
4745 (lambda _
4746 (substitute* "configure"
4747 (("/bin/true") (which "true"))))))))
4748 (native-inputs
4749 `(("pkg-config" ,pkg-config)
4750 ("desktop-file-utils" ,desktop-file-utils)
4751 ("intltool" ,intltool)
bcb354ad
SB
4752 ("itstool" ,itstool)
4753 ("xmllint" ,libxml2)))
68702167
MW
4754 (propagated-inputs
4755 `(("dconf" ,dconf)))
88f70665
AW
4756 (inputs
4757 `(("gtk+" ,gtk+)
4758 ("vte" ,vte)
4759 ("gnutls" ,gnutls)
88f70665 4760 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
bb93042c 4761 ("util-linux" ,util-linux "lib")
88f70665
AW
4762 ("vala" ,vala)))
4763 (home-page "https://wiki.gnome.org/Apps/Terminal")
4764 (synopsis "Terminal emulator")
4765 (description
4766 "GNOME Terminal is a terminal emulator application for accessing a
4767UNIX shell environment which can be used to run programs available on
4768your system.
4769
4770It supports several profiles, multiple tabs and implements several
4771keyboard shortcuts.")
4772 (license license:gpl3+)))
75016d07
AW
4773
4774(define-public colord
4775 (package
4776 (name "colord")
f98be942 4777 (version "1.4.4")
75016d07
AW
4778 (source
4779 (origin
4780 (method url-fetch)
5cc3096c 4781 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
d21778aa 4782 "colord-" version ".tar.xz"))
75016d07 4783 (sha256
f98be942 4784 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
a68544a8 4785 (build-system meson-build-system)
75016d07 4786 (arguments
a68544a8
RW
4787 '(;; FIXME: One test fails:
4788 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4789 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4790 ;; application/x-zerosize
75016d07 4791 #:tests? #f
a68544a8
RW
4792 #:glib-or-gtk? #t
4793 #:configure-flags (list "-Dlocalstatedir=/var"
75016d07 4794 ;; No dep on systemd.
a68544a8 4795 "-Dsystemd=false"
75016d07
AW
4796 ;; Wants to install to global completion dir;
4797 ;; punt.
a68544a8 4798 "-Dbash_completion=false"
a68544a8
RW
4799 "-Ddaemon_user=colord"
4800 "-Dsane=true"
dac26e22 4801 "-Dvapi=true"
6f20e2dc 4802 ;; Requires spotread.
a68544a8 4803 "-Dargyllcms_sensor=false"
6f20e2dc 4804 ;; TODO: Requires docbook2x.
a68544a8 4805 "-Dman=false")
75016d07
AW
4806 #:phases
4807 (modify-phases %standard-phases
a68544a8
RW
4808 (add-before 'configure 'patch-build-system
4809 (lambda* (#:key outputs #:allow-other-keys)
4810 (substitute* "rules/meson.build"
4811 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4812 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
2a1f3e3f
LC
4813 #t))
4814 (add-before 'configure 'set-sqlite3-file-name
4815 (lambda* (#:key inputs #:allow-other-keys)
4816 ;; "colormgr dump" works by invoking the "sqlite3" command.
4817 ;; Record its absolute file name.
4818 (let ((sqlite (assoc-ref inputs "sqlite")))
4819 (substitute* "client/cd-util.c"
4820 (("\"sqlite3\"")
4821 (string-append "\"" sqlite "/bin/sqlite3\"")))
4822 #t))))))
75016d07 4823 (native-inputs
6f20e2dc 4824 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
2536027c 4825 ("gettext" ,gettext-minimal)
75016d07 4826 ("gobject-introspection" ,gobject-introspection)
a68544a8 4827 ("gtk-doc" ,gtk-doc)
dac26e22
TGR
4828 ("pkg-config" ,pkg-config)
4829 ("vala" ,vala)))
65cb2d61
SB
4830 (propagated-inputs
4831 ;; colord.pc refers to all these.
4832 `(("glib" ,glib)
6f20e2dc
TGR
4833 ("lcms" ,lcms)
4834 ("udev" ,eudev)))
75016d07 4835 (inputs
65cb2d61 4836 `(("dbus-glib" ,dbus-glib)
a68544a8 4837 ("gusb" ,gusb)
80c7dd1a 4838 ("libgudev" ,libgudev)
75016d07 4839 ("libusb" ,libusb)
75016d07 4840 ("polkit" ,polkit)
a68544a8 4841 ("python" ,python-wrapper)
6f20e2dc 4842 ("sqlite" ,sqlite)
4c928743 4843 ("sane-backends" ,sane-backends)))
57e7d748 4844 (home-page "https://www.freedesktop.org/software/colord/")
75016d07
AW
4845 (synopsis "Color management service")
4846 (description "Colord is a system service that makes it easy to manage,
4847install and generate color profiles to accurately color manage input and
4848output devices.")
4849 (license license:gpl2+)))
7b2abd00
AW
4850
4851(define-public geoclue
4852 (package
4853 (name "geoclue")
2bf0a5cb 4854 (version "2.5.6")
7b2abd00
AW
4855 (source
4856 (origin
4857 (method url-fetch)
50e96d25
MB
4858 (uri
4859 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4860 version "/geoclue-" version ".tar.bz2"))
7b2abd00 4861 (sha256
2bf0a5cb 4862 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
fc1adab1 4863 (patches (search-patches "geoclue-config.patch"))))
50e96d25 4864 (build-system meson-build-system)
7b2abd00 4865 (arguments
50e96d25 4866 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
7b2abd00
AW
4867 (native-inputs
4868 `(("pkg-config" ,pkg-config)
758798a9 4869 ("gobject-introspection" ,gobject-introspection)
50e96d25
MB
4870 ("modem-manager" ,modem-manager)
4871 ("libnotify" ,libnotify)
4872 ("gtk-doc", gtk-doc)
7b2abd00
AW
4873 ("intltool" ,intltool)))
4874 (inputs
54e911bc 4875 `(("avahi" ,avahi)
50e96d25
MB
4876 ("glib:bin" ,glib "bin")
4877 ("glib-networking" ,glib-networking)
7b2abd00
AW
4878 ("json-glib" ,json-glib)
4879 ("libsoup" ,libsoup)))
50e96d25 4880 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
7b2abd00
AW
4881 (synopsis "Geolocation service")
4882 (description "Geoclue is a D-Bus service that provides location
4883information. The primary goal of the Geoclue project is to make creating
4884location-aware applications as simple as possible, while the secondary goal is
4885to ensure that no application can access location information without explicit
e881752c 4886permission from user.")
7b2abd00 4887 (license license:gpl2+)))
2bfe7437
AW
4888
4889(define-public geocode-glib
4890 (package
4891 (name "geocode-glib")
65de725f 4892 (version "3.26.1")
2bfe7437
AW
4893 (source (origin
4894 (method url-fetch)
4895 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4896 (version-major+minor version) "/"
d485cdc0 4897 "geocode-glib-" version ".tar.xz"))
2bfe7437
AW
4898 (sha256
4899 (base32
65de725f 4900 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
a7dd0c02 4901 (build-system meson-build-system)
2bfe7437 4902 (arguments
a7dd0c02
RW
4903 `(#:phases
4904 (modify-phases %standard-phases
4905 ;; The tests require a bunch of locales.
4906 (add-before 'check 'set-locales
4907 (lambda* (#:key inputs #:allow-other-keys)
4908 (setenv "GUIX_LOCPATH"
4909 (string-append (assoc-ref inputs "glibc-locales")
4910 "/lib/locale"))
4911 #t)))))
2bfe7437
AW
4912 (native-inputs
4913 `(("glib:bin" ,glib "bin") ; for glib-mkenums
a7dd0c02
RW
4914 ("glibc-locales" ,glibc-locales) ; for tests
4915 ("gettext" ,gettext-minimal)
2bfe7437 4916 ("gobject-introspection" ,gobject-introspection)
a7dd0c02 4917 ("gtk-doc" ,gtk-doc)
2bfe7437
AW
4918 ("pkg-config" ,pkg-config)
4919 ("json-glib" ,json-glib)))
4920 (propagated-inputs
4921 ;; geocode-glib-1.0.pc refers to GIO.
4922 `(("glib" ,glib)))
4923 (inputs
4924 `(("libsoup" ,libsoup)))
4925 (home-page "https://github.com/GNOME/geocode-glib/")
4926 (synopsis "Geocoding and reverse-geocoding library")
4927 (description
4928 "geocode-glib is a convenience library for geocoding (finding longitude,
4929and latitude from an address) and reverse geocoding (finding an address from
4930coordinates) using the Nominatim service. geocode-glib caches requests for
4931faster results and to avoid unnecessary server load.")
4932 (license license:lgpl2.0+)))
a1d5bb0e
AW
4933
4934(define-public upower
4935 (package
4936 (name "upower")
df45af90 4937 (version "0.99.11")
a1d5bb0e
AW
4938 (source (origin
4939 (method url-fetch)
df45af90 4940 (uri (string-append "https://upower.freedesktop.org/releases/"
9ec54965 4941 "upower-" version ".tar.xz"))
a1d5bb0e
AW
4942 (sha256
4943 (base32
df45af90 4944 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
5dc6d5ce
LC
4945 (patches (search-patches "upower-builddir.patch"))
4946 (modules '((guix build utils)))
4947 (snippet
4948 '(begin
4949 ;; Upstream commit
4950 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4951 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4952 ;; 'dbus-configuration-directory' in (gnu services dbus)
4953 ;; expects it in etc/. Thus, move it back to its previous
4954 ;; location.
4955 (substitute* "src/Makefile.in"
4956 (("^dbusconfdir =.*$")
4957 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4958 #t))))
a1d5bb0e
AW
4959 (build-system glib-or-gtk-build-system)
4960 (arguments
6039031a
BW
4961 '(#:phases
4962 (modify-phases %standard-phases
4963 (add-before 'check 'pre-check
4964 (lambda* (#:key inputs #:allow-other-keys)
4965 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4966 "/lib")))
4967 (setenv "LD_LIBRARY_PATH" umockdev))
4968 #t)))
a1d5bb0e
AW
4969 #:configure-flags (list "--localstatedir=/var"
4970 (string-append "--with-udevrulesdir="
4971 (assoc-ref %outputs "out")
9ec54965 4972 "/lib/udev/rules.d"))))
a1d5bb0e 4973 (native-inputs
ebeabe2d
SB
4974 `(("gobject-introspection" ,gobject-introspection)
4975 ("pkg-config" ,pkg-config)
a1d5bb0e 4976 ("intltool" ,intltool)
55409295
LC
4977 ("python" ,python)
4978
6039031a
BW
4979 ;; For tests.
4980 ("python-dbus" ,python-dbus)
4981 ("python-dbusmock" ,python-dbusmock)
4982 ("python-pygobject" ,python-pygobject)
4983 ("umockdev" ,umockdev)
4984
55409295
LC
4985 ;; For man pages.
4986 ("libxslt" ,libxslt) ;for 'xsltproc'
4987 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4988 ("docbook-xsl" ,docbook-xsl)))
a1d5bb0e 4989 (inputs
ea226291
SB
4990 `(("dbus-glib" ,dbus-glib)
4991 ("libgudev" ,libgudev)
a1d5bb0e 4992 ("libusb" ,libusb)))
d7a503fc
MB
4993 (propagated-inputs
4994 ;; In Requires of upower-glib.pc.
4995 `(("glib" ,glib)))
57e7d748 4996 (home-page "https://upower.freedesktop.org/")
a1d5bb0e
AW
4997 (synopsis "System daemon for managing power devices")
4998 (description
4999 "UPower is an abstraction for enumerating power devices,
5000listening to device events and querying history and statistics. Any
5001application or service on the system can access the org.freedesktop.UPower
5002service via the system message bus.")
5003 (license license:gpl2+)))
6a180f6f
AW
5004
5005(define-public libgweather
5006 (package
5007 (name "libgweather")
462d3416 5008 (version "3.34.0")
6a180f6f
AW
5009 (source (origin
5010 (method url-fetch)
5011 (uri (string-append "mirror://gnome/sources/" name "/"
5012 (version-major+minor version) "/"
5013 name "-" version ".tar.xz"))
5014 (sha256
5015 (base32
462d3416 5016 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
cf6cbc34 5017 (build-system meson-build-system)
6a180f6f 5018 (arguments
cf6cbc34
RW
5019 `(#:tests? #f ; one of two tests requires network access
5020 #:configure-flags
5021 `(,(string-append "-Dzoneinfo_dir="
b6072e6b 5022 (assoc-ref %build-inputs "tzdata")
cf6cbc34 5023 "/share/zoneinfo"))))
6a180f6f
AW
5024 (native-inputs
5025 `(("glib:bin" ,glib "bin") ; for glib-mkenums
b6072e6b 5026 ("gobject-introspection" ,gobject-introspection)
6a180f6f 5027 ("pkg-config" ,pkg-config)
1d3fcf94 5028 ("vala" ,vala)
6a180f6f
AW
5029 ("intltool" ,intltool)))
5030 (propagated-inputs
5031 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5032 ;; libsoup.
5033 `(("gtk+" ,gtk+)
5034 ("gdk-pixbuf" ,gdk-pixbuf)
5035 ("libxml2" ,libxml2)
cf6cbc34 5036 ("libsoup" ,libsoup)
6a180f6f 5037 ("geocode-glib" ,geocode-glib)))
cf6cbc34
RW
5038 (inputs
5039 `(("tzdata" ,tzdata)))
6a180f6f
AW
5040 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5041 (synopsis "Location, time zone, and weather library for GNOME")
5042 (description
5043 "libgweather is a library to access weather information from online
5044services for numerous locations.")
5045 (license license:gpl2+)))
23a22af6
AW
5046
5047(define-public gnome-settings-daemon
5048 (package
5049 (name "gnome-settings-daemon")
20154759 5050 (version "3.34.1")
23a22af6
AW
5051 (source
5052 (origin
5053 (method url-fetch)
5054 (uri (string-append "mirror://gnome/sources/" name "/"
5055 (version-major+minor version) "/"
5056 name "-" version ".tar.xz"))
5057 (sha256
5058 (base32
20154759 5059 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
e644f9fa 5060 (build-system meson-build-system)
23a22af6 5061 (arguments
e644f9fa
RW
5062 `(#:glib-or-gtk? #t
5063 #:configure-flags
5064 (list (string-append "-Dudev_dir="
5065 (assoc-ref %outputs "out")
4d0e085b 5066 "/lib/udev/rules.d/")
20154759 5067 "-Dsystemd=false"
4d0e085b
RW
5068 ;; Otherwise, the RUNPATH will lack the final path component.
5069 (string-append "-Dc_link_args=-Wl,-rpath="
5070 (assoc-ref %outputs "out")
5071 "/lib/gnome-settings-daemon-3.0"))
e644f9fa 5072 ;; Color management test can't reach the colord system service.
23a22af6
AW
5073 #:tests? #f))
5074 (native-inputs
e644f9fa
RW
5075 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5076 ("pkg-config" ,pkg-config)
23a22af6
AW
5077 ("intltool" ,intltool)
5078 ("xsltproc" ,libxslt)
5079 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5080 ("docbook-xml" ,docbook-xml-4.2)
5081 ("docbook-xsl" ,docbook-xsl)))
5082 (inputs
e644f9fa
RW
5083 `(("alsa-lib" ,alsa-lib)
5084 ("colord" ,colord)
ea226291 5085 ("libgudev" ,libgudev)
23a22af6
AW
5086 ("upower" ,upower)
5087 ("polkit" ,polkit)
5088 ("pulseaudio" ,pulseaudio)
5089 ("libcanberra" ,libcanberra)
5090 ("libx11" ,libx11)
5091 ("libxtst" ,libxtst)
5092 ("lcms" ,lcms)
5093 ("libnotify" ,libnotify)
5094 ("geoclue" ,geoclue)
5095 ("geocode-glib" ,geocode-glib)
5096 ("libgweather" ,libgweather)
5097 ("gnome-desktop" ,gnome-desktop)
5098 ("nss" ,nss)
5099 ("cups" ,cups)
ec2b1921
AW
5100 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5101 ("libwacom" ,libwacom)
5102 ("librsvg" ,librsvg)
eee7878f 5103 ("xf86-input-wacom" ,xf86-input-wacom)
e644f9fa 5104 ("wayland" ,wayland)
20154759
KK
5105 ("network-manager" ,network-manager)
5106 ("gcr" ,gcr)
5107 ("modem-manager" ,modem-manager)))
f032d0be 5108 (home-page "https://www.gnome.org")
23a22af6
AW
5109 (synopsis "GNOME settings daemon")
5110 (description
5111 "This package contains the daemon responsible for setting the various
5112parameters of a GNOME session and the applications that run under it. It
5113handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5114settings, themes, mouse settings, and startup of other daemons.")
5115 (license license:gpl2+)))
1e7464a9
DH
5116
5117(define-public totem-pl-parser
5118 (package
5119 (name "totem-pl-parser")
77425f04 5120 (version "3.26.3")
1e7464a9
DH
5121 (source (origin
5122 (method url-fetch)
e980cbe9
MW
5123 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5124 (version-major+minor version) "/"
1e7464a9
DH
5125 "totem-pl-parser-" version ".tar.xz"))
5126 (sha256
5127 (base32
77425f04 5128 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
1e9b19dd 5129 (build-system meson-build-system)
1e7464a9
DH
5130 (arguments
5131 ;; FIXME: Tests require gvfs.
5132 `(#:tests? #f))
5133 (native-inputs
5134 `(("intltool" ,intltool)
5135 ("glib" ,glib "bin")
4d6d8281 5136 ("gobject-introspection" ,gobject-introspection)
1e7464a9 5137 ("pkg-config" ,pkg-config)))
22a6ad6a 5138 (propagated-inputs
1e7464a9
DH
5139 `(("glib" ,glib)
5140 ("gmime" ,gmime)
1e9b19dd
RW
5141 ("libarchive" ,libarchive)
5142 ("libgcrypt" ,libgcrypt)
22a6ad6a
MW
5143 ("libxml2" ,libxml2)))
5144 (inputs
0a6e9e13 5145 `(("libsoup" ,libsoup)))
1e7464a9
DH
5146 (home-page "https://projects.gnome.org/totem")
5147 (synopsis "Library to parse and save media playlists for GNOME")
5148 (description "Totem-pl-parser is a GObjects-based library to parse and save
5149playlists in a variety of formats.")
5150 (license license:lgpl2.0+)))
5151
6b888eff
SB
5152(define-public aisleriot
5153 (package
5154 (name "aisleriot")
36ed9b46 5155 (version "3.22.9")
6b888eff
SB
5156 (source (origin
5157 (method url-fetch)
e43f622a 5158 (uri (string-append "mirror://gnome/sources/aisleriot/"
6b888eff 5159 (version-major+minor version) "/"
e43f622a 5160 "aisleriot-" version ".tar.xz"))
6b888eff
SB
5161 (sha256
5162 (base32
36ed9b46 5163 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
6b888eff
SB
5164 (build-system glib-or-gtk-build-system)
5165 (arguments
5166 '(#:configure-flags
5167 '("--with-platform=gtk-only"
5168 "--with-card-theme-formats=svg")))
5169 (native-inputs
5170 `(("desktop-file-utils" ,desktop-file-utils)
5171 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5172 ("intltool" ,intltool)
5173 ("itstool" ,itstool)
5174 ("pkg-config" ,pkg-config)
5175 ("xmllint" ,libxml2)))
5176 (inputs
5177 `(("gtk+" ,gtk+)
226e57d6 5178 ("guile" ,guile-2.2)
6b888eff
SB
5179 ("libcanberra" ,libcanberra)
5180 ("librsvg" ,librsvg)))
5181 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5182 (synopsis "Solitaire card games")
5183 (description
5184 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5185which are easy to play with the aid of a mouse.")
5186 (license license:gpl3+)))
4a79e256 5187
f828d05b
KK
5188(define-public amtk
5189 (package
5190 (name "amtk")
0e08ca14 5191 (version "5.0.2")
f828d05b
KK
5192 (source (origin
5193 (method url-fetch)
bf92ba6b 5194 (uri (string-append "mirror://gnome/sources/amtk/"
f828d05b 5195 (version-major+minor version) "/"
bf92ba6b 5196 "amtk-" version ".tar.xz"))
f828d05b
KK
5197 (sha256
5198 (base32
0e08ca14 5199 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
f828d05b
KK
5200 (build-system gnu-build-system)
5201 (arguments
5202 '(#:configure-flags '("--enable-gtk-doc")))
5203 (native-inputs
5204 `(("gobject-introspection" ,gobject-introspection)
09c4e43f 5205 ("glib:bin" ,glib "bin") ; for glib-mkenums
f828d05b
KK
5206 ("gtk-doc" ,gtk-doc)
5207 ("pkg-config" ,pkg-config)))
5208 (inputs
5209 `(("glib" ,glib)
5210 ("gtk+" ,gtk+)))
5211 (home-page "https://wiki.gnome.org/Projects/Amtk")
5212 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5213 (description
5214 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5215It is a basic GtkUIManager replacement based on GAction. It is suitable for
5216both a traditional UI or a modern UI with a GtkHeaderBar.")
5217 (license license:lgpl2.1+)))
5218
4a79e256
SB
5219(define-public devhelp
5220 (package
5221 (name "devhelp")
8ae23a1d 5222 (version "3.34.0")
4a79e256
SB
5223 (source (origin
5224 (method url-fetch)
5225 (uri (string-append "mirror://gnome/sources/" name "/"
5226 (version-major+minor version) "/"
5227 name "-" version ".tar.xz"))
5228 (sha256
5229 (base32
8ae23a1d 5230 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
11d28bd9 5231 (build-system meson-build-system)
35407f94 5232 (arguments
20db7a3d
KK
5233 '(#:glib-or-gtk? #t
5234 #:phases
35407f94
EF
5235 (modify-phases %standard-phases
5236 (add-after 'unpack 'skip-gtk-update-icon-cache
5237 ;; Don't create 'icon-theme.cache'.
5238 (lambda _
5239 (substitute* "meson_post_install.py"
5240 (("gtk-update-icon-cache") "true"))
5241 #t)))))
4a79e256
SB
5242 (native-inputs
5243 `(("intltool" ,intltool)
5dd12afc 5244 ("itstool" ,itstool)
11d28bd9
KK
5245 ("gobject-introspection" ,gobject-introspection)
5246 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4a79e256
SB
5247 ("pkg-config" ,pkg-config)))
5248 (inputs
11d28bd9
KK
5249 `(("amtk" ,amtk)
5250 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4a79e256
SB
5251 ("webkitgtk" ,webkitgtk)))
5252 (home-page "https://wiki.gnome.org/Apps/Devhelp")
5253 (synopsis "API documentation browser for GNOME")
5254 (description
5255 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
5256natively with GTK-Doc (the API reference system developed for GTK+ and used
5257throughout GNOME for API documentation).")
5258 (license license:gpl2+)))
ba421ab7
MW
5259
5260(define-public cogl
5261 (package
5262 (name "cogl")
c668a880 5263 (version "1.22.8")
ba421ab7
MW
5264 (source
5265 (origin
5266 (method url-fetch)
5754f0cf 5267 (uri (string-append "mirror://gnome/sources/cogl/"
ba421ab7 5268 (version-major+minor version) "/"
5754f0cf 5269 "cogl-" version ".tar.xz"))
ba421ab7 5270 (sha256
c668a880 5271 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
a88d5a0c
MW
5272 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
5273 ;; cogl, corresponding changes may be appropriate in mutter as well.
ba421ab7
MW
5274 (build-system gnu-build-system)
5275 (native-inputs
5276 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5277 ("gobject-introspection" ,gobject-introspection)
b4f04e0e 5278 ("xorg-server" ,xorg-server-for-tests)
ba421ab7
MW
5279 ("pkg-config" ,pkg-config)))
5280 (propagated-inputs
5281 `(("glib" ,glib)
5282 ("gdk-pixbuf" ,gdk-pixbuf)
5283 ("libx11" ,libx11)
5284 ("libxext" ,libxext)
5285 ("libxfixes" ,libxfixes)
5286 ("libxdamage" ,libxdamage)
5287 ("libxcomposite" ,libxcomposite)
5288 ("libxrandr" ,libxrandr)))
5289 (inputs
5290 `(("mesa" ,mesa)
5291 ("cairo" ,cairo)
5292 ("pango" ,pango)
5293 ("gstreamer" ,gstreamer)
31860852
KK
5294 ("gst-plugins-base" ,gst-plugins-base)
5295 ("wayland" ,wayland)))
ba421ab7 5296 (arguments
b4f04e0e
MB
5297 `(#:disallowed-references (,xorg-server-for-tests)
5298 #:configure-flags (list "--enable-cogl-gst"
31860852
KK
5299 "--enable-wayland-egl-platform"
5300 "--enable-wayland-egl-server"
5301
ba421ab7
MW
5302 ;; Arrange to pass an absolute file name to
5303 ;; dlopen for libGL.so.
5304 (string-append "--with-gl-libname="
5305 (assoc-ref %build-inputs "mesa")
5306 "/lib/libGL.so"))
b4f04e0e 5307 #:phases
ba421ab7 5308 (modify-phases %standard-phases
0c8a51c7
MB
5309 (add-after 'unpack 'fix-build-with-mesa-20
5310 (lambda _
5311 ;; Work around a problem with Mesa 20 where some macros used by
5312 ;; Cogl went missing from eglext.h. This can likely be removed
5313 ;; for newer versions of Cogl or Mesa.
5314 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
5315 (substitute* '("configure"
5316 "cogl/winsys/cogl-winsys-egl-kms.c")
5317 (("#include <EGL/eglext.h>" all)
5318 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
5319 #t))
ba421ab7 5320 (add-before 'check 'start-xorg-server
b4f04e0e
MB
5321 (lambda* (#:key tests? inputs #:allow-other-keys)
5322 (if tests?
5323 (begin
5324 ;; The test suite requires a running X server.
5325 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
5326 (assoc-ref inputs "xorg-server")))
5327 (setenv "DISPLAY" ":1")
5328 #t)
5329 (format #t "test suite not run~%"))
ba421ab7 5330 #t)))))
89b49245 5331 (home-page "https://www.cogl3d.org")
ba421ab7
MW
5332 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5333 (description
5334 "Cogl is a small library for using 3D graphics hardware to draw pretty
5335pictures. The API departs from the flat state machine style of OpenGL and is
5336designed to make it easy to write orthogonal components that can render
5337without stepping on each others toes.")
5338 (license (list license:expat ; most of the code
5339 license:bsd-3 ; cogl/cogl-point-in-poly.c
5340 license:sgifreeb2.0 ; cogl-path/tesselator/
5341 license:asl2.0)))) ; examples/android/
fb182b8a
MW
5342
5343(define-public clutter
5344 (package
5345 (name "clutter")
6a88e4ee 5346 (version "1.26.2")
fb182b8a
MW
5347 (source
5348 (origin
5349 (method url-fetch)
5350 (uri (string-append "mirror://gnome/sources/" name "/"
5351 (version-major+minor version) "/"
5352 name "-" version ".tar.xz"))
5353 (sha256
5354 (base32
6a88e4ee 5355 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
a88d5a0c
MW
5356 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5357 ;; to clutter, corresponding changes may be appropriate in mutter as well.
fb182b8a 5358 (build-system gnu-build-system)
600233bd
LC
5359 (outputs '("out"
5360 "doc")) ;9 MiB of gtk-doc HTML pages
fb182b8a
MW
5361 (native-inputs
5362 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5363 ("gobject-introspection" ,gobject-introspection)
5364 ("pkg-config" ,pkg-config)
5365 ("xsltproc" ,libxslt)))
5366 (propagated-inputs
5367 `(("cogl" ,cogl)
5368 ("cairo" ,cairo)
5369 ("atk" ,atk)
5370 ("gtk+" ,gtk+)
5371 ("json-glib" ,json-glib)
5372 ("glib" ,glib)
5373 ("libxcomposite" ,libxcomposite)
5374 ("libxdamage" ,libxdamage)
5375 ("libxext" ,libxext)
5376 ("xinput" ,xinput)))
5377 (inputs
5378 `(("libxkbcommon" ,libxkbcommon)
5379 ("udev" ,eudev)))
5380 (arguments
600233bd
LC
5381 `(#:configure-flags (list "--enable-x11-backend=yes"
5382
5383 ;; This produces share/doc/{clutter,cally}.
5384 (string-append "--with-html-dir="
5385 (assoc-ref %outputs "doc")
5386 "/share/doc"))
fb182b8a
MW
5387 ;; XXX FIXME: Get test suite working. It would probably fail in the
5388 ;; same way the cogl tests fail, since clutter is based on cogl.
5389 #:tests? #f))
5390 (home-page "http://www.clutter-project.org")
476af713 5391 (synopsis "OpenGL-based interactive canvas library")
fb182b8a 5392 (description
476af713 5393 "Clutter is an OpenGL-based interactive canvas library, designed for
fb182b8a
MW
5394creating fast, mainly 2D single window applications such as media box UIs,
5395presentations, kiosk style applications and so on.")
5396 (license license:lgpl2.0+)))
bf7f17ba
MW
5397
5398(define-public clutter-gtk
5399 (package
5400 (name "clutter-gtk")
5d1a3219 5401 (version "1.8.4")
bf7f17ba
MW
5402 (source
5403 (origin
5404 (method url-fetch)
5405 (uri (string-append "mirror://gnome/sources/" name "/"
5406 (version-major+minor version) "/"
5407 name "-" version ".tar.xz"))
5408 (sha256
5409 (base32
5d1a3219 5410 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
bf7f17ba
MW
5411 (build-system gnu-build-system)
5412 (native-inputs
5413 `(("pkg-config" ,pkg-config)
5414 ("gobject-introspection" ,gobject-introspection)))
9a3a8b8e
SB
5415 (propagated-inputs
5416 ;; clutter-gtk.pc refers to all these.
bf7f17ba
MW
5417 `(("clutter" ,clutter)
5418 ("gtk+" ,gtk+)))
5419 (home-page "http://www.clutter-project.org")
476af713 5420 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
bf7f17ba 5421 (description
476af713 5422 "Clutter is an OpenGL-based interactive canvas library, designed for
bf7f17ba
MW
5423creating fast, mainly 2D single window applications such as media box UIs,
5424presentations, kiosk style applications and so on.")
5425 (license license:lgpl2.0+)))
86d6a893
MW
5426
5427(define-public clutter-gst
5428 (package
5429 (name "clutter-gst")
ba07ac19 5430 (version "3.0.27")
86d6a893
MW
5431 (source
5432 (origin
5433 (method url-fetch)
f010f89b 5434 (uri (string-append "mirror://gnome/sources/clutter-gst/"
86d6a893 5435 (version-major+minor version) "/"
f010f89b 5436 "clutter-gst-" version ".tar.xz"))
86d6a893 5437 (sha256
ba07ac19 5438 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
86d6a893
MW
5439 (build-system gnu-build-system)
5440 (native-inputs
ba07ac19 5441 `(("glib:bin" ,glib "bin") ; for glib-mkenums
86d6a893
MW
5442 ("pkg-config" ,pkg-config)
5443 ("gobject-introspection" ,gobject-introspection)))
5444 (inputs
5445 `(("clutter" ,clutter)
5446 ("gstreamer" ,gstreamer)
5447 ("gst-plugins-base" ,gst-plugins-base)))
5448 (home-page "http://www.clutter-project.org")
5449 (synopsis "Integration library for using GStreamer with Clutter")
5450 (description
5451 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5452It provides a GStreamer sink to upload frames to GL and an actor that
476af713
TGR
5453implements the ClutterGstPlayer interface using playbin. Clutter is an
5454OpenGL-based interactive canvas library.")
86d6a893 5455 (license license:lgpl2.0+)))
607a04ae 5456
30dc88d9
LC
5457(define-public libchamplain
5458 (package
5459 (name "libchamplain")
5564b2c5 5460 (version "0.12.16")
30dc88d9
LC
5461 (source (origin
5462 (method url-fetch)
5463 (uri (string-append
5464 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5465 version ".tar.xz"))
5466 (sha256
5467 (base32
5564b2c5 5468 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
30dc88d9 5469 (build-system gnu-build-system)
f7c6833f
LF
5470 (arguments '(#:configure-flags '("--enable-vala")))
5471 (native-inputs
5472 `(("gobject-introspection" ,gobject-introspection)
5473 ("pkg-config" ,pkg-config)
5474 ("vala" ,vala)))
30dc88d9
LC
5475 (propagated-inputs
5476 `(("libsoup" ,libsoup)
5477 ("sqlite" ,sqlite)
5478 ("clutter" ,clutter)
5479 ("clutter-gtk" ,clutter-gtk)
5480 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5481 ("cairo" ,cairo)
5482 ("gtk+3" ,gtk+)
5483 ("glib" ,glib)))
f032d0be 5484 (home-page "https://projects.gnome.org/libchamplain/")
30dc88d9
LC
5485 (synopsis "C library providing a ClutterActor to display maps")
5486 (description
5487 "libchamplain is a C library providing a ClutterActor to display maps.
5488It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5489and Perl bindings are also available. It supports numerous free map sources
5490such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5491 (license license:lgpl2.1+)))
5492
607a04ae
MW
5493(define-public gom
5494 (package
5495 (name "gom")
0510440b 5496 (version "0.3.2")
607a04ae
MW
5497 (source
5498 (origin
5499 (method url-fetch)
6c8a0b6f 5500 (uri (string-append "mirror://gnome/sources/gom/"
607a04ae 5501 (version-major+minor version) "/"
6c8a0b6f 5502 "gom-" version ".tar.xz"))
607a04ae
MW
5503 (sha256
5504 (base32
0510440b 5505 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
607a04ae
MW
5506 (build-system gnu-build-system)
5507 (native-inputs
5508 `(("intltool" ,intltool)
5509 ("pkg-config" ,pkg-config)
5510 ("gobject-introspection" ,gobject-introspection)))
5511 (inputs
5512 `(("glib" ,glib)
5513 ("gdk-pixbuf" ,gdk-pixbuf)
5514 ("sqlite" ,sqlite)))
5515 ;; XXX TODO: Figure out how to run the test suite.
5516 (arguments `(#:tests? #f))
5517 (home-page "https://wiki.gnome.org/Projects/Gom")
5518 (synopsis "Object mapper from GObjects to SQLite")
5519 (description
5520 "Gom provides an object mapper from GObjects to SQLite. It helps you
5521write applications that need to store structured data as well as make complex
5522queries upon that data.")
5523 (license license:lgpl2.1+)))
b7a3cf11 5524
865aacc9 5525(define-public libgnome-games-support
f09520db 5526 (package
865aacc9 5527 (name "libgnome-games-support")
4c6d15cf 5528 (version "1.4.4")
f09520db
SB
5529 (source (origin
5530 (method url-fetch)
2d8dca9d 5531 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
f09520db 5532 (version-major+minor version) "/"
2d8dca9d 5533 "libgnome-games-support-" version ".tar.xz"))
f09520db
SB
5534 (sha256
5535 (base32
4c6d15cf 5536 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
f09520db
SB
5537 (build-system gnu-build-system)
5538 (arguments
5539 '(#:phases
5540 (modify-phases %standard-phases
5541 (add-before 'check 'pre-check
5542 (lambda _
865aacc9 5543 ;; Tests require a writable HOME.
f09520db
SB
5544 (setenv "HOME" (getcwd))
5545 #t)))))
5546 (native-inputs
5547 `(("intltool" ,intltool)
5548 ("pkg-config" ,pkg-config)
5549 ("vala" ,vala)))
5550 (propagated-inputs
865aacc9 5551 ;; Required by libgnome-games-support-1.0.pc
f09520db
SB
5552 `(("gtk+" ,gtk+)
5553 ("libgee" ,libgee)))
5554 (home-page "https://www.gnome.org/")
5555 (synopsis "Useful functionality shared among GNOME games")
5556 (description
865aacc9 5557 "libgnome-games-support is a small library intended for internal use by
f09520db
SB
5558GNOME Games, but it may be used by others.")
5559 (license license:lgpl3+)))
5560
b7a3cf11
SB
5561(define-public gnome-klotski
5562 (package
5563 (name "gnome-klotski")
18364fbc 5564 (version "3.34.0")
b7a3cf11
SB
5565 (source (origin
5566 (method url-fetch)
5567 (uri (string-append "mirror://gnome/sources/" name "/"
5568 (version-major+minor version) "/"
5569 name "-" version ".tar.xz"))
5570 (sha256
5571 (base32
18364fbc 5572 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
c1e419c4
KK
5573 (build-system meson-build-system)
5574 (arguments
5575 '(#:glib-or-gtk? #t
5576 #:phases
5577 (modify-phases %standard-phases
5578 (add-after 'unpack 'skip-gtk-update-icon-cache
5579 ;; Don't create 'icon-theme.cache'.
5580 (lambda _
5581 (substitute* "build-aux/meson_post_install.py"
5582 (("gtk-update-icon-cache") (which "true")))
5583 #t)))))
b7a3cf11
SB
5584 (native-inputs
5585 `(("desktop-file-utils" ,desktop-file-utils)
c1e419c4 5586 ("glib:bin" ,glib "bin") ; for glib-compile-resources
b7a3cf11
SB
5587 ("intltool" ,intltool)
5588 ("itstool" ,itstool)
bcb354ad 5589 ("pkg-config" ,pkg-config)
c1e419c4 5590 ("vala" ,vala)
bcb354ad 5591 ("xmllint" ,libxml2)))
b7a3cf11
SB
5592 (inputs
5593 `(("gtk+" ,gtk+)
f4eae76f 5594 ("libgnome-games-support" ,libgnome-games-support)
b7a3cf11
SB
5595 ("librsvg" ,librsvg)))
5596 (home-page "https://wiki.gnome.org/Apps/Klotski")
5597 (synopsis "Sliding block puzzles")
5598 (description
5599 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
5600the patterned block to the area bordered by green markers. To do so, you will
5601need to slide other blocks out of the way. Complete each puzzle in as few moves
5602as possible!")
5603 (license license:gpl2+)))
8d4791bf
MW
5604
5605(define-public grilo
5606 (package
5607 (name "grilo")
a865e938 5608 (version "0.3.10")
8d4791bf
MW
5609 (source
5610 (origin
5611 (method url-fetch)
5612 (uri (string-append "mirror://gnome/sources/" name "/"
5613 (version-major+minor version) "/"
5614 name "-" version ".tar.xz"))
5615 (sha256
5616 (base32
a865e938 5617 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
d48d4c98 5618 (build-system meson-build-system)
8d4791bf
MW
5619 (native-inputs
5620 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
5621 ("intltool" ,intltool)
5622 ("pkg-config" ,pkg-config)
d48d4c98
KK
5623 ("gobject-introspection" ,gobject-introspection)
5624 ("gtk-doc" ,gtk-doc)
5625 ("vala" ,vala)))
8d4791bf 5626 (inputs
6d7273a0
KK
5627 `(("cyrus-sasl" ,cyrus-sasl)
5628 ("glib" ,glib)
8d4791bf
MW
5629 ("gtk+" ,gtk+)
5630 ("libxml2" ,libxml2)
6d7273a0 5631 ("liboauth" ,liboauth)
8d4791bf
MW
5632 ("libsoup" ,libsoup)
5633 ("totem-pl-parser" ,totem-pl-parser)))
8d4791bf
MW
5634 (native-search-paths
5635 (list (search-path-specification
5636 (variable "GRL_PLUGIN_PATH")
5637 (files (list (string-append "lib/grilo-"
5638 (version-major+minor version)))))))
d48d4c98 5639 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
8d4791bf
MW
5640 (synopsis "Framework for discovering and browsing media")
5641 (description
5642 "Grilo is a framework focused on making media discovery and browsing easy
5643for application developers.")
5644 (license license:lgpl2.1+)))
7b212526
MW
5645
5646(define-public grilo-plugins
5647 (package
5648 (name "grilo-plugins")
281f6b3a 5649 (version "0.3.10")
7b212526
MW
5650 (source
5651 (origin
5652 (method url-fetch)
5653 (uri (string-append "mirror://gnome/sources/" name "/"
5654 (version-major+minor version) "/"
5655 name "-" version ".tar.xz"))
5656 (sha256
5657 (base32
281f6b3a
RG
5658 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
5659 (build-system meson-build-system)
7b212526 5660 (native-inputs
281f6b3a
RG
5661 `(("gettext" ,gettext-minimal)
5662 ("glib:bin" ,glib "bin")
5663 ("gtk+:bin" ,gtk+ "bin")
7b212526
MW
5664 ("itstool" ,itstool)
5665 ("pkg-config" ,pkg-config)))
281f6b3a 5666 ;; TODO: ahavi, gstreamer
7b212526
MW
5667 (inputs
5668 `(("grilo" ,grilo)
281f6b3a
RG
5669 ;("gmime" ,gmime) ; unused
5670 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7b212526 5671 ("gom" ,gom)
281f6b3a
RG
5672 ;("gssdp" ,gssdp) ; unused
5673 ;("gupnp" ,gupnp) ; unused
5674 ;("gupnp-av" ,gupnp-av) ; unused
7b212526
MW
5675 ("json-glib" ,json-glib)
5676 ("avahi" ,avahi)
281f6b3a
RG
5677 ("libgdata" ,libgdata)
5678 ("libmediaart" ,libmediaart)
5679 ;("librest" ,rest) ; unused
7b212526 5680 ("libsoup" ,libsoup)
281f6b3a
RG
5681 ("totam-pl-parser" ,totem-pl-parser)
5682 ("tracker" ,tracker))) ; unused because it's too old
7b212526 5683 (arguments
281f6b3a
RG
5684 `(#:glib-or-gtk? #t
5685 ;;Disable lua-factory as it needs missing dependencies
5686 #:configure-flags '("-Denable-lua-factory=no")))
f032d0be 5687 (home-page "https://live.gnome.org/Grilo")
7b212526
MW
5688 (synopsis "Plugins for the Grilo media discovery library")
5689 (description
5690 "Grilo is a framework focused on making media discovery and browsing easy
281f6b3a
RG
5691for application developers. This package provides plugins for common media
5692discovery protocols.")
7b212526 5693 (license license:lgpl2.1+)))
4e3fc547
MW
5694
5695(define-public totem
5696 (package
5697 (name "totem")
961dc62d 5698 (version "3.34.1")
4e3fc547
MW
5699 (source
5700 (origin
5701 (method url-fetch)
2a9761b1 5702 (uri (string-append "mirror://gnome/sources/totem/"
4e3fc547 5703 (version-major+minor version) "/"
2a9761b1 5704 "totem-" version ".tar.xz"))
4e3fc547
MW
5705 (sha256
5706 (base32
961dc62d 5707 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
7ad81b8b 5708 (build-system meson-build-system)
4e3fc547
MW
5709 (native-inputs
5710 `(("pkg-config" ,pkg-config)
5711 ("desktop-file-utils" ,desktop-file-utils)
5712 ("gobject-introspection" ,gobject-introspection)
7ad81b8b 5713 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4e3fc547 5714 ("intltool" ,intltool)
bcb354ad 5715 ("itstool" ,itstool)
995ef5ea 5716 ("xmllint" ,libxml2)
995ef5ea 5717 ("xorg-server" ,xorg-server-for-tests)))
4e3fc547
MW
5718 (propagated-inputs
5719 `(("dconf" ,dconf)))
5720 (inputs
5721 `(("gtk+" ,gtk+)
5722 ("gdk-pixbuf" ,gdk-pixbuf)
5723 ("atk" ,atk)
5724 ("cairo" ,cairo)
5725 ("dbus-glib" ,dbus-glib)
5726 ("clutter" ,clutter)
5727 ("clutter-gtk" ,clutter-gtk)
5728 ("clutter-gst" ,clutter-gst)
6a6db57f 5729 ("xorgproto" ,xorgproto)
4e3fc547
MW
5730 ("libxxf86vm" ,libxxf86vm)
5731 ("libxtst" ,libxtst)
5732 ("libxrandr" ,libxrandr)
5733 ("libxml2" ,libxml2)
5734 ("libsoup" ,libsoup)
5735 ("libpeas" ,libpeas)
5736 ("librsvg" ,librsvg)
5737 ("lirc" ,lirc)
5738 ("gnome-desktop" ,gnome-desktop)
5739 ("gstreamer" ,gstreamer)
5740 ("gst-plugins-base" ,gst-plugins-base)
5741 ("gst-plugins-good" ,gst-plugins-good)
5742 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5743 ("adwaita-icon-theme" ,adwaita-icon-theme)
d7b63ba9 5744 ("python" ,python)
995ef5ea 5745 ("python-pygobject" ,python-pygobject)
4e3fc547
MW
5746 ("totem-pl-parser" ,totem-pl-parser)
5747 ("grilo" ,grilo)
5748 ("grilo-plugins" ,grilo-plugins)
4e3fc547
MW
5749 ("vala" ,vala)))
5750 (arguments
7ad81b8b
LC
5751 `(#:glib-or-gtk? #t
5752
5753 ;; Disable automatic GStreamer plugin installation via PackageKit and
ec5c24f9 5754 ;; all that.
7ad81b8b 5755 #:configure-flags '("-D" "enable-easy-codec-installation=no"
a388c951
LC
5756
5757 ;; Do not build .a files for the plugins, it's
5758 ;; completely useless. This saves 2 MiB.
7ad81b8b 5759 "--default-library" "shared")
ec5c24f9 5760 #:phases
4e3fc547 5761 (modify-phases %standard-phases
d51b19ad
EF
5762 (add-after 'unpack 'skip-gtk-update-icon-cache
5763 ;; Don't create 'icon-theme.cache'.
5764 (lambda _
5765 (substitute* "meson_post_install.py"
5766 (("gtk-update-icon-cache") "true"))
5767 #t))
6368eb39
DM
5768 (add-before
5769 'install 'disable-cache-generation
5770 (lambda _
5771 (setenv "DESTDIR" "/")
5772 #t))
995ef5ea
KK
5773 (add-before
5774 'check 'pre-check
5775 (lambda _
5776 ;; Tests require a running X server.
5777 (system "Xvfb :1 &")
5778 (setenv "DISPLAY" ":1")
5779 #t))
4e3fc547
MW
5780 (add-after
5781 'install 'wrap-totem
5782 (lambda* (#:key inputs outputs #:allow-other-keys)
5783 (let ((out (assoc-ref outputs "out"))
5784 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5785 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5786 (wrap-program (string-append out "/bin/totem")
5787 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
39c853bd
AW
5788 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5789 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5790 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4e3fc547
MW
5791 #t)))))
5792 (home-page "https://wiki.gnome.org/Apps/Videos")
5793 (synopsis "Simple media player for GNOME based on GStreamer")
5794 (description "Totem is a simple yet featureful media player for GNOME
5795which can read a large number of file formats.")
5796 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5797 ;; to be used and distributed together with GStreamer and Totem. See
5798 ;; file://COPYING in the source distribution for details.
5799 (license license:gpl2+)))
f0afb0c8
DH
5800
5801(define-public rhythmbox
5802 (package
5803 (name "rhythmbox")
eda580c0 5804 (version "3.4.4")
f0afb0c8
DH
5805 (source (origin
5806 (method url-fetch)
2588693d 5807 (uri (string-append "mirror://gnome/sources/rhythmbox/"
f0afb0c8 5808 (version-major+minor version) "/"
2588693d 5809 "rhythmbox-" version ".tar.xz"))
f0afb0c8
DH
5810 (sha256
5811 (base32
eda580c0 5812 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
f0afb0c8
DH
5813 (build-system glib-or-gtk-build-system)
5814 (arguments
5815 `(#:configure-flags
5816 (list "--enable-lirc"
5817 "--enable-python"
5818 "--enable-vala"
5819 "--with-brasero"
5820 "--with-gudev"
5821 "--with-libsecret")
5822 #:phases
5823 (modify-phases %standard-phases
5824 (add-after
5825 'install 'wrap-rhythmbox
5826 (lambda* (#:key inputs outputs #:allow-other-keys)
5827 (let ((out (assoc-ref outputs "out"))
5828 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5829 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
349cef58
TGR
5830 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5831 (python-path (getenv "PYTHONPATH")))
f0afb0c8
DH
5832 (wrap-program (string-append out "/bin/rhythmbox")
5833 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5834 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
349cef58
TGR
5835 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5836 `("PYTHONPATH" ":" prefix (,python-path))))
f0afb0c8
DH
5837 #t)))))
5838 (propagated-inputs
5839 `(("dconf" ,dconf)))
5840 (native-inputs
bcb354ad
SB
5841 `(("itstool" ,itstool)
5842 ("intltool" ,intltool)
f0afb0c8
DH
5843 ("glib" ,glib "bin")
5844 ("gobject-introspection" ,gobject-introspection)
5845 ("desktop-file-utils" ,desktop-file-utils)
bcb354ad
SB
5846 ("pkg-config" ,pkg-config)
5847 ("xmllint" ,libxml2)))
f0afb0c8
DH
5848 (inputs
5849 `(("json-glib" ,json-glib)
5850 ("tdb" ,tdb)
5851 ("gnome-desktop" ,gnome-desktop)
5852 ("python" ,python)
5853 ("python-pygobject" ,python2-pygobject)
5854 ("vala" ,vala)
5855 ("gmime" ,gmime)
f0afb0c8
DH
5856 ("adwaita-icon-theme" ,adwaita-icon-theme)
5857 ("grilo" ,grilo)
5858 ("grilo-plugins" ,grilo-plugins)
5859 ("gstreamer" ,gstreamer)
5860 ("gst-plugins-base" ,gst-plugins-base)
5861 ("gst-plugins-good" ,gst-plugins-good)
f0afb0c8 5862 ("totem-pl-parser" ,totem-pl-parser)
ea226291 5863 ("libgudev" ,libgudev)
f0afb0c8
DH
5864 ;;("libmtp" ,libmtp) FIXME: Not detected
5865 ("libsecret" ,libsecret)
5866 ("libsoup" ,libsoup)
5867 ("libnotify" ,libnotify)
5868 ("libpeas" ,libpeas)
5869 ("lirc" ,lirc)
5870 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5871 ;;("clutter" ,clutter)
5872 ;;("clutter-gtk" ,clutter-gtk)
5873 ;;("clutter-gst" ,clutter-gst)
5874 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5875 ("atk" ,atk)
5876 ("pango" ,pango)
5877 ("gtk+" ,gtk+)
5878 ;; TODO:
5879 ;; * libgpod
5880 ;; * mx
f0afb0c8
DH
5881 ("brasero" ,brasero)))
5882 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5883 (synopsis "Music player for GNOME")
5884 (description "Rhythmbox is a music playing application for GNOME. It
5885supports playlists, song ratings, and any codecs installed through gstreamer.")
5886 (license license:gpl2+)))
f70d8383
DH
5887
5888(define-public eog
5889 (package
5890 (name "eog")
0c9031fa 5891 (version "3.34.1")
f70d8383
DH
5892 (source (origin
5893 (method url-fetch)
5894 (uri (string-append "mirror://gnome/sources/" name "/"
5895 (version-major+minor version) "/"
5896 name "-" version ".tar.xz"))
5897 (sha256
5898 (base32
0c9031fa 5899 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
61fb581f 5900 (build-system meson-build-system)
f70d8383 5901 (arguments
34c44a34
RW
5902 `(#:configure-flags
5903 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5904 (list (string-append "-Dc_link_args=-Wl,-rpath="
5905 (assoc-ref %outputs "out") "/lib/eog"))
5906 #:phases
f70d8383 5907 (modify-phases %standard-phases
7a034665
EF
5908 (add-after 'unpack 'skip-gtk-update-icon-cache
5909 ;; Don't create 'icon-theme.cache'.
5910 (lambda _
5911 (substitute* "meson_post_install.py"
5912 (("gtk-update-icon-cache") "true"))
5913 #t))
61fb581f
RW
5914 (add-after 'install 'wrap-eog
5915 (lambda* (#:key outputs #:allow-other-keys)
5916 (let ((out (assoc-ref outputs "out"))
5917 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5918 (wrap-program (string-append out "/bin/eog")
5919 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5920 #t)))))
f70d8383
DH
5921 (propagated-inputs
5922 `(("dconf" ,dconf)))
5923 (native-inputs
5924 `(("intltool" ,intltool)
b3546174 5925 ("itstool" ,itstool)
f70d8383
DH
5926 ("glib" ,glib "bin")
5927 ("gobject-introspection" ,gobject-introspection)
bcb354ad
SB
5928 ("pkg-config" ,pkg-config)
5929 ("xmllint" ,libxml2)))
f70d8383
DH
5930 (inputs
5931 `(("gnome-desktop" ,gnome-desktop)
5932 ("shared-mime-info" ,shared-mime-info)
5933 ("adwaita-icon-theme" ,adwaita-icon-theme)
5934 ("exempi" ,exempi)
5935 ("lcms" ,lcms)
5936 ("libexif" ,libexif)
5937 ("libpeas" ,libpeas)
4bd428a7 5938 ("libjpeg" ,libjpeg-turbo)
0c9031fa 5939 ("librsvg" ,librsvg-next)
f70d8383
DH
5940 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5941 ("gtk+" ,gtk+)))
5942 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5943 (synopsis "GNOME image viewer")
5944 (description "Eye of GNOME is the GNOME image viewer. It
5945supports image conversion, rotation, and slideshows.")
5946 (license license:gpl2+)))
41af5e7b 5947
0c3f8cb8
LC
5948(define-public eog-plugins
5949 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5950 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5951 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5952 ;; 'XDG_DATA_DIRS' appropriately set.
5953 (package
5954 (name "eog-plugins")
54b74cc6 5955 (version "3.26.4")
0c3f8cb8
LC
5956 (source (origin
5957 (method url-fetch)
f3b88ed2 5958 (uri (string-append "mirror://gnome/sources/eog-plugins/"
0c3f8cb8 5959 (version-major+minor version) "/"
f3b88ed2 5960 "eog-plugins-" version ".tar.xz"))
0c3f8cb8
LC
5961 (sha256
5962 (base32
54b74cc6 5963 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
0c3f8cb8
LC
5964 (build-system gnu-build-system)
5965 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5966 (synopsis "Extensions for the Eye of GNOME image viewer")
5967 (native-inputs
5968 `(("pkg-config" ,pkg-config)
f2d97d57 5969 ("gettext" ,gettext-minimal)))
0c3f8cb8
LC
5970 (inputs
5971 `(("eog" ,eog)
5972 ("glib" ,glib)
5973 ("gtk+" ,gtk+)
5974 ("libpeas" ,libpeas)
5975 ("libexif" ,libexif)
5976 ("libchamplain" ,libchamplain)))
5977 (description
5978 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5979notably:
5980
5981@itemize
5982@item @dfn{EXIF Display}, which displays camera (EXIF) information;
5983@item @dfn{Map}, which displays a map of where the picture was taken on the
5984side panel;
5985@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5986@end itemize\n")
5987
5988 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5989 ;; long suspicious byte stream that goes to a
5990 ;; ".gresource.eog_postasa_plugin" ELF section.
5991 (license license:gpl2+)))
5992
41af5e7b
SB
5993(define-public libgudev
5994 (package
5995 (name "libgudev")
b78f5118 5996 (version "232")
41af5e7b
SB
5997 (source (origin
5998 (method url-fetch)
5999 (uri (string-append "mirror://gnome/sources/" name "/"
6000 version "/" name "-" version ".tar.xz"))
6001 (sha256
6002 (base32
b78f5118 6003 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
41af5e7b 6004 (build-system gnu-build-system)
b78f5118
RW
6005 (arguments
6006 '(#:configure-flags
6007 ;; umockdev depends on libgudev.
6008 (list "--disable-umockdev")))
41af5e7b
SB
6009 (native-inputs
6010 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6011 ("gobject-introspection" ,gobject-introspection)
6012 ("pkg-config" ,pkg-config)))
6013 (propagated-inputs
6014 `(("glib" ,glib))) ; required by gudev-1.0.pc
6015 (inputs
6016 `(("udev" ,eudev)))
6017 (home-page "https://wiki.gnome.org/Projects/libgudev")
6018 (synopsis "GObject bindings for libudev")
6019 (description
6020 "This library provides GObject bindings for libudev. It was originally
6021part of udev-extras, then udev, then systemd. It's now a project on its own.")
6022 (license license:lgpl2.1+)))
3dc8828f
SB
6023
6024(define-public gvfs
6025 (package
6026 (name "gvfs")
12fe4846 6027 (version "1.40.1")
3dc8828f
SB
6028 (source (origin
6029 (method url-fetch)
1d68eb32 6030 (uri (string-append "mirror://gnome/sources/gvfs/"
3dc8828f 6031 (version-major+minor version) "/"
1d68eb32 6032 "gvfs-" version ".tar.xz"))
3dc8828f
SB
6033 (sha256
6034 (base32
95b90dec
KK
6035 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
6036 ;; This patch may be removed when upgrading to version 1.46.x.
6037 (patches
6038 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
e762d943 6039 (build-system meson-build-system)
3dc8828f 6040 (arguments
e762d943
RW
6041 '(#:glib-or-gtk? #t
6042 #:configure-flags
6043 (list "-Dsystemduserunitdir=no"
6044 "-Dtmpfilesdir=no"
6045 ;; Otherwise, the RUNPATH will lack the final path component.
6046 (string-append "-Dc_link_args=-Wl,-rpath="
6047 (assoc-ref %outputs "out") "/lib/gvfs"))))
3dc8828f
SB
6048 (native-inputs
6049 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
0ab9f949
RW
6050 ("gettext" ,gettext-minimal)
6051 ("gtk-doc" ,gtk-doc)
3dc8828f
SB
6052 ("pkg-config" ,pkg-config)
6053 ("xsltproc" ,libxslt)))
6054 (inputs
6055 `(("avahi" ,avahi)
6056 ("docbook-xml" ,docbook-xml-4.2)
6057 ("docbook-xsl" ,docbook-xsl)
6058 ("dbus" ,dbus)
e762d943 6059 ("elogind" ,elogind)
3dc8828f 6060 ("fuse" ,fuse)
24a78aa6 6061 ("gcr" ,gcr)
3dc8828f 6062 ("glib" ,glib)
e762d943 6063 ("gnome-online-accounts" ,gnome-online-accounts)
3dc8828f
SB
6064 ("libarchive" ,libarchive)
6065 ("libbluray" ,libbluray)
8852ca24 6066 ("libcap" ,libcap)
3dc8828f
SB
6067 ("libcdio-paranoia" ,libcdio-paranoia)
6068 ("libgcrypt" ,libgcrypt)
e762d943 6069 ("libgdata" ,libgdata)
3dc8828f
SB
6070 ("libgphoto2" ,libgphoto2)
6071 ("libgudev" ,libgudev)
0ab9f949 6072 ("libimobiledevice" ,libimobiledevice)
3dc8828f 6073 ("libmtp" ,libmtp)
e762d943 6074 ("libnfs" ,libnfs)
3dc8828f
SB
6075 ("libsecret" ,libsecret)
6076 ("libsmbclient" ,samba)
6077 ("libsoup" ,libsoup)
6078 ("libxml2" ,libxml2)
e762d943 6079 ("openssh" ,openssh)
8852ca24 6080 ("polkit" ,polkit)
3dc8828f
SB
6081 ("udisks" ,udisks)))
6082 (home-page "https://wiki.gnome.org/gvfs/")
8f65585b 6083 (synopsis "Userspace virtual file system for GIO")
3dc8828f 6084 (description
8f65585b 6085 "GVFS is a userspace virtual file system designed to work with the I/O
3dc8828f
SB
6086abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
6087to all applications using the GIO API. It also supports exposing the GVFS
6088mounts to non-GIO applications using FUSE.
6089
6090GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6091DAV, and others.")
6092 (license license:lgpl2.0+)))
7c88b6bd
AW
6093
6094(define-public gusb
6095 (package
6096 (name "gusb")
536b3274 6097 (version "0.3.0")
7c88b6bd 6098 (source (origin
bbfb36f9
EF
6099 (method git-fetch)
6100 (uri (git-reference
b0e7b699 6101 (url "https://github.com/hughsie/libgusb")
bbfb36f9
EF
6102 (commit version)))
6103 (file-name (git-file-name name version))
7c88b6bd
AW
6104 (sha256
6105 (base32
bbfb36f9 6106 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
536b3274 6107 (build-system meson-build-system)
7c88b6bd 6108 (native-inputs
536b3274 6109 `(("gobject-introspection" ,gobject-introspection)
7c88b6bd
AW
6110 ("pkg-config" ,pkg-config)
6111 ("vala" ,vala)
7c88b6bd
AW
6112 ("gtk-doc" ,gtk-doc)))
6113 (propagated-inputs
6114 ;; Both of these are required by gusb.pc.
6115 `(("glib" ,glib)
6116 ("libusb" ,libusb)))
6117 (arguments
536b3274 6118 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
8f1640ed 6119 (home-page "https://github.com/hughsie/libgusb")
a124bbd2 6120 (synopsis "GLib binding for libusb1")
7c88b6bd
AW
6121 (description
6122 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6123asynchronous control, bulk and interrupt transfers with proper cancellation
6124and integration into a mainloop. This makes it easy to integrate low level
6125USB transfers with your high-level application or system daemon.")
6126 (license license:lgpl2.1+)))
0abe1d86
AW
6127
6128(define-public simple-scan
6129 (package
6130 (name "simple-scan")
3f352df0 6131 (version "3.36.3")
d9f6d587
TGR
6132 (source
6133 (origin
6134 (method url-fetch)
6135 (uri (string-append "mirror://gnome/sources/simple-scan/"
6136 (version-major+minor version) "/"
6137 "simple-scan-" version ".tar.xz"))
6138 (sha256
3f352df0 6139 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
d9f6d587
TGR
6140 (build-system meson-build-system)
6141 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6142 (arguments
6143 '(#:glib-or-gtk? #t))
0abe1d86
AW
6144 (inputs
6145 `(("gtk" ,gtk+)
6146 ("zlib" ,zlib)
6147 ("cairo" ,cairo)
c501f592 6148 ("colord" ,colord)
0abe1d86
AW
6149 ("gdk-pixbuf" ,gdk-pixbuf)
6150 ("gusb" ,gusb)
4c928743 6151 ("libsane" ,sane-backends)))
0abe1d86 6152 (native-inputs
b94a6ca0 6153 `(("gettext" ,gettext-minimal)
0abe1d86 6154 ("itstool" ,itstool)
c501f592 6155 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
0abe1d86 6156 ("pkg-config" ,pkg-config)
bcb354ad
SB
6157 ("vala" ,vala)
6158 ("xmllint" ,libxml2)))
dff0eedb 6159 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
0abe1d86 6160 (synopsis "Document and image scanner")
d9f6d587
TGR
6161 (description
6162 "Document Scanner is an easy-to-use application that lets you connect your
6163scanner and quickly capture images and documents in an appropriate format. It
6164supports any scanner for which a suitable SANE driver is available, which is
6165almost all of them.")
0abe1d86 6166 (license license:gpl3+)))
7549f984 6167
ab466d79
RW
6168(define-public eolie
6169 (package
6170 (name "eolie")
ed783404 6171 (version "0.9.98.1")
ab466d79
RW
6172 (source (origin
6173 (method url-fetch)
ed783404
RW
6174 (uri (string-append "https://adishatz.org/eolie/eolie-"
6175 version ".tar.xz"))
ab466d79
RW
6176 (sha256
6177 (base32
ed783404 6178 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
00014781 6179 (build-system meson-build-system)
ab466d79 6180 (arguments
00014781
RW
6181 `(#:glib-or-gtk? #t
6182 #:phases
ab466d79 6183 (modify-phases %standard-phases
f0c68100
EF
6184 (add-after 'unpack 'skip-gtk-update-icon-cache
6185 ;; Don't create 'icon-theme.cache'.
6186 (lambda _
6187 (substitute* "meson_post_install.py"
6188 (("gtk-update-icon-cache") "true"))
6189 #t))
ab466d79
RW
6190 (add-after 'wrap 'wrap-more
6191 (lambda* (#:key inputs outputs #:allow-other-keys)
6192 (let* ((out (assoc-ref outputs "out"))
6193 ;; These libraries must be on LD_LIBRARY_PATH.
6194 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6195 "atk" "gtk+" "gsettings-desktop-schemas"
6196 "gobject-introspection"))
6197 (path (string-join
6198 (map (lambda (lib)
6199 (string-append (assoc-ref inputs lib) "/lib"))
6200 libs)
6201 ":")))
6202 (wrap-program (string-append out "/bin/eolie")
6203 `("LD_LIBRARY_PATH" ":" prefix (,path))
6204 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
6205 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6206 #t)))))
6207 (native-inputs
f85ca6ed 6208 `(("intltool" ,intltool)
ab466d79 6209 ("itstool" ,itstool)
d95f1041 6210 ("pkg-config" ,pkg-config)
d95f1041 6211 ("python" ,python)
f0c68100 6212 ("glib:bin" ,glib "bin")))
ab466d79
RW
6213 (inputs
6214 `(("gobject-introspection" ,gobject-introspection)
6215 ("glib-networking" ,glib-networking)
6216 ("cairo" ,cairo)
6217 ("gtk+" ,gtk+)
6218 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6219 ("python" ,python-wrapper)
d72f76df 6220 ("python-dateutil" ,python-dateutil)
00014781 6221 ("python-pyfxa" ,python-pyfxa)
ab466d79
RW
6222 ("python-pygobject" ,python-pygobject)
6223 ("python-pycairo" ,python-pycairo)
00014781 6224 ("python-pycrypto" ,python-pycrypto)
ab466d79
RW
6225 ("libsecret" ,libsecret)
6226 ("gtkspell3" ,gtkspell3)
6227 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
f85ca6ed 6228 ("webkitgtk" ,webkitgtk)))
166b2c97 6229 (home-page "https://wiki.gnome.org/Apps/Eolie")
ab466d79
RW
6230 (synopsis "Web browser for GNOME")
6231 (description
6232 "Eolie is a new web browser for GNOME. It features Firefox sync support,
6233a secret password store, an adblocker, and a modern UI.")
6234 (license license:gpl3+)))
6235
7549f984
SB
6236(define-public epiphany
6237 (package
6238 (name "epiphany")
68fdd237 6239 (version "3.34.4")
7549f984
SB
6240 (source (origin
6241 (method url-fetch)
dd3266ec 6242 (uri (string-append "mirror://gnome/sources/epiphany/"
7549f984 6243 (version-major+minor version) "/"
dd3266ec 6244 "epiphany-" version ".tar.xz"))
7549f984
SB
6245 (sha256
6246 (base32
68fdd237 6247 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
fc5c5b92
R
6248
6249 (build-system meson-build-system)
7549f984 6250 (arguments
20710b91 6251 '(#:glib-or-gtk? #t
bb7ff88f
EF
6252 #:phases
6253 (modify-phases %standard-phases
6254 (add-after 'unpack 'skip-gtk-update-icon-cache
6255 ;; Don't create 'icon-theme.cache'.
6256 (lambda _
6257 (substitute* "post_install.py"
6258 (("gtk-update-icon-cache") "true"))
20710b91
LP
6259 #t))
6260 (add-after 'unpack 'disable-failing-tests
6261 (lambda _
6262 (substitute* "tests/meson.build"
6263 ;; embed_shell fails, because webkitgtk apparently no longer supports
6264 ;; overriding the ftp schema
6265 ;; web_app_utils fails due to missing network access
6266 (("(embed_shell|web_app_utils)_test,")
6267 "find_program('sh'), args: ['-c', 'exit 77'],"))
6268 #t))
6269 (add-before 'check 'pre-check
6270 (lambda _
6271 ;; Tests require a running X server.
6272 (system "Xvfb :1 &")
6273 (setenv "DISPLAY" ":1")
bb7ff88f 6274 #t)))
e19f9c24
LF
6275 #:configure-flags
6276 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
6277 (list (string-append "-Dc_link_args=-Wl,-rpath="
6278 (assoc-ref %outputs "out") "/lib/epiphany"))))
80a747c4
SB
6279 (propagated-inputs
6280 `(("dconf" ,dconf)))
7549f984 6281 (native-inputs
fc5c5b92
R
6282 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6283 ("glib:bin" ,glib "bin") ; for glib-mkenums
fc5c5b92 6284 ("intltool" ,intltool)
7549f984 6285 ("itstool" ,itstool)
bcb354ad 6286 ("pkg-config" ,pkg-config)
20710b91
LP
6287 ("xmllint" ,libxml2)
6288 ("xorg-server" ,xorg-server-for-tests)))
7549f984
SB
6289 (inputs
6290 `(("avahi" ,avahi)
6291 ("gcr" ,gcr)
fc5c5b92 6292 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
7549f984
SB
6293 ("glib-networking" ,glib-networking)
6294 ("gnome-desktop" ,gnome-desktop)
6295 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
eb6f315b 6296 ("json-glib" ,json-glib)
7549f984 6297 ("iso-codes" ,iso-codes)
8748e29c 6298 ("libdazzle" ,libdazzle)
7549f984
SB
6299 ("libnotify" ,libnotify)
6300 ("libsecret" ,libsecret)
7549f984 6301 ("libxslt" ,libxslt)
fc5c5b92 6302 ("nettle" ,nettle) ; for hogweed
7549f984 6303 ("sqlite" ,sqlite)
f85ca6ed 6304 ("webkitgtk" ,webkitgtk)))
7549f984
SB
6305 (home-page "https://wiki.gnome.org/Apps/Web")
6306 (synopsis "GNOME web browser")
6307 (description
6308 "Epiphany is a GNOME web browser targeted at non-technical users. Its
6309principles are simplicity and standards compliance.")
6310 (license license:gpl2+)))
a3856b2c
SB
6311
6312(define-public d-feet
6313 (package
6314 (name "d-feet")
458e9221 6315 (version "0.3.14")
a3856b2c
SB
6316 (source (origin
6317 (method url-fetch)
6318 (uri (string-append "mirror://gnome/sources/" name "/"
6319 (version-major+minor version) "/"
6320 name "-" version ".tar.xz"))
6321 (sha256
6322 (base32
458e9221 6323 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
a3856b2c
SB
6324 (build-system glib-or-gtk-build-system)
6325 (arguments
6326 '(#:out-of-source? #f ; tests need to run in the source directory.
6327 #:phases
6328 (modify-phases %standard-phases
6329 (add-before
6330 'check 'pre-check
86aff791 6331 (lambda _
a3856b2c
SB
6332 ;; The test suite requires a running X server.
6333 (system "Xvfb :1 &")
6334 (setenv "DISPLAY" ":1")
6335 ;; Don't fail on missing '/etc/machine-id'.
6336 (setenv "DBUS_FATAL_WARNINGS" "0")
6337 ;; tests.py and window.py don't meet E402:
6338 ;; E402 module level import not at top of file
6339 (substitute* "src/tests/Makefile"
86aff791
MW
6340 (("--ignore=E123") "--ignore=E123,E402"))
6341 #t))
a3856b2c
SB
6342 (add-after
6343 'install 'wrap-program
6344 (lambda* (#:key outputs #:allow-other-keys)
6345 (let ((prog (string-append (assoc-ref outputs "out")
6346 "/bin/d-feet")))
6347 (wrap-program prog
6348 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
86aff791
MW
6349 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6350 #t))))))
a3856b2c
SB
6351 (native-inputs
6352 `(("intltool" ,intltool)
6353 ("itstool" ,itstool)
6354 ("pkg-config" ,pkg-config)
6355 ("python-pep8" ,python-pep8)
6356 ("xmllint" ,libxml2)
ff337525 6357 ("xorg-server" ,xorg-server-for-tests)))
a3856b2c
SB
6358 (inputs
6359 `(("gobject-introspection" ,gobject-introspection)
6360 ("gtk+" ,gtk+)
6361 ("python" ,python-wrapper)
458e9221 6362 ("hicolor-icon-theme" ,hicolor-icon-theme)
a3856b2c
SB
6363 ("python-pygobject" ,python-pygobject)))
6364 (home-page "https://wiki.gnome.org/Apps/DFeet")
6365 (synopsis "D-Bus debugger")
6366 (description
6367 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6368of running programs and invoke methods on those interfaces.")
6369 (license license:gpl2+)))
c3b97bd9
SB
6370
6371(define-public yelp-xsl
6372 (package
6373 (name "yelp-xsl")
632a9b32 6374 (version "3.34.2")
c3b97bd9
SB
6375 (source (origin
6376 (method url-fetch)
6377 (uri (string-append "mirror://gnome/sources/" name "/"
6378 (version-major+minor version) "/"
6379 name "-" version ".tar.xz"))
6380 (sha256
6381 (base32
632a9b32 6382 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
c3b97bd9
SB
6383 (build-system gnu-build-system)
6384 (native-inputs
632a9b32 6385 `(("gettext-minimal" ,gettext-minimal)
c3b97bd9
SB
6386 ("itstool" ,itstool)
6387 ("xmllint" ,libxml2)))
6388 (home-page "https://wiki.gnome.org/Apps/Yelp")
6389 (synopsis "XSL stylesheets for Yelp")
6390 (description
6391 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
6392to format Docbook and Mallard documents.")
6393 (license license:gpl2+)))
de3d612a
SB
6394
6395(define-public yelp
6396 (package
6397 (name "yelp")
1f1b6d60 6398 (version "3.32.2")
de3d612a
SB
6399 (source (origin
6400 (method url-fetch)
6401 (uri (string-append "mirror://gnome/sources/" name "/"
6402 (version-major+minor version) "/"
6403 name "-" version ".tar.xz"))
6404 (sha256
6405 (base32
1f1b6d60 6406 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
de3d612a
SB
6407 (build-system glib-or-gtk-build-system)
6408 (native-inputs
6409 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6410 ("intltool" ,intltool)
6411 ("itstool" ,itstool)
6412 ("pkg-config" ,pkg-config)))
6413 (propagated-inputs
6414 `(("dconf" ,dconf)))
6415 (inputs
ad1b7d8b
SB
6416 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6417 ("libxslt" ,libxslt)
de3d612a 6418 ("sqlite" ,sqlite)
4c28ca1d
SB
6419 ("webkitgtk" ,webkitgtk)
6420 ("yelp-xsl" ,yelp-xsl)))
de3d612a
SB
6421 (home-page "https://wiki.gnome.org/Apps/Yelp")
6422 (synopsis "GNOME help browser")
6423 (description
6424 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6425man, info, and HTML documents. It can locate documents according to the
6426freedesktop.org help system specification.")
6427 (license license:gpl2+)))
122d0d10
SB
6428
6429(define-public yelp-tools
6430 (package
6431 (name "yelp-tools")
8fe8a42a 6432 (version "3.32.2")
122d0d10
SB
6433 (source (origin
6434 (method url-fetch)
6435 (uri (string-append "mirror://gnome/sources/" name "/"
6436 (version-major+minor version) "/"
6437 name "-" version ".tar.xz"))
6438 (sha256
6439 (base32
8fe8a42a 6440 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
122d0d10
SB
6441 (build-system gnu-build-system)
6442 (native-inputs
6443 `(("pkg-config" ,pkg-config)))
6444 (propagated-inputs
6445 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6446 `(("itstool" ,itstool)
6447 ("xmllint" ,libxml2)
6448 ("xsltproc" ,libxslt)))
6449 (inputs
6450 `(("yelp-xsl" ,yelp-xsl)))
6451 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6452 (synopsis "Yelp documentation tools")
6453 (description
6454 "Yelp-tools is a collection of scripts and build utilities to help create,
6455manage, and publish documentation for Yelp and the web. Most of the heavy
6456lifting is done by packages like yelp-xsl and itstool. This package just
6457wraps things up in a developer-friendly way.")
6458 (license license:gpl2+)))
af8f9f23
RW
6459
6460(define-public libgee
6461 (package
6462 (name "libgee")
9cedae2a 6463 (version "0.20.3")
af8f9f23
RW
6464 (source (origin
6465 (method url-fetch)
84a1b007 6466 (uri (string-append "mirror://gnome/sources/libgee/"
af8f9f23 6467 (version-major+minor version) "/"
84a1b007 6468 "libgee-" version ".tar.xz"))
af8f9f23
RW
6469 (sha256
6470 (base32
9cedae2a 6471 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
af8f9f23
RW
6472 (build-system gnu-build-system)
6473 (arguments
6474 `(#:phases
6475 (modify-phases %standard-phases
6476 (add-after 'unpack 'fix-introspection-install-dir
6477 (lambda* (#:key outputs #:allow-other-keys)
6478 (let ((out (assoc-ref outputs "out")))
6479 (substitute* "gee/Makefile.in"
6480 (("@INTROSPECTION_GIRDIR@")
6481 (string-append out "/share/gir-1.0/"))
6482 (("@INTROSPECTION_TYPELIBDIR@")
6483 (string-append out "/lib/girepository-1.0/")))))))))
6484 (native-inputs
6485 `(("glib" ,glib "bin")
6486 ("pkg-config" ,pkg-config)))
6487 (inputs
6488 `(("glib" ,glib)
6489 ("gobject-introspection" ,gobject-introspection)))
6490 (home-page "https://wiki.gnome.org/Projects/Libgee")
6491 (synopsis "GObject collection library")
6492 (description
6493 "Libgee is a utility library providing GObject-based interfaces and
6494classes for commonly used data structures.")
6495 (license license:lgpl2.1+)))
b0f9c4b8
RW
6496
6497(define-public gexiv2
6498 (package
6499 (name "gexiv2")
efc396ef 6500 (version "0.12.1")
b0f9c4b8
RW
6501 (source (origin
6502 (method url-fetch)
6503 (uri (string-append "mirror://gnome/sources/" name "/"
6504 (version-major+minor version) "/"
6505 name "-" version ".tar.xz"))
6506 (sha256
6507 (base32
efc396ef 6508 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
51c482e4 6509 (build-system meson-build-system)
b0f9c4b8 6510 (native-inputs
b1a8b408
KK
6511 `(("gcr" ,gcr)
6512 ("glib" ,glib "bin")
6513 ("pkg-config" ,pkg-config)
6514 ("vala" ,vala)))
b0f9c4b8
RW
6515 (propagated-inputs
6516 ;; Listed in "Requires" section of gexiv2.pc
6517 `(("exiv2" ,exiv2)))
6518 (inputs
6519 `(("glib" ,glib)
6520 ("gobject-introspection" ,gobject-introspection)))
6521 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6522 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6523 (description
6524 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6525allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6526metadata in photo and video files of various formats.")
6527 (license license:gpl2+)))
fed5a689
RW
6528
6529(define-public shotwell
6530 (package
6531 (name "shotwell")
b82a45d8 6532 (version "0.30.9")
fed5a689
RW
6533 (source (origin
6534 (method url-fetch)
5497d682 6535 (uri (string-append "mirror://gnome/sources/shotwell/"
fed5a689 6536 (version-major+minor version) "/"
5497d682 6537 "shotwell-" version ".tar.xz"))
fed5a689
RW
6538 (sha256
6539 (base32
b82a45d8 6540 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
3b79afa6
KK
6541 (build-system meson-build-system)
6542 (arguments
5a0beca3
EF
6543 '(#:glib-or-gtk? #t
6544 #:phases
6545 (modify-phases %standard-phases
6546 (add-after 'unpack 'skip-gtk-update-icon-cache
6547 (lambda _
6548 (substitute* "build-aux/meson/postinstall.py"
6549 (("gtk-update-icon-cache") (which "true"))
6550 (("update-desktop-database") (which "true")))
6551 #t)))))
735b8db6
TGR
6552 (propagated-inputs
6553 `(("dconf" ,dconf)))
fed5a689 6554 (native-inputs
5a0beca3
EF
6555 `(("gettext" ,gettext-minimal)
6556 ("glib:bin" ,glib "bin")
735b8db6 6557 ("itstool" ,itstool)
3b79afa6 6558 ("pkg-config" ,pkg-config)
735b8db6 6559 ("vala" ,vala)))
fed5a689 6560 (inputs
5a0beca3
EF
6561 `(("gcr" ,gcr)
6562 ("gexiv2" ,gexiv2)
fed5a689 6563 ("gst-plugins-base" ,gst-plugins-base)
5a0beca3
EF
6564 ("gstreamer" ,gstreamer)
6565 ("json-glib" ,json-glib)
dfb0323d 6566 ("libgdata" ,libgdata)
fed5a689 6567 ("libgee" ,libgee)
5a0beca3
EF
6568 ("libgphoto2" ,libgphoto2)
6569 ("libgudev" ,libgudev)
fed5a689 6570 ("libraw" ,libraw)
fed5a689
RW
6571 ("libsoup" ,libsoup)
6572 ("libxml2" ,libxml2)
5a0beca3
EF
6573 ("sqlite" ,sqlite)
6574 ("webkitgtk" ,webkitgtk)))
fed5a689
RW
6575 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6576 (synopsis "Photo manager for GNOME 3")
6577 (description
6578 "Shotwell is a digital photo manager designed for the GNOME desktop
6579environment. It allows you to import photos from disk or camera, organize
6580them by keywords and events, view them in full-window or fullscreen mode, and
6581share them with others via social networking and more.")
6582 (license license:lgpl2.1+)))
293ff8b2
DT
6583
6584(define-public file-roller
6585 (package
6586 (name "file-roller")
dcae4270 6587 (version "3.32.3")
293ff8b2
DT
6588 (source (origin
6589 (method url-fetch)
f89a27c6 6590 (uri (string-append "mirror://gnome/sources/file-roller/"
293ff8b2 6591 (version-major+minor version) "/"
f89a27c6 6592 "file-roller-" version ".tar.xz"))
293ff8b2
DT
6593 (sha256
6594 (base32
dcae4270 6595 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
0a500745 6596 (build-system meson-build-system)
293ff8b2 6597 (native-inputs
0a500745
RW
6598 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6599 ("intltool" ,intltool)
4c96e5d1 6600 ("itstool" ,itstool)
0a500745
RW
6601 ("pkg-config" ,pkg-config)
6602 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6603 ("glib:bin" ,glib "bin")))
293ff8b2
DT
6604 ;; TODO: Add libnautilus.
6605 (inputs
6606 `(("gtk+" ,gtk+)
6607 ("gdk-pixbuf" ,gdk-pixbuf)
6608 ("json-glib" ,json-glib)
6609 ("libarchive" ,libarchive)
6610 ("libnotify" ,libnotify)
4c96e5d1 6611 ("nettle" ,nettle)
293ff8b2
DT
6612 ("libxml2" ,libxml2)))
6613 (synopsis "Graphical archive manager for GNOME")
6614 (description "File Roller is an archive manager for the GNOME desktop
6615environment that allows users to view, unpack, and create compressed archives
6616such as gzip tarballs.")
6617 (home-page "http://fileroller.sourceforge.net/")
6618 (license license:gpl2+)))
7ce49365
SB
6619
6620(define-public gnome-session
6621 (package
6622 (name "gnome-session")
f67ce006 6623 (version "3.34.2")
7ce49365
SB
6624 (source (origin
6625 (method url-fetch)
6626 (uri (string-append "mirror://gnome/sources/" name "/"
6627 (version-major+minor version) "/"
6628 name "-" version ".tar.xz"))
6629 (sha256
6630 (base32
f67ce006 6631 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
2914af3c 6632 (arguments
df278071
RW
6633 '(#:glib-or-gtk? #t
6634 #:phases
2914af3c
AW
6635 (modify-phases %standard-phases
6636 (add-before 'configure 'pre-configure
6637 (lambda* (#:key outputs #:allow-other-keys)
6638 ;; Use elogind instead of systemd.
df278071
RW
6639 (substitute* "meson.build"
6640 (("libsystemd-login") "libelogind")
6641 (("and libsystemd_daemon_dep.found.*") ","))
2914af3c
AW
6642 (substitute* "gnome-session/gsm-systemd.c"
6643 (("#include <systemd/sd-login.h>")
6644 "#include <elogind/sd-login.h>"))
df278071 6645 ;; Remove uses of the systemd daemon.
803ab416
SB
6646 (substitute* "gnome-session/gsm-autostart-app.c"
6647 (("#ifdef HAVE_SYSTEMD") "#if 0"))
a0d7baaf
LC
6648 #t))
6649 (add-after 'install 'wrap-gnome-session
6650 (lambda* (#:key inputs outputs #:allow-other-keys)
6651 ;; Make sure 'gnome-session' finds the 'gsettings' program.
6652 (let ((glib (assoc-ref inputs "glib:bin"))
6653 (out (assoc-ref outputs "out")))
6654 (wrap-program (string-append out "/bin/gnome-session")
6655 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6656 #t))))
6cbc8d57 6657
2914af3c 6658 #:configure-flags
df278071
RW
6659 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6660 "-Dman=false" ; FIXME: disabled because of docbook validation error
6661 "-Dsystemd_journal=false")))
6662 (build-system meson-build-system)
7ce49365
SB
6663 (native-inputs
6664 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6665 ("pkg-config" ,pkg-config)
6666 ("intltool" ,intltool)
df278071
RW
6667 ("xsltproc" ,libxslt)
6668 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6669 ("docbook-xsl" ,docbook-xsl)
6670 ("docbook-xml" ,docbook-xml)
6671 ("xmlto" ,xmlto)))
7ce49365 6672 (inputs
2914af3c
AW
6673 `(("elogind" ,elogind)
6674 ("gnome-desktop" ,gnome-desktop)
ba3cb5ab 6675 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7ce49365
SB
6676 ("gtk+" ,gtk+)
6677 ("json-glib" ,json-glib)
6678 ("libsm" ,libsm)
6679 ("libxcomposite" ,libxcomposite)
6680 ("libxtst" ,libxtst)
6681 ("mesa" ,mesa)
6682 ("upower" ,upower)
6683 ("xtrans" ,xtrans)))
6684 (synopsis "Session manager for GNOME")
6685 (description
6686 "This package contains the GNOME session manager, as well as a
6687configuration program to choose applications starting on login.")
6688 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6689 (license license:gpl2+)))
f47ba77e
SB
6690
6691(define-public gjs
6692 (package
6693 (name "gjs")
76e1830c 6694 (version "1.58.3")
f47ba77e
SB
6695 (source (origin
6696 (method url-fetch)
6697 (uri (string-append "mirror://gnome/sources/" name "/"
6698 (version-major+minor version) "/"
6699 name "-" version ".tar.xz"))
6700 (sha256
6701 (base32
76e1830c 6702 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
f47ba77e
SB
6703 (build-system gnu-build-system)
6704 (arguments
6705 '(#:phases
6706 (modify-phases %standard-phases
6707 (add-before
6708 'check 'pre-check
6709 (lambda _
fc119619
MW
6710 ;; The test suite requires a running X server.
6711 (system "Xvfb :1 &")
6712 (setenv "DISPLAY" ":1")
6713
f47ba77e
SB
6714 ;; For the missing /etc/machine-id.
6715 (setenv "DBUS_FATAL_WARNINGS" "0")
ba666b07 6716
144f94d0
KK
6717 ;; Our mozjs-38 package does not compile the required Intl API
6718 ;; support for these failing tests.
6719 (substitute* "installed-tests/js/testLocale.js"
6720 ((".*toBeDefined.*") "")
6721 ((".*expect\\(datestr\\).*") ""))
d054fbf5
KK
6722 (substitute* "installed-tests/scripts/testCommandLine.sh"
6723 (("Valentín") "")
6724 (("☭") ""))
f47ba77e
SB
6725 #t)))))
6726 (native-inputs
8a831c6f 6727 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
f47ba77e
SB
6728 ("pkg-config" ,pkg-config)
6729 ("xmllint" ,libxml2)
6730 ;; For testing
6731 ("dbus-launch" ,dbus)
76e1830c 6732 ("dconf" ,dconf) ; required to properly store settings
f47ba77e 6733 ("uuidgen" ,util-linux)
ebebee94 6734 ("xvfb" ,xorg-server-for-tests)))
f47ba77e
SB
6735 (propagated-inputs
6736 ;; These are all in the Requires.private field of gjs-1.0.pc.
144f94d0
KK
6737 `(("cairo" ,cairo)
6738 ("gobject-introspection" ,gobject-introspection)
d054fbf5 6739 ("mozjs" ,mozjs-60)))
f47ba77e
SB
6740 (inputs
6741 `(("gtk+" ,gtk+)
6742 ("readline" ,readline)))
6743 (synopsis "Javascript bindings for GNOME")
f032d0be 6744 (home-page "https://live.gnome.org/Gjs")
f47ba77e
SB
6745 (description
6746 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6747javascript engine and the GObject introspection framework.")
6748 (license license:gpl2+)))
329d731b
DH
6749
6750(define-public gedit
6751 (package
6752 (name "gedit")
edec7128 6753 (version "3.34.1")
329d731b
DH
6754 (source (origin
6755 (method url-fetch)
6756 (uri (string-append "mirror://gnome/sources/" name "/"
6757 (version-major+minor version) "/"
6758 name "-" version ".tar.xz"))
6759 (sha256
6760 (base32
edec7128 6761 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
480c9226 6762 (build-system meson-build-system)
329d731b 6763 (arguments
480c9226
KK
6764 `(#:glib-or-gtk? #t
6765 #:configure-flags
6766 ;; Otherwise, the RUNPATH will lack the final path component.
6767 (list (string-append "-Dc_link_args=-Wl,-rpath="
6768 (assoc-ref %outputs "out") "/lib/gedit"))
d9b4022c
LC
6769
6770 ;; XXX: Generated .h files are sometimes used before being built.
6771 #:parallel-build? #f
6772
480c9226 6773 #:phases
329d731b 6774 (modify-phases %standard-phases
480c9226
KK
6775 (add-after 'unpack 'skip-gtk-update-icon-cache
6776 ;; Don't create 'icon-theme.cache'.
6777 (lambda _
6778 (substitute* "build-aux/meson/post_install.py"
6779 (("gtk-update-icon-cache") (which "true")))
6780 #t))
6781 (add-after 'unpack 'patch-libgd-fetch
6782 (lambda* (#:key inputs #:allow-other-keys)
6783 (let ((libgd (assoc-ref inputs "libgd")))
6784 ;; Calling git is unnecessary because libgd is fetched as a
6785 ;; native input to this package.
6786 (substitute* "meson.build"
6787 ((".*git.*") ""))
6788 (copy-recursively libgd "subprojects/libgd")
6789 #t)))
6790 (add-after 'install 'wrap-gedit
6791 (lambda* (#:key inputs outputs #:allow-other-keys)
6792 (let ((out (assoc-ref outputs "out"))
6793 (gtksourceview (assoc-ref inputs "gtksourceview"))
6794 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6795 (python-path (getenv "PYTHONPATH")))
6796 (wrap-program (string-append out "/bin/gedit")
6797 ;; For plugins.
6798 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6799 `("PYTHONPATH" ":" prefix (,python-path))
6800 ;; For language-specs.
6801 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6802 "/share")))))
6803 #t)))))
329d731b
DH
6804 (propagated-inputs
6805 `(("dconf" ,dconf)))
6806 (native-inputs
480c9226
KK
6807 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6808 ("intltool" ,intltool)
b3546174 6809 ("itstool" ,itstool)
480c9226 6810 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
329d731b 6811 ("gobject-introspection" ,gobject-introspection)
480c9226
KK
6812 ("libgd"
6813 ,(origin
6814 (method git-fetch)
6815 (uri (git-reference
6816 (url "https://gitlab.gnome.org/GNOME/libgd")
6817 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6818 (file-name (git-file-name "libgd" version))
6819 (sha256
6820 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
329d731b
DH
6821 ("pkg-config" ,pkg-config)))
6822 (inputs
6823 `(("glib" ,glib)
0d2df50c 6824 ("gspell" ,gspell)
329d731b 6825 ("gtk+" ,gtk+)
480c9226 6826 ("gtksourceview" ,gtksourceview)
329d731b
DH
6827 ("libpeas" ,libpeas)
6828 ("libxml2" ,libxml2)
329d731b
DH
6829 ("iso-codes" ,iso-codes)
6830 ("python-pygobject" ,python-pygobject)
6831 ("python" ,python)
6832 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6833 ("libx11" ,libx11)
6834 ("vala" ,vala)
6835 ("adwaita-icon-theme" ,adwaita-icon-theme)
6836 ("libsoup" ,libsoup)
6837 ("gnome-desktop" ,gnome-desktop)))
6838 (home-page "https://wiki.gnome.org/Apps/Gedit")
6839 (synopsis "GNOME text editor")
6840 (description "While aiming at simplicity and ease of use, gedit is a
6841powerful general purpose text editor.")
6842 (license license:gpl2+)))
b7179363
SB
6843
6844(define-public zenity
6845 (package
6846 (name "zenity")
4f581bd0 6847 (version "3.32.0")
b7179363
SB
6848 (source (origin
6849 (method url-fetch)
5958df04 6850 (uri (string-append "mirror://gnome/sources/zenity/"
b7179363 6851 (version-major+minor version) "/"
5958df04 6852 "zenity-" version ".tar.xz"))
b7179363
SB
6853 (sha256
6854 (base32
4f581bd0 6855 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
b7179363
SB
6856 (build-system gnu-build-system)
6857 (native-inputs
b94a6ca0 6858 `(("gettext" ,gettext-minimal)
b7179363
SB
6859 ("itstool" ,itstool)
6860 ("pkg-config" ,pkg-config)))
6861 (inputs
6862 `(("libnotify" ,libnotify)
6863 ("webkitgtk" ,webkitgtk)))
6864 (synopsis "Display graphical dialog boxes from shell scripts")
f032d0be 6865 (home-page "https://www.gnome.org")
b7179363
SB
6866 (description
6867 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6868to display dialog boxes from the commandline and shell scripts.")
6869 (license license:lgpl2.0+)))
60c3627c
SB
6870
6871(define-public mutter
6872 (package
6873 (name "mutter")
ec3ceabd 6874 (version "3.34.2")
60c3627c 6875 (source (origin
86c44e72
KK
6876 (method url-fetch)
6877 (uri (string-append "mirror://gnome/sources/" name "/"
6878 (version-major+minor version) "/"
6879 name "-" version ".tar.xz"))
60c3627c
SB
6880 (sha256
6881 (base32
ec3ceabd 6882 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
86c44e72
KK
6883 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6884 ;; versions of cogl and clutter. As a result, many of the inputs,
6885 ;; propagated-inputs, and configure flags used in cogl and clutter are
6886 ;; needed here as well.
edf43f68 6887 (build-system meson-build-system)
60c3627c 6888 (arguments
edf43f68
KK
6889 '(;; XXX: All mutter tests fail with the following error:
6890 ;; Settings schema 'org.gnome.mutter' is not installed
6891 #:tests? #f
6892 #:glib-or-gtk? #t
6893 #:configure-flags
ec3ceabd
KK
6894 ;; TODO: Enable profiler when Sysprof is packaged.
6895 (list "-Dprofiler=false"
6896 ;; Otherwise, the RUNPATH will lack the final path component.
6897 (string-append "-Dc_link_args=-Wl,-rpath="
edf43f68 6898 (assoc-ref %outputs "out") "/lib:"
ec3ceabd 6899 (assoc-ref %outputs "out") "/lib/mutter-5")
a88d5a0c
MW
6900
6901 ;; The following flags are needed for the bundled clutter
edf43f68 6902 (string-append "-Dxwayland_path="
d633f2f6
RH
6903 (assoc-ref %build-inputs "xorg-server-xwayland")
6904 "/bin/Xwayland")
6905
a88d5a0c 6906 ;; the remaining flags are needed for the bundled cogl
edf43f68 6907 (string-append "-Dopengl_libname="
a88d5a0c 6908 (assoc-ref %build-inputs "mesa")
682ae6f9
MB
6909 "/lib/libGL.so"))
6910 #:phases (modify-phases %standard-phases
6911 (add-after 'unpack 'fix-build-with-mesa-20
6912 (lambda _
6913 ;; Mimic upstream commit a444a4c5f58ea516ad for
6914 ;; compatibility with Mesa 20. Remove for 3.36.
6915 (substitute* '("src/backends/meta-egl-ext.h"
6916 "src/backends/meta-egl.c"
6917 "src/backends/meta-egl.h")
6918 (("#include <EGL/eglext\\.h>" all)
6919 (string-append all "\n#include <EGL/eglmesaext.h>")))
6920 (substitute* "cogl/cogl/meson.build"
6921 (("#include <EGL/eglext\\.h>" all)
6922 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6923 #t)))))
60c3627c 6924 (native-inputs
ec3ceabd
KK
6925 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6926 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
60c3627c
SB
6927 ("gobject-introspection" ,gobject-introspection)
6928 ("intltool" ,intltool)
f23052a6 6929 ("pkg-config" ,pkg-config)
edf43f68 6930 ("xorg-server" ,xorg-server-for-tests)
f23052a6
DC
6931 ;; For git build
6932 ("autoconf" ,autoconf)
6933 ("automake" ,automake)
6934 ("libtool" ,libtool)))
60c3627c 6935 (propagated-inputs
a88d5a0c
MW
6936 `(;; libmutter.pc refers to these:
6937 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6938 ("gtk+" ,gtk+)
6939 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6940 ("atk" ,atk)
6941 ("cairo" ,cairo)
6942 ("gdk-pixbuf" ,gdk-pixbuf)
6943 ("glib" ,glib)
a88d5a0c
MW
6944 ("json-glib" ,json-glib)
6945 ("libinput" ,libinput)
6946 ("libx11" ,libx11)
6947 ("libxcomposite" ,libxcomposite)
6948 ("libxdamage" ,libxdamage)
6949 ("libxext" ,libxext)
6950 ("libxfixes" ,libxfixes)
6951 ("libxkbcommon" ,libxkbcommon)
6952 ("libxrandr" ,libxrandr)
6953 ("mesa" ,mesa)
6954 ("pango" ,pango)
6955 ("udev" ,eudev)
a88d5a0c 6956 ("xinput" ,xinput)))
60c3627c 6957 (inputs
86c44e72
KK
6958 `(("elogind" ,elogind)
6959 ("gnome-desktop" ,gnome-desktop)
edf43f68 6960 ("gnome-settings-daemon" ,gnome-settings-daemon)
60c3627c 6961 ("libcanberra-gtk" ,libcanberra)
a88d5a0c 6962 ("libgudev" ,libgudev)
60c3627c
SB
6963 ("libice" ,libice)
6964 ("libsm" ,libsm)
edf43f68 6965 ("libwacom" ,libwacom)
60c3627c 6966 ("libxkbfile" ,libxkbfile)
a88d5a0c 6967 ("libxrandr" ,libxrandr)
86c44e72 6968 ("libxtst" ,libxtst)
edf43f68 6969 ("pipewire" ,pipewire)
60c3627c
SB
6970 ("startup-notification" ,startup-notification)
6971 ("upower-glib" ,upower)
6972 ("xkeyboard-config" ,xkeyboard-config)
d633f2f6 6973 ("xorg-server-xwayland" ,xorg-server-xwayland)
60c3627c
SB
6974 ("zenity" ,zenity)))
6975 (synopsis "Window and compositing manager")
f032d0be 6976 (home-page "https://www.gnome.org")
60c3627c
SB
6977 (description
6978 "Mutter is a window and compositing manager that displays and manages your
6979desktop via OpenGL. Mutter combines a sophisticated display engine using the
6980Clutter toolkit with solid window-management logic inherited from the Metacity
6981window manager.")
86c44e72 6982 (license license:gpl2+)))
685cee87
SB
6983
6984(define-public gnome-online-accounts
6985 (package
6986 (name "gnome-online-accounts")
dd233e4d 6987 (version "3.36.0")
685cee87
SB
6988 (source (origin
6989 (method url-fetch)
6990 (uri (string-append "mirror://gnome/sources/" name "/"
6991 (version-major+minor version) "/"
6992 name "-" version ".tar.xz"))
6993 (sha256
6994 (base32
dd233e4d 6995 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
14c297fd 6996 (outputs '("out" "lib"))
685cee87 6997 (build-system glib-or-gtk-build-system)
14c297fd
TS
6998 (arguments
6999 `(#:configure-flags
7000 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
7001 #:phases
7002 (modify-phases %standard-phases
7003 (add-before 'configure 'patch-libgoa-output
7004 (lambda* (#:key outputs #:allow-other-keys)
7005 (let ((lib (assoc-ref outputs "lib")))
7006 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
7007 (("@prefix@") lib)
7008 (("@exec_prefix@") lib)
7009 (("@libdir@") (string-append lib "/lib"))
7010 (("@includedir@") (string-append lib "/include"))
7011 (("@datadir@") (string-append lib "/share")))
7555d539
MB
7012 ;; Make sure gobject-introspection knows about the output
7013 ;; too (see <https://bugs.gnu.org/36535>).
7014 (setenv "outputs" "out lib")
14c297fd 7015 #t))))))
685cee87
SB
7016 (native-inputs
7017 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7018 ("gobject-introspection" ,gobject-introspection)
7019 ("intltool" ,intltool)
7020 ("pkg-config" ,pkg-config)
ebb2873d 7021 ("vala" ,vala)
685cee87
SB
7022 ("xsltproc" ,libxslt)))
7023 (propagated-inputs
7024 `(("glib" ,glib) ; required by goa-1.0.pc
7025 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
7026 (inputs
7027 `(("docbook-xsl" ,docbook-xsl)
7028 ("json-glib" ,json-glib)
7029 ("libsecret" ,libsecret)
7030 ("rest" ,rest)
685cee87
SB
7031 ("webkitgtk" ,webkitgtk)))
7032 (synopsis "Single sign-on framework for GNOME")
7033 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7034 (description
7035 "GNOME Online Accounts provides interfaces so that applications and
7036libraries in GNOME can access the user's online accounts. It has providers for
7037Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
7038Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7039 (license license:lgpl2.0+)))
df217748
SB
7040
7041(define-public evolution-data-server
7042 (package
7043 (name "evolution-data-server")
162048be 7044 (version "3.34.2")
df217748
SB
7045 (source (origin
7046 (method url-fetch)
7047 (uri (string-append "mirror://gnome/sources/" name "/"
7048 (version-major+minor version) "/"
7049 name "-" version ".tar.xz"))
43190ac6
MB
7050 (patches (search-patches "evolution-data-server-locales.patch"
7051 "evolution-data-server-libical-compat.patch"))
df217748
SB
7052 (sha256
7053 (base32
162048be 7054 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
743aebd7 7055 (build-system cmake-build-system)
df217748 7056 (arguments
b468eedc
RW
7057 '(#:configure-flags
7058 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
7059 (runpaths (map (lambda (s)
7060 (string-append lib "/evolution-data-server/" s))
ac033c7b
MB
7061 '("addressbook-backends" "calendar-backends"
7062 "camel-providers" "credential-modules"
7063 "registry-modules"))))
7064 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
7065 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7066 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
7067 "-DENABLE_VALA_BINDINGS=ON"
ac033c7b
MB
7068 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7069 (string-append lib "/evolution-data-server;")
7070 (string-join runpaths ";"))
7071 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
df217748
SB
7072 #:phases
7073 (modify-phases %standard-phases
b468eedc
RW
7074 (add-after 'unpack 'disable-failing-tests
7075 (lambda _
7076 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7077 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7078 (delete-file-recursively "tests/book-migration")
7079 (substitute* "tests/CMakeLists.txt"
7080 (("add_subdirectory\\(book-migration\\)") ""))
b468eedc 7081 #t))
743aebd7 7082 (add-after 'unpack 'patch-paths
df217748 7083 (lambda _
b468eedc
RW
7084 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7085 "tests/libedata-book/data-test-utils.c"
7086 "tests/libedata-book/test-book-cache-utils.c"
7087 "tests/libedata-cal/test-cal-cache-utils.c")
df217748 7088 (("/bin/rm") (which "rm")))
ac033c7b
MB
7089 #t))
7090 (add-before 'configure 'dont-override-rpath
7091 (lambda _
7092 (substitute* "CMakeLists.txt"
7093 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7094 ;; Remove it so the configure flag is respected.
7095 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
b63c06f1 7096 #t)))))
df217748
SB
7097 (native-inputs
7098 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7099 ("gobject-introspection" ,gobject-introspection)
7100 ("gperf" ,gperf)
7101 ("intltool" ,intltool)
7102 ("pkg-config" ,pkg-config)
a73c1cf8 7103 ("vala" ,vala)
743aebd7 7104 ("python" ,python-wrapper)))
df217748
SB
7105 (propagated-inputs
7106 ;; These are all in the Requires field of .pc files.
7107 `(("gtk+" ,gtk+)
7108 ("libical" ,libical)
7109 ("libsecret" ,libsecret)
7110 ("libsoup" ,libsoup)
7111 ("nss" ,nss)
7112 ("sqlite" ,sqlite)))
7113 (inputs
7114 `(("bdb" ,bdb)
7115 ("gcr" ,gcr)
14c297fd 7116 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
891199c6 7117 ("json-glib" ,json-glib)
b468eedc 7118 ("libcanberra" ,libcanberra)
743aebd7
MB
7119 ("libgweather" ,libgweather)
7120 ("mit-krb5" ,mit-krb5)
891199c6
MW
7121 ("openldap" ,openldap)
7122 ("webkitgtk" ,webkitgtk)))
df217748
SB
7123 (synopsis "Store address books and calendars")
7124 (home-page "https://wiki.gnome.org/Apps/Evolution")
7125 (description
7126 "This package provides a unified backend for programs that work with
7127contacts, tasks, and calendar information. It was originally developed for
7128Evolution (hence the name), but is now used by other packages as well.")
7129 (license license:lgpl2.0)))
bd7dfafa
SB
7130
7131(define-public caribou
7132 (package
7133 (name "caribou")
fe964bb5 7134 (version "0.4.21")
bd7dfafa
SB
7135 (source (origin
7136 (method url-fetch)
7137 (uri (string-append "mirror://gnome/sources/" name "/"
7138 (version-major+minor version) "/"
7139 name "-" version ".tar.xz"))
7140 (sha256
7141 (base32
fe964bb5 7142 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
bd7dfafa
SB
7143 (build-system glib-or-gtk-build-system)
7144 (arguments
7145 '(#:phases
7146 (modify-phases %standard-phases
7147 (add-before
7148 'build 'pre-build
7149 (lambda* (#:key outputs #:allow-other-keys)
7150 (let ((out (assoc-ref outputs "out")))
7151 ;; Use absolute shared library path in Caribou-1.0.typelib.
7152 (substitute* "libcaribou/Makefile"
7153 (("--shared-library=libcaribou.so")
7154 (string-append "--shared-library="
7155 out "/lib/libcaribou.so")))
7156 #t)))
7157 (add-after 'install 'wrap-programs
7158 (lambda* (#:key outputs #:allow-other-keys)
7159 (let* ((out (assoc-ref outputs "out"))
7160 (python-path (getenv "PYTHONPATH"))
7161 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7162 (for-each
7163 (lambda (prog)
7164 (wrap-program prog
7165 `("PYTHONPATH" ":" prefix (,python-path))
7166 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7167 (list (string-append out "/bin/caribou-preferences")
7168 (string-append out "/libexec/antler-keyboard"))))
7169 #t)))))
7170 (native-inputs
7171 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7172 ("gobject-introspection" ,gobject-introspection)
7173 ("intltool" ,intltool)
7174 ("pkg-config" ,pkg-config)
9f7f5ba2 7175 ("python" ,python)
bd7dfafa
SB
7176 ("vala" ,vala)
7177 ("xsltproc" ,libxslt)))
7178 (propagated-inputs
7179 ;; caribou-1.0.pc refers to all these.
7180 `(("libgee" ,libgee)
7181 ("libxklavier" ,libxklavier)
7182 ("libxtst" ,libxtst)
7183 ("gtk+" ,gtk+)))
7184 (inputs
7185 `(("clutter" ,clutter)
7186 ("dconf" ,dconf)
7187 ("gtk+-2" ,gtk+-2)
9f7f5ba2 7188 ("python-pygobject" ,python-pygobject)))
bd7dfafa
SB
7189 (synopsis "Text entry and UI navigation application")
7190 (home-page "https://wiki.gnome.org/Projects/Caribou")
7191 (description
7192 "Caribou is an input assistive technology intended for switch and pointer
7193users.")
7194 (license license:lgpl2.1)))
ba5dd105 7195
ba5dd105
SB
7196(define-public network-manager
7197 (package
7198 (name "network-manager")
01c22be7 7199 (version "1.24.0")
ba5dd105
SB
7200 (source (origin
7201 (method url-fetch)
7202 (uri (string-append "mirror://gnome/sources/NetworkManager/"
7203 (version-major+minor version) "/"
7204 "NetworkManager-" version ".tar.xz"))
8d0548fd 7205 (patches (search-patches "network-manager-plugin-path.patch"))
ba5dd105
SB
7206 (sha256
7207 (base32
01c22be7 7208 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
02710a9b 7209 (modules '((guix build utils)))
fd070f35 7210 (snippet
02710a9b
RW
7211 '(begin
7212 (substitute* "src/devices/wwan/nm-modem-manager.c"
7213 (("systemd") "elogind"))
7214 #t))))
255ff74f 7215 (build-system meson-build-system)
ba5dd105
SB
7216 (outputs '("out"
7217 "doc")) ; 8 MiB of gtk-doc HTML
7218 (arguments
255ff74f 7219 `(#:configure-flags
ba5dd105 7220 (let ((out (assoc-ref %outputs "out"))
ba5dd105
SB
7221 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
7222 "/sbin/dhclient")))
255ff74f
BW
7223 (list
7224 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
7225 ;; component.
7226 (string-append "-Dc_link_args=-Wl,-rpath="
7227 out "/lib:"
7228 out "/lib/NetworkManager/" ,version)
7229 "-Dsystemd_journal=false"
7230 "-Dsession_tracking=elogind"
7231 "-Dsuspend_resume=elogind"
7232 "-Dsystemdsystemunitdir=no"
7233 "-Dsession_tracking_consolekit=false"
7234 "-Ddhcpcd=no"
7235 "-Ddhcpcanon=no"
7236 "-Dcrypto=gnutls"
7237 "-Diwd=true"
7238 "-Dlibaudit=yes"
7239 "-Dqt=false"
7240 "-Ddocs=true"
7241 "--sysconfdir=/etc"
7242 "--localstatedir=/var"
7243 (string-append "-Dudev_dir="
7244 out "/lib/udev")
7245 (string-append "-Ddbus_conf_dir="
7246 out "/etc/dbus-1/system.d")
7247
7248 (string-append "-Ddhclient=" dhclient)))
ba5dd105
SB
7249 #:phases
7250 (modify-phases %standard-phases
b4f59d87
AW
7251 (add-before 'configure 'pre-configure
7252 (lambda _
7253 ;; These tests try to test aspects of network-manager's
7254 ;; functionality within restricted containers, but they don't
7255 ;; cope with being already in the Guix build jail as that jail
7256 ;; lacks some features that they would like to proxy over (like
7257 ;; a /sys mount).
255ff74f
BW
7258 (substitute* "src/platform/tests/meson.build"
7259 ((".*test-address-linux.*") "")
7260 ((".*test-cleanup-linux.*") "")
7261 ((".*test-link-linux.*") "")
7262 ((".*test-route-linux.*") ""))
7263 (substitute* "src/devices/tests/meson.build"
7264 ((".*test-acd.*") "")
7265 ((".*test-lldp.*") ""))
45f80fce 7266 #t))
255ff74f
BW
7267 (add-after 'unpack 'patch-docbook-xml
7268 (lambda* (#:key inputs #:allow-other-keys)
7269 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
7270 "/xml/dtd/docbook")))
7271 (substitute* (find-files "." ".*\\.(xsl|xml)")
7272 (("http://.*/docbookx\\.dtd")
7273 (string-append xmldoc "/docbookx.dtd")))
7274 #t)))
ba5dd105
SB
7275 (add-before 'check 'pre-check
7276 (lambda _
7277 ;; For the missing /etc/machine-id.
7278 (setenv "DBUS_FATAL_WARNINGS" "0")
7279 #t))
255ff74f
BW
7280 (add-before 'install 'no-polkit-magic
7281 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
ba5dd105 7282 (lambda _
255ff74f
BW
7283 (setenv "PKEXEC_UID" "something")
7284 #t))
7285 (add-after 'install 'move-doc
7286 (lambda* (#:key outputs #:allow-other-keys)
7287 (let ((out (assoc-ref outputs "out"))
7288 (doc (assoc-ref outputs "doc")))
7289 (mkdir-p (string-append doc "/share"))
7290 (for-each (lambda (directory)
7291 (copy-recursively (string-append out directory)
7292 (string-append doc directory))
7293 (delete-file-recursively
7294 (string-append out directory)))
7295 '("/share/doc" "/share/gtk-doc"))
7296 #t))))))
b93502d6
DC
7297 (propagated-inputs
7298 `(("glib" ,glib)))
ba5dd105 7299 (native-inputs
255ff74f
BW
7300 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
7301 ("gtk-doc" ,gtk-doc)
ba5dd105 7302 ("gobject-introspection" ,gobject-introspection)
255ff74f 7303 ("docbook-xml" ,docbook-xml)
d04687dc 7304 ("docbook-xsl" ,docbook-xsl)
ba5dd105 7305 ("intltool" ,intltool)
d04687dc
HG
7306 ("libxslt" ,libxslt)
7307 ("libxml2" ,libxml2)
ba5dd105 7308 ("pkg-config" ,pkg-config)
255ff74f 7309 ("vala" ,vala)
ba5dd105
SB
7310 ;; For testing.
7311 ("python" ,python-wrapper)
7312 ("python-dbus" ,python-dbus)
7313 ("python-pygobject" ,python-pygobject)))
7314 (inputs
255ff74f 7315 `(("curl" ,curl)
856ca567
KK
7316 ("cyrus-sasl" ,cyrus-sasl)
7317 ("dbus-glib" ,dbus-glib)
ba5dd105 7318 ("dnsmasq" ,dnsmasq)
856ca567 7319 ("eudev" ,eudev)
ba5dd105
SB
7320 ("gnutls" ,gnutls)
7321 ("iptables" ,iptables)
7322 ("isc-dhcp" ,isc-dhcp)
c2f236fa 7323 ("iwd" ,iwd) ; wpa_supplicant alternative
d04687dc 7324 ("jansson" ,jansson)
c2f236fa 7325 ("libaudit" ,audit)
ba5dd105
SB
7326 ("libgcrypt" ,libgcrypt)
7327 ("libgudev" ,libgudev)
7328 ("libndp" ,libndp)
7329 ("libnl" ,libnl)
7330 ("libsoup" ,libsoup)
255ff74f 7331 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
142bdcbc 7332 ("modem-manager" ,modem-manager)
c27e02bf 7333 ("newt" ,newt) ;for the 'nmtui' console interface
c2f236fa 7334 ("openresolv" ,openresolv) ; alternative resolv.conf manager
ba5dd105
SB
7335 ("polkit" ,polkit)
7336 ("ppp" ,ppp)
7337 ("readline" ,readline)
fd070f35
CM
7338 ("util-linux" ,util-linux)
7339 ("elogind" ,elogind)))
ba5dd105 7340 (synopsis "Network connection manager")
8d0548fd 7341 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
ba5dd105
SB
7342 (description
7343 "NetworkManager is a system network service that manages your network
7344devices and connections, attempting to keep active network connectivity when
7345available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7346devices, and provides VPN integration with a variety of different VPN
7347services.")
255ff74f
BW
7348 ;; “This NetworkManager project consists of the daemon, client tools, and
7349 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7350 ;; GPL-2.0+.”
7351 (license (list license:gpl2+
7352 license:lgpl2.1+))
29d2f451 7353 (properties '((upstream-name . "NetworkManager")))))
4d62a9d3 7354
f2b96b3a
LC
7355(define-public network-manager-openvpn
7356 (package
7357 (name "network-manager-openvpn")
3fe368c0 7358 (version "1.8.12")
f2b96b3a
LC
7359 (source (origin
7360 (method url-fetch)
7361 (uri (string-append
7362 "mirror://gnome/sources/NetworkManager-openvpn/"
7363 (version-major+minor version)
7364 "/NetworkManager-openvpn-" version ".tar.xz"))
7365 (sha256
7366 (base32
3fe368c0 7367 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
f2b96b3a
LC
7368 (build-system gnu-build-system)
7369 (arguments
633422b0
JL
7370 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7371 #:phases
7372 (modify-phases %standard-phases
7373 (add-after 'configure 'patch-path
7374 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7375 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7376 "/sbin/openvpn"))
7377 (modprobe (string-append (assoc-ref inputs "kmod")
7378 "/bin/modprobe"))
7379 (pretty-ovpn (string-append "\"" ovpn "\"")))
7380 (for-each
7381 (lambda (file)
7382 (substitute* file
7383 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7384 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7385 (("\"/sbin/openvpn\"") pretty-ovpn)
7386 (("/sbin/modprobe") modprobe)))
7387 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7388 #t)))))
f2b96b3a
LC
7389 (native-inputs
7390 `(("pkg-config" ,pkg-config)
7391 ("intltool" ,intltool)))
7392 (inputs
7393 `(("gtk+" ,gtk+)
633422b0 7394 ("kmod" ,kmod)
f2b96b3a
LC
7395 ("openvpn" ,openvpn)
7396 ("network-manager" ,network-manager)
3fe368c0 7397 ("libnma" ,libnma)
f2b96b3a
LC
7398 ("libsecret" ,libsecret)))
7399 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7400 (synopsis "OpenVPN plug-in for NetworkManager")
7401 (description
7402 "This extension of NetworkManager allows it to take care of connections
7403to virtual private networks (VPNs) via OpenVPN.")
7404 (license license:gpl2+)
7405 (properties `((upstream-name . "NetworkManager-openvpn")))))
7406
d376129f
JL
7407(define-public network-manager-vpnc
7408 (package
7409 (name "network-manager-vpnc")
7410 (version "1.2.6")
7411 (source (origin
7412 (method url-fetch)
7413 (uri (string-append
7414 "mirror://gnome/sources/NetworkManager-vpnc/"
7415 (version-major+minor version)
7416 "/NetworkManager-vpnc-" version ".tar.xz"))
7417 (sha256
7418 (base32
7419 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7420 (build-system gnu-build-system)
7421 (arguments
7c43b78d
BW
7422 `(#:configure-flags '("--enable-absolute-paths"
7423 "--localstatedir=/var"
7424 ;; libnm-glib has been removed from network-manager
7425 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7426 "--with-libnm-glib=no")
d376129f
JL
7427 #:phases
7428 (modify-phases %standard-phases
7429 (add-after 'configure 'patch-path
7430 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7431 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7432 "/sbin/vpnc"))
7433 (modprobe (string-append (assoc-ref inputs "kmod")
7434 "/bin/modprobe"))
7435 (pretty-ovpn (string-append "\"" vpnc "\"")))
7436 (substitute* "src/nm-vpnc-service.c"
7437 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7438 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7439 (("\"/sbin/vpnc\"") pretty-ovpn)
7440 (("/sbin/modprobe") modprobe)))
7441 #t)))))
7442 (native-inputs
7443 `(("pkg-config" ,pkg-config)
7444 ("intltool" ,intltool)))
7445 (inputs
7446 `(("gtk+" ,gtk+)
7447 ("kmod" ,kmod)
7448 ("vpnc" ,vpnc)
7449 ("network-manager" ,network-manager)
7c43b78d 7450 ("libnma" ,libnma)
d376129f
JL
7451 ("libsecret" ,libsecret)))
7452 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7453 (synopsis "VPNC plug-in for NetworkManager")
7454 (description
7455 "Support for configuring virtual private networks based on VPNC.
7456Compatible with Cisco VPN concentrators configured to use IPsec.")
7457 (license license:gpl2+)
7458 (properties `((upstream-name . "NetworkManager-vpnc")))))
7459
8378c87a
EF
7460(define-public network-manager-openconnect
7461 (package
7462 (name "network-manager-openconnect")
7463 (version "1.2.6")
7464 (source (origin
7465 (method url-fetch)
7466 (uri (string-append
7467 "mirror://gnome/sources/NetworkManager-openconnect/"
7468 (version-major+minor version)
7469 "/NetworkManager-openconnect-" version ".tar.xz"))
7470 (sha256
7471 (base32
7472 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7473 (build-system gnu-build-system)
7474 (arguments
7475 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7476 #:phases
7477 (modify-phases %standard-phases
7478 (add-after 'configure 'patch-path
7479 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7480 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7481 "/sbin/openconnect"))
7482 (modprobe (string-append (assoc-ref inputs "kmod")
7483 "/bin/modprobe"))
7484 (pretty-ovpn (string-append "\"" openconnect "\"")))
7485 (substitute* "src/nm-openconnect-service.c"
2807a843 7486 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8378c87a
EF
7487 (("/sbin/modprobe") modprobe)))
7488 #t)))))
7489 (native-inputs
7490 `(("intltool" ,intltool)
4ca449c5 7491 ("libnma" ,libnma)
8378c87a
EF
7492 ("pkg-config" ,pkg-config)))
7493 (inputs
7494 `(("gcr" ,gcr)
7495 ("gtk+" ,gtk+)
7496 ("kmod" ,kmod)
7497 ("libsecret" ,libsecret)
7498 ("libxml2" ,libxml2)
b4fe5dab 7499 ("lz4" ,lz4)
8378c87a
EF
7500 ("network-manager" ,network-manager)
7501 ("openconnect" ,openconnect)))
7502 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7503 (synopsis "OpenConnect plug-in for NetworkManager")
7504 (description
7505 "This extension of NetworkManager allows it to take care of connections
7506to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7507Cisco's AnyConnect SSL VPN.")
7508 (license license:gpl2+)
e52b9534
LC
7509 (properties `((upstream-name . "NetworkManager-openconnect")
7510
7511 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7512 ;; file refers to account "nm-openconnect". Specify it here
7513 ;; so that 'network-manager-service-type' creates it.
7514 (user-accounts . ("nm-openconnect"))))))
8378c87a 7515
e5e1df4d
DC
7516(define-public mobile-broadband-provider-info
7517 (package
7518 (name "mobile-broadband-provider-info")
310c89e3 7519 (version "20190116")
e5e1df4d
DC
7520 (source (origin
7521 (method url-fetch)
7522 (uri (string-append
7523 "mirror://gnome/sources/"
7524 "mobile-broadband-provider-info/" version "/"
7525 "mobile-broadband-provider-info-" version ".tar.xz"))
7526 (sha256
7527 (base32
310c89e3 7528 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
e5e1df4d
DC
7529 (build-system gnu-build-system)
7530 (arguments
310c89e3 7531 `(#:tests? #f)) ; no tests
e5e1df4d
DC
7532 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7533 (synopsis "Database of broadband connection configuration")
7534 (description "Database of broadband connection configuration.")
7535 (license license:public-domain)))
7536
4d62a9d3
SB
7537(define-public network-manager-applet
7538 (package
7539 (name "network-manager-applet")
4c291112 7540 (version "1.16.0")
4d62a9d3
SB
7541 (source (origin
7542 (method url-fetch)
3df63444 7543 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
4d62a9d3 7544 (version-major+minor version) "/"
3df63444 7545 "network-manager-applet-" version ".tar.xz"))
4d62a9d3
SB
7546 (sha256
7547 (base32
4c291112 7548 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
cd7f718e
RW
7549 (build-system meson-build-system)
7550 (arguments
4c291112 7551 '(#:glib-or-gtk? #t))
4d62a9d3
SB
7552 (native-inputs
7553 `(("intltool" ,intltool)
cd7f718e 7554 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4d62a9d3 7555 ("gobject-introspection" ,gobject-introspection)
cd7f718e 7556 ("gtk-doc" ,gtk-doc)
4d62a9d3
SB
7557 ("pkg-config" ,pkg-config)))
7558 (propagated-inputs
7559 ;; libnm-gtk.pc refers to all these.
7560 `(("dbus-glib" ,dbus-glib)
7561 ("gtk+" ,gtk+)
415b90f2
BW
7562 ("network-manager" ,network-manager)
7563 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7564 ("libnma" ,libnma)))
4d62a9d3 7565 (inputs
cd7f718e 7566 `(("gcr" ,gcr)
4d62a9d3
SB
7567 ("libgudev" ,libgudev)
7568 ("libnotify" ,libnotify)
2116bfb3 7569 ("libsecret" ,libsecret)
240cee8a
KK
7570 ("libselinux" ,libselinux)
7571 ("jansson" ,jansson) ; for team support
4c291112 7572 ("modem-manager" ,modem-manager)))
4d62a9d3 7573 (synopsis "Applet for managing network connections")
8ce78609 7574 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
4d62a9d3
SB
7575 (description
7576 "This package contains a systray applet for NetworkManager. It displays
7577the available networks and allows users to easily switch between them.")
7578 (license license:gpl2+)))
56196594
RW
7579
7580(define-public libxml++
7581 (package
7582 (name "libxml++")
8344a85e 7583 (version "3.0.1")
56196594
RW
7584 (source (origin
7585 (method url-fetch)
7586 (uri (string-append "mirror://gnome/sources/" name "/"
7587 (version-major+minor version) "/"
7588 name "-" version ".tar.xz"))
7589 (sha256
7590 (base32
8344a85e 7591 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
56196594
RW
7592 (build-system gnu-build-system)
7593 ;; libxml++-3.0.pc refers to all these.
7594 (propagated-inputs
7595 `(("libxml2" ,libxml2)
7596 ("glibmm" ,glibmm)))
7597 (native-inputs
7598 `(("perl" ,perl)
7599 ("pkg-config" ,pkg-config)))
7600 (home-page "http://libxmlplusplus.sourceforge.net/")
7601 (synopsis "C++ wrapper for XML parser library libxml2")
7602 (description
7603 "This package provides a C++ wrapper for the XML parser library
7604libxml2.")
7605 (license license:lgpl2.1+)))
df12f04a 7606
b61d9627
AW
7607(define-public libxml++-2
7608 (package
7609 (inherit libxml++)
7610 (name "libxml++")
7611 (version "2.40.1")
7612 (source (origin
7613 (method url-fetch)
7614 (uri (string-append "mirror://gnome/sources/" name "/"
7615 (version-major+minor version) "/"
7616 name "-" version ".tar.xz"))
7617 (sha256
7618 (base32
7619 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7620
df12f04a
SB
7621(define-public gdm
7622 (package
7623 (name "gdm")
0fda99c5 7624 (version "3.34.1")
df12f04a
SB
7625 (source (origin
7626 (method url-fetch)
7627 (uri (string-append "mirror://gnome/sources/" name "/"
7628 (version-major+minor version) "/"
7629 name "-" version ".tar.xz"))
7630 (sha256
7631 (base32
0fda99c5 7632 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
f4ec5e1a 7633 (patches (search-patches "gdm-default-session.patch"))))
957dbc0a 7634 (build-system glib-or-gtk-build-system)
df12f04a
SB
7635 (arguments
7636 '(#:configure-flags
af37e6bb 7637 `("--without-plymouth"
957dbc0a 7638 "--disable-systemd-journal"
51bc8357
TS
7639
7640 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
7641 ;; instead of having to replace it (i.e., stopping the mingetty
7642 ;; service for TTY 1 before starting GDM).
7643 "--with-initial-vt=7"
7644
89c86562
TS
7645 ;; Use '/etc/environment' for locale settings instead of the
7646 ;; systemd-specific '/etc/locale.conf'.
7647 "--with-lang-file=/etc/environment"
7648
b74ef0ba
RW
7649 ,(string-append "--with-udevdir="
7650 (assoc-ref %outputs "out") "/lib/udev")
7651
af37e6bb
AW
7652 "--localstatedir=/var"
7653 ,(string-append "--with-default-path="
7654 (string-join '("/run/setuid-programs"
7655 "/run/current-system/profile/bin"
7656 "/run/current-system/profile/sbin")
957dbc0a
AW
7657 ":"))
7658 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7659 ;; XDG_DATA_DIRS so that it finds its schemas.
7660 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
df12f04a
SB
7661 #:phases
7662 (modify-phases %standard-phases
7663 (add-before
7664 'configure 'pre-configure
e8c6e771 7665 (lambda* (#:key inputs outputs #:allow-other-keys)
df12f04a
SB
7666 ;; We don't have <systemd/sd-daemon.h>.
7667 (substitute* '("common/gdm-log.c"
7668 "daemon/gdm-server.c"
7669 "daemon/gdm-session-worker.c"
7670 "daemon/gdm-session-worker-job.c")
7671 (("#include <systemd/sd-daemon\\.h>") ""))
7672 ;; Use elogind for sd-login.
7673 (substitute* '("common/gdm-common.c"
0fda99c5 7674 "daemon/gdm-local-display-factory.c"
df12f04a
SB
7675 "daemon/gdm-manager.c"
7676 "libgdm/gdm-user-switching.c")
7677 (("#include <systemd/sd-login\\.h>")
7678 "#include <elogind/sd-login.h>"))
957dbc0a
AW
7679 ;; Check for elogind.
7680 (substitute* '("configure")
7681 (("libsystemd")
7682 "libelogind"))
af37e6bb
AW
7683 ;; Look for system-installed sessions in
7684 ;; /run/current-system/profile/share.
7685 (substitute* '("libgdm/gdm-sessions.c"
7686 "daemon/gdm-session.c"
7687 "daemon/gdm-display.c"
7688 "daemon/gdm-launch-environment.c")
7689 (("DATADIR \"/x")
7690 "\"/run/current-system/profile/share/x")
7691 (("DATADIR \"/wayland")
7692 "\"/run/current-system/profile/share/wayland")
7693 (("DATADIR \"/gnome")
7694 "\"/run/current-system/profile/share/gnome"))
c9ff92b5 7695 (let ((propagate '("GDM_CUSTOM_CONF"
1f564c15 7696 "GDM_DBUS_DAEMON"
c9ff92b5 7697 "GDM_X_SERVER"
41fa9f18 7698 "GDM_X_SESSION"
c9ff92b5
TS
7699 ;; XXX: Remove this once GNOME Shell is
7700 ;; a dependency of GDM.
7701 "XDG_DATA_DIRS")))
7702 (substitute* "daemon/gdm-session.c"
7703 (("set_up_session_environment \\(self\\);")
7704 (apply string-append
7705 "set_up_session_environment (self);\n"
7706 (map (lambda (name)
7707 (string-append
7708 "gdm_session_set_environment_variable "
7709 "(self, \"" name "\","
7710 "g_getenv (\"" name "\"));\n"))
7711 propagate)))))
a430a350
TS
7712 ;; Find the configuration file using an environment variable.
7713 (substitute* '("common/gdm-settings.c")
e0e6756f 7714 (("GDM_CUSTOM_CONF")
e57c2adb
TS
7715 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7716 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7717 " : GDM_CUSTOM_CONF)")))
e0e6756f
AW
7718 ;; Use service-supplied path to X.
7719 (substitute* '("daemon/gdm-server.c")
7720 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7721 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
0fda99c5
KK
7722 (substitute* '("daemon/gdm-wayland-session.c"
7723 "daemon/gdm-x-session.c")
1f564c15
TS
7724 (("\"dbus-daemon\"")
7725 "g_getenv (\"GDM_DBUS_DAEMON\")")
e0e6756f 7726 (("X_SERVER")
41fa9f18
TS
7727 "g_getenv (\"GDM_X_SERVER\")")
7728 (("GDMCONFDIR \"/Xsession\"")
7729 "g_getenv (\"GDM_X_SESSION\")"))
def6d6b6
TS
7730 ;; Use an absolute path for GNOME Session.
7731 (substitute* "daemon/gdm-launch-environment.c"
7732 (("\"gnome-session\"")
7733 (string-append "\"" (assoc-ref inputs "gnome-session")
7734 "/bin/gnome-session\"")))
e8c6e771
TS
7735 ;; Do not automatically select the placeholder session.
7736 (substitute* "daemon/gdm-session.c"
7737 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7738 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7739 "(g_strcmp0(search_dirs[i], \""
7740 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7741 "\") == 0 && "
7742 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7743 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
bcca95dc 7744 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
69544798 7745 #t))
8caa4589
TS
7746 ;; GDM requires that there be at least one desktop entry
7747 ;; file. This phase installs a hidden one that simply
7748 ;; fails. This enables users to use GDM with a
7749 ;; '~/.xsession' script with no other desktop entry files.
7750 ;; See <https://bugs.gnu.org/35068>.
7751 (add-after 'install 'install-placeholder-desktop-entry
7752 (lambda* (#:key inputs outputs #:allow-other-keys)
7753 (let* ((out (assoc-ref outputs "out"))
7754 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7755 (fail (string-append sessions "/fail.desktop")))
7756 (mkdir-p sessions)
7757 (with-output-to-file fail
7758 (lambda ()
7759 (for-each
7760 display
7761 '("[Desktop Entry]\n"
7762 "Encoding=UTF-8\n"
7763 "Type=Application\n"
7764 "Name=Fail\n"
7765 "Comment=This session fails immediately.\n"
7766 "NoDisplay=true\n"
7767 "Exec=false\n"))))
7768 #t)))
69544798
TS
7769 ;; GDM needs GNOME Session to run these applications. We link
7770 ;; their autostart files in `share/gdm/greeter/autostart'
7771 ;; because GDM explicitly tells GNOME Session to look there.
7772 ;;
7773 ;; XXX: GNOME Shell should be linked here too, but currently
7774 ;; GNOME Shell depends on GDM.
7775 (add-after 'install 'link-autostart-files
7776 (lambda* (#:key inputs outputs #:allow-other-keys)
7777 (let* ((out (assoc-ref outputs "out"))
7778 (autostart (string-append out "/share/gdm/"
7779 "greeter/autostart"))
7780 (settings (assoc-ref inputs "gnome-settings-daemon")))
7781 (mkdir-p autostart)
7782 (with-directory-excursion autostart
7783 (for-each (lambda (desktop)
7784 (symlink desktop (basename desktop)))
7785 (find-files (string-append settings "/etc/xdg"))))
7786 #t))))))
df12f04a
SB
7787 (native-inputs
7788 `(("dconf" ,dconf)
7789 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7790 ("gobject-introspection" ,gobject-introspection)
7791 ("intltool" ,intltool)
7792 ("itstool" ,itstool)
7793 ("pkg-config" ,pkg-config)
7794 ("xmllint" ,libxml2)))
7795 (inputs
7796 `(("accountsservice" ,accountsservice)
7797 ("check" ,check) ; for testing
7798 ("elogind" ,elogind)
def6d6b6 7799 ("gnome-session" ,gnome-session)
69544798 7800 ("gnome-settings-daemon" ,gnome-settings-daemon)
df12f04a
SB
7801 ("gtk+" ,gtk+)
7802 ("iso-codes" ,iso-codes)
7803 ("libcanberra" ,libcanberra)
7804 ("linux-pam" ,linux-pam)))
7805 (synopsis "Display manager for GNOME")
f032d0be 7806 (home-page "https://wiki.gnome.org/Projects/GDM/")
df12f04a
SB
7807 (description
7808 "GNOME Display Manager is a system service that is responsible for
7809providing graphical log-ins and managing local and remote displays.")
7810 (license license:gpl2+)))
8e1dd04f
SB
7811
7812(define-public libgtop
7813 (package
7814 (name "libgtop")
015fc036 7815 (version "2.40.0")
8e1dd04f
SB
7816 (source (origin
7817 (method url-fetch)
59487fc2 7818 (uri (string-append "mirror://gnome/sources/libgtop/"
8e1dd04f 7819 (version-major+minor version) "/"
59487fc2 7820 "libgtop-" version ".tar.xz"))
8e1dd04f
SB
7821 (sha256
7822 (base32
015fc036 7823 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8e1dd04f
SB
7824 (build-system gnu-build-system)
7825 (native-inputs
7826 `(("gobject-introspection" ,gobject-introspection)
7827 ("intltool" ,intltool)
7828 ("perl" ,perl)
7829 ("pkg-config" ,pkg-config)))
7830 (propagated-inputs
7831 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7832 (synopsis "Portable system access library")
7833 (home-page "https://www.gnome.org/")
7834 (description
7835 "LibGTop is a library to get system specific data such as CPU and memory
7836usage and information about running processes.")
7837 (license license:gpl2+)))
b96c4260
SB
7838
7839(define-public gnome-bluetooth
7840 (package
7841 (name "gnome-bluetooth")
e8f4bf6b 7842 (version "3.34.0")
b96c4260
SB
7843 (source (origin
7844 (method url-fetch)
7845 (uri (string-append "mirror://gnome/sources/" name "/"
7846 (version-major+minor version) "/"
7847 name "-" version ".tar.xz"))
7848 (sha256
7849 (base32
e8f4bf6b 7850 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
fd3b1171 7851 (build-system meson-build-system)
b96c4260
SB
7852 (native-inputs
7853 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
fd3b1171 7854 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
b96c4260
SB
7855 ("gobject-introspection" ,gobject-introspection)
7856 ("intltool" ,intltool)
7857 ("pkg-config" ,pkg-config)
7858 ("xmllint" ,libxml2)))
7859 (propagated-inputs
7860 ;; gnome-bluetooth-1.0.pc refers to all these.
723afae6
KK
7861 `(("glib" ,glib)
7862 ("gtk+" ,gtk+)))
b96c4260 7863 (inputs
723afae6
KK
7864 `(("eudev" ,eudev)
7865 ("libcanberra" ,libcanberra)
b96c4260
SB
7866 ("libnotify" ,libnotify)))
7867 (synopsis "GNOME Bluetooth subsystem")
7868 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7869 (description
7870 "This package contains tools for managing and manipulating Bluetooth
7871devices using the GNOME desktop.")
7872 (license license:lgpl2.1+)))
b645146f
SB
7873
7874(define-public gnome-control-center
7875 (package
7876 (name "gnome-control-center")
c576328d 7877 (version "3.34.2")
b645146f
SB
7878 (source (origin
7879 (method url-fetch)
7880 (uri (string-append "mirror://gnome/sources/" name "/"
7881 (version-major+minor version) "/"
7882 name "-" version ".tar.xz"))
7883 (sha256
7884 (base32
c576328d 7885 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
59dac026 7886 (build-system meson-build-system)
b645146f 7887 (arguments
59dac026
RW
7888 '(#:glib-or-gtk? #t
7889 #:configure-flags
64c70430
KK
7890 (list "-Dcheese=false"
7891 (string-append "-Dgnome_session_libexecdir="
7892 (assoc-ref %build-inputs "gnome-session")
7893 "/libexec"))
59dac026 7894 #:phases
b645146f
SB
7895 (modify-phases %standard-phases
7896 (add-before 'configure 'patch-paths
7897 (lambda* (#:key inputs #:allow-other-keys)
7898 (let ((libc (assoc-ref inputs "libc"))
1df38cfc 7899 (tzdata (assoc-ref inputs "tzdata"))
341225ac 7900 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
64c70430
KK
7901 (nm-applet (assoc-ref inputs "network-manager-applet"))
7902 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
b645146f
SB
7903 (substitute* "panels/datetime/tz.h"
7904 (("/usr/share/zoneinfo/zone.tab")
7905 (string-append tzdata "/share/zoneinfo/zone.tab")))
982c0b36 7906 (substitute* "tests/datetime/test-endianess.c"
b645146f
SB
7907 (("/usr/share/locale")
7908 (string-append libc "/share/locale")))
1df38cfc
LC
7909 (substitute* "panels/region/cc-region-panel.c"
7910 (("\"gkbd-keyboard-display")
7911 (string-append "\"" libgnomekbd
7912 "/bin/gkbd-keyboard-display")))
341225ac
LC
7913 (substitute* '("panels/network/net-device-wifi.c"
7914 "panels/network/net-device.c"
7915 "panels/network/connection-editor/net-connection-editor.c")
7916 (("\"nm-connection-editor")
7917 (string-append "\"" nm-applet
7918 "/bin/nm-connection-editor")))
1acd107c
FP
7919 (substitute* '("panels/user-accounts/run-passwd.c")
7920 (("/usr/bin/passwd")
7921 "/run/setuid-programs/passwd"))
64c70430
KK
7922 (substitute* "panels/info/cc-info-overview-panel.c"
7923 (("DATADIR \"/gnome/gnome-version.xml\"")
7924 (string-append "\"" gnome-desktop
7925 "/share/gnome/gnome-version.xml\"")))
c576328d
KK
7926 #t)))
7927 (add-after 'unpack 'skip-gtk-update-icon-cache
7928 ;; Don't create 'icon-theme.cache'.
7929 (lambda _
7930 (substitute* "build-aux/meson/meson_post_install.py"
7931 (("gtk-update-icon-cache") (which "true")))
7932 #t)))))
b645146f
SB
7933 (native-inputs
7934 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7935 ("intltool" ,intltool)
7936 ("pkg-config" ,pkg-config)
a6938bac
KK
7937 ("xsltproc" ,libxslt)
7938 ;; For tests
7939 ("hicolor-icon-theme" ,hicolor-icon-theme)
7940 ("python-dbusmock" ,python-dbusmock)
7941 ("xorg-server" ,xorg-server-for-tests)))
b645146f
SB
7942 (inputs
7943 `(("accountsservice" ,accountsservice)
7944 ("clutter-gtk" ,clutter-gtk)
7945 ("colord-gtk" ,colord-gtk)
7946 ("cups" ,cups)
7947 ("dconf" ,dconf)
7948 ("docbook-xsl" ,docbook-xsl)
3446ffb5 7949 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
b645146f
SB
7950 ("gnome-bluetooth" ,gnome-bluetooth)
7951 ("gnome-desktop" ,gnome-desktop)
7952 ("gnome-online-accounts" ,gnome-online-accounts)
14c297fd 7953 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
64c70430 7954 ("gnome-session" ,gnome-session)
b645146f
SB
7955 ("gnome-settings-daemon" ,gnome-settings-daemon)
7956 ("grilo" ,grilo)
a6938bac 7957 ("gsound" ,gsound)
b645146f
SB
7958 ("ibus" ,ibus)
7959 ("libcanberra" ,libcanberra)
1df38cfc 7960 ("libgnomekbd" ,libgnomekbd)
b645146f
SB
7961 ("libgudev" ,libgudev)
7962 ("libgtop" ,libgtop)
46cf3434 7963 ("libnma" ,libnma)
b645146f 7964 ("libpwquality" ,libpwquality)
982c0b36 7965 ("libsecret" ,libsecret)
b645146f
SB
7966 ("libsoup" ,libsoup)
7967 ("libxml2" ,libxml2)
7968 ("libwacom" ,libwacom)
7969 ("mesa" ,mesa)
7970 ("mit-krb5" ,mit-krb5)
7971 ("modem-manager" ,modem-manager)
7972 ("network-manager-applet" ,network-manager-applet)
7973 ("polkit" ,polkit)
7974 ("pulseaudio" ,pulseaudio)
7975 ("smbclient" ,samba)
7976 ("tzdata" ,tzdata)
982c0b36 7977 ("udisks" ,udisks)
b645146f
SB
7978 ("upower" ,upower)))
7979 (synopsis "Utilities to configure the GNOME desktop")
7980 (home-page "https://www.gnome.org/")
7981 (description
7982 "This package contains configuration applets for the GNOME desktop,
7983allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7984properties, sound setup, desktop theme and background, user interface
7985properties, screen resolution, and other GNOME parameters.")
7986 (license license:gpl2+)))
a4df5756
SB
7987
7988(define-public gnome-shell
7989 (package
7990 (name "gnome-shell")
28457ae6 7991 (version "3.34.2")
a4df5756
SB
7992 (source (origin
7993 (method url-fetch)
7994 (uri (string-append "mirror://gnome/sources/" name "/"
7995 (version-major+minor version) "/"
7996 name "-" version ".tar.xz"))
7997 (sha256
7998 (base32
28457ae6
KK
7999 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
8000 (patches (search-patches "gnome-shell-theme.patch"
8001 "gnome-shell-disable-test.patch"))
a76d0f03
LC
8002 (modules '((guix build utils)))
8003 (snippet
8004 #~(begin
a76d0f03
LC
8005 ;; Copy images for use on the GDM log-in screen.
8006 (copy-file #$(file-append %artwork-repository
8007 "/slim/0.x/background.png")
8008 "data/theme/guix-background.png")
45fef894
LC
8009 (copy-file #$(file-append %artwork-repository
8010 "/logo/Guix-horizontal-white.svg")
8011 "data/theme/guix-logo.svg")
a76d0f03 8012 #t))))
2b0c755d 8013 (build-system meson-build-system)
a4df5756 8014 (arguments
08185081
MB
8015 `(#:glib-or-gtk? #t
8016 #:disallowed-references ((,glib "bin")
11e1df56
LC
8017 ,inkscape ,libxslt
8018 ,ruby-sass)
2b0c755d
RW
8019 #:configure-flags
8020 (list "-Dsystemd=false"
8021 ;; Otherwise, the RUNPATH will lack the final path component.
8022 (string-append "-Dc_link_args=-Wl,-rpath="
8023 (assoc-ref %outputs "out")
8024 "/lib/gnome-shell"))
11e1df56 8025
08185081 8026 #:modules ((guix build meson-build-system)
11e1df56
LC
8027 (guix build utils)
8028 (srfi srfi-1))
8029
2b0c755d 8030 #:phases
a4df5756 8031 (modify-phases %standard-phases
2b0c755d 8032 (add-after 'unpack 'fix-keysdir
a4df5756
SB
8033 (lambda* (#:key outputs #:allow-other-keys)
8034 (let* ((out (assoc-ref outputs "out"))
8035 (keysdir (string-append
8036 out "/share/gnome-control-center/keybindings")))
2b0c755d
RW
8037 (substitute* "meson.build"
8038 (("keysdir =.*")
8039 (string-append "keysdir = '" keysdir "'\n")))
8040 #t)))
ebfe259f
MB
8041 (add-before 'configure 'convert-logo-to-png
8042 (lambda* (#:key inputs #:allow-other-keys)
8043 ;; Convert the logo from SVG to PNG.
8044 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
8045 "data/theme/guix-logo.svg")))
ba00235a 8046 (add-before 'configure 'record-absolute-file-names
2472cdec
LC
8047 (lambda* (#:key inputs #:allow-other-keys)
8048 (substitute* "js/misc/ibusManager.js"
8049 (("'ibus-daemon'")
8050 (string-append "'" (assoc-ref inputs "ibus")
8051 "/bin/ibus-daemon'")))
d6fda4d3
LC
8052 (substitute* "js/ui/status/keyboard.js"
8053 (("'gkbd-keyboard-display'")
8054 (string-append "'" (assoc-ref inputs "libgnomekbd")
8055 "/bin/gkbd-keyboard-display'")))
2472cdec 8056 #t))
2b0c755d
RW
8057 (add-before 'check 'pre-check
8058 (lambda* (#:key inputs #:allow-other-keys)
8059 ;; Tests require a running X server.
8060 (system "Xvfb :1 &")
8061 (setenv "DISPLAY" ":1")
8062 #t))
8063 (add-after 'install 'wrap-programs
8064 (lambda* (#:key inputs outputs #:allow-other-keys)
8065 (let ((out (assoc-ref outputs "out"))
8066 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8067 (python-path (getenv "PYTHONPATH")))
8068 (wrap-program (string-append out "/bin/gnome-shell")
8069 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8070 ;; FIXME: gnome-shell loads these libraries with unqualified
8071 ;; names only, so they need to be on LD_LIBRARY_PATH. The
8072 ;; alternative might be to patch gnome-shell.
8073 `("LD_LIBRARY_PATH" ":" prefix
8074 ,(map (lambda (pkg)
8075 (string-append (assoc-ref inputs pkg) "/lib"))
cd8dce8a
RW
8076 '("gdk-pixbuf"
8077 "gnome-bluetooth" "librsvg" "libgweather"))))
2b0c755d
RW
8078 (for-each
8079 (lambda (prog)
8080 (wrap-program (string-append out "/bin/" prog)
8081 `("PYTHONPATH" ":" prefix (,python-path))
8082 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8083 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
08185081 8084 #t)))
11e1df56
LC
8085 (replace 'glib-or-gtk-wrap
8086 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8087 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
8088 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
8089 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8090 ;; phase. Fix that since we don't need these.
8091 (wrap #:inputs (fold alist-delete inputs
8092 '("inkscape" "intltool" "glib:bin"))
8093 #:outputs outputs)))))))
a4df5756 8094 (native-inputs
28457ae6
KK
8095 `(("asciidoc" ,asciidoc)
8096 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
2b0c755d 8097 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
a4df5756 8098 ("gobject-introspection" ,gobject-introspection)
ebfe259f 8099 ("inkscape" ,inkscape)
a4df5756
SB
8100 ("intltool" ,intltool)
8101 ("pkg-config" ,pkg-config)
8102 ("python" ,python)
2b0c755d
RW
8103 ("ruby-sass" ,ruby-sass)
8104 ("sassc" ,sassc)
a76d0f03 8105 ("xsltproc" ,libxslt)
2b0c755d 8106 ;; For tests
0b4504f6 8107 ("xorg-server" ,xorg-server-for-tests)))
a4df5756
SB
8108 (inputs
8109 `(("accountsservice" ,accountsservice)
8110 ("caribou" ,caribou)
8111 ("docbook-xsl" ,docbook-xsl)
8112 ("evolution-data-server" ,evolution-data-server)
8113 ("gcr" ,gcr)
8114 ("gdm" ,gdm)
c5db31d4 8115 ("gdk-pixbuf" ,gdk-pixbuf+svg)
a4df5756 8116 ("gjs" ,gjs)
28457ae6 8117 ("gnome-autoar" ,gnome-autoar)
a4df5756 8118 ("gnome-bluetooth" ,gnome-bluetooth)
a4df5756
SB
8119 ("gnome-desktop" ,gnome-desktop)
8120 ("gnome-settings-daemon" ,gnome-settings-daemon)
8121 ("gst-plugins-base" ,gst-plugins-base)
8122 ("ibus" ,ibus)
8123 ("libcanberra" ,libcanberra)
8124 ("libcroco" ,libcroco)
d6fda4d3 8125 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
a4df5756 8126 ("libgweather" ,libgweather)
e24d311f 8127 ("libnma" ,libnma)
a4df5756
SB
8128 ("libsoup" ,libsoup)
8129 ("mesa-headers" ,mesa-headers)
8130 ("mutter" ,mutter)
8131 ("network-manager-applet" ,network-manager-applet)
8132 ("polkit" ,polkit)
8133 ("pulseaudio" ,pulseaudio)
8134 ("python-pygobject" ,python-pygobject)
8135 ("startup-notification" ,startup-notification)
8136 ("telepathy-logger" ,telepathy-logger)
8137 ("upower" ,upower)
30e760f0
MB
8138 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
8139 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
8140 ("librsvg" ,librsvg)
2b0c755d 8141 ("geoclue" ,geoclue)))
a4df5756
SB
8142 (synopsis "Desktop shell for GNOME")
8143 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
8144 (description
8145 "GNOME Shell provides core user interface functions for the GNOME desktop,
8146like switching to windows and launching applications.")
8147 (license license:gpl2+)))
c3f29bc9
RS
8148
8149(define-public gtk-vnc
8150 (package
8151 (name "gtk-vnc")
965ff023 8152 (version "0.9.0")
c3f29bc9
RS
8153 (source
8154 (origin
8155 (method url-fetch)
8156 (uri (string-append "mirror://gnome/sources/" name "/"
8157 (version-major+minor version) "/"
8158 name "-" version ".tar.xz"))
8159 (sha256
8160 (base32
965ff023 8161 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
c3f29bc9
RS
8162 (build-system gnu-build-system)
8163 (arguments
8164 '(#:configure-flags '("--with-gtk=3.0")))
8165 (propagated-inputs
8166 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
8167 (inputs
8168 `(("cyrus-sasl" ,cyrus-sasl)
8169 ("gnutls" ,gnutls)
8170 ("libgcrypt" ,libgcrypt)
8171 ("pulseaudio" ,pulseaudio)))
8172 (native-inputs
8173 `(("glib:bin" ,glib "bin")
8174 ("gobject-introspection" ,gobject-introspection)
8175 ("intltool" ,intltool)
8176 ("pkg-config" ,pkg-config)
2f17e939 8177 ("python-wrapper" ,python-wrapper)
c3f29bc9
RS
8178 ("vala" ,vala)))
8179 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
8180 (synopsis "VNC viewer widget for GTK+")
8181 (description
8182 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
8183applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
8184GTK-VNC implements client side RFB protocol and authentication extensions such
8185as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
8186 (license license:lgpl2.1+)))
8b877545 8187
dc69fe18
MW
8188(define-public gnome-autoar
8189 (package
8190 (name "gnome-autoar")
17969940 8191 (version "0.2.4")
dc69fe18
MW
8192 (source (origin
8193 (method url-fetch)
8194 (uri (string-append "mirror://gnome/sources/" name "/"
8195 (version-major+minor version) "/"
8196 name "-" version ".tar.xz"))
8197 (sha256
8198 (base32
17969940 8199 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
dc69fe18
MW
8200 (build-system glib-or-gtk-build-system)
8201 (native-inputs
17969940 8202 `(("gobject-introspection" ,gobject-introspection)
dc69fe18
MW
8203 ("pkg-config" ,pkg-config)))
8204 (propagated-inputs
17969940 8205 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
dc69fe18 8206 (inputs
0a6e9e13 8207 `(("gtk+" ,gtk+)))
dc69fe18
MW
8208 (synopsis "Archives integration support for GNOME")
8209 (home-page "https://git.gnome.org/browse/gnome-autoar/")
8210 (description
8211 "GNOME Autoar is a library which makes creating and extracting archives
8212easy, safe, and automatic.")
8213 (license license:lgpl2.1+)))
8214
b64e217f
MW
8215(define-public tracker
8216 (package
8217 (name "tracker")
caaefa40 8218 (version "2.3.4")
b64e217f
MW
8219 (source (origin
8220 (method url-fetch)
b5b0fd23 8221 (uri (string-append "mirror://gnome/sources/tracker/"
b64e217f 8222 (version-major+minor version) "/"
b5b0fd23 8223 "tracker-" version ".tar.xz"))
b64e217f
MW
8224 (sha256
8225 (base32
caaefa40 8226 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
5ada561c 8227 (build-system meson-build-system)
c8bdf589 8228 (arguments
5ada561c
KK
8229 `(#:glib-or-gtk? #t
8230 #:configure-flags
8231 ;; Otherwise, the RUNPATH will lack the final path component.
8232 (list (string-append "-Dc_link_args=-Wl,-rpath="
8233 (assoc-ref %outputs "out") "/lib:"
8234 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
8235 #:phases
c8bdf589 8236 (modify-phases %standard-phases
c8bdf589
RW
8237 (add-before 'check 'pre-check
8238 (lambda _
63db190a
PN
8239 ;; Some tests expect to write to $HOME.
8240 (setenv "HOME" "/tmp")
c8bdf589 8241 #t)))))
b64e217f 8242 (native-inputs
5ada561c 8243 `(("glib:bin" ,glib "bin")
b64e217f 8244 ("gobject-introspection" ,gobject-introspection)
5ada561c 8245 ("python-pygobject" ,python-pygobject)
b64e217f
MW
8246 ("intltool" ,intltool)
8247 ("pkg-config" ,pkg-config)
8248 ("vala" ,vala)))
8249 (inputs
63db190a 8250 `(("dbus" ,dbus)
44ed6284 8251 ("sqlite" ,sqlite)
b64e217f 8252 ("libxml2" ,libxml2)
63db190a 8253 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
0ef48cd9 8254 ("json-glib" ,json-glib)
63db190a 8255 ("libsoup" ,libsoup)))
b64e217f
MW
8256 (synopsis "Metadata database, indexer and search tool")
8257 (home-page "https://wiki.gnome.org/Projects/Tracker")
8258 (description
63db190a
PN
8259 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
8260
8261It is a middleware component aimed at desktop application developers who want
8262their apps to browse and search user content. It's not designed to be used
8263directly by desktop users, but it provides a commandline tool named
8264@command{tracker} for the adventurous.
8265
8266Tracker allows your application to instantly perform full-text searches across
8267all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
8268example. This is achieved by indexing the user's home directory in the
8269background.
8270
8271Tracker also allows your application to query and list content that the user
8272has stored. For example, GNOME Music displays all the music files that are
8273found by Tracker. This means that GNOME Music doesn't need to maintain a
8274database of its own.
8275
8276If you need to go beyond simple searches, Tracker is also a linked data
8277endpoint and it understands SPARQL. ")
8278 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
b64e217f 8279 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
63db190a 8280 ;; libstemmer is bsd-3 and the rest is gpl2+.
b64e217f 8281 (license (list license:gpl2+
63db190a
PN
8282 license:bsd-3
8283 license:lgpl2.1+))))
b64e217f 8284
03be9874
KK
8285(define-public tracker-miners
8286 (package
8287 (name "tracker-miners")
de60ac2f 8288 (version "2.3.3")
03be9874
KK
8289 (source (origin
8290 (method url-fetch)
8291 (uri (string-append "mirror://gnome/sources/tracker-miners/"
8292 (version-major+minor version)
8293 "/tracker-miners-" version ".tar.xz"))
8294 (sha256
8295 (base32
de60ac2f 8296 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
03be9874
KK
8297 (build-system meson-build-system)
8298 (arguments
8299 `(#:glib-or-gtk? #t
8300 #:configure-flags
8301 (list "-Dminer_rss=false" ; libgrss is required.
8302 ;; Ensure the RUNPATH contains all installed library locations.
8303 (string-append "-Dc_link_args=-Wl,-rpath="
8304 (assoc-ref %outputs "out")
8305 "/lib/tracker-miners-2.0")
8306 ;; TODO: Enable functional tests. Currently, the following error
8307 ;; appears:
8308 ;; Exception: The functional tests require DConf to be the default
8309 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
8310 "-Dfunctional_tests=false")))
8311 (native-inputs
8312 `(("dbus" ,dbus)
8313 ("intltool" ,intltool)
8314 ("glib:bin" ,glib "bin")
8315 ("gobject-introspection" ,gobject-introspection)
8316 ("pkg-config" ,pkg-config)
8317 ("python-pygobject" ,python-pygobject)))
8318 (inputs
8319 `(("exempi" ,exempi)
8320 ("ffmpeg" ,ffmpeg)
8321 ("flac" ,flac)
8322 ("giflib" ,giflib)
8323 ("glib" ,glib)
8324 ("gstreamer" ,gstreamer)
8325 ("icu4c" ,icu4c)
8326 ("libcue" ,libcue)
8327 ("libexif" ,libexif)
8328 ("libgsf" ,libgsf)
8329 ("libgxps" ,libgxps)
8330 ("libiptcdata" ,libiptcdata)
4bd428a7 8331 ("libjpeg" ,libjpeg-turbo)
03be9874
KK
8332 ("libosinfo" ,libosinfo)
8333 ("libpng" ,libpng)
8334 ("libseccomp" ,libseccomp)
8335 ("libtiff" ,libtiff)
8336 ("libvorbis" ,libvorbis)
8337 ("libxml2" ,libxml2)
8338 ("poppler" ,poppler)
8339 ("taglib" ,taglib)
8340 ("totem-pl-parser" ,totem-pl-parser)
8341 ("tracker" ,tracker)
8342 ("upower" ,upower)
8343 ("zlib" ,zlib)))
b64e217f
MW
8344 (synopsis "Metadata database, indexer and search tool")
8345 (home-page "https://wiki.gnome.org/Projects/Tracker")
8346 (description
8347 "Tracker is an advanced framework for first class objects with associated
8348metadata and tags. It provides a one stop solution for all metadata, tags,
8349shared object databases, search tools and indexing.")
8350 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8351 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8352 (license (list license:gpl2+
8353 license:lgpl2.1+
8354 license:lgpl2.0+))))
8355
8b877545
RS
8356(define-public nautilus
8357 (package
8358 (name "nautilus")
8069ff0b 8359 (version "3.34.2")
8b877545
RS
8360 (source (origin
8361 (method url-fetch)
8362 (uri (string-append "mirror://gnome/sources/" name "/"
8363 (version-major+minor version) "/"
8364 name "-" version ".tar.xz"))
8365 (sha256
8366 (base32
8069ff0b 8367 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
35e2d0cf 8368 (build-system meson-build-system)
8b877545 8369 (arguments
35e2d0cf 8370 '(#:glib-or-gtk? #t
8069ff0b
KK
8371 #:phases
8372 (modify-phases %standard-phases
8373 (add-after 'unpack 'skip-gtk-update-icon-cache
8374 ;; Don't create 'icon-theme.cache'.
8375 (lambda _
8376 (substitute* "build-aux/meson/postinstall.py"
8377 (("gtk-update-icon-cache") "true"))
8378 #t)))
8b877545
RS
8379 ;; XXX: FAIL: check-nautilus
8380 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8381 #:tests? #f))
8382 (native-inputs
35e2d0cf
R
8383 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8384 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8b877545
RS
8385 ("gobject-introspection" ,gobject-introspection)
8386 ("intltool" ,intltool)
8387 ("pkg-config" ,pkg-config)))
8b877545 8388 (inputs
8b877545 8389 `(("dconf" ,dconf)
caf6c363 8390 ("gexiv2" ,gexiv2)
dd05e731 8391 ("gvfs" ,gvfs)
8b877545
RS
8392 ("exempi" ,exempi)
8393 ("gnome-desktop" ,gnome-desktop)
09d88905 8394 ("gnome-autoar" ,gnome-autoar)
3cafb9d4 8395 ("gst-plugins-base" ,gst-plugins-base)
ec66ebd4 8396 ("libseccomp" ,libseccomp)
35e2d0cf 8397 ("libselinux" ,libselinux)
09d88905 8398 ("tracker" ,tracker)
3cafb9d4 8399 ("tracker-miners" ,tracker-miners)
ce6027bf
SB
8400 ;; XXX: gtk+ is required by libnautilus-extension.pc
8401 ;;
8402 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8403 ;; package. See:
8404 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8405 ("gtk+" ,gtk+)
8b877545
RS
8406 ("libexif" ,libexif)
8407 ("libxml2" ,libxml2)))
8408 (synopsis "File manager for GNOME")
8409 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8410 (description
8411 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8412design and behaviour, giving the user a simple way to navigate and manage its
8413files.")
8414 (license license:gpl2+)))
3c697ffd
JR
8415
8416(define-public baobab
8417 (package
8418 (name "baobab")
e0c5f20c 8419 (version "3.32.0")
3c697ffd
JR
8420 (source (origin
8421 (method url-fetch)
8422 (uri (string-append
8423 "mirror://gnome/sources/" name "/"
8424 (version-major+minor version) "/"
8425 name "-" version ".tar.xz"))
8426 (sha256
8427 (base32
e0c5f20c 8428 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
d233d373
RJ
8429 (build-system meson-build-system)
8430 (arguments
8431 '(#:glib-or-gtk? #t))
3c697ffd
JR
8432 (native-inputs
8433 `(("intltool" ,intltool)
8434 ("pkg-config" ,pkg-config)
d233d373
RJ
8435 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8436 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
3c697ffd
JR
8437 ("itstool" ,itstool)
8438 ("xmllint" ,libxml2)
8439 ("glib" ,glib "bin")
8440 ("vala" ,vala)))
8441 (inputs
8442 `(("gtk+" ,gtk+)))
8443 (synopsis "Disk usage analyzer for GNOME")
8444 (description
8445 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8446usage in the GNOME desktop environment. It can easily scan device volumes or
8447a specific user-requested directory branch (local or remote). Once the scan
8448is complete it provides a graphical representation of each selected folder.")
8449 (home-page "https://wiki.gnome.org/Apps/Baobab")
8450 (license license:gpl2+)))
dc050251 8451
fdba447c
RS
8452(define-public gnome-backgrounds
8453 (package
8454 (name "gnome-backgrounds")
0856b0d9 8455 (version "3.34.0")
fdba447c
RS
8456 (source
8457 (origin
8458 (method url-fetch)
8459 (uri (string-append "mirror://gnome/sources/" name "/"
8460 (version-major+minor version) "/"
8461 name "-" version ".tar.xz"))
8462 (sha256
8463 (base32
0856b0d9 8464 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
9ca381f0 8465 (build-system meson-build-system)
fdba447c
RS
8466 (native-inputs
8467 `(("intltool" ,intltool)))
e04e8a8c 8468 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
fdba447c
RS
8469 (synopsis "Background images for the GNOME desktop")
8470 (description
8471 "GNOME backgrounds package contains a collection of graphics files which
8472can be used as backgrounds in the GNOME Desktop environment. Additionally,
8473the package creates the proper framework and directory structure so that you
8474can add your own files to the collection.")
8475 (license (list license:gpl2+
8476 license:cc-by2.0
8477 license:cc-by-sa2.0
8478 license:cc-by-sa3.0))))
8479
b784b1a9
RS
8480(define-public gnome-screenshot
8481 (package
8482 (name "gnome-screenshot")
d5101dab 8483 (version "3.34.0")
b784b1a9
RS
8484 (source
8485 (origin
8486 (method url-fetch)
8487 (uri (string-append "mirror://gnome/sources/" name "/"
8488 (version-major+minor version) "/"
8489 name "-" version ".tar.xz"))
8490 (sha256
8491 (base32
d5101dab 8492 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8356aefa 8493 (build-system meson-build-system)
d5101dab
KK
8494 (arguments
8495 '(#:phases
8496 (modify-phases %standard-phases
8497 (add-after 'unpack 'skip-gtk-update-icon-cache
8498 ;; Don't create 'icon-theme.cache'.
8499 (lambda _
8500 (substitute* "build-aux/postinstall.py"
8501 (("gtk-update-icon-cache") "true"))
8502 #t)))))
b784b1a9
RS
8503 (native-inputs
8504 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8356aefa 8505 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
b784b1a9 8506 ("intltool" ,intltool)
8356aefa 8507 ("appstream-glib" ,appstream-glib)
b784b1a9
RS
8508 ("pkg-config" ,pkg-config)))
8509 (inputs
8510 `(("gtk+" ,gtk+)
8511 ("libcanberra" ,libcanberra)
8512 ("libx11" ,libx11)
8513 ("libxext" ,libxext)))
676e7cb4 8514 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
b784b1a9
RS
8515 (synopsis "Take pictures of your screen")
8516 (description
8517 "GNOME Screenshot is a utility used for taking screenshots of the entire
8518screen, a window or a user defined area of the screen, with optional
8519beautifying border effects.")
8520 (license license:gpl2+)))
8521
66d59111
RS
8522(define-public dconf-editor
8523 (package
8524 (name "dconf-editor")
720aa20f 8525 (version "3.34.2")
66d59111
RS
8526 (source
8527 (origin
8528 (method url-fetch)
8529 (uri (string-append "mirror://gnome/sources/" name "/"
8530 (version-major+minor version) "/"
8531 name "-" version ".tar.xz"))
8532 (sha256
8533 (base32
720aa20f 8534 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
294ff39d 8535 (build-system meson-build-system)
66d59111
RS
8536 (native-inputs
8537 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
294ff39d 8538 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
66d59111 8539 ("intltool" ,intltool)
294ff39d
RW
8540 ("pkg-config" ,pkg-config)
8541 ("vala" ,vala)))
66d59111
RS
8542 (inputs
8543 `(("dconf" ,dconf)
8544 ("gtk+" ,gtk+)
8545 ("libxml2" ,libxml2)))
720aa20f 8546 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
66d59111
RS
8547 (synopsis "Graphical editor for GNOME's dconf configuration system")
8548 (description
8549 "Dconf-editor is a graphical tool for browsing and editing the dconf
8550configuration system for GNOME. It allows users to configure desktop
8551software that do not provide their own configuration interface.")
8552 (license license:lgpl2.1+)))
8553
96d36f38
AW
8554(define-public gnome-default-applications
8555 (package
8556 (name "gnome-default-applications")
8557 (version "0")
8558 (build-system trivial-build-system)
8559 (source #f)
8560 (propagated-inputs
8ad4f0aa
LC
8561 `(("nautilus" ,nautilus)
8562 ("evince" ,evince)))
96d36f38
AW
8563 (arguments
8564 `(#:modules ((guix build utils))
8565 #:builder
8566 (begin
8567 (use-modules (guix build utils))
8568 (let* ((out (assoc-ref %outputs "out"))
8569 (apps (string-append out "/share/applications")))
8570 (mkdir-p apps)
a6ac679f 8571 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
96d36f38
AW
8572 (lambda (port)
8573 (format port "[Default Applications]\n")
8ad4f0aa
LC
8574 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
8575 (format port "application/pdf=evince.desktop\n")
8576 (format port "application/postscript=evince.desktop\n")))
96d36f38
AW
8577 #t))))
8578 (synopsis "Default MIME type associations for the GNOME desktop")
8579 (description
8580 "Given many installed packages which might handle a given MIME type, a
8581user running the GNOME desktop probably has some preferences: for example,
8582that folders be opened by default by the Nautilus file manager, not the Baobab
8583disk usage analyzer. This package establishes that set of default MIME type
8584associations for GNOME.")
8585 (license license:gpl3+)
8586 (home-page #f)))
8587
3f1ed953
RG
8588(define-public libgovirt
8589 (package
8590 (name "libgovirt")
8591 (version "0.3.6")
8592 (source (origin
8593 (method url-fetch)
8594 (uri (string-append "mirror://gnome/sources/" name "/"
8595 (version-major+minor version) "/"
8596 name "-" version ".tar.xz"))
8597 (sha256
8598 (base32
8599 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8600 (build-system glib-or-gtk-build-system)
8601 (native-inputs
8602 `(("gettext" ,gettext-minimal)
8603 ("glib:bin" ,glib "bin")
8604 ("gobject-introspection" ,gobject-introspection)
8605 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8606 ("gtk+:bin" ,gtk+ "bin")
8607 ("pkg-config" ,pkg-config)))
8608 (inputs
8609 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
8610 ("librest" ,rest)))
8611 (synopsis "GoVirt Library")
8612 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
8613 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
8614 (license license:gpl2+)))
8615
8672e5e9
RG
8616(define-public gnome-weather
8617 (package
8618 (name "gnome-weather")
8619 (version "3.34.0")
8620 (source (origin
8621 (method url-fetch)
8622 (uri (string-append "mirror://gnome/sources/" name "/"
8623 (version-major+minor version) "/"
8624 name "-" version ".tar.xz"))
8625 (sha256
8626 (base32
8627 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8628 (build-system meson-build-system)
8629 (native-inputs
8630 `(("gettext" ,gettext-minimal)
8631 ("glib:bin" ,glib "bin")
8632 ("gobject-introspection" ,gobject-introspection)
8633 ("gtk+:bin" ,gtk+ "bin")
8634 ("pkg-config" ,pkg-config)))
8635 (inputs
8636 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8637 ("appstream-glib" ,appstream-glib)
8638 ("geoclue" ,geoclue)
8639 ("gdk-pixbuf" ,gdk-pixbuf)
8640 ("gjs" ,gjs)
8641 ("gnome-desktop" ,gnome-desktop)
8642 ("libgweather" ,libgweather)))
4391fefc 8643 (arguments
2b68ba72
MB
8644 `(#:glib-or-gtk? #t
8645 #:phases
4391fefc
PN
8646 (modify-phases %standard-phases
8647 (add-after 'install 'fix-desktop-file
8648 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
8649 ;; See https://issues.guix.gnu.org/issue/39324.
8650 (lambda* (#:key outputs #:allow-other-keys)
8651 (let* ((out (assoc-ref outputs "out"))
8652 (applications (string-append out "/share/applications")))
8653 (substitute* (string-append applications "/org.gnome.Weather.desktop")
2b68ba72
MB
8654 (("Exec=.*") "Exec=gnome-weather\n"))
8655 #t)))
8656 (add-after 'install 'wrap
8657 (lambda* (#:key inputs outputs #:allow-other-keys)
8658 (let ((out (assoc-ref outputs "out"))
8659 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8660 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8661 (wrap-program (string-append out "/bin/gnome-weather")
8662 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8663 #t))))))
8672e5e9
RG
8664 (synopsis "Weather monitoring for GNOME desktop")
8665 (description "GNOME Weather is a small application that allows you to
8666monitor the current weather conditions for your city, or anywhere in the
8667world.")
8668 (home-page "https://wiki.gnome.org/Apps/Weather")
8669 (license license:gpl2+)))
8670
dc050251
SB
8671(define-public gnome
8672 (package
8673 (name "gnome")
8674 (version (package-version gnome-shell))
8675 (source #f)
8676 (build-system trivial-build-system)
e3cfef22 8677 (arguments '(#:builder (begin (mkdir %output) #t)))
dc050251 8678 (propagated-inputs
8d8c6bff 8679 ;; TODO: Add or remove packages according to:
a8cda7f5 8680 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7922b6f7 8681 `(
8d8c6bff 8682 ;; GNOME-Core-OS-Services
7922b6f7 8683 ("accountsservice" ,accountsservice)
8d8c6bff
RG
8684 ("network-manager" ,network-manager)
8685 ("packagekit" ,packagekit)
8686 ("upower" ,upower)
8687 ;; GNOME-Core-Shell
8688 ("adwaita-icon-theme" ,adwaita-icon-theme)
8689 ("gdm" ,gdm)
8690 ("glib-networking" ,glib-networking)
8691 ("gnome-backgrounds" ,gnome-backgrounds)
8692 ("gnome-bluetooth" ,gnome-bluetooth)
d36fa50f 8693 ("gnome-color-manager" ,gnome-color-manager)
8d8c6bff
RG
8694 ("gnome-control-center" ,gnome-control-center)
8695 ("gnome-desktop" ,gnome-desktop)
7922b6f7 8696 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
d36fa50f 8697 ("gnome-initial-setup" ,gnome-initial-setup)
8d8c6bff 8698 ("gnome-keyring" ,gnome-keyring)
7922b6f7 8699 ("gnome-menus" ,gnome-menus)
8d8c6bff
RG
8700 ("gnome-session" ,gnome-session)
8701 ("gnome-settings-daemon" ,gnome-settings-daemon)
8702 ("gnome-shell-extensions" ,gnome-shell-extensions)
8703 ("gnome-shell" ,gnome-shell)
8704 ("gnome-themes-extra" ,gnome-themes-extra)
7922b6f7 8705 ("gnome-user-docs" ,gnome-user-docs)
d36fa50f 8706 ("gnome-user-share" ,gnome-user-share)
a8cda7f5 8707 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8d8c6bff
RG
8708 ("gvfs" ,gvfs)
8709 ("mutter" ,mutter)
8710 ("orca" ,orca)
d36fa50f
RG
8711 ("rygel" ,rygel)
8712 ("sushi" ,sushi)
8d8c6bff
RG
8713 ;; GNOME-Core-Utilities
8714 ("baobab" ,baobab)
8715 ("cheese" ,cheese)
ce784e6c
MB
8716 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8717 ;; only works on x86_64, so exclude it on other architectures.
8718 ,@(if (string-prefix? "x86_64" (%current-system))
8719 `(("eog" ,eog))
8720 '())
8d8c6bff
RG
8721 ("epiphany" ,epiphany)
8722 ("evince" ,evince)
8723 ("file-roller" ,file-roller)
8724 ("gedit" ,gedit)
897897bd 8725 ("gnome-boxes" ,gnome-boxes)
8d8c6bff
RG
8726 ("gnome-calculator" ,gnome-calculator)
8727 ("gnome-calendar" ,gnome-calendar)
8728 ("gnome-characters" ,gnome-characters)
8729 ("gnome-clocks" ,gnome-clocks)
8730 ("gnome-contacts" ,gnome-contacts)
8731 ("gnome-disk-utility" ,gnome-disk-utility)
8732 ("gnome-font-viewer" ,gnome-font-viewer)
8733 ("gnome-maps" ,gnome-maps)
d36fa50f
RG
8734 ; TODO: ("gnome-music" ,gnome-music)
8735 ; TODO: ("gnome-photos" ,gnome-photos)
8d8c6bff
RG
8736 ("gnome-screenshot" ,gnome-screenshot)
8737 ("gnome-system-monitor" ,gnome-system-monitor)
8738 ("gnome-terminal" ,gnome-terminal)
d36fa50f 8739 ("gnome-weather" ,gnome-weather)
8d8c6bff
RG
8740 ("nautilus" ,nautilus)
8741 ("simple-scan" ,simple-scan)
8742 ("totem" ,totem)
7922b6f7
RG
8743 ("yelp" ,yelp)
8744 ;; Others
8745 ("hicolor-icon-theme" ,hicolor-icon-theme)
9f2fef4f
LC
8746 ("gnome-online-accounts" ,gnome-online-accounts)
8747
8748 ;; Packages not part of GNOME proper but that are needed for a good
8749 ;; experience. See <https://bugs.gnu.org/39646>.
8750 ;; XXX: Find out exactly which ones are needed and why.
8751 ("font-cantarell" ,font-cantarell)
8752 ("font-dejavu" ,font-dejavu)
8753 ("at-spi2-core" ,at-spi2-core)
8754 ("dbus" ,dbus)
8755 ("dconf" ,dconf)
8756 ("desktop-file-utils" ,desktop-file-utils)
8757 ("gnome-default-applications" ,gnome-default-applications)
8758 ("gnome-themes-standard" ,gnome-themes-standard)
8759 ("gst-plugins-base" ,gst-plugins-base)
8760 ("gst-plugins-good" ,gst-plugins-good)
8761 ("gucharmap" ,gucharmap)
8762 ("pinentry-gnome3" ,pinentry-gnome3)
8763 ("pulseaudio" ,pulseaudio)
8764 ("shared-mime-info" ,shared-mime-info)
8765 ("system-config-printer" ,system-config-printer)
8766 ("xdg-user-dirs" ,xdg-user-dirs)
8767 ("yelp" ,yelp)
8768 ("zenity" ,zenity)))
fe4e698d 8769 (synopsis "The GNU desktop environment")
dc050251
SB
8770 (home-page "https://www.gnome.org/")
8771 (description
fe4e698d
LC
8772 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8773applications for browsing the web, editing text and images, creating
8774documents and diagrams, playing media, scanning, and much more.")
dc050251 8775 (license license:gpl2+)))
4a526711
DT
8776
8777(define-public byzanz
8778 ;; The last stable release of Byzanz was in 2011, but there have been many
8779 ;; useful commits made to the Byzanz repository since then that it would be
8780 ;; silly to use such an old release.
8781 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8782 (package
8783 (name "byzanz")
8784 (version (string-append "0.2-1." (string-take commit 7)))
8785 (source (origin
8786 (method git-fetch)
8787 (uri (git-reference
5f13bf09 8788 (url "https://git.gnome.org/browse/byzanz")
4a526711 8789 (commit commit)))
5a6527e4 8790 (file-name (string-append name "-" version "-checkout"))
4a526711
DT
8791 (sha256
8792 (base32
8793 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8794 (build-system glib-or-gtk-build-system)
8795 (arguments
8796 '(#:phases
8797 (modify-phases %standard-phases
778d6b52 8798 (add-before 'bootstrap 'build-without-Werror
4a526711
DT
8799 (lambda _
8800 ;; The build system cleverly detects that we're not building from
8801 ;; a release tarball and turns on -Werror for GCC.
8802 ;; Unsurprisingly, there is a warning during compilation that
8803 ;; causes the build to fail unnecessarily, so we remove the flag.
8804 (substitute* '("configure.ac")
8805 (("-Werror") ""))
778d6b52 8806 #t)))))
4a526711
DT
8807 (native-inputs
8808 `(("autoconf" ,autoconf)
8809 ("automake" ,automake)
8810 ("gnome-common" ,gnome-common)
8811 ("intltool" ,intltool)
8812 ("libtool" ,libtool)
8813 ("pkg-config" ,pkg-config)
8814 ("which" ,which)))
8815 (inputs
8816 `(("glib" ,glib)
8817 ("gstreamer" ,gstreamer)
8818 ("gst-plugins-base" ,gst-plugins-base)
8819 ("gtk+" ,gtk+)))
8820 (synopsis "Desktop recording program")
8821 (description "Byzanz is a simple desktop recording program with a
8822command-line interface. It can record part or all of an X display for a
8823specified duration and save it as a GIF encoded animated image file.")
8824 (home-page "https://git.gnome.org/browse/byzanz")
8825 (license license:gpl2+))))
3a9a4c51 8826
0ec171ec
MS
8827(define-public gsound
8828 (package
8829 (name "gsound")
8830 (version "1.0.2")
8831 (source (origin
8832 (method url-fetch)
8833 (uri (string-append "mirror://gnome/sources/" name "/"
8834 (version-major+minor version) "/"
8835 name "-" version ".tar.xz"))
8836 (sha256
8837 (base32
8838 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8839 (build-system glib-or-gtk-build-system)
8840 (native-inputs
8841 `(("pkg-config" ,pkg-config)
8842 ("gobject-introspection" ,gobject-introspection)
8843 ("vala" ,vala)))
8844 (inputs
8845 `(("glib" ,glib)
8846 ("libcanberra" ,libcanberra)))
8847 (home-page "https://wiki.gnome.org/Projects/GSound")
8848 (synopsis "GObject wrapper for libcanberra")
8849 (description
8850 "GSound is a small library for playing system sounds. It's designed to be
8851used via GObject Introspection, and is a thin wrapper around the libcanberra C
8852library.")
8853 (license license:lgpl2.1+)))
8854
3a9a4c51
RS
8855(define-public libzapojit
8856 (package
8857 (name "libzapojit")
8858 (version "0.0.3")
8859 (source (origin
8860 (method url-fetch)
8861 (uri (string-append "mirror://gnome/sources/" name "/"
8862 (version-major+minor version) "/"
8863 name "-" version ".tar.xz"))
8864 (sha256
8865 (base32
8866 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8867 (build-system gnu-build-system)
8868 (native-inputs
8869 `(("gobject-introspection" ,gobject-introspection)
8870 ("intltool" ,intltool)
8871 ("pkg-config" ,pkg-config)))
8872 (inputs
14c297fd 8873 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
3a9a4c51
RS
8874 ("json-glib" ,json-glib)
8875 ("rest" ,rest)))
8876 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8877 (synopsis "Library for accessing SkyDrive and Hotmail")
8878 (description
8879 "Libzapojit is a GLib-based library for accessing online service APIs of
8880Microsoft SkyDrive and Hotmail, using their REST protocols.")
8881 (license license:lgpl2.1+)))
9365ee1c 8882
60e2a9ae
MS
8883(define-public gnome-clocks
8884 (package
8885 (name "gnome-clocks")
feee5ff5 8886 (version "3.34.0")
60e2a9ae
MS
8887 (source (origin
8888 (method url-fetch)
8889 (uri (string-append "mirror://gnome/sources/" name "/"
8890 (version-major+minor version) "/"
8891 name "-" version ".tar.xz"))
8892 (sha256
8893 (base32
feee5ff5 8894 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
60e2a9ae
MS
8895 (build-system meson-build-system)
8896 (arguments
feee5ff5
KK
8897 '(#:glib-or-gtk? #t
8898 #:phases
8899 (modify-phases %standard-phases
8900 (add-after 'unpack 'skip-gtk-update-icon-cache
8901 ;; Don't create 'icon-theme.cache'.
8902 (lambda _
8903 (substitute* "build-aux/post-install.py"
8904 (("gtk-update-icon-cache") "true"))
8905 #t)))))
60e2a9ae
MS
8906 (native-inputs
8907 `(("vala" ,vala)
8908 ("pkg-config" ,pkg-config)
8909 ("glib" ,glib "bin") ; for glib-compile-resources
60e2a9ae
MS
8910 ("desktop-file-utils" ,desktop-file-utils)
8911 ("gettext" ,gettext-minimal)
8912 ("itstool" ,itstool)))
8913 (inputs
8914 `(("glib" ,glib)
8915 ("gtk+" ,gtk+)
8916 ("gsound" ,gsound)
8917 ("geoclue" ,geoclue)
8918 ("geocode-glib" ,geocode-glib)
8919 ("libgweather" ,libgweather)
8920 ("gnome-desktop" ,gnome-desktop)))
8921 (home-page "https://wiki.gnome.org/Apps/Clocks")
8922 (synopsis "GNOME's clock application")
8923 (description
8924 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8925desktop. It supports world clock, stop watch, alarms, and count down timer.")
8926 (license license:gpl3+)))
8927
3c474897
KY
8928(define-public gnome-calendar
8929 (package
8930 (name "gnome-calendar")
27dd1d76 8931 (version "3.34.2")
3c474897
KY
8932 (source (origin
8933 (method url-fetch)
8934 (uri (string-append "mirror://gnome/sources/" name "/"
8935 (version-major+minor version) "/"
8936 name "-" version ".tar.xz"))
8937 (sha256
8938 (base32
27dd1d76 8939 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
a49d3e37
MS
8940 (build-system meson-build-system)
8941 (arguments
8942 '(#:glib-or-gtk? #t
8943 ;; gnome-calendar has to be installed before the tests can be run
8944 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
27dd1d76
KK
8945 #:tests? #f
8946 #:phases
8947 (modify-phases %standard-phases
8948 (add-after 'unpack 'skip-gtk-update-icon-cache
8949 ;; Don't create 'icon-theme.cache'.
8950 (lambda _
8951 (substitute* "build-aux/meson/meson_post_install.py"
8952 (("gtk-update-icon-cache") "true"))
8953 #t)))))
3c474897 8954 (native-inputs
a49d3e37
MS
8955 `(("gettext" ,gettext-minimal)
8956 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
3c474897
KY
8957 ("pkg-config" ,pkg-config)))
8958 (inputs
27cb52a2 8959 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
a286b5eb
RW
8960 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8961 ("libdazzle" ,libdazzle)
b63c06f1 8962 ("libedataserverui" ,evolution-data-server)
a286b5eb
RW
8963 ("libgweather" ,libgweather)
8964 ("geoclue" ,geoclue)))
27cb52a2
RG
8965 (propagated-inputs
8966 `(("evolution-data-server" ,evolution-data-server)))
3c474897
KY
8967 (home-page "https://wiki.gnome.org/Apps/Calendar")
8968 (synopsis "GNOME's calendar application")
8969 (description
8970 "GNOME Calendar is a simple calendar application designed to fit the GNOME
a49d3e37 8971desktop. It supports multiple calendars, month, week and year view.")
3c474897
KY
8972 (license license:gpl3+)))
8973
57b14665
MS
8974(define-public gnome-todo
8975 (package
8976 (name "gnome-todo")
9f3c6c88 8977 (version "3.28.1")
57b14665
MS
8978 (source (origin
8979 (method url-fetch)
8980 (uri (string-append "mirror://gnome/sources/" name "/"
8981 (version-major+minor version) "/"
8982 name "-" version ".tar.xz"))
8983 (sha256
8984 (base32
b17b2945
DM
8985 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8986 (patches
8987 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
57b14665
MS
8988 (build-system meson-build-system)
8989 (arguments
8990 '(#:glib-or-gtk? #t
8991 #:phases (modify-phases %standard-phases
8992 (add-after
8993 'install 'wrap-gnome-todo
8994 (lambda* (#:key inputs outputs #:allow-other-keys)
8995 (let ((out (assoc-ref outputs "out"))
8996 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8997 (python-path (getenv "PYTHONPATH")))
8998 (wrap-program (string-append out "/bin/gnome-todo")
8999 ;; XXX: gi plugins are broken.
9000 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
9001 ;; For plugins.
9002 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9003 `("PYTHONPATH" ":" prefix (,python-path))))
9004 #t)))))
9005 (native-inputs
9006 `(("gettext" ,gettext-minimal)
9007 ("gobject-introspection" ,gobject-introspection)
9008 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9009 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9010 ("pkg-config" ,pkg-config)))
9011 (inputs
9012 `(("rest" ,rest) ; For Todoist plugin
9013 ("json-glib" ,json-glib) ; For Todoist plugin
b63c06f1 9014 ("libedataserverui" ,evolution-data-server)
57b14665
MS
9015 ("libical" ,libical)
9016 ("libpeas" ,libpeas)
9017 ("python-pygobject" ,python-pygobject)
9018 ("evolution-data-server" ,evolution-data-server)
14c297fd 9019 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
57b14665
MS
9020 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
9021 (home-page "https://wiki.gnome.org/Apps/Todo")
9022 (synopsis "GNOME's ToDo Application")
9023 (description
9024 "GNOME To Do is a simplistic personal task manager designed to perfectly
9025fit the GNOME desktop.")
9026 (license license:gpl3+)))
9027
ab179eaf
SB
9028(define-public gnome-dictionary
9029 (package
9030 (name "gnome-dictionary")
cf81ddef 9031 (version "3.26.1")
ab179eaf
SB
9032 (source (origin
9033 (method url-fetch)
9034 (uri (string-append "mirror://gnome/sources/" name "/"
9035 (version-major+minor version) "/"
9036 name "-" version ".tar.xz"))
9037 (sha256
9038 (base32
cf81ddef
LC
9039 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
9040 (build-system meson-build-system)
2776b5d5
MB
9041 (arguments '(#:glib-or-gtk? #t
9042 #:phases (modify-phases %standard-phases
9043 (add-after 'unpack 'patch-install-script
9044 (lambda _
9045 ;; This script attempts to compile glib schemas
9046 ;; and create an empty MIME database. We do
9047 ;; that elsewhere, so prevent it from running.
9048 (substitute* "build-aux/post-install.sh"
9049 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
9050 #t)))))
ab179eaf
SB
9051 (native-inputs
9052 `(("glib:bin" ,glib "bin")
9053 ("gobject-introspection" ,gobject-introspection)
9054 ("intltool" ,intltool)
9055 ("itstool" ,itstool)
9056 ("pkg-config" ,pkg-config)
9057 ("xmllint" ,libxml2)))
9058 (inputs
9059 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9060 ("gtk+" ,gtk+)))
9061 (home-page "https://wiki.gnome.org/Apps/Dictionary")
9062 (synopsis "Look up words in dictionary sources")
9063 (description
9064 "GNOME Dictionary can look for the definition or translation of a word in
9065existing databases over the internet.")
9066 (license license:gpl3+)))
9067
d13f3a03 9068(define-public gnome-tweaks
9365ee1c 9069 (package
d13f3a03 9070 (name "gnome-tweaks")
4add1bae 9071 (version "3.34.0")
9365ee1c
JN
9072 (source (origin
9073 (method url-fetch)
d13f3a03 9074 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
9365ee1c 9075 (version-major+minor version) "/"
d13f3a03
RW
9076 "gnome-tweaks-" version ".tar.xz"))
9077 (patches
9078 (list (search-patch "gnome-tweaks-search-paths.patch")))
9365ee1c
JN
9079 (sha256
9080 (base32
4add1bae 9081 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
d13f3a03 9082 (build-system meson-build-system)
9365ee1c 9083 (arguments
d13f3a03
RW
9084 `(#:glib-or-gtk? #t
9085 #:configure-flags '("-Dlocalstatedir=/tmp"
9086 "-Dsysconfdir=/tmp")
9365ee1c 9087 #:imported-modules ((guix build python-build-system)
d13f3a03
RW
9088 ,@%meson-build-system-modules)
9089 #:phases
9090 (modify-phases %standard-phases
4add1bae
KK
9091 (add-after 'unpack 'skip-gtk-update-icon-cache
9092 ;; Don't create 'icon-theme.cache'.
9093 (lambda _
9094 (substitute* "meson-postinstall.py"
9095 (("gtk-update-icon-cache") "true"))
9096 #t))
d13f3a03
RW
9097 (add-after 'install 'wrap
9098 (@@ (guix build python-build-system) wrap))
9099 (add-after 'wrap 'wrap-gi-typelib
9100 (lambda* (#:key inputs outputs #:allow-other-keys)
9101 (let ((out (assoc-ref outputs "out"))
9102 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9103 (wrap-program (string-append out "/bin/gnome-tweaks")
9104 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9105 #t)))))
9365ee1c 9106 (native-inputs
4add1bae 9107 `(("intltool" ,intltool)
9365ee1c
JN
9108 ("pkg-config" ,pkg-config)))
9109 (inputs
c7fc414e
RH
9110 `(("gnome-desktop" ,gnome-desktop)
9111 ("gtk+" ,gtk+)
9365ee1c
JN
9112 ("gobject-introspection" ,gobject-introspection)
9113 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4add1bae 9114 ("libhandy" ,libhandy)
c7fc414e
RH
9115 ("libnotify" ,libnotify)
9116 ("libsoup" ,libsoup)
9117 ("nautilus" ,nautilus)
9118 ("python" ,python)
9119 ("python-pygobject" ,python-pygobject)))
9365ee1c 9120 (synopsis "Customize advanced GNOME 3 options")
d13f3a03 9121 (home-page "https://wiki.gnome.org/Apps/Tweaks")
9365ee1c 9122 (description
d13f3a03 9123 "GNOME Tweaks allows adjusting advanced configuration settings in
9365ee1c
JN
9124GNOME 3. This includes things like the fonts used in user interface elements,
9125alternative user interface themes, changes in window management behavior,
9126GNOME Shell appearance and extension, etc.")
9127 (license license:gpl3+)))
813f814a 9128
32ac717c
DT
9129(define-public gnome-shell-extensions
9130 (package
9131 (name "gnome-shell-extensions")
c7305466 9132 (version "3.34.2")
32ac717c
DT
9133 (source (origin
9134 (method url-fetch)
9135 (uri (string-append "mirror://gnome/sources/" name "/"
9136 (version-major+minor version) "/"
9137 name "-" version ".tar.xz"))
9138 (sha256
9139 (base32
c7305466 9140 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
100f625b 9141 (build-system meson-build-system)
32ac717c 9142 (arguments
100f625b 9143 '(#:configure-flags '("-Dextension_set=all")))
32ac717c 9144 (native-inputs
c9ea8873
LP
9145 `(("glib:bin" ,glib "bin")
9146 ("intltool" ,intltool)
32ac717c
DT
9147 ("pkg-config" ,pkg-config)))
9148 (propagated-inputs
c9ea8873 9149 `(("glib" ,glib)))
32ac717c
DT
9150 (synopsis "Extensions for GNOME Shell")
9151 (description "GNOME Shell extensions modify and extend GNOME Shell
9152functionality and behavior.")
9153 (home-page "https://extensions.gnome.org/")
9154 (license license:gpl3+)))
9155
813f814a
DT
9156(define-public arc-theme
9157 (package
9158 (name "arc-theme")
37781323 9159 (version "20190917")
813f814a 9160 (source (origin
a18f8eaf
BH
9161 (method git-fetch)
9162 (uri (git-reference
b0e7b699 9163 (url "https://github.com/NicoHood/arc-theme")
a18f8eaf
BH
9164 (commit version)))
9165 (file-name (git-file-name name version))
813f814a
DT
9166 (sha256
9167 (base32
37781323 9168 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
813f814a 9169 (build-system gnu-build-system)
d88884fa
EF
9170 (arguments
9171 '(#:phases
9172 (modify-phases %standard-phases
9173 ;; autogen.sh calls configure at the end of the script.
9174 (replace 'bootstrap
4690e3a4
MC
9175 (lambda _ (invoke "autoreconf" "-vfi")))
9176 (add-before 'build 'set-home ;placate Inkscape
9177 (lambda _
9178 (setenv "HOME" (getcwd))
9179 #t)))))
813f814a
DT
9180 (native-inputs
9181 `(("autoconf" ,autoconf)
9182 ("automake" ,automake)
a18f8eaf
BH
9183 ("glib" ,glib "bin") ; for glib-compile-resources
9184 ("gnome-shell" ,gnome-shell)
9185 ("gtk+" ,gtk+)
9186 ("inkscape" ,inkscape)
9187 ("optipng" ,optipng)
9188 ("pkg-config" ,pkg-config)
bed24ecf 9189 ("sassc" ,sassc/libsass-3.5)))
813f814a
DT
9190 (synopsis "A flat GTK+ theme with transparent elements")
9191 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
91922, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
9193like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
9194 (home-page "https://github.com/horst3180/arc-theme")
9195 ;; No "or later" language found.
a18f8eaf 9196 (license license:gpl3+)))
9987c57c 9197
d935e6a1 9198(define-public faba-icon-theme
9987c57c 9199 (package
d935e6a1 9200 (name "faba-icon-theme")
2eee7ee3 9201 (version "4.3")
d935e6a1
BT
9202 (source
9203 (origin
757e4027
TGR
9204 (method git-fetch)
9205 (uri (git-reference
b0e7b699 9206 (url "https://github.com/snwh/faba-icon-theme")
757e4027
TGR
9207 (commit (string-append "v" version))))
9208 (file-name (git-file-name name version))
d935e6a1 9209 (sha256
757e4027 9210 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
f6a9b345 9211 (build-system meson-build-system)
9987c57c 9212 (arguments
82da291a 9213 `(#:phases
9987c57c 9214 (modify-phases %standard-phases
82da291a 9215 (add-before 'configure 'disable-post-install
9987c57c 9216 (lambda _
82da291a
JL
9217 (substitute* "meson.build"
9218 (("meson.add_install_script.*") "")))))))
9987c57c
DT
9219 (native-inputs
9220 `(("autoconf" ,autoconf)
9221 ("automake" ,automake)))
d935e6a1
BT
9222 (synopsis "Faba icon theme")
9223 (description
9224 "Faba is a minimal icon set used as a basis for other themes such as
9225Moka")
9226 (home-page "https://snwh.org/moka")
9227 (license (list license:lgpl3+
9228 license:cc-by-sa4.0))))
9229
9987c57c
DT
9230(define-public moka-icon-theme
9231 (package
8b0e4177 9232 (inherit faba-icon-theme)
9987c57c 9233 (name "moka-icon-theme")
105a3625 9234 (version "5.4.0")
8c3f2170
TGR
9235 (source
9236 (origin
9237 (method git-fetch)
9238 (uri (git-reference
b0e7b699 9239 (url "https://github.com/snwh/moka-icon-theme")
8c3f2170
TGR
9240 (commit (string-append "v" version))))
9241 (file-name (git-file-name name version))
9242 (sha256
9243 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
550281fb
BT
9244 (propagated-inputs
9245 ;; Moka is based on Faba by using it as a fallback icon set instead of
9246 ;; bundling it, so we need to add it as a propagated input.
9247 `(("faba-icon-theme" ,faba-icon-theme)))
9987c57c
DT
9248 (synopsis "Moka icon theme")
9249 (description "Moka is a stylized desktop icon set, designed to be clear,
9250simple and consistent.")
fedde43b
BT
9251 (license (list license:gpl3+
9252 license:cc-by-sa4.0))))
6fd8f8d6
DT
9253
9254(define-public arc-icon-theme
9255 (package
9256 (name "arc-icon-theme")
c4180240 9257 (version "20161122")
bbf66cbf
TGR
9258 (source
9259 (origin
9260 (method git-fetch)
9261 (uri (git-reference
b0e7b699 9262 (url "https://github.com/horst3180/arc-icon-theme")
bbf66cbf
TGR
9263 (commit version)))
9264 (file-name (git-file-name name version))
9265 (sha256
9266 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
6fd8f8d6 9267 (build-system gnu-build-system)
9e1ede95
JL
9268 (arguments
9269 `(#:phases
9270 (modify-phases %standard-phases
9271 (add-after 'unpack 'disable-configure-during-bootstrap
9272 (lambda _
9273 (substitute* "autogen.sh"
9274 (("^\"\\$srcdir/configure\".*") ""))
9275 #t)))))
6fd8f8d6
DT
9276 (native-inputs
9277 `(("autoconf" ,autoconf)
9278 ("automake" ,automake)))
9279 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
9280 (propagated-inputs
9281 `(("moka-icon-theme" ,moka-icon-theme)))
9282 (synopsis "Arc icon theme")
9283 (description "The Arc icon theme provides a set of icons matching the
9284style of the Arc GTK theme. Icons missing from the Arc theme are provided by
9285the Moka icon theme.")
9286 (home-page "https://github.com/horst3180/arc-icon-theme")
9287 (license license:gpl3+)))
6064a4e8
LF
9288
9289(define-public folks
9290 (package
9291 (name "folks")
fd11f6f3 9292 (version "0.13.1")
6064a4e8
LF
9293 (source (origin
9294 (method url-fetch)
9295 (uri (string-append
e5f4796e 9296 "mirror://gnome/sources/folks/"
6064a4e8 9297 (version-major+minor version) "/"
e5f4796e 9298 "folks-" version ".tar.xz"))
6064a4e8
LF
9299 (sha256
9300 (base32
fd11f6f3
KK
9301 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
9302 (build-system meson-build-system)
9303 (arguments
9304 '(#:phases
9305 (modify-phases %standard-phases
9306 (add-after 'unpack 'skip-gtk-update-icon-cache
9307 ;; Don't create 'icon-theme.cache'.
9308 (lambda _
9309 (substitute* "meson_post_install.py"
9310 (("gtk-update-icon-cache") "true"))
9311 #t)))))
6064a4e8
LF
9312 (inputs
9313 `(("bdb" ,bdb)
9314 ("dbus-glib" ,dbus-glib)
9315 ("evolution-data-server" ,evolution-data-server)
9316 ("glib" ,glib)
9317 ("libgee" ,libgee)
fd11f6f3 9318 ("readline" ,readline)
6064a4e8
LF
9319 ("telepathy-glib" ,telepathy-glib)))
9320 (native-inputs
fd11f6f3
KK
9321 `(("glib:bin" ,glib "bin")
9322 ("gobject-introspection" ,gobject-introspection)
6064a4e8
LF
9323 ("intltool" ,intltool)
9324 ("pkg-config" ,pkg-config)
9325 ("vala" ,vala)))
9326 (synopsis "Library to aggregate data about people")
9327 (description "Libfolks is a library that aggregates information about people
9328from multiple sources (e.g., Telepathy connection managers for IM contacts,
9329Evolution Data Server for local contacts, libsocialweb for web service contacts,
9330etc.) to create metacontacts. It's written in Vala, which generates C code when
9331compiled.")
9332 (home-page "https://wiki.gnome.org/Projects/Folks")
9333 (license license:lgpl2.1+)))
01ea778f
LF
9334
9335(define-public gfbgraph
9336 (package
9337 (name "gfbgraph")
556e33c8 9338 (version "0.2.4")
01ea778f
LF
9339 (source (origin
9340 (method url-fetch)
9341 (uri (string-append
237d4cf7 9342 "mirror://gnome/sources/gfbgraph/"
01ea778f 9343 (version-major+minor version) "/"
237d4cf7 9344 "gfbgraph-" version ".tar.xz"))
01ea778f
LF
9345 (sha256
9346 (base32
556e33c8 9347 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
01ea778f
LF
9348 (build-system glib-or-gtk-build-system)
9349 (arguments
492ad09f
TGR
9350 `(#:tests? #f ; tests appear to require the network
9351 #:configure-flags '("--disable-static"
9352 "--enable-gtk-doc"
01ea778f
LF
9353 "--enable-introspection")))
9354 (native-inputs
492ad09f
TGR
9355 `(("gobject-introspection" ,gobject-introspection)
9356 ("gtk-doc" ,gtk-doc)
556e33c8
TGR
9357 ("pkg-config" ,pkg-config)
9358
9359 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9360 ("autoconf" ,autoconf)
9361 ("automake" ,automake)
9362 ("libtool" ,libtool)
9363 ("which" ,which)))
01ea778f
LF
9364 (inputs
9365 `(("json-glib" ,json-glib)
14c297fd 9366 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
01ea778f
LF
9367 ("rest" ,rest)))
9368 (synopsis "GLib/GObject wrapper for the Facebook API")
9369 (description "This library allows you to use the Facebook API from
9370GLib/GObject code.")
9371 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9372 (license license:lgpl2.1+)))
3920868c 9373
9374(define-public libgnomekbd
9375 (package
9376 (name "libgnomekbd")
70f2b0f9 9377 (version "3.26.1")
3920868c 9378 (source (origin
9379 (method url-fetch)
d47fa82d 9380 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
3920868c 9381 (version-major+minor version) "/"
d47fa82d 9382 "libgnomekbd-" version ".tar.xz"))
3920868c 9383 (sha256
9384 (base32
70f2b0f9 9385 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
3920868c 9386 (build-system gnu-build-system)
9387 (native-inputs
9388 `(("pkg-config" ,pkg-config)
9389 ("glib" ,glib "bin")
9390 ("intltool" ,intltool)))
9391 (propagated-inputs
9392 ;; Referred to in .h files and .pc.
9393 `(("glib" ,glib)
9394 ("gtk+" ,gtk+)
9395 ("libxklavier" ,libxklavier)))
9396 (home-page "https://www.gnome.org")
9397 (synopsis "GNOME keyboard configuration library")
9398 (description
9399 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9400environment, which can notably display keyboard layouts.")
9401 (license license:lgpl2.0+)))
85327d0d 9402
9403;;; This package is no longer maintained:
9404;;; https://wiki.gnome.org/Attic/LibUnique
9405;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9406;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9407(define-public libunique
9408 (package
9409 (name "libunique")
9410 (version "3.0.2")
9411 (source (origin
9412 (method url-fetch)
9413 (uri (string-append "mirror://gnome/sources/" name "/"
9414 (version-major+minor version) "/"
9415 name "-" version ".tar.xz"))
9416 (sha256
9417 (base32
9418 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9419 (build-system glib-or-gtk-build-system)
9420 (arguments
9421 `(#:configure-flags '("--disable-static"
9422 "--disable-dbus" ; use gdbus
9423 "--enable-introspection")))
9424 (native-inputs
9425 `(("pkg-config" ,pkg-config)
9426 ("gobject-introspection" ,gobject-introspection)
9427 ("glib:bin" ,glib "bin")
9428 ("gtk-doc" ,gtk-doc)))
9429 (propagated-inputs
9430 ;; Referred to in .h files and .pc.
9431 `(("gtk+" ,gtk+)))
9432 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9433 (synopsis "Library for writing single instance applications")
9434 (description
9435 "Libunique is a library for writing single instance applications. If you
9436launch a single instance application twice, the second instance will either just
9437quit or will send a message to the running instance. Libunique makes it easy to
9438write this kind of application, by providing a base class, taking care of all
9439the IPC machinery needed to send messages to a running instance, and also
9440handling the startup notification side.")
9441 (license license:lgpl2.1+)))
54021cd8
RS
9442
9443(define-public gnome-calculator
9444 (package
9445 (name "gnome-calculator")
4cb09502 9446 (version "3.34.1")
54021cd8
RS
9447 (source
9448 (origin
9449 (method url-fetch)
9450 (uri (string-append "mirror://gnome/sources/" name "/"
9451 (version-major+minor version) "/"
9452 name "-" version ".tar.xz"))
9453 (sha256
9454 (base32
4cb09502 9455 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
2d475910
RW
9456 (build-system meson-build-system)
9457 (arguments '(#:glib-or-gtk? #t))
54021cd8 9458 (native-inputs
4cb09502
MB
9459 `(("gettext" ,gettext-minimal)
9460 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
2d475910 9461 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
54021cd8 9462 ("itstool" ,itstool)
2d475910 9463 ("vala" ,vala)
54021cd8
RS
9464 ("pkg-config" ,pkg-config)))
9465 (inputs
112e9083 9466 `(("glib" ,glib)
07ace641 9467 ("gtksourceview" ,gtksourceview)
4cb09502 9468 ("libgee" ,libgee)
54021cd8 9469 ("libsoup" ,libsoup)
112e9083 9470 ("libxml2" ,libxml2)
2c2da7ec 9471 ("mpc" ,mpc)
54021cd8
RS
9472 ("mpfr" ,mpfr)))
9473 (home-page "https://wiki.gnome.org/Apps/Calculator")
9474 (synopsis "Desktop calculator")
9475 (description
9476 "Calculator is an application that solves mathematical equations and
9477is suitable as a default application in a Desktop environment.")
9478 (license license:gpl3)))
0bd69759
RS
9479
9480(define-public xpad
9481 (package
9482 (name "xpad")
c85626bb 9483 (version "5.1.0")
0bd69759
RS
9484 (source
9485 (origin
9486 (method url-fetch)
08fda9c6
R
9487 (uri (string-append "https://launchpad.net/xpad/trunk/"
9488 version "/+download/"
0bd69759
RS
9489 name "-" version ".tar.bz2"))
9490 (sha256
9491 (base32
c85626bb 9492 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
0bd69759
RS
9493 (build-system gnu-build-system)
9494 (native-inputs
08fda9c6
R
9495 `(("autoconf" ,autoconf)
9496 ("automake" ,automake)
9497 ("gtk+:bin" ,gtk+ "bin")
9498 ("intltool" ,intltool)
0bd69759
RS
9499 ("pkg-config" ,pkg-config)))
9500 (inputs
c72647fb 9501 `(("gtksourceview" ,gtksourceview-3)
0bd69759
RS
9502 ("libsm" ,libsm)))
9503 (home-page "https://wiki.gnome.org/Apps/Xpad")
9504 (synopsis "Virtual sticky note")
9505 (description
9506 "Xpad is a sticky note that strives to be simple, fault tolerant,
9507and customizable. Xpad consists of independent pad windows, each is
9508basically a text box in which notes can be written.")
9509 (license license:gpl3+)))
3ad7dce1
RS
9510
9511(define-public gucharmap
c60063ea
RW
9512 (let ((unicode-files
9513 '(("Blocks.txt"
1f8b5515 9514 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
c60063ea 9515 ("DerivedAge.txt"
1f8b5515 9516 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
c60063ea 9517 ("NamesList.txt"
1f8b5515 9518 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
c60063ea 9519 ("Scripts.txt"
1f8b5515 9520 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
c60063ea 9521 ("UnicodeData.txt"
1f8b5515 9522 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
c60063ea 9523 ("Unihan.zip"
1f8b5515 9524 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
c60063ea
RW
9525 (package
9526 (name "gucharmap")
1f8b5515 9527 (version "12.0.1")
c60063ea
RW
9528 (source
9529 (origin
9530 (method url-fetch)
9531 (uri (string-append "mirror://gnome/sources/" name "/"
9532 (version-major+minor version) "/"
9533 name "-" version ".tar.xz"))
9534 (sha256
9535 (base32
1f8b5515 9536 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
c60063ea
RW
9537 (build-system glib-or-gtk-build-system)
9538 (arguments
9539 `(#:modules ((ice-9 match)
9540 (guix build glib-or-gtk-build-system)
9541 (guix build utils))
9542 #:configure-flags
9543 (list "--with-unicode-data=../unicode-data")
9544 #:phases
9545 (modify-phases %standard-phases
9546 (add-after 'unpack 'prepare-unicode-data
9547 (lambda* (#:key inputs #:allow-other-keys)
9548 (mkdir-p "../unicode-data")
9549 (with-directory-excursion "../unicode-data"
9550 (for-each (match-lambda
9551 ((file _)
9552 (install-file (assoc-ref inputs file) ".")))
9553 ',unicode-files))
9554 #t)))))
9555 (native-inputs
9556 `(("desktop-file-utils" ,desktop-file-utils)
9557 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9558 ("gobject-introspection" ,gobject-introspection)
9559 ("intltool" ,intltool)
9560 ("itstool" ,itstool)
9561 ("pkg-config" ,pkg-config)
9562 ,@(map (match-lambda
9563 ((file hash)
9564 `(,file
9565 ,(origin
9566 (method url-fetch)
9567 (uri (string-append
1f8b5515 9568 "http://www.unicode.org/Public/12.0.0/ucd/"
c60063ea
RW
9569 file))
9570 (sha256 (base32 hash))))))
9571 unicode-files)
9572 ("unzip" ,unzip)))
9573 (inputs
9574 `(("gtk+" ,gtk+)
9575 ("xmllint" ,libxml2)))
9576 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9577 (synopsis "Unicode character picker and font browser")
9578 (description
9579 "This program allows you to browse through all the available Unicode
3ad7dce1
RS
9580characters and categories for the installed fonts, and to examine their
9581detailed properties. It is an easy way to find the character you might
9582only know by its Unicode name or code point.")
c60063ea 9583 (license license:gpl3+))))
04ce840a
RS
9584
9585(define-public bluefish
9586 (package
9587 (name "bluefish")
290fe81d 9588 (version "2.2.11")
04ce840a
RS
9589 (source
9590 (origin
9591 (method url-fetch)
9592 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
99aa7a2d 9593 "bluefish-" version ".tar.gz"))
04ce840a 9594 (sha256
290fe81d 9595 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
04ce840a
RS
9596 (build-system gnu-build-system)
9597 (native-inputs
9598 `(("desktop-file-utils" ,desktop-file-utils)
9599 ("intltool" ,intltool)
9600 ("pkg-config" ,pkg-config)))
9601 (inputs
9602 `(("enchant" ,enchant)
9603 ("gtk+" ,gtk+)
290fe81d 9604 ("python" ,python-wrapper)
04ce840a
RS
9605 ("xmllint" ,libxml2)
9606 ("gucharmap" ,gucharmap)))
9607 (home-page "http://bluefish.openoffice.nl")
9608 (synopsis "Web development studio")
9609 (description
9610 "Bluefish is an editor targeted towards programmers and web developers,
9611with many options to write web sites, scripts and other code.
9612Bluefish supports many programming and markup languages.")
9613 (license license:gpl3+)))
1f6a73ee
RS
9614
9615(define-public gnome-system-monitor
9616 (package
9617 (name "gnome-system-monitor")
083cffaf 9618 (version "3.32.1")
1f6a73ee
RS
9619 (source
9620 (origin
9621 (method url-fetch)
9622 (uri (string-append "mirror://gnome/sources/" name "/"
9623 (version-major+minor version) "/"
9624 name "-" version ".tar.xz"))
9625 (sha256
9626 (base32
083cffaf 9627 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
85fb3df3
RW
9628 (build-system meson-build-system)
9629 (arguments
9630 '(#:glib-or-gtk? #t
9631 #:configure-flags '("-Dsystemd=false")))
1f6a73ee
RS
9632 (native-inputs
9633 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
85fb3df3 9634 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
1f6a73ee
RS
9635 ("intltool" ,intltool)
9636 ("itstool" ,itstool)
9637 ("libgtop" ,libgtop)
4985d9aa 9638 ("polkit" ,polkit)
1f6a73ee
RS
9639 ("pkg-config" ,pkg-config)))
9640 (inputs
9641 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
9642 ("gtk+" ,gtk+)
9643 ("gtkmm" ,gtkmm)
9644 ("librsvg" ,librsvg)
4985d9aa
RW
9645 ("libxml2" ,libxml2)
9646 ("libwnck" ,libwnck)))
1f6a73ee
RS
9647 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
9648 (synopsis "Process viewer and system resource monitor for GNOME")
9649 (description
9650 "GNOME System Monitor is a GNOME process viewer and system monitor with
9651an attractive, easy-to-use interface. It has features, such as a tree view
9652for process dependencies, icons for processes, the ability to hide processes,
9653graphical time histories of CPU/memory/swap usage and the ability to
9654kill/reinice processes.")
9655 (license license:gpl2+)))
3e00ac47
SB
9656
9657(define-public python-pyatspi
9658 (package
9659 (name "python-pyatspi")
4f937a32 9660 (version "2.34.0")
3e00ac47
SB
9661 (source (origin
9662 (method url-fetch)
9663 (uri (string-append
9664 "mirror://gnome/sources/pyatspi/"
9665 (version-major+minor version)
9666 "/pyatspi-" version ".tar.xz"))
9667 (sha256
9668 (base32
4f937a32 9669 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
3e00ac47 9670 (build-system gnu-build-system)
b95af3f6
JL
9671 (arguments
9672 `(#:phases
9673 (modify-phases %standard-phases
9674 (add-before 'build 'fix-atk-load
9675 (lambda _
9676 (substitute* "pyatspi/__init__.py"
9677 (("from gi.repository import Atspi")
9678 "gi.require_version('Gtk', '3.0')
9679from gi.repository import Gtk
9680from gi.repository import Atspi"))
9681 #t)))))
3e00ac47
SB
9682 (native-inputs
9683 `(("pkg-config" ,pkg-config)))
9684 (inputs
06fe35cf
CB
9685 `(("python" ,python)))
9686 (propagated-inputs
9687 `(("python-pygobject" ,python-pygobject)))
3e00ac47
SB
9688 (synopsis "Python client bindings for D-Bus AT-SPI")
9689 (home-page "https://wiki.linuxfoundation.org/accessibility\
9690/atk/at-spi/at-spi_on_d-bus")
9691 (description
9692 "This package includes a python client library for the AT-SPI D-Bus
9693accessibility infrastructure.")
9694 (license license:lgpl2.0)
9695 (properties '((upstream-name . "pyatspi")))))
53201c0d 9696
5d31933e
CB
9697(define-public python2-pyatspi
9698 (package
9699 (inherit python-pyatspi)
9700 (name "python2-pyatspi")
9701 (inputs
06fe35cf
CB
9702 `(("python" ,python-2)))
9703 (propagated-inputs
9704 `(("python-pygobject" ,python2-pygobject)))))
5d31933e 9705
53201c0d
SB
9706(define-public orca
9707 (package
9708 (name "orca")
30e76da1 9709 (version "3.34.1")
53201c0d
SB
9710 (source (origin
9711 (method url-fetch)
9712 (uri (string-append
9713 "mirror://gnome/sources/" name "/"
9714 (version-major+minor version) "/"
9715 name "-" version ".tar.xz"))
9716 (sha256
9717 (base32
30e76da1 9718 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
53201c0d
SB
9719 (build-system glib-or-gtk-build-system)
9720 (arguments
9721 '(#:phases
9722 (modify-phases %standard-phases
9723 (add-before 'configure 'qualify-xkbcomp
9724 (lambda* (#:key inputs #:allow-other-keys)
9725 (let ((xkbcomp (string-append
9726 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9727 (substitute* "src/orca/orca.py"
9728 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9729 #t))
9730 (add-after 'install 'wrap-orca
9731 (lambda* (#:key outputs #:allow-other-keys)
9732 (let* ((out (assoc-ref outputs "out"))
9733 (prog (string-append out "/bin/orca")))
9734 (wrap-program prog
9735 `("GI_TYPELIB_PATH" ":" prefix
9736 (,(getenv "GI_TYPELIB_PATH")))
9737 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9738 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9739 `("PYTHONPATH" ":" prefix
9740 (,(getenv "PYTHONPATH")))))
9741 #t)))))
9742 (native-inputs
9743 `(("intltool" ,intltool)
9744 ("itstool" ,itstool)
9745 ("pkg-config" ,pkg-config)
9746 ("xmllint" ,libxml2)))
9747 (inputs
9748 `(("at-spi2-atk" ,at-spi2-atk)
9749 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9750 ("gstreamer" ,gstreamer)
9751 ("gst-plugins-base" ,gst-plugins-base)
9752 ("gst-plugins-good" ,gst-plugins-good)
9753 ("gtk+" ,gtk+)
9754 ("python" ,python)
9755 ("python-pygobject" ,python-pygobject)
9756 ("python-pyatspi" ,python-pyatspi)
9757 ("python-speechd" ,speech-dispatcher)
9758 ("xkbcomp" ,xkbcomp)))
9759 (synopsis
9760 "Screen reader for individuals who are blind or visually impaired")
9761 (home-page "https://wiki.gnome.org/Projects/Orca")
9762 (description
9763 "Orca is a screen reader that provides access to the graphical desktop
9764via speech and refreshable braille. Orca works with applications and toolkits
9765that support the Assistive Technology Service Provider Interface (AT-SPI).")
9766 (license license:lgpl2.1+)))
411ba511
LC
9767
9768(define-public gspell
9769 (package
9770 (name "gspell")
7a6bbe9b 9771 (version "1.8.2")
411ba511
LC
9772 (source (origin
9773 (method url-fetch)
9774 (uri (string-append "mirror://gnome/sources/" name "/"
9775 (version-major+minor version) "/"
9776 name "-" version ".tar.xz"))
9777 (sha256
9778 (base32
7a6bbe9b 9779 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
411ba511
LC
9780 (patches (search-patches "gspell-dash-test.patch"))))
9781 (build-system glib-or-gtk-build-system)
9782 (arguments
d0f50164 9783 '(#:configure-flags (list "--enable-vala")
9784 #:phases
411ba511
LC
9785 (modify-phases %standard-phases
9786 (add-before 'check 'pre-check
9787 (lambda* (#:key inputs #:allow-other-keys)
9788 ;; Tests require a running X server.
9789 (system "Xvfb :1 &")
9790 (setenv "DISPLAY" ":1")
9791
9792 ;; For the missing /etc/machine-id.
9793 (setenv "DBUS_FATAL_WARNINGS" "0")
9794
9795 ;; Allow Enchant and its Aspell backend to find the en_US
9796 ;; dictionary.
9797 (setenv "ASPELL_DICT_DIR"
9798 (string-append (assoc-ref inputs "aspell-dict-en")
9799 "/lib/aspell"))
9800 #t)))))
9801 (inputs
eccd35be 9802 `(("gtk+" ,gtk+)
a801ae4c
TGR
9803 ("glib" ,glib)
9804 ("iso-codes" ,iso-codes)))
411ba511
LC
9805 (native-inputs
9806 `(("glib" ,glib "bin")
26ba3f07 9807 ("gobject-introspection" ,gobject-introspection)
411ba511 9808 ("pkg-config" ,pkg-config)
d0f50164 9809 ("vala" ,vala) ;for VAPI, needed by Geary
411ba511
LC
9810 ("xmllint" ,libxml2)
9811
9812 ;; For tests.
a801ae4c 9813 ("aspell-dict-en" ,aspell-dict-en)
ff337525 9814 ("xorg-server" ,xorg-server-for-tests)))
eccd35be 9815 (propagated-inputs
9b1bb757 9816 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
411ba511
LC
9817 (home-page "https://wiki.gnome.org/Projects/gspell")
9818 (synopsis "GNOME's alternative spell checker")
9819 (description
9820 "gspell provides a flexible API to add spell-checking to a GTK+
9821application. It provides a GObject API, spell-checking to text entries and
9822text views, and buttons to choose the language.")
9823 (license license:gpl2+)))
d1d739fa
CM
9824
9825(define-public gnome-planner
9826 (package
9827 (name "gnome-planner")
9828 (version "0.14.6")
9829 (source (origin
9830 (method url-fetch)
9831 (uri (string-append "mirror://gnome/sources/planner/"
9832 (version-major+minor version) "/planner-"
9833 version ".tar.xz"))
9834 (sha256
9835 (base32
9836 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9837 (build-system glib-or-gtk-build-system)
9838 (arguments
9839 ;; Disable the Python bindings because the Planner program functions
9840 ;; without them, and (as of 2017-06-13) we have not packaged all of
9841 ;; packages that are necessary for building the Python bindings.
20b7b75c
EF
9842 `(#:configure-flags
9843 (list "--disable-python"
9844 ,@(if (string=? "aarch64-linux" (%current-system))
9845 '("--build=aarch64-unknown-linux-gnu")
9846 '()))))
d1d739fa
CM
9847 (inputs
9848 `(("libgnomecanvas" ,libgnomecanvas)
9849 ("libgnomeui" ,libgnomeui)
9850 ("libglade" ,libglade)
9851 ("gnome-vfs" ,gnome-vfs)
9852 ("gconf" ,gconf)
9853 ("libxml2" ,libxml2)
9854 ("libxslt" ,libxslt)
9855 ("gtk+" ,gtk+)
9856 ("glib" ,glib)))
9857 (native-inputs
9858 `(("intltool" ,intltool)
9859 ("scrollkeeper" ,scrollkeeper)
9860 ("pkg-config" ,pkg-config)))
9861 (home-page "https://wiki.gnome.org/Apps/Planner")
9862 (synopsis "Project management software for the GNOME desktop")
9863 (description
9864 "GNOME Planner is a project management tool based on the Work Breakdown
9865Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9866the resources, tasks, and constraints that you define, Planner generates
9867various views into a project. For example, Planner can show a Gantt chart of
9868the project. It can show a detailed summary of tasks including their
9869duration, cost, and current progress. It can also show a report of resource
9870utilization that highlights under-utilized and over-utilized resources. These
9871views can be printed as PDF or PostScript files, or exported to HTML.")
4b926cb6 9872 (license license:gpl2+)))
64fce637
RS
9873
9874(define-public lollypop
9875 (package
9876 (name "lollypop")
24b5d8f7 9877 (version "1.2.32")
64fce637
RS
9878 (source
9879 (origin
9880 (method url-fetch)
24b5d8f7 9881 (uri (string-append "https://adishatz.org/lollypop/"
3275d43d 9882 "lollypop-" version ".tar.xz"))
64fce637 9883 (sha256
24b5d8f7 9884 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
aa498fc0 9885 (build-system meson-build-system)
64fce637 9886 (arguments
7a9543d7
TGR
9887 `(#:imported-modules
9888 (,@%meson-build-system-modules
9889 (guix build python-build-system))
9890 #:modules
9891 ((guix build meson-build-system)
9892 ((guix build python-build-system) #:prefix python:)
9893 (guix build utils))
aa498fc0 9894 #:glib-or-gtk? #t
7a9543d7 9895 #:tests? #f ; no test suite
5fc9b6c1
EF
9896 #:phases
9897 (modify-phases %standard-phases
5fc9b6c1
EF
9898 (add-after 'install 'wrap-program
9899 (lambda* (#:key outputs #:allow-other-keys)
9900 (let ((out (assoc-ref outputs "out"))
9901 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9902 (wrap-program (string-append out "/bin/lollypop")
9903 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9904 #t))
8ac8b3b3 9905 (add-after 'install 'wrap-python
7a9543d7 9906 (assoc-ref python:%standard-phases 'wrap)))))
64fce637
RS
9907 (native-inputs
9908 `(("intltool" ,intltool)
9909 ("itstool" ,itstool)
aa498fc0
TD
9910 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9911 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
64fce637
RS
9912 ("pkg-config" ,pkg-config)))
9913 (inputs
9914 `(("gobject-introspection" ,gobject-introspection)
8ac8b3b3 9915 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5fc9b6c1 9916 ("gst-plugins-base" ,gst-plugins-base)
64fce637
RS
9917 ("libnotify" ,libnotify)
9918 ("libsecret" ,libsecret)
9919 ("libsoup" ,libsoup)
9920 ("python" ,python)
9921 ("python-beautifulsoup4" ,python-beautifulsoup4)
9922 ("python-gst" ,python-gst)
d029afdd 9923 ("python-pil" ,python-pillow)
64fce637 9924 ("python-pycairo" ,python-pycairo)
cc9c83c5 9925 ("python-pygobject" ,python-pygobject)
64fce637
RS
9926 ("python-pylast" ,python-pylast)
9927 ("totem-pl-parser" ,totem-pl-parser)
9928 ("webkitgtk" ,webkitgtk)))
9929 (propagated-inputs
9930 `(;; gst-plugins-base is required to start Lollypop,
9931 ;; the others are required to play streaming.
64fce637
RS
9932 ("gst-plugins-good" ,gst-plugins-good)
9933 ("gst-plugins-ugly" ,gst-plugins-ugly)))
b98eace8 9934 (home-page "https://wiki.gnome.org/Apps/Lollypop")
64fce637
RS
9935 (synopsis "GNOME music playing application")
9936 (description
9937 "Lollypop is a music player designed to play well with GNOME desktop.
9938Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9939from artists and tracks from the web. It also fetches cover artworks
9940automatically and it can stream songs from online music services and charts.")
9941 (license license:gpl3+)))
d831d49d
AW
9942
9943(define-public gnome-video-effects
9944 (package
9945 (name "gnome-video-effects")
9946 (version "0.4.3")
9947 (source (origin
9948 (method url-fetch)
9949 (uri (string-append "mirror://gnome/sources/" name "/"
9950 (version-major+minor version) "/" name "-"
9951 version ".tar.xz"))
9952 (sha256
9953 (base32
9954 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9955 (build-system glib-or-gtk-build-system)
9956 (arguments
9957 `(#:out-of-source? #f))
9958 (native-inputs
9959 `(("glib:bin" ,glib "bin")
9960 ("intltool" ,intltool)
9961 ("gettext" ,gettext-minimal)
9962 ("pkg-config" ,pkg-config)))
9963 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9964 (synopsis "Video effects for Cheese and other GNOME applications")
9965 (description
9966 "A collection of GStreamer video filters and effects to be used in
9967photo-booth-like software, such as Cheese.")
9968 (license license:gpl2+)))
3511c780
AW
9969
9970(define-public cheese
9971 (package
9972 (name "cheese")
3a7e066f 9973 (version "3.34.0")
3511c780
AW
9974 (source (origin
9975 (method url-fetch)
9976 (uri (string-append "mirror://gnome/sources/" name "/"
9977 (version-major+minor version) "/" name "-"
9978 version ".tar.xz"))
9979 (sha256
9980 (base32
3a7e066f 9981 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
3511c780 9982 (arguments
3a7e066f
KK
9983 `(#:glib-or-gtk? #t
9984 ;; Tests require GDK.
9985 #:tests? #f
3511c780
AW
9986 #:phases
9987 (modify-phases %standard-phases
3a7e066f 9988 (add-after 'unpack 'skip-gtk-update-icon-cache
3511c780
AW
9989 (lambda _
9990 ;; Don't create 'icon-theme.cache'
3a7e066f 9991 (substitute* "meson_post_install.py"
3511c780
AW
9992 (("gtk-update-icon-cache") (which "true")))
9993 #t))
9994 (add-after 'install 'wrap-cheese
9995 (lambda* (#:key inputs outputs #:allow-other-keys)
9996 (let ((out (assoc-ref outputs "out"))
9997 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9998 (wrap-program (string-append out "/bin/cheese")
9999 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10000 #t)))))
3a7e066f 10001 (build-system meson-build-system)
3511c780 10002 (native-inputs
3a7e066f
KK
10003 `(("docbook-xsl" ,docbook-xsl)
10004 ("glib:bin" ,glib "bin")
10005 ("gtk-doc" ,gtk-doc)
3511c780
AW
10006 ("intltool" ,intltool)
10007 ("itstool" ,itstool)
10008 ("libxml2" ,libxml2)
3a7e066f 10009 ("libxslt" ,libxslt)
3511c780
AW
10010 ("pkg-config" ,pkg-config)
10011 ("vala" ,vala)))
10012 (propagated-inputs
6a19f03e
RW
10013 `(("gnome-video-effects" ,gnome-video-effects)
10014 ("clutter" ,clutter)
3511c780
AW
10015 ("clutter-gst" ,clutter-gst)
10016 ("clutter-gtk" ,clutter-gtk)
6a19f03e 10017 ("libcanberra" ,libcanberra)
3511c780
AW
10018 ("gdk-pixbuf" ,gdk-pixbuf)
10019 ("glib" ,glib)
6a19f03e
RW
10020 ("gstreamer" ,gstreamer)))
10021 (inputs
10022 `(("gnome-desktop" ,gnome-desktop)
3511c780 10023 ("gobject-introspection" ,gobject-introspection)
3511c780
AW
10024 ("gst-plugins-base" ,gst-plugins-base)
10025 ("gst-plugins-bad" ,gst-plugins-bad)
10026 ("gtk+" ,gtk+)
3511c780
AW
10027 ("libx11" ,libx11)
10028 ("libxtst" ,libxtst)))
10029 (home-page "https://wiki.gnome.org/Apps/Cheese")
10030 (synopsis "Webcam photo booth software for GNOME")
10031 (description
10032 "Cheese uses your webcam to take photos and videos. Cheese can also
10033apply fancy special effects and lets you share the fun with others.")
10034 (license license:gpl2+)))
3c5dbd2b 10035
10036(define-public sound-juicer
10037 (package
10038 (name "sound-juicer")
10039 (version "3.24.0")
10040 (source
10041 (origin
10042 (method url-fetch)
10043 (uri (string-append "mirror://gnome/sources/" name "/"
10044 (version-major+minor version) "/"
10045 name "-" version ".tar.xz"))
10046 (sha256
10047 (base32
10048 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
10049 (build-system glib-or-gtk-build-system)
10050 (native-inputs
10051 `(("desktop-file-utils" ,desktop-file-utils)
10052 ("intltool" ,intltool)
10053 ("itstool" ,itstool)
10054 ("pkg-config" ,pkg-config)
10055 ("xmllint" ,libxml2)))
10056 (inputs
10057 `(("gtk+" ,gtk+)
10058 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10059 ("gstreamer" ,gstreamer)
10060 ("gst-plugins-base" ,gst-plugins-base)
10061 ("gst-plugins-good" ,gst-plugins-good)
10062 ("iso-codes" ,iso-codes)
10063 ("libbrasero-media3" ,brasero)
10064 ("libcanberra" ,libcanberra)
10065 ("libdiscid" ,libdiscid)
10066 ("libmusicbrainz" ,libmusicbrainz)
10067 ("neon" ,neon)))
10068 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
10069 (synopsis "Audio music cd ripper")
10070 (description "Sound Juicer extracts audio from compact discs and convert it
10071into audio files that a personal computer or digital audio player can play.
10072It supports ripping to any audio codec supported by a GStreamer plugin, such as
10073mp3, Ogg Vorbis and FLAC")
10074 (license license:gpl2+)))
4e3fdeb7 10075
0d3f1708
CB
10076(define-public soundconverter
10077 (package
10078 (name "soundconverter")
7f4b45a3 10079 (version "3.0.2")
0d3f1708
CB
10080 (source
10081 (origin
10082 (method url-fetch)
10083 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
10084 version "/+download/"
10085 "soundconverter-" version ".tar.xz"))
10086
10087 (sha256
7f4b45a3 10088 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
0d3f1708
CB
10089 (build-system glib-or-gtk-build-system)
10090 (arguments
10091 `(#:imported-modules ((guix build python-build-system)
10092 (guix build glib-or-gtk-build-system)
10093 ,@%gnu-build-system-modules)
10094
10095 #:modules ((guix build glib-or-gtk-build-system)
10096 (guix build utils)
10097 ((guix build gnu-build-system) #:prefix gnu:)
10098 ((guix build python-build-system) #:prefix python:))
10099
10100 #:phases
10101 (modify-phases %standard-phases
0d3f1708
CB
10102 (add-after 'install 'wrap-soundconverter-for-python
10103 (assoc-ref python:%standard-phases 'wrap))
10104 (add-after 'install 'wrap-soundconverter
10105 (lambda* (#:key inputs outputs #:allow-other-keys)
10106 (let ((out (assoc-ref outputs "out"))
10107 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
10108 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10109 (wrap-program (string-append out "/bin/soundconverter")
10110 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
10111 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10112 #t)))))
10113 (native-inputs
10114 `(("intltool" ,intltool)
10115 ("pkg-config" ,pkg-config)
10116 ("glib:bin" ,glib "bin")))
10117 (inputs
10118 `(("gtk+" ,gtk+)
10119 ("python" ,python)
10120 ("python-pygobject" ,python-pygobject)
10121 ("gstreamer" ,gstreamer)
10122 ("gst-plugins-base" ,gst-plugins-base)))
e42399e8 10123 (home-page "https://soundconverter.org/")
0d3f1708
CB
10124 (synopsis "Convert between audio formats with a graphical interface")
10125 (description
10126 "SoundConverter supports converting between many audio formats including
10127Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
10128configurable file renaming. ")
10129 (license license:gpl3)))
10130
4e3fdeb7 10131(define-public workrave
89f2d736
TGR
10132 (package
10133 (name "workrave")
52fc6508 10134 (version "1.10.42")
89f2d736
TGR
10135 (source
10136 (origin
10137 (method git-fetch)
10138 (uri (git-reference
b0e7b699 10139 (url "https://github.com/rcaelers/workrave")
c2e50474
TGR
10140 (commit (string-append "v" (string-map
10141 (match-lambda (#\. #\_) (chr chr))
10142 version)))))
89f2d736
TGR
10143 (file-name (git-file-name name version))
10144 (sha256
52fc6508 10145 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
89f2d736 10146 (build-system glib-or-gtk-build-system)
1b9e1648
TGR
10147 (arguments
10148 ;; The only tests are maintainer tests (in po/), which fail.
10149 `(#:tests? #f))
d1c96847
MC
10150 (inputs `(("glib" ,glib)
10151 ("gtk+" ,gtk+)
10152 ("gdk-pixbuf" ,gdk-pixbuf)
10153 ("gtkmm" ,gtkmm)
10154 ("glibmm" ,glibmm)
10155 ("libx11" ,libx11)
10156 ("libxtst" ,libxtst)
10157 ("dconf" ,dconf)
10158 ("libice" ,libice)
10159 ("libsm" ,libsm)
10160 ("libxscrnsaver" ,libxscrnsaver)))
aa51d92c 10161 (native-inputs `(("boost" ,boost)
89f2d736 10162 ("pkg-config" ,pkg-config)
f2d97d57 10163 ("gettext" ,gettext-minimal)
89f2d736
TGR
10164 ("autoconf" ,autoconf)
10165 ("autoconf-archive" , autoconf-archive)
10166 ("automake" ,automake)
10167 ("libtool" ,libtool)
10168 ("intltool" ,intltool)
89f2d736 10169 ("gobject-introspection" ,gobject-introspection)
aa51d92c
MC
10170 ("python3" ,python-3)
10171 ("python-jinja2" ,python-jinja2)))
89f2d736
TGR
10172 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
10173 (description
10174 "Workrave is a program that assists in the recovery and prevention of
cc00249b
TGR
10175repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
10176micro-pauses and rest breaks, and restricts you to your daily limit.")
89f2d736
TGR
10177 (home-page "http://www.workrave.org")
10178 (license license:gpl3+)))
312afa7d
LC
10179
10180(define-public ghex
10181 (package
10182 (name "ghex")
3748992a 10183 (version "3.18.4")
312afa7d
LC
10184 (source (origin
10185 (method url-fetch)
2fbab848 10186 (uri (string-append "mirror://gnome/sources/ghex/"
312afa7d 10187 (version-major+minor version) "/"
2fbab848 10188 "ghex-" version ".tar.xz"))
312afa7d
LC
10189 (sha256
10190 (base32
3748992a
KK
10191 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
10192 (build-system meson-build-system)
10193 (arguments
10194 '(#:glib-or-gtk? #t
10195 #:phases
10196 (modify-phases %standard-phases
10197 (add-after 'unpack 'skip-gtk-update-icon-cache
10198 ;; Don't create 'icon-theme.cache'.
10199 (lambda _
10200 (substitute* "meson_post_install.py"
10201 (("gtk-update-icon-cache") (which "true")))
10202 #t)))))
312afa7d
LC
10203 (native-inputs
10204 `(("pkg-config" ,pkg-config)
3748992a 10205 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
312afa7d
LC
10206 ("gnome-common" ,gnome-common)
10207 ("which" ,which)
10208 ("intltool" ,intltool)
10209 ("yelp-tools" ,yelp-tools)
2fbab848 10210 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
312afa7d
LC
10211 (inputs
10212 `(("atk" ,atk)
10213 ("gtk" ,gtk+)))
10214 (synopsis "GNOME hexadecimal editor")
10215 (description "The GHex program can view and edit files in two ways:
10216hexadecimal or ASCII. It is useful for editing binary files in general.")
10217 (home-page "https://wiki.gnome.org/Apps/Ghex")
10218 (license license:gpl2)))
4b2ed6c2
RW
10219
10220(define-public libdazzle
10221 (package
10222 (name "libdazzle")
c94db354 10223 (version "3.34.1")
4b2ed6c2
RW
10224 (source (origin
10225 (method url-fetch)
687b4909 10226 (uri (string-append "mirror://gnome/sources/libdazzle/"
4b2ed6c2 10227 (version-major+minor version) "/"
687b4909 10228 "libdazzle-" version ".tar.xz"))
4b2ed6c2
RW
10229 (sha256
10230 (base32
c94db354 10231 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
4b2ed6c2
RW
10232 (build-system meson-build-system)
10233 (arguments
10234 `(#:phases
10235 (modify-phases %standard-phases
4b2ed6c2
RW
10236 (add-before 'check 'pre-check
10237 (lambda _
10238 ;; Tests require a running X server.
10239 (system "Xvfb :1 &")
10240 (setenv "DISPLAY" ":1")
10241 #t)))))
10242 (native-inputs
687b4909 10243 `(("glib" ,glib "bin") ; glib-compile-resources
4b2ed6c2 10244 ("pkg-config" ,pkg-config)
687b4909 10245 ;; For tests.
ff337525 10246 ("xorg-server" ,xorg-server-for-tests)))
4b2ed6c2
RW
10247 (inputs
10248 `(("glib" ,glib)
10249 ("gobject-introspection" ,gobject-introspection)
10250 ("gtk+" ,gtk+)
10251 ("vala" ,vala)))
10252 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
10253 (synopsis "Companion library to GObject and Gtk+")
10254 (description "The libdazzle library is a companion library to GObject and
10255Gtk+. It provides various features that the authors wish were in the
10256underlying library but cannot for various reasons. In most cases, they are
10257wildly out of scope for those libraries. In other cases, they are not quite
10258generic enough to work for everyone.")
10259 (license license:gpl3+)))
7d3bb433
RW
10260
10261(define-public evolution
10262 (package
10263 (name "evolution")
0662fe86 10264 (version "3.34.2")
7d3bb433
RW
10265 (source (origin
10266 (method url-fetch)
10267 (uri (string-append "mirror://gnome/sources/evolution/"
10268 (version-major+minor version) "/"
10269 "evolution-" version ".tar.xz"))
10270 (sha256
10271 (base32
0662fe86 10272 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
7d3bb433
RW
10273 (build-system cmake-build-system)
10274 (arguments
5229bea1
KK
10275 `(#:imported-modules (,@%cmake-build-system-modules
10276 (guix build glib-or-gtk-build-system))
10277 #:modules ((guix build cmake-build-system)
10278 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10279 (guix build utils))
10280 #:configure-flags
7d3bb433 10281 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
5229bea1 10282 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
7d3bb433 10283 ; in four years and cannot be built.
5229bea1
KK
10284 #:phases
10285 (modify-phases %standard-phases
10286 ;; The build system attempts to install user interface modules to the
10287 ;; output directory of the "evolution-data-server" package. This
10288 ;; change redirects that change.
10289 (add-after 'unpack 'patch-ui-module-dir
10290 (lambda* (#:key outputs #:allow-other-keys)
10291 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
10292 (("\\$\\{edsuimoduledir\\}")
10293 (string-append (assoc-ref outputs "out")
10294 "/lib/evolution-data-server/ui-modules")))
10295 #t))
10296 (add-after 'install 'glib-or-gtk-compile-schemas
10297 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
10298 (add-after 'install 'glib-or-gtk-wrap
10299 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
7d3bb433 10300 (native-inputs
ad6e168b 10301 `(("glib" ,glib "bin") ; glib-mkenums
7d3bb433
RW
10302 ("pkg-config" ,pkg-config)
10303 ("intltool" ,intltool)
10304 ("itstool" ,itstool)))
10305 (inputs
10306 `(("enchant" ,enchant)
10307 ("evolution-data-server" ,evolution-data-server) ; must be the same version
10308 ("gcr" ,gcr)
ad6e168b 10309 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7d3bb433
RW
10310 ("gnome-autoar" ,gnome-autoar)
10311 ("gnome-desktop" ,gnome-desktop)
0662fe86 10312 ("gspell" ,gspell)
7d3bb433
RW
10313 ("highlight" ,highlight)
10314 ("libcanberra" ,libcanberra)
10315 ("libgweather" ,libgweather)
10316 ("libnotify" ,libnotify)
10317 ("libsoup" ,libsoup)
10318 ("nss" ,nss)
10319 ("openldap" ,openldap)
10320 ("webkitgtk" ,webkitgtk)
10321 ("ytnef" ,ytnef)))
10322 (home-page "https://gitlab.gnome.org/GNOME/evolution")
10323 (synopsis "Manage your email, contacts and schedule")
10324 (description "Evolution is a personal information management application
10325that provides integrated mail, calendaring and address book
10326functionality.")
10327 ;; See COPYING for details.
23dbe621 10328 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
7d3bb433 10329 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
23dbe621 10330 license:lgpl2.1+)))) ; smime/lib/*
169d63f5
AT
10331
10332(define-public gthumb
10333 (package
10334 (name "gthumb")
8280676b 10335 (version "3.8.2")
169d63f5
AT
10336 (source (origin
10337 (method url-fetch)
10338 (uri (string-append "mirror://gnome/sources/gthumb/"
10339 (version-major+minor version) "/"
10340 "gthumb-" version ".tar.xz"))
10341 (sha256
10342 (base32
8280676b 10343 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
169d63f5
AT
10344 (build-system meson-build-system)
10345 (arguments
10346 `(#:glib-or-gtk? #t
10347 #:configure-flags
10348 ;; Ensure the RUNPATH contains all installed library locations.
10349 (list (string-append "-Dc_link_args=-Wl,-rpath="
10350 (assoc-ref %outputs "out")
10351 "/lib/gthumb/extensions")
10352 (string-append "-Dcpp_link_args=-Wl,-rpath="
10353 (assoc-ref %outputs "out")
10354 "/lib/gthumb/extensions"))))
10355 (native-inputs
10356 `(("pkg-config" ,pkg-config)
10357 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10358 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10359 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10360 ("intltool" ,intltool)
10361 ("itstool" ,itstool)))
10362 (inputs
10363 `(("exiv2" ,exiv2)
10364 ("gtk" ,gtk+)
10365 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10366 ("gstreamer" ,gstreamer)
10367 ("clutter" ,clutter)
10368 ("clutter-gst" ,clutter-gst)
10369 ("clutter-gtk" ,clutter-gtk)
4bd428a7 10370 ("libjpeg" ,libjpeg-turbo)
169d63f5
AT
10371 ("libtiff" ,libtiff)
10372 ("libraw" ,libraw)))
10373 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10374 (synopsis "GNOME image viewer and browser")
10375 (description "GThumb is an image viewer, browser, organizer, editor and
10376advanced image management tool")
10377 (license license:gpl2+)))
08be02be
AT
10378
10379(define-public terminator
10380 (package
10381 (name "terminator")
10382 (version "1.91")
10383 (source (origin
10384 (method url-fetch)
10385 (uri (string-append "https://launchpad.net/" name "/"
10386 "gtk3/" version "/" "+download/"
10387 name "-" version ".tar.gz"))
10388 (sha256
10389 (base32
10390 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
10391 (build-system python-build-system)
10392 (native-inputs
10393 `(("intltool" ,intltool)
10394 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10395 ("gettext" ,gettext-minimal)
10396 ("pkg-config" ,pkg-config)))
10397 (inputs
10398 `(("cairo" ,cairo)
10399 ("gobject-introspection" ,gobject-introspection)
96681d4b 10400 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
08be02be
AT
10401 ("python2-pycairo" ,python2-pycairo)
10402 ("python2-pygobject" ,python2-pygobject)
10403 ("python2-psutil" ,python2-psutil)
10404 ("vte" ,vte)))
10405 (arguments
96681d4b
TGR
10406 `(#:python ,python-2 ; Python 3 isn't supported
10407 #:imported-modules ((guix build glib-or-gtk-build-system)
10408 ,@%python-build-system-modules)
10409 #:modules ((guix build python-build-system)
10410 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10411 (guix build utils))
08be02be
AT
10412 #:phases
10413 (modify-phases %standard-phases
10414 (add-after
10415 'install 'wrap-program
10416 (lambda* (#:key outputs #:allow-other-keys)
10417 (let ((prog (string-append (assoc-ref outputs "out")
10418 "/bin/terminator")))
10419 (wrap-program prog
10420 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
10421 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
96681d4b
TGR
10422 #t)))
10423 (add-after 'wrap-program 'glib-or-gtk-wrap
10424 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
08be02be
AT
10425 (home-page "https://gnometerminator.blogspot.com/")
10426 (synopsis "Store and run multiple GNOME terminals in one window")
10427 (description
10428 "Terminator allows you to run multiple GNOME terminals in a grid and
10429+tabs, and it supports drag and drop re-ordering of terminals.")
10430 (license license:gpl2)))
213315d4
JF
10431
10432(define-public libhandy
10433 (package
10434 (name "libhandy")
f6501b9f 10435 (version "0.0.12")
213315d4
JF
10436 (source
10437 (origin
10438 (method git-fetch)
10439 (uri (git-reference
10440 (url "https://source.puri.sm/Librem5/libhandy")
10441 (commit (string-append "v" version))))
10442 (file-name (git-file-name name version))
10443 (sha256
f6501b9f 10444 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
213315d4
JF
10445 (build-system meson-build-system)
10446 (arguments
10447 `(#:configure-flags
10448 '("-Dglade_catalog=disabled"
10449 "-Dgtk_doc=true")
10450 #:phases
10451 (modify-phases %standard-phases
213315d4
JF
10452 (add-before 'check 'pre-check
10453 (lambda _
10454 ;; Tests require a running X server.
10455 (system "Xvfb :1 &")
10456 (setenv "DISPLAY" ":1")
10457 #t)))))
10458 (inputs
10459 `(("gtk+" ,gtk+)))
10460 (native-inputs
10461 `(("glib:bin" ,glib "bin")
10462 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10463 ("vala" ,vala)
10464 ("gtk-doc" ,gtk-doc)
10465 ("pkg-config" ,pkg-config)
10466 ("gettext" ,gettext-minimal)
d41ee146
TGR
10467
10468 ;; Test suite dependencies.
ff337525 10469 ("xorg-server" ,xorg-server-for-tests)
d41ee146 10470 ("hicolor-icon-theme" ,hicolor-icon-theme)))
213315d4
JF
10471 (home-page "https://source.puri.sm/Librem5/libhandy")
10472 (synopsis "Library full of GTK+ widgets for mobile phones")
10473 (description "The aim of the handy library is to help with developing user
ae4e1414
JB
10474interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10475for usage on small and big screens.")
213315d4 10476 (license license:lgpl2.1+)))
a830d14d
GL
10477
10478(define-public libgit2-glib
10479 (package
10480 (name "libgit2-glib")
6448c2e1 10481 (version "0.99.0.1")
a830d14d
GL
10482 (source (origin
10483 (method url-fetch)
10484 (uri (string-append "mirror://gnome/sources/" name "/"
10485 (version-major+minor version) "/"
10486 name "-" version ".tar.xz"))
10487 (sha256
10488 (base32
6448c2e1 10489 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
a830d14d
GL
10490 (build-system meson-build-system)
10491 (native-inputs
10492 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10493 ("gobject-introspection" ,gobject-introspection)
a830d14d
GL
10494 ("pkg-config" ,pkg-config)
10495 ("python-pygobject" ,python-pygobject)
10496 ("python-wrapper" ,python-wrapper)
10497 ("vala" ,vala)))
10498 (inputs
10499 `(("glib" ,glib)
8c6aae46
MB
10500 ("libssh2" ,libssh2)))
10501 (propagated-inputs
10502 `(;; In Requires of libgit2-glib.pc.
a830d14d
GL
10503 ("libgit2" ,libgit2)))
10504 (synopsis "GLib wrapper around the libgit2 Git access library")
10505 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10506access library. It only implements the core plumbing functions, not really the
10507higher level porcelain stuff.")
10508 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10509 (license license:gpl2+)))
93beace0 10510
08db81c9
LP
10511(define-public gitg
10512 (package
10513 (name "gitg")
10514 (version "3.32.1")
10515 (source (origin
10516 (method url-fetch)
10517 (uri (string-append "mirror://gnome/sources/" name "/"
10518 (version-major+minor version) "/"
10519 name "-" version ".tar.xz"))
10520 (sha256
10521 (base32
10522 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10523 (build-system meson-build-system)
10524 (arguments
10525 `(#:glib-or-gtk? #t
10526 #:phases
10527 (modify-phases %standard-phases
10528 (add-after 'unpack 'disable-post-install-partially
10529 (lambda _
10530 (substitute* "meson_post_install.py"
10531 (("'python'") ; there are no python sources to compile
10532 (string-append "'" (which "true") "'"))
10533 (("gtk-update-icon-cache") (which "true")))
10534 #t))
10535 (add-after 'unpack 'fix-test-sources
10536 (lambda _
10537 (substitute* "tests/libgitg/test-commit.vala"
10538 (("/bin/bash") (which "bash")))
10539 #t))
10540 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10541 (lambda* (#:key outputs #:allow-other-keys)
10542 (let ((prog (string-append (assoc-ref outputs "out")
10543 "/bin/gitg")))
10544 (wrap-program prog
10545 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10546 #t))))))
10547 (inputs
10548 `(("glib" ,glib)
10549 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10550 ("gtk+" ,gtk+)
10551 ("gtkspell3" ,gtkspell3)
10552 ("gtksourceview" ,gtksourceview-3)
10553 ("json-glib" ,json-glib)
10554 ("libdazzle" ,libdazzle)
10555 ("libgee" ,libgee)
08db81c9
LP
10556 ("libgit2-glib" ,libgit2-glib)
10557 ("libpeas" ,libpeas)
10558 ("libsecret" ,libsecret)
10559 ("libsoup" ,libsoup)
10560 ("libxml2" ,libxml2)))
10561 (native-inputs
10562 `(("glib:bin" ,glib "bin")
10563 ("gtk+:bin" ,gtk+ "bin")
10564 ("gobject-introspection" ,gobject-introspection)
10565 ("intltool" ,intltool)
10566 ("pkg-config" ,pkg-config)
10567 ("vala" ,vala)))
10568 (synopsis "Graphical user interface for git")
10569 (description
10570 "gitg is a graphical user interface for git. It aims at being a small,
10571fast and convenient tool to visualize the history of git repositories.
10572Besides visualization, gitg also provides several utilities to manage your
10573repository and commit your work.")
10574 (home-page "https://wiki.gnome.org/Apps/Gitg")
10575 (license license:gpl2+)))
10576
1e600ed0
RW
10577(define-public gamin
10578 (package
10579 (name "gamin")
10580 (version "0.1.10")
10581 (source (origin
10582 (method url-fetch)
10583 (uri (string-append "mirror://gnome/sources/" name "/"
10584 (version-major+minor version) "/"
10585 name "-" version ".tar.bz2"))
10586 (sha256
10587 (base32
10588 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
10589 (build-system gnu-build-system)
10590 (arguments
10591 `(#:phases
10592 (modify-phases %standard-phases
10593 (add-after 'unpack 'remove-deprecated-macro
10594 (lambda _
10595 (substitute* '("server/gam_node.c"
10596 "server/gam_subscription.h"
10597 "server/gam_node.h"
10598 "server/gam_subscription.c")
10599 (("G_CONST_RETURN") "const"))
10600 #t)))))
10601 (inputs
10602 `(("glib" ,glib)))
10603 (native-inputs
10604 `(("intltool" ,intltool)
10605 ("pkg-config" ,pkg-config)))
10606 (home-page "https://people.gnome.org/~veillard/gamin/")
10607 (synopsis "File alteration monitor")
10608 (description
10609 "Gamin is a file and directory monitoring system defined to be a subset
10610of the FAM (File Alteration Monitor) system. This is a service provided by a
bddd877f 10611library which detects when a file or a directory has been modified.")
1e600ed0
RW
10612 (license license:gpl2+)))
10613
93beace0
DW
10614(define-public gnome-mahjongg
10615 (package
10616 (name "gnome-mahjongg")
10617 (version "3.35.1")
10618 (source (origin
10619 (method git-fetch)
10620 (uri (git-reference
10621 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
10622 (commit version)))
10623 (file-name (git-file-name name version))
10624 (sha256
10625 (base32
10626 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
10627 (build-system meson-build-system)
10628 (arguments
10629 `(#:glib-or-gtk? #t))
10630 (native-inputs
10631 `(("appstream-glib" ,appstream-glib)
10632 ("gettext" ,gettext-minimal)
10633 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
10634 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
10635 ("itstool" ,itstool)
10636 ("pkg-config" ,pkg-config)
10637 ("vala" ,vala)))
10638 (propagated-inputs
10639 `(("dconf" ,dconf)))
10640 (inputs
10641 `(("glib" ,glib)
10642 ("gtk+" ,gtk+)
10643 ("librsvg" ,librsvg)))
10644 (synopsis "Mahjongg tile-matching game")
10645 (description "GNOME Mahjongg is a game based on the classic Chinese
10646tile-matching game Mahjong. It features multiple board layouts, tile themes,
10647and a high score table.")
10648 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
10649 (license license:gpl2+)))
f825476c 10650
76ea7632
RG
10651(define-public gnome-themes-extra
10652 (package
10653 (name "gnome-themes-extra")
10654 (version "3.28")
10655 (source
10656 (origin
10657 (method url-fetch)
10658 (uri (string-append "mirror://gnome/sources/" name "/"
10659 (version-major+minor version) "/" name "-"
10660 version ".tar.xz"))
10661 (sha256
10662 (base32
10663 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10664 (build-system gnu-build-system)
885424bf
RG
10665 (arguments
10666 '(#:configure-flags
10667 ;; Don't create 'icon-theme.cache'.
10668 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
10669 (true (string-append coreutils "/bin/true")))
10670 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
76ea7632
RG
10671 (native-inputs
10672 `(("glib:bin" ,glib "bin")
10673 ("intltool" ,intltool)
10674 ("pkg-config" ,pkg-config)))
10675 (inputs
10676 `(("glib" ,glib)
10677 ("gtk+" ,gtk+)
10678 ("gtk+-2" ,gtk+-2)
10679 ("librsvg" ,librsvg)
10680 ("libxml2" ,libxml2)))
10681 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
10682 (synopsis "GNOME Extra Themes")
10683 (description "This package provides themes and related elements that don't
10684really fit in other upstream packages. It offers legacy support for GTK+ 2
10685versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
10686index files needed for Adwaita to be used outside of GNOME.")
10687 (license license:lgpl2.1+)))
10688
f825476c
LP
10689(define-public polari
10690 (package
10691 (name "polari")
10692 (version "3.32.2")
10693 (source (origin
10694 (method url-fetch)
10695 (uri (string-append "mirror://gnome/sources/polari/"
10696 (version-major+minor version)
10697 "/polari-" version ".tar.xz"))
10698 (sha256
10699 (base32
10700 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10701 (build-system meson-build-system)
10702 (arguments
10703 `(#:glib-or-gtk? #t
10704 #:phases
10705 (modify-phases %standard-phases
10706 (add-after 'unpack 'skip-gtk-update-icon-cache
10707 (lambda _
10708 (substitute* "meson/meson-postinstall.sh"
10709 (("gtk-update-icon-cache") (which "true")))
10710 #t))
10711 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10712 (lambda* (#:key outputs #:allow-other-keys)
10713 (let ((prog (string-append (assoc-ref outputs "out")
10714 "/bin/polari")))
10715 (wrap-program prog
10716 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10717 #t))))))
10718 (inputs
10719 `(("glib" ,glib)
10720 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10721 ("gspell" ,gspell)
10722 ("gtk+" ,gtk+)
10723 ("gjs" ,gjs)
10724 ("libsecret" ,libsecret)
10725 ("libsoup" ,libsoup)
10726 ("telepathy-glib" ,telepathy-glib)
10727 ("telepathy-logger" ,telepathy-logger)))
10728 (native-inputs
10729 `(("glib:bin" ,glib "bin")
10730 ("gobject-introspection" ,gobject-introspection)
10731 ("intltool" ,intltool)
10732 ("pkg-config" ,pkg-config)
10733 ("yelp-tools" ,yelp-tools)))
10734 (propagated-inputs
10735 `(("telepathy-idle" ,telepathy-idle)
10736 ("telepathy-mission-control" ,telepathy-mission-control)))
10737 (synopsis "Simple IRC Client")
10738 (description
10739 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10740integrate seamlessly with the GNOME desktop.")
10741 (home-page "https://wiki.gnome.org/Apps/Polari")
10742 (license license:gpl2+)))
59d4c8c2
PN
10743
10744(define-public gnome-boxes
10745 (package
10746 (name "gnome-boxes")
915c2ad3 10747 (version "3.36.6")
59d4c8c2
PN
10748 (source
10749 (origin
10750 (method url-fetch)
10751 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10752 (version-major+minor version) "/"
10753 "gnome-boxes-" version ".tar.xz"))
10754 (sha256
915c2ad3 10755 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
59d4c8c2
PN
10756 (build-system meson-build-system)
10757 (arguments
10758 '(#:glib-or-gtk? #t
10759 #:configure-flags (list "-Drdp=false"
10760 (string-append "-Dc_link_args=-Wl,-rpath="
10761 (assoc-ref %outputs "out")
10762 "/lib/gnome-boxes"))))
10763 (native-inputs
10764 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10765 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10766 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10767 ("itstool" ,itstool)
10768 ("intltool" ,intltool)
10769 ("vala" ,vala)
10770 ("pkg-config" ,pkg-config)))
10771 (inputs
10772 `(("libarchive" ,libarchive)
f0d7897e
MC
10773 ("glib-networking" ,glib-networking) ;for TLS support
10774 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
59d4c8c2
PN
10775 ("gtk" ,gtk+)
10776 ("gtk-vnc" ,gtk-vnc)
10777 ("libosinfo" ,libosinfo)
10778 ("libsecret" ,libsecret)
10779 ("libsoup" ,libsoup)
10780 ("libusb" ,libusb)
10781 ("libvirt" ,libvirt)
10782 ("libvirt-glib" ,libvirt-glib)
10783 ("libxml" ,libxml2)
10784 ("spice-gtk" ,spice-gtk)
10785 ("sparql-query" ,sparql-query)
10786 ("vte" ,vte)
10787 ("webkitgtk" ,webkitgtk)
10788 ("tracker" ,tracker)
10789 ("libgudev" ,libgudev)))
10790 (home-page "https://wiki.gnome.org/Apps/Boxes")
10791 (synopsis "View, access, and manage remote and virtual systems")
10792 (description "GNOME Boxes is a simple application to view, access, and
f0d7897e
MC
10793manage remote and virtual systems. Note that this application requires the
10794@code{libvirt} and @code{virtlog} daemons to run. Use the command
10795@command{info '(guix) Virtualization Services'} to learn how to configure
10796these services on the Guix System.")
59d4c8c2
PN
10797 (license (list
10798 ;; For data/icons/empty-boxes.png.
10799 license:cc-by2.0
10800 ;; For all others.
10801 license:lgpl2.0+))))
0e26c3cf 10802
10803(define-public geary
10804 (package
10805 (name "geary")
10806 (version "3.34.1")
10807 (source (origin
10808 (method git-fetch)
10809 (uri (git-reference
10810 (url "https://gitlab.gnome.org/GNOME/geary")
10811 (commit version)))
10812 (file-name (git-file-name name version))
10813 (sha256
10814 (base32
10815 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10816 (build-system meson-build-system)
10817 (arguments
10818 `(#:glib-or-gtk? #t
10819 #:phases (modify-phases %standard-phases
10820 (add-after 'unpack 'disable-failing-tests
10821 (lambda _
10822 (substitute* "test/meson.build"
10823 (("test\\('client-tests', geary_test_client_bin\\)")
10824 ""))
10825 #t))
10826 (add-after 'unpack 'disable-postinstall-script
10827 (lambda _
10828 (substitute* "meson.build"
10829 (("meson.add_install_script\\(\
10830join_paths\\('build-aux', 'post_install.py'\\)\\)")
10831 ""))
10832 #t))
10833 (add-before 'check 'setup-xvfb
10834 (lambda _
10835 (system "Xvfb :1 &")
10836 (setenv "DISPLAY" ":1")
10837 #t)))))
10838 (inputs
10839 `(("enchant" ,enchant)
10840 ("folks" ,folks)
10841 ("gcr" ,gcr)
10842 ("glib" ,glib)
10843 ("gmime" ,gmime-2.6)
10844 ("gnome-online-accounts:lib"
10845 ,gnome-online-accounts "lib")
10846 ("gspell" ,gspell)
10847 ("gtk+" ,gtk+)
10848 ("iso-codes" ,iso-codes)
10849 ("json-glib" ,json-glib)
10850 ("libcanberra" ,libcanberra)
10851 ("libgee" ,libgee)
10852 ("libhandy" ,libhandy)
10853 ("libpeas" ,libpeas)
10854 ("libsecret" ,libsecret)
10855 ("libunwind" ,libunwind)
10856 ("sqlite" ,sqlite)
10857 ("webkitgtk" ,webkitgtk)
10858 ("ytnef" ,ytnef)))
10859 (native-inputs
10860 `(("appstream-glib" ,appstream-glib)
10861 ("cmake-minimal" ,cmake-minimal)
10862 ("desktop-file-utils" ,desktop-file-utils)
f2d97d57 10863 ("gettext" ,gettext-minimal)
0e26c3cf 10864 ("glib:bin" ,glib "bin")
10865 ("gobject-introspection" ,gobject-introspection)
10866 ("itstool" ,itstool)
10867 ("libarchive" ,libarchive)
10868 ("libxml2" ,libxml2)
10869 ("pkg-config" ,pkg-config)
10870 ("vala" ,vala)
10871 ("xvfb" ,xorg-server-for-tests)))
10872 (synopsis "GNOME email application built around conversations")
10873 (description
10874 "Geary collects related messages together into conversations,
10875making it easy to find and follow your discussions. Full-text and keyword
10876search makes it easy to find the email you are looking for. Geary's
10877full-featured composer lets you send rich, styled text with images, links, and
10878lists, but also send lightweight, easy to read text messages. Geary
10879automatically picks up your existing GNOME Online Accounts, and adding more is
10880easy. Geary has a clean, fast, modern interface that works like you want it
10881to.")
10882 (home-page "https://wiki.gnome.org/Apps/Geary")
10883 (license (list
10884 ;; geary
10885 license:lgpl2.1+
10886 ;; icons
10887 license:cc-by3.0
10888 license:cc-by-sa3.0
10889 license:public-domain
10890 ;; snowball
10891 license:bsd-2))))
1a17d21b 10892
21051eb7
VM
10893(define-public glabels
10894 (package
10895 (name "glabels")
10896 (version "3.4.1")
10897 (source
10898 (origin
10899 (method url-fetch)
10900 (uri (string-append "mirror://gnome/sources/" name "/"
10901 (version-major+minor version) "/"
10902 "glabels-" version ".tar.xz"))
10903 (sha256
10904 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10905 (build-system glib-or-gtk-build-system)
10906 (native-inputs
10907 `(("gettext" ,gettext-minimal)
10908 ("glib:bin" ,glib "bin")
10909 ("intltool" ,intltool)
10910 ("itstool" ,itstool)
10911 ("pkg-config" ,pkg-config)))
10912 (inputs
10913 `(("gtk+" ,gtk+)
10914 ("librsvg" ,librsvg)
10915 ("libxml2" ,libxml2)))
10916 (home-page "https://glabels.org/")
10917 (synopsis "Program for creating labels and business cards")
10918 (description
10919 "gLabels is a program for creating labels and business cards. It is
10920designed to work with various laser/ink-jet peel-off label and business
10921card sheets that you’ll find at most office supply stores.")
10922 (license license:gpl3+)))
10923
2cd1de32
BT
10924(define-public libratbag
10925 (package
10926 (name "libratbag")
10927 (version "0.13")
10928 (source
10929 (origin
10930 (method git-fetch)
10931 (uri (git-reference
b0e7b699 10932 (url "https://github.com/libratbag/libratbag")
2cd1de32
BT
10933 (commit (string-append "v" version))))
10934 (file-name (git-file-name name version))
10935 (sha256
10936 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10937 (build-system meson-build-system)
10938 (arguments
10939 `(#:configure-flags
10940 (list "-Dsystemd=false"
10941 "-Dlogind-provider=elogind")
10942 #:phases
10943 (modify-phases %standard-phases
10944 (add-after 'install 'wrap
10945 (lambda* (#:key inputs outputs #:allow-other-keys)
10946 (let* ((out (assoc-ref outputs "out"))
10947 (site (string-append
10948 "/lib/python"
10949 ,(version-major+minor (package-version python))
10950 "/site-packages"))
10951 (evdev (string-append
10952 (assoc-ref inputs "python-evdev") site))
10953 (pygo (string-append
10954 (assoc-ref inputs "python-pygobject") site))
10955 (python-wrap
10956 `("PYTHONPATH" = (,evdev ,pygo))))
10957 (wrap-program (string-append out "/bin/" "ratbagctl")
10958 python-wrap)
10959 #t))))))
10960 (native-inputs
10961 `(("check" ,check)
10962 ("pkg-config" ,pkg-config)
10963 ("swig" ,swig)
10964 ("valgrind" ,valgrind)))
10965 (inputs
10966 `(("glib" ,glib)
10967 ("json-glib" ,json-glib)
10968 ("libevdev" ,libevdev)
10969 ("libsystemd" ,elogind)
10970 ("libunistring" ,libunistring)
10971 ("python-evdev" ,python-evdev)
10972 ("python-pygobject" ,python-pygobject)
10973 ("udev" ,eudev)))
10974 (home-page "https://github.com/libratbag/libratbag")
10975 (synopsis "DBus daemon and utility for configuring gaming mice")
10976 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10977configure input devices, mainly gaming mice. The daemon provides a generic
10978way to access the various features exposed by these mice and abstracts away
10979hardware-specific and kernel-specific quirks. There is also the
10980@command{ratbagctl} command line interface for configuring devices.
10981
10982libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10983Steelseries.
10984
10985The ratbagd DBus service can be enabled by adding the following service to
10986your operating-system definition:
10987
10988 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10989 (license license:expat)))
10990
50d31a40
BT
10991(define-public piper
10992 (package
10993 (name "piper")
73014984 10994 (version "0.5")
50d31a40
BT
10995 (source
10996 (origin
10997 (method git-fetch)
10998 (uri (git-reference
b0e7b699 10999 (url "https://github.com/libratbag/piper")
50d31a40
BT
11000 (commit version)))
11001 (sha256
81af0de9
TGR
11002 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
11003 (file-name (git-file-name name version))))
50d31a40
BT
11004 (build-system meson-build-system)
11005 (native-inputs
11006 `(("gettext" ,gettext-minimal)
11007 ("glib:bin" ,glib "bin")
11008 ("gobject-introspection" ,gobject-introspection)
11009 ("pkg-config" ,pkg-config)
11010 ("python-flake8" ,python-flake8)))
11011 (inputs
11012 `(("adwaita-icon-theme" ,adwaita-icon-theme)
11013 ("gtk" ,gtk+)
11014 ("gtk:bin" ,gtk+ "bin")
11015 ("librsvg" ,librsvg)
11016 ("python-evdev" ,python-evdev)
11017 ("python-lxml" ,python-lxml)
11018 ("python-pycairo" ,python-pycairo)
11019 ("python-pygobject" ,python-pygobject)))
11020 (arguments
11021 `(#:imported-modules ((guix build python-build-system)
11022 ,@%meson-build-system-modules)
11023 #:modules (((guix build python-build-system) #:prefix python:)
11024 (guix build meson-build-system)
11025 (guix build utils))
11026 #:phases
11027 (modify-phases %standard-phases
11028 (add-after 'unpack 'dont-update-gtk-icon-cache
11029 (lambda _
11030 (substitute* "meson.build"
11031 (("meson.add_install_script('meson_install.sh')") ""))
11032 #t))
11033 ;; TODO: Switch to wrap-script when it is fixed.
11034 (add-after 'install 'wrap-python
11035 (assoc-ref python:%standard-phases 'wrap))
11036 (add-after 'wrap-python 'wrap
11037 (lambda* (#:key outputs #:allow-other-keys)
11038 (wrap-program
11039 (string-append (assoc-ref outputs "out" )"/bin/piper")
11040 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
11041 #t)))))
11042 (home-page "https://github.com/libratbag/piper/")
11043 (synopsis "Configure bindings and LEDs on gaming mice")
11044 (description "Piper is a GTK+ application for configuring gaming mice with
11045onboard configuration for key bindings via libratbag. Piper requires
11046a @command{ratbagd} daemon running with root privileges. It can be run
11047manually as root, but is preferably configured as a DBus service that can
11048launch on demand. This can be configured by enabling the following service,
11049provided there is a DBus service present:
11050
11051 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
11052 (license license:gpl2)))
11053
1a17d21b 11054(define-public parlatype
c10fb9fd
NG
11055 (package
11056 (name "parlatype")
11057 (version "2.1")
11058 (source
11059 (origin
11060 (method git-fetch)
11061 (uri (git-reference
11062 (url "https://github.com/gkarsay/parlatype.git")
11063 (commit (string-append "v" version))))
11064 (file-name (git-file-name name version))
11065 (sha256
11066 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
11067 (build-system meson-build-system)
11068 (arguments
11069 `(#:glib-or-gtk? #t
11070 #:tests? #f ;require internet access
11071 #:phases
11072 (modify-phases %standard-phases
11073 (add-after 'install 'wrap-parlatype
11074 ;; Add gstreamer plugin provided in this package to system's
11075 ;; plugins.
11076 (lambda* (#:key outputs #:allow-other-keys)
11077 (let* ((out (assoc-ref outputs "out"))
11078 (gst-plugin-path (string-append
11079 out "/lib/gstreamer-1.0/"
11080 ":"
11081 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
11082 (wrap-program (string-append out "/bin/parlatype")
11083 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
11084 #t)))))
11085 (native-inputs
11086 `(("appstream-glib" ,appstream-glib)
11087 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11088 ("gettext" ,gettext-minimal)
11089 ("glib" ,glib "bin") ;for glib-compile-resources
11090 ("pkg-config" ,pkg-config)
11091 ("yelp-tools" ,yelp-tools)))
11092 (inputs
11093 `(("gst-plugins-base" ,gst-plugins-base)
11094 ("gst-plugins-good" ,gst-plugins-good)
11095 ("gstreamer" ,gstreamer)
11096 ("gtk+" ,gtk+)
11097 ("pocketsphinx" ,pocketsphinx)
11098 ("pulseaudio" ,pulseaudio)
11099 ("sphinxbase" ,sphinxbase)))
11100 (home-page "http://gkarsay.github.io/parlatype/")
11101 (synopsis "GNOME audio player for transcription")
11102 (description "Parlatype is an audio player for the GNOME desktop
1a17d21b
NG
11103environment. Its main purpose is the manual transcription of spoken
11104audio files.")
c10fb9fd 11105 (license license:gpl3+)))
95856a6e
AT
11106
11107(define-public jsonrpc-glib
11108 (package
11109 (name "jsonrpc-glib")
11110 (version "3.34.0")
11111 (source (origin
11112 (method url-fetch)
11113 (uri (string-append "mirror://gnome/sources/" name "/"
11114 (version-major+minor version) "/"
11115 name "-" version ".tar.xz"))
11116 (sha256
11117 (base32
11118 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
11119 (build-system meson-build-system)
11120 (inputs
11121 `(("json-glib" ,json-glib)
11122 ("glib" ,glib)))
11123 (native-inputs
11124 `(("pkg-config" ,pkg-config)
11125 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
11126 ("gobject-introspection" ,gobject-introspection)
11127 ("vala" ,vala)))
11128 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
11129 (synopsis "JSON-RPC library for GLib")
11130 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
11131peers in either a synchronous or asynchronous fashion. It also allows
11132communicating using the GVariant serialization format instead of JSON when
11133both peers support it. You might want that when communicating on a single
11134host to avoid parser overhead and memory-allocator fragmentation.")
11135 (license license:lgpl2.1+)))
0faed399
JB
11136
11137(define-public feedbackd
11138 (package
11139 (name "feedbackd")
11140 (version "0.0.0+git20200527")
11141 (source (origin
11142 (method git-fetch)
11143 (uri (git-reference
11144 (url "https://source.puri.sm/Librem5/feedbackd.git")
11145 (commit (string-append "v" version))))
11146 (file-name (git-file-name name version))
11147 (sha256
11148 (base32
11149 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
11150 (build-system meson-build-system)
11151 (native-inputs
11152 `(("glib:bin" ,glib "bin")
11153 ("gobject-introspection" ,gobject-introspection)
11154 ("pkg-config" ,pkg-config)
11155 ("vala" ,vala)))
11156 (inputs
11157 `(("dbus" ,dbus)
11158 ("gsound" ,gsound)
11159 ("json-glib" ,json-glib)
11160 ("libgudev" ,libgudev)))
11161 (propagated-inputs
11162 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
11163 (synopsis "Haptic/visual/audio feedback via DBus")
11164 (description "Feedbackd provides a DBus daemon to act on events to provide
11165haptic, visual and audio feedback. It offers the libfeedbackd library and
11166GObject introspection bindings.")
11167 (home-page "https://source.puri.sm/Librem5/feedbackd")
11168 (license (list license:lgpl2.1+ ; libfeedbackd
11169 license:lgpl3+)))) ; the rest
dcb4f7b7
LP
11170
11171(define-public sysprof
11172 (package
11173 (name "sysprof")
11174 (version "3.34.1")
11175 (source (origin
11176 (method url-fetch)
11177 (uri (string-append "mirror://gnome/sources/" name "/"
11178 (version-major+minor version) "/"
11179 name "-" version ".tar.xz"))
11180 (sha256
11181 (base32
11182 "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"))))
11183 (build-system meson-build-system)
11184 (arguments
11185 `(#:configure-flags
11186 (list (string-append "-Dsystemdunitdir="
11187 %output
11188 "/share/systemd"))
11189 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
11190 #:phases
11191 (modify-phases %standard-phases
11192 (add-after 'unpack 'patch-install-script
11193 (lambda _
11194 (substitute* "build-aux/meson/post_install.sh"
11195 (("gtk-update-icon-cache") "true")
11196 (("update-desktop-database") "true"))
11197 #t)))))
11198 (inputs
11199 `(("glib" ,glib)
11200 ("gtk+" ,gtk+)
11201 ("libdazzle" ,libdazzle)
11202 ("polkit" ,polkit)))
11203 (native-inputs
11204 `(("gettext" ,gettext-minimal)
11205 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
11206 ("itstool" ,itstool)
11207 ("pkg-config" ,pkg-config)
11208 ("xmllint" ,libxml2)))
11209 (home-page "http://www.sysprof.com/")
11210 (synopsis "System-wide performance profiler")
11211 (description "Sysprof is a sampling profiler that uses a kernel module
11212to generate stacktraces which are then interpreted by the userspace program
11213@command{sysprof}.")
11214 (license license:gpl3+)))
683cac58
LP
11215
11216(define-public gnome-builder
11217 (package
11218 (name "gnome-builder")
11219 (version "3.36.1")
11220 (source (origin
11221 (method url-fetch)
11222 (uri (string-append "mirror://gnome/sources/" name "/"
11223 (version-major+minor version) "/"
11224 name "-" version ".tar.xz"))
11225 (sha256
11226 (base32
11227 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
11228 (build-system meson-build-system)
11229 (arguments
11230 `(#:configure-flags (list "-Dnetwork_tests=false"
11231 ;; TODO: Enable all plugins...
11232 "-Dplugin_clang=false"
11233 "-Dplugin_flatpak=false"
11234 "-Dplugin_glade=false"
11235 ;; ... except this one.
11236 "-Dplugin_update_manager=false")
11237 #:phases
11238 (modify-phases %standard-phases
11239 (add-after 'unpack 'patch-meson
11240 (lambda* (#:key inputs #:allow-other-keys)
11241 (substitute* "build-aux/meson/post_install.py"
11242 (("gtk-update-icon-cache") "true")
11243 (("update-desktop-database") "true"))
11244 (substitute* "src/libide/meson.build"
11245 (("/usr/lib")
11246 (string-append (assoc-ref inputs "python-pygobject")
11247 "/lib")))
11248 #t))
11249 (add-before 'check 'pre-check
11250 (lambda _
11251 (system "Xvfb :1 &")
11252 (setenv "DISPLAY" ":1")
11253 #t)))))
11254 (inputs
11255 `(("devhelp" ,devhelp)
11256 ("gspell" ,gspell)
11257 ("gtk+" ,gtk+)
11258 ("json-glib" ,json-glib)
11259 ("jsonrpc-glib" ,jsonrpc-glib)
11260 ("libdazzle" ,libdazzle)
11261 ("libgit2-glib" ,libgit2-glib)
11262 ("libpeas" ,libpeas)
11263 ("python-pygobject" ,python-pygobject)
11264 ("sysprof" ,sysprof)
11265 ("template-glib" ,template-glib)
11266 ("vte" ,vte)
11267 ("webkitgtk" ,webkitgtk)))
11268 (propagated-inputs
11269 `(("gtksourceview" ,gtksourceview))) ;needed for settings
11270 (native-inputs
11271 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
11272 ("glib:bin" ,glib "bin")
11273 ("gettext" ,gettext-minimal)
11274 ("pkg-config" ,pkg-config)
11275 ("vala" ,vala)
11276 ("xorg-server" ,xorg-server-for-tests)))
11277 (home-page "https://wiki.gnome.org/Apps/Builder")
11278 (synopsis "Toolsmith for GNOME-based applications")
876d022c
LC
11279 (description "Builder aims to be an integrated development
11280environment (IDE) for writing GNOME-based software. It features fuzzy search,
11281auto-completion, a mini code map, documentation browsing, Git integration, an
11282integrated profiler via Sysprof, debugging support, and more.")
683cac58 11283 (license license:gpl3+)))