Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 824926 - Bootstrap fails at libxcrypt in stage3 if perl is not installed on host system
Summary: Bootstrap fails at libxcrypt in stage3 if perl is not installed on host system
Status: UNCONFIRMED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: libxcrypt-migration
  Show dependency tree
 
Reported: 2021-11-19 13:03 UTC by Bob Dröge
Modified: 2021-11-19 17:40 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
stage3.log (stage3.log.gz,520.11 KB, application/gzip)
2021-11-19 13:17 UTC, Bob Dröge
Details
stage2.log for perl failure (stage2.log.gz,331.98 KB, application/gzip)
2021-11-19 15:05 UTC, Bob Dröge
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bob Dröge 2021-11-19 13:03:25 UTC
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 )
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-11-19 13:11:48 UTC
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?
Comment 2 Bob Dröge 2021-11-19 13:15:38 UTC
Sure, I can/will try that!
Comment 3 Bob Dröge 2021-11-19 13:17:04 UTC
Created attachment 752922 [details]
stage3.log

For reference, this is the stage3.log of the failed installation.
Comment 4 Bob Dröge 2021-11-19 15:05:34 UTC
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.
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-11-19 15:24:22 UTC
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!
Comment 6 Bob Dröge 2021-11-19 15:30:21 UTC
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.