Merge branch 'gtk-im-modules'
[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>
7ec42f1d 3;;; Copyright © 2013, 2014, 2015, 2016 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>
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>
5b003972 11;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
b7807bb2 12;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
21f05134 13;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
9b381643 14;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
97b66a91 15;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
3a08a411
AE
16;;;
17;;; This file is part of GNU Guix.
18;;;
19;;; GNU Guix is free software; you can redistribute it and/or modify it
20;;; under the terms of the GNU General Public License as published by
21;;; the Free Software Foundation; either version 3 of the License, or (at
22;;; your option) any later version.
23;;;
24;;; GNU Guix is distributed in the hope that it will be useful, but
25;;; WITHOUT ANY WARRANTY; without even the implied warranty of
26;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27;;; GNU General Public License for more details.
28;;;
29;;; You should have received a copy of the GNU General Public License
30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
31
32(define-module (gnu packages gtk)
b5b73a82 33 #:use-module ((guix licenses) #:prefix license:)
b38e45d8 34 #:use-module (guix utils)
3a08a411
AE
35 #:use-module (guix packages)
36 #:use-module (guix download)
37 #:use-module (guix build-system gnu)
0b96fb2a 38 #:use-module (guix build-system python)
e926ba71 39 #:use-module (guix build-system waf)
b837e658 40 #:use-module (gnu packages)
3bc45449 41 #:use-module (gnu packages algebra)
1a51fe27
LC
42 #:use-module (gnu packages autotools)
43 #:use-module (gnu packages texinfo)
136770c9 44 #:use-module (gnu packages check)
6131c43d 45 #:use-module (gnu packages compression)
3bc45449 46 #:use-module (gnu packages docbook)
9c0c77f8 47 #:use-module (gnu packages enchant)
6131c43d 48 #:use-module (gnu packages fontutils)
3bc45449 49 #:use-module (gnu packages gettext)
6131c43d 50 #:use-module (gnu packages ghostscript)
31b254a3 51 #:use-module (gnu packages gl)
3a08a411 52 #:use-module (gnu packages glib)
95d439b2 53 #:use-module (gnu packages gnome)
a2609b41 54 #:use-module (gnu packages icu4c)
e55354b8 55 #:use-module (gnu packages image)
9b381643 56 #:use-module (gnu packages libffi)
6131c43d 57 #:use-module (gnu packages pdf)
8b79a547 58 #:use-module (gnu packages perl)
6131c43d 59 #:use-module (gnu packages pkg-config)
3bc45449 60 #:use-module (gnu packages pretty-print)
6131c43d 61 #:use-module (gnu packages python)
8e70e6d2 62 #:use-module (gnu packages guile)
37cb3a69 63 #:use-module (gnu packages cups)
8e70e6d2 64 #:use-module (gnu packages xml)
6c0e878e
LC
65 #:use-module (gnu packages xorg)
66 #:use-module (gnu packages xdisorg))
3a08a411
AE
67
68(define-public atk
69 (package
70 (name "atk")
6983ba56 71 (version "2.20.0")
3a08a411
AE
72 (source (origin
73 (method url-fetch)
3b8e4347 74 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
75 (version-major+minor version) "/"
76 name "-" version ".tar.xz"))
3a08a411
AE
77 (sha256
78 (base32
6983ba56 79 "1w1q29yfxcq67j7fyqrfm0l0n1vy4zn539c0sf4ga9d0qkv50fj9"))))
3a08a411 80 (build-system gnu-build-system)
cd0466eb
SB
81 (outputs '("out" "doc"))
82 (arguments
83 `(#:configure-flags
84 (list (string-append "--with-html-dir="
85 (assoc-ref %outputs "doc")
86 "/share/gtk-doc/html"))))
13a9e291 87 (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
141aed80
LC
88 (native-inputs
89 `(("pkg-config" ,pkg-config)
426adbe8 90 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 91 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
c5cc5006 92 (synopsis "GNOME accessibility toolkit")
3a08a411
AE
93 (description
94 "ATK provides the set of accessibility interfaces that are implemented
35b9e423 95by other toolkits and applications. Using the ATK interfaces, accessibility
3a08a411
AE
96tools have full access to view and control running applications.")
97 (license license:lgpl2.0+)
98 (home-page "https://developer.gnome.org/atk/")))
6131c43d
AE
99
100(define-public cairo
101 (package
102 (name "cairo")
6983ba56 103 (version "1.14.6")
6131c43d
AE
104 (source (origin
105 (method url-fetch)
106 (uri (string-append "http://cairographics.org/releases/cairo-"
107 version ".tar.xz"))
108 (sha256
109 (base32
6983ba56 110 "0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31"))))
6131c43d
AE
111 (build-system gnu-build-system)
112 (propagated-inputs
113 `(("fontconfig" ,fontconfig)
114 ("freetype" ,freetype)
115 ("glib" ,glib)
116 ("libpng" ,libpng)
117 ("libx11" ,libx11)
118 ("libxext" ,libxext)
119 ("libxrender" ,libxrender)
120 ("pixman" ,pixman)))
121 (inputs
122 `(("ghostscript" ,ghostscript)
123 ("libspectre" ,libspectre)
6131c43d 124 ("poppler" ,poppler)
6131c43d
AE
125 ("xextproto" ,xextproto)
126 ("zlib" ,zlib)))
c4c4cc05
JD
127 (native-inputs
128 `(("pkg-config" ,pkg-config)
129 ("python" ,python-wrapper)))
6131c43d 130 (arguments
77888fae
MW
131 `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
132 #:configure-flags '("--enable-tee"))) ; needed for GNU Icecat
6131c43d
AE
133 (synopsis "2D graphics library")
134 (description
135 "Cairo is a 2D graphics library with support for multiple output devices.
136Currently supported output targets include the X Window System (via both
137Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
35b9e423 138output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
6131c43d
AE
139
140Cairo is designed to produce consistent output on all output media while
141taking advantage of display hardware acceleration when available
142eg. through the X Render Extension).
143
144The cairo API provides operations similar to the drawing operators of
35b9e423 145PostScript and PDF. Operations in cairo including stroking and filling cubic
6131c43d 146Bézier splines, transforming and compositing translucent images, and
35b9e423 147antialiased text rendering. All drawing operations can be transformed by any
e881752c 148affine transformation (scale, rotation, shear, etc.).")
6131c43d
AE
149 (license license:lgpl2.1) ; or Mozilla Public License 1.1
150 (home-page "http://cairographics.org/")))
a2609b41
AE
151
152(define-public harfbuzz
153 (package
154 (name "harfbuzz")
6983ba56 155 (version "1.2.4")
a2609b41 156 (source (origin
fd9b3b43 157 (method url-fetch)
5cc3096c 158 (uri (string-append "https://www.freedesktop.org/software/"
fd9b3b43
SB
159 "harfbuzz/release/harfbuzz-"
160 version ".tar.bz2"))
161 (sha256
162 (base32
6983ba56 163 "14g4kpph8hgplkm954daxiymxx0vicfq7b7svvdsx54g5bqvv7a4"))))
a2609b41 164 (build-system gnu-build-system)
0a129f39
SB
165 (outputs '("out"
166 "bin")) ; 160K, only hb-view depend on cairo
a2609b41 167 (inputs
fd9b3b43
SB
168 `(("cairo" ,cairo)))
169 (propagated-inputs
170 ;; There are all in the Requires or Requires.private field of '.pc'.
171 `(("glib" ,glib)
27383915 172 ("graphite2" ,graphite2)
c4c4cc05
JD
173 ("icu4c" ,icu4c)))
174 (native-inputs
a30a0455
SB
175 `(("gobject-introspection" ,gobject-introspection)
176 ("pkg-config" ,pkg-config)
ac462e52 177 ("python" ,python-2))) ; incompatible with Python 3 (print syntax)
27383915 178 (arguments
a30a0455 179 `(#:configure-flags `("--with-graphite2"
eb6afbcd
SB
180 "--with-gobject"
181 ,(string-append
182 "--bindir=" (assoc-ref %outputs "bin") "/bin"))))
35b9e423 183 (synopsis "OpenType text shaping engine")
a2609b41
AE
184 (description
185 "HarfBuzz is an OpenType text shaping engine.")
186 (license (license:x11-style "file://COPYING"
187 "See 'COPYING' in the distribution."))
188 (home-page "http://www.freedesktop.org/wiki/Software/HarfBuzz/")))
4b9adff9
AE
189
190(define-public pango
191 (package
192 (name "pango")
d9985082 193 (version "1.40.1")
4b9adff9
AE
194 (source (origin
195 (method url-fetch)
dca1b58d
FB
196 (uri (string-append "mirror://gnome/sources/pango/"
197 (version-major+minor version) "/"
198 name "-" version ".tar.xz"))
4b9adff9
AE
199 (sha256
200 (base32
d9985082 201 "0h0sbh0b5kh3lvrxrb82bs86rqakf33a9jakpv33lay7f90zayp2"))))
4b9adff9 202 (build-system gnu-build-system)
cf2135ff 203 (propagated-inputs
4b9adff9 204 `(("cairo" ,cairo)
4169a4bc
AE
205 ("harfbuzz" ,harfbuzz)))
206 (inputs
9a5acb54
JL
207 `(("zlib" ,zlib)
208
209 ;; Some packages, such as Openbox, expect Pango to be built with the
210 ;; optional libxft support.
211 ("libxft" ,libxft)))
c4c4cc05 212 (native-inputs
141aed80 213 `(("pkg-config" ,pkg-config)
426adbe8 214 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 215 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
4b9adff9
AE
216 (synopsis "GNOME text and font handling library")
217 (description
218 "Pango is the core text and font handling library used in GNOME
35b9e423 219applications. It has extensive support for the different writing systems
4b9adff9
AE
220used throughout the world.")
221 (license license:lgpl2.0+)
222 (home-page "https://developer.gnome.org/pango/")))
527e7961 223
5698b8b8
JD
224(define-public pangox-compat
225 (package
226 (name "pangox-compat")
227 (version "0.0.2")
228 (source (origin
229 (method url-fetch)
b38e45d8
EB
230 (uri (string-append "mirror://gnome/sources/" name "/"
231 (version-major+minor version) "/"
232 name "-" version ".tar.xz"))
5698b8b8
JD
233 (sha256
234 (base32
235 "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m"))))
236 (build-system gnu-build-system)
237 (inputs
238 `(("glib" ,glib)
239 ("pango" ,pango)))
240 (native-inputs
241 `(("intltool" ,intltool)
242 ("pkg-config" ,pkg-config)))
243 (home-page "https://developer.gnome.org/pango")
35b9e423 244 (synopsis "Obsolete pango functions")
5698b8b8
JD
245 (description "Pangox was a X backend to pango. It is now obsolete and no
246longer provided by recent pango releases. pangox-compat provides the
247functions which were removed.")
248 (license license:lgpl2.0+)))
249
e926ba71
RW
250(define-public ganv
251 (package
252 (name "ganv")
253 (version "1.4.2")
254 (source (origin
255 (method url-fetch)
256 (uri (string-append "http://download.drobilla.net/ganv-"
ea7f3349 257 version ".tar.bz2"))
e926ba71
RW
258 (sha256
259 (base32
260 "0g7s5mp14qgbfjdql0k1s8464r21g47ssn5dws6jazsnw6njhl0l"))))
261 (build-system waf-build-system)
ea7f3349
LC
262 (arguments
263 `(#:phases (alist-cons-before
d8c317df 264 'configure 'set-flags
ea7f3349 265 (lambda* (#:key outputs #:allow-other-keys)
d8c317df
SB
266 ;; Compile with C++11, required by gtkmm.
267 (setenv "CXXFLAGS" "-std=c++11")
ea7f3349
LC
268 ;; Allow 'bin/ganv_bench' to find libganv-1.so.
269 (setenv "LDFLAGS"
270 (string-append "-Wl,-rpath="
271 (assoc-ref outputs "out") "/lib")))
272 %standard-phases)
273 #:tests? #f)) ; no check target
e926ba71
RW
274 (inputs
275 `(("gtk" ,gtk+-2)
276 ("gtkmm" ,gtkmm-2)))
277 (native-inputs
278 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
279 ("pkg-config" ,pkg-config)))
280 (home-page "http://drobilla.net/software/ganv/")
281 (synopsis "GTK+ widget for interactive graph-like environments")
282 (description
283 "Ganv is an interactive GTK+ widget for interactive “boxes and lines” or
284graph-like environments, e.g. modular synths or finite state machine
285diagrams.")
286 (license license:gpl3+)))
95d439b2 287
c900f843 288(define-public gtksourceview-2
95d439b2
JD
289 (package
290 (name "gtksourceview")
291 (version "2.10.5") ; This is the last version which builds against gtk+2
292 (source (origin
293 (method url-fetch)
b38e45d8
EB
294 (uri (string-append "mirror://gnome/sources/" name "/"
295 (version-major+minor version) "/"
296 name "-" version ".tar.bz2"))
95d439b2
JD
297 (sha256
298 (base32
299 "07hrabhpl6n8ajz10s0d960jdwndxs87szxyn428mpxi8cvpg1f5"))))
300 (build-system gnu-build-system)
301 (inputs
c4c4cc05 302 `(("gtk" ,gtk+-2)
95d439b2
JD
303 ;; These two are needed only to allow the tests to run successfully.
304 ("xorg-server" ,xorg-server)
305 ("shared-mime-info" ,shared-mime-info)))
c4c4cc05 306 (native-inputs
44add1ce 307 `(("intltool" ,intltool)
221ed17a 308 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
c4c4cc05 309 ("pkg-config" ,pkg-config)))
68d85de1
TUBK
310 (propagated-inputs
311 ;; As per the pkg-config file.
312 `(("libxml2" ,libxml2)))
95d439b2
JD
313 (arguments
314 `(#:phases
315 ;; Unfortunately, some of the tests in "make check" are highly dependent
316 ;; on the environment therefore, some black magic is required.
317 (alist-cons-before
318 'check 'start-xserver
319 (lambda* (#:key inputs #:allow-other-keys)
320 (let ((xorg-server (assoc-ref inputs "xorg-server"))
321 (mime (assoc-ref inputs "shared-mime-info")))
322
323 ;; There must be a running X server and make check doesn't start one.
324 ;; Therefore we must do it.
325 (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
326 (setenv "DISPLAY" ":1")
327
328 ;; The .lang files must be found in $XDG_DATA_HOME/gtksourceview-2.0
329 (system "ln -s gtksourceview gtksourceview-2.0")
330 (setenv "XDG_DATA_HOME" (getcwd))
331
332 ;; Finally, the mimetypes must be available.
333 (setenv "XDG_DATA_DIRS" (string-append mime "/share/")) ))
334 %standard-phases)))
335 (synopsis "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget")
336 (description
337 "GtkSourceView is a portable C library that extends the standard GTK+
338framework for multiline text editing with support for configurable syntax
339highlighting, unlimited undo/redo, search and replace, a completion framework,
340printing and other features typical of a source code editor.")
341 (license license:lgpl2.0+)
342 (home-page "https://developer.gnome.org/gtksourceview/")))
343
c900f843
DH
344(define-public gtksourceview
345 (package
346 (name "gtksourceview")
96e889b0 347 (version "3.20.2")
c900f843
DH
348 (source (origin
349 (method url-fetch)
350 (uri (string-append "mirror://gnome/sources/" name "/"
351 (version-major+minor version) "/"
352 name "-" version ".tar.xz"))
353 (sha256
354 (base32
96e889b0 355 "03vxirdbjpgjrkl5ph0p9b1saq17xxr4kvhz1ijpg40a9jf3ci4y"))))
c900f843
DH
356 (build-system gnu-build-system)
357 (arguments
358 '(#:phases
359 (modify-phases %standard-phases
360 (add-before
361 'check 'pre-check
362 (lambda* (#:key inputs #:allow-other-keys)
363 (let ((xorg-server (assoc-ref inputs "xorg-server")))
364 ;; Tests require a running X server.
365 (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
366 (setenv "DISPLAY" ":1")
367 ;; For the missing /etc/machine-id.
368 (setenv "DBUS_FATAL_WARNINGS" "0")
369 #t))))))
370 (native-inputs
371 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
372 ("intltool" ,intltool)
b3546174 373 ("itstool" ,itstool)
c900f843
DH
374 ("gobject-introspection" ,gobject-introspection)
375 ("pkg-config" ,pkg-config)
376 ("vala" ,vala)
377 ;; For testing.
378 ("xorg-server" ,xorg-server)
379 ("shared-mime-info" ,shared-mime-info)))
380 (propagated-inputs
381 ;; gtksourceview-3.0.pc refers to all these.
382 `(("glib" ,glib)
383 ("gtk+" ,gtk+)
384 ("libxml2" ,libxml2)))
385 (home-page "https://wiki.gnome.org/Projects/GtkSourceView")
386 (synopsis "GNOME source code widget")
387 (description "GtkSourceView is a text widget that extends the standard
388GTK+ text widget GtkTextView. It improves GtkTextView by implementing syntax
389highlighting and other features typical of a source code editor.")
390 (license license:lgpl2.1+)))
391
527e7961
AE
392(define-public gdk-pixbuf
393 (package
394 (name "gdk-pixbuf")
6983ba56 395 (version "2.34.0")
527e7961
AE
396 (source (origin
397 (method url-fetch)
b38e45d8
EB
398 (uri (string-append "mirror://gnome/sources/" name "/"
399 (version-major+minor version) "/"
400 name "-" version ".tar.xz"))
527e7961
AE
401 (sha256
402 (base32
6983ba56 403 "0yc8indbl3hf18z6x6kjg59xp9sngm1d8vmz4c7bs6g27qw5npnm"))))
527e7961 404 (build-system gnu-build-system)
48f46dc3 405 (arguments
a63a73dc
SB
406 '(#:configure-flags '("--with-x11")
407 #:phases
408 (modify-phases %standard-phases
409 (add-after
410 'unpack 'disable-failing-tests
411 (lambda _
412 (substitute* "tests/Makefile.in"
fe08b6e1
EF
413 ;; XXX FIXME: This test fails on armhf machines with:
414 ;; SKIP Not enough memory to load bitmap image
415 ;; ERROR: cve-2015-4491 - too few tests run (expected 4, got 2)
a63a73dc
SB
416 (("cve-2015-4491\\$\\(EXEEXT\\) ") "")
417 ;; XXX FIXME: This test fails with:
418 ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag:
419 ;; assertion failed (error == NULL): Data differ
420 ;; (gdk-pixbuf-error-quark, 0)
421 (("pixbuf-jpeg\\$\\(EXEEXT\\) ") ""))
422 #t)))))
6983ba56
SB
423 (propagated-inputs
424 `(;; Required by gdk-pixbuf-2.0.pc
425 ("glib" ,glib)
426 ("libpng" ,libpng)
427 ;; Used for testing and required at runtime.
428 ("shared-mime-info" ,shared-mime-info)))
1b5758a6
SB
429 (inputs
430 `(("libjpeg" ,libjpeg)
48f46dc3 431 ("libtiff" ,libtiff)
224276ab 432 ("libx11" ,libx11)))
c4c4cc05 433 (native-inputs
141aed80 434 `(("pkg-config" ,pkg-config)
426adbe8 435 ("glib" ,glib "bin") ; glib-mkenums, etc.
b3546174 436 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
527e7961
AE
437 (synopsis "GNOME image loading and manipulation library")
438 (description
439 "GdkPixbuf is a library for image loading and manipulation developed
440in the GNOME project.")
441 (license license:lgpl2.0+)
442 (home-page "https://developer.gnome.org/gdk-pixbuf/")))
cf2135ff 443
34dc3907
SB
444;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
445;; on gdk-pixbuf, so this new varibale. Also, librsvg adds 90MiB to the
446;; closure size.
447(define-public gdk-pixbuf+svg
448 (package (inherit gdk-pixbuf)
449 (name "gdk-pixbuf+svg")
450 (inputs
451 `(("librsvg" ,librsvg)
452 ,@(package-inputs gdk-pixbuf)))
453 (arguments
454 '(#:configure-flags '("--with-x11")
455 #:tests? #f ; tested by the gdk-pixbuf package already
456 #:phases
457 (modify-phases %standard-phases
458 (add-after 'install 'register-svg-loader
459 (lambda* (#:key inputs outputs #:allow-other-keys)
460 (let* ((out (assoc-ref outputs "out"))
461 (librsvg (assoc-ref inputs "librsvg"))
462 (loaders
463 (append
464 (find-files out "^libpixbufloader-.*\\.so$")
465 (find-files librsvg "^libpixbufloader-.*\\.so$")))
466 (gdk-pixbuf-query-loaders
467 (string-append out "/bin/gdk-pixbuf-query-loaders")))
468 (zero? (apply system* `(,gdk-pixbuf-query-loaders
469 "--update-cache" ,@loaders)))))))))
470 (synopsis
471 "GNOME image loading and manipulation library, with SVG support")))
472
f3fb92e5
AE
473(define-public at-spi2-core
474 (package
475 (name "at-spi2-core")
b67e35e2 476 (version "2.20.1")
f3fb92e5
AE
477 (source (origin
478 (method url-fetch)
479 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
480 (version-major+minor version) "/"
481 name "-" version ".tar.xz"))
f3fb92e5
AE
482 (sha256
483 (base32
b67e35e2 484 "0039y6bj1zfzhmfjbj5g830dlczphbpvbgmkcab9mapmh7kmin3f"))))
f3fb92e5 485 (build-system gnu-build-system)
068a53c3 486 (outputs '("out" "doc"))
f3fb92e5 487 (arguments
b19d6805 488 '(#:configure-flags
068a53c3
SB
489 (list (string-append "--with-html-dir="
490 (assoc-ref %outputs "doc")
491 "/share/gtk-doc/html"))
50cc7f41 492 #:phases
af108677 493 (modify-phases %standard-phases
3a4de6b2 494 (replace 'check
af108677
SB
495 ;; Run test-suite under a dbus session.
496 (lambda _
37fe56cf
SB
497 ;; Don't fail on missing '/etc/machine-id'.
498 (setenv "DBUS_FATAL_WARNINGS" "0")
af108677 499 (zero? (system* "dbus-launch" "make" "check")))))))
c6a552da
SB
500 (propagated-inputs
501 ;; atspi-2.pc refers to all these.
502 `(("dbus" ,dbus)
503 ("glib" ,glib)))
504 (inputs
505 `(("libxi" ,libxi)
506 ("libxtst" ,libxtst)))
c4c4cc05 507 (native-inputs
50cc7f41
SB
508 `(("gobject-introspection" ,gobject-introspection)
509 ("intltool" ,intltool)
510 ("pkg-config" ,pkg-config)))
f3fb92e5
AE
511 (synopsis "Assistive Technology Service Provider Interface, core components")
512 (description
513 "The Assistive Technology Service Provider Interface, core components,
514is part of the GNOME accessibility project.")
515 (license license:lgpl2.0+)
516 (home-page "https://projects.gnome.org/accessibility/")))
517
5fda4784
AE
518(define-public at-spi2-atk
519 (package
520 (name "at-spi2-atk")
f507609e 521 (version "2.20.1")
5fda4784
AE
522 (source (origin
523 (method url-fetch)
524 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
525 (version-major+minor version) "/"
526 name "-" version ".tar.xz"))
5fda4784
AE
527 (sha256
528 (base32
f507609e 529 "13mzfwra0izmkzn7dsdgy5zj19n8izp0wdy7w1yg9s0qx6aafn13"))))
5fda4784 530 (build-system gnu-build-system)
5fda4784 531 (arguments
57fcd224
SB
532 '(#:phases
533 (modify-phases %standard-phases
3a4de6b2 534 (replace 'check
57fcd224
SB
535 ;; Run test-suite under a dbus session.
536 (lambda _
5fba12ec 537 (setenv "DBUS_FATAL_WARNINGS" "0")
57fcd224 538 (zero? (system* "dbus-launch" "make" "check")))))))
6967cc3f
SB
539 (propagated-inputs
540 `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
541 (inputs
542 `(("atk" ,atk)))
c4c4cc05 543 (native-inputs
6967cc3f
SB
544 `(("dbus" ,dbus) ; for testing
545 ("pkg-config" ,pkg-config)))
5fda4784
AE
546 (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
547 (description
548 "The Assistive Technology Service Provider Interface
549is part of the GNOME accessibility project.")
550 (license license:lgpl2.0+)
551 (home-page "https://projects.gnome.org/accessibility/")))
552
8b79a547 553(define-public gtk+-2
cf2135ff
AE
554 (package
555 (name "gtk+")
6983ba56 556 (version "2.24.30")
cf2135ff
AE
557 (source (origin
558 (method url-fetch)
1c8362a8 559 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
560 (version-major+minor version) "/"
561 name "-" version ".tar.xz"))
cf2135ff
AE
562 (sha256
563 (base32
6983ba56
SB
564 "0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d"))
565 (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
711670c0 566 "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
6983ba56 567 "gtk2-theme-paths.patch"))))
cf2135ff 568 (build-system gnu-build-system)
6b1f2388 569 (outputs '("out" "doc"))
4169a4bc 570 (propagated-inputs
cf2135ff 571 `(("atk" ,atk)
6983ba56 572 ("gdk-pixbuf" ,gdk-pixbuf+svg)
4169a4bc 573 ("pango" ,pango)))
dfbce50c
SB
574 (inputs
575 `(("cups" ,cups)
576 ("libxcomposite" ,libxcomposite)
577 ("libxcursor" ,libxcursor)
578 ("libxdamage" ,libxdamage)
579 ("libxi" ,libxi)
580 ("libxinerama" ,libxinerama)
581 ("libxrandr" ,libxrandr)))
c4c4cc05 582 (native-inputs
1c8362a8 583 `(("perl" ,perl)
dfbce50c 584 ("gettext" ,gnu-gettext)
426adbe8 585 ("glib" ,glib "bin")
9d297fae 586 ("gobject-introspection" ,gobject-introspection)
1c8362a8
AE
587 ("pkg-config" ,pkg-config)
588 ("python-wrapper" ,python-wrapper)))
cf2135ff 589 (arguments
b19d6805 590 `(#:configure-flags
6b1f2388
SB
591 (list "--with-xinput=yes"
592 (string-append "--with-html-dir="
593 (assoc-ref %outputs "doc")
594 "/share/gtk-doc/html"))
9d297fae 595 #:phases
d4bf49b1
EB
596 (alist-cons-before
597 'configure 'disable-tests
598 (lambda _
599 ;; FIXME: re-enable tests requiring an X server
600 (substitute* "gtk/Makefile.in"
601 (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits .")))
2a6afac9
RW
602 %standard-phases)))
603 (native-search-paths
604 (list (search-path-specification
605 (variable "GUIX_GTK2_PATH")
606 (files '("lib/gtk-2.0")))))
0327ced2 607 (synopsis "Cross-platform toolkit for creating graphical user interfaces")
cf2135ff
AE
608 (description
609 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
35b9e423 610graphical user interfaces. Offering a complete set of widgets, GTK+ is
cf2135ff
AE
611suitable for projects ranging from small one-off tools to complete
612application suites.")
613 (license license:lgpl2.0+)
614 (home-page "http://www.gtk.org/")))
8e70e6d2 615
8b79a547
AE
616(define-public gtk+
617 (package (inherit gtk+-2)
b38e45d8 618 (name "gtk+")
ccce435a 619 (version "3.20.3")
8b79a547
AE
620 (source (origin
621 (method url-fetch)
b38e45d8
EB
622 (uri (string-append "mirror://gnome/sources/" name "/"
623 (version-major+minor version) "/"
624 name "-" version ".tar.xz"))
8b79a547
AE
625 (sha256
626 (base32
ccce435a 627 "157nh9gg0p2avw765hrnkvr8lsh2w811397yxgjv6q5j4fzz6d1q"))
234e7980
RW
628 (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
629 "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
0e112540 630 (propagated-inputs
8b79a547 631 `(("at-spi2-atk" ,at-spi2-atk)
0e112540 632 ("atk" ,atk)
6983ba56 633 ("gdk-pixbuf" ,gdk-pixbuf+svg)
31b254a3 634 ("libepoxy" ,libepoxy)
a572dca8 635 ("libxcursor" ,libxcursor)
8b79a547
AE
636 ("libxi" ,libxi)
637 ("libxinerama" ,libxinerama)
9e5c0927 638 ("libxdamage" ,libxdamage)
0e112540
AE
639 ("pango" ,pango)))
640 (inputs
6983ba56 641 `(("libxml2" ,libxml2)
1cb16f1e
SB
642 ;; XXX: colord depends on mozjs (through polkit), which fails on
643 ;; on non-intel systems now.
644 ;;("colord" ,colord)
a572dca8 645 ("cups" ,cups) ;for printing support
a2651b54
SB
646 ;; XXX: rest depends on p11-kit, which fails on mips64el now.
647 ;;("rest" ,rest)
a572dca8 648 ("json-glib" ,json-glib)))
c4c4cc05 649 (native-inputs
141aed80 650 `(("perl" ,perl)
426adbe8 651 ("glib" ,glib "bin")
31b254a3 652 ("gettext" ,gnu-gettext)
8b79a547 653 ("pkg-config" ,pkg-config)
141aed80 654 ("gobject-introspection" ,gobject-introspection)
8b79a547 655 ("python-wrapper" ,python-wrapper)
97f94f5e 656 ("xorg-server" ,xorg-server)))
8b79a547 657 (arguments
260b07a7
LC
658 `(;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes
659 ;; to "doc".
660 #:configure-flags (list (string-append "--with-html-dir="
661 (assoc-ref %outputs "doc")
662 "/share/gtk-doc/html"))
663 #:phases
31b254a3
AW
664 (alist-cons-before
665 'configure 'pre-configure
666 (lambda _
667 ;; Disable most tests, failing in the chroot with the message:
668 ;; D-Bus library appears to be incorrectly set up; failed to read
669 ;; machine uuid: Failed to open "/etc/machine-id": No such file or
670 ;; directory.
671 ;; See the manual page for dbus-uuidgen to correct this issue.
672 (substitute* "testsuite/Makefile.in"
673 (("SUBDIRS = gdk gtk a11y css reftests")
674 "SUBDIRS = gdk"))
31b254a3 675 #t)
6983ba56 676 %standard-phases)))
4828ff91
RW
677 (native-search-paths
678 (list (search-path-specification
679 (variable "GUIX_GTK3_PATH")
680 (files '("lib/gtk-3.0")))))))
5fda4784 681
8e70e6d2
LC
682;;;
683;;; Guile bindings.
684;;;
685
686(define-public guile-cairo
687 (package
688 (name "guile-cairo")
689 (version "1.4.1")
690 (source (origin
691 (method url-fetch)
692 (uri (string-append
693 "http://download.gna.org/guile-cairo/guile-cairo-"
694 version
695 ".tar.gz"))
696 (sha256
697 (base32
698 "1f5nd9n46n6cwfl1byjml02q3y2hgn7nkx98km1czgwarxl7ws3x"))))
699 (build-system gnu-build-system)
700 (arguments
701 '(#:phases (alist-cons-before
702 'configure 'set-module-directory
703 (lambda* (#:key outputs #:allow-other-keys)
704 ;; Install modules under $out/share/guile/site/2.0.
705 (let ((out (assoc-ref outputs "out")))
706 (substitute* "Makefile.in"
707 (("scmdir = ([[:graph:]]+).*" _ value)
708 (string-append "scmdir = " value "/2.0\n")))
709 (substitute* "cairo/Makefile.in"
710 (("moduledir = ([[:graph:]]+).*" _ value)
711 (string-append "moduledir = "
712 "$(prefix)/share/guile/site/2.0/cairo\n'")))))
713 (alist-cons-after
714 'install 'install-missing-file
715 (lambda* (#:key outputs #:allow-other-keys)
716 ;; By default 'vector-types.scm' is not installed, so do
717 ;; it here.
718 (let ((out (assoc-ref outputs "out")))
719 (copy-file "cairo/vector-types.scm"
720 (string-append out "/share/guile/site/2.0"
721 "/cairo/vector-types.scm"))))
722 %standard-phases))))
723 (inputs
724 `(("guile-lib" ,guile-lib)
725 ("expat" ,expat)
8e70e6d2 726 ("guile" ,guile-2.0)))
49710cea
LC
727 (propagated-inputs
728 ;; The .pc file refers to 'cairo'.
729 `(("cairo" ,cairo)))
c4c4cc05
JD
730 (native-inputs
731 `(("pkg-config" ,pkg-config)))
8e70e6d2
LC
732 (home-page "http://www.nongnu.org/guile-cairo/")
733 (synopsis "Cairo bindings for GNU Guile")
734 (description
735 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
736Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API
737stable, providing a firm base on which to do graphics work. Finally, and
738importantly, it is pleasant to use. You get a powerful and well-maintained
739graphics library with all of the benefits of Scheme: memory management,
740exceptions, macros, and a dynamic programming environment.")
741 (license license:lgpl3+)))
66663503 742
1a51fe27
LC
743(define-public guile-rsvg
744 (package
745 (name "guile-rsvg")
746 (version "2.18.1")
747 (source (origin
748 (method url-fetch)
749 (uri (string-append "http://wingolog.org/pub/guile-rsvg/"
750 name "-" version ".tar.gz"))
751 (sha256
752 (base32
753 "136f236iw3yrrz6pkkp1ma9c5mrs5icqha6pnawinqpk892r3jh7"))
fc1adab1 754 (patches (search-patches "guile-rsvg-pkgconfig.patch"))
1a51fe27
LC
755 (modules '((guix build utils)))
756 (snippet
757 '(substitute* (find-files "." "Makefile\\.am")
758 (("/share/guile/site")
759 "/share/guile/site/2.0")))))
760 (build-system gnu-build-system)
761 (arguments
762 `(#:phases (modify-phases %standard-phases
763 (add-before 'configure 'bootstrap
764 (lambda _
765 (zero? (system* "autoreconf" "-vfi")))))))
766 (native-inputs `(("pkg-config" ,pkg-config)
767 ("autoconf" ,autoconf)
768 ("automake" ,automake)
769 ("libtool" ,libtool)
770 ("texinfo" ,texinfo)))
771 (inputs `(("guile" ,guile-2.0)
772 ("librsvg" ,librsvg)
773 ("guile-lib" ,guile-lib))) ;for (unit-test)
774 (propagated-inputs `(("guile-cairo" ,guile-cairo)))
775 (synopsis "Render SVG images using Cairo from Guile")
776 (description
777 "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
778images onto Cairo surfaces.")
779 (home-page "http://wingolog.org/projects/guile-rsvg/")
780 (license license:lgpl2.1+)))
7ca0dbc3 781
cdd383e9
LC
782(define-public guile-present
783 (package
784 (name "guile-present")
785 (version "0.3.0")
786 (source (origin
787 (method url-fetch)
788 (uri (string-append "http://wingolog.org/pub/guile-present/"
789 "guile-present-" version ".tar.gz"))
790 (sha256
791 (base32
792 "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
fc1adab1 793 (patches (search-patches "guile-present-coding.patch"))
cdd383e9
LC
794 (modules '((guix build utils)))
795 (snippet
796 '(substitute* "Makefile.in"
797 (("godir = .*$")
798 "godir = $(moddir)\n")))))
799 (build-system gnu-build-system)
800 (arguments
801 '(#:phases (alist-cons-after
802 'install 'post-install
803 (lambda* (#:key inputs outputs #:allow-other-keys)
804 (let* ((out (assoc-ref outputs "out"))
805 (bin (string-append out "/bin"))
806 (guile (assoc-ref inputs "guile")))
807 (substitute* (find-files bin ".*")
808 (("guile")
809 (string-append guile "/bin/guile -L "
810 out "/share/guile/site/2.0 -C "
811 out "/share/guile/site/2.0 ")))))
812 %standard-phases)))
813 (native-inputs `(("pkg-config" ,pkg-config)))
814 (inputs `(("guile" ,guile-2.0)))
815 (propagated-inputs
816 ;; These are used by the (present …) modules.
817 `(("guile-lib" ,guile-lib)
818 ("guile-cairo" ,guile-cairo)
819 ("guile-rsvg" ,guile-rsvg)))
820 (home-page "http://wingolog.org/software/guile-present/")
821 (synopsis "Create SVG or PDF presentations in Guile")
822 (description
823 "Guile-Present defines a declarative vocabulary for presentations,
824together with tools to render presentation documents as SVG or PDF.
825Guile-Present can be used to make presentations programmatically, but also
826includes a tools to generate PDF presentations out of Org mode and Texinfo
827documents.")
828 (license license:lgpl3+)))
7ca0dbc3 829
9b381643
PH
830(define-public guile-gnome
831 (package
832 (name "guile-gnome")
833 (version "2.16.4")
834 (source (origin
835 (method url-fetch)
836 (uri
837 (string-append "mirror://gnu/" name
838 "/guile-gnome-platform/guile-gnome-platform-"
839 version ".tar.gz"))
840 (sha256
841 (base32
842 "1hqnqbb2lmr3hgbcv9kds1himn3av6h0lkk0zll8agcrsn7d9axd"))))
843 (build-system gnu-build-system)
844 (native-inputs
845 `(("pkg-config" ,pkg-config)
846 ("atk" ,atk)
847 ;;("corba" ,corba) ; not packaged yet
848 ("gconf" ,gconf)
849 ("gobject-introspection" ,gobject-introspection)
850 ;;("gthread" ,gthread) ; not packaged yet
851 ("gnome-vfs" ,gnome-vfs)
852 ("gdk-pixbuf" ,gdk-pixbuf)
853 ("gtk+" ,gtk+-2)
854 ("libglade" ,libglade)
855 ("libgnome" ,libgnome)
856 ("libgnomecanvas" ,libgnomecanvas)
857 ("libgnomeui" ,libgnomeui)
858 ("pango" ,pango)
859 ("libffi" ,libffi)
860 ("glib" ,glib)))
861 (inputs `(("guile" ,guile-2.0)))
862 (propagated-inputs
863 `(("guile-cairo" ,guile-cairo)
864 ("g-wrap" ,g-wrap)
865 ("guile-lib" ,guile-lib)))
866 (arguments
867 `(#:tests? #f ;FIXME
868 #:phases (modify-phases %standard-phases
869 (add-before 'configure 'pre-configure
870 (lambda* (#:key outputs #:allow-other-keys)
871 (let ((out (assoc-ref outputs "out")))
872 (substitute* (find-files "." "^Makefile.in$")
873 (("guilesite :=.*guile/site" all)
874 (string-append all "/2.0")))
875 #t))))))
876 (outputs '("out" "debug"))
877 (synopsis "Guile interface for GTK+ programming for GNOME")
878 (description
879 "Includes guile-clutter, guile-gnome-gstreamer,
880guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
881 (home-page "http://www.gnu.org/software/guile-gnome/")
882 (license license:gpl2+)))
883
66663503
LC
884;;;
885;;; C++ bindings.
886;;;
887
888(define-public cairomm
889 (package
890 (name "cairomm")
2079087c 891 (version "1.12.0")
66663503 892 (source (origin
2079087c
SB
893 (method url-fetch)
894 (uri (string-append "mirror://gnome/sources/cairomm/"
895 (version-major+minor version) "/"
896 name "-" version ".tar.xz"))
897 (sha256
898 (base32
899 "1rmgs6zjj2vaxh9hsa0944m23fdn1psycqh7bi984qd8jj1xljm5"))))
66663503
LC
900 (build-system gnu-build-system)
901 (arguments
902 ;; The examples lack -lcairo.
903 '(#:make-flags '("LDFLAGS=-lcairo")))
c4c4cc05 904 (native-inputs `(("pkg-config" ,pkg-config)))
66663503
LC
905 (propagated-inputs
906 `(("libsigc++" ,libsigc++)
907 ("freetype" ,freetype)
908 ("fontconfig" ,fontconfig)
909 ("cairo" ,cairo)))
910 (home-page "http://cairographics.org/")
911 (synopsis "C++ bindings to the Cairo 2D graphics library")
912 (description
913 "Cairomm provides a C++ programming interface to the Cairo 2D graphics
914library.")
915 (license license:lgpl2.0+)))
c5cc5006
LC
916
917(define-public pangomm
918 (package
919 (name "pangomm")
6983ba56 920 (version "2.40.0")
c5cc5006
LC
921 (source (origin
922 (method url-fetch)
b38e45d8
EB
923 (uri (string-append "mirror://gnome/sources/" name "/"
924 (version-major+minor version) "/"
925 name "-" version ".tar.xz"))
c5cc5006
LC
926 (sha256
927 (base32
6983ba56 928 "03fpqdjp7plybf4zsgszbm8yhgl28vmajzfpmaqcsmyfvjlszl3x"))))
c5cc5006 929 (build-system gnu-build-system)
c4c4cc05 930 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
931 (propagated-inputs
932 `(("cairo" ,cairo)
933 ("cairomm" ,cairomm)
934 ("glibmm" ,glibmm)
935 ("pango" ,pango)))
936 (home-page "http://www.pango.org/")
937 (synopsis "C++ interface to the Pango text rendering library")
938 (description
939 "Pangomm provides a C++ programming interface to the Pango text rendering
940library.")
941 (license license:lgpl2.1+)))
942
943(define-public atkmm
944 (package
945 (name "atkmm")
5b003972 946 (version "2.24.2")
c5cc5006
LC
947 (source (origin
948 (method url-fetch)
b38e45d8
EB
949 (uri (string-append "mirror://gnome/sources/" name "/"
950 (version-major+minor version) "/"
951 name "-" version ".tar.xz"))
c5cc5006
LC
952 (sha256
953 (base32
5b003972 954 "1gaqwhviadsmy0fsr47686yglv1p4mpkamj0in127bz2b5bki5gz"))))
c5cc5006 955 (build-system gnu-build-system)
c4c4cc05 956 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
957 (propagated-inputs
958 `(("glibmm" ,glibmm) ("atk" ,atk)))
959 (home-page "http://www.gtkmm.org")
960 (synopsis "C++ interface to the ATK accessibility library")
961 (description
962 "ATKmm provides a C++ programming interface to the ATK accessibility
963toolkit.")
964 (license license:lgpl2.1+)))
965
966(define-public gtkmm
967 (package
968 (name "gtkmm")
3f57959c 969 (version "3.20.1")
c5cc5006
LC
970 (source (origin
971 (method url-fetch)
b38e45d8
EB
972 (uri (string-append "mirror://gnome/sources/" name "/"
973 (version-major+minor version) "/"
974 name "-" version ".tar.xz"))
c5cc5006
LC
975 (sha256
976 (base32
3f57959c 977 "04n631a127pyidaz82ypdy9syq1hzj636r32y9hyr9kcfnwf2785"))))
c5cc5006 978 (build-system gnu-build-system)
ff5c33fe 979 (native-inputs `(("pkg-config" ,pkg-config)
ba470833
LC
980 ("glib" ,glib "bin") ;for 'glib-compile-resources'
981 ("xorg-server" ,xorg-server)))
c5cc5006
LC
982 (propagated-inputs
983 `(("pangomm" ,pangomm)
984 ("cairomm" ,cairomm)
985 ("atkmm" ,atkmm)
986 ("gtk+" ,gtk+)
987 ("glibmm" ,glibmm)))
ba470833
LC
988 (arguments
989 '(#:phases (modify-phases %standard-phases
990 (add-before 'check 'run-xvfb
991 (lambda* (#:key inputs #:allow-other-keys)
992 (let ((xorg-server (assoc-ref inputs "xorg-server")))
993 ;; Tests such as 'object_move/test' require a running
994 ;; X server.
995 (system (string-append xorg-server "/bin/Xvfb :1 &"))
996 (setenv "DISPLAY" ":1")
997 ;; Don't fail because of the missing /etc/machine-id.
998 (setenv "DBUS_FATAL_WARNINGS" "0")
999 #t))))))
c5cc5006
LC
1000 (home-page "http://gtkmm.org/")
1001 (synopsis
1002 "C++ interface to the GTK+ graphical user interface library")
1003 (description
1004 "gtkmm is the official C++ interface for the popular GUI library GTK+.
1005Highlights include typesafe callbacks, and a comprehensive set of widgets that
1006are easily extensible via inheritance. You can create user interfaces either
1007in code or with the Glade User Interface designer, using libglademm. There's
1008extensive documentation, including API reference and a tutorial.")
1009 (license license:lgpl2.1+)))
9c086443
JD
1010
1011
1012(define-public gtkmm-2
1013 (package (inherit gtkmm)
b38e45d8 1014 (name "gtkmm")
f8f63893 1015 (version "2.24.4")
9c086443
JD
1016 (source (origin
1017 (method url-fetch)
b38e45d8
EB
1018 (uri (string-append "mirror://gnome/sources/" name "/"
1019 (version-major+minor version) "/"
1020 name "-" version ".tar.xz"))
9c086443
JD
1021 (sha256
1022 (base32
f8f63893 1023 "1vpmjqv0aqb1ds0xi6nigxnhlr0c74090xzi15b92amlzkrjyfj4"))))
3ad29c9e
SB
1024 (arguments
1025 '(#:configure-flags '("CPPFLAGS=-std=c++11"))) ; required by libsigc++
ff5c33fe 1026 (native-inputs `(("pkg-config" ,pkg-config)))
9c086443
JD
1027 (propagated-inputs
1028 `(("pangomm" ,pangomm)
1029 ("cairomm" ,cairomm)
1030 ("atkmm" ,atkmm)
1031 ("gtk+" ,gtk+-2)
1032 ("glibmm" ,glibmm)))))
fbcfa730
EB
1033
1034(define-public python-pycairo
1035 (package
1036 (name "python-pycairo")
1037 (version "1.10.0")
1038 (source
1039 (origin
1040 (method url-fetch)
1041 (uri (string-append "http://cairographics.org/releases/pycairo-"
1042 version ".tar.bz2"))
1043 (sha256
1044 (base32
b837e658 1045 "1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s"))
fc1adab1 1046 (patches (search-patches "pycairo-wscript.patch"))))
b837e658 1047 (build-system waf-build-system)
fbcfa730 1048 (native-inputs
b837e658
SB
1049 `(("pkg-config" ,pkg-config)
1050 ("python-waf" ,python-waf)))
fbcfa730
EB
1051 (propagated-inputs ;pycairo.pc references cairo
1052 `(("cairo" ,cairo)))
1053 (arguments
1054 `(#:tests? #f
b837e658
SB
1055 #:phases
1056 (modify-phases %standard-phases
1057 (add-before
1058 'configure 'patch-waf
1059 (lambda* (#:key inputs #:allow-other-keys)
1060 ;; The bundled `waf' doesn't work with python-3.4.x.
1061 (copy-file (assoc-ref %build-inputs "python-waf") "./waf"))))))
fbcfa730
EB
1062 (home-page "http://cairographics.org/pycairo/")
1063 (synopsis "Python bindings for cairo")
1064 (description
1065 "Pycairo is a set of Python bindings for the Cairo graphics library.")
7ec42f1d
LC
1066 (license license:lgpl3+)
1067 (properties `((python2-variant . ,(delay python2-pycairo))))))
fbcfa730 1068
7ca0dbc3 1069(define-public python2-pycairo
7ec42f1d 1070 (package (inherit (strip-python2-variant python-pycairo))
7ca0dbc3 1071 (name "python2-pycairo")
fbcfa730
EB
1072 (version "1.10.0")
1073 (source
1074 (origin
1075 (method url-fetch)
1076 (uri (string-append "http://cairographics.org/releases/py2cairo-"
1077 version ".tar.bz2"))
1078 (sha256
1079 (base32
1080 "0cblk919wh6w0pgb45zf48xwxykfif16qk264yga7h9fdkq3j16k"))))
1081 (arguments
1082 `(#:python ,python-2
b837e658
SB
1083 ,@(substitute-keyword-arguments (package-arguments python-pycairo)
1084 ((#:phases phases)
1085 `(alist-delete 'patch-waf ,phases))
1086 ((#:native-inputs native-inputs)
1087 `(alist-delete "python-waf" ,native-inputs)))))
fbcfa730 1088 ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
0d6a8339 1089 (license (list license:lgpl2.1 license:mpl1.1))))
fbcfa730
EB
1090
1091(define-public python2-pygtk
1092 (package
1093 (name "python2-pygtk")
1094 (version "2.24.0")
1095 (source
1096 (origin
1097 (method url-fetch)
1098 (uri (string-append "http://ftp.gnome.org/pub/GNOME/sources"
1099 "/pygtk/" (version-major+minor version)
1100 "/pygtk-" version ".tar.bz2"))
1101 (sha256
1102 (base32
1103 "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"))))
1104 (build-system gnu-build-system)
594e7b47
LC
1105 (outputs '("out"
1106 "doc")) ;13 MiB of gtk-doc HTML
fbcfa730
EB
1107 (native-inputs
1108 `(("pkg-config" ,pkg-config)))
1109 (inputs
1110 `(("python" ,python-2)
6ab4712d 1111 ("libglade" ,libglade)
fbcfa730
EB
1112 ("glib" ,glib)))
1113 (propagated-inputs
7ca0dbc3 1114 `(("python-pycairo" ,python2-pycairo) ;loaded at runtime
fbcfa730
EB
1115 ("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
1116 ("gtk+" ,gtk+-2)))
1117 (arguments
1118 `(#:tests? #f
ae115bc7 1119 #:phases (modify-phases %standard-phases
594e7b47
LC
1120 (add-before 'configure 'set-gtk-doc-directory
1121 (lambda* (#:key outputs #:allow-other-keys)
1122 ;; Install documentation to "doc".
1123 (let ((doc (assoc-ref outputs "doc")))
1124 (substitute* "docs/Makefile.in"
1125 (("TARGET_DIR = \\$\\(datadir\\)")
1126 (string-append "TARGET_DIR = " doc))))))
ae115bc7
LC
1127 (add-after 'configure 'fix-codegen
1128 (lambda* (#:key inputs #:allow-other-keys)
1129 (substitute* "pygtk-codegen-2.0"
1130 (("^prefix=.*$")
1131 (string-append
1132 "prefix="
1133 (assoc-ref inputs "python-pygobject") "\n")))))
1134 (add-after 'install 'install-pth
1135 (lambda* (#:key inputs outputs #:allow-other-keys)
1136 ;; pygtk's modules are stored in a subdirectory of
1137 ;; python's site-packages directory. Add a .pth file so
1138 ;; that python will add that subdirectory to its module
1139 ;; search path.
1140 (let* ((out (assoc-ref outputs "out"))
1141 (site (string-append out "/lib/python"
1142 ,(version-major+minor
1143 (package-version python-2))
1144 "/site-packages")))
1145 (call-with-output-file (string-append site "/pygtk.pth")
1146 (lambda (port)
1147 (format port "gtk-2.0~%")))))))))
fbcfa730
EB
1148 (home-page "http://www.pygtk.org/")
1149 (synopsis "Python bindings for GTK+")
1150 (description
1151 "PyGTK allows you to write full featured GTK programs in Python. It is
1152targetted at GTK 2.x, and can be used in conjunction with gnome-python to
1153write GNOME applications.")
1154 (license license:lgpl2.1+)))
136770c9
PW
1155
1156(define-public girara
1157 (package
1158 (name "girara")
97b66a91 1159 (version "0.2.6")
136770c9
PW
1160 (source (origin
1161 (method url-fetch)
1162 (uri
1163 (string-append "https://pwmt.org/projects/girara/download/girara-"
1164 version ".tar.gz"))
1165 (sha256
1166 (base32
97b66a91 1167 "03wsxj27hvcbs3x96nah7j3paclifwlfag8kdph4kldl48srp9pb"))))
136770c9
PW
1168 (native-inputs `(("pkg-config" ,pkg-config)
1169 ("gettext" ,gnu-gettext)))
1170 (inputs `(("gtk+" ,gtk+)
1171 ("check" ,check)))
1172 (arguments
1173 `(#:make-flags
1174 `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
1175 "COLOR=0" "CC=gcc")
1176 #:test-target "test"
1177 #:tests? #f ; Tests fail with "Gtk cannot open display:"
1178 #:phases
1179 (alist-delete 'configure %standard-phases)))
1180 (build-system gnu-build-system)
1181 (home-page "https://pwmt.org/projects/girara/")
1182 (synopsis "Library for minimalistic gtk+3 user interfaces")
1183 (description "Girara is a library that implements a user interface that
1184focuses on simplicity and minimalism. Currently based on GTK+, a
1185cross-platform widget toolkit, it provides an interface that focuses on three
1186main components: a so-called view widget that represents the actual
1187application, an input bar that is used to execute commands of the
1188application and the status bar which provides the user with current
1189information.")
1190 (license license:zlib)))
3bc45449
AW
1191
1192(define-public gtk-doc
1193 (package
1194 (name "gtk-doc")
9d19e18d 1195 (version "1.25")
3bc45449
AW
1196 (source (origin
1197 (method url-fetch)
1198 (uri (string-append "mirror://gnome/sources/" name "/"
1199 (version-major+minor version) "/"
1200 name "-" version ".tar.xz"))
1201 (sha256
1202 (base32
9d19e18d 1203 "0hpxcij9xx9ny3gs9p0iz4r8zslw8wqymbyababiyl7603a6x90y"))))
3bc45449
AW
1204 (build-system gnu-build-system)
1205 (arguments
6ad08117
AE
1206 `(#:parallel-tests? #f
1207 #:phases
b4787e71
AW
1208 (modify-phases %standard-phases
1209 (add-before
1210 'configure 'fix-docbook
1211 (lambda* (#:key inputs #:allow-other-keys)
1212 (substitute* "configure"
1213 ;; The configure check is overzealous about making sure that
1214 ;; things are in place -- it uses the xmlcatalog tool to make
1215 ;; sure that docbook-xsl is available, but this tool can only
1216 ;; look in one catalog file, unlike the $XML_CATALOG_FILES
1217 ;; variable that Guix defines. Fool the test by using the
1218 ;; docbook-xsl catalog explicitly and get on with life.
1219 (("\"\\$XML_CATALOG_FILE\" \
1220\"http://docbook.sourceforge.net/release/xsl/")
4ed737b2
MW
1221 (string-append (car (find-files (assoc-ref inputs "docbook-xsl")
1222 "^catalog.xml$"))
1223 " \"http://docbook.sourceforge.net/release/xsl/")))
1224 #t)))
b4787e71 1225 #:configure-flags
3bc45449
AW
1226 (list (string-append "--with-xml-catalog="
1227 (assoc-ref %build-inputs "docbook-xml")
1228 "/xml/dtd/docbook/catalog.xml"))))
1229 (native-inputs
1230 `(("pkg-config" ,pkg-config)
1231 ("itstool" ,itstool)
1232 ("libxml" ,libxml2)
1233 ("gettext" ,gnu-gettext)
1234 ("bc" ,bc)))
1235 (inputs
1236 `(("perl" ,perl)
1237 ("python" ,python)
1238 ("xsltproc" ,libxslt)
1239 ("dblatex" ,dblatex)
1240 ("docbook-xml" ,docbook-xml-4.3)
1241 ("docbook-xsl" ,docbook-xsl)
1242 ("source-highlight" ,source-highlight)
1243 ("glib" ,glib)))
1244 (home-page "http://www.gtk.org/gtk-doc/")
1245 (synopsis "Documentation generator from C source code")
1246 (description
a124bbd2 1247 "GTK-Doc generates API documentation from comments added to C code. It is
3bc45449
AW
1248typically used to document the public API of GTK+ and GNOME libraries, but it
1249can also be used to document application code.")
1250 (license license:gpl2+)))
9ba5198c
FH
1251
1252(define-public gtk-engines
1253 (package
1254 (name "gtk-engines")
1255 (version "2.20.2")
1256 (source (origin
1257 (method url-fetch)
1258 (uri (string-append "mirror://gnome/sources/" name "/"
1259 (version-major+minor version) "/"
1260 name "-" version ".tar.bz2"))
1261 (sha256
1262 (base32
1263 "1db65pb0j0mijmswrvpgkdabilqd23x22d95hp5kwxvcramq1dhm"))))
1264 (build-system gnu-build-system)
1265 (arguments
1266 `(#:configure-flags
1267 `("--enable-animation")))
1268 (native-inputs
1269 `(("pkg-config" ,pkg-config)
1270 ("intltool" ,intltool)))
1271 (propagated-inputs
1272 `(("gtk+" ,gtk+-2))) ; required by gtk-engines-2.pc
1273 (home-page "http://live.gnome.org/GnomeArt")
1274 (synopsis "Theming engines for GTK+ 2.x")
1275 (description
1276 "This package contains the standard GTK+ 2.x theming engines including
1277Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,
1278Redmond95 and ThinIce.")
1279 (license (list license:gpl2+ license:lgpl2.1+))))
b7807bb2
FH
1280
1281(define-public murrine
1282 (package
1283 (name "murrine")
1284 (version "0.98.2")
1285 (source (origin
1286 (method url-fetch)
1287 (uri (string-append "mirror://gnome/sources/" name "/"
1288 (version-major+minor version) "/"
1289 name "-" version ".tar.xz"))
1290 (sha256
1291 (base32
1292 "129cs5bqw23i76h3nmc29c9mqkm9460iwc8vkl7hs4xr07h8mip9"))))
1293 (build-system gnu-build-system)
1294 (arguments
1295 `(#:configure-flags
1296 `("--enable-animation"
1297 "--enable-animationrtl")))
1298 (native-inputs
1299 `(("pkg-config" ,pkg-config)
1300 ("intltool" ,intltool)))
1301 (propagated-inputs
1302 `(("gtk+" ,gtk+-2)))
1303 (home-page "http://live.gnome.org/GnomeArt")
1304 (synopsis "Cairo-based theming engine for GTK+ 2.x")
1305 (description
1306 "Murrine is a cairo-based GTK+ theming engine. It is named after the
1307glass artworks done by Venicians glass blowers.")
1308 (license license:gpl2+)))
9c0c77f8
KY
1309
1310(define-public gtkspell3
1311 (package
1312 (name "gtkspell3")
1313 (version "3.0.8")
1314 (source (origin
1315 (method url-fetch)
1316 (uri (string-append "mirror://sourceforge/gtkspell/"
1317 version "/" name "-" version ".tar.gz"))
1318 (sha256
1319 (base32
1320 "1zrz5pz4ryvcssk898liynmy2wyxgj95ak7mp2jv7x62yzihq6h1"))))
1321 (build-system gnu-build-system)
1322 (native-inputs
1323 `(("intltool" ,intltool)
1324 ("pkg-config" ,pkg-config)))
1325 (inputs
1326 `(("enchant" ,enchant)
1327 ("gobject-introspection" ,gobject-introspection)
1328 ("gtk+" ,gtk+)
1329 ("pango" ,pango)))
1330 (home-page "http://gtkspell.sourceforge.net")
1331 (synopsis "Spell-checking addon for GTK's TextView widget")
1332 (description
1333 "GtkSpell provides word-processor-style highlighting and replacement of
1334misspelled words in a GtkTextView widget.")
1335 (license license:gpl2+)))