Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
3b333bd
bump(main/python): 3.13.11
thunder-coding Dec 25, 2025
8da8c23
fix(main/python): unexpanded autotools variable in pkgconfig
thunder-coding Jan 9, 2026
628866a
fix(main/python): build without -Wl,--as-needed
thunder-coding Jan 12, 2026
5d33590
chore(main/python): build with parallelism [[TESTING REQUIRED]]
thunder-coding Dec 25, 2025
e898b3e
scripts(termux_setup_build_python): build-python for cross compilation
thunder-coding Dec 26, 2025
8b8a14d
scripts(termux_setup_python_pip): use build python and add minor
thunder-coding Dec 26, 2025
2bfbfad
rebuild(main/python-pip): with python3.13
thunder-coding Dec 26, 2025
d4abd1f
scripts(termux_setup_meson): use ubuntu's packaged python
thunder-coding Dec 27, 2025
2e4a556
scripts(termux_setup_python_pip): fix install shebang with crossenv
thunder-coding Dec 27, 2025
d904626
chore(main/python): take up maintainership
thunder-coding Dec 28, 2025
3e2ac55
scripts(termux_setup_python_pip): crossenv 1.6.1
thunder-coding Dec 28, 2025
ebda8ab
pip hardcode api level instead of getting it from runtime
thunder-coding Jan 8, 2026
5a8d095
fix(main/python): ctypes.util.find_library on android
thunder-coding Jan 10, 2026
449dfb1
scripts(termux_setup_python_pip): allow installing wheels without and…
thunder-coding Jan 12, 2026
7819f2e
fix(main/python): module linking to libpython3.so
thunder-coding Jan 19, 2026
1e683ee
fix(main/python): hardcode android api level than detecting at runtime
thunder-coding Jan 25, 2026
385d556
bump(main/python): 3.13.12
thunder-coding Feb 13, 2026
5d8d642
chore(main/python): allow on-device builds
thunder-coding Feb 13, 2026
da793cf
chore(main/python): only disable getlogin_r for API level < 28
thunder-coding Mar 1, 2026
1155f7e
ci: use fuse-overlayfs to reduce runtime storage used by builder
thunder-coding Feb 23, 2026
071353d
chore(CODEOWNERS): assign for docker security profiles
thunder-coding Feb 23, 2026
be9ec27
chore,ci: make apparmor optional
thunder-coding Feb 24, 2026
6e19d91
scripts(run-docker.sh): always use sudo with APPARMOR_PARSER
thunder-coding Feb 24, 2026
c1dfbfb
scripts: more apparmor hardening
thunder-coding Feb 25, 2026
b539485
fix,scripts(run-docker.sh): Properly handle the case when apparmor is
thunder-coding Feb 28, 2026
801cdbd
fix,scripts(run-docker.sh): only show AppArmor log when using apparmor
thunder-coding Mar 1, 2026
752b37a
scripts(free-space.sh): remove more stuff from runner
thunder-coding Feb 25, 2026
593527d
ci: also clean docker compressed archives
thunder-coding Feb 25, 2026
9f80997
ci(packages): do all builds in docker
thunder-coding Feb 25, 2026
065453d
scripts: allow more flexible configuration of docker container
thunder-coding Feb 26, 2026
6a55f1c
ci(packages): do not prune docker
thunder-coding Feb 26, 2026
5d10a25
ci(packages): split docker image building to separate step
thunder-coding Feb 26, 2026
197226c
ci: move clean compressed docker images to free-space.sh
thunder-coding Feb 26, 2026
96702e1
scripts(run-docker.sh): add short option to mount /data and
thunder-coding Feb 27, 2026
f1fb1f7
chore,ci(packages): Allow forcing free space
thunder-coding Mar 1, 2026
da10aff
fix,scripts(run-docker.sh): improved command line argument parsing
thunder-coding Mar 1, 2026
5040335
chore,scripts(run-docker.sh): limit line width to 80 for usage and get
thunder-coding Mar 1, 2026
b91dd0e
rebuild(main/2ping): with python3.13
thunder-coding Dec 26, 2025
5c9b72a
rebuild(main/borgbackup): with python 3.13
thunder-coding Jan 9, 2026
e226ed7
rebuild(main/dbus-python): with python 3.13
thunder-coding Jan 9, 2026
6384ed5
rebuild(main/fetchmail): with python 3.13
thunder-coding Jan 12, 2026
fb85149
rebuild(main/libunbound): with python 3.13
thunder-coding Jan 19, 2026
7776e04
rebuild(main/python-apsw): with python 3.13
thunder-coding Jan 12, 2026
a6aabe5
rebuild(main/python-bcrypt): with python 3.13
thunder-coding Jan 19, 2026
f3a999d
rebuild(main/python-grpcio): with python 3.13
thunder-coding Jan 19, 2026
1cc419b
rebuild(main/python-lameenc): with python 3.13
thunder-coding Jan 12, 2026
576f3fb
rebuild(main/python-sabyenc3): with python 3.13
thunder-coding Jan 12, 2026
74fc9c3
rebuild(main/python-tldp): with python 3.13
thunder-coding Jan 22, 2026
4bb0914
rebuild(main/python-xlib): with python 3.13
thunder-coding Jan 22, 2026
f793552
rebuild(main/ranger): with python 3.13
thunder-coding Jan 12, 2026
da40835
rebuild(main/rdiff-backup): with python 3.13
thunder-coding Jan 19, 2026
c99121f
rebuild(main/ruff): with python 3.13
thunder-coding Jan 22, 2026
3b4dd34
rebuild(main/speechd): with python 3.13
thunder-coding Jan 12, 2026
5a3ed47
rebuild(main/udocker): with python 3.13
thunder-coding Jan 12, 2026
be157fa
rebuild(main/vapoursynth): with python 3.13
thunder-coding Jan 12, 2026
a6bb115
rebuild(main/xcb-proto): with python3.13
thunder-coding Dec 26, 2025
d0c4e7a
rebuild(main/yt-dlp-ejs): with python 3.13
thunder-coding Jan 12, 2026
d432a36
rebuild(root/frida): with python3.13
thunder-coding Jan 22, 2026
5063ced
Python 3.13 rebuild #8
thunder-coding Mar 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/package_updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,15 @@ jobs:
size: 16G
priority: 100
device_name: /dev/zram0
- name: Load Docker image
run: |
./scripts/run-docker.sh echo ""
- name: Free additional disk space
run: CLEAN_DOCKER_IMAGES=false ./scripts/free-space.sh
run: ./scripts/free-space.sh
- name: Process package updates
env:
GITHUB_TOKEN: ${{ secrets.TERMUXBOT2_TOKEN }}
BUILD_PACKAGES: "true"
TERMUX_DOCKER__CONTAINER_EXEC_COMMAND__PRE_CHECK_IF_WILL_BUILD_PACKAGES: "true"
CREATE_ISSUE: "true"
GIT_COMMIT_PACKAGES: "true"
GIT_PUSH_PACKAGES: "true"
Expand Down
67 changes: 35 additions & 32 deletions .github/workflows/packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ on:
packages:
description: "A space-separated names of packages selected for rebuilding"
required: true
free-space:
description: "Free space even if not building large package (useful when building a large number of packages)"
type: boolean
default: false

