fosslinux / live-bootstrap

Use of a Linux initramfs to fully automate the bootstrapping process
501 stars 35 forks source link

chroot/bwrap fail to build automake-1.6.3 in WSL2 due to bash-2.05b globbing failure #379

Open Googulator opened 9 months ago

Googulator commented 9 months ago

Both chroot and bwrap builds fail in WSL2, because rm -- configure Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 automake.info* fails to expand properly.

A simple testcase that shows this problem is as follows:

$ mkdir -p a/b
$ touch a/b/c
$ cd a
$ ./path/to/bad/bash -c 'echo */c'
*/c
$ bash -c 'echo */c' # system bash
b/c

bash-2.05b consistently behaves like this outside a chroot environment (even if it's run under "env -i"), but inside chroot/bwrap, it works fine - except on WSL2. IMO a proper fix would be one that makes it work outside a chroot environment as well.

Googulator commented 9 months ago

This might be the fix: https://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-003

(not sure if our modern patch can read this format, but if not, it shouldn't be hard to convert to the modern format)

We might also want to add this patch: https://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-008 (AKA shellshock)

mid-kid commented 7 months ago

I have the same issue. Here's the relevant log: http://0x0.st/HdnG.txt

Googulator commented 2 months ago

As a workaround, upgrading the WSL2 kernel to linux-msft-wsl-6.6.y seems to avoid this issue.

This is not a fix, however - Bash 2.05b built using Autoconf works fine on the older kernel, the issue only occurs in Bash built via a custom makefile.