busybox: bump 1.17.x version
authorPeter Korsgaard <jacmet@sunsite.dk>
Mon, 26 Jul 2010 08:03:42 +0000 (10:03 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 26 Jul 2010 08:03:42 +0000 (10:03 +0200)
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
14 files changed:
package/busybox/Config.in
package/busybox/busybox-1.17.0/busybox-1.17.0-acpid.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-ask_terminal.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-build_system.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-depmod.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-diff.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-dos2unix.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-mktemp.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-modprobe-l.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-top.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-vi.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-volumeid.patch [deleted file]
package/busybox/busybox-1.17.0/busybox-1.17.0-wget.patch [deleted file]
package/busybox/busybox-1.17.1/busybox-1.17.1-shell.patch [new file with mode: 0644]

index 0016406510e3b486eb647dfa2f1c1ee251f5b6a6..fc342590ac7b0d800f0353a26d1cf34f131b4961 100644 (file)
@@ -45,7 +45,7 @@ config BR2_BUSYBOX_VERSION
        default "1.14.4"        if BR2_BUSYBOX_VERSION_1_14_X
        default "1.15.3"        if BR2_BUSYBOX_VERSION_1_15_X
        default "1.16.2"        if BR2_BUSYBOX_VERSION_1_16_X
-       default "1.17.0"        if BR2_BUSYBOX_VERSION_1_17_X
+       default "1.17.1"        if BR2_BUSYBOX_VERSION_1_17_X
 
 config BR2_PACKAGE_BUSYBOX_FULLINSTALL
        bool "Run BusyBox's own full installation"
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-acpid.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-acpid.patch
deleted file mode 100644 (file)
index 664b87e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -urpN busybox-1.17.0/util-linux/acpid.c busybox-1.17.0-acpid/util-linux/acpid.c
---- busybox-1.17.0/util-linux/acpid.c  2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-acpid/util-linux/acpid.c    2010-07-12 06:24:00.000000000 +0200
-@@ -9,9 +9,25 @@
- #include "libbb.h"
- #include <linux/input.h>
-+#ifndef EV_SW
-+# define EV_SW         0x05
-+#endif
-+#ifndef EV_KEY
-+# define EV_KEY        0x01
-+#endif
-+#ifndef SW_LID
-+# define SW_LID        0x00
-+#endif
- #ifndef SW_RFKILL_ALL
--# define SW_RFKILL_ALL 3
-+# define SW_RFKILL_ALL 0x03
- #endif
-+#ifndef KEY_POWER
-+# define KEY_POWER     116     /* SC System Power Down */
-+#endif
-+#ifndef KEY_SLEEP
-+# define KEY_SLEEP     142     /* SC System Sleep */
-+#endif
-+
- /*
-  * acpid listens to ACPI events coming either in textual form
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-ask_terminal.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-ask_terminal.patch
deleted file mode 100644 (file)
index 3b1a99a..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -urpN busybox-1.17.0/libbb/lineedit.c busybox-1.17.0-ask_terminal/libbb/lineedit.c
---- busybox-1.17.0/libbb/lineedit.c    2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-ask_terminal/libbb/lineedit.c       2010-07-18 22:38:47.000000000 +0200
-@@ -151,6 +151,7 @@ struct lineedit_statics {
-       CHAR_T delbuf[DELBUFSIZ];  /* a place to store deleted characters */
- #endif
- #if ENABLE_FEATURE_EDITING_ASK_TERMINAL
-+      smallint unknown_width;
-       smallint sent_ESC_br6n;
- #endif
-@@ -1612,14 +1613,16 @@ static void ask_terminal(void)
-        * poll([{fd=0, events=POLLIN}], 1, 4294967295) = 1 ([{fd=0, revents=POLLIN}])
-        * read(0, "\n", 1)      = 1  <-- oh crap, user's input got in first
-        */
--      struct pollfd pfd;
-+      if (S.unknown_width) { /* only if window size is not known */
-+              struct pollfd pfd;
--      pfd.fd = STDIN_FILENO;
--      pfd.events = POLLIN;
--      if (safe_poll(&pfd, 1, 0) == 0) {
--              S.sent_ESC_br6n = 1;
--              fputs("\033" "[6n", stdout);
--              fflush_all(); /* make terminal see it ASAP! */
-+              pfd.fd = STDIN_FILENO;
-+              pfd.events = POLLIN;
-+              if (safe_poll(&pfd, 1, 0) == 0) {
-+                      S.sent_ESC_br6n = 1;
-+                      fputs("\033" "[6n", stdout);
-+                      fflush_all(); /* make terminal see it ASAP! */
-+              }
-       }
- }
- #else
-@@ -1765,11 +1768,13 @@ static void cmdedit_setwidth(unsigned w,
- static void win_changed(int nsig)
- {
-+      int sv_errno = errno;
-       unsigned width;
--      get_terminal_width_height(0, &width, NULL);
-+      IF_FEATURE_EDITING_ASK_TERMINAL(S.unknown_width =) get_terminal_width_height(0, &width, NULL);
-       cmdedit_setwidth(width, nsig /* - just a yes/no flag */);
-       if (nsig == SIGWINCH)
-               signal(SIGWINCH, win_changed); /* rearm ourself */
-+      errno = sv_errno;
- }
- static int lineedit_read_key(char *read_key_buffer)
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-build_system.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-build_system.patch
deleted file mode 100644 (file)
index 2112644..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-diff -urpN busybox-1.17.0/applets/usage_compressed busybox-1.17.0-build_system/applets/usage_compressed
---- busybox-1.17.0/applets/usage_compressed    2010-07-04 23:33:59.000000000 +0200
-+++ busybox-1.17.0-build_system/applets/usage_compressed       2010-07-10 01:31:18.000000000 +0200
-@@ -40,8 +40,4 @@ echo '#define PACKED_USAGE \'
-       -e 's/$/ \\/'
- echo ''
--if cmp -s "$target.$$" "$target" 2>/dev/null; then
--    rm -- "$target.$$"
--else
--    mv -- "$target.$$" "$target"
--fi
-+mv -- "$target.$$" "$target"
-diff -urpN busybox-1.17.0/init/bootchartd.c busybox-1.17.0-build_system/init/bootchartd.c
---- busybox-1.17.0/init/bootchartd.c   2010-07-04 15:32:24.000000000 +0200
-+++ busybox-1.17.0-build_system/init/bootchartd.c      2010-07-10 01:31:14.000000000 +0200
-@@ -18,7 +18,7 @@
- //config:       and stopped using bootchartd stop.
- //config:
- //config:config FEATURE_BOOTCHARTD_BLOATED_HEADER
--//config:     bool "bootchartd"
-+//config:     bool "Compatible, bloated header"
- //config:     default y
- //config:     depends on BOOTCHARTD
- //config:     help
-@@ -35,7 +35,7 @@
- //config:       makes bootchartd applet to dump a subset of it.
- //config:
- //config:config FEATURE_BOOTCHARTD_CONFIG_FILE
--//config:     bool "bootchartd"
-+//config:     bool "Support bootchartd.conf"
- //config:     default y
- //config:     depends on BOOTCHARTD
- //config:     help
-diff -urpN busybox-1.17.0/scripts/gen_build_files.sh busybox-1.17.0-build_system/scripts/gen_build_files.sh
---- busybox-1.17.0/scripts/gen_build_files.sh  2010-06-26 00:42:29.000000000 +0200
-+++ busybox-1.17.0-build_system/scripts/gen_build_files.sh     2010-07-10 01:31:38.000000000 +0200
-@@ -4,6 +4,8 @@ test $# -ge 2 || { echo "Syntax: $0 SRCT
- # cd to objtree
- cd -- "$2" || { echo "Syntax: $0 SRCTREE OBJTREE"; exit 1; }
-+# In separate objtree build, include/ might not exist yet
-+mkdir include 2>/dev/null
- srctree="$1"
-@@ -46,10 +48,12 @@ if test x"$new" != x"$old"; then
- fi
- # (Re)generate */Kbuild and */Config.in
--find -type d | while read -r d; do
-+{ cd -- "$srctree" && find -type d; } | while read -r d; do
-       d="${d#./}"
-+
-       src="$srctree/$d/Kbuild.src"
-       dst="$d/Kbuild"
-+      mkdir -p -- "$d" 2>/dev/null
-       if test -f "$src"; then
-               #echo "  CHK     $dst"
-@@ -69,6 +73,7 @@ find -type d | while read -r d; do
-       src="$srctree/$d/Config.src"
-       dst="$d/Config.in"
-+      mkdir -p -- "$d" 2>/dev/null
-       if test -f "$src"; then
-               #echo "  CHK     $dst"
-diff -urpN busybox-1.17.0/scripts/Makefile.build busybox-1.17.0-build_system/scripts/Makefile.build
---- busybox-1.17.0/scripts/Makefile.build      2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-build_system/scripts/Makefile.build 2010-07-10 01:31:38.000000000 +0200
-@@ -13,8 +13,13 @@ __build:
- include scripts/Kbuild.include
- # The filename Kbuild has precedence over Makefile
-+# bbox: we also try to include Kbuild file in obj tree first
- kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
--include $(if $(wildcard $(kbuild-dir)/Kbuild), $(kbuild-dir)/Kbuild, $(kbuild-dir)/Makefile)
-+include $(if $(wildcard $(src)/Kbuild), $(src)/Kbuild, \
-+              $(if $(wildcard $(kbuild-dir)/Kbuild), $(kbuild-dir)/Kbuild, \
-+                      $(kbuild-dir)/Makefile \
-+              ) \
-+      )
- include scripts/Makefile.lib
-diff -urpN busybox-1.17.0/scripts/test_make_O busybox-1.17.0-build_system/scripts/test_make_O
---- busybox-1.17.0/scripts/test_make_O 1970-01-01 01:00:00.000000000 +0100
-+++ busybox-1.17.0-build_system/scripts/test_make_O    2010-07-10 01:31:38.000000000 +0200
-@@ -0,0 +1,11 @@
-+#!/bin/sh
-+
-+b=`basename $PWD`
-+test "${b#busybox}" != "$b" || { echo "Must be run in busybox tree"; exit 1; }
-+
-+rm -rf ../testdir_make_O.$$
-+mkdir ../testdir_make_O.$$
-+odir=`cd ../testdir_make_O.$$ && pwd`
-+test -d "$odir" || exit 1
-+
-+make O="$odir" $MAKEOPTS "$@" defconfig busybox 2>&1 | tee test_make_O.log
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-depmod.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-depmod.patch
deleted file mode 100644 (file)
index 105cd17..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-diff -urpN busybox-1.17.0/modutils/depmod.c busybox-1.17.0-depmod/modutils/depmod.c
---- busybox-1.17.0/modutils/depmod.c   2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-depmod/modutils/depmod.c    2010-07-19 00:28:22.000000000 +0200
-@@ -28,16 +28,6 @@ typedef struct module_info {
-       struct module_info *dnext, *dprev;
- } module_info;
--enum {
--      ARG_a = (1<<0), /* All modules, ignore mods in argv */
--      ARG_A = (1<<1), /* Only emit .ko that are newer than modules.dep file */
--      ARG_b = (1<<2), /* base directory when modules are in staging area */
--      ARG_e = (1<<3), /* with -F, print unresolved symbols */
--      ARG_F = (1<<4), /* System.map that contains the symbols */
--      ARG_n = (1<<5), /* dry-run, print to stdout only */
--      ARG_r = (1<<6)  /* Compat dummy. Linux Makefile uses it */
--};
--
- static int FAST_FUNC parse_module(const char *fname, struct stat *sb UNUSED_PARAM,
-                                 void *data, int depth UNUSED_PARAM)
- {
-@@ -58,7 +48,7 @@ static int FAST_FUNC parse_module(const 
-       *first = info;
-       info->dnext = info->dprev = info;
--      info->name = xasprintf("/%s", fname);
-+      info->name = xstrdup(fname + 2); /* skip "./" */
-       info->modname = xstrdup(filename2modname(fname, modname));
-       for (ptr = image; ptr < image + len - 10; ptr++) {
-               if (strncmp(ptr, "depends=", 8) == 0) {
-@@ -134,10 +124,44 @@ static void xfreopen_write(const char *f
-               bb_perror_msg_and_die("can't open '%s'", file);
- }
-+/* Usage:
-+ * [-aAenv] [-C FILE or DIR] [-b BASE] [-F System.map] [VERSION] [MODFILES]...
-+ *    -a --all
-+ *            Probe all modules. Default if no MODFILES.
-+ *    -A --quick
-+ *            Check modules.dep's mtime against module files' mtimes.
-+ *    -b --basedir BASE
-+ *            Use $BASE/lib/modules/VERSION
-+ *    -C --config FILE or DIR
-+ *            Path to /etc/depmod.conf or /etc/depmod.d/
-+ *    -e --errsyms
-+ *            When combined with the -F option, this reports any symbols which
-+ *            which are not supplied by other modules or kernel.
-+ *    -F --filesyms System.map
-+ *    -n --dry-run
-+ *            Print modules.dep etc to standard output
-+ *    -v --verbose
-+ *            Print to stdout all the symbols each module depends on
-+ *            and the module's file name which provides that symbol.
-+ *    -r      No-op
-+ *
-+ * So far we only support: [-rn] [-b BASE] [VERSION] [MODFILES]...
-+ * -aAeF are accepted but ignored. -vC are not accepted.
-+ */
-+enum {
-+      //OPT_a = (1 << 0), /* All modules, ignore mods in argv */
-+      //OPT_A = (1 << 1), /* Only emit .ko that are newer than modules.dep file */
-+      OPT_b = (1 << 2), /* base directory when modules are in staging area */
-+      //OPT_e = (1 << 3), /* with -F, print unresolved symbols */
-+      //OPT_F = (1 << 4), /* System.map that contains the symbols */
-+      OPT_n = (1 << 5), /* dry-run, print to stdout only */
-+      OPT_r = (1 << 6)  /* Compat dummy. Linux Makefile uses it */
-+};
-+
- int depmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
- int depmod_main(int argc UNUSED_PARAM, char **argv)
- {
--      module_info *modules = NULL, *m, *dep;
-+      module_info *modules, *m, *dep;
-       const char *moddir_base = "/";
-       char *moddir, *version;
-       struct utsname uts;
-@@ -152,36 +176,30 @@ int depmod_main(int argc UNUSED_PARAM, c
-       /* If a version is provided, then that kernel version's module directory
-        * is used, rather than the current kernel version (as returned by
-        * "uname -r").  */
--      if (*argv && sscanf(*argv, "%d.%d.%d", &tmp, &tmp, &tmp) == 3) {
-+      if (*argv && sscanf(*argv, "%u.%u.%u", &tmp, &tmp, &tmp) == 3) {
-               version = *argv++;
-       } else {
-               uname(&uts);
-               version = uts.release;
-       }
-       moddir = concat_path_file(&CONFIG_DEFAULT_MODULES_DIR[1], version);
-+      xchdir(moddir);
-+      if (ENABLE_FEATURE_CLEAN_UP)
-+              free(moddir);
-       /* Scan modules */
-+      modules = NULL;
-       if (*argv) {
--              char *modfile;
--              struct stat sb;
-               do {
--                      modfile = concat_path_file(moddir, *argv);
--                      xstat(modfile, &sb);
--                      parse_module(modfile, &sb, &modules, 0);
--                      free(modfile);
--              } while (*(++argv));
-+                      parse_module(*argv, /*sb (unused):*/ NULL, &modules, 0);
-+              } while (*++argv);
-       } else {
--              recursive_action(moddir, ACTION_RECURSE,
-+              recursive_action(".", ACTION_RECURSE,
-                                parse_module, NULL, &modules, 0);
-       }
--      /* Prepare for writing out the dep files */
--      xchdir(moddir);
--      if (ENABLE_FEATURE_CLEAN_UP)
--              free(moddir);
--
-       /* Generate dependency and alias files */
--      if (!(option_mask32 & ARG_n))
-+      if (!(option_mask32 & OPT_n))
-               xfreopen_write(CONFIG_DEFAULT_DEPMOD_FILE, stdout);
-       for (m = modules; m != NULL; m = m->next) {
-               printf("%s:", m->name);
-@@ -200,7 +218,7 @@ int depmod_main(int argc UNUSED_PARAM, c
-       }
- #if ENABLE_FEATURE_MODUTILS_ALIAS
--      if (!(option_mask32 & ARG_n))
-+      if (!(option_mask32 & OPT_n))
-               xfreopen_write("modules.alias", stdout);
-       for (m = modules; m != NULL; m = m->next) {
-               const char *fname = bb_basename(m->name);
-@@ -218,7 +236,7 @@ int depmod_main(int argc UNUSED_PARAM, c
-       }
- #endif
- #if ENABLE_FEATURE_MODUTILS_SYMBOLS
--      if (!(option_mask32 & ARG_n))
-+      if (!(option_mask32 & OPT_n))
-               xfreopen_write("modules.symbols", stdout);
-       for (m = modules; m != NULL; m = m->next) {
-               const char *fname = bb_basename(m->name);
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-diff.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-diff.patch
deleted file mode 100644 (file)
index 9830900..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-diff -urpN busybox-1.17.0/editors/diff.c busybox-1.17.0-diff/editors/diff.c
---- busybox-1.17.0/editors/diff.c      2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-diff/editors/diff.c 2010-07-19 00:27:45.000000000 +0200
-@@ -121,6 +121,7 @@ typedef struct FILE_and_pos_t {
- struct globals {
-       smallint exit_status;
-       int opt_U_context;
-+      const char *other_dir;
-       char *label[2];
-       struct stat stb[2];
- };
-@@ -760,9 +761,11 @@ static int FAST_FUNC add_to_dirlist(cons
-               void *userdata, int depth UNUSED_PARAM)
- {
-       struct dlist *const l = userdata;
-+      const char *file = filename + l->len;
-+      while (*file == '/')
-+              file++;
-       l->dl = xrealloc_vector(l->dl, 6, l->e);
--      /* + 1 skips "/" after dirname */
--      l->dl[l->e] = xstrdup(filename + l->len + 1);
-+      l->dl[l->e] = xstrdup(file);
-       l->e++;
-       return TRUE;
- }
-@@ -778,6 +781,25 @@ static int FAST_FUNC skip_dir(const char
-               add_to_dirlist(filename, sb, userdata, depth);
-               return SKIP;
-       }
-+      if (!(option_mask32 & FLAG(N))) {
-+              /* -r without -N: no need to recurse into dirs
-+               * which do not exist on the "other side".
-+               * Testcase: diff -r /tmp /
-+               * (it would recurse deep into /proc without this code) */
-+              struct dlist *const l = userdata;
-+              filename += l->len;
-+              if (filename[0]) {
-+                      struct stat osb;
-+                      char *othername = concat_path_file(G.other_dir, filename);
-+                      int r = stat(othername, &osb);
-+                      free(othername);
-+                      if (r != 0 || !S_ISDIR(osb.st_mode)) {
-+                              /* other dir doesn't have similarly named
-+                               * directory, don't recurse */
-+                              return SKIP;
-+                      }
-+              }
-+      }
-       return TRUE;
- }
-@@ -791,6 +813,7 @@ static void diffdir(char *p[2], const ch
-               /*list[i].s = list[i].e = 0; - memset did it */
-               /*list[i].dl = NULL; */
-+              G.other_dir = p[1 - i];
-               /* We need to trim root directory prefix.
-                * Using list.len to specify its length,
-                * add_to_dirlist will remove it. */
-diff -urpN busybox-1.17.0/testsuite/diff.tests busybox-1.17.0-diff/testsuite/diff.tests
---- busybox-1.17.0/testsuite/diff.tests        2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-diff/testsuite/diff.tests   2010-07-10 01:31:51.000000000 +0200
-@@ -4,7 +4,7 @@
- . ./testing.sh
--# testing "test name" "options" "expected result" "file input" "stdin"
-+# testing "test name" "commands" "expected result" "file input" "stdin"
- # diff outputs date/time in the header, which should not be analysed
- # NB: sed has tab character in s command!
-@@ -100,9 +100,11 @@ testing "diff always takes context from 
-       "abc\na  c\ndef\n" \
-       "a c\n"
--# testing "test name" "options" "expected result" "file input" "stdin"
-+# testing "test name" "commands" "expected result" "file input" "stdin"
-+# clean up
- rm -rf diff1 diff2
-+
- mkdir diff1 diff2 diff2/subdir
- echo qwe >diff1/-
- echo asd >diff2/subdir/-
-@@ -187,4 +189,29 @@ SKIP=
- # clean up
- rm -rf diff1 diff2
-+# NOT using directory structure from prev test...
-+mkdir diff1 diff2
-+echo qwe >diff1/-
-+echo rty >diff2/-
-+optional FEATURE_DIFF_DIR
-+testing "diff diff1 diff2/" \
-+      "diff -ur diff1 diff2/ | $TRIM_TAB; diff -ur .///diff1 diff2//// | $TRIM_TAB" \
-+"\
-+--- diff1/-
-++++ diff2/-
-+@@ -1 +1 @@
-+-qwe
-++rty
-+--- .///diff1/-
-++++ diff2////-
-+@@ -1 +1 @@
-+-qwe
-++rty
-+" \
-+      "" ""
-+SKIP=
-+
-+# clean up
-+rm -rf diff1 diff2
-+
- exit $FAILCOUNT
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-dos2unix.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-dos2unix.patch
deleted file mode 100644 (file)
index dde59e0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urpN busybox-1.17.0/coreutils/dos2unix.c busybox-1.17.0-dos2unix/coreutils/dos2unix.c
---- busybox-1.17.0/coreutils/dos2unix.c        2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-dos2unix/coreutils/dos2unix.c       2010-07-17 22:40:21.021422169 +0200
-@@ -92,7 +92,7 @@ int dos2unix_main(int argc UNUSED_PARAM,
-       do {
-               /* might be convert(NULL) if there is no filename given */
-               convert(*argv, conv_type);
--      } while (*++argv);
-+      } while (*argv && *++argv);
-       return 0;
- }
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-mktemp.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-mktemp.patch
deleted file mode 100644 (file)
index 023a7cf..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -urpN busybox-1.17.0/debianutils/mktemp.c busybox-1.17.0-mktemp/debianutils/mktemp.c
---- busybox-1.17.0/debianutils/mktemp.c        2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-mktemp/debianutils/mktemp.c 2010-07-12 03:42:48.000000000 +0200
-@@ -50,7 +50,8 @@ int mktemp_main(int argc UNUSED_PARAM, c
-       opts = getopt32(argv, "dqtp:", &path);
-       chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
--      chp = concat_path_file(path, chp);
-+      if (chp[0] != '/' || (opts & 8))
-+              chp = concat_path_file(path, chp);
-       if (opts & 1) { /* -d */
-               if (mkdtemp(chp) == NULL)
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-modprobe-l.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-modprobe-l.patch
deleted file mode 100644 (file)
index 496a599..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -urpN busybox-1.17.0/modutils/modprobe.c busybox-1.17.0-modprobe-l/modutils/modprobe.c
---- busybox-1.17.0/modutils/modprobe.c 2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-modprobe-l/modutils/modprobe.c      2010-07-10 01:25:42.000000000 +0200
-@@ -483,6 +483,11 @@ int modprobe_main(int argc UNUSED_PARAM,
-       opt = getopt32(argv, INSMOD_OPTS MODPROBE_OPTS INSMOD_ARGS);
-       argv += optind;
-+      /* Goto modules location */
-+      xchdir(CONFIG_DEFAULT_MODULES_DIR);
-+      uname(&uts);
-+      xchdir(uts.release);
-+
-       if (opt & MODPROBE_OPT_LIST_ONLY) {
-               char name[MODULE_NAME_LEN];
-               char *colon, *tokens[2];
-@@ -524,11 +529,6 @@ int modprobe_main(int argc UNUSED_PARAM,
-               return EXIT_SUCCESS;
-       }
--      /* Goto modules location */
--      xchdir(CONFIG_DEFAULT_MODULES_DIR);
--      uname(&uts);
--      xchdir(uts.release);
--
-       /* Retrieve module names of already loaded modules */
-       {
-               char *s;
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-top.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-top.patch
deleted file mode 100644 (file)
index 84c91f3..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -urpN busybox-1.17.0/procps/top.c busybox-1.17.0-top/procps/top.c
---- busybox-1.17.0/procps/top.c        2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-top/procps/top.c    2010-07-19 00:27:04.000000000 +0200
-@@ -686,10 +686,10 @@ static int topmem_sort(char *a, char *b)
-       n = offsetof(topmem_status_t, vsz) + (sort_field * sizeof(mem_t));
-       l = *(mem_t*)(a + n);
-       r = *(mem_t*)(b + n);
--//    if (l == r) {
--//            l = a->mapped_rw;
--//            r = b->mapped_rw;
--//    }
-+      if (l == r) {
-+              l = ((topmem_status_t*)a)->dirty;
-+              r = ((topmem_status_t*)b)->dirty;
-+      }
-       /* We want to avoid unsigned->signed and truncation errors */
-       /* l>r: -1, l=r: 0, l<r: 1 */
-       n = (l > r) ? -1 : (l != r);
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-vi.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-vi.patch
deleted file mode 100644 (file)
index cc61c87..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-diff -urpN busybox-1.17.0/editors/vi.c busybox-1.17.0-vi/editors/vi.c
---- busybox-1.17.0/editors/vi.c        2010-07-04 04:17:40.000000000 +0200
-+++ busybox-1.17.0-vi/editors/vi.c     2010-07-21 12:19:36.827970040 +0200
-@@ -504,20 +504,17 @@ static int init_text_buffer(char *fn)
- }
- #if ENABLE_FEATURE_VI_WIN_RESIZE
--static void query_screen_dimensions(void)
-+static int query_screen_dimensions(void)
- {
--# if ENABLE_FEATURE_VI_ASK_TERMINAL
--      if (!G.get_rowcol_error)
--              G.get_rowcol_error =
--# endif
--                      get_terminal_width_height(STDIN_FILENO, &columns, &rows);
-+      int err = get_terminal_width_height(STDIN_FILENO, &columns, &rows);
-       if (rows > MAX_SCR_ROWS)
-               rows = MAX_SCR_ROWS;
-       if (columns > MAX_SCR_COLS)
-               columns = MAX_SCR_COLS;
-+      return err;
- }
- #else
--# define query_screen_dimensions() ((void)0)
-+# define query_screen_dimensions() (0)
- #endif
- static void edit_file(char *fn)
-@@ -536,7 +533,7 @@ static void edit_file(char *fn)
-       rows = 24;
-       columns = 80;
-       size = 0;
--      query_screen_dimensions();
-+      IF_FEATURE_VI_ASK_TERMINAL(G.get_rowcol_error =) query_screen_dimensions();
- #if ENABLE_FEATURE_VI_ASK_TERMINAL
-       if (G.get_rowcol_error /* TODO? && no input on stdin */) {
-               uint64_t k;
-@@ -546,9 +543,12 @@ static void edit_file(char *fn)
-               if ((int32_t)k == KEYCODE_CURSOR_POS) {
-                       uint32_t rc = (k >> 32);
-                       columns = (rc & 0x7fff);
-+                      if (columns > MAX_SCR_COLS)
-+                              columns = MAX_SCR_COLS;
-                       rows = ((rc >> 16) & 0x7fff);
-+                      if (rows > MAX_SCR_ROWS)
-+                              rows = MAX_SCR_ROWS;
-               }
--              query_screen_dimensions();
-       }
- #endif
-       new_screen(rows, columns);      // get memory for virtual screen
-@@ -2797,7 +2797,7 @@ static void refresh(int full_screen)
-       int li, changed;
-       char *tp, *sp;          // pointer into text[] and screen[]
--      if (ENABLE_FEATURE_VI_WIN_RESIZE) {
-+      if (ENABLE_FEATURE_VI_WIN_RESIZE IF_FEATURE_VI_ASK_TERMINAL(&& !G.get_rowcol_error) ) {
-               unsigned c = columns, r = rows;
-               query_screen_dimensions();
-               full_screen |= (c - columns) | (r - rows);
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-volumeid.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-volumeid.patch
deleted file mode 100644 (file)
index 5fc0cf0..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-diff -urpN busybox-1.17.0/util-linux/Config.src busybox-1.17.0-volumeid/util-linux/Config.src
---- busybox-1.17.0/util-linux/Config.src       2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-volumeid/util-linux/Config.src      2010-07-14 07:12:19.000000000 +0200
-@@ -470,221 +470,6 @@ config FEATURE_USE_TERMIOS
-         will be unable to determine the current screen size, and will be
-         unable to move the cursor.
--config VOLUMEID
--      bool #No description makes it a hidden option
--      default n
--
--config FEATURE_VOLUMEID_EXT
--      bool "Ext filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_BTRFS
--      bool "btrfs filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_REISERFS
--      bool "Reiser filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_FAT
--      bool "fat filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_HFS
--      bool "hfs filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_JFS
--      bool "jfs filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--### config FEATURE_VOLUMEID_UFS
--###   bool "ufs filesystem"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--config FEATURE_VOLUMEID_XFS
--      bool "xfs filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_NTFS
--      bool "ntfs filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_ISO9660
--      bool "iso9660 filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_UDF
--      bool "udf filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_LUKS
--      bool "luks filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_LINUXSWAP
--      bool "linux swap filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--### config FEATURE_VOLUMEID_LVM
--###   bool "lvm"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--config FEATURE_VOLUMEID_CRAMFS
--      bool "cramfs filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--### config FEATURE_VOLUMEID_HPFS
--###   bool "hpfs filesystem"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--config FEATURE_VOLUMEID_ROMFS
--      bool "romfs filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--config FEATURE_VOLUMEID_SYSV
--      bool "sysv filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--### config FEATURE_VOLUMEID_MINIX
--###   bool "minix filesystem"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--### These only detect partition tables - not used (yet?)
--### config FEATURE_VOLUMEID_MAC
--###   bool "mac filesystem"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--###
--### config FEATURE_VOLUMEID_MSDOS
--###   bool "msdos filesystem"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--config FEATURE_VOLUMEID_OCFS2
--      bool "ocfs2 filesystem"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
--### config FEATURE_VOLUMEID_HIGHPOINTRAID
--###   bool "highpoint raid"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--### config FEATURE_VOLUMEID_ISWRAID
--###   bool "intel raid"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--### config FEATURE_VOLUMEID_LSIRAID
--###   bool "lsi raid"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--### config FEATURE_VOLUMEID_VIARAID
--###   bool "via raid"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--### config FEATURE_VOLUMEID_SILICONRAID
--###   bool "silicon raid"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--### config FEATURE_VOLUMEID_NVIDIARAID
--###   bool "nvidia raid"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--### config FEATURE_VOLUMEID_PROMISERAID
--###   bool "promise raid"
--###   default y
--###   depends on VOLUMEID
--###   help
--###     TODO
--
--config FEATURE_VOLUMEID_LINUXRAID
--      bool "linuxraid"
--      default y
--      depends on VOLUMEID
--      help
--        TODO
--
- config MOUNT
-       bool "mount"
-       default y
-@@ -937,4 +722,224 @@ config FEATURE_MTAB_SUPPORT
-         About the only reason to use this is if you've removed /proc from
-         your kernel.
-+config VOLUMEID
-+      bool #No description makes it a hidden option
-+      default n
-+
-+menu "Filesystem/Volume identification"
-+      depends on VOLUMEID
-+
-+config FEATURE_VOLUMEID_EXT
-+      bool "Ext filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_BTRFS
-+      bool "btrfs filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_REISERFS
-+      bool "Reiser filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_FAT
-+      bool "fat filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_HFS
-+      bool "hfs filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_JFS
-+      bool "jfs filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+### config FEATURE_VOLUMEID_UFS
-+###   bool "ufs filesystem"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+config FEATURE_VOLUMEID_XFS
-+      bool "xfs filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_NTFS
-+      bool "ntfs filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_ISO9660
-+      bool "iso9660 filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_UDF
-+      bool "udf filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_LUKS
-+      bool "luks filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_LINUXSWAP
-+      bool "linux swap filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+### config FEATURE_VOLUMEID_LVM
-+###   bool "lvm"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+config FEATURE_VOLUMEID_CRAMFS
-+      bool "cramfs filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+### config FEATURE_VOLUMEID_HPFS
-+###   bool "hpfs filesystem"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+config FEATURE_VOLUMEID_ROMFS
-+      bool "romfs filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+config FEATURE_VOLUMEID_SYSV
-+      bool "sysv filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+### config FEATURE_VOLUMEID_MINIX
-+###   bool "minix filesystem"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+### These only detect partition tables - not used (yet?)
-+### config FEATURE_VOLUMEID_MAC
-+###   bool "mac filesystem"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+###
-+### config FEATURE_VOLUMEID_MSDOS
-+###   bool "msdos filesystem"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+config FEATURE_VOLUMEID_OCFS2
-+      bool "ocfs2 filesystem"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+### config FEATURE_VOLUMEID_HIGHPOINTRAID
-+###   bool "highpoint raid"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+### config FEATURE_VOLUMEID_ISWRAID
-+###   bool "intel raid"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+### config FEATURE_VOLUMEID_LSIRAID
-+###   bool "lsi raid"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+### config FEATURE_VOLUMEID_VIARAID
-+###   bool "via raid"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+### config FEATURE_VOLUMEID_SILICONRAID
-+###   bool "silicon raid"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+### config FEATURE_VOLUMEID_NVIDIARAID
-+###   bool "nvidia raid"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+### config FEATURE_VOLUMEID_PROMISERAID
-+###   bool "promise raid"
-+###   default y
-+###   depends on VOLUMEID
-+###   help
-+###     TODO
-+
-+config FEATURE_VOLUMEID_LINUXRAID
-+      bool "linuxraid"
-+      default y
-+      depends on VOLUMEID
-+      help
-+        TODO
-+
-+endmenu
-+
- endmenu
diff --git a/package/busybox/busybox-1.17.0/busybox-1.17.0-wget.patch b/package/busybox/busybox-1.17.0/busybox-1.17.0-wget.patch
deleted file mode 100644 (file)
index d649f65..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urpN busybox-1.17.0/networking/wget.c busybox-1.17.0-wget/networking/wget.c
---- busybox-1.17.0/networking/wget.c   2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0-wget/networking/wget.c      2010-07-12 03:27:57.000000000 +0200
-@@ -50,7 +50,7 @@ static void progress_meter(int flag)
-       }
-       bb_progress_update(&G.pmt, G.curfile, G.beg_range, G.transferred,
--                         G.chunked ? 0 : G.content_len + G.beg_range);
-+                         G.chunked ? 0 : G.beg_range + G.transferred + G.content_len);
-       if (flag == 0) {
-               /* last call to progress_meter */
diff --git a/package/busybox/busybox-1.17.1/busybox-1.17.1-shell.patch b/package/busybox/busybox-1.17.1/busybox-1.17.1-shell.patch
new file mode 100644 (file)
index 0000000..04adc8f
--- /dev/null
@@ -0,0 +1,86 @@
+diff -urpN busybox-1.17.1/shell/ash.c busybox-1.17.1-shell/shell/ash.c
+--- busybox-1.17.1/shell/ash.c 2010-07-25 00:12:43.000000000 +0200
++++ busybox-1.17.1-shell/shell/ash.c   2010-07-25 13:09:32.000000000 +0200
+@@ -4515,6 +4515,7 @@ clear_traps(void)
+                       INT_ON;
+               }
+       }
++      may_have_traps = 0;
+ }
+ /* Lives far away from here, needed for forkchild */
+diff -urpN busybox-1.17.1/shell/ash_test/ash-signals/signal7.right busybox-1.17.1-shell/shell/ash_test/ash-signals/signal7.right
+--- busybox-1.17.1/shell/ash_test/ash-signals/signal7.right    1970-01-01 01:00:00.000000000 +0100
++++ busybox-1.17.1-shell/shell/ash_test/ash-signals/signal7.right      2010-07-25 13:09:32.000000000 +0200
+@@ -0,0 +1 @@
++Bug detected: 0
+diff -urpN busybox-1.17.1/shell/ash_test/ash-signals/signal7.tests busybox-1.17.1-shell/shell/ash_test/ash-signals/signal7.tests
+--- busybox-1.17.1/shell/ash_test/ash-signals/signal7.tests    1970-01-01 01:00:00.000000000 +0100
++++ busybox-1.17.1-shell/shell/ash_test/ash-signals/signal7.tests      2010-07-25 13:09:32.000000000 +0200
+@@ -0,0 +1,18 @@
++bug() {
++      trap : exit
++      # Bug was causing sh to be run in subshell,
++      # as if this line is replaced with (sh -c ...; exit $?) &
++      # here:
++      sh -c 'echo REAL_CHILD=$$' &
++      echo PARENTS_IDEA_OF_CHILD=$!
++      wait  # make sure bkgd shell completes
++}
++
++bug | {
++while read varval; do
++      eval $varval
++done
++test x"$REAL_CHILD" != x"" \
++&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
++echo "Bug detected: $?"
++}
+diff -urpN busybox-1.17.1/shell/hush.c busybox-1.17.1-shell/shell/hush.c
+--- busybox-1.17.1/shell/hush.c        2010-07-25 00:12:43.000000000 +0200
++++ busybox-1.17.1-shell/shell/hush.c  2010-07-25 13:09:32.000000000 +0200
+@@ -3901,8 +3901,6 @@ static void insert_bg_job(struct pipe *p
+       if (G_interactive_fd)
+               printf("[%d] %d %s\n", job->jobid, job->cmds[0].pid, job->cmdtext);
+-      /* Last command's pid goes to $! */
+-      G.last_bg_pid = job->cmds[job->num_cmds - 1].pid;
+       G.last_jobid = job->jobid;
+ }
+@@ -4825,6 +4823,8 @@ static int run_list(struct pipe *pi)
+                               if (G.run_list_level == 1)
+                                       insert_bg_job(pi);
+ #endif
++                              /* Last command's pid goes to $! */
++                              G.last_bg_pid = pi->cmds[pi->num_cmds - 1].pid;
+                               G.last_exitcode = rcode = EXIT_SUCCESS;
+                               debug_printf_exec(": cmd&: exitcode EXIT_SUCCESS\n");
+                       } else {
+diff -urpN busybox-1.17.1/shell/hush_test/hush-trap/signal7.right busybox-1.17.1-shell/shell/hush_test/hush-trap/signal7.right
+--- busybox-1.17.1/shell/hush_test/hush-trap/signal7.right     1970-01-01 01:00:00.000000000 +0100
++++ busybox-1.17.1-shell/shell/hush_test/hush-trap/signal7.right       2010-07-25 13:09:32.000000000 +0200
+@@ -0,0 +1 @@
++Bug detected: 0
+diff -urpN busybox-1.17.1/shell/hush_test/hush-trap/signal7.tests busybox-1.17.1-shell/shell/hush_test/hush-trap/signal7.tests
+--- busybox-1.17.1/shell/hush_test/hush-trap/signal7.tests     1970-01-01 01:00:00.000000000 +0100
++++ busybox-1.17.1-shell/shell/hush_test/hush-trap/signal7.tests       2010-07-25 13:09:32.000000000 +0200
+@@ -0,0 +1,18 @@
++bug() {
++      trap : exit
++      # Bug was causing sh to be run in subshell,
++      # as if this line is replaced with (sh -c ...; exit $?) &
++      # here:
++      sh -c 'echo REAL_CHILD=$$' &
++      echo PARENTS_IDEA_OF_CHILD=$!
++      wait  # make sure bkgd shell completes
++}
++
++bug | {
++while read varval; do
++      eval $varval
++done
++test x"$REAL_CHILD" != x"" \
++&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
++echo "Bug detected: $?"
++}