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