mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-08-06 09:57:44 +00:00
busybox: 1.15.2 patches
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
edee1d78ab
commit
bf4d2d862e
2
CHANGES
2
CHANGES
@ -1,5 +1,7 @@
|
|||||||
2010.02, Not yet released:
|
2010.02, Not yet released:
|
||||||
|
|
||||||
|
Updated/fixed packages: busybox
|
||||||
|
|
||||||
2009.11, Released December 1st, 2009:
|
2009.11, Released December 1st, 2009:
|
||||||
|
|
||||||
Additional fixes and cleanups.
|
Additional fixes and cleanups.
|
||||||
|
1136
package/busybox/busybox-1.15.2-ash.patch
Normal file
1136
package/busybox/busybox-1.15.2-ash.patch
Normal file
File diff suppressed because it is too large
Load Diff
48
package/busybox/busybox-1.15.2-awk.patch
Normal file
48
package/busybox/busybox-1.15.2-awk.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
diff -urpN busybox-1.15.2/editors/awk.c busybox-1.15.2-awk/editors/awk.c
|
||||||
|
--- busybox-1.15.2/editors/awk.c 2009-10-08 02:59:09.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-awk/editors/awk.c 2009-11-30 02:05:12.000000000 +0100
|
||||||
|
@@ -2393,12 +2393,14 @@ static var *evaluate(node *op, var *res)
|
||||||
|
|
||||||
|
case XC( OC_MOVE ):
|
||||||
|
/* if source is a temporary string, jusk relink it to dest */
|
||||||
|
- if (R.v == v1+1 && R.v->string) {
|
||||||
|
- res = setvar_p(L.v, R.v->string);
|
||||||
|
- R.v->string = NULL;
|
||||||
|
- } else {
|
||||||
|
+//Disabled: if R.v is numeric but happens to have cached R.v->string,
|
||||||
|
+//then L.v ends up being a string, which is wrong
|
||||||
|
+// if (R.v == v1+1 && R.v->string) {
|
||||||
|
+// res = setvar_p(L.v, R.v->string);
|
||||||
|
+// R.v->string = NULL;
|
||||||
|
+// } else {
|
||||||
|
res = copyvar(L.v, R.v);
|
||||||
|
- }
|
||||||
|
+// }
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XC( OC_TERNARY ):
|
||||||
|
diff -urpN busybox-1.15.2/testsuite/awk.tests busybox-1.15.2-awk/testsuite/awk.tests
|
||||||
|
--- busybox-1.15.2/testsuite/awk.tests 2009-09-26 15:14:57.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-awk/testsuite/awk.tests 2009-11-30 02:05:12.000000000 +0100
|
||||||
|
@@ -47,4 +47,21 @@ testing "awk NF in BEGIN" \
|
||||||
|
":0::::\n" \
|
||||||
|
"" ""
|
||||||
|
|
||||||
|
+prg='
|
||||||
|
+function b(tmp) {
|
||||||
|
+ tmp = 0;
|
||||||
|
+ print "" tmp; #this line causes the bug
|
||||||
|
+ return tmp;
|
||||||
|
+}
|
||||||
|
+function c(tmpc) {
|
||||||
|
+ tmpc = b(); return tmpc;
|
||||||
|
+}
|
||||||
|
+BEGIN {
|
||||||
|
+ print (c() ? "string" : "number");
|
||||||
|
+}'
|
||||||
|
+testing "awk string cast (bug 725)" \
|
||||||
|
+ "awk '$prg'" \
|
||||||
|
+ "0\nnumber\n" \
|
||||||
|
+ "" ""
|
||||||
|
+
|
||||||
|
exit $FAILCOUNT
|
92
package/busybox/busybox-1.15.2-buildsys.patch
Normal file
92
package/busybox/busybox-1.15.2-buildsys.patch
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
diff -urpN busybox-1.15.2/Makefile busybox-1.15.2-buildsys/Makefile
|
||||||
|
--- busybox-1.15.2/Makefile 2009-10-08 03:06:38.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-buildsys/Makefile 2009-11-28 23:38:39.000000000 +0100
|
||||||
|
@@ -358,6 +358,15 @@ scripts_basic:
|
||||||
|
# To avoid any implicit rule to kick in, define an empty command.
|
||||||
|
scripts/basic/%: scripts_basic ;
|
||||||
|
|
||||||
|
+# bbox: we have helpers in applets/
|
||||||
|
+# we depend on scripts_basic, since scripts/basic/fixdep
|
||||||
|
+# must be built before any other host prog
|
||||||
|
+PHONY += applets_dir
|
||||||
|
+applets_dir: scripts_basic
|
||||||
|
+ $(Q)$(MAKE) $(build)=applets
|
||||||
|
+
|
||||||
|
+applets/%: applets_dir ;
|
||||||
|
+
|
||||||
|
PHONY += outputmakefile
|
||||||
|
# outputmakefile generates a Makefile in the output directory, if using a
|
||||||
|
# separate output directory. This allows convenient use of make in the
|
||||||
|
@@ -797,7 +806,7 @@ ifneq ($(KBUILD_MODULES),)
|
||||||
|
$(Q)rm -f $(MODVERDIR)/*
|
||||||
|
endif
|
||||||
|
|
||||||
|
-archprepare: prepare1 scripts_basic
|
||||||
|
+archprepare: prepare1 scripts_basic applets_dir
|
||||||
|
|
||||||
|
prepare0: archprepare FORCE
|
||||||
|
$(Q)$(MAKE) $(build)=.
|
||||||
|
diff -urpN busybox-1.15.2/scripts/kconfig/Makefile busybox-1.15.2-buildsys/scripts/kconfig/Makefile
|
||||||
|
--- busybox-1.15.2/scripts/kconfig/Makefile 2009-09-26 15:14:57.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-buildsys/scripts/kconfig/Makefile 2009-11-28 23:38:39.000000000 +0100
|
||||||
|
@@ -17,11 +17,28 @@ menuconfig: $(obj)/mconf
|
||||||
|
config: $(obj)/conf
|
||||||
|
$< Config.in
|
||||||
|
|
||||||
|
+# Mtime granularity problem.
|
||||||
|
+# It was observed that these commands:
|
||||||
|
+# make allnoconfig; sed -i -e '/CONFIG_TRUE/s/.*/CONFIG_TRUE=y/' .config; make
|
||||||
|
+# sometimes produce busybox with "true" applet still disabled.
|
||||||
|
+# This is caused by .config updated by sed having mtime which is still
|
||||||
|
+# equal to (not bigger than) include/autoconf.h's mtime,
|
||||||
|
+# and thus 2nd make does not regenerate include/autoconf.h.
|
||||||
|
+# Waiting for 1 second after non-interactive "make XXXXconfig"
|
||||||
|
+# prevents this from happening.
|
||||||
|
+#
|
||||||
|
+# We'd like to detect whether filesystem we are on has coarse mtimes,
|
||||||
|
+# but can't do it yet, bbox ls hasn't got --full-time.
|
||||||
|
+#MTIME_IS_COARSE:=@ls --full-time -ld | grep -F .000 >/dev/null
|
||||||
|
+MTIME_IS_COARSE:=@true
|
||||||
|
+
|
||||||
|
oldconfig: $(obj)/conf
|
||||||
|
$< -o Config.in
|
||||||
|
+ $(MTIME_IS_COARSE) && sleep 1
|
||||||
|
|
||||||
|
silentoldconfig: $(obj)/conf
|
||||||
|
$< -s Config.in
|
||||||
|
+ $(MTIME_IS_COARSE) && sleep 1
|
||||||
|
|
||||||
|
update-po-config: $(obj)/kxgettext
|
||||||
|
xgettext --default-domain=linux \
|
||||||
|
@@ -46,15 +63,19 @@ PHONY += randconfig allyesconfig allnoco
|
||||||
|
|
||||||
|
randconfig: $(obj)/conf
|
||||||
|
$< -r Config.in
|
||||||
|
+ $(MTIME_IS_COARSE) && sleep 1
|
||||||
|
|
||||||
|
allyesconfig: $(obj)/conf
|
||||||
|
$< -y Config.in
|
||||||
|
+ $(MTIME_IS_COARSE) && sleep 1
|
||||||
|
|
||||||
|
allnoconfig: $(obj)/conf
|
||||||
|
$< -n Config.in
|
||||||
|
+ $(MTIME_IS_COARSE) && sleep 1
|
||||||
|
|
||||||
|
allmodconfig: $(obj)/conf
|
||||||
|
$< -m Config.in
|
||||||
|
+ $(MTIME_IS_COARSE) && sleep 1
|
||||||
|
|
||||||
|
defconfig: $(obj)/conf
|
||||||
|
ifeq ($(KBUILD_DEFCONFIG),)
|
||||||
|
@@ -63,9 +84,11 @@ else
|
||||||
|
@echo *** Default configuration is based on '$(KBUILD_DEFCONFIG)'
|
||||||
|
$(Q)$< -D $(KBUILD_DEFCONFIG) Config.in
|
||||||
|
endif
|
||||||
|
+ $(MTIME_IS_COARSE) && sleep 1
|
||||||
|
|
||||||
|
%_defconfig: $(obj)/conf
|
||||||
|
$(Q)$< -D $@ Config.in
|
||||||
|
+ $(MTIME_IS_COARSE) && sleep 1
|
||||||
|
|
||||||
|
# Help text used by make help
|
||||||
|
help:
|
@ -1,23 +1,6 @@
|
|||||||
From 86cfb70ca5f2bde11f2d071bc59db75291d8552f Mon Sep 17 00:00:00 2001
|
diff -urpN busybox-1.15.2/miscutils/flash_eraseall.c busybox-1.15.2-flash/miscutils/flash_eraseall.c
|
||||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
--- busybox-1.15.2/miscutils/flash_eraseall.c 2009-09-26 15:14:57.000000000 +0200
|
||||||
Date: Fri, 27 Nov 2009 13:26:17 +0100
|
+++ busybox-1.15.2-flash/miscutils/flash_eraseall.c 2009-11-29 00:01:46.000000000 +0100
|
||||||
Subject: [PATCH] flash_eraseall: stop using obsolete mtd/jffs2-user.h; code shrink
|
|
||||||
|
|
||||||
function old new delta
|
|
||||||
show_progress 68 67 -1
|
|
||||||
flash_eraseall_main 1007 882 -125
|
|
||||||
------------------------------------------------------------------------------
|
|
||||||
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-126) Total: -126 bytes
|
|
||||||
|
|
||||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
||||||
---
|
|
||||||
miscutils/flash_eraseall.c | 47 ++++++++++++++++++++++++++++---------------
|
|
||||||
1 files changed, 30 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_eraseall.c
|
|
||||||
index ba0a6b5..ca00a13 100644
|
|
||||||
--- a/miscutils/flash_eraseall.c
|
|
||||||
+++ b/miscutils/flash_eraseall.c
|
|
||||||
@@ -12,22 +12,35 @@
|
@@ -12,22 +12,35 @@
|
||||||
|
|
||||||
#include "libbb.h"
|
#include "libbb.h"
|
||||||
@ -64,7 +47,7 @@ index ba0a6b5..ca00a13 100644
|
|||||||
|
|
||||||
static uint32_t crc32(uint32_t val, const void *ss, int len,
|
static uint32_t crc32(uint32_t val, const void *ss, int len,
|
||||||
uint32_t *crc32_table)
|
uint32_t *crc32_table)
|
||||||
@@ -40,9 +53,11 @@ static uint32_t crc32(uint32_t val, const void *ss, int len,
|
@@ -40,9 +53,11 @@ static uint32_t crc32(uint32_t val, cons
|
||||||
|
|
||||||
static void show_progress(mtd_info_t *meminfo, erase_info_t *erase)
|
static void show_progress(mtd_info_t *meminfo, erase_info_t *erase)
|
||||||
{
|
{
|
||||||
@ -79,7 +62,7 @@ index ba0a6b5..ca00a13 100644
|
|||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,17 +72,15 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv)
|
@@ -57,17 +72,15 @@ int flash_eraseall_main(int argc UNUSED_
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
char *mtd_name;
|
char *mtd_name;
|
||||||
|
|
||||||
@ -99,6 +82,3 @@ index ba0a6b5..ca00a13 100644
|
|||||||
xioctl(fd, MEMGETINFO, &meminfo);
|
xioctl(fd, MEMGETINFO, &meminfo);
|
||||||
erase.length = meminfo.erasesize;
|
erase.length = meminfo.erasesize;
|
||||||
if (meminfo.type == MTD_NANDFLASH)
|
if (meminfo.type == MTD_NANDFLASH)
|
||||||
--
|
|
||||||
1.6.5
|
|
||||||
|
|
25
package/busybox/busybox-1.15.2-grep.patch
Normal file
25
package/busybox/busybox-1.15.2-grep.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
diff -urpN busybox-1.15.2/findutils/grep.c busybox-1.15.2-grep/findutils/grep.c
|
||||||
|
--- busybox-1.15.2/findutils/grep.c 2009-09-26 15:14:57.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-grep/findutils/grep.c 2009-12-04 02:46:43.000000000 +0100
|
||||||
|
@@ -377,6 +377,8 @@ static int grep_file(FILE *file)
|
||||||
|
print_line(line + gl->matched_range.rm_so,
|
||||||
|
end - gl->matched_range.rm_so,
|
||||||
|
linenum, ':');
|
||||||
|
+ if (old == '\0')
|
||||||
|
+ break;
|
||||||
|
line[end] = old;
|
||||||
|
#if !ENABLE_EXTRA_COMPAT
|
||||||
|
if (regexec(&gl->compiled_regex, line + end,
|
||||||
|
diff -urpN busybox-1.15.2/testsuite/grep.tests busybox-1.15.2-grep/testsuite/grep.tests
|
||||||
|
--- busybox-1.15.2/testsuite/grep.tests 2009-09-26 15:14:57.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-grep/testsuite/grep.tests 2009-12-04 02:46:43.000000000 +0100
|
||||||
|
@@ -90,4 +90,9 @@ testing "grep -E -o prints all matches"
|
||||||
|
"00:19:3E:00:AA:5E\n00:1D:60:3D:3A:FB\n00:22:43:49:FB:AA\n" \
|
||||||
|
"" "00:19:3E:00:AA:5E 00:1D:60:3D:3A:FB 00:22:43:49:FB:AA\n"
|
||||||
|
|
||||||
|
+testing "grep -o does not loop forever" \
|
||||||
|
+ 'grep -o "[^/]*$"' \
|
||||||
|
+ "test\n" \
|
||||||
|
+ "" "/var/test\n"
|
||||||
|
+
|
||||||
|
exit $FAILCOUNT
|
100
package/busybox/busybox-1.15.2-ping.patch
Normal file
100
package/busybox/busybox-1.15.2-ping.patch
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
diff -urpN busybox-1.15.2/include/platform.h busybox-1.15.2-ping/include/platform.h
|
||||||
|
--- busybox-1.15.2/include/platform.h 2009-09-26 15:14:57.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-ping/include/platform.h 2009-11-28 23:48:41.000000000 +0100
|
||||||
|
@@ -174,12 +174,14 @@ char *strchrnul(const char *s, int c);
|
||||||
|
* a lvalue. This makes it more likely to not swap them by mistake
|
||||||
|
*/
|
||||||
|
#if defined(i386) || defined(__x86_64__)
|
||||||
|
+# define move_from_unaligned_int(v, intp) ((v) = *(int*)(intp))
|
||||||
|
# define move_from_unaligned16(v, u16p) ((v) = *(uint16_t*)(u16p))
|
||||||
|
# define move_from_unaligned32(v, u32p) ((v) = *(uint32_t*)(u32p))
|
||||||
|
# define move_to_unaligned32(u32p, v) (*(uint32_t*)(u32p) = (v))
|
||||||
|
/* #elif ... - add your favorite arch today! */
|
||||||
|
#else
|
||||||
|
/* performs reasonably well (gcc usually inlines memcpy here) */
|
||||||
|
+# define move_from_unaligned_int(v, intp) (memcpy(&(v), (intp), sizeof(int)))
|
||||||
|
# define move_from_unaligned16(v, u16p) (memcpy(&(v), (u16p), 2))
|
||||||
|
# define move_from_unaligned32(v, u32p) (memcpy(&(v), (u32p), 4))
|
||||||
|
# define move_to_unaligned32(u32p, v) do { \
|
||||||
|
diff -urpN busybox-1.15.2/networking/ping.c busybox-1.15.2-ping/networking/ping.c
|
||||||
|
--- busybox-1.15.2/networking/ping.c 2009-09-26 15:14:57.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-ping/networking/ping.c 2009-11-28 23:48:41.000000000 +0100
|
||||||
|
@@ -173,13 +173,14 @@ static void ping6(len_and_sockaddr *lsa)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-int ping_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||||
|
-int ping_main(int argc UNUSED_PARAM, char **argv)
|
||||||
|
+#if !ENABLE_PING6
|
||||||
|
+# define common_ping_main(af, argv) common_ping_main(argv)
|
||||||
|
+#endif
|
||||||
|
+static int common_ping_main(sa_family_t af, char **argv)
|
||||||
|
{
|
||||||
|
len_and_sockaddr *lsa;
|
||||||
|
-#if ENABLE_PING6
|
||||||
|
- sa_family_t af = AF_UNSPEC;
|
||||||
|
|
||||||
|
+#if ENABLE_PING6
|
||||||
|
while ((++argv)[0] && argv[0][0] == '-') {
|
||||||
|
if (argv[0][1] == '4') {
|
||||||
|
af = AF_INET;
|
||||||
|
@@ -689,7 +690,8 @@ static void ping6(len_and_sockaddr *lsa)
|
||||||
|
/* don't check len - we trust the kernel: */
|
||||||
|
/* && mp->cmsg_len >= CMSG_LEN(sizeof(int)) */
|
||||||
|
) {
|
||||||
|
- hoplimit = *(int*)CMSG_DATA(mp);
|
||||||
|
+ /*hoplimit = *(int*)CMSG_DATA(mp); - unaligned access */
|
||||||
|
+ move_from_unaligned_int(hoplimit, CMSG_DATA(mp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unpack6(packet, c, /*&from,*/ hoplimit);
|
||||||
|
@@ -716,18 +718,16 @@ static void ping(len_and_sockaddr *lsa)
|
||||||
|
ping4(lsa);
|
||||||
|
}
|
||||||
|
|
||||||
|
-int ping_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||||
|
-int ping_main(int argc UNUSED_PARAM, char **argv)
|
||||||
|
+static int common_ping_main(int opt, char **argv)
|
||||||
|
{
|
||||||
|
len_and_sockaddr *lsa;
|
||||||
|
char *str_s;
|
||||||
|
- int opt;
|
||||||
|
|
||||||
|
INIT_G();
|
||||||
|
|
||||||
|
/* exactly one argument needed; -v and -q don't mix; -c NUM, -w NUM, -W NUM */
|
||||||
|
opt_complementary = "=1:q--v:v--q:c+:w+:W+";
|
||||||
|
- opt = getopt32(argv, OPT_STRING, &pingcount, &str_s, &deadline, &timeout, &str_I);
|
||||||
|
+ opt |= getopt32(argv, OPT_STRING, &pingcount, &str_s, &deadline, &timeout, &str_I);
|
||||||
|
if (opt & OPT_s)
|
||||||
|
datalen = xatou16(str_s); // -s
|
||||||
|
if (opt & OPT_I) { // -I
|
||||||
|
@@ -765,13 +765,25 @@ int ping_main(int argc UNUSED_PARAM, cha
|
||||||
|
#endif /* FEATURE_FANCY_PING */
|
||||||
|
|
||||||
|
|
||||||
|
+int ping_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||||
|
+int ping_main(int argc UNUSED_PARAM, char **argv)
|
||||||
|
+{
|
||||||
|
+#if !ENABLE_FEATURE_FANCY_PING
|
||||||
|
+ return common_ping_main(AF_UNSPEC, argv);
|
||||||
|
+#else
|
||||||
|
+ return common_ping_main(0, argv);
|
||||||
|
+#endif
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#if ENABLE_PING6
|
||||||
|
int ping6_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||||
|
int ping6_main(int argc UNUSED_PARAM, char **argv)
|
||||||
|
{
|
||||||
|
- argv[0] = (char*)"-6";
|
||||||
|
- return ping_main(0 /* argc+1 - but it's unused anyway */,
|
||||||
|
- argv - 1);
|
||||||
|
+# if !ENABLE_FEATURE_FANCY_PING
|
||||||
|
+ return common_ping_main(AF_INET6, argv);
|
||||||
|
+# else
|
||||||
|
+ return common_ping_main(OPT_IPV6, argv);
|
||||||
|
+# endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
18
package/busybox/busybox-1.15.2-split.patch
Normal file
18
package/busybox/busybox-1.15.2-split.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
diff -urpN busybox-1.15.2/coreutils/split.c busybox-1.15.2-split/coreutils/split.c
|
||||||
|
--- busybox-1.15.2/coreutils/split.c 2009-10-08 02:59:09.000000000 +0200
|
||||||
|
+++ busybox-1.15.2-split/coreutils/split.c 2009-11-30 21:09:20.000000000 +0100
|
||||||
|
@@ -79,9 +79,13 @@ int split_main(int argc UNUSED_PARAM, ch
|
||||||
|
|
||||||
|
argv += optind;
|
||||||
|
if (argv[0]) {
|
||||||
|
+ int fd;
|
||||||
|
if (argv[1])
|
||||||
|
sfx = argv[1];
|
||||||
|
- xmove_fd(xopen(argv[0], O_RDONLY), 0);
|
||||||
|
+ fd = open_or_warn_stdin(argv[0]);
|
||||||
|
+ if (fd == -1)
|
||||||
|
+ return EXIT_FAILURE;
|
||||||
|
+ xmove_fd(fd, STDIN_FILENO);
|
||||||
|
} else {
|
||||||
|
argv[0] = (char *) bb_msg_standard_input;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user