diff --git a/build-package.sh b/build-package.sh index d96694a0aec..c234c26e6bf 100755 --- a/build-package.sh +++ b/build-package.sh @@ -149,6 +149,10 @@ source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_ldc.sh" # shellcheck source=scripts/build/setup/termux_setup_no_integrated_as.sh source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_no_integrated_as.sh" +# Utility function for setting up build-python for cross-compilation of Python and crossenv +# shellcheck source=scripts/build/setup/termux_setup_build_python.sh +source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_build_python.sh" + # Utility function for python packages to setup a python. # shellcheck source=scripts/build/setup/termux_setup_python_pip.sh source "$TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_python_pip.sh" diff --git a/packages/2ping/build.sh b/packages/2ping/build.sh index fac11bd2e49..fc523492d7a 100644 --- a/packages/2ping/build.sh +++ b/packages/2ping/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A bi-directional ping utility" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=4.5.1 -TERMUX_PKG_REVISION=4 +TERMUX_PKG_REVISION=5 TERMUX_PKG_SRCURL=https://github.com/rfinnie/2ping/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=0f85dc21be1266daccfbba903819ca8935ebdbe002b1e0305bfda258af44fdcd TERMUX_PKG_DEPENDS="python" diff --git a/packages/asciidoc/build.sh b/packages/asciidoc/build.sh index 4b1888bdf49..6c661b84d33 100644 --- a/packages/asciidoc/build.sh +++ b/packages/asciidoc/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Text document format for short documents, articles, book TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="10.2.1" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/asciidoc/asciidoc-py3/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=8e1fb9691952cc4f13357e1ef58172e566c5f88e3c44222d4a8693585f884507 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/at-spi2-core/build.sh b/packages/at-spi2-core/build.sh index 2aaded88922..e9e00249b8c 100644 --- a/packages/at-spi2-core/build.sh +++ b/packages/at-spi2-core/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Assistive Technology Service Provider Interface (AT-SPI) TERMUX_PKG_LICENSE="LGPL-2.1" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.58.3" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/at-spi2-core/${TERMUX_PKG_VERSION%.*}/at-spi2-core-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=b0fabea6c9742eda8c9c675f9b8c1d1babba1da82da03ea1103710233717c1b0 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/blueprint-compiler/build.sh b/packages/blueprint-compiler/build.sh index 7466b8e99a3..08bbb895693 100644 --- a/packages/blueprint-compiler/build.sh +++ b/packages/blueprint-compiler/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Markup language for GTK user interfaces" TERMUX_PKG_LICENSE="LGPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.20.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/blueprint-compiler/${TERMUX_PKG_VERSION%.*}/blueprint-compiler-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=ec786d66f583e8296c845f1f82834d27b369f39d55a6380b34880493e22db382 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/boost/build.sh b/packages/boost/build.sh index e66d4ece94c..f9ab4636e35 100644 --- a/packages/boost/build.sh +++ b/packages/boost/build.sh @@ -5,11 +5,15 @@ TERMUX_PKG_MAINTAINER="@termux" # Never forget to always bump revision of reverse dependencies and rebuild them # when bumping version. TERMUX_PKG_VERSION="1:1.90.0" +TERMUX_PKG_REVISION=1 _VERSION="${TERMUX_PKG_VERSION:2}" TERMUX_PKG_SRCURL="https://archives.boost.io/release/${_VERSION}/source/boost_${_VERSION//./_}.tar.bz2" TERMUX_PKG_SHA256=49551aff3b22cbc5c5a9ed3dbc92f0e23ea50a0f7325b0d198b705e8ee3fc305 TERMUX_PKG_AUTO_UPDATE=false TERMUX_PKG_DEPENDS="libc++, libbz2, libiconv, liblzma, zlib, libandroid-wordexp" +# Although python is a build dependency, boost needs to be rebuilt when major +# versions of python are updated to ensure that CMake's find_package detects +# Boost.Python as python version is hardcoded into it TERMUX_PKG_BUILD_DEPENDS="python" TERMUX_PKG_BREAKS="libboost-python (<= 1.65.1-2), boost-dev" TERMUX_PKG_REPLACES="libboost-python (<= 1.65.1-2), boost-dev" diff --git a/packages/borgbackup/build.sh b/packages/borgbackup/build.sh index 3ec858747a1..3a92946dfe6 100644 --- a/packages/borgbackup/build.sh +++ b/packages/borgbackup/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Deduplicating and compressing backup program" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="Joshua Kahn " TERMUX_PKG_VERSION="1.4.3" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/borgbackup/borg/releases/download/${TERMUX_PKG_VERSION}/borgbackup-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=79bbfa745d1901d685973584bd2d16a350686ddd176f6a2244490fb01996441f TERMUX_PKG_DEPENDS="libacl, liblz4, openssl, python, python-pip, xxhash, zstd" @@ -11,12 +11,14 @@ TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="build, Cython, pkgconfig, setuptools, setup TERMUX_PKG_PYTHON_TARGET_DEPS="'msgpack==1.0.8', packaging" TERMUX_PKG_AUTO_UPDATE=true -termux_step_make() { - PYTHONPATH='' python -m build -w -n -x "$TERMUX_PKG_SRCDIR" +termux_step_make_install() { + cross-pip install --no-deps --prefix="$TERMUX_PREFIX" "$TERMUX_PKG_SRCDIR" } -termux_step_make_install() { - local _pyver="${TERMUX_PYTHON_VERSION//./}" - local _wheel="borgbackup-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-linux_${TERMUX_ARCH}.whl" - pip install --force-reinstall --no-deps --prefix="$TERMUX_PREFIX" "$TERMUX_PKG_SRCDIR/dist/${_wheel}" +termux_step_create_debscripts() { + cat <<- EOF > ./postinst + #!$TERMUX_PREFIX/bin/sh + echo "Installing dependencies through pip..." + pip3 install $TERMUX_PKG_PYTHON_TARGET_DEPS + EOF } diff --git a/packages/dbus-python/build.sh b/packages/dbus-python/build.sh index 19aa3f7c7d8..1b7a67360fa 100644 --- a/packages/dbus-python/build.sh +++ b/packages/dbus-python/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python bindings for D-Bus" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.4.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://gitlab.freedesktop.org/dbus/dbus-python/-/archive/dbus-python-${TERMUX_PKG_VERSION}/dbus-python-dbus-python-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=da4ee9bbb9eb901d463a7cc9f99dfdbe6c751c8b48b29b78d378985a3c9656ad TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/electrum/build.sh b/packages/electrum/build.sh index db31443395b..7f3cf435b15 100644 --- a/packages/electrum/build.sh +++ b/packages/electrum/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Electrum is a lightweight Bitcoin wallet" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="4.5.8" -TERMUX_PKG_REVISION=3 +TERMUX_PKG_REVISION=4 TERMUX_PKG_SRCURL=https://download.electrum.org/$TERMUX_PKG_VERSION/Electrum-$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=dd8595a138132dee87cee76ce760a1d622fc2fd65d3b6ac7df7e53b7fb6ea7e8 # The python dependency list should be compared to diff --git a/packages/fetchmail/build.sh b/packages/fetchmail/build.sh index 90c2d915421..a08129d353e 100644 --- a/packages/fetchmail/build.sh +++ b/packages/fetchmail/build.sh @@ -4,6 +4,7 @@ TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_LICENSE_FILE="COPYING" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="6.6.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://sourceforge.net/projects/fetchmail/files/branch_${TERMUX_PKG_VERSION:0:3}/fetchmail-$TERMUX_PKG_VERSION.tar.xz TERMUX_PKG_SHA256=a5109295ec3319e0e45edd009d2d977042a8326ab52c6a817a82fa987103e4f3 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/flang/build.sh b/packages/flang/build.sh index d4ec7a3df01..ef98fcaa968 100644 --- a/packages/flang/build.sh +++ b/packages/flang/build.sh @@ -4,6 +4,7 @@ TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_LICENSE_FILE="flang/LICENSE.TXT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=21.1.8 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=( "https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION}/llvm-project-${TERMUX_PKG_VERSION}.src.tar.xz" "https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION}/LLVM-${TERMUX_PKG_VERSION}-Linux-X64.tar.xz" diff --git a/packages/gobject-introspection/build.sh b/packages/gobject-introspection/build.sh index eab45c4a788..c7cd1fe80d6 100644 --- a/packages/gobject-introspection/build.sh +++ b/packages/gobject-introspection/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Uniform machine readable API" TERMUX_PKG_LICENSE="LGPL-2.0, GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.86.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/gobject-introspection/${TERMUX_PKG_VERSION%.*}/gobject-introspection-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=920d1a3fcedeadc32acff95c2e203b319039dd4b4a08dd1a2dfd283d19c0b9ae TERMUX_PKG_DEPENDS="glib, libffi" diff --git a/packages/gst-python/build.sh b/packages/gst-python/build.sh index b77e5824ac7..5f5bcf54c2c 100644 --- a/packages/gst-python/build.sh +++ b/packages/gst-python/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python bindings for GStreamer" TERMUX_PKG_LICENSE="LGPL-2.1" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.28.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-python/gst-python-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=d47cea95adb95ba10443ed7812c7c5fa0807aef43b98cd1c6d8fb9f9a86f7085 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/ledger/CMakeLists.diff b/packages/ledger/CMakeLists.diff deleted file mode 100644 index d0c9c08cc43..00000000000 --- a/packages/ledger/CMakeLists.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 30d97cb9..341e782e 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -335,7 +335,7 @@ if (USE_PYTHON) - $ "${CMAKE_BINARY_DIR}/${_ledger_python_module_name}") - install( - FILES "${CMAKE_BINARY_DIR}/${_ledger_python_module_name}" -- DESTINATION ${Python_SITEARCH}) -+ DESTINATION @TERMUX_PREFIX@/lib/python@PYTHON_VERSION@/site-packages/) - else() - message(WARNING "Python_SITEARCH not set. Will not install python module.") - endif() diff --git a/packages/ledger/build.sh b/packages/ledger/build.sh index 6acdadd9146..da1d867bfd2 100644 --- a/packages/ledger/build.sh +++ b/packages/ledger/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Powerful, double-entry accounting system" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.4.1" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL="https://github.com/ledger/ledger/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=1cf012cdc8445cab0efc445064ef9b2d3f46ed0165dae803c40fe3d2b23fdaad TERMUX_PKG_AUTO_UPDATE=true @@ -17,8 +17,6 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" " termux_step_pre_configure() { - sed $TERMUX_PKG_BUILDER_DIR/CMakeLists.diff \ - -e "s%@TERMUX_PREFIX@%${TERMUX_PREFIX}%g" \ - -e "s%@PYTHON_VERSION@%${TERMUX_PYTHON_VERSION}%g" \ - | patch --silent -p1 + termux_setup_python_pip + TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DPython3_EXECUTABLE=$(command -v cross-python)" } diff --git a/packages/libarrow-cpp/build.sh b/packages/libarrow-cpp/build.sh index db8ca40d5e9..8168e90c654 100644 --- a/packages/libarrow-cpp/build.sh +++ b/packages/libarrow-cpp/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="C++ libraries for Apache Arrow" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="23.0.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/apache/arrow/archive/refs/tags/apache-arrow-${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=9a9a057bba3aa7080abc2ba8e7a079effa74626a4f308ac56bfce035d31ef1ac TERMUX_PKG_AUTO_UPDATE=true @@ -57,6 +58,7 @@ termux_step_post_make_install() { TERMUX_PKG_BUILDDIR="$TERMUX_PKG_SRCDIR" cd "$TERMUX_PKG_BUILDDIR" + export PYARROW_CMAKE_GENERATOR=Ninja export PYARROW_CMAKE_OPTIONS=" -DCMAKE_PREFIX_PATH=$TERMUX_PREFIX/lib/cmake -DNUMPY_INCLUDE_DIRS=$TERMUX_PYTHON_HOME/site-packages/numpy/_core/include @@ -72,10 +74,10 @@ termux_step_post_make_install() { termux_setup_ninja # termux_step_make - PYTHONPATH='' python -m build -w -n -x "$TERMUX_PKG_SRCDIR" + python -m build -w -n -x "$TERMUX_PKG_SRCDIR" # termux_step_make_install local _pyver="${TERMUX_PYTHON_VERSION//./}" - local _wheel="pyarrow-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-linux_${TERMUX_ARCH}.whl" - pip install --no-deps --prefix="$TERMUX_PREFIX" "$TERMUX_PKG_SRCDIR/dist/${_wheel}" + local _wheel="pyarrow-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-android_${TERMUX_ARCH}.whl" + cross-pip install --no-deps --prefix="$TERMUX_PREFIX" "$TERMUX_PKG_SRCDIR/dist/${_wheel}" } diff --git a/packages/libarrow-cpp/python-pyarrow.subpackage.sh b/packages/libarrow-cpp/python-pyarrow.subpackage.sh index 68fbdf73f89..11802a8c17c 100644 --- a/packages/libarrow-cpp/python-pyarrow.subpackage.sh +++ b/packages/libarrow-cpp/python-pyarrow.subpackage.sh @@ -1,3 +1,3 @@ -TERMUX_SUBPKG_INCLUDE="lib/python3.12/site-packages/pyarrow*" +TERMUX_SUBPKG_INCLUDE="lib/python3*/site-packages/pyarrow*" TERMUX_SUBPKG_DESCRIPTION="Python bindings for Apache Arrow" TERMUX_SUBPKG_DEPENDS="python, python-numpy" diff --git a/packages/libllvm/build.sh b/packages/libllvm/build.sh index 52b123eb484..b123f9db0aa 100644 --- a/packages/libllvm/build.sh +++ b/packages/libllvm/build.sh @@ -5,6 +5,7 @@ TERMUX_PKG_LICENSE_FILE="llvm/LICENSE.TXT" TERMUX_PKG_MAINTAINER="@finagolfin" # Keep flang version and revision in sync when updating (enforced by check in termux_step_pre_configure). TERMUX_PKG_VERSION=21.1.8 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SHA256=4633a23617fa31a3ea51242586ea7fb1da7140e426bd62fc164261fe036aa142 TERMUX_PKG_AUTO_UPDATE=false TERMUX_PKG_SRCURL=https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION}/llvm-project-${TERMUX_PKG_VERSION}.src.tar.xz @@ -26,7 +27,6 @@ TERMUX_PKG_GROUPS="base-devel" # See https://llvm.org/docs/CMake.html: TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DANDROID_PLATFORM_LEVEL=$TERMUX_PKG_API_LEVEL --DPYTHON_EXECUTABLE=$(command -v "python${TERMUX_PYTHON_VERSION}") -DLLVM_ENABLE_PIC=ON -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_INCLUDE_TESTS=OFF diff --git a/packages/libplacebo/build.sh b/packages/libplacebo/build.sh index eaadcfdc9a2..11e1333e0d4 100644 --- a/packages/libplacebo/build.sh +++ b/packages/libplacebo/build.sh @@ -5,6 +5,7 @@ TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="7.360.0" TERMUX_PKG_SRCURL="https://code.videolan.org/videolan/libplacebo/-/archive/v${TERMUX_PKG_VERSION}/libplacebo-v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=7f4e182526b738805ff793717c67a256bc3f6bc10025017f0b10193f2c79abb9 +TERMUX_PKG_REVISION=1 TERMUX_PKG_DEPENDS="littlecms, glslang, python, vulkan-icd" TERMUX_PKG_BUILD_DEPENDS="libglvnd-dev, vulkan-headers" TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="glad2" diff --git a/packages/libplacebo/python-3.13-build.patch b/packages/libplacebo/python-3.13-build.patch new file mode 100644 index 00000000000..687587a6d2c --- /dev/null +++ b/packages/libplacebo/python-3.13-build.patch @@ -0,0 +1,28 @@ +From 12509c0f1ee8c22ae163017f0a5e7b8a9d983a17 Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +Date: Tue, 29 Jul 2025 11:42:35 +0200 +Subject: [PATCH] vulkan/utils_gen: fix for python 3.14 + +Python 3.14+ has added more type checking. This patch fixes usage + +Fixes: https://github.com/haasn/libplacebo/issues/335 + +Signed-off-by: Nicolas Chauvet +--- + src/vulkan/utils_gen.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/vulkan/utils_gen.py b/src/vulkan/utils_gen.py +index 9a97d35f3..9b803d82b 100644 +--- a/src/vulkan/utils_gen.py ++++ b/src/vulkan/utils_gen.py +@@ -202,7 +202,8 @@ def find_registry_xml(datadir): + if not xmlfile or xmlfile == '': + xmlfile = find_registry_xml(datadir) + +- registry = VkXML(ET.parse(xmlfile)) ++ tree = ET.parse(xmlfile) ++ registry = VkXML(tree.getroot()) + with open(outfile, 'w') as f: + f.write(TEMPLATE.render( + vkresults = get_vkenum(registry, 'VkResult'), diff --git a/packages/libplacebo/use-build-python-for-build.patch b/packages/libplacebo/use-build-python-for-build.patch new file mode 100644 index 00000000000..39dcf8518e1 --- /dev/null +++ b/packages/libplacebo/use-build-python-for-build.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index 661e1c5e..974b740f 100644 +--- a/meson.build ++++ b/meson.build +@@ -462,7 +462,7 @@ add_project_link_arguments(link_args, language: ['c', 'cpp']) + fs = import('fs') + libm = cc.find_library('m', required: false) + thirdparty = meson.project_source_root()/'3rdparty' +-python = import('python').find_installation() ++python = 'build-python' + python_env = environment() + python_env.append('PYTHONPATH', thirdparty/'jinja/src') + python_env.append('PYTHONPATH', thirdparty/'markupsafe/src') diff --git a/packages/libsearpc/build.sh b/packages/libsearpc/build.sh index 501b6ed5415..36f3de25bb8 100644 --- a/packages/libsearpc/build.sh +++ b/packages/libsearpc/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A simple C language RPC framework (mainly for seafile)" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=1:3.2.0 -TERMUX_PKG_REVISION=7 +TERMUX_PKG_REVISION=8 TERMUX_PKG_SRCURL=https://github.com/haiwen/libsearpc/archive/refs/tags/v${TERMUX_PKG_VERSION:2}.tar.gz TERMUX_PKG_SHA256=cd00197fcc40b45b1d5e892b2d08dfa5947f737e0d80f3ef26419334e75b0bff TERMUX_PKG_DEPENDS="glib, libjansson, python" @@ -15,5 +15,9 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" termux_step_post_get_source() { ./autogen.sh - export PYTHON="python${TERMUX_PYTHON_VERSION}" +} + +termux_step_pre_configure() { + termux_setup_python_pip + export PYTHON="cross-python" } diff --git a/packages/libtorrent-rasterbar/bindings-python-CMakeLists.txt.patch b/packages/libtorrent-rasterbar/bindings-python-CMakeLists.txt.patch index b3beeb8396c..b44db7d4e51 100644 --- a/packages/libtorrent-rasterbar/bindings-python-CMakeLists.txt.patch +++ b/packages/libtorrent-rasterbar/bindings-python-CMakeLists.txt.patch @@ -6,16 +6,7 @@ diff -u -r ../libtorrent-rasterbar-2.0.10/bindings/python/CMakeLists.txt ./bindi function(_get_compatible_python_versions _ret) if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 20) - list(APPEND _tmp 3.6 3.7 3.8 3.9 3.10 3.11) -+ list(APPEND _tmp 3.6 3.7 3.8 3.9 3.10 3.11 3.12) ++ list(APPEND _tmp 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13) endif() set(${_ret} ${_tmp} PARENT_SCOPE) endfunction() -@@ -95,7 +95,7 @@ - else() - execute_process( - COMMAND "${Python3_EXECUTABLE}" -c [=[ --import distutils.sysconfig -+from setuptools import distutils - print(distutils.sysconfig.get_python_lib(prefix='', plat_specific=True)) - ]=] - OUTPUT_VARIABLE _PYTHON3_SITE_ARCH diff --git a/packages/libtorrent-rasterbar/build.sh b/packages/libtorrent-rasterbar/build.sh index ad676aad197..8f2905ccec7 100644 --- a/packages/libtorrent-rasterbar/build.sh +++ b/packages/libtorrent-rasterbar/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A feature complete C++ bittorrent implementation focusin TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.0.11" -TERMUX_PKG_REVISION=5 +TERMUX_PKG_REVISION=6 TERMUX_PKG_SRCURL="https://github.com/arvidn/libtorrent/releases/download/v${TERMUX_PKG_VERSION}/libtorrent-rasterbar-${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=f0db58580f4f29ade6cc40fa4ba80e2c9a70c90265cd77332d3cdec37ecf1e6d TERMUX_PKG_AUTO_UPDATE=true @@ -16,3 +16,9 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -Dboost-python-module-name=python -Dpython-bindings=ON " + +termux_step_pre_configure() { + # We don't get build-python in path until termux_setup_python_pip is called in + # termux_step_get_dependencies_python + TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DPython3_EXECUTABLE=$(command -v build-python)" +} diff --git a/packages/libunbound/build.sh b/packages/libunbound/build.sh index 87fd9cd942e..523f2b6ff93 100644 --- a/packages/libunbound/build.sh +++ b/packages/libunbound/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A validating, recursive, caching DNS resolver" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.24.2" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://nlnetlabs.nl/downloads/unbound/unbound-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=44e7b53e008a6dcaec03032769a212b46ab5c23c105284aa05a4f3af78e59cdb TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/libxml2/build.sh b/packages/libxml2/build.sh index a9666a74c15..51b943c443c 100644 --- a/packages/libxml2/build.sh +++ b/packages/libxml2/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Library for parsing XML documents" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.15.1" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/libxml2/${TERMUX_PKG_VERSION%.*}/libxml2-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=c008bac08fd5c7b4a87f7b8a71f283fa581d80d80ff8d2efd3b26224c39bc54c TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/manim/build.sh b/packages/manim/build.sh index eb96f4fc4c9..c55207453e3 100644 --- a/packages/manim/build.sh +++ b/packages/manim/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="A community-maintained Python framework for creating mat TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="Nguyen Khanh @nguynkhn" TERMUX_PKG_VERSION="0.20.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/ManimCommunity/manim/archive/refs/tags/v$TERMUX_PKG_VERSION.tar.gz" TERMUX_PKG_SHA256=384791b838ae5a6f408dcf4eb86e7fe04957fd2910fb26038690457a44204caf TERMUX_PKG_DEPENDS="cmake, ffmpeg, libcairo, pango, xorgproto, python-numpy, python-pillow, python-pip, pycairo, python-scipy, python-skia-pathops" diff --git a/packages/matplotlib/build.sh b/packages/matplotlib/build.sh index b00658d0b41..fc9d9ad2d18 100644 --- a/packages/matplotlib/build.sh +++ b/packages/matplotlib/build.sh @@ -15,7 +15,7 @@ LICENSE/LICENSE_STIX LICENSE/LICENSE_YORICK" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.10.8" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/matplotlib/matplotlib/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=dbc50c7b15bb8d7dbe51a27a58322ed73f09291772d9e3184f03f11c576693f7 TERMUX_PKG_AUTO_UPDATE=true @@ -56,6 +56,6 @@ termux_step_make() { termux_step_make_install() { local _pyv="${TERMUX_PYTHON_VERSION/./}" - local _whl="matplotlib-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-linux_$TERMUX_ARCH.whl" + local _whl="matplotlib-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-android_$TERMUX_ARCH.whl" pip install --no-deps --prefix=$TERMUX_PREFIX --force-reinstall $TERMUX_PKG_SRCDIR/dist/$_whl } diff --git a/packages/nala/build.sh b/packages/nala/build.sh index b3399cd03d4..da25199204d 100644 --- a/packages/nala/build.sh +++ b/packages/nala/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Commandline frontend for the apt package manager" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.16.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://gitlab.com/volian/nala/-/archive/v${TERMUX_PKG_VERSION}/nala-v${TERMUX_PKG_VERSION}.tar.bz2 TERMUX_PKG_SHA256=49e384aa3b94597d09c61b7accc41d1cf10cb6beea85d4620c80c28d7cdc4d5f TERMUX_PKG_DEPENDS="python-apt, python-pip" diff --git a/packages/onnxruntime/build.sh b/packages/onnxruntime/build.sh index 599c33bbb6e..b3ead912564 100644 --- a/packages/onnxruntime/build.sh +++ b/packages/onnxruntime/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Cross-platform, high performance ML inferencing and trai TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.24.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=git+https://github.com/microsoft/onnxruntime TERMUX_PKG_DEPENDS="abseil-cpp, libc++, protobuf, libre2" TERMUX_PKG_BUILD_IN_SRC=true @@ -63,6 +64,6 @@ termux_step_make_install() { ln -sf libonnxruntime.pc "$TERMUX_PREFIX/lib/pkgconfig/onnxruntime.pc" local _pyver="${TERMUX_PYTHON_VERSION//./}" - local _wheel="onnxruntime-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-linux_${TERMUX_ARCH}.whl" - pip install --force-reinstall --no-deps --prefix="$TERMUX_PREFIX" "$TERMUX_PKG_SRCDIR/dist/${_wheel}" + local _wheel="onnxruntime-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-android_${TERMUX_ARCH}.whl" + pip install --no-deps --prefix="$TERMUX_PREFIX" "$TERMUX_PKG_SRCDIR/dist/${_wheel}" } diff --git a/packages/panda3d/build.sh b/packages/panda3d/build.sh index a602fa03ecf..ba495d6042e 100644 --- a/packages/panda3d/build.sh +++ b/packages/panda3d/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="A framework for 3D rendering and game development for Py TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.10.16" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/panda3d/panda3d/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=25d04b2b6ab2c45a0b0cc3ba7a01aa66aabc0e4473b2aa83038e1d61ce1ece2e TERMUX_PKG_AUTO_UPDATE=true @@ -18,7 +19,14 @@ termux_step_pre_configure() { } termux_step_make() { - python makepanda/makepanda.py --nothing + local PANDA_ARCH="${TERMUX_ARCH}" + if [[ "${TERMUX_ARCH}" == "i686" ]]; then + PANDA_ARCH="x86" + fi + python makepanda/makepanda.py \ + --arch "$PANDA_ARCH" \ + --nothing \ + --threads "${TERMUX_PKG_MAKE_PROCESSES}" } termux_step_make_install() { diff --git a/packages/panda3d/makepanda-fix-sys-platform-android-detection.patch b/packages/panda3d/makepanda-fix-sys-platform-android-detection.patch new file mode 100644 index 00000000000..b9dd5845ba5 --- /dev/null +++ b/packages/panda3d/makepanda-fix-sys-platform-android-detection.patch @@ -0,0 +1,54 @@ +Sourced from https://github.com/panda3d/panda3d/pull/1800/ +commit 586b92a4ab124a8fc5b2a1f4a985f9fe8057ddea +Author: Yaksh Bariya +Date: Mon Jan 12 07:03:37 2026 +0530 + + makepanda: fix for python >= 3.13 on android + + android is now a supported platform Python since Python 3.13. + Earlier logic for figuring out android is still kept to preserve + backwards compatibility with Python versions <= 3.12. + + Also have added a comment where we are monkeypatching sys.platform to + "android" to remove it once minimum python requirement is removed + + Found initially during Python bump for Termux (https://github.com/termux/termux-packages/pull/27739) + + Also seems like Pyright too hasn't caught up with this yet. So it needs + to be made aware as well + +diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py +index 1e32c11dd3..cfc19fb1ad 100644 +--- a/makepanda/makepandacore.py ++++ b/makepanda/makepandacore.py +@@ -284,7 +284,7 @@ def GetHost(): + return 'darwin' + elif sys.platform.startswith('linux'): + try: +- # Python seems to offer no built-in way to check this. ++ # Python versions before 3.13 reported android as "linux" + osname = subprocess.check_output(["uname", "-o"]) + if osname.strip().lower() == b'android': + return 'android' +@@ -294,6 +294,9 @@ def GetHost(): + return 'linux' + elif sys.platform.startswith('freebsd'): + return 'freebsd' ++ # Handle for Python >= 3.13 ++ elif sys.platform == 'android': ++ return 'android' + else: + exit('Unrecognized sys.platform: %s' % (sys.platform)) + +diff --git a/panda/src/android/site.py b/panda/src/android/site.py +index 7c8d22e207..ac04b2bf7c 100644 +--- a/panda/src/android/site.py ++++ b/panda/src/android/site.py +@@ -6,6 +6,7 @@ from importlib.machinery import ModuleSpec + + from importlib import _bootstrap_external + ++# This should not be needed once we bump the minimum python version requirement to 3.13 + sys.platform = "android" + + class AndroidExtensionFinder(MetaPathFinder): diff --git a/packages/panda3d/makepanda-fix-toolchain-detection.patch b/packages/panda3d/makepanda-fix-toolchain-detection.patch new file mode 100644 index 00000000000..bf4b4b1dc33 --- /dev/null +++ b/packages/panda3d/makepanda-fix-toolchain-detection.patch @@ -0,0 +1,55 @@ +--- a/makepanda/makepandacore.py ++++ b/makepanda/makepandacore.py +@@ -497,27 +497,36 @@ def GetCXX(): + else: + return os.environ.get('CXX', TOOLCHAIN_PREFIX + 'g++') + +-def GetStrip(): ++def _GetStrip(): + # Hack + if TARGET == 'android': + return TOOLCHAIN_PREFIX + 'strip' + else: + return 'strip' + +-def GetAR(): ++def GetStrip(): ++ return os.environ.get('STRIP', _GetStrip()) ++ ++def _GetAR(): + # Hack + if TARGET == 'android': + return TOOLCHAIN_PREFIX + 'ar' + else: + return 'ar' + +-def GetRanlib(): ++def GetAR(): ++ return os.environ.get('AR', _GetAR()) ++ ++def _GetRanlib(): + # Hack + if TARGET == 'android': + return TOOLCHAIN_PREFIX + 'ranlib' + else: + return 'ranlib' + ++def GetRanlib(): ++ return os.environ.get('RANLIB', _GetRanlib()) ++ + BISON = None + def GetBison(): + global BISON +@@ -3086,12 +3098,6 @@ def SetupBuildEnvironment(compiler): + + # Now extract the preprocessor's include directories. + cmd = GetCXX() + " -x c++ -v -E " + os.devnull +- if "ANDROID_NDK" in SDK: +- ndk_dir = SDK["ANDROID_NDK"].replace('\\', '/') +- cmd += ' -isystem %s/sysroot/usr/include' % (ndk_dir) +- cmd += ' -isystem %s/sysroot/usr/include/%s' % (ndk_dir, SDK["ANDROID_TRIPLE"]) +- else: +- cmd += sysroot_flag + + null = open(os.devnull, 'w') + handle = subprocess.Popen(cmd, stdout=null, stderr=subprocess.PIPE, shell=True) diff --git a/packages/panda3d/makepanda.py.patch b/packages/panda3d/makepanda.py.patch new file mode 100644 index 00000000000..16a64d92572 --- /dev/null +++ b/packages/panda3d/makepanda.py.patch @@ -0,0 +1,91 @@ +diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py +index ad6230f0ed..c1eb0538c1 100755 +--- a/makepanda/makepanda.py ++++ b/makepanda/makepanda.py +@@ -1257,7 +1257,6 @@ if (COMPILER=="GCC"): + LibName("GL", "-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib") + + if GetTarget() == 'android': +- LibName("ALWAYS", '-llog') + LibName("ANDROID", '-landroid') + LibName("JNIGRAPHICS", '-ljnigraphics') + +@@ -1584,10 +1583,6 @@ def CompileCxx(obj,src,opts): + if "SYSROOT" in SDK: + if GetTarget() != "android": + cmd += ' --sysroot=%s' % (SDK["SYSROOT"]) +- else: +- ndk_dir = SDK["ANDROID_NDK"].replace('\\', '/') +- cmd += ' -isystem %s/sysroot/usr/include' % (ndk_dir) +- cmd += ' -isystem %s/sysroot/usr/include/%s' % (ndk_dir, SDK["ANDROID_TRIPLE"]) + cmd += ' -no-canonical-prefixes' + + # Android-specific flags. +@@ -1596,35 +1591,7 @@ def CompileCxx(obj,src,opts): + if GetTarget() == "android": + # Most of the specific optimization flags here were + # just copied from the default Android Makefiles. +- if "ANDROID_API" in SDK: +- cmd += ' -D__ANDROID_API__=' + str(SDK["ANDROID_API"]) +- if "ANDROID_GCC_TOOLCHAIN" in SDK: +- cmd += ' -gcc-toolchain ' + SDK["ANDROID_GCC_TOOLCHAIN"].replace('\\', '/') + cmd += ' -ffunction-sections -funwind-tables' +- if arch == 'armv7a': +- cmd += ' -target armv7-none-linux-androideabi' +- cmd += ' -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16' +- cmd += ' -fno-integrated-as' +- elif arch == 'arm': +- cmd += ' -target armv5te-none-linux-androideabi' +- cmd += ' -march=armv5te -mtune=xscale -msoft-float' +- cmd += ' -fno-integrated-as' +- elif arch == 'aarch64': +- cmd += ' -target aarch64-none-linux-android' +- elif arch == 'mips': +- cmd += ' -target mipsel-none-linux-android' +- cmd += ' -mips32' +- elif arch == 'mips64': +- cmd += ' -target mips64el-none-linux-android' +- cmd += ' -fintegrated-as' +- elif arch == 'x86': +- cmd += ' -target i686-none-linux-android' +- cmd += ' -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32' +- cmd += ' -mstackrealign' +- elif arch == 'x86_64': +- cmd += ' -target x86_64-none-linux-android' +- cmd += ' -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel' +- + cmd += " -Wa,--noexecstack" + + # Do we want thumb or arm instructions? +@@ -2124,22 +2091,6 @@ def CompileLink(dll, obj, opts): + if "ANDROID_GCC_TOOLCHAIN" in SDK: + cmd += ' -gcc-toolchain ' + SDK["ANDROID_GCC_TOOLCHAIN"].replace('\\', '/') + cmd += " -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now" +- if arch == 'armv7a': +- cmd += ' -target armv7-none-linux-androideabi' +- cmd += " -march=armv7-a -Wl,--fix-cortex-a8" +- elif arch == 'arm': +- cmd += ' -target armv5te-none-linux-androideabi' +- elif arch == 'aarch64': +- cmd += ' -target aarch64-none-linux-android' +- elif arch == 'mips': +- cmd += ' -target mipsel-none-linux-android' +- cmd += ' -mips32' +- elif arch == 'mips64': +- cmd += ' -target mips64el-none-linux-android' +- elif arch == 'x86': +- cmd += ' -target i686-none-linux-android' +- elif arch == 'x86_64': +- cmd += ' -target x86_64-none-linux-android' + cmd += ' -lc -lm' + else: + cmd += " -pthread" +@@ -5546,7 +5497,7 @@ if (not RTDIST and not RUNTIME and PkgSkip("PVIEW")==0): + # DIRECTORY: panda/src/android/ + # + +-if (not RUNTIME and GetTarget() == 'android'): ++if (not RUNTIME and GetTarget() == 'android' and False): + OPTS=['DIR:panda/src/android'] + TargetAdd('org/panda3d/android/NativeIStream.class', opts=OPTS, input='NativeIStream.java') + TargetAdd('org/panda3d/android/NativeOStream.class', opts=OPTS, input='NativeOStream.java') diff --git a/packages/pybind11/build.sh b/packages/pybind11/build.sh index b4f529807be..6410ae34e98 100644 --- a/packages/pybind11/build.sh +++ b/packages/pybind11/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="A lightweight header-only library that exposes C++ types TERMUX_PKG_LICENSE="BSD" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.0.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/pybind/pybind11/archive/refs/tags/v${TERMUX_PKG_VERSION}/pybind11-${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=2f20a0af0b921815e0e169ea7fec63909869323581b89d7de1553468553f6a2d TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/pycairo/build.sh b/packages/pycairo/build.sh index 8699446c06a..16c33c7fa26 100644 --- a/packages/pycairo/build.sh +++ b/packages/pycairo/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python bindings for the cairo graphics library" TERMUX_PKG_LICENSE="LGPL-2.1" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.29.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/pygobject/pycairo/releases/download/v${TERMUX_PKG_VERSION}/pycairo-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=f3f7fde97325cae80224c09f12564ef58d0d0f655da0e3b040f5807bd5bd3142 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/pygobject/build.sh b/packages/pygobject/build.sh index 7a737f6f8b2..1c17853c8b8 100644 --- a/packages/pygobject/build.sh +++ b/packages/pygobject/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python package which provides bindings for GObject based TERMUX_PKG_LICENSE="LGPL-2.1" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.56.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/pygobject/${TERMUX_PKG_VERSION%.*}/pygobject-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=4fbb5bf47524e01026f8e309dd54233eb0f75f2281392c5bf0df5d9041cc7891 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-apsw/build.sh b/packages/python-apsw/build.sh index 044405c9f25..403c807898e 100644 --- a/packages/python-apsw/build.sh +++ b/packages/python-apsw/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Another Python SQLite Wrapper" TERMUX_PKG_LICENSE="ZLIB" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.51.2.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/rogerbinns/apsw/releases/download/${TERMUX_PKG_VERSION}/apsw-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=15b69c57358624d8fef1c37ecaa536691cbb39db824fd41a11021c2f3197a7fb TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-apt/build.sh b/packages/python-apt/build.sh index 9ff0f556bfc..990d5fb57ec 100644 --- a/packages/python-apt/build.sh +++ b/packages/python-apt/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python bindings for APT" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.1.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://ftp.debian.org/debian/pool/main/p/python-apt/python-apt_${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=daf46b0ed85061ccee64c3aa3004c695b33047f9f62f0de7863966c287731d5a TERMUX_PKG_DEPENDS="apt, libandroid-support, libc++, python" diff --git a/packages/python-bcrypt/build.sh b/packages/python-bcrypt/build.sh index ec74981290f..0a9aad977f1 100644 --- a/packages/python-bcrypt/build.sh +++ b/packages/python-bcrypt/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Acceptable password hashing for your software and your s TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="5.0.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://pypi.io/packages/source/b/bcrypt/bcrypt-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=f748f7c2d6fd375cc93d3fba7ef4a9e3a092421b8dbf34d8d4dc06be9492dfdd TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-brotli/build.sh b/packages/python-brotli/build.sh index 89f3e59ffb9..88e264b20b5 100644 --- a/packages/python-brotli/build.sh +++ b/packages/python-brotli/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="lossless compression algorithm and format (Python bindin TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.2.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/google/brotli/archive/refs/tags/v$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=816c96e8e8f193b40151dad7e8ff37b1221d019dbcb9c35cd3fadbfe6477dfec TERMUX_PKG_DEPENDS="python, python-pip" diff --git a/packages/python-cmake/build.sh b/packages/python-cmake/build.sh index b8f4317eeff..20ffc71a375 100644 --- a/packages/python-cmake/build.sh +++ b/packages/python-cmake/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python wrapper for CMake" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="4.2.3" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/scikit-build/cmake-python-distributions/archive/refs/tags/$TERMUX_PKG_VERSION.tar.gz" TERMUX_PKG_SHA256=6d563b85888e26789d1dbf0ecf1df142cabe6bf4bac9d134cadc0e638a3f2638 TERMUX_PKG_DEPENDS="cmake, cmake-curses-gui, python, python-pip" diff --git a/packages/python-contourpy/build.sh b/packages/python-contourpy/build.sh index 5fe717926b5..d45e080a3d0 100644 --- a/packages/python-contourpy/build.sh +++ b/packages/python-contourpy/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python library for calculating contours in 2D quadrilate TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.3.3" -TERMUX_PKG_REVISION=2 +TERMUX_PKG_REVISION=3 TERMUX_PKG_SRCURL=git+https://github.com/contourpy/contourpy TERMUX_PKG_DEPENDS="python, python-numpy, python-pip" TERMUX_PKG_BUILD_DEPENDS="pybind11" @@ -37,6 +37,6 @@ termux_step_make() { termux_step_make_install() { local _pyv="${TERMUX_PYTHON_VERSION/./}" - local _whl="contourpy-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-linux_$TERMUX_ARCH.whl" + local _whl="contourpy-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-android_$TERMUX_ARCH.whl" pip install --force-reinstall --no-deps --prefix=$TERMUX_PREFIX $TERMUX_PKG_SRCDIR/dist/$_whl } diff --git a/packages/python-cryptography/build.sh b/packages/python-cryptography/build.sh index 9cb76cab8e0..a3b8850a733 100644 --- a/packages/python-cryptography/build.sh +++ b/packages/python-cryptography/build.sh @@ -4,14 +4,15 @@ TERMUX_PKG_LICENSE="Apache-2.0, BSD 3-Clause" TERMUX_PKG_LICENSE_FILE="LICENSE, LICENSE.APACHE, LICENSE.BSD" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="46.0.5" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/pyca/cryptography/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=7571f0e09a6d6eb22168993f94d35867b4dcbd0d34224e0eb7b392b905b3f12f TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_DEPENDS="openssl, python, python-pip" TERMUX_PKG_BUILD_IN_SRC=true TERMUX_PKG_UPDATE_TAG_TYPE="newest-tag" -TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="wheel, maturin" -TERMUX_PKG_PYTHON_CROSS_BUILD_DEPS="'cffi>=1.12'" +TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="wheel" +TERMUX_PKG_PYTHON_CROSS_BUILD_DEPS="maturin, 'cffi>=1.12'" TERMUX_PKG_PYTHON_TARGET_DEPS="'cffi>=1.12'" termux_step_configure() { @@ -20,3 +21,14 @@ termux_step_configure() { export PYO3_CROSS_LIB_DIR="${TERMUX_PREFIX}/lib" export ANDROID_API_LEVEL="${TERMUX_PKG_API_LEVEL}" } + +termux_step_make_install() { + # Needed by maturin + # Seems to be needed as we are overriding clang binary name. + # maturin does not ask for this environment variable when using NDK + export ANDROID_API_LEVEL="$TERMUX_PKG_API_LEVEL" + # --no-build-isolation is needed to ensure that maturin is not built for + # cross-python and picked up for execution instead of maturin built for + # build-python + cross-pip install --no-build-isolation --no-deps . --prefix $TERMUX_PREFIX +} diff --git a/packages/python-greenlet/build.sh b/packages/python-greenlet/build.sh index 7fbe9bc123d..f16716545d2 100644 --- a/packages/python-greenlet/build.sh +++ b/packages/python-greenlet/build.sh @@ -5,6 +5,7 @@ TERMUX_PKG_LICENSE="custom" TERMUX_PKG_LICENSE_FILE="LICENSE, LICENSE.PSF" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.3.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/python-greenlet/greenlet/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=8fef0771bcf3bb4edb19fb6e997e127caa1ed4691b242080f1756ab1d1337d59 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-grpcio/build.sh b/packages/python-grpcio/build.sh index d575bbfd331..bad6af8fd4f 100644 --- a/packages/python-grpcio/build.sh +++ b/packages/python-grpcio/build.sh @@ -4,6 +4,7 @@ TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_SRCURL=git+https://github.com/grpc/grpc TERMUX_PKG_VERSION="1.78.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_UPDATE_TAG_TYPE="latest-release-tag" TERMUX_PKG_DEPENDS="abseil-cpp, c-ares, ca-certificates, libc++, libre2, openssl, python, python-pip, zlib" diff --git a/packages/python-lameenc/build.sh b/packages/python-lameenc/build.sh index bbe030f223a..8ed7cb728e7 100644 --- a/packages/python-lameenc/build.sh +++ b/packages/python-lameenc/build.sh @@ -3,38 +3,30 @@ TERMUX_PKG_DESCRIPTION="Python bindings around the LAME encoder" TERMUX_PKG_LICENSE="LGPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.8.1" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/chrisstaite/lameenc/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=3f1994d4b14680a186b6f2b92af4bff30b0e262d043774fe411ddf3481547750 TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_DEPENDS="libandroid-support, libmp3lame, python" -TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="setuptools-scm, wheel" +TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="build, setuptools-scm, wheel" TERMUX_PKG_BUILD_IN_SRC=true termux_step_pre_configure() { - rm -rf build dist -} - -termux_step_configure() { - : + rm -rf build dist CMakeLists.txt } termux_step_make() { # Set version for setuptools_scm export SETUPTOOLS_SCM_PRETEND_VERSION="${TERMUX_PKG_VERSION}" - python setup.py \ - --libdir=$TERMUX_PREFIX/lib \ - --incdir=$TERMUX_PREFIX/include/lame \ - bdist_wheel + cross-python -m build -w -x -o build \ + -C="--build-option=--libdir=$TERMUX_PREFIX/lib" \ + -C="--build-option=--incdir=$TERMUX_PREFIX/include/lame" } termux_step_make_install() { - local f - for f in dist/lameenc-${TERMUX_PKG_VERSION#*:}-*.whl; do - if [ -e "${f}" ]; then - pip install --force "${f}" --prefix $TERMUX_PREFIX - break - fi - done + local _pyv="${TERMUX_PYTHON_VERSION/./}" + local _whl="lameenc-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-android_$TERMUX_ARCH.whl" + + cross-pip install --no-deps --prefix=$TERMUX_PREFIX --force-reinstall $TERMUX_PKG_SRCDIR/build/$_whl } diff --git a/packages/python-lameenc/setup.py.patch b/packages/python-lameenc/setup.py.patch index e3fc6804b94..3b7b31561b9 100644 --- a/packages/python-lameenc/setup.py.patch +++ b/packages/python-lameenc/setup.py.patch @@ -1,6 +1,6 @@ ---- a/setup.py -+++ b/setup.py -@@ -37,7 +37,7 @@ +--- ./setup.py.orig 2026-01-12 14:55:23.555406629 +0000 ++++ ./setup.py 2026-01-12 14:56:24.571113791 +0000 +@@ -37,7 +35,7 @@ include_dirs=[incdir] if incdir else [], libraries=['libmp3lame'] if sys.platform == 'win32' else [], extra_objects= diff --git a/packages/python-libsass/build.sh b/packages/python-libsass/build.sh index 36cecd80ec7..a8dafb675a6 100644 --- a/packages/python-libsass/build.sh +++ b/packages/python-libsass/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A straightforward binding of libsass for Python" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.23.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/sass/libsass-python/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=4bff7819756f52f6e4592f03f205104d1ca431088d9452aed5042f89a36f9873 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-llvmlite/build.sh b/packages/python-llvmlite/build.sh index 00e946e6106..ac6c90678a4 100644 --- a/packages/python-llvmlite/build.sh +++ b/packages/python-llvmlite/build.sh @@ -8,7 +8,7 @@ TERMUX_PKG_VERSION=( "0.46.0" "20.1.8" ) -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=( "https://github.com/numba/llvmlite/archive/refs/tags/v${TERMUX_PKG_VERSION[0]}.tar.gz" "https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION[1]}/llvm-project-${TERMUX_PKG_VERSION[1]}.src.tar.xz" diff --git a/packages/python-lxml/build.sh b/packages/python-lxml/build.sh index 72dbf7ebc01..57f34624356 100644 --- a/packages/python-lxml/build.sh +++ b/packages/python-lxml/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python binding for the libxml2 and libxslt libraries" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="6.0.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/lxml/lxml/releases/download/lxml-$TERMUX_PKG_VERSION/lxml-$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62 TERMUX_PKG_DEPENDS="libxml2, libxslt, python, python-pip" diff --git a/packages/python-msgpack/build.sh b/packages/python-msgpack/build.sh index dc9f45e35d4..bc1629876f9 100644 --- a/packages/python-msgpack/build.sh +++ b/packages/python-msgpack/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="MessagePack serializer implementation for Python" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.1.2" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 # _cmsgpack.c is absent in https://github.com/msgpack/msgpack-python/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SRCURL=https://pypi.org/packages/source/m/msgpack/msgpack-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=3b60763c1373dd60f398488069bcdc703cd08a711477b5d480eecc9f9626f47e @@ -17,6 +17,6 @@ termux_step_make() { termux_step_make_install() { local _pyver="${TERMUX_PYTHON_VERSION//./}" - local _wheel="msgpack-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-linux_${TERMUX_ARCH}.whl" - pip install --force-reinstal --no-deps --prefix="$TERMUX_PREFIX" "$TERMUX_PKG_SRCDIR/dist/${_wheel}" + local _wheel="msgpack-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-android_${TERMUX_ARCH}.whl" + pip install --no-deps --prefix="$TERMUX_PREFIX" "$TERMUX_PKG_SRCDIR/dist/${_wheel}" } diff --git a/packages/python-numpy/build.sh b/packages/python-numpy/build.sh index 482f759ef2b..c32910f698c 100644 --- a/packages/python-numpy/build.sh +++ b/packages/python-numpy/build.sh @@ -4,7 +4,7 @@ TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" # Revbump revdeps after updating TERMUX_PKG_VERSION="2.2.5" -TERMUX_PKG_REVISION=3 +TERMUX_PKG_REVISION=4 TERMUX_PKG_SRCURL=git+https://github.com/numpy/numpy TERMUX_PKG_DEPENDS="libc++, libopenblas, python" TERMUX_PKG_AUTO_UPDATE=false @@ -73,6 +73,6 @@ termux_step_make() { termux_step_make_install() { local _pyv="${TERMUX_PYTHON_VERSION/./}" - local _whl="numpy-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-linux_$TERMUX_ARCH.whl" + local _whl="numpy-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-android_$TERMUX_ARCH.whl" pip install --no-deps --prefix=$TERMUX_PREFIX --force-reinstall $TERMUX_PKG_SRCDIR/dist/$_whl } diff --git a/packages/python-pillow/build.sh b/packages/python-pillow/build.sh index a17253664d2..e741926a265 100644 --- a/packages/python-pillow/build.sh +++ b/packages/python-pillow/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python Imaging Library" TERMUX_PKG_LICENSE="custom" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="12.1.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/python-pillow/Pillow/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=d29fefc0ba637833b59cafc7649e1237186741c31b210178b0a4e9cd9e01ffdf TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-pip/android-api-abi.patch b/packages/python-pip/android-api-abi.patch new file mode 100644 index 00000000000..9d82927a735 --- /dev/null +++ b/packages/python-pip/android-api-abi.patch @@ -0,0 +1,14 @@ +Allow installing without specifying abi version. Needed for crossenv specifically. +May not be needed for on-device, but let's just keep it just in case in case there is some psycho who is doing this already +diff --git a/src/pip/_vendor/packaging/tags.py b/src/pip/_vendor/packaging/tags.py +index 8522f59c4..ef55342fb 100644 +--- a/src/pip/_vendor/packaging/tags.py ++++ b/src/pip/_vendor/packaging/tags.py +@@ -563,6 +563,7 @@ def android_platforms( + # without major patching. Yield every API level from the maximum down to the + # minimum, inclusive. + min_api_level = 16 ++ yield f"android_{abi}" + for ver in range(api_level, min_api_level - 1, -1): + yield f"android_{ver}_{abi}" + diff --git a/packages/python-pycryptodomex/build.sh b/packages/python-pycryptodomex/build.sh index 4aea305005e..b7b1e4e6581 100644 --- a/packages/python-pycryptodomex/build.sh +++ b/packages/python-pycryptodomex/build.sh @@ -4,7 +4,7 @@ TERMUX_PKG_LICENSE="BSD 2-Clause, Public Domain" TERMUX_PKG_LICENSE_FILE="LICENSE.rst" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.23.0" -TERMUX_PKG_REVISION=2 +TERMUX_PKG_REVISION=3 TERMUX_PKG_SRCURL="https://github.com/Legrandin/pycryptodome/archive/refs/tags/v${TERMUX_PKG_VERSION}x.tar.gz" TERMUX_PKG_SHA256=d3e12d349f62a8c3bd2e7056e2eea925abcfcdd9e2b07bff091bcc05837ac869 TERMUX_PKG_DEPENDS="python, python-pip" diff --git a/packages/python-pynvim/build.sh b/packages/python-pynvim/build.sh index e02c949417f..cbf0c0bfaf2 100644 --- a/packages/python-pynvim/build.sh +++ b/packages/python-pynvim/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python client for Neovim" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.6.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/neovim/pynvim/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=6649d630ce4a94007fe69a8debb010c7b185057f36d61576d2542c90f3c8db99 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-sabyenc3/build.sh b/packages/python-sabyenc3/build.sh index 3e757aab59e..7585dc61ff6 100644 --- a/packages/python-sabyenc3/build.sh +++ b/packages/python-sabyenc3/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="C implementations of functions for use within SABnzbd" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="9.3.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/sabnzbd/sabctools/releases/download/v${TERMUX_PKG_VERSION}/sabctools-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=04a906e78b88426d58b0a92d957d17a847ccdec4944f59cdfe665dd127c7eeec TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-scipy/build.sh b/packages/python-scipy/build.sh index c5f4f6bb709..cacf5568ab5 100644 --- a/packages/python-scipy/build.sh +++ b/packages/python-scipy/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Fundamental algorithms for scientific computing in Pytho TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.17.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=git+https://github.com/scipy/scipy TERMUX_PKG_DEPENDS="libc++, libopenblas, python, python-numpy, python-pip" TERMUX_PKG_BUILD_DEPENDS="python-numpy-static, pybind11" @@ -64,6 +65,6 @@ termux_step_make() { termux_step_make_install() { local _pyv="${TERMUX_PYTHON_VERSION/./}" - local _whl="scipy-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-linux_$TERMUX_ARCH.whl" + local _whl="scipy-$TERMUX_PKG_VERSION-cp$_pyv-cp$_pyv-android_$TERMUX_ARCH.whl" pip install --force-reinstall --no-deps --prefix=$TERMUX_PREFIX $TERMUX_PKG_SRCDIR/dist/$_whl } diff --git a/packages/python-skia-pathops/build.sh b/packages/python-skia-pathops/build.sh index 7a5b75bf20a..090384ac858 100644 --- a/packages/python-skia-pathops/build.sh +++ b/packages/python-skia-pathops/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python bindings for the Skia library's Path Ops" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="Nguyen Khanh @nguynkhn" TERMUX_PKG_VERSION="0.9.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/fonttools/skia-pathops/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=4f696a24c83e5bf93b809cbe2a01e55810ec3b05bd88b54a0fdbdc16e2d40eaa TERMUX_PKG_DEPENDS="libc++, python, python-pip" diff --git a/packages/python-tflite-runtime/build.sh b/packages/python-tflite-runtime/build.sh index 9dd00a0ed31..f11ab4fe60d 100644 --- a/packages/python-tflite-runtime/build.sh +++ b/packages/python-tflite-runtime/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="TensorFlow Lite Python bindings" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.20.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=git+https://github.com/tensorflow/tensorflow TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_DEPENDS="python, python-numpy, python-pip" @@ -81,6 +81,6 @@ termux_step_make() { termux_step_make_install() { local _pyver="${TERMUX_PYTHON_VERSION//./}" - local _wheel="tflite_runtime-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-linux_${TERMUX_ARCH}.whl" + local _wheel="tflite_runtime-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-android_${TERMUX_ARCH}.whl" pip install --force-reinstall --no-deps --prefix="$TERMUX_PREFIX" "$TFLITE_BUILD_DIR/dist/${_wheel}" } diff --git a/packages/python-tldp/build.sh b/packages/python-tldp/build.sh index 58ddfb5df48..2e6c0e4449b 100644 --- a/packages/python-tldp/build.sh +++ b/packages/python-tldp/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Tools for publishing from TLDP sources" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.7.5 -TERMUX_PKG_REVISION=6 +TERMUX_PKG_REVISION=7 TERMUX_PKG_SRCURL=https://github.com/tLDP/python-tldp/archive/refs/tags/tldp-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=bae313095b877b4272ddccaabd70efcbc526e2c1036f63fb665ec7ce10c94cde TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-torch/build.sh b/packages/python-torch/build.sh index 72ca6d993ff..662ddf956d9 100644 --- a/packages/python-torch/build.sh +++ b/packages/python-torch/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Tensors and Dynamic neural networks in Python" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.10.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=git+https://github.com/pytorch/pytorch TERMUX_PKG_UPDATE_TAG_TYPE="latest-release-tag" TERMUX_PKG_DEPENDS="abseil-cpp, libc++, libopenblas, libprotobuf, python, python-numpy, python-pip" diff --git a/packages/python-torchaudio/build.sh b/packages/python-torchaudio/build.sh index 0ad26e45b6b..19e3b636381 100644 --- a/packages/python-torchaudio/build.sh +++ b/packages/python-torchaudio/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Data manipulation and transformation for audio signal pr TERMUX_PKG_LICENSE="BSD 2-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.10.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/pytorch/audio/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=d0d0d9575025eb85150356a0b0de75b553484838006af17a62470b52d59845d1 TERMUX_PKG_DEPENDS="libc++, python, python-pip, python-torch, python-torchcodec" diff --git a/packages/python-torchcodec/build.sh b/packages/python-torchcodec/build.sh index 8cd5a1c57e7..7e1c1c5e1be 100644 --- a/packages/python-torchcodec/build.sh +++ b/packages/python-torchcodec/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="PyTorch media decoding and encoding" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.10.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/pytorch/torchcodec/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=a970d3dd51f65ee12898397e54079bcd19c9d498cddfb661379721cfcc2c36e2 TERMUX_PKG_DEPENDS="ffmpeg, google-glog, libc++, python, python-pip, python-torch" diff --git a/packages/python-torchvision/build.sh b/packages/python-torchvision/build.sh index c22999fb26c..6fa551e007f 100644 --- a/packages/python-torchvision/build.sh +++ b/packages/python-torchvision/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Datasets, Transforms and Models specific to Computer Vis TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.25.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/pytorch/vision/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=a7ac1b3ab489d71f6e27edfad1e27616e4b8a9b1517e60fce4a950600d3510e8 TERMUX_PKG_DEPENDS="libc++, ffmpeg, python, python-numpy, python-pillow, python-pip, python-torch, libjpeg-turbo, libpng, libwebp, zlib" diff --git a/packages/python-xlib/build.sh b/packages/python-xlib/build.sh index f82d59251bd..161b6cc25eb 100644 --- a/packages/python-xlib/build.sh +++ b/packages/python-xlib/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="The Python X Library" TERMUX_PKG_LICENSE="LGPL-2.1" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.33 -TERMUX_PKG_REVISION=2 +TERMUX_PKG_REVISION=3 TERMUX_PKG_SRCURL=https://github.com/python-xlib/python-xlib/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=e10d1b49655800bffe0fbb5eb31eeef915a4421952ef006d468d53d34901f6f8 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/python-yt-dlp/build.sh b/packages/python-yt-dlp/build.sh index f09c11372cc..f0539012516 100644 --- a/packages/python-yt-dlp/build.sh +++ b/packages/python-yt-dlp/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="A youtube-dl fork with additional features and fixes" TERMUX_PKG_LICENSE="Unlicense" TERMUX_PKG_MAINTAINER="Joshua Kahn " TERMUX_PKG_VERSION="2026.02.21" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/yt-dlp/yt-dlp/archive/refs/tags/$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=ecbb3d617049f0d44ecbb94a6fdca601dc6abb97ea19e4cba2a8bcd635ceceda TERMUX_PKG_DEPENDS="libc++, libexpat, openssl, python, python-brotli, python-pip, python-pycryptodomex" diff --git a/packages/python/0001-fix-hardcoded-paths.patch b/packages/python/0001-fix-hardcoded-paths.patch index 16a7a683194..467e7a7bc97 100644 --- a/packages/python/0001-fix-hardcoded-paths.patch +++ b/packages/python/0001-fix-hardcoded-paths.patch @@ -1,26 +1,3 @@ ---- a/Lib/aifc.py -+++ b/Lib/aifc.py -@@ -920,7 +920,7 @@ - if __name__ == '__main__': - import sys - if not sys.argv[1:]: -- sys.argv.append('/usr/demos/data/audio/bach.aiff') -+ sys.argv.append('@TERMUX_PREFIX@/demos/data/audio/bach.aiff') - fn = sys.argv[1] - with open(fn, 'r') as f: - print("Reading", fn) ---- a/Lib/mailcap.py -+++ b/Lib/mailcap.py -@@ -55,7 +55,8 @@ - # Don't bother with getpwuid() - home = '.' # Last resort - mailcaps = [home + '/.mailcap', '/etc/mailcap', -- '/usr/etc/mailcap', '/usr/local/etc/mailcap'] -+ '/usr/etc/mailcap', '/usr/local/etc/mailcap', -+ '@TERMUX_PREFIX@/etc/mailcap'] - return mailcaps - - --- a/Lib/mimetypes.py +++ b/Lib/mimetypes.py @@ -49,6 +49,7 @@ diff --git a/packages/python/0005-impl-multiprocessing.patch b/packages/python/0005-impl-multiprocessing.patch index a4468610ae4..f1ffe2f270d 100644 --- a/packages/python/0005-impl-multiprocessing.patch +++ b/packages/python/0005-impl-multiprocessing.patch @@ -10,18 +10,6 @@ _dir_candidates = [] ---- a/Modules/_multiprocessing/multiprocessing.c -+++ b/Modules/_multiprocessing/multiprocessing.c -@@ -172,7 +172,7 @@ - _MULTIPROCESSING_RECV_METHODDEF - _MULTIPROCESSING_SEND_METHODDEF - #endif --#if !defined(POSIX_SEMAPHORES_NOT_ENABLED) && !defined(__ANDROID__) -+#if !defined(POSIX_SEMAPHORES_NOT_ENABLED) - _MULTIPROCESSING_SEM_UNLINK_METHODDEF - #endif - {NULL} - --- a/Modules/_multiprocessing/posixshmem.c +++ b/Modules/_multiprocessing/posixshmem.c @@ -11,6 +11,72 @@ diff --git a/packages/python/0006-disable-multiarch.patch b/packages/python/0006-disable-multiarch.patch new file mode 100644 index 00000000000..7a429da96fc --- /dev/null +++ b/packages/python/0006-disable-multiarch.patch @@ -0,0 +1,12 @@ +diff --git a/configure.ac b/configure.ac +index 597a44b331a..fa78e09c192 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1134,6 +1134,7 @@ dnl architecture. PLATFORM_TRIPLET will be a pair or single value for these + dnl platforms. + AC_MSG_CHECKING([for multiarch]) + AS_CASE([$ac_sys_system], ++ [Linux-android], [MULTIARCH=""], + [Darwin*], [MULTIARCH=""], + [iOS], [MULTIARCH=""], + [FreeBSD*], [MULTIARCH=""], diff --git a/packages/python/0006-do-not-use-xattr.patch b/packages/python/0006-do-not-use-xattr.patch deleted file mode 100644 index 1f4996315c4..00000000000 --- a/packages/python/0006-do-not-use-xattr.patch +++ /dev/null @@ -1,13 +0,0 @@ -https://github.com/termux/termux-packages/issues/16879 - ---- a/Modules/posixmodule.c -+++ b/Modules/posixmodule.c -@@ -280,7 +280,7 @@ - # undef HAVE_SCHED_SETAFFINITY - #endif - --#if defined(HAVE_SYS_XATTR_H) && defined(HAVE_LINUX_LIMITS_H) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) -+#if defined(HAVE_SYS_XATTR_H) && defined(HAVE_LINUX_LIMITS_H) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) && !defined(__ANDROID__) - # define USE_XATTRS - # include // Needed for XATTR_SIZE_MAX on musl libc. - #endif diff --git a/packages/python/0007-disable-multiarch.patch b/packages/python/0007-disable-multiarch.patch deleted file mode 100644 index 79c1c787135..00000000000 --- a/packages/python/0007-disable-multiarch.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/configure -+++ b/configure -@@ -6939,6 +6939,8 @@ - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for multiarch" >&5 - printf %s "checking for multiarch... " >&6; } - case $ac_sys_system in #( -+ Linux-android) : -+ MULTIARCH="" ;; #( - Darwin*) : - MULTIARCH="" ;; #( - FreeBSD*) : diff --git a/packages/python/0008-do-not-use-link.patch b/packages/python/0007-do-not-use-link.patch similarity index 100% rename from packages/python/0008-do-not-use-link.patch rename to packages/python/0007-do-not-use-link.patch diff --git a/packages/python/0008-fix-pkgconfig-variable-substitution.patch b/packages/python/0008-fix-pkgconfig-variable-substitution.patch new file mode 100644 index 00000000000..70c08ec7471 --- /dev/null +++ b/packages/python/0008-fix-pkgconfig-variable-substitution.patch @@ -0,0 +1,16 @@ +Needed for proper substitution of @LIBPYTHON@ in python3.pc.in + +The former style of substitution is fine in Makefiles where variables are expanded, not in static generated files. +diff --git a/configure.ac b/configure.ac +index 043ec957f40..53bed63310e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6424,7 +6424,7 @@ LIBPYTHON='' + # On Android and Cygwin the shared libraries must be linked with libpython. + if test "$PY_ENABLE_SHARED" = "1" && ( test -n "$ANDROID_API_LEVEL" || test "$MACHDEP" = "cygwin"); then + MODULE_DEPS_SHARED="$MODULE_DEPS_SHARED \$(LDLIBRARY)" +- LIBPYTHON="\$(BLDLIBRARY)" ++ LIBPYTHON="$(BLDLIBRARY)" + fi + + # On iOS the shared libraries must be linked with the Python framework diff --git a/packages/python/0009-build-with-fPIC.patch b/packages/python/0009-build-with-fPIC.patch deleted file mode 100644 index 5fd66f38140..00000000000 --- a/packages/python/0009-build-with-fPIC.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/configure -+++ b/configure -@@ -12838,7 +12840,7 @@ - then CCSHARED="-fPIC"; - else CCSHARED="+z"; - fi;; -- Linux-android*) ;; -+ Linux-android*) CCSHARED="-fPIC";; - Linux*|GNU*) CCSHARED="-fPIC";; - Emscripten*|WASI*) - if test "x$enable_wasm_dynamic_linking" = xyes diff --git a/packages/python/0009-fix-ctypes-util-find_library.patch b/packages/python/0009-fix-ctypes-util-find_library.patch new file mode 100644 index 00000000000..a432320bd91 --- /dev/null +++ b/packages/python/0009-fix-ctypes-util-find_library.patch @@ -0,0 +1,22 @@ +This was introduced in https://github.com/python/cpython/commit/1f8b24ef69896680d6ba6005e75e1cc79a744f9e but breaks our builds as we need directories from other paths as well + +diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py +index 117bf06cb01..12d7428fe9a 100644 +--- a/Lib/ctypes/util.py ++++ b/Lib/ctypes/util.py +@@ -89,15 +89,6 @@ def find_library(name): + + from ctypes._aix import find_library + +-elif sys.platform == "android": +- def find_library(name): +- directory = "/system/lib" +- if "64" in os.uname().machine: +- directory += "64" +- +- fname = f"{directory}/lib{name}.so" +- return fname if os.path.isfile(fname) else None +- + elif os.name == "posix": + # Andreas Degert's find functions, using gcc, /sbin/ldconfig, objdump + import re, tempfile diff --git a/packages/python/0011-do-not-hardlink.patch b/packages/python/0010-do-not-hardlink.patch similarity index 68% rename from packages/python/0011-do-not-hardlink.patch rename to packages/python/0010-do-not-hardlink.patch index daca89efbcb..4291d12e96a 100644 --- a/packages/python/0011-do-not-hardlink.patch +++ b/packages/python/0010-do-not-hardlink.patch @@ -1,15 +1,17 @@ +diff --git a/Makefile.pre.in b/Makefile.pre.in +index a7dc9709d62..d6b84dc8905 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -817,7 +817,7 @@ $(LIBRARY): $(LIBRARY_OBJS) - libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) - if test $(INSTSONAME) != $(LDLIBRARY); then \ - $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ +@@ -917,7 +917,7 @@ libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) + $(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ + fi + if test $(INSTSONAME) != $@; then \ - $(LN) -f $(INSTSONAME) $@; \ + $(LN) -sf $(INSTSONAME) $@; \ - else \ - $(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ fi -@@ -1971,7 +1971,7 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@ + + libpython3.so: libpython$(LDVERSION).so +@@ -2202,7 +2202,7 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@ if test -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) -o -h $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ then rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ fi; \ diff --git a/packages/python/0010-link-modules-against-libpython.patch b/packages/python/0010-link-modules-against-libpython.patch deleted file mode 100644 index 541eb1ea0c0..00000000000 --- a/packages/python/0010-link-modules-against-libpython.patch +++ /dev/null @@ -1,23 +0,0 @@ -Borrowed from https://github.com/msys2-contrib/cpython-mingw/commit/c4c698ec8fd7413068fce2de966938b3f8462de8 - ---- a/Modules/makesetup -+++ b/Modules/makesetup -@@ -97,6 +97,9 @@ - ExtraLibDir='$(LIBPL)' - fi - ExtraLibs="-L$ExtraLibDir -lpython\$(LDVERSION)";; -+Linux*) -+ ExtraLibs='$(BLDLIBRARY)' -+ ExtraLibDepends='$(LIBRARY_DEPS)';; - esac - - # Main loop -@@ -285,7 +288,7 @@ - BUILT_SHARED="$BUILT_SHARED $mod" - ;; - esac -- rule="$file: $objs" -+ rule="$file: $objs $ExtraLibDepends" - rule="$rule; \$(BLDSHARED) $objs $libs $ExtraLibs -o $file" - echo "$rule" >>$rulesf - done diff --git a/packages/python/0011-fix-module-linking.patch b/packages/python/0011-fix-module-linking.patch new file mode 100644 index 00000000000..ba23f4ac9e3 --- /dev/null +++ b/packages/python/0011-fix-module-linking.patch @@ -0,0 +1,14 @@ +Based off https://github.com/msys2-contrib/cpython-mingw/commit/e719663e07d6655e042f9c48910c65606cc4ae5e +diff --git a/Modules/makesetup b/Modules/makesetup +index 8bb971b152a..e6cf14460aa 100755 +--- a/Modules/makesetup ++++ b/Modules/makesetup +@@ -274,7 +274,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | + ;; + esac + rule="$file: $objs" +- rule="$rule; \$(BLDSHARED) $objs $libs \$(LIBPYTHON) -o $file" ++ rule="$rule; \$(BLDSHARED) $objs $libs \$(BLDLIBRARY) -o $file" + echo "$rule" >>$rulesf + done + done diff --git a/packages/python/0012-hardcode-android-api-level.diff b/packages/python/0012-hardcode-android-api-level.diff new file mode 100644 index 00000000000..4c3625248fe --- /dev/null +++ b/packages/python/0012-hardcode-android-api-level.diff @@ -0,0 +1,13 @@ +diff --git a/Lib/platform.py b/Lib/platform.py +index 8895177e326..e02999739bf 100755 +--- a/Lib/platform.py ++++ b/Lib/platform.py +@@ -599,7 +599,7 @@ def getprop(name, default): + return buffer.value.decode("UTF-8", "backslashreplace") + + release = getprop("ro.build.version.release", release) +- api_level = int(getprop("ro.build.version.sdk", api_level)) ++ api_level = @TERMUX_PKG_API_LEVEL@ + manufacturer = getprop("ro.product.manufacturer", manufacturer) + model = getprop("ro.product.model", model) + device = getprop("ro.product.device", device) diff --git a/packages/python/build.sh b/packages/python/build.sh index 43ccec77d78..ddda88b4618 100644 --- a/packages/python/build.sh +++ b/packages/python/build.sh @@ -3,16 +3,15 @@ TERMUX_PKG_DESCRIPTION="Python 3 programming language intended to enable clear p # License: PSF-2.0 TERMUX_PKG_LICENSE="custom" TERMUX_PKG_LICENSE_FILE="LICENSE" -TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=3.12.12 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_MAINTAINER="Yaksh Bariya " +TERMUX_PKG_VERSION="3.13.12" _DEBPYTHON_COMMIT=f358ab52bf2932ad55b1a72a29c9762169e6ac47 TERMUX_PKG_SRCURL=( https://www.python.org/ftp/python/${TERMUX_PKG_VERSION}/Python-${TERMUX_PKG_VERSION}.tar.xz https://salsa.debian.org/cpython-team/python3-defaults/-/archive/${_DEBPYTHON_COMMIT}/python3-defaults-${_DEBPYTHON_COMMIT}.tar.gz ) TERMUX_PKG_SHA256=( - fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4 + 2a84cd31dd8d8ea8aaff75de66fc1b4b0127dd5799aa50a64ae9a313885b4593 3b7a76c144d39f5c4a2c7789fd4beb3266980c2e667ad36167e1e7a357c684b0 ) TERMUX_PKG_AUTO_UPDATE=false @@ -25,9 +24,6 @@ TERMUX_PKG_REPLACES="python-dev" # Let "python3" will be alias to this package. TERMUX_PKG_PROVIDES="python3" -# https://github.com/termux/termux-packages/issues/15908 -TERMUX_PKG_MAKE_PROCESSES=1 - _MAJOR_VERSION="${TERMUX_PKG_VERSION%.*}" # Set ac_cv_func_wcsftime=no to avoid errors such as "character U+ca0025 is not in range [U+0000; U+10ffff]" @@ -58,6 +54,8 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_func_shm_unlink=yes" TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_working_tzset=yes" # prevents 'configure: error: Cross compiling requires --with-build-python' (even during on-device build) TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-build-python=python$_MAJOR_VERSION" +# https://github.com/termux/termux-packages/issues/16879 +TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_header_sys_xattr_h=no" TERMUX_PKG_RM_AFTER_INSTALL=" lib/python${_MAJOR_VERSION}/test @@ -67,10 +65,18 @@ lib/python${_MAJOR_VERSION}/site-packages/*/ " termux_step_post_get_source() { + patch="$TERMUX_PKG_BUILDER_DIR/0012-hardcode-android-api-level.diff" + echo "Applying patch: $(basename "$patch")" + test -f "$patch" && sed \ + -e "s%\@TERMUX_PKG_API_LEVEL\@%${TERMUX_PKG_API_LEVEL}%g" \ + "$patch" | patch --silent -p1 + + mv "$TERMUX_PKG_SRCDIR/python3-defaults-$_DEBPYTHON_COMMIT" "$TERMUX_PKG_SRCDIR/debpython" } termux_step_pre_configure() { + termux_setup_build_python # -O3 gains some additional performance on at least aarch64. CFLAGS="${CFLAGS/-Oz/-O3}" @@ -79,6 +85,8 @@ termux_step_pre_configure() { # if extension modules should be built (specifically, the # zlib extension module is not built without this): CPPFLAGS+=" -I$TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/include" + # Without this all symbols are removed from the built libpython3.so + LDFLAGS="${LDFLAGS/-Wl,--as-needed/}" LDFLAGS+=" -L$TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib" if [ $TERMUX_ARCH = x86_64 ]; then LDFLAGS+=64; fi @@ -86,6 +94,7 @@ termux_step_pre_configure() { # on devices that have API levels newer than $TERMUX_PKG_API_LEVEL if [[ "$TERMUX_PKG_API_LEVEL" -lt 28 ]]; then TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_func_fexecve=no" + TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_func_getlogin_r=no" fi if [[ "$TERMUX_PKG_API_LEVEL" -lt 29 ]]; then @@ -114,6 +123,7 @@ termux_step_pre_configure() { sed -i -e "s|@TERMUX_PYTHON_VERSION@|${_MAJOR_VERSION}|g" \ -e "s|@TERMUX_PKG_FULLVERSION@|$(test ${TERMUX_PACKAGE_FORMAT} = pacman && echo ${TERMUX_PKG_FULLVERSION_FOR_PACMAN} || echo ${TERMUX_PKG_FULLVERSION})|g" \ $(find "$TERMUX_PKG_SRCDIR/debpython" -type f) + autoreconf -fi } termux_step_post_make_install() { @@ -165,9 +175,9 @@ termux_step_create_debscripts() { echo fi - if [ -d $TERMUX_PREFIX/lib/python3.11/site-packages ]; then + if [[ -d $TERMUX_PREFIX/lib/python3.11/site-packages || -d $TERMUX_PREFIX/lib/python3.12/site-packages ]]; then echo - echo "NOTE: The system python package has been updated to 3.12." + echo "NOTE: The system python package has been updated to 3.13." echo "NOTE: Run 'pkg upgrade' to update system python packages." echo "NOTE: Packages installed using pip needs to be re-installed." echo diff --git a/packages/ranger/build.sh b/packages/ranger/build.sh index d55ca9d279b..74225b31eaa 100644 --- a/packages/ranger/build.sh +++ b/packages/ranger/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="File manager with VI key bindings" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.9.4" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/ranger/ranger/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=7ad75e0d1b29087335fbb1691b05a800f777f4ec9cba84faa19355075d7f0f89 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/rdiff-backup/build.sh b/packages/rdiff-backup/build.sh index 5743bb2a1d0..7382460bd47 100644 --- a/packages/rdiff-backup/build.sh +++ b/packages/rdiff-backup/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A utility for local/remote mirroring and incremental bac TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.2.6" -TERMUX_PKG_REVISION=4 +TERMUX_PKG_REVISION=5 TERMUX_PKG_SRCURL=https://github.com/rdiff-backup/rdiff-backup/releases/download/v${TERMUX_PKG_VERSION/\~/}/rdiff-backup-${TERMUX_PKG_VERSION/\~/}.tar.gz TERMUX_PKG_SHA256=d0778357266bc6513bb7f75a4570b29b24b2760348bbf607babfc3a6f09458cf TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/recoll/build.sh b/packages/recoll/build.sh index d3a56b8a817..f3e4f03f344 100644 --- a/packages/recoll/build.sh +++ b/packages/recoll/build.sh @@ -5,6 +5,7 @@ TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.43.13" TERMUX_PKG_SRCURL="https://www.recoll.org/recoll-${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=140bf1e4fc51299f60dad580dffd64733e1d06fb14c6f752e2a34d4d70540c19 +TERMUX_PKG_REVISION=1 TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_DEPENDS="aspell, file, jsoncpp, libc++, libiconv, libxapian, libxml2, libxslt, zlib" TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="wheel" diff --git a/packages/ruff/build.sh b/packages/ruff/build.sh index deba9cda76e..ad7672eba48 100644 --- a/packages/ruff/build.sh +++ b/packages/ruff/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="An extremely fast Python linter, written in Rust" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.15.4" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/charliermarsh/ruff/archive/refs/tags/$TERMUX_PKG_VERSION.tar.gz" TERMUX_PKG_SHA256=dfe55be1f641b12cb2b9e7d2974afc1db56dc766d144a030accd9fcecbdbad59 TERMUX_PKG_AUTO_UPDATE=true @@ -29,7 +30,10 @@ termux_step_make() { # --skip-auditwheel workaround for Maturin error # 'Cannot repair wheel, because required library libdl.so could not be located.' # found here in Termux-specific upstream discussion: https://github.com/PyO3/pyo3/issues/2324 - maturin build --locked --skip-auditwheel --release --all-features --target "$CARGO_TARGET_NAME" --strip + export CARGO_BUILD_TARGET="${CARGO_TARGET_NAME}" + export PYO3_CROSS_LIB_DIR="${TERMUX_PREFIX}/lib" + export ANDROID_API_LEVEL="${TERMUX_PKG_API_LEVEL}" + maturin build --locked --skip-auditwheel --release --all-features --strip } termux_step_make_install() { diff --git a/packages/seafile-client/build.sh b/packages/seafile-client/build.sh index 0d7aef0be62..3e5e9adf651 100644 --- a/packages/seafile-client/build.sh +++ b/packages/seafile-client/build.sh @@ -5,7 +5,7 @@ TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_LICENSE_FILE="LICENSE.txt" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="9.0.16" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/haiwen/seafile/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=45a2702386d594b112d16e957373d18ba77ba3d41d0bdbac2960016b286a17bc TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/speechd/build.sh b/packages/speechd/build.sh index fa90a66d69e..a7fdb951fe1 100644 --- a/packages/speechd/build.sh +++ b/packages/speechd/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Common interface to speech synthesis" TERMUX_PKG_LICENSE="LGPL-2.1, GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.12.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SHA256=32a730f6fb5981b9bec7e04f3674fd7d29e54935f46cf6354dbb9ab1f9b23b2d TERMUX_PKG_SRCURL=https://github.com/brailcom/speechd/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_DEPENDS="dotconf, espeak, glib, libiconv, libltdl, libsndfile, pulseaudio, python, speechd-data, libandroid-posix-semaphore" diff --git a/packages/termux-apt-repo/build.sh b/packages/termux-apt-repo/build.sh index b2f7baa71aa..c03c17ee4a4 100644 --- a/packages/termux-apt-repo/build.sh +++ b/packages/termux-apt-repo/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Script to create Termux apt repositories" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.5 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/termux/termux-apt-repo/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=22c2ad46e548a9b73179da072b798cbbe6767f2dcc99cc476fa88641f8595434 TERMUX_PKG_BUILD_IN_SRC=true diff --git a/packages/tizonia/build.sh b/packages/tizonia/build.sh index 8befeface34..77c66240b48 100644 --- a/packages/tizonia/build.sh +++ b/packages/tizonia/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A command-line streaming music client/server for Linux" TERMUX_PKG_LICENSE="LGPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.22.0" -TERMUX_PKG_REVISION=22 +TERMUX_PKG_REVISION=23 TERMUX_PKG_SRCURL="https://github.com/tizonia/tizonia-openmax-il/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=0750cae23ed600fb4b4699a392f43a5e03dcd0870383d64da4b8c28ea94a82f8 TERMUX_PKG_DEPENDS="boost, dbus, libandroid-wordexp, libc++, libcurl, libflac, liblog4c, libmad, libmediainfo, libmp3lame, liboggz, libopus, libsndfile, libsqlite, libuuid, libvpx, libmpg123, opusfile, pulseaudio, python, taglib" diff --git a/packages/udocker/build.sh b/packages/udocker/build.sh index 820cbee6eef..b1909b3789b 100644 --- a/packages/udocker/build.sh +++ b/packages/udocker/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="A basic user tool to execute simple docker containers in TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=1.3.17 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/indigo-dc/udocker/archive/refs/tags/$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=76713c1e8ea3f0f412144fda51b38a6e309d1fe29e85de8f678626d42e9e04a1 TERMUX_PKG_DEPENDS="curl, proot, python, resolv-conf" diff --git a/packages/vapoursynth/build.sh b/packages/vapoursynth/build.sh index 5e15403a0ed..53291a8740c 100644 --- a/packages/vapoursynth/build.sh +++ b/packages/vapoursynth/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Video processing framework with simplicity in mind" TERMUX_PKG_LICENSE="LGPL-2.1-or-later" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="73" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/vapoursynth/vapoursynth/archive/refs/tags/R${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=1bb8ffe31348eaf46d8f541b138f0136d10edaef0c130c1e5a13aa4a4b057280 TERMUX_PKG_DEPENDS="libzimg, python" diff --git a/packages/xcb-proto/build.sh b/packages/xcb-proto/build.sh index 26d6f6089b7..467d31de775 100644 --- a/packages/xcb-proto/build.sh +++ b/packages/xcb-proto/build.sh @@ -4,7 +4,7 @@ TERMUX_PKG_DESCRIPTION="XML-XCB protocol descriptions" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.17.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-$TERMUX_PKG_VERSION.tar.xz TERMUX_PKG_SHA256=2c1bacd2110f4799f74de6ebb714b94cf6f80fb112316b1219480fd22562148c TERMUX_PKG_AUTO_UPDATE=true @@ -12,6 +12,13 @@ TERMUX_PKG_PLATFORM_INDEPENDENT=true TERMUX_PKG_CONFLICTS="xcbproto" TERMUX_PKG_REPLACES="xcbproto" TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -PYTHON=python${TERMUX_PYTHON_VERSION} +PYTHON=/usr/bin/python3 am_cv_python_pythondir=$TERMUX_PYTHON_HOME/site-packages " + +termux_step_post_make_install() { + # We are using Ubuntu's host python for installing the package which may be of + # different major version. Python bytecode isn't compatible across versions. + # So get rid of it + rm -r "$TERMUX_PREFIX/lib/python3.13/site-packages/xcbgen/__pycache__/" +} diff --git a/packages/yt-dlp-ejs/build.sh b/packages/yt-dlp-ejs/build.sh index 131621e4c9e..25723fb649d 100644 --- a/packages/yt-dlp-ejs/build.sh +++ b/packages/yt-dlp-ejs/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="External JavaScript for yt-dlp supporting many runtimes" TERMUX_PKG_LICENSE="Unlicense" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.5.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/yt-dlp/ejs/releases/download/$TERMUX_PKG_VERSION/yt_dlp_ejs-$TERMUX_PKG_VERSION.tar.gz" TERMUX_PKG_SHA256=8dfae59e418232f485253dcf8e197fefa232423c3af7824fe19e4517b173293b TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="build, hatchling, hatch-vcs" @@ -16,7 +17,8 @@ fi termux_step_make() { termux_setup_nodejs - npm install + npm install --frozen-lockfile + npm run bundle python -m build --wheel --no-isolation } diff --git a/packages/yt-dlp-ejs/pyproject.toml.patch b/packages/yt-dlp-ejs/pyproject.toml.patch new file mode 100644 index 00000000000..4f16ff1b4a8 --- /dev/null +++ b/packages/yt-dlp-ejs/pyproject.toml.patch @@ -0,0 +1,12 @@ +--- ./pyproject.toml.orig 2026-01-12 17:32:32.941267998 +0000 ++++ ./pyproject.toml 2026-01-12 17:32:44.016803011 +0000 +@@ -56,9 +56,6 @@ + [tool.hatch.build.hooks.vcs] + version-file = "yt_dlp_ejs/_version.py" + +-[tool.hatch.build.targets.wheel.hooks.custom] +-path = "pnpm.py" +- + [tool.ruff.lint] + select = [ + "C4", diff --git a/root-packages/frida/build.sh b/root-packages/frida/build.sh index 6af5c97f822..b57af0b6d23 100644 --- a/root-packages/frida/build.sh +++ b/root-packages/frida/build.sh @@ -6,7 +6,7 @@ _MAJOR_VERSION=17 _MINOR_VERSION=2 _MICRO_VERSION=14 TERMUX_PKG_VERSION=${_MAJOR_VERSION}.${_MINOR_VERSION}.${_MICRO_VERSION} -TERMUX_PKG_REVISION=2 +TERMUX_PKG_REVISION=3 TERMUX_PKG_GIT_BRANCH=$TERMUX_PKG_VERSION TERMUX_PKG_SRCURL=git+https://github.com/frida/frida TERMUX_PKG_AUTO_UPDATE=false @@ -43,6 +43,12 @@ termux_step_host_build() { termux_step_pre_configure() { termux_setup_meson termux_setup_nodejs + # This is needed specifically as frida looks for same version of python on the host + # We are specifically not using crossenv as it could cause other unwanted troubles which we would like to keep away from + termux_setup_build_python + python3 -m venv .venv + export PATH="$PWD/.venv/bin:$PATH" + pip install 'setuptools==80.9.0' 'wheel==0.46.1' export PATH="$TERMUX_PKG_HOSTBUILD_DIR":"$PATH" export ANDROID_NDK_ROOT="${NDK}" @@ -146,11 +152,6 @@ termux_step_post_configure() { } termux_step_post_make_install () { - # Fixup installation location.. - rm -rf "$TERMUX_PREFIX"/lib/python"${TERMUX_PYTHON_VERSION}"/site-packages/frida* - mv "$TERMUX_PREFIX"/lib/python3/dist-packages/frida* \ - "$TERMUX_PREFIX"/lib/python"${TERMUX_PYTHON_VERSION}"/site-packages/ - # Setup termux-services scripts mkdir -p $TERMUX_PREFIX/var/service/frida-server/log { diff --git a/scripts/build/setup/python-crossenv-PYTHONPATH.patch b/scripts/build/setup/python-crossenv-PYTHONPATH.patch index 080aa22db5e..877f7716191 100644 --- a/scripts/build/setup/python-crossenv-PYTHONPATH.patch +++ b/scripts/build/setup/python-crossenv-PYTHONPATH.patch @@ -1,6 +1,8 @@ +diff --git a/crossenv/__init__.py b/crossenv/__init__.py +index a6ad551..f37f0e9 100644 --- a/crossenv/__init__.py +++ b/crossenv/__init__.py -@@ -707,6 +707,7 @@ +@@ -824,6 +824,7 @@ class CrossEnvBuilder(venv.EnvBuilder): # Also: 'stdlib' might not be accurate if build-python is in a build # directory. stdlib = os.path.abspath(os.path.dirname(os.__file__)) @@ -8,14 +10,16 @@ # In python 3.11, the import machinery imports from math, which breaks # in our cross environment.. so we inject lib-dynload to the path also +diff --git a/crossenv/scripts/pywrapper.py.tmpl b/crossenv/scripts/pywrapper.py.tmpl +index 775e5c2..1a14e50 100644 --- a/crossenv/scripts/pywrapper.py.tmpl +++ b/crossenv/scripts/pywrapper.py.tmpl -@@ -17,7 +17,7 @@ - os.environ['_PYTHON_SYSCONFIGDATA_NAME']={{repr(sysconfig_name)}} - os.environ['PYTHONHOME']={{repr(self.host_home)}} - oldpath = os.environ.get('PYTHONPATH') --newpath = os.pathsep.join([{{repr(context.lib_path)}}, {{repr(stdlib)}}, {{repr(dynload)}}]) -+newpath = os.pathsep.join([{{repr(context.lib_path)}}, {{repr(build_site_dir)}}, {{repr(stdlib)}}, {{repr(dynload)}}]) +@@ -23,7 +23,7 @@ os.environ["_PYTHON_SYSCONFIGDATA_NAME"] = {{repr(sysconfig_name)}} + os.environ["PYTHONHOME"] = {{repr(self.host_home)}} + oldpath = os.environ.get("PYTHONPATH") + newpath = os.pathsep.join( +- [{{repr(context.lib_path)}}, {{repr(stdlib)}}, {{repr(dynload)}}] ++ [{{repr(context.lib_path)}}, {{repr(build_site_dir)}}, {{repr(stdlib)}}, {{repr(dynload)}}] + ) if oldpath: path = os.pathsep.join([newpath, oldpath]) - else: diff --git a/scripts/build/setup/python-crossenv-fix-shebang.patch b/scripts/build/setup/python-crossenv-fix-shebang.patch new file mode 100644 index 00000000000..170c98d5e35 --- /dev/null +++ b/scripts/build/setup/python-crossenv-fix-shebang.patch @@ -0,0 +1,23 @@ +diff --git a/crossenv/scripts/pip-_vendor-distlib-scripts-patch.py.tmpl b/crossenv/scripts/pip-_vendor-distlib-scripts-patch.py.tmpl +index 7893cc4..63ae992 100644 +--- a/crossenv/scripts/pip-_vendor-distlib-scripts-patch.py.tmpl ++++ b/crossenv/scripts/pip-_vendor-distlib-scripts-patch.py.tmpl +@@ -1,17 +1,5 @@ + def _build_shebang(self, executable, post_interp): +- """ +- Build a shebang line. The default pip behavior will use a "simple" shim +- if the path to the wrapped Python binary is < 127 chars long, and doesn't +- contain a space. However, the host python binary isn't actually a binary - +- it's a shell script that does additional environment modifications - and +- os.execv() raises "OSError [Errno 8] Exec format error" if the shebang +- of a script isn't a literal binary. +- +- So - patch the script writer so that it *always* uses a shim. +- """ +- result = b"#!/bin/sh\n" +- result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n' +- result += b"' '''\n" ++ result = b'#!' + executable + post_interp + b'\n' + return result + + diff --git a/scripts/build/setup/python-crossenv-pip-android-api-level.patch b/scripts/build/setup/python-crossenv-pip-android-api-level.patch new file mode 100644 index 00000000000..b495daa289c --- /dev/null +++ b/scripts/build/setup/python-crossenv-pip-android-api-level.patch @@ -0,0 +1,48 @@ +diff --git a/crossenv/scripts/packaging-tags-patch.py.tmpl b/crossenv/scripts/packaging-tags-patch.py.tmpl +index 9cb4a14..73eb6e4 100644 +--- a/crossenv/scripts/packaging-tags-patch.py.tmpl ++++ b/crossenv/scripts/packaging-tags-patch.py.tmpl +@@ -19,3 +19,42 @@ def _linux_platforms(): + archs = {"armv8l": ["armv8l", "armv7l"]}.get(arch, [arch]) + for arch in archs: + yield f"linux_{arch}" ++ ++ ++ ++def android_platforms( ++ api_level: int | None = None, abi: str | None = None ++) -> Iterator[str]: ++ """ ++ Yields the :attr:`~Tag.platform` tags for Android. If this function is invoked on ++ non-Android platforms, the ``api_level`` and ``abi`` arguments are required. ++ ++ :param int api_level: The maximum `API level ++ `__ to return. Defaults ++ to the current system's version, as returned by ``platform.android_ver``. ++ :param str abi: The `Android ABI `__, ++ e.g. ``arm64_v8a``. Defaults to the current system's ABI , as returned by ++ ``sysconfig.get_platform``. Hyphens and periods will be replaced with ++ underscores. ++ """ ++ if platform.system() != "Android" and (api_level is None or abi is None): ++ raise TypeError( ++ "on non-Android platforms, the api_level and abi arguments are required" ++ ) ++ ++ if api_level is None: ++ # Python 3.13 was the first version to return platform.system() == "Android", ++ # and also the first version to define platform.android_ver(). ++ api_level = @@TERMUX_PKG_API_LEVEL@@ # type: ignore[attr-defined] ++ ++ if abi is None: ++ abi = sysconfig.get_platform().split("-")[-1] ++ abi = _normalize_string(abi) ++ ++ # 16 is the minimum API level known to have enough features to support CPython ++ # without major patching. Yield every API level from the maximum down to the ++ # minimum, inclusive. ++ min_api_level = 16 ++ yield f"android_{abi}" ++ for ver in range(api_level, min_api_level - 1, -1): ++ yield f"android_{ver}_{abi}" ++ diff --git a/scripts/build/setup/termux_setup_build_python.sh b/scripts/build/setup/termux_setup_build_python.sh new file mode 100644 index 00000000000..b78d92a0294 --- /dev/null +++ b/scripts/build/setup/termux_setup_build_python.sh @@ -0,0 +1,87 @@ +# This script adds it's own python build to $PATH which overrides the Ubuntu's +# packaged version. Packages installed using apt on Ubuntu won't work. This +# python build is supposed to be used only for cross-compilation of pip +# packages. +# +# Before using this script manually anywhere it is highly recommended to read +# https://crossenv.readthedocs.io/en/latest/quickstart.html +# For cross compilation of python packages as well as python, a host build of +# python of the same version is required. For pip package cross compilation, +# ideally same version of python is recommended by crossenv. +termux_setup_build_python() { + if [ "$TERMUX_ON_DEVICE_BUILD" = "true" ]; then + if [[ "$TERMUX_APP_PACKAGE_MANAGER" = "apt" && "$(dpkg-query -W -f '${db:Status-Status}\n' python 2>/dev/null)" != "installed" ]] || + [[ "$TERMUX_APP_PACKAGE_MANAGER" = "pacman" && ! "$(pacman -Q python 2>/dev/null)" ]]; then + echo "Package 'python is not installed." + echo "You can install it with" + echo + echo " pkg install python" + echo + echo " pacman -S python" + echo + echo "Note that package 'python' is known to be problematic for building on device." + exit 1 + fi + else + local _PYTHON_VERSION + local _PYTHON_SRCURL + local _PYTHON_SHA256 + local _PYTHON_FOLDER + _PYTHON_VERSION="$(. "$TERMUX_SCRIPTDIR/packages/python/build.sh"; echo "$TERMUX_PKG_VERSION")" + _PYTHON_SRCURL="$(. "$TERMUX_SCRIPTDIR/packages/python/build.sh"; echo "$TERMUX_PKG_SRCURL")" + _PYTHON_SHA256="$(. "$TERMUX_SCRIPTDIR/packages/python/build.sh"; echo "$TERMUX_PKG_SHA256")" + if [[ "${TERMUX_PACKAGES_OFFLINE-false}" = "true" ]]; then + _PYTHON_FOLDER=${TERMUX_SCRIPTDIR}/build-tools/python-${_PYTHON_VERSION} + else + _PYTHON_FOLDER=${TERMUX_COMMON_CACHEDIR}/python-${_PYTHON_VERSION} + fi + export TERMUX_BUILD_PYTHON_DIR=$_PYTHON_FOLDER + + if [[ ! -d "$_PYTHON_FOLDER" ]]; then + local LAST_PWD="$(pwd)" + termux_download \ + "$_PYTHON_SRCURL" "python-$_PYTHON_VERSION.tar.xz" "$_PYTHON_SHA256" + mkdir "$_PYTHON_FOLDER" + tar \ + --extract \ + --strip-components=1 \ + -C "$_PYTHON_FOLDER" \ + -f "python-$_PYTHON_VERSION.tar.xz" + cd "$_PYTHON_FOLDER" + + for f in "$TERMUX_SCRIPTDIR"/packages/python/0009-fix-ctypes-util-find_library.patch; do + echo "[${FUNCNAME[0]}]: Applying $(basename "$f")" + cat "$f" | sed -e "s|@@TERMUX_PKG_API_LEVEL@@|${TERMUX_PKG_API_LEVEL}|g" | patch --silent -p1 + done + + # Perform a hostbuild of python. We are kind of doing a minimal build, which + # may break some stuff that rely on an extended python release + mkdir host-build/ + cd host-build/ + # We are using env -i as there are a lot of environment variable that need + # to be unset, so better just start from scratch + # Also whoever on crack wrote the build scripts for python, didn't think of + # supporting the standard LD environment variable or even LDFLAGS properly. + # So instead of using LDFLAGS we have to pass linker arguments to CC and CXX + # and hope that Clang C and C++ drivers keep on ignoring link flags. It is + # not at all possible to specify a separate linker without patches as it is + # hardcoded to "$(CC) -shared" and "$(CXX) -shared" + # Whoever that person is needs to stop writing build scripts and instead + # question his impact on his mere existence on the world + env -i \ + CC="clang-${TERMUX_HOST_LLVM_MAJOR_VERSION} -fuse-ld=lld" \ + CXX="clang++-${TERMUX_HOST_LLVM_MAJOR_VERSION} -fuse-ld=lld" \ + LDFLAGS="-Wl,-rpath=$_PYTHON_FOLDER/host-build-prefix/lib" \ + PATH="/usr/bin" \ + ../configure \ + --with-ensurepip=install \ + --enable-shared \ + --prefix="$_PYTHON_FOLDER/host-build-prefix" + env -i \ + make -j "$(nproc)" install + cd "$LAST_PWD" + fi + # Add our own built python to path + export PATH="$_PYTHON_FOLDER/host-build-prefix/bin:$PATH" + fi +} diff --git a/scripts/build/setup/termux_setup_meson.sh b/scripts/build/setup/termux_setup_meson.sh index 0d442b7ca61..c2e543b3452 100644 --- a/scripts/build/setup/termux_setup_meson.sh +++ b/scripts/build/setup/termux_setup_meson.sh @@ -28,8 +28,8 @@ termux_setup_meson() { mv "$MESON_TMP_FOLDER" "$MESON_FOLDER" fi TERMUX_MESON="${MESON_FOLDER}/meson.py" - if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then - TERMUX_MESON="/usr/bin/python${TERMUX_PYTHON_VERSION} ${TERMUX_MESON}" + if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then + TERMUX_MESON="/usr/bin/python3 ${TERMUX_MESON}" fi TERMUX_MESON_CROSSFILE=$TERMUX_PKG_TMPDIR/meson-crossfile-$TERMUX_ARCH.txt local MESON_CPU MESON_CPU_FAMILY diff --git a/scripts/build/setup/termux_setup_python_pip.sh b/scripts/build/setup/termux_setup_python_pip.sh index a2b83511c02..bb6b39c3bd4 100644 --- a/scripts/build/setup/termux_setup_python_pip.sh +++ b/scripts/build/setup/termux_setup_python_pip.sh @@ -1,4 +1,10 @@ +# This script setups host python and crossenv for cross-compilation of python +# packages. Requires python package to be built before this script is called. +# +# It is highly recommended checking out documentation of +# termux_setup_build_python before using this script termux_setup_python_pip() { + termux_setup_build_python if [ "$TERMUX_ON_DEVICE_BUILD" = "true" ]; then if [[ "$TERMUX_APP_PACKAGE_MANAGER" = "apt" && "$(dpkg-query -W -f '${db:Status-Status}\n' python-pip 2>/dev/null)" != "installed" ]] || [[ "$TERMUX_APP_PACKAGE_MANAGER" = "pacman" && ! "$(pacman -Q python-pip 2>/dev/null)" ]]; then @@ -20,9 +26,9 @@ termux_setup_python_pip() { python${TERMUX_PYTHON_VERSION} -m venv --system-site-packages "$_VENV_DIR" . "$_VENV_DIR/bin/activate" - pip install 'setuptools==78.1.0' 'wheel==0.46.1' + pip install 'setuptools==80.9.0' 'wheel==0.46.1' else - local _CROSSENV_VERSION=1.4.0 + local _CROSSENV_VERSION=1.6.1 local _CROSSENV_TAR=crossenv-$_CROSSENV_VERSION.tar.gz local _CROSSENV_FOLDER @@ -37,7 +43,7 @@ termux_setup_python_pip() { termux_download \ https://github.com/benfogle/crossenv/archive/refs/tags/v$_CROSSENV_VERSION.tar.gz \ $TERMUX_PKG_TMPDIR/$_CROSSENV_TAR \ - 28da6260fafd85b05fa539793c45ef804c700a0bb71172fadef429796d49ac4e + f85bfbfbfea3567427daa56693c28c75e69fb6ae78c508565f7ae54a26fe407d rm -Rf "$TERMUX_PKG_TMPDIR/crossenv-$_CROSSENV_VERSION" tar xf $TERMUX_PKG_TMPDIR/$_CROSSENV_TAR -C $TERMUX_PKG_TMPDIR @@ -47,14 +53,14 @@ termux_setup_python_pip() { local f for f in "$TERMUX_SCRIPTDIR"/scripts/build/setup/python-crossenv-*.patch; do echo "[${FUNCNAME[0]}]: Applying $(basename "$f")" - patch --silent -p1 -d "$_CROSSENV_FOLDER" < "$f" + cat "$f" | sed -e "s|@@TERMUX_PKG_API_LEVEL@@|${TERMUX_PKG_API_LEVEL}|g" | patch --silent -p1 -d "$_CROSSENV_FOLDER" done shopt -u nullglob fi if [ ! -d "$TERMUX_PYTHON_CROSSENV_PREFIX" ]; then cd "$TERMUX_PYTHON_CROSSENV_SRCDIR" - /usr/bin/python${TERMUX_PYTHON_VERSION} -m crossenv \ + "$TERMUX_BUILD_PYTHON_DIR/host-build-prefix/bin/python${TERMUX_PYTHON_VERSION}" -m crossenv \ "$TERMUX_PREFIX/bin/python${TERMUX_PYTHON_VERSION}" \ "${TERMUX_PYTHON_CROSSENV_PREFIX}" fi @@ -62,8 +68,8 @@ termux_setup_python_pip() { # Since 3.12, distutils is removed from python, but setuptools>=60 provides it # Since wheel 0.46, setuptools>=70 is required to provide bdist_wheel - build-pip install 'setuptools==78.1.0' 'wheel==0.46.1' - cross-pip install 'setuptools==78.1.0' 'wheel==0.46.1' + build-pip install 'setuptools==80.9.0' 'wheel==0.46.1' + cross-pip install 'setuptools==80.9.0' 'wheel==0.46.1' export PATH="${TERMUX_PYTHON_CROSSENV_PREFIX}/build/bin:${PATH}" local _CROSS_PATH="${TERMUX_PYTHON_CROSSENV_PREFIX}/cross/bin" diff --git a/scripts/setup-ubuntu.sh b/scripts/setup-ubuntu.sh index b283dcf641f..024a3930e99 100755 --- a/scripts/setup-ubuntu.sh +++ b/scripts/setup-ubuntu.sh @@ -348,6 +348,7 @@ LLVM_PACKAGES="" LLVM_PACKAGES+=" llvm-${TERMUX_HOST_LLVM_MAJOR_VERSION}-dev" LLVM_PACKAGES+=" llvm-${TERMUX_HOST_LLVM_MAJOR_VERSION}-tools" LLVM_PACKAGES+=" clang-${TERMUX_HOST_LLVM_MAJOR_VERSION}" +LLVM_PACKAGES+=" lld-${TERMUX_HOST_LLVM_MAJOR_VERSION}" $SUDO apt-get -yq update diff --git a/x11-packages/cinnamon/build.sh b/x11-packages/cinnamon/build.sh index daeac917851..3df32b01320 100644 --- a/x11-packages/cinnamon/build.sh +++ b/x11-packages/cinnamon/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Cinnamon shell" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="6.6.7" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL="https://github.com/linuxmint/cinnamon/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=220f9ba77860d63708e682aa3fdc48cd8597b41b698467f116e477b45d514249 TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/codelldb/build.sh b/x11-packages/codelldb/build.sh index a2f1ae66278..e71b0a10eb5 100644 --- a/x11-packages/codelldb/build.sh +++ b/x11-packages/codelldb/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A native debugger extension for VSCode based on LLDB" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.12.1" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL="https://github.com/vadimcn/codelldb/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=5d6dbf96ca5b030a2f011de84148953d8527eaba5d38cb16e56d68905b9a2f67 TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/gjots2/build.sh b/x11-packages/gjots2/build.sh index da70146956d..6f2e40e876d 100644 --- a/x11-packages/gjots2/build.sh +++ b/x11-packages/gjots2/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A hierarchical note jotter" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=3.2.1 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://sourceforge.net/projects/gjots2/files/gjots2/${TERMUX_PKG_VERSION}/gjots2-${TERMUX_PKG_VERSION}.tgz TERMUX_PKG_SHA256=815d66f3d344ffb3dca4d8d4a1e69229160cee9c9d940d50d899d2b5ec5d9e11 TERMUX_PKG_DEPENDS="gtksourceview4, pygobject, python" diff --git a/x11-packages/gnucash/build.sh b/x11-packages/gnucash/build.sh index f6067900d3e..51589870f41 100644 --- a/x11-packages/gnucash/build.sh +++ b/x11-packages/gnucash/build.sh @@ -4,7 +4,7 @@ TERMUX_PKG_LICENSE="GPL-2.0-or-later" # with OpenSSL linking exceptions TERMUX_PKG_LICENSE_FILE="LICENSE" # specified for additional nuance. TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="5.14" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL="https://github.com/Gnucash/gnucash/releases/download/${TERMUX_PKG_VERSION}/gnucash-${TERMUX_PKG_VERSION}.tar.bz2" TERMUX_PKG_SHA256=0c6fd20214da86a9a0443359f7b62d9a2bd4ed802fd680853da4b757a371ac91 TERMUX_PKG_DEPENDS="boost, gettext, guile, glib, gtk3, libicu, libsecret, libxml2, libxslt, perl, python, swig, webkit2gtk-4.1, xsltproc, zlib" diff --git a/x11-packages/gnumeric/build.sh b/x11-packages/gnumeric/build.sh index 91d9fe4699f..91471b7eb80 100644 --- a/x11-packages/gnumeric/build.sh +++ b/x11-packages/gnumeric/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="The GNOME spreadsheet" TERMUX_PKG_LICENSE="GPL-2.0, GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.12.60" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/gnumeric/${TERMUX_PKG_VERSION%.*}/gnumeric-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=bb02feb286062805564438534e1fea459f97cebac8a090b1a7e47ca251e07467 TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/kitty/build.sh b/x11-packages/kitty/build.sh index 09e82a45e03..4b047ef8965 100644 --- a/x11-packages/kitty/build.sh +++ b/x11-packages/kitty/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Cross-platform, fast, feature-rich, GPU based terminal" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.45.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/kovidgoyal/kitty/releases/download/v${TERMUX_PKG_VERSION}/kitty-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=93fcba4984a97ccb7d811f487a818d406e681912b6bbb8f0ca426103ddce7ca5 # fontconfig is dlopen(3)ed: diff --git a/x11-packages/libncnn/build.sh b/x11-packages/libncnn/build.sh index b1560be257c..693ce88d9d1 100644 --- a/x11-packages/libncnn/build.sh +++ b/x11-packages/libncnn/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A high-performance neural network inference framework op TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="20250503" -TERMUX_PKG_REVISION=4 +TERMUX_PKG_REVISION=5 TERMUX_PKG_SRCURL=https://github.com/Tencent/ncnn/releases/download/${TERMUX_PKG_VERSION}/ncnn-${TERMUX_PKG_VERSION}-full-source.zip TERMUX_PKG_SHA256=b3190d1b6beae3aac30fa99f4d3fd89a2b47a010b888d2d2389189784743a690 TERMUX_PKG_AUTO_UPDATE=false diff --git a/x11-packages/meld/build.sh b/x11-packages/meld/build.sh index e44f18ac087..4adb3e6e51a 100644 --- a/x11-packages/meld/build.sh +++ b/x11-packages/meld/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="A visual diff and merge tool targeted at developers" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.23.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/meld/${TERMUX_PKG_VERSION%.*}/meld-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=73f827924663c7c6b451a74c8385304d99feaa13c81f4e0a171da597c6843574 TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/mlt/build.sh b/x11-packages/mlt/build.sh index 4eec030724b..fd714b4485e 100644 --- a/x11-packages/mlt/build.sh +++ b/x11-packages/mlt/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Multimedia Framework. Author, manage, and run multitrack TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_LICENSE="LGPL-2.1" TERMUX_PKG_VERSION="7.36.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/mltframework/mlt/releases/download/v${TERMUX_PKG_VERSION}/mlt-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=0d2b956864ba2ff58bb4e2b2779aa36870bd2a3a835e2dbfda33faa5fc6f4d3a TERMUX_PKG_DEPENDS="alsa-lib, ffmpeg, fftw, fontconfig, frei0r-plugins, gdk-pixbuf, glib, jack, movit, libebur128, libepoxy, libexif, libsamplerate, libvidstab, libvorbis, libx11, libxml2, qt6-qt5compat, qt6-qtbase, qt6-qtsvg, opengl, pango, python, rubberband, sdl, sdl2 | sdl2-compat, sox, zlib" @@ -19,6 +20,7 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" " termux_step_pre_configure() { + termux_setup_python_pip TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DCMAKE_CXX_COMPILER_CLANG_SCAN_DEPS=${TERMUX_STANDALONE_TOOLCHAIN}/bin/clang-scan-deps " diff --git a/x11-packages/opencv/build.sh b/x11-packages/opencv/build.sh index 9bb7506a826..7684a4f715c 100644 --- a/x11-packages/opencv/build.sh +++ b/x11-packages/opencv/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Open Source Computer Vision Library" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="4.13.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=( https://github.com/opencv/opencv/archive/refs/tags/${TERMUX_PKG_VERSION}/opencv-${TERMUX_PKG_VERSION}.tar.gz https://github.com/opencv/opencv_contrib/archive/refs/tags/${TERMUX_PKG_VERSION}/opencv_contrib-${TERMUX_PKG_VERSION}.tar.gz diff --git a/x11-packages/orca/build.sh b/x11-packages/orca/build.sh index 42f7bb2a2b4..aba542a8ba5 100644 --- a/x11-packages/orca/build.sh +++ b/x11-packages/orca/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A free, open source, flexible, and extensible screen rea TERMUX_PKG_LICENSE="LGPL-2.1" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="49.5" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/orca/${TERMUX_PKG_VERSION%.*}/orca-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=53df41558319e97c1e84ad604989957a02b5d0ff531419190f0587ea6b256034 TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/pyatspi/build.sh b/x11-packages/pyatspi/build.sh index 32aa6d2d52b..103ffb5cd81 100644 --- a/x11-packages/pyatspi/build.sh +++ b/x11-packages/pyatspi/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="A python client library for the AT-SPI D-Bus accessibili TERMUX_PKG_LICENSE="LGPL-2.0, GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.58.1" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://download.gnome.org/sources/pyatspi/${TERMUX_PKG_VERSION%.*}/pyatspi-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=3f1f079935f926584331025c7531858deb42245c993b65121f4f4b01e6b04536 TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/pyqt5/build.sh b/x11-packages/pyqt5/build.sh index ba943b25c65..3231f8818d0 100644 --- a/x11-packages/pyqt5/build.sh +++ b/x11-packages/pyqt5/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Comprehensive Python Bindings for Qt v5" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="5.15.11" -TERMUX_PKG_REVISION=3 +TERMUX_PKG_REVISION=4 TERMUX_PKG_SRCURL=https://files.pythonhosted.org/packages/source/P/PyQt5/PyQt5-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=fda45743ebb4a27b4b1a51c6d8ef455c4c1b5d610c90d2934c7802b5c1557c52 TERMUX_PKG_DEPENDS="libc++, python, qt5-qtbase, qt5-qtdeclarative, qt5-qtlocation, qt5-qtmultimedia, qt5-qtsensors, qt5-qtsvg, qt5-qttools, qt5-qtwebchannel, qt5-qtwebsockets, qt5-qtx11extras, qt5-qtxmlpatterns, python-pip" diff --git a/x11-packages/python-opencv-python/build.sh b/x11-packages/python-opencv-python/build.sh index 7948fd8fd1a..ddc563bcfeb 100644 --- a/x11-packages/python-opencv-python/build.sh +++ b/x11-packages/python-opencv-python/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python wrapper for Python bindings for OpenCV" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="92" +TERMUX_PKG_REVISION=1 TERMUX_PKG_REPOLOGY_METADATA_VERSION="$(. "$TERMUX_SCRIPTDIR/x11-packages/opencv/build.sh"; echo "$TERMUX_PKG_VERSION").${TERMUX_PKG_VERSION}" TERMUX_PKG_SRCURL="https://github.com/opencv/opencv-python/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=049293f56726a3ebb01bb7508b973e14e62752a4a0e067ac6af4e371d6aa30d3 diff --git a/x11-packages/python-pyqtwebengine/build.sh b/x11-packages/python-pyqtwebengine/build.sh index 1c2cebf84aa..0905d0d74ac 100644 --- a/x11-packages/python-pyqtwebengine/build.sh +++ b/x11-packages/python-pyqtwebengine/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Python Bindings for the Qt WebEngine Framework" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="5.15.7" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://files.pythonhosted.org/packages/source/P/PyQtWebEngine/PyQtWebEngine-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=f121ac6e4a2f96ac289619bcfc37f64e68362f24a346553f5d6c42efa4228a4d TERMUX_PKG_DEPENDS="libc++, pyqt5, python, python-pip, qt5-qtbase, qt5-qtwebengine" diff --git a/x11-packages/python-qscintilla/build.sh b/x11-packages/python-qscintilla/build.sh index 5fc57f2df1c..88ff953ba1f 100644 --- a/x11-packages/python-qscintilla/build.sh +++ b/x11-packages/python-qscintilla/build.sh @@ -4,7 +4,7 @@ TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" # Align the version with `qscintilla` package. TERMUX_PKG_VERSION=2.14.1 -TERMUX_PKG_REVISION=3 +TERMUX_PKG_REVISION=4 TERMUX_PKG_SRCURL=https://www.riverbankcomputing.com/static/Downloads/QScintilla/${TERMUX_PKG_VERSION}/QScintilla_src-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=dfe13c6acc9d85dfcba76ccc8061e71a223957a6c02f3c343b30a9d43a4cdd4d TERMUX_PKG_DEPENDS="libc++, pyqt5, python, python-pip, qscintilla (>= ${TERMUX_PKG_VERSION}), qt5-qtbase" diff --git a/x11-packages/python-xapp/build.sh b/x11-packages/python-xapp/build.sh index f92be305600..cdb9f0246f9 100644 --- a/x11-packages/python-xapp/build.sh +++ b/x11-packages/python-xapp/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="XApp library Python bindings" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.0.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/linuxmint/python3-xapp/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=2078766e2553eea0ff2ee598212d4883a226df63d014d060756c6274db024823 TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/xapp/build.sh b/x11-packages/xapp/build.sh index 727d5be8999..47b3fa93302 100644 --- a/x11-packages/xapp/build.sh +++ b/x11-packages/xapp/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Cross-desktop libraries and common resources " TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="3.2.2" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL="https://github.com/linuxmint/xapp/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=d0ea664053e6f35cc556e060b161905004f03d0695473772d2fb8a37cf445591 TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/xkeyboard-config/build.sh b/x11-packages/xkeyboard-config/build.sh index 393f53b4ba4..b1fd93d4d80 100644 --- a/x11-packages/xkeyboard-config/build.sh +++ b/x11-packages/xkeyboard-config/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="X keyboard configuration files" TERMUX_PKG_LICENSE="HPND, MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.47" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/archive/xkeyboard-config-${TERMUX_PKG_VERSION}/xkeyboard-config-xkeyboard-config-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=b199d506aed1a03d00f11411091f6db8f136ef68f308d4747c76151e59cba874 TERMUX_PKG_AUTO_UPDATE=true