diff --git a/sys-apps/busybox/Manifest b/sys-apps/busybox/Manifest --- a/sys-apps/busybox/Manifest +++ b/sys-apps/busybox/Manifest @@ -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----- diff --git a/sys-apps/busybox/busybox-1.18.1-r1.ebuild b/sys-apps/busybox/busybox-1.18.3.ebuild copy from sys-apps/busybox/busybox-1.18.1-r1.ebuild copy to sys-apps/busybox/busybox-1.18.3.ebuild --- a/sys-apps/busybox/busybox-1.18.1-r1.ebuild +++ b/sys-apps/busybox/busybox-1.18.3.ebuild @@ -71,8 +71,8 @@ busybox_config_option() { y) sed -i -e "s:.*\.*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 diff --git a/sys-apps/busybox/files/busybox-1.18.3-buildsys.patch b/sys-apps/busybox/files/busybox-1.18.3-buildsys.patch new file mode 100644 --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.18.3-buildsys.patch @@ -0,0 +1,10 @@ +--- 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/sys-apps/busybox/files/busybox-1.18.3-modutils24.patch b/sys-apps/busybox/files/busybox-1.18.3-modutils24.patch new file mode 100644 --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.18.3-modutils24.patch @@ -0,0 +1,36 @@ +--- 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); diff --git a/sys-apps/busybox/files/busybox-1.18.3-wget.patch b/sys-apps/busybox/files/busybox-1.18.3-wget.patch new file mode 100644 --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.18.3-wget.patch @@ -0,0 +1,128 @@ +--- 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);