: ${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
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
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=""
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
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
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
# 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
# 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