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