From 371c487a0d1a2d936311f0392859585ecfc58d6a Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Mon, 5 May 2008 17:17:00 +0000 Subject: busybox: additional 1.10.1 patches --- package/busybox/busybox-1.10.1-echo.patch | 38 ++++++++++++++++++++++++++++ package/busybox/busybox-1.10.1-hppa.patch | 37 +++++++++++++++++++++++++++ package/busybox/busybox-1.10.1-mdev.patch | 38 +++++++++++++++------------- package/busybox/busybox-1.10.1-tar.patch | 24 ++++++++++++++++++ package/busybox/busybox-1.10.1-trylink.patch | 11 ++++++++ 5 files changed, 130 insertions(+), 18 deletions(-) create mode 100644 package/busybox/busybox-1.10.1-echo.patch create mode 100644 package/busybox/busybox-1.10.1-hppa.patch create mode 100644 package/busybox/busybox-1.10.1-tar.patch create mode 100644 package/busybox/busybox-1.10.1-trylink.patch (limited to 'package/busybox') diff --git a/package/busybox/busybox-1.10.1-echo.patch b/package/busybox/busybox-1.10.1-echo.patch new file mode 100644 index 000000000..c635aa20e --- /dev/null +++ b/package/busybox/busybox-1.10.1-echo.patch @@ -0,0 +1,38 @@ +--- busybox-1.10.1/coreutils/echo.c Sat Apr 19 05:50:32 2008 ++++ busybox-1.10.1-echo/coreutils/echo.c Wed Apr 30 02:37:08 2008 +@@ -27,10 +27,8 @@ + + /* This is a NOFORK applet. Be very careful! */ + +-/* argc is unused, but removing it precludes compiler from +- * using call -> jump optimization */ ++/* NB: can be used by shell even if not enabled as applet */ + +-int echo_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; + int echo_main(int argc ATTRIBUTE_UNUSED, char **argv) + { + const char *arg; +@@ -110,15 +108,19 @@ + } + #if !ENABLE_FEATURE_FANCY_ECHO + /* SUSv3 specifies that octal escapes must begin with '0'. */ +- if ( (((unsigned char)*arg) - '1') >= 7) ++ if ( ((int)(unsigned char)(*arg) - '0') >= 8) /* '8' or bigger */ + #endif + { + /* Since SUSv3 mandates a first digit of 0, 4-digit octals + * of the form \0### are accepted. */ +- if (*arg == '0' && ((unsigned char)(arg[1]) - '0') < 8) { +- arg++; ++ if (*arg == '0') { ++ /* NB: don't turn "...\0" into "...\" */ ++ if (arg[1] && ((unsigned char)(arg[1]) - '0') < 8) { ++ arg++; ++ } + } +- /* bb_process_escape_sequence can handle nul correctly */ ++ /* bb_process_escape_sequence handles NUL correctly ++ * ("...\" case). */ + c = bb_process_escape_sequence(&arg); + } + } diff --git a/package/busybox/busybox-1.10.1-hppa.patch b/package/busybox/busybox-1.10.1-hppa.patch new file mode 100644 index 000000000..ee9caf236 --- /dev/null +++ b/package/busybox/busybox-1.10.1-hppa.patch @@ -0,0 +1,37 @@ +--- busybox-1.10.1/include/libbb.h Sat Apr 19 05:50:36 2008 ++++ busybox-1.10.1-hppa/include/libbb.h Mon Apr 28 10:34:36 2008 +@@ -288,20 +288,20 @@ + * SIGSYS Bad argument to routine + * SIGTRAP Trace/breakpoint trap + */ +- BB_FATAL_SIGS = 0 +- + (1 << SIGHUP) +- + (1 << SIGINT) +- + (1 << SIGTERM) +- + (1 << SIGPIPE) // Write to pipe with no readers +- + (1 << SIGQUIT) // Quit from keyboard +- + (1 << SIGABRT) // Abort signal from abort(3) +- + (1 << SIGALRM) // Timer signal from alarm(2) +- + (1 << SIGVTALRM) // Virtual alarm clock +- + (1 << SIGXCPU) // CPU time limit exceeded +- + (1 << SIGXFSZ) // File size limit exceeded +- + (1 << SIGUSR1) // Yes kids, these are also fatal! +- + (1 << SIGUSR2) +- + 0, ++ BB_FATAL_SIGS = (int)(0 ++ + (1LL << SIGHUP) ++ + (1LL << SIGINT) ++ + (1LL << SIGTERM) ++ + (1LL << SIGPIPE) // Write to pipe with no readers ++ + (1LL << SIGQUIT) // Quit from keyboard ++ + (1LL << SIGABRT) // Abort signal from abort(3) ++ + (1LL << SIGALRM) // Timer signal from alarm(2) ++ + (1LL << SIGVTALRM) // Virtual alarm clock ++ + (1LL << SIGXCPU) // CPU time limit exceeded ++ + (1LL << SIGXFSZ) // File size limit exceeded ++ + (1LL << SIGUSR1) // Yes kids, these are also fatal! ++ + (1LL << SIGUSR2) ++ + 0), + }; + void bb_signals(int sigs, void (*f)(int)); + /* Unlike signal() and bb_signals, sets handler with sigaction() diff --git a/package/busybox/busybox-1.10.1-mdev.patch b/package/busybox/busybox-1.10.1-mdev.patch index b5788829a..33a9a0d61 100644 --- a/package/busybox/busybox-1.10.1-mdev.patch +++ b/package/busybox/busybox-1.10.1-mdev.patch @@ -1,5 +1,5 @@ --- busybox-1.10.1/util-linux/mdev.c Sat Apr 19 05:50:39 2008 -+++ busybox-1.10.1-mdev/util-linux/mdev.c Sat Apr 26 17:15:54 2008 ++++ busybox-1.10.1-mdev/util-linux/mdev.c Fri May 2 14:48:06 2008 @@ -12,6 +12,8 @@ #include "libbb.h" #include "xregex.h" @@ -40,7 +40,7 @@ char *command = NULL; char *alias = NULL; -@@ -42,156 +58,177 @@ +@@ -42,156 +58,178 @@ * also depend on path having writeable space after it. */ if (!delete) { @@ -204,13 +204,19 @@ + if (ENABLE_FEATURE_MDEV_RENAME) { + if (!next) + break; -+ val = next; -+ next = next_field(val); -+ if (*val == '>') { ++ if (*next == '>') { +#if ENABLE_FEATURE_MDEV_RENAME_REGEXP -+ /* substitute %1..9 with off[1..9], if any */ + char *s, *p; + unsigned i, n; ++#endif ++ val = next; ++ next = next_field(val); ++#if ENABLE_FEATURE_MDEV_RENAME_REGEXP ++ /* substitute %1..9 with off[1..9], if any */ ++ n = 0; ++ s = val; ++ while (*s && *s++ == '%') ++ n++; - /* parse GID */ - grp = getgrnam(str_gid); @@ -218,11 +224,7 @@ - gid = grp->gr_gid; - else - gid = strtoul(str_gid, NULL, 10); -+ n = 0; -+ s = val; -+ while (*s && *s++ == '%') -+ n++; - +- - } else if (field == 2) { - - /* Mode device permissions */ @@ -327,7 +329,7 @@ if (ENABLE_FEATURE_MDEV_RENAME) unlink(device_name); -@@ -208,39 +245,44 @@ +@@ -208,39 +246,44 @@ if (ENABLE_FEATURE_MDEV_RENAME && alias) { char *dest; @@ -389,7 +391,7 @@ } /* File callback for /sys/ traversal */ -@@ -249,14 +291,15 @@ +@@ -249,14 +292,15 @@ void *userData, int depth ATTRIBUTE_UNUSED) { @@ -408,7 +410,7 @@ make_device(scratch, 0); return TRUE; -@@ -287,12 +330,6 @@ +@@ -287,12 +331,6 @@ int cnt; int firmware_fd, loading_fd, data_fd; @@ -421,7 +423,7 @@ /* check for /lib/firmware/$FIRMWARE */ xchdir("/lib/firmware"); firmware_fd = xopen(firmware, O_RDONLY); -@@ -304,16 +341,15 @@ +@@ -304,16 +342,15 @@ xchdir(sysfs_path); for (cnt = 0; cnt < 30; ++cnt) { loading_fd = open("loading", O_WRONLY); @@ -444,7 +446,7 @@ goto out; /* load firmware by `cat /lib/firmware/$FIRMWARE > /sys/$DEVPATH/data */ -@@ -324,9 +360,9 @@ +@@ -324,9 +361,9 @@ /* tell kernel result by `echo [0|-1] > /sys/$DEVPATH/loading` */ if (cnt > 0) @@ -456,7 +458,7 @@ out: if (ENABLE_FEATURE_CLEAN_UP) { -@@ -341,16 +377,14 @@ +@@ -341,16 +378,14 @@ { char *action; char *env_path; @@ -475,7 +477,7 @@ struct stat st; xstat("/", &st); -@@ -366,26 +400,27 @@ +@@ -366,26 +401,27 @@ fileAction, dirAction, temp, 0); } else { diff --git a/package/busybox/busybox-1.10.1-tar.patch b/package/busybox/busybox-1.10.1-tar.patch new file mode 100644 index 000000000..fb479dd26 --- /dev/null +++ b/package/busybox/busybox-1.10.1-tar.patch @@ -0,0 +1,24 @@ +--- busybox-1.10.1/archival/libunarchive/get_header_tar.c Sat Apr 19 05:50:29 2008 ++++ busybox-1.10.1-tar/archival/libunarchive/get_header_tar.c Tue Apr 29 06:12:29 2008 +@@ -112,7 +112,7 @@ + archive_handle->offset += 512; + + /* If there is no filename its an empty header */ +- if (tar.name[0] == 0) { ++ if (tar.name[0] == 0 && tar.prefix[0] == 0) { + if (end) { + /* This is the second consecutive empty header! End of archive! + * Read until the end to empty the pipe from gz or bz2 +@@ -211,9 +211,12 @@ + /* getOctal trashes subsequent field, therefore we call it + * on fields in reverse order */ + if (tar.devmajor[0]) { ++ char t = tar.prefix[0]; ++ /* we trash prefix[0] here, but we DO need it later! */ + unsigned minor = GET_OCTAL(tar.devminor); + unsigned major = GET_OCTAL(tar.devmajor); + file_header->device = makedev(major, minor); ++ tar.prefix[0] = t; + } + file_header->link_target = NULL; + if (!linkname && parse_names && tar.linkname[0]) { diff --git a/package/busybox/busybox-1.10.1-trylink.patch b/package/busybox/busybox-1.10.1-trylink.patch new file mode 100644 index 000000000..9299e1f1f --- /dev/null +++ b/package/busybox/busybox-1.10.1-trylink.patch @@ -0,0 +1,11 @@ +--- busybox-1.10.1/scripts/trylink Sat Apr 19 05:50:27 2008 ++++ busybox-1.10.1-trylink/scripts/trylink Wed Apr 30 02:10:19 2008 +@@ -66,7 +66,7 @@ + #if defined(__GLIBC__) && !defined(__UCLIBC__) + syntax error here + #endif +- " >"$tempname" ++ " >"$tempname".c + if $CC "$tempname".c -c -o "$tempname".o >/dev/null 2>&1; then + echo "$2"; + else -- cgit v1.2.3