diff --git a/core/busybox/APKBUILD b/core/busybox/APKBUILD index 02a754071663add65c2897f4315104522fa0bfe7..b9d381a2093fd4068bd95d00a6832294af2f880d 100644 --- a/core/busybox/APKBUILD +++ b/core/busybox/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=busybox -pkgver=1.13.3 -pkgrel=5 +pkgver=1.13.4 +pkgrel=0 pkgdesc="Size optimized toolbox of many common UNIX utilities" url=http://busybox.net license=GPL-2 @@ -12,11 +12,6 @@ source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2 $pkgname-1.11.1-bb.patch busybox-1.13.2-modprobe-errormsg.patch busybox-1.13.2-depmod2.patch - busybox-1.13.3-ash.patch - busybox-1.13.3-hush.patch - busybox-1.13.3-tail.patch - busybox-1.13.3-tar.patch - busybox-1.13.3-volumeid.patch bb-tar-numeric-owner.patch $install busyboxconfig" @@ -43,16 +38,11 @@ build() { ln -s /bin/busybox "$pkgdir"/bin/sh } -md5sums="0cde6d2790e790837d6d7e82faae3ca1 busybox-1.13.3.tar.bz2 +md5sums="8a5eb7f15d4077d18fa97bda7a4e5412 busybox-1.13.4.tar.bz2 f5a8ae3145aa249868c1a1abc319c228 busybox-1.12.1-vi-path.patch 4c0f3b486eaa0674961b7ddcd0c60a9b busybox-1.11.1-bb.patch a743ec04f378b8456a725c7270b0be8b busybox-1.13.2-modprobe-errormsg.patch 3c43008545e069749d2d653532e1feb3 busybox-1.13.2-depmod2.patch -ed7537bc7193ab35f4e4ac6ce26d8270 busybox-1.13.3-ash.patch -4a5fe634708150f65b6d9b51dba20a51 busybox-1.13.3-hush.patch -c7d958974dde8fb7b1258b41820beeba busybox-1.13.3-tail.patch -b0e4aeed6efc6f6870e8665da0bb223e busybox-1.13.3-tar.patch -48cdc820269be1d964affed61a02c89b busybox-1.13.3-volumeid.patch 0b5b2d7db201f90cd08f4a3164ee29a1 bb-tar-numeric-owner.patch 56b78c358797cd15fb64719a48939267 busybox.post-install 56b78c358797cd15fb64719a48939267 busybox.post-upgrade diff --git a/core/busybox/busybox-1.13.3-ash.patch b/core/busybox/busybox-1.13.3-ash.patch deleted file mode 100644 index 710128ab3a50898fe25339b2b93c8a2156e577bc..0000000000000000000000000000000000000000 --- a/core/busybox/busybox-1.13.3-ash.patch +++ /dev/null @@ -1,384 +0,0 @@ -diff -urpN busybox-1.13.3/shell/ash.c busybox-1.13.3-ash/shell/ash.c ---- busybox-1.13.3/shell/ash.c 2009-02-26 12:46:55.000000000 +0100 -+++ busybox-1.13.3-ash/shell/ash.c 2009-03-20 11:14:53.000000000 +0100 -@@ -30,7 +30,7 @@ - */ - - /* -- * The follow should be set to reflect the type of system you have: -+ * The following should be set to reflect the type of system you have: - * JOBS -> 1 if you have Berkeley job control, 0 otherwise. - * define SYSV if you are running under System V. - * define DEBUG=1 to compile in debugging ('set -o debug' to turn on) -@@ -40,6 +40,11 @@ - * a quit signal will generate a core dump. - */ - #define DEBUG 0 -+/* Tweak debug output verbosity here */ -+#define DEBUG_TIME 0 -+#define DEBUG_PID 1 -+#define DEBUG_SIG 1 -+ - #define PROFILE 0 - - #define IFS_BROKEN -@@ -47,9 +52,9 @@ - #define JOBS ENABLE_ASH_JOB_CONTROL - - #if DEBUG --#ifndef _GNU_SOURCE --#define _GNU_SOURCE --#endif -+# ifndef _GNU_SOURCE -+# define _GNU_SOURCE -+# endif - #endif - - #include "busybox.h" /* for applet_names */ -@@ -57,15 +62,15 @@ - #include <setjmp.h> - #include <fnmatch.h> - #if JOBS || ENABLE_ASH_READ_NCHARS --#include <termios.h> -+# include <termios.h> - #endif - - #ifndef PIPE_BUF --#define PIPE_BUF 4096 /* amount of buffering in a pipe */ -+# define PIPE_BUF 4096 /* amount of buffering in a pipe */ - #endif - - #if defined(__uClinux__) --#error "Do not even bother, ash will not run on uClinux" -+# error "Do not even bother, ash will not run on uClinux" - #endif - - -@@ -76,14 +81,6 @@ - #define CMDTABLESIZE 31 /* should be prime */ - - --/* ============ Misc helpers */ -- --#define xbarrier() do { __asm__ __volatile__ ("": : :"memory"); } while (0) -- --/* C99 say: "char" declaration may be signed or unsigned default */ --#define signed_char2int(sc) ((int)((signed char)sc)) -- -- - /* ============ Shell options */ - - static const char *const optletters_optnames[] = { -@@ -245,7 +242,30 @@ extern struct globals_misc *const ash_pt - } while (0) - - -+/* ============ DEBUG */ -+#if DEBUG -+static void trace_printf(const char *fmt, ...); -+static void trace_vprintf(const char *fmt, va_list va); -+# define TRACE(param) trace_printf param -+# define TRACEV(param) trace_vprintf param -+# define close(f) do { \ -+ int dfd = (f); \ -+ if (close(dfd) < 0) \ -+ bb_error_msg("bug on %d: closing %d(%x)", \ -+ __LINE__, dfd, dfd); \ -+} while (0) -+#else -+# define TRACE(param) -+# define TRACEV(param) -+#endif -+ -+ - /* ============ Utility functions */ -+#define xbarrier() do { __asm__ __volatile__ ("": : :"memory"); } while (0) -+ -+/* C99 say: "char" declaration may be signed or unsigned by default */ -+#define signed_char2int(sc) ((int)(signed char)(sc)) -+ - static int isdigit_str9(const char *str) - { - int maxlen = 9 + 1; /* max 9 digits: 999999999 */ -@@ -284,6 +304,12 @@ raise_exception(int e) - exception = e; - longjmp(exception_handler->loc, 1); - } -+#if DEBUG -+#define raise_exception(e) do { \ -+ TRACE(("raising exception %d on line %d\n", (e), __LINE__)); \ -+ raise_exception(e); \ -+} while (0) -+#endif - - /* - * Called from trap.c when a SIGINT is received. (If the user specifies -@@ -316,6 +342,12 @@ raise_interrupt(void) - raise_exception(i); - /* NOTREACHED */ - } -+#if DEBUG -+#define raise_interrupt() do { \ -+ TRACE(("raising interrupt on line %d\n", __LINE__)); \ -+ raise_interrupt(); \ -+} while (0) -+#endif - - #if ENABLE_ASH_OPTIMIZE_FOR_SIZE - static void -@@ -334,7 +366,9 @@ force_int_on(void) - raise_interrupt(); - } - #define FORCE_INT_ON force_int_on() --#else -+ -+#else /* !ASH_OPTIMIZE_FOR_SIZE */ -+ - #define INT_ON do { \ - xbarrier(); \ - if (--suppressint == 0 && intpending) \ -@@ -346,7 +380,7 @@ force_int_on(void) - if (intpending) \ - raise_interrupt(); \ - } while (0) --#endif /* ASH_OPTIMIZE_FOR_SIZE */ -+#endif /* !ASH_OPTIMIZE_FOR_SIZE */ - - #define SAVE_INT(v) ((v) = suppressint) - -@@ -376,7 +410,6 @@ static void - onsig(int signo) - { - gotsig[signo - 1] = 1; -- pendingsig = signo; - - if (/* exsig || */ (signo == SIGINT && !trap[SIGINT])) { - if (!suppressint) { -@@ -384,6 +417,8 @@ onsig(int signo) - raise_interrupt(); /* does not return */ - } - intpending = 1; -+ } else { -+ pendingsig = signo; - } - } - -@@ -684,6 +719,12 @@ trace_printf(const char *fmt, ...) - - if (debug != 1) - return; -+ if (DEBUG_TIME) -+ fprintf(tracefile, "%u ", (int) time(NULL)); -+ if (DEBUG_PID) -+ fprintf(tracefile, "[%u] ", (int) getpid()); -+ if (DEBUG_SIG) -+ fprintf(tracefile, "pending s:%d i:%d(supp:%d) ", pendingsig, intpending, suppressint); - va_start(va, fmt); - vfprintf(tracefile, fmt, va); - va_end(va); -@@ -694,6 +735,12 @@ trace_vprintf(const char *fmt, va_list v - { - if (debug != 1) - return; -+ if (DEBUG_TIME) -+ fprintf(tracefile, "%u ", (int) time(NULL)); -+ if (DEBUG_PID) -+ fprintf(tracefile, "[%u] ", (int) getpid()); -+ if (DEBUG_SIG) -+ fprintf(tracefile, "pending s:%d i:%d(supp:%d) ", pendingsig, intpending, suppressint); - vfprintf(tracefile, fmt, va); - } - -@@ -998,14 +1045,6 @@ showtree(union node *n) - shtree(n, 1, NULL, stdout); - } - --#define TRACE(param) trace_printf param --#define TRACEV(param) trace_vprintf param -- --#else -- --#define TRACE(param) --#define TRACEV(param) -- - #endif /* DEBUG */ - - -@@ -3779,7 +3818,7 @@ dowait(int wait_flags, struct job *job) - * NB: _not_ safe_waitpid, we need to detect EINTR */ - pid = waitpid(-1, &status, - (doing_jobctl ? (wait_flags | WUNTRACED) : wait_flags)); -- TRACE(("wait returns pid=%d, status=0x%x\n", pid, status)); -+ TRACE(("wait returns pid=%d, status=0x%x, errno=%d(%s)\n", pid, status, errno, strerror(errno))); - - if (pid <= 0) { - /* If we were doing blocking wait and (probably) got EINTR, -@@ -5031,7 +5070,9 @@ redirect(union node *redir, int flags) - if (newfd < 0) { - /* NTOFD/NFROMFD: copy redir->ndup.dupfd to fd */ - if (redir->ndup.dupfd < 0) { /* "fd>&-" */ -- close(fd); -+ /* Don't want to trigger debugging */ -+ if (fd != -1) -+ close(fd); - } else { - copyfd(redir->ndup.dupfd, fd | COPYFD_EXACT); - } -@@ -5084,7 +5125,7 @@ popredir(int drop, int restore) - /*close(fd);*/ - copyfd(copy, fd | COPYFD_EXACT); - } -- close(copy); -+ close(copy & ~COPYFD_RESTORE); - } - } - redirlist = rp->next; -@@ -7871,20 +7912,30 @@ dotrap(void) - pendingsig = 0; - xbarrier(); - -+ TRACE(("dotrap entered\n")); - for (i = 1, q = gotsig; i < NSIG; i++, q++) { - if (!*q) - continue; -- *q = '\0'; - - p = trap[i]; -+ /* non-trapped SIGINT is handled separately by raise_interrupt, -+ * don't upset it by resetting gotsig[SIGINT-1] */ -+ if (i == SIGINT && !p) -+ continue; -+ -+ TRACE(("sig %d is active, will run handler '%s'\n", i, p)); -+ *q = '\0'; - if (!p) - continue; - skip = evalstring(p, SKIPEVAL); - exitstatus = savestatus; -- if (skip) -+ if (skip) { -+ TRACE(("dotrap returns %d\n", skip)); - return skip; -+ } - } - -+ TRACE(("dotrap returns 0\n")); - return 0; - } - -@@ -7906,28 +7957,32 @@ static void prehash(union node *); - static void - evaltree(union node *n, int flags) - { -- - struct jmploc *volatile savehandler = exception_handler; - struct jmploc jmploc; - int checkexit = 0; - void (*evalfn)(union node *, int); - int status; -+ int int_level; -+ -+ SAVE_INT(int_level); - - if (n == NULL) { - TRACE(("evaltree(NULL) called\n")); - goto out1; - } -- TRACE(("pid %d, evaltree(%p: %d, %d) called\n", -- getpid(), n, n->type, flags)); -+ TRACE(("evaltree(%p: %d, %d) called\n", n, n->type, flags)); - - exception_handler = &jmploc; - { - int err = setjmp(jmploc.loc); - if (err) { - /* if it was a signal, check for trap handlers */ -- if (exception == EXSIG) -+ if (exception == EXSIG) { -+ TRACE(("exception %d (EXSIG) in evaltree, err=%d\n", exception, err)); - goto out; -+ } - /* continue on the way out */ -+ TRACE(("exception %d in evaltree, propagating err=%d\n", exception, err)); - exception_handler = savehandler; - longjmp(exception_handler->loc, err); - } -@@ -8010,7 +8065,8 @@ evaltree(union node *n, int flags) - if (exitstatus == 0) { - n = n->nif.ifpart; - goto evaln; -- } else if (n->nif.elsepart) { -+ } -+ if (n->nif.elsepart) { - n = n->nif.elsepart; - goto evaln; - } -@@ -8036,6 +8092,9 @@ evaltree(union node *n, int flags) - exexit: - raise_exception(EXEXIT); - } -+ -+ RESTORE_INT(int_level); -+ TRACE(("leaving evaltree (no interrupts)\n")); - } - - #if !defined(__alpha__) || (defined(__GNUC__) && __GNUC__ >= 3) -@@ -8281,7 +8340,9 @@ evalpipe(union node *n, int flags) - if (prevfd >= 0) - close(prevfd); - prevfd = pip[0]; -- close(pip[1]); -+ /* Don't want to trigger debugging */ -+ if (pip[1] != -1) -+ close(pip[1]); - } - if (n->npipe.pipe_backgnd == 0) { - exitstatus = waitforjob(jp); -@@ -8913,6 +8974,7 @@ evalcommand(union node *cmd, int flags) - if (forkshell(jp, cmd, FORK_FG) != 0) { - exitstatus = waitforjob(jp); - INT_ON; -+ TRACE(("forked child exited with %d\n", exitstatus)); - break; - } - FORCE_INT_ON; -@@ -13640,7 +13702,7 @@ int ash_main(int argc UNUSED_PARAM, char - exception_handler = &jmploc; - #if DEBUG - opentrace(); -- trace_puts("Shell args: "); -+ TRACE(("Shell args: ")); - trace_puts_args(argv); - #endif - rootpid = getpid(); -@@ -13692,8 +13754,14 @@ int ash_main(int argc UNUSED_PARAM, char - } - state3: - state = 4; -- if (minusc) -+ if (minusc) { -+ /* evalstring pushes parsefile stack. -+ * Ensure we don't falsely claim that 0 (stdin) -+ * is one of stacked source fds */ -+ if (!sflag) -+ g_parsefile->fd = -1; - evalstring(minusc, 0); -+ } - - if (sflag || minusc == NULL) { - #if ENABLE_FEATURE_EDITING_SAVEHISTORY -@@ -13720,14 +13788,6 @@ int ash_main(int argc UNUSED_PARAM, char - /* NOTREACHED */ - } - --#if DEBUG --const char *applet_name = "debug stuff usage"; --int main(int argc, char **argv) --{ -- return ash_main(argc, argv); --} --#endif -- - - /*- - * Copyright (c) 1989, 1991, 1993, 1994 diff --git a/core/busybox/busybox-1.13.3-hush.patch b/core/busybox/busybox-1.13.3-hush.patch deleted file mode 100644 index 09d9347d7abdc2ce692f160270f3637a7b8e1b3d..0000000000000000000000000000000000000000 --- a/core/busybox/busybox-1.13.3-hush.patch +++ /dev/null @@ -1,160 +0,0 @@ -diff -urpN busybox-1.13.3/shell/hush.c busybox-1.13.3-hush/shell/hush.c ---- busybox-1.13.3/shell/hush.c 2009-02-26 12:46:55.000000000 +0100 -+++ busybox-1.13.3-hush/shell/hush.c 2009-03-20 13:01:52.000000000 +0100 -@@ -458,8 +458,9 @@ struct globals { - smallint fake_mode; - /* these three support $?, $#, and $1 */ - smalluint last_return_code; -+ smalluint global_args_malloced; -+ int global_argc; /* NB: $# + 1 */ - char **global_argv; -- int global_argc; - #if ENABLE_HUSH_LOOPS - unsigned depth_break_continue; - unsigned depth_of_loop; -@@ -633,7 +634,7 @@ static char *unbackslash(char *src) - return dst; - } - --static char **add_strings_to_strings(char **strings, char **add) -+static char **add_strings_to_strings(char **strings, char **add, int need_to_dup) - { - int i; - unsigned count1; -@@ -658,7 +659,7 @@ static char **add_strings_to_strings(cha - v[count1 + count2] = NULL; - i = count2; - while (--i >= 0) -- v[count1 + i] = add[i]; -+ v[count1 + i] = (need_to_dup ? xstrdup(add[i]) : add[i]); - return v; - } - -@@ -667,7 +668,7 @@ static char **add_string_to_strings(char - char *v[2]; - v[0] = add; - v[1] = NULL; -- return add_strings_to_strings(strings, v); -+ return add_strings_to_strings(strings, v, /*dup:*/ 0); - } - - static void putenv_all(char **strings) -@@ -1213,8 +1214,13 @@ static int o_glob(o_string *o, int n) - * Otherwise, just finish current list[] and start new */ - static int o_save_ptr(o_string *o, int n) - { -- if (o->o_glob) -- return o_glob(o, n); /* o_save_ptr_helper is inside */ -+ if (o->o_glob) { /* if globbing is requested */ -+ /* If o->has_empty_slot, list[n] was already globbed -+ * (if it was requested back then when it was filled) -+ * so don't do that again! */ -+ if (!o->has_empty_slot) -+ return o_glob(o, n); /* o_save_ptr_helper is inside */ -+ } - return o_save_ptr_helper(o, n); - } - -@@ -4279,6 +4285,11 @@ int hush_main(int argc, char **argv) - switch (opt) { - case 'c': - G.global_argv = argv + optind; -+ if (!argv[optind]) { -+ /* -c 'script' (no params): prevent empty $0 */ -+ *--G.global_argv = argv[0]; -+ optind--; -+ } /* else -c 'script' PAR0 PAR1: $0 is PAR0 */ - G.global_argc = argc - optind; - opt = parse_and_run_string(optarg, 0 /* parse_flag */); - goto final_return; -@@ -4639,17 +4650,68 @@ static int builtin_read(char **argv) - return set_local_var(string, 0); - } - --/* built-in 'set [VAR=value]' handler */ -+/* built-in 'set' handler -+ * SUSv3 says: -+ * set [-abCefmnuvx] [-h] [-o option] [argument...] -+ * set [+abCefmnuvx] [+h] [+o option] [argument...] -+ * set -- [argument...] -+ * set -o -+ * set +o -+ * Implementations shall support the options in both their hyphen and -+ * plus-sign forms. These options can also be specified as options to sh. -+ * Examples: -+ * Write out all variables and their values: set -+ * Set $1, $2, and $3 and set "$#" to 3: set c a b -+ * Turn on the -x and -v options: set -xv -+ * Unset all positional parameters: set -- -+ * Set $1 to the value of x, even if it begins with '-' or '+': set -- "$x" -+ * Set the positional parameters to the expansion of x, even if x expands -+ * with a leading '-' or '+': set -- $x -+ * -+ * So far, we only support "set -- [argument...]" by ignoring all options -+ * (also, "-o option" will be mishandled by taking "option" as parameter #1). -+ */ - static int builtin_set(char **argv) - { -- char *temp = argv[1]; - struct variable *e; -+ char **pp; -+ char *arg = *++argv; - -- if (temp == NULL) -+ if (arg == NULL) { - for (e = G.top_var; e; e = e->next) - puts(e->varstr); -- else -- set_local_var(xstrdup(temp), 0); -+ } else { -+ /* NB: G.global_argv[0] ($0) is never freed/changed */ -+ -+ if (G.global_args_malloced) { -+ pp = G.global_argv; -+ while (*++pp) -+ free(*pp); -+ G.global_argv[1] = NULL; -+ } else { -+ G.global_args_malloced = 1; -+ pp = xzalloc(sizeof(pp[0]) * 2); -+ pp[0] = G.global_argv[0]; /* retain $0 */ -+ G.global_argv = pp; -+ } -+ do { -+ if (arg[0] == '+') -+ continue; -+ if (arg[0] != '-') -+ break; -+ if (arg[1] == '-' && arg[2] == '\0') { -+ argv++; -+ break; -+ } -+ } while ((arg = *++argv) != NULL); -+ /* Now argv[0] is 1st argument */ -+ -+ /* This realloc's G.global_argv */ -+ G.global_argv = pp = add_strings_to_strings(G.global_argv, argv, /*dup:*/ 1); -+ G.global_argc = 1; -+ while (*++pp) -+ G.global_argc++; -+ } - - return EXIT_SUCCESS; - } -diff -urpN busybox-1.13.3/shell/hush_test/hush-parsing/starquoted2.right busybox-1.13.3-hush/shell/hush_test/hush-parsing/starquoted2.right ---- busybox-1.13.3/shell/hush_test/hush-parsing/starquoted2.right 2009-02-26 12:46:52.000000000 +0100 -+++ busybox-1.13.3-hush/shell/hush_test/hush-parsing/starquoted2.right 2009-03-20 12:32:30.000000000 +0100 -@@ -1,2 +1,3 @@ - Should be printed - Should be printed -+Empty: -diff -urpN busybox-1.13.3/shell/hush_test/hush-parsing/starquoted2.tests busybox-1.13.3-hush/shell/hush_test/hush-parsing/starquoted2.tests ---- busybox-1.13.3/shell/hush_test/hush-parsing/starquoted2.tests 2009-02-26 12:46:52.000000000 +0100 -+++ busybox-1.13.3-hush/shell/hush_test/hush-parsing/starquoted2.tests 2009-03-20 12:32:30.000000000 +0100 -@@ -12,3 +12,6 @@ for a in "$@"""; do echo Should not be p - for a in """$@"; do echo Should not be printed; done - for a in """$@"''"$@"''; do echo Should not be printed; done - for a in ""; do echo Should be printed; done -+ -+# Bug 207: "$@" expands to nothing, and we erroneously glob "%s\\n" twice: -+printf "Empty:%s\\n" "$@" diff --git a/core/busybox/busybox-1.13.3-tail.patch b/core/busybox/busybox-1.13.3-tail.patch deleted file mode 100644 index bd3abc0e541a9a349ce7a3d480aa1376676e017a..0000000000000000000000000000000000000000 --- a/core/busybox/busybox-1.13.3-tail.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urpN busybox-1.13.3/coreutils/tail.c busybox-1.13.3-tail/coreutils/tail.c ---- busybox-1.13.3/coreutils/tail.c 2009-02-26 12:47:02.000000000 +0100 -+++ busybox-1.13.3-tail/coreutils/tail.c 2009-03-27 03:34:57.000000000 +0100 -@@ -104,7 +104,7 @@ int tail_main(int argc, char **argv) - if (argv[1] && (argv[1][0] == '+' || argv[1][0] == '-') - && isdigit(argv[1][1]) - ) { -- count = eat_num(&argv[1][1]); -+ count = eat_num(argv[1]); - argv++; - argc--; - } diff --git a/core/busybox/busybox-1.13.3-tar.patch b/core/busybox/busybox-1.13.3-tar.patch deleted file mode 100644 index c1598425bdf1aca5d01f5ecf05646357ea20ef11..0000000000000000000000000000000000000000 --- a/core/busybox/busybox-1.13.3-tar.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -urpN busybox-1.13.3/archival/libunarchive/get_header_tar.c busybox-1.13.3-tar/archival/libunarchive/get_header_tar.c ---- busybox-1.13.3/archival/libunarchive/get_header_tar.c 2009-02-26 12:46:40.000000000 +0100 -+++ busybox-1.13.3-tar/archival/libunarchive/get_header_tar.c 2009-04-01 01:15:26.000000000 +0200 -@@ -91,7 +91,7 @@ char FAST_FUNC get_header_tar(archive_ha - - again_after_align: - --#if ENABLE_DESKTOP -+#if ENABLE_DESKTOP || ENABLE_FEATURE_TAR_AUTODETECT - /* to prevent misdetection of bz2 sig */ - *(uint32_t*)(&tar) = 0; - i = full_read(archive_handle->src_fd, &tar, 512); -@@ -142,7 +142,7 @@ char FAST_FUNC get_header_tar(archive_ha - #if ENABLE_FEATURE_TAR_AUTODETECT - char FAST_FUNC (*get_header_ptr)(archive_handle_t *); - -- USE_DESKTOP(autodetect:) -+ autodetect: - /* tar gz/bz autodetect: check for gz/bz2 magic. - * If we see the magic, and it is the very first block, - * we can switch to get_header_tar_gz/bz2/lzma(). -diff -urpN busybox-1.13.3/archival/tar.c busybox-1.13.3-tar/archival/tar.c ---- busybox-1.13.3/archival/tar.c 2009-02-26 12:56:00.000000000 +0100 -+++ busybox-1.13.3-tar/archival/tar.c 2009-04-01 01:15:39.000000000 +0200 -@@ -934,8 +934,10 @@ int tar_main(int argc UNUSED_PARAM, char - tar_handle->src_fd = fileno(tar_stream); - tar_handle->seek = seek_by_read; - } else { -- if (ENABLE_FEATURE_TAR_AUTODETECT && flags == O_RDONLY) { -- get_header_ptr = get_header_tar; -+ if (ENABLE_FEATURE_TAR_AUTODETECT -+ && get_header_ptr == get_header_tar -+ && flags == O_RDONLY -+ ) { - tar_handle->src_fd = open_zipped(tar_filename); - if (tar_handle->src_fd < 0) - bb_perror_msg_and_die("can't open '%s'", tar_filename); diff --git a/core/busybox/busybox-1.13.3-volumeid.patch b/core/busybox/busybox-1.13.3-volumeid.patch deleted file mode 100644 index ff4c0258e41aa46a216adaf1e7a3ab373ede291f..0000000000000000000000000000000000000000 --- a/core/busybox/busybox-1.13.3-volumeid.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -urpN busybox-1.13.3/util-linux/volume_id/get_devname.c busybox-1.13.3-volumeid/util-linux/volume_id/get_devname.c ---- busybox-1.13.3/util-linux/volume_id/get_devname.c 2009-02-26 12:47:41.000000000 +0100 -+++ busybox-1.13.3-volumeid/util-linux/volume_id/get_devname.c 2009-03-31 21:46:37.000000000 +0200 -@@ -223,13 +223,11 @@ void display_uuid_cache(void) - char *get_devname_from_label(const char *spec) - { - struct uuidCache_s *uc; -- int spec_len = strlen(spec); - - uuidcache_init(); - uc = uuidCache; - while (uc) { --// FIXME: empty label ("LABEL=") matches anything??! -- if (uc->label[0] && strncmp(spec, uc->label, spec_len) == 0) { -+ if (uc->label[0] && strcmp(spec, uc->label) == 0) { - return xstrdup(uc->device); - } - uc = uc->next;