From f920e2dfae5f84d6a15ca7a14ad49d30baec015f Mon Sep 17 00:00:00 2001 From: Lucy Phipps Date: Mon, 28 Jun 2021 20:03:33 +0100 Subject: [PATCH] progress, renameutils, sc-im: -landroid-wordexp --- packages/progress/WithoutWordexp.patch | 24 -- packages/progress/build.sh | 6 +- .../renameutils/add-missing-functions.patch | 298 ------------------ packages/renameutils/build.sh | 7 +- packages/sc-im/build.sh | 6 +- 5 files changed, 15 insertions(+), 326 deletions(-) delete mode 100644 packages/progress/WithoutWordexp.patch diff --git a/packages/progress/WithoutWordexp.patch b/packages/progress/WithoutWordexp.patch deleted file mode 100644 index 9fde3bfca..000000000 --- a/packages/progress/WithoutWordexp.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- progress/progress.c 2019-09-06 19:43:06.150151728 +0800 -+++ progress_mod/progress.c 2019-09-08 10:27:05.529574702 +0800 -@@ -32,7 +32,20 @@ - #include - #include - --#include -+/* -+*#include -+*Android without wordexp support -+*/ -+typedef struct { -+ size_t we_wordc; -+ char **we_wordv; -+ size_t we_offs; -+} wordexp_t; -+static inline int wordexp(const char *c, wordexp_t *w, int _i) -+{ -+ return -1; -+} -+ - #include - - #include diff --git a/packages/progress/build.sh b/packages/progress/build.sh index 01d0d660f..bd0670d59 100644 --- a/packages/progress/build.sh +++ b/packages/progress/build.sh @@ -3,8 +3,12 @@ TERMUX_PKG_DESCRIPTION="Linux tool to show progress for cp, mv, dd and more" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.16 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/Xfennec/progress/archive/v$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=59944ee35f8ae6d62ed4f9b643eee2ae6d03825da288d9779dc43de41164c834 -TERMUX_PKG_DEPENDS="ncurses" +TERMUX_PKG_DEPENDS="libandroid-wordexp, ncurses" TERMUX_PKG_BUILD_IN_SRC=true +termux_step_pre_configure() { + LDFLAGS+=" -landroid-wordexp" +} diff --git a/packages/renameutils/add-missing-functions.patch b/packages/renameutils/add-missing-functions.patch index 11593769c..ed2e55a04 100644 --- a/packages/renameutils/add-missing-functions.patch +++ b/packages/renameutils/add-missing-functions.patch @@ -1,280 +1,3 @@ -diff -uNr renameutils-0.12.0/src/common/Makefile.am renameutils-0.12.0.mod/src/common/Makefile.am ---- renameutils-0.12.0/src/common/Makefile.am 2012-04-23 14:11:04.000000000 +0300 -+++ renameutils-0.12.0.mod/src/common/Makefile.am 2020-01-02 20:43:15.306228148 +0200 -@@ -25,4 +25,6 @@ - tab-utils.c \ - tab-utils.h \ - tmap.c \ -- tmap.h -+ tmap.h \ -+ wordexp.c \ -+ wordexp.h -diff -uNr renameutils-0.12.0/src/common/Makefile.in renameutils-0.12.0.mod/src/common/Makefile.in ---- renameutils-0.12.0/src/common/Makefile.in 2012-04-23 14:24:10.000000000 +0300 -+++ renameutils-0.12.0.mod/src/common/Makefile.in 2020-01-02 20:47:56.755267916 +0200 -@@ -156,7 +156,7 @@ - am_lib_common_a_OBJECTS = error.$(OBJEXT) hmap.$(OBJEXT) \ - io-utils.$(OBJEXT) intutil.$(OBJEXT) llist.$(OBJEXT) \ - strbuf.$(OBJEXT) string-utils.$(OBJEXT) tab-utils.$(OBJEXT) \ -- tmap.$(OBJEXT) -+ tmap.$(OBJEXT) wordexp.$(OBJEXT) - lib_common_a_OBJECTS = $(am_lib_common_a_OBJECTS) - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -@@ -997,7 +997,9 @@ - tab-utils.c \ - tab-utils.h \ - tmap.c \ -- tmap.h -+ tmap.h \ -+ wordexp.c \ -+ wordexp.h - - all: all-am - -diff -uNr renameutils-0.12.0/src/common/wordexp.c renameutils-0.12.0.mod/src/common/wordexp.c ---- renameutils-0.12.0/src/common/wordexp.c 1970-01-01 03:00:00.000000000 +0300 -+++ renameutils-0.12.0.mod/src/common/wordexp.c 2020-01-02 20:41:33.516494851 +0200 -@@ -0,0 +1,194 @@ -+#include "wordexp.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+//##include -+#include -+static void reap(pid_t pid) -+{ -+ int status; -+ for (;;) { -+ if (waitpid(pid, &status, 0) < 0) { -+ if (errno != EINTR) return; -+ } else { -+ if (WIFEXITED(status)) return; -+ } -+ } -+} -+ -+static char *getword(FILE *f) -+{ -+ char *s = 0; -+ return getdelim(&s, (size_t [1]){0}, 0, f) < 0 ? 0 : s; -+} -+ -+static int do_wordexp(const char *s, wordexp_t *we, int flags) -+{ -+ size_t i, l; -+ int sq=0, dq=0; -+ size_t np=0; -+ char *w, **tmp; -+ char *redir = (flags & WRDE_SHOWERR) ? "" : "2>/dev/null"; -+ int err = 0; -+ FILE *f; -+ size_t wc = 0; -+ char **wv = 0; -+ int p[2]; -+ pid_t pid; -+ sigset_t set; -+ sigset_t all_set; -+ if (flags & WRDE_REUSE) wordfree(we); -+ -+ if (flags & WRDE_NOCMD) for (i=0; s[i]; i++) switch (s[i]) { -+ case '\\': -+ if (!sq) i++; -+ break; -+ case '\'': -+ if (!dq) sq^=1; -+ break; -+ case '"': -+ if (!sq) dq^=1; -+ break; -+ case '(': -+ if (np) { -+ np++; -+ break; -+ } -+ case ')': -+ if (np) { -+ np--; -+ break; -+ } -+ case '\n': -+ case '|': -+ case '&': -+ case ';': -+ case '<': -+ case '>': -+ case '{': -+ case '}': -+ if (!(sq|dq|np)) return WRDE_BADCHAR; -+ break; -+ case '$': -+ if (sq) break; -+ if (s[i+1]=='(' && s[i+2]=='(') { -+ i += 2; -+ np += 2; -+ break; -+ } else if (s[i+1] != '(') break; -+ case '`': -+ if (sq) break; -+ return WRDE_CMDSUB; -+ } -+ -+ if (flags & WRDE_APPEND) { -+ wc = we->we_wordc; -+ wv = we->we_wordv; -+ } -+ -+ i = wc; -+ if (flags & WRDE_DOOFFS) { -+ if (we->we_offs > SIZE_MAX/sizeof(void *)/4) -+ goto nospace; -+ i += we->we_offs; -+ } else { -+ we->we_offs = 0; -+ } -+ -+ if (pipe2(p, O_CLOEXEC) < 0) goto nospace; -+// sigfillset(&all_set); -+// sigprocmask(SIG_SETMASK, &all_set, &set); -+ pid = fork(); -+// sigprocmask(SIG_SETMASK, &set, &all_set); -+ if (pid < 0) { -+ close(p[0]); -+ close(p[1]); -+ goto nospace; -+ } -+ if (!pid) { -+ if (p[1] == 1) fcntl(1, F_SETFD, 0); -+ else dup2(p[1], 1); -+ execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", -+ "eval \"printf %s\\\\\\\\0 x $1 $2\"", -+ "sh", s, redir, (char *)0); -+ _exit(1); -+ } -+ close(p[1]); -+ -+ f = fdopen(p[0], "r"); -+ if (!f) { -+ close(p[0]); -+ kill(pid, SIGKILL); -+ reap(pid); -+ goto nospace; -+ } -+ -+ l = wv ? i+1 : 0; -+ -+ free(getword(f)); -+ if (feof(f)) { -+ fclose(f); -+ reap(pid); -+ return WRDE_SYNTAX; -+ } -+ -+ while ((w = getword(f))) { -+ if (i+1 >= l) { -+ l += l/2+10; -+ tmp = realloc(wv, l*sizeof(char *)); -+ if (!tmp) break; -+ wv = tmp; -+ } -+ wv[i++] = w; -+ wv[i] = 0; -+ } -+ if (!feof(f)) err = WRDE_NOSPACE; -+ -+ fclose(f); -+ reap(pid); -+ -+ if (!wv) wv = calloc(i+1, sizeof *wv); -+ -+ we->we_wordv = wv; -+ we->we_wordc = i; -+ -+ if (flags & WRDE_DOOFFS) { -+ if (wv) for (i=we->we_offs; i; i--) -+ we->we_wordv[i-1] = 0; -+ we->we_wordc -= we->we_offs; -+ } -+ return err; -+ -+nospace: -+ if (!(flags & WRDE_APPEND)) { -+ we->we_wordc = 0; -+ we->we_wordv = 0; -+ } -+ return WRDE_NOSPACE; -+} -+ -+int wordexp(const char *restrict s, wordexp_t *restrict we, int flags) -+{ -+ int r, cs; -+ //pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); -+ r = do_wordexp(s, we, flags); -+ //pthread_setcancelstate(cs, 0); -+ return r; -+} -+ -+void wordfree(wordexp_t *we) -+{ -+ size_t i; -+ if (!we->we_wordv) return; -+ for (i=0; iwe_wordc; i++) free(we->we_wordv[we->we_offs+i]); -+ free(we->we_wordv); -+ we->we_wordv = 0; -+ we->we_wordc = 0; -+} -diff -uNr renameutils-0.12.0/src/common/wordexp.h renameutils-0.12.0.mod/src/common/wordexp.h ---- renameutils-0.12.0/src/common/wordexp.h 1970-01-01 03:00:00.000000000 +0300 -+++ renameutils-0.12.0.mod/src/common/wordexp.h 2020-01-02 20:41:33.516494851 +0200 -@@ -0,0 +1,41 @@ -+#ifndef _WORDEXP_H -+#define _WORDEXP_H -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+#include -+ -+#define __NEED_size_t -+ -+//#include -+ -+#define WRDE_DOOFFS 1 -+#define WRDE_APPEND 2 -+#define WRDE_NOCMD 4 -+#define WRDE_REUSE 8 -+#define WRDE_SHOWERR 16 -+#define WRDE_UNDEF 32 -+#include -+typedef struct { -+ size_t we_wordc; -+ char **we_wordv; -+ size_t we_offs; -+} wordexp_t; -+ -+#define WRDE_NOSYS -1 -+#define WRDE_NOSPACE 1 -+#define WRDE_BADCHAR 2 -+#define WRDE_BADVAL 3 -+#define WRDE_CMDSUB 4 -+#define WRDE_SYNTAX 5 -+ -+int wordexp (const char *__restrict, wordexp_t *__restrict, int); -+void wordfree (wordexp_t *); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif diff -uNr renameutils-0.12.0/src/editformats/getsubopt.c renameutils-0.12.0.mod/src/editformats/getsubopt.c --- renameutils-0.12.0/src/editformats/getsubopt.c 1970-01-01 03:00:00.000000000 +0300 +++ renameutils-0.12.0.mod/src/editformats/getsubopt.c 2020-01-02 20:56:21.548067937 +0200 @@ -370,24 +93,3 @@ diff -uNr renameutils-0.12.0/src/editformats/Makefile.in renameutils-0.12.0.mod/ all: all-am -diff -uNr renameutils-0.12.0/src/interactive.c renameutils-0.12.0.mod/src/interactive.c ---- renameutils-0.12.0/src/interactive.c 2008-09-21 12:10:31.000000000 +0300 -+++ renameutils-0.12.0.mod/src/interactive.c 2020-01-02 20:45:42.994296610 +0200 -@@ -23,9 +23,6 @@ - # include /* POSIX */ - #endif - #include /* gnulib (POSIX) */ --#if HAVE_WORDEXP_H --#include /* POSIX */ --#endif - #include /* gnulib (POSIX) */ - #include /* C89 */ - #include /* C89 */ -@@ -45,6 +42,7 @@ - #include "common/comparison.h" - #include "common/string-utils.h" - #include "common/error.h" -+#include "common/wordexp.h" - #include "qcmd.h" - - struct Command { diff --git a/packages/renameutils/build.sh b/packages/renameutils/build.sh index 3c485e885..b8d16998d 100644 --- a/packages/renameutils/build.sh +++ b/packages/renameutils/build.sh @@ -3,6 +3,11 @@ TERMUX_PKG_DESCRIPTION="A set of programs designed to make renaming of files fas TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.12.0 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://savannah.nongnu.org/download/renameutils/renameutils-$TERMUX_PKG_VERSION.tar.gz TERMUX_PKG_SHA256=cbd2f002027ccf5a923135c3f529c6d17fabbca7d85506a394ca37694a9eb4a3 -TERMUX_PKG_DEPENDS="readline" +TERMUX_PKG_DEPENDS="libandroid-wordexp, readline" + +termux_step_pre_configure() { + LDFLAGS+=" -landroid-wordexp" +} diff --git a/packages/sc-im/build.sh b/packages/sc-im/build.sh index 55f2f596e..a7838e49f 100644 --- a/packages/sc-im/build.sh +++ b/packages/sc-im/build.sh @@ -3,13 +3,15 @@ TERMUX_PKG_DESCRIPTION="An improved version of sc, a spreadsheet calculator" TERMUX_PKG_LICENSE="BSD" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.8.2 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/andmarti1424/sc-im/archive/v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=7f00c98601e7f7709431fb4cbb83707c87016a3b015d48e5a7c2f018eff4b7f7 -TERMUX_PKG_DEPENDS="libandroid-support, libzip, ncurses" +TERMUX_PKG_DEPENDS="libandroid-support, libandroid-wordexp, libzip, ncurses" TERMUX_PKG_SUGGESTS="gnuplot" TERMUX_PKG_BUILD_IN_SRC=true termux_step_pre_configure() { - CFLAGS+=" $CPPFLAGS -I$TERMUX_PREFIX/include/libandroid-support -DGNUPLOT -DNO_WORDEXP" + CFLAGS+=" $CPPFLAGS -I$TERMUX_PREFIX/include/libandroid-support -DGNUPLOT" + LDFLAGS+=" -landroid-wordexp" TERMUX_PKG_BUILDDIR+="/src" }