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