Re: [PATCH] Install new autoreconf files.

Matthias Andree via Mutt-dev <[email protected]>
Newsgroups gmane.mail.mutt.devel
Message-ID <[email protected]>
Am 14.04.26 um 07:42 schrieb Kevin J. McCarthy:
> On Tue, Apr 14, 2026 at 08:07:10AM +0800, Kevin J. McCarthy wrote:
>> Here's what I plan on doing:
>>
>> 1. Fix up the trixie docker image to include autopoint.  Just for 
>> reference, I store these in the "docker-images" repository on gitlab: 
>> https://gitlab.com/muttmua/docker-images
>>
>> 2. Add "AM_GNU_GETTEXT_VERSION(0.21)" to configure.ac
>>
>> 3. Remove and gitignore files that are reported as "Copy file" by 
>> `gettextize -f --dry-run --no-changelog`
>>
>> 4. Change prepare script to "autoreconf -isvf".  I like the idea of 
>> the symlinks, since it makes it more obvious they are external files.
>>
>> Any comments?  Did I miss a step?
>
> This is going well, except for new problems with 'make distcheck'.  
> I'm not sure whether it's due to using symlinks now, or because of 
> newer files installed by autoreconf -f, but the distcheck build is now 
> taking place in deeper subdirectories that are partitioned by source 
> and _build and _install with permissions set.
>
> The problem is that various 'make check' targets are failing because 
> files don't exist inside the 'make distcheck' process. For example, 
> doc/Makefile.am validate fails because manual.xml is not found (since 
> it's an intermediate generated file that isn't included in the 
> tarball). I tried prepending with $(srcdir) and $(builddir) but 
> neither worked. So eventually I just added an "if test -f 
> ./manual.xml; then" around it.

I've seen a few lingering that I try to reproduce but where I saw 
fallbacks through lynx, elinks, ... which may have similar situations to 
those I've fixed in shellcheck and tabcheck recently, but I didn't drill 
down to see if those were just artifacts and it failed over to a tool it 
had, or if it was because the $(srcdir)/ prefixes were missing from the 
input files.

>
> But then check_sec.sh failed due to permission errors.  I changed that 
> to pass --tmpdir to mktemp.  And now, shellcheck is failing because 
> "gen_defs" doesn't exist, which we "echo" in additionally.

I think shellcheck and tabcheck are fixed and I saw you use a different 
option for mktemp to please OpenBSD.

>
> So I'm starting to wonder if these all should really be attached to the
> 'make check' target?  Any ideas?
>
That depends a bit on how thorough you want "make check" to be. I 
haven't bothered to strip that down or consider slow vs. fast tests. I 
know some projects do, for instance, e2fsprogs by default skips very 
slow self-tests.

Other than that I find a complete self-test suite AND the ability to 
build with different options and/or compilers from the same source tree 
very helpful in development (especially before you put something onto a 
CI builder), so I'd fix.

To lay that "local use case" out, I might:

autoreconf -svif

mkdir _build-gnu23 _build-clang-c23 _build-gcc-default _build-asan

(cd _build-gnu23 && ../configure CFLAGS="-std=gnu23 -pedantic -Og" && 
make check)
(cd _build-clang-c23 && ../configure CC=clang CFLAGS="-std=gnu23 
-pedantic -O2" && make check)
(cd _build-gcc-default && ../configure CC=gcc && make check)
(cd _build-sanitizer && ../configure CC=clang 
CFLAGS="-fsanitize=address,undefined -Og" && make check)

or something like that, which allows for incremental rebuilds without 
having to "make distclean" and re-running configure manually -- and for 
that, it helps to have full out-of-source-tree build support anyways.
I haven't checked how autoconf behaves for "make distcheck" if the 
source tree isn't capable.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.