unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* need help for new guile-cairo release
@ 2018-08-31 22:20 Daniel Llorens
  2018-10-01  0:30 ` David Pirotte
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Llorens @ 2018-08-31 22:20 UTC (permalink / raw)
  To: guile-user


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






^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: need help for new guile-cairo release
  2018-08-31 22:20 Daniel Llorens
@ 2018-10-01  0:30 ` David Pirotte
  2018-10-01 17:26   ` Vladimir Zhbanov
  0 siblings, 1 reply; 4+ messages in thread
From: David Pirotte @ 2018-10-01  0:30 UTC (permalink / raw)
  To: Daniel Llorens; +Cc: guile-user


[-- Attachment #1.1: Type: text/plain, Size: 1091 bytes --]

Hello Daniel,

> 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).

> 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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Some-more-files-we-don-t-want-to-track.patch --]
[-- Type: text/x-patch, Size: 1218 bytes --]

From 826acc57260e48ba23d80b7310d2bc5f8951c556 Mon Sep 17 00:00:00 2001
From: David Pirotte <david@altosw.be>
Date: Sun, 30 Sep 2018 20:46:01 -0300
Subject: [PATCH 1/3] Some more files we don't want to track

* .gitignore: Some more files we don't want to track.  I also 'grouped'
  all build-aux/* files.
---
 .gitignore | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/.gitignore b/.gitignore
index 69cc11a..128a5a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,26 +4,29 @@ Makefile.in
 /autom4te.cache
 /autoregen.sh
 /cairo/config.scm
-/build-aux/config.guess
 /config.h
 /config.h.in
 /config.log
 /config.status
-/build-aux/config.sub
 /configure
+/build-aux/config.sub
+/build-aux/config.guess
 /build-aux/depcomp
-/doc/guile-cairo.info
 /build-aux/texinfo.tex
+/build-aux/install-sh
+/build-aux/compile
+/build-aux/test-driver
+/build-aux/ltmain.sh
+/build-aux/missing
+/doc/guile-cairo.info
 /env
 /guile-cairo.pc
+/guile-cairo-*.tar.gz
 /guile-cairo/.deps
 /guile-cairo/.libs
 /guile-cairo/*.x
 *.la
 *.lo
-/build-aux/install-sh
 /libtool
-/build-aux/ltmain.sh
-/build-aux/missing
 /stamp-h1
 /config.h.in~
-- 
2.19.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-Fixing-the-autogen.sh-echo-message.patch --]
[-- Type: text/x-patch, Size: 680 bytes --]

From 51aa88b1e57e13f01128b788136fce036dfdd064 Mon Sep 17 00:00:00 2001
From: David Pirotte <david@altosw.be>
Date: Sun, 30 Sep 2018 20:48:09 -0300
Subject: [PATCH 2/3] Fixing the autogen.sh echo message

* autogen.sh:  In guile-cairo, the configure --prefix option is
  mandatory -> removing the bracket around the option.
---
 autogen.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/autogen.sh b/autogen.sh
index a3d6089..19c7485 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -3,4 +3,4 @@
 set -e
 autoreconf -vif
 echo
-echo "Now run ./configure [--prefix=/your/prefix]"
+echo "Now run ./configure --prefix=/your/prefix"
-- 
2.19.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: 0003-Fixing-configure.ac-so-make-distcheck-pass-again.patch --]
[-- Type: text/x-patch, Size: 2392 bytes --]

From e052dbfbb9eb4045f8c4f2f9ba944620a09daaae Mon Sep 17 00:00:00 2001
From: David Pirotte <david@altosw.be>
Date: Sun, 30 Sep 2018 20:52:26 -0300
Subject: [PATCH 3/3] Fixing configure.ac, so 'make distcheck' pass again

* configure.ac:  (a) Modern automake versions run the checks in parallel
  per default, but we don't support these yet (this is the change that
  fixes 'make distcheck';  (b) moving the project name and version number
  in AC_INIT, not AM_INIT_AUTOMAKE;  (c) bumping both the version number
  and the minimum libcairo version required to 1.10.0;  (d) adding
  AM_MAINTAINER_MODE, AM_SILENT_RULES;  (e) use LT_INIT, not
  AC_PROG_LIBTOOL; (f) adding a AC_CONFIG_FILES entry for env, running
  chmod.
---
 configure.ac | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/configure.ac b/configure.ac
index 47f8b30..5e08f27 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,7 @@
 define(GUILE_CAIRO_CONFIGURE_COPYRIGHT,[[
 
 Copyright (C) 2007, 2011 Andy Wingo <wingo@pobox.com>
+Copyright (C) 2018, Daniel Llorens <daniel.llorens@bluewin.ch>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as
@@ -19,20 +20,25 @@ License along with this program.  If not, see
 ]])
 
 AC_PREREQ(2.52)
-AC_INIT(HACKING)
+AC_INIT([guile-cairo], [1.10.0])
+
 AC_CONFIG_AUX_DIR([build-aux])
 AC_COPYRIGHT(GUILE_CAIRO_CONFIGURE_COPYRIGHT)
+
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(guile-cairo, 1.9.92)
 
-AC_SUBST(VERSION,1.9.92)
+AM_INIT_AUTOMAKE([1.14 gnu -Wno-portability -Wno-syntax \
+  color-tests serial-tests foreign])
+AM_MAINTAINER_MODE([enable])
+AM_SILENT_RULES([yes])
 
-AC_DISABLE_STATIC
+AC_SUBST(VERSION, 1.10.0)
 
 AC_ISC_POSIX
 AC_PROG_CC
 AC_STDC_HEADERS
-AC_PROG_LIBTOOL
+LT_INIT([disable-static])
+
 
 if test "x$prefix" = xNONE; then
    AC_MSG_ERROR([No explicit prefix given.
@@ -82,12 +88,13 @@ else
   AC_MSG_NOTICE([found Guile $GUILE_EFFECTIVE_VERSION.x])
 fi
 
-PKG_CHECK_MODULES(CAIRO, cairo >= 1.2.0)
+PKG_CHECK_MODULES(CAIRO, cairo >= 1.10.0)
 AC_SUBST(CAIRO_LIBS)
 AC_SUBST(CAIRO_CFLAGS)
 
 AC_ARG_VAR(CAIRO_XML_DIR, [path to Cairo *.xml documentation])
 
+AC_CONFIG_FILES([env], [chmod +x env])
 AC_CONFIG_FILES(
 Makefile
 guile-cairo.pc
-- 
2.19.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: need help for new guile-cairo release
  2018-10-01  0:30 ` David Pirotte
@ 2018-10-01 17:26   ` Vladimir Zhbanov
  0 siblings, 0 replies; 4+ messages in thread
From: Vladimir Zhbanov @ 2018-10-01 17:26 UTC (permalink / raw)
  To: guile-user

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



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: need help for new guile-cairo release
       [not found] <mailman.112.1538496025.22233.guile-user@gnu.org>
@ 2018-10-03  6:31 ` Daniel Llorens
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel Llorens @ 2018-10-03  6:31 UTC (permalink / raw)
  To: vzhbanov; +Cc: guile-user

[-- Attachment #1: Type: text/plain, Size: 276 bytes --]


> 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


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-10-03  6:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.112.1538496025.22233.guile-user@gnu.org>
2018-10-03  6:31 ` need help for new guile-cairo release Daniel Llorens
2018-08-31 22:20 Daniel Llorens
2018-10-01  0:30 ` David Pirotte
2018-10-01 17:26   ` Vladimir Zhbanov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).