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