r23186 - gnucash/trunk - Bug 654196 - "make check" fails when built with --enable-dbi

John Ralls jralls at ceridwen.us
Sat Sep 21 18:44:40 EDT 2013

On Sep 21, 2013, at 1:51 PM, Derek Atkins <derek at ihtfp.com> wrote:

> Hi,
> On Sat, September 21, 2013 3:43 pm, Herbert Thoma wrote:
>> Am 21.09.2013 19:22, schrieb John Ralls:
>>> On Sep 21, 2013, at 9:36 AM, Geert Janssens <janssens-geert at telenet.be>
>>> wrote:
>>>> Yet I do have all three libraries installed. If I remove the test, I
>>>> can build and run GnuCash just fine using any of the backends. For
>>>> reference, the so files are here:
>>>> $ ls /usr/lib64/dbd/
>>>> libdbdmysql.so    libdbdpgsql.so    libdbdsqlite3.so
>>> Ah. That's because Fedora has broken dlopen by creating the non-standard
>>> /usr/lib64 and not modifying dlopen's search accordingly. See dlopen
>>> (3).
>> I just found out that openSUSE (at least 12.3) has the same broken,
>> non-standard behavior.
>>> You can either call configure with --with-dbd-dir=/usr/lib64/dbd, add
>>> /usr/lib64/dbd to $LD_LIBRARY_PATH, or add it to /etc/ld.so.conf.d and
>>> run ldconfig as root.
>> OK, adding /usr/lib64/dbd to /etc/ld.so.conf.d and running ldconfig fixed
>> the problem.
>>> I'll add some detail about that to the "not found" message.
>> I'd rather prefer that the test would just work, even with the broken,
>> non-standard
>> dlopen and /usr/lib64, since this seems to be quite common ...
> The tests should call dlopen in the exact same way that it's called in
> GnuCash.  DBI works in F19, doesn't it?  How is dlopen() called in the
> sources?  The tests should call it the exact same way.

It's not called in Gnucash. It's called in libdbi. 

That said, it occurred to me that I can just add /usr/lib/dbd, /usr/lib64/dbd,
and ${libdir}/dbd to LD_LIBRARY_PATH before running the test programs. Commit 
coming as soon as I test it.
> We should not require people to modify their ld.so.conf to get GnuCash to
> compile.

We don't. There are three ways, of which adding --with-dbd-dir to configure's arguments is the "recommended" one.

John Ralls

More information about the gnucash-devel mailing list