commit:     ddd3e500b590d56356fbe5921417a4524f8a35ae
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Wed Dec  3 18:42:04 2025 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Wed Dec  3 18:42:04 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=ddd3e500

scripts/bootstrap-prefix: ensure >=tar-1.30 for Portage's usage

Portage uses tar -I "bzip2 -c" nowadays, which is mishandled by older
versions of tar (if they accept the option at all).

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 scripts/bootstrap-prefix.sh | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh
index d815b580af..e128a51e98 100755
--- a/scripts/bootstrap-prefix.sh
+++ b/scripts/bootstrap-prefix.sh
@@ -970,6 +970,11 @@ bootstrap_gnu() {
                fi
        fi
 
+       if [[ ${PN} == "tar" ]] ; then
+               # really, not now, by the time we get there, we'll have it fixed
+               myconf+=( --disable-year2038 )
+       fi
+
        # SuSE 11.1 has GNU binutils-2.20, choking on crc32_x86
        [[ ${PN} == "xz" ]] && myconf+=( "--disable-assembler" )
 
@@ -1401,7 +1406,9 @@ bootstrap_coreutils() {
 }
 
 bootstrap_tar() {
-       bootstrap_gnu tar 1.35 || bootstrap_gnu tar 1.32 || bootstrap_gnu tar 
1.26
+       bootstrap_gnu tar 1.35 || bootstrap_gnu tar 1.32
+       # tar <=1.26 handles -I "bzip2 -c" wrongly, which is used by Portage
+       # nowadays
 }
 
 bootstrap_make() {
@@ -1768,7 +1775,7 @@ bootstrap_stage1() {
                || [[ $(find --version 2>&1) == *GNU* ]] \
                || (bootstrap_findutils) || return 1
        [[ -x ${ROOT}/tmp/usr/bin/tar ]] \
-               || [[ $(tar --version 2>&1) == *GNU* ]] \
+               || [[ $(tar --version 2>&1) == *"GNU 1."[3456789]* ]] \
                || (bootstrap_tar) || return 1
        [[ -x ${ROOT}/tmp/usr/bin/grep ]] \
                || [[ $(grep --version 2>&1) == *GNU* ]] \

Reply via email to