From c81d4c869812c7d555bcc0e395f2fc0c1312b31b Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Thu, 8 Aug 2019 15:25:54 +0300 Subject: [PATCH] add stubs to prevent on-device building packages with dangerous operations in build.sh %ci:no-build --- packages/aapt/build.sh | 8 ++++++++ packages/apache2/build.sh | 6 ++++++ packages/apt/build.sh | 8 ++++++++ packages/boost/build.sh | 8 ++++++++ packages/busybox/build.sh | 6 ++++++ packages/dialog/build.sh | 6 ++++++ packages/ecj/build.sh | 6 ++++++ packages/emacs/build.sh | 6 ++++++ packages/espeak/build.sh | 6 ++++++ packages/fzf/build.sh | 8 ++++++++ packages/gawk/build.sh | 6 ++++++ packages/gcal/build.sh | 8 ++++++++ packages/git/build.sh | 6 ++++++ packages/golang/build.sh | 8 ++++++++ packages/jsoncpp/build.sh | 6 ++++++ packages/ldc/build.sh | 6 ++++++ packages/libbz2/build.sh | 6 ++++++ packages/librsync/build.sh | 6 ++++++ packages/libtalloc/build.sh | 6 ++++++ packages/libunwind/build.sh | 8 ++++++++ packages/libvpx/build.sh | 6 ++++++ packages/mariadb/build.sh | 6 ++++++ packages/mpd/build.sh | 6 ++++++ packages/ncurses/build.sh | 6 ++++++ packages/nginx/build.sh | 6 ++++++ packages/openjpeg/build.sh | 6 ++++++ packages/openssh/build.sh | 6 ++++++ packages/openssl/build.sh | 6 ++++++ packages/pastebinit/build.sh | 8 ++++++++ packages/perl/build.sh | 6 ++++++ packages/picolisp/build.sh | 6 ++++++ packages/pkg-config/build.sh | 6 ++++++ packages/postgresql/build.sh | 8 ++++++++ packages/privoxy/build.sh | 6 ++++++ packages/proxychains-ng/build.sh | 8 ++++++++ packages/radare2/build.sh | 6 ++++++ packages/texlive-tlmgr/build.sh | 8 ++++++++ packages/vim-python/build.sh | 6 ++++++ packages/vim/build.sh | 6 ++++++ packages/xvidcore/build.sh | 6 ++++++ packages/zsh/build.sh | 6 ++++++ 41 files changed, 268 insertions(+) diff --git a/packages/aapt/build.sh b/packages/aapt/build.sh index 9982bca20..ae5414779 100644 --- a/packages/aapt/build.sh +++ b/packages/aapt/build.sh @@ -8,6 +8,14 @@ TERMUX_PKG_REVISION=7 TERMUX_PKG_BUILD_IN_SRC=yes TERMUX_PKG_DEPENDS="libc++, libexpat, libpng, libzopfli, zlib" +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_make_install() { # FIXME: We would like to enable checksums when downloading # tar files, but they change each time as the tar metadata diff --git a/packages/apache2/build.sh b/packages/apache2/build.sh index c259956ce..06fa038c4 100644 --- a/packages/apache2/build.sh +++ b/packages/apache2/build.sh @@ -73,6 +73,12 @@ TERMUX_PKG_RM_AFTER_INSTALL="share/apache2/manual etc/apache2/original share/man TERMUX_PKG_EXTRA_MAKE_ARGS="-s" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # remove old files rm -rf "$TERMUX_PREFIX"/{libexec,share,etc}/apache2 rm -rf "$TERMUX_PREFIX"/lib/cgi-bin diff --git a/packages/apt/build.sh b/packages/apt/build.sh index ad8f8b2cc..d2ae0d53c 100644 --- a/packages/apt/build.sh +++ b/packages/apt/build.sh @@ -43,6 +43,14 @@ lib/dpkg/ lib/libapt-inst.so " +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_post_make_install() { printf "# The main termux repository:\ndeb https://dl.bintray.com/termux/termux-packages-24 stable main\n" > $TERMUX_PREFIX/etc/apt/sources.list cp $TERMUX_PKG_BUILDER_DIR/trusted.gpg $TERMUX_PREFIX/etc/apt/ diff --git a/packages/boost/build.sh b/packages/boost/build.sh index dd404cecc..2a7778a01 100644 --- a/packages/boost/build.sh +++ b/packages/boost/build.sh @@ -11,6 +11,14 @@ TERMUX_PKG_BUILD_DEPENDS="python, python2" TERMUX_PKG_BREAKS="libboost-python (<= 1.65.1-2), boost-dev" TERMUX_PKG_REPLACES="libboost-python (<= 1.65.1-2), boost-dev" +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_make_install() { CXXFLAGS+=" -std=c++14" diff --git a/packages/busybox/build.sh b/packages/busybox/build.sh index e77d0f05a..bcf1bb75d 100644 --- a/packages/busybox/build.sh +++ b/packages/busybox/build.sh @@ -11,6 +11,12 @@ TERMUX_PKG_BUILD_IN_SRC=yes TERMUX_PKG_CONFLICTS="coreutils (<< 8.25-4)" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + CFLAGS+=" -llog" # Android system liblog.so for syslog } diff --git a/packages/dialog/build.sh b/packages/dialog/build.sh index 8ccfdf5ce..c0f4a6250 100644 --- a/packages/dialog/build.sh +++ b/packages/dialog/build.sh @@ -8,6 +8,12 @@ TERMUX_PKG_SHA256=e5eb0eaaef9cae8c822887bd998e33c2c3b94ebadd37b4f6aba018c0194a2a TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--with-ncursesw --enable-widec --with-pkg-config" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Put a temporary link for libtinfo.so ln -s -f $TERMUX_PREFIX/lib/libncursesw.so $TERMUX_PREFIX/lib/libtinfo.so } diff --git a/packages/ecj/build.sh b/packages/ecj/build.sh index 870889bf7..81e5dc6d9 100644 --- a/packages/ecj/build.sh +++ b/packages/ecj/build.sh @@ -10,6 +10,12 @@ TERMUX_PKG_PLATFORM_INDEPENDENT=true TERMUX_PKG_CONFLICTS="ecj4.6" termux_step_extract_package() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + mkdir $TERMUX_PKG_SRCDIR } diff --git a/packages/emacs/build.sh b/packages/emacs/build.sh index 021ca908c..95c375f72 100644 --- a/packages/emacs/build.sh +++ b/packages/emacs/build.sh @@ -44,6 +44,12 @@ TERMUX_PKG_RM_AFTER_INSTALL="share/icons share/emacs/${TERMUX_PKG_VERSION}/etc/i TERMUX_PKG_RM_AFTER_INSTALL+=" bin/ctags share/man/man1/ctags.1 share/man/man1/ctags.1.gz" termux_step_post_extract_package() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # XXX: We have to start with new host build each time # to avoid build error when cross compiling. rm -Rf $TERMUX_PKG_HOSTBUILD_DIR diff --git a/packages/espeak/build.sh b/packages/espeak/build.sh index 2afa3e69c..9498f6a31 100644 --- a/packages/espeak/build.sh +++ b/packages/espeak/build.sh @@ -17,6 +17,12 @@ TERMUX_PKG_RM_AFTER_INSTALL="lib/*ng-test*" TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--without-async" termux_step_post_extract_package() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + ./autogen.sh } diff --git a/packages/fzf/build.sh b/packages/fzf/build.sh index bc1b9a034..d84a4152a 100644 --- a/packages/fzf/build.sh +++ b/packages/fzf/build.sh @@ -9,6 +9,14 @@ TERMUX_PKG_SRCURL=https://github.com/junegunn/fzf/archive/${TERMUX_PKG_VERSION}. # find does not support, when invoking find: TERMUX_PKG_DEPENDS="bash, findutils" +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_make() { termux_setup_golang diff --git a/packages/gawk/build.sh b/packages/gawk/build.sh index f3d25ec34..1f9e77bb6 100644 --- a/packages/gawk/build.sh +++ b/packages/gawk/build.sh @@ -11,6 +11,12 @@ TERMUX_PKG_REPLACES="gawk-dev" TERMUX_PKG_RM_AFTER_INSTALL="bin/gawk-* bin/igawk share/man/man1/igawk.1" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Remove old symlink to force a fresh timestamp: rm -f $TERMUX_PREFIX/bin/awk diff --git a/packages/gcal/build.sh b/packages/gcal/build.sh index 8aa95b2de..240cb9a7f 100644 --- a/packages/gcal/build.sh +++ b/packages/gcal/build.sh @@ -7,6 +7,14 @@ TERMUX_PKG_SHA256=91b56c40b93eee9bda27ec63e95a6316d848e3ee047b5880ed71e5e8e60f61 TERMUX_PKG_SRCURL=https://mirrors.kernel.org/gnu/gcal/gcal-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_DEPENDS="ncurses" +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_post_make_install() { # XXX: share/info/dir is currently included in emacs. # We should probably make texinfo regenerate that file diff --git a/packages/git/build.sh b/packages/git/build.sh index d1bd3406b..be5dec72a 100644 --- a/packages/git/build.sh +++ b/packages/git/build.sh @@ -41,6 +41,12 @@ share/man/man1/git-shell.1 " termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Setup perl so that the build process can execute it: rm -f $TERMUX_PREFIX/bin/perl ln -s $(which perl) $TERMUX_PREFIX/bin/perl diff --git a/packages/golang/build.sh b/packages/golang/build.sh index 6e95a909a..4ce69dd7a 100644 --- a/packages/golang/build.sh +++ b/packages/golang/build.sh @@ -10,6 +10,14 @@ TERMUX_PKG_SRCURL=https://storage.googleapis.com/golang/go${_MAJOR_VERSION}.src. TERMUX_PKG_DEPENDS="clang" TERMUX_PKG_NO_STATICSPLIT=yes +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_make_install() { termux_setup_golang diff --git a/packages/jsoncpp/build.sh b/packages/jsoncpp/build.sh index e778470a0..43fea6f69 100644 --- a/packages/jsoncpp/build.sh +++ b/packages/jsoncpp/build.sh @@ -16,6 +16,12 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" " termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # The installation does not overwrite symlinks such as libjsoncpp.so.1, # so if rebuilding these are not detected as modified. Fix that: rm -f $TERMUX_PREFIX/lib/libjsoncpp.so* diff --git a/packages/ldc/build.sh b/packages/ldc/build.sh index 5bbb15e25..2356f6ac4 100644 --- a/packages/ldc/build.sh +++ b/packages/ldc/build.sh @@ -32,6 +32,12 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" " termux_step_post_extract_package() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + mv llvm-${TERMUX_PKG_VERSION[1]}.src llvm mv tools-${TERMUX_PKG_VERSION[2]} rdmd mv dub-${TERMUX_PKG_VERSION[3]} dub diff --git a/packages/libbz2/build.sh b/packages/libbz2/build.sh index a88298f01..ab5a1a992 100644 --- a/packages/libbz2/build.sh +++ b/packages/libbz2/build.sh @@ -12,6 +12,12 @@ TERMUX_PKG_EXTRA_MAKE_ARGS="PREFIX=$TERMUX_PREFIX" TERMUX_PKG_BUILD_IN_SRC=yes termux_step_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # bzip2 does not use configure. But place man pages at correct path: sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" $TERMUX_PKG_SRCDIR/Makefile } diff --git a/packages/librsync/build.sh b/packages/librsync/build.sh index 2ccd1ccd4..a10838304 100644 --- a/packages/librsync/build.sh +++ b/packages/librsync/build.sh @@ -12,6 +12,12 @@ TERMUX_PKG_BUILD_DEPENDS="libpopt" TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DPERL_EXECUTABLE=$(which perl)" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Remove old files to ensure new timestamps on symlinks: rm -Rf $TERMUX_PREFIX/lib/librsync.* } diff --git a/packages/libtalloc/build.sh b/packages/libtalloc/build.sh index 554310f7a..3dff4e4e8 100644 --- a/packages/libtalloc/build.sh +++ b/packages/libtalloc/build.sh @@ -10,6 +10,12 @@ TERMUX_PKG_SRCURL=https://www.samba.org/ftp/talloc/talloc-${TERMUX_PKG_VERSION}. TERMUX_PKG_BUILD_IN_SRC="yes" termux_step_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Force fresh install: rm -f $TERMUX_PREFIX/include/talloc.h diff --git a/packages/libunwind/build.sh b/packages/libunwind/build.sh index 7f43016a4..026379fd5 100644 --- a/packages/libunwind/build.sh +++ b/packages/libunwind/build.sh @@ -13,6 +13,14 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" --disable-minidebuginfo " +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_post_massage() { # Hack to fix problem with building arm c++ code # which should not use this libunwind: diff --git a/packages/libvpx/build.sh b/packages/libvpx/build.sh index 9108fef91..940bf1052 100644 --- a/packages/libvpx/build.sh +++ b/packages/libvpx/build.sh @@ -10,6 +10,12 @@ TERMUX_PKG_BREAKS="libvpx-dev" TERMUX_PKG_REPLACES="libvpx-dev" termux_step_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Force fresh install of header files: rm -Rf $TERMUX_PREFIX/include/vpx diff --git a/packages/mariadb/build.sh b/packages/mariadb/build.sh index 5fb22eb0b..04776382d 100644 --- a/packages/mariadb/build.sh +++ b/packages/mariadb/build.sh @@ -67,6 +67,12 @@ termux_step_host_build() { } termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + CPPFLAGS+=" -Dushort=u_short" if [ $TERMUX_ARCH_BITS = 32 ]; then diff --git a/packages/mpd/build.sh b/packages/mpd/build.sh index 1d1f590a3..9c86e91b1 100644 --- a/packages/mpd/build.sh +++ b/packages/mpd/build.sh @@ -20,6 +20,12 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" TERMUX_PKG_CONFFILES="$TERMUX_PREFIX/etc/mpd.conf" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + CXXFLAGS+=" -DTERMUX -UANDROID" LDFLAGS+=" -llog -lOpenSLES" rm -f $TERMUX_PREFIX/etc/mpd.conf diff --git a/packages/ncurses/build.sh b/packages/ncurses/build.sh index 1e4bbc555..7e4b82637 100644 --- a/packages/ncurses/build.sh +++ b/packages/ncurses/build.sh @@ -44,6 +44,12 @@ share/man/man7 " termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-pkg-config-libdir=$PKG_CONFIG_LIBDIR" } diff --git a/packages/nginx/build.sh b/packages/nginx/build.sh index cf4bd1a92..74b093ed1 100644 --- a/packages/nginx/build.sh +++ b/packages/nginx/build.sh @@ -11,6 +11,12 @@ etc/nginx/mime.types etc/nginx/nginx.conf etc/nginx/scgi_params etc/nginx/uwsgi_ TERMUX_PKG_MAINTAINER="Vishal Biswas @vishalbiswas" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + CPPFLAGS="$CPPFLAGS -DIOV_MAX=1024" LDFLAGS="$LDFLAGS -landroid-glob" diff --git a/packages/openjpeg/build.sh b/packages/openjpeg/build.sh index 82aac03c6..214fd6963 100644 --- a/packages/openjpeg/build.sh +++ b/packages/openjpeg/build.sh @@ -11,6 +11,12 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DBUILD_STATIC_LIBS=OFF" # for fast building packages that depend on openjpeg with cmake termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Force symlinks to be overwritten: rm -Rf $TERMUX_PREFIX/lib/libopenjp2.so* } diff --git a/packages/openssh/build.sh b/packages/openssh/build.sh index eef05d14a..fcf0cdb3a 100644 --- a/packages/openssh/build.sh +++ b/packages/openssh/build.sh @@ -44,6 +44,12 @@ TERMUX_PKG_RM_AFTER_INSTALL="bin/slogin share/man/man1/slogin.1" TERMUX_PKG_CONFFILES="etc/ssh/ssh_config etc/ssh/sshd_config" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + autoreconf ## Configure script require this variable to set diff --git a/packages/openssl/build.sh b/packages/openssl/build.sh index a9ed22151..3226f98ef 100644 --- a/packages/openssl/build.sh +++ b/packages/openssl/build.sh @@ -14,6 +14,12 @@ TERMUX_PKG_BREAKS="openssl-tool (<< 1.1.1b-1), openssl-dev" TERMUX_PKG_REPLACES="openssl-tool (<< 1.1.1b-1), openssl-dev" termux_step_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + CFLAGS+=" -DNO_SYSLOG" if [ $TERMUX_ARCH = arm ]; then CFLAGS+=" -fno-integrated-as" diff --git a/packages/pastebinit/build.sh b/packages/pastebinit/build.sh index 00d6e7398..2b261a9be 100644 --- a/packages/pastebinit/build.sh +++ b/packages/pastebinit/build.sh @@ -9,6 +9,14 @@ TERMUX_PKG_DEPENDS="python" TERMUX_PKG_BUILD_IN_SRC=yes TERMUX_PKG_PLATFORM_INDEPENDENT=yes +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_make_install() { cp pastebinit $TERMUX_PREFIX/bin/ xsltproc -''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl pastebinit.xml diff --git a/packages/perl/build.sh b/packages/perl/build.sh index c9ad9e2f3..7902130b8 100644 --- a/packages/perl/build.sh +++ b/packages/perl/build.sh @@ -13,6 +13,12 @@ TERMUX_MAKE_PROCESSES=1 TERMUX_PKG_RM_AFTER_INSTALL="bin/perl${TERMUX_PKG_VERSION}" termux_step_post_extract_package() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # This port uses perl-cross: http://arsv.github.io/perl-cross/ cp -rf perl-cross-${TERMUX_PKG_VERSION[1]}/* . diff --git a/packages/picolisp/build.sh b/packages/picolisp/build.sh index f208cb6b7..3a5be2a91 100644 --- a/packages/picolisp/build.sh +++ b/packages/picolisp/build.sh @@ -12,6 +12,12 @@ TERMUX_PKG_BUILD_IN_SRC=true TERMUX_PKG_BLACKLISTED_ARCHES="arm, i686, x86_64" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Validate that we have the right version: grep -q "Version ${TERMUX_PKG_VERSION//./ }" src64/version.l || { termux_error_exit "Picolisp version needs to be bumped" diff --git a/packages/pkg-config/build.sh b/packages/pkg-config/build.sh index b94e9970b..b3f11635d 100644 --- a/packages/pkg-config/build.sh +++ b/packages/pkg-config/build.sh @@ -8,5 +8,11 @@ TERMUX_PKG_DEPENDS="glib" TERMUX_PKG_RM_AFTER_INSTALL="bin/*-pkg-config" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + rm -Rf $TERMUX_PREFIX/bin/*pkg-config } diff --git a/packages/postgresql/build.sh b/packages/postgresql/build.sh index a102c3edf..5b11454a2 100644 --- a/packages/postgresql/build.sh +++ b/packages/postgresql/build.sh @@ -37,6 +37,14 @@ termux_step_host_build() { make ./src/timezone/zic } +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_post_make_install() { # Man pages are not installed by default: make -C doc/src/sgml install-man diff --git a/packages/privoxy/build.sh b/packages/privoxy/build.sh index 4a33585ca..6bfb9d8ca 100644 --- a/packages/privoxy/build.sh +++ b/packages/privoxy/build.sh @@ -14,6 +14,12 @@ TERMUX_PKG_DEPENDS="pcre, libpcreposix, zlib" TERMUX_PKG_BUILD_IN_SRC=yes termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + autoheader autoconf diff --git a/packages/proxychains-ng/build.sh b/packages/proxychains-ng/build.sh index d22f3bf8a..169feae15 100644 --- a/packages/proxychains-ng/build.sh +++ b/packages/proxychains-ng/build.sh @@ -7,6 +7,14 @@ TERMUX_PKG_SRCURL=https://github.com/rofl0r/proxychains-ng/archive/v$TERMUX_PKG_ TERMUX_PKG_SHA256=ab31626af7177cc2669433bb244b99a8f98c08031498233bb3df3bcc9711a9cc TERMUX_PKG_BUILD_IN_SRC=yes +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_post_make_install() { # Remove conf file from previous build, otherwise nothing will be done and it won't be included in the package rm -f "$TERMUX_PREFIX"/etc/proxychains.conf diff --git a/packages/radare2/build.sh b/packages/radare2/build.sh index f1c616b9a..7678b259e 100644 --- a/packages/radare2/build.sh +++ b/packages/radare2/build.sh @@ -12,6 +12,12 @@ TERMUX_PKG_BUILD_IN_SRC="yes" TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--with-compiler=termux-host" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # Unset CPPFLAGS to avoid -I$TERMUX_PREFIX/include. This is because # radare2 build will put it's own -I flags after ours, which causes # problems due to name clashes (binutils header files). diff --git a/packages/texlive-tlmgr/build.sh b/packages/texlive-tlmgr/build.sh index 6da806b53..68d4e0b6f 100644 --- a/packages/texlive-tlmgr/build.sh +++ b/packages/texlive-tlmgr/build.sh @@ -14,6 +14,14 @@ TERMUX_PKG_BUILD_IN_SRC=yes TL_ROOT=$TERMUX_PREFIX/share/texlive TL_BINDIR=$TERMUX_PREFIX/bin +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi +} + termux_step_make() { mkdir -p $TL_ROOT/{tlpkg/{backups,tlpobj},texmf-var/web2c} cp -r $TERMUX_PKG_BUILDDIR/* $TL_ROOT/ diff --git a/packages/vim-python/build.sh b/packages/vim-python/build.sh index 95fd8e19e..c5601d09a 100644 --- a/packages/vim-python/build.sh +++ b/packages/vim-python/build.sh @@ -51,6 +51,12 @@ termux_step_pre_configure() { } termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + make distclean # Remove eventually existing symlinks from previous builds so that they get re-created diff --git a/packages/vim/build.sh b/packages/vim/build.sh index 2aababbe3..ea1181fee 100644 --- a/packages/vim/build.sh +++ b/packages/vim/build.sh @@ -38,6 +38,12 @@ TERMUX_PKG_CONFFILES="share/vim/vimrc" TERMUX_PKG_CONFLICTS="vim-python" termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + make distclean # Remove eventually existing symlinks from previous builds so that they get re-created diff --git a/packages/xvidcore/build.sh b/packages/xvidcore/build.sh index 57bfe2241..edd31c963 100644 --- a/packages/xvidcore/build.sh +++ b/packages/xvidcore/build.sh @@ -10,6 +10,12 @@ TERMUX_PKG_SRCURL=http://downloads.xvid.org/downloads/xvidcore-${TERMUX_PKG_VERS TERMUX_PKG_BUILD_IN_SRC=yes termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + rm -f $TERMUX_PREFIX/lib/libxvid* export TERMUX_PKG_BUILDDIR=$TERMUX_PKG_BUILDDIR/build/generic export TERMUX_PKG_SRCDIR=$TERMUX_PKG_BUILDDIR diff --git a/packages/zsh/build.sh b/packages/zsh/build.sh index 8b86f873a..bd4dbb7ba 100644 --- a/packages/zsh/build.sh +++ b/packages/zsh/build.sh @@ -18,6 +18,12 @@ TERMUX_PKG_CONFFILES="etc/zshrc" TERMUX_PKG_BUILD_IN_SRC=yes termux_step_post_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if [ -n "$TERMUX_ON_DEVICE_BUILD" ]; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + # INSTALL file: "For a non-dynamic zsh, the default is to compile the complete, compctl, zle, # computil, complist, sched, # parameter, zleparameter and rlimits modules into the shell, # and you will need to edit config.modules to make any other modules available."