G-Wrap problems

Derek Atkins warlord@MIT.EDU
01 Oct 2002 11:16:09 -0400


Rob!  You're alive!!!!  

Now that I have your attention, we found two rather weird (and one
rather critical) bug in g-wrap-1.3.2 last night.  I would file a
critical bug report, but I don't know where to file g-wrap bugs
(except with you ;)


1) g-wrap 1.3.2 does not build with gcc3.  When you configure
and attempt to compile with gcc3 there is a fatal error:

gcc -DHAVE_CONFIG_H -I. -I. -I.. -O2 -g -Wall -Wno-uninitialized -Wno-unused -Werror -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/glib-1.2 -I/usr/lib/glib/include -g -O2 -I/usr/include -c gw-standard.c -MT gw-standard.lo -MD -MP -MF .deps/gw-standard.TPlo  -fPIC -DPIC -o .libs/gw-standard.lo
cc1: changing search order for system directory "/usr/include"
cc1:   as it has already been specified as a non-system directory
make[2]: *** [gw-standard.lo] Error 1

I don't know where the /usr/include is coming from, but removing that fixes
the bug...  (as does removing -Werror)  I haven't looked into this one
any deeper than that.


2) if you configure g-wrap with _no_ configure options, it installs
everything into /usr/local _EXCEPT_ the scheme files, which get
installed into /usr/share/guile/

This is a bug (IMHO) in the g-wrap configure script because it
has this code in configure.in:

   if test "x$prefix" = xNONE; then
     GUILEMODDIR='$(GUILE_SCMDIR)'
     G_WRAP_LOAD_DIR='$(GUILE_SCMDIR)'
   else
     GUILEMODDIR='$(datadir)/guile'
     G_WRAP_LOAD_DIR='$(datadir)/guile'
   fi)

Considering this code is part of a check for --with-moduledir, I think
it should probably _always_ use $(datadir)/guile unless you specify
otherwise, REGARLESS of prefix...  The reason this is an issue is how
gnucash uses this value.  From gnucash's configure.in:

G_WRAP_MODULE_DIR=`${G_WRAP_CONFIG} --guile-module-directory`
G_WRAP_LIB_DIR=`echo $G_WRAP_MODULE_DIR | sed -e 's|share/guile|lib|'`

In the "default" case, the g-wrap libraries are installed into
/usr/local/lib, but G_WRAP_MODULE_DIR is /usr/share/guile.  This script
computes G_WRAP_LIB_DIR as /usr/lib, which is obviously wrong!

I'm not sure whether this is a bug in g-wrap or gnucash...  My guess
is that it is really a gnucash bug (because it would fail in the face
of --with-moduledir too), but I figured I would point out the g-wrap
inconsistency.

I hope all is well with you otherwise...

-derek
-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord@MIT.EDU                        PGP key available