2018-08-31 22:20:36 UTC
Cairo (https://cairographics.org/) is a popular, high level 2D drawing library. Andy Wingo wrote Guile bindings for it: guile-cairo. Cairo lets you draw directly to a bitmap, to SVG, to PDF, etc. and the Guile bindings cover most of the library. The only real competition might be Skia (https://skia.org/) which doesn't seem to have Guile bindings.
guile-cairo is in all the common distros and I've come to rely on it for a big part of my plotting needs. But it hasn't seen a release in many years. It didn't take long to find bugs after I started using it. I'd like to release the fixes, but there are a couple issues with the release process that I haven't been able to solve.
1) make distcheck fails. I think the error is not in the tests themselves but in the way they are run. One of the commands in tests/unit-tests/Makefile.am produces
../../env guile -s $SHELL ...
which of course fails. I don't understand what that's supposed to do.
2) I cannot rebuild the documentation. To try this, you have to (assuming you build guile-cairo in-tree)
a) download the Cairo source
b) configure Cairo with --enable-gtk-doc
c) > make doc
or get the Cairo .xml files in some other way. Maybe you can download them somewhere? Then
d) install guile-lib and guile-gnome
e) go to guile-cairo and configure it with
CAIRO_XML_DIR=<cairo-build-dir>/doc/public/xml ./configure etc
f) go to <guile-cairo-build-dir>/doc
g) > make generate-defuns
This will fail on a command like this:
../env guile -c "(apply (@ (gnome gw support gtk-doc) gtk-doc->texi-defuns) (cadr (program-arguments)) 'heuristics '((cairo)) (cddr (program-arguments)))" ./overrides.texi
The failure is on the first definition on the first xml file. I asked Andy on #guile and he said that the cairo*.xml format might have changed. I tried going back a couple versions of Cairo and I still couldn't get it to work.
Unfortunately this machine is too complicated for me to repair. Cairo has been stable for a few years, so worst case I would maintain the docs by hand going forward.
If you think you can help please go clone master from
and see at least if you can figure out what the issue with ‘make distcheck’ is. The doc generation looks fragile and sits on top of other stuff which isn't well maintained either, so I have less hope. But if you feel adventurous, please give that a try as well.
The bug tracker is here
The source browser is here:
If you're looking to contribute directly, there's a group and page in savannah: