Boostrapping Gentoo Prefix fails for me, in Stage 3, when emerging dev-libs/libgpg-error-1.36::gentoo. I am following the "Manual" procedure. I have tried setting 'export LATEST_TREE_YES=1' but it makes no difference. Reproducible: Always Steps to Reproduce: Bootstrap Gentoo Prefix, following the Manual procedure Actual Results: In the console window I get >>> Emerging (39 of 66) dev-libs/libgpg-error-1.36::gentoo * libgpg-error-1.36.tar.bz2 BLAKE2B SHA512 size ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking libgpg-error-1.36.tar.bz2 to /local/repo/zfograb/g2/var/tmp/portage/dev-libs/libgpg-error-1.36/work >>> Source unpacked in /local/repo/zfograb/g2/var/tmp/portage/dev-libs/libgpg-error-1.36/work >>> Preparing source in /local/repo/zfograb/g2/var/tmp/portage/dev-libs/libgpg-error-1.36/work/libgpg-error-1.36 ... * Applying libgpg-error-1.36-gawk5-support.patch ... [ ok ] * Adjusting to prefix /local/repo/zfograb/g2 * autogen.sh ... [ ok ] * Running eautoreconf in '/local/repo/zfograb/g2/var/tmp/portage/dev-libs/libgpg-error-1.36/work/libgpg-error-1.36' ... * Running autopoint --force ... [ !! ] * Failed Running autopoint ! * * Include in your bugreport the contents of: * * /local/repo/zfograb/g2/var/tmp/portage/dev-libs/libgpg-error-1.36/temp/autopoint.out The autopoint.out file contains: ***** autopoint ***** ***** PWD: /local/repo/zfograb/g2/var/tmp/portage/dev-libs/libgpg-error-1.36/work/libgpg-error-1.36 ***** autopoint --force perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_MESSAGES = "C", LC_TIME = "C", LC_COLLATE = "C", LANG = "en_US" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). autopoint: *** The AM_GNU_GETTEXT_VERSION declaration in your configure.ac file requires the infrastructure from gettext-0.19.3 but this version is older. Please upgrade to gettext-0.19.3 or newer. autopoint: *** Stop. Since the autopoint.out file complains over the version of 'gettext' I also built and installed 'gettext' 0.20.1 from its source tarball, independent of Gentoo Prefix, and included the installation path with the PATH for bootstrapping, and re-run the bootstrapping. This did not make any difference: The complaint is the same; a bit surprising, I would expect that the bootstrapping should use the 0.20.1 version of 'gettext'. But maybe this is not the root cause anyway? I tried the following command, but it does not work: $ emerge --info '=dev-libs/libgpg-error-1.36::gentoo' !!! Section 'gentoo' in repos.conf has location attribute set to nonexistent directory: '/local/repo/zfograb/g2/tmp/var/db/repos/gentoo' !!! Invalid Repository Location (not a dir): '/local/repo/zfograb/g2/tmp/var/db/repos/gentoo' !!! Section 'gentoo' in repos.conf has location attribute set to nonexistent directory: '/local/repo/zfograb/g2/tmp/var/db/repos/gentoo' !!! Invalid Repository Location (not a dir): '/local/repo/zfograb/g2/tmp/var/db/repos/gentoo' WARNING: One or more repositories have missing repo_name entries: /local/repo/zfograb/g2/tmp/var/db/repos/gentoo/profiles/repo_name NOTE: Each repo_name entry should be a plain text file containing a unique name for the repository on the first line. Expected Results: Successful bootstrapping. For reference I ran the bootstrapping on another host (Manjaro Linux, updated fairly recently), where bootstrapping was fully successful. So my issue is perhaps specific to my host environment (SUSE Enterprise Server 12 SP2).
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!