> On Oct 22, 2019, at 3:18 PM, Lothar Paltins <lkp...@mailbox.org> wrote:
> 
> Am 22.10.19 um 22:36 schrieb John Ralls:
>> Everything has trouble finding modules in non-standard locations. Use 
>> LD_LIBRARY_PATH to add those non-standard locations to the search paths for 
>> ld and dlopen.
> 
> This doesn't seem to be an issue. The runtime paths in the binary are 
> correctly set to /opt/gnucash/lib64 and /opt/gnucash/lib64/gnucash. Setting 
> LD_LIBRARY_PATH doesn't help.
> 
>> BTW, cmake puts the global config files--the ones that normally live in 
>> <prefix>/etc--in some strange subdirectory of /etc when <prefix> starts with 
>> /opt. GnuCash doesn't know about that and won't be able to find 
>> gnucash/environment, which may or may not break things. It does other 
>> strange things if <prefix> is /usr or starts with /usr/local, so life is 
>> easier if you install in a directory under $HOME, which also saves you 
>> needing to sudo for make install.
> 
> The only strangely installed file I've found is 
> /etc/opt/gnucash/gnucash/environment.
> 
> As you've suggested, I've tried to install gnucash to $HOME/gnucash and now 
> it works. Thanks for the hint.
> 
> But IMHO this is a bug of the make and install procedure. Gnucash should 
> search for a file in the same location as it installed it.

Sorry, I was thinking of the wrong part of module loading. The messages you got 
are from before the module is passed to dlopen and come from 
gnc_module_load_common 
(https://github.com/Gnucash/gnucash/blob/maint/libgnucash/gnc-module/gnc-module.c#L447).

That function does search, using the path set in $GNC_MODULE_PATH, and cmake 
writes that into <prefix>/etc/gnucash/environment. But if you specify <prefix> 
to be /opt/... or /usr/... in which case the <prefix> part is dropped and it 
goes to /etc/opt or just /etc respectively (see 
https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html). The defect in 
GnuCash's code is that it doesn't trap that SYSCONFDIR adjustment so it doesn't 
load the environment file, doesn't set GNC_MODULE_PATH, and so can't find the 
modules.


Regards,
John Ralls

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to