X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/34317fac8915b8aa168e4fdca81939098ace6d16..2f5fc7139bbc33428d9c323f52ee8d263c5588f1:/build-package.sh diff --git a/build-package.sh b/build-package.sh index 5e67cfb8..e6f253d4 100755 --- a/build-package.sh +++ b/build-package.sh @@ -18,19 +18,24 @@ test -f $HOME/.termuxrc && . $HOME/.termuxrc : ${TERMUX_API_LEVEL:="21"} : ${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="24.0.1"} : ${TERMUX_NDK_VERSION:="13"} +: ${TERMUX_IS_DISABLED:=""} # Handle command-line arguments: show_usage () { - echo "Usage: ./build-package.sh [-a ARCH] PACKAGE" - echo "Build a package." - echo "" + echo "Usage: ./build-package.sh [-a ARCH] [-d] [-D] PACKAGE" + echo "Build a package by creating a .deb file in the debs/ folder." + echo " -a The architecture to build for: aarch64(default), arm, i686, x86_64 or all." + echo " -d Build with debug symbols." + echo " -D Build a disabled package in disabled-packages/." exit 1 } -while getopts :a:h option +while getopts :a:hd:D option do case "$option" in a) TERMUX_ARCH="$OPTARG";; h) show_usage;; + d) TERMUX_DEBUG=true;; + D) TERMUX_IS_DISABLED=true;; ?) echo "./build-package.sh: illegal option -$OPTARG"; exit 1;; esac done @@ -58,7 +63,11 @@ if [[ $1 == *"/"* ]]; then export TERMUX_PKG_BUILDER_DIR=`realpath $1` else # Package name: - export TERMUX_PKG_BUILDER_DIR=$TERMUX_SCRIPTDIR/packages/$TERMUX_PKG_NAME + if [ -n "$TERMUX_IS_DISABLED" ]; then + export TERMUX_PKG_BUILDER_DIR=$TERMUX_SCRIPTDIR/disabled-packages/$TERMUX_PKG_NAME + else + export TERMUX_PKG_BUILDER_DIR=$TERMUX_SCRIPTDIR/packages/$TERMUX_PKG_NAME + fi fi TERMUX_PKG_BUILDER_SCRIPT=$TERMUX_PKG_BUILDER_DIR/build.sh if test ! -f $TERMUX_PKG_BUILDER_SCRIPT; then @@ -164,12 +173,16 @@ termux_download() { TRYMAX=6 for try in $(seq 1 $TRYMAX); do if curl -L --fail --retry 2 -o "$TMPFILE" "$URL"; then + local ACTUAL_CHECKSUM=`sha256sum $TMPFILE | cut -f 1 -d ' '` if [ $# = 3 ]; then # Optional checksum argument: - echo $3 "$TMPFILE" | sha256sum --check --strict --quiet + local EXPECTED=$3 + if [ $EXPECTED != $ACTUAL_CHECKSUM ]; then + >&2 printf "Wrong checksum for $URL:\nExpected: $EXPECTED\nActual: $ACTUAL_CHECKSUM\n" + exit 1 + fi else - echo "Note: No checksum of file" - sha256sum $TMPFILE + printf "No validation of checksum for $URL:\nActual: $ACTUAL_CHECKSUM\n" fi mv "$TMPFILE" "$DESTINATION" return @@ -523,7 +536,7 @@ termux_setup_golang () { exit 1 fi - local TERMUX_GO_VERSION=go1.7.1 + local TERMUX_GO_VERSION=go1.7.3 local TERMUX_GO_PLATFORM=linux-amd64 test `uname` = "Darwin" && TERMUX_GO_PLATFORM=darwin-amd64 @@ -560,7 +573,7 @@ fi TERMUX_STANDALONE_TOOLCHAIN="$TERMUX_TOPDIR/_lib/toolchain-${TERMUX_ARCH}-ndk${TERMUX_NDK_VERSION}-api${TERMUX_API_LEVEL}" # Bump the below version if a change is made in toolchain setup to ensure # that everyone gets an updated toolchain: -TERMUX_STANDALONE_TOOLCHAIN+="-v1" +TERMUX_STANDALONE_TOOLCHAIN+="-v2" # We put this after system PATH to avoid picking up toolchain stripped python export PATH=$PATH:$TERMUX_STANDALONE_TOOLCHAIN/bin @@ -578,7 +591,7 @@ if [ "$TERMUX_PKG_CLANG" = "no" ]; then export AS=${TERMUX_HOST_PLATFORM}-gcc export CC=$TERMUX_HOST_PLATFORM-gcc export CXX=$TERMUX_HOST_PLATFORM-g++ - _SPECSFLAG="-specs=$TERMUX_SCRIPTDIR/termux.spec" + _SPECSFLAG=" -specs=$TERMUX_SCRIPTDIR/termux.spec" else export AS=${TERMUX_HOST_PLATFORM}-gcc export CC=$TERMUX_HOST_PLATFORM-clang @@ -669,7 +682,7 @@ if [ ! -d $TERMUX_STANDALONE_TOOLCHAIN ]; then # sysexits.h is header-only and used by a few programs. cp $TERMUX_SCRIPTDIR/ndk_patches/{elf.h,sysexits.h} $_TERMUX_TOOLCHAIN_TMPDIR/sysroot/usr/include - $TERMUX_ELF_CLEANER usr/lib/libc.so + $TERMUX_ELF_CLEANER usr/lib/*.so mv $_TERMUX_TOOLCHAIN_TMPDIR $TERMUX_STANDALONE_TOOLCHAIN fi @@ -812,7 +825,7 @@ termux_step_post_massage # Create data tarball containing files to package: cd $TERMUX_PKG_MASSAGEDIR -if [ "`find . -type f`" = "" ]; then +if [ -z "${TERMUX_PKG_METAPACKAGE+x}" -a "`find . -type f`" = "" ]; then echo "ERROR: No files in package" exit 1 fi