[Buildroot] [git commit branch/2020.02.x] support/download: Fix tarball generation with symlinks pointing to ./something
Peter Korsgaard
peter at korsgaard.com
Wed Mar 24 09:45:13 UTC 2021
commit: https://git.buildroot.net/buildroot/commit/?id=7d377e1f449e36f2756255cc528ebff5ea96e568
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/2020.02.x
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>
Tested-by: Yann E. MORIN <yann.morin.1998 at free.fr>
Acked-by: Yann E. MORIN <yann.morin.1998 at free.fr>
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
---
support/download/git | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/support/download/git b/support/download/git
index 15d8c66e05..1b0dc1b115 100755
--- a/support/download/git
+++ b/support/download/git
@@ -203,7 +203,7 @@ LC_ALL=C sort <"${output}.list" >"${output}.list.sorted"
# Create GNU-format tarballs, since that's the format of the tarballs on
# sources.buildroot.org and used in the *.hash files
-tar cf - --transform="s#^\./#${basename}/#" \
+tar cf - --transform="s#^\./#${basename}/#S" \
--numeric-owner --owner=0 --group=0 --mtime="${date}" --format=gnu \
-T "${output}.list.sorted" >"${output}.tar"
gzip -6 -n <"${output}.tar" >"${output}"
More information about the buildroot
mailing list