diff options
author | 2010-08-15 03:22:41 +0000 | |
---|---|---|
committer | 2010-08-15 03:22:41 +0000 | |
commit | 57b97fb1bf652b2e38e3bb9370f1c0c6712f670c (patch) | |
tree | f390b71de9d0a012fef2a732f19741469db08bfc /sys-apps/busybox/files | |
parent | Add -fno-strict-aliasing to stable version #310413 by Doktor Notor. (diff) | |
download | historical-57b97fb1bf652b2e38e3bb9370f1c0c6712f670c.tar.gz historical-57b97fb1bf652b2e38e3bb9370f1c0c6712f670c.tar.bz2 historical-57b97fb1bf652b2e38e3bb9370f1c0c6712f670c.zip |
Version bump #327157 by Paolo Pedroni.
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64
Diffstat (limited to 'sys-apps/busybox/files')
-rw-r--r-- | sys-apps/busybox/files/busybox-1.17.0-bb.patch | 23 | ||||
-rw-r--r-- | sys-apps/busybox/files/busybox-1.17.1-mktemp.patch | 12 | ||||
-rw-r--r-- | sys-apps/busybox/files/busybox-1.17.1-sed.patch | 66 | ||||
-rw-r--r-- | sys-apps/busybox/files/busybox-1.17.1-shell.patch | 105 |
4 files changed, 206 insertions, 0 deletions
diff --git a/sys-apps/busybox/files/busybox-1.17.0-bb.patch b/sys-apps/busybox/files/busybox-1.17.0-bb.patch new file mode 100644 index 000000000000..a9d64e0d5f6e --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.17.0-bb.patch @@ -0,0 +1,23 @@ +--- a/include/applets.src.h ++++ b/include/applets.src.h +@@ -77,7 +77,9 @@ + IF_BASENAME(APPLET_NOFORK(basename, basename, _BB_DIR_USR_BIN, _BB_SUID_DROP, basename)) + IF_FEATURE_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, _BB_DIR_BIN, _BB_SUID_DROP, bash)) + IF_FEATURE_BASH_IS_HUSH(APPLET_ODDNAME(bash, hush, _BB_DIR_BIN, _BB_SUID_DROP, bash)) ++IF_ASH(APPLET_ODDNAME(bb, ash, _BB_DIR_BIN, _BB_SUID_DROP, ash)) + IF_BBCONFIG(APPLET(bbconfig, _BB_DIR_BIN, _BB_SUID_DROP)) ++IF_ASH(APPLET_ODDNAME(bbsh, ash, _BB_DIR_BIN, _BB_SUID_DROP, ash)) + //IF_BBSH(APPLET(bbsh, _BB_DIR_BIN, _BB_SUID_DROP)) + IF_BEEP(APPLET(beep, _BB_DIR_USR_BIN, _BB_SUID_DROP)) + IF_BLKID(APPLET(blkid, _BB_DIR_SBIN, _BB_SUID_DROP)) +--- a/shell/ash.c ++++ b/shell/ash.c +@@ -7255,6 +7255,8 @@ + } + /* re-exec ourselves with the new arguments */ + execve(bb_busybox_exec_path, argv, envp); ++ execve("/bin/busybox.static", argv, envp); ++ execve("/bin/busybox", argv, envp); + /* If they called chroot or otherwise made the binary no longer + * executable, fall through */ + } diff --git a/sys-apps/busybox/files/busybox-1.17.1-mktemp.patch b/sys-apps/busybox/files/busybox-1.17.1-mktemp.patch new file mode 100644 index 000000000000..557e337b15f6 --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.17.1-mktemp.patch @@ -0,0 +1,12 @@ +diff -urpN busybox-1.17.1/debianutils/mktemp.c busybox-1.17.1-mktemp/debianutils/mktemp.c +--- busybox-1.17.1/debianutils/mktemp.c 2010-07-25 00:12:56.000000000 +0200 ++++ busybox-1.17.1-mktemp/debianutils/mktemp.c 2010-07-27 08:21:26.000000000 +0200 +@@ -50,7 +50,7 @@ int mktemp_main(int argc UNUSED_PARAM, c + opts = getopt32(argv, "dqtp:", &path); + + chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX"); +- if (chp[0] != '/' || (opts & 8)) ++ if (!strchr(chp, '/') || (opts & 8)) + chp = concat_path_file(path, chp); + + if (opts & 1) { /* -d */ diff --git a/sys-apps/busybox/files/busybox-1.17.1-sed.patch b/sys-apps/busybox/files/busybox-1.17.1-sed.patch new file mode 100644 index 000000000000..1b523c2ce8b2 --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.17.1-sed.patch @@ -0,0 +1,66 @@ +diff -urpN busybox-1.17.1/editors/sed.c busybox-1.17.1-sed/editors/sed.c +--- busybox-1.17.1/editors/sed.c 2010-07-06 04:25:53.000000000 +0200 ++++ busybox-1.17.1-sed/editors/sed.c 2010-08-01 04:15:39.000000000 +0200 +@@ -61,6 +61,10 @@ + #include "libbb.h" + #include "xregex.h" + ++enum { ++ OPT_in_place = 1 << 0, ++}; ++ + /* Each sed command turns into one of these structures. */ + typedef struct sed_cmd_s { + /* Ordered by alignment requirements: currently 36 bytes on x86 */ +@@ -938,8 +942,11 @@ static void process_files(void) + + if (matched) { + /* once matched, "n,xxx" range is dead, disabling it */ +- if (sed_cmd->beg_line > 0) ++ if (sed_cmd->beg_line > 0 ++ && !(option_mask32 & OPT_in_place) /* but not for -i */ ++ ) { + sed_cmd->beg_line = -2; ++ } + sed_cmd->in_match = !( + /* has the ending line come, or is this a single address command? */ + (sed_cmd->end_line ? +@@ -1270,9 +1277,6 @@ static void add_cmd_block(char *cmdstr) + int sed_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; + int sed_main(int argc UNUSED_PARAM, char **argv) + { +- enum { +- OPT_in_place = 1 << 0, +- }; + unsigned opt; + llist_t *opt_e, *opt_f; + int status = EXIT_SUCCESS; +@@ -1292,6 +1296,7 @@ int sed_main(int argc UNUSED_PARAM, char + opt_e = opt_f = NULL; + opt_complementary = "e::f::" /* can occur multiple times */ + "nn"; /* count -n */ ++ /* -i must be first, to match OPT_in_place definition */ + opt = getopt32(argv, "irne:f:", &opt_e, &opt_f, + &G.be_quiet); /* counter for -n */ + //argc -= optind; +diff -urpN busybox-1.17.1/testsuite/sed.tests busybox-1.17.1-sed/testsuite/sed.tests +--- busybox-1.17.1/testsuite/sed.tests 2010-07-06 04:25:54.000000000 +0200 ++++ busybox-1.17.1-sed/testsuite/sed.tests 2010-08-01 04:19:26.000000000 +0200 +@@ -270,11 +270,16 @@ testing "sed a cmd ended by double backs + | two \\ + ' + +-# fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges ++# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges + testing "sed with N skipping lines past ranges on next cmds" \ + "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \ + "4\n4\n" "" "1\n2\n3\n4\n" + ++testing "sed -i with address modifies all files, not only first" \ ++ "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \ ++ "bar\nbar\n" "foo\n" "" ++ ++ + # testing "description" "arguments" "result" "infile" "stdin" + + exit $FAILCOUNT diff --git a/sys-apps/busybox/files/busybox-1.17.1-shell.patch b/sys-apps/busybox/files/busybox-1.17.1-shell.patch new file mode 100644 index 000000000000..5279b1202c46 --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.17.1-shell.patch @@ -0,0 +1,105 @@ +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: $?" ++} +diff -urpN busybox-1.17.1/shell/shell_common.c busybox-1.17.1-shell/shell/shell_common.c +--- busybox-1.17.1/shell/shell_common.c 2010-07-06 04:25:54.000000000 +0200 ++++ busybox-1.17.1-shell/shell/shell_common.c 2010-07-27 08:41:43.000000000 +0200 +@@ -428,9 +428,14 @@ shell_builtin_ulimit(char **argv) + val <<= l->factor_shift; + } + //bb_error_msg("opt %c val_str:'%s' val:%lld", opt_char, val_str, (long long)val); ++ /* from man bash: "If neither -H nor -S ++ * is specified, both the soft and hard ++ * limits are set. */ ++ if (!opts) ++ opts = OPT_hard + OPT_soft; + if (opts & OPT_hard) + limit.rlim_max = val; +- if ((opts & OPT_soft) || opts == 0) ++ if (opts & OPT_soft) + limit.rlim_cur = val; + //bb_error_msg("setrlimit(%d, %lld, %lld)", l->cmd, (long long)limit.rlim_cur, (long long)limit.rlim_max); + if (setrlimit(l->cmd, &limit) < 0) { |