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