Session.vim
.netrwhist
*~
+/debs/
Build environment using Docker
==============================
-A Docker container configured for building images can be downloaded an run with:
+A Docker container configured for building images can be downloaded and run with:
./scripts/run-docker.sh
This will set you up with a interactive prompt in a container, where this source folder
is mounted as the /root/termux-packages data volume, so changes are kept in sync between
-the host and the container when trying things out before committing.
+the host and the container when trying things out before committing, and built deb files
+will be available on the host in the `debs/` directory just as when building on the host.
-The build output folder is mounted to $HOME/termux, so deb files can be found in
-$HOME/termux/_deb on the host for trying them out on a device or emulator.
+Build commands can be given to be executed in the docker container directly:
+
+ ./scripts/run-docker.sh ./build-package.sh libandroid-support
+
+will launch the docker container, execute the `./build-package.sh libandroid-support`
+command inside it and afterwards return you to the host prompt, with the newly built
+deb in `debs/` to try out.
Building a package
* Sets up a patched stand-alone Android NDK toolchain if necessary.
-* Reads `packages/$PKG/build.s`h to find out where to find the source code of the package and how to build it.
+* Reads `packages/$PKG/build.sh` to find out where to find the source code of the package and how to build it.
+
+* Extracts the source in `$HOME/.termux-build/$PKG/src`.
* Applies all patches in packages/$PKG/\*.patch.
-* Builds the package and installs it to `$PREFIX`.
+* Builds the package under `$HOME/.termux-build/$PKG/` (either in the build/ directory there or in the
+ src/ directory if the package is specified to build in the src dir) and installs it to `$PREFIX`.
+
+* Extracts modified files in `$PREFIX` into `$HOME/.termux-build/$PKG/massage` and massages the
+ files there for distribution (removes some files, splits it up in sub-packages, modifies elf files).
-* Creates a dpkg package file for distribution in `$HOME/termux/_deb`.
+* Creates a deb package file for distribution in `debs/`.
Reading `build-package.sh` is the best way to understand what is going on.
set -e -u -o pipefail
+# Read settings from .termuxrc if existing
+test -f $HOME/.termuxrc && . $HOME/.termuxrc
+: ${TERMUX_TOPDIR:="$HOME/.termux-build"}
+
BUILDSCRIPT=`dirname $0`/build-package.sh
-BUILDORDER_FILE=$HOME/termux/_buildall/buildorder.txt
-BUILDSTATUS_FILE=$HOME/termux/_buildall/buildstatus.txt
+BUILDORDER_FILE=$TERMUX_TOPDIR/_buildall/buildorder.txt
+BUILDSTATUS_FILE=$TERMUX_TOPDIR/_buildall/buildstatus.txt
if [ -e $BUILDORDER_FILE ]; then
echo "Using existing buildorder file: $BUILDORDER_FILE"
else
- rm -Rf $HOME/termux/* /data/data $HOME/termux/_buildall
- mkdir -p $HOME/termux/_buildall
+ mkdir -p $TERMUX_TOPDIR/_buildall
./scripts/buildorder.py > $BUILDORDER_FILE
fi
if [ -e $BUILDSTATUS_FILE ]; then
echo "Continuing build-all from: $BUILDSTATUS_FILE"
fi
-exec > >(tee -a $HOME/termux/_buildall/ALL.out)
-exec 2> >(tee -a $HOME/termux/_buildall/ALL.err >&2)
-trap 'echo failure; echo See: $HOME/termux/_buildall/${package}.err' ERR
+exec > >(tee -a $TERMUX_TOPDIR/_buildall/ALL.out)
+exec 2> >(tee -a $TERMUX_TOPDIR/_buildall/ALL.err >&2)
+trap 'echo failure; echo See: $TERMUX_TOPDIR/_buildall/${package}.err' ERR
for package in `cat $BUILDORDER_FILE`; do
# Check build status (grepping is a bit crude, but it works)
echo -n "Building $package... "
BUILD_START=`date "+%s"`
- bash -x $BUILDSCRIPT $package > $HOME/termux/_buildall/${package}.out 2> $HOME/termux/_buildall/${package}.err
+ bash -x $BUILDSCRIPT $package > $TERMUX_TOPDIR/_buildall/${package}.out 2> $TERMUX_TOPDIR/_buildall/${package}.err
BUILD_END=`date "+%s"`
BUILD_SECONDS=$(( $BUILD_END - $BUILD_START ))
echo "done in $BUILD_SECONDS"
set -e -o pipefail -u
-if [ "$#" -ne 1 ]; then echo "ERROR: Specify one argument (name of or path to package)"; exit 1; fi
-export TERMUX_PKG_NAME=`basename $1`
-export TERMUX_SCRIPTDIR=`cd $(dirname $0); pwd`
-
-if [[ $1 == *"/"* ]]; then
- # Path to directory which may be outside this repo:
- if [ ! -d $1 ]; then echo "ERROR: '$1' seems to be a path but is not a directory"; exit 1; fi
- export TERMUX_PKG_BUILDER_DIR=`realpath $1`
-else
- # Package name:
- export TERMUX_PKG_BUILDER_DIR=$TERMUX_SCRIPTDIR/packages/$TERMUX_PKG_NAME
-fi
-export TERMUX_PKG_BUILDER_SCRIPT=$TERMUX_PKG_BUILDER_DIR/build.sh
-if test ! -f $TERMUX_PKG_BUILDER_SCRIPT; then echo "ERROR: No build.sh script at supposed package dir $TERMUX_PKG_BUILDER_DIR!"; exit 1; fi
-
-echo "termux - building $1..."
-test -t 1 && printf "\033]0;$1...\007"
-
-# Read settings from .termuxrc if existing
+# Read settings from .termuxrc if existing:
test -f $HOME/.termuxrc && . $HOME/.termuxrc
-# Configurable settings
-: ${NDK:="${HOME}/lib/android-ndk"}
+# Configurable settings:
: ${ANDROID_HOME:="${HOME}/lib/android-sdk"}
-if [ ! -d "$NDK" ]; then echo 'ERROR: $NDK not defined as pointing at a directory - define it pointing at a android NDK installation!'; exit 1; fi
+: ${NDK:="${HOME}/lib/android-ndk"}
: ${TERMUX_MAKE_PROCESSES:='4'}
-: ${TERMUX_TOPDIR:="$HOME/termux"}
-: ${TERMUX_ARCH:="arm"} # (arm|aarch64|i686|x86_64) - the x86_64 arch is not yet used or tested.
-TERMUX_ARCH_BITS="32"
-if [ "x86_64" = $TERMUX_ARCH -o "aarch64" = $TERMUX_ARCH ]; then
- TERMUX_ARCH_BITS="64"
-fi
+: ${TERMUX_TOPDIR:="$HOME/.termux-build"}
+: ${TERMUX_ARCH:="aarch64"} # (arm|aarch64|i686|x86_64) - the x86_64 arch is not yet used or tested.
: ${TERMUX_CLANG:=""} # Set to non-empty to use clang.
-: ${TERMUX_HOST_PLATFORM:="${TERMUX_ARCH}-linux-android"}
-if [ $TERMUX_ARCH = "arm" ]; then TERMUX_HOST_PLATFORM="${TERMUX_HOST_PLATFORM}eabi"; fi
: ${TERMUX_PREFIX:='/data/data/com.termux/files/usr'}
: ${TERMUX_ANDROID_HOME:='/data/data/com.termux/files/home'}
: ${TERMUX_DEBUG:=""}
: ${TERMUX_PROCESS_DEB:=""}
: ${TERMUX_API_LEVEL:="21"}
+: ${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="23.0.3"}
+: ${TERMUX_NDK_VERSION:="11"}
+
+# Handle command-line arguments:
+show_usage () {
+ echo "Usage: ./build-package.sh [-a ARCH] PACKAGE"
+ echo "Build a package."
+ echo ""
+ exit 1
+}
+while getopts :a:h option
+do
+ case "$option" in
+ a) TERMUX_ARCH="$OPTARG";;
+ h) show_usage;;
+ ?) echo "./build-package.sh: illegal option -$OPTARG"; exit 1;;
+ esac
+done
+shift $(($OPTIND-1))
+if [ "$#" -ne 1 ]; then show_usage; fi
+
+# Check the NDK:
+if [ ! -d "$NDK" ]; then
+ echo 'ERROR: $NDK not defined as pointing at a directory - define it pointing at a android NDK installation!'
+ exit 1
+fi
+if grep -s -q "Pkg.Revision = $TERMUX_NDK_VERSION" $NDK/source.properties; then
+ :
+else
+ echo "Wrong NDK version - we need $TERMUX_NDK_VERSION"
+ exit 1
+fi
+
+# Compute standalone toolchain dir, bitness of arch and name of host platform:
+TERMUX_STANDALONE_TOOLCHAIN="$TERMUX_TOPDIR/_lib/android-standalone-toolchain-${TERMUX_ARCH}-api${TERMUX_API_LEVEL}-"
if [ "$TERMUX_CLANG" = "" ]; then
- : ${TERMUX_STANDALONE_TOOLCHAIN:="$HOME/lib/android-standalone-toolchain-${TERMUX_ARCH}-api${TERMUX_API_LEVEL}-gcc4.9"}
+ TERMUX_STANDALONE_TOOLCHAIN+="gcc4.9"
else
- : ${TERMUX_STANDALONE_TOOLCHAIN:="$HOME/lib/android-standalone-toolchain-${TERMUX_ARCH}-api${TERMUX_API_LEVEL}-clang38"}
+ TERMUX_STANDALONE_TOOLCHAIN+="clang38"
fi
-: ${TERMUX_ANDROID_BUILD_TOOLS_VERSION:="23.0.3"}
+if [ "x86_64" = $TERMUX_ARCH -o "aarch64" = $TERMUX_ARCH ]; then
+ TERMUX_ARCH_BITS=64
+else
+ TERMUX_ARCH_BITS=32
+fi
+TERMUX_HOST_PLATFORM="${TERMUX_ARCH}-linux-android"
+if [ $TERMUX_ARCH = "arm" ]; then TERMUX_HOST_PLATFORM="${TERMUX_HOST_PLATFORM}eabi"; fi
+
+# Check the package to build:
+TERMUX_PKG_NAME=`basename $1`
+export TERMUX_SCRIPTDIR=`cd $(dirname $0); pwd`
+if [[ $1 == *"/"* ]]; then
+ # Path to directory which may be outside this repo:
+ if [ ! -d $1 ]; then echo "ERROR: '$1' seems to be a path but is not a directory"; exit 1; fi
+ export TERMUX_PKG_BUILDER_DIR=`realpath $1`
+else
+ # Package name:
+ export TERMUX_PKG_BUILDER_DIR=$TERMUX_SCRIPTDIR/packages/$TERMUX_PKG_NAME
+fi
+TERMUX_PKG_BUILDER_SCRIPT=$TERMUX_PKG_BUILDER_DIR/build.sh
+if test ! -f $TERMUX_PKG_BUILDER_SCRIPT; then
+ echo "ERROR: No build.sh script at supposed package dir $TERMUX_PKG_BUILDER_DIR!"
+ exit 1
+fi
+
+# Handle 'all' arch:
+if [ $TERMUX_ARCH = 'all' ]; then
+ for arch in 'arm' 'i686' 'aarch64'; do
+ ./build-package.sh -a $arch $1
+ done
+ exit
+fi
+
+echo "termux - building $1 for arch $TERMUX_ARCH..."
+test -t 1 && printf "\033]0;$1...\007"
+
# We do not put all of build-tools/$TERMUX_ANDROID_BUILD_TOOLS_VERSION/ into PATH
# to avoid stuff like arm-linux-androideabi-ld there to conflict with ones from
# the standalone toolchain.
export TERMUX_TOUCH="touch"
test `uname` = "Darwin" && TERMUX_TOUCH=gtouch
-# Compute NDK version. We remove the first character (the r in e.g. r9d) to get a version number which can be used in packages):
-export TERMUX_NDK_VERSION=11
-if grep -s -q "Pkg.Revision = $TERMUX_NDK_VERSION" $NDK/source.properties; then
- :
-else
- echo "Wrong NDK version - we need $TERMUX_NDK_VERSION"
- exit 1
-fi
-
export prefix=${TERMUX_PREFIX} # prefix is used by some makefiles
#export ACLOCAL="aclocal -I $TERMUX_PREFIX/share/aclocal"
export AR=$TERMUX_HOST_PLATFORM-ar
elif [ $TERMUX_ARCH = "aarch64" ]; then
LDFLAGS+=" -Wl,-rpath-link,$TERMUX_PREFIX/lib"
LDFLAGS+=" -Wl,-rpath-link,$TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib"
+elif [ $TERMUX_ARCH = "x86_64" ]; then
+ continue
+else
+ echo "Error: Invalid arch '$TERMUX_ARCH' - support arches are 'arm', 'i686', 'aarch64', 'x86_64'"
+ exit 1
fi
if [ -n "$TERMUX_DEBUG" ]; then
for f in $TERMUX_SCRIPTDIR/ndk_patches/*.patch; do
sed "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $f | \
sed "s%\@TERMUX_HOME\@%${TERMUX_ANDROID_HOME}%g" | \
- patch -p1;
- echo "PATCHING FILE $f done!"
+ patch --silent -p1;
done
# elf.h is taken from glibc since the elf.h in the NDK is lacking.
# sysexits.h is header-only and used by a few programs.
fi
export TERMUX_COMMON_CACHEDIR="$TERMUX_TOPDIR/_cache"
-export TERMUX_COMMON_DEBDIR="$TERMUX_TOPDIR/_deb"
-mkdir -p $TERMUX_COMMON_CACHEDIR $TERMUX_COMMON_DEBDIR
+export TERMUX_DEBDIR="$TERMUX_SCRIPTDIR/debs"
+mkdir -p $TERMUX_COMMON_CACHEDIR $TERMUX_DEBDIR
TERMUX_PKG_BUILDDIR=$TERMUX_TOPDIR/$TERMUX_PKG_NAME/build
TERMUX_PKG_CACHEDIR=$TERMUX_TOPDIR/$TERMUX_PKG_NAME/cache
mkdir -p $TERMUX_DATA_BACKUPDIRS
TERMUX_DATA_PREVIOUS_BACKUPDIR=$TERMUX_DATA_BACKUPDIRS/$TERMUX_PREVIOUS_ARCH
TERMUX_DATA_CURRENT_BACKUPDIR=$TERMUX_DATA_BACKUPDIRS/$TERMUX_ARCH
- echo "NOTE: Different archs - building for $TERMUX_ARCH, but current $TERMUX_PREVIOUS_ARCH"
- echo " Saving current /data/data to $TERMUX_DATA_PREVIOUS_BACKUPDIR"
# Save current /data (removing old backup if any)
if test -e $TERMUX_DATA_PREVIOUS_BACKUPDIR; then
echo "ERROR: Directory already exists"
mv /data/data $TERMUX_DATA_PREVIOUS_BACKUPDIR
# Restore new one (if any)
if [ -d $TERMUX_DATA_CURRENT_BACKUPDIR ]; then
- echo " Restoring old backupdir from $TERMUX_DATA_CURRENT_BACKUPDIR"
mv $TERMUX_DATA_CURRENT_BACKUPDIR /data/data
fi
fi
for patch in $TERMUX_PKG_BUILDER_DIR/*.patch{$TERMUX_ARCH_BITS,}; do
test -f $patch && sed "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $patch | \
sed "s%\@TERMUX_HOME\@%${TERMUX_ANDROID_HOME}%g" | \
- patch -p1
+ patch --silent -p1
done
find . -name config.sub -exec chmod u+w '{}' \; -exec cp $TERMUX_COMMON_CACHEDIR/config.sub '{}' \;
for f in $TERMUX_PREFIX/bin/*config; do
test -f $f && cp $f $TERMUX_PKG_TMPDIR/config-scripts
done
- set +e +o pipefail
- find $TERMUX_PKG_TMPDIR/config-scripts | xargs file | grep -F " script" | cut -f 1 -d : | xargs sed -i -E "s@^#\!/system/bin/sh@#\!/bin/sh@"
- set -e -o pipefail
export PATH=$TERMUX_PKG_TMPDIR/config-scripts:$PATH
# See http://wiki.buici.com/xwiki/bin/view/Programing+C+and+C%2B%2B/Autoconf+and+RPL_MALLOC
SUB_PKG_NAME=`basename $subpackage .subpackage.sh`
# Default value is same as main package, but sub package may override:
TERMUX_SUBPKG_PLATFORM_INDEPENDENT=$TERMUX_PKG_PLATFORM_INDEPENDENT
- echo "$SUB_PKG_NAME => $subpackage"
SUB_PKG_DIR=$TERMUX_TOPDIR/$TERMUX_PKG_NAME/subpackages/$SUB_PKG_NAME
TERMUX_SUBPKG_DEPENDS=""
TERMUX_SUBPKG_CONFLICTS=""
$TERMUX_TAR -cJf $SUB_PKG_PACKAGE_DIR/control.tar.xz .
# Create the actual .deb file:
- TERMUX_SUBPKG_DEBFILE=$TERMUX_COMMON_DEBDIR/${SUB_PKG_NAME}_${TERMUX_PKG_FULLVERSION}_${SUB_PKG_ARCH}.deb
+ TERMUX_SUBPKG_DEBFILE=$TERMUX_DEBDIR/${SUB_PKG_NAME}_${TERMUX_PKG_FULLVERSION}_${SUB_PKG_ARCH}.deb
ar cr $TERMUX_SUBPKG_DEBFILE \
$TERMUX_COMMON_CACHEDIR/debian-binary \
$SUB_PKG_PACKAGE_DIR/control.tar.xz \
if [ "x$TERMUX_PKG_HOSTBUILD" != "x" ]; then
cd $TERMUX_PKG_SRCDIR
for patch in $TERMUX_PKG_BUILDER_DIR/*.patch.beforehostbuild; do
- test -f $patch && sed "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $patch | patch -p1
+ test -f $patch && sed "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $patch | patch --silent -p1
done
if [ -f "$TERMUX_PKG_HOSTBUILD_DIR/TERMUX_BUILT_FOR_$TERMUX_PKG_VERSION" ]; then
# Create control.tar.xz
$TERMUX_TAR -cJf $TERMUX_PKG_PACKAGEDIR/control.tar.xz .
# In the .deb ar file there should be a file "debian-binary" with "2.0" as the content:
-TERMUX_PKG_DEBFILE=$TERMUX_COMMON_DEBDIR/${TERMUX_PKG_NAME}_${TERMUX_PKG_FULLVERSION}_${TERMUX_ARCH}.deb
+TERMUX_PKG_DEBFILE=$TERMUX_DEBDIR/${TERMUX_PKG_NAME}_${TERMUX_PKG_FULLVERSION}_${TERMUX_ARCH}.deb
# Create the actual .deb file:
ar cr $TERMUX_PKG_DEBFILE \
$TERMUX_COMMON_CACHEDIR/debian-binary \
#!/bin/sh
# clean-rebuild-all.sh - clean everything and rebuild
-rm -Rf /data/* $HOME/termux/* $HOME/lib/android-standalone-toolchain-*
+# Read settings from .termuxrc if existing
+test -f $HOME/.termuxrc && . $HOME/.termuxrc
+: ${TERMUX_TOPDIR:="$HOME/.termux-build"}
+
+rm -Rf /data/* $TERMUX_TOPDIR
bash -x build-all.sh
--- /dev/null
+TERMUX_PKG_HOMEPAGE=http://tinyfugue.sourceforge.net/
+TERMUX_PKG_DESCRIPTION="Flexible, screen-oriented MUD client"
+TERMUX_PKG_VERSION=5.0~beta8
+TERMUX_PKG_SRCURL=http://downloads.sourceforge.net/project/tinyfugue/tinyfugue/5.0%20beta%208/tf-50b8.tar.gz
+TERMUX_PKG_BUILD_IN_SRC=yes
+# TERMUX_PKG_DEPENDS="pcre, openssl, libuuid"
+# TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--with-ssl=openssl --disable-iri"
termux_step_make_install () {
CERTFILE=$TERMUX_PKG_TMPDIR/cert.pem
- curl -o $CERTFILE https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
+ termux_download https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt $CERTFILE
if grep -q 'SHA1: 5df367cda83086392e1acdf22bfef00c48d5eba6' $CERTFILE; then
CERT_DIR=$TERMUX_PREFIX/etc/tls
mkdir -p $CERT_DIR
TERMUX_PKG_HOMEPAGE=https://www.isc.org/downloads/bind/
TERMUX_PKG_DESCRIPTION="Clients provided with BIND"
TERMUX_PKG_VERSION=9.10.4
+TERMUX_PKG_BUILD_REVISION=1
TERMUX_PKG_SRCURL="ftp://ftp.isc.org/isc/bind9/${TERMUX_PKG_VERSION}/bind-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_FOLDERNAME="bind-$TERMUX_PKG_VERSION"
TERMUX_PKG_DEPENDS="openssl, readline, resolv-conf"
make -C lib/bind9
make -C lib/lwres
make -C bin/dig
+ make -C bin/nsupdate
}
termux_step_make_install () {
make -C lib/bind9 install
make -C lib/lwres install
make -C bin/dig install
+ make -C bin/nsupdate install
}
-TERMUX_PKG_HOMEPAGE=http://darwinsys.com/file/
+TERMUX_PKG_HOMEPAGE=https://darwinsys.com/file/
TERMUX_PKG_DESCRIPTION="Command-line tool that tells you in words what kind of data a file contains"
-TERMUX_PKG_VERSION=5.26
-TERMUX_PKG_SRCURL=http://fossies.org/linux/misc/file-${TERMUX_PKG_VERSION}.tar.gz
+TERMUX_PKG_VERSION=5.27
+TERMUX_PKG_SRCURL=https://fossies.org/linux/misc/file-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_cv_func_mmap_fixed_mapped=yes"
TERMUX_PKG_EXTRA_MAKE_ARGS="FILE_COMPILE=$TERMUX_PKG_HOSTBUILD_DIR/src/file"
TERMUX_PKG_HOSTBUILD="yes"
TERMUX_PKG_HOMEPAGE=https://github.com/junegunn/fzf
TERMUX_PKG_DESCRIPTION="Command-line fuzzy finder"
-TERMUX_PKG_VERSION=0.12.1
+TERMUX_PKG_VERSION=0.12.2
TERMUX_PKG_SRCURL=https://github.com/junegunn/fzf/archive/${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_FOLDERNAME=fzf-${TERMUX_PKG_VERSION}
TERMUX_PKG_BUILD_IN_SRC="yes"
TERMUX_PKG_HOMEPAGE=http://www.imagemagick.org/
TERMUX_PKG_DESCRIPTION="Suite to create, edit, compose, or convert images in a variety of formats"
-TERMUX_PKG_VERSION="7.0.1-7"
+TERMUX_PKG_VERSION="7.0.1-9"
TERMUX_PKG_SRCURL=http://www.imagemagick.org/download/ImageMagick-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-largefile --without-x --with-magick-plus-plus=no --with-bzlib=no --with-xml=yes --with-lzma ac_cv_func_ftime=no ac_cv_header_complex_h=no"
TERMUX_PKG_RM_AFTER_INSTALL="bin/Magick-config bin/MagickCore-config bin/MagickWand-config bin/Wand-config share/ImageMagick-6/francais.xml share/man/man1/Magick-config.1 share/man/man1/MagickCore-config.1 share/man/man1/MagickWand-config.1 share/man/man1/Wand-config.1"
TERMUX_PKG_DESCRIPTION="Secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them"
TERMUX_PKG_DEPENDS="libgmp, libnettle, ca-certificates, libidn"
_TERMUX_PKG_MAJOR_VERSION=3.4
-TERMUX_PKG_VERSION=${_TERMUX_PKG_MAJOR_VERSION}.12
+TERMUX_PKG_VERSION=${_TERMUX_PKG_MAJOR_VERSION}.13
TERMUX_PKG_SRCURL=ftp://ftp.gnutls.org/gcrypt/gnutls/v${_TERMUX_PKG_MAJOR_VERSION}/gnutls-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-hardware-acceleration --disable-cxx --disable-openssl-compatibility --with-included-libtasn1 --without-p11-kit --with-default-trust-store-file=$TERMUX_PREFIX/etc/tls/cert.pem"
TERMUX_PKG_HOMEPAGE=http://www.libpng.org/pub/png/libpng.html
TERMUX_PKG_DESCRIPTION="Official PNG reference library"
-TERMUX_PKG_VERSION=1.6.21
+TERMUX_PKG_VERSION=1.6.22
TERMUX_PKG_SRCURL=http://downloads.sourceforge.net/project/libpng/libpng16/${TERMUX_PKG_VERSION}/libpng-${TERMUX_PKG_VERSION}.tar.xz
# ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_RM_AFTER_INSTALL="bin/libpng-config bin/libpng16-config bin/png-fix-itxt bin/pngfix"
TERMUX_PKG_HOMEPAGE=http://www.nongnu.org/lzip/lzip.html
TERMUX_PKG_DESCRIPTION="Lossless data compressor similar to gzip and bzip2"
-TERMUX_PKG_VERSION=1.18~rc3
-TERMUX_PKG_SRCURL=http://download.savannah.gnu.org/releases/lzip/lzip-1.18-rc3.tar.lz
+TERMUX_PKG_VERSION=1.18
+TERMUX_PKG_SRCURL=http://download.savannah.gnu.org/releases/lzip/lzip-1.18.tar.lz
TERMUX_PKG_HOMEPAGE=http://neovim.org/
TERMUX_PKG_DESCRIPTION="Ambitious Vim-fork focused on extensibility and agility (nvim)"
-_COMMIT=bd9715a9b565be67869ea0d8c8eb162954ffb7bb
-TERMUX_PKG_VERSION=0.1.5.201605300949
+_COMMIT=999590b313ef32ca29c4ddba20c5b719730ee7ff
+TERMUX_PKG_VERSION=0.1.5.201606051426
TERMUX_PKG_SRCURL=https://github.com/neovim/neovim/archive/${_COMMIT}.zip
TERMUX_PKG_DEPENDS="libuv, libmsgpack, libandroid-support, libvterm, libtermkey, libutil"
TERMUX_PKG_FOLDERNAME="neovim-$_COMMIT"
TERMUX_PKG_HOMEPAGE=https://github.com/thoughtbot/pick
TERMUX_PKG_DESCRIPTION="Utility to choose one option from a set of choices with fuzzy search functionality"
-TERMUX_PKG_VERSION=1.3.0
+TERMUX_PKG_VERSION=1.4.0
TERMUX_PKG_SRCURL=https://github.com/thoughtbot/pick/releases/download/v${TERMUX_PKG_VERSION}/pick-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_DEPENDS="ncurses"
+++ /dev/null
-diff -u -r ../pick-1.3.0/src/pick.c ./src/pick.c
---- ../pick-1.3.0/src/pick.c 2016-02-12 03:48:41.000000000 -0500
-+++ ./src/pick.c 2016-02-17 22:50:26.050698229 -0500
-@@ -14,6 +14,9 @@
- #include <termios.h>
- #include <unistd.h>
-
-+/* For CTRL macro: */
-+#include <sys/ttydefaults.h>
-+
- #ifdef HAVE_NCURSESW_H
- #include <ncursesw/curses.h>
- #include <ncursesw/term.h>
TERMUX_PKG_HOMEPAGE=https://packages.debian.org/sid/procps
TERMUX_PKG_DESCRIPTION="Utilities that give information about processes using the /proc filesystem"
TERMUX_PKG_VERSION=3.3.11
-TERMUX_PKG_BUILD_REVISION=1
+TERMUX_PKG_BUILD_REVISION=2
TERMUX_PKG_SRCURL=http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_BUILD_IN_SRC=yes
TERMUX_PKG_FOLDERNAME=procps-ng-${TERMUX_PKG_VERSION}
-TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_cv_search_dlopen= --enable-sigwinch"
+TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_cv_search_dlopen= --enable-sigwinch --disable-modern-top"
TERMUX_PKG_DEPENDS="ncurses"
# https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/141168:
# "For compatibility between distributions, can we have /bin/kill made available from coreutils?"
TERMUX_PKG_DEPENDS="ncurses, vim-runtime, python"
# Vim 7.4 patches described at ftp://ftp.vim.org/pub/vim/patches/7.4/README
-TERMUX_PKG_VERSION=7.4.1816
+TERMUX_PKG_VERSION=7.4.1902
TERMUX_PKG_SRCURL="https://github.com/vim/vim/archive/v${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_FOLDERNAME=vim-${TERMUX_PKG_VERSION}
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="vim_cv_toupper_broken=no vim_cv_terminfo=yes vim_cv_tty_group=world"
TERMUX_PKG_DEPENDS="ncurses, vim-runtime"
# Vim 7.4 patches described at ftp://ftp.vim.org/pub/vim/patches/7.4/README
-TERMUX_PKG_VERSION=7.4.1816
+TERMUX_PKG_VERSION=7.4.1902
TERMUX_PKG_SRCURL="https://github.com/vim/vim/archive/v${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_FOLDERNAME=vim-${TERMUX_PKG_VERSION}
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="vim_cv_toupper_broken=no vim_cv_terminfo=yes vim_cv_tty_group=world"
#!/bin/sh
set -e -u
-# Create build output folder if necessary:
-mkdir -p $HOME/termux
+# Read settings from .termuxrc if existing
+test -f $HOME/.termuxrc && . $HOME/.termuxrc
+: ${TERMUX_TOPDIR:="$HOME/.termux-build"}
IMAGE_NAME=termux/package-builder
+CONTAINER_NAME=termux-package-builder
-echo "Running container from image '$IMAGE_NAME'..."
+echo "Running container '$CONTAINER_NAME' from image '$IMAGE_NAME'..."
+
+docker start $CONTAINER_NAME > /dev/null 2> /dev/null || {
+ echo "Creating new container..."
+ docker run \
+ -d \
+ --name $CONTAINER_NAME \
+ -v $PWD:/root/termux-packages \
+ -t $IMAGE_NAME
+}
+
+if [ "$#" -eq "0" ]; then
+ docker exec -it $CONTAINER_NAME bash
+else
+ docker exec -it $CONTAINER_NAME $@
+fi
-docker run \
- -v $PWD:/root/termux-packages \
- -v $HOME/termux:/root/termux \
- -ti $IMAGE_NAME bash
--- /dev/null
+#!/bin/sh
+set -e -u
+
+CONTAINER=termux-package-builder
+IMAGE=termux/package-builder
+
+docker pull $IMAGE
+
+LATEST=`docker inspect --format "{{.Id}}" $IMAGE`
+RUNNING=`docker inspect --format "{{.Image}}" $CONTAINER`
+
+if [ $LATEST = $RUNNING ]; then
+ echo "Image '$IMAGE' used in the container '$CONTAINER' is already up to date"
+else
+ echo "Image '$IMAGE' used in the container '$CONTAINER' has been updated - removing the outdated container"
+ docker stop $CONTAINER
+ docker rm -f $CONTAINER
+fi
+