[GNC-dev] gc 4.6 compile problem
lkpgcd at mailbox.org
Fri Jul 2 14:53:57 EDT 2021
Am 02.07.21 um 18:33 schrieb John Ralls:
> It depends on whether you manage to get it to build and how you configure your library-loader defaults. Each executable needs to find the right set of shared libraries and loadable modules: /usr/bin/gnucash needs to find the ones in /usr/<libdir> and /opt/bin/gnucash needs to find the ones in /opt/<libdir>. Linux generally organizes loading the shared libraries with /etc/ldso.conf, but it can be tweaked with the environment variable $LD_LIBRARY_PATH. In general that config also applies to loadable modules, but Guile still uses the utterly obsolete Gnu libtool libltdl.so that has its own environment variable and redirection files ("lt libraries") that provide another layer of complexity for you to navigate.
> You might be able to override the shared library half of the problem with additional CMake arguments that set up RPATHs to override the defaults and by running the self-built GnuCash from a shell script or .desktop that overrides the Guile and Gnu libtool environments to point at your /opt build. This isn't script-kiddie stuff so if you haven't been nodding along to all of that you've got some studying to do.
Thanks, I'm quite familiar with Linux. I'm using it now for about 25
years (and about 10 years more HP-UX).
After overwriting /usr/lib64/libgnucash-guile.so, the build succeded.
The Makefile seems to do "the right thing", an "ldd /opt/bin/gnucash"
shows the correct shared library paths, no fiddling with ldso.conf or
LD_LIBRARY_PATH is necessary. And during make, there were a lot of
messages like this:
> ;;; note: source file /home/lothar/src/work/gnucash/gnucash-4.6/build/share/guile/site/3.0/gnucash/report/html-chart.scm
> ;;; newer than compiled /usr/lib64/guile/3.0/site-ccache/gnucash/report/html-chart.go
It seems, that all *.go files are built and installed correctly to
/opt/gnucash/lib64/guile/3.0/site-ccache/gnucash/ and gnucash seems to
run without problems. Maybe I'll do a last check and remove the package
version. If everything still works, then I think, the use of
/usr/lib64/libgnucash-guile.so by guile during make is the only issue.
Thanks and best regards
More information about the gnucash-devel