Commit | Line | Data |
---|---|---|
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 | |
57 | by other toolkits and applications. Using the ATK interfaces, accessibility | |
58 | tools 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. | |
96 | Currently supported output targets include the X Window System (via both | |
97 | Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file | |
98 | output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB. | |
99 | ||
100 | Cairo is designed to produce consistent output on all output media while | |
101 | taking advantage of display hardware acceleration when available | |
102 | eg. through the X Render Extension). | |
103 | ||
104 | The cairo API provides operations similar to the drawing operators of | |
105 | PostScript and PDF. Operations in cairo including stroking and filling cubic | |
106 | Bézier splines, transforming and compositing translucent images, and | |
107 | antialiased text rendering. All drawing operations can be transformed by any | |
108 | affine 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 | |
157 | applications. It has extensive support for the different writing systems | |
158 | used 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 | |
183 | in 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, | |
212 | is 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 | |
248 | graphical user interfaces. Offering a complete set of widgets, GTK+ is | |
249 | suitable for projects ranging from small one-off tools to complete | |
250 | application 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. | |
306 | Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API | |
307 | stable, providing a firm base on which to do graphics work. Finally, and | |
308 | importantly, it is pleasant to use. You get a powerful and well-maintained | |
309 | graphics library with all of the benefits of Scheme: memory management, | |
310 | exceptions, macros, and a dynamic programming environment.") | |
311 | (license license:lgpl3+))) |