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