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