Working deb_get_info and install_dep_deb functions
This commit is contained in:
parent
3a5bec4098
commit
b970310662
101
build-package.sh
101
build-package.sh
@ -267,7 +267,7 @@ termux_step_handle_arguments() {
|
|||||||
d) export TERMUX_DEBUG=true;;
|
d) export TERMUX_DEBUG=true;;
|
||||||
D) local TERMUX_IS_DISABLED=true;;
|
D) local TERMUX_IS_DISABLED=true;;
|
||||||
f) TERMUX_FORCE_BUILD=true;;
|
f) TERMUX_FORCE_BUILD=true;;
|
||||||
i) export TERMUX_BUILD_DEPS=true;;
|
i) TERMUX_BUILD_DEPS=true;;
|
||||||
q) export TERMUX_QUIET_BUILD=true;;
|
q) export TERMUX_QUIET_BUILD=true;;
|
||||||
s) export TERMUX_SKIP_DEPCHECK=true;;
|
s) export TERMUX_SKIP_DEPCHECK=true;;
|
||||||
o) TERMUX_DEBDIR="$(realpath -m $OPTARG)";;
|
o) TERMUX_DEBDIR="$(realpath -m $OPTARG)";;
|
||||||
@ -324,6 +324,8 @@ termux_step_setup_variables() {
|
|||||||
: "${TERMUX_PKG_API_LEVEL:="21"}"
|
: "${TERMUX_PKG_API_LEVEL:="21"}"
|
||||||
: "${TERMUX_DEBDIR:="${TERMUX_SCRIPTDIR}/debs"}"
|
: "${TERMUX_DEBDIR:="${TERMUX_SCRIPTDIR}/debs"}"
|
||||||
: "${TERMUX_PKG_MAINTAINER:="Fredrik Fornwall @fornwall"}"
|
: "${TERMUX_PKG_MAINTAINER:="Fredrik Fornwall @fornwall"}"
|
||||||
|
: "${TERMUX_SKIP_DEPCHECK:="false"}"
|
||||||
|
: "${TERMUX_BUILD_DEPS:="false"}"
|
||||||
: "${TERMUX_REPO_URL:="https://termux.net/dists/stable/main"}"
|
: "${TERMUX_REPO_URL:="https://termux.net/dists/stable/main"}"
|
||||||
|
|
||||||
if [ "x86_64" = "$TERMUX_ARCH" ] || [ "aarch64" = "$TERMUX_ARCH" ]; then
|
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
|
# Function to get TERMUX_PKG_VERSION from build.sh
|
||||||
termux_extract_version() {
|
termux_extract_dep_info() {
|
||||||
package=$1
|
package=$1
|
||||||
(
|
(
|
||||||
source $package/build.sh
|
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.
|
# Source the package build script and start building. No to be overridden by packages.
|
||||||
termux_step_start_build() {
|
termux_step_start_build() {
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
@ -450,10 +473,11 @@ termux_step_start_build() {
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
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)
|
# Ensure folders present (but not $TERMUX_PKG_SRCDIR, it will be created in build)
|
||||||
mkdir -p "$TERMUX_COMMON_CACHEDIR" \
|
mkdir -p "$TERMUX_COMMON_CACHEDIR" \
|
||||||
"${TERMUX_COMMON_CACHEDIR}-${TERMUX_ARCH}" \
|
"$TERMUX_COMMON_CACHEDIR-$TERMUX_ARCH" \
|
||||||
"$TERMUX_DEBDIR" \
|
"$TERMUX_DEBDIR" \
|
||||||
"$TERMUX_PKG_BUILDDIR" \
|
"$TERMUX_PKG_BUILDDIR" \
|
||||||
"$TERMUX_PKG_PACKAGEDIR" \
|
"$TERMUX_PKG_PACKAGEDIR" \
|
||||||
@ -473,39 +497,24 @@ termux_step_start_build() {
|
|||||||
done<SYMLINKS.txt
|
done<SYMLINKS.txt
|
||||||
rm SYMLINKS.txt
|
rm SYMLINKS.txt
|
||||||
)
|
)
|
||||||
fi
|
|
||||||
if [ ! ${TERMUX_BUILD_DEPS:=false} = true ] && [ ! ${TERMUX_SKIP_DEPCHECK:=false} = true ]; then
|
|
||||||
# download dependencies
|
|
||||||
local p TERMUX_ALL_DEPS
|
|
||||||
TERMUX_ALL_DEPS=$(./scripts/buildorder.py "$TERMUX_PKG_BUILDER_DIR")
|
|
||||||
for p in $TERMUX_ALL_DEPS; do
|
|
||||||
echo "Downloading dependency $(basename $p) if necessary..."
|
|
||||||
local dep_version=$(termux_extract_version "$p")
|
|
||||||
termux_get_deb $TERMUX_ARCH "$p"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${TERMUX_SKIP_DEPCHECK:=""}" ] && [ ${TERMUX_BUILD_DEPS:=false} = true ]; then
|
# Download dependencies
|
||||||
echo "WE MADE IT"
|
local pkg dep_arch dep_version
|
||||||
local p TERMUX_ALL_DEPS
|
for pkg in $TERMUX_ALL_DEPS; do
|
||||||
TERMUX_ALL_DEPS=$(./scripts/buildorder.py "$TERMUX_PKG_BUILDER_DIR")
|
echo "Downloading dependency $(basename $pkg) if necessary..."
|
||||||
for p in $TERMUX_ALL_DEPS; do
|
read dep_arch dep_version <<< $(termux_extract_dep_info "$pkg")
|
||||||
|
termux_install_dep_deb $(basename $pkg) $dep_arch $dep_version
|
||||||
|
done
|
||||||
|
elif [ ! $TERMUX_SKIP_DEPCHECK ] && [ $TERMUX_BUILD_DEPS ]; then
|
||||||
|
# Build dependencies
|
||||||
|
local pkg
|
||||||
|
for pkg in $TERMUX_ALL_DEPS; do
|
||||||
echo "Building dependency $p if necessary..."
|
echo "Building dependency $p if necessary..."
|
||||||
# Built dependencies are put in the default TERMUX_DEBDIR instead of the specified one
|
# Built dependencies are put in the default TERMUX_DEBDIR instead of the specified one
|
||||||
./build-package.sh -a $TERMUX_ARCH -s "$p"
|
./build-package.sh -a $TERMUX_ARCH -s "$p"
|
||||||
done
|
done
|
||||||
# elif [ ! -z "${TERMUX_SKIP_DEPCHECK:=""}" ]; then
|
else
|
||||||
# # download dependencies
|
echo "Skipping dependency check"
|
||||||
# local p TERMUX_ALL_DEPS
|
|
||||||
# TERMUX_ALL_DEPS=$(./scripts/buildorder.py "$TERMUX_PKG_BUILDER_DIR")
|
|
||||||
# for p in $TERMUX_ALL_DEPS; do
|
|
||||||
# echo "Downloading dependency $(basename $p) if necessary..."
|
|
||||||
# # termux_get_deb $TERMUX_ARCH "$p"
|
|
||||||
# local p_ver=$(termux_extract_version "$p")
|
|
||||||
# echo "hej"
|
|
||||||
# echo "$p_ver"
|
|
||||||
# echo "håå"
|
|
||||||
# done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TERMUX_PKG_FULLVERSION=$TERMUX_PKG_VERSION
|
TERMUX_PKG_FULLVERSION=$TERMUX_PKG_VERSION
|
||||||
@ -1375,18 +1384,18 @@ termux_step_create_debfile() {
|
|||||||
"$TERMUX_PKG_PACKAGEDIR/data.tar.xz"
|
"$TERMUX_PKG_PACKAGEDIR/data.tar.xz"
|
||||||
}
|
}
|
||||||
|
|
||||||
termux_step_reverse_depends() {
|
# termux_step_reverse_depends() {
|
||||||
if [ ! ${TERMUX_BUILD_DEPS:=false} = true ]; then
|
# if [ ! ${TERMUX_BUILD_DEPS:=false} = true ]; then
|
||||||
# TODO build reverse depends with packages
|
# # TODO build reverse depends with packages
|
||||||
### apt-cache $TERMUX_APT rdepends $TERMUX_PKG_NAME
|
# ### apt-cache $TERMUX_APT rdepends $TERMUX_PKG_NAME
|
||||||
|
#
|
||||||
# TODO compare package with existing
|
# # TODO compare package with existing
|
||||||
echo "COMPARING PACKAGES"
|
# echo "COMPARING PACKAGES"
|
||||||
### apt $TERMUX_APT download $TERMUX_PKG_NAME
|
# ### apt $TERMUX_APT download $TERMUX_PKG_NAME
|
||||||
debdiff ${TERMUX_PKG_NAME}*.deb ${TERMUX_PKG_DEBFILE}
|
# debdiff ${TERMUX_PKG_NAME}*.deb ${TERMUX_PKG_DEBFILE}
|
||||||
echo "DONE COMPARE PACKAGES"
|
# echo "DONE COMPARE PACKAGES"
|
||||||
fi
|
# fi
|
||||||
}
|
# }
|
||||||
|
|
||||||
# Finish the build. Not to be overridden by package scripts.
|
# Finish the build. Not to be overridden by package scripts.
|
||||||
termux_step_finish_build() {
|
termux_step_finish_build() {
|
||||||
@ -1428,5 +1437,5 @@ cd "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX"
|
|||||||
termux_step_post_massage
|
termux_step_post_massage
|
||||||
termux_step_create_datatar
|
termux_step_create_datatar
|
||||||
termux_step_create_debfile
|
termux_step_create_debfile
|
||||||
termux_step_reverse_depends
|
# termux_step_reverse_depends
|
||||||
termux_step_finish_build
|
termux_step_finish_build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user