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 + +
