aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/busybox/busybox-1.2.1
diff options
context:
space:
mode:
authorFrans Meulenbroeks <fransmeulenbroeks@gmail.com>2010-10-07 18:35:38 +0200
committerFrans Meulenbroeks <fransmeulenbroeks@gmail.com>2010-10-07 19:48:59 +0200
commit83d23b9881d480c06bb3c6b932f173ca408aa0c5 (patch)
treec193953fdfee9a0c2c4fb8c1332d5af38dc68c12 /recipes/busybox/busybox-1.2.1
parent590c96185ef83c836a8c11f35f61fde62bd2b9bc (diff)
downloadopenembedded-83d23b9881d480c06bb3c6b932f173ca408aa0c5.tar.gz
busybox : moved unused files to obsolete dir
Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/busybox/busybox-1.2.1')
-rw-r--r--recipes/busybox/busybox-1.2.1/add-getkey-applet.patch167
-rw-r--r--recipes/busybox/busybox-1.2.1/below.patch46
-rw-r--r--recipes/busybox/busybox-1.2.1/dhcpretrytime.patch85
-rw-r--r--recipes/busybox/busybox-1.2.1/fbset.patch24
-rw-r--r--recipes/busybox/busybox-1.2.1/hdparm_M.patch47
-rw-r--r--recipes/busybox/busybox-1.2.1/iproute-flush-cache.patch23
-rw-r--r--recipes/busybox/busybox-1.2.1/mount-all-type.patch84
-rw-r--r--recipes/busybox/busybox-1.2.1/readlink.patch85
-rw-r--r--recipes/busybox/busybox-1.2.1/rmmod.patch40
-rw-r--r--recipes/busybox/busybox-1.2.1/udhcppidfile-breakage.patch57
-rw-r--r--recipes/busybox/busybox-1.2.1/udhcppidfile.patch274
11 files changed, 0 insertions, 932 deletions
diff --git a/recipes/busybox/busybox-1.2.1/add-getkey-applet.patch b/recipes/busybox/busybox-1.2.1/add-getkey-applet.patch
deleted file mode 100644
index a75cf823c7..0000000000
--- a/recipes/busybox/busybox-1.2.1/add-getkey-applet.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
-Index: busybox-1.1.0/console-tools/getkey.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ busybox-1.1.0/console-tools/getkey.c 2006-03-14 17:17:28.000000000 +0100
-@@ -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;
-+};
-+
-Index: busybox-1.1.0/console-tools/Makefile.in
-===================================================================
---- busybox-1.1.0.orig/console-tools/Makefile.in 2006-01-11 06:43:57.000000000 +0100
-+++ busybox-1.1.0/console-tools/Makefile.in 2006-03-14 17:18:18.000000000 +0100
-@@ -21,6 +21,7 @@
- CONSOLETOOLS_DIR-$(CONFIG_OPENVT) += openvt.o
- CONSOLETOOLS_DIR-$(CONFIG_RESET) += reset.o
- CONSOLETOOLS_DIR-$(CONFIG_SETKEYCODES) += setkeycodes.o
-+CONSOLETOOLS_DIR-$(CONFIG_GETKEY) += getkey.o
-
- libraries-y+=$(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR)
-
-Index: busybox-1.1.0/console-tools/Config.in
-===================================================================
---- busybox-1.1.0.orig/console-tools/Config.in 2006-01-11 06:43:57.000000000 +0100
-+++ busybox-1.1.0/console-tools/Config.in 2006-03-14 17:17:28.000000000 +0100
-@@ -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
-Index: busybox-1.1.0/include/applets.h
-===================================================================
---- busybox-1.1.0.orig/include/applets.h 2006-01-11 06:44:14.000000000 +0100
-+++ busybox-1.1.0/include/applets.h 2006-03-14 17:17:28.000000000 +0100
-@@ -261,6 +261,9 @@
- #ifdef CONFIG_FUSER
- APPLET(fuser, fuser_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
-Index: busybox-1.1.0/include/usage.h
-===================================================================
---- busybox-1.1.0.orig/include/usage.h 2006-01-11 06:44:14.000000000 +0100
-+++ busybox-1.1.0/include/usage.h 2006-03-14 17:19:11.000000000 +0100
-@@ -841,6 +841,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 fuser_trivial_usage \
- "[options] file OR port/proto"
- #define fuser_full_usage \
diff --git a/recipes/busybox/busybox-1.2.1/below.patch b/recipes/busybox/busybox-1.2.1/below.patch
deleted file mode 100644
index 95e8376e46..0000000000
--- a/recipes/busybox/busybox-1.2.1/below.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Index: busybox-1.1.0/modutils/modprobe.c
-===================================================================
---- busybox-1.1.0.orig/modutils/modprobe.c 2006-01-11 06:43:56.000000000 +0100
-+++ busybox-1.1.0/modutils/modprobe.c 2006-03-14 16:36:54.000000000 +0100
-@@ -509,6 +509,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/recipes/busybox/busybox-1.2.1/dhcpretrytime.patch b/recipes/busybox/busybox-1.2.1/dhcpretrytime.patch
deleted file mode 100644
index 893e346acf..0000000000
--- a/recipes/busybox/busybox-1.2.1/dhcpretrytime.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
-Index: busybox-1.1.0/networking/udhcp/dhcpc.c
-===================================================================
---- busybox-1.1.0.orig/networking/udhcp/dhcpc.c 2006-03-14 17:19:31.000000000 +0100
-+++ busybox-1.1.0/networking/udhcp/dhcpc.c 2006-03-14 17:20:45.000000000 +0100
-@@ -48,6 +48,7 @@
- static unsigned long requested_ip; /* = 0 */
- static unsigned long server_addr;
- static unsigned long timeout;
-+static unsigned long retrytime = 60;
- static int packet_num; /* = 0 */
- static int fd = -1;
-
-@@ -95,6 +96,7 @@
- " -r, --request=IP IP address to request (default: none)\n"
- " -s, --script=file Run file at dhcp events (default:\n"
- " " DEFAULT_SCRIPT ")\n"
-+" -t, --retrytime time to retry DHCP request (default 60s)\n")
- " -v, --version Display version\n"
- );
- exit(0);
-@@ -214,6 +216,7 @@
- {"quit", no_argument, 0, 'q'},
- {"request", required_argument, 0, 'r'},
- {"script", required_argument, 0, 's'},
-+ {"retrytime", required_argument, 0, 't'},
- {"version", no_argument, 0, 'v'},
- {0, 0, 0, 0}
- };
-@@ -229,7 +232,7 @@
- /* get options */
- while (1) {
- int option_index = 0;
-- c = getopt_long(argc, argv, "c:CV:fbH:h:F:i:np:qr:s:v", arg_options, &option_index);
-+ c = getopt_long(argc, argv, "c:CV:fbH:h:F:i:np:qr:s:t:v", arg_options, &option_index);
- if (c == -1) break;
-
- switch (c) {
-@@ -305,6 +308,9 @@
- case 's':
- client_config.script = optarg;
- break;
-+ case 't':
-+ retrytime = atol(optarg);
-+ break;
- case 'v':
- printf("udhcpcd, version %s\n\n", VERSION);
- return 0;
-@@ -394,7 +400,7 @@
- }
- /* wait to try again */
- packet_num = 0;
-- timeout = now + 60;
-+ timeout = now + retrytime;
- }
- break;
- case RENEW_REQUESTED:
-Index: busybox-1.1.0/networking/ifupdown.c
-===================================================================
---- busybox-1.1.0.orig/networking/ifupdown.c 2006-01-11 06:43:51.000000000 +0100
-+++ busybox-1.1.0/networking/ifupdown.c 2006-03-14 17:19:41.000000000 +0100
-@@ -506,7 +506,7 @@
- static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
- {
- if (execable("/sbin/udhcpc")) {
-- return( execute("udhcpc -n -p /var/run/udhcpc.%iface%.pid -i "
-+ return( execute("udhcpc -b -p /var/run/udhcpc.%iface%.pid -i "
- "%iface% [[-H %hostname%]] [[-c %clientid%]]", ifd, exec));
- } else if (execable("/sbin/pump")) {
- return( execute("pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]]", ifd, exec));
-@@ -526,8 +526,8 @@
- /* SIGUSR2 forces udhcpc to release the current lease and go inactive,
- * and SIGTERM causes udhcpc to exit. Signals are queued and processed
- * sequentially so we don't need to sleep */
-- result = execute("kill -USR2 `cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", ifd, exec);
-- result += execute("kill -TERM `cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", ifd, exec);
-+ result = execute("kill -USR2 `cat /var/run/udhcpc.%iface%.pid 2>/dev/null` 2>/dev/null", ifd, exec);
-+ result += execute("kill -TERM `cat /var/run/udhcpc.%iface%.pid 2>/dev/null` 2>/dev/null", ifd, exec);
- } else if (execable("/sbin/pump")) {
- result = execute("pump -i %iface% -k", ifd, exec);
- } else if (execable("/sbin/dhclient")) {
diff --git a/recipes/busybox/busybox-1.2.1/fbset.patch b/recipes/busybox/busybox-1.2.1/fbset.patch
deleted file mode 100644
index d0609ce6f7..0000000000
--- a/recipes/busybox/busybox-1.2.1/fbset.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- busybox/util-linux/fbset.c~ 2004-07-03 16:24:23.000000000 +0100
-+++ busybox/util-linux/fbset.c 2004-12-30 20:09:26.000000000 +0000
-@@ -337,7 +337,7 @@
- {
- struct fb_var_screeninfo var, varset;
- int fh, i;
-- char *fbdev = DEFAULTFBDEV;
-+ char *fbdev = NULL;
- char *modefile = DEFAULTFBMODE;
- char *thisarg, *mode = NULL;
-
-@@ -404,7 +404,12 @@
- }
- }
-
-+ if (fbdev == NULL)
-+ fbdev = DEFAULTFBDEV;
- if ((fh = open(fbdev, O_RDONLY)) < 0)
-+#ifdef CONFIG_FEATURE_DEVFS
-+ if ((fh = open("/dev/fb0", O_RDONLY)) < 0)
-+#endif
- bb_perror_msg_and_die("fbset(open)");
- if (ioctl(fh, FBIOGET_VSCREENINFO, &var))
- bb_perror_msg_and_die("fbset(ioctl)");
diff --git a/recipes/busybox/busybox-1.2.1/hdparm_M.patch b/recipes/busybox/busybox-1.2.1/hdparm_M.patch
deleted file mode 100644
index 9adcd36f92..0000000000
--- a/recipes/busybox/busybox-1.2.1/hdparm_M.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Index: busybox-1.1.0/miscutils/hdparm.c
-===================================================================
---- busybox-1.1.0.orig/miscutils/hdparm.c 2006-01-11 06:44:13.000000000 +0100
-+++ busybox-1.1.0/miscutils/hdparm.c 2006-03-14 17:22:22.000000000 +0100
-@@ -1255,6 +1255,7 @@
- static unsigned long set_sleepnow, get_sleepnow;
- static unsigned long get_powermode;
- static unsigned long set_apmmode, get_apmmode, apmmode;
-+static unsigned long set_acoustic = 0, get_acoustic = 0, acoustic = 0;
- #endif
- #ifdef CONFIG_FEATURE_HDPARM_GET_IDENTITY
- static int get_IDentity;
-@@ -2124,6 +2125,20 @@
- }
- bb_ioctl(fd, HDIO_DRIVE_CMD, &args,"HDIO_DRIVE_CMD");
- }
-+ if (set_acoustic)
-+ {
-+ no_scsi();
-+ acoustic=check_if_min_and_set_val(acoustic,0);
-+ acoustic=check_if_maj_and_set_val(acoustic,254);
-+ if_printf(get_acoustic," setting AAM level to 0x%02lX (%ld)\n", acoustic, acoustic);
-+ bb_ioctl(fd, HDIO_SET_ACOUSTIC, (int*)acoustic,"HDIO_SET_ACOUSTIC");
-+ }
-+ if (get_acoustic)
-+ {
-+ no_scsi();
-+ bb_ioctl(fd, HDIO_GET_ACOUSTIC, (unsigned long*)&parm,"HDIO_GET_ACOUSTIC");
-+ printf(" acoustic = %2ld (128=quiet ... 254=fast)\n", parm);
-+ }
- if (set_wcache)
- {
- #ifdef DO_FLUSHCACHE
-@@ -2832,6 +2847,13 @@
- p = *argv++, --argc;
- p=GET_NUMBER(p,&set_readahead,&Xreadahead);
- break;
-+ case 'M':
-+ get_acoustic = noisy;
-+ noisy = 1;
-+ if (!*p && argc && isalnum(**argv))
-+ p = *argv++, --argc;
-+ p=GET_NUMBER(p,&set_acoustic,&acoustic);
-+ break;
- case 'B':
- get_apmmode = noisy;
- noisy = 1;
diff --git a/recipes/busybox/busybox-1.2.1/iproute-flush-cache.patch b/recipes/busybox/busybox-1.2.1/iproute-flush-cache.patch
deleted file mode 100644
index f8becc3390..0000000000
--- a/recipes/busybox/busybox-1.2.1/iproute-flush-cache.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: networking/libiproute/iproute.c
-===================================================================
-RCS file: /var/cvs/busybox/networking/libiproute/iproute.c,v
-retrieving revision 1.14
-diff -u -r1.14 iproute.c
---- networking/libiproute/iproute.c 11 Aug 2004 08:10:58 -0000 1.14
-+++ networking/libiproute/iproute.c 30 Nov 2004 20:43:44 -0000
-@@ -537,6 +537,15 @@
- } else if (matches(*argv, "match") == 0) {
- NEXT_ARG();
- get_prefix(&filter.mdst, *argv, do_ipv6);
-+ } else if (matches(*argv, "table") == 0) {
-+ NEXT_ARG();
-+ if (matches(*argv, "cache") == 0) {
-+ filter.tb = -1;
-+ } else if (matches(*argv, "main") != 0) {
-+ invarg("invalid \"table\"", *argv);
-+ }
-+ } else if (matches(*argv, "cache") == 0) {
-+ filter.tb = -1;
- } else {
- if (matches(*argv, "exact") == 0) {
- NEXT_ARG();
diff --git a/recipes/busybox/busybox-1.2.1/mount-all-type.patch b/recipes/busybox/busybox-1.2.1/mount-all-type.patch
deleted file mode 100644
index 476094a804..0000000000
--- a/recipes/busybox/busybox-1.2.1/mount-all-type.patch
+++ /dev/null
@@ -1,84 +0,0 @@
---- busybox-1.00/.pc/mount-all-type.patch/util-linux/mount.c 2004-08-02 17:14:02.000000000 -0700
-+++ busybox-1.00/util-linux/mount.c 2005-05-13 00:17:19.054232796 -0700
-@@ -364,6 +364,56 @@
- exit(EXIT_SUCCESS);
- }
-
-+/* Does this file system type, from /etc/fstab, match the given
-+ * -t option value?
-+ */
-+static int match_fs(const char *option, const char *type)
-+{
-+ const int len = strlen(type);
-+ const int no = option[0] == 'n' && option[1] == 'o';
-+ const char *optp = option;
-+
-+ if (len > 0) do {
-+ const char *match = strstr(optp, type);
-+
-+ if (match == NULL) {
-+ /* No match, but if the option string starts 'no' no match
-+ * means yes.
-+ */
-+ return no;
-+ }
-+
-+ /* Match, may be partial, check for end-of-type in option string. */
-+ if (match[len] == 0 || match[len] == ',') {
-+ /* Ok, check for type or notype. */
-+ if (match == option) {
-+ /* Exact match at start (can't be 'no') */
-+ return 1;
-+ }
-+ if (match > option+1) {
-+ if (match[-1] == ',') {
-+ /* Exact match in middle, might be 'no' */
-+ return !no;
-+ }
-+ if (match == option+2 && no) {
-+ /* Exact match to 'notype' at start. */
-+ return 0;
-+ }
-+ if (match > option+2 && match[-3] == ',' &&
-+ match[-2] == 'n' && match[-1] == 'o') {
-+ return 0;
-+ }
-+ }
-+ }
-+
-+ /* Look for another match. */
-+ optp = match+1;
-+ } while (1);
-+
-+ /* zero length type in fstab (impossible?), don't match it. */
-+ return 0;
-+}
-+
- extern int mount_main(int argc, char **argv)
- {
- struct stat statbuf;
-@@ -371,6 +421,7 @@
- char *extra_opts;
- int flags = 0;
- char *filesystemType = "auto";
-+ char *filesystemOption = 0;
- int got_filesystemType = 0;
- char *device = xmalloc(PATH_MAX);
- char *directory = xmalloc(PATH_MAX);
-@@ -393,6 +444,7 @@
- break;
- case 't':
- filesystemType = optarg;
-+ filesystemOption = optarg;
- got_filesystemType = 1;
- break;
- case 'w':
-@@ -460,6 +512,8 @@
-
- strcpy(device, m->mnt_fsname);
- strcpy(directory, m->mnt_dir);
-+ if (all && filesystemOption != 0 && !match_fs(filesystemOption, m->mnt_type))
-+ continue;
- filesystemType = bb_xstrdup(m->mnt_type);
- singlemount:
- extra_opts = string_flags;
diff --git a/recipes/busybox/busybox-1.2.1/readlink.patch b/recipes/busybox/busybox-1.2.1/readlink.patch
deleted file mode 100644
index 0c5431085a..0000000000
--- a/recipes/busybox/busybox-1.2.1/readlink.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-diff -p -u -r1.7 Config.in
---- busybox-1.00/debianutils/Config.in 15 Mar 2004 08:28:24 -0000 1.7
-+++ busybox-1.00-patched/debianutils/Config.in 16 Nov 2004 11:46:41 -0000
-@@ -24,6 +24,13 @@ config CONFIG_READLINK
- This program reads a symbolic link and returns the name
- of the file it points to
-
-+config CONFIG_FEATURE_READLINK_FOLLOW
-+ bool " Enable canonicalization by following all symlinks (-f)"
-+ default n
-+ depends on CONFIG_READLINK
-+ help
-+ Enable the readlink option (-f).
-+
- config CONFIG_RUN_PARTS
- bool "run-parts"
- default n
-diff -p -u -r1.2 readlink.c
---- busybox-1.00/debianutils/readlink.c 19 Mar 2003 09:11:41 -0000 1.2
-+++ busybox-1.00-patched/debianutils/readlink.c 16 Nov 2004 11:46:41 -0000
-@@ -23,18 +23,38 @@
- #include <errno.h>
- #include <unistd.h>
- #include <stdlib.h>
-+#include <getopt.h>
- #include "busybox.h"
-
-+#ifdef CONFIG_FEATURE_READLINK_FOLLOW
-+# define READLINK_FOLLOW "f"
-+# define READLINK_FLAG_f (1 << 0)
-+#else
-+# define READLINK_FOLLOW ""
-+#endif
-+
-+static const char readlink_options[] = READLINK_FOLLOW;
-+
- int readlink_main(int argc, char **argv)
- {
- char *buf = NULL;
-+ unsigned long opt = bb_getopt_ulflags(argc, argv, readlink_options);
-+#ifdef CONFIG_FEATURE_READLINK_FOLLOW
-+ RESERVE_CONFIG_BUFFER(resolved_path, PATH_MAX);
-+#endif
-
- /* no options, no getopt */
-
-- if (argc != 2)
-+ if (optind + 1 != argc)
- bb_show_usage();
-
-- buf = xreadlink(argv[1]);
-+#ifdef CONFIG_FEATURE_READLINK_FOLLOW
-+ if (opt & READLINK_FLAG_f) {
-+ buf = realpath(argv[optind], resolved_path);
-+ } else
-+#endif
-+ buf = xreadlink(argv[optind]);
-+
- if (!buf)
- return EXIT_FAILURE;
- puts(buf);
-diff -p -u -r1.222 usage.h
---- busybox-1.00/include/usage.h 14 Sep 2004 16:23:56 -0000 1.222
-+++ busybox-1.00-patched/include/usage.h 16 Nov 2004 11:46:42 -0000
-@@ -1985,10 +1985,18 @@
- "\t-s\tSet the system date and time (default).\n" \
- "\t-p\tPrint the date and time."
-
-+#ifdef CONFIG_FEATURE_READLINK_FOLLOW
-+#define USAGE_READLINK_FOLLOW(a) a
-+#else
-+#define USAGE_READLINK_FOLLOW(a)
-+#endif
-+
- #define readlink_trivial_usage \
-- ""
-+ USAGE_READLINK_FOLLOW("[-f] ") "FILE"
- #define readlink_full_usage \
-- "Displays the value of a symbolic link."
-+ "Displays the value of a symbolic link." \
-+ USAGE_READLINK_FOLLOW("\n\nOptions:\n" \
-+ "\t-f\tcanonicalize by following all symlinks")
-
- #define realpath_trivial_usage \
- "pathname ..."
diff --git a/recipes/busybox/busybox-1.2.1/rmmod.patch b/recipes/busybox/busybox-1.2.1/rmmod.patch
deleted file mode 100644
index 20770e0dc4..0000000000
--- a/recipes/busybox/busybox-1.2.1/rmmod.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Index: busybox-1.1.0/modutils/rmmod.c
-===================================================================
---- busybox-1.1.0.orig/modutils/rmmod.c 2006-01-11 06:43:56.000000000 +0100
-+++ busybox-1.1.0/modutils/rmmod.c 2006-03-14 16:42:14.000000000 +0100
-@@ -29,6 +29,7 @@
- #include <string.h>
- #include <sys/utsname.h>
- #include <sys/syscall.h>
-+#include <sys/utsname.h>
- #include "busybox.h"
-
- #ifdef CONFIG_FEATURE_2_6_MODULES
-@@ -64,6 +65,16 @@
- but must get */
- size_t bufsize = sizeof(bb_common_bufsiz1);
- #endif
-+#ifdef CONFIG_FEATURE_2_6_MODULES
-+ int k_version = 0;
-+ struct utsname myuname;
-+
-+ if (uname(&myuname) == 0) {
-+ if (myuname.release[0] == '2') {
-+ k_version = myuname.release[2] - '0';
-+ }
-+ }
-+#endif
-
- /* Parse command line. */
- n = bb_getopt_ulflags(argc, argv, "wfa");
-@@ -109,6 +120,10 @@
- afterslash++;
- module_name = alloca(strlen(afterslash) + 1);
- filename2modname(module_name, afterslash);
-+ if (k_version != 4)
-+ filename2modname(module_name, afterslash);
-+ else
-+ strcpy(module_name, afterslash);
- #else
- #define module_name argv[n]
- #endif
diff --git a/recipes/busybox/busybox-1.2.1/udhcppidfile-breakage.patch b/recipes/busybox/busybox-1.2.1/udhcppidfile-breakage.patch
deleted file mode 100644
index 031274908b..0000000000
--- a/recipes/busybox/busybox-1.2.1/udhcppidfile-breakage.patch
+++ /dev/null
@@ -1,57 +0,0 @@
---- busybox-1.00/networking/udhcp/common.c~udhcppidfile2
-+++ busybox-1.00/networking/udhcp/common.c
-@@ -74,7 +74,7 @@
-
- if (pid > 0) {
- /* parent */
-- if (pidfile_reassign(pidfile, pid) < 0) {
-+ if (pidfile != NULL && pidfile_reassign(pidfile, pid) < 0) {
- (void)kill(pid, SIGKILL);
- exit(1);
- } else
-@@ -119,7 +119,7 @@
- sanitize_fds();
-
- /* do some other misc startup stuff while we are here to save bytes */
-- if (pidfile_acquire(pidfile) < 0)
-+ if (pidfile != NULL && pidfile_acquire(pidfile) < 0)
- exit(1);
-
- /* equivelent of doing a fflush after every \n */
-@@ -166,7 +166,7 @@
- sanitize_fds();
-
- /* do some other misc startup stuff while we are here to save bytes */
-- if (pidfile_acquire(pidfile) < 0)
-+ if (pidfile != NULL && pidfile_acquire(pidfile) < 0)
- exit(1);
-
- /* equivelent of doing a fflush after every \n */
---- busybox-1.00/networking/udhcp/pidfile.c~udhcppidfile2
-+++ busybox-1.00/networking/udhcp/pidfile.c
-@@ -141,7 +141,11 @@
- int pidfile_acquire(const char *pidfile)
- {
- int fd, result;
-- if (!pidfile) return (-1);
-+
-+ if (pidfile == NULL) {
-+ LOG(LOG_ERR, "pidfile_acquire: filename is NULL\n");
-+ return (-1);
-+ }
-
- if ((fd = pidfile_open(pidfile)) < 0)
- return (-1);
-@@ -170,7 +174,11 @@
- int pidfile_reassign(const char *pidfile, int pid)
- {
- int fd, result;
-- if (!pidfile) return (-1);
-+
-+ if (pidfile == NULL) {
-+ LOG(LOG_ERR, "pidfile_reassign: filename is NULL\n");
-+ return (-1);
-+ }
-
- if ((fd = pidfile_open(pidfile)) < 0)
- return (-1);
diff --git a/recipes/busybox/busybox-1.2.1/udhcppidfile.patch b/recipes/busybox/busybox-1.2.1/udhcppidfile.patch
deleted file mode 100644
index b4b86b8775..0000000000
--- a/recipes/busybox/busybox-1.2.1/udhcppidfile.patch
+++ /dev/null
@@ -1,274 +0,0 @@
-Index: busybox-1.1.0/networking/udhcp/pidfile.h
-===================================================================
---- busybox-1.1.0.orig/networking/udhcp/pidfile.h 2006-01-11 06:43:50.000000000 +0100
-+++ busybox-1.1.0/networking/udhcp/pidfile.h 2006-03-14 17:15:45.000000000 +0100
-@@ -21,5 +21,5 @@
-
-
- int pidfile_acquire(const char *pidfile);
--void pidfile_write_release(int pid_fd);
-+int pidfile_reassign(const char *pidfile, int newpid);
-
-Index: busybox-1.1.0/networking/udhcp/pidfile.c
-===================================================================
---- busybox-1.1.0.orig/networking/udhcp/pidfile.c 2006-01-11 06:43:50.000000000 +0100
-+++ busybox-1.1.0/networking/udhcp/pidfile.c 2006-03-14 17:15:45.000000000 +0100
-@@ -25,6 +25,7 @@
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <errno.h>
-
- #include "pidfile.h"
- #include "common.h"
-@@ -37,39 +38,146 @@
- }
-
-
--int pidfile_acquire(const char *pidfile)
-+static int pidfile_open(const char *pidfile)
- {
-- int pid_fd;
-- if (!pidfile) return -1;
-+ int fd;
-
-- pid_fd = open(pidfile, O_CREAT | O_WRONLY, 0644);
-- if (pid_fd < 0) {
-- LOG(LOG_ERR, "Unable to open pidfile %s: %m\n", pidfile);
-- } else {
-- lockf(pid_fd, F_LOCK, 0);
-- if (!saved_pidfile)
-- atexit(pidfile_delete);
-- saved_pidfile = (char *) pidfile;
-+ if ((fd = open(pidfile, O_CREAT | O_RDWR, 0644)) < 0) {
-+ LOG(LOG_ERR, "pidfile_open: open %s failed: %m\n", pidfile);
-+ return (-1);
-+ }
-+
-+ /* NOTE: lockf is not inherited by child after fork */
-+ if (lockf(fd, F_LOCK, 0) < 0) {
-+ LOG(LOG_ERR, "pidfile_open: lock %s failed: %m\n", pidfile);
-+ close(fd);
-+ return (-1);
-+ }
-+
-+ return (fd);
-+}
-+
-+
-+static int pidfile_check(int fd, const char *pidfile)
-+{
-+ int len, pid;
-+ char buf[20];
-+
-+ if (lseek(fd, 0L, SEEK_SET) < 0) {
-+ LOG(LOG_ERR, "pidfile_check: lseek %s failed: %m\n", pidfile);
-+ return (-1);
-+ }
-+
-+ if ((len = read(fd, buf, sizeof buf - 1)) < 0) {
-+ LOG(LOG_ERR, "pidfile_check: read %s failed: %m\n", pidfile);
-+ return (-1);
-+ }
-+
-+ if (len == 0)
-+ return (0);
-+
-+ buf[len] = '\0';
-+
-+ if ((pid = atoi(buf)) <= 1) {
-+ LOG(LOG_WARNING,
-+ "pidfile_check: ignoring bogus pid (%s) in %s\n",
-+ buf, pidfile);
-+ return (0);
-+ }
-+
-+ if (kill((pid_t)pid, 0) == 0) {
-+ LOG(LOG_ERR, "pidfile_check: process %d exists (%s)\n",
-+ pid, pidfile);
-+ return (-1);
-+ }
-+
-+ if (errno != ESRCH) {
-+ LOG(LOG_ERR, "pidfile_check: kill %d failed (%s): %m\n",
-+ pid, pidfile);
-+ return (-1);
-+ }
-+
-+ return (0);
-+}
-+
-+
-+static int pidfile_store(int fd, const char *pidfile, int pid)
-+{
-+ int len;
-+ char buf[20];
-+
-+ if (lseek(fd, 0L, SEEK_SET) < 0) {
-+ LOG(LOG_ERR, "pidfile_store: lseek %s failed: %m\n", pidfile);
-+ return (-1);
-+ }
-+
-+ len = snprintf(buf, sizeof buf - 1, "%d\n", pid);
-+ buf[len] = '\0';
-+
-+ if (write(fd, buf, len) < 0) {
-+ LOG(LOG_ERR, "pidfile_store: write %s failed: %m\n",
-+ pidfile);
-+ return (-1);
-+ }
-+
-+ if (ftruncate(fd, len) < 0) {
-+ LOG(LOG_ERR, "pidfile_store: ftruncate %d failed (%s): %m\n",
-+ len, pidfile);
-+ return (-1);
- }
-
-- return pid_fd;
-+ return (0);
- }
-
-
--void pidfile_write_release(int pid_fd)
-+static void pidfile_close(int fd)
- {
-- FILE *out;
-+ (void)lseek(fd, 0L, SEEK_SET);
-+ (void)lockf(fd, F_ULOCK, 0);
-+ (void)close(fd);
-+}
-
-- if (pid_fd < 0) return;
-
-- if ((out = fdopen(pid_fd, "w")) != NULL) {
-- fprintf(out, "%d\n", getpid());
-- fclose(out);
-+int pidfile_acquire(const char *pidfile)
-+{
-+ int fd, result;
-+ if (!pidfile) return (-1);
-+
-+ if ((fd = pidfile_open(pidfile)) < 0)
-+ return (-1);
-+
-+ if ((result = pidfile_check(fd, pidfile)) == 0)
-+ result = pidfile_store(fd, pidfile, getpid());
-+
-+ pidfile_close(fd);
-+
-+ if (result == 0) {
-+ saved_pidfile = (char *) pidfile;
-+ atexit(pidfile_delete);
- }
-- lockf(pid_fd, F_UNLCK, 0);
-- close(pid_fd);
-+
-+ return (result);
- }
-
-
-+/*
-+ * reassign the pid in a pidfile - used just after a fork so a parent
-+ * can store the pid of its child into the file without any window
-+ * where the pid in the file is a dead process (which might let another
-+ * instance of the program start). Note the parent must use _exit() to
-+ * avoid triggering the unlink scheduled above in pidfile_acquire()
-+ */
-+int pidfile_reassign(const char *pidfile, int pid)
-+{
-+ int fd, result;
-+ if (!pidfile) return (-1);
-+
-+ if ((fd = pidfile_open(pidfile)) < 0)
-+ return (-1);
-
-+ result = pidfile_store(fd, pidfile, pid);
-
-+ pidfile_close(fd);
-+
-+ return (result);
-+}
-Index: busybox-1.1.0/networking/udhcp/common.c
-===================================================================
---- busybox-1.1.0.orig/networking/udhcp/common.c 2006-01-11 06:43:50.000000000 +0100
-+++ busybox-1.1.0/networking/udhcp/common.c 2006-03-14 17:15:45.000000000 +0100
-@@ -64,16 +64,34 @@
- #ifdef __uClinux__
- LOG(LOG_ERR, "Cannot background in uclinux (yet)");
- #else /* __uClinux__ */
-- int pid_fd;
-+ int pid, fd;
-
-- /* hold lock during fork. */
-- pid_fd = pidfile_acquire(pidfile);
-- if (daemon(0, 0) == -1) {
-+ /* NOTE: lockf is not inherited by the child after fork */
-+ if ((pid = fork()) < 0) {
- perror("fork");
- exit(1);
- }
-+
-+ if (pid > 0) {
-+ /* parent */
-+ if (pidfile_reassign(pidfile, pid) < 0) {
-+ (void)kill(pid, SIGKILL);
-+ exit(1);
-+ } else
-+ _exit(0);
-+ }
-+
-+ /* child */
-+ (void)chdir("/");
-+ if ((fd = open("/dev/null", O_RDWR)) >= 0) {
-+ (void)dup2(fd, 0);
-+ (void)dup2(fd, 1);
-+ (void)dup2(fd, 2);
-+ (void)close(fd);
-+ }
-+ (void)setsid();
-+
- daemonized++;
-- pidfile_write_release(pid_fd);
- #endif /* __uClinux__ */
- }
-
-@@ -97,14 +115,12 @@
-
- void start_log_and_pid(const char *client_server, const char *pidfile)
- {
-- int pid_fd;
--
- /* Make sure our syslog fd isn't overwritten */
- sanitize_fds();
-
- /* do some other misc startup stuff while we are here to save bytes */
-- pid_fd = pidfile_acquire(pidfile);
-- pidfile_write_release(pid_fd);
-+ if (pidfile_acquire(pidfile) < 0)
-+ exit(1);
-
- /* equivelent of doing a fflush after every \n */
- setlinebuf(stdout);
-@@ -150,8 +166,8 @@
- sanitize_fds();
-
- /* do some other misc startup stuff while we are here to save bytes */
-- pid_fd = pidfile_acquire(pidfile);
-- pidfile_write_release(pid_fd);
-+ if (pidfile_acquire(pidfile) < 0)
-+ exit(1);
-
- /* equivelent of doing a fflush after every \n */
- setlinebuf(stdout);
-Index: busybox-1.1.0/networking/udhcp/script.c
-===================================================================
---- busybox-1.1.0.orig/networking/udhcp/script.c 2006-01-11 06:43:50.000000000 +0100
-+++ busybox-1.1.0/networking/udhcp/script.c 2006-03-14 17:15:45.000000000 +0100
-@@ -229,6 +229,6 @@
- execle(client_config.script, client_config.script,
- name, NULL, envp);
- LOG(LOG_ERR, "script %s failed: %m", client_config.script);
-- exit(1);
-+ _exit(1);
- }
- }