permissions: {} # none

Expand Down Expand Up @@ -98,7 +102,6 @@ jobs:
# Forces CI to cancel current build with status 'passed'
if grep -qiP '^\s*%ci:no-build\s*$' <(git log --format="%B" -n 1 --no-merges "HEAD"); then
tar cf artifacts/debs-${{ matrix.target_arch }}.tar debs
echo "docker-build=true" >> $GITHUB_OUTPUT
echo "[!] Force exiting as tag '%ci:no-build' was applied to HEAD commit message."
exit 0
fi
Expand Down Expand Up @@ -186,31 +189,34 @@ jobs:

echo "packages: ${packages[*]}"

docker='true'
free_space='false'
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
free_space=${{ github.event.inputs.free-space }}
else
if grep -qiP '^\s*%ci:free-disk\s*$' <(git log --format="%B" -n 1 --no-merges "HEAD"); then
echo "[!] Force exiting as tag '%ci:free-disk' was applied to HEAD commit message."
exit 0
fi
fi
if [[ "${#packages[@]}" -gt 0 ]]; then
for pkg in "${packages[@]}"; do
if grep -qFx "$pkg" ./scripts/big-pkgs.list; then
docker='false'
free_space='true'
break
fi
done
fi
echo "free-space=$free_space" >> $GITHUB_OUTPUT

echo "docker-build=$docker" >> $GITHUB_OUTPUT
needs_docker_build=false
if [ "${{ github.event_name }}" != "workflow_dispatch" ]; then
# Build local Docker image if setup scripts were changed.
# Useful for pull requests submitting changes for both build environment and packages.
if grep -qP '^scripts/(Dockerfile|properties\.sh|setup-android-sdk\.sh|setup-ubuntu\.sh)$' <<< "$CHANGED_FILES"; then
echo "Detected changes for environment setup scripts. Building custom Docker image now."
if [ $docker == 'false' ]; then
echo "Skipping due to building large packages."
exit 0
fi
cd ./scripts
docker build -t ghcr.io/termux/package-builder:latest .
cd ..
needs_docker_build=true
fi
fi
echo "needs-docker-build=$needs_docker_build" >> $GITHUB_OUTPUT

- name: Lint packages
run: |
Expand All @@ -235,22 +241,24 @@ jobs:
priority: 100
device_name: /dev/zram0

- name: Build docker image
if: ${{ steps.build-info.needs-docker-build == 'true' }}
run: |
docker build -t ghcr.io/termux/package-builder:latest scripts/
docker buildx prune -af

