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.
posix_spawn is not available on Android devices.
While this commit is not necessary for cross-compiling, it is required
when building on-device since there posix_spawn is found somehow. This
produces following errors:
./spawn.h:514:17: error: use of undeclared identifier 'POSIX_SPAWN_RESETIDS'
[(((POSIX_SPAWN_RESETIDS | POSIX_SPAWN_SETPGROUP
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
Partial compatibility for on-device builds.
There is no guarantee that it will be possible to build all available
packages and built packages will have same reliability that cross-compiled
but should solve "self-hosting" problems as much as possible.
Do not use pipes for building & uploading packages because:
* They spawn more jobs on Bintray for metadata generation - each upload is
done in a separate session.
* Bintray doesn't handle well concurrent uploads and metadata can be corrupted.
This happened in all recent builds of platform independent packages - in
each upload task file had a same name and that triggered problem with metadata.
* Using delays for workaround for a problem described above works, but isn't
safe.
CI periodically shows error like
Failed to decrypt some environment variables
so it will be better to stop immediately when environment is inconsistent
for unknown reason (e.g. due to Github's problems).