- adding version check of dependencies in pacman format
- improving termux_step_setup_cgct_environment()
- adding a new `-w` flag
- fix creating static packages
- Now we use cabal (comparable to rust's cargo) to build binary packages.
Reason:
- Haskell's cabal packaging system is like rust's cargo. Every packages
depends upon some specific version of other library. Hence, it is
hard to maintain each and every version.
- Patching packages so that they use latest of dependencies breaks
compatibility.
Benefits:
- Enables building very large packages like `pandoc`.
- Reduces disk space used.
- Lesser packages to maintain.
Signed-off-by: Aditya Alok <alok@termux.dev>
It replaces termux_setup_python_crossenv and can be used when
compiling python packages. Packages should specify their python
dependencies in TERMUX_PKG_PYTHON_TARGET_DEPS,
TERMUX_PKG_PYTHON_BUILD_DEPS, and TERMUX_PKG_PYTHON_COMMON_DEPS.
This add-on requires careful review and testing, but this will not interfere with compiling packages.
Co-authored-by: agnostic-apollo <agnosticapollo@gmail.com>
%ci:no-build
Otherwise these variables is not visible to child shells. This caused
configure step of termux-tools to always use debian/apt combination,
since it checks for variables among environmental variables and they
were not visible.
Make changes as per new design implemented in termux/termux-app@b950efec and termux/termux-app#2740
The package build and termux-tools scripts use current package manager for custom logic. The `termux-tools/termux-setup-package-manager` script has been added that will now be used to provide backward compatibility for termux-app `< 0.119.0` (when its released) and validate the package manager. It will also ensure the variable in not unset to prevent `unbound variable` errors if `set -u` is being used by calling scripts.
Closes#10782
This variable will disable shebang fixing during massage step. Normally
such fix shouldn't be disabled, but there are packages where it causes
a huge overhead and is not needed anyway.
Packages that are known to be affected by overhead and take long time
for building:
* papirus-icon-theme from x11-packages
As replacement for TERMUX_PKG_QUICK_REBUILD. Running
./build-package.sh -c <package> starts a build for <package>, but does
not extract and patch the source from scratch. Instead it sets up the
build variables and starts from termux_step_make.
When working on a big package that can take hours to build it is
convenient to be able to build until there is an error, then apply
some new patch (manually) to the source, and then continue from where
the build failed.
Use non-IPFS repositories for fetching dependencies when building packages.
This is required at least for CI as gateways seem to block requests due to
either rate limit or restriction for usage by cloud platforms.