[Buildroot] [PATCH 1/1] support/download: Fix tarball generation - master branch patch

Jean-pierre Cartal jpcartal at free.fr
Thu Mar 18 07:28:16 UTC 2021


fix tarball generation with symlinks pointing to ./something

    When a --transform expression is provided, it is by default also applied
    to the target of a symlink.

    When we create tarballs (from git or svn checkouts), we use a --transform
    expression to replace the leading ./ with the package name and version.

    This causes issues when a package contains symlinks that points to
    ./something, as the leading './' is also replaced.

    Fix that by using the 'S' transformation scope flag, as described in the
    tar manual:
        https://www.gnu.org/software/tar/manual/html_node/transform.html#transform

        In addition, several transformation scope flags are supported, that
        control to what files transformations apply. These are:

        ‘r’ Apply transformation to regular archive members.
        ‘R’ Do not apply transformation to regular archive members.
        ‘s’ Apply transformation to symbolic link targets.
        ‘S’ Do not apply transformation to symbolic link targets.
        ‘h’ Apply transformation to hard link targets.
        ‘H’ Do not apply transformation to hard link targets.

        Default is ‘rsh’ [...].

    Fixes: #13616

Signed-off-by: Jean-pierre Cartal <jpcartal at free.fr>
---
 support/download/helpers | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/support/download/helpers b/support/download/helpers
index 57cc9fef44..40d5eea591 100755
--- a/support/download/helpers
+++ b/support/download/helpers
@@ -59,7 +59,7 @@ mk_tar_gz() {
     LC_ALL=C sort <"${tmp}.list" >"${tmp}.sorted"
 
     # Create POSIX tarballs, since that's the format the most reproducible
-    tar cf - --transform="s#^\./#${base_dir}/#" \
+    tar cf - --transform="s#^\./#${base_dir}/#S" \
              --numeric-owner --owner=0 --group=0 --mtime="${date}" \
              --format=posix --pax-option="${pax_options}" \
              -T "${tmp}.sorted" >"${tmp}.tar"
-- 
2.30.2



More information about the buildroot mailing list