From 41a43ead399096d0858378b4afa7fbfe82d0af92 Mon Sep 17 00:00:00 2001 From: Dennis Groenen Date: Sun, 22 Apr 2012 21:38:44 +0200 Subject: [PATCH] update busybox-power against BusyBox 1.20 release --- build.sh | 2 +- debian/config/config.busybox | 31 ++- .../0001-vi-implement-p-go-to-previous-file.patch | 38 ---- debian/patches/03tar.patch | 58 ------ debian/patches/applets-fallback.patch | 24 ++- .../0001-grep-support-for-x-match-whole-line.patch | 69 ------- ...x-atomic-replace-of-history-file-hush-fix.patch | 94 --------- ...it-add-support-for-history-saving-on-exit.patch | 215 -------------------- ...move-SAVE_HISTORY-bit-hist_file-can-be-us.patch | 92 --------- debian/patches/init-console.patch | 2 +- .../ps-accept-and-ignore-missing-options.patch | 17 +- debian/patches/series | 7 +- debian/patches/shell-ash-export-HOME.patch | 2 +- 13 files changed, 48 insertions(+), 603 deletions(-) delete mode 100644 debian/patches/0001-vi-implement-p-go-to-previous-file.patch delete mode 100644 debian/patches/03tar.patch delete mode 100644 debian/patches/git-backports/0001-grep-support-for-x-match-whole-line.patch delete mode 100644 debian/patches/git-backports/0001-lineedit-fix-atomic-replace-of-history-file-hush-fix.patch delete mode 100644 debian/patches/git-backports/0002-lineedit-add-support-for-history-saving-on-exit.patch delete mode 100644 debian/patches/git-backports/0003-lineedit-remove-SAVE_HISTORY-bit-hist_file-can-be-us.patch diff --git a/build.sh b/build.sh index 29bbc7a..c18fd2a 100755 --- a/build.sh +++ b/build.sh @@ -2,7 +2,7 @@ # Helper script to build busybox-power # Please run me from within Scratchbox -BBVERSION="1.19.4" +BBVERSION="1.20.0" MAKETHREADS="8" SCRIPTDIR=`dirname $(readlink -f $0)` BUILDDIR="$SCRIPTDIR/../busybox-power-build" diff --git a/debian/config/config.busybox b/debian/config/config.busybox index 3a931fc..164fd38 100644 --- a/debian/config/config.busybox +++ b/debian/config/config.busybox @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.19.0 -# Sat Aug 20 15:11:20 2011 +# Busybox version: 1.20.0 +# Sun Apr 22 18:33:52 2012 # CONFIG_HAVE_DOT_CONFIG=y @@ -62,7 +62,10 @@ CONFIG_FEATURE_HAVE_RPC=y # CONFIG_FEATURE_SHARED_BUSYBOX is not set CONFIG_LFS=y CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" # # Debugging Options @@ -92,7 +95,7 @@ CONFIG_PREFIX="./_install" # CONFIG_FEATURE_SYSTEMD is not set CONFIG_FEATURE_RTMINMAX=y CONFIG_PASSWORD_MINLEN=6 -CONFIG_MD5_SIZE_VS_SPEED=0 +CONFIG_MD5_SMALL=1 CONFIG_FEATURE_FAST_TOP=y # CONFIG_FEATURE_ETC_NETWORKS is not set CONFIG_FEATURE_USE_TERMIOS=y @@ -141,6 +144,7 @@ CONFIG_FEATURE_CPIO_P=y CONFIG_GUNZIP=y CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y +CONFIG_GZIP_FAST=2 CONFIG_LZOP=y # CONFIG_LZOP_COMPR_HIGH is not set CONFIG_RPM2CPIO=y @@ -153,7 +157,6 @@ CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y CONFIG_FEATURE_TAR_LONG_OPTIONS=y -CONFIG_FEATURE_TAR_TOUCH=y CONFIG_FEATURE_TAR_TO_COMMAND=y CONFIG_FEATURE_TAR_UNAME_GNAME=y CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y @@ -175,11 +178,13 @@ CONFIG_DATE=y CONFIG_FEATURE_DATE_ISOFMT=y # CONFIG_FEATURE_DATE_NANO is not set CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_HOSTID=y CONFIG_ID=y CONFIG_GROUPS=y CONFIG_TEST=y CONFIG_FEATURE_TEST_64=y CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_SUSV3=y CONFIG_TR=y CONFIG_FEATURE_TR_CLASSES=y CONFIG_FEATURE_TR_EQUIV=y @@ -222,7 +227,6 @@ CONFIG_FOLD=y CONFIG_FSYNC=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y -CONFIG_HOSTID=y CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y CONFIG_LN=y @@ -463,6 +467,7 @@ CONFIG_DELGROUP=y CONFIG_FEATURE_DEL_USER_FROM_GROUP=y CONFIG_GETTY=y CONFIG_LOGIN=y +# CONFIG_LOGIN_SESSION_AS_CHILD is not set # CONFIG_PAM is not set CONFIG_LOGIN_SCRIPTS=y CONFIG_FEATURE_NOLOGIN=y @@ -471,6 +476,7 @@ CONFIG_PASSWD=y CONFIG_FEATURE_PASSWD_WEAK_CHECK=y CONFIG_CRYPTPW=y CONFIG_CHPASSWD=y +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" CONFIG_SU=y CONFIG_FEATURE_SU_SYSLOG=y CONFIG_FEATURE_SU_CHECKS_SHELLS=y @@ -520,6 +526,12 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # Linux System Utilities # CONFIG_BLOCKDEV=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y CONFIG_REV=y CONFIG_ACPID=y CONFIG_FEATURE_ACPID_COMPAT=y @@ -563,12 +575,6 @@ CONFIG_IPCS=y CONFIG_LOSETUP=y CONFIG_LSPCI=y CONFIG_LSUSB=y -CONFIG_MDEV=y -CONFIG_FEATURE_MDEV_CONF=y -CONFIG_FEATURE_MDEV_RENAME=y -CONFIG_FEATURE_MDEV_RENAME_REGEXP=y -CONFIG_FEATURE_MDEV_EXEC=y -CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y CONFIG_MKSWAP=y CONFIG_FEATURE_MKSWAP_UUID=y CONFIG_MORE=y @@ -837,6 +843,7 @@ CONFIG_FEATURE_TRACEROUTE_VERBOSE=y # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set CONFIG_TUNCTL=y CONFIG_FEATURE_TUNCTL_UG=y +# CONFIG_UDHCPC6 is not set CONFIG_UDHCPD=y CONFIG_DHCPRELAY=y CONFIG_DUMPLEASES=y @@ -883,6 +890,7 @@ CONFIG_SENDMAIL=y # Process Utilities # CONFIG_IOSTAT=y +# CONFIG_LSOF is not set CONFIG_MPSTAT=y CONFIG_NMETER=y CONFIG_PMAP=y @@ -906,6 +914,7 @@ CONFIG_PS=y CONFIG_FEATURE_PS_WIDE=y CONFIG_FEATURE_PS_TIME=y CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +CONFIG_FEATURE_PS_LONG=y # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set CONFIG_RENICE=y CONFIG_BB_SYSCTL=y diff --git a/debian/patches/0001-vi-implement-p-go-to-previous-file.patch b/debian/patches/0001-vi-implement-p-go-to-previous-file.patch deleted file mode 100644 index ed3bc33..0000000 --- a/debian/patches/0001-vi-implement-p-go-to-previous-file.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 0221708f0f7147c84c8f7288e9c510241d296a4c Mon Sep 17 00:00:00 2001 -From: Dennis Groenen -Date: Sun, 22 Jan 2012 20:15:21 +0100 -Subject: [PATCH] vi: implement :p (go to previous file) - ---- - editors/vi.c | 8 ++++++++ - 1 files changed, 8 insertions(+), 0 deletions(-) - -diff --git a/editors/vi.c b/editors/vi.c -index 4a2d5d4..ddca9d6 100644 ---- a/editors/vi.c -+++ b/editors/vi.c -@@ -1111,6 +1111,7 @@ static void colon(char *buf) - Hit_Return(); - } else if (strncmp(cmd, "quit", i) == 0 // quit - || strncmp(cmd, "next", i) == 0 // edit next file -+ || strncmp(cmd, "prev", i) == 0 // edit previous file - ) { - int n; - if (useforce) { -@@ -1137,6 +1138,13 @@ static void colon(char *buf) - status_line_bold("No more files to edit"); - goto ret; - } -+ // are there previous files to edit -+ if (*cmd == 'p' && optind <= 1) { -+ status_line_bold("No previous files to edit"); -+ goto ret; -+ } else if (*cmd == 'p' && optind > 1) { -+ optind = optind - 2; -+ } - editing = 0; - } else if (strncmp(cmd, "read", i) == 0) { // read file into text[] - fn = args; --- -1.7.8.4 - diff --git a/debian/patches/03tar.patch b/debian/patches/03tar.patch deleted file mode 100644 index 619c6ef..0000000 --- a/debian/patches/03tar.patch +++ /dev/null @@ -1,58 +0,0 @@ -Allows compatibility with tar -m / --touch command line option -By Yauheni Kaliuta - -Ported to BusyBox 1.19 by Dennis Groenen - 2011-08-19 ---- - ---- a/archival/Config.src -+++ b/archival/Config.src -@@ -280,6 +280,13 @@ config FEATURE_TAR_LONG_OPTIONS - help - Enable use of long options, increases size by about 400 Bytes - -+config FEATURE_TAR_TOUCH -+ bool "Enable ignoring touch option" -+ default n -+ depends on TAR -+ help -+ Allows compatibility with -m / --touch command line option. -+ - config FEATURE_TAR_TO_COMMAND - bool "Support for writing to an external program" - default y ---- a/archival/tar.c -+++ b/archival/tar.c -@@ -819,6 +819,7 @@ enum { - IF_FEATURE_TAR_TO_COMMAND(OPTBIT_2COMMAND ,) - OPTBIT_NUMERIC_OWNER, - OPTBIT_NOPRESERVE_PERM, -+ IF_FEATURE_TAR_TOUCH( OPTBIT_TOUCH ,) - OPTBIT_OVERWRITE, - #endif - OPT_TEST = 1 << 0, // t -@@ -842,6 +843,7 @@ enum { - OPT_2COMMAND = IF_FEATURE_TAR_TO_COMMAND( (1 << OPTBIT_2COMMAND )) + 0, // to-command - OPT_NUMERIC_OWNER = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_NUMERIC_OWNER )) + 0, // numeric-owner - OPT_NOPRESERVE_PERM = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_NOPRESERVE_PERM)) + 0, // no-same-permissions -+ OPT_TOUCH = IF_FEATURE_TAR_TOUCH( (1 << OPTBIT_TOUCH )) + 0, // m - OPT_OVERWRITE = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_OVERWRITE )) + 0, // overwrite - }; - #if ENABLE_FEATURE_TAR_LONG_OPTIONS -@@ -895,6 +897,9 @@ static const char tar_longopts[] ALIGN1 - # if ENABLE_FEATURE_TAR_FROM - "exclude\0" Required_argument "\xff" - # endif -+# if ENABLE_FEATURE_TAR_TOUCH -+ "touch\0" No_argument "m" -+# endif - ; - #endif - -@@ -970,6 +975,7 @@ int tar_main(int argc UNUSED_PARAM, char - IF_FEATURE_SEAMLESS_GZ( "z" ) - IF_FEATURE_SEAMLESS_Z( "Z" ) - IF_FEATURE_TAR_NOPRESERVE_TIME("m") -+ IF_FEATURE_TAR_TOUCH( "m" ) - , &base_dir // -C dir - , &tar_filename // -f filename - IF_FEATURE_TAR_FROM(, &(tar_handle->accept)) // T diff --git a/debian/patches/applets-fallback.patch b/debian/patches/applets-fallback.patch index 03ef3be..39fb396 100644 --- a/debian/patches/applets-fallback.patch +++ b/debian/patches/applets-fallback.patch @@ -25,13 +25,11 @@ repeat: #ifdef SYSV do { -@@ -7465,24 +7450,21 @@ shellexec(char **argv, const char *path, +@@ -7471,30 +7456,21 @@ shellexec(char **argv, const char *path, int e; char **envp; int exerrno; --#if ENABLE_FEATURE_SH_STANDALONE -- int applet_no = -1; --#endif +- int applet_no = -1; /* used only by FEATURE_SH_STANDALONE */ clearredir(/*drop:*/ 1); envp = listvars(VEXPORT, VUNSET, /*end:*/ NULL); @@ -41,10 +39,18 @@ -#endif - ) { - tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) argv[0], argv, envp); +- if (applet_no >= 0) { +- /* We tried execing ourself, but it didn't work. +- * Maybe /proc/self/exe doesn't exist? +- * Try $PATH search. +- */ +- goto try_PATH; +- } + if (strchr(argv[0], '/') != NULL) { + tryexec(argv[0], argv, envp); e = errno; } else { +- try_PATH: +#if ENABLE_FEATURE_SH_STANDALONE + bb_execv_applet(argv[0], argv, envp); +#endif @@ -151,8 +157,8 @@ /* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin, * but I want to save a few bytes here. Check libbb.h before changing! */ --- a/include/libbb.h -+++ b/include/libbb.h -@@ -896,13 +896,11 @@ int exists_execable(const char *filename ++++ b/include/libbb.h 2012-04-22 19:29:26.095992610 +0200 +@@ -903,13 +903,11 @@ int exists_execable(const char *filename * but it may exec busybox and call applet instead of searching PATH. */ #if ENABLE_FEATURE_PREFER_APPLETS @@ -171,7 +177,7 @@ #else #define BB_EXECVP(prog,cmd) execvp(prog,cmd) #define BB_EXECLP(prog,cmd,...) execlp(prog,cmd,__VA_ARGS__) -@@ -1683,6 +1681,7 @@ extern const char bb_path_wtmp_file[]; +@@ -1725,6 +1723,7 @@ extern const char bb_path_wtmp_file[]; #define bb_dev_null "/dev/null" extern const char bb_busybox_exec_path[]; @@ -181,7 +187,7 @@ extern const char bb_PATH_root_path[]; /* "PATH=/sbin:/usr/sbin:/bin:/usr/bin" */ --- a/Config.in +++ b/Config.in -@@ -431,13 +431,10 @@ config FEATURE_PREFER_APPLETS +@@ -432,13 +432,10 @@ config FEATURE_PREFER_APPLETS config BUSYBOX_EXEC_PATH string "Path to BusyBox executable" @@ -199,7 +205,7 @@ --- a/coreutils/chroot.c +++ b/coreutils/chroot.c -@@ -41,5 +41,7 @@ int chroot_main(int argc UNUSED_PARAM, c +@@ -40,5 +40,7 @@ int chroot_main(int argc UNUSED_PARAM, c /*argv[2] = NULL; - already is */ } diff --git a/debian/patches/git-backports/0001-grep-support-for-x-match-whole-line.patch b/debian/patches/git-backports/0001-grep-support-for-x-match-whole-line.patch deleted file mode 100644 index a381e22..0000000 --- a/debian/patches/git-backports/0001-grep-support-for-x-match-whole-line.patch +++ /dev/null @@ -1,69 +0,0 @@ -From cd09e81520b7917adebcffd7c361671f913325eb Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Thu, 23 Feb 2012 14:20:22 +0000 -Subject: [PATCH] grep: support for -x, match whole line - -Specified in POSIX. -http://pubs.opengroup.org/onlinepubs/009604499/utilities/grep.html - -Signed-off-by: Natanael Copa -Signed-off-by: Denys Vlasenko ---- - findutils/grep.c | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/findutils/grep.c b/findutils/grep.c -index 5f42242..f14d6e6 100644 ---- a/findutils/grep.c -+++ b/findutils/grep.c -@@ -85,6 +85,7 @@ - //usage: "\n -r Recurse" - //usage: "\n -i Ignore case" - //usage: "\n -w Match whole words only" -+//usage: "\n -x Match whole lines only" - //usage: "\n -F PATTERN is a literal (not regexp)" - //usage: IF_FEATURE_GREP_EGREP_ALIAS( - //usage: "\n -E PATTERN is an extended regexp" -@@ -113,7 +114,7 @@ - //usage:#define fgrep_full_usage "" - - #define OPTSTR_GREP \ -- "lnqvscFiHhe:f:Lorm:w" \ -+ "lnqvscFiHhe:f:Lorm:wx" \ - IF_FEATURE_GREP_CONTEXT("A:B:C:") \ - IF_FEATURE_GREP_EGREP_ALIAS("E") \ - IF_EXTRA_COMPAT("z") \ -@@ -138,6 +139,7 @@ enum { - OPTBIT_r, /* recurse dirs */ - OPTBIT_m, /* -m MAX_MATCHES */ - OPTBIT_w, /* -w whole word match */ -+ OPTBIT_x, /* -x whole line match */ - IF_FEATURE_GREP_CONTEXT( OPTBIT_A ,) /* -A NUM: after-match context */ - IF_FEATURE_GREP_CONTEXT( OPTBIT_B ,) /* -B NUM: before-match context */ - IF_FEATURE_GREP_CONTEXT( OPTBIT_C ,) /* -C NUM: -A and -B combined */ -@@ -160,6 +162,7 @@ enum { - OPT_r = 1 << OPTBIT_r, - OPT_m = 1 << OPTBIT_m, - OPT_w = 1 << OPTBIT_w, -+ OPT_x = 1 << OPTBIT_x, - OPT_A = IF_FEATURE_GREP_CONTEXT( (1 << OPTBIT_A)) + 0, - OPT_B = IF_FEATURE_GREP_CONTEXT( (1 << OPTBIT_B)) + 0, - OPT_C = IF_FEATURE_GREP_CONTEXT( (1 << OPTBIT_C)) + 0, -@@ -370,9 +373,12 @@ static int grep_file(FILE *file) - &gl->matched_range) >= 0 - #endif - ) { -- if (!(option_mask32 & OPT_w)) -+ if (option_mask32 & OPT_x) { -+ found = (gl->matched_range.rm_so == 0 -+ && line[gl->matched_range.rm_eo] == '\0'); -+ } else if (!(option_mask32 & OPT_w)) { - found = 1; -- else { -+ } else { - char c = ' '; - if (gl->matched_range.rm_so) - c = line[gl->matched_range.rm_so - 1]; --- -1.7.9.3 - diff --git a/debian/patches/git-backports/0001-lineedit-fix-atomic-replace-of-history-file-hush-fix.patch b/debian/patches/git-backports/0001-lineedit-fix-atomic-replace-of-history-file-hush-fix.patch deleted file mode 100644 index 5fb4eca..0000000 --- a/debian/patches/git-backports/0001-lineedit-fix-atomic-replace-of-history-file-hush-fix.patch +++ /dev/null @@ -1,94 +0,0 @@ -The following commit has been modified to fit BusyBox 1.19.2 instead of BusyBox git ---Dennis Groenen - 2011-09-10 - -From 4840ae8a06298e987374fa3cc6d7e4969fd19344 Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Sun, 4 Sep 2011 15:28:03 +0200 -Subject: [PATCH 1/3] lineedit: fix atomic replace of history file; hush: fix - $HISTFILE handling - -Signed-off-by: Denys Vlasenko ---- - ---- a/libbb/lineedit.c -+++ b/libbb/lineedit.c -@@ -1475,7 +1475,7 @@ static void remember_in_history(char *st - /* i <= state->max_history */ - state->cur_history = i; - state->cnt_history = i; --# if MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY -+# if ENABLE_FEATURE_EDITING_SAVEHISTORY - if ((state->flags & SAVE_HISTORY) && state->hist_file) - save_history(str); - # endif ---- a/shell/ash.c -+++ b/shell/ash.c -@@ -13194,7 +13194,7 @@ int ash_main(int argc UNUSED_PARAM, char - } - - if (sflag || minusc == NULL) { --#if defined MAX_HISTORY && MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY -+#if MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY - if (iflag) { - const char *hp = lookupvar("HISTFILE"); - if (hp) ---- a/shell/hush.c -+++ b/shell/hush.c -@@ -7816,27 +7816,7 @@ int hush_main(int argc, char **argv) - */ - - #if ENABLE_FEATURE_EDITING -- G.line_input_state = new_line_input_t(FOR_SHELL); --# if MAX_HISTORY > 0 && ENABLE_HUSH_SAVEHISTORY -- { -- const char *hp = get_local_var_value("HISTFILE"); -- if (!hp) { -- hp = get_local_var_value("HOME"); -- if (hp) -- hp = concat_path_file(hp, ".hush_history"); -- } else { -- hp = xstrdup(hp); -- } -- if (hp) { -- G.line_input_state->hist_file = hp; -- //set_local_var(xasprintf("HISTFILE=%s", ...)); -- } --# if ENABLE_FEATURE_SH_HISTFILESIZE -- hp = get_local_var_value("HISTFILESIZE"); -- G.line_input_state->max_history = size_from_HISTFILESIZE(hp); --# endif -- } --# endif -+ G.line_input_state = new_line_input_t(FOR_SHELL & ~SAVE_HISTORY); - #endif - - /* Initialize some more globals to non-zero values */ -@@ -8108,6 +8088,28 @@ int hush_main(int argc, char **argv) - /* -1 is special - makes xfuncs longjmp, not exit - * (we reset die_sleep = 0 whereever we [v]fork) */ - enable_restore_tty_pgrp_on_exit(); /* sets die_sleep = -1 */ -+ -+# if ENABLE_HUSH_SAVEHISTORY && MAX_HISTORY > 0 -+ { -+ const char *hp = get_local_var_value("HISTFILE"); -+ if (!hp) { -+ hp = get_local_var_value("HOME"); -+ if (hp) -+ hp = concat_path_file(hp, ".hush_history"); -+ } else { -+ hp = xstrdup(hp); -+ } -+ if (hp) { -+ G.line_input_state->hist_file = hp; -+ G.line_input_state->flags |= SAVE_HISTORY; -+ //set_local_var(xasprintf("HISTFILE=%s", ...)); -+ } -+# if ENABLE_FEATURE_SH_HISTFILESIZE -+ hp = get_local_var_value("HISTFILESIZE"); -+ G.line_input_state->max_history = size_from_HISTFILESIZE(hp); -+# endif -+ } -+# endif - } else { - install_special_sighandlers(); - } diff --git a/debian/patches/git-backports/0002-lineedit-add-support-for-history-saving-on-exit.patch b/debian/patches/git-backports/0002-lineedit-add-support-for-history-saving-on-exit.patch deleted file mode 100644 index 3cc7801..0000000 --- a/debian/patches/git-backports/0002-lineedit-add-support-for-history-saving-on-exit.patch +++ /dev/null @@ -1,215 +0,0 @@ -From bede215cf105377a1127532d2d710924cb58cc39 Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Sun, 4 Sep 2011 16:12:33 +0200 -Subject: [PATCH 2/3] lineedit: add support for history saving on exit - -Based on the patch by Dennis Groenen - -Signed-off-by: Denys Vlasenko ---- - include/libbb.h | 9 +++++++ - libbb/Config.src | 7 +++++ - libbb/lineedit.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++---- - shell/ash.c | 4 +++ - shell/hush.c | 4 +++ - 5 files changed, 86 insertions(+), 6 deletions(-) - -diff --git a/include/libbb.h b/include/libbb.h -index 63d0419..91343a9 100644 ---- a/include/libbb.h -+++ b/include/libbb.h -@@ -1421,6 +1421,12 @@ typedef struct line_input_t { - int cur_history; - int max_history; /* must never be <= 0 */ - # if ENABLE_FEATURE_EDITING_SAVEHISTORY -+ /* meaning of this field depends on FEATURE_EDITING_SAVE_ON_EXIT: -+ * if !FEATURE_EDITING_SAVE_ON_EXIT: "how many lines are -+ * in on-disk history" -+ * if FEATURE_EDITING_SAVE_ON_EXIT: "how many in-memory lines are -+ * also in on-disk history (and thus need to be skipped on save)" -+ */ - unsigned cnt_history_in_file; - const char *hist_file; - # endif -@@ -1446,6 +1452,9 @@ line_input_t *new_line_input_t(int flags) FAST_FUNC; - * >0 length of input string, including terminating '\n' - */ - int read_line_input(line_input_t *st, const char *prompt, char *command, int maxsize, int timeout) FAST_FUNC; -+# if ENABLE_FEATURE_EDITING_SAVE_ON_EXIT -+void save_history(line_input_t *st); -+# endif - #else - #define MAX_HISTORY 0 - int read_line_input(const char* prompt, char* command, int maxsize) FAST_FUNC; -diff --git a/libbb/Config.src b/libbb/Config.src -index aa44236..f6f88b9 100644 ---- a/libbb/Config.src -+++ b/libbb/Config.src -@@ -94,6 +94,13 @@ config FEATURE_EDITING_SAVEHISTORY - help - Enable history saving in shells. - -+config FEATURE_EDITING_SAVE_ON_EXIT -+ bool "Save history on shell exit, not after every command" -+ default n -+ depends on FEATURE_EDITING_SAVEHISTORY -+ help -+ Save history on shell exit, not after every command. -+ - config FEATURE_REVERSE_SEARCH - bool "Reverse history search" - default y -diff --git a/libbb/lineedit.c b/libbb/lineedit.c -index 5d13904..0786f9a 100644 ---- a/libbb/lineedit.c -+++ b/libbb/lineedit.c -@@ -1351,7 +1351,9 @@ static void load_history(line_input_t *st_parm) - - /* fill temp_h[], retaining only last MAX_HISTORY lines */ - memset(temp_h, 0, sizeof(temp_h)); -- st_parm->cnt_history_in_file = idx = 0; -+ idx = 0; -+ if (!ENABLE_FEATURE_EDITING_SAVE_ON_EXIT) -+ st_parm->cnt_history_in_file = 0; - while ((line = xmalloc_fgetline(fp)) != NULL) { - if (line[0] == '\0') { - free(line); -@@ -1359,7 +1361,8 @@ static void load_history(line_input_t *st_parm) - } - free(temp_h[idx]); - temp_h[idx] = line; -- st_parm->cnt_history_in_file++; -+ if (!ENABLE_FEATURE_EDITING_SAVE_ON_EXIT) -+ st_parm->cnt_history_in_file++; - idx++; - if (idx == st_parm->max_history) - idx = 0; -@@ -1389,15 +1392,66 @@ static void load_history(line_input_t *st_parm) - st_parm->history[i++] = line; - } - st_parm->cnt_history = i; -+ if (ENABLE_FEATURE_EDITING_SAVE_ON_EXIT) -+ st_parm->cnt_history_in_file = i; - } - } - --/* state->flags is already checked to be nonzero */ -+# if ENABLE_FEATURE_EDITING_SAVE_ON_EXIT -+void save_history(line_input_t *st) -+{ -+ FILE *fp; -+ -+ if (!(st->flags & SAVE_HISTORY)) -+ return; -+ if (!st->hist_file) -+ return; -+ if (st->cnt_history <= st->cnt_history_in_file) -+ return; -+ -+ fp = fopen(st->hist_file, "a"); -+ if (fp) { -+ int i, fd; -+ char *new_name; -+ line_input_t *st_temp; -+ -+ for (i = st->cnt_history_in_file; i < st->cnt_history; i++) -+ fprintf(fp, "%s\n", st->history[i]); -+ fclose(fp); -+ -+ /* we may have concurrently written entries from others. -+ * load them */ -+ st_temp = new_line_input_t(st->flags); -+ st_temp->hist_file = st->hist_file; -+ st_temp->max_history = st->max_history; -+ load_history(st_temp); -+ -+ /* write out temp file and replace hist_file atomically */ -+ new_name = xasprintf("%s.%u.new", st->hist_file, (int) getpid()); -+ fd = open(new_name, O_WRONLY | O_CREAT | O_TRUNC, 0600); -+ if (fd >= 0) { -+ fp = xfdopen_for_write(fd); -+ for (i = 0; i < st_temp->cnt_history; i++) -+ fprintf(fp, "%s\n", st_temp->history[i]); -+ fclose(fp); -+ if (rename(new_name, st->hist_file) == 0) -+ st->cnt_history_in_file = st_temp->cnt_history; -+ } -+ free(new_name); -+ free_line_input_t(st_temp); -+ } -+} -+# else - static void save_history(char *str) - { - int fd; - int len, len2; - -+ if (!(state->flags & SAVE_HISTORY)) -+ return; -+ if (!state->hist_file) -+ return; -+ - fd = open(state->hist_file, O_WRONLY | O_CREAT | O_APPEND, 0600); - if (fd < 0) - return; -@@ -1441,6 +1495,7 @@ static void save_history(char *str) - free_line_input_t(st_temp); - } - } -+# endif - # else - # define load_history(a) ((void)0) - # define save_history(a) ((void)0) -@@ -1469,15 +1524,16 @@ static void remember_in_history(char *str) - for (i = 0; i < state->max_history-1; i++) - state->history[i] = state->history[i+1]; - /* i == state->max_history-1 */ -+ if (ENABLE_FEATURE_EDITING_SAVE_ON_EXIT && state->cnt_history_in_file) -+ state->cnt_history_in_file--; - } - /* i <= state->max_history-1 */ - state->history[i++] = xstrdup(str); - /* i <= state->max_history */ - state->cur_history = i; - state->cnt_history = i; --# if ENABLE_FEATURE_EDITING_SAVEHISTORY -- if ((state->flags & SAVE_HISTORY) && state->hist_file) -- save_history(str); -+# if ENABLE_FEATURE_EDITING_SAVEHISTORY && !ENABLE_FEATURE_EDITING_SAVE_ON_EXIT -+ save_history(str); - # endif - IF_FEATURE_EDITING_FANCY_PROMPT(num_ok_lines++;) - } -diff --git a/shell/ash.c b/shell/ash.c -index bf376bd..14472cb 100644 ---- a/shell/ash.c -+++ b/shell/ash.c -@@ -12888,6 +12888,10 @@ exitshell(void) - char *p; - int status; - -+#if ENABLE_FEATURE_EDITING_SAVE_ON_EXIT -+ save_history(line_input_state); -+#endif -+ - status = exitstatus; - TRACE(("pid %d, exitshell(%d)\n", getpid(), status)); - if (setjmp(loc.loc)) { -diff --git a/shell/hush.c b/shell/hush.c -index 42143fd..a9e2dd3 100644 ---- a/shell/hush.c -+++ b/shell/hush.c -@@ -1541,6 +1541,10 @@ static sighandler_t pick_sighandler(unsigned sig) - static void hush_exit(int exitcode) NORETURN; - static void hush_exit(int exitcode) - { -+#if ENABLE_FEATURE_EDITING_SAVE_ON_EXIT -+ save_history(G.line_input_state); -+#endif -+ - fflush_all(); - if (G.exiting <= 0 && G.traps && G.traps[0] && G.traps[0][0]) { - char *argv[3]; --- -1.7.6.1 - diff --git a/debian/patches/git-backports/0003-lineedit-remove-SAVE_HISTORY-bit-hist_file-can-be-us.patch b/debian/patches/git-backports/0003-lineedit-remove-SAVE_HISTORY-bit-hist_file-can-be-us.patch deleted file mode 100644 index 9b6b624..0000000 --- a/debian/patches/git-backports/0003-lineedit-remove-SAVE_HISTORY-bit-hist_file-can-be-us.patch +++ /dev/null @@ -1,92 +0,0 @@ -From e45af7ad17c3f0ecaec1d761aa89cb4fd83afbc2 Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Sun, 4 Sep 2011 16:15:24 +0200 -Subject: [PATCH 3/3] lineedit: remove SAVE_HISTORY bit, ->hist_file can be - used as indicator - -Signed-off-by: Denys Vlasenko ---- - include/libbb.h | 13 ++++++------- - libbb/lineedit.c | 6 +----- - shell/hush.c | 3 +-- - 3 files changed, 8 insertions(+), 14 deletions(-) - -diff --git a/include/libbb.h b/include/libbb.h -index 91343a9..1ca4489 100644 ---- a/include/libbb.h -+++ b/include/libbb.h -@@ -1434,13 +1434,12 @@ typedef struct line_input_t { - # endif - } line_input_t; - enum { -- DO_HISTORY = 1 * (MAX_HISTORY > 0), -- SAVE_HISTORY = 2 * (MAX_HISTORY > 0) * ENABLE_FEATURE_EDITING_SAVEHISTORY, -- TAB_COMPLETION = 4 * ENABLE_FEATURE_TAB_COMPLETION, -- USERNAME_COMPLETION = 8 * ENABLE_FEATURE_USERNAME_COMPLETION, -- VI_MODE = 0x10 * ENABLE_FEATURE_EDITING_VI, -- WITH_PATH_LOOKUP = 0x20, -- FOR_SHELL = DO_HISTORY | SAVE_HISTORY | TAB_COMPLETION | USERNAME_COMPLETION, -+ DO_HISTORY = 1 * (MAX_HISTORY > 0), -+ TAB_COMPLETION = 2 * ENABLE_FEATURE_TAB_COMPLETION, -+ USERNAME_COMPLETION = 4 * ENABLE_FEATURE_USERNAME_COMPLETION, -+ VI_MODE = 8 * ENABLE_FEATURE_EDITING_VI, -+ WITH_PATH_LOOKUP = 0x10, -+ FOR_SHELL = DO_HISTORY | TAB_COMPLETION | USERNAME_COMPLETION, - }; - line_input_t *new_line_input_t(int flags) FAST_FUNC; - /* So far static: void free_line_input_t(line_input_t *n) FAST_FUNC; */ -diff --git a/libbb/lineedit.c b/libbb/lineedit.c -index 0786f9a..603bbfc 100644 ---- a/libbb/lineedit.c -+++ b/libbb/lineedit.c -@@ -1402,8 +1402,6 @@ void save_history(line_input_t *st) - { - FILE *fp; - -- if (!(st->flags & SAVE_HISTORY)) -- return; - if (!st->hist_file) - return; - if (st->cnt_history <= st->cnt_history_in_file) -@@ -1447,8 +1445,6 @@ static void save_history(char *str) - int fd; - int len, len2; - -- if (!(state->flags & SAVE_HISTORY)) -- return; - if (!state->hist_file) - return; - -@@ -2188,7 +2184,7 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman - state = st ? st : (line_input_t*) &const_int_0; - #if MAX_HISTORY > 0 - # if ENABLE_FEATURE_EDITING_SAVEHISTORY -- if ((state->flags & SAVE_HISTORY) && state->hist_file) -+ if (state->hist_file) - if (state->cnt_history == 0) - load_history(state); - # endif -diff --git a/shell/hush.c b/shell/hush.c -index a9e2dd3..7a34f59 100644 ---- a/shell/hush.c -+++ b/shell/hush.c -@@ -7820,7 +7820,7 @@ int hush_main(int argc, char **argv) - */ - - #if ENABLE_FEATURE_EDITING -- G.line_input_state = new_line_input_t(FOR_SHELL & ~SAVE_HISTORY); -+ G.line_input_state = new_line_input_t(FOR_SHELL); - #endif - - /* Initialize some more globals to non-zero values */ -@@ -8105,7 +8105,6 @@ int hush_main(int argc, char **argv) - } - if (hp) { - G.line_input_state->hist_file = hp; -- G.line_input_state->flags |= SAVE_HISTORY; - //set_local_var(xasprintf("HISTFILE=%s", ...)); - } - # if ENABLE_FEATURE_SH_HISTFILESIZE --- -1.7.6.1 - diff --git a/debian/patches/init-console.patch b/debian/patches/init-console.patch index 46ca1dc..13a2d22 100644 --- a/debian/patches/init-console.patch +++ b/debian/patches/init-console.patch @@ -1,6 +1,6 @@ --- a/init/init.c +++ b/init/init.c -@@ -563,6 +563,8 @@ static void run_actions(int action_type) +@@ -576,6 +576,8 @@ static void run_actions(int action_type) for (a = init_action_list; a; a = a->next) { if (!(a->action_type & action_type)) continue; diff --git a/debian/patches/ps-accept-and-ignore-missing-options.patch b/debian/patches/ps-accept-and-ignore-missing-options.patch index 61c84f3..7869408 100644 --- a/debian/patches/ps-accept-and-ignore-missing-options.patch +++ b/debian/patches/ps-accept-and-ignore-missing-options.patch @@ -6,21 +6,22 @@ By Dennis Groenen - 2011-08-19 --- a/procps/ps.c +++ b/procps/ps.c -@@ -633,7 +633,7 @@ int ps_main(int argc UNUSED_PARAM, char - /* -w is a bit complicated */ +@@ -645,7 +645,7 @@ int ps_main(int argc UNUSED_PARAM, char int w_count = 0; opt_complementary = "-:ww"; -- opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")"w", &w_count); -+ opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")"w""ANdeagrxCGUgpstuUojOlFfsvuXVmMLScnfyH", &w_count, NULL); + opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")IF_FEATURE_PS_LONG("l") +- "w", &w_count); ++ "w""ANdeagrxCGUgpstuUojOFfsvuXVmMLScnfyH", &w_count, NULL); /* if w is given once, GNU ps sets the width to 132, * if w is given more than once, it is "unlimited" */ -@@ -648,7 +648,7 @@ int ps_main(int argc UNUSED_PARAM, char +@@ -660,7 +660,8 @@ int ps_main(int argc UNUSED_PARAM, char # else /* -w is not supported, only -Z and/or -T */ opt_complementary = "-"; -- opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")); -+ opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")"ANdeagrxCGUgpstuUojOlFfsvuXVmMLScnfyHw", NULL); +- opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")IF_FEATURE_PS_LONG("l")); ++ opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")IF_FEATURE_PS_LONG("l") ++ "ANdeagrxCGUgpstuUojOFfsvuXVmMLScnfyHw", NULL); # endif - #endif + # if ENABLE_SELINUX diff --git a/debian/patches/series b/debian/patches/series index 989211e..a007471 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,12 +1,12 @@ #Updated patches from Debian Sid; these are also in Nokia's busybox sources #Source: http://ftp.de.debian.org/debian/pool/main/b/busybox/busybox_1.19.3-5.debian.tar.gz +# ported to BusyBox 1.20.0 shell-ash-export-HOME.patch applets-fallback.patch init-console.patch version.patch #Patches ported from Nokia's busybox sources -03tar.patch 05thumb.patch 06ls.patch busybox-zero-ifr.ifr_hwaddr.sa_data.patch @@ -19,15 +19,10 @@ ps-accept-and-ignore-missing-options.patch #New patches as per reported issues by users showkey-default-option.patch -0001-vi-implement-p-go-to-previous-file.patch #Hotfixes #Patched pulled from busybox git -git-backports/0001-lineedit-fix-atomic-replace-of-history-file-hush-fix.patch -git-backports/0002-lineedit-add-support-for-history-saving-on-exit.patch -git-backports/0003-lineedit-remove-SAVE_HISTORY-bit-hist_file-can-be-us.patch -git-backports/0001-grep-support-for-x-match-whole-line.patch #Miscellaneous 0001-lineedit-fix-history-saving-when-history-MAX_HISTORY.patch diff --git a/debian/patches/shell-ash-export-HOME.patch b/debian/patches/shell-ash-export-HOME.patch index c55c92c..6830708 100644 --- a/debian/patches/shell-ash-export-HOME.patch +++ b/debian/patches/shell-ash-export-HOME.patch @@ -1,6 +1,6 @@ --- a/shell/ash.c +++ b/shell/ash.c -@@ -1897,7 +1897,7 @@ static const struct { +@@ -1904,7 +1904,7 @@ static const struct { { VSTRFIXED|VTEXTFIXED|VUNSET, "MAIL" , changemail }, { VSTRFIXED|VTEXTFIXED|VUNSET, "MAILPATH" , changemail }, #endif -- 1.7.9.5