- name: Load Docker image
if: ${{ steps.build-info.outputs.free-space == 'true' && steps.build-info.outputs.skip-building != 'true' }}
run: |
./scripts/run-docker.sh echo ""

- name: Free additional disk space (if needed)
if: ${{ steps.build-info.outputs.docker-build == 'false' && steps.build-info.outputs.skip-building != 'true' }}
if: ${{ steps.build-info.outputs.free-space == 'true' && steps.build-info.outputs.skip-building != 'true' }}
run: |
./scripts/setup-ubuntu.sh
# need to unset these for setup-android-sdk.sh.
unset NDK ANDROID_HOME
./scripts/setup-android-sdk.sh
rm -f ${HOME}/lib/ndk-*.zip ${HOME}/lib/sdk-*.zip
sudo apt install ninja-build
./scripts/free-space.sh

- name: Build packages
if: ${{ steps.build-info.outputs.skip-building != 'true' }}
env:
DOCKER_BUILD: ${{ steps.build-info.outputs.docker-build }}
TERMUX_DOCKER__CONTAINER_EXEC_COMMAND__PRE_CHECK_IF_WILL_BUILD_PACKAGES: "true"
run: |
declare -a packages=()
for repo_path in $(jq --raw-output 'del(.pkg_format) | keys | .[]' repo.json); do
Expand All @@ -263,16 +271,7 @@ jobs:
echo "packages: ${packages[*]}"

if [[ "${#packages[@]}" -gt 0 ]]; then
if [ "$DOCKER_BUILD" == 'false' ]; then
# these need to be unset a second time again for ./build-package.sh
# when it is run outside of Docker, because GitHub Actions does not
# support permanently unsetting variables at time of writing.
# https://github.com/actions/runner/issues/1126
unset NDK ANDROID_HOME
./build-package.sh -I -C -a "${{ matrix.target_arch }}" "${packages[@]}"
else
./scripts/run-docker.sh ./build-package.sh -I -C -a "${{ matrix.target_arch }}" "${packages[@]}"
fi
./scripts/run-docker.sh -d ./build-package.sh -I -C -a "${{ matrix.target_arch }}" "${packages[@]}"
fi

- name: Generate build artifacts
Expand Down Expand Up @@ -317,6 +316,10 @@ jobs:
with:
name: debs-${{ matrix.target_arch }}-${{ github.sha }}
path: ./artifacts
- name: AppArmor Logs
if: always()
run: |
sudo dmesg | grep apparmor

test-buildorder-random:
permissions:
Expand Down
4 changes: 4 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
/scripts/ @Grimler91 @thunder-coding
/repo.json @Grimler91 @thunder-coding

# Docker security profiles
/scripts/profile.json @thunder-coding @licy183
/scripts/*.apparmor @thunder-coding

# Build script linter
/scripts/lint-packages.sh @TomJo2000

Expand Down
4 changes: 4 additions & 0 deletions build-package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
11 changes: 10 additions & 1 deletion clean.sh
Original file line number Diff line number Diff line change
Expand Up @@ -93,5 +93,14 @@ fi
rm -Rf "/data/data/.built-packages"
fi

rm -Rf "$TERMUX_TOPDIR"
# unmount overlayfs before we remove the parent directory
[ -d "$TERMUX_TOPDIR" ] && for dir in $(find "$TERMUX_TOPDIR" -type d); do
if mountpoint -q "$dir"; then
umount "$dir"
fi
done

# We can't use rm -Rf "$TERMUX_TOPDIR" in case the "$TERMUX_TOPDIR" is mounted as a Docker volume
find "$TERMUX_TOPDIR" -type f,l -delete
find "$TERMUX_TOPDIR" -type d ! -path "$TERMUX_TOPDIR" -delete
} 5< "$TERMUX_BUILD_LOCK_FILE"
2 changes: 1 addition & 1 deletion packages/2ping/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
16 changes: 9 additions & 7 deletions packages/borgbackup/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,22 @@ TERMUX_PKG_DESCRIPTION="Deduplicating and compressing backup program"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Joshua Kahn <tom@termux.dev>"
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"
TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS="build, Cython, pkgconfig, setuptools, setuptools-scm, wheel"
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
}
2 changes: 1 addition & 1 deletion packages/dbus-python/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions packages/fetchmail/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion packages/libsearpc/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
2 changes: 1 addition & 1 deletion packages/libunbound/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions packages/python-apsw/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/python-bcrypt/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions packages/python-grpcio/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
28 changes: 10 additions & 18 deletions packages/python-lameenc/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
6 changes: 3 additions & 3 deletions packages/python-lameenc/setup.py.patch
Original file line number Diff line number Diff line change
@@ -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=
Expand Down
14 changes: 14 additions & 0 deletions packages/python-pip/android-api-abi.patch
Original file line number Diff line number Diff line change
@@ -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}"

1 change: 1 addition & 0 deletions packages/python-sabyenc3/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/python-tldp/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/python-xlib/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading
Loading