diff --git a/build-package.sh b/build-package.sh index 5c03fe95d..71729414d 100755 --- a/build-package.sh +++ b/build-package.sh @@ -63,6 +63,10 @@ source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_gn.sh" # shellcheck source=scripts/build/setup/termux_setup_golang.sh source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_golang.sh" +# Utility function for python packages to setup a python crossenv. +# shellcheck source=scripts/build/setup/termux_setup_python_crossenv.sh +source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_python_crossenv.sh" + # Utility function for rust-using packages to setup a rust toolchain. # shellcheck source=scripts/build/setup/termux_setup_rust.sh source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_rust.sh" diff --git a/scripts/build/setup/termux_setup_python_crossenv.sh b/scripts/build/setup/termux_setup_python_crossenv.sh new file mode 100644 index 000000000..45fe0bd03 --- /dev/null +++ b/scripts/build/setup/termux_setup_python_crossenv.sh @@ -0,0 +1,26 @@ +termux_setup_python_crossenv() { + local _CROSSENV_VERSION=1.1.4 + local _CROSSENV_TAR=crossenv-$_CROSSENV_VERSION.tar.gz + local _CROSSENV_FOLDER + + if [ "${TERMUX_PACKAGES_OFFLINE-false}" = "true" ]; then + _CROSSENV_FOLDER=${TERMUX_SCRIPTDIR}/build-tools/crossenv-${_CROSSENV_VERSION} + else + _CROSSENV_FOLDER=${TERMUX_COMMON_CACHEDIR}/crossenv-${_CROSSENV_VERSION} + fi + export TERMUX_PYTHON_CROSSENV_SRCDIR=$_CROSSENV_FOLDER + + if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then + if [ ! -d "$_CROSSENV_FOLDER" ]; then + termux_download \ + https://github.com/benfogle/crossenv/archive/refs/tags/v$_CROSSENV_VERSION.tar.gz \ + $TERMUX_PKG_TMPDIR/$_CROSSENV_TAR \ + c1b0bb088ebd924e0cddbf1e601a172dc65d1f1c5f400d10a2743e3bfb703b9f + + rm -Rf "$TERMUX_PKG_TMPDIR/crossenv-$_CROSSENV_VERSION" + tar xf $TERMUX_PKG_TMPDIR/$_CROSSENV_TAR -C $TERMUX_PKG_TMPDIR + mv "$TERMUX_PKG_TMPDIR/crossenv-$_CROSSENV_VERSION" \ + $_CROSSENV_FOLDER + fi + fi +} diff --git a/scripts/setup-offline-bundle.sh b/scripts/setup-offline-bundle.sh index 068a6ceba..c0946eb97 100755 --- a/scripts/setup-offline-bundle.sh +++ b/scripts/setup-offline-bundle.sh @@ -43,6 +43,9 @@ mkdir -p "$TERMUX_PKG_TMPDIR" (. "$TERMUX_SCRIPTDIR"/scripts/build/setup/termux_setup_protobuf.sh termux_setup_protobuf ) +(. "$TERMUX_SCRIPTDIR"/scripts/build/setup/termux_setup_python_crossenv.sh + termux_setup_python_crossenv +) # Offline rust is not supported yet. #(. "$TERMUX_SCRIPTDIR"/scripts/build/setup/termux_setup_rust.sh # termux_setup_rust diff --git a/scripts/setup-ubuntu.sh b/scripts/setup-ubuntu.sh index c255957b6..c9d0fac56 100755 --- a/scripts/setup-ubuntu.sh +++ b/scripts/setup-ubuntu.sh @@ -60,6 +60,7 @@ PACKAGES+=" python3.9" PACKAGES+=" python3.10" PACKAGES+=" python3-pip" PACKAGES+=" python3-setuptools" +PACKAGES+=" python3.10-venv" # Needed by package bc. PACKAGES+=" ed"