summaryrefslogtreecommitdiffstats
path: root/main/busybox
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-12-25 14:01:48 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2014-12-25 14:14:23 +0000
commitd2727a1656f95137bf438857fa1895f500f99c44 (patch)
treee788dbe5f57759a46ae6279add9e150c4addbc61 /main/busybox
parent7ce4446e163f8d30c6d93cc6d326626b6ec7c184 (diff)
downloadaports-d2727a1656f95137bf438857fa1895f500f99c44.tar.bz2
aports-d2727a1656f95137bf438857fa1895f500f99c44.tar.xz
main/busybox: upgrade to 1.23
Diffstat (limited to 'main/busybox')
-rw-r--r--main/busybox/0001-ifupdown-support-link-address-family.patch53
-rw-r--r--main/busybox/0001-sendmail-make-f-optional-document-its-default-value.patch119
-rw-r--r--main/busybox/0001-top-fix-and-merge-code-to-parse-proc-meminfo.patch288
-rw-r--r--main/busybox/0002-sendmail-use-FQDN-in-default-envelope-sender.patch42
-rw-r--r--main/busybox/APKBUILD74
-rw-r--r--main/busybox/busybox-1.22.1-ash.patch20
-rw-r--r--main/busybox/busybox-1.22.1-date.patch30
-rw-r--r--main/busybox/busybox-1.22.1-iplink.patch19
-rw-r--r--main/busybox/busybox-1.22.1-nc.patch15
-rw-r--r--main/busybox/busyboxconfig44
-rw-r--r--main/busybox/fix-top.patch14
11 files changed, 52 insertions, 666 deletions
diff --git a/main/busybox/0001-ifupdown-support-link-address-family.patch b/main/busybox/0001-ifupdown-support-link-address-family.patch
deleted file mode 100644
index c9102c865..000000000
--- a/main/busybox/0001-ifupdown-support-link-address-family.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 93f75fe7ab255147e67517dc9c9bd19e3faa6568 Mon Sep 17 00:00:00 2001
-From: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-Date: Sat, 21 Dec 2013 17:32:57 +0200
-Subject: [PATCH] ifupdown: support 'link' address family
-
-Does not configure anything. L2 configuration hook scripts should do
-their job on receiving ADDRFAM=link. Configuration will be done only
-once, irrespective of L3 protocols used.
-
-Using the 'link' family in the interfaces file conforms to the Debian
-implementation:
-
-http://sources.debian.net/src/ifupdown/0.7.47.1/link.defn
-
-Signed-off-by: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
----
- networking/ifupdown.c | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/networking/ifupdown.c b/networking/ifupdown.c
-index 0f0857c..91a786d 100644
---- a/networking/ifupdown.c
-+++ b/networking/ifupdown.c
-@@ -685,6 +685,18 @@ static const struct address_family_t addr_inet = {
-
- #endif /* FEATURE_IFUPDOWN_IPV4 */
-
-+static int FAST_FUNC link_up_down(struct interface_defn_t *ifd UNUSED_PARAM, execfn *exec UNUSED_PARAM)
-+{
-+ return 1;
-+}
-+
-+static const struct method_t link_methods[] = {
-+ {"none", link_up_down, link_up_down}
-+};
-+
-+static const struct address_family_t addr_link = {
-+ "link", ARRAY_SIZE(link_methods), link_methods
-+};
-
- /* Returns pointer to the next word, or NULL.
- * In 1st case, advances *buf to the word after this one.
-@@ -831,6 +843,7 @@ static struct interfaces_file_t *read_interfaces(const char *filename, struct in
- #if ENABLE_FEATURE_IFUPDOWN_IPV6
- &addr_inet6,
- #endif
-+ &addr_link,
- NULL
- };
- char *iface_name;
---
-1.8.1.4
-
diff --git a/main/busybox/0001-sendmail-make-f-optional-document-its-default-value.patch b/main/busybox/0001-sendmail-make-f-optional-document-its-default-value.patch
deleted file mode 100644
index d30ed4a2b..000000000
--- a/main/busybox/0001-sendmail-make-f-optional-document-its-default-value.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 0bf0f3dee27f3d0ec953a43f800245abbe43aa6f Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Wed, 5 Feb 2014 15:01:39 +0100
-Subject: [PATCH 1/2] sendmail: make -f optional, document its default value
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- mailutils/sendmail.c | 67 +++++++++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 56 insertions(+), 11 deletions(-)
-
-diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c
-index b5aa1d1..824109d 100644
---- a/mailutils/sendmail.c
-+++ b/mailutils/sendmail.c
-@@ -15,7 +15,8 @@
- //usage: "Read email from stdin and send it\n"
- //usage: "\nStandard options:"
- //usage: "\n -t Read additional recipients from message body"
--//usage: "\n -f SENDER Sender (required)"
-+//usage: "\n -f SENDER For use in MAIL FROM:<sender>. Can be empty string"
-+//usage: "\n Default: -auUSER, or username of current UID"
- //usage: "\n -o OPTIONS Various options. -oi implied, others are ignored"
- //usage: "\n -i -oi synonym. implied and ignored"
- //usage: "\n"
-@@ -40,6 +41,52 @@
- //usage: "\nUse makemime to create emails with attachments"
- //usage: )
-
-+/* Currently we don't sanitize or escape user-supplied SENDER and RECIPIENT_EMAILs.
-+ * We may need to do so. For one, '.' in usernames seems to require escaping!
-+ *
-+ * From http://cr.yp.to/smtp/address.html:
-+ *
-+ * SMTP offers three ways to encode a character inside an address:
-+ *
-+ * "safe": the character, if it is not <>()[].,;:@, backslash,
-+ * double-quote, space, or an ASCII control character;
-+ * "quoted": the character, if it is not \012, \015, backslash,
-+ * or double-quote; or
-+ * "slashed": backslash followed by the character.
-+ *
-+ * An encoded box part is either (1) a sequence of one or more slashed
-+ * or safe characters or (2) a double quote, a sequence of zero or more
-+ * slashed or quoted characters, and a double quote. It represents
-+ * the concatenation of the characters encoded inside it.
-+ *
-+ * For example, the encoded box parts
-+ * angels
-+ * \a\n\g\e\l\s
-+ * "\a\n\g\e\l\s"
-+ * "angels"
-+ * "ang\els"
-+ * all represent the 6-byte string "angels", and the encoded box parts
-+ * a\,comma
-+ * \a\,\c\o\m\m\a
-+ * "a,comma"
-+ * all represent the 7-byte string "a,comma".
-+ *
-+ * An encoded address contains
-+ * the byte <;
-+ * optionally, a route followed by a colon;
-+ * an encoded box part, the byte @, and a domain; and
-+ * the byte >.
-+ *
-+ * It represents an Internet mail address, given by concatenating
-+ * the string represented by the encoded box part, the byte @,
-+ * and the domain. For example, the encoded addresses
-+ * <God@heaven.af.mil>
-+ * <\God@heaven.af.mil>
-+ * <"God"@heaven.af.mil>
-+ * <@gateway.af.mil,@uucp.local:"\G\o\d"@heaven.af.mil>
-+ * all represent the Internet mail address "God@heaven.af.mil".
-+ */
-+
- #include "libbb.h"
- #include "mail.h"
-
-@@ -163,7 +210,7 @@ int sendmail_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
- int sendmail_main(int argc UNUSED_PARAM, char **argv)
- {
- char *opt_connect = opt_connect;
-- char *opt_from;
-+ char *opt_from = NULL;
- char *s;
- llist_t *list = NULL;
- char *host = sane_address(safe_gethostname());
-@@ -199,8 +246,8 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
- G.fp0 = xfdopen_for_read(3);
-
- // parse options
-- // -v is a counter, -f is required. -H and -S are mutually exclusive, -a is a list
-- opt_complementary = "vv:f:w+:H--S:S--H:a::";
-+ // -v is a counter, -H and -S are mutually exclusive, -a is a list
-+ opt_complementary = "vv:w+:H--S:S--H:a::";
- // N.B. since -H and -S are mutually exclusive they do not interfere in opt_connect
- // -a is for ssmtp (http://downloads.openwrt.org/people/nico/man/man8/ssmtp.8.html) compatibility,
- // it is still under development.
-@@ -304,13 +351,11 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
- // Since reading from console may defeat usability, the solution is either to read from a predefined
- // file descriptor (e.g. 4), or again from a secured file.
-
-- // got no sender address? -> use system username as a resort
-- // N.B. we marked -f as required option!
-- //if (!G.user) {
-- // // N.B. IMHO getenv("USER") can be way easily spoofed!
-- // G.user = xuid2uname(getuid());
-- // opt_from = xasprintf("%s@%s", G.user, domain);
-- //}
-+ // got no sender address? use auth name, then UID username as a last resort
-+ if (!opt_from) {
-+ opt_from = G.user ? G.user : xuid2uname(getuid());
-+ }
-+
- smtp_checkp("MAIL FROM:<%s>", opt_from, 250);
-
- // process message
---
-1.8.3.1
-
diff --git a/main/busybox/0001-top-fix-and-merge-code-to-parse-proc-meminfo.patch b/main/busybox/0001-top-fix-and-merge-code-to-parse-proc-meminfo.patch
deleted file mode 100644
index 86fa9707a..000000000
--- a/main/busybox/0001-top-fix-and-merge-code-to-parse-proc-meminfo.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-From 7df1f1dda1f997c44800d16a9a12cf6cae2ed7e7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Mon, 21 Jul 2014 14:14:24 +0300
-Subject: [PATCH] top: fix and merge code to parse /proc/meminfo
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-display_header() code to parse meminfo as is was buggy:
-- uninitialized variables were used if meminfo was not as expected
-- meminfo parsing failed on new kernels (3.14+) as new field 'MemAvailable'
- was introduced between MemFree and Buffers
-- shared memory was handled only for ancient kernels (2.4.x and earlier)
-
-as result Buffers and shared memory fields were shown with bogus values
-on current kernels.
-
-The new code does not try to parse the old style summary header, as the
-separated fields are always present (it saves code size). Additionally,
-both Shmem (2.6+) and MemShared (2.4 and earlier) fields are now parsed
-and summed for shared memory usage; as only one of them exists depending
-on kernel version.
-
-display_topmem_header() parses also meminfo so this makes it use the
-same code for code shrink.
-
-function old new delta
-display_header - 681 +681
-display_topmem_process_list 465 684 +219
-parse_meminfo - 189 +189
-static.fields - 106 +106
-static.match 132 - -132
-.rodata 120254 120117 -137
-display_topmem_header 513 - -513
-display_process_list 1705 667 -1038
-------------------------------------------------------------------------------
-(add/remove: 3/2 grow/shrink: 1/2 up/down: 1195/-1820) Total: -625 bytes
-
-Signed-off-by: Timo Teräs <timo.teras@iki.fi>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- procps/top.c | 196 ++++++++++++++++++++++++++---------------------------------
- 1 file changed, 86 insertions(+), 110 deletions(-)
-
-diff --git a/procps/top.c b/procps/top.c
-index 530f45f..62f9421 100644
---- a/procps/top.c
-+++ b/procps/top.c
-@@ -499,85 +499,94 @@ static void display_cpus(int scr_width, char *scrbuf, int *lines_rem_p)
- # define display_cpus(scr_width, scrbuf, lines_rem) ((void)0)
- #endif
-
--static unsigned long display_header(int scr_width, int *lines_rem_p)
--{
-- FILE *fp;
-- char buf[80];
-- char scrbuf[80];
-- unsigned long total, used, mfree, shared, buffers, cached;
-+enum {
-+ MI_MEMTOTAL,
-+ MI_MEMFREE,
-+ MI_MEMSHARED,
-+ MI_SHMEM,
-+ MI_BUFFERS,
-+ MI_CACHED,
-+ MI_SWAPTOTAL,
-+ MI_SWAPFREE,
-+ MI_DIRTY,
-+ MI_WRITEBACK,
-+ MI_ANONPAGES,
-+ MI_MAPPED,
-+ MI_SLAB,
-+ MI_MAX
-+};
-
-- /* read memory info */
-- fp = xfopen_for_read("meminfo");
-+static void parse_meminfo(unsigned long meminfo[MI_MAX])
-+{
-+ static const char fields[] =
-+ "MemTotal\0"
-+ "MemFree\0"
-+ "MemShared\0"
-+ "Shmem\0"
-+ "Buffers\0"
-+ "Cached\0"
-+ "SwapTotal\0"
-+ "SwapFree\0"
-+ "Dirty\0"
-+ "Writeback\0"
-+ "AnonPages\0"
-+ "Mapped\0"
-+ "Slab\0";
-+ char buf[60]; /* actual lines we expect are ~30 chars or less */
-+ FILE *f;
-+ int i;
-
-- /*
-- * Old kernels (such as 2.4.x) had a nice summary of memory info that
-- * we could parse, however this is gone entirely in 2.6. Try parsing
-- * the old way first, and if that fails, parse each field manually.
-- *
-- * First, we read in the first line. Old kernels will have bogus
-- * strings we don't care about, whereas new kernels will start right
-- * out with MemTotal:
-- * -- PFM.
-- */
-- if (fscanf(fp, "MemTotal: %lu %s\n", &total, buf) != 2) {
-- fgets(buf, sizeof(buf), fp); /* skip first line */
--
-- fscanf(fp, "Mem: %lu %lu %lu %lu %lu %lu",
-- &total, &used, &mfree, &shared, &buffers, &cached);
-- /* convert to kilobytes */
-- used /= 1024;
-- mfree /= 1024;
-- shared /= 1024;
-- buffers /= 1024;
-- cached /= 1024;
-- total /= 1024;
-- } else {
-- /*
-- * Revert to manual parsing, which incidentally already has the
-- * sizes in kilobytes. This should be safe for both 2.4 and
-- * 2.6.
-- */
-- fscanf(fp, "MemFree: %lu %s\n", &mfree, buf);
-+ memset(meminfo, 0, sizeof(meminfo));
-+ f = xfopen_for_read("meminfo");
-+ while (fgets(buf, sizeof(buf), f) != NULL) {
-+ char *c = strchr(buf, ':');
-+ if (!c)
-+ continue;
-+ *c = '\0';
-+ i = index_in_strings(fields, buf);
-+ if (i >= 0)
-+ meminfo[i] = strtoul(c+1, NULL, 10);
-+ }
-+ fclose(f);
-+}
-
-- /*
-- * MemShared: is no longer present in 2.6. Report this as 0,
-- * to maintain consistent behavior with normal procps.
-- */
-- if (fscanf(fp, "MemShared: %lu %s\n", &shared, buf) != 2)
-- shared = 0;
-
-- fscanf(fp, "Buffers: %lu %s\n", &buffers, buf);
-- fscanf(fp, "Cached: %lu %s\n", &cached, buf);
-+static unsigned long display_header(int scr_width, int *lines_rem_p)
-+{
-+ char scrbuf[100]; /* [80] was a bit too low on 8Gb ram box */
-+ char *buf;
-+ unsigned long meminfo[MI_MAX];
-
-- used = total - mfree;
-- }
-- fclose(fp);
-+ parse_meminfo(meminfo);
-
-- /* output memory info */
-+ /* Output memory info */
- if (scr_width > (int)sizeof(scrbuf))
- scr_width = sizeof(scrbuf);
- snprintf(scrbuf, scr_width,
- "Mem: %luK used, %luK free, %luK shrd, %luK buff, %luK cached",
-- used, mfree, shared, buffers, cached);
-- /* go to top & clear to the end of screen */
-+ meminfo[MI_MEMTOTAL] - meminfo[MI_MEMFREE],
-+ meminfo[MI_MEMFREE],
-+ meminfo[MI_MEMSHARED] + meminfo[MI_SHMEM],
-+ meminfo[MI_BUFFERS],
-+ meminfo[MI_CACHED]);
-+ /* Go to top & clear to the end of screen */
- printf(OPT_BATCH_MODE ? "%s\n" : "\033[H\033[J%s\n", scrbuf);
- (*lines_rem_p)--;
-
-- /* Display CPU time split as percentage of total time
-- * This displays either a cumulative line or one line per CPU
-+ /* Display CPU time split as percentage of total time.
-+ * This displays either a cumulative line or one line per CPU.
- */
- display_cpus(scr_width, scrbuf, lines_rem_p);
-
-- /* read load average as a string */
-- buf[0] = '\0';
-- open_read_close("loadavg", buf, sizeof(buf) - 1);
-- buf[sizeof(buf) - 1] = '\n';
-- *strchr(buf, '\n') = '\0';
-- snprintf(scrbuf, scr_width, "Load average: %s", buf);
-+ /* Read load average as a string */
-+ buf = stpcpy(scrbuf, "Load average: ");
-+ open_read_close("loadavg", buf, sizeof(scrbuf) - sizeof("Load average: "));
-+ scrbuf[scr_width - 1] = '\0';
-+ strchrnul(buf, '\n')[0] = '\0';
- puts(scrbuf);
- (*lines_rem_p)--;
-
-- return total;
-+ return meminfo[MI_MEMTOTAL];
- }
-
- static NOINLINE void display_process_list(int lines_rem, int scr_width)
-@@ -781,64 +790,31 @@ static int topmem_sort(char *a, char *b)
- /* display header info (meminfo / loadavg) */
- static void display_topmem_header(int scr_width, int *lines_rem_p)
- {
-- enum {
-- TOTAL = 0, MFREE, BUF, CACHE,
-- SWAPTOTAL, SWAPFREE, DIRTY,
-- MWRITE, ANON, MAP, SLAB,
-- NUM_FIELDS
-- };
-- static const char match[NUM_FIELDS][12] = {
-- "\x09" "MemTotal:", // TOTAL
-- "\x08" "MemFree:", // MFREE
-- "\x08" "Buffers:", // BUF
-- "\x07" "Cached:", // CACHE
-- "\x0a" "SwapTotal:", // SWAPTOTAL
-- "\x09" "SwapFree:", // SWAPFREE
-- "\x06" "Dirty:", // DIRTY
-- "\x0a" "Writeback:", // MWRITE
-- "\x0a" "AnonPages:", // ANON
-- "\x07" "Mapped:", // MAP
-- "\x05" "Slab:", // SLAB
-- };
-- char meminfo_buf[4 * 1024];
-- const char *Z[NUM_FIELDS];
-- unsigned i;
-- int sz;
--
-- for (i = 0; i < NUM_FIELDS; i++)
-- Z[i] = "?";
--
-- /* read memory info */
-- sz = open_read_close("meminfo", meminfo_buf, sizeof(meminfo_buf) - 1);
-- if (sz >= 0) {
-- char *p = meminfo_buf;
-- meminfo_buf[sz] = '\0';
-- /* Note that fields always appear in the match[] order */
-- for (i = 0; i < NUM_FIELDS; i++) {
-- char *found = strstr(p, match[i] + 1);
-- if (found) {
-- /* Cut "NNNN" out of " NNNN kb" */
-- char *s = skip_whitespace(found + match[i][0]);
-- p = skip_non_whitespace(s);
-- *p++ = '\0';
-- Z[i] = s;
-- }
-- }
-- }
-+ unsigned long meminfo[MI_MAX];
-+
-+ parse_meminfo(meminfo);
-
- snprintf(line_buf, LINE_BUF_SIZE,
-- "Mem total:%s anon:%s map:%s free:%s",
-- Z[TOTAL], Z[ANON], Z[MAP], Z[MFREE]);
-+ "Mem total:%lu anon:%lu map:%lu free:%lu",
-+ meminfo[MI_MEMTOTAL],
-+ meminfo[MI_ANONPAGES],
-+ meminfo[MI_MAPPED],
-+ meminfo[MI_MEMFREE]);
- printf(OPT_BATCH_MODE ? "%.*s\n" : "\033[H\033[J%.*s\n", scr_width, line_buf);
-
- snprintf(line_buf, LINE_BUF_SIZE,
-- " slab:%s buf:%s cache:%s dirty:%s write:%s",
-- Z[SLAB], Z[BUF], Z[CACHE], Z[DIRTY], Z[MWRITE]);
-+ " slab:%lu buf:%lu cache:%lu dirty:%lu write:%lu",
-+ meminfo[MI_SLAB],
-+ meminfo[MI_BUFFERS],
-+ meminfo[MI_CACHED],
-+ meminfo[MI_DIRTY],
-+ meminfo[MI_WRITEBACK]);
- printf("%.*s\n", scr_width, line_buf);
-
- snprintf(line_buf, LINE_BUF_SIZE,
-- "Swap total:%s free:%s", // TODO: % used?
-- Z[SWAPTOTAL], Z[SWAPFREE]);
-+ "Swap total:%lu free:%lu", // TODO: % used?
-+ meminfo[MI_SWAPTOTAL],
-+ meminfo[MI_SWAPFREE]);
- printf("%.*s\n", scr_width, line_buf);
-
- (*lines_rem_p) -= 3;
---
-2.0.3
-
diff --git a/main/busybox/0002-sendmail-use-FQDN-in-default-envelope-sender.patch b/main/busybox/0002-sendmail-use-FQDN-in-default-envelope-sender.patch
deleted file mode 100644
index 0c0f3dc78..000000000
--- a/main/busybox/0002-sendmail-use-FQDN-in-default-envelope-sender.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 545f970465584ccab628f1528951541f5984aa0c Mon Sep 17 00:00:00 2001
-From: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-Date: Sun, 9 Feb 2014 09:49:36 +0100
-Subject: [PATCH 2/2] sendmail: use FQDN in default envelope sender
-
-RFC 5321 requires the return path to be supplied with a proper domain
-name.
-
-Signed-off-by: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- mailutils/sendmail.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c
-index 824109d..9455b4e 100644
---- a/mailutils/sendmail.c
-+++ b/mailutils/sendmail.c
-@@ -326,7 +326,6 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
- // we should start with modern EHLO
- if (250 != smtp_checkp("EHLO %s", host, -1))
- smtp_checkp("HELO %s", host, 250);
-- free(host);
-
- // perform authentication
- if (opts & OPT_a) {
-@@ -353,8 +352,11 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
-
- // got no sender address? use auth name, then UID username as a last resort
- if (!opt_from) {
-- opt_from = G.user ? G.user : xuid2uname(getuid());
-+ opt_from = xasprintf("%s@%s",
-+ G.user ? G.user : xuid2uname(getuid()),
-+ xgethostbyname(host)->h_name);
- }
-+ free(host);
-
- smtp_checkp("MAIL FROM:<%s>", opt_from, 250);
-
---
-1.8.3.1
-
diff --git a/main/busybox/APKBUILD b/main/busybox/APKBUILD
index dd21d7af6..c94229671 100644
--- a/main/busybox/APKBUILD
+++ b/main/busybox/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=busybox
-pkgver=1.22.1
-pkgrel=14
+pkgver=1.23.0
+pkgrel=0
pkgdesc="Size optimized toolbox of many common UNIX utilities"
url=http://busybox.net
arch="all"
license="GPL-2"
depends=
+makedepends="linux-headers"
install="$pkgname.post-install $pkgname.post-upgrade"
subpackages="$pkgname-static"
options="suid"
@@ -21,20 +22,10 @@ source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2
loginutils-sha512.patch
udhcpc-discover-retries.patch
- busybox-1.22.1-ash.patch
- busybox-1.22.1-date.patch
- busybox-1.22.1-iplink.patch
- busybox-1.22.1-nc.patch
-
0001-ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
0001-ifupdown-use-x-hostname-NAME-with-udhcpc.patch
- 0001-ifupdown-support-link-address-family.patch
- 0001-sendmail-make-f-optional-document-its-default-value.patch
- 0002-sendmail-use-FQDN-in-default-envelope-sender.patch
0001-linedit-deluser-use-POSIX-getpwent-instead-of-getpwe.patch
- 0001-top-fix-and-merge-code-to-parse-proc-meminfo.patch
- fix-top.patch
0001-diff-add-support-for-no-dereference.patch
1000-fbsplash-use-virtual-y-size-in-mmap-size-calculation.patch
@@ -67,6 +58,17 @@ build() {
msg "Building bbsuid"
${CC:-${CROSS_COMPILE}gcc} ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "$srcdir"/bbsuid.c -o "$_dyndir"/bbsuid || return 1
+ # build dynamic
+ cd "$_dyndir"
+ msg "Building dynamic busybox"
+ cp "$_config" .config
+ [ "$CLIBC" = musl ] && sed -i \
+ -e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \
+ .config
+ make -C "$_sdir" O="$PWD" silentoldconfig || return 1
+ make || return 1
+
+ # build static
cd "$_staticdir"
msg "Building static busybox"
sed -e "s/.*CONFIG_PIE.*/\# CONFIG_PIE is not set/" \
@@ -80,15 +82,6 @@ build() {
make || return 1
mv busybox busybox.static
- # build dynamic
- cd "$_dyndir"
- msg "Building dynamic busybox"
- cp "$_config" .config
- [ "$CLIBC" = musl ] && sed -i \
- -e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \
- .config
- make -C "$_sdir" O="$PWD" silentoldconfig || return 1
- make || return 1
}
package() {
@@ -119,7 +112,7 @@ static() {
"$subpkgdir"/bin/busybox.static
}
-md5sums="337d1a15ab1cb1d4ed423168b1eb7d7e busybox-1.22.1.tar.bz2
+md5sums="6dffeb16044c6022476c64744492106a busybox-1.23.0.tar.bz2
8485cf1e389e891914cbb8771a6d9bbd bbsuid.c
d64b58a30892c558bdbab7f0d0997577 nologin.c
4c0f3b486eaa0674961b7ddcd0c60a9b busybox-1.11.1-bb.patch
@@ -127,25 +120,16 @@ b5375210f13fd6e1ca61a565e8fabd35 busybox-uname-is-not-gnu.patch
c5a8dbc8696db6da9c4624b0e11d8fba bb-app-location.patch
8c42c9ef0f0419c314c86bcaf7796106 loginutils-sha512.patch
91a7584a562a72ba886936558e576bbd udhcpc-discover-retries.patch
-a2dad16b8d7d29ea8120b6d27cf98529 busybox-1.22.1-ash.patch
-bc381f9ceb3824141c968f5bc4353943 busybox-1.22.1-date.patch
-24686ec2750a8703feb57fc9c6aaed1d busybox-1.22.1-iplink.patch
-69eecaae5f812d08655dfdf34b60503f busybox-1.22.1-nc.patch
04eeda8c49d4688e6dec02451f8b6aae 0001-ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
e1c183cbe1ca18a0fa0d9597314076c9 0001-ifupdown-use-x-hostname-NAME-with-udhcpc.patch
-b15c67be5ccb3e523f540d8e218d5c85 0001-ifupdown-support-link-address-family.patch
-d372d376820957fd5f2aee158af9867e 0001-sendmail-make-f-optional-document-its-default-value.patch
-9d83db6173fe5b0fb8ee6ce741d5bb18 0002-sendmail-use-FQDN-in-default-envelope-sender.patch
239dbe5dae5d36bbf73548b2749a22b1 0001-linedit-deluser-use-POSIX-getpwent-instead-of-getpwe.patch
-7cadebb1071d648b947cfbcca9839721 0001-top-fix-and-merge-code-to-parse-proc-meminfo.patch
-f2821edec523aadb36c3973d14386c1c fix-top.patch
69fa40bee9abec058427bf67fde1b61e 0001-diff-add-support-for-no-dereference.patch
699ce5aa1095ba4419cd595cec8a8f75 1000-fbsplash-use-virtual-y-size-in-mmap-size-calculation.patch
b56d306ccba574da78dff060b7330806 1001-fbsplash-support-console-switching.patch
4fe5f9e973674c7db3d07f295c363a7c 1002-fbsplash-support-image-and-bar-alignment-and-positio.patch
-2fe6e74affe7d4e5e112035cead59432 busyboxconfig
+3cff842a3618c84465d7ef5425c8749b busyboxconfig
befaac2c59c380e36a452b3f1c1d4a3a glibc.patch"
-sha256sums="ae0b029d0a9e4dd71a077a790840e496dd838998e4571b87b60fed7462b6678b busybox-1.22.1.tar.bz2
+sha256sums="483ab594dd962ddbb332fd24e36ffdd6e36ac2182fbff055c56e1ca49fda09e4 busybox-1.23.0.tar.bz2
81957f1fe0c386120dad1c8174ccc1fcfeed98c14d229db7d164d4fb4c938b3d bbsuid.c
9bbf0bec82e6d6907474958f3be048c54657fbf49207810b7e4d4d6146f0069d nologin.c
327bb8049e2726351a5c8b6b2cef864f6ce58725d4453983f97092ea73656ccc busybox-1.11.1-bb.patch
@@ -153,25 +137,16 @@ a31ce8bcb8b81b20e80ffa407600a530d085806c6471f4e4249fcb3a491b79ef busybox-uname-
576366b4d50f1078da6c0364ef70415de92d97c93c64f4d790b11d7a34cdccd2 bb-app-location.patch
57674b20158c0b266ed028b0c65299f9cbcad7d33d19c9fcc403d3967daba493 loginutils-sha512.patch
90825a443339f1c8c249d05f7b025ce53e374d305f8e113d98d45146b105494d udhcpc-discover-retries.patch
-9917257771ab715480427a6b744785b035d381e7ec0de381faf945bc7abadb97 busybox-1.22.1-ash.patch
-8502dd7454e948a56fcd8201f4fe9d629d2844b9df2bacff7ee0bb09398d12e8 busybox-1.22.1-date.patch
-186b41734e43ee117cb367055ce6a4d5b3aac671c09d71f2a6347793874d653b busybox-1.22.1-iplink.patch
-0d2f9ba2e9e5db813fe9feb6fc84052ac85403ce2debefb8b1281a05aadec052 busybox-1.22.1-nc.patch
2e9d56335ca39e944b9abd9ecc91d0e47a3fe3434f8b7ec3f526bc8fa0895ada 0001-ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
53563c6dc4db13004d0b37f7bf1748e861b5a5c4244c1d34f102c23b689420c5 0001-ifupdown-use-x-hostname-NAME-with-udhcpc.patch
-9a41b920dd7ee4746866f9dd4ae42899198cd9b10bfa433f2f5ead8083957da2 0001-ifupdown-support-link-address-family.patch
-422ce68917dadf1a49085df2a00ffab670e2d0866dcdb7209ee49318ad195fca 0001-sendmail-make-f-optional-document-its-default-value.patch
-7c88ef1d837ec8efb7c21e5b1b16e4ac3060ccde7ad5f698e9e6ef630d412593 0002-sendmail-use-FQDN-in-default-envelope-sender.patch
ac2cd5fed91bfaec22ed1f2766396d0feb29b9b96f20b2c12d5d8ac8769afae9 0001-linedit-deluser-use-POSIX-getpwent-instead-of-getpwe.patch
-79c6e19853a4ceecfec65311e5f8e66033243b8250829c06420d27d8240f1775 0001-top-fix-and-merge-code-to-parse-proc-meminfo.patch
-d4673907d58ce80e78a3bfe3c2414b15e7a2b072cfea0c87c2ae9f709744b9ec fix-top.patch
70180473e3939402e460b25de8273a5ce7f62b130a9efe31f33d847b2406ac92 0001-diff-add-support-for-no-dereference.patch
043963183cad556bdae5d5608180f0cb76cf7eede175cd97aa002a787780500f 1000-fbsplash-use-virtual-y-size-in-mmap-size-calculation.patch
b8b0b16ed67b0159256193b1d2108b8ef9aa8a334ab81e463bb970c71257da9a 1001-fbsplash-support-console-switching.patch
e1f3fad8e21dfd72cfcae7ab3ba31d7938e964e0f9ec08b2da0b14d462435424 1002-fbsplash-support-image-and-bar-alignment-and-positio.patch
-9bfb197fb57f9b3ac5b7a8800dfda6e5f7bee10db5e892d58176fa3733fe5229 busyboxconfig
+342bb69c144a1e63d7a7fe4c24578ce5b483c09751ac16bb36d1b88929068141 busyboxconfig
c604ef791c31d35a8c5ee4558d21428a46f37a6d762c4a7e29864f4037fc44a0 glibc.patch"
-sha512sums="3e99fe373d638f714c3a61e1b02493d85ca532f472df038f7557db518ded38347072882ed568852941be7aac46fc34007257b4287375335ff5a09b60b295ce80 busybox-1.22.1.tar.bz2
+sha512sums="02c8f9dd9e47ad67b417fa58ba952bbdda6e79bad5399fba3d8217803053c2fd045228bd76d56e97d40c98296841dc66e4fa829887c05378a83bdeabafeb7f72 busybox-1.23.0.tar.bz2
16b3dd6a8b76b062d51458351fcb44f84b49eb4bf898584c933df90fb2cb3966f9547865a4d7447589bb20b7c203beb04ff7512f76f85d29138d2cff4eb9ee81 bbsuid.c
4e7c291a70e879b74c0fc07c54a73ef50537d8be68fee6b2d409425c07afd2d67f9b6afcd8c33a7971014913cc5de85e45079681c9e77200c6cc2f34acfba6d2 nologin.c
eb7cce973bfd53ce3350713437b9e2751becfb8dfb10b14f27c4f812297c403b90f80dc2906179d499e8dffbe6df8aa37ae27625c552162923d59fe35b55b32b busybox-1.11.1-bb.patch
@@ -179,21 +154,12 @@ eb7cce973bfd53ce3350713437b9e2751becfb8dfb10b14f27c4f812297c403b90f80dc2906179d4
5c42b05be69c834c9fd5372c6b0d55a6399c74146a94ea09eae7285dd4fa75d1bde38bf7ab73e98638f65eb72db02115453cbdfe85a0085d742940366f617c7d bb-app-location.patch
69af4800fcf765b4ae029daced7ff171b6b04d810c94a987c7ba848e275a27b77b18b38df1b85f4a12c4a47ed42f62e0768260eb1198e2aff1c3cea898b85c61 loginutils-sha512.patch
34415fe69f6b8d42756046aa8e6d9e4f64a3b0ceb9f57c4c988e35870fe975f05d0ac76f1f9a712196e9c59e67aa2a54abf398242009134fb3aca342c25a3646 udhcpc-discover-retries.patch
-000bbc9f1b87b676fab5d86c6f535008f2e99e830af9a48354d669b457998044c1d7ac74090f1d2ae56c14eecf88ae9a15eba61c5347f5a9124b518d0f278051 busybox-1.22.1-ash.patch
-0836ef682e24fc0e6d660d0d835200d5f4cd863691a6b58d071e40d001923664389f61670037140c2f95deb2080a93c989037308c761ac9304165d83cbfd3d34 busybox-1.22.1-date.patch
-f213d11c842841a5b7a6c8b1ffb38719eb038cde220b06f8b5419e63998e21629b0e3f481ad7549d67a764e113abe524d8a7fa0fd9286b8b355a1f20211fd889 busybox-1.22.1-iplink.patch
-9988abf5936f8b8d952627999630c40cbfb4f6f1b91030a2692bbaa7b7e8516758a1ce0959bb5122c6911cd547ee04fce29a0c60c91ccf25e82f59ca52ac1e8f busybox-1.22.1-nc.patch
f2ed7bf994766a20ceecb28bea8c66307b6b66cdd7099408b1f29a529786ce07e55824b21256321708663e00d6fe9428480b0d3e121b67d6ebd8a8a87b1486d1 0001-ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
b1a1cc2ada657a3d3364c8c96853575d73784e769cd8768c170c27a3e59abd2beace75dff6d5047c4391725e961d93149f9c3f45ed75fb1c582bf18b818282c9 0001-ifupdown-use-x-hostname-NAME-with-udhcpc.patch
-2dcda497ba3b7c0a7dc9d85e08efa71e51c57e84967fa1a5f06d48f29c9ee9f14a1931c1c2854e9632a5db785c8e72df10bdfb0735a9ecad7a8d390fff74abd1 0001-ifupdown-support-link-address-family.patch
-7fde27b1742f641ad1da376d5cf7a96e1f60fef70fb9d382ca47b062df76d1c35d7a7f08cba5350484f818383eb897c772d5469fd515e648023d0a85d0ed640e 0001-sendmail-make-f-optional-document-its-default-value.patch
-d466676cd2779ff33f288bb073aa2baa4f3606cf8b96ec514e624a7acb46442a2839ef18c47e19cc18a8234a485de39596773b44e4be2eff39617d7cf677dd38 0002-sendmail-use-FQDN-in-default-envelope-sender.patch
6781b10ca078296b243373d2c3f2bca2507a9df18a6b06d051e9ce84ed31a238aef3b2bb085daf12b145550be68c07c854272bd78a6f77da9197779b9c7cd9e9 0001-linedit-deluser-use-POSIX-getpwent-instead-of-getpwe.patch
-fa5f7f43bf8030f4bfcdf09d85e2e314014d5a083a24de95ac2e78c15e0dfebc14e410088e7f8eaeb8cdf24dea64e3b665b99afb8f96259e9908eebce81745bc 0001-top-fix-and-merge-code-to-parse-proc-meminfo.patch
-2dea81509f73621e60d95db1b04186056add15fb24d1f9f7b32bb50aee99733d3cf45404c33b7ca6993cff23d76f31c0bcf38c04ac741dcdd2baaf3bc2afd707 fix-top.patch
a35b66cd28b79ccc14b47315ac94677fdf8c14d8a6e8956707e71fb50d453dfc5b4b822832cd1faecfe9bf79e687f9b25a1357e0a88db530044c5f8514701c98 0001-diff-add-support-for-no-dereference.patch
2a8e9360e1cedd26bdb70d8cc036ef0abc7588bf2eee147c1c7436d7a40763f8e31d346b980145a36649130a2f811d299e4f46f7e1b60a8165a60ae9e79727d5 1000-fbsplash-use-virtual-y-size-in-mmap-size-calculation.patch
a181dd54e8e11cf1199edb1b1fcd4b7402bbf142593b6014f32c6815bb7093b56899ad0fcc9f73c382f56203ac5274fb3d51fa070feb541436f23c31680f1a69 1001-fbsplash-support-console-switching.patch
c33073416f7da2805a20f3f456f869217171c8fbfdef85f4ae481307aeb1e1b5717084bbbc619010fa5500c3f3f49b6468d5c122024fcc49d637c82427a3f553 1002-fbsplash-support-image-and-bar-alignment-and-positio.patch
-35ab915e729e73c4909793f58530edcfc10f10d750df0d41913892137f799f773a7bb476e29ed742c86d0f279603f85ed9bf5c660714571bc5f5179ea852aade busyboxconfig
+2efb13f23c48a4dc3e2eb6343256694719c3425fe8ddd36ce9fb1837e45fafa3326c2630a08d731abc6bbc104536218d095b2d997861c5b35a7f7907177d2e66 busyboxconfig
1d2739379dab1deb3eae7cffd4845300eb7d30f7343b4a1209b21a5680860d55080ad45fdefe098b249ce3040c01951fa7f0a79cd447b2d7b260eb000099d9dc glibc.patch"
diff --git a/main/busybox/busybox-1.22.1-ash.patch b/main/busybox/busybox-1.22.1-ash.patch
deleted file mode 100644
index 767c3a8c1..000000000
--- a/main/busybox/busybox-1.22.1-ash.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- busybox-1.22.1/procps/top.c
-+++ busybox-1.22.1-ash/procps/top.c
-@@ -917,17 +917,12 @@ enum {
- #if ENABLE_FEATURE_USE_TERMIOS
- static unsigned handle_input(unsigned scan_mask, unsigned interval)
- {
-- struct pollfd pfd[1];
--
- if (option_mask32 & OPT_EOF) {
- /* EOF on stdin ("top </dev/null") */
- sleep(interval);
- return scan_mask;
- }
-
-- pfd[0].fd = 0;
-- pfd[0].events = POLLIN;
--
- while (1) {
- int32_t c;
-
diff --git a/main/busybox/busybox-1.22.1-date.patch b/main/busybox/busybox-1.22.1-date.patch
deleted file mode 100644
index 6380d8781..000000000
--- a/main/busybox/busybox-1.22.1-date.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- busybox-1.22.1/libbb/time.c
-+++ busybox-1.22.1-date/libbb/time.c
-@@ -68,15 +68,23 @@ void FAST_FUNC parse_datestr(const char
- /* else end != NUL and we error out */
- }
- } else
-- /* yyyy-mm-dd HH */
-- if (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
-+ if (strchr(date_str, '-')
-+ /* Why strchr('-') check?
-+ * sscanf below will trash ptm->tm_year, this breaks
-+ * if parse_str is "10101010" (iow, "MMddhhmm" form)
-+ * because we destroy year. Do these sscanf
-+ * only if we saw a dash in parse_str.
-+ */
-+ /* yyyy-mm-dd HH */
-+ && (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
- &ptm->tm_mon, &ptm->tm_mday,
- &ptm->tm_hour,
- &end) >= 4
-- /* yyyy-mm-dd */
-- || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
-+ /* yyyy-mm-dd */
-+ || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
- &ptm->tm_mon, &ptm->tm_mday,
- &end) >= 3
-+ )
- ) {
- ptm->tm_year -= 1900; /* Adjust years */
- ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */
diff --git a/main/busybox/busybox-1.22.1-iplink.patch b/main/busybox/busybox-1.22.1-iplink.patch
deleted file mode 100644
index dbd76c574..000000000
--- a/main/busybox/busybox-1.22.1-iplink.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- busybox-1.22.1/networking/libiproute/iplink.c
-+++ busybox-1.22.1-iplink/networking/libiproute/iplink.c
-@@ -31,6 +31,16 @@
- #ifndef IFLA_LINKINFO
- # define IFLA_LINKINFO 18
- # define IFLA_INFO_KIND 1
-+# define IFLA_INFO_DATA 2
-+#endif
-+
-+#ifndef IFLA_VLAN_MAX
-+# define IFLA_VLAN_ID 1
-+# define IFLA_VLAN_FLAGS 2
-+struct ifla_vlan_flags {
-+ uint32_t flags;
-+ uint32_t mask;
-+};
- #endif
-
- /* taken from linux/sockios.h */
diff --git a/main/busybox/busybox-1.22.1-nc.patch b/main/busybox/busybox-1.22.1-nc.patch
deleted file mode 100644
index 1ddb4834b..000000000
--- a/main/busybox/busybox-1.22.1-nc.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- busybox-1.22.1/networking/nc_bloaty.c
-+++ busybox-1.22.1-nc/networking/nc_bloaty.c
-@@ -175,9 +175,9 @@ enum {
- OPT_w = (1 << 5),
- OPT_l = (1 << 6) * ENABLE_NC_SERVER,
- OPT_k = (1 << 7) * ENABLE_NC_SERVER,
-- OPT_i = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-- OPT_o = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-- OPT_z = (1 << (9+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+ OPT_i = (1 << (6+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+ OPT_o = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+ OPT_z = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
- };
-
- #define o_nflag (option_mask32 & OPT_n)
diff --git a/main/busybox/busyboxconfig b/main/busybox/busyboxconfig
index acd7ea16c..b8311b20a 100644
--- a/main/busybox/busyboxconfig
+++ b/main/busybox/busyboxconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Busybox version: 1.22.0
-# Thu Jan 2 13:04:57 2014
+# Busybox version: 1.23.0
+# Thu Dec 25 13:55:58 2014
#
CONFIG_HAVE_DOT_CONFIG=y
@@ -13,7 +13,7 @@ CONFIG_HAVE_DOT_CONFIG=y
# General Configuration
#
CONFIG_DESKTOP=y
-CONFIG_EXTRA_COMPAT=y
+# CONFIG_EXTRA_COMPAT is not set
# CONFIG_INCLUDE_SUSv2 is not set
# CONFIG_USE_PORTABLE_CODE is not set
CONFIG_PLATFORM_LINUX=y
@@ -28,7 +28,7 @@ CONFIG_FEATURE_INSTALLER=y
CONFIG_LOCALE_SUPPORT=y
CONFIG_UNICODE_SUPPORT=y
CONFIG_UNICODE_USING_LOCALE=y
-CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
CONFIG_SUBST_WCHAR=63
CONFIG_LAST_SUPPORTED_WCHAR=1114111
CONFIG_UNICODE_COMBINING_WCHARS=y
@@ -36,6 +36,8 @@ CONFIG_UNICODE_WIDE_WCHARS=y
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
CONFIG_UNICODE_PRESERVE_BROKEN=y
+# CONFIG_PAM is not set
+CONFIG_FEATURE_USE_SENDFILE=y
CONFIG_LONG_OPTS=y
CONFIG_FEATURE_DEVPTS=y
# CONFIG_FEATURE_CLEAN_UP is not set
@@ -73,6 +75,7 @@ CONFIG_EXTRA_LDLIBS=""
#
# CONFIG_DEBUG is not set
# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_UNIT_TEST is not set
# CONFIG_WERROR is not set
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
@@ -183,6 +186,7 @@ CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_HOSTID=y
CONFIG_ID=y
CONFIG_GROUPS=y
+CONFIG_SHUF=y
CONFIG_TEST=y
CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
@@ -191,6 +195,7 @@ CONFIG_FEATURE_TOUCH_SUSV3=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_UNLINK=y
CONFIG_BASE64=y
CONFIG_WHO=y
CONFIG_USERS=y
@@ -299,6 +304,11 @@ CONFIG_WHOAMI=y
CONFIG_YES=y
#
+# Common options
+#
+CONFIG_FEATURE_VERBOSE=y
+
+#
# Common options for cp and mv
#
CONFIG_FEATURE_PRESERVE_HARDLINKS=y
@@ -384,6 +394,9 @@ CONFIG_FEATURE_VI_SETOPTS=y
CONFIG_FEATURE_VI_SET=y
CONFIG_FEATURE_VI_WIN_RESIZE=y
CONFIG_FEATURE_VI_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_UNDO=y
+CONFIG_FEATURE_VI_UNDO_QUEUE=y
+CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
CONFIG_FEATURE_ALLOW_EXEC=y
#
@@ -400,6 +413,7 @@ CONFIG_FEATURE_FIND_MAXDEPTH=y
CONFIG_FEATURE_FIND_NEWER=y
CONFIG_FEATURE_FIND_INUM=y
CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_EXEC_PLUS=y
CONFIG_FEATURE_FIND_USER=y
CONFIG_FEATURE_FIND_GROUP=y
CONFIG_FEATURE_FIND_NOT=y
@@ -421,6 +435,7 @@ CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
#
# Init Utilities
@@ -458,6 +473,7 @@ CONFIG_FEATURE_SHADOWPASSWDS=y
CONFIG_ADDUSER=y
# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_LAST_ID=60000
CONFIG_FIRST_SYSTEM_ID=100
CONFIG_LAST_SYSTEM_ID=999
CONFIG_ADDGROUP=y
@@ -469,7 +485,6 @@ CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
CONFIG_GETTY=y
CONFIG_LOGIN=y
CONFIG_LOGIN_SESSION_AS_CHILD=y
-# CONFIG_PAM is not set
CONFIG_LOGIN_SCRIPTS=y
CONFIG_FEATURE_NOLOGIN=y
CONFIG_FEATURE_SECURETTY=y
@@ -527,6 +542,7 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
# Linux System Utilities
#
CONFIG_BLOCKDEV=y
+CONFIG_FATATTR=y
CONFIG_FSTRIM=y
CONFIG_MDEV=y
CONFIG_FEATURE_MDEV_CONF=y
@@ -598,6 +614,7 @@ CONFIG_READPROFILE=y
# CONFIG_SCRIPTREPLAY is not set
# CONFIG_SETARCH is not set
CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_DISCARD=y
CONFIG_FEATURE_SWAPON_PRI=y
CONFIG_SWITCH_ROOT=y
CONFIG_UMOUNT=y
@@ -640,6 +657,10 @@ CONFIG_FEATURE_VOLUMEID_XFS=y
# Miscellaneous Utilities
#
CONFIG_CONSPY=y
+CONFIG_CROND=y
+CONFIG_FEATURE_CROND_D=y
+CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y
@@ -654,6 +675,8 @@ CONFIG_NANDWRITE=y
CONFIG_NANDDUMP=y
CONFIG_RFKILL=y
CONFIG_SETSERIAL=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
# CONFIG_UBIATTACH is not set
# CONFIG_UBIDETACH is not set
# CONFIG_UBIMKVOL is not set
@@ -676,10 +699,6 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=30
# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
# CONFIG_CHRT is not set
-CONFIG_CROND=y
-CONFIG_FEATURE_CROND_D=y
-CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
-CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
CONFIG_CRONTAB=y
CONFIG_DC=y
CONFIG_FEATURE_DC_LIBM=y
@@ -721,8 +740,6 @@ CONFIG_READAHEAD=y
# CONFIG_RX is not set
CONFIG_SETSID=y
CONFIG_STRINGS=y
-# CONFIG_TASKSET is not set
-# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_TIME=y
CONFIG_TIMEOUT=y
CONFIG_TTYSIZE=y
@@ -758,13 +775,13 @@ CONFIG_FAKEIDENTD=y
CONFIG_FTPD=y
CONFIG_FEATURE_FTP_WRITE=y
CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
+# CONFIG_FEATURE_FTP_AUTHENTICATION is not set
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
CONFIG_HOSTNAME=y
CONFIG_HTTPD=y
CONFIG_FEATURE_HTTPD_RANGES=y
-CONFIG_FEATURE_HTTPD_USE_SENDFILE=y
CONFIG_FEATURE_HTTPD_SETUID=y
CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
CONFIG_FEATURE_HTTPD_AUTH_MD5=y
@@ -821,6 +838,7 @@ CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_NSLOOKUP=y
CONFIG_NTPD=y
CONFIG_FEATURE_NTPD_SERVER=y
+CONFIG_FEATURE_NTPD_CONF=y
CONFIG_PSCAN=y
CONFIG_ROUTE=y
CONFIG_SLATTACH=y
@@ -858,6 +876,7 @@ CONFIG_UDHCPC6=y
CONFIG_DHCPD_LEASES_FILE=""
CONFIG_UDHCPC=y
CONFIG_FEATURE_UDHCPC_ARPING=y
+CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
# CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=0
CONFIG_FEATURE_UDHCP_RFC3397=y
@@ -976,6 +995,7 @@ CONFIG_ASH_GETOPTS=y
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_ASH_BUILTIN_PRINTF=y
CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_HELP=y
CONFIG_ASH_CMDCMD=y
CONFIG_ASH_MAIL=y
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
diff --git a/main/busybox/fix-top.patch b/main/busybox/fix-top.patch
deleted file mode 100644
index 7d1cd4a36..000000000
--- a/main/busybox/fix-top.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/procps/top.c b/procps/top.c
-index 62f9421..119c32b 100644
---- a/procps/top.c
-+++ b/procps/top.c
-@@ -536,7 +536,7 @@ static void parse_meminfo(unsigned long meminfo[MI_MAX])
- FILE *f;
- int i;
-
-- memset(meminfo, 0, sizeof(meminfo));
-+ memset(meminfo, 0, MI_MAX*sizeof(unsigned long));
- f = xfopen_for_read("meminfo");
- while (fgets(buf, sizeof(buf), f) != NULL) {
- char *c = strchr(buf, ':');
-