diff options
Diffstat (limited to 'main/busybox')
-rw-r--r-- | main/busybox/APKBUILD | 12 | ||||
-rw-r--r-- | main/busybox/busybox-1.18.3-buildsys.patch | 10 | ||||
-rw-r--r-- | main/busybox/busybox-1.18.3-klogd.patch | 45 | ||||
-rw-r--r-- | main/busybox/busybox-1.18.3-wget.patch | 128 |
4 files changed, 3 insertions, 192 deletions
diff --git a/main/busybox/APKBUILD b/main/busybox/APKBUILD index be104dcf17..4ac28d8ad8 100644 --- a/main/busybox/APKBUILD +++ b/main/busybox/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=busybox -pkgver=1.18.3 -pkgrel=4 +pkgver=1.18.4 +pkgrel=0 pkgdesc="Size optimized toolbox of many common UNIX utilities" url=http://busybox.net arch="all" @@ -13,9 +13,6 @@ triggers="busybox.trigger:/bin /usr/bin /sbin /usr/sbin /lib/modules/*" source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2 $pkgname-1.11.1-bb.patch busybox-uname-is-not-gnu.patch - busybox-1.18.3-buildsys.patch - busybox-1.18.3-klogd.patch - busybox-1.18.3-wget.patch loginutils-sha512.patch busyboxconfig" @@ -74,11 +71,8 @@ static() { } -md5sums="660af4d44661d32b22025a66f4f78df2 busybox-1.18.3.tar.bz2 +md5sums="b03c5b46ced732679e525a920a1a62f5 busybox-1.18.4.tar.bz2 4c0f3b486eaa0674961b7ddcd0c60a9b busybox-1.11.1-bb.patch b5375210f13fd6e1ca61a565e8fabd35 busybox-uname-is-not-gnu.patch -1270a714d2ed9940f04379c97bb83cba busybox-1.18.3-buildsys.patch -f2277e7a31d04295bd9d56a98ff1535b busybox-1.18.3-klogd.patch -abe065069fed8458eedbdad48c115e1f busybox-1.18.3-wget.patch d21d70d590e9e04bfc65ecb23b9d1617 loginutils-sha512.patch 7297e212d5e2a5517f770b4ad1f4654d busyboxconfig" diff --git a/main/busybox/busybox-1.18.3-buildsys.patch b/main/busybox/busybox-1.18.3-buildsys.patch deleted file mode 100644 index 330b73fbb8..0000000000 --- a/main/busybox/busybox-1.18.3-buildsys.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- busybox-1.18.3/Config.in -+++ busybox-1.18.3-buildsys/Config.in -@@ -126,7 +126,6 @@ config FEATURE_INSTALLER - config INSTALL_NO_USR - bool "Don't use /usr" - default n -- depends on FEATURE_INSTALLER - help - Disable use of /usr. busybox --install and "make install" - will install applets only to /bin and /sbin, diff --git a/main/busybox/busybox-1.18.3-klogd.patch b/main/busybox/busybox-1.18.3-klogd.patch deleted file mode 100644 index 2272cd0030..0000000000 --- a/main/busybox/busybox-1.18.3-klogd.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- busybox-1.18.3/sysklogd/klogd.c -+++ busybox-1.18.3-klogd/sysklogd/klogd.c -@@ -150,12 +150,41 @@ int klogd_main(int argc UNUSED_PARAM, ch - */ - klogd_open(); - openlog("kernel", 0, LOG_KERN); -+ /* -+ * glibc problem: for some reason, glibc changes LOG_KERN to LOG_USER -+ * above. The logic behind this is that standard -+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/syslog.html -+ * says the following about openlog and syslog: -+ * "LOG_USER -+ * Messages generated by arbitrary processes. -+ * This is the default facility identifier if none is specified." -+ * -+ * I believe glibc misinterpreted this text as "if openlog's -+ * third parameter is 0 (=LOG_KERN), treat it as LOG_USER". -+ * Whereas it was meant to say "if *syslog* is called with facility -+ * 0 in its 1st parameter without prior call to openlog, then perform -+ * implicit openlog(LOG_USER)". -+ * -+ * As a result of this, eh, feature, standard klogd was forced -+ * to open-code its own openlog and syslog implementation (!). -+ * -+ * Note that prohibiting openlog(LOG_KERN) on libc level does not -+ * add any security: any process can open a socket to "/dev/log" -+ * and write a string "<0>Voila, a LOG_KERN + LOG_EMERG message" -+ * -+ * Google code search tells me there is no widespread use of -+ * openlog("foo", 0, 0), thus fixing glibc won't break userspace. -+ * -+ * The bug against glibc was filed: -+ * bugzilla.redhat.com/show_bug.cgi?id=547000 -+ */ - - if (i) - klogd_setloglevel(i); - -- bb_signals(BB_FATAL_SIGS, record_signo); - signal(SIGHUP, SIG_IGN); -+ /* We want klogd_read to not be restarted, thus _norestart: */ -+ bb_signals_recursive_norestart(BB_FATAL_SIGS, record_signo); - - syslog(LOG_NOTICE, "klogd started: %s", bb_banner); - diff --git a/main/busybox/busybox-1.18.3-wget.patch b/main/busybox/busybox-1.18.3-wget.patch deleted file mode 100644 index 88cfc918ca..0000000000 --- a/main/busybox/busybox-1.18.3-wget.patch +++ /dev/null @@ -1,128 +0,0 @@ ---- busybox-1.18.3/networking/wget.c -+++ busybox-1.18.3-wget/networking/wget.c -@@ -446,7 +446,7 @@ static FILE* prepare_ftp_session(FILE ** - - static void NOINLINE retrieve_file_data(FILE *dfp, int output_fd) - { -- char buf[512]; -+ char buf[4*1024]; /* made bigger to speed up local xfers */ - #if ENABLE_FEATURE_WGET_STATUSBAR || ENABLE_FEATURE_WGET_TIMEOUT - # if ENABLE_FEATURE_WGET_TIMEOUT - unsigned second_cnt; -@@ -455,7 +455,6 @@ static void NOINLINE retrieve_file_data( - - polldata.fd = fileno(dfp); - polldata.events = POLLIN | POLLPRI; -- ndelay_on(polldata.fd); - #endif - progress_meter(PROGRESS_START); - -@@ -464,6 +463,10 @@ static void NOINLINE retrieve_file_data( - - /* Loops only if chunked */ - while (1) { -+ -+#if ENABLE_FEATURE_WGET_STATUSBAR || ENABLE_FEATURE_WGET_TIMEOUT -+ ndelay_on(polldata.fd); -+#endif - while (1) { - int n; - unsigned rdsz; -@@ -493,22 +496,46 @@ static void NOINLINE retrieve_file_data( - progress_meter(PROGRESS_BUMP); - } - #endif -+ /* fread internally uses read loop, which in our case -+ * is usually exited when we get EAGAIN. -+ * In this case, libc sets error marker on the stream. -+ * Need to clear it before next fread to avoid possible -+ * rare false positive ferror below. Rare because usually -+ * fread gets more than zero bytes, and we don't fall -+ * into if (n <= 0) ... -+ */ -+ clearerr(dfp); -+ errno = 0; - n = safe_fread(buf, rdsz, dfp); -+ /* man fread: -+ * If error occurs, or EOF is reached, the return value -+ * is a short item count (or zero). -+ * fread does not distinguish between EOF and error. -+ */ - if (n <= 0) { -- if (ferror(dfp)) { -- /* perror will not work: ferror doesn't set errno */ -- bb_error_msg_and_die(bb_msg_read_error); -- } -- break; -+#if ENABLE_FEATURE_WGET_STATUSBAR || ENABLE_FEATURE_WGET_TIMEOUT -+ if (errno == EAGAIN) /* poll lied, there is no data? */ -+ continue; /* yes */ -+#endif -+ if (ferror(dfp)) -+ bb_perror_msg_and_die(bb_msg_read_error); -+ break; /* EOF, not error */ - } -+ - xwrite(output_fd, buf, n); - #if ENABLE_FEATURE_WGET_STATUSBAR - G.transferred += n; - progress_meter(PROGRESS_BUMP); - #endif -- if (G.got_clen) -+ if (G.got_clen) { - G.content_len -= n; -+ if (G.content_len == 0) -+ break; -+ } - } -+#if ENABLE_FEATURE_WGET_STATUSBAR || ENABLE_FEATURE_WGET_TIMEOUT -+ ndelay_off(polldata.fd); -+#endif - - if (!G.chunked) - break; -@@ -706,6 +733,11 @@ int wget_main(int argc UNUSED_PARAM, cha - fprintf(sfp, "Host: %s\r\nUser-Agent: %s\r\n", - target.host, user_agent); - -+ /* Ask server to close the connection as soon as we are done -+ * (IOW: we do not intend to send more requests) -+ */ -+ fprintf(sfp, "Connection: close\r\n"); -+ - #if ENABLE_FEATURE_WGET_AUTHENTICATION - if (target.user) { - fprintf(sfp, "Proxy-Authorization: Basic %s\r\n"+6, -@@ -719,22 +751,25 @@ int wget_main(int argc UNUSED_PARAM, cha - - if (G.beg_range) - fprintf(sfp, "Range: bytes=%"OFF_FMT"u-\r\n", G.beg_range); -+ - #if ENABLE_FEATURE_WGET_LONG_OPTIONS - if (extra_headers) - fputs(extra_headers, sfp); - - if (opt & WGET_OPT_POST_DATA) { - char *estr = URL_escape(post_data); -- fprintf(sfp, "Content-Type: application/x-www-form-urlencoded\r\n"); -- fprintf(sfp, "Content-Length: %u\r\n" "\r\n" "%s", -- (int) strlen(estr), estr); -- /*fprintf(sfp, "Connection: Keep-Alive\r\n\r\n");*/ -- /*fprintf(sfp, "%s\r\n", estr);*/ -+ fprintf(sfp, -+ "Content-Type: application/x-www-form-urlencoded\r\n" -+ "Content-Length: %u\r\n" -+ "\r\n" -+ "%s", -+ (int) strlen(estr), estr -+ ); - free(estr); - } else - #endif -- { /* If "Connection:" is needed, document why */ -- fprintf(sfp, /* "Connection: close\r\n" */ "\r\n"); -+ { -+ fprintf(sfp, "\r\n"); - } - - fflush(sfp); |