# Distributed under the GPL v2
# $Id$
+ 31 Jul 2011; Sebastian Pipping <sping@gentoo.org>
+ -patches/busybox/1.7.4/1.7.4-ash-timeout.diff,
+ -patches/busybox/1.7.4/1.7.4-mdstart.diff,
+ -patches/busybox/1.7.4/1.7.4-mount-umount-i-option.diff,
+ -patches/busybox/1.7.4/1.7.4-openvt.diff,
+ -patches/busybox/1.7.4/1.7.4-static-error.diff,
+ -patches/busybox/1.7.4/1.7.4-make-3.82.diff, -patches/busybox/1.7.4/README,
+ -patches/busybox/1.7.4/busybox-1.7.4-signal-hack.patch:
+ End support for 4 years old busybox 1.7.4 (bug #377133)
+
31 Jul 2011; Sebastian Pipping <sping@gentoo.org> doc/genkernel.8.txt:
Improve doc on filing bugs
+++ /dev/null
-'read -t' support, forward-ported from Gentoo Busybox 1.1.3.
-Used during the LiveCD boot when prompting for a keymap.
-
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-
-diff -Nuar --exclude '*.orig' busybox-1.7.4/shell/ash.c busybox-1.7.4+gentoo/shell/ash.c
---- busybox-1.7.4/shell/ash.c 2007-11-03 16:06:35.000000000 -0700
-+++ busybox-1.7.4+gentoo/shell/ash.c 2008-03-11 10:21:28.000000000 -0700
-@@ -11485,11 +11485,13 @@
- int startword;
- int status;
- int i;
-+#if ENABLE_ASH_READ_NCHARS || ENABLE_ASH_READ_TIMEOUT
-+ struct termios tty, old_tty;
-+#endif
- #if ENABLE_ASH_READ_NCHARS
- int nch_flag = 0;
- int nchars = 0;
- int silent = 0;
-- struct termios tty, old_tty;
- #endif
- #if ENABLE_ASH_READ_TIMEOUT
- fd_set set;
-@@ -11566,44 +11568,74 @@
- ifs = bltinlookup("IFS");
- if (ifs == NULL)
- ifs = defifs;
--#if ENABLE_ASH_READ_NCHARS
-+#if ENABLE_ASH_READ_NCHARS || ENABLE_ASH_READ_TIMEOUT
-+#if ENABLE_ASH_READ_NCHARS && ENABLE_ASH_READ_TIMEOUT
-+ if (nch_flag || silent || ts.tv_sec || ts.tv_usec) {
-+#elif ENABLE_ASH_READ_TIMEOUT
-+ if (ts.tv_sec || ts.tv_usec) {
-+#elif ENABLE_ASH_READ_NCHARS
- if (nch_flag || silent) {
-+#endif
- tcgetattr(0, &tty);
- old_tty = tty;
-- if (nch_flag) {
-+#if ENABLE_ASH_READ_NCHARS && ENABLE_ASH_READ_TIMEOUT
-+ if (nch_flag || ts.tv_sec || ts.tv_usec)
-+#elif ENABLE_ASH_READ_TIMEOUT
-+ if (ts.tv_sec || ts.tv_usec)
-+#elif ENABLE_ASH_READ_NCHARS
-+ if (nch_flag)
-+#endif
- tty.c_lflag &= ~ICANON;
-- tty.c_cc[VMIN] = nchars;
-- }
-- if (silent) {
-- tty.c_lflag &= ~(ECHO|ECHOK|ECHONL);
-
-- }
-+
-+#if ENABLE_ASH_READ_NCHARS
-+ if (silent)
-+ tty.c_lflag &= ~(ECHO|ECHOK|ECHONL);
-+#endif
- tcsetattr(0, TCSANOW, &tty);
- }
- #endif
-+ i = 1;
-+ STARTSTACKSTR(p);
- #if ENABLE_ASH_READ_TIMEOUT
- if (ts.tv_sec || ts.tv_usec) {
- FD_ZERO(&set);
- FD_SET(0, &set);
-
- i = select(FD_SETSIZE, &set, NULL, NULL, &ts);
-- if (!i) {
-+ if (i == 1)
-+ {
-+ read(0, &c, 1);
-+ if(c == '\n' || c == 4) /* Handle newlines and EOF */
-+ i = 0; /* Don't read further... */
-+ else
-+ STPUTC(c, p); /* Ok, keep reading... */
-+ }
- #if ENABLE_ASH_READ_NCHARS
-- if (nch_flag)
-- tcsetattr(0, TCSANOW, &old_tty);
-+ if (!silent && !nch_flag)
- #endif
-- return 1;
-+ tcsetattr(0, TCSANOW, &old_tty);
-+
-+#if ENABLE_ASH_READ_NCHARS
-+ if(i == 0)
-+ {
-+ nchars = 0;
-+ nch_flag = 1;
-+ } else
-+ {
-+ if (nch_flag)
-+ nchars--;
- }
-+#endif
- }
- #endif
- status = 0;
- startword = 1;
- backslash = 0;
-- STARTSTACKSTR(p);
- #if ENABLE_ASH_READ_NCHARS
- while (!nch_flag || nchars--)
- #else
-- for (;;)
-+ for (;i > 0;)
- #endif
- {
- if (read(0, &c, 1) != 1) {
-@@ -11640,8 +11672,10 @@
- }
- }
- #if ENABLE_ASH_READ_NCHARS
-- if (nch_flag || silent)
-+ if (silent || nch_flag)
- tcsetattr(0, TCSANOW, &old_tty);
-+ if (!silent && nch_flag)
-+ printf("\n");
- #endif
-
- STACKSTRNUL(p);
+++ /dev/null
-From d508d972c7f808eec5139255f661d37817c79260 Mon Sep 17 00:00:00 2001
-From: Sebastian Pipping <sebastian@pipping.org>
-Date: Mon, 29 Nov 2010 09:52:22 +0100
-Subject: [PATCH] Split implicit and normal rules for make 3.82
-
----
- Makefile | 12 ++++++++++--
- 1 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index c1fe21b..a2bfe4b 100644
---- Makefile
-+++ Makefile
-@@ -402,7 +402,12 @@ ifeq ($(config-targets),1)
- -include $(srctree)/arch/$(ARCH)/Makefile
- export KBUILD_DEFCONFIG
-
--config %config: scripts_basic outputmakefile FORCE
-+config: scripts_basic outputmakefile FORCE
-+ $(Q)mkdir -p include
-+ $(Q)$(MAKE) $(build)=scripts/kconfig $@
-+ $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
-+
-+%config: scripts_basic outputmakefile FORCE
- $(Q)mkdir -p include
- $(Q)$(MAKE) $(build)=scripts/kconfig $@
- $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
-@@ -1239,7 +1244,10 @@ endif
- $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-
- # Modules
--/ %/: prepare scripts FORCE
-+/: prepare scripts FORCE
-+ $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
-+ $(build)=$(build-dir)
-+%/: prepare scripts FORCE
- $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
- $(build)=$(build-dir)
- %.ko: prepare scripts FORCE
---
-1.7.3.2
-
+++ /dev/null
-Forward-port the old mdstart tool from the Gentoo Busybox-1.1.3.
-Only fires the RAID_AUTORUN ioctl on existing /dev/md nodes.
-
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-
-diff -Nuar --exclude '*.orig' busybox-1.7.4/include/applets.h busybox-1.7.4+gentoo/include/applets.h
---- busybox-1.7.4/include/applets.h 2007-09-03 04:48:46.000000000 -0700
-+++ busybox-1.7.4+gentoo/include/applets.h 2008-03-11 10:25:43.000000000 -0700
-@@ -222,6 +222,7 @@
- USE_MATCHPATHCON(APPLET(matchpathcon, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
- USE_MD5SUM(APPLET_ODDNAME(md5sum, md5_sha1_sum, _BB_DIR_USR_BIN, _BB_SUID_NEVER, md5sum))
- USE_MDEV(APPLET(mdev, _BB_DIR_SBIN, _BB_SUID_NEVER))
-+USE_MDSTART(APPLET(mdstart, _BB_DIR_SBIN, _BB_SUID_NEVER))
- USE_MESG(APPLET(mesg, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
- USE_MKDIR(APPLET_NOFORK(mkdir, mkdir, _BB_DIR_BIN, _BB_SUID_NEVER, mkdir))
- //USE_MKE2FS(APPLET(mke2fs, _BB_DIR_SBIN, _BB_SUID_NEVER))
-diff -Nuar --exclude '*.orig' busybox-1.7.4/include/usage.h busybox-1.7.4+gentoo/include/usage.h
---- busybox-1.7.4/include/usage.h 2007-09-03 04:48:46.000000000 -0700
-+++ busybox-1.7.4+gentoo/include/usage.h 2008-03-11 10:19:04.000000000 -0700
-@@ -2072,6 +2072,11 @@
- "the last line match .* to override this.)\n\n" \
- )
-
-+#define mdstart_trivial_usage \
-+ "{[PARTITION] MD-NODE}..."
-+#define mdstart_full_usage \
-+ "Run the RAID_AUTORUN ioctl on the given MD number"
-+
- #define mesg_trivial_usage \
- "[y|n]"
- #define mesg_full_usage \
-diff -Nuar --exclude '*.orig' busybox-1.7.4/util-linux/Config.in busybox-1.7.4+gentoo/util-linux/Config.in
---- busybox-1.7.4/util-linux/Config.in 2007-09-03 04:48:56.000000000 -0700
-+++ busybox-1.7.4+gentoo/util-linux/Config.in 2008-03-11 10:26:20.000000000 -0700
-@@ -305,6 +305,13 @@
- /lib/firmware/ and if it exists, send it to the kernel for
- loading into the hardware.
-
-+config MDSTART
-+ bool "mdstart"
-+ default n
-+ help
-+ Allows you to autostart /dev/md devices if using an initramfs to
-+ boot.
-+
- config MKSWAP
- bool "mkswap"
- default n
-diff -Nuar --exclude '*.orig' busybox-1.7.4/util-linux/Kbuild busybox-1.7.4+gentoo/util-linux/Kbuild
---- busybox-1.7.4/util-linux/Kbuild 2007-09-03 04:48:56.000000000 -0700
-+++ busybox-1.7.4+gentoo/util-linux/Kbuild 2008-03-11 10:28:47.000000000 -0700
-@@ -18,6 +18,7 @@
- lib-$(CONFIG_IPCRM) +=ipcrm.o
- lib-$(CONFIG_IPCS) +=ipcs.o
- lib-$(CONFIG_LOSETUP) +=losetup.o
-+lib-$(CONFIG_MDSTART) +=mdStart.o
- lib-$(CONFIG_MDEV) +=mdev.o
- lib-$(CONFIG_MKFS_MINIX) +=mkfs_minix.o
- lib-$(CONFIG_MKSWAP) +=mkswap.o
-diff -Nuar --exclude '*.orig' busybox-1.7.4/util-linux/mdStart.c busybox-1.7.4+gentoo/util-linux/mdStart.c
---- busybox-1.7.4/util-linux/mdStart.c 1969-12-31 16:00:00.000000000 -0800
-+++ busybox-1.7.4+gentoo/util-linux/mdStart.c 2008-03-11 10:19:04.000000000 -0700
-@@ -0,0 +1,59 @@
-+/*
-+ * Linux 2.6(+) RAID Autostarter
-+ *
-+ * Copyright (C) 2005 by Tim Yamin <plasmaroo@gentoo.org> <plasm@roo.me.uk>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ */
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-+#include <sys/ioctl.h>
-+#include <linux/major.h>
-+#include <linux/raid/md_u.h>
-+
-+extern int
-+mdstart_main(int argc, char *argv[])
-+{
-+ int i, fd, part = 0, retval = 0;
-+
-+ if(argc < 2)
-+ {
-+ bb_show_usage();
-+ }
-+
-+ for(i = 1; i < argc; i++)
-+ {
-+ if(sscanf(argv[i], "%d", &part) == 1)
-+ continue;
-+
-+ fd = open(argv[i], 0, 0);
-+ if (fd >= 0)
-+ {
-+ ioctl(fd, RAID_AUTORUN, part);
-+ close(fd);
-+ } else
-+ {
-+ printf("Error: Failed to open %s!\n", argv[i]);
-+ retval=1;
-+ }
-+
-+ part = 0;
-+ }
-+
-+ return retval;
-+}
+++ /dev/null
-diff -ru busybox-1.7.4.orig/util-linux/mount.c busybox-1.7.4/util-linux/mount.c
---- busybox-1.7.4.orig/util-linux/mount.c 2007-09-03 06:48:56.000000000 -0500
-+++ busybox-1.7.4/util-linux/mount.c 2008-11-13 21:12:06.000000000 -0600
-@@ -1554,7 +1554,7 @@
-
- // Parse remaining options
-
-- opt = getopt32(argv, "o:t:rwanfvs", &opt_o, &fstype);
-+ opt = getopt32(argv, "o:t:rwanfvsi", &opt_o, &fstype);
- if (opt & 0x1) append_mount_options(&cmdopts, opt_o); // -o
- //if (opt & 0x2) // -t
- if (opt & 0x4) append_mount_options(&cmdopts, "ro"); // -r
-diff -ru busybox-1.7.4.orig/util-linux/umount.c busybox-1.7.4/util-linux/umount.c
---- busybox-1.7.4.orig/util-linux/umount.c 2007-09-03 06:48:56.000000000 -0500
-+++ busybox-1.7.4/util-linux/umount.c 2008-11-13 16:13:03.000000000 -0600
-@@ -12,7 +12,7 @@
- #include <getopt.h>
- #include "libbb.h"
-
--#define OPTION_STRING "flDnravdt:"
-+#define OPTION_STRING "flDnravdt:i"
- #define OPT_FORCE 1
- #define OPT_LAZY 2
- #define OPT_DONTFREELOOP 4
+++ /dev/null
-Allow a slightly wider range of valid vt numbers. Forward-ported from Gentoo
-Busybox 1.1.3.
-
-The previous spin of this patch on 1.1.3 had a 'wait(NULL);' right before
-return EXIT_SUCCESS. I don't think it's needed anymore, so I left it out.
-
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-
-diff -Nuar --exclude '*.orig' busybox-1.7.4/console-tools/openvt.c busybox-1.7.4+gentoo/console-tools/openvt.c
---- busybox-1.7.4/console-tools/openvt.c 2007-09-03 04:48:35.000000000 -0700
-+++ busybox-1.7.4+gentoo/console-tools/openvt.c 2008-03-10 10:00:55.000000000 -0700
-@@ -21,7 +21,7 @@
- bb_show_usage();
-
- /* check for illegal vt number: < 1 or > 63 */
-- sprintf(vtname, VC_FORMAT, (int)xatou_range(argv[1], 1, 63));
-+ sprintf(vtname, VC_FORMAT, (int)xatou_range(argv[1], 0, 63));
-
- bb_daemonize_or_rexec(DAEMON_CLOSE_EXTRA_FDS, argv);
- /* grab new one */
+++ /dev/null
-diff -ur busybox-1.7.4.orig/applets/applets.c busybox-1.7.4/applets/applets.c
---- busybox-1.7.4.orig/applets/applets.c 2007-09-16 13:48:10.000000000 -0500
-+++ busybox-1.7.4/applets/applets.c 2008-03-11 13:53:18.000000000 -0500
-@@ -23,7 +23,6 @@
- #warning Note that glibc is unsuitable for static linking anyway.
- #warning If you still want to do it, remove -Wl,--gc-sections
- #warning from top-level Makefile and remove this warning.
--#error Aborting compilation.
- #endif
-
-
-diff -ur busybox-1.7.4.orig/Makefile busybox-1.7.4/Makefile
---- busybox-1.7.4.orig/Makefile 2007-11-23 22:34:41.000000000 -0600
-+++ busybox-1.7.4/Makefile 2008-03-12 06:35:25.000000000 -0500
-@@ -570,7 +570,7 @@
- quiet_cmd_busybox__ ?= LINK $@
- cmd_busybox__ ?= $(srctree)/scripts/trylink $(CC) $(LDFLAGS) \
- -o $@ -Wl,-Map -Wl,$@.map \
-- -Wl,--warn-common -Wl,--sort-common -Wl,--gc-sections \
-+ -Wl,--warn-common -Wl,--sort-common \
- -Wl,--start-group $(busybox-all) -Wl,--end-group \
- $(LDLIBS)
-
+++ /dev/null
-1.7.4-ash-timeout.diff:
-This patch adds support for the -t option to the 'read' command in ash. It's
-used for prompting for the keymap. It originated with 1.1.3+gentoo or earlier.
-
-1.7.4-mdstart.diff:
-This adds a 'mdstart' command to busybox, which is used for the activation of
-individual mdraid arrays. It originated with 1.1.3+gentoo or earlier.
-
-1.7.4-openvt.diff:
-It is unknown what problem this patch fixes. It may no longer be needed.
-
-1.7.4-static-error.diff:
-This allows us to build busybox statically, even though upstream frowns upon it.
-It's important that the removal of -Wl,--gc-sections remains, or ash will be
-broken in the resulting busybox. This patch is based on the busybox ebuild.
-
-busybox-1.7.4-signal-hack.patch:
-It is unknown what this patch does. It may no longer be needed.
-
+++ /dev/null
-workaround while we get it fixed upstream
-
-http://bugs.gentoo.org/201114
-
---- libbb/u_signal_names.c
-+++ libbb/u_signal_names.c
-@@ -66,7 +66,7 @@
- #ifdef SIGTERM
- [SIGTERM ] = "TERM",
- #endif
--#ifdef SIGSTKFLT
-+#if defined(SIGSTKFLT) && SIGSTKFLT < 32
- [SIGSTKFLT] = "STKFLT",
- #endif
- #ifdef SIGCHLD
-@@ -90,10 +90,10 @
- #ifdef SIGURG
- [SIGURG ] = "URG",
- #endif
--#ifdef SIGXCPU
-+#if defined(SIGXCPU) && SIGXCPU < 32
- [SIGXCPU ] = "XCPU",
- #endif
--#ifdef SIGXFSZ
-+#if defined(SIGXFSZ) && SIGXFSZ < 32
- [SIGXFSZ ] = "XFSZ",
- #endif
- #ifdef SIGVTALRM