I was just trying to do a bootstrap inside a very minimal CentOS 8 container, and it failed at the installation of libxcrypt in stage 3 due to Perl not being found: checking whether is version 5.14.0 or later... no configure: error: Perl version 5.14.0 or later is required My ${EPREFIX}/usr/bin indeed didn't have a perl executable yet. In the end, installing Perl in the container solved the issue. But I think it would be good to either document that having Perl installed on the host is a prerequisite, or to install Perl before libxcrypt gets installed (don't know if that's possible, the commit that added libxcrypt mentions something about circular dependencies: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=d9eb358d6802608eb16358b6efc394045876b196 )
Thanks for the report. Getting Perl in stage3 earlier feels tricky given it needs a libcrypt implementation. We already have to use tools from stage2 for stage3. In bootstrap_stage2(), could you try appending dev-lang/perl to pkgs=( ... ) after sys-devel/binutils-config?
Sure, I can/will try that!
Created attachment 752922 [details] stage3.log For reference, this is the stage3.log of the failed installation.
Created attachment 752934 [details] stage2.log for perl failure I've added perl to the pkgs list in bootstrap_stage2, but it failed with a bunch of ld errors. I'm attaching the corresponding log file.
Thanks Bob. If nobody else has a chance to look at it, I’ll need some time to make a small container without Perl in to try this out with. Any suggestions welcome!
We're using the following container: https://github.com/EESSI/compatibility-layer/pkgs/container/bootstrap-prefix It's a simple CentOS 8 container with some additional tools, see the corresponding Dockerfile: https://github.com/EESSI/compatibility-layer/blob/main/Dockerfile.bootstrap-prefix-centos8 We're actually running it with Singularity, but I guess that shouldn't really matter. Do note that this one contains an older version of the bootstrap script in /usr/local/bin, but for the attempts today I made the latest version of the script available in the container when launching it.