[GNC-dev] gc 4.6 compile problem
jralls at ceridwen.us
Thu Jul 1 12:18:19 EDT 2021
> On Jul 1, 2021, at 4:18 AM, Lothar Paltins via gnucash-devel <gnucash-devel at gnucash.org> wrote:
> Am 01.07.21 um 05:15 schrieb John Ralls:
>> You don't need to replace the old libraries, just remove them. Then Guile won't be able to find them and will fall back to looking where it's told to, in the build directory. Kinda like that (probably apocryphal) Churchill quote about Americans always doing the right thing after they'd exhausted all of the alternatives. Make/ninja uninstall is easiest but doesn't always work if there are filename changes and the builddir or sourcedir are reused. If it fails it's usually enough to remove libgnc* from the install library folder; sometimes you also need to remove the installed *.scm and *.go files from their respective directories in libdir/guile/version/ccache and sharedir/guile.
> I'm not really familiar with the build process of gnucash and with guile and I don't know, if it's possible. But I think, if a shared library is generated during a build process, then this version should be used afterwards unconditionally. Any other version anywhere in the file system is most likely outdated. And my install directory is /opt/gnucash-4.6 and it's empty during a "make". /usr/lib64 isn't my install directory, a "make uninstall" will not remove anything there. A library in this directory is almost certainly outdated. I want to install my compiled version separated from the distribution version, so I can't simply remove /usr/lib64/libgnucash-guile.so. I would have to restore it later.
You're absolutely right, it should be. Unfortunately Guile doesn't agree and our efforts to convince it otherwise have been unsuccessful. It's not possible on Linux to build GnuCash on a machine that has GnuCash installed by the package manager without some gymnastics. I think the simplest work around is to set up a VM for building GnuCash, but maybe there's another way.
More information about the gnucash-devel