[Aptitude-devel] Bug#999383: Bug#999383: aptitude: bashism in configure script
Andrej Shadura
andrewsh at debian.org
Thu Nov 11 21:29:05 GMT 2021
Hi Alex,
On Thu, 11 Nov 2021, at 19:12, Axel Beckert wrote:
> Andrej Shadura wrote:
>> It is possible your package uses configure script with bash features not
>> present in POSIX without explicitly declaring the need to bash shell; this
>> currently works as configure scripts select bash, but when dash enables
>> LINENO support,
> I'm sorry, but I don't get it: Why does _ENABLING_ a feature (which I
> assume adds more compatibility with Bash) causes more issues than
> without?
>
> Please explain what this change actually does or give pointers to
> according documentation.
Well, without LINENO support configure scripts judge dash is non-POSIX-compliant, and select bash instead, so bash syntax suddenly works despite #!/bin/sh at the top of the script.
>> your configure script may start failing.
>
> According to your attached log it's clearly not the configure script.
Yeah, I had a bug template but apparently I didn’t edit it properly. In your case the failure is happening elsewhere, not in the configure script — but it could have been related.
>> [ 478s] cd build && make -j3
> ^^^
>
> This is not helpful when trying to debug build failures. Please
> refrain from using parallel building for such bug reports in the
> future as it usually just hides the real issue. Thanks in advance.
Sure — I just did the rebuild with the default settings.
> I've rebuilt it with -j1 and can confirm that the configure script is
> not the issue, but this part from your build log:
<snip>
> I'm not sure why the following patch fixes the issue, but it does so
> at the expense of some more forks per build:
I guess maybe the configure script sets the shell for the main makefile to /bin/dash (as opposed to /bin/bash), and then this gets passed onto this makefile as well. So I guess fixman is where the real issue is (written with bash in mind but sourced by dash).
> It is also unclear to me what the relation of this patch to line
> numbers or a variable called LINENO is.
It’s just one of the parameters by which configure decides which shell to use.
--
Cheers,
Andrej
More information about the Aptitude-devel
mailing list