X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/ec940174bd2a787f7c2ccc18f6780ca5a8fabd28..1a54c9af190387e776113b9eff0ecc1dceaeb9f6:/build-package.sh diff --git a/build-package.sh b/build-package.sh index 186facbf..4eeeac10 100755 --- a/build-package.sh +++ b/build-package.sh @@ -74,7 +74,7 @@ termux_setup_golang() { termux_error_exit "Unsupported arch: $TERMUX_ARCH" fi - local TERMUX_GO_VERSION=go1.9.2 + local TERMUX_GO_VERSION=go1.10.1 local TERMUX_GO_PLATFORM=linux-amd64 local TERMUX_BUILDGO_FOLDER=$TERMUX_COMMON_CACHEDIR/${TERMUX_GO_VERSION} @@ -86,8 +86,8 @@ termux_setup_golang() { local TERMUX_BUILDGO_TAR=$TERMUX_COMMON_CACHEDIR/${TERMUX_GO_VERSION}.${TERMUX_GO_PLATFORM}.tar.gz rm -Rf "$TERMUX_COMMON_CACHEDIR/go" "$TERMUX_BUILDGO_FOLDER" termux_download https://storage.googleapis.com/golang/${TERMUX_GO_VERSION}.${TERMUX_GO_PLATFORM}.tar.gz \ - "$TERMUX_BUILDGO_TAR" \ - de874549d9a8d8d8062be05808509c09a88a248e77ec14eb77453530829ac02b + "$TERMUX_BUILDGO_TAR" \ + 72d820dec546752e5a8303b33b009079c15c2390ce76d67cf514991646c6127b ( cd "$TERMUX_COMMON_CACHEDIR"; tar xf "$TERMUX_BUILDGO_TAR"; mv go "$TERMUX_BUILDGO_FOLDER"; rm "$TERMUX_BUILDGO_TAR" ) } @@ -110,17 +110,18 @@ termux_setup_ninja() { # Utility function to setup a current meson build system. termux_setup_meson() { termux_setup_ninja - local MESON_VERSION=0.43.0 - local MESON_FOLDER=$TERMUX_COMMON_CACHEDIR/meson-$MESON_VERSION + local MESON_VERSION=0.45.1 + local MESON_FOLDER=$TERMUX_COMMON_CACHEDIR/meson-$MESON_VERSION-v1 if [ ! -d "$MESON_FOLDER" ]; then local MESON_TAR_NAME=meson-$MESON_VERSION.tar.gz local MESON_TAR_FILE=$TERMUX_PKG_TMPDIR/$MESON_TAR_NAME + local MESON_TMP_FOLDER=$TERMUX_PKG_TMPDIR/meson-$MESON_VERSION termux_download \ https://github.com/mesonbuild/meson/releases/download/$MESON_VERSION/meson-$MESON_VERSION.tar.gz \ $MESON_TAR_FILE \ - c513eca90e0d70bf14cd1eaafea2fa91cf40a73326a7ff61f08a005048057340 - tar xf "$MESON_TAR_FILE" -C "$TERMUX_COMMON_CACHEDIR" - (cd $MESON_FOLDER && patch -p1 < $TERMUX_SCRIPTDIR/scripts/meson-android.patch) + 4d0bb0dbb1bb556cb7a4092fdfea3d6e76606bd739a4bc97481c2d7bc6200afb + tar xf "$MESON_TAR_FILE" -C "$TERMUX_PKG_TMPDIR" + mv $MESON_TMP_FOLDER $MESON_FOLDER fi TERMUX_MESON="$MESON_FOLDER/meson.py" TERMUX_MESON_CROSSFILE=$TERMUX_COMMON_CACHEDIR/meson-crossfile-$TERMUX_ARCH-v2.txt @@ -163,8 +164,8 @@ termux_setup_meson() { # Utility function to setup a current cmake build system termux_setup_cmake() { - local TERMUX_CMAKE_MAJORVESION=3.9 - local TERMUX_CMAKE_MINORVERSION=6 + local TERMUX_CMAKE_MAJORVESION=3.11 + local TERMUX_CMAKE_MINORVERSION=1 local TERMUX_CMAKE_VERSION=$TERMUX_CMAKE_MAJORVESION.$TERMUX_CMAKE_MINORVERSION local TERMUX_CMAKE_TARNAME=cmake-${TERMUX_CMAKE_VERSION}-Linux-x86_64.tar.gz local TERMUX_CMAKE_TARFILE=$TERMUX_PKG_TMPDIR/$TERMUX_CMAKE_TARNAME @@ -172,7 +173,7 @@ termux_setup_cmake() { if [ ! -d "$TERMUX_CMAKE_FOLDER" ]; then termux_download https://cmake.org/files/v$TERMUX_CMAKE_MAJORVESION/$TERMUX_CMAKE_TARNAME \ "$TERMUX_CMAKE_TARFILE" \ - 062bf45bee36ce7c2a55ae26b8b5324720f370d420a05cba91b9448c64ffdbea + 3aa8d3b53903563bdc13dfec80716c286b2228db36ef65c23bc616f9bb930367 rm -Rf "$TERMUX_PKG_TMPDIR/cmake-${TERMUX_CMAKE_VERSION}-Linux-x86_64" tar xf "$TERMUX_CMAKE_TARFILE" -C "$TERMUX_PKG_TMPDIR" mv "$TERMUX_PKG_TMPDIR/cmake-${TERMUX_CMAKE_VERSION}-Linux-x86_64" \ @@ -258,7 +259,7 @@ termux_step_setup_variables() { : "${TERMUX_ANDROID_HOME:="/data/data/com.termux/files/home"}" : "${TERMUX_DEBUG:=""}" : "${TERMUX_PKG_API_LEVEL:="21"}" - : "${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="27.0.1"}" + : "${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="27.0.3"}" : "${TERMUX_NDK_VERSION:="16"}" if [ "x86_64" = "$TERMUX_ARCH" ] || [ "aarch64" = "$TERMUX_ARCH" ]; then @@ -390,6 +391,12 @@ termux_step_start_build() { TERMUX_PKG_FULLVERSION+="-$TERMUX_PKG_REVISION" fi + if [ "$TERMUX_DEBUG" == "true" ]; then + DEBUG="-dbg" + else + DEBUG="" + fi + if [ -z "$TERMUX_DEBUG" ] && [ -z "${TERMUX_FORCE_BUILD+x}" ] && [ -e "/data/data/.built-packages/$TERMUX_PKG_NAME" ]; then @@ -574,8 +581,14 @@ termux_step_setup_toolchain() { if [ "$TERMUX_PKG_CLANG" = "no" ]; then CFLAGS+=" -Os" else - # -Oz seems good for clang, see https://github.com/android-ndk/ndk/issues/133 - CFLAGS+=" -Oz" + # -Oz seems good for clang, see https://github.com/android-ndk/ndk/issues/133. + # However, on arm it has a lot of issues such as #1520, #1680, #1765 and + # https://bugs.llvm.org/show_bug.cgi?id=35379, so use so use -Os there for now: + if [ $TERMUX_ARCH = arm ]; then + CFLAGS+=" -Os" + else + CFLAGS+=" -Oz" + fi fi fi @@ -766,33 +779,36 @@ termux_step_pre_configure() { termux_step_configure_autotools () { if [ ! -e "$TERMUX_PKG_SRCDIR/configure" ]; then return; fi - DISABLE_STATIC="--disable-static" + local DISABLE_STATIC="--disable-static" if [ "$TERMUX_PKG_EXTRA_CONFIGURE_ARGS" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--enable-static/}" ]; then # Do not --disable-static if package explicitly enables it (e.g. gdb needs enable-static to build) DISABLE_STATIC="" fi - DISABLE_NLS="--disable-nls" + local DISABLE_NLS="--disable-nls" if [ "$TERMUX_PKG_EXTRA_CONFIGURE_ARGS" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--enable-nls/}" ]; then # Do not --disable-nls if package explicitly enables it (for gettext itself) DISABLE_NLS="" fi - ENABLE_SHARED="--enable-shared" + local ENABLE_SHARED="--enable-shared" if [ "$TERMUX_PKG_EXTRA_CONFIGURE_ARGS" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-shared/}" ]; then ENABLE_SHARED="" fi - HOST_FLAG="--host=$TERMUX_HOST_PLATFORM" + + local HOST_FLAG="--host=$TERMUX_HOST_PLATFORM" if [ "$TERMUX_PKG_EXTRA_CONFIGURE_ARGS" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--host=/}" ]; then HOST_FLAG="" fi - LIBEXEC_FLAG="--libexecdir=$TERMUX_PREFIX/libexec" - if [ "$TERMUX_PKG_EXTRA_CONFIGURE_ARGS" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--libexecdir=/}" ]; then - LIBEXEC_FLAG="" - fi - QUIET_BUILD= + + local LIBEXEC_FLAG="--libexecdir=$TERMUX_PREFIX/libexec" + if [ "$TERMUX_PKG_EXTRA_CONFIGURE_ARGS" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--libexecdir=/}" ]; then + LIBEXEC_FLAG="" + fi + + local QUIET_BUILD= if [ ! -z ${TERMUX_QUIET_BUILD+x} ]; then - QUIET_BUILD="--enable-silent-rules" + QUIET_BUILD="--enable-silent-rules --silent --quiet" fi # Some packages provides a $PKG-config script which some configure scripts pickup instead of pkg-config: @@ -830,6 +846,7 @@ termux_step_configure_autotools () { AVOID_GNULIB+=" gl_cv_func_mkdir_trailing_dot_works=yes" AVOID_GNULIB+=" gl_cv_func_mkdir_trailing_slash_works=yes" AVOID_GNULIB+=" gl_cv_func_mkfifo_works=yes" + AVOID_GNULIB+=" gl_cv_func_mknod_works=yes" AVOID_GNULIB+=" gl_cv_func_realpath_works=yes" AVOID_GNULIB+=" gl_cv_func_select_detects_ebadf=yes" AVOID_GNULIB+=" gl_cv_func_snprintf_posix=yes" @@ -929,11 +946,16 @@ termux_step_post_configure () { } termux_step_make() { + local QUIET_BUILD= + if [ ! -z ${TERMUX_QUIET_BUILD+x} ]; then + QUIET_BUILD="-s" + fi + if ls ./*akefile &> /dev/null; then if [ -z "$TERMUX_PKG_EXTRA_MAKE_ARGS" ]; then - make -j $TERMUX_MAKE_PROCESSES + make -j $TERMUX_MAKE_PROCESSES $QUIET_BUILD else - make -j $TERMUX_MAKE_PROCESSES ${TERMUX_PKG_EXTRA_MAKE_ARGS} + make -j $TERMUX_MAKE_PROCESSES $QUIET_BUILD ${TERMUX_PKG_EXTRA_MAKE_ARGS} fi fi } @@ -948,7 +970,7 @@ termux_step_make_install() { make -j 1 ${TERMUX_PKG_EXTRA_MAKE_ARGS} ${TERMUX_PKG_MAKE_INSTALL_TARGET} fi elif test -f build.ninja; then - ninja install + ninja -j $TERMUX_MAKE_PROCESSES install fi } @@ -1085,7 +1107,7 @@ termux_step_massage() { mkdir -p DEBIAN cd DEBIAN cat > control <<-HERE - Package: $SUB_PKG_NAME + Package: $SUB_PKG_NAME$DEBUG Architecture: ${SUB_PKG_ARCH} Installed-Size: ${SUB_PKG_INSTALLSIZE} Maintainer: $TERMUX_PKG_MAINTAINER @@ -1101,7 +1123,7 @@ termux_step_massage() { for f in $TERMUX_SUBPKG_CONFFILES; do echo "$TERMUX_PREFIX/$f" >> conffiles; done # Create the actual .deb file: - TERMUX_SUBPKG_DEBFILE=$TERMUX_DEBDIR/${SUB_PKG_NAME}_${TERMUX_PKG_FULLVERSION}_${SUB_PKG_ARCH}.deb + TERMUX_SUBPKG_DEBFILE=$TERMUX_DEBDIR/${SUB_PKG_NAME}${DEBUG}_${TERMUX_PKG_FULLVERSION}_${SUB_PKG_ARCH}.deb test ! -f "$TERMUX_COMMON_CACHEDIR/debian-binary" && echo "2.0" > "$TERMUX_COMMON_CACHEDIR/debian-binary" ar cr "$TERMUX_SUBPKG_DEBFILE" \ "$TERMUX_COMMON_CACHEDIR/debian-binary" \ @@ -1153,7 +1175,7 @@ termux_step_create_debfile() { mkdir -p DEBIAN cat > DEBIAN/control <<-HERE - Package: $TERMUX_PKG_NAME + Package: $TERMUX_PKG_NAME$DEBUG Architecture: ${TERMUX_ARCH} Installed-Size: ${TERMUX_PKG_INSTALLSIZE} Maintainer: $TERMUX_PKG_MAINTAINER @@ -1180,7 +1202,7 @@ termux_step_create_debfile() { tar -cJf "$TERMUX_PKG_PACKAGEDIR/control.tar.xz" . test ! -f "$TERMUX_COMMON_CACHEDIR/debian-binary" && echo "2.0" > "$TERMUX_COMMON_CACHEDIR/debian-binary" - TERMUX_PKG_DEBFILE=$TERMUX_DEBDIR/${TERMUX_PKG_NAME}_${TERMUX_PKG_FULLVERSION}_${TERMUX_ARCH}.deb + TERMUX_PKG_DEBFILE=$TERMUX_DEBDIR/${TERMUX_PKG_NAME}${DEBUG}_${TERMUX_PKG_FULLVERSION}_${TERMUX_ARCH}.deb # Create the actual .deb file: ar cr "$TERMUX_PKG_DEBFILE" \ "$TERMUX_COMMON_CACHEDIR/debian-binary" \