commit:     d3ddf27ad3ee96237fd459b25310341da8b077ea
Author:     Arisu Tachibana <alicef <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 16 05:45:29 2025 +0000
Commit:     Arisu Tachibana <alicef <AT> gentoo <DOT> org>
CommitDate: Sat Aug 16 05:45:29 2025 +0000
URL:        https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=d3ddf27a

Add patch for make it possible to override the tar executable

Signed-off-by: Arisu Tachibana <alicef <AT> gentoo.org>

 0000_README                      |  4 ++
 2910_kheaders_override_TAR.patch | 96 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+)

diff --git a/0000_README b/0000_README
index eb7b0c95..77cb0499 100644
--- a/0000_README
+++ b/0000_README
@@ -71,6 +71,10 @@ Patch:  2901_permit-menuconfig-sorting.patch
 From:   https://lore.kernel.org/
 Desc:   menuconfig: Allow sorting the entries alphabetically
 
+Patch:  2910_kheaders_override_TAR.patch
+From:   https://lore.kernel.org/
+Desc:   Add TAR make variable for override the tar executable
+
 Patch:  2920_sign-file-patch-for-libressl.patch
 From:   https://bugs.gentoo.org/717166
 Desc:   sign-file: full functionality with modern LibreSSL

diff --git a/2910_kheaders_override_TAR.patch b/2910_kheaders_override_TAR.patch
new file mode 100644
index 00000000..e8511e1a
--- /dev/null
+++ b/2910_kheaders_override_TAR.patch
@@ -0,0 +1,96 @@
+Subject: [PATCH v3] kheaders: make it possible to override TAR
+Date: Sat, 19 Jul 2025 16:24:05 +0100
+Message-ID: 
<277557da458c5fa07eba7d785b4f527cc37a023f.1752938644.git....@gentoo.org>
+X-Mailer: git-send-email 2.50.1
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Precedence: bulk
+X-Mailing-List: [email protected]
+List-Id: <linux-kernel.vger.kernel.org>
+List-Subscribe: <mailto:[email protected]>
+List-Unsubscribe: <mailto:[email protected]>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Michał Górny <[email protected]>
+
+Commit 86cdd2fdc4e39c388d39c7ba2396d1a9dfd66226 ("kheaders: make headers
+archive reproducible") introduced a number of options specific to GNU
+tar to the `tar` invocation in `gen_kheaders.sh` script.  This causes
+the script to fail to work on systems where `tar` is not GNU tar.  This
+can occur e.g. on recent Gentoo Linux installations that support using
+bsdtar from libarchive instead.
+
+Add a `TAR` make variable to make it possible to override the tar
+executable used, e.g. by specifying:
+
+  make TAR=gtar
+
+Link: https://bugs.gentoo.org/884061
+Reported-by: Sam James <[email protected]>
+Tested-by: Sam James <[email protected]>
+Co-developed-by: Masahiro Yamada <[email protected]>
+Signed-off-by: Michał Górny <[email protected]>
+Signed-off-by: Sam James <[email protected]>
+---
+v3: Rebase, cover more tar instances.
+
+ Makefile               | 3 ++-
+ kernel/gen_kheaders.sh | 6 +++---
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index c09766beb7eff..22d6037d738fe 100644
+--- a/Makefile
++++ b/Makefile
+@@ -543,6 +543,7 @@ LZMA               = lzma
+ LZ4           = lz4
+ XZ            = xz
+ ZSTD          = zstd
++TAR           = tar
+ 
+ CHECKFLAGS     := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
+                 -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF)
+@@ -622,7 +623,7 @@ export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET 
RUSTC_OR_CLIPPY BINDGEN
+ export HOSTRUSTC KBUILD_HOSTRUSTFLAGS
+ export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC 
AWK INSTALLKERNEL
+ export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
+-export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
++export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD TAR
+ export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS 
KBUILD_PROCMACROLDFLAGS LDFLAGS_MODULE
+ export KBUILD_USERCFLAGS KBUILD_USERLDFLAGS
+ 
+diff --git a/kernel/gen_kheaders.sh b/kernel/gen_kheaders.sh
+index c9e5dc068e854..bb609a9ed72b4 100755
+--- a/kernel/gen_kheaders.sh
++++ b/kernel/gen_kheaders.sh
+@@ -66,13 +66,13 @@ if [ "$building_out_of_srctree" ]; then
+               cd $srctree
+               for f in $dir_list
+                       do find "$f" -name "*.h";
+-              done | tar -c -f - -T - | tar -xf - -C "${tmpdir}"
++              done | ${TAR:-tar} -c -f - -T - | ${TAR:-tar} -xf - -C 
"${tmpdir}"
+       )
+ fi
+ 
+ for f in $dir_list;
+       do find "$f" -name "*.h";
+-done | tar -c -f - -T - | tar -xf - -C "${tmpdir}"
++done | ${TAR:-tar} -c -f - -T - | ${TAR:-tar} -xf - -C "${tmpdir}"
+ 
+ # Always exclude include/generated/utsversion.h
+ # Otherwise, the contents of the tarball may vary depending on the build 
steps.
+@@ -88,7 +88,7 @@ xargs -0 -P8 -n1 \
+ rm -f "${tmpdir}.contents.txt"
+ 
+ # Create archive and try to normalize metadata for reproducibility.
+-tar "${KBUILD_BUILD_TIMESTAMP:+--mtime=$KBUILD_BUILD_TIMESTAMP}" \
++${TAR:-tar} "${KBUILD_BUILD_TIMESTAMP:+--mtime=$KBUILD_BUILD_TIMESTAMP}" \
+     --owner=0 --group=0 --sort=name --numeric-owner --mode=u=rw,go=r,a+X \
+     -I $XZ -cf $tarfile -C "${tmpdir}/" . > /dev/null
+ 
+-- 
+2.50.1
+
+

Reply via email to