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
This will make things as std::to_string() and other C++ features
work with a modern and supported C++ library.
We package up libc++_shared.so and bump the revision of every C++
using package to make it rebuild against it.
Users who have built C++ using libraries or programs will probably
need to rebuild them if they are linked against Termux-supplied
libraries, as user code was previously linked against gnustl while
the system libraries are now using libc++, and it's not a good idea
to mix C++ standard libraries in a program.
PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER should only
be used for statically allocated mutexes - not doing it here breaks
building on 64-bit Android.
The play-audio binary links to libOpenSLES, which links indirectly
to libskia. As libskia links to both libpng and libjpeg this means
problems if either of those libraries are installed from a Termux
package into LD_LIBRARY_PATH.
Avoid this by placing the play-audio binary into libexec/, and let
bin/play-audio be a wrapper script which resets LD_LIBRARY_PATH
before calling the binary in libexec/. Fixes#103.