X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/0c3f26971d46812e69d620d2c39e001f83447ef7..fd2b34d8467327bb416c9e9f7fd81f5d10f42ade:/build-package.sh diff --git a/build-package.sh b/build-package.sh index 13791fa6..19e88bdf 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 @@ -114,7 +123,6 @@ TERMUX_PKG_HOMEPAGE="" TERMUX_PKG_DESCRIPTION="FIXME:Add description" TERMUX_PKG_FOLDERNAME="" TERMUX_PKG_KEEP_STATIC_LIBRARIES="false" -TERMUX_PKG_KEEP_HEADER_FILES="false" TERMUX_PKG_ESSENTIAL="" TERMUX_PKG_CONFLICTS="" # https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts TERMUX_PKG_REPLACES="" @@ -164,12 +172,18 @@ 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 %s:\nExpected: %s\nActual: %s\n" \ + "$URL" "$EXPECTED" "$ACTUAL_CHECKSUM" + exit 1 + fi else - echo "Note: No checksum of file" - sha256sum $TMPFILE + printf "No validation of checksum for %s:\nActual: %s\n" \ + "$URL" "$ACTUAL_CHECKSUM" fi mv "$TMPFILE" "$DESTINATION" return @@ -523,7 +537,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 @@ -547,7 +561,7 @@ if [ -n "${TERMUX_PKG_BLACKLISTED_ARCHES:=""}" -a "$TERMUX_PKG_BLACKLISTED_ARCHE fi echo "termux - building $1 for arch $TERMUX_ARCH..." -test -t 1 && printf "\033]0;$1...\007" +test -t 1 && printf "\033]0;%s...\007" "$1" # Compute full version: TERMUX_PKG_FULLVERSION=$TERMUX_PKG_VERSION @@ -812,7 +826,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 @@ -853,15 +867,15 @@ $TERMUX_TAR -cJf $TERMUX_PKG_PACKAGEDIR/control.tar.xz . # In the .deb ar file there should be a file "debian-binary" with "2.0" as the content: TERMUX_PKG_DEBFILE=$TERMUX_DEBDIR/${TERMUX_PKG_NAME}_${TERMUX_PKG_FULLVERSION}_${TERMUX_ARCH}.deb # Create the actual .deb file: -ar cr $TERMUX_PKG_DEBFILE \ - $TERMUX_COMMON_CACHEDIR/debian-binary \ - $TERMUX_PKG_PACKAGEDIR/control.tar.xz \ - $TERMUX_PKG_PACKAGEDIR/data.tar.xz +ar cr "$TERMUX_PKG_DEBFILE" \ + "$TERMUX_COMMON_CACHEDIR/debian-binary" \ + "$TERMUX_PKG_PACKAGEDIR/control.tar.xz" \ + "$TERMUX_PKG_PACKAGEDIR/data.tar.xz" if [ "$TERMUX_PROCESS_DEB" != "" ]; then - $TERMUX_PROCESS_DEB $TERMUX_PKG_DEBFILE + $TERMUX_PROCESS_DEB "$TERMUX_PKG_DEBFILE" fi echo "termux - build of '$1' done" -test -t 1 && printf "\033]0;$1 - DONE\007" +test -t 1 && printf "\033]0;%s - DONE\007" "$1" exit 0