[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