include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
-PKG_VERSION:=1.4.1
+PKG_VERSION:=1.4.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
http://distfiles.gentoo.org/distfiles/
-PKG_MD5SUM:=5728403bce309cdabcffa414e2e64052
+PKG_MD5SUM:=b4c61fb15642be9dde20e8493788c585
include $(INCLUDE_DIR)/package.mk
config BUSYBOX_CONFIG_READAHEAD
bool "readahead"
default n
+ depends on LFS
help
Preload the files listed on the command line into RAM cache so that
subsequent reads on these files will not block on disk I/O.
+++ /dev/null
-diff -ur busybox.old/libbb/xfuncs.c busybox.dev/libbb/xfuncs.c
---- busybox.old/libbb/xfuncs.c 2007-01-19 22:23:06.000000000 +0100
-+++ busybox.dev/libbb/xfuncs.c 2007-01-27 18:30:56.229172096 +0100
-@@ -339,8 +339,8 @@
- while (count) {
- unsigned char c = *cp++;
- /* put lowercase hex digits */
-- *p++ = 0x10 | bb_hexdigits_upcase[c >> 4];
-- *p++ = 0x10 | bb_hexdigits_upcase[c & 0xf];
-+ *p++ = 0x20 | bb_hexdigits_upcase[c >> 4];
-+ *p++ = 0x20 | bb_hexdigits_upcase[c & 0xf];
- count--;
- }
- return p;
+++ /dev/null
-diff -urN busybox-1.4.1/networking/wget.c busybox-1.4.1-wgetSEGV/networking/wget.c
---- busybox-1.4.1/networking/wget.c 2007-01-24 22:34:34.000000000 +0100
-+++ busybox-1.4.1-wgetSEGV/networking/wget.c 2007-02-11 17:21:18.000000000 +0100
-@@ -543,7 +543,9 @@
- p = strchr(h->host, '?'); if (!sp || (p && sp > p)) sp = p;
- p = strchr(h->host, '#'); if (!sp || (p && sp > p)) sp = p;
- if (!sp) {
-- h->path = "";
-+ /* must be writable because of bb_get_last_path_component() */
-+ static char nullstr[] = "";
-+ h->path = nullstr;
- } else if (*sp == '/') {
- *sp = '\0';
- h->path = sp + 1;
+++ /dev/null
-diff -urN busybox-1.4.1/networking/ip.c busybox-1.4.1-iproute/networking/ip.c
---- busybox-1.4.1/networking/ip.c 2007-01-24 22:34:34.000000000 +0100
-+++ busybox-1.4.1-iproute/networking/ip.c 2007-01-27 14:07:05.000000000 +0100
-@@ -33,8 +33,9 @@
- if (ENABLE_FEATURE_IP_LINK && matches(argv[1], "link") == 0) {
- ret = do_iplink(argc-2, argv+2);
- }
-- if (ENABLE_FEATURE_IP_TUNNEL &&
-- (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0)) {
-+ if (ENABLE_FEATURE_IP_TUNNEL
-+ && (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0)
-+ ) {
- ret = do_iptunnel(argc-2, argv+2);
- }
- if (ENABLE_FEATURE_IP_RULE && matches(argv[1], "rule") == 0) {
-diff -urN busybox-1.4.1/networking/libiproute/iproute.c busybox-1.4.1-iproute/networking/libiproute/iproute.c
---- busybox-1.4.1/networking/libiproute/iproute.c 2007-01-24 22:34:33.000000000 +0100
-+++ busybox-1.4.1-iproute/networking/libiproute/iproute.c 2007-01-27 14:07:05.000000000 +0100
-@@ -835,9 +835,11 @@
-
- int do_iproute(int argc, char **argv)
- {
-- static const char * const ip_route_commands[] =
-- { "add", "append", "change", "chg", "delete", "get",
-- "list", "show", "prepend", "replace", "test", "flush", 0 };
-+ static const char * const ip_route_commands[] = {
-+ /*0-3*/ "add", "append", "change", "chg",
-+ /*4-7*/ "delete", "get", "list", "show",
-+ /*8..*/ "prepend", "replace", "test", "flush", 0
-+ };
- int command_num = 6;
- unsigned int flags = 0;
- int cmd = RTM_NEWROUTE;
-@@ -848,7 +850,7 @@
- command_num = index_in_substr_array(ip_route_commands, *argv);
- }
- switch (command_num) {
-- case 0: /* add*/
-+ case 0: /* add */
- flags = NLM_F_CREATE|NLM_F_EXCL;
- break;
- case 1: /* append */
-@@ -859,21 +861,20 @@
- flags = NLM_F_REPLACE;
- break;
- case 4: /* delete */
-- case 5: /* del */
- cmd = RTM_DELROUTE;
- break;
-- case 6: /* get */
-+ case 5: /* get */
- return iproute_get(argc-1, argv+1);
-- case 7: /* list */
-- case 8: /* show */
-+ case 6: /* list */
-+ case 7: /* show */
- return iproute_list_or_flush(argc-1, argv+1, 0);
-- case 9: /* prepend */
-+ case 8: /* prepend */
- flags = NLM_F_CREATE;
-- case 10: /* replace */
-+ case 9: /* replace */
- flags = NLM_F_CREATE|NLM_F_REPLACE;
-- case 11: /* test */
-+ case 10: /* test */
- flags = NLM_F_EXCL;
-- case 12: /* flush */
-+ case 11: /* flush */
- return iproute_list_or_flush(argc-1, argv+1, 1);
- default:
- bb_error_msg_and_die("unknown command %s", *argv);
+++ /dev/null
---- busybox.old/archival/tar.c 2007/02/03 17:28:39 17740
-+++ busybox.dev/archival/tar.c 2007/02/04 21:30:35 17772
-@@ -761,7 +761,9 @@
- const char *tar_filename = "-";
- unsigned opt;
- int verboseFlag = 0;
-+#if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM
- llist_t *excludes = NULL;
-+#endif
-
- /* Initialise default values */
- tar_handle = init_handle();
-@@ -774,7 +776,9 @@
- "tt:vv:" // count -t,-v
- "?:" // bail out with usage instead of error return
- "X::T::" // cumulative lists
-+#if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM
- "\xff::" // cumulative lists for --exclude
-+#endif
- USE_FEATURE_TAR_CREATE("c:") "t:x:" // at least one of these is reqd
- USE_FEATURE_TAR_CREATE("c--tx:t--cx:x--ct") // mutually exclusive
- SKIP_FEATURE_TAR_CREATE("t--x:x--t"); // mutually exclusive
-@@ -789,14 +793,15 @@
- USE_FEATURE_TAR_FROM( "T:X:")
- USE_FEATURE_TAR_GZIP( "z" )
- USE_FEATURE_TAR_COMPRESS("Z" )
-- ,
-- &base_dir, // -C dir
-- &tar_filename, // -f filename
-- USE_FEATURE_TAR_FROM(&(tar_handle->accept),) // T
-- USE_FEATURE_TAR_FROM(&(tar_handle->reject),) // X
-- USE_FEATURE_TAR_FROM(&excludes ,) // --exclude
-- &verboseFlag, // combined count for -t and -v
-- &verboseFlag // combined count for -t and -v
-+ , &base_dir // -C dir
-+ , &tar_filename // -f filename
-+ USE_FEATURE_TAR_FROM(, &(tar_handle->accept)) // T
-+ USE_FEATURE_TAR_FROM(, &(tar_handle->reject)) // X
-+#if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM
-+ , &excludes // --exclude
-+#endif
-+ , &verboseFlag // combined count for -t and -v
-+ , &verboseFlag // combined count for -t and -v
- );
-
- if (verboseFlag) tar_handle->action_header = header_verbose_list;
-@@ -829,17 +834,19 @@
- if (opt & OPT_COMPRESS)
- get_header_ptr = get_header_tar_Z;
-
-- if (ENABLE_FEATURE_TAR_FROM) {
-- tar_handle->reject = append_file_list_to_list(tar_handle->reject);
-- /* Append excludes to reject */
-- while (excludes) {
-- llist_t *temp = excludes->link;
-- excludes->link = tar_handle->reject;
-- tar_handle->reject = excludes;
-- excludes = temp;
-- }
-- tar_handle->accept = append_file_list_to_list(tar_handle->accept);
-+#if ENABLE_FEATURE_TAR_FROM
-+ tar_handle->reject = append_file_list_to_list(tar_handle->reject);
-+#if ENABLE_FEATURE_TAR_LONG_OPTIONS
-+ /* Append excludes to reject */
-+ while (excludes) {
-+ llist_t *next = excludes->link;
-+ excludes->link = tar_handle->reject;
-+ tar_handle->reject = excludes;
-+ excludes = next;
- }
-+#endif
-+ tar_handle->accept = append_file_list_to_list(tar_handle->accept);
-+#endif
-
- /* Check if we are reading from stdin */
- if (argv[optind] && *argv[optind] == '-') {
-
+++ /dev/null
---- busybox-1.4.1/coreutils/stty.c.old 2007-03-13 12:59:49.000000000 +0100
-+++ busybox-1.4.1/coreutils/stty.c 2007-03-13 07:51:38.000000000 +0100
-@@ -568,10 +568,11 @@
- NULL
- };
- int i = index_in_str_array(params, name);
-- if (i) {
-- if (!(i == 4 || i == 5))
-- i |= 0x80;
-- }
-+ if (i < 0)
-+ return 0;
-+ if (!(i == 4 || i == 5))
-+ i |= 0x80;
-+
- return i;
- }
-
-@@ -907,6 +908,7 @@
- #define STTY_verbose_output (1<<2)
- #define STTY_recoverable_output (1<<3)
- #define STTY_noargs (1<<4)
-+int stty_main(int argc, char **argv);
- int stty_main(int argc, char **argv)
- {
- struct termios mode;