Changeset - a7af73317130
[Not reviewed]
default
0 1 4
Nathan Brink (binki) - 14 years ago 2011-03-09 23:20:19
ohnobinki@ohnopublishing.net
sys-apps/busybox: Bump to busybox-1.18.3.

(Portage version: 2.2.0_alpha26-r1/hg/Linux x86_64, signed Manifest commit with key 6BA81050)
5 files changed with 195 insertions and 15 deletions:
0 comments (0 inline, 0 general)
sys-apps/busybox/Manifest
Show inline comments
 
@@ -8,6 +8,9 @@ AUX busybox-1.18.1-hush.patch 8447 RMD16
 
AUX busybox-1.18.1-ldflags.patch 3614 RMD160 7f27232505103301aa46e2df754292fee7db93f8 SHA1 424de3c85f0da0e06bfc044450b26c10eb694a28 SHA256 7a66a5ac4fbca0d30a7e1a25c72775be9f2eff50fc1b6c765f769714e9056682
 
AUX busybox-1.18.1-mkswap.patch 504 RMD160 9fbecd5d82ae1d3198acd365e411572bae90dbd3 SHA1 7d5560ca68a5f2f53f573c784929f710b87f5c9d SHA256 8cbf49401fafaf35be70ba414cab0d68c7c88b1d0a6bbb5b00d0dc27621accfa
 
AUX busybox-1.18.1-warning.patch 913 RMD160 6b688c0561d7d059c7693b24575a103bb9bf978a SHA1 742d459957500551f24be81845b861994bb50c48 SHA256 95df2c2e95c6e0a3a2275d8c9b0958894f4b315666f0407e4f4c9c9dc0b47109
 
AUX busybox-1.18.3-buildsys.patch 320 RMD160 5591dc086f5c2d060b0c6e8496df8515ec1dccc8 SHA1 12bd93ead0022a8e80a7d3c40f1f6b166cc3942f SHA256 cb438f0a5c46125387187b4a2389d56f7aa8db5a308aed314f5866cf9a09b72b
 
AUX busybox-1.18.3-modutils24.patch 949 RMD160 5c7aef4dd8195a6432a8c7e6e865eff1bc73bdd4 SHA1 445c5e662c2bea616b327744d4e9b6b2fd7a645a SHA256 134ed86867784348f484810464df5bc97589e7aa41079c90e35b8d12b9284df8
 
AUX busybox-1.18.3-wget.patch 3805 RMD160 e3846336786aa825da96ff9b2cf08829c81482a9 SHA1 cb9227a3d9783e4222fbe2f42cb769c7ff1e14e3 SHA256 22538ebee96f66916104b8143cfd16e21568da4c5a89128b9daa60d83a59120b
 
AUX mdev-start.sh 2758 RMD160 c177aac4940b177bd857bc98ff2ac031e0489bbc SHA1 5a5b95da36c489cd12820513434a7a17ac3bffd1 SHA256 9904263c8dfe2b8c3e968a9b4245fa0c162a2413110c037cdd797ac3773587d7
 
AUX mdev.rc 282 RMD160 6a11e23fbed92acd24088a7885bdc52b9c845fac SHA1 46f1a0494e009332e83b62599842f8213b60ba60 SHA256 e52abbc3399fc85ce1f097e8f12b25a5ca7fe2e3d648bee60c061b547ba39dc5
 
AUX mdev/dvbdev 356 RMD160 db7f546ae6e47b59cca9712f1e218cdbc3985c78 SHA1 993c0ab79fa41912f84db95e7dd09aa0965aa8c7 SHA256 ef091bb4c8943a99b9a97b556cdc15ddd20275f5afa8287e201419b08c4e71de
 
@@ -15,22 +18,24 @@ AUX mdev/ide_links 440 RMD160 5d133f27d1
 
AUX mdev/usbdev 1624 RMD160 a448558f058566223072c993cb4ae52f9aa43da3 SHA1 4d1a7a19e58549416dd3bde4fcf2f584adc4feb7 SHA256 113ecaa722fa1f4e1c76489e2a7b24099778615a5bccd443aa9cbab28c6d05d0
 
AUX mdev/usbdisk_link 984 RMD160 9b86d85f5f27f03f894a062c9f00d3583c4db3ae SHA1 690290b25fa1b90f6d9d7b8947a55746920991a4 SHA256 4957f6991e0cb988b263b5276b582f1757deecad19cddebe3c615b381df9f858
 
