From 1e698a11980ab0c6e89eb2f202cb63b49ad2f552 Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Thu, 8 Aug 2019 19:58:06 +0300 Subject: [PATCH] build-package.sh: use bsdtar for on-device builds when extracting into massagedir Tar built for API 21 branch doesn't work well in certain cases and following error may occur: tar: ./share/doc/ed/LICENSE: Cannot change mode to rwx------: No such file or directory tar: Exiting with failure status due to previous errors Using bsdtar instead for extracting. --- scripts/build/termux_step_extract_into_massagedir.sh | 10 +++++++++- scripts/setup-termux.sh | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/build/termux_step_extract_into_massagedir.sh b/scripts/build/termux_step_extract_into_massagedir.sh index a2172c4e7..481c62646 100644 --- a/scripts/build/termux_step_extract_into_massagedir.sh +++ b/scripts/build/termux_step_extract_into_massagedir.sh @@ -8,6 +8,14 @@ termux_step_extract_into_massagedir() { # Extract tar in order to massage it mkdir -p "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX" cd "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX" - tar xf "$TARBALL_ORIG" + + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + # Tar on android-5 may show error like 'Cannot change mode to ...: No such file or directory' + # when extracting symlinks. Using bsdtar instead as workaround. + bsdtar xf "$TARBALL_ORIG" + else + tar xf "$TARBALL_ORIG" + fi + rm "$TARBALL_ORIG" } diff --git a/scripts/setup-termux.sh b/scripts/setup-termux.sh index 0bc33642e..dfae077a8 100755 --- a/scripts/setup-termux.sh +++ b/scripts/setup-termux.sh @@ -4,6 +4,7 @@ PACKAGES="autoconf" PACKAGES+=" automake" PACKAGES+=" bc" PACKAGES+=" bison" +PACKAGES+=" bsdtar" PACKAGES+=" bzip2" PACKAGES+=" clang" PACKAGES+=" cmake"