这是indexloc提供的服务,不要输入任何密码
Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/dropbear/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Small SSH server and client"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="2024.85"
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://matt.ucc.asn.au/dropbear/releases/dropbear-${TERMUX_PKG_VERSION}.tar.bz2
TERMUX_PKG_SHA256=86b036c433a69d89ce51ebae335d65c47738ccf90d13e5eb0fea832e556da502
TERMUX_PKG_DEPENDS="termux-auth, zlib"
Expand All @@ -13,6 +14,9 @@ TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-syslog --disable-utmp --disable-utmpx --disable-wtmp --disable-static"
# Avoid linking to libcrypt for server password authentication:
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_lib_crypt_crypt=no"
# Avoid linking to libtomcrypt if it was installed previously,
# to avoid "ld.lld: error: undefined symbol: ltm_desc"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_lib_tomcrypt_poly1305_init=no"
# build a multi-call binary & enable progress info in 'scp'
TERMUX_PKG_EXTRA_MAKE_ARGS="MULTI=1 SCPPROGRESS=1"

Expand Down
7 changes: 7 additions & 0 deletions packages/liblightning/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,16 @@ TERMUX_PKG_DESCRIPTION="A library to aid in making portable programs that compil
TERMUX_PKG_LICENSE="GPL-3.0, LGPL-3.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=2.2.0
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://ftp.gnu.org/gnu/lightning/lightning-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=4e3984ff1ccf0ba30a985211d40fc5c06b25f014ebdf3d80d0fe3d0c80dd7c0e
TERMUX_PKG_DEPENDS="zlib"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
ac_cv_func_ffsl=yes
"

# Fixes "ld.lld: error: unable to find library -liberty" anytime the binutils-libs
# package was installed in the same $TERMUX_PREFIX before the build of liblightning.
termux_step_pre_configure() {
autoreconf -fi
}
1 change: 1 addition & 0 deletions packages/libprotozero/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ TERMUX_PKG_LICENSE="BSD 2-Clause"
TERMUX_PKG_LICENSE_FILE="LICENSE.md"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1.7.1
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://github.com/mapbox/protozero/archive/v${TERMUX_PKG_VERSION}.zip
TERMUX_PKG_SHA256=eb45bbad4c5e881e55f0d2c5175cc4a5068e9fff613a7c37479b0b94f94a7392
TERMUX_PKG_GROUPS="science"
Expand Down
22 changes: 22 additions & 0 deletions packages/libprotozero/protobuf-is-only-needed-for-tests.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
CMakeLists.txt: protobuf is only needed for tests

Don't check for protobuf if tests are disabled. As a side effect, this
will avoid a build failure if clang-tidy and protobuf are found but
tests are disabled

Fix #109

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,7 +52,9 @@ endif()
#
#-----------------------------------------------------------------------------

-find_package(Protobuf)
+if(BUILD_TESTING)
+ find_package(Protobuf)
+endif()


#-----------------------------------------------------------------------------
3 changes: 2 additions & 1 deletion packages/mariadb/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +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:11.5.2"
TERMUX_PKG_REVISION=1
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL=https://archive.mariadb.org/mariadb-${TERMUX_PKG_VERSION#*:}/source/mariadb-${TERMUX_PKG_VERSION#*:}.tar.gz
TERMUX_PKG_SHA256=e25fac00aeb34610faf62182836a14e3310c0ca5d882e9109f63bd8dfdc3542d
TERMUX_PKG_DEPENDS="libandroid-support, libc++, libcrypt, libedit, liblz4, liblzma, ncurses, openssl, pcre2, zlib, zstd"
Expand All @@ -20,6 +20,7 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DBUILD_CONFIG=mysql_release
-DCAT_EXECUTABLE=$(command -v cat)
-DGIT_EXECUTABLE=$(command -v git)
-DHAVE_SYSTEM_LIBFMT_EXITCODE=0
-DGSSAPI_FOUND=NO
-DGRN_WITH_LZ4=yes
-DENABLED_LOCAL_INFILE=ON
Expand Down
5 changes: 3 additions & 2 deletions packages/proxmark3/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="The Swiss Army Knife of RFID Research - RRG/Iceman repo"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Marlin Sööse <marlin.soose@esque.ca>"
TERMUX_PKG_VERSION="1:4.18994"
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://github.com/RfidResearchGroup/proxmark3/archive/v${TERMUX_PKG_VERSION:2}.tar.gz
TERMUX_PKG_SHA256=4a802faedf59e452328f4d955c2563277ed420bdb223052778e1d9f16ad90e0d
TERMUX_PKG_AUTO_UPDATE=true
Expand All @@ -11,8 +12,8 @@ TERMUX_PKG_BUILD_IN_SRC="true"
TERMUX_PKG_BLACKLISTED_ARCHES="i686, x86_64"

termux_step_post_configure() {
export LDLIBS="-L${TERMUX_PREFIX}/lib"
export INCLUDES="-I${TERMUX_PREFIX}/include"
export LDLIBS="$LDFLAGS"
export INCLUDES="$CPPFLAGS"
TERMUX_PKG_EXTRA_MAKE_ARGS="client CC=$CC CXX=$CXX LD=$CXX cpu_arch=$TERMUX_ARCH SKIPREVENGTEST=1 SKIPQT=1 SKIPPTHREAD=1 SKIPGD=1 PLATFORM=PM3GENERIC"
}

