5 Commits

Author SHA1 Message Date
termux-pacman-bot
7f252c45a4 bump(x11/python-opencv-python): 92
This commit has been automatically submitted by Github Actions.
2026-02-03 13:55:07 +00:00
termux-pacman-bot
a7e8de382a bump(x11/python-opencv-python): 90
This commit has been automatically submitted by Github Actions.
2026-01-20 19:24:35 +00:00
termux-pacman-bot
fb0cdae74d tree-wide: TERMUX_PKG_PYTHON_COMMON_DEPS -> TERMUX_PKG_PYTHON_COMMON_BUILD_DEPS
- Planned here, and separated into another PR for easier review and source control: https://github.com/termux/termux-packages/pull/23652#discussion_r2206041304

%ci:no-build
2026-01-18 16:06:30 +00:00
termux-pacman-bot
f38dd0ee93 tree-wide: port debpython to termux
- debpython is the commands `py3compile` and `py3clean` from Debian. I
  am calling them that because a large chunk of their source code is
  found inside a folder inside Debian's source code named "debpython"
  - 5348f70466

- rather than packaging `.pyc` files into packages, `py3compile` and
  `py3clean` can be called from `postinst` and `prerm` scripts to
  generate all `.pyc` for the `.py` files in the package immediately
  after the package is installed, and remove all `.pyc` files immediately
  before uninstalling the package, respectively

- fixes the error `trying to overwrite '/data/data/com.termux/files/usr/lib/python3.12/__pycache__/cProfile.cpython-312.pyc'` when packages were built on-device, but at the same time, also:

- prevents the warnings `dpkg: warning: while removing python, directory '/data/data/com.termux/files/usr/lib/python3.12/site-packages' not empty so not removed` as long as no packages were installed using `pip`

- The `termux_step_create_python_debscripts.sh` can configure work on debpython (i.e. its `py3copile` and `py3clean` commands) from the glibc package `python-glibc`, if some glibc package is being compiled.

- New variables have been implemented:
- `TERMUX_PYTHON_CROSSENV_BUILDHOME` - location of crossenv's python build libraries.
- `TERMUX_PKG_PYTHON_RUNTIME_DEPS` - configures the installation of the python modules via pip3 in the pkg's debscripts. If not configured in the package, it will use the value from `TERMUX_PKG_PYTHON_TARGET_DEPS`. If the variable is set to `false`, then the customization of installing python modules will be disabled, even if the `TERMUX_PKG_PYTHON_TARGET_DEPS` variable is set in the package.
- `TERMUX_SUBPKG_PYTHON_RUNTIME_DEPS` - configures the installation of the python modules via pip3 in the subpkg's debscripts.

- Implemented reconfiguration of prefixes in python module `sysconfig` and setting in `TERMUX_PYTHON_CROSSENV_BUILDHOME`, so that python modules from crossenv building can specify system paths of termux for correct compilation.

- Added automatic addition of `python-glibc{-glibc}` dependency when using the `TERMUX_PKG_PYTHON_RUNTIME_DEPS` (for pkg; will be disabled, i.e. will not be added, if the variable is set to `false`) or `TERMUX_SUBPKG_PYTHON_RUNTIME_DEPS` (for subpkg) value.

> How to add a new Python package after this?

Everything is the same, except, now, this block is no longer necessary in `build.sh`.

```bash
termux_step_create_debscripts() {
	cat <<- EOF > ./postinst
	#!$TERMUX_PREFIX/bin/sh
	echo "Installing dependencies through pip..."
	pip3 install ${TERMUX_PKG_PYTHON_TARGET_DEPS//, / }
	EOF
}
```

- Instead, `scripts/build/termux_step_create_python_debscripts.sh` can now detect the presence of `pip` package lists in `$TERMUX_PKG_PYTHON_TARGET_DEPS`, `$TERMUX_SUBPKG_PYTHON_TARGET_DEPS`, and the `METADATA` file of the Python package if it exists, and automatically insert them as a block into the `postinst` script for all relevant packages.
- `$TERMUX_PKG_PYTHON_TARGET_DEPS` is used for `pip` dependencies that are both on-device build-time and on-device run-time dependencies, and `$TERMUX_PKG_PYTHON_RUNTIME_DEPS` is used for runtime-only `pip` dependencies. `$TERMUX_PKG_PYTHON_RUNTIME_DEPS` overrides `$TERMUX_PKG_PYTHON_TARGET_DEPS` for runtime dependencies,
  - i.e. if `TERMUX_PKG_PYTHON_RUNTIME_DEPS` is not specified, but `TERMUX_PKG_PYTHON_TARGET_DEPS` is, then `TERMUX_PKG_PYTHON_TARGET_DEPS` will be used as both on-device build and on-device runtime dependencies,
  - but if `TERMUX_PKG_PYTHON_RUNTIME_DEPS` is specified, then `TERMUX_PKG_PYTHON_TARGET_DEPS`, if specified, is used only for on-device build-time dependencies.
- If `python-pip` is not already in the dependencies of any package that needs it, the build will fail with an error instructing maintainers to add `python-pip` to the dependencies of the package that needs it.

Co-authored-by: Maxython <mixython@gmail.com>
2026-01-18 09:39:03 +00:00
termux-pacman-bot
ee602b0454 addpkg(x11/python-opencv-python): 88
- Fixes https://github.com/termux/termux-packages/issues/27407

- Could be said to be somewhat similar in design and utility to https://github.com/termux/termux-packages/pull/25434, but for OpenCV instead of CMake

- Similarly to the software 'CMake', OpenCV's PyPi package https://pypi.org/project/opencv-python/ is built from different source code from the main project, resulting in some difficulty importing it from Python projects in Termux. This package, like the `python-cmake` package, is built from the same actual source code as the software's PyPi package, but with patches to disable the installation of all files that it would normally attempt to install that are already provided by Termux packages.

- This package provides these files:

```
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/INSTALLER
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/METADATA
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/RECORD
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/REQUESTED
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/WHEEL
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/direct_url.json
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/licenses
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/licenses/LICENSE-3RD-PARTY.txt
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/licenses/LICENSE.txt
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_contrib_python-4.12.0.88.dist-info/top_level.txt
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/INSTALLER
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/METADATA
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/RECORD
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/REQUESTED
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/WHEEL
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/direct_url.json
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/licenses
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/licenses/LICENSE-3RD-PARTY.txt
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/licenses/LICENSE.txt
/data/data/com.termux/files/usr/lib/python3.12/site-packages/opencv_python-4.12.0.88.dist-info/top_level.txt
```
2025-11-26 05:39:16 +00:00