From bff8f2c6f6d5acd31404a8b5ed736d95d0584834 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Sat, 29 Dec 2018 14:50:27 +0100 Subject: [PATCH] Working deb_get_info and install_dep_deb functions --- build-package.sh | 101 ++++++++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 46 deletions(-) diff --git a/build-package.sh b/build-package.sh index ec48b53d5..6979aea67 100755 --- a/build-package.sh +++ b/build-package.sh @@ -267,7 +267,7 @@ termux_step_handle_arguments() { d) export TERMUX_DEBUG=true;; D) local TERMUX_IS_DISABLED=true;; f) TERMUX_FORCE_BUILD=true;; - i) export TERMUX_BUILD_DEPS=true;; + i) TERMUX_BUILD_DEPS=true;; q) export TERMUX_QUIET_BUILD=true;; s) export TERMUX_SKIP_DEPCHECK=true;; o) TERMUX_DEBDIR="$(realpath -m $OPTARG)";; @@ -323,6 +323,8 @@ termux_step_setup_variables() { : "${TERMUX_DEBUG:=""}" : "${TERMUX_PKG_API_LEVEL:="21"}" : "${TERMUX_DEBDIR:="${TERMUX_SCRIPTDIR}/debs"}" + : "${TERMUX_SKIP_DEPCHECK:="false"}" + : "${TERMUX_BUILD_DEPS:="false"}" : "${TERMUX_REPO_URL:="https://termux.net/dists/stable/main"}" if [ "x86_64" = "$TERMUX_ARCH" ] || [ "aarch64" = "$TERMUX_ARCH" ]; then @@ -427,14 +429,35 @@ termux_step_handle_buildarch() { } # Function to get TERMUX_PKG_VERSION from build.sh -termux_extract_version() { +termux_extract_dep_info() { package=$1 ( source $package/build.sh - echo $TERMUX_PKG_VERSION-$TERMUX_PKG_REVISION + if [ "$TERMUX_PKG_PLATFORM_INDEPENDENT" = "yes" ]; then + TERMUX_ARCH=all + fi + if [ ! "$TERMUX_PKG_REVISION" = 0 ]; then + TERMUX_PKG_VERSION+="-$TERMUX_PKG_REVISION" + fi + echo ${TERMUX_ARCH} ${TERMUX_PKG_VERSION} ) } +termux_install_dep_deb() { + local package=$1 + local package_arch=$2 + local version=$3 + local deb_file=${package}_${version}_${package_arch}.deb + ( + cd ${TERMUX_COMMON_CACHEDIR}-${package_arch} + # TODO: allow for specifying several repos in TERMUX_REPO_URL + curl --fail -LO $TERMUX_REPO_URL/binary-${package_arch}/${deb_file} 2>/dev/null \ + && echo "Extracting $package..." && ar x ${deb_file} data.tar.xz \ + && tar xf data.tar.xz --no-overwrite-dir -C / + ) || ( echo "Download of $package from $TERMUX_REPO_URL failed, building instead" \ + && ./build-package.sh -a $TERMUX_ARCH -s "$package" ) +} + # Source the package build script and start building. No to be overridden by packages. termux_step_start_build() { # shellcheck source=/dev/null @@ -450,10 +473,11 @@ termux_step_start_build() { exit 0 fi - if [ ! ${TERMUX_BUILD_DEPS:=false} = true ]; then + local TERMUX_ALL_DEPS=$(./scripts/buildorder.py "$TERMUX_PKG_BUILDER_DIR") + if [ ! $TERMUX_SKIP_DEPCHECK ] && [ ! $TERMUX_BUILD_DEPS ]; then # Ensure folders present (but not $TERMUX_PKG_SRCDIR, it will be created in build) mkdir -p "$TERMUX_COMMON_CACHEDIR" \ - "${TERMUX_COMMON_CACHEDIR}-${TERMUX_ARCH}" \ + "$TERMUX_COMMON_CACHEDIR-$TERMUX_ARCH" \ "$TERMUX_DEBDIR" \ "$TERMUX_PKG_BUILDDIR" \ "$TERMUX_PKG_PACKAGEDIR" \ @@ -473,39 +497,24 @@ termux_step_start_build() { done