From d220576dfbf895a6cf239e16df3f6432d4850d2d Mon Sep 17 00:00:00 2001 From: vhqtvn Date: Sun, 27 Jun 2021 21:33:45 +0700 Subject: [PATCH] fix some non-building packages (#7058) * fix ccache building failed due to sse * gogs require go-bindata to be built * mariadb's cmake need to change END to ENDIF * fix neovim building due to gitsubmodule usage * php-redis: add blacklist from php dep * rlwrap update to new version * stfl disable perl and ruby * util-linux comment out shm & sem support * weechat disable ruby * tor building need glob --- packages/ccache/build.sh | 4 ++ packages/djvulibre/build.sh | 2 +- packages/gogs/build.sh | 13 +++- packages/mariadb/build.sh | 3 + packages/neovim/build.sh | 30 ++++++-- packages/neovim/custom-bin/cmake | 77 +++++++++++++++++++++ packages/rlwrap/build.sh | 4 +- packages/stfl/build.sh | 11 ++- packages/tor/build.sh | 3 +- packages/util-linux/build.sh | 1 + packages/util-linux/sys-utils-ipcmk.c.patch | 52 ++++++++++++++ packages/weechat/build.sh | 2 + 12 files changed, 192 insertions(+), 10 deletions(-) create mode 100755 packages/neovim/custom-bin/cmake create mode 100644 packages/util-linux/sys-utils-ipcmk.c.patch diff --git a/packages/ccache/build.sh b/packages/ccache/build.sh index 1509f087de..59866c2060 100644 --- a/packages/ccache/build.sh +++ b/packages/ccache/build.sh @@ -6,3 +6,7 @@ TERMUX_PKG_VERSION=4.3 TERMUX_PKG_SRCURL=https://github.com/ccache/ccache/releases/download/v$TERMUX_PKG_VERSION/ccache-$TERMUX_PKG_VERSION.tar.xz TERMUX_PKG_SHA256=504a0f2184465c306826f035b4bc00bae7500308d6af4abbfb50e33a694989b4 TERMUX_PKG_DEPENDS="zlib, zstd" + +#[46/89] Building ASM object src/third_party/blake3/CMakeFiles/blake3.dir/blake3_sse2_x86-64_unix.S.o +#FAILED: src/third_party/blake3/CMakeFiles/blake3.dir/blake3_sse2_x86-64_unix.S.o +TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DHAVE_ASM_AVX2=FALSE -DHAVE_ASM_AVX512=FALSE -DHAVE_ASM_SSE2=FALSE -DHAVE_ASM_SSE41=FALSE " diff --git a/packages/djvulibre/build.sh b/packages/djvulibre/build.sh index 32d2b89e9e..fa1009805c 100644 --- a/packages/djvulibre/build.sh +++ b/packages/djvulibre/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Suite to create, manipulate and view DjVu ('déjà vu') TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=3.5.28 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=http://downloads.sourceforge.net/djvu/djvulibre-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=fcd009ea7654fde5a83600eb80757bd3a76998e47d13c66b54c8db849f8f2edc TERMUX_PKG_DEPENDS="libtiff" diff --git a/packages/gogs/build.sh b/packages/gogs/build.sh index d16bd270f2..e1ed43b807 100644 --- a/packages/gogs/build.sh +++ b/packages/gogs/build.sh @@ -3,10 +3,20 @@ TERMUX_PKG_DESCRIPTION="A painless self-hosted Git service." TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="Injamul Mohammad Mollah " TERMUX_PKG_VERSION=0.12.3 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/gogs/gogs/archive/v$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=6a0e1e369d2e097a73fe99fb78046db0b022ce0c229d3977068e7b21e2e364c8 TERMUX_PKG_DEPENDS="dash, git" TERMUX_PKG_CONFFILES="etc/gogs/app.ini" +TERMUX_PKG_HOSTBUILD=true + +termux_step_handle_hostbuild() { + termux_setup_golang + export GOPATH=$TERMUX_PKG_HOSTBUILD_DIR + mkdir -p $TERMUX_PKG_HOSTBUILD_DIR + cd $TERMUX_PKG_HOSTBUILD_DIR + go get -u github.com/kevinburke/go-bindata/... +} termux_step_make() { termux_setup_golang @@ -20,7 +30,8 @@ termux_step_make() { LDFLAGS+=" -X gogs.io/gogs/internal/conf.CustomConf=$TERMUX_PREFIX/etc/gogs/app.ini" LDFLAGS+=" -X gogs.io/gogs/internal/conf.AppWorkPath=$TERMUX_PREFIX/var/lib/gogs" LDFLAGS+=" -X gogs.io/gogs/internal/conf.CustomPath=$TERMUX_PREFIX/var/lib/gogs" - GOGS_VERSION=v"$TERMUX_PKG_VERSION" TAGS="bindata sqlite" make all + + PATH=$PATH:$TERMUX_PKG_HOSTBUILD_DIR/bin GOGS_VERSION=v"$TERMUX_PKG_VERSION" TAGS="bindata sqlite" make all } termux_step_make_install() { diff --git a/packages/mariadb/build.sh b/packages/mariadb/build.sh index dcfea75dcb..c6ceda5998 100644 --- a/packages/mariadb/build.sh +++ b/packages/mariadb/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="A drop-in replacement for mysql server" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=2:10.5.8 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=http://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-${TERMUX_PKG_VERSION:2}/source/mariadb-${TERMUX_PKG_VERSION:2}.tar.gz TERMUX_PKG_SHA256=eb4824f6f2c532cd3fc6a6bce7bf78ea7c6b949f8bdd07656b2c84344e757be8 TERMUX_PKG_DEPENDS="libc++, libiconv, liblzma, ncurses, libedit, openssl, pcre2, libcrypt, libandroid-support, libandroid-glob, zlib, liblz4" @@ -71,6 +72,7 @@ TERMUX_PKG_BLACKLISTED_ARCHES="i686" termux_step_host_build() { termux_setup_cmake + sed -i 's/^\s*END[(][)]/ENDIF()/g' $TERMUX_PKG_SRCDIR/libmariadb/cmake/ConnectorName.cmake cmake -G "Unix Makefiles" \ $TERMUX_PKG_SRCDIR \ -DWITH_SSL=bundled \ @@ -95,6 +97,7 @@ termux_step_pre_configure() { # Avoid undefined reference to __atomic_load_8: CFLAGS+=" -latomic" fi + sed -i 's/^\s*END[(][)]/ENDIF()/g' $TERMUX_PKG_SRCDIR/libmariadb/cmake/ConnectorName.cmake } termux_step_post_massage() { diff --git a/packages/neovim/build.sh b/packages/neovim/build.sh index f018f8a57a..b7a4d1eff9 100644 --- a/packages/neovim/build.sh +++ b/packages/neovim/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Ambitious Vim-fork focused on extensibility and agility TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.4.4 -TERMUX_PKG_REVISION=3 +TERMUX_PKG_REVISION=4 TERMUX_PKG_SRCURL=https://github.com/neovim/neovim/archive/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=2f76aac59363677f37592e853ab2c06151cca8830d4b3fe4675b4a52d41fc42c TERMUX_PKG_DEPENDS="libiconv, libuv, luv, libmsgpack, libandroid-support, libvterm, libtermkey, liblua53, libunibilium" @@ -22,18 +22,40 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" " TERMUX_PKG_CONFFILES="share/nvim/sysinit.vim" +_patch_luv() { + # git submodule update --init deps/lua-compat-5.3 failed + cp -r $1/build/src/lua-compat-5.3/* $1/build/src/luv/deps/lua-compat-5.3/ + cp -r $1/build/src/luajit/* $1/build/src/luv/deps/luajit/ + cp -r $1/build/src/libuv/* $1/build/src/luv/deps/libuv/ +} + termux_step_host_build() { termux_setup_cmake + TERMUX_ORIGINAL_CMAKE=$(which cmake) + if [ ! -f "$TERMUX_ORIGINAL_CMAKE.orig" ]; then + mv "$TERMUX_ORIGINAL_CMAKE" "$TERMUX_ORIGINAL_CMAKE.orig" + fi + cp "$TERMUX_PKG_BUILDER_DIR/custom-bin/cmake" "$TERMUX_ORIGINAL_CMAKE" + chmod +x "$TERMUX_ORIGINAL_CMAKE" + export TERMUX_ORIGINAL_CMAKE="$TERMUX_ORIGINAL_CMAKE.orig" + mkdir -p $TERMUX_PKG_HOSTBUILD_DIR/deps cd $TERMUX_PKG_HOSTBUILD_DIR/deps - cmake $TERMUX_PKG_SRCDIR/third-party - make -j 1 + cmake $TERMUX_PKG_SRCDIR/third-party || bash + + make -j 1 \ + || (_patch_luv $TERMUX_PKG_HOSTBUILD_DIR/deps && make -j 1 ) cd $TERMUX_PKG_SRCDIR - make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=$TERMUX_PKG_HOSTBUILD_DIR -DUSE_BUNDLED_LUAROCKS=ON" install + + make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=$TERMUX_PKG_HOSTBUILD_DIR -DUSE_BUNDLED_LUAROCKS=ON" install \ + || (_patch_luv $TERMUX_PKG_SRCDIR/.deps && make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=$TERMUX_PKG_HOSTBUILD_DIR -DUSE_BUNDLED_LUAROCKS=ON" install) + make distclean rm -Rf build/ + + cd $TERMUX_PKG_HOSTBUILD_DIR } termux_step_pre_configure() { diff --git a/packages/neovim/custom-bin/cmake b/packages/neovim/custom-bin/cmake new file mode 100755 index 0000000000..a310d5c4dc --- /dev/null +++ b/packages/neovim/custom-bin/cmake @@ -0,0 +1,77 @@ +#!/bin/bash + +if [ -z $TERMUX_ORIGINAL_CMAKE ]; then + SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + TERMUX_ORIGINAL_CMAKE="$SCRIPTPATH/cmake.orig" +fi + +# Need to move --build argument to first due to following error: +# CMake Error: Unknown argument --build +# CMake Error: Run 'cmake --help' for all supported options. +HAS_BUILD=false +for arg in "$@"; do + if [ "$arg" == "--build" ]; then + HAS_BUILD=true + fi +done + +if ! $HAS_BUILD; then + $TERMUX_ORIGINAL_CMAKE "$@" + exit $? +fi + + +BUILD_FLAG=false +BUILD_VALUE= +NEW_ARGS=() +UPDATE_CMAKE_CACHE=() +for arg in "$@" +do + if [ "$arg" == "--build" ]; then + BUILD_FLAG=true + else + if $BUILD_FLAG; then + BUILD_VALUE="$arg" + BUILD_FLAG=false + else + case "$arg" in + -D*=*) + UPDATE_CMAKE_CACHE+=("${arg:2}") + ;; + *) + NEW_ARGS+=("$arg") + ;; + esac + fi + fi +done + +if [ ! -z $BUILD_VALUE ]; then + NEW_ARGS=(--build "$BUILD_VALUE" "${NEW_ARGS[@]}") +fi + +function update_cmake_cache() { + [ ${#UPDATE_CMAKE_CACHE[@]} -eq 0 ] && return + [ -z $BUILD_VALUE ] && return + if [ -f "$BUILD_VALUE/CMakeCache.txt" ]; then + rm -rf "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp" + cp "$BUILD_VALUE/CMakeCache.txt" "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp" + cat "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp" | sed -E "$(python3 -c 'import os, sys +def z(x): return x.replace("/","\\/") +for a in sys.argv[2:]: print("-e s/^"+z(a.split("=",1)[0])+":(.*)=.*$/"+z(a.split("=",1)[0])+":\\1="+z(a.split("=",1)[1])+"/g", end=" ") +' -- "${UPDATE_CMAKE_CACHE[@]}")" > "$BUILD_VALUE/CMakeCache.txt" + fi +} + +function undo_update_cmake_cache() { + [ ${#UPDATE_CMAKE_CACHE[@]} -eq 0 ] && return + [ -z $BUILD_VALUE ] && return + [ ! -f "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp" ] && return + mv -f "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp" "$BUILD_VALUE/CMakeCache.txt" +} + +update_cmake_cache +trap undo_update_cmake_cache EXIT + + +$TERMUX_ORIGINAL_CMAKE "${NEW_ARGS[@]}" diff --git a/packages/rlwrap/build.sh b/packages/rlwrap/build.sh index 719a4f150b..2ce631b612 100644 --- a/packages/rlwrap/build.sh +++ b/packages/rlwrap/build.sh @@ -2,9 +2,9 @@ TERMUX_PKG_HOMEPAGE=https://github.com/hanslub42/rlwrap TERMUX_PKG_DESCRIPTION="Wrapper using readline to enable editing of keyboard input for commands" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=0.45 +TERMUX_PKG_VERSION=0.45.2 TERMUX_PKG_SRCURL=https://fossies.org/linux/privat/rlwrap-${TERMUX_PKG_VERSION}.tar.xz -TERMUX_PKG_SHA256=0ac719413abd5751481bb67561937ca46028fd8473e7e4a7e4089aadbd9c673e +TERMUX_PKG_SHA256=feb49c4ffa79f78d2439b4ffa933c77eed57eeb614ab84d967b8d692e0f6beb1 TERMUX_PKG_DEPENDS="ncurses, readline" TERMUX_PKG_BUILD_IN_SRC=true TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" diff --git a/packages/stfl/build.sh b/packages/stfl/build.sh index d0b430315c..abe5d633aa 100644 --- a/packages/stfl/build.sh +++ b/packages/stfl/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Structured Terminal Forms Language/Library" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.24 -TERMUX_PKG_REVISION=3 +TERMUX_PKG_REVISION=4 TERMUX_PKG_SRCURL=http://www.clifford.at/stfl/stfl-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=d4a7aa181a475aaf8a8914a8ccb2a7ff28919d4c8c0f8a061e17a0c36869c090 TERMUX_PKG_DEPENDS="libandroid-support, libiconv, ncurses" @@ -11,6 +11,15 @@ TERMUX_PKG_BREAKS="stfl-dev" TERMUX_PKG_REPLACES="stfl-dev" TERMUX_PKG_BUILD_IN_SRC=true +termux_step_pre_configure(){ + # mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h + sed -i 's/FOUND_RUBY = 1/FOUND_RUBY = 0/g' Makefile.cfg + + # /usr/bin/ld: ../libstfl.a(public.o): Relocations in generic ELF (EM: 183) + # /usr/bin/ld: ../libstfl.a: error adding symbols: file in wrong format + sed -i 's/FOUND_PERL5 = 1/FOUND_PERL5 = 0/g' Makefile.cfg +} + termux_step_configure() { CC+=" $CPPFLAGS" export LDLIBS="-liconv" diff --git a/packages/tor/build.sh b/packages/tor/build.sh index 4fc175632e..ebcdf0390f 100644 --- a/packages/tor/build.sh +++ b/packages/tor/build.sh @@ -3,9 +3,10 @@ TERMUX_PKG_DESCRIPTION="The Onion Router anonymizing overlay network" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.4.5.7 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://www.torproject.org/dist/tor-$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=447fcaaa133e2ef22427e98098a60a9c495edf9ff3e0dd13f484b9ad0185f074 -TERMUX_PKG_DEPENDS="libevent, openssl, liblzma, zlib" +TERMUX_PKG_DEPENDS="libevent, openssl, liblzma, zlib, libandroid-glob" TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-zstd --disable-unittests" TERMUX_PKG_CONFFILES="etc/tor/torrc" TERMUX_PKG_SERVICE_SCRIPT=("tor" 'exec tor 2>&1') diff --git a/packages/util-linux/build.sh b/packages/util-linux/build.sh index f30b5a478e..93ab0b8998 100644 --- a/packages/util-linux/build.sh +++ b/packages/util-linux/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Miscellaneous system utilities" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=2.36.2 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://www.kernel.org/pub/linux/utils/util-linux/v${TERMUX_PKG_VERSION:0:4}/util-linux-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=f7516ba9d8689343594356f0e5e1a5f0da34adfbc89023437735872bb5024c5f TERMUX_PKG_DEPENDS="ncurses, libcrypt, zlib" diff --git a/packages/util-linux/sys-utils-ipcmk.c.patch b/packages/util-linux/sys-utils-ipcmk.c.patch new file mode 100644 index 0000000000..9616fab47e --- /dev/null +++ b/packages/util-linux/sys-utils-ipcmk.c.patch @@ -0,0 +1,52 @@ +--- ./sys-utils/ipcmk.c.orig 2021-06-05 14:50:46.811230515 +0000 ++++ ./sys-utils/ipcmk.c 2021-06-05 14:52:14.776138430 +0000 +@@ -26,8 +26,10 @@ + #include + #include + #include ++#ifndef __ANDROID__ + #include + #include ++#endif + #include + + #include "c.h" +@@ -38,26 +40,38 @@ + + static int create_shm(size_t size, int permission) + { ++#ifdef __ANDROID__ ++ return -1; ++#else + key_t key; + + ul_random_get_bytes(&key, sizeof(key)); + return shmget(key, size, permission | IPC_CREAT); ++#endif + } + + static int create_msg(int permission) + { ++#ifdef __ANDROID__ ++ return -1; ++#else + key_t key; + + ul_random_get_bytes(&key, sizeof(key)); + return msgget(key, permission | IPC_CREAT); ++#endif + } + + static int create_sem(int nsems, int permission) + { ++#ifdef __ANDROID__ ++ return -1; ++#else + key_t key; + + ul_random_get_bytes(&key, sizeof(key)); + return semget(key, nsems, permission | IPC_CREAT); ++#endif + } + + static void __attribute__((__noreturn__)) usage(void) diff --git a/packages/weechat/build.sh b/packages/weechat/build.sh index 0395f55fc5..32b80d477b 100644 --- a/packages/weechat/build.sh +++ b/packages/weechat/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Fast, light and extensible IRC chat client" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=3.0.1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://www.weechat.org/files/src/weechat-${TERMUX_PKG_VERSION}.tar.bz2 TERMUX_PKG_SHA256=63ac24c41e88798ad48bfbe8a7e1fd56ddf24416f86bccd3a53b258a569ca038 TERMUX_PKG_DEPENDS="libiconv, ncurses, libgcrypt, libcurl, libgnutls, libandroid-support, zlib" @@ -19,6 +20,7 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DENABLE_PYTHON3=ON -DENABLE_TCL=OFF -DENABLE_PHP=OFF +-DENABLE_RUBY=OFF -DENABLE_JAVASCRIPT=OFF -DENABLE_GUILE=OFF -DENABLE_SPELL=OFF