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