[GNC-dev] Gnucash 2.6: make distcheck in po bombs on file paths starting with sub

John Ralls jralls at ceridwen.us
Mon Jun 15 12:41:05 EDT 2020



> On Jun 15, 2020, at 4:41 AM, Kevin Buckley <kevin.m.buckley at gmail.com> wrote:
> 
> On Mon, 15 Jun 2020 at 14:29, Kevin Buckley <kevin.m.buckley at gmail.com> wrote:
>> 
>> On Mon, 15 Jun 2020 at 02:31, John Ralls <jralls at ceridwen.us> wrote:
>>> 
>>> Building 2.6.21a works fine for me on Ubuntu 18.04 with automake 1.15.1. None of the source files are copied into gnucash-2.6.21/_build/sub, so there's no POTFILE.skip issue.
>>> 
>>> I did have to make two changes to get it to build from the dist tarball: Remove line 23 (src/plugins/example/gnc-plugin.example.c) from po/POTFILES.skip and add test-date-utilities.scm to EXTRA_DIST at line 69 of src/app-utils/test/Makefile.am
>>> 
>>> Since you've presumably made changes and tagged for a new distribution, I suggest you first make sure that you can build 2.6.21a with the changes above. If it doesn't work I suggest first trying automake 1.15.1. Once you have 2.6.21a building successfully then reapply your changes and see if they break anything.
>>> 
> 
> and i went on to say
> 
>> i did get the 2.6.21a source, or something close (haven't got my
>> work dir to hand but I started with the commit commented as "Fix
>> Typo") that was two or three after 2.6.21 was tagged) building as
>> was, however, that was before I'd found the "trust make distcheck",
>> so yes I will go back and try that against the old layout.
> 
> Have now tried that, albeit with automake 1.15., not 1.15.1.
> 
> Also ascertained that tag 2.6.21a is the same commit as the "Fix Typo."
> I was thinking of so we're all square there
> 
> As you pointed out, needed to ferkel po/POTFILES.skip but then found
> it bombed when running some QOF tests
> 
>  /qof/gnc-date/qof date format set:                                   OK
>  /qof/gnc-date/qof print date dmy buff:                               FAIL
> GTester: last random seed: R02S04e93899cdb3f7940b6259d335ba0eb5
> /bin/bash: line 1:  9498 Terminated              MALLOC_CHECK_=2
> MALLOC_PERTURB_=$((${RANDOM:-256} % 256)) gtester --verbose test-qof
> make[6]: *** [test-nonrecursive] Error 143
> make[6]: Leaving directory
> `/srv/domains/gnucash.org/GIT/gnucash-868489b/gnucash-2.6.21/_build/sub/src/libqof/qof/test'
> 
> Note though that the testing IS happening in a path with _build/sub in it
> 
> So I even went and looked in the Automake files that get used to
> created the Makefile.in from Makefile.am and saw, in
> 
> distclean.am
> 
> that it really does do what I experienced, vis
> 
> ## If we merely used '$(distdir)/_build' here, "make distcheck" could
> ## sometimes fail to detect missing files in the distribution tarball,
> ## especially in those cases where both the generated files and their
> ## dependencies are explicitly in $(srcdir).  See automake bug#18286.
>          && $(am__cd) $(distdir)/_build/sub \
>          && ../../configure \
> 
> Even pulled down the Automake 1.15.1. tarball, and it still in there too.
> 
> No wonder you lot moved to CMake then?

Yes, automake 1.15 introduced the _build/sub thing. As I said, I built and distchecked GnuCash on Ubuntu 18.04 yesterday with no errors, so that's not what caused your POTFILE.skip problems.

I don't remember encountering an error message like that, but it kind of looks like you ran out of memory. You'll need to spend some time in the debugger to figure it out.

As for autotools, it's 30 years of layered hacks and has gotten steadily more byzantine and buggy with every passing year.  It also generates very slow and inefficient builds. Cmake and ninja have provided a much better build experience.

Regards,
John Ralls



More information about the gnucash-devel mailing list