Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 700472 - Bootstrapping stage3 fails on dev-libs/libgpg-error
Summary: Bootstrapping stage3 fails on dev-libs/libgpg-error
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-11-18 10:54 UTC by Rabbe Fogelholm
Modified: 2020-11-04 17:30 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rabbe Fogelholm 2019-11-18 10:54:09 UTC
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).
Comment 1 Fabian Groffen gentoo-dev 2019-11-18 12:41:12 UTC
seems like we should avoid eautoreconf, or get gettext installed first
Comment 2 Rabbe Fogelholm 2019-11-19 07:37:56 UTC
(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.)
Comment 3 Rabbe Fogelholm 2019-11-22 09:19:32 UTC
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?
Comment 4 Fabian Groffen gentoo-dev 2019-11-22 10:05:47 UTC
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.
Comment 5 Rabbe Fogelholm 2019-11-22 10:20:25 UTC
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.
Comment 6 Rabbe Fogelholm 2019-11-23 09:18:00 UTC
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).
Comment 7 Rabbe Fogelholm 2019-11-24 08:33:34 UTC
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.
Comment 8 Rabbe Fogelholm 2019-11-24 17:57:40 UTC
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
Comment 9 Michael Haubenwallner (RETIRED) gentoo-dev 2019-11-27 12:08:27 UTC
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 ...
Comment 10 Benda Xu gentoo-dev 2020-02-22 02:26:48 UTC
Let's close this then.  Rabbe, thank you so much for your contribution!
Comment 11 Rabbe Fogelholm 2020-11-04 17:30:34 UTC
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!