gnu: Use static & unversioned CPAN home pages.
[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>
189be331 3;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
0c5c788f 4;;; Copyright © 2014, 2015, 2017, 2018 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>
d86a7c64 11;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
60bf8154 12;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
b7807bb2 13;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
3c8ba11a 14;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
9b381643 15;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
4a78fd46 16;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
82862153
TGR
17;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
18;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
19;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
4e028d7a 20;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
6009cdb4 21;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
3a08a411
AE
22;;;
23;;; This file is part of GNU Guix.
24;;;
25;;; GNU Guix is free software; you can redistribute it and/or modify it
26;;; under the terms of the GNU General Public License as published by
27;;; the Free Software Foundation; either version 3 of the License, or (at
28;;; your option) any later version.
29;;;
30;;; GNU Guix is distributed in the hope that it will be useful, but
31;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33;;; GNU General Public License for more details.
34;;;
35;;; You should have received a copy of the GNU General Public License
36;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
38(define-module (gnu packages gtk)
b5b73a82 39 #:use-module ((guix licenses) #:prefix license:)
b38e45d8 40 #:use-module (guix utils)
3a08a411
AE
41 #:use-module (guix packages)
42 #:use-module (guix download)
a9276c12 43 #:use-module (guix git-download)
3a08a411 44 #:use-module (guix build-system gnu)
bba29e10 45 #:use-module (guix build-system meson)
4e028d7a 46 #:use-module (guix build-system perl)
0b96fb2a 47 #:use-module (guix build-system python)
e926ba71 48 #:use-module (guix build-system waf)
b837e658 49 #:use-module (gnu packages)
3bc45449 50 #:use-module (gnu packages algebra)
1a51fe27 51 #:use-module (gnu packages autotools)
61af2675 52 #:use-module (gnu packages base)
1a51fe27 53 #:use-module (gnu packages texinfo)
136770c9 54 #:use-module (gnu packages check)
6131c43d 55 #:use-module (gnu packages compression)
3bc45449 56 #:use-module (gnu packages docbook)
9c0c77f8 57 #:use-module (gnu packages enchant)
6131c43d 58 #:use-module (gnu packages fontutils)
982b3574 59 #:use-module (gnu packages freedesktop)
13236d30 60 #:use-module (gnu packages fribidi)
3bc45449 61 #:use-module (gnu packages gettext)
6131c43d 62 #:use-module (gnu packages ghostscript)
31b254a3 63 #:use-module (gnu packages gl)
3a08a411 64 #:use-module (gnu packages glib)
95d439b2 65 #:use-module (gnu packages gnome)
a2609b41 66 #:use-module (gnu packages icu4c)
e55354b8 67 #:use-module (gnu packages image)
9b381643 68 #:use-module (gnu packages libffi)
6131c43d 69 #:use-module (gnu packages pdf)
8b79a547 70 #:use-module (gnu packages perl)
6131c43d 71 #:use-module (gnu packages pkg-config)
3bc45449 72 #:use-module (gnu packages pretty-print)
6131c43d 73 #:use-module (gnu packages python)
8e70e6d2 74 #:use-module (gnu packages guile)
37cb3a69 75 #:use-module (gnu packages cups)
8e70e6d2 76 #:use-module (gnu packages xml)
6c0e878e
LC
77 #:use-module (gnu packages xorg)
78 #:use-module (gnu packages xdisorg))
3a08a411
AE
79
80(define-public atk
81 (package
82 (name "atk")
f6a6a050 83 (version "2.28.1")
3a08a411
AE
84 (source (origin
85 (method url-fetch)
3b8e4347 86 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
87 (version-major+minor version) "/"
88 name "-" version ".tar.xz"))
3a08a411
AE
89 (sha256
90 (base32
f6a6a050 91 "1z7laf6qwv5zsqcnj222dm5f43c6f3liil0cgx4s4s62xjk1wfnd"))))
3a08a411 92 (build-system gnu-build-system)
cd0466eb
SB
93 (outputs '("out" "doc"))
94 (arguments
95 `(#:configure-flags
96 (list (string-append "--with-html-dir="
97 (assoc-ref %outputs "doc")
98 "/share/gtk-doc/html"))))
13a9e291 99 (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
141aed80
LC
100 (native-inputs
101 `(("pkg-config" ,pkg-config)
426adbe8 102 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 103 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
c5cc5006 104 (synopsis "GNOME accessibility toolkit")
3a08a411
AE
105 (description
106 "ATK provides the set of accessibility interfaces that are implemented
35b9e423 107by other toolkits and applications. Using the ATK interfaces, accessibility
3a08a411
AE
108tools have full access to view and control running applications.")
109 (license license:lgpl2.0+)
110 (home-page "https://developer.gnome.org/atk/")))
6131c43d
AE
111
112(define-public cairo
113 (package
114 (name "cairo")
de02edbf 115 (version "1.14.10")
6131c43d
AE
116 (source (origin
117 (method url-fetch)
b3822954 118 (uri (string-append "https://cairographics.org/releases/cairo-"
6131c43d
AE
119 version ".tar.xz"))
120 (sha256
121 (base32
de02edbf 122 "02banr0wxckq62nbhc3mqidfdh2q956i2r7w2hd9bjgjb238g1vy"))
bc118f1a 123 (patches (search-patches "cairo-CVE-2016-9082.patch"))))
6131c43d
AE
124 (build-system gnu-build-system)
125 (propagated-inputs
126 `(("fontconfig" ,fontconfig)
127 ("freetype" ,freetype)
128 ("glib" ,glib)
129 ("libpng" ,libpng)
130 ("libx11" ,libx11)
131 ("libxext" ,libxext)
132 ("libxrender" ,libxrender)
133 ("pixman" ,pixman)))
134 (inputs
135 `(("ghostscript" ,ghostscript)
136 ("libspectre" ,libspectre)
6131c43d 137 ("poppler" ,poppler)
caf90259 138 ("xorgproto" ,xorgproto)
6131c43d 139 ("zlib" ,zlib)))
c4c4cc05
JD
140 (native-inputs
141 `(("pkg-config" ,pkg-config)
142 ("python" ,python-wrapper)))
6131c43d 143 (arguments
77888fae
MW
144 `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
145 #:configure-flags '("--enable-tee"))) ; needed for GNU Icecat
6131c43d
AE
146 (synopsis "2D graphics library")
147 (description
148 "Cairo is a 2D graphics library with support for multiple output devices.
149Currently supported output targets include the X Window System (via both
150Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
35b9e423 151output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
6131c43d
AE
152
153Cairo is designed to produce consistent output on all output media while
154taking advantage of display hardware acceleration when available
155eg. through the X Render Extension).
156
157The cairo API provides operations similar to the drawing operators of
35b9e423 158PostScript and PDF. Operations in cairo including stroking and filling cubic
6131c43d 159Bézier splines, transforming and compositing translucent images, and
35b9e423 160antialiased text rendering. All drawing operations can be transformed by any
e881752c 161affine transformation (scale, rotation, shear, etc.).")
6131c43d 162 (license license:lgpl2.1) ; or Mozilla Public License 1.1
b3822954 163 (home-page "https://cairographics.org/")))
a2609b41 164
40b3f523
DC
165(define-public cairo-xcb
166 (package
167 (inherit cairo)
168 (name "cairo-xcb")
169 (inputs
170 `(("mesa" ,mesa)
171 ,@(package-inputs cairo)))
172 (arguments
173 `(#:tests? #f
174 #:configure-flags
175 '("--enable-xlib-xcb" "--enable-gl" "--enable-egl")))
176 (synopsis "2D graphics library (with X11 support)")))
177
a2609b41
AE
178(define-public harfbuzz
179 (package
180 (name "harfbuzz")
7005f8cb 181 (version "1.7.6")
a2609b41 182 (source (origin
fd9b3b43 183 (method url-fetch)
5cc3096c 184 (uri (string-append "https://www.freedesktop.org/software/"
fd9b3b43
SB
185 "harfbuzz/release/harfbuzz-"
186 version ".tar.bz2"))
187 (sha256
188 (base32
7005f8cb 189 "16rf7qwgy1gza74v2ws79zdwwb1lpvgz2abwwm8ws9j82cwysyys"))))
a2609b41 190 (build-system gnu-build-system)
0a129f39
SB
191 (outputs '("out"
192 "bin")) ; 160K, only hb-view depend on cairo
a2609b41 193 (inputs
fd9b3b43
SB
194 `(("cairo" ,cairo)))
195 (propagated-inputs
196 ;; There are all in the Requires or Requires.private field of '.pc'.
197 `(("glib" ,glib)
27383915 198 ("graphite2" ,graphite2)
c4c4cc05
JD
199 ("icu4c" ,icu4c)))
200 (native-inputs
a30a0455
SB
201 `(("gobject-introspection" ,gobject-introspection)
202 ("pkg-config" ,pkg-config)
7005f8cb
MB
203 ("python" ,python-wrapper)
204 ("which" ,which)))
27383915 205 (arguments
a30a0455 206 `(#:configure-flags `("--with-graphite2"
eb6afbcd
SB
207 "--with-gobject"
208 ,(string-append
209 "--bindir=" (assoc-ref %outputs "bin") "/bin"))))
35b9e423 210 (synopsis "OpenType text shaping engine")
a2609b41
AE
211 (description
212 "HarfBuzz is an OpenType text shaping engine.")
213 (license (license:x11-style "file://COPYING"
214 "See 'COPYING' in the distribution."))
61320932 215 (home-page "https://www.freedesktop.org/wiki/Software/HarfBuzz/")))
4b9adff9
AE
216
217(define-public pango
218 (package
219 (name "pango")
d9efe025 220 (version "1.42.0")
4b9adff9
AE
221 (source (origin
222 (method url-fetch)
dca1b58d
FB
223 (uri (string-append "mirror://gnome/sources/pango/"
224 (version-major+minor version) "/"
225 name "-" version ".tar.xz"))
4b9adff9
AE
226 (sha256
227 (base32
d9efe025 228 "0illn78nfwpa8y5knh9ir74wa1skc2hi8f3ny19zgpyf7n5dh94r"))))
4b9adff9 229 (build-system gnu-build-system)
cf2135ff 230 (propagated-inputs
60a32a2d 231 ;; These are all in Requires or Requires.private of the '.pc' files.
4b9adff9 232 `(("cairo" ,cairo)
60a32a2d
MB
233 ("fontconfig" ,fontconfig)
234 ("freetype" ,freetype)
235 ("glib" ,glib)
4169a4bc
AE
236 ("harfbuzz" ,harfbuzz)))
237 (inputs
13236d30
TGR
238 `(("fribidi" ,fribidi)
239 ("zlib" ,zlib)
9a5acb54
JL
240
241 ;; Some packages, such as Openbox, expect Pango to be built with the
242 ;; optional libxft support.
243 ("libxft" ,libxft)))
c4c4cc05 244 (native-inputs
141aed80 245 `(("pkg-config" ,pkg-config)
426adbe8 246 ("glib" ,glib "bin") ; glib-mkenums, etc.
141aed80 247 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
4b9adff9
AE
248 (synopsis "GNOME text and font handling library")
249 (description
250 "Pango is the core text and font handling library used in GNOME
35b9e423 251applications. It has extensive support for the different writing systems
4b9adff9
AE
252used throughout the world.")
253 (license license:lgpl2.0+)
254 (home-page "https://developer.gnome.org/pango/")))
527e7961 255
5698b8b8
JD
256(define-public pangox-compat
257 (package
258 (name "pangox-compat")
259 (version "0.0.2")
260 (source (origin
261 (method url-fetch)
b38e45d8
EB
262 (uri (string-append "mirror://gnome/sources/" name "/"
263 (version-major+minor version) "/"
264 name "-" version ".tar.xz"))
5698b8b8
JD
265 (sha256
266 (base32
267 "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m"))))
268 (build-system gnu-build-system)
269 (inputs
270 `(("glib" ,glib)
271 ("pango" ,pango)))
272 (native-inputs
273 `(("intltool" ,intltool)
274 ("pkg-config" ,pkg-config)))
275 (home-page "https://developer.gnome.org/pango")
35b9e423 276 (synopsis "Obsolete pango functions")
5698b8b8
JD
277 (description "Pangox was a X backend to pango. It is now obsolete and no
278longer provided by recent pango releases. pangox-compat provides the
279functions which were removed.")
280 (license license:lgpl2.0+)))
281
e926ba71
RW
282(define-public ganv
283 (package
284 (name "ganv")
285 (version "1.4.2")
286 (source (origin
287 (method url-fetch)
0d0252e4 288 (uri (string-append "https://download.drobilla.net/ganv-"
ea7f3349 289 version ".tar.bz2"))
e926ba71
RW
290 (sha256
291 (base32
292 "0g7s5mp14qgbfjdql0k1s8464r21g47ssn5dws6jazsnw6njhl0l"))))
293 (build-system waf-build-system)
ea7f3349 294 (arguments
dc1d3cde
KK
295 `(#:phases
296 (modify-phases %standard-phases
297 (add-before 'configure 'set-flags
298 (lambda* (#:key outputs #:allow-other-keys)
299 ;; Compile with C++11, required by gtkmm.
300 (setenv "CXXFLAGS" "-std=c++11")
301 ;; Allow 'bin/ganv_bench' to find libganv-1.so.
302 (setenv "LDFLAGS"
303 (string-append "-Wl,-rpath="
304 (assoc-ref outputs "out") "/lib"))
305 #t)))
ea7f3349 306 #:tests? #f)) ; no check target
e926ba71
RW
307 (inputs
308 `(("gtk" ,gtk+-2)
309 ("gtkmm" ,gtkmm-2)))
310 (native-inputs
311 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
312 ("pkg-config" ,pkg-config)))
0d0252e4 313 (home-page "https://drobilla.net/software/ganv/")
e926ba71
RW
314 (synopsis "GTK+ widget for interactive graph-like environments")
315 (description
316 "Ganv is an interactive GTK+ widget for interactive “boxes and lines” or
317graph-like environments, e.g. modular synths or finite state machine
318diagrams.")
319 (license license:gpl3+)))
95d439b2 320
a9276c12 321(define-public ganv-devel
ab8f4a70 322 (let ((commit "12f7d6b0438c94dd87f773a92eee3453d971846e")
a9276c12
RW
323 (revision "1"))
324 (package
325 (inherit ganv)
326 (name "ganv")
ab8f4a70 327 (version (string-append "1.5.4-" revision "."
a9276c12
RW
328 (string-take commit 9)))
329 (source (origin
330 (method git-fetch)
331 (uri (git-reference
0d0252e4 332 (url "https://git.drobilla.net/ganv.git")
a9276c12 333 (commit commit)))
4a885c65 334 (file-name (git-file-name name version))
a9276c12
RW
335 (sha256
336 (base32
ab8f4a70 337 "1cr8w02lr6bk9mkxa12j3imq721b2an2yn4bj5wnwmpm91ddn2gi")))))))
a9276c12 338
c900f843 339(define-public gtksourceview-2
95d439b2
JD
340 (package
341 (name "gtksourceview")
342 (version "2.10.5") ; This is the last version which builds against gtk+2
343 (source (origin
344 (method url-fetch)
b38e45d8
EB
345 (uri (string-append "mirror://gnome/sources/" name "/"
346 (version-major+minor version) "/"
347 name "-" version ".tar.bz2"))
95d439b2
JD
348 (sha256
349 (base32
350 "07hrabhpl6n8ajz10s0d960jdwndxs87szxyn428mpxi8cvpg1f5"))))
351 (build-system gnu-build-system)
c4c4cc05 352 (native-inputs
44add1ce 353 `(("intltool" ,intltool)
221ed17a 354 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
bd05ea41
SB
355 ("pkg-config" ,pkg-config)
356 ;; For testing.
357 ("xorg-server" ,xorg-server)
358 ("shared-mime-info" ,shared-mime-info)))
68d85de1
TUBK
359 (propagated-inputs
360 ;; As per the pkg-config file.
bd05ea41
SB
361 `(("gtk" ,gtk+-2)
362 ("libxml2" ,libxml2)))
95d439b2
JD
363 (arguments
364 `(#:phases
365 ;; Unfortunately, some of the tests in "make check" are highly dependent
366 ;; on the environment therefore, some black magic is required.
dc1d3cde
KK
367 (modify-phases %standard-phases
368 (add-before 'check 'start-xserver
369 (lambda* (#:key inputs #:allow-other-keys)
370 (let ((xorg-server (assoc-ref inputs "xorg-server"))
371 (mime (assoc-ref inputs "shared-mime-info")))
95d439b2 372
dc1d3cde
KK
373 ;; There must be a running X server and make check doesn't start one.
374 ;; Therefore we must do it.
375 (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
376 (setenv "DISPLAY" ":1")
95d439b2 377
dc1d3cde
KK
378 ;; The .lang files must be found in $XDG_DATA_HOME/gtksourceview-2.0
379 (system "ln -s gtksourceview gtksourceview-2.0")
380 (setenv "XDG_DATA_HOME" (getcwd))
95d439b2 381
dc1d3cde
KK
382 ;; Finally, the mimetypes must be available.
383 (setenv "XDG_DATA_DIRS" (string-append mime "/share/")))
384 #t)))))
95d439b2
JD
385 (synopsis "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget")
386 (description
387 "GtkSourceView is a portable C library that extends the standard GTK+
388framework for multiline text editing with support for configurable syntax
389highlighting, unlimited undo/redo, search and replace, a completion framework,
390printing and other features typical of a source code editor.")
391 (license license:lgpl2.0+)
392 (home-page "https://developer.gnome.org/gtksourceview/")))
393
c900f843
DH
394(define-public gtksourceview
395 (package
396 (name "gtksourceview")
da13cc2e 397 (version "3.24.8")
c900f843
DH
398 (source (origin
399 (method url-fetch)
400 (uri (string-append "mirror://gnome/sources/" name "/"
401 (version-major+minor version) "/"
402 name "-" version ".tar.xz"))
403 (sha256
404 (base32
da13cc2e 405 "1zinqid62zjcsq7vy1y4mq1qh3hzd3zj7p8np7g0bdqd37zvi6qy"))))
c900f843
DH
406 (build-system gnu-build-system)
407 (arguments
408 '(#:phases
409 (modify-phases %standard-phases
410 (add-before
411 'check 'pre-check
412 (lambda* (#:key inputs #:allow-other-keys)
413 (let ((xorg-server (assoc-ref inputs "xorg-server")))
414 ;; Tests require a running X server.
415 (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
416 (setenv "DISPLAY" ":1")
417 ;; For the missing /etc/machine-id.
418 (setenv "DBUS_FATAL_WARNINGS" "0")
419 #t))))))
420 (native-inputs
421 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
422 ("intltool" ,intltool)
b3546174 423 ("itstool" ,itstool)
c900f843
DH
424 ("gobject-introspection" ,gobject-introspection)
425 ("pkg-config" ,pkg-config)
426 ("vala" ,vala)
427 ;; For testing.
428 ("xorg-server" ,xorg-server)
429 ("shared-mime-info" ,shared-mime-info)))
430 (propagated-inputs
431 ;; gtksourceview-3.0.pc refers to all these.
432 `(("glib" ,glib)
433 ("gtk+" ,gtk+)
434 ("libxml2" ,libxml2)))
435 (home-page "https://wiki.gnome.org/Projects/GtkSourceView")
436 (synopsis "GNOME source code widget")
437 (description "GtkSourceView is a text widget that extends the standard
438GTK+ text widget GtkTextView. It improves GtkTextView by implementing syntax
439highlighting and other features typical of a source code editor.")
440 (license license:lgpl2.1+)))
441
527e7961
AE
442(define-public gdk-pixbuf
443 (package
444 (name "gdk-pixbuf")
73a118bd 445 (version "2.36.12")
527e7961
AE
446 (source (origin
447 (method url-fetch)
b38e45d8
EB
448 (uri (string-append "mirror://gnome/sources/" name "/"
449 (version-major+minor version) "/"
450 name "-" version ".tar.xz"))
527e7961
AE
451 (sha256
452 (base32
73a118bd 453 "0d534ysa6n9prd17wwzisq7mj6qkhwh8wcf8qgin1ar3hbs5ry7z"))))
527e7961 454 (build-system gnu-build-system)
48f46dc3 455 (arguments
a63a73dc
SB
456 '(#:configure-flags '("--with-x11")
457 #:phases
458 (modify-phases %standard-phases
459 (add-after
460 'unpack 'disable-failing-tests
461 (lambda _
462 (substitute* "tests/Makefile.in"
fe08b6e1
EF
463 ;; XXX FIXME: This test fails on armhf machines with:
464 ;; SKIP Not enough memory to load bitmap image
465 ;; ERROR: cve-2015-4491 - too few tests run (expected 4, got 2)
a63a73dc
SB
466 (("cve-2015-4491\\$\\(EXEEXT\\) ") "")
467 ;; XXX FIXME: This test fails with:
468 ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag:
469 ;; assertion failed (error == NULL): Data differ
470 ;; (gdk-pixbuf-error-quark, 0)
471 (("pixbuf-jpeg\\$\\(EXEEXT\\) ") ""))
472 #t)))))
6983ba56
SB
473 (propagated-inputs
474 `(;; Required by gdk-pixbuf-2.0.pc
475 ("glib" ,glib)
476 ("libpng" ,libpng)
477 ;; Used for testing and required at runtime.
478 ("shared-mime-info" ,shared-mime-info)))
1b5758a6
SB
479 (inputs
480 `(("libjpeg" ,libjpeg)
48f46dc3 481 ("libtiff" ,libtiff)
224276ab 482 ("libx11" ,libx11)))
c4c4cc05 483 (native-inputs
141aed80 484 `(("pkg-config" ,pkg-config)
426adbe8 485 ("glib" ,glib "bin") ; glib-mkenums, etc.
b3546174 486 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
527e7961
AE
487 (synopsis "GNOME image loading and manipulation library")
488 (description
489 "GdkPixbuf is a library for image loading and manipulation developed
490in the GNOME project.")
491 (license license:lgpl2.0+)
492 (home-page "https://developer.gnome.org/gdk-pixbuf/")))
cf2135ff 493
34dc3907
SB
494;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
495;; on gdk-pixbuf, so this new varibale. Also, librsvg adds 90MiB to the
496;; closure size.
497(define-public gdk-pixbuf+svg
e60d3a55 498 (package (inherit gdk-pixbuf)
34dc3907
SB
499 (name "gdk-pixbuf+svg")
500 (inputs
501 `(("librsvg" ,librsvg)
502 ,@(package-inputs gdk-pixbuf)))
503 (arguments
504 '(#:configure-flags '("--with-x11")
505 #:tests? #f ; tested by the gdk-pixbuf package already
506 #:phases
507 (modify-phases %standard-phases
508 (add-after 'install 'register-svg-loader
509 (lambda* (#:key inputs outputs #:allow-other-keys)
510 (let* ((out (assoc-ref outputs "out"))
511 (librsvg (assoc-ref inputs "librsvg"))
512 (loaders
513 (append
514 (find-files out "^libpixbufloader-.*\\.so$")
515 (find-files librsvg "^libpixbufloader-.*\\.so$")))
516 (gdk-pixbuf-query-loaders
517 (string-append out "/bin/gdk-pixbuf-query-loaders")))
0c5c788f
MW
518 (apply invoke
519 gdk-pixbuf-query-loaders
520 "--update-cache"
521 loaders)))))))
34dc3907
SB
522 (synopsis
523 "GNOME image loading and manipulation library, with SVG support")))
524
f3fb92e5
AE
525(define-public at-spi2-core
526 (package
527 (name "at-spi2-core")
730f0a0f 528 (version "2.26.2")
f3fb92e5
AE
529 (source (origin
530 (method url-fetch)
531 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
532 (version-major+minor version) "/"
533 name "-" version ".tar.xz"))
f3fb92e5
AE
534 (sha256
535 (base32
730f0a0f 536 "0596ghkamkxgv08r4a1pdhm06qd5zzgcfqsv64038w9xbvghq3n8"))))
f3fb92e5 537 (build-system gnu-build-system)
068a53c3 538 (outputs '("out" "doc"))
f3fb92e5 539 (arguments
b19d6805 540 '(#:configure-flags
068a53c3
SB
541 (list (string-append "--with-html-dir="
542 (assoc-ref %outputs "doc")
543 "/share/gtk-doc/html"))
50cc7f41 544 #:phases
af108677 545 (modify-phases %standard-phases
3a4de6b2 546 (replace 'check
af108677
SB
547 ;; Run test-suite under a dbus session.
548 (lambda _
37fe56cf
SB
549 ;; Don't fail on missing '/etc/machine-id'.
550 (setenv "DBUS_FATAL_WARNINGS" "0")
122ad429 551 (invoke "dbus-launch" "make" "check"))))))
c6a552da
SB
552 (propagated-inputs
553 ;; atspi-2.pc refers to all these.
554 `(("dbus" ,dbus)
555 ("glib" ,glib)))
556 (inputs
557 `(("libxi" ,libxi)
558 ("libxtst" ,libxtst)))
c4c4cc05 559 (native-inputs
50cc7f41
SB
560 `(("gobject-introspection" ,gobject-introspection)
561 ("intltool" ,intltool)
562 ("pkg-config" ,pkg-config)))
f3fb92e5
AE
563 (synopsis "Assistive Technology Service Provider Interface, core components")
564 (description
565 "The Assistive Technology Service Provider Interface, core components,
566is part of the GNOME accessibility project.")
567 (license license:lgpl2.0+)
568 (home-page "https://projects.gnome.org/accessibility/")))
569
5fda4784
AE
570(define-public at-spi2-atk
571 (package
572 (name "at-spi2-atk")
1ccd060f 573 (version "2.26.1")
5fda4784
AE
574 (source (origin
575 (method url-fetch)
576 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
577 (version-major+minor version) "/"
578 name "-" version ".tar.xz"))
5fda4784
AE
579 (sha256
580 (base32
1ccd060f 581 "0x9vc99ni46fg5dzlx67vbw0zqffr24gz8jvbdxbmzyvc5xw5w5l"))))
5fda4784 582 (build-system gnu-build-system)
5fda4784 583 (arguments
57fcd224
SB
584 '(#:phases
585 (modify-phases %standard-phases
3a4de6b2 586 (replace 'check
57fcd224
SB
587 ;; Run test-suite under a dbus session.
588 (lambda _
5fba12ec 589 (setenv "DBUS_FATAL_WARNINGS" "0")
f9b282f4 590 (invoke "dbus-launch" "make" "check"))))))
6967cc3f
SB
591 (propagated-inputs
592 `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
593 (inputs
594 `(("atk" ,atk)))
c4c4cc05 595 (native-inputs
6967cc3f
SB
596 `(("dbus" ,dbus) ; for testing
597 ("pkg-config" ,pkg-config)))
5fda4784
AE
598 (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
599 (description
600 "The Assistive Technology Service Provider Interface
601is part of the GNOME accessibility project.")
602 (license license:lgpl2.0+)
603 (home-page "https://projects.gnome.org/accessibility/")))
604
8b79a547 605(define-public gtk+-2
cf2135ff
AE
606 (package
607 (name "gtk+")
f55ef78b 608 (version "2.24.32")
cf2135ff
AE
609 (source (origin
610 (method url-fetch)
1c8362a8 611 (uri (string-append "mirror://gnome/sources/" name "/"
b38e45d8
EB
612 (version-major+minor version) "/"
613 name "-" version ".tar.xz"))
cf2135ff
AE
614 (sha256
615 (base32
f55ef78b 616 "0bjq7ja9gwcv6n5q4qkvdjjx40wsdiikksz1zqxvxsm5vlyskj5n"))
6983ba56 617 (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
711670c0 618 "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
f55ef78b 619 "gtk2-theme-paths.patch"))))
cf2135ff 620 (build-system gnu-build-system)
6b1f2388 621 (outputs '("out" "doc"))
4169a4bc 622 (propagated-inputs
cf2135ff 623 `(("atk" ,atk)
6983ba56 624 ("gdk-pixbuf" ,gdk-pixbuf+svg)
4169a4bc 625 ("pango" ,pango)))
dfbce50c
SB
626 (inputs
627 `(("cups" ,cups)
628 ("libxcomposite" ,libxcomposite)
629 ("libxcursor" ,libxcursor)
630 ("libxdamage" ,libxdamage)
631 ("libxi" ,libxi)
632 ("libxinerama" ,libxinerama)
633 ("libxrandr" ,libxrandr)))
c4c4cc05 634 (native-inputs
1c8362a8 635 `(("perl" ,perl)
b94a6ca0 636 ("gettext" ,gettext-minimal)
426adbe8 637 ("glib" ,glib "bin")
9d297fae 638 ("gobject-introspection" ,gobject-introspection)
1c8362a8
AE
639 ("pkg-config" ,pkg-config)
640 ("python-wrapper" ,python-wrapper)))
cf2135ff 641 (arguments
b19d6805 642 `(#:configure-flags
6b1f2388
SB
643 (list "--with-xinput=yes"
644 (string-append "--with-html-dir="
645 (assoc-ref %outputs "doc")
646 "/share/gtk-doc/html"))
9d297fae 647 #:phases
d4bf49b1
EB
648 (alist-cons-before
649 'configure 'disable-tests
650 (lambda _
651 ;; FIXME: re-enable tests requiring an X server
652 (substitute* "gtk/Makefile.in"
31ca0901
MW
653 (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits ."))
654 #t)
2a6afac9
RW
655 %standard-phases)))
656 (native-search-paths
657 (list (search-path-specification
658 (variable "GUIX_GTK2_PATH")
659 (files '("lib/gtk-2.0")))))
0327ced2 660 (synopsis "Cross-platform toolkit for creating graphical user interfaces")
cf2135ff
AE
661 (description
662 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
35b9e423 663graphical user interfaces. Offering a complete set of widgets, GTK+ is
cf2135ff
AE
664suitable for projects ranging from small one-off tools to complete
665application suites.")
666 (license license:lgpl2.0+)
667 (home-page "http://www.gtk.org/")))
8e70e6d2 668
8b79a547
AE
669(define-public gtk+
670 (package (inherit gtk+-2)
b38e45d8 671 (name "gtk+")
2d5785ad
MW
672 ;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
673 ;; mate.scm will also need to be updated.
d5430321 674 (version "3.22.30")
8b79a547
AE
675 (source (origin
676 (method url-fetch)
b38e45d8
EB
677 (uri (string-append "mirror://gnome/sources/" name "/"
678 (version-major+minor version) "/"
679 name "-" version ".tar.xz"))
8b79a547
AE
680 (sha256
681 (base32
d5430321 682 "0rv5k8fyi2i19k4zncai6vf429s6zy3kncr8vb6f3m034z0sb951"))
234e7980
RW
683 (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
684 "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
7b808d76 685 (outputs '("out" "bin" "doc"))
0e112540 686 (propagated-inputs
8b79a547 687 `(("at-spi2-atk" ,at-spi2-atk)
0e112540 688 ("atk" ,atk)
6983ba56 689 ("gdk-pixbuf" ,gdk-pixbuf+svg)
31b254a3 690 ("libepoxy" ,libepoxy)
a572dca8 691 ("libxcursor" ,libxcursor)
8b79a547
AE
692 ("libxi" ,libxi)
693 ("libxinerama" ,libxinerama)
982b3574 694 ("libxkbcommon" ,libxkbcommon)
9e5c0927 695 ("libxdamage" ,libxdamage)
982b3574
KK
696 ("mesa" ,mesa)
697 ("pango" ,pango)
698 ("wayland" ,wayland)
699 ("wayland-protocols" ,wayland-protocols)))
0e112540 700 (inputs
6983ba56 701 `(("libxml2" ,libxml2)
1cb16f1e
SB
702 ;; XXX: colord depends on mozjs (through polkit), which fails on
703 ;; on non-intel systems now.
704 ;;("colord" ,colord)
a572dca8 705 ("cups" ,cups) ;for printing support
a2651b54
SB
706 ;; XXX: rest depends on p11-kit, which fails on mips64el now.
707 ;;("rest" ,rest)
a572dca8 708 ("json-glib" ,json-glib)))
c4c4cc05 709 (native-inputs
141aed80 710 `(("perl" ,perl)
426adbe8 711 ("glib" ,glib "bin")
b94a6ca0 712 ("gettext" ,gettext-minimal)
8b79a547 713 ("pkg-config" ,pkg-config)
141aed80 714 ("gobject-introspection" ,gobject-introspection)
8b79a547 715 ("python-wrapper" ,python-wrapper)
da79e82b
LF
716 ;; By using a special xorg-server for GTK+'s tests, we reduce the impact
717 ;; of updating xorg-server directly on the master branch.
3433413b 718 ("xorg-server" ,xorg-server-1.19.3)))
8b79a547 719 (arguments
3433413b 720 `(#:disallowed-references (,xorg-server-1.19.3)
da79e82b 721 ;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes
260b07a7
LC
722 ;; to "doc".
723 #:configure-flags (list (string-append "--with-html-dir="
724 (assoc-ref %outputs "doc")
982b3574
KK
725 "/share/gtk-doc/html")
726 ;; The header file <gdk/gdkwayland.h> is required
727 ;; by gnome-control-center
728 "--enable-wayland-backend"
729 ;; This is necessary to build both backends.
150e2301
DM
730 "--enable-x11-backend"
731 ;; This enables the HTML5 websocket backend.
732 "--enable-broadway-backend")
e4360e16
JD
733 #:phases (modify-phases %standard-phases
734 (add-before 'configure 'pre-configure
735 (lambda _
736 ;; Disable most tests, failing in the chroot with the message:
737 ;; D-Bus library appears to be incorrectly set up; failed to read
738 ;; machine uuid: Failed to open "/etc/machine-id": No such file or
739 ;; directory.
740 ;; See the manual page for dbus-uuidgen to correct this issue.
741 (substitute* "testsuite/Makefile.in"
742 (("SUBDIRS = gdk gtk a11y css reftests")
743 "SUBDIRS = gdk"))
4c8c2b0f
SB
744 #t))
745 (add-after 'install 'move-desktop-files
746 ;; Move desktop files into 'bin' to avoid cycle references.
747 (lambda* (#:key outputs #:allow-other-keys)
748 (let ((out (assoc-ref outputs "out"))
749 (bin (assoc-ref outputs "bin")))
750 (mkdir-p (string-append bin "/share"))
751 (rename-file (string-append out "/share/applications")
752 (string-append bin "/share/applications"))
753 #t))))))
4828ff91
RW
754 (native-search-paths
755 (list (search-path-specification
756 (variable "GUIX_GTK3_PATH")
757 (files '("lib/gtk-3.0")))))))
5fda4784 758
8e70e6d2
LC
759;;;
760;;; Guile bindings.
761;;;
762
763(define-public guile-cairo
764 (package
765 (name "guile-cairo")
766 (version "1.4.1")
767 (source (origin
b9743865
LC
768 (method url-fetch)
769 (uri (string-append
770 "http://download.gna.org/guile-cairo/guile-cairo-"
771 version
772 ".tar.gz"))
773 (sha256
774 (base32
775 "1f5nd9n46n6cwfl1byjml02q3y2hgn7nkx98km1czgwarxl7ws3x"))))
8e70e6d2
LC
776 (build-system gnu-build-system)
777 (arguments
0f11f640
LC
778 '(#:modules ((guix build utils)
779 (guix build gnu-build-system)
780 (ice-9 popen)
781 (ice-9 rdelim))
782
783 #:phases (modify-phases %standard-phases
b9743865
LC
784 (add-before 'configure 'set-module-directory
785 (lambda* (#:key outputs #:allow-other-keys)
786 ;; Install modules under $out/share/guile/site/2.0.
0f11f640
LC
787 (let ((out (assoc-ref outputs "out"))
788 (effective
789 (read-line
790 (open-pipe* OPEN_READ "guile" "-c"
791 "(display (effective-version))"))))
b9743865
LC
792 (substitute* "Makefile.in"
793 (("scmdir = ([[:graph:]]+).*" _ value)
0f11f640 794 (string-append "scmdir = " value "/" effective "\n")))
b9743865
LC
795 (substitute* "cairo/Makefile.in"
796 (("moduledir = ([[:graph:]]+).*" _ value)
797 (string-append "moduledir = "
0f11f640
LC
798 "$(prefix)/share/guile/site/"
799 effective "/cairo\n'")))
800 #t)))
b9743865
LC
801 (add-after 'install 'install-missing-file
802 (lambda* (#:key outputs #:allow-other-keys)
803 ;; By default 'vector-types.scm' is not installed, so do
804 ;; it here.
0f11f640
LC
805 (let ((out (assoc-ref outputs "out"))
806 (effective
807 (read-line
808 (open-pipe* OPEN_READ "guile" "-c"
809 "(display (effective-version))"))))
810 (install-file "cairo/vector-types.scm"
811 (string-append out "/share/guile/site/"
812 effective "/cairo"))
813 #t))))))
8e70e6d2 814 (inputs
5ace0919 815 `(("guile-lib" ,guile-lib)
8e70e6d2 816 ("expat" ,expat)
1b0f266e 817 ("guile" ,guile-2.2)))
49710cea
LC
818 (propagated-inputs
819 ;; The .pc file refers to 'cairo'.
820 `(("cairo" ,cairo)))
c4c4cc05 821 (native-inputs
b9743865 822 `(("pkg-config" ,pkg-config)))
340978d7 823 (home-page "https://www.nongnu.org/guile-cairo/")
8e70e6d2
LC
824 (synopsis "Cairo bindings for GNU Guile")
825 (description
826 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
827Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API
828stable, providing a firm base on which to do graphics work. Finally, and
829importantly, it is pleasant to use. You get a powerful and well-maintained
830graphics library with all of the benefits of Scheme: memory management,
831exceptions, macros, and a dynamic programming environment.")
832 (license license:lgpl3+)))
66663503 833
1a51fe27 834(define-public guile-rsvg
1b0f266e
LC
835 ;; Use a recent snapshot that supports Guile 2.2 and beyond.
836 (let ((commit "05c6a2fd67e4fea1a7c3ff776729dc931bae6678")
837 (revision "0"))
838 (package
839 (name "guile-rsvg")
840 (version (string-append "2.18.1-" revision "."
841 (string-take commit 7)))
842 (source (origin
843 (method url-fetch)
844 (uri (string-append "https://gitlab.com/wingo/guile-rsvg/"
845 "repository/archive.tar.gz?ref="
846 commit))
847 (sha256
848 (base32
849 "0vdzjx8l5nc4y2xjqs0g1rqn1zrwfsm30brh5gz00r1x41a2pvv2"))
850 (patches (search-patches "guile-rsvg-pkgconfig.patch"))
851 (modules '((guix build utils)))
852 (snippet
6cbee49d
MW
853 '(begin
854 (substitute* (find-files "." "Makefile\\.am")
855 (("/share/guile/site")
856 "/share/guile/site/@GUILE_EFFECTIVE_VERSION@"))
857 #t))
1b0f266e
LC
858 (file-name (string-append name "-" version ".tar.gz"))))
859 (build-system gnu-build-system)
860 (arguments
861 `(#:phases (modify-phases %standard-phases
df17d508 862 (replace 'bootstrap
1b0f266e 863 (lambda _
df17d508 864 (invoke "autoreconf" "-vfi"))))))
1b0f266e
LC
865 (native-inputs `(("pkg-config" ,pkg-config)
866 ("autoconf" ,autoconf)
867 ("automake" ,automake)
868 ("libtool" ,libtool)
869 ("texinfo" ,texinfo)))
870 (inputs `(("guile" ,guile-2.2)
871 ("librsvg" ,librsvg)
872 ("guile-lib" ,guile-lib))) ;for (unit-test)
873 (propagated-inputs `(("guile-cairo" ,guile-cairo)))
874 (synopsis "Render SVG images using Cairo from Guile")
875 (description
876 "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
1a51fe27 877images onto Cairo surfaces.")
1b0f266e
LC
878 (home-page "http://wingolog.org/projects/guile-rsvg/")
879 (license license:lgpl2.1+))))
7ca0dbc3 880
cdd383e9
LC
881(define-public guile-present
882 (package
883 (name "guile-present")
884 (version "0.3.0")
885 (source (origin
886 (method url-fetch)
887 (uri (string-append "http://wingolog.org/pub/guile-present/"
888 "guile-present-" version ".tar.gz"))
889 (sha256
890 (base32
891 "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
fc1adab1 892 (patches (search-patches "guile-present-coding.patch"))
cdd383e9
LC
893 (modules '((guix build utils)))
894 (snippet
6cbee49d
MW
895 '(begin
896 (substitute* "Makefile.in"
897 (("godir = .*$")
898 "godir = $(moddir)\n"))
899 #t))))
cdd383e9
LC
900 (build-system gnu-build-system)
901 (arguments
dc1d3cde
KK
902 '(#:phases
903 (modify-phases %standard-phases
904 (add-after 'install 'post-install
905 (lambda* (#:key inputs outputs #:allow-other-keys)
906 (let* ((out (assoc-ref outputs "out"))
907 (bin (string-append out "/bin"))
908 (guile (assoc-ref inputs "guile")))
909 (substitute* (find-files bin ".*")
910 (("guile")
911 (string-append guile "/bin/guile -L "
912 out "/share/guile/site/2.0 -C "
913 out "/share/guile/site/2.0 "))))
914 #t)))))
cdd383e9 915 (native-inputs `(("pkg-config" ,pkg-config)))
1b0f266e 916 (inputs `(("guile" ,guile-2.2)))
cdd383e9
LC
917 (propagated-inputs
918 ;; These are used by the (present …) modules.
5ace0919 919 `(("guile-lib" ,guile-lib)
cdd383e9
LC
920 ("guile-cairo" ,guile-cairo)
921 ("guile-rsvg" ,guile-rsvg)))
922 (home-page "http://wingolog.org/software/guile-present/")
923 (synopsis "Create SVG or PDF presentations in Guile")
924 (description
925 "Guile-Present defines a declarative vocabulary for presentations,
926together with tools to render presentation documents as SVG or PDF.
927Guile-Present can be used to make presentations programmatically, but also
928includes a tools to generate PDF presentations out of Org mode and Texinfo
929documents.")
930 (license license:lgpl3+)))
7ca0dbc3 931
9b381643
PH
932(define-public guile-gnome
933 (package
934 (name "guile-gnome")
1b0f266e 935 (version "2.16.5")
9b381643
PH
936 (source (origin
937 (method url-fetch)
938 (uri
939 (string-append "mirror://gnu/" name
940 "/guile-gnome-platform/guile-gnome-platform-"
941 version ".tar.gz"))
942 (sha256
943 (base32
1b0f266e 944 "1gnf3j96nip5kl99a268i0dy1hj7s1cfs66sps3zwysnkd7qr399"))))
9b381643
PH
945 (build-system gnu-build-system)
946 (native-inputs
947 `(("pkg-config" ,pkg-config)
948 ("atk" ,atk)
949 ;;("corba" ,corba) ; not packaged yet
950 ("gconf" ,gconf)
951 ("gobject-introspection" ,gobject-introspection)
952 ;;("gthread" ,gthread) ; not packaged yet
953 ("gnome-vfs" ,gnome-vfs)
954 ("gdk-pixbuf" ,gdk-pixbuf)
955 ("gtk+" ,gtk+-2)
956 ("libglade" ,libglade)
957 ("libgnome" ,libgnome)
958 ("libgnomecanvas" ,libgnomecanvas)
959 ("libgnomeui" ,libgnomeui)
960 ("pango" ,pango)
961 ("libffi" ,libffi)
962 ("glib" ,glib)))
1b0f266e 963 (inputs `(("guile" ,guile-2.2)))
9b381643
PH
964 (propagated-inputs
965 `(("guile-cairo" ,guile-cairo)
966 ("g-wrap" ,g-wrap)
5ace0919 967 ("guile-lib" ,guile-lib)))
9b381643
PH
968 (arguments
969 `(#:tests? #f ;FIXME
970 #:phases (modify-phases %standard-phases
971 (add-before 'configure 'pre-configure
972 (lambda* (#:key outputs #:allow-other-keys)
973 (let ((out (assoc-ref outputs "out")))
974 (substitute* (find-files "." "^Makefile.in$")
975 (("guilesite :=.*guile/site" all)
1b0f266e 976 (string-append all "/@GUILE_EFFECTIVE_VERSION@")))
9b381643
PH
977 #t))))))
978 (outputs '("out" "debug"))
979 (synopsis "Guile interface for GTK+ programming for GNOME")
980 (description
981 "Includes guile-clutter, guile-gnome-gstreamer,
982guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
6fd52309 983 (home-page "https://www.gnu.org/software/guile-gnome/")
1b0f266e
LC
984 (license license:gpl2+)
985 (properties '((upstream-name . "guile-gnome-platform")
986 (ftp-directory . "/gnu/guile-gnome/guile-gnome-platform")))))
9b381643 987
66663503
LC
988;;;
989;;; C++ bindings.
990;;;
991
992(define-public cairomm
993 (package
994 (name "cairomm")
5a52e86e 995 (version "1.12.2")
66663503 996 (source (origin
2079087c 997 (method url-fetch)
5a52e86e
EF
998 (uri (string-append "https://www.cairographics.org/releases/"
999 name "-" version ".tar.gz"))
2079087c
SB
1000 (sha256
1001 (base32
5a52e86e 1002 "16fmigxsaz85c3lgcls7biwyz8zy8c8h3jndfm54cxxas3a7zi25"))))
66663503
LC
1003 (build-system gnu-build-system)
1004 (arguments
1005 ;; The examples lack -lcairo.
1006 '(#:make-flags '("LDFLAGS=-lcairo")))
c4c4cc05 1007 (native-inputs `(("pkg-config" ,pkg-config)))
66663503
LC
1008 (propagated-inputs
1009 `(("libsigc++" ,libsigc++)
1010 ("freetype" ,freetype)
1011 ("fontconfig" ,fontconfig)
1012 ("cairo" ,cairo)))
5a52e86e 1013 (home-page "https://cairographics.org/")
66663503
LC
1014 (synopsis "C++ bindings to the Cairo 2D graphics library")
1015 (description
1016 "Cairomm provides a C++ programming interface to the Cairo 2D graphics
1017library.")
1018 (license license:lgpl2.0+)))
c5cc5006
LC
1019
1020(define-public pangomm
1021 (package
1022 (name "pangomm")
3086d9b9 1023 (version "2.40.1")
c5cc5006
LC
1024 (source (origin
1025 (method url-fetch)
b38e45d8
EB
1026 (uri (string-append "mirror://gnome/sources/" name "/"
1027 (version-major+minor version) "/"
1028 name "-" version ".tar.xz"))
c5cc5006
LC
1029 (sha256
1030 (base32
3086d9b9 1031 "1bz3gciff23bpw9bqc4v2l3lkq9w7394v3a4jxkvx0ap5lmfwqlp"))))
c5cc5006 1032 (build-system gnu-build-system)
c4c4cc05 1033 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
1034 (propagated-inputs
1035 `(("cairo" ,cairo)
1036 ("cairomm" ,cairomm)
1037 ("glibmm" ,glibmm)
1038 ("pango" ,pango)))
1039 (home-page "http://www.pango.org/")
1040 (synopsis "C++ interface to the Pango text rendering library")
1041 (description
1042 "Pangomm provides a C++ programming interface to the Pango text rendering
1043library.")
1044 (license license:lgpl2.1+)))
1045
1046(define-public atkmm
1047 (package
1048 (name "atkmm")
5b003972 1049 (version "2.24.2")
c5cc5006
LC
1050 (source (origin
1051 (method url-fetch)
b38e45d8
EB
1052 (uri (string-append "mirror://gnome/sources/" name "/"
1053 (version-major+minor version) "/"
1054 name "-" version ".tar.xz"))
c5cc5006
LC
1055 (sha256
1056 (base32
5b003972 1057 "1gaqwhviadsmy0fsr47686yglv1p4mpkamj0in127bz2b5bki5gz"))))
c5cc5006 1058 (build-system gnu-build-system)
c4c4cc05 1059 (native-inputs `(("pkg-config" ,pkg-config)))
c5cc5006
LC
1060 (propagated-inputs
1061 `(("glibmm" ,glibmm) ("atk" ,atk)))
8e933cb3 1062 (home-page "https://www.gtkmm.org")
c5cc5006
LC
1063 (synopsis "C++ interface to the ATK accessibility library")
1064 (description
1065 "ATKmm provides a C++ programming interface to the ATK accessibility
1066toolkit.")
1067 (license license:lgpl2.1+)))
1068
1069(define-public gtkmm
1070 (package
1071 (name "gtkmm")
29c7b4d6 1072 (version "3.22.2")
c5cc5006
LC
1073 (source (origin
1074 (method url-fetch)
b38e45d8
EB
1075 (uri (string-append "mirror://gnome/sources/" name "/"
1076 (version-major+minor version) "/"
1077 name "-" version ".tar.xz"))
c5cc5006
LC
1078 (sha256
1079 (base32
29c7b4d6 1080 "1400535lhyya462pfx8bp11k3mg3jsbdghlpygskd5ai665dkbwi"))))
c5cc5006 1081 (build-system gnu-build-system)
ff5c33fe 1082 (native-inputs `(("pkg-config" ,pkg-config)
ba470833 1083 ("glib" ,glib "bin") ;for 'glib-compile-resources'
6a49ae78 1084 ("xorg-server" ,xorg-server-1.19.3)))
c5cc5006
LC
1085 (propagated-inputs
1086 `(("pangomm" ,pangomm)
1087 ("cairomm" ,cairomm)
1088 ("atkmm" ,atkmm)
1089 ("gtk+" ,gtk+)
1090 ("glibmm" ,glibmm)))
ba470833 1091 (arguments
6a49ae78 1092 `(;; XXX: Tests require C++14 or later. Remove this when the default
29c7b4d6
MB
1093 ;; compiler is >= GCC6.
1094 #:configure-flags '("CXXFLAGS=-std=gnu++14")
6a49ae78 1095 #:disallowed-references (,xorg-server-1.19.3)
29c7b4d6 1096 #:phases (modify-phases %standard-phases
ba470833
LC
1097 (add-before 'check 'run-xvfb
1098 (lambda* (#:key inputs #:allow-other-keys)
1099 (let ((xorg-server (assoc-ref inputs "xorg-server")))
1100 ;; Tests such as 'object_move/test' require a running
1101 ;; X server.
1102 (system (string-append xorg-server "/bin/Xvfb :1 &"))
1103 (setenv "DISPLAY" ":1")
1104 ;; Don't fail because of the missing /etc/machine-id.
1105 (setenv "DBUS_FATAL_WARNINGS" "0")
1106 #t))))))
8e933cb3 1107 (home-page "https://gtkmm.org/")
c5cc5006
LC
1108 (synopsis
1109 "C++ interface to the GTK+ graphical user interface library")
1110 (description
1111 "gtkmm is the official C++ interface for the popular GUI library GTK+.
1112Highlights include typesafe callbacks, and a comprehensive set of widgets that
1113are easily extensible via inheritance. You can create user interfaces either
1114in code or with the Glade User Interface designer, using libglademm. There's
1115extensive documentation, including API reference and a tutorial.")
1116 (license license:lgpl2.1+)))
9c086443
JD
1117
1118
1119(define-public gtkmm-2
1120 (package (inherit gtkmm)
b38e45d8 1121 (name "gtkmm")
124596f2 1122 (version "2.24.5")
9c086443
JD
1123 (source (origin
1124 (method url-fetch)
b38e45d8
EB
1125 (uri (string-append "mirror://gnome/sources/" name "/"
1126 (version-major+minor version) "/"
1127 name "-" version ".tar.xz"))
9c086443
JD
1128 (sha256
1129 (base32
124596f2 1130 "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006"))))
3ad29c9e
SB
1131 (arguments
1132 '(#:configure-flags '("CPPFLAGS=-std=c++11"))) ; required by libsigc++
ff5c33fe 1133 (native-inputs `(("pkg-config" ,pkg-config)))
9c086443
JD
1134 (propagated-inputs
1135 `(("pangomm" ,pangomm)
1136 ("cairomm" ,cairomm)
1137 ("atkmm" ,atkmm)
1138 ("gtk+" ,gtk+-2)
1139 ("glibmm" ,glibmm)))))
fbcfa730 1140
e07a4489
MB
1141(define-public gtksourceviewmm
1142 (package
1143 (name "gtksourceviewmm")
1144 (version "3.18.0")
1145 (source (origin
1146 (method url-fetch)
1147 (uri (string-append "mirror://gnome/sources/" name "/"
1148 (version-major+minor version) "/"
1149 name "-" version ".tar.xz"))
1150 (sha256
1151 (base32 "0fgvmhm4h4qmxig87qvangs6ijw53mi40siz7pixlxbrsgiil22i"))))
1152 (build-system gnu-build-system)
1153 (native-inputs
1154 `(("pkg-config" ,pkg-config)))
1155 (propagated-inputs
1156 ;; In 'Requires' of gtksourceviewmm-3.0.pc.
1157 `(("glibmm" ,glibmm)
1158 ("gtkmm" ,gtkmm)
1159 ("gtksourceview" ,gtksourceview)))
1160 (synopsis "C++ interface to the GTK+ 'GtkTextView' widget")
1161 (description
1162 "gtksourceviewmm is a portable C++ library that extends the standard GTK+
1163framework for multiline text editing with support for configurable syntax
1164highlighting, unlimited undo/redo, search and replace, a completion framework,
1165printing and other features typical of a source code editor.")
1166 (license license:lgpl2.1+)
1167 (home-page "https://developer.gnome.org/gtksourceview/")))
1168
1169;;;
1170;;; Python bindings.
1171;;;
1172
fbcfa730
EB
1173(define-public python-pycairo
1174 (package
1175 (name "python-pycairo")
6009cdb4 1176 (version "1.16.3")
fbcfa730
EB
1177 (source
1178 (origin
1179 (method url-fetch)
6009cdb4
AI
1180 (uri (string-append "https://github.com/pygobject/pycairo/releases/download/v"
1181 version "/pycairo-" version ".tar.gz"))
fbcfa730
EB
1182 (sha256
1183 (base32
6009cdb4
AI
1184 "1xq1bwhyi5imca5kvd28szh2rdzi8g0kaspwaqgsbczqskjj3csv"))))
1185 (build-system python-build-system)
fbcfa730 1186 (native-inputs
b837e658 1187 `(("pkg-config" ,pkg-config)
6009cdb4 1188 ("python-pytest" ,python-pytest)))
fbcfa730
EB
1189 (propagated-inputs ;pycairo.pc references cairo
1190 `(("cairo" ,cairo)))
6009cdb4 1191 (home-page "https://cairographics.org/pycairo/")
fbcfa730
EB
1192 (synopsis "Python bindings for cairo")
1193 (description
1194 "Pycairo is a set of Python bindings for the Cairo graphics library.")
7ec42f1d
LC
1195 (license license:lgpl3+)
1196 (properties `((python2-variant . ,(delay python2-pycairo))))))
fbcfa730 1197
7ca0dbc3 1198(define-public python2-pycairo
6009cdb4
AI
1199 (let ((pycairo (package-with-python2
1200 (strip-python2-variant python-pycairo))))
1201 (package
1202 (inherit pycairo)
1203 (propagated-inputs
1204 `(("python2-funcsigs" ,python2-funcsigs)
1205 ,@(package-propagated-inputs pycairo)))
1206 ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
1207 (license (list license:lgpl2.1 license:mpl1.1)))))
fbcfa730
EB
1208
1209(define-public python2-pygtk
1210 (package
1211 (name "python2-pygtk")
1212 (version "2.24.0")
1213 (source
1214 (origin
1215 (method url-fetch)
966a543b 1216 (uri (string-append "mirror://gnome/sources"
fbcfa730
EB
1217 "/pygtk/" (version-major+minor version)
1218 "/pygtk-" version ".tar.bz2"))
1219 (sha256
1220 (base32
1221 "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"))))
1222 (build-system gnu-build-system)
594e7b47
LC
1223 (outputs '("out"
1224 "doc")) ;13 MiB of gtk-doc HTML
fbcfa730
EB
1225 (native-inputs
1226 `(("pkg-config" ,pkg-config)))
1227 (inputs
1228 `(("python" ,python-2)
6ab4712d 1229 ("libglade" ,libglade)
fbcfa730
EB
1230 ("glib" ,glib)))
1231 (propagated-inputs
7ca0dbc3 1232 `(("python-pycairo" ,python2-pycairo) ;loaded at runtime
fbcfa730
EB
1233 ("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
1234 ("gtk+" ,gtk+-2)))
1235 (arguments
1236 `(#:tests? #f
ae115bc7 1237 #:phases (modify-phases %standard-phases
594e7b47
LC
1238 (add-before 'configure 'set-gtk-doc-directory
1239 (lambda* (#:key outputs #:allow-other-keys)
1240 ;; Install documentation to "doc".
1241 (let ((doc (assoc-ref outputs "doc")))
1242 (substitute* "docs/Makefile.in"
1243 (("TARGET_DIR = \\$\\(datadir\\)")
1244 (string-append "TARGET_DIR = " doc))))))
ae115bc7
LC
1245 (add-after 'configure 'fix-codegen
1246 (lambda* (#:key inputs #:allow-other-keys)
1247 (substitute* "pygtk-codegen-2.0"
1248 (("^prefix=.*$")
1249 (string-append
1250 "prefix="
1251 (assoc-ref inputs "python-pygobject") "\n")))))
1252 (add-after 'install 'install-pth
1253 (lambda* (#:key inputs outputs #:allow-other-keys)
1254 ;; pygtk's modules are stored in a subdirectory of
1255 ;; python's site-packages directory. Add a .pth file so
1256 ;; that python will add that subdirectory to its module
1257 ;; search path.
1258 (let* ((out (assoc-ref outputs "out"))
1259 (site (string-append out "/lib/python"
1260 ,(version-major+minor
1261 (package-version python-2))
1262 "/site-packages")))
1263 (call-with-output-file (string-append site "/pygtk.pth")
1264 (lambda (port)
1265 (format port "gtk-2.0~%")))))))))
fbcfa730
EB
1266 (home-page "http://www.pygtk.org/")
1267 (synopsis "Python bindings for GTK+")
1268 (description
1269 "PyGTK allows you to write full featured GTK programs in Python. It is
d1e4ad1b 1270targeted at GTK 2.x, and can be used in conjunction with gnome-python to
fbcfa730
EB
1271write GNOME applications.")
1272 (license license:lgpl2.1+)))
136770c9 1273
4e028d7a
AV
1274(define-public perl-cairo
1275 (package
1276 (name "perl-cairo")
1277 (version "1.106")
1278 (source (origin
1279 (method url-fetch)
1280 (uri (string-append
1281 "mirror://cpan/authors/id/X/XA/XAOC/Cairo-"
1282 version ".tar.gz"))
1283 (sha256
1284 (base32
1285 "1i25kks408c54k2zxskvg54l5k3qadzm8n72ffga9jy7ic0h6j76"))))
1286 (build-system perl-build-system)
1287 (native-inputs
1288 `(("perl-extutils-depends" ,perl-extutils-depends)
1289 ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
1290 (inputs
1291 `(("cairo" ,cairo)))
1292 (home-page "http://search.cpan.org/dist/Cairo/")
1293 (synopsis "Perl interface to the cairo 2d vector graphics library")
1294 (description "Cairo provides Perl bindings for the vector graphics library
1295cairo. It supports multiple output targets, including PNG, PDF and SVG. Cairo
1296produces identical output on all those targets.")
1297 (license license:lgpl2.1+)))
1298
b5bbcda3
AV
1299(define-public perl-gtk2
1300 (package
1301 (name "perl-gtk2")
1302 (version "1.24992")
1303 (source (origin
1304 (method url-fetch)
1305 (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-"
1306 version ".tar.gz"))
1307 (sha256
1308 (base32
1309 "1044rj3wbfmgaif2jb0k28m2aczli6ai2n5yvn6pr7zjyw16kvd2"))))
1310 (build-system perl-build-system)
1311 (native-inputs
1312 `(("perl-extutils-depends" ,perl-extutils-depends)
1313 ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
1314 (inputs
1315 `(("gtk+" ,gtk+-2)))
1316 (propagated-inputs
1317 `(("perl-pango" ,perl-pango)))
1318 (home-page "http://search.cpan.org/dist/Gtk2/")
1319 (synopsis "Perl interface to the 2.x series of the Gimp Toolkit library")
1320 (description "Perl bindings to the 2.x series of the Gtk+ widget set.
1321This module allows you to write graphical user interfaces in a Perlish and
1322object-oriented way, freeing you from the casting and memory management in C,
1323yet remaining very close in spirit to original API.")
1324 (license license:lgpl2.1+)))
1325
ee6911c7
AV
1326(define-public perl-pango
1327 (package
1328 (name "perl-pango")
1329 (version "1.227")
1330 (source (origin
1331 (method url-fetch)
1332 (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Pango-"
1333 version ".tar.gz"))
1334 (sha256
1335 (base32
1336 "0wdcidnfnb6nm79fzfs39ivawj3x8m98a147fmcxgv1zvwia9c1l"))))
1337 (build-system perl-build-system)
1338 (native-inputs
1339 `(("perl-extutils-depends" ,perl-extutils-depends)
1340 ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
1341 (inputs
1342 `(("pango" ,pango)))
1343 (propagated-inputs
1344 `(("perl-cairo" ,perl-cairo)
1345 ("perl-glib" ,perl-glib)))
1346 (home-page "http://search.cpan.org/dist/Pango/")
1347 (synopsis "Layout and render international text")
1348 (description "Pango is a library for laying out and rendering text, with an
1349emphasis on internationalization. Pango can be used anywhere that text layout
1350is needed, but using Pango in conjunction with Cairo and/or Gtk2 provides a
1351complete solution with high quality text handling and graphics rendering.
1352
1353Dynamically loaded modules handle text layout for particular combinations of
1354script and font backend. Pango provides a wide selection of modules, including
1355modules for Hebrew, Arabic, Hangul, Thai, and a number of Indic scripts.
1356Virtually all of the world's major scripts are supported.
1357
1358In addition to the low level layout rendering routines, Pango includes
1359@code{Pango::Layout}, a high level driver for laying out entire blocks of text,
1360and routines to assist in editing internationalized text.")
1361 (license license:lgpl2.1+)))
1362
136770c9
PW
1363(define-public girara
1364 (package
1365 (name "girara")
bba29e10 1366 (version "0.2.9")
136770c9
PW
1367 (source (origin
1368 (method url-fetch)
1369 (uri
1370 (string-append "https://pwmt.org/projects/girara/download/girara-"
bba29e10 1371 version ".tar.xz"))
136770c9
PW
1372 (sha256
1373 (base32
bba29e10 1374 "0lkxrfna818wkkr2f6mdzf15y5z8xl1b9592ylmzjbqsqya3w7x8"))))
136770c9 1375 (native-inputs `(("pkg-config" ,pkg-config)
b82d5b09 1376 ("check" ,check)
bf38d5be 1377 ("gettext" ,gettext-minimal)
7d24c26e 1378 ("glib:bin" ,glib "bin")
2416665e 1379 ("xorg-server" ,xorg-server-1.19.3)))
b82d5b09
MB
1380 ;; Listed in 'Requires.private' of 'girara.pc'.
1381 (propagated-inputs `(("gtk+" ,gtk+)))
136770c9 1382 (arguments
bba29e10 1383 `(#:phases (modify-phases %standard-phases
7d24c26e
MB
1384 (add-before 'check 'start-xserver
1385 ;; Tests require a running X server.
1386 (lambda* (#:key inputs #:allow-other-keys)
1387 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1388 (display ":1"))
1389 (setenv "DISPLAY" display)
3e6b398a
MB
1390
1391 ;; On busy machines, tests may take longer than
1392 ;; the default of four seconds.
1393 (setenv "CK_DEFAULT_TIMEOUT" "20")
1394
7d24c26e
MB
1395 ;; Don't fail due to missing '/etc/machine-id'.
1396 (setenv "DBUS_FATAL_WARNINGS" "0")
1397 (zero? (system (string-append xorg-server "/bin/Xvfb "
1398 display " &")))))))))
bba29e10 1399 (build-system meson-build-system)
136770c9
PW
1400 (home-page "https://pwmt.org/projects/girara/")
1401 (synopsis "Library for minimalistic gtk+3 user interfaces")
1402 (description "Girara is a library that implements a user interface that
1403focuses on simplicity and minimalism. Currently based on GTK+, a
1404cross-platform widget toolkit, it provides an interface that focuses on three
1405main components: a so-called view widget that represents the actual
1406application, an input bar that is used to execute commands of the
1407application and the status bar which provides the user with current
1408information.")
1409 (license license:zlib)))
3bc45449
AW
1410
1411(define-public gtk-doc
1412 (package
1413 (name "gtk-doc")
36ba88da 1414 (version "1.27")
3bc45449
AW
1415 (source (origin
1416 (method url-fetch)
1417 (uri (string-append "mirror://gnome/sources/" name "/"
1418 (version-major+minor version) "/"
1419 name "-" version ".tar.xz"))
1420 (sha256
1421 (base32
36ba88da 1422 "0vwsdl61nvnmqswlz5j9m4hg7qirhazwcikcnqf9nx0c13vx6sz2"))))
3bc45449
AW
1423 (build-system gnu-build-system)
1424 (arguments
6ad08117
AE
1425 `(#:parallel-tests? #f
1426 #:phases
b4787e71 1427 (modify-phases %standard-phases
36ba88da
DM
1428 (add-after 'unpack 'patch-gtk-doc-scan
1429 (lambda* (#:key inputs #:allow-other-keys)
1430 (substitute* "gtk-doc.xsl"
1431 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
1432 (string-append (assoc-ref inputs "docbook-xsl")
1433 "/xml/xsl/docbook-xsl-"
1434 ,(package-version docbook-xsl)
1435 "/html/chunk.xsl")))
1436 #t))
1437 (add-after 'patch-gtk-doc-scan 'patch-test-out
1438 (lambda _
1439 ;; sanity.sh counts the number of status lines. Since our
1440 ;; texlive regenerates the fonts every time and the font
1441 ;; generator metafont outputs a lot of extra lines, this
1442 ;; test would always fail. Disable it for now.
1443 (substitute* "tests/Makefile.in"
1444 (("empty.sh sanity.sh") "empty.sh"))
1445 #t))
a20608a5
RW
1446 (add-before 'build 'set-HOME
1447 (lambda _
1448 ;; FIXME: dblatex with texlive-union does not find the built
1449 ;; metafonts, so it tries to generate them in HOME.
1450 (setenv "HOME" "/tmp")
1451 #t))
1452 (add-before 'configure 'fix-docbook
b4787e71
AW
1453 (lambda* (#:key inputs #:allow-other-keys)
1454 (substitute* "configure"
1455 ;; The configure check is overzealous about making sure that
1456 ;; things are in place -- it uses the xmlcatalog tool to make
1457 ;; sure that docbook-xsl is available, but this tool can only
1458 ;; look in one catalog file, unlike the $XML_CATALOG_FILES
1459 ;; variable that Guix defines. Fool the test by using the
1460 ;; docbook-xsl catalog explicitly and get on with life.
1461 (("\"\\$XML_CATALOG_FILE\" \
1462\"http://docbook.sourceforge.net/release/xsl/")
4ed737b2
MW
1463 (string-append (car (find-files (assoc-ref inputs "docbook-xsl")
1464 "^catalog.xml$"))
1465 " \"http://docbook.sourceforge.net/release/xsl/")))
d86a7c64
RW
1466 #t))
1467 (add-after 'install 'wrap-executables
1468 (lambda* (#:key outputs #:allow-other-keys)
1469 (let ((out (assoc-ref outputs "out")))
1470 (for-each (lambda (prog)
1471 (wrap-program prog
1472 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))
1473 (find-files (string-append out "/bin")))
1474 #t))))
b4787e71 1475 #:configure-flags
3bc45449
AW
1476 (list (string-append "--with-xml-catalog="
1477 (assoc-ref %build-inputs "docbook-xml")
1478 "/xml/dtd/docbook/catalog.xml"))))
1479 (native-inputs
1480 `(("pkg-config" ,pkg-config)
1481 ("itstool" ,itstool)
1482 ("libxml" ,libxml2)
b94a6ca0 1483 ("gettext" ,gettext-minimal)
3bc45449
AW
1484 ("bc" ,bc)))
1485 (inputs
1486 `(("perl" ,perl)
1487 ("python" ,python)
1488 ("xsltproc" ,libxslt)
1489 ("dblatex" ,dblatex)
1490 ("docbook-xml" ,docbook-xml-4.3)
1491 ("docbook-xsl" ,docbook-xsl)
1492 ("source-highlight" ,source-highlight)
9c708566
DM
1493 ("glib" ,glib)
1494 ("python-six" ,python-six)))
3bc45449
AW
1495 (home-page "http://www.gtk.org/gtk-doc/")
1496 (synopsis "Documentation generator from C source code")
1497 (description
a124bbd2 1498 "GTK-Doc generates API documentation from comments added to C code. It is
3bc45449
AW
1499typically used to document the public API of GTK+ and GNOME libraries, but it
1500can also be used to document application code.")
1501 (license license:gpl2+)))
9ba5198c
FH
1502
1503(define-public gtk-engines
1504 (package
1505 (name "gtk-engines")
1506 (version "2.20.2")
1507 (source (origin
1508 (method url-fetch)
1509 (uri (string-append "mirror://gnome/sources/" name "/"
1510 (version-major+minor version) "/"
1511 name "-" version ".tar.bz2"))
1512 (sha256
1513 (base32
1514 "1db65pb0j0mijmswrvpgkdabilqd23x22d95hp5kwxvcramq1dhm"))))
1515 (build-system gnu-build-system)
1516 (arguments
1517 `(#:configure-flags
1518 `("--enable-animation")))
1519 (native-inputs
1520 `(("pkg-config" ,pkg-config)
1521 ("intltool" ,intltool)))
9fff9e64
SB
1522 (inputs
1523 ;; Don't propagate GTK+ to reduce "profile pollution".
9ba5198c 1524 `(("gtk+" ,gtk+-2))) ; required by gtk-engines-2.pc
f032d0be 1525 (home-page "https://live.gnome.org/GnomeArt")
9ba5198c
FH
1526 (synopsis "Theming engines for GTK+ 2.x")
1527 (description
1528 "This package contains the standard GTK+ 2.x theming engines including
1529Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,
1530Redmond95 and ThinIce.")
1531 (license (list license:gpl2+ license:lgpl2.1+))))
b7807bb2
FH
1532
1533(define-public murrine
1534 (package
1535 (name "murrine")
1536 (version "0.98.2")
1537 (source (origin
1538 (method url-fetch)
1539 (uri (string-append "mirror://gnome/sources/" name "/"
1540 (version-major+minor version) "/"
1541 name "-" version ".tar.xz"))
1542 (sha256
1543 (base32
1544 "129cs5bqw23i76h3nmc29c9mqkm9460iwc8vkl7hs4xr07h8mip9"))))
1545 (build-system gnu-build-system)
1546 (arguments
1547 `(#:configure-flags
1548 `("--enable-animation"
1549 "--enable-animationrtl")))
1550 (native-inputs
1551 `(("pkg-config" ,pkg-config)
1552 ("intltool" ,intltool)))
1553 (propagated-inputs
1554 `(("gtk+" ,gtk+-2)))
f032d0be 1555 (home-page "https://live.gnome.org/GnomeArt")
b7807bb2
FH
1556 (synopsis "Cairo-based theming engine for GTK+ 2.x")
1557 (description
1558 "Murrine is a cairo-based GTK+ theming engine. It is named after the
1559glass artworks done by Venicians glass blowers.")
1560 (license license:gpl2+)))
9c0c77f8
KY
1561
1562(define-public gtkspell3
1563 (package
1564 (name "gtkspell3")
3be65cde 1565 (version "3.0.9")
9c0c77f8
KY
1566 (source (origin
1567 (method url-fetch)
1568 (uri (string-append "mirror://sourceforge/gtkspell/"
3be65cde 1569 version "/" name "-" version ".tar.xz"))
9c0c77f8
KY
1570 (sha256
1571 (base32
3be65cde 1572 "09jdicmpipmj4v84gnkqwbmj4lh8v0i6pn967rb9jx4zg2ia9x54"))))
9c0c77f8
KY
1573 (build-system gnu-build-system)
1574 (native-inputs
1575 `(("intltool" ,intltool)
1576 ("pkg-config" ,pkg-config)))
1577 (inputs
1578 `(("enchant" ,enchant)
1579 ("gobject-introspection" ,gobject-introspection)
1580 ("gtk+" ,gtk+)
1581 ("pango" ,pango)))
cd49e478
DM
1582 (propagated-inputs
1583 `(("enchant" ,enchant))) ; gtkspell3-3.0.pc refers to it.
9c0c77f8
KY
1584 (home-page "http://gtkspell.sourceforge.net")
1585 (synopsis "Spell-checking addon for GTK's TextView widget")
1586 (description
1587 "GtkSpell provides word-processor-style highlighting and replacement of
1588misspelled words in a GtkTextView widget.")
1589 (license license:gpl2+)))
37355498 1590
1591(define-public clipit
1592 (package
1593 (name "clipit")
1594 (version "1.4.2")
1595 (source (origin
1596 (method url-fetch)
1597 (uri (string-append
1598 "https://github.com/downloads/ClipIt/clipit-"
1599 version ".tar.gz"))
1600 (sha256
1601 (base32
1602 "0jrwn8qfgb15rwspdp1p8hb1nc0ngmpvgr87d4k3lhlvqg2cfqva"))))
1603 (build-system gnu-build-system)
1604 (native-inputs
1605 `(("intltool" ,intltool)
1606 ("pkg-config" ,pkg-config)))
1607 (inputs
1608 `(("gtk+" ,gtk+-2)))
1609 (home-page "https://github.com/CristianHenzel/ClipIt")
1610 (synopsis "Lightweight GTK+ clipboard manager")
1611 (description
1612 "ClipIt is a clipboard manager with features such as a history, search
1613thereof, global hotkeys and clipboard item actions. It was forked from
1614Parcellite and adds bugfixes and features.")
1615 (license license:gpl2+)))
61af2675
RJ
1616
1617(define-public graphene
1618 (package
1619 (name "graphene")
1620 (version "1.6.0")
1621 (source (origin
1622 (method url-fetch)
1623 (uri (string-append
1624 "https://github.com/ebassi/graphene/archive/"
1625 version ".tar.gz"))
1626 (file-name (string-append name "-" version ".tar.gz"))
1627 (sha256
1628 (base32 "1zd2daj7y590wnzn4jw0niyc4fnzgxrcl9i7nwhy8b25ks2hz5wq"))))
1629 (build-system gnu-build-system)
1630 (arguments
1631 `(#:configure-flags '("--enable-introspection=yes")
1632 #:phases
1633 (modify-phases %standard-phases
1634 (add-before 'configure 'autogen
1635 (lambda _
1636 (zero? (system* "./autogen.sh")))))))
1637 (native-inputs
1638 `(("autoconf" ,autoconf)
1639 ("which" ,which)
1640 ("pkg-config" ,pkg-config)
1641 ("automake" ,automake)
1642 ("libtool" ,libtool)))
1643 (inputs
1644 `(("python" ,python)
1645 ("python-2" ,python-2)
1646 ("glib" ,glib)
1647 ("gobject-introspection" ,gobject-introspection)))
1648 (home-page "http://ebassi.github.io/graphene")
1649 (synopsis "Thin layer of graphic data types")
1650 (description "This library provides graphic types and their relative API;
1651it does not deal with windowing system surfaces, drawing, scene graphs, or
1652input.")
1653 (license license:expat)))