Expand Down
17 changes: 11 additions & 6 deletions packages/simulavr/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ _VERSION_MAJOR=1
_VERSION_MINOR=1
_VERSION_PATCH=0
TERMUX_PKG_VERSION=1:${_VERSION_MAJOR}.${_VERSION_MINOR}.${_VERSION_PATCH}
TERMUX_PKG_REVISION=1
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL="git+https://git.savannah.nongnu.org/git/simulavr"
TERMUX_PKG_GIT_BRANCH=release-${TERMUX_PKG_VERSION#*:}
TERMUX_PKG_DEPENDS="libc++"
Expand All @@ -28,11 +28,16 @@ termux_step_post_get_source() {
| patch --silent -p1
}

termux_step_post_make_install() {
mv "$TERMUX_PREFIX/share/doc/common" "$TERMUX_PREFIX/share/doc/simulavr"
termux_step_make_install() {
install -DTm755 "$TERMUX_PKG_BUILDDIR"/app/"$TERMUX_PKG_NAME" \
"$TERMUX_PREFIX"/bin/"$TERMUX_PKG_NAME"
install -Dm644 "$TERMUX_PKG_BUILDDIR"/libsim/libsim.so \
-t "$TERMUX_PREFIX"/lib/
install -Dm644 "$TERMUX_PKG_BUILDDIR"/doc/{copyright,SUPPORT,AUTHORS,README.gdb,NEWS,TODO,README} \
-t "$TERMUX_PREFIX"/share/doc/"$TERMUX_PKG_NAME"
install -DTm644 "$TERMUX_PKG_BUILDDIR"/doc/COPYING \
"$TERMUX_PREFIX"/share/doc/"$TERMUX_PKG_NAME"/LICENSE
# Headers are moved into their own subdirectory to prevent conflicts.
# Might cause issues when using them.
mv "$TERMUX_PREFIX/include" "$TERMUX_PREFIX/include-simulavr"
mkdir "$TERMUX_PREFIX/include"
mv "$TERMUX_PREFIX/include-simulavr" "$TERMUX_PREFIX/include/simulavr"
cp -rf "$TERMUX_PKG_BUILDDIR"/include/ "$TERMUX_PREFIX"/include/"$TERMUX_PKG_NAME"
}
3 changes: 2 additions & 1 deletion packages/tor/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="The Onion Router anonymizing overlay network"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="0.4.8.12"
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://www.torproject.org/dist/tor-$TERMUX_PKG_VERSION.tar.gz
TERMUX_PKG_SHA256=ca7cc735d98e3747b58f2f3cc14f804dd789fa0fb333a84dcb6bd70adbb8c874
TERMUX_PKG_AUTO_UPDATE=true
Expand All @@ -13,7 +14,7 @@ TERMUX_PKG_BUILD_DEPENDS="libandroid-glob"
# helpful in our case. Although it would be good to go through the source and
# ensure that in future there is not any other Android specific behaviour which
# affects security/anonymity.
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-zstd --disable-unittests"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-zstd --disable-unittests --disable-seccomp"
TERMUX_PKG_CONFFILES="etc/tor/torrc"
TERMUX_PKG_SERVICE_SCRIPT=("tor" 'exec tor 2>&1')

Expand Down
74 changes: 69 additions & 5 deletions scripts/build/termux_step_override_config_scripts.sh
Original file line number Diff line number Diff line change
@@ -1,16 +1,79 @@
termux_step_override_config_scripts() {
if [ "$TERMUX_ON_DEVICE_BUILD" = true ]; then
if [ "$TERMUX_ON_DEVICE_BUILD" = true ] || [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
return
fi

# resolves many variants of "cannot execute binary file: Exec format error"
# only symlinking host binaries over incompatible architecture and libc crossbuild rootfs binaries
# is not quite 100% effective because of the edge case produced by installing
# libprotobuf into $TERMUX_PREFIX first, then building libprotozero, which will attempt
# to run the binary /data/data/com.termux/files/usr/bin/protoc which cannot be replaced
# by any other method than deleting it because protoc is not preinstalled in the build host.
# just deleting the files is also not a completely successful option because the package
# ragel depends on the package colm, and ragel's build attempts to detect the colm binary,
# for ragel, one of the root causes is probably something about its current configure.diff patch,
# since that patch causes ragel to still attempt to detect the colm binary but just not run it,
# but it's enough that there is one package to tell me that the binaries cannot just be
# deleted and must always be symlinked to something to produce a working outcome most reliably.
# and will fail if the binary has simply been deleted.
# Therefore, this symlinks if applicable, but if there is no host binary available
# to symlink to, the binary is stubbed.
handle_incompatible_binary() {
host_binary="$1"
prefix_binary="$2"

# Binaries in this list need to be deleted.
# libduckdb and libtd will attempt to use ccache if it is present in $TERMUX_PREFIX/bin
# and print variants of "/bin/sh: 1: ccache: not found".
# ccache could be a good example for the limitations of this technique on certain edge cases
# as opposed to other solutions like deleting everything from the prefix in between every build
# and repopulating it by installing only the build dependency packages,
# which could be more resilient to occasional edge cases.
deletelist=("ccache")

for binary_to_delete in "${deletelist[@]}"; do
if grep -q "$binary_to_delete" <<< "$prefix_binary"; then
echo "handle_incompatible_binary: deleting $prefix_binary"
rm -f $prefix_binary
return
fi
done

# if host binary does not exist, use /bin/true to stub.
if [ ! -f $host_binary ]; then
host_binary=/bin/true
fi

# if file in $TERMUX_PREFIX/bin is, or links to, a binary program,
# and the host binary and prefix binary do not currently link to the same file,
# then symlink the prefix binary to the host binary.
if [ ! -d $prefix_binary ] && ! file $(readlink -f $prefix_binary) | grep text >/dev/null \
&& [ "$(readlink -f $host_binary)" != "$(readlink -f $prefix_binary)" ]; then
echo "handle_incompatible_binary: linking $prefix_binary to $host_binary"
ln -sf $host_binary $prefix_binary
fi
}
export -f handle_incompatible_binary

# Execute a single subshell that runs the function handle_incompatible_binary in a loop,
# avoiding the use of the -exec argument to find because it was very slow for me due to
# the excessive subshells. this still continues to get slower the more files are in
# $TERMUX_PREFIX/bin, but not as much.
(
while IFS= read -r -d '' prefix_binary; do
host_binary="/usr/bin/$(basename "$prefix_binary")"
handle_incompatible_binary "$host_binary" "$prefix_binary"
done < <(find "$TERMUX_PREFIX/bin" -type f -executable -print0)
)

unset handle_incompatible_binary
# from one perspective, the above block could be considered an expansion of the same logic
# behind the line below this, but for everything in the usr/bin folder instead of only bin/sh

# Make $TERMUX_PREFIX/bin/sh executable on the builder, so that build
# scripts can assume that it works on both builder and host later on:
ln -sf /bin/sh "$TERMUX_PREFIX/bin/sh"

if [ "$TERMUX_INSTALL_DEPS" = false ] || [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
return
fi

if [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libllvm/}" ] ||
[ "$TERMUX_PKG_BUILD_DEPENDS" != "${TERMUX_PKG_BUILD_DEPENDS/libllvm/}" ]; then
LLVM_DEFAULT_TARGET_TRIPLE=$TERMUX_HOST_PLATFORM
Expand Down Expand Up @@ -51,3 +114,4 @@ termux_step_override_config_scripts() {
cp $TERMUX_PREFIX/opt/protobuf-cmake/static/protobuf-targets{,-release}.cmake $TERMUX_PREFIX/lib/cmake/protobuf/
fi
}

4 changes: 2 additions & 2 deletions scripts/build/toolchain/termux_setup_toolchain_23c.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ termux_setup_toolchain_23c() {
fi

export CXXFLAGS="$CFLAGS"
export CPPFLAGS+=" -I${TERMUX_PREFIX}/include"
export CPPFLAGS+=" -isystem${TERMUX_PREFIX}/include"

# If libandroid-support is declared as a dependency, link to it explicitly:
if [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libandroid-support/}" ]; then
Expand All @@ -92,7 +92,7 @@ termux_setup_toolchain_23c() {
export GOOS=android
export CGO_ENABLED=1
export GO_LDFLAGS="-extldflags=-pie"
export CGO_CFLAGS="-I$TERMUX_PREFIX/include"
export CGO_CFLAGS="-isystem$TERMUX_PREFIX/include"
export RUSTFLAGS="-C link-arg=-Wl,-rpath=$TERMUX_PREFIX/lib -C link-arg=-Wl,--enable-new-dtags"

export ac_cv_func_getpwent=no
Expand Down
4 changes: 2 additions & 2 deletions scripts/build/toolchain/termux_setup_toolchain_27b.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ termux_setup_toolchain_27b() {
fi

export CXXFLAGS="$CFLAGS"
export CPPFLAGS+=" -I${TERMUX_PREFIX}/include"
export CPPFLAGS+=" -isystem${TERMUX_PREFIX}/include"

# If libandroid-support is declared as a dependency, link to it explicitly:
if [ "$TERMUX_PKG_DEPENDS" != "${TERMUX_PKG_DEPENDS/libandroid-support/}" ]; then
Expand All @@ -93,7 +93,7 @@ termux_setup_toolchain_27b() {
export CGO_ENABLED=1
export GO_LDFLAGS="-extldflags=-pie"
export CGO_LDFLAGS="${LDFLAGS/ -Wl,-z,relro,-z,now/}"
export CGO_CFLAGS="-I$TERMUX_PREFIX/include"
export CGO_CFLAGS="-isystem$TERMUX_PREFIX/include"
export RUSTFLAGS="-C link-arg=-Wl,-rpath=$TERMUX_PREFIX/lib -C link-arg=-Wl,--enable-new-dtags"

export ac_cv_func_getpwent=no
Expand Down