Discussion:
need help for new guile-cairo release
Daniel Llorens
2018-08-31 22:20:36 UTC
Permalink
Hi Guilers,

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

git://git.savannah.gnu.org/guile-cairo.git

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

https://bugs.freedesktop.org/buglist.cgi?quicksearch=guile-cairo

The source browser is here:

http://git.savannah.nongnu.org/cgit/guile-cairo.git

If you're looking to contribute directly, there's a group and page in savannah:

https://savannah.nongnu.org/projects/guile-cairo/


Thanks

Daniel
David Pirotte
2018-10-01 00:30:08 UTC
Permalink
Hello Daniel,
Post by Daniel Llorens
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
I fixed 'make distcheck' and two other things, attached 3 patches ...

Another thing you could do to improve things a little is to use 'm4', in the
configure.ac file, and add an m4 dir to the project, where you would copy (and
distribute it) the latest guile.m4 file: this would allow you to clean the code
related to finding the installed (user) guile's effective version ...

Also, I did suggest to remove INSTALL from the distribution, but I now think it was
not a good advice :), maybe we should add and distribute it 'again' (because we may
change its content, something I always do in my projects ... as you wish of course).
Post by Daniel Llorens
2) I cannot rebuild the documentation. To try this, you have to (assuming you
build guile-cairo in-tree)
I haven't looked at this. If you (or someone else) find a solution, ping me,
so I can fix guile-gnome and guile-clutter ...

Cheers,
David
Vladimir Zhbanov
2018-10-01 17:26:51 UTC
Permalink
Daniel, David,

Thanks a lot for your work!

Just a minor note. It would be nice to mention somewhere in the
repo docs that guile-lib is necessary for `make check' to work.
--
Vladimir
Daniel Llorens
2018-10-03 06:31:20 UTC
Permalink
Post by Vladimir Zhbanov
Just a minor note. It would be nice to mention somewhere in the
repo docs that guile-lib is necessary for `make check' to work.
Thanks Vladimir, we'll add a note to the README and also to the website.

Please let us know if you notice anything else!

Regards

Daniel

Loading...