gnu: webkitgtk: Update to 2.24.4.
[jackhill/guix/guix.git] / gnu / packages / gtk.scm
CommitLineData
3a08a411
AE
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
0dc8c908 3;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
bc915629 4;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
b38e45d8 5;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
a6035fc1 6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
136770c9 7;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
dfbce50c 8;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
3bc45449 9;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
c900f843 10;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
698ec949 11;;; Coypright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
60bf8154 12;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
b7807bb2 13;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
3c8ba11a 14;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
9b381643 15;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
47956fa0 16;;; Copyright © 2016 ng0 <ng0@n0.is>
82862153 17;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
46a1a602 18;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
82862153 19;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
4e028d7a 20;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
6009cdb4 21;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
50ee7e93 22;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
a32ecb50 23;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
3a08a411
AE
24;;;
25;;; This file is part of GNU Guix.
26;;;
27;;; GNU Guix is free software; you can redistribute it and/or modify it
28;;; under the terms of the GNU General Public License as published by
29;;; the Free Software Foundation; either version 3 of the License, or (at
30;;; your option) any later version.
31;;;
32;;; GNU Guix is distributed in the hope that it will be useful, but
33;;; WITHOUT ANY WARRANTY; without even the implied warranty of
34;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35;;; GNU General Public License for more details.
36;;;
37;;; You should have received a copy of the GNU General Public License
38;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
39
40(define-module (gnu packages gtk)
b5b73a82 41 #:use-module ((guix licenses) #:prefix license:)
b38e45d8 42 #:use-module (guix utils)
3a08a411
AE
43 #:use-module (guix packages)
44 #:use-module (guix download)
a9276c12 45 #:use-module (guix git-download)
3a08a411 46 #:use-module (guix build-system gnu)
bba29e10 47 #:use-module (guix build-system meson)
4e028d7a 48 #:use-module (guix build-system perl)
0b96fb2a 49 #:use-module (guix build-system python)
e926ba71 50 #:use-module (guix build-system waf)
b837e658 51 #:use-module (gnu packages)
3bc45449 52 #:use-module (gnu packages algebra)
1a51fe27 53 #:use-module (gnu packages autotools)
61af2675 54 #:use-module (gnu packages base)
1a51fe27 55 #:use-module (gnu packages texinfo)
136770c9 56 #:use-module (gnu packages check)
6131c43d 57 #:use-module (gnu packages compression)
3bc45449 58 #:use-module (gnu packages docbook)
9c0c77f8 59 #:use-module (gnu packages enchant)
6131c43d 60 #:use-module (gnu packages fontutils)
982b3574 61 #:use-module (gnu packages freedesktop)
13236d30 62 #:use-module (gnu packages fribidi)
3bc45449 63 #:use-module (gnu packages gettext)
6131c43d 64 #:use-module (gnu packages ghostscript)
31b254a3 65 #:use-module (gnu packages gl)
3a08a411 66 #:use-module (gnu packages glib)
95d439b2 67 #:use-module (gnu packages gnome)
a2609b41 68 #:use-module (gnu packages icu4c)
e55354b8 69 #:use-module (gnu packages image)
9b381643 70 #:use-module (gnu packages libffi)
2ea3bfe7 71 #:use-module (gnu packages linux)
6131c43d 72 #:use-module (gnu packages pdf)
8b79a547 73 #:use-module (gnu packages perl)
6131c43d 74 #:use-module (gnu packages pkg-config)
3bc45449 75 #:use-module (gnu packages pretty-print)
6131c43d 76 #:use-module (gnu packages python)
44d10b1f 77 #:use-module (gnu packages python-xyz)
8e70e6d2 78 #:use-module (gnu packages guile)
0791437f 79 #:use-module (gnu packages guile-xyz)
37cb3a69 80 #:use-module (gnu packages cups)
8e70e6d2 81 #:use-module (gnu packages xml)
6c0e878e 82 #:use-module (gnu packages xorg)
56a88478
EF
83 #:use-module (gnu packages xdisorg)
84 #:use-module (srfi srfi-1)
85 #:use-module (srfi srfi-26))
3a08a411
AE
86
87(define-public atk
88 (package
89 (name "atk")
5f07df17 90 (version "2.32.0")
3a08a411
AE
91 (source (origin
92 (method url-fetch)
3b8e4347 93 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
94 (version-major+minor version) "/"
95 name "-" version ".tar.xz"))
3a08a411
AE
96 (sha256
97 (base32
5f07df17
MB
98 "1k4i817bd2w5b9z394f2yyx95591l2746wa40am0vvz4gzdgwhfb"))))
99 (build-system meson-build-system)
13a9e291 100 (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
141aed80
LC
101 (native-inputs
102 `(("pkg-config" ,pkg-config)
5f07df17 103 ("gettext" ,gettext-minimal)
426adbe8 104 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 105 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
c5cc5006 106 (synopsis "GNOME accessibility toolkit")
3a08a411
AE
107 (description
108 "ATK provides the set of accessibility interfaces that are implemented
35b9e423 109by other toolkits and applications. Using the ATK interfaces, accessibility
3a08a411
AE
110tools have full access to view and control running applications.")
111 (license license:lgpl2.0+)
112 (home-page "https://developer.gnome.org/atk/")))
6131c43d
AE
113
114(define-public cairo
115 (package
116 (name "cairo")
d1ee69a9 117 (version "1.16.0")
6131c43d
AE
118 (source (origin
119 (method url-fetch)
b3822954 120 (uri (string-append "https://cairographics.org/releases/cairo-"
6131c43d
AE
121 version ".tar.xz"))
122 (sha256
123 (base32
d1ee69a9 124 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))))
6131c43d
AE
125 (build-system gnu-build-system)
126 (propagated-inputs
127 `(("fontconfig" ,fontconfig)
128 ("freetype" ,freetype)
129 ("glib" ,glib)
130 ("libpng" ,libpng)
131 ("libx11" ,libx11)
132 ("libxext" ,libxext)
133 ("libxrender" ,libxrender)
134 ("pixman" ,pixman)))
135 (inputs
136 `(("ghostscript" ,ghostscript)
137 ("libspectre" ,libspectre)
6131c43d 138 ("poppler" ,poppler)
caf90259 139 ("xorgproto" ,xorgproto)
6131c43d 140 ("zlib" ,zlib)))
c4c4cc05
JD
141 (native-inputs
142 `(("pkg-config" ,pkg-config)
143 ("python" ,python-wrapper)))
6131c43d 144 (arguments
77888fae
MW
145 `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
146 #:configure-flags '("--enable-tee"))) ; needed for GNU Icecat
6131c43d
AE
147 (synopsis "2D graphics library")
148 (description
149 "Cairo is a 2D graphics library with support for multiple output devices.
150Currently supported output targets include the X Window System (via both
151Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
35b9e423 152output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
6131c43d
AE
153
154Cairo is designed to produce consistent output on all output media while
155taking advantage of display hardware acceleration when available
156eg. through the X Render Extension).
157
158The cairo API provides operations similar to the drawing operators of
35b9e423 159PostScript and PDF. Operations in cairo including stroking and filling cubic
6131c43d 160Bézier splines, transforming and compositing translucent images, and
35b9e423 161antialiased text rendering. All drawing operations can be transformed by any
e881752c 162affine transformation (scale, rotation, shear, etc.).")
6131c43d 163 (license license:lgpl2.1) ; or Mozilla Public License 1.1
b3822954 164 (home-page "https://cairographics.org/")))
a2609b41 165
40b3f523
DC
166(define-public cairo-xcb
167 (package
168 (inherit cairo)
169 (name "cairo-xcb")
170 (inputs
171 `(("mesa" ,mesa)
172 ,@(package-inputs cairo)))
173 (arguments
174 `(#:tests? #f
175 #:configure-flags
176 '("--enable-xlib-xcb" "--enable-gl" "--enable-egl")))
177 (synopsis "2D graphics library (with X11 support)")))
178
a2609b41
AE
179(define-public harfbuzz
180 (package
181 (name "harfbuzz")
127a14e0 182 (version "2.2.0")
a2609b41 183 (source (origin
fd9b3b43 184 (method url-fetch)
5cc3096c 185 (uri (string-append "https://www.freedesktop.org/software/"
fd9b3b43
SB
186 "harfbuzz/release/harfbuzz-"
187 version ".tar.bz2"))
188 (sha256
189 (base32
127a14e0 190 "047q63jr513azf3g1y7f5xn60b4jdjs9zsmrx04sfw5rasyzrk5p"))))
a2609b41 191 (build-system gnu-build-system)
0a129f39
SB
192 (outputs '("out"
193 "bin")) ; 160K, only hb-view depend on cairo
a2609b41 194 (inputs
fd9b3b43
SB
195 `(("cairo" ,cairo)))
196 (propagated-inputs
197 ;; There are all in the Requires or Requires.private field of '.pc'.
198 `(("glib" ,glib)
27383915 199 ("graphite2" ,graphite2)
c4c4cc05
JD
200 ("icu4c" ,icu4c)))
201 (native-inputs
a30a0455
SB
202 `(("gobject-introspection" ,gobject-introspection)
203 ("pkg-config" ,pkg-config)
7005f8cb
MB
204 ("python" ,python-wrapper)
205 ("which" ,which)))
27383915 206 (arguments
a30a0455 207 `(#:configure-flags `("--with-graphite2"
eb6afbcd
SB
208 "--with-gobject"
209 ,(string-append
210 "--bindir=" (assoc-ref %outputs "bin") "/bin"))))
35b9e423 211 (synopsis "OpenType text shaping engine")
a2609b41
AE
212 (description
213 "HarfBuzz is an OpenType text shaping engine.")
214 (license (license:x11-style "file://COPYING"
215 "See 'COPYING' in the distribution."))
61320932 216 (home-page "https://www.freedesktop.org/wiki/Software/HarfBuzz/")))
4b9adff9
AE
217
218(define-public pango
219 (package
220 (name "pango")
7b0faf32 221 (version "1.42.4")
4b9adff9
AE
222 (source (origin
223 (method url-fetch)
dca1b58d
FB
224 (uri (string-append "mirror://gnome/sources/pango/"
225 (version-major+minor version) "/"
226 name "-" version ".tar.xz"))
4b9adff9
AE
227 (sha256
228 (base32
7b0faf32 229 "17bwb7dgbncrfsmchlib03k9n3xaalirb39g3yb43gg8cg6p8aqx"))))
4b9adff9 230 (build-system gnu-build-system)
cf2135ff 231 (propagated-inputs
60a32a2d 232 ;; These are all in Requires or Requires.private of the '.pc' files.
4b9adff9 233 `(("cairo" ,cairo)
698ec949 234 ("fribidi" ,fribidi)
60a32a2d
MB
235 ("fontconfig" ,fontconfig)
236 ("freetype" ,freetype)
237 ("glib" ,glib)
4169a4bc
AE
238 ("harfbuzz" ,harfbuzz)))
239 (inputs
698ec949 240 `(("zlib" ,zlib)
9a5acb54
JL
241
242 ;; Some packages, such as Openbox, expect Pango to be built with the
243 ;; optional libxft support.
244 ("libxft" ,libxft)))
c4c4cc05 245 (native-inputs
141aed80 246 `(("pkg-config" ,pkg-config)
426adbe8 247 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 248 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
4b9adff9
AE
249 (synopsis "GNOME text and font handling library")
250 (description
251 "Pango is the core text and font handling library used in GNOME
35b9e423 252applications. It has extensive support for the different writing systems
4b9adff9
AE
253used throughout the world.")
254 (license license:lgpl2.0+)
255 (home-page "https://developer.gnome.org/pango/")))
527e7961 256
5698b8b8
JD
257(define-public pangox-compat
258 (package
259 (name "pangox-compat")
260 (version "0.0.2")
261 (source (origin
262 (method url-fetch)
b38e45d8
EB
263 (uri (string-append "mirror://gnome/sources/" name "/"
264 (version-major+minor version) "/"
265 name "-" version ".tar.xz"))
5698b8b8
JD
266 (sha256
267 (base32
268 "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m"))))
269 (build-system gnu-build-system)
270 (inputs
271 `(("glib" ,glib)
272 ("pango" ,pango)))
273 (native-inputs
274 `(("intltool" ,intltool)
275 ("pkg-config" ,pkg-config)))
276 (home-page "https://developer.gnome.org/pango")
35b9e423 277 (synopsis "Obsolete pango functions")
5698b8b8
JD
278 (description "Pangox was a X backend to pango. It is now obsolete and no
279longer provided by recent pango releases. pangox-compat provides the
280functions which were removed.")
281 (license license:lgpl2.0+)))
282
e926ba71
RW
283(define-public ganv
284 (package
285 (name "ganv")
286 (version "1.4.2")
287 (source (origin
288 (method url-fetch)
0d0252e4 289 (uri (string-append "https://download.drobilla.net/ganv-"
ea7f3349 290 version ".tar.bz2"))
e926ba71
RW
291 (sha256
292 (base32
293 "0g7s5mp14qgbfjdql0k1s8464r21g47ssn5dws6jazsnw6njhl0l"))))
294 (build-system waf-build-system)
ea7f3349 295 (arguments
dc1d3cde
KK
296 `(#:phases
297 (modify-phases %standard-phases
298 (add-before 'configure 'set-flags
299 (lambda* (#:key outputs #:allow-other-keys)
300 ;; Compile with C++11, required by gtkmm.
301 (setenv "CXXFLAGS" "-std=c++11")
302 ;; Allow 'bin/ganv_bench' to find libganv-1.so.
303 (setenv "LDFLAGS"
304 (string-append "-Wl,-rpath="
305 (assoc-ref outputs "out") "/lib"))
306 #t)))
22ce8b56 307 #:python ,python-2 ;XXX: The bundled waf fails with Python 3.7.0.
ea7f3349 308 #:tests? #f)) ; no check target
e926ba71
RW
309 (inputs
310 `(("gtk" ,gtk+-2)
311 ("gtkmm" ,gtkmm-2)))
312 (native-inputs
313 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
314 ("pkg-config" ,pkg-config)))
0d0252e4 315 (home-page "https://drobilla.net/software/ganv/")
e926ba71
RW
316 (synopsis "GTK+ widget for interactive graph-like environments")
317 (description
318 "Ganv is an interactive GTK+ widget for interactive “boxes and lines” or
319graph-like environments, e.g. modular synths or finite state machine
320diagrams.")
321 (license license:gpl3+)))
95d439b2 322
a9276c12 323(define-public ganv-devel
ab8f4a70 324 (let ((commit "12f7d6b0438c94dd87f773a92eee3453d971846e")
a9276c12
RW
325 (revision "1"))
326 (package
327 (inherit ganv)
328 (name "ganv")
ab8f4a70 329 (version (string-append "1.5.4-" revision "."
a9276c12
RW
330 (string-take commit 9)))
331 (source (origin
332 (method git-fetch)
333 (uri (git-reference
0d0252e4 334 (url "https://git.drobilla.net/ganv.git")
a9276c12 335 (commit commit)))
4a885c65 336 (file-name (git-file-name name version))
a9276c12
RW
337 (sha256
338 (base32
ab8f4a70 339 "1cr8w02lr6bk9mkxa12j3imq721b2an2yn4bj5wnwmpm91ddn2gi")))))))
a9276c12 340
c900f843 341(define-public gtksourceview-2
95d439b2
JD
342 (package
343 (name "gtksourceview")
344 (version "2.10.5") ; This is the last version which builds against gtk+2
345 (source (origin
346 (method url-fetch)
b38e45d8
EB
347 (uri (string-append "mirror://gnome/sources/" name "/"
348 (version-major+minor version) "/"
349 name "-" version ".tar.bz2"))
95d439b2
JD
350 (sha256
351 (base32
db6dd04c
JL
352 "07hrabhpl6n8ajz10s0d960jdwndxs87szxyn428mpxi8cvpg1f5"))
353 (patches
354 (search-patches
355 "gtksourceview-2-add-default-directory.patch"))))
95d439b2 356 (build-system gnu-build-system)
c4c4cc05 357 (native-inputs
44add1ce 358 `(("intltool" ,intltool)
221ed17a 359 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
bd05ea41
SB
360 ("pkg-config" ,pkg-config)
361 ;; For testing.
362 ("xorg-server" ,xorg-server)
363 ("shared-mime-info" ,shared-mime-info)))
68d85de1
TUBK
364 (propagated-inputs
365 ;; As per the pkg-config file.
bd05ea41
SB
366 `(("gtk" ,gtk+-2)
367 ("libxml2" ,libxml2)))
95d439b2
JD
368 (arguments
369 `(#:phases
370 ;; Unfortunately, some of the tests in "make check" are highly dependent
371 ;; on the environment therefore, some black magic is required.
dc1d3cde
KK
372 (modify-phases %standard-phases
373 (add-before 'check 'start-xserver
374 (lambda* (#:key inputs #:allow-other-keys)
375 (let ((xorg-server (assoc-ref inputs "xorg-server"))
376 (mime (assoc-ref inputs "shared-mime-info")))
95d439b2 377
dc1d3cde
KK
378 ;; There must be a running X server and make check doesn't start one.
379 ;; Therefore we must do it.
380 (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
381 (setenv "DISPLAY" ":1")
95d439b2 382
dc1d3cde
KK
383 ;; The .lang files must be found in $XDG_DATA_HOME/gtksourceview-2.0
384 (system "ln -s gtksourceview gtksourceview-2.0")
385 (setenv "XDG_DATA_HOME" (getcwd))
95d439b2 386
dc1d3cde
KK
387 ;; Finally, the mimetypes must be available.
388 (setenv "XDG_DATA_DIRS" (string-append mime "/share/")))
389 #t)))))
95d439b2
JD
390 (synopsis "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget")
391 (description
392 "GtkSourceView is a portable C library that extends the standard GTK+
393framework for multiline text editing with support for configurable syntax
394highlighting, unlimited undo/redo, search and replace, a completion framework,
395printing and other features typical of a source code editor.")
396 (license license:lgpl2.0+)
397 (home-page "https://developer.gnome.org/gtksourceview/")))
398
c900f843
DH
399(define-public gtksourceview
400 (package
401 (name "gtksourceview")
9dcb6fca 402 (version "4.0.2")
c900f843
DH
403 (source (origin
404 (method url-fetch)
f7e4dd5d 405 (uri (string-append "mirror://gnome/sources/gtksourceview/"
c900f843 406 (version-major+minor version) "/"
f7e4dd5d 407 "gtksourceview-" version ".tar.xz"))
c900f843
DH
408 (sha256
409 (base32
9dcb6fca 410 "1b2z9c0skxrgw2vh08hv6qxky8jbvamc4rgww82j0kpp533rz0hm"))))
c900f843
DH
411 (build-system gnu-build-system)
412 (arguments
413 '(#:phases
414 (modify-phases %standard-phases
415 (add-before
416 'check 'pre-check
417 (lambda* (#:key inputs #:allow-other-keys)
418 (let ((xorg-server (assoc-ref inputs "xorg-server")))
419 ;; Tests require a running X server.
420 (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
421 (setenv "DISPLAY" ":1")
422 ;; For the missing /etc/machine-id.
423 (setenv "DBUS_FATAL_WARNINGS" "0")
424 #t))))))
425 (native-inputs
426 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
427 ("intltool" ,intltool)
b3546174 428 ("itstool" ,itstool)
c900f843
DH
429 ("gobject-introspection" ,gobject-introspection)
430 ("pkg-config" ,pkg-config)
431 ("vala" ,vala)
432 ;; For testing.
433 ("xorg-server" ,xorg-server)
434 ("shared-mime-info" ,shared-mime-info)))
435 (propagated-inputs
436 ;; gtksourceview-3.0.pc refers to all these.
437 `(("glib" ,glib)
438 ("gtk+" ,gtk+)
439 ("libxml2" ,libxml2)))
440 (home-page "https://wiki.gnome.org/Projects/GtkSourceView")
441 (synopsis "GNOME source code widget")
442 (description "GtkSourceView is a text widget that extends the standard
443GTK+ text widget GtkTextView. It improves GtkTextView by implementing syntax
444highlighting and other features typical of a source code editor.")
445 (license license:lgpl2.1+)))
446
c5989b03
RW
447(define-public gtksourceview-3
448 (package (inherit gtksourceview)
449 (name "gtksourceview")
08185081 450 (version "3.24.10")
c5989b03
RW
451 (source (origin
452 (method url-fetch)
453 (uri (string-append "mirror://gnome/sources/" name "/"
454 (version-major+minor version) "/"
455 name "-" version ".tar.xz"))
456 (sha256
457 (base32
08185081 458 "16ym7jwiki4s1pilwr4incx0yg7ll94f1cajrnpndkxxs36hcm5b"))))))
c5989b03 459
527e7961
AE
460(define-public gdk-pixbuf
461 (package
462 (name "gdk-pixbuf")
c4e0a99c 463 (version "2.38.1")
527e7961
AE
464 (source (origin
465 (method url-fetch)
b38e45d8
EB
466 (uri (string-append "mirror://gnome/sources/" name "/"
467 (version-major+minor version) "/"
468 name "-" version ".tar.xz"))
527e7961
AE
469 (sha256
470 (base32
c4e0a99c 471 "0fmbjgjcyym3qg46f64qgl7icdm4ii77flyc1mhk244rp8vgi7zi"))))
a34ce330 472 (build-system meson-build-system)
48f46dc3 473 (arguments
83a40cbf 474 `(#:configure-flags '("-Dinstalled_tests=false")
a63a73dc
SB
475 #:phases
476 (modify-phases %standard-phases
477 (add-after
478 'unpack 'disable-failing-tests
479 (lambda _
a34ce330 480 (substitute* "tests/meson.build"
fe08b6e1
EF
481 ;; XXX FIXME: This test fails on armhf machines with:
482 ;; SKIP Not enough memory to load bitmap image
483 ;; ERROR: cve-2015-4491 - too few tests run (expected 4, got 2)
a34ce330 484 ((".*'cve-2015-4491'.*") "")
a63a73dc
SB
485 ;; XXX FIXME: This test fails with:
486 ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag:
487 ;; assertion failed (error == NULL): Data differ
488 ;; (gdk-pixbuf-error-quark, 0)
56a88478 489 ((".*'pixbuf-jpeg'.*") ""))
a34ce330 490 #t))
56a88478
EF
491 ;; The slow tests take longer than the specified timeout.
492 ,@(if (any (cute string=? <> (%current-system))
493 '("armhf-linux" "aarch64-linux"))
494 '((replace 'check
495 (lambda _
496 (invoke "meson" "test" "--timeout-multiplier" "5"))))
497 '())
a34ce330
MB
498 (add-before 'configure 'aid-install-script
499 (lambda* (#:key outputs #:allow-other-keys)
500 ;; "build-aux/post-install.sh" invokes `gdk-pixbuf-query-loaders`
501 ;; for updating loader.cache, but it's not on PATH. Make it use
502 ;; the one we're installing. XXX: Won't work when cross-compiling.
503 (substitute* "build-aux/post-install.sh"
504 (("gdk-pixbuf-query-loaders" match)
505 (string-append (assoc-ref outputs "out") "/bin/" match)))
506 #t)))))
6983ba56
SB
507 (propagated-inputs
508 `(;; Required by gdk-pixbuf-2.0.pc
509 ("glib" ,glib)
510 ("libpng" ,libpng)
511 ;; Used for testing and required at runtime.
512 ("shared-mime-info" ,shared-mime-info)))
1b5758a6
SB
513 (inputs
514 `(("libjpeg" ,libjpeg)
48f46dc3 515 ("libtiff" ,libtiff)
224276ab 516 ("libx11" ,libx11)))
c4c4cc05 517 (native-inputs
141aed80 518 `(("pkg-config" ,pkg-config)
a34ce330 519 ("gettext" ,gettext-minimal)
426adbe8 520 ("glib" ,glib "bin") ; glib-mkenums, etc.
b3546174 521 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
527e7961
AE
522 (synopsis "GNOME image loading and manipulation library")
523 (description
524 "GdkPixbuf is a library for image loading and manipulation developed
525in the GNOME project.")
526 (license license:lgpl2.0+)
527 (home-page "https://developer.gnome.org/gdk-pixbuf/")))
cf2135ff 528
34dc3907
SB
529;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
530;; on gdk-pixbuf, so this new varibale. Also, librsvg adds 90MiB to the
531;; closure size.
532(define-public gdk-pixbuf+svg
e60d3a55 533 (package (inherit gdk-pixbuf)
34dc3907
SB
534 (name "gdk-pixbuf+svg")
535 (inputs
536 `(("librsvg" ,librsvg)
537 ,@(package-inputs gdk-pixbuf)))
538 (arguments
a34ce330 539 '(#:configure-flags '("-Dinstalled-tests=false")
34dc3907
SB
540 #:tests? #f ; tested by the gdk-pixbuf package already
541 #:phases
542 (modify-phases %standard-phases
543 (add-after 'install 'register-svg-loader
544 (lambda* (#:key inputs outputs #:allow-other-keys)
545 (let* ((out (assoc-ref outputs "out"))
546 (librsvg (assoc-ref inputs "librsvg"))
547 (loaders
548 (append
549 (find-files out "^libpixbufloader-.*\\.so$")
550 (find-files librsvg "^libpixbufloader-.*\\.so$")))
551 (gdk-pixbuf-query-loaders
552 (string-append out "/bin/gdk-pixbuf-query-loaders")))
0c5c788f
MW
553 (apply invoke
554 gdk-pixbuf-query-loaders
555 "--update-cache"
556 loaders)))))))
34dc3907
SB
557 (synopsis
558 "GNOME image loading and manipulation library, with SVG support")))
559
f3fb92e5
AE
560(define-public at-spi2-core
561 (package
562 (name "at-spi2-core")
ab43d1f8 563 (version "2.32.1")
f3fb92e5
AE
564 (source (origin
565 (method url-fetch)
566 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
567 (version-major+minor version) "/"
568 name "-" version ".tar.xz"))
f3fb92e5
AE
569 (sha256
570 (base32
ab43d1f8 571 "0lqd7gsl471v6538iighkvb21gjglcb9pklvas32rjpsxcvsjaiw"))))
8c5b884c 572 (build-system meson-build-system)
068a53c3 573 (outputs '("out" "doc"))
f3fb92e5 574 (arguments
b19d6805 575 '(#:configure-flags
5254f17e 576 (list "-Ddocs=true")
50cc7f41 577 #:phases
af108677 578 (modify-phases %standard-phases
8c5b884c
RW
579 (add-after 'unpack 'set-documentation-path
580 (lambda* (#:key outputs #:allow-other-keys)
581 ;; Ensure that the cross-references point to the "doc" output.
582 (substitute* "doc/libatspi/meson.build"
583 (("docpath =.*")
584 (string-append "docpath = '" (assoc-ref outputs "doc") "/share/gtk-doc/html'\n")))
585 #t))
586 (add-before 'install 'prepare-doc-directory
587 (lambda* (#:key outputs #:allow-other-keys)
588 (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))
589 #t))
590 (add-after 'install 'move-documentation
591 (lambda* (#:key outputs #:allow-other-keys)
592 (let ((out (assoc-ref outputs "out"))
593 (doc (assoc-ref outputs "doc")))
594 (copy-recursively
595 (string-append out "/share/gtk-doc")
596 (string-append doc "/share/gtk-doc"))
597 (delete-file-recursively
598 (string-append out "/share/gtk-doc")))
599 #t))
600 (add-after 'install 'check
601 (lambda _
602 (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
603 ;; Run test-suite under a dbus session.
604 (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
605 (string-append %output "/share"))
606 ;; Don't fail on missing '/etc/machine-id'.
607 (setenv "DBUS_FATAL_WARNINGS" "0") ;
608 (invoke "dbus-launch" "ninja" "test")))
609 (delete 'check))))
c6a552da
SB
610 (propagated-inputs
611 ;; atspi-2.pc refers to all these.
612 `(("dbus" ,dbus)
5254f17e
MB
613 ("glib" ,glib)
614 ("libxi" ,libxi)
c6a552da 615 ("libxtst" ,libxtst)))
c4c4cc05 616 (native-inputs
50cc7f41 617 `(("gobject-introspection" ,gobject-introspection)
8c5b884c
RW
618 ("gtk-doc" ,gtk-doc)
619 ("glib" ,glib "bin")
50cc7f41
SB
620 ("intltool" ,intltool)
621 ("pkg-config" ,pkg-config)))
f3fb92e5
AE
622 (synopsis "Assistive Technology Service Provider Interface, core components")
623 (description
624 "The Assistive Technology Service Provider Interface, core components,
625is part of the GNOME accessibility project.")
626 (license license:lgpl2.0+)
627 (home-page "https://projects.gnome.org/accessibility/")))
628
5fda4784
AE
629(define-public at-spi2-atk
630 (package
631 (name "at-spi2-atk")
3ea5a8ee 632 (version "2.32.0")
5fda4784
AE
633 (source (origin
634 (method url-fetch)
635 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
636 (version-major+minor version) "/"
637 name "-" version ".tar.xz"))
5fda4784
AE
638 (sha256
639 (base32
3ea5a8ee
MB
640 "0p54wx6f6q7s8w0b1j0sgw87pikllp79q5g3lfiwqazs779ycl8b"))))
641 (build-system meson-build-system)
5fda4784 642 (arguments
57fcd224
SB
643 '(#:phases
644 (modify-phases %standard-phases
3a4de6b2 645 (replace 'check
57fcd224
SB
646 ;; Run test-suite under a dbus session.
647 (lambda _
5fba12ec 648 (setenv "DBUS_FATAL_WARNINGS" "0")
3ea5a8ee 649 (invoke "dbus-launch" "meson" "test"))))))
6967cc3f
SB
650 (propagated-inputs
651 `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
652 (inputs
653 `(("atk" ,atk)))
c4c4cc05 654 (native-inputs
3ea5a8ee
MB
655 `(("pkg-config" ,pkg-config)
656 ;; For tests.
657 ("dbus" ,dbus)
658 ("libxml2" ,libxml2)))
5fda4784
AE
659 (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
660 (description
661 "The Assistive Technology Service Provider Interface
662is part of the GNOME accessibility project.")
663 (license license:lgpl2.0+)
664 (home-page "https://projects.gnome.org/accessibility/")))
665
8b79a547 666(define-public gtk+-2
cf2135ff
AE
667 (package
668 (name "gtk+")
f55ef78b 669 (version "2.24.32")
cf2135ff
AE
670 (source (origin
671 (method url-fetch)
1c8362a8 672 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
673 (version-major+minor version) "/"
674 name "-" version ".tar.xz"))
cf2135ff
AE
675 (sha256
676 (base32
f55ef78b 677 "0bjq7ja9gwcv6n5q4qkvdjjx40wsdiikksz1zqxvxsm5vlyskj5n"))
6983ba56 678 (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
711670c0 679 "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
f55ef78b 680 "gtk2-theme-paths.patch"))))
cf2135ff 681 (build-system gnu-build-system)
6b1f2388 682 (outputs '("out" "doc"))
4169a4bc 683 (propagated-inputs
cf2135ff 684 `(("atk" ,atk)
6983ba56 685 ("gdk-pixbuf" ,gdk-pixbuf+svg)
4169a4bc 686 ("pango" ,pango)))
dfbce50c
SB
687 (inputs
688 `(("cups" ,cups)
689 ("libxcomposite" ,libxcomposite)
690 ("libxcursor" ,libxcursor)
691 ("libxdamage" ,libxdamage)
692 ("libxi" ,libxi)
693 ("libxinerama" ,libxinerama)
694 ("libxrandr" ,libxrandr)))
c4c4cc05 695 (native-inputs
1c8362a8 696 `(("perl" ,perl)
b94a6ca0 697 ("gettext" ,gettext-minimal)
426adbe8 698 ("glib" ,glib "bin")
9d297fae 699 ("gobject-introspection" ,gobject-introspection)
1c8362a8
AE
700 ("pkg-config" ,pkg-config)
701 ("python-wrapper" ,python-wrapper)))
cf2135ff 702 (arguments
b19d6805 703 `(#:configure-flags
6b1f2388
SB
704 (list "--with-xinput=yes"
705 (string-append "--with-html-dir="
706 (assoc-ref %outputs "doc")
707 "/share/gtk-doc/html"))
9d297fae 708 #:phases
d4bf49b1
EB
709 (alist-cons-before
710 'configure 'disable-tests
711 (lambda _
712 ;; FIXME: re-enable tests requiring an X server
713 (substitute* "gtk/Makefile.in"
31ca0901
MW
714 (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits ."))
715 #t)
2a6afac9
RW
716 %standard-phases)))
717 (native-search-paths
718 (list (search-path-specification
719 (variable "GUIX_GTK2_PATH")
720 (files '("lib/gtk-2.0")))))
0327ced2 721 (synopsis "Cross-platform toolkit for creating graphical user interfaces")
cf2135ff
AE
722 (description
723 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
35b9e423 724graphical user interfaces. Offering a complete set of widgets, GTK+ is
cf2135ff
AE
725suitable for projects ranging from small one-off tools to complete
726application suites.")
727 (license license:lgpl2.0+)
24d6cc1d 728 (home-page "https://www.gtk.org/")))
8e70e6d2 729
8b79a547
AE
730(define-public gtk+
731 (package (inherit gtk+-2)
b38e45d8 732 (name "gtk+")
1648530f 733 (version "3.24.10")
8b79a547
AE
734 (source (origin
735 (method url-fetch)
b38e45d8
EB
736 (uri (string-append "mirror://gnome/sources/" name "/"
737 (version-major+minor version) "/"
738 name "-" version ".tar.xz"))
8b79a547
AE
739 (sha256
740 (base32
1648530f 741 "00qvq1r96ikdalv7xzgng1kad9i0rcahqk01gwhxl3xrw83z3a1m"))
234e7980 742 (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
87d336e2 743 "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
7b808d76 744 (outputs '("out" "bin" "doc"))
0e112540 745 (propagated-inputs
8b79a547 746 `(("at-spi2-atk" ,at-spi2-atk)
0e112540 747 ("atk" ,atk)
6983ba56 748 ("gdk-pixbuf" ,gdk-pixbuf+svg)
31b254a3 749 ("libepoxy" ,libepoxy)
a572dca8 750 ("libxcursor" ,libxcursor)
8b79a547
AE
751 ("libxi" ,libxi)
752 ("libxinerama" ,libxinerama)
982b3574 753 ("libxkbcommon" ,libxkbcommon)
9e5c0927 754 ("libxdamage" ,libxdamage)
982b3574
KK
755 ("mesa" ,mesa)
756 ("pango" ,pango)
757 ("wayland" ,wayland)
758 ("wayland-protocols" ,wayland-protocols)))
0e112540 759 (inputs
6983ba56 760 `(("libxml2" ,libxml2)
1cb16f1e
SB
761 ;; XXX: colord depends on mozjs (through polkit), which fails on
762 ;; on non-intel systems now.
763 ;;("colord" ,colord)
a572dca8 764 ("cups" ,cups) ;for printing support
a2651b54
SB
765 ;; XXX: rest depends on p11-kit, which fails on mips64el now.
766 ;;("rest" ,rest)
a572dca8 767 ("json-glib" ,json-glib)))
c4c4cc05 768 (native-inputs
141aed80 769 `(("perl" ,perl)
426adbe8 770 ("glib" ,glib "bin")
b94a6ca0 771 ("gettext" ,gettext-minimal)
8b79a547 772 ("pkg-config" ,pkg-config)
141aed80 773 ("gobject-introspection" ,gobject-introspection)
8b79a547 774 ("python-wrapper" ,python-wrapper)
da79e82b
LF
775 ;; By using a special xorg-server for GTK+'s tests, we reduce the impact
776 ;; of updating xorg-server directly on the master branch.
60ecc10f 777 ("xorg-server" ,xorg-server-for-tests)))
8b79a547 778 (arguments
60ecc10f 779 `(#:disallowed-references (,xorg-server-for-tests)
da79e82b 780 ;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes
260b07a7
LC
781 ;; to "doc".
782 #:configure-flags (list (string-append "--with-html-dir="
783 (assoc-ref %outputs "doc")
982b3574
KK
784 "/share/gtk-doc/html")
785 ;; The header file <gdk/gdkwayland.h> is required
786 ;; by gnome-control-center
787 "--enable-wayland-backend"
788 ;; This is necessary to build both backends.
150e2301
DM
789 "--enable-x11-backend"
790 ;; This enables the HTML5 websocket backend.
791 "--enable-broadway-backend")
e4360e16
JD
792 #:phases (modify-phases %standard-phases
793 (add-before 'configure 'pre-configure
794 (lambda _
795 ;; Disable most tests, failing in the chroot with the message:
796 ;; D-Bus library appears to be incorrectly set up; failed to read
797 ;; machine uuid: Failed to open "/etc/machine-id": No such file or
798 ;; directory.
799 ;; See the manual page for dbus-uuidgen to correct this issue.
800 (substitute* "testsuite/Makefile.in"
801 (("SUBDIRS = gdk gtk a11y css reftests")
802 "SUBDIRS = gdk"))
4c8c2b0f
SB
803 #t))
804 (add-after 'install 'move-desktop-files
805 ;; Move desktop files into 'bin' to avoid cycle references.
806 (lambda* (#:key outputs #:allow-other-keys)
807 (let ((out (assoc-ref outputs "out"))
808 (bin (assoc-ref outputs "bin")))
809 (mkdir-p (string-append bin "/share"))
810 (rename-file (string-append out "/share/applications")
811 (string-append bin "/share/applications"))
812 #t))))))
4828ff91
RW
813 (native-search-paths
814 (list (search-path-specification
815 (variable "GUIX_GTK3_PATH")
816 (files '("lib/gtk-3.0")))))))
5fda4784 817
8e70e6d2
LC
818;;;
819;;; Guile bindings.
820;;;
821
822(define-public guile-cairo
823 (package
824 (name "guile-cairo")
2bc8b2af 825 (version "1.10.0")
8e70e6d2 826 (source (origin
b9743865 827 (method url-fetch)
2bc8b2af
LC
828 (uri (string-append "mirror://savannah/guile-cairo/guile-cairo-"
829 version ".tar.gz"))
b9743865
LC
830 (sha256
831 (base32
2bc8b2af
LC
832 "0p6xrhf2k6n5dybn88050za7h90gnd7534n62l53vsca187pwgdf"))
833 (modules '((guix build utils)))
834 (snippet
835 (begin
836 '(begin
837 ;; Install Scheme files in …/guile/site/X.Y.
838 (substitute* (find-files "." "^Makefile\\.in$")
839 (("^(.*)dir = (.*)/guile/site(.*)" _ name prefix suffix)
840 (string-append name "dir = " prefix
841 "/guile/site/@GUILE_EFFECTIVE_VERSION@"
842 suffix)))
843 #t)))))
8e70e6d2 844 (build-system gnu-build-system)
8e70e6d2 845 (inputs
5ace0919 846 `(("guile-lib" ,guile-lib)
8e70e6d2 847 ("expat" ,expat)
1b0f266e 848 ("guile" ,guile-2.2)))
49710cea
LC
849 (propagated-inputs
850 ;; The .pc file refers to 'cairo'.
851 `(("cairo" ,cairo)))
c4c4cc05 852 (native-inputs
b9743865 853 `(("pkg-config" ,pkg-config)))
340978d7 854 (home-page "https://www.nongnu.org/guile-cairo/")
8e70e6d2
LC
855 (synopsis "Cairo bindings for GNU Guile")
856 (description
857 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
858Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API
859stable, providing a firm base on which to do graphics work. Finally, and
860importantly, it is pleasant to use. You get a powerful and well-maintained
861graphics library with all of the benefits of Scheme: memory management,
862exceptions, macros, and a dynamic programming environment.")
863 (license license:lgpl3+)))
66663503 864
1a51fe27 865(define-public guile-rsvg
1b0f266e
LC
866 ;; Use a recent snapshot that supports Guile 2.2 and beyond.
867 (let ((commit "05c6a2fd67e4fea1a7c3ff776729dc931bae6678")
868 (revision "0"))
869 (package
870 (name "guile-rsvg")
871 (version (string-append "2.18.1-" revision "."
872 (string-take commit 7)))
873 (source (origin
874 (method url-fetch)
875 (uri (string-append "https://gitlab.com/wingo/guile-rsvg/"
876 "repository/archive.tar.gz?ref="
877 commit))
878 (sha256
879 (base32
880 "0vdzjx8l5nc4y2xjqs0g1rqn1zrwfsm30brh5gz00r1x41a2pvv2"))
881 (patches (search-patches "guile-rsvg-pkgconfig.patch"))
882 (modules '((guix build utils)))
883 (snippet
6cbee49d
MW
884 '(begin
885 (substitute* (find-files "." "Makefile\\.am")
886 (("/share/guile/site")
887 "/share/guile/site/@GUILE_EFFECTIVE_VERSION@"))
888 #t))
1b0f266e
LC
889 (file-name (string-append name "-" version ".tar.gz"))))
890 (build-system gnu-build-system)
df17d508
MW
891 (arguments
892 `(#:phases (modify-phases %standard-phases
893 (replace 'bootstrap
894 (lambda _
895 (invoke "autoreconf" "-vfi"))))))
1b0f266e
LC
896 (native-inputs `(("pkg-config" ,pkg-config)
897 ("autoconf" ,autoconf)
898 ("automake" ,automake)
899 ("libtool" ,libtool)
900 ("texinfo" ,texinfo)))
901 (inputs `(("guile" ,guile-2.2)
902 ("librsvg" ,librsvg)
903 ("guile-lib" ,guile-lib))) ;for (unit-test)
904 (propagated-inputs `(("guile-cairo" ,guile-cairo)))
905 (synopsis "Render SVG images using Cairo from Guile")
906 (description
907 "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
1a51fe27 908images onto Cairo surfaces.")
1b0f266e
LC
909 (home-page "http://wingolog.org/projects/guile-rsvg/")
910 (license license:lgpl2.1+))))
7ca0dbc3 911
cdd383e9
LC
912(define-public guile-present
913 (package
914 (name "guile-present")
915 (version "0.3.0")
916 (source (origin
917 (method url-fetch)
918 (uri (string-append "http://wingolog.org/pub/guile-present/"
919 "guile-present-" version ".tar.gz"))
920 (sha256
921 (base32
922 "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
b290a631 923 (patches (search-patches "guile-present-coding.patch"))))
cdd383e9
LC
924 (build-system gnu-build-system)
925 (arguments
dc1d3cde
KK
926 '(#:phases
927 (modify-phases %standard-phases
928 (add-after 'install 'post-install
929 (lambda* (#:key inputs outputs #:allow-other-keys)
930 (let* ((out (assoc-ref outputs "out"))
931 (bin (string-append out "/bin"))
932 (guile (assoc-ref inputs "guile")))
933 (substitute* (find-files bin ".*")
934 (("guile")
935 (string-append guile "/bin/guile -L "
936 out "/share/guile/site/2.0 -C "
937 out "/share/guile/site/2.0 "))))
938 #t)))))
cdd383e9 939 (native-inputs `(("pkg-config" ,pkg-config)))
1b0f266e 940 (inputs `(("guile" ,guile-2.2)))
cdd383e9
LC
941 (propagated-inputs
942 ;; These are used by the (present …) modules.
5ace0919 943 `(("guile-lib" ,guile-lib)
cdd383e9
LC
944 ("guile-cairo" ,guile-cairo)
945 ("guile-rsvg" ,guile-rsvg)))
946 (home-page "http://wingolog.org/software/guile-present/")
947 (synopsis "Create SVG or PDF presentations in Guile")
948 (description
949 "Guile-Present defines a declarative vocabulary for presentations,
950together with tools to render presentation documents as SVG or PDF.
951Guile-Present can be used to make presentations programmatically, but also
952includes a tools to generate PDF presentations out of Org mode and Texinfo
953documents.")
954 (license license:lgpl3+)))
7ca0dbc3 955
9b381643
PH
956(define-public guile-gnome
957 (package
958 (name "guile-gnome")
1b0f266e 959 (version "2.16.5")
9b381643
PH
960 (source (origin
961 (method url-fetch)
962 (uri
963 (string-append "mirror://gnu/" name
964 "/guile-gnome-platform/guile-gnome-platform-"
965 version ".tar.gz"))
966 (sha256
967 (base32
1b0f266e 968 "1gnf3j96nip5kl99a268i0dy1hj7s1cfs66sps3zwysnkd7qr399"))))
9b381643
PH
969 (build-system gnu-build-system)
970 (native-inputs
971 `(("pkg-config" ,pkg-config)
972 ("atk" ,atk)
973 ;;("corba" ,corba) ; not packaged yet
974 ("gconf" ,gconf)
975 ("gobject-introspection" ,gobject-introspection)
976 ;;("gthread" ,gthread) ; not packaged yet
977 ("gnome-vfs" ,gnome-vfs)
978 ("gdk-pixbuf" ,gdk-pixbuf)
979 ("gtk+" ,gtk+-2)
980 ("libglade" ,libglade)
981 ("libgnome" ,libgnome)
982 ("libgnomecanvas" ,libgnomecanvas)
983 ("libgnomeui" ,libgnomeui)
984 ("pango" ,pango)
985 ("libffi" ,libffi)
986 ("glib" ,glib)))
1b0f266e 987 (inputs `(("guile" ,guile-2.2)))
9b381643
PH
988 (propagated-inputs
989 `(("guile-cairo" ,guile-cairo)
990 ("g-wrap" ,g-wrap)
5ace0919 991 ("guile-lib" ,guile-lib)))
9b381643
PH
992 (arguments
993 `(#:tests? #f ;FIXME
994 #:phases (modify-phases %standard-phases
995 (add-before 'configure 'pre-configure
996 (lambda* (#:key outputs #:allow-other-keys)
997 (let ((out (assoc-ref outputs "out")))
998 (substitute* (find-files "." "^Makefile.in$")
999 (("guilesite :=.*guile/site" all)
1b0f266e 1000 (string-append all "/@GUILE_EFFECTIVE_VERSION@")))
9b381643
PH
1001 #t))))))
1002 (outputs '("out" "debug"))
1003 (synopsis "Guile interface for GTK+ programming for GNOME")
1004 (description
1005 "Includes guile-clutter, guile-gnome-gstreamer,
1006guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
6fd52309 1007 (home-page "https://www.gnu.org/software/guile-gnome/")
1b0f266e
LC
1008 (license license:gpl2+)
1009 (properties '((upstream-name . "guile-gnome-platform")
1010 (ftp-directory . "/gnu/guile-gnome/guile-gnome-platform")))))
9b381643 1011
66663503
LC
1012;;;
1013;;; C++ bindings.
1014;;;
1015
1016(define-public cairomm
1017 (package
1018 (name "cairomm")
5a52e86e 1019 (version "1.12.2")
66663503 1020 (source (origin
2079087c 1021 (method url-fetch)
5a52e86e
EF
1022 (uri (string-append "https://www.cairographics.org/releases/"
1023 name "-" version ".tar.gz"))
2079087c
SB
1024 (sha256
1025 (base32
5a52e86e 1026 "16fmigxsaz85c3lgcls7biwyz8zy8c8h3jndfm54cxxas3a7zi25"))))
66663503
LC
1027 (build-system gnu-build-system)
1028 (arguments
1029 ;; The examples lack -lcairo.
1030 '(#:make-flags '("LDFLAGS=-lcairo")))
c4c4cc05 1031 (native-inputs `(("pkg-config" ,pkg-config)))
66663503
LC
1032 (propagated-inputs
1033 `(("libsigc++" ,libsigc++)
1034 ("freetype" ,freetype)
1035 ("fontconfig" ,fontconfig)
1036 ("cairo" ,cairo)))
5a52e86e 1037 (home-page "https://cairographics.org/")
66663503
LC
1038 (synopsis "C++ bindings to the Cairo 2D graphics library")
1039 (description
1040 "Cairomm provides a C++ programming interface to the Cairo 2D graphics
1041library.")
1042 (license license:lgpl2.0+)))
c5cc5006
LC
1043
1044(define-public pangomm
1045 (package
1046 (name "pangomm")
3086d9b9 1047 (version "2.40.1")
c5cc5006
LC
1048 (source (origin
1049 (method url-fetch)
b38e45d8
EB
1050 (uri (string-append "mirror://gnome/sources/" name "/"
1051 (version-major+minor version) "/"
1052 name "-" version ".tar.xz"))
c5cc5006
LC
1053 (sha256
1054 (base32
3086d9b9 1055 "1bz3gciff23bpw9bqc4v2l3lkq9w7394v3a4jxkvx0ap5lmfwqlp"))))
c5cc5006 1056 (build-system gnu-build-system)
c4c4cc05 1057 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
1058 (propagated-inputs
1059 `(("cairo" ,cairo)
1060 ("cairomm" ,cairomm)
1061 ("glibmm" ,glibmm)
1062 ("pango" ,pango)))
1063 (home-page "http://www.pango.org/")
1064 (synopsis "C++ interface to the Pango text rendering library")
1065 (description
1066 "Pangomm provides a C++ programming interface to the Pango text rendering
1067library.")
1068 (license license:lgpl2.1+)))
1069
1070(define-public atkmm
1071 (package
1072 (name "atkmm")
5b003972 1073 (version "2.24.2")
c5cc5006
LC
1074 (source (origin
1075 (method url-fetch)
b38e45d8
EB
1076 (uri (string-append "mirror://gnome/sources/" name "/"
1077 (version-major+minor version) "/"
1078 name "-" version ".tar.xz"))
c5cc5006
LC
1079 (sha256
1080 (base32
5b003972 1081 "1gaqwhviadsmy0fsr47686yglv1p4mpkamj0in127bz2b5bki5gz"))))
c5cc5006 1082 (build-system gnu-build-system)
c4c4cc05 1083 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
1084 (propagated-inputs
1085 `(("glibmm" ,glibmm) ("atk" ,atk)))
8e933cb3 1086 (home-page "https://www.gtkmm.org")
c5cc5006
LC
1087 (synopsis "C++ interface to the ATK accessibility library")
1088 (description
1089 "ATKmm provides a C++ programming interface to the ATK accessibility
1090toolkit.")
1091 (license license:lgpl2.1+)))
1092
1093(define-public gtkmm
1094 (package
1095 (name "gtkmm")
29c7b4d6 1096 (version "3.22.2")
c5cc5006
LC
1097 (source (origin
1098 (method url-fetch)
b38e45d8
EB
1099 (uri (string-append "mirror://gnome/sources/" name "/"
1100 (version-major+minor version) "/"
1101 name "-" version ".tar.xz"))
c5cc5006
LC
1102 (sha256
1103 (base32
29c7b4d6 1104 "1400535lhyya462pfx8bp11k3mg3jsbdghlpygskd5ai665dkbwi"))))
c5cc5006 1105 (build-system gnu-build-system)
ff5c33fe 1106 (native-inputs `(("pkg-config" ,pkg-config)
ba470833 1107 ("glib" ,glib "bin") ;for 'glib-compile-resources'
60ecc10f 1108 ("xorg-server" ,xorg-server-for-tests)))
c5cc5006
LC
1109 (propagated-inputs
1110 `(("pangomm" ,pangomm)
1111 ("cairomm" ,cairomm)
1112 ("atkmm" ,atkmm)
1113 ("gtk+" ,gtk+)
1114 ("glibmm" ,glibmm)))
ba470833 1115 (arguments
6a49ae78 1116 `(;; XXX: Tests require C++14 or later. Remove this when the default
29c7b4d6
MB
1117 ;; compiler is >= GCC6.
1118 #:configure-flags '("CXXFLAGS=-std=gnu++14")
60ecc10f 1119 #:disallowed-references (,xorg-server-for-tests)
29c7b4d6 1120 #:phases (modify-phases %standard-phases
ba470833
LC
1121 (add-before 'check 'run-xvfb
1122 (lambda* (#:key inputs #:allow-other-keys)
1123 (let ((xorg-server (assoc-ref inputs "xorg-server")))
1124 ;; Tests such as 'object_move/test' require a running
1125 ;; X server.
1126 (system (string-append xorg-server "/bin/Xvfb :1 &"))
1127 (setenv "DISPLAY" ":1")
1128 ;; Don't fail because of the missing /etc/machine-id.
1129 (setenv "DBUS_FATAL_WARNINGS" "0")
1130 #t))))))
8e933cb3 1131 (home-page "https://gtkmm.org/")
c5cc5006
LC
1132 (synopsis
1133 "C++ interface to the GTK+ graphical user interface library")
1134 (description
1135 "gtkmm is the official C++ interface for the popular GUI library GTK+.
1136Highlights include typesafe callbacks, and a comprehensive set of widgets that
1137are easily extensible via inheritance. You can create user interfaces either
1138in code or with the Glade User Interface designer, using libglademm. There's
1139extensive documentation, including API reference and a tutorial.")
1140 (license license:lgpl2.1+)))
9c086443
JD
1141
1142
1143(define-public gtkmm-2
1144 (package (inherit gtkmm)
b38e45d8 1145 (name "gtkmm")
124596f2 1146 (version "2.24.5")
9c086443
JD
1147 (source (origin
1148 (method url-fetch)
b38e45d8
EB
1149 (uri (string-append "mirror://gnome/sources/" name "/"
1150 (version-major+minor version) "/"
1151 name "-" version ".tar.xz"))
9c086443
JD
1152 (sha256
1153 (base32
124596f2 1154 "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006"))))
3ad29c9e
SB
1155 (arguments
1156 '(#:configure-flags '("CPPFLAGS=-std=c++11"))) ; required by libsigc++
ff5c33fe 1157 (native-inputs `(("pkg-config" ,pkg-config)))
9c086443
JD
1158 (propagated-inputs
1159 `(("pangomm" ,pangomm)
1160 ("cairomm" ,cairomm)
1161 ("atkmm" ,atkmm)
1162 ("gtk+" ,gtk+-2)
1163 ("glibmm" ,glibmm)))))
fbcfa730 1164
e07a4489
MB
1165(define-public gtksourceviewmm
1166 (package
1167 (name "gtksourceviewmm")
1168 (version "3.18.0")
1169 (source (origin
1170 (method url-fetch)
1171 (uri (string-append "mirror://gnome/sources/" name "/"
1172 (version-major+minor version) "/"
1173 name "-" version ".tar.xz"))
1174 (sha256
1175 (base32 "0fgvmhm4h4qmxig87qvangs6ijw53mi40siz7pixlxbrsgiil22i"))))
1176 (build-system gnu-build-system)
1177 (native-inputs
1178 `(("pkg-config" ,pkg-config)))
1179 (propagated-inputs
1180 ;; In 'Requires' of gtksourceviewmm-3.0.pc.
1181 `(("glibmm" ,glibmm)
1182 ("gtkmm" ,gtkmm)
a3d1a348 1183 ("gtksourceview" ,gtksourceview-3)))
e07a4489
MB
1184 (synopsis "C++ interface to the GTK+ 'GtkTextView' widget")
1185 (description
1186 "gtksourceviewmm is a portable C++ library that extends the standard GTK+
1187framework for multiline text editing with support for configurable syntax
1188highlighting, unlimited undo/redo, search and replace, a completion framework,
1189printing and other features typical of a source code editor.")
1190 (license license:lgpl2.1+)
1191 (home-page "https://developer.gnome.org/gtksourceview/")))
1192
1193;;;
1194;;; Python bindings.
1195;;;
1196
fbcfa730
EB
1197(define-public python-pycairo
1198 (package
1199 (name "python-pycairo")
b49e1e81 1200 (version "1.17.1")
fbcfa730
EB
1201 (source
1202 (origin
1203 (method url-fetch)
6009cdb4
AI
1204 (uri (string-append "https://github.com/pygobject/pycairo/releases/download/v"
1205 version "/pycairo-" version ".tar.gz"))
fbcfa730
EB
1206 (sha256
1207 (base32
b49e1e81 1208 "165n0g7gp2a0qi8558snvfans17x83jv2lv7bx4vr1rxjbn3a2hg"))))
6009cdb4 1209 (build-system python-build-system)
fbcfa730 1210 (native-inputs
b837e658 1211 `(("pkg-config" ,pkg-config)
6009cdb4 1212 ("python-pytest" ,python-pytest)))
fbcfa730
EB
1213 (propagated-inputs ;pycairo.pc references cairo
1214 `(("cairo" ,cairo)))
6009cdb4 1215 (home-page "https://cairographics.org/pycairo/")
fbcfa730
EB
1216 (synopsis "Python bindings for cairo")
1217 (description
1218 "Pycairo is a set of Python bindings for the Cairo graphics library.")
7ec42f1d
LC
1219 (license license:lgpl3+)
1220 (properties `((python2-variant . ,(delay python2-pycairo))))))
fbcfa730 1221
7ca0dbc3 1222(define-public python2-pycairo
6009cdb4
AI
1223 (let ((pycairo (package-with-python2
1224 (strip-python2-variant python-pycairo))))
1225 (package
1226 (inherit pycairo)
1227 (propagated-inputs
1228 `(("python2-funcsigs" ,python2-funcsigs)
1229 ,@(package-propagated-inputs pycairo)))
1230 ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
1231 (license (list license:lgpl2.1 license:mpl1.1)))))
fbcfa730
EB
1232
1233(define-public python2-pygtk
1234 (package
1235 (name "python2-pygtk")
1236 (version "2.24.0")
1237 (source
1238 (origin
1239 (method url-fetch)
966a543b 1240 (uri (string-append "mirror://gnome/sources"
fbcfa730
EB
1241 "/pygtk/" (version-major+minor version)
1242 "/pygtk-" version ".tar.bz2"))
1243 (sha256
1244 (base32
1245 "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"))))
1246 (build-system gnu-build-system)
594e7b47
LC
1247 (outputs '("out"
1248 "doc")) ;13 MiB of gtk-doc HTML
fbcfa730
EB
1249 (native-inputs
1250 `(("pkg-config" ,pkg-config)))
1251 (inputs
1252 `(("python" ,python-2)
6ab4712d 1253 ("libglade" ,libglade)
fbcfa730
EB
1254 ("glib" ,glib)))
1255 (propagated-inputs
7ca0dbc3 1256 `(("python-pycairo" ,python2-pycairo) ;loaded at runtime
fbcfa730
EB
1257 ("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
1258 ("gtk+" ,gtk+-2)))
1259 (arguments
1260 `(#:tests? #f
ae115bc7 1261 #:phases (modify-phases %standard-phases
594e7b47
LC
1262 (add-before 'configure 'set-gtk-doc-directory
1263 (lambda* (#:key outputs #:allow-other-keys)
1264 ;; Install documentation to "doc".
1265 (let ((doc (assoc-ref outputs "doc")))
1266 (substitute* "docs/Makefile.in"
1267 (("TARGET_DIR = \\$\\(datadir\\)")
1268 (string-append "TARGET_DIR = " doc))))))
ae115bc7
LC
1269 (add-after 'configure 'fix-codegen
1270 (lambda* (#:key inputs #:allow-other-keys)
1271 (substitute* "pygtk-codegen-2.0"
1272 (("^prefix=.*$")
1273 (string-append
1274 "prefix="
1275 (assoc-ref inputs "python-pygobject") "\n")))))
1276 (add-after 'install 'install-pth
1277 (lambda* (#:key inputs outputs #:allow-other-keys)
1278 ;; pygtk's modules are stored in a subdirectory of
1279 ;; python's site-packages directory. Add a .pth file so
1280 ;; that python will add that subdirectory to its module
1281 ;; search path.
1282 (let* ((out (assoc-ref outputs "out"))
1283 (site (string-append out "/lib/python"
1284 ,(version-major+minor
1285 (package-version python-2))
1286 "/site-packages")))
1287 (call-with-output-file (string-append site "/pygtk.pth")
1288 (lambda (port)
1289 (format port "gtk-2.0~%")))))))))
fbcfa730
EB
1290 (home-page "http://www.pygtk.org/")
1291 (synopsis "Python bindings for GTK+")
1292 (description
1293 "PyGTK allows you to write full featured GTK programs in Python. It is
d1e4ad1b 1294targeted at GTK 2.x, and can be used in conjunction with gnome-python to
fbcfa730
EB
1295write GNOME applications.")
1296 (license license:lgpl2.1+)))
136770c9 1297
4e028d7a
AV
1298(define-public perl-cairo
1299 (package
1300 (name "perl-cairo")
1301 (version "1.106")
1302 (source (origin
1303 (method url-fetch)
1304 (uri (string-append
1305 "mirror://cpan/authors/id/X/XA/XAOC/Cairo-"
1306 version ".tar.gz"))
1307 (sha256
1308 (base32
1309 "1i25kks408c54k2zxskvg54l5k3qadzm8n72ffga9jy7ic0h6j76"))))
1310 (build-system perl-build-system)
1311 (native-inputs
1312 `(("perl-extutils-depends" ,perl-extutils-depends)
1313 ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
1314 (inputs
1315 `(("cairo" ,cairo)))
9aba9b12 1316 (home-page "https://metacpan.org/release/Cairo")
4e028d7a
AV
1317 (synopsis "Perl interface to the cairo 2d vector graphics library")
1318 (description "Cairo provides Perl bindings for the vector graphics library
1319cairo. It supports multiple output targets, including PNG, PDF and SVG. Cairo
1320produces identical output on all those targets.")
1321 (license license:lgpl2.1+)))
1322
b5bbcda3
AV
1323(define-public perl-gtk2
1324 (package
1325 (name "perl-gtk2")
1326 (version "1.24992")
1327 (source (origin
1328 (method url-fetch)
1329 (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-"
1330 version ".tar.gz"))
1331 (sha256
1332 (base32
1333 "1044rj3wbfmgaif2jb0k28m2aczli6ai2n5yvn6pr7zjyw16kvd2"))))
1334 (build-system perl-build-system)
1335 (native-inputs
1336 `(("perl-extutils-depends" ,perl-extutils-depends)
1337 ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
1338 (inputs
1339 `(("gtk+" ,gtk+-2)))
1340 (propagated-inputs
1341 `(("perl-pango" ,perl-pango)))
9aba9b12 1342 (home-page "https://metacpan.org/release/Gtk2")
b5bbcda3
AV
1343 (synopsis "Perl interface to the 2.x series of the Gimp Toolkit library")
1344 (description "Perl bindings to the 2.x series of the Gtk+ widget set.
1345This module allows you to write graphical user interfaces in a Perlish and
1346object-oriented way, freeing you from the casting and memory management in C,
1347yet remaining very close in spirit to original API.")
1348 (license license:lgpl2.1+)))
1349
ee6911c7
AV
1350(define-public perl-pango
1351 (package
1352 (name "perl-pango")
1353 (version "1.227")
1354 (source (origin
1355 (method url-fetch)
1356 (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Pango-"
1357 version ".tar.gz"))
1358 (sha256
1359 (base32
1360 "0wdcidnfnb6nm79fzfs39ivawj3x8m98a147fmcxgv1zvwia9c1l"))))
1361 (build-system perl-build-system)
1362 (native-inputs
1363 `(("perl-extutils-depends" ,perl-extutils-depends)
1364 ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
1365 (inputs
1366 `(("pango" ,pango)))
1367 (propagated-inputs
1368 `(("perl-cairo" ,perl-cairo)
1369 ("perl-glib" ,perl-glib)))
9aba9b12 1370 (home-page "https://metacpan.org/release/Pango")
ee6911c7
AV
1371 (synopsis "Layout and render international text")
1372 (description "Pango is a library for laying out and rendering text, with an
1373emphasis on internationalization. Pango can be used anywhere that text layout
1374is needed, but using Pango in conjunction with Cairo and/or Gtk2 provides a
1375complete solution with high quality text handling and graphics rendering.
1376
1377Dynamically loaded modules handle text layout for particular combinations of
1378script and font backend. Pango provides a wide selection of modules, including
1379modules for Hebrew, Arabic, Hangul, Thai, and a number of Indic scripts.
1380Virtually all of the world's major scripts are supported.
1381
1382In addition to the low level layout rendering routines, Pango includes
1383@code{Pango::Layout}, a high level driver for laying out entire blocks of text,
1384and routines to assist in editing internationalized text.")
1385 (license license:lgpl2.1+)))
1386
136770c9
PW
1387(define-public girara
1388 (package
1389 (name "girara")
e59a9cf7 1390 (version "0.3.2")
136770c9
PW
1391 (source (origin
1392 (method url-fetch)
1393 (uri
1394 (string-append "https://pwmt.org/projects/girara/download/girara-"
bba29e10 1395 version ".tar.xz"))
136770c9
PW
1396 (sha256
1397 (base32
e59a9cf7 1398 "1kc6n1mxjxa7wvwnqy94qfg8l9jvx9qrvrr2kc7m4g0z20x3a00p"))))
136770c9 1399 (native-inputs `(("pkg-config" ,pkg-config)
b82d5b09 1400 ("check" ,check)
bf38d5be 1401 ("gettext" ,gettext-minimal)
7d24c26e 1402 ("glib:bin" ,glib "bin")
60ecc10f 1403 ("xorg-server" ,xorg-server-for-tests)))
b82d5b09
MB
1404 ;; Listed in 'Requires.private' of 'girara.pc'.
1405 (propagated-inputs `(("gtk+" ,gtk+)))
136770c9 1406 (arguments
bba29e10 1407 `(#:phases (modify-phases %standard-phases
7d24c26e
MB
1408 (add-before 'check 'start-xserver
1409 ;; Tests require a running X server.
1410 (lambda* (#:key inputs #:allow-other-keys)
1411 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1412 (display ":1"))
1413 (setenv "DISPLAY" display)
3e6b398a
MB
1414
1415 ;; On busy machines, tests may take longer than
1416 ;; the default of four seconds.
1417 (setenv "CK_DEFAULT_TIMEOUT" "20")
1418
7d24c26e
MB
1419 ;; Don't fail due to missing '/etc/machine-id'.
1420 (setenv "DBUS_FATAL_WARNINGS" "0")
1421 (zero? (system (string-append xorg-server "/bin/Xvfb "
1422 display " &")))))))))
bba29e10 1423 (build-system meson-build-system)
136770c9
PW
1424 (home-page "https://pwmt.org/projects/girara/")
1425 (synopsis "Library for minimalistic gtk+3 user interfaces")
1426 (description "Girara is a library that implements a user interface that
1427focuses on simplicity and minimalism. Currently based on GTK+, a
1428cross-platform widget toolkit, it provides an interface that focuses on three
1429main components: a so-called view widget that represents the actual
1430application, an input bar that is used to execute commands of the
1431application and the status bar which provides the user with current
1432information.")
1433 (license license:zlib)))
3bc45449
AW
1434
1435(define-public gtk-doc
1436 (package
1437 (name "gtk-doc")
7a1bb44a 1438 (version "1.28")
3bc45449
AW
1439 (source (origin
1440 (method url-fetch)
1441 (uri (string-append "mirror://gnome/sources/" name "/"
1442 (version-major+minor version) "/"
1443 name "-" version ".tar.xz"))
1444 (sha256
1445 (base32
7a1bb44a 1446 "05apmwibkmn1icx05l8aw241lhymcx01zvk5i499cb150bijj7li"))))
3bc45449
AW
1447 (build-system gnu-build-system)
1448 (arguments
6ad08117
AE
1449 `(#:parallel-tests? #f
1450 #:phases
b4787e71 1451 (modify-phases %standard-phases
36ba88da
DM
1452 (add-after 'unpack 'patch-gtk-doc-scan
1453 (lambda* (#:key inputs #:allow-other-keys)
1454 (substitute* "gtk-doc.xsl"
1455 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
1456 (string-append (assoc-ref inputs "docbook-xsl")
1457 "/xml/xsl/docbook-xsl-"
1458 ,(package-version docbook-xsl)
50ee7e93
PN
1459 "/html/chunk.xsl"))
1460 (("http://docbook.sourceforge.net/release/xsl/current/common/en.xml")
1461 (string-append (assoc-ref inputs "docbook-xsl")
1462 "/xml/xsl/docbook-xsl-"
1463 ,(package-version docbook-xsl)
1464 "/common/en.xml")))
36ba88da
DM
1465 #t))
1466 (add-after 'patch-gtk-doc-scan 'patch-test-out
1467 (lambda _
1468 ;; sanity.sh counts the number of status lines. Since our
1469 ;; texlive regenerates the fonts every time and the font
1470 ;; generator metafont outputs a lot of extra lines, this
1471 ;; test would always fail. Disable it for now.
1472 (substitute* "tests/Makefile.in"
1473 (("empty.sh sanity.sh") "empty.sh"))
1474 #t))
a20608a5
RW
1475 (add-before 'build 'set-HOME
1476 (lambda _
1477 ;; FIXME: dblatex with texlive-union does not find the built
1478 ;; metafonts, so it tries to generate them in HOME.
1479 (setenv "HOME" "/tmp")
1480 #t))
1481 (add-before 'configure 'fix-docbook
b4787e71
AW
1482 (lambda* (#:key inputs #:allow-other-keys)
1483 (substitute* "configure"
1484 ;; The configure check is overzealous about making sure that
1485 ;; things are in place -- it uses the xmlcatalog tool to make
1486 ;; sure that docbook-xsl is available, but this tool can only
1487 ;; look in one catalog file, unlike the $XML_CATALOG_FILES
1488 ;; variable that Guix defines. Fool the test by using the
1489 ;; docbook-xsl catalog explicitly and get on with life.
1490 (("\"\\$XML_CATALOG_FILE\" \
1491\"http://docbook.sourceforge.net/release/xsl/")
4ed737b2
MW
1492 (string-append (car (find-files (assoc-ref inputs "docbook-xsl")
1493 "^catalog.xml$"))
1494 " \"http://docbook.sourceforge.net/release/xsl/")))
d86a7c64
RW
1495 #t))
1496 (add-after 'install 'wrap-executables
1497 (lambda* (#:key outputs #:allow-other-keys)
1498 (let ((out (assoc-ref outputs "out")))
1499 (for-each (lambda (prog)
1500 (wrap-program prog
1501 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))
1502 (find-files (string-append out "/bin")))
1503 #t))))
b4787e71 1504 #:configure-flags
3bc45449
AW
1505 (list (string-append "--with-xml-catalog="
1506 (assoc-ref %build-inputs "docbook-xml")
1507 "/xml/dtd/docbook/catalog.xml"))))
1508 (native-inputs
1509 `(("pkg-config" ,pkg-config)
1510 ("itstool" ,itstool)
1511 ("libxml" ,libxml2)
b94a6ca0 1512 ("gettext" ,gettext-minimal)
3bc45449
AW
1513 ("bc" ,bc)))
1514 (inputs
1515 `(("perl" ,perl)
1516 ("python" ,python)
1517 ("xsltproc" ,libxslt)
1518 ("dblatex" ,dblatex)
1519 ("docbook-xml" ,docbook-xml-4.3)
1520 ("docbook-xsl" ,docbook-xsl)
1521 ("source-highlight" ,source-highlight)
9c708566
DM
1522 ("glib" ,glib)
1523 ("python-six" ,python-six)))
24d6cc1d 1524 (home-page "https://www.gtk.org/gtk-doc/")
3bc45449
AW
1525 (synopsis "Documentation generator from C source code")
1526 (description
a124bbd2 1527 "GTK-Doc generates API documentation from comments added to C code. It is
3bc45449
AW
1528typically used to document the public API of GTK+ and GNOME libraries, but it
1529can also be used to document application code.")
1530 (license license:gpl2+)))
9ba5198c
FH
1531
1532(define-public gtk-engines
1533 (package
1534 (name "gtk-engines")
1535 (version "2.20.2")
1536 (source (origin
1537 (method url-fetch)
1538 (uri (string-append "mirror://gnome/sources/" name "/"
1539 (version-major+minor version) "/"
1540 name "-" version ".tar.bz2"))
1541 (sha256
1542 (base32
1543 "1db65pb0j0mijmswrvpgkdabilqd23x22d95hp5kwxvcramq1dhm"))))
1544 (build-system gnu-build-system)
1545 (arguments
1546 `(#:configure-flags
1547 `("--enable-animation")))
1548 (native-inputs
1549 `(("pkg-config" ,pkg-config)
1550 ("intltool" ,intltool)))
9fff9e64
SB
1551 (inputs
1552 ;; Don't propagate GTK+ to reduce "profile pollution".
9ba5198c 1553 `(("gtk+" ,gtk+-2))) ; required by gtk-engines-2.pc
f032d0be 1554 (home-page "https://live.gnome.org/GnomeArt")
9ba5198c
FH
1555 (synopsis "Theming engines for GTK+ 2.x")
1556 (description
1557 "This package contains the standard GTK+ 2.x theming engines including
1558Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,
1559Redmond95 and ThinIce.")
1560 (license (list license:gpl2+ license:lgpl2.1+))))
b7807bb2
FH
1561
1562(define-public murrine
1563 (package
1564 (name "murrine")
1565 (version "0.98.2")
1566 (source (origin
1567 (method url-fetch)
1568 (uri (string-append "mirror://gnome/sources/" name "/"
1569 (version-major+minor version) "/"
1570 name "-" version ".tar.xz"))
1571 (sha256
1572 (base32
1573 "129cs5bqw23i76h3nmc29c9mqkm9460iwc8vkl7hs4xr07h8mip9"))))
1574 (build-system gnu-build-system)
1575 (arguments
1576 `(#:configure-flags
1577 `("--enable-animation"
1578 "--enable-animationrtl")))
1579 (native-inputs
1580 `(("pkg-config" ,pkg-config)
1581 ("intltool" ,intltool)))
1582 (propagated-inputs
1583 `(("gtk+" ,gtk+-2)))
f032d0be 1584 (home-page "https://live.gnome.org/GnomeArt")
b7807bb2
FH
1585 (synopsis "Cairo-based theming engine for GTK+ 2.x")
1586 (description
1587 "Murrine is a cairo-based GTK+ theming engine. It is named after the
1588glass artworks done by Venicians glass blowers.")
1589 (license license:gpl2+)))
9c0c77f8
KY
1590
1591(define-public gtkspell3
1592 (package
1593 (name "gtkspell3")
3be65cde 1594 (version "3.0.9")
9c0c77f8
KY
1595 (source (origin
1596 (method url-fetch)
1597 (uri (string-append "mirror://sourceforge/gtkspell/"
3be65cde 1598 version "/" name "-" version ".tar.xz"))
9c0c77f8
KY
1599 (sha256
1600 (base32
3be65cde 1601 "09jdicmpipmj4v84gnkqwbmj4lh8v0i6pn967rb9jx4zg2ia9x54"))))
9c0c77f8
KY
1602 (build-system gnu-build-system)
1603 (native-inputs
1604 `(("intltool" ,intltool)
1605 ("pkg-config" ,pkg-config)))
1606 (inputs
c1d59b3c 1607 `(("gobject-introspection" ,gobject-introspection)
9c0c77f8
KY
1608 ("gtk+" ,gtk+)
1609 ("pango" ,pango)))
cd49e478 1610 (propagated-inputs
c1d59b3c 1611 `(("enchant" ,enchant-1.6))) ;gtkspell3-3.0.pc refers to it
9c0c77f8
KY
1612 (home-page "http://gtkspell.sourceforge.net")
1613 (synopsis "Spell-checking addon for GTK's TextView widget")
1614 (description
1615 "GtkSpell provides word-processor-style highlighting and replacement of
1616misspelled words in a GtkTextView widget.")
1617 (license license:gpl2+)))
37355498 1618
1619(define-public clipit
1620 (package
1621 (name "clipit")
85355683
TGR
1622 (version "1.4.4")
1623 (source
1624 (origin
1625 (method git-fetch)
1626 (uri (git-reference
1627 (url "https://github.com/CristianHenzel/ClipIt.git")
1628 (commit (string-append "v" version))))
1629 (file-name (git-file-name name version))
1630 (sha256
1631 (base32 "05xi29v2y0rvb33fmvrz7r9j4l858qj7ngwd7dp4pzpkkaybjln0"))))
37355498 1632 (build-system gnu-build-system)
1633 (native-inputs
85355683
TGR
1634 `(("autoconf" ,autoconf)
1635 ("automake" ,automake)
1636 ("intltool" ,intltool)
37355498 1637 ("pkg-config" ,pkg-config)))
1638 (inputs
1639 `(("gtk+" ,gtk+-2)))
1640 (home-page "https://github.com/CristianHenzel/ClipIt")
1641 (synopsis "Lightweight GTK+ clipboard manager")
1642 (description
1643 "ClipIt is a clipboard manager with features such as a history, search
1644thereof, global hotkeys and clipboard item actions. It was forked from
1645Parcellite and adds bugfixes and features.")
1646 (license license:gpl2+)))
61af2675
RJ
1647
1648(define-public graphene
1649 (package
1650 (name "graphene")
1651 (version "1.6.0")
1652 (source (origin
1653 (method url-fetch)
1654 (uri (string-append
1655 "https://github.com/ebassi/graphene/archive/"
1656 version ".tar.gz"))
1657 (file-name (string-append name "-" version ".tar.gz"))
1658 (sha256
1659 (base32 "1zd2daj7y590wnzn4jw0niyc4fnzgxrcl9i7nwhy8b25ks2hz5wq"))))
1660 (build-system gnu-build-system)
1661 (arguments
64a1ddba 1662 `(#:configure-flags '("--enable-introspection=yes")))
61af2675
RJ
1663 (native-inputs
1664 `(("autoconf" ,autoconf)
1665 ("which" ,which)
1666 ("pkg-config" ,pkg-config)
1667 ("automake" ,automake)
1668 ("libtool" ,libtool)))
1669 (inputs
1670 `(("python" ,python)
1671 ("python-2" ,python-2)
1672 ("glib" ,glib)
1673 ("gobject-introspection" ,gobject-introspection)))
1674 (home-page "http://ebassi.github.io/graphene")
1675 (synopsis "Thin layer of graphic data types")
1676 (description "This library provides graphic types and their relative API;
1677it does not deal with windowing system surfaces, drawing, scene graphs, or
1678input.")
1679 (license license:expat)))
57d70dba 1680
e2f36385
KK
1681(define-public spread-sheet-widget
1682 (package
1683 (name "spread-sheet-widget")
1684 (version "0.3")
1685 (source
1686 (origin
1687 (method url-fetch)
1688 (uri (string-append "https://alpha.gnu.org/gnu/ssw/"
22e68554 1689 "spread-sheet-widget-" version ".tar.gz"))
e2f36385
KK
1690 (sha256
1691 (base32 "1h93yyh2by6yrmkwqg38nd5knids05k5nqzcihc1hdwgzg3c4b8y"))))
1692 (build-system gnu-build-system)
1693 (native-inputs
22e68554 1694 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
e2f36385
KK
1695 ("pkg-config" ,pkg-config)))
1696 ;; In 'Requires' of spread-sheet-widget.pc.
1697 (propagated-inputs
1698 `(("glib" ,glib)
1699 ("gtk+" ,gtk+)))
1700 (home-page "https://www.gnu.org/software/ssw/")
1701 (synopsis "Gtk+ widget for dealing with 2-D tabular data")
1702 (description
1703 "GNU Spread Sheet Widget is a library for Gtk+ which provides a widget for
1704viewing and manipulating 2 dimensional tabular data in a manner similar to many
1705popular spread sheet programs.")
1706 (license license:gpl3+)))
1707
2ea3bfe7
TGR
1708(define-public volumeicon
1709 (package
1710 (name "volumeicon")
1711 (version "0.5.1")
1712 (source
1713 (origin
1714 (method url-fetch)
1715 (uri (string-append "http://nullwise.com/files/volumeicon/volumeicon-"
1716 version ".tar.gz"))
1717 (sha256
1718 (base32 "182xl2w8syv6ky2h2bc9imc6ap8pzh0p7rp63hh8nw0xm38c3f14"))))
1719 (build-system gnu-build-system)
1720 (arguments
1721 `(#:configure-flags
1722 (list "--enable-notify"))) ; optional libnotify support
1723 (native-inputs
1724 `(("intltool" ,intltool)
1725 ("pkg-config" ,pkg-config)))
1726 (inputs
1727 `(("alsa-lib" ,alsa-lib)
1728 ("gtk+" ,gtk+)
1729 ("libnotify" ,libnotify)))
1730 (home-page "http://nullwise.com/volumeicon.html")
1731 (synopsis "System tray volume applet")
1732 (description
1733 "Volume Icon is a volume indicator and control applet for @acronym{the
1734Advanced Linux Sound Architecture, ALSA}. It sits in the system tray,
1735independent of your desktop environment, and supports global key bindings.")
1736 (license (list license:expat ; src/{bind.c,keybinder.h}
1737 license:isc ; src/alsa_volume_mapping.c
1738 license:gpl3)))) ; the rest & combined work
1739
57d70dba
MIP
1740(define-public yad
1741 (package
1742 (name "yad")
46a1a602 1743 (version "0.41.0")
57d70dba
MIP
1744 (source
1745 (origin
1746 (method git-fetch)
1747 (uri (git-reference
1748 (url "https://github.com/v1cont/yad.git")
1749 (commit (string-append "v" version))))
1750 (file-name (git-file-name name version))
1751 (sha256
46a1a602 1752 (base32 "1hkxiich898sbacpg3jflf6i8l4hkfnc0zh10rr376v0mnzbn6jn"))))
57d70dba
MIP
1753 (build-system gnu-build-system)
1754 (arguments
1755 `(#:configure-flags
1756 '("--with-gtk=gtk3"
1757 "--enable-html"
1758 "--enable-gio"
1759 "--enable-spell"
1760 "--enable-icon-browser")
1761 #:phases
1762 (modify-phases %standard-phases
1763 (replace 'bootstrap
1764 (lambda _
1765 (invoke "autoreconf" "-vif")
1766 (invoke "intltoolize" "--force" "--automake")
1767 #t)))))
1768 (inputs
1769 `(("gtk+" ,gtk+)))
1770 (native-inputs
1771 `(("autoconf" ,autoconf)
1772 ("automake" ,automake)
1773 ("intltool" ,intltool)
1774 ("pkg-config" ,pkg-config)))
1775 (home-page "https://sourceforge.net/projects/yad-dialog/")
1776 (synopsis "GTK+ dialog boxes for shell scripts")
1777 (description
1778 "This program allows you to display GTK+ dialog boxes from command line or
1779shell scripts. Example of how to use @code{yad} can be consulted at
1780@url{https://sourceforge.net/p/yad-dialog/wiki/browse_pages/}.")
1781 (license license:gpl3+)))
a32ecb50
MP
1782
1783(define-public libdbusmenu
1784 (package
1785 (name "libdbusmenu")
1786 (version "16.04.0")
1787 (source
1788 (origin
1789 (method url-fetch)
1790 (uri (string-append "https://launchpad.net/libdbusmenu/"
1791 (version-major+minor version) "/" version
1792 "/+download/libdbusmenu-" version ".tar.gz"))
1793 (sha256
1794 (base32 "12l7z8dhl917iy9h02sxmpclnhkdjryn08r8i4sr8l3lrlm4mk5r"))))
1795 (build-system gnu-build-system)
1796 (arguments
1797 `(#:configure-flags
1798 '("--sysconfdir=/etc"
1799 "--localstatedir=/var"
1800 ;; The shebang of the generated test files should be patched before
1801 ;; enabling tests.
1802 "--disable-tests")
1803 #:make-flags
1804 `(,(string-append "typelibdir=" (assoc-ref %outputs "out")
1805 "/lib/girepository-1.0"))
1806 #:phases
1807 (modify-phases %standard-phases
1808 (add-before 'configure 'set-environment
1809 (lambda _
1810 (setenv "HAVE_VALGRIND_TRUE" "")
1811 (setenv "HAVE_VALGRIND_FALSE" "#")
1812 #t)))))
1813 (inputs
1814 `(("glib" ,glib)
1815 ("gtk+" ,gtk+)
1816 ("gtk+-2" ,gtk+-2)))
1817 (native-inputs
1818 `(("glib:bin" ,glib "bin")
1819 ("gnome-doc-utils" ,gnome-doc-utils)
1820 ("gobject-introspection" ,gobject-introspection)
1821 ("intltool" ,intltool)
1822 ("json-glib" ,json-glib)
1823 ("pkg-config" ,pkg-config)
1824 ("python" ,python-2)
1825 ("vala" ,vala)))
1826 (home-page "https://launchpad.net/libdbusmenu")
1827 (synopsis "Library for passing menus over DBus")
1828 (description "@code{libdbusmenu} passes a menu structure across DBus so
1829that a program can create a menu simply without worrying about how it is
1830displayed on the other side of the bus.")
0dc8c908
LC
1831
1832 ;; Dual-licensed under either LGPLv2.1 or LGPLv3.
1833 (license (list license:lgpl2.1 license:lgpl3))))