gnu: linux-libre: Update to 3.18.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>
37cb3a69 3;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
97f94f5e 4;;; Copyright © 2014, 2015 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>
3a08a411
AE
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages gtk)
b5b73a82 24 #:use-module ((guix licenses) #:prefix license:)
b38e45d8 25 #:use-module (guix utils)
3a08a411
AE
26 #:use-module (guix packages)
27 #:use-module (guix download)
28 #:use-module (guix build-system gnu)
0b96fb2a 29 #:use-module (guix build-system python)
e926ba71 30 #:use-module (guix build-system waf)
6131c43d
AE
31 #:use-module (gnu packages compression)
32 #:use-module (gnu packages fontutils)
33 #:use-module (gnu packages ghostscript)
3a08a411 34 #:use-module (gnu packages glib)
95d439b2 35 #:use-module (gnu packages gnome)
a2609b41 36 #:use-module (gnu packages icu4c)
e55354b8 37 #:use-module (gnu packages image)
6131c43d 38 #:use-module (gnu packages pdf)
8b79a547 39 #:use-module (gnu packages perl)
6131c43d
AE
40 #:use-module (gnu packages pkg-config)
41 #:use-module (gnu packages python)
8e70e6d2 42 #:use-module (gnu packages guile)
37cb3a69 43 #:use-module (gnu packages cups)
8e70e6d2 44 #:use-module (gnu packages xml)
6c0e878e
LC
45 #:use-module (gnu packages xorg)
46 #:use-module (gnu packages xdisorg))
3a08a411
AE
47
48(define-public atk
49 (package
50 (name "atk")
8597ab7d 51 (version "2.15.3")
3a08a411
AE
52 (source (origin
53 (method url-fetch)
3b8e4347 54 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
55 (version-major+minor version) "/"
56 name "-" version ".tar.xz"))
3a08a411
AE
57 (sha256
58 (base32
8597ab7d 59 "177a9x6lz2im0mfgxv2crv0l740wy7rg5vlnb8wyyf4fmnh0q19f")))) ; 2.15.3
3a08a411 60 (build-system gnu-build-system)
141aed80
LC
61 (inputs `(("glib" ,glib)))
62 (native-inputs
63 `(("pkg-config" ,pkg-config)
426adbe8 64 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 65 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
c5cc5006 66 (synopsis "GNOME accessibility toolkit")
3a08a411
AE
67 (description
68 "ATK provides the set of accessibility interfaces that are implemented
35b9e423 69by other toolkits and applications. Using the ATK interfaces, accessibility
3a08a411
AE
70tools have full access to view and control running applications.")
71 (license license:lgpl2.0+)
72 (home-page "https://developer.gnome.org/atk/")))
6131c43d
AE
73
74(define-public cairo
75 (package
76 (name "cairo")
9e5c0927 77 (version "1.12.18")
6131c43d
AE
78 (source (origin
79 (method url-fetch)
80 (uri (string-append "http://cairographics.org/releases/cairo-"
81 version ".tar.xz"))
82 (sha256
83 (base32
9e5c0927 84 "1dpmlxmmigpiyv0jchjsn2l1a29655x24g5073hy8p4lmjvz0nfw"))))
6131c43d
AE
85 (build-system gnu-build-system)
86 (propagated-inputs
87 `(("fontconfig" ,fontconfig)
88 ("freetype" ,freetype)
89 ("glib" ,glib)
90 ("libpng" ,libpng)
91 ("libx11" ,libx11)
92 ("libxext" ,libxext)
93 ("libxrender" ,libxrender)
94 ("pixman" ,pixman)))
95 (inputs
96 `(("ghostscript" ,ghostscript)
97 ("libspectre" ,libspectre)
6131c43d 98 ("poppler" ,poppler)
6131c43d
AE
99 ("xextproto" ,xextproto)
100 ("zlib" ,zlib)))
c4c4cc05
JD
101 (native-inputs
102 `(("pkg-config" ,pkg-config)
103 ("python" ,python-wrapper)))
6131c43d
AE
104 (arguments
105 `(#:tests? #f)) ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
106 (synopsis "2D graphics library")
107 (description
108 "Cairo is a 2D graphics library with support for multiple output devices.
109Currently supported output targets include the X Window System (via both
110Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
35b9e423 111output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
6131c43d
AE
112
113Cairo is designed to produce consistent output on all output media while
114taking advantage of display hardware acceleration when available
115eg. through the X Render Extension).
116
117The cairo API provides operations similar to the drawing operators of
35b9e423 118PostScript and PDF. Operations in cairo including stroking and filling cubic
6131c43d 119Bézier splines, transforming and compositing translucent images, and
35b9e423 120antialiased text rendering. All drawing operations can be transformed by any
6131c43d
AE
121affine transformation (scale, rotation, shear, etc.)")
122 (license license:lgpl2.1) ; or Mozilla Public License 1.1
123 (home-page "http://cairographics.org/")))
a2609b41
AE
124
125(define-public harfbuzz
126 (package
127 (name "harfbuzz")
418e82b5 128 (version "0.9.22")
a2609b41
AE
129 (source (origin
130 (method url-fetch)
131 (uri (string-append "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-"
132 version ".tar.bz2"))
133 (sha256
134 (base32
418e82b5 135 "1nkimwadri6v2kzrmz8y0crmy59gw0kg4i4f6cc786bngs0815lq"))))
a2609b41
AE
136 (build-system gnu-build-system)
137 (inputs
138 `(("cairo" ,cairo)
27383915 139 ("graphite2" ,graphite2)
c4c4cc05
JD
140 ("icu4c" ,icu4c)))
141 (native-inputs
27383915 142 `(("pkg-config" ,pkg-config)
ee3e314b 143 ("python" ,python-wrapper)))
27383915
AE
144 (arguments
145 `(#:configure-flags `("--with-graphite2=yes")))
35b9e423 146 (synopsis "OpenType text shaping engine")
a2609b41
AE
147 (description
148 "HarfBuzz is an OpenType text shaping engine.")
149 (license (license:x11-style "file://COPYING"
150 "See 'COPYING' in the distribution."))
151 (home-page "http://www.freedesktop.org/wiki/Software/HarfBuzz/")))
4b9adff9
AE
152
153(define-public pango
154 (package
155 (name "pango")
dca1b58d 156 (version "1.36.8")
4b9adff9
AE
157 (source (origin
158 (method url-fetch)
dca1b58d
FB
159 (uri (string-append "mirror://gnome/sources/pango/"
160 (version-major+minor version) "/"
161 name "-" version ".tar.xz"))
4b9adff9
AE
162 (sha256
163 (base32
dca1b58d 164 "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"))))
4b9adff9 165 (build-system gnu-build-system)
cf2135ff 166 (propagated-inputs
4b9adff9 167 `(("cairo" ,cairo)
4169a4bc
AE
168 ("harfbuzz" ,harfbuzz)))
169 (inputs
9a5acb54
JL
170 `(("zlib" ,zlib)
171
172 ;; Some packages, such as Openbox, expect Pango to be built with the
173 ;; optional libxft support.
174 ("libxft" ,libxft)))
c4c4cc05 175 (native-inputs
141aed80 176 `(("pkg-config" ,pkg-config)
426adbe8 177 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 178 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
4b9adff9
AE
179 (synopsis "GNOME text and font handling library")
180 (description
181 "Pango is the core text and font handling library used in GNOME
35b9e423 182applications. It has extensive support for the different writing systems
4b9adff9
AE
183used throughout the world.")
184 (license license:lgpl2.0+)
185 (home-page "https://developer.gnome.org/pango/")))
527e7961 186
5698b8b8
JD
187(define-public pangox-compat
188 (package
189 (name "pangox-compat")
190 (version "0.0.2")
191 (source (origin
192 (method url-fetch)
b38e45d8
EB
193 (uri (string-append "mirror://gnome/sources/" name "/"
194 (version-major+minor version) "/"
195 name "-" version ".tar.xz"))
5698b8b8
JD
196 (sha256
197 (base32
198 "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m"))))
199 (build-system gnu-build-system)
200 (inputs
201 `(("glib" ,glib)
202 ("pango" ,pango)))
203 (native-inputs
204 `(("intltool" ,intltool)
205 ("pkg-config" ,pkg-config)))
206 (home-page "https://developer.gnome.org/pango")
35b9e423 207 (synopsis "Obsolete pango functions")
5698b8b8
JD
208 (description "Pangox was a X backend to pango. It is now obsolete and no
209longer provided by recent pango releases. pangox-compat provides the
210functions which were removed.")
211 (license license:lgpl2.0+)))
212
e926ba71
RW
213(define-public ganv
214 (package
215 (name "ganv")
216 (version "1.4.2")
217 (source (origin
218 (method url-fetch)
219 (uri (string-append "http://download.drobilla.net/ganv-"
220 version
221 ".tar.bz2"))
222 (sha256
223 (base32
224 "0g7s5mp14qgbfjdql0k1s8464r21g47ssn5dws6jazsnw6njhl0l"))))
225 (build-system waf-build-system)
226 (arguments `(#:tests? #f)) ; no check target
227 (inputs
228 `(("gtk" ,gtk+-2)
229 ("gtkmm" ,gtkmm-2)))
230 (native-inputs
231 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
232 ("pkg-config" ,pkg-config)))
233 (home-page "http://drobilla.net/software/ganv/")
234 (synopsis "GTK+ widget for interactive graph-like environments")
235 (description
236 "Ganv is an interactive GTK+ widget for interactive “boxes and lines” or
237graph-like environments, e.g. modular synths or finite state machine
238diagrams.")
239 (license license:gpl3+)))
95d439b2
JD
240
241(define-public gtksourceview
242 (package
243 (name "gtksourceview")
244 (version "2.10.5") ; This is the last version which builds against gtk+2
245 (source (origin
246 (method url-fetch)
b38e45d8
EB
247 (uri (string-append "mirror://gnome/sources/" name "/"
248 (version-major+minor version) "/"
249 name "-" version ".tar.bz2"))
95d439b2
JD
250 (sha256
251 (base32
252 "07hrabhpl6n8ajz10s0d960jdwndxs87szxyn428mpxi8cvpg1f5"))))
253 (build-system gnu-build-system)
254 (inputs
c4c4cc05 255 `(("gtk" ,gtk+-2)
95d439b2 256 ("libxml2" ,libxml2)
95d439b2
JD
257 ;; These two are needed only to allow the tests to run successfully.
258 ("xorg-server" ,xorg-server)
259 ("shared-mime-info" ,shared-mime-info)))
c4c4cc05 260 (native-inputs
44add1ce 261 `(("intltool" ,intltool)
221ed17a 262 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
c4c4cc05 263 ("pkg-config" ,pkg-config)))
95d439b2
JD
264 (arguments
265 `(#:phases
266 ;; Unfortunately, some of the tests in "make check" are highly dependent
267 ;; on the environment therefore, some black magic is required.
268 (alist-cons-before
269 'check 'start-xserver
270 (lambda* (#:key inputs #:allow-other-keys)
271 (let ((xorg-server (assoc-ref inputs "xorg-server"))
272 (mime (assoc-ref inputs "shared-mime-info")))
273
274 ;; There must be a running X server and make check doesn't start one.
275 ;; Therefore we must do it.
276 (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
277 (setenv "DISPLAY" ":1")
278
279 ;; The .lang files must be found in $XDG_DATA_HOME/gtksourceview-2.0
280 (system "ln -s gtksourceview gtksourceview-2.0")
281 (setenv "XDG_DATA_HOME" (getcwd))
282
283 ;; Finally, the mimetypes must be available.
284 (setenv "XDG_DATA_DIRS" (string-append mime "/share/")) ))
285 %standard-phases)))
286 (synopsis "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget")
287 (description
288 "GtkSourceView is a portable C library that extends the standard GTK+
289framework for multiline text editing with support for configurable syntax
290highlighting, unlimited undo/redo, search and replace, a completion framework,
291printing and other features typical of a source code editor.")
292 (license license:lgpl2.0+)
293 (home-page "https://developer.gnome.org/gtksourceview/")))
294
527e7961
AE
295(define-public gdk-pixbuf
296 (package
297 (name "gdk-pixbuf")
5c880636 298 (version "2.31.1")
527e7961
AE
299 (source (origin
300 (method url-fetch)
b38e45d8
EB
301 (uri (string-append "mirror://gnome/sources/" name "/"
302 (version-major+minor version) "/"
303 name "-" version ".tar.xz"))
527e7961
AE
304 (sha256
305 (base32
5c880636 306 "1kajvfckn88bzcdnl73b933gmjhwjm3dhsj1yrpixhfsc4y5x9r5"))))
527e7961 307 (build-system gnu-build-system)
48f46dc3
SB
308 (arguments
309 '(#:configure-flags '("--with-x11")))
1b5758a6 310 (propagated-inputs ; required by gdk-pixbuf-2.0.pc
527e7961 311 `(("glib" ,glib)
1b5758a6
SB
312 ("libpng" ,libpng)))
313 (inputs
314 `(("libjpeg" ,libjpeg)
48f46dc3
SB
315 ("libtiff" ,libtiff)
316 ("libx11" ,libx11)))
c4c4cc05 317 (native-inputs
141aed80 318 `(("pkg-config" ,pkg-config)
426adbe8 319 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 320 ("gobject-introspection", gobject-introspection))) ; g-ir-compiler, etc.
527e7961
AE
321 (synopsis "GNOME image loading and manipulation library")
322 (description
323 "GdkPixbuf is a library for image loading and manipulation developed
324in the GNOME project.")
325 (license license:lgpl2.0+)
326 (home-page "https://developer.gnome.org/gdk-pixbuf/")))
cf2135ff 327
f3fb92e5
AE
328(define-public at-spi2-core
329 (package
330 (name "at-spi2-core")
331 (version "2.10.0")
332 (source (origin
333 (method url-fetch)
334 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
335 (version-major+minor version) "/"
336 name "-" version ".tar.xz"))
f3fb92e5
AE
337 (sha256
338 (base32
339 "1ns44yibdgcwzwri7sr075hfs5rh5lgxkh71247a0822az3mahcn"))))
340 (build-system gnu-build-system)
341 (inputs `(("dbus" ,dbus)
342 ("glib" ,glib)
f3fb92e5 343 ("libxi" ,libxi)
c4c4cc05
JD
344 ("libxtst" ,libxtst)))
345 (native-inputs
346 `(("intltool" ,intltool)
347 ("pkg-config" ,pkg-config)))
f3fb92e5
AE
348 (arguments
349 `(#:tests? #f)) ; FIXME: dbind/dbtest fails; one should disable tests in
350 ; a more fine-grained way.
351 (synopsis "Assistive Technology Service Provider Interface, core components")
352 (description
353 "The Assistive Technology Service Provider Interface, core components,
354is part of the GNOME accessibility project.")
355 (license license:lgpl2.0+)
356 (home-page "https://projects.gnome.org/accessibility/")))
357
5fda4784
AE
358(define-public at-spi2-atk
359 (package
360 (name "at-spi2-atk")
361 (version "2.10.0")
362 (source (origin
363 (method url-fetch)
364 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
365 (version-major+minor version) "/"
366 name "-" version ".tar.xz"))
5fda4784
AE
367 (sha256
368 (base32
369 "150sqc21difazqd53llwfdaqnwfy73bic9hia41xpfy9kcpzz9yy"))))
370 (build-system gnu-build-system)
371 (inputs `(("atk" ,atk)
372 ("at-spi2-core" ,at-spi2-core)
373 ("dbus" ,dbus)
c4c4cc05
JD
374 ("glib" ,glib)))
375 (native-inputs
376 `(("pkg-config" ,pkg-config)))
5fda4784
AE
377 (arguments
378 `(#:tests? #f)) ; FIXME: droute/droute-test fails; one should disable
379 ; tests in a more fine-grained way.
380 (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
381 (description
382 "The Assistive Technology Service Provider Interface
383is part of the GNOME accessibility project.")
384 (license license:lgpl2.0+)
385 (home-page "https://projects.gnome.org/accessibility/")))
386
8b79a547 387(define-public gtk+-2
cf2135ff
AE
388 (package
389 (name "gtk+")
1c8362a8 390 (version "2.24.21")
cf2135ff
AE
391 (source (origin
392 (method url-fetch)
1c8362a8 393 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
394 (version-major+minor version) "/"
395 name "-" version ".tar.xz"))
cf2135ff
AE
396 (sha256
397 (base32
1c8362a8 398 "1qyw73pr9ryqhir2h1kbx3vm70km4dg2fxrgkrdlpv0rvlb94bih"))))
cf2135ff 399 (build-system gnu-build-system)
4169a4bc 400 (propagated-inputs
cf2135ff 401 `(("atk" ,atk)
cf2135ff 402 ("gdk-pixbuf" ,gdk-pixbuf)
4169a4bc 403 ("pango" ,pango)))
c4c4cc05 404 (native-inputs
1c8362a8 405 `(("perl" ,perl)
426adbe8 406 ("glib" ,glib "bin")
1c8362a8
AE
407 ("pkg-config" ,pkg-config)
408 ("python-wrapper" ,python-wrapper)))
cf2135ff
AE
409 (arguments
410 `(#:phases
d4bf49b1
EB
411 (alist-cons-before
412 'configure 'disable-tests
413 (lambda _
414 ;; FIXME: re-enable tests requiring an X server
415 (substitute* "gtk/Makefile.in"
416 (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits .")))
cf2135ff 417 %standard-phases)))
0327ced2 418 (synopsis "Cross-platform toolkit for creating graphical user interfaces")
cf2135ff
AE
419 (description
420 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
35b9e423 421graphical user interfaces. Offering a complete set of widgets, GTK+ is
cf2135ff
AE
422suitable for projects ranging from small one-off tools to complete
423application suites.")
424 (license license:lgpl2.0+)
425 (home-page "http://www.gtk.org/")))
8e70e6d2 426
8b79a547
AE
427(define-public gtk+
428 (package (inherit gtk+-2)
b38e45d8 429 (name "gtk+")
a6035fc1 430 (version "3.14.7")
8b79a547
AE
431 (source (origin
432 (method url-fetch)
b38e45d8
EB
433 (uri (string-append "mirror://gnome/sources/" name "/"
434 (version-major+minor version) "/"
435 name "-" version ".tar.xz"))
8b79a547
AE
436 (sha256
437 (base32
a6035fc1 438 "0vm40n6nf0w3vv54wqy67jcxddka7hplksi093xim3119yq196gv"))))
0e112540 439 (propagated-inputs
8b79a547 440 `(("at-spi2-atk" ,at-spi2-atk)
0e112540
AE
441 ("atk" ,atk)
442 ("gdk-pixbuf" ,gdk-pixbuf)
8b79a547
AE
443 ("libxi" ,libxi)
444 ("libxinerama" ,libxinerama)
9e5c0927 445 ("libxdamage" ,libxdamage)
0e112540
AE
446 ("pango" ,pango)))
447 (inputs
37cb3a69
LC
448 `(("libxml2" ,libxml2)
449 ("cups" ,cups))) ;for printing support
c4c4cc05 450 (native-inputs
141aed80 451 `(("perl" ,perl)
426adbe8 452 ("glib" ,glib "bin")
8b79a547 453 ("pkg-config" ,pkg-config)
141aed80 454 ("gobject-introspection" ,gobject-introspection)
8b79a547 455 ("python-wrapper" ,python-wrapper)
97f94f5e 456 ("xorg-server" ,xorg-server)))
8b79a547 457 (arguments
97f94f5e 458 `(#:phases
8b79a547
AE
459 (alist-replace
460 'configure
af949e8e 461 (lambda* (#:key inputs #:allow-other-keys #:rest args)
8b79a547
AE
462 (let ((configure (assoc-ref %standard-phases 'configure)))
463 ;; Disable most tests, failing in the chroot with the message:
464 ;; D-Bus library appears to be incorrectly set up; failed to read
465 ;; machine uuid: Failed to open "/etc/machine-id": No such file or
466 ;; directory.
467 ;; See the manual page for dbus-uuidgen to correct this issue.
468 (substitute* "testsuite/Makefile.in"
ce2df078
LC
469 (("SUBDIRS = gdk gtk a11y css reftests")
470 "SUBDIRS = gdk"))
8b79a547
AE
471 (apply configure args)))
472 %standard-phases)))))
5fda4784 473
8e70e6d2
LC
474;;;
475;;; Guile bindings.
476;;;
477
478(define-public guile-cairo
479 (package
480 (name "guile-cairo")
481 (version "1.4.1")
482 (source (origin
483 (method url-fetch)
484 (uri (string-append
485 "http://download.gna.org/guile-cairo/guile-cairo-"
486 version
487 ".tar.gz"))
488 (sha256
489 (base32
490 "1f5nd9n46n6cwfl1byjml02q3y2hgn7nkx98km1czgwarxl7ws3x"))))
491 (build-system gnu-build-system)
492 (arguments
493 '(#:phases (alist-cons-before
494 'configure 'set-module-directory
495 (lambda* (#:key outputs #:allow-other-keys)
496 ;; Install modules under $out/share/guile/site/2.0.
497 (let ((out (assoc-ref outputs "out")))
498 (substitute* "Makefile.in"
499 (("scmdir = ([[:graph:]]+).*" _ value)
500 (string-append "scmdir = " value "/2.0\n")))
501 (substitute* "cairo/Makefile.in"
502 (("moduledir = ([[:graph:]]+).*" _ value)
503 (string-append "moduledir = "
504 "$(prefix)/share/guile/site/2.0/cairo\n'")))))
505 (alist-cons-after
506 'install 'install-missing-file
507 (lambda* (#:key outputs #:allow-other-keys)
508 ;; By default 'vector-types.scm' is not installed, so do
509 ;; it here.
510 (let ((out (assoc-ref outputs "out")))
511 (copy-file "cairo/vector-types.scm"
512 (string-append out "/share/guile/site/2.0"
513 "/cairo/vector-types.scm"))))
514 %standard-phases))))
515 (inputs
516 `(("guile-lib" ,guile-lib)
517 ("expat" ,expat)
8e70e6d2 518 ("guile" ,guile-2.0)))
49710cea
LC
519 (propagated-inputs
520 ;; The .pc file refers to 'cairo'.
521 `(("cairo" ,cairo)))
c4c4cc05
JD
522 (native-inputs
523 `(("pkg-config" ,pkg-config)))
8e70e6d2
LC
524 (home-page "http://www.nongnu.org/guile-cairo/")
525 (synopsis "Cairo bindings for GNU Guile")
526 (description
527 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
528Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API
529stable, providing a firm base on which to do graphics work. Finally, and
530importantly, it is pleasant to use. You get a powerful and well-maintained
531graphics library with all of the benefits of Scheme: memory management,
532exceptions, macros, and a dynamic programming environment.")
533 (license license:lgpl3+)))
66663503
LC
534
535\f
536;;;
537;;; C++ bindings.
538;;;
539
540(define-public cairomm
541 (package
542 (name "cairomm")
d36caa10 543 (version "1.11.2")
66663503
LC
544 (source (origin
545 (method url-fetch)
546 (uri (string-append "http://cairographics.org/releases/cairomm-"
547 version ".tar.gz"))
548 (sha256
549 (base32
d36caa10 550 "138052ybc58q5yl92m2p0br0k0a9g1pi9gfhmn4y220yih4pgxnc"))))
66663503
LC
551 (build-system gnu-build-system)
552 (arguments
553 ;; The examples lack -lcairo.
554 '(#:make-flags '("LDFLAGS=-lcairo")))
c4c4cc05 555 (native-inputs `(("pkg-config" ,pkg-config)))
66663503
LC
556 (propagated-inputs
557 `(("libsigc++" ,libsigc++)
558 ("freetype" ,freetype)
559 ("fontconfig" ,fontconfig)
560 ("cairo" ,cairo)))
561 (home-page "http://cairographics.org/")
562 (synopsis "C++ bindings to the Cairo 2D graphics library")
563 (description
564 "Cairomm provides a C++ programming interface to the Cairo 2D graphics
565library.")
566 (license license:lgpl2.0+)))
c5cc5006
LC
567
568(define-public pangomm
569 (package
570 (name "pangomm")
571 (version "2.34.0")
572 (source (origin
573 (method url-fetch)
b38e45d8
EB
574 (uri (string-append "mirror://gnome/sources/" name "/"
575 (version-major+minor version) "/"
576 name "-" version ".tar.xz"))
c5cc5006
LC
577 (sha256
578 (base32
579 "0hcyvv7c5zmivprdam6cp111i6hn2y5jsxzk00m6j9pncbzvp0hf"))))
580 (build-system gnu-build-system)
c4c4cc05 581 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
582 (propagated-inputs
583 `(("cairo" ,cairo)
584 ("cairomm" ,cairomm)
585 ("glibmm" ,glibmm)
586 ("pango" ,pango)))
587 (home-page "http://www.pango.org/")
588 (synopsis "C++ interface to the Pango text rendering library")
589 (description
590 "Pangomm provides a C++ programming interface to the Pango text rendering
591library.")
592 (license license:lgpl2.1+)))
593
594(define-public atkmm
595 (package
596 (name "atkmm")
597 (version "2.22.7")
598 (source (origin
599 (method url-fetch)
b38e45d8
EB
600 (uri (string-append "mirror://gnome/sources/" name "/"
601 (version-major+minor version) "/"
602 name "-" version ".tar.xz"))
c5cc5006
LC
603 (sha256
604 (base32
605 "06zrf2ymml2dzp53sss0d4ch4dk9v09jm8rglnrmwk4v81mq9gxz"))))
606 (build-system gnu-build-system)
c4c4cc05 607 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
608 (propagated-inputs
609 `(("glibmm" ,glibmm) ("atk" ,atk)))
610 (home-page "http://www.gtkmm.org")
611 (synopsis "C++ interface to the ATK accessibility library")
612 (description
613 "ATKmm provides a C++ programming interface to the ATK accessibility
614toolkit.")
615 (license license:lgpl2.1+)))
616
617(define-public gtkmm
618 (package
619 (name "gtkmm")
0404c34c 620 (version "3.14.0")
c5cc5006
LC
621 (source (origin
622 (method url-fetch)
b38e45d8
EB
623 (uri (string-append "mirror://gnome/sources/" name "/"
624 (version-major+minor version) "/"
625 name "-" version ".tar.xz"))
c5cc5006
LC
626 (sha256
627 (base32
0404c34c 628 "12z4g2in82nk92nfjs2hmrdcwbav8v3laz1813x2dhkf5jk2ixfr"))))
c5cc5006 629 (build-system gnu-build-system)
c4c4cc05 630 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
631 (propagated-inputs
632 `(("pangomm" ,pangomm)
633 ("cairomm" ,cairomm)
634 ("atkmm" ,atkmm)
635 ("gtk+" ,gtk+)
636 ("glibmm" ,glibmm)))
637 (home-page "http://gtkmm.org/")
638 (synopsis
639 "C++ interface to the GTK+ graphical user interface library")
640 (description
641 "gtkmm is the official C++ interface for the popular GUI library GTK+.
642Highlights include typesafe callbacks, and a comprehensive set of widgets that
643are easily extensible via inheritance. You can create user interfaces either
644in code or with the Glade User Interface designer, using libglademm. There's
645extensive documentation, including API reference and a tutorial.")
646 (license license:lgpl2.1+)))
9c086443
JD
647
648
649(define-public gtkmm-2
650 (package (inherit gtkmm)
b38e45d8 651 (name "gtkmm")
9c086443
JD
652 (version "2.24.2")
653 (source (origin
654 (method url-fetch)
b38e45d8
EB
655 (uri (string-append "mirror://gnome/sources/" name "/"
656 (version-major+minor version) "/"
657 name "-" version ".tar.xz"))
9c086443
JD
658 (sha256
659 (base32
660 "0gcm91sc1a05c56kzh74l370ggj0zz8nmmjvjaaxgmhdq8lpl369"))))
661 (propagated-inputs
662 `(("pangomm" ,pangomm)
663 ("cairomm" ,cairomm)
664 ("atkmm" ,atkmm)
665 ("gtk+" ,gtk+-2)
666 ("glibmm" ,glibmm)))))
fbcfa730
EB
667
668(define-public python-pycairo
669 (package
670 (name "python-pycairo")
671 (version "1.10.0")
672 (source
673 (origin
674 (method url-fetch)
675 (uri (string-append "http://cairographics.org/releases/pycairo-"
676 version ".tar.bz2"))
677 (sha256
678 (base32
679 "1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s"))))
680 (build-system python-build-system)
681 (native-inputs
682 `(("pkg-config" ,pkg-config)))
683 (propagated-inputs ;pycairo.pc references cairo
684 `(("cairo" ,cairo)))
685 (arguments
686 `(#:tests? #f
687 #:phases (alist-cons-before
688 'build 'configure
689 (lambda* (#:key outputs #:allow-other-keys)
690 (zero? (system* "./waf" "configure"
691 (string-append "--prefix="
692 (assoc-ref outputs "out")))))
693 (alist-replace
694 'build
695 (lambda _
696 (zero? (system* "./waf" "build")))
697 (alist-replace
698 'install
699 (lambda _
700 (zero? (system* "./waf" "install")))
701 %standard-phases)))))
702 (home-page "http://cairographics.org/pycairo/")
703 (synopsis "Python bindings for cairo")
704 (description
705 "Pycairo is a set of Python bindings for the Cairo graphics library.")
706 (license license:lgpl3+)))
707
708(define-public python2-py2cairo
709 (package (inherit python-pycairo)
710 (name "python2-py2cairo")
711 (version "1.10.0")
712 (source
713 (origin
714 (method url-fetch)
715 (uri (string-append "http://cairographics.org/releases/py2cairo-"
716 version ".tar.bz2"))
717 (sha256
718 (base32
719 "0cblk919wh6w0pgb45zf48xwxykfif16qk264yga7h9fdkq3j16k"))))
720 (arguments
721 `(#:python ,python-2
722 ,@(package-arguments python-pycairo)))
723 ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
0d6a8339 724 (license (list license:lgpl2.1 license:mpl1.1))))
fbcfa730
EB
725
726(define-public python2-pygtk
727 (package
728 (name "python2-pygtk")
729 (version "2.24.0")
730 (source
731 (origin
732 (method url-fetch)
733 (uri (string-append "http://ftp.gnome.org/pub/GNOME/sources"
734 "/pygtk/" (version-major+minor version)
735 "/pygtk-" version ".tar.bz2"))
736 (sha256
737 (base32
738 "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"))))
739 (build-system gnu-build-system)
740 (native-inputs
741 `(("pkg-config" ,pkg-config)))
742 (inputs
743 `(("python" ,python-2)
744 ("glib" ,glib)))
745 (propagated-inputs
746 `(("python-pycairo" ,python2-py2cairo) ;loaded at runtime
747 ("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
748 ("gtk+" ,gtk+-2)))
749 (arguments
750 `(#:tests? #f
751 #:phases (alist-cons-after
752 'install 'install-pth
753 (lambda* (#:key inputs outputs #:allow-other-keys)
754 ;; pygtk's modules are stored in a subdirectory of python's
755 ;; site-packages directory. Add a .pth file so that python
756 ;; will add that subdirectory to its module search path.
757 (let* ((out (assoc-ref outputs "out"))
758 (site (string-append out "/lib/python"
759 ,(version-major+minor
760 (package-version python-2))
761 "/site-packages")))
762 (call-with-output-file (string-append site "/pygtk.pth")
763 (lambda (port)
764 (format port "gtk-2.0~%")))))
765 %standard-phases)))
766 (home-page "http://www.pygtk.org/")
767 (synopsis "Python bindings for GTK+")
768 (description
769 "PyGTK allows you to write full featured GTK programs in Python. It is
770targetted at GTK 2.x, and can be used in conjunction with gnome-python to
771write GNOME applications.")
772 (license license:lgpl2.1+)))