Otherwise we get warnings like:
CONFIG key 'ranlib' does not exist in Config.pm
Use of uninitialized value $m[72] in join or string at /home/builder/.termux-build/perl/src/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm line 365.
which prevents installation/compilation of some perl modules.
After clang symlinks were fixed in f32b2c0e7e ("libllvm: replace
arm-linux-androideabi-clang symlink with wrapper") this should no
longer be an issue for perl, -pie is automatically added when we
target armv7a and api level >= 21.
This reverts commit 93fca0f5c3.
Before, trying to compile some perl modules on arm fails with an
error like
t/01-simple.t ..... 5/7 "./add": error: Android 5.0 and later only support position-independent executables (-fPIE).
No idea why it occurs on arm but not on aarch64 or x86_64. Error
should probably be fixed properly elsewhere in perl's source code, but
let's go for this easy fix for now. Adding -pie here also introduces
warnings when building perl packages on device due to clang -E not
recognizing it, but at least they compile..
Tested on lineage-18.1 arm tablet.
I.e. preprocessor mode. This silences warning messages both when
cross-compiling perl and when compiling perl packages on device.
Note that the main perl binary ends up with RUNPATH set to
$PREFIX/lib/perl5/5.32.1/arm-android/CORE, instead of $PREFIX/lib
_and_ $PREFIX/lib/perl5/5.32.1/arm-android/CORE. perl only links
against the standard libraries and libperl.so though, and the latter
is in $PREFIX/lib/perl5/5.32.1/arm-android/CORE so there should be no
need to add $PREFIX/lib to RUNPATH (unless I am missing something).
Tested by running perl and installing some perl modules on an arm
tablet,
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
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
* build-package.sh: allow for arrays in TERMUX_PKG_{SRCURL,SHA256}
Packages that require several source archives can then set these parameters to
arrays instead of downloading them "manually" in termux_step_post_extract.
Downloaded files are extracted into subfolders in TERMUX_PKG_SRCDIR.
Tested for backward compatibility in a couple of packages and the combinations
tar + tar, zip + tar, tar + zip, zip + zip.
* perl: download perl-cross through TERMUX_PKG_SRCURL
* perl: remove $PREFIX/{lib/libperl.so,include/perl} before build
Otherwise building perl twice doesn't give the same results, symlinks are
messed up.
Also remove old remnant from when there was a Kid.pm.patch.
* bash: fix tiny typo
* ecj: remove hardcoded SHA256 and pkg version
* elfutils: download argp-standalone through TERMUX_PKG_SRCURL
* ldc: download all src archives through TERMUX_PKG_SRCURL
* libgc: download libatomic_ops through TERMUX_PKG_SRCURL
* libllvm: download all src archives through TERMUX_PKG_SRCURL
* linux-man-pages: download src archives through TERMUX_PKG_SRCURL
* ncurses: download all src archives through TERMUX_PKG_SRCURL
* pngquant: download lib sources through TERMUX_PKG_SRCURL
Use .zip for lib since the downloaded archives are otherwise both named
$TERMUX_PKG_VERSION.tar.gz and replace each other. This causes caching to
not work.