build-package.sh: change logic for package manager selection to be more stable
termux_step_setup_variables: added logic with TERMUX_PACKAGE_FORMAT for easier compilation.
This commit is contained in:
parent
d3556570a5
commit
465159a72e
@ -273,7 +273,10 @@ source "$TERMUX_SCRIPTDIR/scripts/build/termux_step_finish_build.sh"
|
||||
if [ "$TERMUX_ON_DEVICE_BUILD" = "true" ]; then
|
||||
# For on device builds cross compiling is not supported.
|
||||
# Target architecture must be same as for environment used currently.
|
||||
TERMUX_ARCH=$(dpkg --print-architecture 2>/dev/null || pacman-conf | grep Architecture | sed 's/Architecture = //g')
|
||||
case "$TERMUX_MAIN_PACKAGE_FORMAT" in
|
||||
"debian") TERMUX_ARCH=$(dpkg --print-architecture);;
|
||||
"pacman") TERMUX_ARCH=$(pacman-conf | grep Architecture | sed 's/Architecture = //g');;
|
||||
esac
|
||||
export TERMUX_ARCH
|
||||
fi
|
||||
|
||||
|
@ -25,8 +25,8 @@ termux_setup_cmake() {
|
||||
|
||||
export PATH=$TERMUX_CMAKE_FOLDER/bin:$PATH
|
||||
else
|
||||
if [[ "$(dpkg --version 2>/dev/null)" && "$(dpkg-query -W -f '${db:Status-Status}\n' cmake 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$(pacman -V 2>/dev/null)" && ! "$(pacman -Q cmake 2>/dev/null)" ]]; then
|
||||
if [[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" && "$(dpkg-query -W -f '${db:Status-Status}\n' cmake 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" && ! "$(pacman -Q cmake 2>/dev/null)" ]]; then
|
||||
echo "Package 'cmake' is not installed."
|
||||
echo "You can install it with"
|
||||
echo
|
||||
|
@ -32,8 +32,8 @@ termux_setup_ghc() {
|
||||
|
||||
rm -Rf "$TERMUX_GHC_TEMP_FOLDER"
|
||||
else
|
||||
if [[ "$(dpkg --version 2>/dev/null)" && "$(dpkg-query -W -f '${db:Status-Status}\n' ghc 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$(pacman -V 2>/dev/null)" && ! "$(pacman -Q ghc 2>/dev/null)" ]]; then
|
||||
if [[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" && "$(dpkg-query -W -f '${db:Status-Status}\n' ghc 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" && ! "$(pacman -Q ghc 2>/dev/null)" ]]; then
|
||||
echo "Package 'ghc' is not installed."
|
||||
exit 1
|
||||
fi
|
||||
|
@ -40,8 +40,8 @@ termux_setup_gn() {
|
||||
fi
|
||||
export PATH=$GN_FOLDER/out:$PATH
|
||||
else
|
||||
if [[ "$(dpkg --version 2>/dev/null)" && "$(dpkg-query -W -f '${db:Status-Status}\n' gn 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$(pacman -V 2>/dev/null)" && ! "$(pacman -Q gn 2>/dev/null)" ]]; then
|
||||
if [[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" && "$(dpkg-query -W -f '${db:Status-Status}\n' gn 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" && ! "$(pacman -Q gn 2>/dev/null)" ]]; then
|
||||
echo "Package 'gn' is not installed."
|
||||
echo "You can install it with"
|
||||
echo
|
||||
|
@ -24,8 +24,8 @@ termux_setup_golang() {
|
||||
|
||||
( cd "$TERMUX_COMMON_CACHEDIR"; tar xf "$TERMUX_BUILDGO_TAR"; mv go "$TERMUX_BUILDGO_FOLDER"; rm "$TERMUX_BUILDGO_TAR" )
|
||||
else
|
||||
if [[ "$(dpkg --version 2>/dev/null)" && "$(dpkg-query -W -f '${db:Status-Status}\n' golang 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$(pacman -V 2>/dev/null)" && ! "$(pacman -Q golang 2>/dev/null)" ]]; then
|
||||
if [[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" && "$(dpkg-query -W -f '${db:Status-Status}\n' golang 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" && ! "$(pacman -Q golang 2>/dev/null)" ]]; then
|
||||
echo "Package 'golang' is not installed."
|
||||
echo "You can install it with"
|
||||
echo
|
||||
|
@ -23,8 +23,8 @@ termux_setup_ninja() {
|
||||
local NINJA_PKG_VERSION=$(bash -c ". $TERMUX_SCRIPTDIR/packages/ninja/build.sh; echo \$TERMUX_PKG_VERSION")
|
||||
if ([ ! -e "$TERMUX_BUILT_PACKAGES_DIRECTORY/ninja" ] ||
|
||||
[ "$(cat "$TERMUX_BUILT_PACKAGES_DIRECTORY/ninja")" != "$NINJA_PKG_VERSION" ]) &&
|
||||
([[ "$(dpkg --version 2>/dev/null)" && "$(dpkg-query -W -f '${db:Status-Status}\n' ninja 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$(pacman -V 2>/dev/null)" && ! "$(pacman -Q ninja 2>/dev/null)" ]]); then
|
||||
([[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" && "$(dpkg-query -W -f '${db:Status-Status}\n' ninja 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" && ! "$(pacman -Q ninja 2>/dev/null)" ]]); then
|
||||
echo "Package 'ninja' is not installed."
|
||||
echo "You can install it with"
|
||||
echo
|
||||
|
@ -6,8 +6,8 @@ termux_setup_rust() {
|
||||
fi
|
||||
|
||||
if [ "$TERMUX_ON_DEVICE_BUILD" = "true" ]; then
|
||||
if [[ "$(dpkg --version 2>/dev/null)" && "$(dpkg-query -W -f '${db:Status-Status}\n' rust 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$(pacman -V 2>/dev/null)" && ! "$(pacman -Q rust 2>/dev/null)" ]]; then
|
||||
if [[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" && "$(dpkg-query -W -f '${db:Status-Status}\n' rust 2>/dev/null)" != "installed" ]] ||
|
||||
[[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" && ! "$(pacman -Q rust 2>/dev/null)" ]]; then
|
||||
echo "Package 'rust' is not installed."
|
||||
echo "You can install it with"
|
||||
echo
|
||||
|
@ -5,7 +5,10 @@ termux_download_deb_pac() {
|
||||
local VERSION_PACMAN=$4
|
||||
|
||||
if [ "$TERMUX_ON_DEVICE_BUILD" = "true" ]; then
|
||||
apt install -y "${PACKAGE}=${VERSION}" 2>/dev/null || pacman -S "${PACKAGE}=${VERSION_PACMAN}" --needed --noconfirm
|
||||
case "$TERMUX_MAIN_PACKAGE_FORMAT" in
|
||||
"debian") apt install -y "${PACKAGE}=${VERSION}";;
|
||||
"pacman") pacman -S "${PACKAGE}=${VERSION_PACMAN}" --needed --noconfirm;;
|
||||
esac
|
||||
return "$?"
|
||||
fi
|
||||
|
||||
|
@ -4,7 +4,12 @@ termux_step_get_dependencies() {
|
||||
termux_get_repo_files
|
||||
|
||||
# When doing build on device, ensure that apt lists are up-to-date.
|
||||
[ "$TERMUX_ON_DEVICE_BUILD" = "true" ] && (apt update 2>/dev/null || pacman -Sy)
|
||||
if [ "$TERMUX_ON_DEVICE_BUILD" = "true" ]; then
|
||||
case "$TERMUX_MAIN_PACKAGE_FORMAT" in
|
||||
"debian") apt update;;
|
||||
"pacman") pacman -Sy;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Download dependencies
|
||||
while read PKG PKG_DIR; do
|
||||
|
@ -1,5 +1,5 @@
|
||||
termux_step_setup_variables() {
|
||||
: "${TERMUX_PACKAGE_FORMAT:="debian"}" # debian, pacman
|
||||
: "${TERMUX_PACKAGE_FORMAT:="$(([ -n "$TERMUX_MAIN_PACKAGE_FORMAT" ] && echo "$TERMUX_MAIN_PACKAGE_FORMAT") || echo "debian")"}" # debian, pacman
|
||||
: "${TERMUX_ARCH:="aarch64"}" # arm, aarch64, i686 or x86_64.
|
||||
: "${TERMUX_OUTPUT_DIR:="${TERMUX_SCRIPTDIR}/output"}"
|
||||
: "${TERMUX_DEBUG_BUILD:="false"}"
|
||||
|
@ -55,8 +55,8 @@ termux_step_start_build() {
|
||||
echo "$TERMUX_PKG_NAME@$TERMUX_PKG_FULLVERSION built - skipping (rm $TERMUX_BUILT_PACKAGES_DIRECTORY/$TERMUX_PKG_NAME to force rebuild)"
|
||||
exit 0
|
||||
elif [ "$TERMUX_ON_DEVICE_BUILD" = "true" ] &&
|
||||
([ "$(dpkg-query -W -f '${db:Status-Status} ${Version}\n' "$TERMUX_PKG_NAME" 2>/dev/null)" = "installed $TERMUX_PKG_FULLVERSION" ] ||
|
||||
[ "$(pacman -Q $TERMUX_PKG_NAME 2>/dev/null)" = "$TERMUX_PKG_NAME $TERMUX_PKG_FULLVERSION_FOR_PACMAN" ]); then
|
||||
([[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" && "$(dpkg-query -W -f '${db:Status-Status} ${Version}\n' "$TERMUX_PKG_NAME" 2>/dev/null)" = "installed $TERMUX_PKG_FULLVERSION" ]] ||
|
||||
[[ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" && "$(pacman -Q $TERMUX_PKG_NAME 2>/dev/null)" = "$TERMUX_PKG_NAME $TERMUX_PKG_FULLVERSION_FOR_PACMAN" ]]); then
|
||||
echo "$TERMUX_PKG_NAME@$TERMUX_PKG_FULLVERSION installed - skipping"
|
||||
exit 0
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user