On 2021-06-26, Andreas Metzler wrote:
> On 2021-06-26 Vagrant Cascadian <vagr...@reproducible-builds.org> wrote:
>> Depending on what /bin/sh symlinks to, either /bin/sh or /bin/bash is
>> embedded in autoopts-config:
>
>>   
>> https://tests.reproducible-builds.org/debian/rb-pkg/experimental/amd64/diffoscope-results/autogen.html
>
>>   ./usr/bin/autoopts-config
>
>>   #!·/bin/bash
>>   vs.
>>   #!·/bin/sh
>
>> The attached patch fixes this by hard-coding CONFIG_SHELL=/bin/sh in
>> configure.ac.
>
>> I tried passing to configure or setting it in the environment, but both
>> approaches were ineffective.
>
>> Applying this patch *should* make autogen build reproducibly.
> [...]
>> -[CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
>> -f=`${CONFIG_SHELL} -c 'echo true | (
>> -    exec 2>/dev/null ; read -u0 line ; echo $line ; )'`
>> -test X$f = Xtrue || CONFIG_SHELL=`command -v bash`]
>> +CONFIG_SHELL=/bin/sh
>>  AC_SUBST(CONFIG_SHELL)
>>  AC_DEFINE_UNQUOTED(CONFIG_SHELL,$CONFIG_SHELL,
>>                     [Define this to a working Bourne shell])
> [...]
>
> Hello Vagrant,
>
> thanks for the report. The ./configure test checks whether $CONFIG_SHELL
> supports (non-posix) read -u and uses bash otherwise. This test succeeds
> if /bin/sh happens to point to bash. However autogen shell code seems to
> actually makes use of the read -u option and therefore an autogen binary
> with the patch or built on a system with /bin/sh=bash will likely be
> broken, not properly working on system with /bin/sh=dash.
> So I think the proper fix (for the very real bug) would be to pass
> CONFIG_SHELL=/bin/bash to configure.

I believe I did at one point try that, but will test again to be sure.


live well,
  vagrant

Attachment: signature.asc
Description: PGP signature

Reply via email to