gnu: Add at-spi2-core.
[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>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages gtk)
20 #:use-module ((guix licenses)
21 #:renamer (symbol-prefix-proc 'license:))
22 #:use-module (guix packages)
23 #:use-module (guix download)
24 #:use-module (guix build-system gnu)
6131c43d
AE
25 #:use-module (gnu packages compression)
26 #:use-module (gnu packages fontutils)
27 #:use-module (gnu packages ghostscript)
3a08a411 28 #:use-module (gnu packages glib)
a2609b41 29 #:use-module (gnu packages icu4c)
527e7961 30 #:use-module (gnu packages libjpeg)
6131c43d 31 #:use-module (gnu packages libpng)
527e7961 32 #:use-module (gnu packages libtiff)
6131c43d
AE
33 #:use-module (gnu packages pdf)
34 #:use-module (gnu packages pkg-config)
35 #:use-module (gnu packages python)
8e70e6d2
LC
36 #:use-module (gnu packages guile)
37 #:use-module (gnu packages xml)
6131c43d 38 #:use-module (gnu packages xorg))
3a08a411
AE
39
40(define-public atk
41 (package
42 (name "atk")
43 (version "2.8.0")
44 (source (origin
45 (method url-fetch)
46 (uri (string-append "mirror://gnome/sources/atk/2.8/atk-"
47 version ".tar.xz"))
48 (sha256
49 (base32
50 "1x3dd3hg9l1j9dq70xwph13vxdp6a9wbfcnryryf1wr6c8bij9dj"))))
51 (build-system gnu-build-system)
52 (inputs `(("glib" ,glib)
53 ("pkg-config" ,pkg-config)))
54 (synopsis "GNOME accessability toolkit")
55 (description
56 "ATK provides the set of accessibility interfaces that are implemented
57by other toolkits and applications. Using the ATK interfaces, accessibility
58tools have full access to view and control running applications.")
59 (license license:lgpl2.0+)
60 (home-page "https://developer.gnome.org/atk/")))
6131c43d
AE
61
62(define-public cairo
63 (package
64 (name "cairo")
c3f3e150 65 (version "1.12.16")
6131c43d
AE
66 (source (origin
67 (method url-fetch)
68 (uri (string-append "http://cairographics.org/releases/cairo-"
69 version ".tar.xz"))
70 (sha256
71 (base32
c3f3e150 72 "0inqwsylqkrzcjivdirkjx5nhdgxbdc62fq284c3xppinfg9a195"))))
6131c43d
AE
73 (build-system gnu-build-system)
74 (propagated-inputs
75 `(("fontconfig" ,fontconfig)
76 ("freetype" ,freetype)
77 ("glib" ,glib)
78 ("libpng" ,libpng)
79 ("libx11" ,libx11)
80 ("libxext" ,libxext)
81 ("libxrender" ,libxrender)
82 ("pixman" ,pixman)))
83 (inputs
84 `(("ghostscript" ,ghostscript)
85 ("libspectre" ,libspectre)
86 ("pkg-config" ,pkg-config)
87 ("poppler" ,poppler)
ee3e314b 88 ("python" ,python-wrapper)
6131c43d
AE
89 ("xextproto" ,xextproto)
90 ("zlib" ,zlib)))
91 (arguments
92 `(#:tests? #f)) ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
93 (synopsis "2D graphics library")
94 (description
95 "Cairo is a 2D graphics library with support for multiple output devices.
96Currently supported output targets include the X Window System (via both
97Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
98output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
99
100Cairo is designed to produce consistent output on all output media while
101taking advantage of display hardware acceleration when available
102eg. through the X Render Extension).
103
104The cairo API provides operations similar to the drawing operators of
105PostScript and PDF. Operations in cairo including stroking and filling cubic
106Bézier splines, transforming and compositing translucent images, and
107antialiased text rendering. All drawing operations can be transformed by any
108affine transformation (scale, rotation, shear, etc.)")
109 (license license:lgpl2.1) ; or Mozilla Public License 1.1
110 (home-page "http://cairographics.org/")))
a2609b41
AE
111
112(define-public harfbuzz
113 (package
114 (name "harfbuzz")
b2f0005a 115 (version "0.9.21")
a2609b41
AE
116 (source (origin
117 (method url-fetch)
118 (uri (string-append "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-"
119 version ".tar.bz2"))
120 (sha256
121 (base32
b2f0005a 122 "1s6sffgf6ndy12fyln2bdnkn3cb1qfkch0rakdgkgwlq7n46zlx0"))))
a2609b41
AE
123 (build-system gnu-build-system)
124 (inputs
125 `(("cairo" ,cairo)
126 ("icu4c" ,icu4c)
127 ("pkg-config" ,pkg-config)
ee3e314b 128 ("python" ,python-wrapper)))
a2609b41
AE
129 (synopsis "opentype text shaping engine")
130 (description
131 "HarfBuzz is an OpenType text shaping engine.")
132 (license (license:x11-style "file://COPYING"
133 "See 'COPYING' in the distribution."))
134 (home-page "http://www.freedesktop.org/wiki/Software/HarfBuzz/")))
4b9adff9
AE
135
136(define-public pango
137 (package
138 (name "pango")
139 (version "1.34.1")
140 (source (origin
141 (method url-fetch)
142 (uri (string-append "mirror://gnome/sources/pango/1.34/pango-"
143 version ".tar.xz"))
144 (sha256
145 (base32
146 "0k7662qix7zzh7mf6ikdj594n8jpbfm25z8swz64zbm86kgk1shs"))))
147 (build-system gnu-build-system)
cf2135ff 148 (propagated-inputs
4b9adff9 149 `(("cairo" ,cairo)
4169a4bc
AE
150 ("harfbuzz" ,harfbuzz)))
151 (inputs
152 `(("pkg-config" ,pkg-config)
4b9adff9
AE
153 ("zlib" ,zlib)))
154 (synopsis "GNOME text and font handling library")
155 (description
156 "Pango is the core text and font handling library used in GNOME
157applications. It has extensive support for the different writing systems
158used throughout the world.")
159 (license license:lgpl2.0+)
160 (home-page "https://developer.gnome.org/pango/")))
527e7961
AE
161
162(define-public gdk-pixbuf
163 (package
164 (name "gdk-pixbuf")
165 (version "2.28.2")
166 (source (origin
167 (method url-fetch)
168 (uri (string-append "mirror://gnome/sources/gdk-pixbuf/2.28/gdk-pixbuf-"
169 version ".tar.xz"))
170 (sha256
171 (base32
172 "05s6ksvy1yan6h6zny9n3bmvygcnzma6ljl6i0z9cci2xg116c8q"))))
173 (build-system gnu-build-system)
174 (inputs
175 `(("glib" ,glib)
176 ("libjpeg" ,libjpeg)
177 ("libpng" ,libpng)
178 ("libtiff" ,libtiff)
179 ("pkg-config" ,pkg-config)))
180 (synopsis "GNOME image loading and manipulation library")
181 (description
182 "GdkPixbuf is a library for image loading and manipulation developed
183in the GNOME project.")
184 (license license:lgpl2.0+)
185 (home-page "https://developer.gnome.org/gdk-pixbuf/")))
cf2135ff 186
f3fb92e5
AE
187(define-public at-spi2-core
188 (package
189 (name "at-spi2-core")
190 (version "2.10.0")
191 (source (origin
192 (method url-fetch)
193 (uri (string-append "mirror://gnome/sources/" name "/"
194 (string-take version 4) "/" name "-"
195 version ".tar.xz"))
196 (sha256
197 (base32
198 "1ns44yibdgcwzwri7sr075hfs5rh5lgxkh71247a0822az3mahcn"))))
199 (build-system gnu-build-system)
200 (inputs `(("dbus" ,dbus)
201 ("glib" ,glib)
202 ("intltool" ,intltool)
203 ("libxi" ,libxi)
204 ("libxtst" ,libxtst)
205 ("pkg-config" ,pkg-config)))
206 (arguments
207 `(#:tests? #f)) ; FIXME: dbind/dbtest fails; one should disable tests in
208 ; a more fine-grained way.
209 (synopsis "Assistive Technology Service Provider Interface, core components")
210 (description
211 "The Assistive Technology Service Provider Interface, core components,
212is part of the GNOME accessibility project.")
213 (license license:lgpl2.0+)
214 (home-page "https://projects.gnome.org/accessibility/")))
215
cf2135ff
AE
216(define-public gtk+
217 (package
218 (name "gtk+")
219 (version "2.24.20")
220 (source (origin
221 (method url-fetch)
222 (uri (string-append "mirror://gnome/sources/gtk+/2.24/gtk+-"
223 version ".tar.xz"))
224 (sha256
225 (base32
226 "18qdvb7nxi25hfnpmcy01p3majw9jnx83ikm263dk9rrjazvqrnc"))))
227 (build-system gnu-build-system)
4169a4bc 228 (propagated-inputs
cf2135ff 229 `(("atk" ,atk)
cf2135ff 230 ("gdk-pixbuf" ,gdk-pixbuf)
4169a4bc
AE
231 ("pango" ,pango)))
232 (inputs
233 `(("pkg-config" ,pkg-config)))
cf2135ff
AE
234 (arguments
235 `(#:phases
236 (alist-replace
237 'configure
238 (lambda* (#:key #:allow-other-keys #:rest args)
239 (let ((configure (assoc-ref %standard-phases 'configure)))
240 ;; FIXME: re-enable tests requiring an X server
241 (substitute* "gtk/Makefile.in"
242 (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits ."))
243 (apply configure args)))
244 %standard-phases)))
0327ced2 245 (synopsis "Cross-platform toolkit for creating graphical user interfaces")
cf2135ff
AE
246 (description
247 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
248graphical user interfaces. Offering a complete set of widgets, GTK+ is
249suitable for projects ranging from small one-off tools to complete
250application suites.")
251 (license license:lgpl2.0+)
252 (home-page "http://www.gtk.org/")))
8e70e6d2
LC
253
254\f
255;;;
256;;; Guile bindings.
257;;;
258
259(define-public guile-cairo
260 (package
261 (name "guile-cairo")
262 (version "1.4.1")
263 (source (origin
264 (method url-fetch)
265 (uri (string-append
266 "http://download.gna.org/guile-cairo/guile-cairo-"
267 version
268 ".tar.gz"))
269 (sha256
270 (base32
271 "1f5nd9n46n6cwfl1byjml02q3y2hgn7nkx98km1czgwarxl7ws3x"))))
272 (build-system gnu-build-system)
273 (arguments
274 '(#:phases (alist-cons-before
275 'configure 'set-module-directory
276 (lambda* (#:key outputs #:allow-other-keys)
277 ;; Install modules under $out/share/guile/site/2.0.
278 (let ((out (assoc-ref outputs "out")))
279 (substitute* "Makefile.in"
280 (("scmdir = ([[:graph:]]+).*" _ value)
281 (string-append "scmdir = " value "/2.0\n")))
282 (substitute* "cairo/Makefile.in"
283 (("moduledir = ([[:graph:]]+).*" _ value)
284 (string-append "moduledir = "
285 "$(prefix)/share/guile/site/2.0/cairo\n'")))))
286 (alist-cons-after
287 'install 'install-missing-file
288 (lambda* (#:key outputs #:allow-other-keys)
289 ;; By default 'vector-types.scm' is not installed, so do
290 ;; it here.
291 (let ((out (assoc-ref outputs "out")))
292 (copy-file "cairo/vector-types.scm"
293 (string-append out "/share/guile/site/2.0"
294 "/cairo/vector-types.scm"))))
295 %standard-phases))))
296 (inputs
297 `(("guile-lib" ,guile-lib)
298 ("expat" ,expat)
299 ("cairo" ,cairo)
300 ("pkg-config" ,pkg-config)
301 ("guile" ,guile-2.0)))
302 (home-page "http://www.nongnu.org/guile-cairo/")
303 (synopsis "Cairo bindings for GNU Guile")
304 (description
305 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
306Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API
307stable, providing a firm base on which to do graphics work. Finally, and
308importantly, it is pleasant to use. You get a powerful and well-maintained
309graphics library with all of the benefits of Scheme: memory management,
310exceptions, macros, and a dynamic programming environment.")
311 (license license:lgpl3+)))