dev-build/make: allow live ebuild to cache gnulib

make doesn't use a submodule for gnulib, which means every time it
bootstraps it does so expensively into ${WORKDIR} with no eclass
caching.

To make things even worse, ./bootstrap is old and buggy and does not try
shallow cloning at all, since it doesn't detect support by grepping -h
output due to "presentation formatting fixes" in git. The full clone
is... not small.

Acked-by: Mike Gilbert <floppym@gentoo.org>
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
This commit is contained in:
Eli Schwartz 2025-08-13 15:16:54 -04:00
parent adfea9ba70
commit 12ce12eed8
No known key found for this signature in database
GPG Key ID: 84A7D12B700D2F57

View File

@ -10,7 +10,6 @@ inherit flag-o-matic unpacker verify-sig guile-single
DESCRIPTION="Standard tool to compile source trees"
HOMEPAGE="https://www.gnu.org/software/make/make.html"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://git.savannah.gnu.org/git/make.git"
inherit autotools git-r3
elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then
SRC_URI="https://alpha.gnu.org/gnu/make/${P}.tar.lz"
@ -50,6 +49,15 @@ PATCHES=(
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI=("https://git.savannah.gnu.org/git/make.git")
git-r3_src_unpack
EGIT_REPO_URI=(
"https://github.com/coreutils/gnulib/"
"https://git.savannah.gnu.org/git/gnulib.git"
)
EGIT_BRANCH=$(. "${S}/bootstrap.conf" && echo "${GNULIB_REVISION}" || die)
EGIT_CHECKOUT_DIR=${S}/gnulib
git-r3_src_unpack
cd "${S}" || die