summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2017-11-15 18:17:07 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-12-14 09:53:06 +0100
commit54a13eb7f03ac8bb92b3b2c358e42eb08834240b (patch)
tree520a45648adf39e4a44f437928b8bad43905114e /scripts
parent4d0d1bc65b5710f45bc5fe10b4fbfc2671b0851d (diff)
downloadlinux-stable-54a13eb7f03ac8bb92b3b2c358e42eb08834240b.tar.gz
linux-stable-54a13eb7f03ac8bb92b3b2c358e42eb08834240b.tar.bz2
linux-stable-54a13eb7f03ac8bb92b3b2c358e42eb08834240b.zip
kbuild: pkg: use --transform option to prefix paths in tar
[ Upstream commit 2dbc644ac62bbcb9ee78e84719953f611be0413d ] For rpm-pkg and deb-pkg, a source tar file is created. All paths in the archive must be prefixed with the base name of the tar so that everything is contained in the directory when you extract it. Currently, scripts/package/Makefile uses a symlink for that, and removes it after the tar is created. If you terminate the build during the tar creation, the symlink is left over. Then, at the next package build, you will see a warning like follows: ln: '.' and 'kernel-4.14.0+/.' are the same file It is possible to fix it by adding -n (--no-dereference) option to the "ln" command, but a cleaner way is to use --transform option of "tar" command. This option is GNU extension, but it should not hurt to use it in the Linux build system. The 'S' flag is needed to exclude symlinks from the path fixup. Without it, symlinks in the kernel are broken. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/package/Makefile5
1 files changed, 2 insertions, 3 deletions
diff --git a/scripts/package/Makefile b/scripts/package/Makefile
index 73f9f3192b9f..2b4aa4c19b21 100644
--- a/scripts/package/Makefile
+++ b/scripts/package/Makefile
@@ -39,10 +39,9 @@ if test "$(objtree)" != "$(srctree)"; then \
false; \
fi ; \
$(srctree)/scripts/setlocalversion --save-scmversion; \
-ln -sf $(srctree) $(2); \
tar -cz $(RCS_TAR_IGNORE) -f $(2).tar.gz \
- $(addprefix $(2)/,$(TAR_CONTENT) $(3)); \
-rm -f $(2) $(objtree)/.scmversion
+ --transform 's:^:$(2)/:S' $(TAR_CONTENT) $(3); \
+rm -f $(objtree)/.scmversion
# rpm-pkg
# ---------------------------------------------------------------------------