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