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.
libxml2 is downloaded/compiled during the build thanks to lldb
depending on it. However, libLLVM.so also links to it, and should
therefore also depend on the library.
Unpacking llvm (11.0.0) over (10.0.1-4) ...
dpkg: error processing archive /data/data/com.termux/files/usr/tmp/apt-dpkg-install-3GHYjz/0-llvm_11.0.0_aarch64.deb (--unpack):
trying to overwrite '/data/data/com.termux/files/usr/bin/dsymutil', which is also in package libllvm 10.0.1-4
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
and
Preparing to unpack .../5-clang_11.0.0_aarch64.deb ...
Unpacking clang (11.0.0) over (10.0.1-4) ...
dpkg: error processing archive /data/data/com.termux/files/usr/tmp/apt-dpkg-install-3GHYjz/5-clang_11.0.0_aarch64.deb (--unpack):
trying to overwrite '/data/data/com.termux/files/usr/bin/diagtool', which is also in package libllvm 10.0.1-4
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
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
The previous approach appended TERMUX_PREFIX to the empty default sysroot, which would
render those paths useless if the --sysroot command-line flag was ever set. With this
approach, clang reuses much more of the existing sysroot logic and makes it more
likely that a passed-in sysroot will work.
Also, remove the rpath for alternate architectures, as it wasn't working.
This new variable is extremely useful when iterating on creating a large package,
as otherwise you have to wipe the source and rebuild each time you make a mistake
with the patches or build.sh script.
Simply set TERMUX_PKG_QUICK_REBUILD=true in build.sh if a build fails and then the
TERMUX_PKG_SRCDIR and TERMUX_PKG_BUILDDIR will not be touched when you rebuild,
including that the patches will not be applied again. When you're done iterating,
diff for any new patches, save them, and remove this variable before rebuilding
from scratch, hopefully for the last time. ;)
An example is shown for the giant libllvm package, where other modifications are
also excluded if this variable is set.