Merge Android 7 changes to master
The master branch is now for Android 7.0 and later. The android-5 branch is maintained for Android 5.x and 6.
This commit is contained in:
commit
558e604174
|
@ -50,3 +50,23 @@ build-x86_64:
|
|||
<<: *build_job
|
||||
variables:
|
||||
TERMUX_ARCH: x86_64
|
||||
|
||||
## Submit build packages to repository.
|
||||
#upload-packages:
|
||||
# stage: deploy
|
||||
# only:
|
||||
# - android-7@xeffyr/termux-packages
|
||||
# - master@xeffyr/termux-packages
|
||||
# script:
|
||||
# - MODIFIED_PACKAGES=$(./scripts/get-modified-packages.sh)
|
||||
# - |
|
||||
# if [ -n "$MODIFIED_PACKAGES" ]; then
|
||||
# ./scripts/package_uploader.sh --path ./termux-packages/debs $MODIFIED_PACKAGES
|
||||
# else
|
||||
# exit 0
|
||||
# fi
|
||||
# retry:
|
||||
# max: 2
|
||||
# when:
|
||||
# - runner_system_failure
|
||||
# - unknown_failure
|
||||
|
|
|
@ -2,10 +2,11 @@ TERMUX_PKG_HOMEPAGE=http://www.brain-dump.org/projects/abduco/
|
|||
TERMUX_PKG_DESCRIPTION="Clean and simple terminal session manager"
|
||||
TERMUX_PKG_LICENSE="ISC"
|
||||
TERMUX_PKG_VERSION=0.6
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SRCURL=http://www.brain-dump.org/projects/abduco/abduco-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_SHA256=c90909e13fa95770b5afc3b59f311b3d3d2fdfae23f9569fa4f96a3e192a35f4
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
TERMUX_PKG_DEPENDS="libutil,dvtm"
|
||||
TERMUX_PKG_DEPENDS="dvtm"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
CFLAGS+=" $CPPFLAGS"
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
diff -u -r ../apt-0.9.16.1/apt-pkg/contrib/cmndline.cc ./apt-pkg/contrib/cmndline.cc
|
||||
--- ../apt-0.9.16.1/apt-pkg/contrib/cmndline.cc 2014-03-15 17:23:45.000000000 +0100
|
||||
+++ ./apt-pkg/contrib/cmndline.cc 2014-03-25 01:10:30.764711007 +0100
|
||||
@@ -27,6 +27,14 @@
|
||||
/*}}}*/
|
||||
using namespace std;
|
||||
|
||||
+#if defined(__ANDROID__)
|
||||
+static char* strchrnul(char const* s, int c)
|
||||
+{
|
||||
+ char const* result = strchr(s, c);
|
||||
+ return const_cast<char*>((result == NULL) ? (s + strlen(s)) : result);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
// CommandLine::CommandLine - Constructor /*{{{*/
|
||||
// ---------------------------------------------------------------------
|
||||
/* */
|
|
@ -1,18 +0,0 @@
|
|||
diff -u -r ../apt-0.9.16.1/apt-pkg/deb/debsrcrecords.cc ./apt-pkg/deb/debsrcrecords.cc
|
||||
--- ../apt-0.9.16.1/apt-pkg/deb/debsrcrecords.cc 2014-03-15 17:23:45.000000000 +0100
|
||||
+++ ./apt-pkg/deb/debsrcrecords.cc 2014-03-25 01:23:30.652689687 +0100
|
||||
@@ -26,6 +26,14 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
/*}}}*/
|
||||
+#if defined(__ANDROID__)
|
||||
+static char* strchrnul(char const* s, int c)
|
||||
+{
|
||||
+ char const* result = strchr(s, c);
|
||||
+ return const_cast<char*>((result == NULL) ? (s + strlen(s)) : result);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
|
||||
using std::max;
|
||||
using std::string;
|
|
@ -1,10 +1,6 @@
|
|||
# Disabled due to source download failing.
|
||||
|
||||
# using a snapshot tarball because blogc-0.13.0 is not ready for release yet
|
||||
# (documentation updates pending), but it is already useful and stable enough
|
||||
|
||||
TERMUX_PKG_HOMEPAGE=https://blogc.rgm.io/
|
||||
TERMUX_PKG_DESCRIPTION="A blog compiler"
|
||||
TERMUX_PKG_LICENSE="BSD 3-Clause"
|
||||
TERMUX_PKG_VERSION=0.12.0.123.acf1
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_MAINTAINER="Rafael Martins @rafaelmartins"
|
|
@ -0,0 +1,14 @@
|
|||
diff -uNr busybox-1.29.3/include/platform.h busybox-1.29.3.mod/include/platform.h
|
||||
--- busybox-1.29.3/include/platform.h 2018-07-02 14:23:06.000000000 +0300
|
||||
+++ busybox-1.29.3.mod/include/platform.h 2019-02-08 16:01:14.437858554 +0200
|
||||
@@ -579,10 +579,6 @@
|
||||
extern char *strcasestr(const char *s, const char *pattern) FAST_FUNC;
|
||||
#endif
|
||||
|
||||
-#ifndef HAVE_STRCHRNUL
|
||||
-extern char *strchrnul(const char *s, int c) FAST_FUNC;
|
||||
-#endif
|
||||
-
|
||||
#ifndef HAVE_STRSEP
|
||||
extern char *strsep(char **stringp, const char *delim) FAST_FUNC;
|
||||
#endif
|
|
@ -0,0 +1,19 @@
|
|||
diff -uNr busybox-1.29.3/libbb/platform.c busybox-1.29.3.mod/libbb/platform.c
|
||||
--- busybox-1.29.3/libbb/platform.c 2018-07-02 14:23:06.000000000 +0300
|
||||
+++ busybox-1.29.3.mod/libbb/platform.c 2019-02-08 16:10:54.101961593 +0200
|
||||
@@ -8,15 +8,6 @@
|
||||
*/
|
||||
#include "libbb.h"
|
||||
|
||||
-#ifndef HAVE_STRCHRNUL
|
||||
-char* FAST_FUNC strchrnul(const char *s, int c)
|
||||
-{
|
||||
- while (*s != '\0' && *s != c)
|
||||
- s++;
|
||||
- return (char*)s;
|
||||
-}
|
||||
-#endif
|
||||
-
|
||||
#ifndef HAVE_USLEEP
|
||||
int FAST_FUNC usleep(unsigned usec)
|
||||
{
|
|
@ -1,9 +1,9 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://cgdb.github.io/
|
||||
TERMUX_PKG_DESCRIPTION="A lightweight curses (terminal-based) interface to the GNU Debugger (GDB)"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_DEPENDS="ncurses,readline,gdb,libutil"
|
||||
TERMUX_PKG_DEPENDS="ncurses, readline, gdb"
|
||||
TERMUX_PKG_VERSION=0.7.0
|
||||
TERMUX_PKG_REVISION=5
|
||||
TERMUX_PKG_REVISION=6
|
||||
TERMUX_PKG_SRCURL=https://cgdb.me/files/cgdb-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_SHA256=bf7a9264668db3f9342591b08b2cc3bbb08e235ba2372877b4650b70c6fb5423
|
||||
TERMUX_PKG_BUILD_IN_SRC="yes"
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://matt.ucc.asn.au/dropbear/dropbear.html
|
|||
TERMUX_PKG_DESCRIPTION="Small SSH server and client"
|
||||
TERMUX_PKG_LICENSE="BSD"
|
||||
TERMUX_PKG_VERSION=2018.76
|
||||
TERMUX_PKG_REVISION=5
|
||||
TERMUX_PKG_REVISION=6
|
||||
TERMUX_PKG_SRCURL=https://matt.ucc.asn.au/dropbear/releases/dropbear-${TERMUX_PKG_VERSION}.tar.bz2
|
||||
TERMUX_PKG_SHA256=f2fb9167eca8cf93456a5fc1d4faf709902a3ab70dd44e352f3acbc3ffdaea65
|
||||
TERMUX_PKG_DEPENDS="libutil,termux-auth"
|
||||
TERMUX_PKG_DEPENDS="termux-auth"
|
||||
TERMUX_PKG_CONFLICTS="openssh"
|
||||
TERMUX_PKG_BUILD_IN_SRC="yes"
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@ TERMUX_PKG_HOMEPAGE=https://github.com/martanne/dvtm
|
|||
TERMUX_PKG_DESCRIPTION="Terminal tiling window manager"
|
||||
TERMUX_PKG_LICENSE="MIT"
|
||||
TERMUX_PKG_VERSION=0.15
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_SRCURL=https://github.com/martanne/dvtm/archive/v${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_SHA256=496eada13d8abaa8d772279746f78b0c6fed11b560599490f3e70ebc21197bf0
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
TERMUX_PKG_DEPENDS="libutil, ncurses"
|
||||
TERMUX_PKG_DEPENDS="ncurses"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
CFLAGS+=" $CPPFLAGS"
|
||||
|
|
|
@ -1,75 +0,0 @@
|
|||
TERMUX_PKG_HOMEPAGE=http://www.eclipse.org/jdt/core/
|
||||
TERMUX_PKG_DESCRIPTION="Eclipse Compiler for Java, for android 5 and 6"
|
||||
TERMUX_PKG_LICENSE="EPL-2.0"
|
||||
TERMUX_PKG_VERSION=4.6.2
|
||||
local _date=201611241400
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=9953dc2be829732e1b939106a71de018f660891220dbca559a5c7bff84883e51
|
||||
TERMUX_PKG_SRCURL=http://archive.eclipse.org/eclipse/downloads/drops${TERMUX_PKG_VERSION:0:1}/R-$TERMUX_PKG_VERSION-$_date/ecj-$TERMUX_PKG_VERSION.jar
|
||||
TERMUX_PKG_PLATFORM_INDEPENDENT=true
|
||||
TERMUX_PKG_CONFLICTS="ecj"
|
||||
|
||||
termux_step_extract_package() {
|
||||
mkdir $TERMUX_PKG_SRCDIR
|
||||
}
|
||||
|
||||
termux_step_make() {
|
||||
local RAW_JAR=$TERMUX_PKG_CACHEDIR/ecj-${TERMUX_PKG_VERSION}.jar
|
||||
termux_download $TERMUX_PKG_SRCURL \
|
||||
$RAW_JAR \
|
||||
$TERMUX_PKG_SHA256
|
||||
|
||||
mkdir -p $TERMUX_PREFIX/share/{dex,java}
|
||||
$TERMUX_D8 \
|
||||
--classpath $ANDROID_HOME/platforms/android-$TERMUX_PKG_API_LEVEL/android.jar \
|
||||
--release \
|
||||
--min-api 21 \
|
||||
--output $TERMUX_PKG_TMPDIR \
|
||||
$RAW_JAR
|
||||
|
||||
# Package classes.dex into jar:
|
||||
cd $TERMUX_PKG_TMPDIR
|
||||
jar cf ecj.jar classes.dex
|
||||
# Add needed properties file to jar file:
|
||||
jar xf $RAW_JAR org/eclipse/jdt/internal/compiler/batch/messages.properties
|
||||
jar uf ecj.jar org/eclipse/jdt/internal/compiler/batch/messages.properties
|
||||
jar xf $RAW_JAR org/eclipse/jdt/internal/compiler/problem/messages.properties
|
||||
jar uf ecj.jar org/eclipse/jdt/internal/compiler/problem/messages.properties
|
||||
jar xf $RAW_JAR org/eclipse/jdt/internal/compiler/messages.properties
|
||||
jar uf ecj.jar org/eclipse/jdt/internal/compiler/messages.properties
|
||||
jar xf $RAW_JAR org/eclipse/jdt/internal/compiler/parser/readableNames.props
|
||||
jar uf ecj.jar org/eclipse/jdt/internal/compiler/parser/readableNames.props
|
||||
for i in $(seq 1 24); do
|
||||
jar xf $RAW_JAR org/eclipse/jdt/internal/compiler/parser/parser$i.rsc
|
||||
jar uf ecj.jar org/eclipse/jdt/internal/compiler/parser/parser$i.rsc
|
||||
done
|
||||
# Move into place:
|
||||
mv ecj.jar $TERMUX_PREFIX/share/dex/ecj.jar
|
||||
|
||||
rm -rf android-jar
|
||||
mkdir android-jar
|
||||
cd android-jar
|
||||
|
||||
# We need the android classes for JDT to compile against.
|
||||
cp $ANDROID_HOME/platforms/android-28/android.jar .
|
||||
unzip -q android.jar
|
||||
rm -Rf android.jar resources.arsc res assets
|
||||
jar cfM android.jar .
|
||||
|
||||
cp $TERMUX_PKG_TMPDIR/android-jar/android.jar $TERMUX_PREFIX/share/java/android.jar
|
||||
|
||||
# Bundle in an android.jar from an older API also, for those who want to
|
||||
# build apps that run on older Android versions.
|
||||
rm -Rf ./*
|
||||
cp $ANDROID_HOME/platforms/android-21/android.jar android.jar
|
||||
unzip -q android.jar
|
||||
rm -Rf android.jar resources.arsc res assets
|
||||
jar cfM android-21.jar .
|
||||
cp $TERMUX_PKG_TMPDIR/android-jar/android-21.jar $TERMUX_PREFIX/share/java/
|
||||
|
||||
rm -Rf $TERMUX_PREFIX/bin/javac
|
||||
install $TERMUX_PKG_BUILDER_DIR/ecj $TERMUX_PREFIX/bin/ecj
|
||||
perl -p -i -e "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $TERMUX_PREFIX/bin/ecj
|
||||
install $TERMUX_PKG_BUILDER_DIR/ecj-21 $TERMUX_PREFIX/bin/ecj-21
|
||||
perl -p -i -e "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $TERMUX_PREFIX/bin/ecj-21
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# -proc:none to disable annotation processing.
|
||||
# -7 for java 1.7 compatibility.
|
||||
dalvikvm -Xmx256m \
|
||||
-cp @TERMUX_PREFIX@/share/dex/ecj.jar \
|
||||
org.eclipse.jdt.internal.compiler.batch.Main \
|
||||
-proc:none \
|
||||
-7 \
|
||||
-cp @TERMUX_PREFIX@/share/java/android.jar \
|
||||
"$@"
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# -proc:none to disable annotation processing.
|
||||
# -7 for java 1.7 compatibility.
|
||||
dalvikvm -Xmx256m \
|
||||
-cp @TERMUX_PREFIX@/share/dex/ecj.jar \
|
||||
org.eclipse.jdt.internal.compiler.batch.Main \
|
||||
-proc:none \
|
||||
-7 \
|
||||
-cp @TERMUX_PREFIX@/share/java/android-21.jar \
|
||||
"$@"
|
|
@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://www.erlang.org/
|
|||
TERMUX_PKG_DESCRIPTION="General-purpose concurrent functional programming language"
|
||||
TERMUX_PKG_LICENSE="Apache-2.0"
|
||||
TERMUX_PKG_VERSION=21.2.5
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=3ff578ab020a714be25d6787b81938df016db375692d4126a28f1303e6e9c165
|
||||
TERMUX_PKG_SRCURL=https://github.com/erlang/otp/archive/OTP-$TERMUX_PKG_VERSION.tar.gz
|
||||
TERMUX_PKG_DEPENDS="openssl, ncurses, libutil"
|
||||
TERMUX_PKG_DEPENDS="openssl, ncurses"
|
||||
TERMUX_PKG_HOSTBUILD="yes"
|
||||
TERMUX_PKG_BUILD_IN_SRC="yes"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--without-javac --with-ssl=${TERMUX_PREFIX} --with-termcap"
|
||||
|
|
|
@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://core.tcl.tk/expect/index
|
|||
TERMUX_PKG_DESCRIPTION="Tool for automating interactive terminal applications"
|
||||
TERMUX_PKG_LICENSE="Public Domain"
|
||||
TERMUX_PKG_VERSION=5.45.4
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=49a7da83b0bdd9f46d04a04deec19c7767bb9a323e40c4781f89caf760b92c34
|
||||
TERMUX_PKG_SRCURL=http://downloads.sourceforge.net/project/expect/Expect/${TERMUX_PKG_VERSION}/expect${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="libutil, tcl"
|
||||
TERMUX_PKG_DEPENDS="tcl"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
autoconf
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://www.fossil-scm.org
|
||||
TERMUX_PKG_DESCRIPTION="DSCM with built-in wiki, http interface and server, tickets database"
|
||||
TERMUX_PKG_LICENSE="BSD 2-Clause"
|
||||
TERMUX_PKG_API_LEVEL=23
|
||||
TERMUX_PKG_MAINTAINER="Vishal Biswas @vishalbiswas"
|
||||
TERMUX_PKG_VERSION=2.8
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=6a32bec73de26ff5cc8bbb0b7b45360f4e4145931fd215ed91414ed190b3715d
|
||||
TERMUX_PKG_SRCURL=https://www.fossil-scm.org/index.html/uv/fossil-src-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="libsqlite, openssl"
|
||||
|
|
|
@ -2,6 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/
|
|||
TERMUX_PKG_DESCRIPTION="GStreamer base plug-ins"
|
||||
TERMUX_PKG_LICENSE="LGPL-2.0"
|
||||
TERMUX_PKG_VERSION=1.14.4
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=ca6139490e48863e7706d870ff4e8ac9f417b56f3b9e4b3ce490c13b09a77461
|
||||
TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${TERMUX_PKG_VERSION}.tar.xz
|
||||
TERMUX_PKG_DEPENDS="gstreamer, libjpeg-turbo, libopus, libpng, libvorbis"
|
||||
|
@ -10,34 +11,3 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
|||
--disable-examples
|
||||
--disable-pango
|
||||
"
|
||||
|
||||
termux_step_post_make_install() {
|
||||
for BINARY in gst-play-1.0 gst-discoverer-1.0 gst-device-monitor-1.0
|
||||
do
|
||||
echo $BINARY
|
||||
local LIBEXEC_BINARY=$TERMUX_PREFIX/libexec/$BINARY
|
||||
local BIN_BINARY=$TERMUX_PREFIX/bin/$BINARY
|
||||
local LIB_PATH=/system/lib
|
||||
local VENDOR_LIB_PATH=/system/vendor/lib
|
||||
if [ ! "$TERMUX_ARCH_BITS" == "32" ]
|
||||
then
|
||||
LIB_PATH+=64
|
||||
VENDOR_LIB_PATH+=64
|
||||
fi
|
||||
|
||||
mv $BIN_BINARY $LIBEXEC_BINARY
|
||||
local FFMPEG_LIBS="" lib
|
||||
for lib in avcodec avfilter avformat avutil postproc swresample swscale; do
|
||||
if [ -n "$FFMPEG_LIBS" ]; then FFMPEG_LIBS+=":"; fi
|
||||
FFMPEG_LIBS+="$TERMUX_PREFIX/lib/lib${lib}.so"
|
||||
done
|
||||
|
||||
cat << EOF > $BIN_BINARY
|
||||
#!/bin/sh
|
||||
export LD_PRELOAD=$FFMPEG_LIBS
|
||||
# Avoid linker errors due to libOpenSLES.so:
|
||||
LD_LIBRARY_PATH=$LIB_PATH:$VENDOR_LIB_PATH:$TERMUX_PREFIX/lib exec $LIBEXEC_BINARY "\$@"
|
||||
EOF
|
||||
chmod +x $BIN_BINARY
|
||||
done
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/
|
|||
TERMUX_PKG_DESCRIPTION="Open source multimedia framework"
|
||||
TERMUX_PKG_LICENSE="LGPL-2.0"
|
||||
TERMUX_PKG_VERSION=1.14.4
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=f94f6696c5f05a3b3a9183e39c5f5c0b779f75a04c0efa497e7920afa985ffc7
|
||||
TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${TERMUX_PKG_VERSION}.tar.xz
|
||||
TERMUX_PKG_DEPENDS="glib"
|
||||
|
@ -16,27 +17,3 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
|||
GLIB_GENMARSHAL=/usr/bin/glib-genmarshal
|
||||
GLIB_MKENUMS=/usr/bin/glib-mkenums
|
||||
"
|
||||
|
||||
termux_step_post_make_install() {
|
||||
for BINARY in gst-inspect-1.0 gst-stats-1.0 gst-typefind-1.0 gst-launch-1.0
|
||||
do
|
||||
echo $BINARY
|
||||
local LIBEXEC_BINARY=$TERMUX_PREFIX/libexec/$BINARY
|
||||
local BIN_BINARY=$TERMUX_PREFIX/bin/$BINARY
|
||||
local LIB_PATH=/system/lib
|
||||
if [ ! "$TERMUX_ARCH_BITS" == "32" ]
|
||||
then
|
||||
LIB_PATH+=64
|
||||
fi
|
||||
|
||||
mv $BIN_BINARY $LIBEXEC_BINARY
|
||||
|
||||
cat << EOF > $BIN_BINARY
|
||||
#!/bin/sh
|
||||
|
||||
# Avoid linker errors due to libOpenSLES.so:
|
||||
LD_LIBRARY_PATH=/system/lib64/:$TERMUX_PREFIX/lib exec $LIBEXEC_BINARY "\$@"
|
||||
EOF
|
||||
chmod +x $BIN_BINARY
|
||||
done
|
||||
}
|
||||
|
|
|
@ -2,13 +2,9 @@ TERMUX_PKG_HOMEPAGE=http://md5deep.sourceforge.net/
|
|||
TERMUX_PKG_DESCRIPTION="Programs to compute hashsums of arbitrary number of files recursively"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_VERSION=4.4
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_REVISION=4
|
||||
TERMUX_PKG_SRCURL=https://github.com/jessek/hashdeep/archive/v$TERMUX_PKG_VERSION.tar.gz
|
||||
TERMUX_PKG_SHA256=ad78d42142f9a74fe8ec0c61bc78d6588a528cbb9aede9440f50b6ff477f3a7f
|
||||
if [ "$TERMUX_ARCH_BITS" = 32 ]; then
|
||||
# hashdeep requires 64-bit off_t.
|
||||
TERMUX_PKG_API_LEVEL=24
|
||||
fi
|
||||
|
||||
termux_step_pre_configure() {
|
||||
sh bootstrap.sh
|
||||
|
|
|
@ -15,7 +15,6 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
|||
--with-lzma
|
||||
--disable-openmp
|
||||
ac_cv_func_ftime=no
|
||||
ac_cv_header_complex_h=no
|
||||
"
|
||||
TERMUX_PKG_RM_AFTER_INSTALL="
|
||||
bin/Magick-config
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://www.gnu.org/software/inetutils/
|
|||
TERMUX_PKG_DESCRIPTION="Collection of common network programs"
|
||||
TERMUX_PKG_LICENSE="GPL-3.0"
|
||||
TERMUX_PKG_VERSION=1.9.4
|
||||
TERMUX_PKG_REVISION=6
|
||||
TERMUX_PKG_REVISION=7
|
||||
TERMUX_PKG_SRCURL=https://mirrors.kernel.org/gnu/inetutils/inetutils-${TERMUX_PKG_VERSION}.tar.xz
|
||||
TERMUX_PKG_SHA256=849d96f136effdef69548a940e3e0ec0624fc0c81265296987986a0dd36ded37
|
||||
TERMUX_PKG_DEPENDS="readline, libutil"
|
||||
TERMUX_PKG_DEPENDS="readline"
|
||||
# These are old cruft / not suited for android
|
||||
# (we --disable-traceroute as it requires root
|
||||
# in favour of tracepath, which sets up traceroute
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
TERMUX_PKG_HOMEPAGE=http://joe-editor.sourceforge.net
|
||||
TERMUX_PKG_DESCRIPTION="Wordstar like text editor"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_DEPENDS="ncurses, libutil"
|
||||
TERMUX_PKG_DEPENDS="ncurses"
|
||||
TERMUX_PKG_CONFLICTS="jupp"
|
||||
TERMUX_PKG_VERSION=4.6
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=495a0a61f26404070fe8a719d80406dc7f337623788e445b92a9f6de512ab9de
|
||||
TERMUX_PKG_SRCURL=https://sourceforge.net/projects/joe-editor/files/JOE%20sources/joe-${TERMUX_PKG_VERSION}/joe-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-termcap"
|
||||
|
|
|
@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://www.mirbsd.org/jupp.htm
|
|||
TERMUX_PKG_DESCRIPTION="User friendly full screen text editor"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_MAINTAINER="Dominik George @Natureshadow"
|
||||
TERMUX_PKG_DEPENDS="ncurses, libutil"
|
||||
TERMUX_PKG_DEPENDS="ncurses"
|
||||
TERMUX_PKG_CONFLICTS="joe"
|
||||
TERMUX_PKG_VERSION=3.1jupp38
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=c5cbe3f97683f6e513f611a60531feefb9b877f8cea4c6e9087b48631f69ed40
|
||||
TERMUX_PKG_SRCURL=http://www.mirbsd.org/MirOS/dist/jupp/joe-${TERMUX_PKG_VERSION}.tgz
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://web.mit.edu/kerberos
|
|||
TERMUX_PKG_DESCRIPTION="The Kerberos network authentication system"
|
||||
TERMUX_PKG_LICENSE="MIT"
|
||||
TERMUX_PKG_VERSION=1.16.2
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_SHA256=9f721e1fe593c219174740c71de514c7228a97d23eb7be7597b2ae14e487f027
|
||||
TERMUX_PKG_SRCURL=https://fossies.org/linux/misc/krb5-$TERMUX_PKG_VERSION.tar.gz
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libandroid-glob, readline, openssl, libutil, libdb"
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libandroid-glob, readline, openssl, libdb"
|
||||
TERMUX_PKG_MAINTAINER="Vishal Biswas @vishalbiswas"
|
||||
TERMUX_PKG_CONFFILES="etc/krb5.conf var/krb5kdc/kdc.conf"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--with-readline
|
||||
|
|
|
@ -2,7 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://lftp.tech/
|
|||
TERMUX_PKG_DESCRIPTION="FTP/HTTP client and file transfer program"
|
||||
TERMUX_PKG_LICENSE="GPL-3.0"
|
||||
TERMUX_PKG_VERSION=4.8.4
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_REVISION=4
|
||||
TERMUX_PKG_SHA256=4ebc271e9e5cea84a683375a0f7e91086e5dac90c5d51bb3f169f75386107a62
|
||||
TERMUX_PKG_SRCURL=https://lftp.tech/ftp/lftp-${TERMUX_PKG_VERSION}.tar.xz
|
||||
# (1) Android has dn_expand, but lftp assumes that dn_skipname then exists, which it does not on android.
|
||||
|
@ -13,7 +13,7 @@ ac_cv_func_dn_expand=no
|
|||
--with-expat=$TERMUX_PREFIX
|
||||
--with-readline=$TERMUX_PREFIX
|
||||
"
|
||||
TERMUX_PKG_DEPENDS="libexpat, openssl, readline, libutil, libidn2"
|
||||
TERMUX_PKG_DEPENDS="libexpat, openssl, readline, libidn2"
|
||||
TERMUX_PKG_BUILD_DEPENDS="ncurses-dev"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
diff -u -r ../elfutils-0.168/config.h.in ./config.h.in
|
||||
--- ../elfutils-0.168/config.h.in 2016-12-28 10:33:20.000000000 +0100
|
||||
+++ ./config.h.in 2017-07-09 23:32:21.305290105 +0200
|
||||
@@ -1,4 +1,7 @@
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
+#include <libgen.h> /* for basename(3) */
|
||||
+#include <stdio_ext.h> /* for fputc_unlocked(3) */
|
||||
+#define DL_CALL_FCT(f, args) ((*(f)) args)
|
||||
|
||||
/* Building with -fsanitize=undefined or not */
|
||||
#undef CHECK_UNDEFINED
|
||||
@@ -117,4 +120,14 @@
|
||||
/* Define for large files, on AIX-style hosts. */
|
||||
#undef _LARGE_FILES
|
||||
|
||||
+#ifdef __ANDROID__
|
||||
+# ifndef ANDROID_MEMPCPY
|
||||
+# define ANDROID_MEMPCPY 1
|
||||
+static __inline__ void* mempcpy(void* dest, void const* src, size_t n)
|
||||
+{
|
||||
+ return memcpy(dest, src, n) + n;
|
||||
+}
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
#include <eu-config.h>
|
|
@ -1,11 +0,0 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://refspecs.linuxbase.org/LSB_2.1.0/LSB-generic/LSB-generic/libutil.html
|
||||
TERMUX_PKG_DESCRIPTION="Library with terminal functions"
|
||||
TERMUX_PKG_LICENSE="NCSA" # same as ndk-sysroot
|
||||
TERMUX_PKG_VERSION=0.4
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
|
||||
termux_step_make_install() {
|
||||
CPPFLAGS+=" -std=c11 -Wall -Werror"
|
||||
$CC $CPPFLAGS $CFLAGS -c -fPIC $TERMUX_PKG_BUILDER_DIR/pty.c -o pty.o
|
||||
$CC -shared -fPIC $LDFLAGS -o $TERMUX_PREFIX/lib/libutil.so pty.o
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdlib.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
int openpty(int* amaster, int* aslave, char* name, const struct termios* termp, const struct winsize* winp)
|
||||
{
|
||||
char buf[512];
|
||||
|
||||
int master = open("/dev/ptmx", O_RDWR);
|
||||
if (master == -1) return -1;
|
||||
if (grantpt(master) || unlockpt(master) || ptsname_r(master, buf, sizeof buf)) goto fail;
|
||||
|
||||
int slave = open(buf, O_RDWR | O_NOCTTY);
|
||||
if (slave == -1) goto fail;
|
||||
|
||||
/* XXX Should we ignore errors here? */
|
||||
if (termp) tcsetattr(slave, TCSAFLUSH, termp);
|
||||
if (winp) ioctl(slave, TIOCSWINSZ, winp);
|
||||
|
||||
*amaster = master;
|
||||
*aslave = slave;
|
||||
if (name != NULL) strcpy(name, buf);
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
close(master);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int login_tty(int fd)
|
||||
{
|
||||
setsid();
|
||||
if (ioctl(fd, TIOCSCTTY, NULL) == -1) return -1;
|
||||
dup2(fd, 0);
|
||||
dup2(fd, 1);
|
||||
dup2(fd, 2);
|
||||
if (fd > 2) close(fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int forkpty(int* amaster, char* name, const struct termios* termp, const struct winsize* winp)
|
||||
{
|
||||
int master, slave;
|
||||
if (openpty(&master, &slave, name, termp, winp) == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pid;
|
||||
switch (pid = fork()) {
|
||||
case -1:
|
||||
return -1;
|
||||
case 0:
|
||||
close(master);
|
||||
if (login_tty(slave)) _exit(1);
|
||||
return 0;
|
||||
default:
|
||||
*amaster = master;
|
||||
close (slave);
|
||||
return pid;
|
||||
}
|
||||
}
|
|
@ -1,14 +1,14 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://luarocks.org/
|
||||
TERMUX_PKG_DESCRIPTION="Deployment and management system for Lua modules"
|
||||
TERMUX_PKG_LICENSE="BSD"
|
||||
TERMUX_PKG_VERSION=2.4.4
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=3938df33de33752ff2c526e604410af3dceb4b7ff06a770bc4a240de80a1f934
|
||||
TERMUX_PKG_VERSION=3.0.4
|
||||
TERMUX_PKG_SRCURL=https://luarocks.org/releases/luarocks-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_SHA256=1236a307ca5c556c4fed9fdbd35a7e0e80ccf063024becc8c3bf212f37ff0edf
|
||||
TERMUX_PKG_DEPENDS="curl, lua"
|
||||
TERMUX_PKG_BUILD_DEPENDS="liblua-dev"
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
TERMUX_PKG_PLATFORM_INDEPENDENT=yes
|
||||
TERMUX_PKG_EXTRA_MAKE_ARGS="LUA=/usr/bin/lua"
|
||||
|
||||
termux_step_configure() {
|
||||
./configure --prefix=$TERMUX_PREFIX \
|
||||
|
|
|
@ -1,30 +1,40 @@
|
|||
diff -u -r ../luarocks-2.4.3/configure ./configure
|
||||
--- ../luarocks-2.4.3/configure 2017-09-13 01:46:14.000000000 +0200
|
||||
+++ ./configure 2017-10-14 23:43:39.753730578 +0200
|
||||
@@ -305,26 +305,6 @@
|
||||
--- ./configure.orig 2019-03-10 15:10:39.226464224 +0100
|
||||
+++ ./configure 2019-03-10 15:13:22.879796367 +0100
|
||||
@@ -377,37 +377,6 @@
|
||||
}
|
||||
fi
|
||||
done
|
||||
|
||||
-if [ "$lua_interp_found" != "yes" ]
|
||||
-then
|
||||
- [ "$LUA_VERSION_SET" ] && { interp="Lua $LUA_VERSION" ;} || { interp="Lua" ;}
|
||||
- [ "$LUA_DIR_SET" -o "$LUA_BINDIR_SET" ] && { where="$LUA_BINDIR" ;} || { where="\$PATH" ;}
|
||||
- echo "$interp interpreter not found in $where"
|
||||
- die "You may want to use the flags --with-lua, --with-lua-bin and/or --lua-suffix. See --help."
|
||||
- if [ "$LUA_VERSION_SET" ]
|
||||
- then
|
||||
- interp="Lua $LUA_VERSION"
|
||||
- else
|
||||
- interp="Lua"
|
||||
- fi
|
||||
- if [ "$LUA_DIR_SET" ] || [ "$LUA_BINDIR_SET" ]
|
||||
- then
|
||||
- where="$LUA_BINDIR"
|
||||
- else
|
||||
- where="\$PATH"
|
||||
- fi
|
||||
- echo "$(RED $interp interpreter not found) in $where"
|
||||
- echo "You may want to use the flags $(BOLD --with-lua), $(BOLD --with-lua-bin) and/or $(BOLD --lua-version)"
|
||||
- die "Run $(BOLD ./configure --help) for details."
|
||||
-fi
|
||||
-
|
||||
-if [ "$LUA_VERSION_SET" = "yes" ]
|
||||
-then
|
||||
- echo_n "Checking if $LUA_BINDIR/lua$LUA_SUFFIX is Lua version $LUA_VERSION... "
|
||||
- if detect_lua_version "$LUA_BINDIR/lua$LUA_SUFFIX"
|
||||
- echo_n "Checking if $LUA_BINDIR/$LUA_INTERPRETER is Lua version $LUA_VERSION... "
|
||||
- if detect_lua_version "$LUA_BINDIR/$LUA_INTERPRETER"
|
||||
- then
|
||||
- echo "yes"
|
||||
- else
|
||||
- echo "no"
|
||||
- die "You may want to use the flags --with-lua, --with-lua-bin and/or --lua-suffix. See --help."
|
||||
- die "You may want to use the flags --with-lua, --with-lua-bin and/or --lua-version. See --help."
|
||||
- fi
|
||||
-fi
|
||||
-
|
||||
if [ "$LUA_INCDIR_SET" != "yes" ]
|
||||
then
|
||||
LUA_INCDIR="$LUA_DIR/include"
|
||||
# ----------------------------------------
|
||||
# Additional checks
|
||||
# ----------------------------------------
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
diff -u -r ../luarocks-2.4.0/src/luarocks/fs/lua.lua ./src/luarocks/fs/lua.lua
|
||||
--- ../luarocks-2.4.0/src/luarocks/fs/lua.lua 2016-09-08 14:39:09.000000000 -0400
|
||||
+++ ./src/luarocks/fs/lua.lua 2016-09-26 09:13:06.062435573 -0400
|
||||
@@ -781,7 +781,7 @@
|
||||
assert(type(name) == "string")
|
||||
name = dir.normalize(name)
|
||||
--- ./src/luarocks/fs/lua.lua.orig 2019-03-10 15:14:28.333129223 +0100
|
||||
+++ ./src/luarocks/fs/lua.lua 2019-03-10 15:32:29.349788026 +0100
|
||||
@@ -961,7 +961,7 @@
|
||||
assert(type(name_pattern) == "string")
|
||||
name_pattern = dir.normalize(name_pattern)
|
||||
|
||||
- return posix.mkdtemp((os.getenv("TMPDIR") or "/tmp") .. "/luarocks_" .. name:gsub(dir.separator, "_") .. "-XXXXXX")
|
||||
+ return posix.mkdtemp((os.getenv("TMPDIR") or "@TERMUX_PREFIX@/tmp") .. "/luarocks_" .. name:gsub(dir.separator, "_") .. "-XXXXXX")
|
||||
- return posix.mkdtemp((os.getenv("TMPDIR") or "/tmp") .. "/luarocks_" .. name_pattern:gsub("/", "_") .. "-XXXXXX")
|
||||
+ return posix.mkdtemp((os.getenv("TMPDIR") or "@TERMUX_PREFIX@/tmp") .. "/luarocks_" .. name_pattern:gsub("/", "_") .. "-XXXXXX")
|
||||
end
|
||||
|
||||
end
|
||||
end -- if posix.mkdtemp
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
--- ../cfg.lua.orig 2018-05-25 06:56:17.183526289 +0000
|
||||
+++ ./src/luarocks/cfg.lua 2018-05-25 06:57:25.695490218 +0000
|
||||
@@ -517,10 +517,10 @@
|
||||
defaults.lib_extension = "so"
|
||||
defaults.external_lib_extension = "so"
|
||||
defaults.obj_extension = "o"
|
||||
- defaults.external_deps_dirs = { "/usr/local", "/usr" }
|
||||
- defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR or "/usr/local/bin"
|
||||
- defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR or "/usr/local/include"
|
||||
- defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR or "/usr/local/lib"
|
||||
+ defaults.external_deps_dirs = { "@TERMUX_PREFIX@/local", "@TERMUX_PREFIX@" }
|
||||
+ defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR or "@TERMUX_PREFIX@/local/bin"
|
||||
+ defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR or "@TERMUX_PREFIX@/local/include"
|
||||
+ defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR or "@TERMUX_PREFIX@/local/lib"
|
||||
defaults.variables.CFLAGS = "-O2"
|
||||
defaults.cmake_generator = "Unix Makefiles"
|
||||
defaults.variables.CC = "gcc"
|
|
@ -0,0 +1,11 @@
|
|||
--- ./src/luarocks/core/cfg.lua~ 2018-10-30 18:31:40.000000000 +0100
|
||||
+++ ./src/luarocks/core/cfg.lua 2019-03-10 16:33:24.676428404 +0100
|
||||
@@ -358,7 +358,7 @@
|
||||
defaults.static_lib_extension = "a"
|
||||
defaults.external_lib_extension = "so"
|
||||
defaults.obj_extension = "o"
|
||||
- defaults.external_deps_dirs = { "/usr/local", "/usr", "/" }
|
||||
+ defaults.external_deps_dirs = { "@TERMUX_PREFIX@/local", "@TERMUX_PREFIX@" }
|
||||
defaults.variables.CFLAGS = "-O2"
|
||||
defaults.cmake_generator = "Unix Makefiles"
|
||||
defaults.variables.CC = "gcc"
|
|
@ -1,12 +1,11 @@
|
|||
diff -u -r ../luarocks-2.4.0/src/luarocks/fs/unix/tools.lua ./src/luarocks/fs/unix/tools.lua
|
||||
--- ../luarocks-2.4.0/src/luarocks/fs/unix/tools.lua 2016-09-08 14:39:09.000000000 -0400
|
||||
+++ ./src/luarocks/fs/unix/tools.lua 2016-09-26 09:19:08.200979160 -0400
|
||||
@@ -224,7 +224,7 @@
|
||||
assert(type(name) == "string")
|
||||
name = dir.normalize(name)
|
||||
--- ./src/luarocks/fs/unix/tools.lua.orig 2019-03-10 16:35:27.583094191 +0100
|
||||
+++ ./src/luarocks/fs/unix/tools.lua 2019-03-10 16:36:17.913093843 +0100
|
||||
@@ -300,7 +300,7 @@
|
||||
assert(type(name_pattern) == "string")
|
||||
name_pattern = dir.normalize(name_pattern)
|
||||
|
||||
- local template = (os.getenv("TMPDIR") or "/tmp") .. "/luarocks_" .. name:gsub(dir.separator, "_") .. "-XXXXXX"
|
||||
+ local template = (os.getenv("TMPDIR") or "@TERMUX_PREFIX@/tmp") .. "/luarocks_" .. name:gsub(dir.separator, "_") .. "-XXXXXX"
|
||||
- local template = (os.getenv("TMPDIR") or "/tmp") .. "/luarocks_" .. name_pattern:gsub("/", "_") .. "-XXXXXX"
|
||||
+ local template = (os.getenv("TMPDIR") or "@TERMUX_PREFIX@/tmp") .. "/luarocks_" .. name_pattern:gsub("/", "_") .. "-XXXXXX"
|
||||
local pipe = io.popen(vars.MKTEMP.." -d "..fs.Q(template))
|
||||
local dirname = pipe:read("*l")
|
||||
pipe:close()
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://mosh.org
|
|||
TERMUX_PKG_DESCRIPTION="Mobile shell that supports roaming and intelligent local echo"
|
||||
TERMUX_PKG_LICENSE="GPL-3.0"
|
||||
TERMUX_PKG_VERSION=1.3.2
|
||||
TERMUX_PKG_REVISION=10
|
||||
TERMUX_PKG_REVISION=12
|
||||
TERMUX_PKG_SHA256=da600573dfa827d88ce114e0fed30210689381bbdcff543c931e4d6a2e851216
|
||||
TERMUX_PKG_SRCURL=https://github.com/mobile-shell/mosh/releases/download/mosh-${TERMUX_PKG_VERSION}/mosh-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libprotobuf, ncurses, openssl, openssh, libutil"
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libprotobuf, ncurses, openssl, openssh"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
export PROTOC=$TERMUX_TOPDIR/libprotobuf/host-build/src/protoc
|
||||
|
@ -17,7 +17,6 @@ termux_step_post_make_install() {
|
|||
mv mosh mosh.pl
|
||||
$CXX $CXXFLAGS $LDFLAGS \
|
||||
-isystem $TERMUX_PREFIX/include \
|
||||
-lutil \
|
||||
-DPACKAGE_VERSION=\"$TERMUX_PKG_VERSION\" \
|
||||
-std=c++11 -Wall -Wextra -Werror \
|
||||
$TERMUX_PKG_BUILDER_DIR/mosh.cc -o mosh
|
||||
|
|
|
@ -2,7 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://mpv.io/
|
|||
TERMUX_PKG_DESCRIPTION="Command-line media player"
|
||||
TERMUX_PKG_LICENSE="GPL-3.0"
|
||||
TERMUX_PKG_VERSION=0.29.1
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_SHA256=f9f9d461d1990f9728660b4ccb0e8cb5dce29ccaa6af567bec481b79291ca623
|
||||
TERMUX_PKG_SRCURL=https://github.com/mpv-player/mpv/archive/v${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="ffmpeg, openal-soft, libandroid-support, libandroid-glob, libpulseaudio"
|
||||
|
@ -36,33 +36,4 @@ termux_step_make_install() {
|
|||
# Use opensles audio out be default:
|
||||
mkdir -p $TERMUX_PREFIX/etc/mpv
|
||||
cp $TERMUX_PKG_BUILDER_DIR/mpv.conf $TERMUX_PREFIX/etc/mpv/mpv.conf
|
||||
|
||||
# Try to work around OpenSL ES library clashes:
|
||||
# Linking against libOpenSLES causes indirect linkage against
|
||||
# libskia.so, which links against the platform libjpeg.so and
|
||||
# libpng.so, which are not compatible with the Termux ones.
|
||||
#
|
||||
# On Android N also liblzma seems to conflict.
|
||||
mkdir -p $TERMUX_PREFIX/libexec
|
||||
mv $TERMUX_PREFIX/bin/mpv $TERMUX_PREFIX/libexec
|
||||
|
||||
local SYSTEM_LIBFOLDER=lib64
|
||||
if [ $TERMUX_ARCH_BITS = 32 ]; then SYSTEM_LIBFOLDER=lib; fi
|
||||
|
||||
echo "#!/bin/sh" > $TERMUX_PREFIX/bin/mpv
|
||||
|
||||
# Work around issues on devices having ffmpeg libraries
|
||||
# in a system vendor dir, reported by live_the_dream on #termux:
|
||||
local FFMPEG_LIBS="" lib
|
||||
for lib in avcodec avfilter avformat avutil postproc swresample swscale; do
|
||||
if [ -n "$FFMPEG_LIBS" ]; then FFMPEG_LIBS+=":"; fi
|
||||
FFMPEG_LIBS+="$TERMUX_PREFIX/lib/lib${lib}.so"
|
||||
done
|
||||
echo "export LD_PRELOAD=$FFMPEG_LIBS" >> $TERMUX_PREFIX/bin/mpv
|
||||
|
||||
# /system/vendor/lib(64) needed for libqc-opt.so on
|
||||
# a xperia z5 c, reported by BrainDamage on #termux:
|
||||
echo "LD_LIBRARY_PATH=/system/$SYSTEM_LIBFOLDER:/system/vendor/$SYSTEM_LIBFOLDER:$TERMUX_PREFIX/lib exec $TERMUX_PREFIX/libexec/mpv \"\$@\"" >> $TERMUX_PREFIX/bin/mpv
|
||||
|
||||
chmod +x $TERMUX_PREFIX/bin/mpv
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://marlam.de/msmtp/
|
||||
TERMUX_PKG_DESCRIPTION="Lightweight SMTP client"
|
||||
TERMUX_PKG_LICENSE="GPL-3.0"
|
||||
TERMUX_PKG_API_LEVEL=23
|
||||
TERMUX_PKG_VERSION=1.8.3
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=3cb2eefd33d048f0f82de100ef39a494e44fd1485e376ead31f733d2f36b92b4
|
||||
TERMUX_PKG_SRCURL=https://marlam.de/msmtp/releases/msmtp-$TERMUX_PKG_VERSION.tar.xz
|
||||
TERMUX_PKG_DEPENDS="openssl, libidn2"
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://neovim.io/
|
|||
TERMUX_PKG_DESCRIPTION="Ambitious Vim-fork focused on extensibility and agility (nvim)"
|
||||
TERMUX_PKG_LICENSE="Apache-2.0"
|
||||
TERMUX_PKG_VERSION=0.3.4
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_SHA256=a641108bdebfaf319844ed46b1bf35d6f7c30ef5aeadeb29ba06e19c3274bc0e
|
||||
TERMUX_PKG_SRCURL=https://github.com/neovim/neovim/archive/v${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="libuv, libmsgpack, libandroid-support, libvterm, libtermkey, libutil, liblua, libunibilium"
|
||||
TERMUX_PKG_DEPENDS="libuv, libmsgpack, libandroid-support, libvterm, libtermkey, liblua, libunibilium"
|
||||
TERMUX_PKG_HOSTBUILD=true
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
-DENABLE_JEMALLOC=OFF
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://newsboat.org/
|
||||
TERMUX_PKG_DESCRIPTION="RSS/Atom feed reader for the text console"
|
||||
TERMUX_PKG_LICENSE="MIT"
|
||||
TERMUX_PKG_API_LEVEL=24
|
||||
TERMUX_PKG_VERSION=2.14.1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_SHA256=4bd0d3b1901a3fc7e0ef73b800587c28181a57b175c36b547dbd84636330df66
|
||||
TERMUX_PKG_SRCURL=https://newsboat.org/releases/${TERMUX_PKG_VERSION}/newsboat-${TERMUX_PKG_VERSION}.tar.xz
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libandroid-glob, json-c, libsqlite, libcurl, libxml2, stfl, ncurses, openssl"
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://www.openssh.com/
|
|||
TERMUX_PKG_DESCRIPTION="Secure shell for logging into a remote machine"
|
||||
TERMUX_PKG_LICENSE="BSD"
|
||||
TERMUX_PKG_VERSION=7.9p1
|
||||
TERMUX_PKG_REVISION=5
|
||||
TERMUX_PKG_REVISION=6
|
||||
TERMUX_PKG_SHA256=6b4b3ba2253d84ed3771c8050728d597c91cfce898713beb7b64a305b6f11aad
|
||||
TERMUX_PKG_SRCURL=https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, ldns, openssl, libedit, libutil, termux-auth, krb5"
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, ldns, openssl, libedit, termux-auth, krb5"
|
||||
TERMUX_PKG_CONFLICTS="dropbear"
|
||||
# --disable-strip to prevent host "install" command to use "-s", which won't work for target binaries:
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
|
|
|
@ -1,23 +1,8 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://github.com/termux/play-audio
|
||||
TERMUX_PKG_DESCRIPTION="Simple commandline audio player for Android"
|
||||
TERMUX_PKG_DESCRIPTION="Simple command line audio player for Android"
|
||||
TERMUX_PKG_LICENSE="Apache-2.0"
|
||||
TERMUX_PKG_VERSION=0.5
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_SHA256=e114123c4b337cddb1d4aa6c3287574d8c81b2dc4b3abc07ce21616fa14f9e82
|
||||
TERMUX_PKG_SRCURL=https://github.com/termux/play-audio/archive/v${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
|
||||
termux_step_post_make_install() {
|
||||
local LIBEXEC_BINARY=$TERMUX_PREFIX/libexec/play-audio
|
||||
local BIN_BINARY=$TERMUX_PREFIX/bin/play-audio
|
||||
mv $BIN_BINARY $LIBEXEC_BINARY
|
||||
|
||||
cat << EOF > $BIN_BINARY
|
||||
#!/bin/sh
|
||||
|
||||
# Avoid linker errors due to libOpenSLES.so:
|
||||
LD_PRELOAD=$TERMUX_PREFIX/lib/libc++_shared.so LD_LIBRARY_PATH= exec $LIBEXEC_BINARY "\$@"
|
||||
EOF
|
||||
|
||||
chmod +x $BIN_BINARY
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://python.org/
|
||||
TERMUX_PKG_DESCRIPTION="Python 3 programming language intended to enable clear programs"
|
||||
TERMUX_PKG_LICENSE="PythonPL"
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, ncurses, readline, libffi, openssl, libutil, libbz2, libsqlite, gdbm, ncurses-ui-libs, libcrypt, liblzma"
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, ncurses, readline, libffi, openssl, libbz2, libsqlite, gdbm, ncurses-ui-libs, libcrypt, liblzma"
|
||||
# Python.h includes crypt.h:
|
||||
TERMUX_PKG_DEVPACKAGE_DEPENDS="libcrypt-dev"
|
||||
_MAJOR_VERSION=3.7
|
||||
TERMUX_PKG_VERSION=${_MAJOR_VERSION}.2
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_SHA256=d83fe8ce51b1bb48bbcf0550fd265b9a75cdfdfa93f916f9e700aef8444bf1bb
|
||||
TERMUX_PKG_SRCURL=https://www.python.org/ftp/python/${TERMUX_PKG_VERSION}/Python-${TERMUX_PKG_VERSION}.tar.xz
|
||||
|
||||
|
|
|
@ -5,13 +5,14 @@ TERMUX_PKG_LICENSE="PythonPL"
|
|||
# openssl for ensurepip.
|
||||
# libbz2 for the bz2 module.
|
||||
# ncurses-ui-libs for the curses.panel module.
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, ncurses, readline, libffi, openssl, libutil, libbz2, libsqlite, gdbm, ncurses-ui-libs, libcrypt"
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, ncurses, readline, libffi, openssl, libbz2, libsqlite, gdbm, ncurses-ui-libs, libcrypt"
|
||||
# Python.h includes crypt.h:
|
||||
TERMUX_PKG_DEVPACKAGE_DEPENDS="libcrypt-dev"
|
||||
TERMUX_PKG_HOSTBUILD=true
|
||||
|
||||
_MAJOR_VERSION=2.7
|
||||
TERMUX_PKG_VERSION=${_MAJOR_VERSION}.16
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=f222ef602647eecb6853681156d32de4450a2c39f4de93bd5b20235f2e660ed7
|
||||
TERMUX_PKG_SRCURL=https://www.python.org/ftp/python/${TERMUX_PKG_VERSION}/Python-${TERMUX_PKG_VERSION}.tar.xz
|
||||
|
||||
|
|
|
@ -3,11 +3,11 @@ TERMUX_PKG_DESCRIPTION="Dynamic programming language with a focus on simplicity
|
|||
TERMUX_PKG_LICENSE="BSD 2-Clause"
|
||||
_MAJOR_VERSION=2.6
|
||||
TERMUX_PKG_VERSION=${_MAJOR_VERSION}.1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_SHA256=47b629808e9fd44ce1f760cdf3ed14875fc9b19d4f334e82e2cf25cb2898f2f2
|
||||
TERMUX_PKG_SRCURL=https://cache.ruby-lang.org/pub/ruby/${_MAJOR_VERSION}/ruby-${TERMUX_PKG_VERSION}.tar.xz
|
||||
# libbffi is used by the fiddle extension module:
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libffi, libgmp, readline, openssl, libutil, libyaml"
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libffi, libgmp, readline, openssl, libyaml"
|
||||
# Needed to fix compilation on android:
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_cv_func_setgroups=no ac_cv_func_setresuid=no ac_cv_func_setreuid=no --enable-rubygems"
|
||||
# The gdbm module seems to be very little used:
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://www.gnu.org/software/screen/
|
|||
TERMUX_PKG_DESCRIPTION="Terminal multiplexer with VT100/ANSI terminal emulation"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_VERSION=4.6.2
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_SHA256=1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a
|
||||
TERMUX_PKG_SRCURL=https://mirrors.kernel.org/gnu/screen/screen-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="ncurses, libcrypt, libutil"
|
||||
TERMUX_PKG_DEPENDS="ncurses, libcrypt"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
--disable-socket-dir
|
||||
--enable-colors256
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
TERMUX_PKG_HOMEPAGE=http://www.dest-unreach.org/socat/
|
||||
TERMUX_PKG_DESCRIPTION="Relay for bidirectional data transfer between two independent data channels"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_DEPENDS="openssl, readline, libutil"
|
||||
TERMUX_PKG_DEPENDS="openssl, readline"
|
||||
TERMUX_PKG_VERSION=1.7.3.2
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_REVISION=4
|
||||
TERMUX_PKG_SRCURL=http://www.dest-unreach.org/socat/download/socat-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_SHA256=ce3efc17e3e544876ebce7cd6c85b3c279fda057b2857fcaaf67b9ab8bdaf034
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_header_resolv_h=no ac_cv_c_compiler_gnu=yes ac_compiler_gnu=yes" # sc_cv_sys_crdly_shift=9 sc_cv_sys_csize_shift=4 sc_cv_sys_tabdly_shift=11"
|
||||
|
|
|
@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://www.stunnel.org/
|
|||
TERMUX_PKG_DESCRIPTION="Socket wrapper which can provide TLS support to ordinary applications"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_VERSION=5.50
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=951d92502908b852a297bd9308568f7c36598670b84286d3e05d4a3a550c0149
|
||||
TERMUX_PKG_SRCURL=https://www.stunnel.org/downloads/stunnel-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="openssl, libutil"
|
||||
TERMUX_PKG_DEPENDS="openssl"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-shared --with-ssl=$TERMUX_PREFIX --disable-fips"
|
||||
TERMUX_PKG_RM_AFTER_INSTALL="bin/stunnel3 share/man/man8/stunnel.*.8"
|
||||
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
mkfifoat() is available in Android only after API 23. We can't use tar's
|
||||
implementation of mkfifioat() since it will use tar's implementation of
|
||||
mknodat(). This will cause infinite recursion in file gnu/at-func.c and
|
||||
segfault.
|
||||
|
||||
Snippet of backtrace:
|
||||
....
|
||||
#9 0x000000555559819c in mknodat (fd=-100, file=0x7fb7c90050 "sda", mode=25008, dev=2048) at /home/builder/.termux-build/tar/src/gnu/at-func.c:75
|
||||
#10 0x000000555559819c in mknodat (fd=-100, file=0x7fb7c90050 "sda", mode=25008, dev=2048) at /home/builder/.termux-build/tar/src/gnu/at-func.c:75
|
||||
#11 0x000000555559819c in mknodat (fd=-100, file=0x7fb7c90050 "sda", mode=25008, dev=2048) at /home/builder/.termux-build/tar/src/gnu/at-func.c:75
|
||||
#12 0x000000555559819c in mknodat (fd=-100, file=0x7fb7c90050 "sda", mode=25008, dev=2048) at /home/builder/.termux-build/tar/src/gnu/at-func.c:75
|
||||
#13 0x000000555556a9d4 in extract_node (file_name=0x7fb7c90050 "sda", typeflag=52) at /home/builder/.termux-build/tar/src/src/extract.c:1447
|
||||
#14 0x0000005555568f38 in extract_archive () at /home/builder/.termux-build/tar/src/src/extract.c:1709
|
||||
....
|
||||
|
||||
diff -uNr tar-1.30/src/extract.c tar-1.30.mod/src/extract.c
|
||||
--- tar-1.30/src/extract.c 2017-12-16 23:23:12.000000000 +0200
|
||||
+++ tar-1.30.mod/src/extract.c 2017-12-25 14:31:31.541886176 +0200
|
||||
@@ -42,6 +42,11 @@
|
||||
# define fchown(fd, uid, gid) (errno = ENOSYS, -1)
|
||||
#endif
|
||||
|
||||
+static int
|
||||
+mkfifoat(int fd, const char* path, mode_t mode) {
|
||||
+ return mknodat(fd, path, (mode & ~S_IFMT) | S_IFIFO, 0);
|
||||
+}
|
||||
+
|
||||
/* Return true if an error number ERR means the system call is
|
||||
supported in this case. */
|
||||
static bool
|
|
@ -2,10 +2,11 @@ TERMUX_PKG_HOMEPAGE=http://tintin.sourceforge.net
|
|||
TERMUX_PKG_DESCRIPTION="Classic text-based MUD client"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_VERSION=2.01.7
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=fb7c8970855aa57f23bff7859ced0a63f0644f220037d2deb083d6ee2f41760c
|
||||
TERMUX_PKG_SRCURL=https://downloads.sourceforge.net/project/tintin/TinTin%2B%2B%20Source%20Code/${TERMUX_PKG_VERSION:0:4}/tintin-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_cv_file__dev_ptmx=no"
|
||||
TERMUX_PKG_DEPENDS="pcre, libgnutls, libutil"
|
||||
TERMUX_PKG_DEPENDS="pcre, libgnutls"
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
|
||||
termux_step_post_extract_package() {
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://tmate.io
|
|||
TERMUX_PKG_DESCRIPTION="Terminal multiplexer with instant terminal sharing"
|
||||
TERMUX_PKG_LICENSE="BSD"
|
||||
TERMUX_PKG_VERSION=2.2.1
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_SRCURL=https://github.com/tmate-io/tmate/archive/${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_SHA256=d9c2ac59f42e65aac5f500f0548ea8056fd79c9c5285e5af324d833e2a84c305
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libevent, libmsgpack, libssh, libutil, ncurses"
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libevent, libmsgpack, libssh, ncurses"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
CFLAGS+=" -DIOV_MAX=1024"
|
||||
|
|
|
@ -2,9 +2,9 @@ TERMUX_PKG_HOMEPAGE=https://tmux.github.io/
|
|||
TERMUX_PKG_DESCRIPTION="Terminal multiplexer"
|
||||
TERMUX_PKG_LICENSE="BSD"
|
||||
# Link against libandroid-support for wcwidth(), see https://github.com/termux/termux-packages/issues/224
|
||||
TERMUX_PKG_DEPENDS="ncurses, libevent, libutil, libandroid-support, libandroid-glob"
|
||||
TERMUX_PKG_DEPENDS="ncurses, libevent, libandroid-support, libandroid-glob"
|
||||
TERMUX_PKG_VERSION=2.8
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_SHA256=7f6bf335634fafecff878d78de389562ea7f73a7367f268b66d37ea13617a2ba
|
||||
TERMUX_PKG_SRCURL=https://github.com/tmux/tmux/releases/download/${TERMUX_PKG_VERSION}/tmux-${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
|
|
|
@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://tsl0922.github.io/ttyd/
|
|||
TERMUX_PKG_DESCRIPTION="Command-line tool for sharing terminal over the web"
|
||||
TERMUX_PKG_LICENSE="MIT"
|
||||
TERMUX_PKG_VERSION=1.4.2
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=ff1a66b418df6cd741868a8ea84f69cd63f15e52e3fa117641ec57d3c37a1315
|
||||
TERMUX_PKG_SRCURL=https://github.com/tsl0922/ttyd/archive/$TERMUX_PKG_VERSION.tar.gz
|
||||
TERMUX_PKG_DEPENDS="json-c, libwebsockets, libutil"
|
||||
TERMUX_PKG_DEPENDS="json-c, libwebsockets"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DCMAKE_XXD=$TERMUX_PKG_TMPDIR/xxd"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
|
|
|
@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://en.wikipedia.org/wiki/Util-linux
|
|||
TERMUX_PKG_DESCRIPTION="Miscellaneous system utilities"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_VERSION=2.33.1
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_REVISION=2
|
||||
TERMUX_PKG_SHA256=c14bd9f3b6e1792b90db87696e87ec643f9d63efa0a424f092a5a6b2f2dbef21
|
||||
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_DEPENDS="ncurses, libutil, libcrypt"
|
||||
TERMUX_PKG_DEPENDS="ncurses, libcrypt"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
ac_cv_func_setns=yes
|
||||
ac_cv_func_unshare=yes
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
TERMUX_PKG_HOMEPAGE=https://vifm.info/
|
||||
TERMUX_PKG_DESCRIPTION="File manager with vi like keybindings"
|
||||
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||
TERMUX_PKG_API_LEVEL=24
|
||||
TERMUX_PKG_VERSION=0.10
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=e5681c9e560e23d9deeec3b5b12e0ccad82612d9592c00407f3dd75cf5066548
|
||||
TERMUX_PKG_SRCURL=https://github.com/vifm/vifm/archive/v${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_DEPENDS="ncurses, file"
|
||||
|
|
|
@ -5,6 +5,7 @@ termux_step_extract_into_massagedir() {
|
|||
cd $TERMUX_PREFIX
|
||||
tar -N "$TERMUX_BUILD_TS_FILE" \
|
||||
--exclude='lib/libc++_shared.so' --exclude='lib/libstdc++.so' \
|
||||
--exclude='lib/libutil.so' \
|
||||
-czf "$TARBALL_ORIG" .
|
||||
|
||||
# Extract tar in order to massage it
|
||||
|
|
|
@ -24,9 +24,8 @@ termux_step_setup_toolchain() {
|
|||
export READELF=$TERMUX_HOST_PLATFORM-readelf
|
||||
export STRIP=$TERMUX_HOST_PLATFORM-strip
|
||||
|
||||
# Android 7 started to support DT_RUNPATH (but not DT_RPATH), so we may want
|
||||
# LDFLAGS+="-Wl,-rpath=$TERMUX_PREFIX/lib -Wl,--enable-new-dtags"
|
||||
# and no longer remove DT_RUNPATH in termux-elf-cleaner.
|
||||
# Android 7 started to support DT_RUNPATH (but not DT_RPATH).
|
||||
LDFLAGS+=" -Wl,-rpath=$TERMUX_PREFIX/lib -Wl,--enable-new-dtags"
|
||||
|
||||
if [ "$TERMUX_ARCH" = "arm" ]; then
|
||||
# https://developer.android.com/ndk/guides/standalone_toolchain.html#abi_compatibility:
|
||||
|
@ -156,6 +155,13 @@ termux_step_setup_toolchain() {
|
|||
mv $_TERMUX_TOOLCHAIN_TMPDIR $TERMUX_STANDALONE_TOOLCHAIN
|
||||
fi
|
||||
|
||||
# On Android 7, libutil functionality is provided by libc.
|
||||
# But many programs still may search for libutil.
|
||||
if [ ! -f $TERMUX_PREFIX/lib/libutil.so ]; then
|
||||
mkdir -p "$TERMUX_PREFIX/lib"
|
||||
echo 'INPUT(-lc)' > $TERMUX_PREFIX/lib/libutil.so
|
||||
fi
|
||||
|
||||
local _STL_LIBFILE_NAME=libc++_shared.so
|
||||
if [ ! -f $TERMUX_PREFIX/lib/libstdc++.so ]; then
|
||||
# Setup libc++_shared.so in $PREFIX/lib and libstdc++.so as a link to it,
|
||||
|
|
|
@ -7,7 +7,7 @@ termux_step_setup_variables() {
|
|||
: "${TERMUX_PREFIX:="/data/data/com.termux/files/usr"}"
|
||||
: "${TERMUX_ANDROID_HOME:="/data/data/com.termux/files/home"}"
|
||||
: "${TERMUX_DEBUG:=""}"
|
||||
: "${TERMUX_PKG_API_LEVEL:="21"}"
|
||||
: "${TERMUX_PKG_API_LEVEL:="24"}"
|
||||
: "${TERMUX_NO_CLEAN:="false"}"
|
||||
: "${TERMUX_QUIET_BUILD:="false"}"
|
||||
: "${TERMUX_DEBDIR:="${TERMUX_SCRIPTDIR}/debs"}"
|
||||
|
@ -18,7 +18,7 @@ termux_step_setup_variables() {
|
|||
: "${TERMUX_PACKAGES_DIRECTORIES:="packages"}"
|
||||
|
||||
if [ -z ${TERMUX_REPO_URL+x} ]; then
|
||||
TERMUX_REPO_URL=(https://termux.net)
|
||||
TERMUX_REPO_URL=(https://dl.bintray.com/termux/termux-packages-24)
|
||||
# TERMUX_REPO_URL=(https://termux.net https://grimler.se https://dl.bintray.com/xeffyr/unstable-packages)
|
||||
fi
|
||||
if [ -z ${TERMUX_REPO_DISTRIBUTION+x} ]; then
|
||||
|
|
|
@ -0,0 +1,522 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Package uploader for Bintray.
|
||||
##
|
||||
## Leonid Plyushch <leonid.plyushch@gmail.com> (C) 2019
|
||||
##
|
||||
## This program is free software: you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License as published by
|
||||
## the Free Software Foundation, either version 3 of the License, or
|
||||
## (at your option) any later version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful,
|
||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License
|
||||
## along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
|
||||
set -e
|
||||
|
||||
TERMUX_PACKAGES_BASEDIR=$(realpath "$(dirname "$0")/../")
|
||||
if [ ! -d "$TERMUX_PACKAGES_BASEDIR/packages" ]; then
|
||||
echo "[!] Cannot find directory 'packages'." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# In this variable a package metadata will be stored.
|
||||
declare -gA PACKAGE_METADATA
|
||||
|
||||
# Initialize default configuration.
|
||||
DEBFILES_DIR_PATH="$TERMUX_PACKAGES_BASEDIR/debs"
|
||||
PACKAGE_DELETE_MODE=false
|
||||
KEEP_OLD_VERSION=false
|
||||
|
||||
# Bintray-specific configuration.
|
||||
BINTRAY_REPO_NAME="termux-packages-24"
|
||||
BINTRAY_REPO_GITHUB="termux/termux-packages"
|
||||
BINTRAY_REPO_DISTRIBUTION="stable"
|
||||
BINTRAY_REPO_COMPONENT="main"
|
||||
|
||||
# Bintray credentials that should be set as external environment
|
||||
# variables by user.
|
||||
: "${BINTRAY_USERNAME:=""}"
|
||||
: "${BINTRAY_API_KEY:=""}"
|
||||
: "${BINTRAY_GPG_SUBJECT:=""}"
|
||||
: "${BINTRAY_GPG_PASSPHRASE:=""}"
|
||||
|
||||
# If BINTRAY_GPG_SUBJECT is not specified, then signing will be
|
||||
# done with gpg key of subject '$BINTRAY_USERNAME'.
|
||||
if [ -z "$BINTRAY_GPG_SUBJECT" ]; then
|
||||
BINTRAY_GPG_SUBJECT="$BINTRAY_USERNAME"
|
||||
fi
|
||||
|
||||
# Packages are built and uploaded for Termux organisation.
|
||||
BINTRAY_SUBJECT="termux"
|
||||
|
||||
###################################################################
|
||||
|
||||
json_metadata_dump() {
|
||||
local pkg_licenses
|
||||
|
||||
SAVEIFS=$IFS; IFS=",";
|
||||
for license in ${PACKAGE_METADATA['LICENSES']}; do
|
||||
pkg_licenses+="\"$(echo "${license}" | sed -r 's/^\s*(\S+(\s+\S+)*)\s*$/\1/')\","
|
||||
done
|
||||
pkg_licenses=${pkg_licenses%%,}; IFS=$SAVEIFS;
|
||||
|
||||
cat << EOF
|
||||
{
|
||||
"name": "${PACKAGE_METADATA['NAME']}",
|
||||
"desc": "${PACKAGE_METADATA['DESCRIPTION']}",
|
||||
"version": "${PACKAGE_METADATA['VERSION_FULL']}",
|
||||
"licenses": [${pkg_licenses}],
|
||||
"vcs_url": "https://github.com/${BINTRAY_REPO_GITHUB}",
|
||||
"website_url": "${PACKAGE_METADATA['WEBSITE_URL']}",
|
||||
"issue_tracker_url": "https://github.com/${BINTRAY_REPO_GITHUB}/issues",
|
||||
"github_repo": "${BINTRAY_REPO_GITHUB}",
|
||||
"public_download_numbers": "true",
|
||||
"public_stats": "false"
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
delete_package() {
|
||||
local package_name=$1
|
||||
local curl_response
|
||||
local http_status_code
|
||||
local api_response_message
|
||||
|
||||
echo -n "[@] Deleting published package '$package_name' from remote... " >&2
|
||||
curl_response=$(
|
||||
curl \
|
||||
--silent \
|
||||
--user "${BINTRAY_USERNAME}:${BINTRAY_API_KEY}" \
|
||||
--request DELETE \
|
||||
--write-out "|%{http_code}" \
|
||||
"https://api.bintray.com/packages/${BINTRAY_SUBJECT}/${BINTRAY_REPO_NAME}/${package_name}"
|
||||
)
|
||||
|
||||
http_status_code=$(echo "$curl_response" | cut -d'|' -f2)
|
||||
api_response_message=$(echo "$curl_response" | cut -d'|' -f1 | jq -r .message)
|
||||
|
||||
case "$http_status_code" in
|
||||
200)
|
||||
echo "done" >&2
|
||||
;;
|
||||
404)
|
||||
echo "no-need" >&2
|
||||
;;
|
||||
*)
|
||||
echo "failure" >&2
|
||||
echo "[!] $api_response_message" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
upload_package() {
|
||||
local package_name=$1
|
||||
local http_status_code
|
||||
local api_response_message
|
||||
declare -A debfiles_catalog
|
||||
|
||||
for arch in all aarch64 arm i686 x86_64; do
|
||||
# Regular package.
|
||||
debfiles_catalog["${package_name}_${PACKAGE_METADATA['VERSION_FULL']}_${arch}.deb"]=${arch}
|
||||
|
||||
# Development package.
|
||||
debfiles_catalog["${package_name}-dev_${PACKAGE_METADATA['VERSION_FULL']}_${arch}.deb"]=${arch}
|
||||
|
||||
# Discover subpackages.
|
||||
for file in $(find "$TERMUX_PACKAGES_BASEDIR/packages/$package_name/" -maxdepth 1 -type f -iname \*.subpackage.sh | sort); do
|
||||
file=$(basename "$file")
|
||||
debfiles_catalog["${file%%.subpackage.sh}_${PACKAGE_METADATA['VERSION_FULL']}_${arch}.deb"]=${arch}
|
||||
done
|
||||
|
||||
unset debfiles
|
||||
done
|
||||
|
||||
# Filter out nonexistent files.
|
||||
for item in "${!debfiles_catalog[@]}"; do
|
||||
if [ ! -f "$DEBFILES_DIR_PATH/$item" ]; then
|
||||
unset debfiles_catalog["$item"]
|
||||
fi
|
||||
done
|
||||
|
||||
# Verify that our catalog is not empty.
|
||||
if [ ${#debfiles_catalog[@]} -eq 0 ]; then
|
||||
echo "[!] No *.deb files to upload." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! $KEEP_OLD_VERSION; then
|
||||
# Delete entry for package (with all related debfiles).
|
||||
delete_package "$package_name"
|
||||
fi
|
||||
|
||||
# Create new entry for package.
|
||||
echo -n "[@] Creating entry for version '${PACKAGE_METADATA['VERSION_FULL']}' of package '$package_name'... " >&2
|
||||
curl_response=$(
|
||||
curl \
|
||||
--silent \
|
||||
--user "${BINTRAY_USERNAME}:${BINTRAY_API_KEY}" \
|
||||
--request POST \
|
||||
--header "Content-Type: application/json" \
|
||||
--data "$(json_metadata_dump)" \
|
||||
--write-out "|%{http_code}" \
|
||||
"https://api.bintray.com/packages/${BINTRAY_SUBJECT}/${BINTRAY_REPO_NAME}"
|
||||
)
|
||||
|
||||
http_status_code=$(echo "$curl_response" | cut -d'|' -f2)
|
||||
api_response_message=$(echo "$curl_response" | cut -d'|' -f1 | jq -r .message)
|
||||
|
||||
case "$http_status_code" in
|
||||
201)
|
||||
echo "done" >&2
|
||||
;;
|
||||
409)
|
||||
echo "no-need" >&2
|
||||
;;
|
||||
*)
|
||||
echo "failure" >&2
|
||||
echo "[!] $api_response_message" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
for item in "${!debfiles_catalog[@]}"; do
|
||||
local package_arch=${debfiles_catalog[$item]}
|
||||
|
||||
echo -n "[*] Uploading '$item'... " >&2
|
||||
curl_response=$(
|
||||
curl \
|
||||
--silent \
|
||||
--user "${BINTRAY_USERNAME}:${BINTRAY_API_KEY}" \
|
||||
--request PUT \
|
||||
--header "X-Bintray-Debian-Distribution: $BINTRAY_REPO_DISTRIBUTION" \
|
||||
--header "X-Bintray-Debian-Component: $BINTRAY_REPO_COMPONENT" \
|
||||
--header "X-Bintray-Debian-Architecture: $package_arch" \
|
||||
--header "X-Bintray-Package: ${package_name}" \
|
||||
--header "X-Bintray-Version: ${PACKAGE_METADATA['VERSION_FULL']}" \
|
||||
--upload-file "$DEBFILES_DIR_PATH/$item" \
|
||||
--write-out "|%{http_code}" \
|
||||
"https://api.bintray.com/content/${BINTRAY_SUBJECT}/${BINTRAY_REPO_NAME}/${package_arch}/${item}"
|
||||
)
|
||||
|
||||
http_status_code=$(echo "$curl_response" | cut -d'|' -f2)
|
||||
api_response_message=$(echo "$curl_response" | cut -d'|' -f1 | jq -r .message)
|
||||
|
||||
case "$http_status_code" in
|
||||
201)
|
||||
echo "done" >&2
|
||||
;;
|
||||
409)
|
||||
echo "unchanged" >&2
|
||||
;;
|
||||
*)
|
||||
echo "failure" >&2
|
||||
echo "[!] $api_response_message" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Publishing package only after uploading all it's files. This will prevent
|
||||
# spawning multiple metadata-generation jobs and will allow to sign metadata
|
||||
# with maintainer's key.
|
||||
echo -n "[@] Publishing package '$package_name'... " >&2
|
||||
curl_response=$(
|
||||
curl \
|
||||
--silent \
|
||||
--user "${BINTRAY_USERNAME}:${BINTRAY_API_KEY}" \
|
||||
--request POST \
|
||||
--header "Content-Type: application/json" \
|
||||
--data "{\"subject\":\"${BINTRAY_GPG_SUBJECT}\",\"passphrase\":\"$BINTRAY_GPG_PASSPHRASE\"}" \
|
||||
--write-out "|%{http_code}" \
|
||||
"https://api.bintray.com/content/${BINTRAY_SUBJECT}/${BINTRAY_REPO_NAME}/${package_name}/${PACKAGE_METADATA['VERSION_FULL']}/publish"
|
||||
)
|
||||
|
||||
http_status_code=$(echo "$curl_response" | cut -d'|' -f2)
|
||||
api_response_message=$(echo "$curl_response" | cut -d'|' -f1 | jq -r .message)
|
||||
|
||||
case "$http_status_code" in
|
||||
200)
|
||||
echo "done" >&2
|
||||
;;
|
||||
*)
|
||||
echo "failure" >&2
|
||||
echo "[!] $api_response_message" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
extract_variable_from_buildsh() {
|
||||
local extracted_value
|
||||
local variable_name
|
||||
variable_name=$1
|
||||
|
||||
extracted_value=$(
|
||||
set -o noglob
|
||||
|
||||
# When sourcing external code, do not expose variables
|
||||
# with sensitive information.
|
||||
unset BINTRAY_API_KEY
|
||||
unset BINTRAY_GPG_PASSPHRASE
|
||||
unset BINTRAY_GPG_SUBJECT
|
||||
unset BINTRAY_SUBJECT
|
||||
unset BINTRAY_USERNAME
|
||||
|
||||
[ -e "$TERMUX_PACKAGES_BASEDIR/scripts/properties.sh" ] && . "$TERMUX_PACKAGES_BASEDIR/scripts/properties.sh"
|
||||
. "$TERMUX_PACKAGES_BASEDIR/packages/$package_name/build.sh"
|
||||
echo "${!variable_name}"
|
||||
set +o noglob
|
||||
)
|
||||
|
||||
echo "$extracted_value"
|
||||
}
|
||||
|
||||
process_packages() {
|
||||
local package_name
|
||||
local buildsh_path
|
||||
|
||||
for package_name in "$@"; do
|
||||
buildsh_path="$TERMUX_PACKAGES_BASEDIR/packages/$package_name/build.sh"
|
||||
|
||||
if [ -f "$buildsh_path" ]; then
|
||||
PACKAGE_METADATA["NAME"]="$package_name"
|
||||
|
||||
PACKAGE_METADATA["LICENSES"]=$(extract_variable_from_buildsh "TERMUX_PKG_LICENSE" "$buildsh_path")
|
||||
if [ -z "${PACKAGE_METADATA['LICENSES']}" ]; then
|
||||
echo "[!] Mandatory field 'TERMUX_PKG_LICENSE' of package '$package_name' is empty." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_METADATA["DESCRIPTION"]=$(extract_variable_from_buildsh "TERMUX_PKG_DESCRIPTION" "$buildsh_path")
|
||||
if [ -z "${PACKAGE_METADATA['DESCRIPTION']}" ]; then
|
||||
echo "[!] Mandatory field 'TERMUX_PKG_DESCRIPTION' of package '$package_name' is empty." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_METADATA["WEBSITE_URL"]=$(extract_variable_from_buildsh "TERMUX_PKG_HOMEPAGE" "$buildsh_path")
|
||||
if [ -z "${PACKAGE_METADATA['WEBSITE_URL']}" ]; then
|
||||
echo "[!] Mandatory field 'TERMUX_PKG_HOMEPAGE' of package '$package_name' is empty." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_METADATA["VERSION"]=$(extract_variable_from_buildsh "TERMUX_PKG_VERSION" "$buildsh_path")
|
||||
if [ -z "${PACKAGE_METADATA['VERSION']}" ]; then
|
||||
echo "[!] Mandatory field 'TERMUX_PKG_VERSION' of package '$package_name' is empty." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_METADATA["REVISION"]=$(extract_variable_from_buildsh "TERMUX_PKG_REVISION" "$buildsh_path")
|
||||
if [ -n "${PACKAGE_METADATA['REVISION']}" ]; then
|
||||
PACKAGE_METADATA["VERSION_FULL"]="${PACKAGE_METADATA['VERSION']}-${PACKAGE_METADATA['REVISION']}"
|
||||
else
|
||||
if [ "${PACKAGE_METADATA['VERSION']}" != "${PACKAGE_METADATA['VERSION']/-/}" ]; then
|
||||
PACKAGE_METADATA["VERSION_FULL"]="${PACKAGE_METADATA['VERSION']}-0"
|
||||
else
|
||||
PACKAGE_METADATA["VERSION_FULL"]="${PACKAGE_METADATA['VERSION']}"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "[!] Cannot find 'build.sh' for package '$package_name'." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if $PACKAGE_DELETE_MODE; then
|
||||
delete_package "$package_name"
|
||||
else
|
||||
upload_package "$package_name"
|
||||
fi
|
||||
done
|
||||
|
||||
# In deletion mode we need to do metadata recalculation separately
|
||||
# to ensure that it will be signed with maintainer's key.
|
||||
if $PACKAGE_DELETE_MODE; then
|
||||
local curl_response
|
||||
local http_status_code
|
||||
local api_response_message
|
||||
|
||||
echo -n "[@] Requesting metadata recalculation... " >&2
|
||||
curl_response=$(
|
||||
curl \
|
||||
--silent \
|
||||
--user "${BINTRAY_USERNAME}:${BINTRAY_API_KEY}" \
|
||||
--request POST \
|
||||
--header "Content-Type: application/json" \
|
||||
--data "{\"subject\":\"${BINTRAY_GPG_SUBJECT}\",\"passphrase\":\"$BINTRAY_GPG_PASSPHRASE\"}" \
|
||||
--write-out "|%{http_code}" \
|
||||
"https://api.bintray.com/calc_metadata/${BINTRAY_SUBJECT}/${BINTRAY_REPO_NAME}/"
|
||||
)
|
||||
|
||||
http_status_code=$(echo "$curl_response" | cut -d'|' -f2)
|
||||
api_response_message=$(echo "$curl_response" | cut -d'|' -f1 | jq -r .message)
|
||||
|
||||
case "$http_status_code" in
|
||||
202)
|
||||
echo "done" >&2
|
||||
;;
|
||||
*)
|
||||
echo "failure" >&2
|
||||
echo "[!] $api_response_message" >&2
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
show_usage() {
|
||||
{
|
||||
echo
|
||||
echo "Usage: package_uploader.sh [OPTIONS] [package name] ..."
|
||||
echo
|
||||
echo "A command line client for Bintray designed for managing"
|
||||
echo "Termux *.deb packages."
|
||||
echo
|
||||
echo "=========================================================="
|
||||
echo
|
||||
echo "Primarily indended to be used by Gitlab CI for automatic"
|
||||
echo "package uploads but it can be used for manual uploads too."
|
||||
echo
|
||||
echo "By default, this script will create a new version entries"
|
||||
echo "for specified packages and upload *.deb files for each of"
|
||||
echo "created entries."
|
||||
echo
|
||||
echo "Note that if version entry already exists, it will be"
|
||||
echo "deleted with all associated *.deb files to prevent file"
|
||||
echo "name collisions and wasting of available space."
|
||||
echo
|
||||
echo "If such behaviour is unwanted, use option '-k' which will"
|
||||
echo "not touch available versions."
|
||||
echo
|
||||
echo "Before using this script, check that you have all"
|
||||
echo "necessary credentials for accessing repository."
|
||||
echo
|
||||
echo "Credentials are specified via environment variables:"
|
||||
echo
|
||||
echo " BINTRAY_USERNAME - User name."
|
||||
echo " BINTRAY_API_KEY - User's API key."
|
||||
echo " BINTRAY_GPG_SUBJECT - Owner of GPG key."
|
||||
echo " BINTRAY_GPG_PASSPHRASE - GPG key passphrase."
|
||||
echo
|
||||
echo "=========================================================="
|
||||
echo
|
||||
echo "Options:"
|
||||
echo
|
||||
echo " -d, --delete Completely delete the selected"
|
||||
echo " packages from the repository instead"
|
||||
echo " of uploading."
|
||||
echo
|
||||
echo " -h, --help Print this help."
|
||||
echo
|
||||
echo " -k, --keep-old Prevent deletion of previous versions"
|
||||
echo " when submitting package. Useful when"
|
||||
echo " doing uploads within same package"
|
||||
echo " versions or just to make downgrading"
|
||||
echo " possible."
|
||||
echo
|
||||
echo " -p, --path [path] Specify a directory containing *.deb"
|
||||
echo " files ready for uploading."
|
||||
echo " Default is './debs'."
|
||||
echo
|
||||
echo "=========================================================="
|
||||
} >&2
|
||||
}
|
||||
|
||||
###################################################################
|
||||
|
||||
while getopts ":-:hdkp:" opt; do
|
||||
case "$opt" in
|
||||
-)
|
||||
case "$OPTARG" in
|
||||
delete)
|
||||
PACKAGE_DELETE_MODE=true
|
||||
;;
|
||||
help)
|
||||
show_usage
|
||||
exit 0
|
||||
;;
|
||||
path)
|
||||
DEBFILES_DIR_PATH="${!OPTIND}"
|
||||
OPTIND=$((OPTIND + 1))
|
||||
|
||||
if [ -z "$DEBFILES_DIR_PATH" ]; then
|
||||
echo "[!] Option '--${OPTARG}' requires argument." >&2
|
||||
show_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$DEBFILES_DIR_PATH" ]; then
|
||||
echo "[!] Directory '$DEBFILES_DIR_PATH' is not exist." >&2
|
||||
show_usage
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
keep-old)
|
||||
KEEP_OLD_VERSION=true
|
||||
;;
|
||||
*)
|
||||
echo "[!] Invalid option '$OPTARG'." >&2
|
||||
show_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
d)
|
||||
PACKAGE_DELETE_MODE=true
|
||||
;;
|
||||
h)
|
||||
show_usage
|
||||
exit 0
|
||||
;;
|
||||
k)
|
||||
KEEP_OLD_VERSION=true
|
||||
;;
|
||||
p)
|
||||
DEBFILES_DIR_PATH="${OPTARG}"
|
||||
if [ ! -d "$DEBFILES_DIR_PATH" ]; then
|
||||
echo "[!] Directory '$DEBFILES_DIR_PATH' is not exist." >&2
|
||||
show_usage
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "[!] Invalid option '-${OPTARG}'." >&2
|
||||
show_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND - 1))
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
# These variables should never be changed.
|
||||
readonly DEBFILES_DIR_PATH
|
||||
readonly PACKAGE_DELETE_MODE
|
||||
readonly TERMUX_PACKAGES_BASEDIR
|
||||
|
||||
# Without Bintray credentials this script is useless.
|
||||
if [ -z "$BINTRAY_USERNAME" ]; then
|
||||
echo "[!] Variable 'BINTRAY_USERNAME' is not set." >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$BINTRAY_API_KEY" ]; then
|
||||
echo "[!] Variable 'BINTRAY_API_KEY' is not set." >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$BINTRAY_GPG_SUBJECT" ]; then
|
||||
echo "[!] Variable 'BINTRAY_GPG_SUBJECT' is not set." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
process_packages "$@"
|
||||
exit 0
|
||||
else
|
||||
echo "[!] No packages specified." >&2
|
||||
show_usage
|
||||
exit 1
|
||||
fi
|
Loading…
Reference in New Issue