mirror of
https://github.com/termux-pacman/termux-packages.git
synced 2025-12-22 11:40:18 +00:00
Update repo
This commit is contained in:
@@ -437,6 +437,36 @@ termux_check_package_in_building_packages_list() {
|
|||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Configure variables (TERMUX_ARCH, TERMUX__PREFIX__INCLUDE_DIR, TERMUX__PREFIX__LIB_DIR) for multilib-compilation
|
||||||
|
termux_conf_multilib_vars() {
|
||||||
|
# Change the 64-bit architecture type to its 32-bit counterpart in the `TERMUX_ARCH` variable
|
||||||
|
case $TERMUX_ARCH in
|
||||||
|
"aarch64") TERMUX_ARCH="arm";;
|
||||||
|
"x86_64") TERMUX_ARCH="i686";;
|
||||||
|
*) termux_error_exit "It is impossible to set multilib arch for ${TERMUX_ARCH} arch."
|
||||||
|
esac
|
||||||
|
TERMUX__PREFIX__INCLUDE_DIR="$TERMUX__PREFIX__MULTI_INCLUDE_DIR"
|
||||||
|
TERMUX__PREFIX__LIB_DIR="$TERMUX__PREFIX__MULTI_LIB_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run functions for normal compilation and multilib-compilation
|
||||||
|
termux_run_base_and_multilib_build_step() {
|
||||||
|
case "${1}" in
|
||||||
|
termux_step_configure|termux_step_make|termux_step_make_install) local func="${1}";;
|
||||||
|
*) termux_error_exit "Unsupported function '${1}'."
|
||||||
|
esac
|
||||||
|
cd "$TERMUX_PKG_BUILDDIR"
|
||||||
|
if [ "$TERMUX_PKG_BUILD_ONLY_MULTILIB" = "false" ]; then
|
||||||
|
"${func}"
|
||||||
|
fi
|
||||||
|
if [ "$TERMUX_PKG_BUILD_MULTILIB" = "true" ]; then
|
||||||
|
(
|
||||||
|
termux_step_setup_multilib_environment
|
||||||
|
"${func}_multilib"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Special hook to prevent use of "sudo" inside package build scripts.
|
# Special hook to prevent use of "sudo" inside package build scripts.
|
||||||
# build-package.sh shouldn't perform any privileged operations.
|
# build-package.sh shouldn't perform any privileged operations.
|
||||||
sudo() {
|
sudo() {
|
||||||
@@ -700,17 +730,14 @@ for ((i=0; i<${#PACKAGE_LIST[@]}; i++)); do
|
|||||||
|
|
||||||
# Even on continued build we might need to setup paths
|
# Even on continued build we might need to setup paths
|
||||||
# to tools so need to run part of configure step
|
# to tools so need to run part of configure step
|
||||||
cd "$TERMUX_PKG_BUILDDIR"
|
termux_run_base_and_multilib_build_step termux_step_configure
|
||||||
termux_step_configure
|
|
||||||
|
|
||||||
if [ "$TERMUX_CONTINUE_BUILD" == "false" ]; then
|
if [ "$TERMUX_CONTINUE_BUILD" == "false" ]; then
|
||||||
cd "$TERMUX_PKG_BUILDDIR"
|
cd "$TERMUX_PKG_BUILDDIR"
|
||||||
termux_step_post_configure
|
termux_step_post_configure
|
||||||
fi
|
fi
|
||||||
cd "$TERMUX_PKG_BUILDDIR"
|
termux_run_base_and_multilib_build_step termux_step_make
|
||||||
termux_step_make
|
termux_run_base_and_multilib_build_step termux_step_make_install
|
||||||
cd "$TERMUX_PKG_BUILDDIR"
|
|
||||||
termux_step_make_install
|
|
||||||
cd "$TERMUX_PKG_BUILDDIR"
|
cd "$TERMUX_PKG_BUILDDIR"
|
||||||
termux_step_post_make_install
|
termux_step_post_make_install
|
||||||
termux_step_install_pacman_hooks
|
termux_step_install_pacman_hooks
|
||||||
|
|||||||
12
disabled-packages/attr32/build.sh
Normal file
12
disabled-packages/attr32/build.sh
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
TERMUX_PKG_HOMEPAGE=http://savannah.nongnu.org/projects/attr/
|
||||||
|
TERMUX_PKG_DESCRIPTION="Utilities for manipulating filesystem extended attributes (for testing multilib-compilation on bionic)"
|
||||||
|
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||||
|
TERMUX_PKG_MAINTAINER="@termux"
|
||||||
|
TERMUX_PKG_VERSION="2.5.2"
|
||||||
|
TERMUX_PKG_SRCURL=http://download.savannah.gnu.org/releases/attr/attr-${TERMUX_PKG_VERSION}.tar.gz
|
||||||
|
TERMUX_PKG_SHA256=39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87
|
||||||
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--enable-gettext=no"
|
||||||
|
TERMUX_PKG_RM_AFTER_INSTALL="share/man/man5/attr.5"
|
||||||
|
TERMUX_PKG_BUILD_IN_SRC=true
|
||||||
|
TERMUX_PKG_EXCLUDED_ARCHES="arm, i686"
|
||||||
|
TERMUX_PKG_BUILD_MULTILIB=true
|
||||||
1
disabled-packages/attr32/tools-attr.c.patch
Symbolic link
1
disabled-packages/attr32/tools-attr.c.patch
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../packages/attr/tools-attr.c.patch
|
||||||
1
disabled-packages/attr32/walk_tree.c.patch
Symbolic link
1
disabled-packages/attr32/walk_tree.c.patch
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../packages/attr/walk_tree.c.patch
|
||||||
@@ -32,3 +32,7 @@ termux_step_configure() {
|
|||||||
termux_step_configure_meson
|
termux_step_configure_meson
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
termux_step_configure_multilib() {
|
||||||
|
termux_step_configure
|
||||||
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ termux_step_configure_autotools() {
|
|||||||
QUIET_BUILD="--enable-silent-rules --silent --quiet"
|
QUIET_BUILD="--enable-silent-rules --silent --quiet"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then
|
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ] && [ ! -d "$TERMUX_PKG_TMPDIR/config-scripts" ]; then
|
||||||
# Some packages provides a $PKG-config script which some configure scripts pickup instead of pkg-config:
|
# Some packages provides a $PKG-config script which some configure scripts pickup instead of pkg-config:
|
||||||
mkdir "$TERMUX_PKG_TMPDIR/config-scripts"
|
mkdir "$TERMUX_PKG_TMPDIR/config-scripts"
|
||||||
for f in $TERMUX_PREFIX/bin/*config; do
|
for f in $TERMUX_PREFIX/bin/*config; do
|
||||||
@@ -103,9 +103,10 @@ termux_step_configure_autotools() {
|
|||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
env $AVOID_GNULIB "$TERMUX_PKG_SRCDIR/configure" \
|
env $AVOID_GNULIB "$TERMUX_PKG_SRCDIR/configure" \
|
||||||
--disable-dependency-tracking \
|
--disable-dependency-tracking \
|
||||||
--prefix=$TERMUX_PREFIX \
|
--prefix="$TERMUX_PREFIX" \
|
||||||
--libdir=$TERMUX_PREFIX/lib \
|
--libdir="$TERMUX__PREFIX__LIB_DIR" \
|
||||||
--sbindir=$TERMUX_PREFIX/bin \
|
--includedir="$TERMUX__PREFIX__INCLUDE_DIR" \
|
||||||
|
--sbindir="$TERMUX_PREFIX/bin" \
|
||||||
--disable-rpath --disable-rpath-hack \
|
--disable-rpath --disable-rpath-hack \
|
||||||
$HOST_FLAG \
|
$HOST_FLAG \
|
||||||
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS \
|
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS \
|
||||||
|
|||||||
@@ -45,8 +45,9 @@ termux_step_configure_cmake() {
|
|||||||
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
|
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
|
||||||
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
|
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
|
||||||
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
|
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
|
||||||
-DCMAKE_INSTALL_PREFIX=$TERMUX_PREFIX \
|
-DCMAKE_INSTALL_PREFIX="$TERMUX_PREFIX" \
|
||||||
-DCMAKE_INSTALL_LIBDIR=$TERMUX_PREFIX/lib \
|
-DCMAKE_INSTALL_LIBDIR="$TERMUX__PREFIX__LIB_DIR" \
|
||||||
|
-DCMAKE_INSTALL_INCLUDEDIR="$TERMUX__PREFIX__INCLUDE_DIR" \
|
||||||
-DCMAKE_MAKE_PROGRAM=$MAKE_PROGRAM_PATH \
|
-DCMAKE_MAKE_PROGRAM=$MAKE_PROGRAM_PATH \
|
||||||
-DCMAKE_SKIP_INSTALL_RPATH=ON \
|
-DCMAKE_SKIP_INSTALL_RPATH=ON \
|
||||||
-DCMAKE_USE_SYSTEM_LIBRARIES=True \
|
-DCMAKE_USE_SYSTEM_LIBRARIES=True \
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ termux_step_configure_meson() {
|
|||||||
$TERMUX_PKG_BUILDDIR \
|
$TERMUX_PKG_BUILDDIR \
|
||||||
--$(test "${TERMUX_PKG_MESON_NATIVE}" = "true" && echo "native-file" || echo "cross-file") $TERMUX_MESON_CROSSFILE \
|
--$(test "${TERMUX_PKG_MESON_NATIVE}" = "true" && echo "native-file" || echo "cross-file") $TERMUX_MESON_CROSSFILE \
|
||||||
--prefix $TERMUX_PREFIX \
|
--prefix $TERMUX_PREFIX \
|
||||||
--libdir lib \
|
--libdir $(test "${TERMUX_ARCH}" = "${TERMUX_REAL_ARCH}" && echo "lib" || echo "lib32") \
|
||||||
|
--includedir $(test "${TERMUX_ARCH}" = "${TERMUX_REAL_ARCH}" && echo "include" || echo "include32") \
|
||||||
--buildtype ${_meson_buildtype} \
|
--buildtype ${_meson_buildtype} \
|
||||||
${_meson_stripflag} \
|
${_meson_stripflag} \
|
||||||
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS \
|
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS \
|
||||||
|
|||||||
@@ -54,6 +54,6 @@ termux_setup_golang() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export GOROOT="$TERMUX_PREFIX/lib/go"
|
export GOROOT="$TERMUX__PREFIX__LIB_DIR/go"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ termux_create_debian_subpackages() {
|
|||||||
if [[ "$TERMUX_PACKAGE_LIBRARY" == 'glibc' ]]; then
|
if [[ "$TERMUX_PACKAGE_LIBRARY" == 'glibc' ]]; then
|
||||||
_ADD_PREFIX="glibc/"
|
_ADD_PREFIX="glibc/"
|
||||||
fi
|
fi
|
||||||
if [[ "$TERMUX_PKG_NO_STATICSPLIT" == 'false' && -n "$(shopt -s globstar; shopt -s nullglob; echo ${_ADD_PREFIX}lib/**/*.a)" ]]; then
|
if [[ "$TERMUX_PKG_NO_STATICSPLIT" == 'false' && -n "$(shopt -s globstar; shopt -s nullglob; echo ${_ADD_PREFIX}lib{,32}/**/*.a)" ]]; then
|
||||||
# Add virtual -static sub package if there are include files:
|
# Add virtual -static sub package if there are include files:
|
||||||
local _STATIC_SUBPACKAGE_FILE=$TERMUX_PKG_TMPDIR/${TERMUX_PKG_NAME}-static.subpackage.sh
|
local _STATIC_SUBPACKAGE_FILE=$TERMUX_PKG_TMPDIR/${TERMUX_PKG_NAME}-static.subpackage.sh
|
||||||
echo TERMUX_SUBPKG_INCLUDE=\"$(find ${_ADD_PREFIX}lib -name '*.a' -o -name '*.la') $TERMUX_PKG_STATICSPLIT_EXTRA_PATTERNS\" > "$_STATIC_SUBPACKAGE_FILE"
|
echo TERMUX_SUBPKG_INCLUDE=\"$(find ${_ADD_PREFIX}lib{,32} -name '*.a' -o -name '*.la' 2> /dev/null) $TERMUX_PKG_STATICSPLIT_EXTRA_PATTERNS\" > "$_STATIC_SUBPACKAGE_FILE"
|
||||||
echo "TERMUX_SUBPKG_DESCRIPTION=\"Static libraries for ${TERMUX_PKG_NAME}\"" >> "$_STATIC_SUBPACKAGE_FILE"
|
echo "TERMUX_SUBPKG_DESCRIPTION=\"Static libraries for ${TERMUX_PKG_NAME}\"" >> "$_STATIC_SUBPACKAGE_FILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ termux_create_pacman_subpackages() {
|
|||||||
if [[ "$TERMUX_PACKAGE_LIBRARY" == 'glibc' ]]; then
|
if [[ "$TERMUX_PACKAGE_LIBRARY" == 'glibc' ]]; then
|
||||||
_ADD_PREFIX="glibc/"
|
_ADD_PREFIX="glibc/"
|
||||||
fi
|
fi
|
||||||
if [[ "$TERMUX_PKG_NO_STATICSPLIT" == 'false' && -n "$(shopt -s globstar; shopt -s nullglob; echo ${_ADD_PREFIX}lib/**/*.a)" ]]; then
|
if [[ "$TERMUX_PKG_NO_STATICSPLIT" == 'false' && -n "$(shopt -s globstar; shopt -s nullglob; echo ${_ADD_PREFIX}lib{,32}/**/*.a)" ]]; then
|
||||||
# Add virtual -static sub package if there are include files:
|
# Add virtual -static sub package if there are include files:
|
||||||
local _STATIC_SUBPACKAGE_FILE=$TERMUX_PKG_TMPDIR/${TERMUX_PKG_NAME}-static.subpackage.sh
|
local _STATIC_SUBPACKAGE_FILE=$TERMUX_PKG_TMPDIR/${TERMUX_PKG_NAME}-static.subpackage.sh
|
||||||
echo TERMUX_SUBPKG_INCLUDE=\"$(find ${_ADD_PREFIX}lib -name '*.a' -o -name '*.la') $TERMUX_PKG_STATICSPLIT_EXTRA_PATTERNS\" > "$_STATIC_SUBPACKAGE_FILE"
|
echo TERMUX_SUBPKG_INCLUDE=\"$(find ${_ADD_PREFIX}lib{,32} -name '*.a' -o -name '*.la' 2> /dev/null) $TERMUX_PKG_STATICSPLIT_EXTRA_PATTERNS\" > "$_STATIC_SUBPACKAGE_FILE"
|
||||||
echo "TERMUX_SUBPKG_DESCRIPTION=\"Static libraries for ${TERMUX_PKG_NAME}\"" >> "$_STATIC_SUBPACKAGE_FILE"
|
echo "TERMUX_SUBPKG_DESCRIPTION=\"Static libraries for ${TERMUX_PKG_NAME}\"" >> "$_STATIC_SUBPACKAGE_FILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
termux_step_elf_cleaner() {
|
termux_step_elf_cleaner() {
|
||||||
termux_step_elf_cleaner__from_paths . \( -path "./bin/*" -o -path "./lib/*" -o -path "./libexec/*" -o -path "./opt/*" \)
|
termux_step_elf_cleaner__from_paths . \( -path "./bin/*" -o -path "./lib/*" -o -path "./lib32/*" -o -path "./libexec/*" -o -path "./opt/*" \)
|
||||||
}
|
}
|
||||||
|
|
||||||
termux_step_elf_cleaner__from_paths() {
|
termux_step_elf_cleaner__from_paths() {
|
||||||
|
|||||||
@@ -25,3 +25,7 @@ termux_step_make() {
|
|||||||
${TERMUX_PKG_EXTRA_CONFIGURE_ARGS:+ $TERMUX_PKG_EXTRA_CONFIGURE_ARGS}
|
${TERMUX_PKG_EXTRA_CONFIGURE_ARGS:+ $TERMUX_PKG_EXTRA_CONFIGURE_ARGS}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
termux_step_make_multilib() {
|
||||||
|
termux_step_make
|
||||||
|
}
|
||||||
|
|||||||
@@ -34,3 +34,7 @@ termux_step_make_install() {
|
|||||||
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS
|
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
termux_step_make_install_multilib() {
|
||||||
|
termux_step_make_install
|
||||||
|
}
|
||||||
|
|||||||
@@ -182,6 +182,37 @@ termux_step_massage() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Remove duplicate headers from `include32/` directory
|
||||||
|
if [[ -d ./${ADDING_PREFIX}/include32 && -d ${TERMUX__PREFIX__BASE_INCLUDE_DIR} ]]; then
|
||||||
|
local hpath
|
||||||
|
for hpath in $(find ./${ADDING_PREFIX}/include32 -type f); do
|
||||||
|
local h=$(sed "s|./${ADDING_PREFIX}/include32/||g" <<< "$hpath")
|
||||||
|
if [[ -f "${TERMUX__PREFIX__BASE_INCLUDE_DIR}/${h}" && \
|
||||||
|
"$(md5sum < "${hpath}")" = "$(md5sum < "${TERMUX__PREFIX__BASE_INCLUDE_DIR}/${h}")" ]]; then
|
||||||
|
rm "${hpath}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configure pkgconfig files for proper multilib-compilation
|
||||||
|
if [[ -d ./${ADDING_PREFIX}/lib32/pkgconfig ]]; then
|
||||||
|
local pc
|
||||||
|
for pc in $(grep -s -r -l "^includedir=.*/include32" ./${ADDING_PREFIX}/lib32/pkgconfig); do
|
||||||
|
local pc_cflags="$(grep '^Cflags:' "${pc}" | awk -F ':' '{printf $2 "\n"}')"
|
||||||
|
if ! grep -q ' -I' <<< "${pc_cflags}"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
local pc_multilib_path="$(grep '^includedir=' "${pc}" | sed "s|${TERMUX_PREFIX}|\${prefix}|g" | awk -F '{prefix}/include' '{printf $2}')"
|
||||||
|
local pc_edit_cflags="$(sed "s|\${includedir}|\${includedir}${pc_multilib_path}|g" <<< "${pc_cflags}")"
|
||||||
|
local pc_new_cflags="$(tr ' ' '\n' <<< "${pc_edit_cflags}" | sed 's|\({includedir}\)32|\1|gp; s|\(/include\)32|\1|gp; d' | tr '\n' ' ')"
|
||||||
|
sed -i -e "s|\(^includedir=.*/\)include32\(.*\)|\1include|g" \
|
||||||
|
-e "s|^Cflags:${pc_cflags}$|Cflags:${pc_edit_cflags} ${pc_new_cflags::-1}|g" \
|
||||||
|
"${pc}"
|
||||||
|
# Apply the modified pkgconfig to the system for proper multilib-compilation work
|
||||||
|
cp -r "${pc}" "${TERMUX__PREFIX__MULTI_LIB_DIR}/pkgconfig"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# Check for directory "$PREFIX/man" which indicates packaging error.
|
# Check for directory "$PREFIX/man" which indicates packaging error.
|
||||||
if [ -d "./${ADDING_PREFIX}man" ]; then
|
if [ -d "./${ADDING_PREFIX}man" ]; then
|
||||||
termux_error_exit "Package contains directory \"\$PREFIX/man\" ($TERMUX_PREFIX/man). Use \"\$PREFIX/share/man\" ($TERMUX_PREFIX/share/man) instead."
|
termux_error_exit "Package contains directory \"\$PREFIX/man\" ($TERMUX_PREFIX/man). Use \"\$PREFIX/share/man\" ($TERMUX_PREFIX/share/man) instead."
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ termux_step_setup_build_folders() {
|
|||||||
# permissions which makes them undeletable. We need to fix
|
# permissions which makes them undeletable. We need to fix
|
||||||
# that.
|
# that.
|
||||||
[ -d "$TERMUX_PKG_BUILDDIR" ] && chmod +w -R "$TERMUX_PKG_BUILDDIR" || true
|
[ -d "$TERMUX_PKG_BUILDDIR" ] && chmod +w -R "$TERMUX_PKG_BUILDDIR" || true
|
||||||
|
[ -d "$TERMUX_PKG_MULTILIB_BUILDDIR" ] && chmod +w -R "$TERMUX_PKG_MULTILIB_BUILDDIR" || true
|
||||||
[ -d "$TERMUX_PKG_SRCDIR" ] && chmod +w -R "$TERMUX_PKG_SRCDIR" || true
|
[ -d "$TERMUX_PKG_SRCDIR" ] && chmod +w -R "$TERMUX_PKG_SRCDIR" || true
|
||||||
if [ "$TERMUX_SKIP_DEPCHECK" = false ] && \
|
if [ "$TERMUX_SKIP_DEPCHECK" = false ] && \
|
||||||
[ "$TERMUX_INSTALL_DEPS" = true ] && \
|
[ "$TERMUX_INSTALL_DEPS" = true ] && \
|
||||||
@@ -17,6 +18,7 @@ termux_step_setup_build_folders() {
|
|||||||
|
|
||||||
# Cleanup old build state:
|
# Cleanup old build state:
|
||||||
rm -Rf "$TERMUX_PKG_BUILDDIR" \
|
rm -Rf "$TERMUX_PKG_BUILDDIR" \
|
||||||
|
"$TERMUX_PKG_MULTILIB_BUILDDIR" \
|
||||||
"$TERMUX_PKG_SRCDIR"
|
"$TERMUX_PKG_SRCDIR"
|
||||||
|
|
||||||
# Cleanup old packaging state:
|
# Cleanup old packaging state:
|
||||||
@@ -48,6 +50,9 @@ termux_step_setup_build_folders() {
|
|||||||
"$TERMUX_PKG_TMPDIR" \
|
"$TERMUX_PKG_TMPDIR" \
|
||||||
"$TERMUX_PKG_CACHEDIR" \
|
"$TERMUX_PKG_CACHEDIR" \
|
||||||
"$TERMUX_PKG_MASSAGEDIR"
|
"$TERMUX_PKG_MASSAGEDIR"
|
||||||
|
if [ "$TERMUX_PKG_BUILD_MULTILIB" = "true" ] && [ "$TERMUX_PKG_BUILD_ONLY_MULTILIB" = "false" ]; then
|
||||||
|
mkdir -p "$TERMUX_PKG_MULTILIB_BUILDDIR"
|
||||||
|
fi
|
||||||
if [ "$TERMUX_PACKAGE_LIBRARY" = "bionic" ]; then
|
if [ "$TERMUX_PACKAGE_LIBRARY" = "bionic" ]; then
|
||||||
mkdir -p $TERMUX_PREFIX/{bin,etc,lib,libexec,share,share/LICENSES,tmp,include}
|
mkdir -p $TERMUX_PREFIX/{bin,etc,lib,libexec,share,share/LICENSES,tmp,include}
|
||||||
elif [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
|
elif [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
|
||||||
|
|||||||
@@ -1,70 +1,110 @@
|
|||||||
# Installing packages if necessary for the full operation of CGCT (main use: not in Termux devices)
|
# Installing packages if necessary for the full operation of CGCT (main use: not in Termux devices).
|
||||||
|
|
||||||
termux_step_setup_cgct_environment() {
|
termux_step_setup_cgct_environment() {
|
||||||
[ "$TERMUX_ON_DEVICE_BUILD" = "true" ] && return
|
[ "$TERMUX_ON_DEVICE_BUILD" = "true" ] && return
|
||||||
|
|
||||||
if [ "$TERMUX_REPO_APP__PACKAGE_NAME" != "$TERMUX_APP_PACKAGE" ]; then
|
termux_install_temporary_glibc
|
||||||
echo "WARNING: It is not possible to install glibc core packages from the repo for operation of CGCT, you must install glibc packages for your application with the prefix '$TERMUX_PREFIX' yourself (core packages: glibc and linux-api-headers-glibc)."
|
termux_set_links_to_libgcc_of_cgct
|
||||||
|
|
||||||
|
if [ "$TERMUX_PKG_BUILD_MULTILIB" = "true" ]; then
|
||||||
|
(
|
||||||
|
termux_conf_multilib_vars
|
||||||
|
termux_install_temporary_glibc
|
||||||
|
termux_set_links_to_libgcc_of_cgct
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# The temporary glibc is a glibc used only during compilation of simple packages
|
||||||
|
# or a full glibc that will be customized for the system and replace the temporary glibc.
|
||||||
|
termux_install_temporary_glibc() {
|
||||||
|
local PKG="glibc"
|
||||||
|
local multilib_glibc=false
|
||||||
|
if [ "$TERMUX_ARCH" != "$TERMUX_REAL_ARCH" ]; then
|
||||||
|
multilib_glibc=true
|
||||||
|
PKG+="32"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checking if temporary glibc needs to be installed.
|
||||||
|
if [ -f "$TERMUX_BUILT_PACKAGES_DIRECTORY/$PKG-temporary-for-cgct" ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for PKG in gcc-libs-glibc glibc linux-api-headers-glibc; do
|
|
||||||
local PKG_DIR=$(ls ${TERMUX_SCRIPTDIR}/*/${PKG}/build.sh 2> /dev/null || \
|
local PKG_DIR=$(ls ${TERMUX_SCRIPTDIR}/*/${PKG}/build.sh 2> /dev/null || \
|
||||||
ls ${TERMUX_SCRIPTDIR}/*/${PKG/-glibc/}/build.sh 2> /dev/null)
|
ls ${TERMUX_SCRIPTDIR}/*/${PKG}/build.sh 2> /dev/null)
|
||||||
if [ -z "$PKG_DIR" ]; then
|
if [ -n "$PKG_DIR" ]; then
|
||||||
termux_error_exit "Could not find build.sh file for package '${PKG}'"
|
read -r DEP_ARCH DEP_VERSION DEP_VERSION_PAC _ < <(termux_extract_dep_info $PKG "${PKG_DIR/'/build.sh'/}")
|
||||||
|
if termux_package__is_package_version_built "$PKG" "$DEP_VERSION"; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
local PKG_DIR_SPLIT=(${PKG_DIR//// })
|
|
||||||
|
|
||||||
local REPO_NAME=""
|
[ ! "$TERMUX_QUIET_BUILD" = "true" ] && echo "Installing temporary '${PKG}' for the CGCT tool environment."
|
||||||
local LIST_PACKAGES_DIRECTORIES=(${TERMUX_PACKAGES_DIRECTORIES})
|
|
||||||
for idx in ${!LIST_PACKAGES_DIRECTORIES[@]}; do
|
local PREFIX_TMP_GLIBC="data/data/com.termux/files/usr/glibc"
|
||||||
if [ "${LIST_PACKAGES_DIRECTORIES[$idx]}" = "${PKG_DIR_SPLIT[-3]}" ]; then
|
local PATH_TMP_GLIBC="$TERMUX_COMMON_CACHEDIR/temporary_glibc_for_cgct"
|
||||||
REPO_NAME=$(echo "${TERMUX_REPO_URL[$idx]}" | sed -e 's%https://%%g' -e 's%http://%%g' -e 's%/%-%g')
|
mkdir -p "$PATH_TMP_GLIBC"
|
||||||
if [ "$TERMUX_REPO_PKG_FORMAT" = "debian" ]; then
|
|
||||||
REPO_NAME+="-${TERMUX_REPO_DISTRIBUTION[$idx]}-Release"
|
local GPKG_LINK="https://service.termux-pacman.dev/gpkg/$TERMUX_ARCH"
|
||||||
elif [ "$TERMUX_REPO_PKG_FORMAT" = "pacman" ]; then
|
local GPKG_JSON="$PATH_TMP_GLIBC/gpkg-$TERMUX_ARCH.json"
|
||||||
REPO_NAME+="-json"
|
termux_download "$GPKG_LINK/gpkg.json" \
|
||||||
|
"$GPKG_JSON" \
|
||||||
|
SKIP_CHECKSUM
|
||||||
|
|
||||||
|
# Installing temporary glibc.
|
||||||
|
local GLIBC_PKG=$(jq -r '."glibc"."FILENAME"' "$GPKG_JSON")
|
||||||
|
if [ ! -f "$PATH_TMP_GLIBC/$GLIBC_PKG" ]; then
|
||||||
|
termux_download "$GPKG_LINK/$GLIBC_PKG" \
|
||||||
|
"$PATH_TMP_GLIBC/$GLIBC_PKG" \
|
||||||
|
$(jq -r '."glibc"."SHA256SUM"' "$GPKG_JSON")
|
||||||
fi
|
fi
|
||||||
break
|
|
||||||
|
[ ! "$TERMUX_QUIET_BUILD" = true ] && echo "extracting temporary $PKG..."
|
||||||
|
|
||||||
|
# Unpacking temporary glibc.
|
||||||
|
tar -xJf "$PATH_TMP_GLIBC/$GLIBC_PKG" -C "$PATH_TMP_GLIBC" data
|
||||||
|
if [ "$multilib_glibc" = "true" ]; then
|
||||||
|
# Installing `lib32`.
|
||||||
|
mkdir -p "$TERMUX__PREFIX__LIB_DIR"
|
||||||
|
cp -r "$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/lib/"* "$TERMUX__PREFIX__LIB_DIR"
|
||||||
|
# Installing `include32`.
|
||||||
|
mkdir -p "$TERMUX__PREFIX__INCLUDE_DIR"
|
||||||
|
local hpath
|
||||||
|
for hpath in $(find "$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/include" -type f); do
|
||||||
|
local h=$(sed "s|$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/include/||g" <<< "$hpath")
|
||||||
|
if [ -f "$TERMUX__PREFIX__BASE_INCLUDE_DIR/$h" ] && \
|
||||||
|
[ $(md5sum "$hpath" | awk '{printf $1}') = $(md5sum "$TERMUX__PREFIX__BASE_INCLUDE_DIR/$h" | awk '{printf $1}') ]; then
|
||||||
|
rm "$hpath"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
if [ -z "$REPO_NAME" ]; then
|
find "$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/include" -type d -empty -delete
|
||||||
termux_error_exit "Could not find '${PKG_DIR_SPLIT[-3]}' repo"
|
cp -r "$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/include/"* "$TERMUX__PREFIX__INCLUDE_DIR"
|
||||||
fi
|
# Installing dynamic linker in lib.
|
||||||
|
mkdir -p "$TERMUX__PREFIX__BASE_LIB_DIR"
|
||||||
read -r DEP_ARCH DEP_VERSION DEP_VERSION_PAC _ < <(termux_extract_dep_info $PKG "${PKG_DIR/'/build.sh'/}")
|
local ld_path=$(ls "$TERMUX__PREFIX__LIB_DIR"/ld-*)
|
||||||
|
ln -sr "${ld_path}" "$TERMUX__PREFIX__BASE_LIB_DIR/$(basename ${ld_path})"
|
||||||
if ! termux_package__is_package_version_built "$PKG" "$DEP_VERSION" && [ ! -f "$TERMUX_BUILT_PACKAGES_DIRECTORY/$PKG-for-cgct" ]; then
|
|
||||||
[ ! "$TERMUX_QUIET_BUILD" = "true" ] && echo "Installing '${PKG}' for the CGCT tool environment."
|
|
||||||
|
|
||||||
if [ ! -f "${TERMUX_COMMON_CACHEDIR}-${DEP_ARCH}/${REPO_NAME}" ]; then
|
|
||||||
TERMUX_INSTALL_DEPS=true termux_get_repo_files
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! TERMUX_WITHOUT_DEPVERSION_BINDING=true termux_download_deb_pac $PKG $DEP_ARCH $DEP_VERSION $DEP_VERSION_PAC; then
|
|
||||||
termux_error_exit "Failed to download package '${PKG}'"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[ ! "$TERMUX_QUIET_BUILD" = true ] && echo "extracting $PKG to $TERMUX_COMMON_CACHEDIR-$DEP_ARCH..."
|
|
||||||
(
|
|
||||||
cd $TERMUX_COMMON_CACHEDIR-$DEP_ARCH
|
|
||||||
if [ "$TERMUX_REPO_PKG_FORMAT" = "debian" ]; then
|
|
||||||
ar x ${PKG}_${DEP_VERSION}_${DEP_ARCH}.deb data.tar.xz
|
|
||||||
if tar -tf data.tar.xz|grep "^./$">/dev/null; then
|
|
||||||
tar -xf data.tar.xz --strip-components=1 \
|
|
||||||
--no-overwrite-dir -C /
|
|
||||||
else
|
else
|
||||||
tar -xf data.tar.xz --no-overwrite-dir -C /
|
# Complete installation of glibc components.
|
||||||
|
cp -r "$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/"* "$TERMUX_PREFIX"
|
||||||
fi
|
fi
|
||||||
elif [ "$TERMUX_REPO_PKG_FORMAT" = "pacman" ]; then
|
# It is necessary to reconfigure the paths in libs for correct
|
||||||
tar -xJf "${PKG}-${DEP_VERSION_PAC}-${DEP_ARCH}.pkg.tar.xz" \
|
# work of multilib-compilation and compilation in forked projects.
|
||||||
--anchored --exclude=.{BUILDINFO,PKGINFO,MTREE,INSTALL} \
|
grep -I -s -r -l "/$PREFIX_TMP_GLIBC/lib/" "$TERMUX__PREFIX__LIB_DIR" | xargs sed -i "s|/$PREFIX_TMP_GLIBC/lib/|$TERMUX__PREFIX__LIB_DIR/|g"
|
||||||
--force-local --no-overwrite-dir -C /
|
|
||||||
fi
|
# Marking the installation of temporary glibc.
|
||||||
)
|
rm -fr "$PATH_TMP_GLIBC/data"
|
||||||
mkdir -p $TERMUX_BUILT_PACKAGES_DIRECTORY
|
mkdir -p "$TERMUX_BUILT_PACKAGES_DIRECTORY"
|
||||||
echo "" > "$TERMUX_BUILT_PACKAGES_DIRECTORY/$PKG-for-cgct"
|
touch "$TERMUX_BUILT_PACKAGES_DIRECTORY/$PKG-temporary-for-cgct"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Sets up symbolic links to libgcc* libraries (from cgct) in the application environment
|
||||||
|
# to allow cgct to work properly, if necessary.
|
||||||
|
termux_set_links_to_libgcc_of_cgct() {
|
||||||
|
local libgcc_cgct
|
||||||
|
mkdir -p "$TERMUX__PREFIX__LIB_DIR"
|
||||||
|
for libgcc_cgct in $(find "$CGCT_DIR/$TERMUX_ARCH/lib" -maxdepth 1 -type f -name 'libgcc*'); do
|
||||||
|
if [ ! -e "$TERMUX__PREFIX__LIB_DIR/$(basename $libgcc_cgct)" ]; then
|
||||||
|
cp -r "$libgcc_cgct" "$TERMUX__PREFIX__LIB_DIR"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,3 +24,14 @@ termux_step_setup_toolchain() {
|
|||||||
termux_setup_toolchain_gnu
|
termux_setup_toolchain_gnu
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
termux_step_setup_multilib_environment() {
|
||||||
|
termux_conf_multilib_vars
|
||||||
|
if [ "$TERMUX_PKG_BUILD_ONLY_MULTILIB" = "false" ]; then
|
||||||
|
TERMUX_PKG_BUILDDIR="$TERMUX_PKG_MULTILIB_BUILDDIR"
|
||||||
|
fi
|
||||||
|
termux_step_setup_arch_variables
|
||||||
|
termux_step_setup_pkg_config_libdir
|
||||||
|
termux_step_setup_toolchain
|
||||||
|
cd $TERMUX_PKG_BUILDDIR
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ termux_step_setup_variables() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
|
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
|
||||||
export TERMUX_PREFIX="$TERMUX_PREFIX/glibc"
|
termux_build_props__set_termux_prefix_dir_and_sub_variables "$TERMUX__PREFIX_GLIBC"
|
||||||
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ] && [ "$TERMUX_PREFIX" != "$CGCT_DEFAULT_PREFIX" ]; then
|
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ] && [ "$TERMUX_PREFIX" != "$CGCT_DEFAULT_PREFIX" ]; then
|
||||||
export CGCT_APP_PREFIX="$TERMUX_PREFIX"
|
export CGCT_APP_PREFIX="$TERMUX_PREFIX"
|
||||||
fi
|
fi
|
||||||
@@ -54,7 +54,7 @@ termux_step_setup_variables() {
|
|||||||
|
|
||||||
if [ "$TERMUX_PACKAGE_LIBRARY" = "bionic" ]; then
|
if [ "$TERMUX_PACKAGE_LIBRARY" = "bionic" ]; then
|
||||||
# On-device builds without termux-exec are unsupported.
|
# On-device builds without termux-exec are unsupported.
|
||||||
if [[ ":${LD_PRELOAD:-}:" != ":${TERMUX_PREFIX}/lib/libtermux-exec"*".so:" ]]; then
|
if [[ ":${LD_PRELOAD:-}:" != ":${TERMUX__PREFIX__LIB_DIR}/libtermux-exec"*".so:" ]]; then
|
||||||
termux_error_exit "On-device builds without termux-exec are not supported."
|
termux_error_exit "On-device builds without termux-exec are not supported."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -65,23 +65,9 @@ termux_step_setup_variables() {
|
|||||||
# TERMUX_PKG_MAINTAINER should be explicitly set in build.sh of the package.
|
# TERMUX_PKG_MAINTAINER should be explicitly set in build.sh of the package.
|
||||||
: "${TERMUX_PKG_MAINTAINER:="default"}"
|
: "${TERMUX_PKG_MAINTAINER:="default"}"
|
||||||
|
|
||||||
if [ "x86_64" = "$TERMUX_ARCH" ] || [ "aarch64" = "$TERMUX_ARCH" ]; then
|
termux_step_setup_arch_variables
|
||||||
TERMUX_ARCH_BITS=64
|
TERMUX_REAL_ARCH="$TERMUX_ARCH"
|
||||||
else
|
TERMUX_REAL_HOST_PLATFORM="$TERMUX_HOST_PLATFORM"
|
||||||
TERMUX_ARCH_BITS=32
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$TERMUX_PACKAGE_LIBRARY" = "bionic" ]; then
|
|
||||||
TERMUX_HOST_PLATFORM="${TERMUX_ARCH}-linux-android"
|
|
||||||
else
|
|
||||||
TERMUX_HOST_PLATFORM="${TERMUX_ARCH}-linux-gnu"
|
|
||||||
fi
|
|
||||||
if [ "$TERMUX_ARCH" = "arm" ]; then
|
|
||||||
TERMUX_HOST_PLATFORM="${TERMUX_HOST_PLATFORM}eabi"
|
|
||||||
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
|
|
||||||
TERMUX_HOST_PLATFORM="${TERMUX_HOST_PLATFORM}hf"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$TERMUX_PACKAGE_LIBRARY" = "bionic" ]; then
|
if [ "$TERMUX_PACKAGE_LIBRARY" = "bionic" ]; then
|
||||||
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ] && [ ! -d "$NDK" ]; then
|
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ] && [ ! -d "$NDK" ]; then
|
||||||
@@ -136,6 +122,9 @@ termux_step_setup_variables() {
|
|||||||
TERMUX_PKG_BUILDDIR=$TERMUX_TOPDIR/$TERMUX_PKG_NAME/build
|
TERMUX_PKG_BUILDDIR=$TERMUX_TOPDIR/$TERMUX_PKG_NAME/build
|
||||||
TERMUX_PKG_BUILD_DEPENDS=""
|
TERMUX_PKG_BUILD_DEPENDS=""
|
||||||
TERMUX_PKG_BUILD_IN_SRC=false
|
TERMUX_PKG_BUILD_IN_SRC=false
|
||||||
|
TERMUX_PKG_BUILD_MULTILIB=false # multilib-compilation (compilation of 32-bit packages for 64-bit devices)
|
||||||
|
TERMUX_PKG_BUILD_ONLY_MULTILIB=false # Specifies that the package is compiled only via multilib-compilation. Enabled automatically if multilib-compilation is enabled and the `TERMUX_PKG_EXCLUDED_ARCHES` variable contains `arm` and `i686` values.
|
||||||
|
TERMUX_PKG_MULTILIB_BUILDDIR=$TERMUX_TOPDIR/$TERMUX_PKG_NAME/multilib-build # path to the assembled components of the 32-bit package if multilib-compilation is enabled
|
||||||
TERMUX_PKG_CONFFILES=""
|
TERMUX_PKG_CONFFILES=""
|
||||||
TERMUX_PKG_CONFLICTS="" # https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
|
TERMUX_PKG_CONFLICTS="" # https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
|
||||||
TERMUX_PKG_DEPENDS=""
|
TERMUX_PKG_DEPENDS=""
|
||||||
@@ -186,7 +175,7 @@ termux_step_setup_variables() {
|
|||||||
TERMUX_PKG_PYTHON_BUILD_DEPS="" # python modules to be installed via build-pip
|
TERMUX_PKG_PYTHON_BUILD_DEPS="" # python modules to be installed via build-pip
|
||||||
TERMUX_PKG_PYTHON_COMMON_DEPS="" # python modules to be installed via pip3 or build-pip
|
TERMUX_PKG_PYTHON_COMMON_DEPS="" # python modules to be installed via pip3 or build-pip
|
||||||
TERMUX_PYTHON_CROSSENV_PREFIX="$TERMUX_TOPDIR/python${TERMUX_PYTHON_VERSION}-crossenv-prefix-$TERMUX_PACKAGE_LIBRARY-$TERMUX_ARCH" # python modules dependency location (only used in non-devices)
|
TERMUX_PYTHON_CROSSENV_PREFIX="$TERMUX_TOPDIR/python${TERMUX_PYTHON_VERSION}-crossenv-prefix-$TERMUX_PACKAGE_LIBRARY-$TERMUX_ARCH" # python modules dependency location (only used in non-devices)
|
||||||
TERMUX_PYTHON_HOME=$TERMUX_PREFIX/lib/python${TERMUX_PYTHON_VERSION} # location of python libraries
|
TERMUX_PYTHON_HOME=$TERMUX__PREFIX__LIB_DIR/python${TERMUX_PYTHON_VERSION} # location of python libraries
|
||||||
TERMUX_PKG_MESON_NATIVE=false
|
TERMUX_PKG_MESON_NATIVE=false
|
||||||
TERMUX_PKG_CMAKE_CROSSCOMPILING=true
|
TERMUX_PKG_CMAKE_CROSSCOMPILING=true
|
||||||
TERMUX_PROOT_EXTRA_ENV_VARS="" # Extra environvent variables for proot command in termux_setup_proot
|
TERMUX_PROOT_EXTRA_ENV_VARS="" # Extra environvent variables for proot command in termux_setup_proot
|
||||||
@@ -194,3 +183,24 @@ termux_step_setup_variables() {
|
|||||||
unset CFLAGS CPPFLAGS LDFLAGS CXXFLAGS
|
unset CFLAGS CPPFLAGS LDFLAGS CXXFLAGS
|
||||||
unset TERMUX_MESON_ENABLE_SOVERSION # setenv to enable SOVERSION suffix for shared libs built with Meson
|
unset TERMUX_MESON_ENABLE_SOVERSION # setenv to enable SOVERSION suffix for shared libs built with Meson
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Setting architectural informations according to the `TERMUX_ARCH` variable
|
||||||
|
termux_step_setup_arch_variables() {
|
||||||
|
if [ "x86_64" = "$TERMUX_ARCH" ] || [ "aarch64" = "$TERMUX_ARCH" ]; then
|
||||||
|
TERMUX_ARCH_BITS=64
|
||||||
|
else
|
||||||
|
TERMUX_ARCH_BITS=32
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$TERMUX_PACKAGE_LIBRARY" = "bionic" ]; then
|
||||||
|
TERMUX_HOST_PLATFORM="${TERMUX_ARCH}-linux-android"
|
||||||
|
else
|
||||||
|
TERMUX_HOST_PLATFORM="${TERMUX_ARCH}-linux-gnu"
|
||||||
|
fi
|
||||||
|
if [ "$TERMUX_ARCH" = "arm" ]; then
|
||||||
|
TERMUX_HOST_PLATFORM="${TERMUX_HOST_PLATFORM}eabi"
|
||||||
|
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
|
||||||
|
TERMUX_HOST_PLATFORM="${TERMUX_HOST_PLATFORM}hf"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|||||||
@@ -62,16 +62,26 @@ termux_step_start_build() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$TERMUX_ON_DEVICE_BUILD" = "true" ] || [ "$TERMUX_ARCH_BITS" = "32" ]; then
|
||||||
|
TERMUX_PKG_BUILD_MULTILIB=false
|
||||||
|
fi
|
||||||
|
if [ "$TERMUX_PKG_BUILD_MULTILIB" = "true" ] && [ $(tr ' ' '\n' <<< "${TERMUX_PKG_EXCLUDED_ARCHES//,/}" | grep -c -e '^arm$' -e '^i686$') = "2" ]; then
|
||||||
|
TERMUX_PKG_BUILD_ONLY_MULTILIB=true
|
||||||
|
fi
|
||||||
|
|
||||||
echo "termux - building $TERMUX_PKG_NAME for arch $TERMUX_ARCH..."
|
echo "termux - building $TERMUX_PKG_NAME for arch $TERMUX_ARCH..."
|
||||||
test -t 1 && printf "\033]0;%s...\007" "$TERMUX_PKG_NAME"
|
test -t 1 && printf "\033]0;%s...\007" "$TERMUX_PKG_NAME"
|
||||||
|
|
||||||
# Avoid exporting PKG_CONFIG_LIBDIR until after termux_step_host_build.
|
# Avoid exporting PKG_CONFIG_LIBDIR until after termux_step_host_build.
|
||||||
export TERMUX_PKG_CONFIG_LIBDIR=$TERMUX_PREFIX/lib/pkgconfig:$TERMUX_PREFIX/share/pkgconfig
|
termux_step_setup_pkg_config_libdir
|
||||||
|
|
||||||
local TERMUX_PKG_BUILDDIR_ORIG="$TERMUX_PKG_BUILDDIR"
|
local TERMUX_PKG_BUILDDIR_ORIG="$TERMUX_PKG_BUILDDIR"
|
||||||
if [ "$TERMUX_PKG_BUILD_IN_SRC" = "true" ]; then
|
if [ "$TERMUX_PKG_BUILD_IN_SRC" = "true" ]; then
|
||||||
TERMUX_PKG_BUILDDIR=$TERMUX_PKG_SRCDIR
|
TERMUX_PKG_BUILDDIR=$TERMUX_PKG_SRCDIR
|
||||||
fi
|
fi
|
||||||
|
if [ "$TERMUX_PKG_BUILD_MULTILIB" = "true" ] && [ "$TERMUX_PKG_BUILD_ONLY_MULTILIB" = "false" ] && ([ "$TERMUX_PKG_BUILD_IN_SRC" = "true" ] || [ "$TERMUX_PKG_MULTILIB_BUILDDIR" = "$TERMUX_PKG_BUILDDIR" ]); then
|
||||||
|
termux_error_exit "It is not possible to build 32-bit and 64-bit versions of a package in one place, the build location must be separate."
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$TERMUX_CONTINUE_BUILD" == "true" ]; then
|
if [ "$TERMUX_CONTINUE_BUILD" == "true" ]; then
|
||||||
# If the package has a hostbuild step, verify that it has been built
|
# If the package has a hostbuild step, verify that it has been built
|
||||||
@@ -128,3 +138,7 @@ termux_step_start_build() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
termux_step_setup_pkg_config_libdir() {
|
||||||
|
export TERMUX_PKG_CONFIG_LIBDIR=$TERMUX__PREFIX__LIB_DIR/pkgconfig:$TERMUX_PREFIX/share/pkgconfig
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
termux_step_strip_elf_symbols() {
|
termux_step_strip_elf_symbols() {
|
||||||
termux_step_strip_elf_symbols__from_paths . \( -path "./bin/*" -o -path "./lib/*" -o -path "./libexec/*" \)
|
termux_step_strip_elf_symbols__from_paths . \( -path "./bin/*" -o -path "./lib/*" -o -path "./lib32/*" -o -path "./libexec/*" \)
|
||||||
}
|
}
|
||||||
|
|
||||||
termux_step_strip_elf_symbols__from_paths() {
|
termux_step_strip_elf_symbols__from_paths() {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
termux_setup_toolchain_23c() {
|
termux_setup_toolchain_23c() {
|
||||||
export CFLAGS=""
|
export CFLAGS=""
|
||||||
export CPPFLAGS=""
|
export CPPFLAGS=""
|
||||||
export LDFLAGS="-L${TERMUX_PREFIX}/lib"
|
export LDFLAGS="-L${TERMUX__PREFIX__LIB_DIR}"
|
||||||
|
|
||||||
export AS=$TERMUX_HOST_PLATFORM-clang
|
export AS=$TERMUX_HOST_PLATFORM-clang
|
||||||
export CC=$TERMUX_HOST_PLATFORM-clang
|
export CC=$TERMUX_HOST_PLATFORM-clang
|
||||||
@@ -31,7 +31,7 @@ termux_setup_toolchain_23c() {
|
|||||||
if [ $TERMUX_ARCH = arm ]; then
|
if [ $TERMUX_ARCH = arm ]; then
|
||||||
CCTERMUX_HOST_PLATFORM=armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL
|
CCTERMUX_HOST_PLATFORM=armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL
|
||||||
fi
|
fi
|
||||||
LDFLAGS+=" -Wl,-rpath=$TERMUX_PREFIX/lib"
|
LDFLAGS+=" -Wl,-rpath=$TERMUX__PREFIX__LIB_DIR"
|
||||||
else
|
else
|
||||||
export CC_FOR_BUILD=$CC
|
export CC_FOR_BUILD=$CC
|
||||||
# Some build scripts use environment variable 'PKG_CONFIG', so
|
# Some build scripts use environment variable 'PKG_CONFIG', so
|
||||||
@@ -83,8 +83,11 @@ termux_setup_toolchain_23c() {
|
|||||||
|
|
||||||
export CXXFLAGS="$CFLAGS"
|
export CXXFLAGS="$CFLAGS"
|
||||||
# set the proper header include order - first package includes, then prefix includes
|
# set the proper header include order - first package includes, then prefix includes
|
||||||
# -isystem${TERMUX_PREFIX}/include/c++/v1 is needed here for on-device building to work correctly
|
# -isystem${TERMUX__PREFIX__BASE_INCLUDE_DIR}/c++/v1 is needed here for on-device building to work correctly
|
||||||
export CPPFLAGS+=" -isystem${TERMUX_PREFIX}/include/c++/v1 -isystem${TERMUX_PREFIX}/include"
|
export CPPFLAGS+=" -isystem${TERMUX__PREFIX__BASE_INCLUDE_DIR}/c++/v1 -isystem${TERMUX__PREFIX__INCLUDE_DIR}"
|
||||||
|
if [ "$TERMUX_ARCH" != "$TERMUX_REAL_ARCH" ]; then
|
||||||
|
export CPPFLAGS+=" -isystem${TERMUX__PREFIX__BASE_INCLUDE_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
# If libandroid-support is declared as a dependency, link to it explicitly:
|
# If libandroid-support is declared as a dependency, link to it explicitly:
|
||||||
if [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libandroid-support/}" ]; then
|
if [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libandroid-support/}" ]; then
|
||||||
@@ -94,7 +97,10 @@ termux_setup_toolchain_23c() {
|
|||||||
export GOOS=android
|
export GOOS=android
|
||||||
export CGO_ENABLED=1
|
export CGO_ENABLED=1
|
||||||
export GO_LDFLAGS="-extldflags=-pie"
|
export GO_LDFLAGS="-extldflags=-pie"
|
||||||
export CGO_CFLAGS="-isystem$TERMUX_PREFIX/include"
|
export CGO_CFLAGS="-isystem${TERMUX__PREFIX__INCLUDE_DIR}"
|
||||||
|
if [ "$TERMUX_ARCH" != "$TERMUX_REAL_ARCH" ]; then
|
||||||
|
export CGO_CFLAGS+=" -isystem${TERMUX__PREFIX__BASE_INCLUDE_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
export CARGO_TARGET_NAME="${TERMUX_ARCH}-linux-android"
|
export CARGO_TARGET_NAME="${TERMUX_ARCH}-linux-android"
|
||||||
if [[ "${TERMUX_ARCH}" == "arm" ]]; then
|
if [[ "${TERMUX_ARCH}" == "arm" ]]; then
|
||||||
@@ -102,7 +108,7 @@ termux_setup_toolchain_23c() {
|
|||||||
fi
|
fi
|
||||||
local env_host="${CARGO_TARGET_NAME//-/_}"
|
local env_host="${CARGO_TARGET_NAME//-/_}"
|
||||||
export CARGO_TARGET_${env_host@U}_LINKER="${CC}"
|
export CARGO_TARGET_${env_host@U}_LINKER="${CC}"
|
||||||
export CARGO_TARGET_${env_host@U}_RUSTFLAGS="-L${TERMUX_PREFIX}/lib -C link-arg=-Wl,-rpath=${TERMUX_PREFIX}/lib -C link-arg=-Wl,--enable-new-dtags"
|
export CARGO_TARGET_${env_host@U}_RUSTFLAGS="-L${TERMUX__PREFIX__LIB_DIR} -C link-arg=-Wl,-rpath=${TERMUX__PREFIX__LIB_DIR} -C link-arg=-Wl,--enable-new-dtags"
|
||||||
export CFLAGS_${env_host}="${CPPFLAGS} ${CFLAGS}"
|
export CFLAGS_${env_host}="${CPPFLAGS} ${CFLAGS}"
|
||||||
export CC_x86_64_unknown_linux_gnu="gcc"
|
export CC_x86_64_unknown_linux_gnu="gcc"
|
||||||
export CFLAGS_x86_64_unknown_linux_gnu="-O2"
|
export CFLAGS_x86_64_unknown_linux_gnu="-O2"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
termux_setup_toolchain_27c() {
|
termux_setup_toolchain_27c() {
|
||||||
export CFLAGS=""
|
export CFLAGS=""
|
||||||
export CPPFLAGS=""
|
export CPPFLAGS=""
|
||||||
export LDFLAGS="-L${TERMUX_PREFIX}/lib"
|
export LDFLAGS="-L${TERMUX__PREFIX__LIB_DIR}"
|
||||||
|
|
||||||
export AS=$TERMUX_HOST_PLATFORM-clang
|
export AS=$TERMUX_HOST_PLATFORM-clang
|
||||||
export CC=$TERMUX_HOST_PLATFORM-clang
|
export CC=$TERMUX_HOST_PLATFORM-clang
|
||||||
@@ -31,7 +31,7 @@ termux_setup_toolchain_27c() {
|
|||||||
if [ $TERMUX_ARCH = arm ]; then
|
if [ $TERMUX_ARCH = arm ]; then
|
||||||
CCTERMUX_HOST_PLATFORM=armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL
|
CCTERMUX_HOST_PLATFORM=armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL
|
||||||
fi
|
fi
|
||||||
LDFLAGS+=" -Wl,-rpath=$TERMUX_PREFIX/lib"
|
LDFLAGS+=" -Wl,-rpath=$TERMUX__PREFIX__LIB_DIR"
|
||||||
else
|
else
|
||||||
export CC_FOR_BUILD=$CC
|
export CC_FOR_BUILD=$CC
|
||||||
# Some build scripts use environment variable 'PKG_CONFIG', so
|
# Some build scripts use environment variable 'PKG_CONFIG', so
|
||||||
@@ -83,8 +83,11 @@ termux_setup_toolchain_27c() {
|
|||||||
|
|
||||||
export CXXFLAGS="$CFLAGS"
|
export CXXFLAGS="$CFLAGS"
|
||||||
# set the proper header include order - first package includes, then prefix includes
|
# set the proper header include order - first package includes, then prefix includes
|
||||||
# -isystem${TERMUX_PREFIX}/include/c++/v1 is needed here for on-device building to work correctly
|
# -isystem${TERMUX__PREFIX__BASE_INCLUDE_DIR}/c++/v1 is needed here for on-device building to work correctly
|
||||||
export CPPFLAGS+=" -isystem${TERMUX_PREFIX}/include/c++/v1 -isystem${TERMUX_PREFIX}/include"
|
export CPPFLAGS+=" -isystem${TERMUX__PREFIX__BASE_INCLUDE_DIR}/c++/v1 -isystem${TERMUX__PREFIX__INCLUDE_DIR}"
|
||||||
|
if [ "$TERMUX_ARCH" != "$TERMUX_REAL_ARCH" ]; then
|
||||||
|
export CPPFLAGS+=" -isystem${TERMUX__PREFIX__BASE_INCLUDE_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
# If libandroid-support is declared as a dependency, link to it explicitly:
|
# If libandroid-support is declared as a dependency, link to it explicitly:
|
||||||
if [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libandroid-support/}" ]; then
|
if [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libandroid-support/}" ]; then
|
||||||
@@ -95,7 +98,10 @@ termux_setup_toolchain_27c() {
|
|||||||
export CGO_ENABLED=1
|
export CGO_ENABLED=1
|
||||||
export GO_LDFLAGS="-extldflags=-pie"
|
export GO_LDFLAGS="-extldflags=-pie"
|
||||||
export CGO_LDFLAGS="${LDFLAGS/ -Wl,-z,relro,-z,now/}"
|
export CGO_LDFLAGS="${LDFLAGS/ -Wl,-z,relro,-z,now/}"
|
||||||
export CGO_CFLAGS="-isystem$TERMUX_PREFIX/include"
|
export CGO_CFLAGS="-isystem${TERMUX__PREFIX__INCLUDE_DIR}"
|
||||||
|
if [ "$TERMUX_ARCH" != "$TERMUX_REAL_ARCH" ]; then
|
||||||
|
export CGO_CFLAGS+=" -isystem${TERMUX__PREFIX__BASE_INCLUDE_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
export CARGO_TARGET_NAME="${TERMUX_ARCH}-linux-android"
|
export CARGO_TARGET_NAME="${TERMUX_ARCH}-linux-android"
|
||||||
if [[ "${TERMUX_ARCH}" == "arm" ]]; then
|
if [[ "${TERMUX_ARCH}" == "arm" ]]; then
|
||||||
@@ -103,7 +109,7 @@ termux_setup_toolchain_27c() {
|
|||||||
fi
|
fi
|
||||||
local env_host="${CARGO_TARGET_NAME//-/_}"
|
local env_host="${CARGO_TARGET_NAME//-/_}"
|
||||||
export CARGO_TARGET_${env_host@U}_LINKER="${CC}"
|
export CARGO_TARGET_${env_host@U}_LINKER="${CC}"
|
||||||
export CARGO_TARGET_${env_host@U}_RUSTFLAGS="-L${TERMUX_PREFIX}/lib -C link-arg=-Wl,-rpath=${TERMUX_PREFIX}/lib -C link-arg=-Wl,--enable-new-dtags"
|
export CARGO_TARGET_${env_host@U}_RUSTFLAGS="-L${TERMUX__PREFIX__LIB_DIR} -C link-arg=-Wl,-rpath=${TERMUX__PREFIX__LIB_DIR} -C link-arg=-Wl,--enable-new-dtags"
|
||||||
export CFLAGS_${env_host}="${CPPFLAGS} ${CFLAGS}"
|
export CFLAGS_${env_host}="${CPPFLAGS} ${CFLAGS}"
|
||||||
export CC_x86_64_unknown_linux_gnu="gcc"
|
export CC_x86_64_unknown_linux_gnu="gcc"
|
||||||
export CFLAGS_x86_64_unknown_linux_gnu="-O2"
|
export CFLAGS_x86_64_unknown_linux_gnu="-O2"
|
||||||
|
|||||||
@@ -20,11 +20,17 @@ termux_setup_toolchain_gnu() {
|
|||||||
export CXXFILT=$TERMUX_HOST_PLATFORM-c++filt
|
export CXXFILT=$TERMUX_HOST_PLATFORM-c++filt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$TERMUX_PREFIX/lib/" ]; then
|
if [ ! -d "$TERMUX__PREFIX__LIB_DIR/" ]; then
|
||||||
termux_error_exit "glibc library directory was not found ('$TERMUX_PREFIX/lib/')"
|
termux_error_exit "glibc library directory was not found ('$TERMUX__PREFIX__LIB_DIR/')"
|
||||||
fi
|
fi
|
||||||
if [ ! -d "$TERMUX_PREFIX/include/" ]; then
|
if [ ! -f "$TERMUX__PREFIX__LIB_DIR/libgcc_s.so" ] && [ ! -f "$TERMUX__PREFIX__LIB_DIR/libgcc_s.so.1" ]; then
|
||||||
termux_error_exit "glibc header directory was not found ('$TERMUX_PREFIX/include/')"
|
termux_error_exit "libgcc not found, there is a risk of incorrect compiler operation"
|
||||||
|
fi
|
||||||
|
if [ ! -d "$TERMUX__PREFIX__BASE_INCLUDE_DIR/" ]; then
|
||||||
|
termux_error_exit "glibc base header directory was not found ('$TERMUX__PREFIX__BASE_INCLUDE_DIR/')"
|
||||||
|
fi
|
||||||
|
if [ "$TERMUX_ARCH" != "$TERMUX_REAL_ARCH" ] && [ ! -d "$TERMUX__PREFIX__MULTI_INCLUDE_DIR/" ]; then
|
||||||
|
termux_error_exit "glibc multi header directory was not found ('$TERMUX__PREFIX__MULTI_INCLUDE_DIR/')"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$TERMUX_ARCH" = "aarch64" ]; then
|
if [ "$TERMUX_ARCH" = "aarch64" ]; then
|
||||||
@@ -40,7 +46,7 @@ termux_setup_toolchain_gnu() {
|
|||||||
CFLAGS+=" -march=i686"
|
CFLAGS+=" -march=i686"
|
||||||
export DYNAMIC_LINKER="ld-linux.so.2"
|
export DYNAMIC_LINKER="ld-linux.so.2"
|
||||||
fi
|
fi
|
||||||
export PATH_DYNAMIC_LINKER="$TERMUX_PREFIX/lib/$DYNAMIC_LINKER"
|
export PATH_DYNAMIC_LINKER="$TERMUX__PREFIX__BASE_LIB_DIR/$DYNAMIC_LINKER"
|
||||||
|
|
||||||
if [ ! -f "$PATH_DYNAMIC_LINKER" ]; then
|
if [ ! -f "$PATH_DYNAMIC_LINKER" ]; then
|
||||||
termux_error_exit "glibc dynamic linker was not found ('$PATH_DYNAMIC_LINKER')"
|
termux_error_exit "glibc dynamic linker was not found ('$PATH_DYNAMIC_LINKER')"
|
||||||
@@ -51,6 +57,12 @@ termux_setup_toolchain_gnu() {
|
|||||||
"x86_64"|"i686") CFLAGS+=" -mtune=generic -fcf-protection";;
|
"x86_64"|"i686") CFLAGS+=" -mtune=generic -fcf-protection";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
case "$TERMUX_ARCH" in
|
||||||
|
"aarch64") export LINUX_ARCH="arm64";;
|
||||||
|
"arm") export LINUX_ARCH="arm";;
|
||||||
|
"x86_64"|"i686") export LINUX_ARCH="x86";;
|
||||||
|
esac
|
||||||
|
|
||||||
export CCTERMUX_HOST_PLATFORM=$TERMUX_HOST_PLATFORM
|
export CCTERMUX_HOST_PLATFORM=$TERMUX_HOST_PLATFORM
|
||||||
|
|
||||||
export PKG_CONFIG=pkg-config
|
export PKG_CONFIG=pkg-config
|
||||||
|
|||||||
@@ -95,6 +95,10 @@ def parse_build_file_variable_bool(path, var):
|
|||||||
def add_prefix_glibc_to_pkgname(name):
|
def add_prefix_glibc_to_pkgname(name):
|
||||||
return name.replace("-static", "-glibc-static") if "static" == name.split("-")[-1] else name+"-glibc"
|
return name.replace("-static", "-glibc-static") if "static" == name.split("-")[-1] else name+"-glibc"
|
||||||
|
|
||||||
|
def has_prefix_glibc(pkgname):
|
||||||
|
pkgname = pkgname.split("-")
|
||||||
|
return "glibc" in pkgname or "glibc32" in pkgname
|
||||||
|
|
||||||
class TermuxPackage(object):
|
class TermuxPackage(object):
|
||||||
"A main package definition represented by a directory with a build.sh file."
|
"A main package definition represented by a directory with a build.sh file."
|
||||||
def __init__(self, dir_path, fast_build_mode):
|
def __init__(self, dir_path, fast_build_mode):
|
||||||
@@ -102,7 +106,7 @@ class TermuxPackage(object):
|
|||||||
self.fast_build_mode = fast_build_mode
|
self.fast_build_mode = fast_build_mode
|
||||||
self.name = os.path.basename(self.dir)
|
self.name = os.path.basename(self.dir)
|
||||||
self.pkgs_cache = []
|
self.pkgs_cache = []
|
||||||
if "gpkg" in self.dir.split("/")[-2].split("-") and "glibc" not in self.name.split("-"):
|
if "gpkg" in self.dir.split("/")[-2].split("-") and not has_prefix_glibc(self.name):
|
||||||
self.name = add_prefix_glibc_to_pkgname(self.name)
|
self.name = add_prefix_glibc_to_pkgname(self.name)
|
||||||
|
|
||||||
# search package build.sh
|
# search package build.sh
|
||||||
@@ -159,7 +163,7 @@ class TermuxPackage(object):
|
|||||||
if not self.fast_build_mode or self.dir == dir_root:
|
if not self.fast_build_mode or self.dir == dir_root:
|
||||||
self.deps.difference_update([subpkg.name for subpkg in self.subpkgs])
|
self.deps.difference_update([subpkg.name for subpkg in self.subpkgs])
|
||||||
for dependency_name in sorted(self.deps):
|
for dependency_name in sorted(self.deps):
|
||||||
if termux_global_library == "true" and termux_pkg_library == "glibc" and "glibc" not in dependency_name.split("-"):
|
if termux_global_library == "true" and termux_pkg_library == "glibc" and not has_prefix_glibc(dependency_name):
|
||||||
mod_dependency_name = add_prefix_glibc_to_pkgname(dependency_name)
|
mod_dependency_name = add_prefix_glibc_to_pkgname(dependency_name)
|
||||||
dependency_name = mod_dependency_name if mod_dependency_name in pkgs_map else dependency_name
|
dependency_name = mod_dependency_name if mod_dependency_name in pkgs_map else dependency_name
|
||||||
if dependency_name not in self.pkgs_cache:
|
if dependency_name not in self.pkgs_cache:
|
||||||
@@ -179,7 +183,7 @@ class TermuxSubPackage:
|
|||||||
raise Exception("SubPackages should have a parent")
|
raise Exception("SubPackages should have a parent")
|
||||||
|
|
||||||
self.name = os.path.basename(subpackage_file_path).split('.subpackage.sh')[0]
|
self.name = os.path.basename(subpackage_file_path).split('.subpackage.sh')[0]
|
||||||
if "gpkg" in subpackage_file_path.split("/")[-3].split("-") and "glibc" not in self.name.split("-"):
|
if "gpkg" in subpackage_file_path.split("/")[-3].split("-") and not has_prefix_glibc(self.name):
|
||||||
self.name = add_prefix_glibc_to_pkgname(self.name)
|
self.name = add_prefix_glibc_to_pkgname(self.name)
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.deps = set([parent.name])
|
self.deps = set([parent.name])
|
||||||
@@ -339,7 +343,7 @@ def generate_target_buildorder(target_path, pkgs_map, fast_build_mode):
|
|||||||
target_path = target_path[:-1]
|
target_path = target_path[:-1]
|
||||||
|
|
||||||
package_name = os.path.basename(target_path)
|
package_name = os.path.basename(target_path)
|
||||||
if "gpkg" in target_path.split("/")[-2].split("-") and "glibc" not in package_name.split("-"):
|
if "gpkg" in target_path.split("/")[-2].split("-") and not has_prefix_glibc(package_name):
|
||||||
package_name += "-glibc"
|
package_name += "-glibc"
|
||||||
package = pkgs_map[package_name]
|
package = pkgs_map[package_name]
|
||||||
# Do not depend on any sub package
|
# Do not depend on any sub package
|
||||||
@@ -392,8 +396,8 @@ def main():
|
|||||||
|
|
||||||
for pkg in build_order:
|
for pkg in build_order:
|
||||||
pkg_name = pkg.name
|
pkg_name = pkg.name
|
||||||
if termux_global_library == "true" and termux_pkg_library == "glibc" and "glibc" not in pkg_name.split("-"):
|
if termux_global_library == "true" and termux_pkg_library == "glibc" and not has_prefix_glibc(pkg_name):
|
||||||
pkg_name = add_prefix_glibc_to_pkgname(pkgname)
|
pkg_name = add_prefix_glibc_to_pkgname(pkg_name)
|
||||||
print("%-30s %s" % (pkg_name, pkg.dir))
|
print("%-30s %s" % (pkg_name, pkg.dir))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -930,6 +930,15 @@ __termux_build_props__add_variables_validator_actions "TERMUX__PREFIX_SUBDIR" "a
|
|||||||
# on-device, so make sure a safe path is set if running `clean.sh` in
|
# on-device, so make sure a safe path is set if running `clean.sh` in
|
||||||
# Termux docker or host OS build environment.
|
# Termux docker or host OS build environment.
|
||||||
#
|
#
|
||||||
|
# At runtime, `TERMUX__PREFIX` may be overridden and set to
|
||||||
|
# `TERMUX__PREFIX_GLIBC` when compiling `glibc` packages by calling
|
||||||
|
# `termux_build_props__set_termux_prefix_dir_and_sub_variables` in
|
||||||
|
# `termux_step_setup_variables` if `TERMUX_PACKAGE_LIBRARY` equals `glibc`.
|
||||||
|
# However, `TERMUX__PREFIX_CLASSICAL` retains the original value
|
||||||
|
# set below for `TERMUX__PREFIX`.
|
||||||
|
# - https://github.com/termux/termux-packages/pull/16901
|
||||||
|
# - https://github.com/termux/termux-packages/pull/20864
|
||||||
|
#
|
||||||
# Default value: `/data/data/com.termux/files/usr`
|
# Default value: `/data/data/com.termux/files/usr`
|
||||||
##
|
##
|
||||||
[[ "$TERMUX__ROOTFS" != "/" ]] && TERMUX__PREFIX="$TERMUX__ROOTFS${TERMUX__PREFIX_SUBDIR:+"/$TERMUX__PREFIX_SUBDIR"}" || \
|
[[ "$TERMUX__ROOTFS" != "/" ]] && TERMUX__PREFIX="$TERMUX__ROOTFS${TERMUX__PREFIX_SUBDIR:+"/$TERMUX__PREFIX_SUBDIR"}" || \
|
||||||
@@ -942,14 +951,44 @@ else
|
|||||||
__termux_build_props__add_variables_validator_actions "TERMUX__PREFIX" " path_under_termux_rootfs"
|
__termux_build_props__add_variables_validator_actions "TERMUX__PREFIX" " path_under_termux_rootfs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TERMUX__PREFIX_CLASSICAL="$TERMUX__PREFIX"
|
|
||||||
|
|
||||||
# The `glibc` modifies `TERMUX_PREFIX` during compilation to append
|
|
||||||
# `/glibc` in `termux_step_setup_variables()`.
|
|
||||||
# - https://github.com/termux/termux-packages/pull/16901
|
|
||||||
TERMUX_PREFIX="$TERMUX__PREFIX" # Deprecated alternative variable for `TERMUX__PREFIX`
|
TERMUX_PREFIX="$TERMUX__PREFIX" # Deprecated alternative variable for `TERMUX__PREFIX`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# The original value for `TERMUX__PREFIX` set above, as `TERMUX__PREFIX`
|
||||||
|
# can be overridden at runtime, like when compiling `glibc` packages.
|
||||||
|
# Checks variable docs of `TERMUX__PREFIX` for more info.
|
||||||
|
#
|
||||||
|
# Default value: `/data/data/com.termux/files/usr`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX_CLASSICAL="$TERMUX__PREFIX"
|
||||||
TERMUX_PREFIX_CLASSICAL="$TERMUX__PREFIX" # Deprecated alternative variable for `TERMUX__PREFIX_CLASSICAL`
|
TERMUX_PREFIX_CLASSICAL="$TERMUX__PREFIX" # Deprecated alternative variable for `TERMUX__PREFIX_CLASSICAL`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux subdirectory path for `TERMUX__PREFIX_GLIBC`.
|
||||||
|
#
|
||||||
|
# Default value: `glibc`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX_GLIBC_SUBDIR="glibc"
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux `glibc` prefix directory path under `TERMUX__PREFIX`
|
||||||
|
# where all Termux `glibc` packages data is installed.
|
||||||
|
#
|
||||||
|
# **See Also:**
|
||||||
|
# - https://github.com/termux-pacman/glibc-packages
|
||||||
|
# - https://github.com/termux/glibc-packages (mirror)
|
||||||
|
#
|
||||||
|
# Default value: `/data/data/com.termux/files/usr/glibc`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX_GLIBC="$TERMUX__PREFIX/$TERMUX__PREFIX_GLIBC_SUBDIR"
|
||||||
|
__termux_build_props__add_variables_validator_actions "TERMUX__PREFIX_GLIBC" "safe_absolute_path invalid_termux_prefix_paths path_under_termux_rootfs"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# The max length for the `TERMUX__PREFIX` including the null '\0'
|
# The max length for the `TERMUX__PREFIX` including the null '\0'
|
||||||
# terminator.
|
# terminator.
|
||||||
@@ -962,24 +1001,6 @@ TERMUX_PREFIX_CLASSICAL="$TERMUX__PREFIX" # Deprecated alternative variable for
|
|||||||
TERMUX__PREFIX_DIR___MAX_LEN="$((TERMUX__ROOTFS_DIR___MAX_LEN + 1 + 3))" # "/usr" (90)
|
TERMUX__PREFIX_DIR___MAX_LEN="$((TERMUX__ROOTFS_DIR___MAX_LEN + 1 + 3))" # "/usr" (90)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
|
||||||
# Termux subdirectory path for `TERMUX__PREFIX__BIN_DIR`.
|
|
||||||
#
|
|
||||||
# Constant value: `bin`
|
|
||||||
##
|
|
||||||
TERMUX__PREFIX__BIN_SUBDIR="bin"
|
|
||||||
|
|
||||||
##
|
|
||||||
# Termux bin directory path under `TERMUX__PREFIX`.
|
|
||||||
#
|
|
||||||
# - https://github.com/termux/termux-packages/wiki/Termux-file-system-layout#termux-bin-directory
|
|
||||||
#
|
|
||||||
# Default value: `/data/data/com.termux/files/usr/bin`
|
|
||||||
##
|
|
||||||
TERMUX__PREFIX__BIN_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__BIN_SUBDIR"
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# The max length for the `TERMUX__BIN_DIR` including the null '\0' terminator.
|
# The max length for the `TERMUX__BIN_DIR` including the null '\0' terminator.
|
||||||
#
|
#
|
||||||
@@ -1019,6 +1040,59 @@ TERMUX__FILE_HEADER__BUFFER_SIZE="340"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# `termux_build_props__set_termux_prefix_dir_and_sub_variables` `<termux__prefix>` [`<skip_validation>`]
|
||||||
|
##
|
||||||
|
termux_build_props__set_termux_prefix_dir_and_sub_variables() {
|
||||||
|
|
||||||
|
local termux__prefix="${1:-}"
|
||||||
|
local skip_validation="${2:-}"
|
||||||
|
|
||||||
|
if [[ "$skip_validation" != "true" ]]; then
|
||||||
|
if [[ ! "$termux__prefix" =~ ${TERMUX_REGEX__SAFE_ABSOLUTE_PATH:?} ]] || \
|
||||||
|
[[ "$termux__prefix" =~ ${TERMUX_REGEX__SINGLE_OR_DOUBLE_DOT_CONTAINING_PATH:?} ]]; then
|
||||||
|
echo "The termux__prefix '$termux__prefix' passed to 'termux_build_props__set_termux_prefix_dir_and_sub_variables' with length ${#termux__prefix} is invalid." 1>&2
|
||||||
|
echo "The termux__prefix must match a safe absolute path that starts with a \`/\` with at least one \
|
||||||
|
characters under rootfs \`/\`. Duplicate or trailing path separators \`/\` are not allowed. \
|
||||||
|
The path component characters must be in the range \`[a-zA-Z0-9+,.=_-]\`. The path must not contain single \`/./\` or \
|
||||||
|
double \`/../\` dot components." 1>&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$termux__prefix" =~ ${TERMUX_REGEX__INVALID_TERMUX_PREFIX_PATHS:?} ]]; then
|
||||||
|
echo "The termux__prefix '$termux__prefix' passed to 'termux_build_props__set_termux_prefix_dir_and_sub_variables' with length ${#termux__prefix} is invalid." 1>&2
|
||||||
|
echo "The termux__prefix must not match one of the invalid paths \
|
||||||
|
in TERMUX_REGEX__INVALID_TERMUX_PREFIX_PATHS \`$TERMUX_REGEX__INVALID_TERMUX_PREFIX_PATHS\`." 1>&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Override `TERMUX__PREFIX`, but keep original value in `TERMUX__PREFIX_CLASSICAL`.
|
||||||
|
TERMUX__PREFIX="$termux__prefix"
|
||||||
|
TERMUX_PREFIX="$termux__prefix"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux subdirectory path for `TERMUX__PREFIX__BIN_DIR`.
|
||||||
|
#
|
||||||
|
# Constant value: `bin`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__BIN_SUBDIR="bin"
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux bin directory path under `TERMUX__PREFIX`.
|
||||||
|
#
|
||||||
|
# - https://github.com/termux/termux-packages/wiki/Termux-file-system-layout#termux-bin-directory
|
||||||
|
#
|
||||||
|
# Default value: `/data/data/com.termux/files/usr/bin`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__BIN_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__BIN_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux subdirectory path for `TERMUX__PREFIX__ETC_DIR`.
|
# Termux subdirectory path for `TERMUX__PREFIX__ETC_DIR`.
|
||||||
#
|
#
|
||||||
@@ -1034,36 +1108,85 @@ TERMUX__PREFIX__ETC_SUBDIR="etc"
|
|||||||
TERMUX__PREFIX__ETC_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__ETC_SUBDIR"
|
TERMUX__PREFIX__ETC_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__ETC_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux subdirectory path for `TERMUX__PREFIX__INCLUDE_DIR`.
|
# Termux subdirectory path for `TERMUX__PREFIX__BASE_INCLUDE_DIR`.
|
||||||
#
|
#
|
||||||
# Constant value: `include`
|
# Constant value: `include`
|
||||||
##
|
##
|
||||||
TERMUX__PREFIX__INCLUDE_SUBDIR="include"
|
TERMUX__PREFIX__BASE_INCLUDE_SUBDIR="include"
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux base include directory path under `TERMUX__PREFIX`.
|
||||||
|
#
|
||||||
|
# Default value: `/data/data/com.termux/files/usr/include`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__BASE_INCLUDE_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__BASE_INCLUDE_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux subdirectory path for `TERMUX__PREFIX__MULTI_INCLUDE_DIR`.
|
||||||
|
#
|
||||||
|
# Constant value: `include32`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__MULTI_INCLUDE_SUBDIR="include32"
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux multi include directory path under `TERMUX__PREFIX`.
|
||||||
|
#
|
||||||
|
# Default value: `/data/data/com.termux/files/usr/include32`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__MULTI_INCLUDE_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__MULTI_INCLUDE_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux include directory path under `TERMUX__PREFIX`.
|
# Termux include directory path under `TERMUX__PREFIX`.
|
||||||
#
|
#
|
||||||
# Default value: `/data/data/com.termux/files/usr/include`
|
# Default value: `/data/data/com.termux/files/usr/include` (`$TERMUX__PREFIX__BASE_INCLUDE_DIR`)
|
||||||
##
|
##
|
||||||
TERMUX__PREFIX__INCLUDE_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__INCLUDE_SUBDIR"
|
TERMUX__PREFIX__INCLUDE_DIR="$TERMUX__PREFIX__BASE_INCLUDE_DIR"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux subdirectory path for `TERMUX__PREFIX__LIB_DIR`.
|
# Termux subdirectory path for `TERMUX__PREFIX__BASE_LIB_DIR`.
|
||||||
#
|
#
|
||||||
# Constant value: `lib`
|
# Constant value: `lib`
|
||||||
##
|
##
|
||||||
TERMUX__PREFIX__LIB_SUBDIR="lib"
|
TERMUX__PREFIX__BASE_LIB_SUBDIR="lib"
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux base lib directory path under `TERMUX__PREFIX`.
|
||||||
|
#
|
||||||
|
# Default value: `/data/data/com.termux/files/usr/lib`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__BASE_LIB_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__BASE_LIB_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux subdirectory path for `TERMUX__PREFIX__MULTI_LIB_DIR`.
|
||||||
|
#
|
||||||
|
# Constant value: `lib32`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__MULTI_LIB_SUBDIR="lib32"
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux multi lib directory path under `TERMUX__PREFIX`.
|
||||||
|
#
|
||||||
|
# Default value: `/data/data/com.termux/files/usr/lib32`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__MULTI_LIB_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__MULTI_LIB_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux lib directory path under `TERMUX__PREFIX`.
|
# Termux lib directory path under `TERMUX__PREFIX`.
|
||||||
#
|
#
|
||||||
# - https://github.com/termux/termux-packages/wiki/Termux-file-system-layout#termux-lib-directory
|
# - https://github.com/termux/termux-packages/wiki/Termux-file-system-layout#termux-lib-directory
|
||||||
#
|
#
|
||||||
# Default value: `/data/data/com.termux/files/usr/lib`
|
# Default value: `/data/data/com.termux/files/usr/lib` (`$TERMUX__PREFIX__BASE_LIB_DIR`)
|
||||||
##
|
##
|
||||||
TERMUX__PREFIX__LIB_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__LIB_SUBDIR"
|
TERMUX__PREFIX__LIB_DIR="$TERMUX__PREFIX__BASE_LIB_DIR"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -1081,6 +1204,7 @@ TERMUX__PREFIX__LIBEXEC_SUBDIR="libexec"
|
|||||||
TERMUX__PREFIX__LIBEXEC_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__LIBEXEC_SUBDIR"
|
TERMUX__PREFIX__LIBEXEC_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__LIBEXEC_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux subdirectory path for `TERMUX__PREFIX__OPT_DIR`.
|
# Termux subdirectory path for `TERMUX__PREFIX__OPT_DIR`.
|
||||||
#
|
#
|
||||||
@@ -1096,6 +1220,7 @@ TERMUX__PREFIX__OPT_SUBDIR="opt"
|
|||||||
TERMUX__PREFIX__OPT_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__OPT_SUBDIR"
|
TERMUX__PREFIX__OPT_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__OPT_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux subdirectory path for `TERMUX__PREFIX__SHARE_DIR`.
|
# Termux subdirectory path for `TERMUX__PREFIX__SHARE_DIR`.
|
||||||
#
|
#
|
||||||
@@ -1111,6 +1236,36 @@ TERMUX__PREFIX__SHARE_SUBDIR="share"
|
|||||||
TERMUX__PREFIX__SHARE_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__SHARE_SUBDIR"
|
TERMUX__PREFIX__SHARE_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__SHARE_SUBDIR"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux subdirectory path for `TERMUX__PREFIX__VAR_DIR`.
|
||||||
|
#
|
||||||
|
# Constant value: `var`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__VAR_SUBDIR="var"
|
||||||
|
|
||||||
|
##
|
||||||
|
# Termux var directory path under `TERMUX__PREFIX`.
|
||||||
|
#
|
||||||
|
# Default value: `/data/data/com.termux/files/usr/var`
|
||||||
|
##
|
||||||
|
TERMUX__PREFIX__VAR_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__VAR_SUBDIR"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set Termux prefix sub variables to be under the original value of
|
||||||
|
# `TERMUX__PREFIX` set in `TERMUX__PREFIX_CLASSICAL` by default,
|
||||||
|
# which is set earlier in this file.
|
||||||
|
# Skip validation as it will be done below by `__termux_build_props__validate_variables`.
|
||||||
|
termux_build_props__set_termux_prefix_dir_and_sub_variables "$TERMUX__PREFIX" "true" || exit $?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# The following variables must always be under the original value of
|
||||||
|
# `TERMUX__PREFIX` set in `TERMUX__PREFIX_CLASSICAL` by default.
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux subdirectory path for `TERMUX__PREFIX__TMP_DIR`.
|
# Termux subdirectory path for `TERMUX__PREFIX__TMP_DIR`.
|
||||||
#
|
#
|
||||||
@@ -1137,21 +1292,6 @@ TERMUX__PREFIX__TMP_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__TMP_SUBDIR"
|
|||||||
TERMUX__PREFIX__TMP_DIR___MAX_LEN=94
|
TERMUX__PREFIX__TMP_DIR___MAX_LEN=94
|
||||||
|
|
||||||
|
|
||||||
##
|
|
||||||
# Termux subdirectory path for `TERMUX__PREFIX__VAR_DIR`.
|
|
||||||
#
|
|
||||||
# Constant value: `var`
|
|
||||||
##
|
|
||||||
TERMUX__PREFIX__VAR_SUBDIR="var"
|
|
||||||
|
|
||||||
##
|
|
||||||
# Termux var directory path under `TERMUX__PREFIX`.
|
|
||||||
#
|
|
||||||
# Default value: `/data/data/com.termux/files/usr/var`
|
|
||||||
##
|
|
||||||
TERMUX__PREFIX__VAR_DIR="$TERMUX__PREFIX/$TERMUX__PREFIX__VAR_SUBDIR"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Termux `profile.d` directory path under `TERMUX__PREFIX__ETC_DIR`.
|
# Termux `profile.d` directory path under `TERMUX__PREFIX__ETC_DIR`.
|
||||||
@@ -2379,6 +2519,24 @@ including the null \`\0\` terminator." 1>&2
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$TERMUX__PREFIX" == "$TERMUX__PREFIX_GLIBC" ]]; then
|
||||||
|
echo "The TERMUX__PREFIX '$TERMUX__PREFIX' or TERMUX__PREFIX_GLIBC '$TERMUX__PREFIX_GLIBC' is invalid." 1>&2
|
||||||
|
echo "The TERMUX__PREFIX must not be equal to TERMUX__PREFIX_GLIBC." 1>&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$TERMUX__PREFIX__BASE_LIB_DIR" == "$TERMUX__PREFIX__MULTI_LIB_DIR" ]]; then
|
||||||
|
echo "The TERMUX__PREFIX__BASE_LIB_DIR '$TERMUX__PREFIX__BASE_LIB_DIR' or TERMUX__PREFIX__MULTI_LIB_DIR '$TERMUX__PREFIX__MULTI_LIB_DIR' is invalid." 1>&2
|
||||||
|
echo "The TERMUX__PREFIX__BASE_LIB_DIR must not be equal to TERMUX__PREFIX__MULTI_LIB_DIR." 1>&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$TERMUX__PREFIX__BASE_INCLUDE_DIR" == "$TERMUX__PREFIX__MULTI_INCLUDE_DIR" ]]; then
|
||||||
|
echo "The TERMUX__PREFIX__BASE_INCLUDE_DIR '$TERMUX__PREFIX__BASE_INCLUDE_DIR' or TERMUX__PREFIX__MULTI_INCLUDE_DIR '$TERMUX__PREFIX__MULTI_INCLUDE_DIR' is invalid." 1>&2
|
||||||
|
echo "The TERMUX__PREFIX__BASE_INCLUDE_DIR must not be equal to TERMUX__PREFIX__MULTI_INCLUDE_DIR." 1>&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__termux_build_props__validate_variables || exit $?
|
__termux_build_props__validate_variables || exit $?
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ termux_package__is_package_version_built() {
|
|||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Check if the package name has a prefix called `glibc`.
|
# Check if the package name has a prefix called `glibc` or `glibc32`.
|
||||||
# .
|
# .
|
||||||
# .
|
# .
|
||||||
# **Parameters:**
|
# **Parameters:**
|
||||||
@@ -71,7 +71,7 @@ termux_package__is_package_version_built() {
|
|||||||
termux_package__is_package_name_have_glibc_prefix() {
|
termux_package__is_package_name_have_glibc_prefix() {
|
||||||
|
|
||||||
for __pkgname_part in ${1//-/ }; do
|
for __pkgname_part in ${1//-/ }; do
|
||||||
if [ "$__pkgname_part" = "glibc" ]; then
|
if [ "$__pkgname_part" = "glibc" ] || [ "$__pkgname_part" = "glibc32" ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user