Can't save in r12331

Chris Shoemaker c.shoemaker at cox.net
Fri Jan 13 15:21:11 EST 2006


On Fri, Jan 13, 2006 at 03:02:09PM -0500, Chris Shoemaker wrote:
> On Fri, Jan 13, 2006 at 08:20:56PM +0200, Покотиленко Костик wrote:
> > > If not, do you see errors in /tmp/gnucash.trace?
> > 
> > It's saying something nasty, attached
> > 
> > -- 
> > Покотиленко Костик <casper at meteor.dp.ua>
> 
> > gnucash: failed to open libtool archive "NONE/lib/libqof-backend-qsf.la"
> > 
> > gnc_engine_init: assertion `(qof_load_backend_library (QOF_LIB_DIR, "libqof-backend-qsf.la", "qsf_provider_init"))' failed
> 
> Aacck!  Why are we hard-coding a ".la" module suffix?  Do we not trust
> GModule to find the right library?  But, that's probably not the
> _real_ problem...
> 
> > Initialization failed for module gnucash/business-core-file
> > 
> > Unable to read file /home/casper/.gnucash/expressions-2.0: File is empty
> > 
> > gnucash: NONE/lib/libqof-backend-qsf.so: cannot open shared object file: No such file or directory
> > 
> 
> I have a pretty good idea what's happening here.  I hadn't taken a
> look at QOF's module loading mechanism before today, but that is
> basically the problem.
> 
> This is very closely related to what is also causing test-customer to
> fail with basically the same message in
> src/business/business-core/test/.  QOF uses a compile-time path
> (QOF_LIB_DIR) to find libraries.  Yours wasn't set.  It's a bug in our
> configure.in.  We need to set QOF_LIB_DIR even if we're using QOF
> internally.  A very short-term is to revert to r12330 and make sure to
> use --without-qof if there's a chance you have an external QOF
> installed.

Our configure.in:
if test x$QOF_XML_DIR = x; then
        QOF_LIB_DIR=`eval echo $libdir | sed "s%^NONE%$prefix%"`
        QOF_LIB_DIR=`eval echo $QOF_LIB_DIR | sed "s%^NONE%$prefix%"`  
        QOF_CFLAGS="-I\${top_srcdir}/lib/libqof/qof"
        QOF_LIBS="\${top_srcdir}/lib/libqof/qof/libqof.la"
#       QOF_LIB_DIR=`eval echo ${libdir}`
        QOF_VERSION="internal"
        QOF_PREFIX="internal"
        QOF_XML_DIR=`eval echo ${datadir}/xml/qsf`
        LIBQOF_LIBRARY_VERSION=1:2:0
        LIBQOF_BACKEND_QSF_LIBRARY_VERSION=0:1:0
        AC_SUBST(LIBQOF_LIBRARY_VERSION)
        AC_SUBST(LIBQOF_BACKEND_QSF_LIBRARY_VERSION)
        AC_DEFINE(HAVE_LIBQOF,,[We will use the internal QOF code])
        HAVE_LIBQOF="use_internal"
fi

I'm guessing that if --prefix is not specified, then it will be 'NONE'
and this will fail.  Maybe we want:

        QOF_LIB_DIR='${GNC_LIBDIR}'

-chris


More information about the gnucash-devel mailing list