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