--- /dev/null
+diff -urpN busybox-1.18.0/Config.in busybox-1.18.0-buildsys/Config.in
+--- busybox-1.18.0/Config.in 2010-11-22 21:43:21.000000000 +0100
++++ busybox-1.18.0-buildsys/Config.in 2010-12-05 23:14:04.173614427 +0100
+@@ -128,8 +128,9 @@ config INSTALL_NO_USR
+ default n
+ depends on FEATURE_INSTALLER
+ help
+- Disable use of /usr. busybox --install will install applets
+- only to /bin and /sbin, never to /usr/bin or /usr/sbin.
++ Disable use of /usr. busybox --install and "make install"
++ will install applets only to /bin and /sbin,
++ never to /usr/bin or /usr/sbin.
+
+ config LOCALE_SUPPORT
+ bool "Enable locale support (system needs locale for this to work)"
+diff -urpN busybox-1.18.0/include/applets.src.h busybox-1.18.0-buildsys/include/applets.src.h
+--- busybox-1.18.0/include/applets.src.h 2010-11-22 21:43:22.000000000 +0100
++++ busybox-1.18.0-buildsys/include/applets.src.h 2010-12-05 23:14:04.174614202 +0100
+@@ -56,6 +56,11 @@ s - suid type:
+ # define APPLET_NOFORK(name,main,l,s,name2) { #name, #main, l, s, 1, 1 },
+ #endif
+
++#if ENABLE_INSTALL_NO_USR
++# define _BB_DIR_USR_BIN _BB_DIR_BIN
++# define _BB_DIR_USR_SBIN _BB_DIR_SBIN
++#endif
++
+
+ INSERT
+ IF_TEST(APPLET_NOFORK([, test, _BB_DIR_USR_BIN, _BB_SUID_DROP, test))
+diff -urpN busybox-1.18.0/scripts/gen_build_files.sh busybox-1.18.0-buildsys/scripts/gen_build_files.sh
+--- busybox-1.18.0/scripts/gen_build_files.sh 2010-11-22 21:43:22.000000000 +0100
++++ busybox-1.18.0-buildsys/scripts/gen_build_files.sh 2010-11-24 14:59:47.732712663 +0100
+@@ -18,14 +18,14 @@ generate()
+ local src="$1" dst="$2" header="$3" insert="$4"
+ #chk "${dst}"
+ (
+- echo "${header}"
++ printf "%s\n" "${header}"
+ if grep -qs '^INSERT$' "${src}"; then
+ sed -n '1,/^INSERT$/p' "${src}"
+- echo "${insert}"
++ printf "%s\n" "${insert}"
+ sed -n '/^INSERT$/,$p' "${src}"
+ else
+ if [ -n "${insert}" ]; then
+- echo "ERROR: INSERT line missing in: ${src}" 1>&2
++ printf "%s\n" "ERROR: INSERT line missing in: ${src}" 1>&2
+ fi
+ cat "${src}"
+ fi
--- /dev/null
+diff -urpN busybox-1.18.0/runit/runsvdir.c busybox-1.18.0-runsvdir/runit/runsvdir.c
+--- busybox-1.18.0/runit/runsvdir.c 2010-11-22 21:43:22.000000000 +0100
++++ busybox-1.18.0-runsvdir/runit/runsvdir.c 2010-12-06 01:27:56.926036992 +0100
+@@ -312,8 +312,11 @@ int runsvdir_main(int argc UNUSED_PARAM,
+ last_mtime = s.st_mtime;
+ last_dev = s.st_dev;
+ last_ino = s.st_ino;
+- //if (now <= mtime)
+- // sleep(1);
++ /* if the svdir changed this very second, wait until the
++ * next second, because we won't be able to detect more
++ * changes within this second */
++ while (time(NULL) == last_mtime)
++ usleep(100000);
+ need_rescan = do_rescan();
+ while (fchdir(curdir) == -1) {
+ warn2_cannot("change directory, pausing", "");
--- /dev/null
+diff -urpN busybox-1.18.0/libbb/pw_encrypt_sha.c busybox-1.18.0-sha/libbb/pw_encrypt_sha.c
+--- busybox-1.18.0/libbb/pw_encrypt_sha.c 2010-11-22 21:43:22.000000000 +0100
++++ busybox-1.18.0-sha/libbb/pw_encrypt_sha.c 2010-12-01 13:56:24.372704380 +0100
+@@ -3,7 +3,7 @@
+ */
+
+ /* Prefix for optional rounds specification. */
+-static const char str_rounds[] = "rounds=%u$";
++static const char str_rounds[] ALIGN1 = "rounds=%u$";
+
+ /* Maximum salt string length. */
+ #define SALT_LEN_MAX 16
+@@ -19,8 +19,8 @@ NOINLINE
+ sha_crypt(/*const*/ char *key_data, /*const*/ char *salt_data)
+ {
+ void (*sha_begin)(void *ctx) FAST_FUNC;
+- void (*sha_hash)(const void *buffer, size_t len, void *ctx) FAST_FUNC;
+- void (*sha_end)(void *resbuf, void *ctx) FAST_FUNC;
++ void (*sha_hash)(void *ctx, const void *buffer, size_t len) FAST_FUNC;
++ void (*sha_end)(void *ctx, void *resbuf) FAST_FUNC;
+ int _32or64;
+
+ char *result, *resptr;
+@@ -103,40 +103,40 @@ sha_crypt(/*const*/ char *key_data, /*co
+
+ /* Add KEY, SALT. */
+ sha_begin(&ctx);
+- sha_hash(key_data, key_len, &ctx);
+- sha_hash(salt_data, salt_len, &ctx);
++ sha_hash(&ctx, key_data, key_len);
++ sha_hash(&ctx, salt_data, salt_len);
+
+ /* Compute alternate SHA sum with input KEY, SALT, and KEY.
+ The final result will be added to the first context. */
+ sha_begin(&alt_ctx);
+- sha_hash(key_data, key_len, &alt_ctx);
+- sha_hash(salt_data, salt_len, &alt_ctx);
+- sha_hash(key_data, key_len, &alt_ctx);
+- sha_end(alt_result, &alt_ctx);
++ sha_hash(&alt_ctx, key_data, key_len);
++ sha_hash(&alt_ctx, salt_data, salt_len);
++ sha_hash(&alt_ctx, key_data, key_len);
++ sha_end(&alt_ctx, alt_result);
+
+ /* Add result of this to the other context. */
+ /* Add for any character in the key one byte of the alternate sum. */
+ for (cnt = key_len; cnt > _32or64; cnt -= _32or64)
+- sha_hash(alt_result, _32or64, &ctx);
+- sha_hash(alt_result, cnt, &ctx);
++ sha_hash(&ctx, alt_result, _32or64);
++ sha_hash(&ctx, alt_result, cnt);
+
+ /* Take the binary representation of the length of the key and for every
+ 1 add the alternate sum, for every 0 the key. */
+ for (cnt = key_len; cnt != 0; cnt >>= 1)
+ if ((cnt & 1) != 0)
+- sha_hash(alt_result, _32or64, &ctx);
++ sha_hash(&ctx, alt_result, _32or64);
+ else
+- sha_hash(key_data, key_len, &ctx);
++ sha_hash(&ctx, key_data, key_len);
+
+ /* Create intermediate result. */
+- sha_end(alt_result, &ctx);
++ sha_end(&ctx, alt_result);
+
+ /* Start computation of P byte sequence. */
+ /* For every character in the password add the entire password. */
+ sha_begin(&alt_ctx);
+ for (cnt = 0; cnt < key_len; ++cnt)
+- sha_hash(key_data, key_len, &alt_ctx);
+- sha_end(temp_result, &alt_ctx);
++ sha_hash(&alt_ctx, key_data, key_len);
++ sha_end(&alt_ctx, temp_result);
+
+ /* NB: past this point, raw key_data is not used anymore */
+
+@@ -153,8 +153,8 @@ sha_crypt(/*const*/ char *key_data, /*co
+ /* For every character in the password add the entire password. */
+ sha_begin(&alt_ctx);
+ for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
+- sha_hash(salt_data, salt_len, &alt_ctx);
+- sha_end(temp_result, &alt_ctx);
++ sha_hash(&alt_ctx, salt_data, salt_len);
++ sha_end(&alt_ctx, temp_result);
+
+ /* NB: past this point, raw salt_data is not used anymore */
+
+@@ -174,22 +174,22 @@ sha_crypt(/*const*/ char *key_data, /*co
+
+ /* Add key or last result. */
+ if ((cnt & 1) != 0)
+- sha_hash(p_bytes, key_len, &ctx);
++ sha_hash(&ctx, p_bytes, key_len);
+ else
+- sha_hash(alt_result, _32or64, &ctx);
++ sha_hash(&ctx, alt_result, _32or64);
+ /* Add salt for numbers not divisible by 3. */
+ if (cnt % 3 != 0)
+- sha_hash(s_bytes, salt_len, &ctx);
++ sha_hash(&ctx, s_bytes, salt_len);
+ /* Add key for numbers not divisible by 7. */
+ if (cnt % 7 != 0)
+- sha_hash(p_bytes, key_len, &ctx);
++ sha_hash(&ctx, p_bytes, key_len);
+ /* Add key or last result. */
+ if ((cnt & 1) != 0)
+- sha_hash(alt_result, _32or64, &ctx);
++ sha_hash(&ctx, alt_result, _32or64);
+ else
+- sha_hash(p_bytes, key_len, &ctx);
++ sha_hash(&ctx, p_bytes, key_len);
+
+- sha_end(alt_result, &ctx);
++ sha_end(&ctx, alt_result);
+ }
+
+ /* Append encrypted password to result buffer */
CONFIG_INCLUDE_SUSv2=y
# CONFIG_USE_PORTABLE_CODE is not set
# CONFIG_PARSE is not set
+CONFIG_PLATFORM_LINUX=y
#
# Installation Options
# CONFIG_FEATURE_TEST_64 is not set
# CONFIG_TOUCH is not set
# CONFIG_TR is not set
+# CONFIG_BASE64 is not set
# CONFIG_FEATURE_TR_CLASSES is not set
# CONFIG_FEATURE_TR_EQUIV is not set
CONFIG_TRUE=y
CONFIG_HALT=y
# CONFIG_FEATURE_CALL_TELINIT is not set
# CONFIG_MESG is not set
+# CONFIG_ADD_SHELL is not set
+# CONFIG_REMOVE_SHELL is not set
CONFIG_BOOTCHARTD=y
# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y
#
# CONFIG_BLKID is not set
CONFIG_DMESG=y
+# CONFIG_BLOCKDEV is not set
# CONFIG_FEATURE_DMESG_PRETTY is not set
# CONFIG_FBSET is not set
# CONFIG_FEATURE_FBSET_FANCY is not set
# CONFIG_MICROCOM is not set
# CONFIG_MOUNTPOINT is not set
# CONFIG_MT is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
# CONFIG_RAIDAUTORUN is not set
# CONFIG_READAHEAD is not set
# CONFIG_RFKILL is not set
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
# CONFIG_NAMEIF is not set
# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+# CONFIG_NBDCLIENT is not set
# CONFIG_NC is not set
# CONFIG_NC_SERVER is not set
# CONFIG_NC_EXTRA is not set
# CONFIG_FEATURE_PS_TIME is not set
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
# CONFIG_RENICE is not set
+# CONFIG_IOSTAT is not set
+# CONFIG_MPSTAT is not set
+# CONFIG_PMAP is not set
+# CONFIG_POWERTOP is not set
# CONFIG_BB_SYSCTL is not set
# CONFIG_TOP is not set
# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
--- busybox-1.17.3/include/libbb.h.orig 2010-10-09 22:57:13.000000000 +0300
+++ busybox-1.17.3/include/libbb.h 2010-11-08 21:21:38.520518694 +0200
-@@ -1620,7 +1620,7 @@
+@@ -1677,7 +1677,7 @@
# define VC_2 "/dev/vc/2"
# define VC_3 "/dev/vc/3"
# define VC_4 "/dev/vc/4"
-# define VC_5 "/dev/vc/5"
+# define VC_12 "/dev/vc/12"
- # if defined(__sh__) || defined(__H8300H__) || defined(__H8300S__)
- /* Yes, this sucks, but both SH (including sh64) and H8 have a SCI(F) for their
- respective serial ports .. as such, we can't use the common device paths for
-@@ -1644,7 +1644,7 @@
+ # define VC_FORMAT "/dev/vc/%d"
+ # define LOOP_FORMAT "/dev/loop/%d"
+ # define LOOP_NAMESIZE (sizeof("/dev/loop/") + sizeof(int)*3 + 1)
+@@ -1690,7 +1690,7 @@
# define VC_2 "/dev/tty2"
# define VC_3 "/dev/tty3"
# define VC_4 "/dev/tty4"
-# define VC_5 "/dev/tty5"
+# define VC_12 "/dev/tty12"
- # if defined(__sh__) || defined(__H8300H__) || defined(__H8300S__)
- # define SC_0 "/dev/ttySC0"
- # define SC_1 "/dev/ttySC1"
+ # define VC_FORMAT "/dev/tty%d"
+ # define LOOP_FORMAT "/dev/loop%d"
+ # define LOOP_NAMESIZE (sizeof("/dev/loop") + sizeof(int)*3 + 1)
--- busybox/init/init.c.orig 2008-04-19 04:03:13.000000000 +0000
+++ busybox.o/init/init.c 2008-04-26 17:09:58.075653000 +0000
@@ -64,7 +64,7 @@
CONFIG_UNICODE_COMBINING_WCHARS=y
CONFIG_UNICODE_WIDE_WCHARS=y
CONFIG_UNICODE_BIDI_SUPPORT=y
+CONFIG_UNICODE_NEUTRAL_TABLE=y
CONFIG_UNICODE_PRESERVE_BROKEN=y
CONFIG_GETOPT_LONG=y
CONFIG_FEATURE_DEVPTS=y
CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox"
CONFIG_FEATURE_SYSLOG=y
CONFIG_FEATURE_HAVE_RPC=y
+CONFIG_PLATFORM_LINUX=y
#
# Build Options
CONFIG_FEATURE_SEAMLESS_XZ=y
CONFIG_AR=y
CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_FEATURE_AR_CREATE=y
CONFIG_BUNZIP2=y
CONFIG_BZIP2=y
CONFIG_CPIO=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
CONFIG_FEATURE_TAR_UNAME_GNAME=y
CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+CONFIG_FEATURE_TAR_TO_COMMAND=y
CONFIG_UNCOMPRESS=y
CONFIG_UNLZMA=y
CONFIG_UNXZ=y
CONFIG_XZ=y
# CONFIG_FEATURE_LZMA_FAST is not set
+CONFIG_LZMA=y
CONFIG_UNZIP=y
#
# Coreutils
#
+CONFIG_BASE64=y
CONFIG_BASENAME=y
CONFIG_CAL=y
CONFIG_CAT=y
CONFIG_CUT=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_FEATURE_DATE_NANO=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_SETLOGCONS=y
CONFIG_SHOWKEY=y
+#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+CONFIG_FEATURE_LOADFONT_RAW=y
+
#
# Debian Utilities
#
CONFIG_FEATURE_VI_SETOPTS=y
CONFIG_FEATURE_VI_SET=y
# CONFIG_FEATURE_VI_WIN_RESIZE is not set
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
CONFIG_FEATURE_ALLOW_EXEC=y
# CONFIG_FEATURE_EXTRA_QUIET is not set
# CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_FEATURE_INITRD=y
+CONFIG_INIT_TERMINAL_TYPE="linux"
CONFIG_HALT=y
CONFIG_MESG=y
CONFIG_BOOTCHARTD=y
CONFIG_FEATURE_SU_CHECKS_SHELLS=y
CONFIG_SULOGIN=y
CONFIG_VLOCK=y
+CONFIG_ADD_SHELL=y
+CONFIG_REMOVE_SHELL=y
#
# Linux Ext2 FS Progs
CONFIG_ACPID=y
CONFIG_FEATURE_ACPID_COMPAT=y
CONFIG_BLKID=y
+CONFIG_BLOCKDEV=y
CONFIG_DMESG=y
CONFIG_FEATURE_DMESG_PRETTY=y
CONFIG_FBSET=y
# CONFIG_FEATURE_SGI_LABEL is not set
# CONFIG_FEATURE_SUN_LABEL is not set
CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_GPT_LABEL=y
CONFIG_FEATURE_FDISK_ADVANCED=y
CONFIG_FINDFS=y
CONFIG_FLOCK=y
CONFIG_FEATURE_BEEP_LENGTH_MS=30
# CONFIG_CHAT is not set
CONFIG_CONSPY=y
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
# CONFIG_FEATURE_CHAT_NOFAIL is not set
# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
CONFIG_TIME=y
CONFIG_TIMEOUT=y
CONFIG_TTYSIZE=y
-CONFIG_UBIATTACH=y
-CONFIG_UBIDETACH=y
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
CONFIG_VOLNAME=y
CONFIG_WATCHDOG=y
CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
CONFIG_FEATURE_HTTPD_PROXY=y
+CONFIG_FEATURE_HTTPD_GZIP=y
CONFIG_IFCONFIG=y
CONFIG_FEATURE_IFCONFIG_STATUS=y
CONFIG_FEATURE_IFCONFIG_SLIP=y
CONFIG_NC=y
CONFIG_NC_SERVER=y
# CONFIG_NC_EXTRA is not set
+# CONFIG_NC_110_COMPAT is not set
CONFIG_NETSTAT=y
CONFIG_FEATURE_NETSTAT_WIDE=y
CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_FEATURE_WGET_AUTHENTICATION=y
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
+CONFIG_FEATURE_WGET_TIMEOUT=y
CONFIG_ZCIP=y
CONFIG_TCPSVD=y
CONFIG_UDPSVD=y
CONFIG_TUNCTL=y
CONFIG_FEATURE_TUNCTL_UG=y
+CONFIG_NBDCLIENT=y
#
# Print Utilities
#
CONFIG_FREE=y
CONFIG_FUSER=y
+CONFIG_IOSTAT=y
+CONFIG_MPSTAT=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
CONFIG_KILL=y
CONFIG_KILLALL=y
CONFIG_KILLALL5=y
# CONFIG_FEATURE_SH_IS_MSH is not set
# CONFIG_FEATURE_SH_IS_NONE is not set
CONFIG_FEATURE_BASH_IS_ASH=y
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
# CONFIG_FEATURE_BASH_IS_NONE is not set
CONFIG_ASH=y
CONFIG_ASH_EXPAND_PRMT=y
CONFIG_HUSH=y
CONFIG_HUSH_BASH_COMPAT=y
+CONFIG_HUSH_BRACE_EXPANSION=y
+CONFIG_HUSH_SAVEHISTORY=y
+CONFIG_HUSH_MODE_X=y
CONFIG_HUSH_HELP=y
CONFIG_HUSH_INTERACTIVE=y
CONFIG_HUSH_JOB=y
# CONFIG_FEATURE_ROTATE_LOGFILE is not set
CONFIG_FEATURE_REMOTE_LOG=y
CONFIG_FEATURE_SYSLOGD_DUP=y
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
CONFIG_FEATURE_IPC_SYSLOG=y
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
CONFIG_LOGREAD=y
CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
CONFIG_KLOGD=y
+CONFIG_FEATURE_KLOGD_KLOGCTL=y
CONFIG_LOGGER=y
Summary(pt_BR.UTF-8): BusyBox é um conjunto de utilitários UNIX em um único binário
Name: busybox
# stable line only
-Version: 1.17.3
+Version: 1.18.0
Release: 0.1
License: GPL
Group: Applications
Source0: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
-# Source0-md5: a2ce1a951571da8c6e0eaf75b1acef60
+# Source0-md5: 7a8150a10558a5292fa1f52f1c65b0f5
Source1: %{name}.config
Source2: %{name}-initrd.config
%{?with_altconfig:Source3: %{cfgfile}}
+Patch100: busybox-1.18.0-buildsys.patch
+Patch101: busybox-1.18.0-runsvdir.patch
+Patch102: busybox-1.18.0-sha.patch
Patch1: %{name}-logconsole.patch
Patch2: %{name}-printf-gettext.patch
Patch3: %{name}-loadfont.patch
%prep
%setup -q
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
%patch1 -p1
%patch2 -p1
#%patch3 -p1
CFLAGS_EXTRA="%{rpmcflags}" \
LDFLAGS="%{ld_rpmldflags}" \
CC="%{__cc}"
-%{__make} busybox.links docs/BusyBox.1
+%{__make} busybox.links docs/busybox.1
%install
rm -rf $RPM_BUILD_ROOT
%endif
install busybox.links $RPM_BUILD_ROOT%{_libdir}/busybox
-install docs/BusyBox.1 $RPM_BUILD_ROOT%{_mandir}/man1
-echo ".so BusyBox.1" > $RPM_BUILD_ROOT%{_mandir}/man1/busybox.1
+install docs/busybox.1 $RPM_BUILD_ROOT%{_mandir}/man1
# install links to busybox binary, when linkfl is defined
%if %{with linkfl}