DIST busybox-1.18.1.tar.bz2 2129404 RMD160 fb40d19103945eb1cd785a6041e5545f4055b8f6 SHA1 83b86858599870e46236da8d370d335d48cee77e SHA256 33eb25ea7b20c727c3af769256b21408a1ac1f927ff9f89a1f1e3767c18c9967
 
DIST busybox-1.18.3.tar.bz2 2119251 RMD160 b38e5bc8ca9d586dd1528080b6a866ad8719a31a SHA1 4debdbdf8abb7ae54e0c0e2650cb03d957400533 SHA256 83f112ee88b7eb85bea1cac0b1af33f61387a1036f1898c5ecd79813191a619b
 
EBUILD busybox-1.18.1-r1.ebuild 7878 RMD160 bffa2b8a14b89e73284465fab69843a6c64bc59b SHA1 50f602ebad143a95e8c264391bf97d5ddf8a2150 SHA256 a227375d847bec70e835e060ffb8d4d0c7c570473f157970135b272f26710b4d
 
EBUILD busybox-1.18.3.ebuild 7923 RMD160 70a7319bcda540bbccb5264cdd218384540aa4c5 SHA1 1ce5019a08595955bd446341af6bb985ae9d347b SHA256 b98879df777c471d1afdac749fdfb139df04b2fa995d0f0795c456be9b3cf53d
 
MISC metadata.xml 368 RMD160 2facee7f44b7469c85383961c2dd4338ea6fffcb SHA1 eae78f6b5eb3a21aeae692f9a7420ab536be3739 SHA256 033b1cb2abe759f73b184ce43b5c791454716638090767c2bc70cc52b4ef187f
 
-----BEGIN PGP SIGNATURE-----
 
Version: GnuPG v2.0.14 (GNU/Linux)
 

	
 
iQIcBAEBCAAGBQJNeE0IAAoJEHQ6UuhrqBBQkyMP/jQ1Yh/pmoLTLxCOPOpaxqN1
 
Nd7t+w78J/3LRloz4dBvfk1++Fdu4cEI3gYliPrU/YVa7bgtO/TqcvqqZLtn3POS
 
uUa45Tdf/L4d3fk5fg5A0aHomGoa1bnsqHCc/46/b4mCYGXZ/bRsDOzMIFtpvu9O
 
/B8HevU8Xl5tD3gMlK+dkWPYa8waycZtMIqyG61T+5hPOyjhMFiHeBJrN3n55MlI
 
mfIyVB4R7h98UfuzFbP4bgr3FF7IQpDZHHisTDRjkmVAHs08aVTkmpQBx02AyaG2
 
pjo5D9Opg/WJj9NEix6/BNjssHTyhtxxFmKdgydPsA9gYJpIHM1Fl/g3k2YXvxJ5
 
afaDjjCJFfi1LFVu5/ObiQ9n9bAr7gRtyEVuCfo+ExiKHWz6l48CIBaAM0yKGSdj
 
+hMXSN4AdXVIkCNDeEn75VXH0z7ZWSaR91mnn6kbhpmY8s8cTdp3JZqTtZgGUYAl
 
s/vGPRGMVagrK5fF9mTTi7R0T9ib77XVeoWMgSt/ZYKK27xkXL1gbQh5pbZzOgKy
 
t28hy8tdio908YqhGB3rNmKIw9zYN6nbMB4F0+wmWA4YFrWVKYwQprLB6pKi/wBp
 
+kgmrdHOt7rH7zvjV/DkXLXll/sMCvGxRzY0quk/+o86S5FXvFomhURu+dxhWl6g
 
iDPY41VnWW++bDxJJe5b
 
=dDm0
 
iQIcBAEBCAAGBQJNeFGCAAoJEHQ6UuhrqBBQgd8P/iXBkSSbLxKTXjuPZCIMG9b0
 
kcDWv47ZdgxByPgjeQub3PlxRz8Ab++x4cu6NYi8mR7H9p3BiG1DMSu/s9pZvhEK
 
e9/P9C/ZfVQcbDIof+RkaOfY1SCEuAwRTB8qABFRlPldTRjO8XGP94VAblXFbvMr
 
x9L4o5q1Q+ESYrxR6ddSyM7KJ0jc1dDH0USuCNwpWxFto6jX+vrcrG0kjSCTZJ5U
 
