> On Jun 1, 2020, at 1:25 PM, Christian Gruber <christian.gru...@posteo.de>
> wrote:
>
>
> Am 31.05.20 um 02:47 schrieb John Ralls:
>>
>>> On May 30, 2020, at 4:45 AM, Christian Gruber <christian.gru...@posteo.de>
>>> wrote:
>>>
>>>
>>> Am 29.05.20 um 01:49 schrieb Frank H. Ellenberger:
>>>> Christian,
>>>>
>>>> did you clean ~/.cache/guile ? That is the place, where the precompiled
>>>> .go bytecode from the .scm files is stored.
>>> Thanks for this advise, I haven't tried this yet. Unfortunately it didn't
>>> help.
>>>> Frank
>>>>
>>>> Am 28.05.20 um 17:42 schrieb Christian Gruber:
>>>>> Am 28.05.20 um 12:24 schrieb Frank H. Ellenberger:
>>>>>> Hi,
>>>>>>
>>>>>> Am 28.05.20 um 08:13 schrieb Christian Gruber:
>>>>>>> I have to search for left *.go files, right? There are a lot in
>>>>>>> /usr/lib/x86_64-linux-gnu/guile/2.2/ccache. Can I remove the complete
>>>>>>> directory without hesitation?
>>>>>> The easier way is to uninstall guile-modules-2_2 to get rid of them. ;-)
>>>>>> They are part of that package.
>>>>> Ok, I checked that with inverse file search ("apt-file search"). On my
>>>>> Ubuntu system these files belong to package guile-2.2-libs. And the
>>>>> *.scm files in /usr/share/guile/2.2 belong to that package as well. But
>>>>> after uninstalling guile-2.2-libs CMake complains, when building GnuCash:
>>>>>
>>>>> CMake Error at CMakeLists.txt:311 (message):
>>>>> Neither guile 2.2 nor guile 2.0 were found GnuCash can't run without
>>>>> one of
>>>>> them. Ensure that one is installed and can be found with pkg-config.
>>>>>
>>>>> Therefore I installed guile-2.2-libs again. And the build error is the
>>>>> same again as at the beginning:
>>>>>
>>>>> ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
>>>>> no code for module (gnucash core-utils)
>>>>>
>>>>> Is this maybe a problem of a missing CMake dependency?
>>>>>
>>>>> Another idea, I updated my Ubuntu system from 19.10 Eoan Ermine to 20.04
>>>>> Focal Fossa a few days ago. Could this be a reason?
>>> Can anybody please try to reproduce the build process on Linux from the
>>> current master branch in a completely clean build directory and with a
>>> clean guile cache (~/.cache/guile)?
>>>
>>> I did the following:
>>>
>>> cd ~/gnucash/build
>>> rm rf *
>>> cmake -DCMAKE_BUILD_TYPE=Debug ~/gnucash/src
>>> make all
>>>
>>> Can anybody tell me more precisely, what this error message actually means?
>>> Does "no code for module (gnucash core-utils)" mean, that something is not
>>> built yet? If yes, what is not built? Target "gnc-core-utils" is already
>>> built.
>> Christian,
>>
>> Sorry, I gave you bad advice Wednesday and that damaged your guile
>> installation.
>>
>> "no code for module (gnucash core-utils)" means that guile wants to load
>> <builddir>/lib/guile/2.2/site-ccache/gnucash/core-utils.go
> Is this directory system dependent? On my Ubuntu the *.go files are in
> <builddir>/lib/x86_64-linux-gnu/guile/2.2/site-ccache.
Well, it's more distro-dependent, with the Debian-based distros using the
`uname` subdirectory for application-specific libraries. Some others use lib
for 32-bit and lib64 for 64-bit libraries.
>> and it's either not there, is empty, or can't find lib/libgnc-core-utils.so,
>> the library on which it depends...
>
> That was finally the missing hint. This file was missing.
>
> And the reason for that really seems to be a missing CMake dependency. After
> building target "scm-core-utils", the file
> /x86_64-linux-gnu/guile/2.2/site-ccache/gnucash/core-utils.go was built. And
> now I could go on with "make all" successfully until the end.
Very good. I've just pushed that change to master.
>
>> *unless* it finds an old core-utils.go that wants to link to an installed
>> libgnc-core-utils.so or if it's from maint libgncmod-core-utils.go. It
>> searches system directories (i.e. /usr/lib*) first which is why you can't
>> develop gnucash on a Linux system with an installed gnucash.
>>
>> I've just finished clean builds of master on Ubuntu 18.04 and freshly
>> updated Arch Linux and Debian Unstable, the last of which I'd think would be
>> pretty close to your Ubuntu 20.04. Note that we run continuous integration
>> tests after every push, you can see the results at
>> https://travis-ci.org/github/Gnucash/gnucash/builds/. Those run on dockers
>> with Ubuntu 18.04 and Arch Linux that are spun up and configured from
>> scratch for each test run.
>
> I know and that puzzles me. Why do the CI builds run successfully, if this is
> really a missing CMake dependency? Maybe the problem doesn't occur, when
> doing parallel builds on several cores, since there are other targets, which
> depend on scm-core-utils. And if these targets are built in parallel and
> finish before target scm-engine-2 is built, the missing dependency doesn't
> lead to a build error.
Absent dependencies the build order of targets is somewhat random. It was
working for you until you upgraded your OS and got different versions of cmake
and make (have you tried ninja? It's about 4x faster than make) and the build
order changed exposing the missing dependency.
Regards,
John Ralls
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel