Paul Eggert:
> On 06/15/2016 01:44 PM, Ximin Luo wrote:
>> In such a case, it is a bug to be using $POSIX_SHELL - which only tests for 
>> conformance with POSIX and not these "other bugs that make it unusable".
> Gnulib can't test for all POSIX violations, only for the ones it knows about. 
> CONFIG_SHELL lets the user override Gnulib's guess in environments where the 
> guess is wrong. This sort of thing has been in Gnulib (and Autoconf) for 
> ages, I expect many people have grown used to it, and I'm leery of changing 
> this just for the purpose of reproducible builds. For reproducible builds, I 
> suggest configuring with CONFIG_SHELL=/bin/sh as that should make the build 
> reproducible without having to change Autoconf or Gnulib.

OK, thanks for the explanation. I was under the impression that, since POSIX is 
a finite set of specified behaviours, posix-shell would be or could be a 
complete test. But I guess it's harder than I thought, to write that sort of 

> More generally, 'configure' and reproducible builds are competing objectives. 
> 'configure' aims to guess characteristics of the target environment by 
> depending on details of the build environment; in contrast, reproducible 
> builds want to suppress details of the build environment whenever possible. 
> Probably the best way to marry these two is for the reproducible build to 
> start with a reproducible environment, and setting CONFIG_SHELL to a known 
> value is one step in that direction.

I wouldn't say they're necessarily competing, just that the build process (e.g. 
'configure' in this case) needs to more clearly distinguish between the build 
and the host environment - like how compilers do. So for example, here the 
"most correct" solution would be to add a HOST_POSIX_SHELL and default this to 
POSIX_SHELL (or something). But this is also more complex, so I can understand 
if you don't want to do this.

Thanks for the tip, we'll try the other options.


GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE

Reply via email to