bL88zQMLwSRKgfUlpahVOojaTV4RLPZvTNL1X3y/1lla4edRrBAvmAJ8laWGRi+F
 
tcKJIlTaWe0fy3I5YSjsiSzF1QYt2isBw+1Y1w3aoBctTUFfgkPmI+UUURmjMT3P
 
p5J1dr6QbcelYEIbieAaSK9VAIhXaNT5RInBLD3BsQEsvBKuNMGb4jHBafQ8ewrF
 
PMi+pum9kJmdbwIVm8+UJkpzpl5j3CsxEpIzJ+9FHareleLnLRvnXZzYlB9FxSvy
 
XT9whBOuP//HNhmdNxNR1KbksaMJCvbN33Ldtd/WjcrPWXTqPwXXQkI+6pe/oSHH
 
LuGNUjYeflA5FrINlsX5Hhx9xu8mprgTd8xnkvz1EcOy9Zcqs2qTCEWn3tNR9/jZ
 
5kq1EFG3SIdI2ta1iMZtY7qne6+/1LVrSdNcrYw7+IqAIpAktKhnE8vCIwA1ZDbv
 
kehnD4AZtn0ipkCMOGdv
 
=aW4J
 
-----END PGP SIGNATURE-----
sys-apps/busybox/busybox-1.18.3.ebuild
Show inline comments
 
file copied from sys-apps/busybox/busybox-1.18.1-r1.ebuild to sys-apps/busybox/busybox-1.18.3.ebuild
 
@@ -71,8 +71,8 @@ busybox_config_option() {
 
		y) sed -i -e "s:.*\<CONFIG_$2\>.*set:CONFIG_$2=y:g" .config;;
 
		n) sed -i -e "s:CONFIG_$2=y:# CONFIG_$2 is not set:g" .config;;
 
		*) use $1 \
 
		       && busybox_config_option y $2 \
 
		       || busybox_config_option n $2
 
			   && busybox_config_option y $2 \
 
			   || busybox_config_option n $2
 
		   return 0
 
		   ;;
 
	esac
 
@@ -85,6 +85,7 @@ src_prepare() {
 

	
 
	# patches go here!
 
	epatch "${FILESDIR}"/busybox-1.18.0-bb.patch
 
	epatch "${FILESDIR}"/busybox-1.18.1-ldflags.patch
 
	epatch "${FILESDIR}"/busybox-${PV}-*.patch
 

	
 
	# flag cleanup
sys-apps/busybox/files/busybox-1.18.3-buildsys.patch
Show inline comments
 
new file 100644
 
--- 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,
sys-apps/busybox/files/busybox-1.18.3-modutils24.patch
Show inline comments
 
new file 100644
 
--- busybox-1.18.3/modutils/modutils-24.c
 
+++ busybox-1.18.3-modutils24/modutils/modutils-24.c
 
@@ -2474,6 +2474,7 @@ new_process_module_arguments(struct obj_
 
 		n = 0;
 
 		p = val;
 
 		while (*p != 0) {
 
+			char sv_ch;
 
 			char *endp;
 
 
 
 			if (++n > max)
 
@@ -2482,14 +2483,17 @@ new_process_module_arguments(struct obj_
 
 			switch (*pinfo) {
 
 			case 's':
 
 				len = strcspn(p, ",");
 
+				sv_ch = p[len];
 
 				p[len] = 0;
 
 				obj_string_patch(f, sym->secidx,
 
 						 loc - contents, p);
 
 				loc += tgt_sizeof_char_p;
 
 				p += len;
 
+				*p = sv_ch;
 
 				break;
 
 			case 'c':
 
 				len = strcspn(p, ",");
 
+				sv_ch = p[len];
 
 				p[len] = 0;
 
 				if (len >= charssize)
 
 					bb_error_msg_and_die("string too long for %s (max %ld)", param,
 
@@ -2497,6 +2501,7 @@ new_process_module_arguments(struct obj_
 
 				strcpy((char *) loc, p);
 
 				loc += charssize;
 
 				p += len;
 
+				*p = sv_ch;
 
 				break;
 
 			case 'b':
 
 				*loc++ = strtoul(p, &endp, 0);
sys-apps/busybox/files/busybox-1.18.3-wget.patch
Show inline comments
 
new file 100644
 
--- 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);
0 comments (0 inline, 0 general)