commit:     12ce12eed8b679d9f1bddba5e29fff7664667b74
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 13 19:16:54 2025 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Thu Aug 14 05:02:01 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=12ce12ee

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 <AT> gentoo.org>
Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 dev-build/make/make-9999.ebuild | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/dev-build/make/make-9999.ebuild b/dev-build/make/make-9999.ebuild
index f23c2c0c3786..8fe498fd7550 100644
--- a/dev-build/make/make-9999.ebuild
+++ b/dev-build/make/make-9999.ebuild
@@ -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

Reply via email to