Summary: | Bootstrapping stage3 fails on dev-libs/libgpg-error | ||
---|---|---|---|
Product: | Gentoo/Alt | Reporter: | Rabbe Fogelholm <rabbe> |
Component: | Prefix Support | Assignee: | Gentoo Prefix <prefix> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Rabbe Fogelholm
2019-11-18 10:54:09 UTC
seems like we should avoid eautoreconf, or get gettext installed first (In reply to Fabian Groffen from comment #1) > seems like we should avoid eautoreconf, or get gettext installed first Is there some way that I can test this locally? I have a locally-built installation of gettext 0.20.1 on a path separate from the prefix paths, but I don't know how to make it be used during stage 3. (The host has version 0.19.2 on /usr/bin, and the complaint in autopoint.out says that 0.19.3 is required.) I tried to insert the path to my locally built 'gettext' 0.20.1 in front of :/usr/bin:/bin near line 1607 in bootstrap-prefix.sh, but this did not help. After failing there is still the complaint that I should have gettext 0.19.3 or higher (the host has 0.19.2). Maybe my hack was just not done properly. Is there some general way to augment the initial host software by adding some paths where bootstrapping should look before looking in /usr/bin and /bin? Hi Rabbe, It's probably easier to modify the ebuild, or mask the version. You basically want to remove the eautoreconf call. 1.32-r1 only runs elibtoolize, which should be fine. 1.36 runs eautoreconf because of the gawk5 support patch. I'd start with masking 1.36 during the bootstrap. Fabian, thanks for the hint, I'll try to do the masking. About Comment 3, the line number is wrong, I meant to say line 1581, in the do_emerge_pkgs function. I tried masking dev-libs/libgpg-error-1.36 before stage3. This solved the reported failure, but the emerge of dev-libs/libgpg-error still failed with a complaint from 'gawk' (I forgot to capture it). All versions lower than 1.36 had this emerge failure. However, I tried instead by adding 'dev-lib/libgpg-error nls' in etc/portage/package.use - this causes gettext to be pulled in as a dependency and the emerge succeeds. The stage3 step stopped further on, but I could resolve the problems with some manual emerge commands. I did not write down the details, I will retry it all. All in all, good news, Gentoo Prefix can be brought up on SUSE Enterprise Server 12 SP2 (3 years old, kernel 4.4.120). After retrying I am not sure that the workaround in Comment 6 is valid. Something else seems to be needed. I'll comment again if I find out. Having retried, this time making notes, here is how the stage3 issue can be overcome: EPREFIX=/local/repo/zfograb/g3 mkdir $EPREFIX cd $EPREFIX BootstrapScript=https://gitweb.gentoo.org/repo/proj/prefix.git/plain/scripts/bootstrap-prefix.sh wget --quiet --no-proxy $BootstrapScript chmod +x $(basename $BootstrapScript) export PATH="${EPREFIX}/usr/bin:${EPREFIX}/bin:${EPREFIX}/tmp/usr/bin:${EPREFIX}/tmp/bin:/usr/bin:/bin" nice ./bootstrap-prefix.sh $EPREFIX stage1 sed -i -e '/^MAKEOPTS=/s|^.*$|MAKEOPTS="--jobs=4"|' etc/portage/make.conf sed -i -e '/^USE=/s|USE="|USE="X |' etc/portage/make.conf nice ./bootstrap-prefix.sh $EPREFIX stage2 nice ./bootstrap-prefix.sh $EPREFIX stage3 # failure at emerging dev-libs/libgpg-error-1.36 # assuming this is because the SUSE host only offers gettext 0.19.2 # try with a lower version of libgpg-error echo ">=dev-libs/libgpg-error-1.36" >etc/portage/package.mask # this hack is apparently needed before re-running stage3 sed -i -e '/location = /s|/tmp||' usr/share/portage/config/repos.conf sed -i -e '/location = /s|/tmp||' tmp/usr/share/portage/config/repos.conf nice ./bootstrap-prefix.sh $EPREFIX stage3 # usable version of gettext gets pulled in, but # this time failure to build dev-libs/libgpg-error-1.32-r1, because # gawk: /local/repo/zfograb/g3/var/tmp/portage/dev-libs/libgpg-error-1.32-r1/work/libgpg-error-1.32/src/mkerrcodes.awk:88: warning: regexp escape sequence `\#' is not a known regexp operator # gawk: fatal: cannot use gawk builtin `namespace' as variable name # remove the mask and re-try rm etc/portage/package.mask nice ./bootstrap-prefix.sh $EPREFIX stage3 # getting "stage3 successfully finished", but also # "Have you forgotten to do a complete update prior to depclean?" # so therefore do nice emerge --update --newuse --deep --with-bdeps=y @world # and finally, flawless nice emerge --ask -e @system Intersting enough, the CI build is able to merge dev-libs/libgpg-error-1.36.
And indeed, there is
> * Running eautoreconf in '/tmp/gentoo/var/tmp/portage/dev-libs/libgpg-error-1.36/work/libgpg-error-1.36' ...
> * Skipping 'autopoint --force' due autopoint not installed
> * Running libtoolize --install --copy --force --automake ...
Let's close this then. Rabbe, thank you so much for your contribution! Today I re-ran the bootstrapping on a new host of the same kind as before (SUSE Enterprise Server 12 SP2). No problems in stage 3 this time! Thank you for maintaining an amazing software platform! |