Signed-off-by: Kevin Williams <admin@utermux.dev>
Co-authored-by: Twaik Yont <twaikyont@gmail.com>
Co-Authored-By: Chongyun Lee <45286352+licy183@users.noreply.github.com>
The `termux_step_host_build` runs only the first time package is built for its specific version, based on `TERMUX_HOSTBUILD_MARKER` in `termux_step_handle_hostbuild`. If `build-package.sh` is run twice, then second time, variables defined in `termux_step_host_build` won't be set in later functions since its not called, like `_PREFIX_FOR_BUILD` in `aapt/build.sh` would be unset inside `termux_step_pre_configure`, resulting in unbound variable error.
Even `termux_step_pre_configure` may not always run, depending on `$TERMUX_CONTINUE_BUILD`, so build scripts should not share variables between functions and redefine them again where necessary.
Also `_PREFIX_FOR_BUILD` should use a standard path `$TERMUX_PKG_HOSTBUILD_DIR/prefix` and not others like `$TERMUX_PKG_HOSTBUILD_DIR/_prefix`. Some build scripts use `$TERMUX_PKG_HOSTBUILD_DIR/src` for other stuff, so best use `prefix` sub directory.
As we have seen [1], i686 seem to explicitly need -fPIC. Pass
CPPFLAGS in more places when building aapt, to avoid an error like:
ld: error: relocation R_386_PC32 cannot be used against symbol config_free; recompile with -fPIC
>>> defined in /tmp/config_utils-70060d.o
>>> referenced by config_utils.c
>>> /tmp/config_utils-70060d.o:(config_free)
[1] https://github.com/termux/termux-packages/issues/7215#issuecomment-906154438
In issue https://github.com/termux/termux-packages/issues/6160 I have found
that community repo "its-pointless.github.io" specifies us as maintainer
for its packages. This is NOT TRUE and potentially misleads people using
these packages.
Now TERMUX_PKG_MAINTAINER will contain a default value which is neutral
and not specify maintainer. So all packages now have to override it to
the correct value.
[skip ci]
%ci:no-build
Linter will check packages submitted for CI build. If error was found,
build will not be allowed.
To ensure that all build.sh scripts are consistent and have at least
minimal allowed quality, linter is permanently enabled for all branches
and pull requests.
Variables
TERMUX_PKG_PLATFORM_INDEPENDENT
TERMUX_DEBUG
TERMUX_PKG_HAS_DEBUG
TERMUX_PKG_ESSENTIAL
TERMUX_SUBPKG_ESSENTIAL
TERMUX_PKG_NO_STATICSPLIT
TERMUX_PKG_BUILD_IN_SRC
TERMUX_PKG_FORCE_CMAKE
TERMUX_PKG_HOSTBUILD
should not accept arbitrary values for marking them "enabled". Instead
they should accept boolean values which makes them easier to handle and
also makes their meaning clear.
build-package.sh should make decision based on variable's value but not on
whether it is set or empty.
%ci:no-build