Browse Source

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.
android-5
Leonid Plyushch 6 years ago
parent
commit
1e698a1198
No known key found for this signature in database GPG Key ID: 45F2964132545795
  1. 10
      scripts/build/termux_step_extract_into_massagedir.sh
  2. 1
      scripts/setup-termux.sh

10
scripts/build/termux_step_extract_into_massagedir.sh

@ -8,6 +8,14 @@ termux_step_extract_into_massagedir() {
# Extract tar in order to massage it # Extract tar in order to massage it
mkdir -p "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX" mkdir -p "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX"
cd "$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" rm "$TARBALL_ORIG"
} }

1
scripts/setup-termux.sh

@ -4,6 +4,7 @@ PACKAGES="autoconf"
PACKAGES+=" automake" PACKAGES+=" automake"
PACKAGES+=" bc" PACKAGES+=" bc"
PACKAGES+=" bison" PACKAGES+=" bison"
PACKAGES+=" bsdtar"
PACKAGES+=" bzip2" PACKAGES+=" bzip2"
PACKAGES+=" clang" PACKAGES+=" clang"
PACKAGES+=" cmake" PACKAGES+=" cmake"

Loading…
Cancel
Save