busybox: Update from 1.24.2 to 1.25.1
This commit is contained in:
parent
d94b319967
commit
3d9d67c703
@ -1,9 +1,8 @@
|
|||||||
TERMUX_PKG_HOMEPAGE=http://www.busybox.net/
|
TERMUX_PKG_HOMEPAGE=http://www.busybox.net/
|
||||||
TERMUX_PKG_DESCRIPTION="Tiny versions of many common UNIX utilities into a single small executable"
|
TERMUX_PKG_DESCRIPTION="Tiny versions of many common UNIX utilities into a single small executable"
|
||||||
TERMUX_PKG_ESSENTIAL=yes
|
TERMUX_PKG_ESSENTIAL=yes
|
||||||
TERMUX_PKG_VERSION=1.24.2
|
TERMUX_PKG_VERSION=1.25.1
|
||||||
TERMUX_PKG_BUILD_REVISION=7
|
TERMUX_PKG_SRCURL=https://www.busybox.net/downloads/busybox-${TERMUX_PKG_VERSION}.tar.bz2
|
||||||
TERMUX_PKG_SRCURL=http://www.busybox.net/downloads/busybox-${TERMUX_PKG_VERSION}.tar.bz2
|
|
||||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||||
# We replace env in the old coreutils package:
|
# We replace env in the old coreutils package:
|
||||||
TERMUX_PKG_CONFLICTS="coreutils (<< 8.25-4)"
|
TERMUX_PKG_CONFLICTS="coreutils (<< 8.25-4)"
|
||||||
@ -16,11 +15,6 @@ termux_step_pre_configure () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
termux_step_configure () {
|
termux_step_configure () {
|
||||||
# Bug in gold linker with busybox in android r10e:
|
|
||||||
# https://sourceware.org/ml/binutils/2015-02/msg00386.html
|
|
||||||
CFLAGS+=" -fuse-ld=bfd"
|
|
||||||
LD+=.bfd
|
|
||||||
|
|
||||||
cp $TERMUX_PKG_BUILDER_DIR/busybox.config .config
|
cp $TERMUX_PKG_BUILDER_DIR/busybox.config .config
|
||||||
echo "CONFIG_SYSROOT=\"$TERMUX_STANDALONE_TOOLCHAIN/sysroot\"" >> .config
|
echo "CONFIG_SYSROOT=\"$TERMUX_STANDALONE_TOOLCHAIN/sysroot\"" >> .config
|
||||||
echo "CONFIG_PREFIX=\"$TERMUX_PREFIX\"" >> .config
|
echo "CONFIG_PREFIX=\"$TERMUX_PREFIX\"" >> .config
|
||||||
|
@ -132,6 +132,7 @@ CONFIG_FEATURE_AR_LONG_FILENAMES=y
|
|||||||
CONFIG_FEATURE_AR_CREATE=y
|
CONFIG_FEATURE_AR_CREATE=y
|
||||||
CONFIG_UNCOMPRESS=y
|
CONFIG_UNCOMPRESS=y
|
||||||
CONFIG_GUNZIP=y
|
CONFIG_GUNZIP=y
|
||||||
|
CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y
|
||||||
CONFIG_BUNZIP2=y
|
CONFIG_BUNZIP2=y
|
||||||
CONFIG_UNLZMA=y
|
CONFIG_UNLZMA=y
|
||||||
CONFIG_FEATURE_LZMA_FAST=y
|
CONFIG_FEATURE_LZMA_FAST=y
|
||||||
@ -1044,3 +1045,12 @@ CONFIG_I2CGET=n
|
|||||||
CONFIG_I2CSET=n
|
CONFIG_I2CSET=n
|
||||||
CONFIG_I2CDUMP=n
|
CONFIG_I2CDUMP=n
|
||||||
CONFIG_I2CDETECT=n
|
CONFIG_I2CDETECT=n
|
||||||
|
CONFIG_BUSYBOX=y
|
||||||
|
CONFIG_DEBUG_SANITIZE=n
|
||||||
|
CONFIG_FEATURE_USE_BSS_TAIL=n
|
||||||
|
CONFIG_LINUXRC=n
|
||||||
|
CONFIG_MKPASSWD=n
|
||||||
|
CONFIG_BLKDISCARD=n
|
||||||
|
CONFIG_NSENTER=n
|
||||||
|
CONFIG_UNSHARE=n
|
||||||
|
CONFIG_UBIRENAME=n
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
The r11 of NDK removed dprintf.
|
|
||||||
|
|
||||||
diff -u -r ../busybox-1.24.1/include/platform.h ./include/platform.h
|
|
||||||
--- ../busybox-1.24.1/include/platform.h 2015-07-13 04:18:47.000000000 +0200
|
|
||||||
+++ ./include/platform.h 2016-03-10 11:47:06.000000000 +0100
|
|
||||||
@@ -480,11 +480,7 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(ANDROID) || defined(__ANDROID__)
|
|
||||||
-# if __ANDROID_API__ < 8
|
|
||||||
-# undef HAVE_DPRINTF
|
|
||||||
-# else
|
|
||||||
-# define dprintf fdprintf
|
|
||||||
-# endif
|
|
||||||
+# undef HAVE_DPRINTF
|
|
||||||
# if __ANDROID_API__ < 21
|
|
||||||
# undef HAVE_TTYNAME_R
|
|
||||||
# undef HAVE_GETLINE
|
|
@ -1,21 +1,10 @@
|
|||||||
diff -u -r ../busybox-1.23.2/networking/telnetd.c ./networking/telnetd.c
|
diff -u -r ../busybox-1.25.1/networking/telnetd.c ./networking/telnetd.c
|
||||||
--- ../busybox-1.23.2/networking/telnetd.c 2015-03-22 23:07:19.000000000 -0400
|
--- ../busybox-1.25.1/networking/telnetd.c 2016-10-07 10:47:47.000000000 -0400
|
||||||
+++ ./networking/telnetd.c 2015-08-09 07:23:22.408532696 -0400
|
+++ ./networking/telnetd.c 2016-10-08 17:49:55.717890508 -0400
|
||||||
@@ -31,8 +31,8 @@
|
@@ -86,8 +86,9 @@
|
||||||
//usage: "\n -K Close connection as soon as login exits"
|
#define G (*(struct globals*)bb_common_bufsiz1)
|
||||||
//usage: "\n (normally wait until all programs close slave pty)"
|
|
||||||
//usage: IF_FEATURE_TELNETD_STANDALONE(
|
|
||||||
-//usage: "\n -p PORT Port to listen on"
|
|
||||||
-//usage: "\n -b ADDR[:PORT] Address to bind to"
|
|
||||||
+//usage: "\n -p PORT Port to listen on (default 8023)"
|
|
||||||
+//usage: "\n -b ADDR[:PORT] Address to bind to (default *:8023)"
|
|
||||||
//usage: "\n -F Run in foreground"
|
|
||||||
//usage: "\n -i Inetd mode"
|
|
||||||
//usage: IF_FEATURE_TELNETD_INETD_WAIT(
|
|
||||||
@@ -84,8 +84,9 @@
|
|
||||||
} FIX_ALIASING;
|
|
||||||
#define G (*(struct globals*)&bb_common_bufsiz1)
|
|
||||||
#define INIT_G() do { \
|
#define INIT_G() do { \
|
||||||
|
setup_common_bufsiz(); \
|
||||||
- G.loginpath = "/bin/login"; \
|
- G.loginpath = "/bin/login"; \
|
||||||
- G.issuefile = "/etc/issue.net"; \
|
- G.issuefile = "/etc/issue.net"; \
|
||||||
+ struct passwd* pwd = getpwuid(getuid()); \
|
+ struct passwd* pwd = getpwuid(getuid()); \
|
||||||
@ -24,7 +13,7 @@ diff -u -r ../busybox-1.23.2/networking/telnetd.c ./networking/telnetd.c
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
@@ -535,7 +536,7 @@
|
@@ -529,7 +530,7 @@
|
||||||
} else {
|
} else {
|
||||||
master_fd = 0;
|
master_fd = 0;
|
||||||
if (!(opt & OPT_WAIT)) {
|
if (!(opt & OPT_WAIT)) {
|
||||||
|
@ -1,112 +0,0 @@
|
|||||||
Backport of commit:
|
|
||||||
https://git.busybox.net/busybox/commit/?id=0ccf52a9fb9fa2f76eacbb6f1ef8419220557a40
|
|
||||||
for issue:
|
|
||||||
https://bugs.busybox.net/show_bug.cgi?id=8821
|
|
||||||
|
|
||||||
diff --git a/archival/unzip.c b/archival/unzip.c
|
|
||||||
index f41ab6f..b0a6ca8 100644
|
|
||||||
--- a/archival/unzip.c
|
|
||||||
+++ b/archival/unzip.c
|
|
||||||
@@ -45,6 +45,12 @@
|
|
||||||
#include "libbb.h"
|
|
||||||
#include "bb_archive.h"
|
|
||||||
|
|
||||||
+#if 0
|
|
||||||
+# define dbg(...) bb_error_msg(__VA_ARGS__)
|
|
||||||
+#else
|
|
||||||
+# define dbg(...) ((void)0)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
enum {
|
|
||||||
#if BB_BIG_ENDIAN
|
|
||||||
ZIP_FILEHEADER_MAGIC = 0x504b0304,
|
|
||||||
@@ -193,15 +199,17 @@ static uint32_t find_cdf_offset(void)
|
|
||||||
unsigned char *p;
|
|
||||||
off_t end;
|
|
||||||
unsigned char *buf = xzalloc(PEEK_FROM_END);
|
|
||||||
+ uint32_t found;
|
|
||||||
|
|
||||||
end = xlseek(zip_fd, 0, SEEK_END);
|
|
||||||
end -= PEEK_FROM_END;
|
|
||||||
if (end < 0)
|
|
||||||
end = 0;
|
|
||||||
- xlseek(zip_fd, end, SEEK_SET);
|
|
||||||
+ dbg("Looking for cdf_offset starting from 0x%"OFF_FMT"x", end);
|
|
||||||
+ xlseek(zip_fd, end, SEEK_SET);
|
|
||||||
full_read(zip_fd, buf, PEEK_FROM_END);
|
|
||||||
|
|
||||||
- cde_header.formatted.cdf_offset = BAD_CDF_OFFSET;
|
|
||||||
+ found = BAD_CDF_OFFSET;
|
|
||||||
p = buf;
|
|
||||||
while (p <= buf + PEEK_FROM_END - CDE_HEADER_LEN - 4) {
|
|
||||||
if (*p != 'P') {
|
|
||||||
@@ -220,14 +228,25 @@ static uint32_t find_cdf_offset(void)
|
|
||||||
/*
|
|
||||||
* I've seen .ZIP files with seemingly valid CDEs
|
|
||||||
* where cdf_offset points past EOF - ??
|
|
||||||
- * Ignore such CDEs:
|
|
||||||
+ * This check ignores such CDEs:
|
|
||||||
*/
|
|
||||||
- if (cde_header.formatted.cdf_offset < end + (p - buf))
|
|
||||||
- break;
|
|
||||||
- cde_header.formatted.cdf_offset = BAD_CDF_OFFSET;
|
|
||||||
+ if (cde_header.formatted.cdf_offset < end + (p - buf)) {
|
|
||||||
+ found = cde_header.formatted.cdf_offset;
|
|
||||||
+ dbg("Possible cdf_offset:0x%x at 0x%"OFF_FMT"x",
|
|
||||||
+ (unsigned)found, end + (p-3 - buf));
|
|
||||||
+ dbg(" cdf_offset+cdf_size:0x%x",
|
|
||||||
+ (unsigned)(found + SWAP_LE32(cde_header.formatted.cdf_size)));
|
|
||||||
+ /*
|
|
||||||
+ * We do not "break" here because only the last CDE is valid.
|
|
||||||
+ * I've seen a .zip archive which contained a .zip file,
|
|
||||||
+ * uncompressed, and taking the first CDE was using
|
|
||||||
+ * the CDE inside that file!
|
|
||||||
+ */
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
free(buf);
|
|
||||||
- return cde_header.formatted.cdf_offset;
|
|
||||||
+ dbg("Found cdf_offset:0x%x", (unsigned)found);
|
|
||||||
+ return found;
|
|
||||||
};
|
|
||||||
|
|
||||||
static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf_ptr)
|
|
||||||
@@ -240,9 +259,13 @@ static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf_ptr)
|
|
||||||
cdf_offset = find_cdf_offset();
|
|
||||||
|
|
||||||
if (cdf_offset != BAD_CDF_OFFSET) {
|
|
||||||
+ dbg("Reading CDF at 0x%x", (unsigned)cdf_offset);
|
|
||||||
xlseek(zip_fd, cdf_offset + 4, SEEK_SET);
|
|
||||||
xread(zip_fd, cdf_ptr->raw, CDF_HEADER_LEN);
|
|
||||||
FIX_ENDIANNESS_CDF(*cdf_ptr);
|
|
||||||
+ dbg("file_name_length:%u", (unsigned)cdf_ptr->formatted.file_name_length);
|
|
||||||
+ dbg("extra_field_length:%u", (unsigned)cdf_ptr->formatted.extra_field_length);
|
|
||||||
+ dbg("file_comment_length:%u", (unsigned)cdf_ptr->formatted.file_comment_length);
|
|
||||||
cdf_offset += 4 + CDF_HEADER_LEN
|
|
||||||
+ cdf_ptr->formatted.file_name_length
|
|
||||||
+ cdf_ptr->formatted.extra_field_length
|
|
||||||
@@ -532,11 +555,14 @@ int unzip_main(int argc, char **argv)
|
|
||||||
/* Check magic number */
|
|
||||||
xread(zip_fd, &magic, 4);
|
|
||||||
/* Central directory? It's at the end, so exit */
|
|
||||||
- if (magic == ZIP_CDF_MAGIC)
|
|
||||||
+ if (magic == ZIP_CDF_MAGIC) {
|
|
||||||
+ dbg("got ZIP_CDF_MAGIC");
|
|
||||||
break;
|
|
||||||
+ }
|
|
||||||
#if ENABLE_DESKTOP
|
|
||||||
/* Data descriptor? It was a streaming file, go on */
|
|
||||||
if (magic == ZIP_DD_MAGIC) {
|
|
||||||
+ dbg("got ZIP_DD_MAGIC");
|
|
||||||
/* skip over duplicate crc32, cmpsize and ucmpsize */
|
|
||||||
unzip_skip(3 * 4);
|
|
||||||
continue;
|
|
||||||
@@ -544,6 +570,7 @@ int unzip_main(int argc, char **argv)
|
|
||||||
#endif
|
|
||||||
if (magic != ZIP_FILEHEADER_MAGIC)
|
|
||||||
bb_error_msg_and_die("invalid zip magic %08X", (int)magic);
|
|
||||||
+ dbg("got ZIP_FILEHEADER_MAGIC");
|
|
||||||
|
|
||||||
/* Read the file header */
|
|
||||||
xread(zip_fd, zip_header.raw, ZIP_HEADER_LEN);
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user