summaryrefslogtreecommitdiff
path: root/openembedded/packages/busybox
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2005-08-31 10:45:47 +0000
committerRichard Purdie <richard@openedhand.com>2005-08-31 10:45:47 +0000
commit4b46c1f6e891b1ddd5968536440b888661fade3e (patch)
treee0ba2c1f56f61b868bf746da5c4feabb25b800b2 /openembedded/packages/busybox
downloadopenembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.gz
openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.bz2
openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.zip
Initial population
git-svn-id: https://svn.o-hand.com/repos/poky@1 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'openembedded/packages/busybox')
-rw-r--r--openembedded/packages/busybox/busybox-1.00/add-getkey-applet.patch157
-rw-r--r--openembedded/packages/busybox/busybox-1.00/below.patch49
-rw-r--r--openembedded/packages/busybox/busybox-1.00/celf-ash-builtins.patch431
-rw-r--r--openembedded/packages/busybox/busybox-1.00/console.patch13
-rw-r--r--openembedded/packages/busybox/busybox-1.00/defconfig476
-rw-r--r--openembedded/packages/busybox/busybox-1.00/dhcp-hostname.patch25
-rw-r--r--openembedded/packages/busybox/busybox-1.00/dhcpretrytime.patch81
-rw-r--r--openembedded/packages/busybox/busybox-1.00/fbset.patch24
-rw-r--r--openembedded/packages/busybox/busybox-1.00/gzip-spurious-const.patch11
-rw-r--r--openembedded/packages/busybox/busybox-1.00/hdparm_M.patch47
-rw-r--r--openembedded/packages/busybox/busybox-1.00/ifupdown-spurious-environ.patch12
-rw-r--r--openembedded/packages/busybox/busybox-1.00/iproute-flush-cache.patch23
-rw-r--r--openembedded/packages/busybox/busybox-1.00/mount-all-type.patch84
-rw-r--r--openembedded/packages/busybox/busybox-1.00/nylon/defconfig458
-rw-r--r--openembedded/packages/busybox/busybox-1.00/openmn/defconfig475
-rw-r--r--openembedded/packages/busybox/busybox-1.00/openslug/defconfig461
-rw-r--r--openembedded/packages/busybox/busybox-1.00/openslug/udhcpscript.patch133
-rw-r--r--openembedded/packages/busybox/busybox-1.00/readlink.patch85
-rw-r--r--openembedded/packages/busybox/busybox-1.00/rmmod.patch44
-rw-r--r--openembedded/packages/busybox/busybox-1.00/sparc/defconfig467
-rw-r--r--openembedded/packages/busybox/busybox-1.00/udhcppidfile-breakage.patch57
-rw-r--r--openembedded/packages/busybox/busybox-1.00/udhcppidfile.patch276
-rw-r--r--openembedded/packages/busybox/busybox-1.00/udhcpscript.patch17
-rw-r--r--openembedded/packages/busybox/busybox-1.00/wrt54/defconfig476
-rw-r--r--openembedded/packages/busybox/busybox_1.00.bb162
-rwxr-xr-xopenembedded/packages/busybox/files/busybox-cron39
-rwxr-xr-xopenembedded/packages/busybox/files/busybox-httpd44
-rwxr-xr-xopenembedded/packages/busybox/files/busybox-udhcpd43
-rw-r--r--openembedded/packages/busybox/files/default.script4
-rw-r--r--openembedded/packages/busybox/files/hwclock.sh74
-rwxr-xr-xopenembedded/packages/busybox/files/mount.busybox3
-rw-r--r--openembedded/packages/busybox/files/postinst25
-rw-r--r--openembedded/packages/busybox/files/prerm10
-rw-r--r--openembedded/packages/busybox/files/syslog69
-rw-r--r--openembedded/packages/busybox/files/syslog.conf9
-rwxr-xr-xopenembedded/packages/busybox/files/umount.busybox3
36 files changed, 4867 insertions, 0 deletions
diff --git a/openembedded/packages/busybox/busybox-1.00/add-getkey-applet.patch b/openembedded/packages/busybox/busybox-1.00/add-getkey-applet.patch
new file mode 100644
index 0000000000..6ce0df21bd
--- /dev/null
+++ b/openembedded/packages/busybox/busybox-1.00/add-getkey-applet.patch
@@ -0,0 +1,157 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- /dev/null
++++ busybox-1.00/console-tools/getkey.c
+@@ -0,0 +1,94 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * getkey.c - Michael 'Mickey' Lauer
++ *
++ * Version 0.1
++ *
++ * A simple keygrapper. Displays a configurable message and waits a dedicated number
++ * of seconds for a keypress. Sets the exit code accordingly (SUCCESS on keypress).
++ */
++#include <stdio.h>
++#include <fcntl.h>
++#include <memory.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <errno.h>
++#include <sys/ioctl.h>
++#include <sys/kd.h>
++#include "busybox.h"
++
++extern int getkey_main(int argc, char **argv)
++{
++ int status = EXIT_FAILURE;
++
++ if ( argc < 2 )
++ {
++ bb_show_usage();
++ }
++
++ /*
++ * If no terminal is attached it is quite useless
++ * to treat it like one.
++ */
++ if( !isatty(STDIN_FILENO) )
++ {
++ goto error_hard;
++ }
++
++ //bb_printf( "DEBUG: time = '%s'\n", argv[1] );
++ //bb_printf( "DEBUG: mesg = '%s'\n", argv[2] );
++
++ struct termios orig;
++ struct termios attr;
++
++ if ( tcgetattr(STDIN_FILENO, &orig) == -1 )
++ {
++ goto error_hard;
++ }
++
++ attr = orig;
++ attr.c_cc[VMIN] = 0;
++ attr.c_cc[VTIME] = 0;
++ attr.c_iflag |= INLCR;
++ attr.c_oflag |= OPOST|ONLCR;
++ attr.c_cflag &= ~PARENB;
++ attr.c_lflag &= ~(ICANON/*|ECHO*/);
++ if ( tcsetattr(STDIN_FILENO,TCSANOW,&attr) == -1 )
++ {
++ goto error_hard;
++ }
++
++ fd_set rfds;
++ struct timeval tv;
++ int retval;
++
++ FD_ZERO(&rfds);
++ FD_SET(0, &rfds);
++
++ tv.tv_sec = atoi( argv[1] );
++ tv.tv_usec = 0;
++
++ if ( argc == 3 )
++ {
++ bb_printf( argv[2], tv.tv_sec );
++ bb_printf( "\n" );
++ fflush(stdout);
++ }
++ retval = select(1, &rfds, NULL, NULL, &tv);
++ if (retval > 0)
++ {
++ status = EXIT_SUCCESS;
++ }
++
++ if (tcsetattr(STDIN_FILENO,TCSANOW,&orig) == -1 )
++ {
++ goto error_hard;
++ }
++
++ return status;
++
++error_hard :
++ return EXIT_FAILURE;
++};
++
+--- busybox-1.00/console-tools/Makefile.in~add-getkey-applet.patch
++++ busybox-1.00/console-tools/Makefile.in
+@@ -28,6 +28,7 @@
+ CONSOLETOOLS_DIR-$(CONFIG_CLEAR) += clear.o
+ CONSOLETOOLS_DIR-$(CONFIG_DEALLOCVT) += deallocvt.o
+ CONSOLETOOLS_DIR-$(CONFIG_DUMPKMAP) += dumpkmap.o
++CONSOLETOOLS_DIR-$(CONFIG_GETKEY) += getkey.o
+ CONSOLETOOLS_DIR-$(CONFIG_LOADFONT) += loadfont.o
+ CONSOLETOOLS_DIR-$(CONFIG_LOADKMAP) += loadkmap.o
+ CONSOLETOOLS_DIR-$(CONFIG_OPENVT) += openvt.o
+--- busybox-1.00/console-tools/Config.in~add-getkey-applet.patch
++++ busybox-1.00/console-tools/Config.in
+@@ -31,6 +31,14 @@
+ This program dumps the kernel's keyboard translation table to
+ stdout, in binary format. You can then use loadkmap to load it.
+
++config CONFIG_GETKEY
++ bool "getkey"
++ default n
++ help
++ This program displays a configurable message and waits
++ a dedicated number of seconds for a keypress. It sets
++ the exit code accordingly, i.e. SUCCESS if there was a keypress.
++
+ config CONFIG_LOADFONT
+ bool "loadfont"
+ default n
+--- busybox-1.00/include/applets.h~add-getkey-applet.patch
++++ busybox-1.00/include/applets.h
+@@ -223,6 +223,9 @@
+ #ifdef CONFIG_FTPPUT
+ APPLET(ftpput, ftpgetput_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
+ #endif
++#ifdef CONFIG_GETKEY
++ APPLET(getkey, getkey_main, _BB_DIR_SBIN, _BB_SUID_NEVER)
++#endif
+ #ifdef CONFIG_GETOPT
+ APPLET(getopt, getopt_main, _BB_DIR_BIN, _BB_SUID_NEVER)
+ #endif
+--- busybox-1.00/include/usage.h~add-getkey-applet.patch
++++ busybox-1.00/include/usage.h
+@@ -734,6 +734,13 @@
+ "\t-p, --password Password to be used\n" \
+ "\t-P, --port Port number to be used"
+
++#define getkey_trivial_usage \
++ "time [message]"
++#define getkey_full_usage \
++ "Display a message and wait for a keypress."
++#define getkey_example_usage \
++ "$ getkey 5 'Press a key within %d seconds to interrupt autoboot.'"
++
+ #define getopt_trivial_usage \
+ "[OPTIONS]..."
+ #define getopt_full_usage \
diff --git a/openembedded/packages/busybox/busybox-1.00/below.patch b/openembedded/packages/busybox/busybox-1.00/below.patch
new file mode 100644
index 0000000000..ec97b29962
--- /dev/null
+++ b/openembedded/packages/busybox/busybox-1.00/below.patch
@@ -0,0 +1,49 @@
+Index: modutils/modprobe.c
+===================================================================
+RCS file: /var/cvs/busybox/modutils/modprobe.c,v
+retrieving revision 1.41
+diff -u -r1.41 modprobe.c
+--- busybox/modutils/modprobe.c 24 Sep 2004 09:18:55 -0000 1.41
++++ busybox/modutils/modprobe.c 29 Dec 2004 11:56:07 -0000
+@@ -357,6 +357,41 @@
+ }
+ }
+ }
++ else if ((strncmp (buffer, "below", 5) == 0) && isspace (buffer[5])) {
++ char *mod, *deps;
++ if (parse_tag_value (buffer + 6, &mod, &deps)) {
++ struct dep_t *dt;
++
++ for (dt = first; dt; dt = dt->m_next) {
++ if (strcmp (dt->m_name, mod) == 0)
++ break;
++ }
++ if (dt) {
++ char *pp;
++ char *name;
++
++ pp = name = deps;
++
++ for (;;) {
++ while (*pp != 0 && !isspace (*pp))
++ pp++;
++ if (isspace (*pp))
++ *(pp++) = 0;
++
++ dt->m_depcnt++;
++ dt->m_deparr = (char **) xrealloc (dt->m_deparr,
++ sizeof (char *) * dt->m_depcnt);
++ dt->m_deparr[dt->m_depcnt - 1] = bb_xstrdup (name);
++
++ while (isspace (*pp))
++ pp++;
++ name = pp;
++ if (*pp == 0)
++ break;
++ }
++ }
++ }
++ }
+ }
+ }
+ close ( fd );
diff --git a/openembedded/packages/busybox/busybox-1.00/celf-ash-builtins.patch b/openembedded/packages/busybox/busybox-1.00/celf-ash-builtins.patch
new file mode 100644
index 0000000000..ec1925e6ad
--- /dev/null
+++ b/openembedded/packages/busybox/busybox-1.00/celf-ash-builtins.patch
@@ -0,0 +1,431 @@
+diff -Naur busybox-1.00-pre3.orig/coreutils/echo.c busybox-1.00-pre3/coreutils/echo.c
+--- busybox-1.00-pre3.orig/coreutils/echo.c 2003-03-19 12:11:33.000000000 +0300
++++ busybox-1.00-pre3/coreutils/echo.c 2003-11-07 17:47:35.000000000 +0300
+@@ -122,7 +122,11 @@
+ #endif
+
+ DONE:
+- bb_fflush_stdout_and_exit(EXIT_SUCCESS);
++#ifdef CONFIG_FEATURE_BUILTIN_ECHO
++ return EXIT_SUCCESS;
++#else
++ bb_fflush_stdout_and_exit(EXIT_SUCCESS);
++#endif
+ }
+
+ /*-
+diff -Naur busybox-1.00-pre3.orig/coreutils/test.c busybox-1.00-pre3/coreutils/test.c
+--- busybox-1.00-pre3.orig/coreutils/test.c 2003-07-15 01:20:45.000000000 +0400
++++ busybox-1.00-pre3/coreutils/test.c 2003-11-07 17:47:35.000000000 +0300
+@@ -188,19 +188,19 @@
+ /* Implement special cases from POSIX.2, section 4.62.4 */
+ switch (argc) {
+ case 1:
+- exit(1);
++ return (1);
+ case 2:
+- exit(*argv[1] == '\0');
++ return (*argv[1] == '\0');
+ case 3:
+ if (argv[1][0] == '!' && argv[1][1] == '\0') {
+- exit(!(*argv[2] == '\0'));
++ return (!(*argv[2] == '\0'));
+ }
+ break;
+ case 4:
+ if (argv[1][0] != '!' || argv[1][1] != '\0') {
+ if (t_lex(argv[2]), t_wp_op && t_wp_op->op_type == BINOP) {
+ t_wp = &argv[1];
+- exit(binop() == 0);
++ return (binop() == 0);
+ }
+ }
+ break;
+@@ -208,7 +208,7 @@
+ if (argv[1][0] == '!' && argv[1][1] == '\0') {
+ if (t_lex(argv[3]), t_wp_op && t_wp_op->op_type == BINOP) {
+ t_wp = &argv[2];
+- exit(!(binop() == 0));
++ return (!(binop() == 0));
+ }
+ }
+ break;
+diff -Naur busybox-1.00-pre3.orig/include/usage.h busybox-1.00-pre3/include/usage.h
+--- busybox-1.00-pre3.orig/include/usage.h 2003-08-29 18:18:26.000000000 +0400
++++ busybox-1.00-pre3/include/usage.h 2003-11-07 17:47:59.000000000 +0300
+@@ -1760,6 +1760,13 @@
+ "quit\n" \
+ "221 foobar closing connection\n"
+
++#define nice_trivial_usage \
++ "[OPTION] [COMMAND [ARG]...]"
++#define nice_full_usage \
++ "Run COMMAND with an adjusted scheduling priority."
++#define nice_example_usage \
++ "$ nice -n 0 /tmp/foo \n"
++
+ #define netstat_trivial_usage \
+ "[-laenrtuwx]"
+ #define netstat_full_usage \
+diff -Naur busybox-1.00-pre3.orig/shell/Config.in busybox-1.00-pre3/shell/Config.in
+--- busybox-1.00-pre3.orig/shell/Config.in 2003-09-12 08:51:25.000000000 +0400
++++ busybox-1.00-pre3/shell/Config.in 2003-11-07 17:47:59.000000000 +0300
+@@ -53,6 +53,34 @@
+ help
+ Enable job control in the ash shell.
+
++config CONFIG_ASH_PIPE_OPTIMIZATION
++ bool " Enable ash pipe optimization "
++ default y
++ depends on CONFIG_ASH
++ help
++ Eliminate cat at the beginning of the pipe.
++
++config CONFIG_FEATURE_BUILTIN_TEST
++ bool " Builtin test command"
++ default y
++ depends on CONFIG_ASH
++ help
++ Builtin test command"
++
++config CONFIG_FEATURE_BUILTIN_ECHO
++ bool " Builtin echo command"
++ default y
++ depends on CONFIG_ASH
++ help
++ Builtin echo command"
++
++config CONFIG_FEATURE_BUILTIN_PIDOF
++ bool " Builtin pidof command"
++ default y
++ depends on CONFIG_ASH && CONFIG_PIDOF
++ help
++ Builtin pidof command"
++
+ config CONFIG_ASH_ALIAS
+ bool " Enable alias support"
+ default y
+diff -Naur busybox-1.00-pre3.orig/shell/ash.c busybox-1.00-pre3/shell/ash.c
+--- busybox-1.00-pre3.orig/shell/ash.c 2003-09-02 06:36:17.000000000 +0400
++++ busybox-1.00-pre3/shell/ash.c 2003-11-07 17:47:59.000000000 +0300
+@@ -1259,6 +1259,16 @@
+ #ifdef JOBS
+ static int killcmd(int, char **);
+ #endif
++#ifdef CONFIG_FEATURE_BUILTIN_TEST
++static int testcmd(int, char **);
++#endif
++#ifdef CONFIG_FEATURE_BUILTIN_ECHO
++static int echocmd(int, char**);
++#endif
++#ifdef CONFIG_FEATURE_BUILTIN_PIDOF
++static int pidofcmd(int, char **);
++#endif
++
+
+ /* $NetBSD: mail.h,v 1.9 2002/11/24 22:35:40 christos Exp $ */
+
+@@ -1281,39 +1291,6 @@
+ /* unsigned flags; */
+ };
+
+-#ifdef CONFIG_ASH_CMDCMD
+-# ifdef JOBS
+-# ifdef CONFIG_ASH_ALIAS
+-# define COMMANDCMD (builtincmd + 7)
+-# define EXECCMD (builtincmd + 10)
+-# else
+-# define COMMANDCMD (builtincmd + 6)
+-# define EXECCMD (builtincmd + 9)
+-# endif
+-# else /* ! JOBS */
+-# ifdef CONFIG_ASH_ALIAS
+-# define COMMANDCMD (builtincmd + 6)
+-# define EXECCMD (builtincmd + 9)
+-# else
+-# define COMMANDCMD (builtincmd + 5)
+-# define EXECCMD (builtincmd + 8)
+-# endif
+-# endif /* JOBS */
+-#else /* ! CONFIG_ASH_CMDCMD */
+-# ifdef JOBS
+-# ifdef CONFIG_ASH_ALIAS
+-# define EXECCMD (builtincmd + 9)
+-# else
+-# define EXECCMD (builtincmd + 8)
+-# endif
+-# else /* ! JOBS */
+-# ifdef CONFIG_ASH_ALIAS
+-# define EXECCMD (builtincmd + 8)
+-# else
+-# define EXECCMD (builtincmd + 7)
+-# endif
+-# endif /* JOBS */
+-#endif /* CONFIG_ASH_CMDCMD */
+
+ #define BUILTIN_NOSPEC "0"
+ #define BUILTIN_SPECIAL "1"
+@@ -1328,65 +1305,21 @@
+ #define IS_BUILTIN_REGULAR(builtincmd) ((builtincmd)->name[0] & 2)
+
+ static const struct builtincmd builtincmd[] = {
+- { BUILTIN_SPEC_REG ".", dotcmd },
+- { BUILTIN_SPEC_REG ":", truecmd },
+-#ifdef CONFIG_ASH_ALIAS
+- { BUILTIN_REG_ASSG "alias", aliascmd },
+-#endif
+-#ifdef JOBS
+- { BUILTIN_REGULAR "bg", bgcmd },
+-#endif
+- { BUILTIN_SPEC_REG "break", breakcmd },
+- { BUILTIN_REGULAR "cd", cdcmd },
+- { BUILTIN_NOSPEC "chdir", cdcmd },
+-#ifdef CONFIG_ASH_CMDCMD
+- { BUILTIN_REGULAR "command", commandcmd },
+-#endif
+- { BUILTIN_SPEC_REG "continue", breakcmd },
+- { BUILTIN_SPEC_REG "eval", evalcmd },
+- { BUILTIN_SPEC_REG "exec", execcmd },
+- { BUILTIN_SPEC_REG "exit", exitcmd },
+- { BUILTIN_SPEC_REG_ASSG "export", exportcmd },
+- { BUILTIN_REGULAR "false", falsecmd },
+-#ifdef JOBS
+- { BUILTIN_REGULAR "fg", fgcmd },
+-#endif
+-#ifdef CONFIG_ASH_GETOPTS
+- { BUILTIN_REGULAR "getopts", getoptscmd },
+-#endif
+- { BUILTIN_NOSPEC "hash", hashcmd },
+-#ifndef CONFIG_FEATURE_SH_EXTRA_QUIET
+- { BUILTIN_NOSPEC "help", helpcmd },
+-#endif
+-#ifdef JOBS
+- { BUILTIN_REGULAR "jobs", jobscmd },
+- { BUILTIN_REGULAR "kill", killcmd },
+-#endif
+-#ifdef CONFIG_ASH_MATH_SUPPORT
+- { BUILTIN_NOSPEC "let", letcmd },
+-#endif
+- { BUILTIN_ASSIGN "local", localcmd },
+- { BUILTIN_NOSPEC "pwd", pwdcmd },
+- { BUILTIN_REGULAR "read", readcmd },
+- { BUILTIN_SPEC_REG_ASSG "readonly", exportcmd },
+- { BUILTIN_SPEC_REG "return", returncmd },
+- { BUILTIN_SPEC_REG "set", setcmd },
+- { BUILTIN_SPEC_REG "shift", shiftcmd },
+- { BUILTIN_SPEC_REG "times", timescmd },
+- { BUILTIN_SPEC_REG "trap", trapcmd },
+- { BUILTIN_REGULAR "true", truecmd },
+- { BUILTIN_NOSPEC "type", typecmd },
+- { BUILTIN_NOSPEC "ulimit", ulimitcmd },
+- { BUILTIN_REGULAR "umask", umaskcmd },
+-#ifdef CONFIG_ASH_ALIAS
+- { BUILTIN_REGULAR "unalias", unaliascmd },
+-#endif
+- { BUILTIN_SPEC_REG "unset", unsetcmd },
+- { BUILTIN_REGULAR "wait", waitcmd },
++#define BUILTIN_COMMAND_SPEC(code, str, func) {str, func},
++#include "ash.d"
++{}
+ };
+
+-#define NUMBUILTINS (sizeof (builtincmd) / sizeof (struct builtincmd) )
++enum {
++#define BUILTIN_COMMAND_SPEC(code, str, func) code,
++#include "ash.d"
++NUMBUILTINS
++};
+
++#ifdef CONFIG_ASH_CMDCMD
++#define COMMANDCMD (builtincmd + COMMAND_CMD)
++#endif
++#define EXECCMD (builtincmd + EXEC_CMD)
+
+
+ struct cmdentry {
+@@ -1678,7 +1611,8 @@
+
+ /* from input.c: */
+ {
+- basepf.nextc = basepf.buf = basebuf;
++ struct parsefile* pf = &basepf;
++ pf->nextc = pf->buf = basebuf;
+ }
+
+ /* from trap.c: */
+@@ -2678,6 +2612,14 @@
+ * Called to reset things after an exception.
+ */
+
++#ifdef CONFIG_FEATURE_BUILTIN_ECHO
++static int
++echocmd(int argc, char **argv)
++{
++ return echo_main(argc, argv);
++}
++#endif
++
+ /*
+ * The eval commmand.
+ */
+@@ -3028,6 +2970,23 @@
+ }
+
+
++static int
++cat_file(union node *n)
++{
++#ifdef CONFIG_ASH_PIPE_OPTIMIZATION
++ if (n->type == NCMD
++ && n->ncmd.args != NULL
++ && strcmp(n->ncmd.args->narg.text, "cat") == 0
++ && n->ncmd.args->narg.next != NULL
++ && *n->ncmd.args->narg.next->narg.text != '-'
++ && n->ncmd.args->narg.next->narg.next == NULL)
++ {
++ return open(n->ncmd.args->narg.next->narg.text, O_RDONLY);
++ }
++#endif
++ return -1;
++}
++
+
+ /*
+ * Evaluate a pipeline. All the processes in the pipeline are children
+@@ -3057,7 +3016,11 @@
+ prehash(lp->n);
+ pip[1] = -1;
+ if (lp->next) {
+- if (pipe(pip) < 0) {
++ if (prevfd < 0 && (prevfd = cat_file(lp->n)) >= 0) {
++ // it is cat at the beginning of the pipe
++ continue;
++ }
++ if (pipe(pip) < 0) {
+ close(prevfd);
+ error("Pipe call failed");
+ }
+@@ -3104,11 +3067,11 @@
+ {
+ int saveherefd;
+
+- result->fd = -1;
++ result->fd = cat_file(n);
+ result->buf = NULL;
+ result->nleft = 0;
+ result->jp = NULL;
+- if (n == NULL) {
++ if (n == NULL || result->fd >= 0) {
+ goto out;
+ }
+
+@@ -3562,6 +3525,24 @@
+ }
+ }
+
++#ifdef CONFIG_FEATURE_BUILTIN_TEST
++static int
++testcmd(int argc, char** argv)
++{
++ bb_applet_name = argv[0];
++ return test_main(argc, argv);
++}
++#endif
++
++#ifdef CONFIG_FEATURE_BUILTIN_PIDOF
++static int
++pidofcmd(int argc, char** argv)
++{
++ bb_applet_name = argv[0];
++ return pidof_main(argc, argv);
++}
++#endif
++
+
+ static int
+ falsecmd(int argc, char **argv)
+@@ -4943,7 +4924,9 @@
+ ckfree(in.buf);
+ if (in.fd >= 0) {
+ close(in.fd);
+- back_exitstatus = waitforjob(in.jp);
++ if (in.jp != NULL) {
++ back_exitstatus = waitforjob(in.jp);
++ }
+ }
+ INTON;
+
+diff -Naur busybox-1.00-pre3.orig/shell/ash.d busybox-1.00-pre3/shell/ash.d
+--- busybox-1.00-pre3.orig/shell/ash.d 1970-01-01 03:00:00.000000000 +0300
++++ busybox-1.00-pre3/shell/ash.d 2003-11-07 17:47:59.000000000 +0300
+@@ -0,0 +1,70 @@
++BUILTIN_COMMAND_SPEC(DOT_CMD, BUILTIN_SPEC_REG ".", dotcmd)
++BUILTIN_COMMAND_SPEC(COMMA_CMD, BUILTIN_SPEC_REG ":", truecmd)
++#ifdef CONFIG_FEATURE_BUILTIN_TEST
++BUILTIN_COMMAND_SPEC(RPAR_CMD, BUILTIN_REGULAR "[", testcmd)
++#endif
++#ifdef CONFIG_ASH_ALIAS
++BUILTIN_COMMAND_SPEC(ALIAS_CMD, BUILTIN_REG_ASSG "alias", aliascmd)
++#endif
++#ifdef JOBS
++BUILTIN_COMMAND_SPEC(BG_CMD, BUILTIN_REGULAR "bg", bgcmd)
++#endif
++BUILTIN_COMMAND_SPEC(BREAK_CMD, BUILTIN_SPEC_REG "break", breakcmd)
++BUILTIN_COMMAND_SPEC(CD_CMD, BUILTIN_REGULAR "cd", cdcmd)
++BUILTIN_COMMAND_SPEC(CHDIR_CMD, BUILTIN_NOSPEC "chdir", cdcmd)
++#ifdef CONFIG_ASH__CMD_CMD
++BUILTIN_COMMAND_SPEC(COMMAND_CMD, BUILTIN_REGULAR "command", commandcmd)
++#endif
++BUILTIN_COMMAND_SPEC(CONTINUE_CMD,BUILTIN_SPEC_REG "continue", breakcmd)
++#ifdef CONFIG_FEATURE_BUILTIN_ECHO
++BUILTIN_COMMAND_SPEC(ECHO_CMD, BUILTIN_REGULAR "echo", echocmd)
++#endif
++BUILTIN_COMMAND_SPEC(EVAL_CMD, BUILTIN_SPEC_REG "eval", evalcmd)
++BUILTIN_COMMAND_SPEC(EXEC_CMD, BUILTIN_SPEC_REG "exec", execcmd)
++BUILTIN_COMMAND_SPEC(EXIT_CMD, BUILTIN_SPEC_REG "exit", exitcmd)
++BUILTIN_COMMAND_SPEC(EXPORT_CMD, BUILTIN_SPEC_REG_ASSG "export", exportcmd)
++BUILTIN_COMMAND_SPEC(FALSE_CMD, BUILTIN_REGULAR "false", falsecmd)
++#ifdef JOBS
++BUILTIN_COMMAND_SPEC(FG_CMD, BUILTIN_REGULAR "fg", fgcmd)
++#endif
++#ifdef CONFIG_ASH_GETOPTS
++BUILTIN_COMMAND_SPEC(GETOPTS_CMD, BUILTIN_REGULAR "getopts", getoptscmd)
++#endif
++BUILTIN_COMMAND_SPEC(HASH_CMD, BUILTIN_NOSPEC "hash", hashcmd)
++#ifndef CONFIG_FEATURE_SH_EXTRA_QUIET
++BUILTIN_COMMAND_SPEC(HELP_CMD, BUILTIN_NOSPEC "help", helpcmd)
++#endif
++#ifdef JOBS
++BUILTIN_COMMAND_SPEC(JOBS_CMD, BUILTIN_REGULAR "jobs", jobscmd)
++BUILTIN_COMMAND_SPEC(KILL_CMD, BUILTIN_REGULAR "kill", killcmd)
++#endif
++#ifdef CONFIG_ASH_MATH_SUPPORT
++BUILTIN_COMMAND_SPEC(LET_CMD, BUILTIN_NOSPEC "let", letcmd)
++#endif
++BUILTIN_COMMAND_SPEC(LOCAL_CMD, BUILTIN_ASSIGN "local", localcmd)
++#ifdef CONFIG_FEATURE_BUILTIN_PIDOF
++BUILTIN_COMMAND_SPEC(PIDOF_CMD, BUILTIN_REGULAR "pidof", pidofcmd)
++#endif
++BUILTIN_COMMAND_SPEC(PWD_CMD, BUILTIN_NOSPEC "pwd", pwdcmd)
++BUILTIN_COMMAND_SPEC(READ_CMD, BUILTIN_REGULAR "read", readcmd)
++BUILTIN_COMMAND_SPEC(READONLY_CMD,BUILTIN_SPEC_REG_ASSG "readonly", exportcmd)
++BUILTIN_COMMAND_SPEC(RETURN_CMD, BUILTIN_SPEC_REG "return", returncmd)
++BUILTIN_COMMAND_SPEC(SET_CMD, BUILTIN_SPEC_REG "set", setcmd)
++BUILTIN_COMMAND_SPEC(SHIFT_CMD, BUILTIN_SPEC_REG "shift", shiftcmd)
++#ifdef CONFIG_FEATURE_BUILTIN_TEST
++BUILTIN_COMMAND_SPEC(TEST_CMD, BUILTIN_REGULAR "test", testcmd)
++#endif
++BUILTIN_COMMAND_SPEC(TIMES_CMD, BUILTIN_SPEC_REG "times", timescmd)
++BUILTIN_COMMAND_SPEC(TRAP_CMD, BUILTIN_SPEC_REG "trap", trapcmd)
++BUILTIN_COMMAND_SPEC(TRUE_CMD, BUILTIN_REGULAR "true", truecmd)
++BUILTIN_COMMAND_SPEC(TYPE_CMD, BUILTIN_NOSPEC "type", typecmd)
++BUILTIN_COMMAND_SPEC(ULIMIT_CMD, BUILTIN_NOSPEC "ulimit", ulimitcmd)
++BUILTIN_COMMAND_SPEC(UMASK_CMD, BUILTIN_REGULAR "umask", umaskcmd)
++#ifdef CONFIG_ASH_ALIAS
++BUILTIN_COMMAND_SPEC(UNALIAS_CMD, BUILTIN_REGULAR "unalias", unaliascmd)
++#endif
++BUILTIN_COMMAND_SPEC(UNSET_CMD, BUILTIN_SPEC_REG "unset", unsetcmd)
++BUILTIN_COMMAND_SPEC(WAIT_CMD, BUILTIN_REGULAR "wait", waitcmd)
++
++
++#undef BUILTIN_COMMAND_SPEC
diff --git a/openembedded/packages/busybox/busybox-1.00/console.patch b/openembedded/packages/busybox/busybox-1.00/console.patch
new file mode 100644
index 0000000000..d57bdfbe89
--- /dev/null
+++ b/openembedded/packages/busybox/busybox-1.00/console.patch
@@ -0,0 +1,13 @@
+--- busybox-1.00-pre2/libbb/get_console.c~console
++++ busybox-1.00-pre2/libbb/get_console.c
+@@ -86,10 +86,6 @@
+ {
+ int fd;
+
+- if (-1 == (fd = open_a_console("/dev/console")))
+- return -1;
+- else
+- return fd;
+ fd = open_a_console(CURRENT_TTY);
+ if (fd >= 0)
+ return fd;
diff --git a/openembedded/packages/busybox/busybox-1.00/defconfig b/openembedded/packages/busybox/busybox-1.00/defconfig
new file mode 100644
index 0000000000..8b8212c54a
--- /dev/null
+++ b/openembedded/packages/busybox/busybox-1.00/defconfig
@@ -0,0 +1,476 @@
+#
+# Automatically generated make config: don't edit
+#
+HAVE_DOT_CONFIG=y
+
+#
+# General Configuration
+#
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+# CONFIG_FEATURE_VERBOSE_USAGE is not set
+# CONFIG_FEATURE_INSTALLER is not set
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_FEATURE_DEVFS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+# CONFIG_FEATURE_SUID is not set
+# CONFIG_SELINUX is not set
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+CONFIG_LFS=y
+# USING_CROSS_COMPILER is not set
+EXTRA_CFLAGS_OPTIONS=""
+
+#
+# Installation Options
+#
+# CONFIG_INSTALL_NO_USR is not set
+PREFIX="./_install"
+
+#
+# Archival Utilities
+#
+CONFIG_AR=y
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+CONFIG_BUNZIP2=y
+CONFIG_CPIO=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+CONFIG_GUNZIP=y
+# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
+CONFIG_GZIP=y
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_BZIP2=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_GZIP=y
+# CONFIG_FEATURE_TAR_COMPRESS is not set
+CONFIG_FEATURE_TAR_OLDGNU_COMPATABILITY=y
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
+# CONFIG_UNCOMPRESS is not set
+CONFIG_UNZIP=y
+
+#
+# Common options for cpio and tar
+#
+# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+# CONFIG_CAL is not set
+CONFIG_CAT=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+# CONFIG_CMP is not set
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+
+#
+# date (forced enabled for use with watch)
+#
+# CONFIG_FEATURE_DATE_ISOFMT is not set
+CONFIG_DD=y
+CONFIG_DF=y
+CONFIG_DIRNAME=y
+# CONFIG_DOS2UNIX is not set
+CONFIG_DU=y