import local busybox-power tree (1.18.5power2) 1.18.5power2
authorDennis Groenen <dennis_groenen@hotmail.com>
Wed, 6 Jul 2011 12:40:42 +0000 (14:40 +0200)
committerDennis Groenen <dennis_groenen@hotmail.com>
Wed, 6 Jul 2011 12:40:42 +0000 (14:40 +0200)
34 files changed:
debian/busybox-power.dirs [new file with mode: 0644]
debian/busybox-power.postinst [new file with mode: 0644]
debian/busybox-power.preinst [new file with mode: 0644]
debian/busybox-power.prerm [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/config/config.maemo [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/patches/03tar.patch [new file with mode: 0644]
debian/patches/05thumb.patch [new file with mode: 0644]
debian/patches/06ls.patch [new file with mode: 0644]
debian/patches/applets-fallback.patch [new file with mode: 0644]
debian/patches/busybox-zero-ifr.ifr_hwaddr.sa_data.patch [new file with mode: 0644]
debian/patches/init-console.patch [new file with mode: 0644]
debian/patches/obselete/fsync.patch [new file with mode: 0644]
debian/patches/obselete/ls-s-dont-follow-links.patch [new file with mode: 0644]
debian/patches/obselete/mount-relatime.patch [new file with mode: 0644]
debian/patches/obselete/pidof-fix.patch [new file with mode: 0644]
debian/patches/obselete/upstart-support.patch [new file with mode: 0644]
debian/patches/parse-complete-hostname.patch [new file with mode: 0644]
debian/patches/ps-accept-and-ignore-missing-options.patch [new file with mode: 0644]
debian/patches/series [new file with mode: 0644]
debian/patches/shell-ash-export-HOME.patch [new file with mode: 0644]
debian/patches/shell-hist.patch [new file with mode: 0644]
debian/patches/showkey-any-stdin.patch [new file with mode: 0644]
debian/patches/showkey-default-option.patch [new file with mode: 0644]
debian/patches/supress-bad-number.patch [new file with mode: 0644]
debian/patches/top-display-rss.patch [new file with mode: 0644]
debian/patches/version.patch [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/scripts/functions [new file with mode: 0644]
debian/scripts/install-binary.sh [new file with mode: 0755]
debian/scripts/uninstall-binary.sh [new file with mode: 0755]

diff --git a/debian/busybox-power.dirs b/debian/busybox-power.dirs
new file mode 100644 (file)
index 0000000..90959a9
--- /dev/null
@@ -0,0 +1 @@
+opt/busybox-power
diff --git a/debian/busybox-power.postinst b/debian/busybox-power.postinst
new file mode 100644 (file)
index 0000000..b90ab79
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -e
+
+/opt/busybox-power/busybox.power sh /opt/busybox-power/install-binary.sh
+
diff --git a/debian/busybox-power.preinst b/debian/busybox-power.preinst
new file mode 100644 (file)
index 0000000..e8f4bab
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+test "$1" = install || exit 0 # upgrades are fine
+
+# Detect environment
+#if test ! -e /proc/component_version
+if test -d /scratchbox
+  then
+    echo "busybox-power: Scratchbox environment detected"
+    ENVIRONMENT="SDK"
+  else
+    PROD=$(cat /proc/component_version | grep product | cut -d" " -f 6)
+    case $PROD in
+      RX-51)
+        echo "busybox-power: Maemo (N900) environment detected"
+        ENVIRONMENT="N900"
+        ;;
+      *)
+        # Unsupported, use the least strict environment (SDK)
+        echo "busybox-power: unsupported environment, using SDK codepath.."
+        ENVIRONMENT="SDK"
+      ;;
+    esac
+fi
+
+case $ENVIRONMENT in
+  SDK)
+    # Extra warning doesn't apply to SDK, just exit
+    exit 0
+  ;;
+  N900)
+    f=/tmp/busybox-power-msg
+    cat > $f <<EOF
+Warning: This package touches an essential system binary!
+Even though installation should be safe, a reflash might be required if something does go wrong (i.e. worst-case scenario).
+
+Files overwritten by this package:
+bin/busybox
+EOF
+    maemo-confirm-text "Installation notes" $f
+    res=$?
+    rm -f $f
+    exit $res
+  ;;
+esac
+
diff --git a/debian/busybox-power.prerm b/debian/busybox-power.prerm
new file mode 100644 (file)
index 0000000..3875fd2
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -e
+
+sh /opt/busybox-power/uninstall-binary.sh
+
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..eaeab0f
--- /dev/null
@@ -0,0 +1,1111 @@
+busybox-power (1.18.5power2) unstable; urgency=low
+
+  * Add support for installation in Maemo's SDK
+  * Cleanup and improve scripts
+
+ -- Dennis Groenen <dennis_groenen@hotmail.com>  Sun,  3 Jul 2011 20:11:13 +0200
+
+busybox-power (1.18.5power1) unstable; urgency=low
+
+  * New upstream release (BusyBox 1.18.5)
+
+ -- Dennis Groenen <dennis_groenen@hotmail.com>  Mon, 13 Jun 2011 15:47:18 +0200
+
+busybox-power (1.18.4power5) unstable; urgency=low
+
+  * Add patch to make ps accept and ignore missing common options
+  * Pull patch from BusyBox' git tree to make showkey work on any stdin
+  * Change showkey's default option from -k to -a
+
+ -- Dennis Groenen <dennis_groenen@hotmail.com>  Sat, 28 May 2011 14:39:55 +0200
+
+busybox-power (1.18.4power4) unstable; urgency=low
+
+  * Update postinst scripts to not depend on coreutils
+  * Update debian/control file
+
+ -- Dennis Groenen <dennis_groenen@hotmail.com>  Mon, 16 May 2011 17:03:25 +0200
+
+busybox-power (1.18.4power3) unstable; urgency=low
+
+  * Add patch to parse the complete hostname when set from a file
+
+ -- Dennis Groenen <dennis_groenen@hotmail.com>  Mon,  9 May 2011 21:42:48 +0200
+
+busybox-power (1.18.4power2) unstable; urgency=low
+
+  * Update debian/control file
+
+ -- Dennis Groenen <dennis_groenen@hotmail.com>  Sat,  7 May 2011 16:50:56 +0200
+
+busybox-power (1.18.4power1) unstable; urgency=low
+
+  * New upstream release (BusyBox 1.18.4)
+  * Import updated versions of Nokia's patches from Debian Sid 
+  * Port Nokia's patches which aren't in upstream
+  * Add patch to suppress "sh: bad number" messages when testing uninitialized variables in scripts
+  * Make ash save 100 lines of history instead of just 15
+  * Update Maemo's busybox configuration file to reflect the changed options available in upstream
+  * Fix unicode issue with the new BusyBox configuration
+  * Fix DNS resolving issue with the new BusyBox configuration
+  * Include scripts to dynamically create symlinks upon installation instead of hardcoding them
+
+ -- Dennis Groenen <dennis_groenen@hotmail.com>  Fri,  6 May 2011 22:16:20 +0200
+
+busybox (3:1.10.2.legal-1osso30+0m5) unstable; urgency=low
+
+  * This entry has been added by BIFH queue processor
+    version has been changed to 3:1.10.2.legal-1osso30+0m5
+
+ -- Lyubimkin Eugene <ext-lyubimkin.eugene@nokia.com>  Fri, 12 Mar 2010 10:49:27 +0200
+
+busybox (3:1.10.2.legal-1osso30) unstable; urgency=low
+
+  * Fixes: NB#160158 - Device doesn't boot up after 1.1.1 -> 1.2 SSU
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Fri, 12 Mar 2010 10:11:20 +0200
+
+busybox (3:1.10.2.legal-1osso29) unstable; urgency=low
+
+  * Fixes: NB#157159 -  Enable ar in busybox 
+
+ -- Eugene Lyubimkin <ext-lyubimkin.eugene@nokia.com>  Tue, 02 Mar 2010 11:09:43 +0200
+
+busybox (3:1.10.2.legal-1osso26) unstable; urgency=low
+
+  * Enable more fance tar features. Fixes: NB#124832.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Mon, 29 Jun 2009 15:32:56 +0300
+
+busybox (3:1.10.2.legal-1osso25) unstable; urgency=low
+
+  * Call telinit to facilitate proper shutdown/reboot. Fixes: NB#120283.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Wed, 24 Jun 2009 14:41:13 +0300
+
+busybox (3:1.10.2.legal-1osso24) unstable; urgency=low
+
+  * Don't follow symlinks for -l or -s in ls. Fixes: NB#120999.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Mon, 15 Jun 2009 12:55:17 +0300
+
+busybox (3:1.10.2.legal-1osso23) unstable; urgency=low
+
+  * Enable more options for pidof. Fixes: NB#112823.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Thu, 23 Apr 2009 16:10:24 +0300
+
+busybox (3:1.10.2.legal-1osso22) unstable; urgency=low
+
+  * Remove 3 second sleep()s from sfdisk.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Thu, 23 Apr 2009 11:32:08 +0300
+
+busybox (3:1.10.2.legal-1osso21) unstable; urgency=low
+
+  * Drop dependencies to symlink packages. Fixes: NB#86011.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Wed, 01 Apr 2009 14:14:32 +0300
+
+busybox (3:1.10.2.legal-1osso20) unstable; urgency=low
+
+  * Merge sysvinit-maemo into busybox.
+  * Remove last from provided symlinks. Fixes: NB#108560.
+  * Patch to display RSS instead of VSZ in top. Fixes: NB#103591.
+  * Patch to only update history upon shell exit. Fixes: NB#107770.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Tue, 31 Mar 2009 14:28:47 +0300
+
+busybox (3:1.10.2.legal-1osso19) unstable; urgency=low
+
+  * Create alternatives directory if missing. Fixes: NB#107784.
+  * Enable CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY. Fixes: NB#107771.
+  * Disable wtmp for applets. Fixes: NB#101256.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Wed, 25 Mar 2009 10:28:05 +0200
+
+busybox (3:1.10.2.legal-1osso18) unstable; urgency=low
+
+  * Transition: make busybox depend on all packages with symlinks
+  to facilitate NB#86011.
+  * Symlinks moved to separate packages to match debian's counterparts.
+  * Enable xargs support for quotes. Fixes: NB#96575.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Wed, 18 Mar 2009 12:39:35 +0200
+
+busybox (3:1.10.2.legal-1osso17) unstable; urgency=low
+
+  * Add IPv6 support. Fixes: NB#98038.
+  * Add fix for pidof/killall5. Fixes: NB#101755.
+
+ -- Alexander Shishkin <ext-alexander.shishkin@nokia.com>  Tue, 10 Mar 2009 15:14:05 +0200
+
+busybox (3:1.10.2.legal-1osso16) unstable; urgency=low
+
+  * Added CONFIG_CLEAR and CONFIG_RESET to config.maemo
+  * Added ncurses-bin to Provides/Replaces/Conflicts. Fixes: NB#92440
+
+ -- Turo Janka <ext-turo.1.janka@nokia.com>  Thu, 12 Feb 2009 12:50:42 +0200
+
+busybox (3:1.10.2.legal-1osso15) unstable; urgency=low
+
+  * Removed CONFIG_FEATURE_GUNZIP_UNCOMPRESS from config.maemo
+  * Added CONFIG_UNCOMPRESS to config.maemo. Fixes: NB#98035
+
+ -- Turo Janka <ext-turo.1.janka@nokia.com>  Wed, 11 Feb 2009 16:08:12 +0200
+
+busybox (3:1.10.2.legal-1osso14) unstable; urgency=low
+  
+  * Fixes time command segfault. Fixes: NB#98230
+ -- Turo Janka <ext-turo.1.janka@nokia.com>  Tue, 21 Jan 2009 15:48:12 +0200
+
+busybox (3:1.10.2.legal-1osso13) unstable; urgency=low
+
+  * Enable more tools. Fixes: NB#98035
+
+ -- Turo Janka <ext-turo.1.janka@nokia.com>  Tue, 20 Jan 2009 15:18:12 +0200
+
+busybox (3:1.10.2.legal-1osso12) unstable; urgency=low
+
+  * Enable MD5SUM and FEATURE_MD5_SHA1_SUM_CHECK. Fixes: NB#95950
+
+ -- Turo Janka <ext-turo.1.janka@nokia.com>  Tue, 20 Jan 2009 11:16:20 +0200
+
+busybox (3:1.10.2.legal-1osso11) unstable; urgency=low
+
+  * Enable CONFIG_LFS. Fixes: NB#95830
+
+ -- Turo Janka <ext-turo.1.janka@nokia.com>  Tue, 13 Jan 2009 15:26:23 +0200
+
+busybox (3:1.10.2.legal-1osso10) unstable; urgency=low
+
+  * Enable CONFIG_FEATURE_SORT_BIG. Fixes: NB#90925
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Mon, 27 Oct 2008 12:20:50 +0200
+
+busybox (3:1.10.2.legal-1osso9) unstable; urgency=low
+
+  * Disable runlevel, using a script from mini-rc
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Mon, 27 Oct 2008 11:54:48 +0200
+
+busybox (3:1.10.2.legal-1osso8) unstable; urgency=low
+
+  * Added busybox-zero-ifr.ifr_hwaddr.sa_data.patch
+    Fixes: NB#89189
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Fri, 17 Oct 2008 15:38:53 +0300
+
+busybox (3:1.10.2.legal-1osso7) unstable; urgency=low
+
+  * Reverting the utilities, it breaks R&D images
+  * Revert "enabled xargs -0 (265 bytes)"
+  * Revert "enabled addgroup (872 bytes), delgroup (652 bytes)"
+  * Revert "enabled less (6773 bytes)"
+  * Revert "enabled setsid (111 bytes)"
+  * Revert "enabled script (1443 bytes), strings (489 bytes)"
+  * Revert "enabled ip (23780 bytes)"
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Thu, 09 Oct 2008 15:26:35 +0300
+
+busybox (3:1.10.2.legal-1osso6) unstable; urgency=low
+
+  [ Pekka Pessi ]
+  * fsync.patch: fixed usage
+  * enabled xargs -0 (265 bytes)
+  * enabled addgroup (872 bytes), delgroup (652 bytes)
+  * enabled less (6773 bytes)
+  * enabled setsid (111 bytes)
+  * enabled script (1443 bytes), strings (489 bytes)
+  * enabled ip (23780 bytes)
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Wed, 08 Oct 2008 13:16:50 +0300
+
+busybox (3:1.10.2.legal-1osso5) unstable; urgency=low
+
+  * config.maemo: enable fsync
+  * Added fsync.patch
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Tue, 07 Oct 2008 11:15:54 +0300
+
+busybox (3:1.10.2.legal-1osso4) unstable; urgency=low
+
+  * Disable modutils, submitting real module-init-tools now
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Thu, 02 Oct 2008 16:37:48 +0300
+
+busybox (3:1.10.2.legal-1osso3) unstable; urgency=low
+
+  * Enable hwclock applet
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Wed, 24 Sep 2008 16:38:48 +0300
+
+busybox (3:1.10.2.legal-1osso2) unstable; urgency=low
+
+  * Install local/tempfile, forgot in upgrade.
+    Fixes: NB#88128
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Thu, 18 Sep 2008 14:23:08 +0300
+
+busybox (3:1.10.2.legal-1osso1) unstable; urgency=low
+
+  * Use .legal name (forgot)
+  * Updated config.maemo for 1.10.2
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Thu, 24 Jul 2008 12:35:10 +0300
+
+busybox (3:1.10.2-1osso1) unstable; urgency=low
+
+  * osso adoptation
+  * Added debug package
+  * tar -m dummy switch added
+  * build only deb package, no udeb or static
+  * CONFIG: fixing segfault
+  * Add tools needed by sysvinit/upstart
+  * Do not conflict with module-init-tools, divert should work
+
+ -- Yauheni Kaliuta <yauheni.kaliuta@nokia.com>  Thu, 24 Jul 2008 12:22:11 +0300
+
+busybox (1:1.10.2-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 06 Jun 2008 19:20:43 +0200
+
+busybox (1:1.9.2-3) unstable; urgency=low
+
+  * Readd package version into greeting.
+  * Ignore init action if device is not available. (closes: #473659)
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 12 Apr 2008 17:23:30 +0200
+
+busybox (1:1.9.2-2) unstable; urgency=low
+
+  * Set correct source section.
+  * Move busybox-static to extra.
+  * Update Standards-Version to 3.7.3, no changes.
+  * Add generic applet fallback. (closes: #472653)
+
+ -- Bastian Blank <waldi@debian.org>  Wed, 26 Mar 2008 11:33:59 +0100
+
+busybox (1:1.9.2-1) unstable; urgency=low
+
+  * New upstream release.
+  * [deb] Reenable prefer applets.
+  * [deb, static] Make the shell use applets first. (closes: #472389)
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 24 Mar 2008 09:40:13 +0100
+
+busybox (1:1.9.1-3) unstable; urgency=low
+
+  * debian/config.udeb:
+    - Reenable fancy prompt.
+  * Readd copyright file.
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 22 Mar 2008 23:01:57 +0100
+
+busybox (1:1.9.1-2) experimental; urgency=low
+
+  * Readd sections gc to dynamic built binaries.
+  * debian/config.udeb:
+    - Fix remaining problems.
+    - Disable ifconfig.
+  * util-linux/mount.c:
+    - Support relatime. (closes: #460824)
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 13 Mar 2008 14:25:53 +0100
+
+busybox (1:1.9.1-1) experimental; urgency=low
+
+  * New upstream release.
+  * Drop unused busybox-floppy-udeb.
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 15 Feb 2008 16:25:31 +0000
+
+busybox (1:1.1.3-5) unstable; urgency=low
+
+  * debian/config*:
+    - Drop devfs support. (closes: #431569)
+
+ -- Bastian Blank <waldi@debian.org>  Tue,  3 Jul 2007 15:45:43 +0000
+
+busybox (1:1.1.3-4) unstable; urgency=low
+
+  * coreutils/sort.c:
+    - Try again to fix sorting issues. Patch by Goswin Brederlow.
+      (closes: #373704)
+
+ -- Bastian Blank <waldi@debian.org>  Sun, 21 Jan 2007 15:29:02 +0000
+
+busybox (1:1.1.3-3) unstable; urgency=low
+
+  * debian/control:
+    - Add build dependency to new dpkg-dev. (closes: #383710)
+  * debian/copyright:
+    - Mention copyright holders. (closes: #378654)
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 18 Aug 2006 22:32:04 +0000
+
+busybox (1:1.1.3-2) unstable; urgency=low
+
+  * coreutils/sort.c:
+    - Fix sorting of input which begins with the seperator. (closes: #373704)
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 29 Jun 2006 19:36:19 +0000
+
+busybox (1:1.1.3-1) unstable; urgency=low
+
+  * New upstream version.
+  * debian/config-udeb:
+    - Enable fancy head and tail. Readds support for head -1.
+  * coreutils/tr.c:
+    - Don't segfault on incorrect input.
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 01 Jun 2006 18:02:00 +0000
+
+busybox (1:1.1.2-2) unstable; urgency=low
+
+  * applets/install.sh:
+    - Fix installation if libbusybox is disabled. (closes: #368013)
+  * debian/config*:
+    - Support umount -a. (closes: #367714)
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 22 May 2006 17:58:17 +0000
+
+busybox (1:1.1.2-1) unstable; urgency=low
+
+  * New upstream version.
+  * debian/config*:
+    - Rework.
+    - Remove modutils support.
+  * modutils:
+    - Remove modutils patch.
+  * shell:
+    - Export PATH. (closes: #329406)
+
+ -- Bastian Blank <waldi@debian.org>  Sun,  7 May 2006 19:31:17 +0000
+
+busybox (1:1.01-4) unstable; urgency=low
+
+  * debian/config*: (closes: #321304)
+    - Enable readlink -f support.
+    - Enable egrep alias.
+    - Enable ash command builtin.
+  * debianutils: Add readlink -f support.
+  * util-linux/umount.c: Fix loop for rootfs. (closes: #317062)
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 17 Dec 2005 14:35:56 +0100
+
+busybox (1:1.01-3) unstable; urgency=low
+
+  * debian/config-deb:
+    - Recheck options.
+
+ -- Bastian Blank <waldi@debian.org>  Wed, 12 Oct 2005 14:40:08 +0200
+
+busybox (1:1.01-2) unstable; urgency=low
+
+  * debian/rules:
+    - Use CONFIG_DEBUG=y.
+  * modutils/obj:
+    - Fix bad casts that cause insmod (and probably depmod) to fail on
+      64-bit architectures. (closes: #321503)
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 08 Sep 2005 17:07:21 +0200
+
+busybox (1:1.01-1) unstable; urgency=low
+
+  * New upstream version.
+  * Fix more compilation errors. (closes: #325244)
+
+ -- Bastian Blank <waldi@debian.org>  Wed, 24 Aug 2005 19:28:13 +0200
+
+busybox (1:1.00-5) unstable; urgency=low
+
+  * Fix build.
+  * Enable ip applet in deb.
+  * Fix remove syslog.
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 16 Aug 2005 19:20:13 +0200
+
+busybox (1:1.00-4) unstable; urgency=low
+
+  * Fix several problems with more strict gcc. (closes: #294474)
+
+ -- Bastian Blank <waldi@debian.org>  Sun, 31 Jul 2005 13:10:29 +0200
+
+busybox (1:1.00-3) unstable; urgency=low
+
+  * shell/ash.c:
+    - Fix eval. (closes: #315444)
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 28 Jun 2005 14:45:54 +0200
+
+busybox (1:1.00-2) unstable; urgency=low
+
+  * debian/rules:
+    - Specify -s for debhelper tools. (closes: #314512)
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 27 Jun 2005 18:09:52 +0200
+
+busybox (1:1.00-1) unstable; urgency=low
+
+  * New upstream release. (closes: #276771)
+  * New maintainer. (closes: #298363)
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 10 Jun 2005 10:32:29 +0200
+
+busybox-cvs (20040623-2) UNRELEASED; urgency=low
+
+  * modutils:
+    - Fix error. (closes: #258546)
+    - Don't return failure if the module is already loaded. (closes: #257201)
+  * util-linux/umount.c:
+    - Don't ignore proc on umount -a. (closes: #257625)
+
+ -- Bastian Blank <waldi@debian.org>  Wed, 28 Jul 2004 11:20:58 +0200
+
+busybox-cvs (20040623-1) unstable; urgency=low
+
+  * New CVS version.
+    - Support 64 bit arithmetic. (closes: #251302)
+
+ -- Bastian Blank <waldi@debian.org>  Wed, 23 Jun 2004 21:53:52 +0200
+
+busybox-cvs (20040612-2) unstable; urgency=low
+
+  * modutils:
+    - Merge changes from modutils 2.4.26 (closes: #254214).
+
+ -- Bastian Blank <waldi@debian.org>  Sun, 13 Jun 2004 21:11:08 +0200
+
+busybox-cvs (20040612-1) unstable; urgency=low
+
+  * New CVS version.
+  * modutils:
+    - Fix missdetection of module file extension.
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 21 May 2004 15:43:11 +0200
+
+busybox-cvs (20040507-3) unstable; urgency=low
+
+  * debian/config-udeb*:
+    - Disable udhcpc. (closes: #220652)
+    - Enable sleep.
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 14 May 2004 18:13:52 +0200
+
+busybox-cvs (20040507-2) unstable; urgency=low
+
+  * editors/sed.c:
+    - Never assign the return value of getopt to char. (closes: #248106)
+
+ -- Bastian Blank <waldi@debian.org>  Sun, 09 May 2004 16:34:41 +0200
+
+busybox-cvs (20040507-1) unstable; urgency=low
+
+  * New CVS version
+    - Fix detection of hardlinks. (closes: #244589)
+    - Fix CAN-2003-0856.
+  * debian/config-udeb*:
+    - Enable netcat. (closes: #243508)
+    - Enable support for md5sum -c.
+  * modutils:
+    - Fix parameter passing for 2.4 modules. (closes: #245560)
+    - Add biarch support to 2.4 depmod and lsmod. (closes: #231606, #231618)
+    - Add 2.6 support to lsmod. (closes: #245580)
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 08 May 2004 14:58:04 +0200
+
+busybox-cvs (20040415-3) unstable; urgency=low
+
+  * modutils:
+    - Fix detection of 2.4 kernel. (closes: #244806)
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 20 Apr 2004 11:55:12 +0200
+
+busybox-cvs (20040415-2) unstable; urgency=low
+
+  * modutils:
+    - Make depmod quiet.
+    - Fix name of dependency files.
+
+ -- Bastian Blank <waldi@debian.org>  Sun, 18 Apr 2004 20:00:51 +0200
+
+busybox-cvs (20040415-1) unstable; urgency=low
+
+  * New CVS version
+  * modutils:
+    - Merge 2.6 support into insmod and depmod.
+  * debian/config-*udeb-linux:
+    - Update.
+
+ -- Bastian Blank <waldi@debian.org>  Sun, 18 Apr 2004 18:53:44 +0200
+
+busybox-cvs (20040408-1) unstable; urgency=low
+
+  * New CVS version
+    - Fix wget ftp handling. (closes: #242779)
+  * debian/config-*udeb:
+    - Disable standalone shell.
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 15 Apr 2004 22:40:35 +0200
+
+busybox-cvs (20040402-1) unstable; urgency=low
+
+  * New CVS version
+    - Fix llseek mess. (closes: #240918)
+  * debian/config-*:
+    - Update.
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 02 Apr 2004 23:49:25 +0200
+
+busybox-cvs (20040306-1) unstable; urgency=low
+
+  * New CVS version
+    - Fix directory header in ls. (closes: #231994)
+    - wget checks for empty *_proxy. (closes: #234130)
+  * debian/config-*:
+    - Update.
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 23 Feb 2004 13:22:38 +0100
+
+busybox-cvs (20040101-7) unstable; urgency=low
+
+  * archival/libunarchive/get_header_tar.c:
+    - Fix usage of tar typeflag field (upstream). (closes: #233627)
+  * debian/config-*:
+    - Disable oldgnu support in tar.
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 21 Feb 2004 12:34:40 +0100
+
+busybox-cvs (20040101-6) unstable; urgency=low
+
+  * debian/config-udeb*:
+    - Enable dd. (closes: #228248)
+  * debian/control:
+    - Set Standards-Version to 3.6.1, no changes.
+    - Remove Glenn McGrath <bug1@debian.org> from Uploaders.
+  * shell/cmdedit.c:
+    - Fix lockup (upstream). (closes: #228915)
+  * networking/wget.c:
+    - Fix proxy (upstream).
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 22 Jan 2004 14:25:24 +0100
+
+busybox-cvs (20040101-4) unstable; urgency=low
+
+  * Fix cp truncation bug (Closes: #227081)
+
+ -- Glenn McGrath <bug1@debian.org>  Mon, 12 Jan 2004 20:51:01 +1100
+
+busybox-cvs (20040101-3) unstable; urgency=low
+
+  * debian/control:
+    - Change descriptions a little bit.
+    - Build-Depend against di-packages-build (>= 0.5).
+  * debian/rules:
+    - Install correct manpages.
+    - Mark build-* rules as notparallel.
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 09 Jan 2004 22:09:02 +0100
+
+busybox-cvs (20040101-2) unstable; urgency=low
+
+  * coreutils/ln.c:
+    - Fix check in symlink mode (upstream). (closes: #226722)
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 08 Jan 2004 12:50:27 +0100
+
+busybox-cvs (20040101-1) unstable; urgency=low
+
+  * New CVS version.
+    - Fix ln. (closes: #216435)
+    - Make insmod quiet. (closes: #215612)
+  * debiann/control:
+    - Build-Depend against di-packages-build (>= 0.4).
+  * debian/rules:
+    - Use di-packages-build.
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 05 Jan 2004 06:21:03 +0100
+
+busybox-cvs (20031212-3) unstable; urgency=low
+
+  * debian/config-udeb-linux:
+    - Enable freeramdisk. (closes: #225360)
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 30 Dec 2003 22:36:50 +0100
+
+busybox-cvs (20031212-2) unstable; urgency=low
+
+  * debian/config-udeb:
+    - Enable freeramdisk
+  * archival/libunarchive/data_extract_to_stdout.c:
+    - Don't extract to much (upstream).
+  * archival/libunarchive/data_extract_all.c:
+    - Don't set permissions on symlinks (upstream).
+  * editors/sed.c:
+    - Fix (upstream). (closes: #224676)
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 23 Dec 2003 16:59:13 +0100
+
+busybox-cvs (20031212-1) unstable; urgency=low
+
+  * new cvs version
+    - fixes IOR in fdisk. (closes: #223773)
+  * debian/config*
+    - update
+    - remove mtab support from mount in busybox-static. (closes: #222386)
+    - enable progress bar for wget. (closes: #223770)
+  * modutils/obj/obj_s390{,x}.c
+    - fix abi change, R_390_GOTOFF -> R_390_GOTOFF32. (closes: #216528)
+  * acknowledge nmu. (closes: #216950, #216756, #215169, #215613)
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 12 Dec 2003 21:19:41 +0100
+
+busybox-cvs (20030926-2.1) unstable; urgency=low
+
+  * NMU
+  * Remove /sbin/init from the udebs, while still leaving init support
+    compiled in. rootskel takes over providing init, but then calls bb init.
+    Remove linuxrc support from the udebs entirely. Closes: #216756
+  * config-floppy-udeb-linux: add minimal find, grep. Closes: #215169
+  * net-udeb-linux-i386: add loopback mount support. Closes: #215613
+
+ -- Joey Hess <joeyh@debian.org>  Tue, 21 Oct 2003 12:47:52 -0400
+
+busybox-cvs (20030926-2) unstable; urgency=low
+
+  * debian/config-floppy-udeb-linux
+    - update for new floppy images (closes: #212986, #214102)
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 09 Oct 2003 12:25:49 +0200
+
+busybox-cvs (20030926-1) unstable; urgency=low
+
+  * new cvs version
+  * Makefile
+    - fix libpwdgrp link (upstream) (closes: #211675)
+  * Rules.mak.in
+    - fix optimization (closes: #212485)
+  * debian/config*
+    - update
+  * debian/config*udeb*
+    - move linux-i386 to linux (enable modutils on any linux arch)
+    - rename net to floppy
+    - enable wget status bar (closes: #211457)
+  * init/init.c
+    - workaround race conditions (closes: #212764)
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 26 Sep 2003 15:10:14 +0200
+
+busybox-cvs (0.60.99.cvs20030819-3) unstable; urgency=low
+
+  * shell/ash.c
+    - fix signal handling (upstream)
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 15 Sep 2003 18:12:09 +0200
+
+busybox-cvs (0.60.99.cvs20030819-2) unstable; urgency=low
+
+  * Fix configure permisions
+  * Set source Section to embedded
+
+ -- Glenn McGrath <bug1@debian.org>  Mon, 25 Aug 2003 06:33:19 +0000
+
+busybox-cvs (0.60.99.cvs20030819-1) unstable; urgency=low
+
+  * new cvs version
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 19 Aug 2003 13:18:54 +0200
+
+busybox-cvs (0.60.99.cvs20030426-10) unstable; urgency=low
+
+  * archival/libunarchive/*
+    - add hardlink support (pending)
+  * debian/config-*udeb*
+    - add support for oldgnu tar format
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 10 Jun 2003 12:06:41 +0200
+
+busybox-cvs (0.60.99.cvs20030426-9) unstable; urgency=low
+
+  * modutils/depmod.c
+    - fix base_dir for modules.dep 
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 07 Jun 2003 14:52:54 +0200
+
+busybox-cvs (0.60.99.cvs20030426-8) unstable; urgency=low
+
+  * util-linux/fdisk.c
+    - fix syscalls. (pending)
+  * libpwd/*
+    - don't build setgroups.o
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 03 Jun 2003 11:26:28 +0200
+
+busybox-cvs (0.60.99.cvs20030426-7) unstable; urgency=low
+
+  * libbb/*syscallc.c
+    - fix syscalls. (upstream) (closes: #194631)
+  * modutils/*
+    - update complete objects code from upstream. (pending)
+  * debian/config-*udeb*
+    - update to busybox-applets.txt:1.14
+
+ -- Bastian Blank <waldi@debian.org>  Thu, 29 May 2003 16:17:14 +0200
+
+busybox-cvs (0.60.99.cvs20030426-6) unstable; urgency=low
+
+  * modutils/Makefile.in
+    - don't build anything if deactivated
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 24 May 2003 18:57:14 +0200
+
+busybox-cvs (0.60.99.cvs20030426-5) unstable; urgency=low
+
+  * debian/config-*udeb*
+    - revert changes (closes: #192717, #192753)
+    - readd initrd support (workaround)
+    - make init quiet
+  * archival/tar.c
+    - fix usage of tar -O (upstream) (closes: #193788)
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 24 May 2003 13:25:36 +0200
+
+busybox-cvs (0.60.99.cvs20030426-4) unstable; urgency=low
+
+  * debian/config-*udeb*
+    - update to busybox-applets.txt:1.12
+  * debian/rules
+    - use system instead of arch to determine which config file to use
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 09 May 2003 11:21:13 +0200
+
+busybox-cvs (0.60.99.cvs20030426-3) unstable; urgency=low
+
+  * debian/config-udeb*
+    - update to busybox-applets.txt:1.11
+
+ -- Bastian Blank <waldi@debian.org>  Wed, 07 May 2003 10:37:40 +0200
+
+busybox-cvs (0.60.99.cvs20030426-2) unstable; urgency=low
+
+  * modutils/*
+    - modprobe failes gracefully if the module is already loaded. (pending)
+    - implement depmod. (pending)
+  * debian/config*
+    - update
+
+ -- Bastian Blank <waldi@debian.org>  Wed, 30 Apr 2003 14:12:36 +0200
+
+busybox-cvs (0.60.99.cvs20030426-1) unstable; urgency=low
+
+  * new cvs version
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 26 Apr 2003 18:33:17 +0200
+
+busybox-cvs (0.60.99.cvs20030420-4) unstable; urgency=low
+
+  * network/libiproute/iproute.c
+    - fix usage of ip route flush (upstream)
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 25 Apr 2003 16:48:43 +0200
+
+busybox-cvs (0.60.99.cvs20030420-3) unstable; urgency=low
+
+  * debian/config-*udeb*
+    - update to busybox-applets.txt:1.10
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 25 Apr 2003 14:03:23 +0200
+
+busybox-cvs (0.60.99.cvs20030420-2) unstable; urgency=low
+
+  * archival/tar.c, archival/libunarchive/data_extract_all.c
+    - unlink files first (upstream patch)
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 21 Apr 2003 12:42:06 +0200
+
+busybox-cvs (0.60.99.cvs20030420-1) unstable; urgency=low
+
+  * new cvs version
+  * debian/config*-udeb*
+    - add ifconfig/route for easier transition
+  * debian/config-net-udeb-i386
+    - add logger
+  * debian/config-udeb*
+    - add uniq
+
+ -- Bastian Blank <waldi@debian.org>  Sun, 20 Apr 2003 21:02:58 +0200
+
+busybox-cvs (0.60.99.cvs20030405-1) unstable; urgency=low
+
+  * new cvs version
+  * debian/control
+    - add busybox-cvs-net-udeb
+  * debian/rules
+    - arch depend debs
+    - new net-udeb
+  * debian/config*
+    - cleanup applet list
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 05 Apr 2003 11:44:50 +0200
+
+busybox-cvs (0.60.99.cvs20030221-1) unstable; urgency=low
+
+  * new cvs version
+  * enable new applets in udeb
+
+ -- Bastian Blank <waldi@debian.org>  Fri, 21 Feb 2003 23:15:16 +0100
+
+busybox-cvs (0.60.99.cvs20030114-1) unstable; urgency=low
+
+  * new cvs version
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 14 Jan 2003 17:06:43 +0000
+
+busybox-cvs (0.60.99.cvs20030105-1) unstable; urgency=low
+
+  * Fix ip command build failure on ia64 (Closes: #172580
+  * Dont build with BSD partition table support in fdisk, fails on m68k 
+
+ -- Glenn McGrath <bug1@debian.org>  Sun,  5 Jan 2003 12:48:05 +1100
+
+busybox-cvs (0.60.99.cvs20030104-2) unstable; urgency=low
+
+  * floppy-retriever needs the cut command in the udeb 
+
+ -- Glenn McGrath <bug1@debian.org>  Sat,  4 Jan 2003 17:13:05 +1100
+
+busybox-cvs (0.60.99.cvs20030104-1) unstable; urgency=low
+
+  * new cvs version
+  * Include new applets in the static package
+  * Include ash in the udeb
+
+ -- Glenn McGrath <bug1@debian.org>  Sat,  4 Jan 2003 13:39:04 +1100
+
+busybox-cvs (0.60.99.cvs20021214-1) unstable; urgency=low
+
+  * new cvs version
+    - udhcp merge.
+  * fix location of ip link.
+
+ -- Bastian Blank <waldi@debian.org>  Sat, 14 Dec 2002 13:52:15 +0100
+
+busybox-cvs (0.60.99.cvs20021210-1) unstable; urgency=low
+
+  * new cvs version
+    - various upstream fixes found in the last version.
+  * busybox-cvs-udeb
+    - include readlink and realpath.
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 10 Dec 2002 21:23:40 +0100
+
+busybox-cvs (0.60.99.cvs20021209-2) unstable; urgency=low
+
+  * cleanup scripts/config/ within make clean (closes: #172413)
+  * busybox-cvs-udeb
+    - include readlink
+  * include manpages within busybox-cvs and busybox-cvs-static
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 09 Dec 2002 22:09:52 +0100
+
+busybox-cvs (0.60.99.cvs20021209-1) unstable; urgency=low
+
+  * New cvs version.
+    - fix udhcpc for use with ip.
+    - klogd supports -c.
+  * busybox-cvs-udeb
+    - set priority to extra. (closes: #172302)
+    - don't longer provide busybox-udeb.
+
+ -- Bastian Blank <waldi@debian.org>  Mon, 09 Dec 2002 16:22:03 +0100
+
+busybox-cvs (0.60.99.cvs20021203-1) unstable; urgency=low
+
+  * New packages based on busybox cvs.
+  * changes for the udeb
+    - enable ip applet with address, link and route part.
+    - enable udhcpc.
+    - disable ifconfig and route applet.
+    - disable ls color.
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 03 Dec 2002 18:51:00 +0100
+
+busybox (1:0.60.0-1) unstable; urgency=low
+
+  * New version released.  See changelog for details.
+
+ -- Erik Andersen <andersee@debian.org>  Thu,  2 Aug 2001 12:12:37 -0600
+
+busybox (1:0.52-1.1) unstable; urgency=high
+
+  * Non-maintainer upload
+  * Fixed wget -P handling (closes: #106223).
+
+ -- Matt Kraai <kraai@debian.org>  Wed, 25 Jul 2001 11:01:38 -0600
+
+busybox (1:0.52-1) unstable; urgency=high
+
+  * New version released.  See changelog for details.
+
+ -- Erik Andersen <andersee@debian.org>  Sat,  7 Jul 2001 01:23:45 -0600
+
+busybox (1:0.51-10) unstable; urgency=high
+
+  * Fix a compile problem with gcc 3.0 on hppa (closes: #102045)
+
+ -- Erik Andersen <andersee@debian.org>  Sat, 23 Jun 2001 23:55:57 -0600
+
+busybox (1:0.51-9) unstable; urgency=high
+
+  * tar was creating leading directories with 0777 permissions as
+    as reult of faulty umask handling.  This fixes it, repairing
+    a grave security problem in the woody the boot floppies.
+    (closes: #101169)
+
+ -- Erik Andersen <andersee@debian.org>  Wed, 20 Jun 2001 16:17:38 -0600
+
+busybox (1:0.51-8) unstable; urgency=high
+
+  * Fix cp from /proc, where size=0 (closes: #100369)
+  * Add some padding to struct sysinfo for m68k.
+  * Apparently some bugs failed to be closed when master choked
+    (closes: #99627, #99637, #98571)
+  * Disable the busybox shell for the .deb, since it is not needed
+    for the boot floppies.
+
+ -- Erik Andersen <andersee@debian.org>  Mon, 11 Jun 2001 13:26:07 -0600
+
+busybox (1:0.51-7) unstable; urgency=high
+
+  * Fix tar permission setting for existing directories (closes: #99627)
+  * Do not remove the .cvsignore files on 'make release' (closes: #99637)
+
+ -- Erik Andersen <andersee@debian.org>  Mon,  4 Jun 2001 10:55:19 -0600
+
+busybox (1:0.51-6) testing unstable; urgency=high
+
+  * Update the version in testing so DHCP in the woody boot-floppies will work.
+  * Enable expr for the boot-floppies (closes: #98433)
+  * It builds on arm just fine now (closes: #97510)
+
+ -- Erik Andersen <andersee@debian.org>  Wed, 23 May 2001 14:50:13 -0600
+
+busybox (1:0.51-5) unstable; urgency=low
+
+  * Backport a sed fix from 0.52pre
+  * Backport chroot fix from 0.52pre
+
+ -- Erik Andersen <andersee@debian.org>  Wed, 16 May 2001 23:50:33 -0600
+
+busybox (1:0.51-4) unstable; urgency=low
+
+  * Backport from 0.52pre an endianness bugfix for md5sum
+  * Backport some updates to grep and sed
+  * Fix 'wget -O -' so it sets the quiet flag
+
+ -- Erik Andersen <andersee@debian.org>  Mon, 14 May 2001 14:17:36 -0600
+
+busybox (1:0.51-3) unstable; urgency=low
+
+  * This is the "I am an idiot" release.
+  * Make cp and mv work again (closes: #97290) 
+  * Fix the version number.
+
+ -- Erik Andersen <andersee@debian.org>  Sat, 12 May 2001 17:35:58 -0600
+
+busybox (0.51-2) unstable; urgency=low
+
+  * Backport several release critical fixes into the 0.51 codebase
+    so the boot-floppies will work again.
+  * Fix a link ordering problem. (closes: #93362)
+  * Fixed gunzip (closes: #94331)
+  * Fixed cp permission setting (closes: #94580)
+
+ -- Erik Andersen <andersee@debian.org>  Sat, 12 May 2001 11:22:35 -0600
+
+busybox (0.51-1) unstable; urgency=low
+
+  * Fixes several critical bugs (see the busybox changelog
+    for complete details)
+  * Force USE_SYSTEM_PWD_GRP=false, so busybox bypasses
+    the glibc NSS libraries. (closes: #93362)
+  * Fixed a bug in sed's address range handling (closes: #91758) 
+  * Removed irrelevant cruft from the bottem of debian/changelog
+
+ -- Erik Andersen <andersee@debian.org>  Tue, 10 Apr 2001 14:07:29 -0600
+
+busybox (0.50-2) unstable; urgency=low
+  
+  * Enabled freeramdisk and pivot_root in the udeb (closes: #91336)
+  * Disabled lash (the busybox shell) in the udeb (closes: #91337)
+  * fixed a bug in syslog, a problem with rebooting when booted as
+    an initrd, and a few other minor problems.
+
+ -- Erik Andersen <andersee@debian.org>  Sun, 25 Mar 2001 20:59:44 -0700
+
+
+busybox (0.50-2) unstable; urgency=low
+  
+  * Enabled freeramdisk and pivot_root in the udeb (closes: #91336)
+  * Disabled lash (the busybox shell) in the udeb (closes: #91337)
+  * fixed a bug in syslog, a problem with rebooting when booted as
+    an initrd, and a few other minor problems.
+
+ -- Erik Andersen <andersee@debian.org>  Sun, 25 Mar 2001 20:59:44 -0700
+
+busybox (0.50-1) unstable; urgency=low
+
+  * Tons on improvements all around -- See changelog for details.
+  * Fix malformed Build-Depends (closes: #86930)
+  * grep has worked for some time now (closes: #81084)
+  * init compiles with DEBUG_INIT enabled (closes: #85794)
+  * md5sum no longer displays filename when reading stdin (closes: #81283)
+  * lsmod, rmmod, and insmod are no longer enabled (closes: #85642)
+  * busybox and buxybox-static now conflict/replace each other (closes: #80421)
+
+ -- Erik Andersen <andersee@debian.org>  Thu, 15 Mar 2001 14:45:00 -0700
+
+busybox (0.49-1) unstable; urgency=low
+
+  * Lots more source updates and bug fixes.  See changelog for details.
+
+ -- Erik Andersen <andersee@debian.org>  Sat, 27 Jan 2001 01:45:53 -0700
+
+busybox (0.48-1) unstable; urgency=low
+
+  * Lots more source updates and bug fixes.  See changelog for details.
+  * Now includes .udeb support for the debian-installer.  The .udeb 
+    probably needs some more work, but this should be a good start.
+
+ -- Erik Andersen <andersee@debian.org>  Wed, 13 Dec 2000 08:36:07 -0700
+
+busybox (0.47-1) unstable; urgency=low
+
+  * New version released.  See changelog for details.
+
+ -- Erik Andersen <andersee@debian.org>  Mon, 25 Sep 2000 23:00:56 -0600
+
+busybox (0.46-1) unstable; urgency=low
+
+  * New version released.  See changelog for details.
+
+ -- Erik Andersen <andersee@debian.org>  Tue, 11 Jul 2000 12:15:44 -0600
+
+busybox (0.45-1) unstable; urgency=low
+
+  * First attempt at packaging BusyBox as a .deb.  This has been in 
+    in the Debian boot-floppies CVS tree forever.  Hopefully, having it as a
+    standalone app will make life easier for me, the debian-installer team, and
+    everyone else as well...
+  * I have created a busybox-static that can be used as a rescue shell when you 
+    hose your system.  Just invoke "busybox sh" to fir up the shell.  This has
+    every app provided by busybox staically linked in.  There have been several
+    times in the past that I would have loved to have this sitting on my system
+    (i.e. when libc gets screwed up.)
+
+ -- Erik Andersen <andersee@debian.org>  Tue, 27 Jun 2000 12:26:41 -0600
+
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/config/config.maemo b/debian/config/config.maemo
new file mode 100644 (file)
index 0000000..b31c6a3
--- /dev/null
@@ -0,0 +1,992 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.18.4
+# Fri May 7 14:16:22 2011
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+# CONFIG_DESKTOP is not set
+# CONFIG_EXTRA_COMPAT is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_PLATFORM_LINUX=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_INSTALL_NO_USR is not set
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=0
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+CONFIG_UNICODE_WIDE_WCHARS=y
+CONFIG_UNICODE_BIDI_SUPPORT=y
+CONFIG_UNICODE_NEUTRAL_TABLE=y
+CONFIG_UNICODE_PRESERVE_BROKEN=y
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_WTMP=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_EXTRA_CFLAGS=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+
+#
+# Installation Options ("make install" behavior)
+#
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=0
+CONFIG_FEATURE_FAST_TOP=y
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+# CONFIG_FEATURE_EDITING_VI is not set
+CONFIG_FEATURE_EDITING_HISTORY=100
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
+CONFIG_FEATURE_NON_POSIX_CP=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+CONFIG_FEATURE_HWIB=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+CONFIG_FEATURE_SEAMLESS_LZMA=y
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+# CONFIG_FEATURE_SEAMLESS_Z is not set
+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_CPIO_O=y
+CONFIG_FEATURE_CPIO_P=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_GZIP=y
+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_LZOP=y
+# CONFIG_LZOP_COMPR_HIGH is not set
+CONFIG_RPM2CPIO=y
+CONFIG_RPM=y
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_TOUCH=y
+CONFIG_FEATURE_TAR_TO_COMMAND=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_FEATURE_DATE_NANO is not set
+CONFIG_FEATURE_DATE_COMPAT=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_BASE64=y
+CONFIG_CAL=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_CUT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_FANCY=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_FSYNC=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SHA256SUM=y
+CONFIG_SHA512SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_FEATURE_FLOAT_SLEEP=y
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TOUCH=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum, sha256sum, sha512sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_FGCONSOLE=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETFONT=y
+CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y
+CONFIG_DEFAULT_SETFONT_DIR=""
+CONFIG_SETKEYCODES=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_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_PATCH=y
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+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_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+CONFIG_FEATURE_FIND_DELETE=y
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_FEATURE_FIND_LINKS=y
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+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
+
+#
+# Init Utilities
+#
+CONFIG_BOOTCHARTD=y
+CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y
+CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y
+CONFIG_HALT=y
+CONFIG_FEATURE_CALL_TELINIT=y
+CONFIG_TELINIT_PATH="/sbin/telinit"
+# CONFIG_INIT is not set
+# CONFIG_FEATURE_USE_INITTAB is not set
+# CONFIG_FEATURE_KILL_REMOVED is not set
+CONFIG_FEATURE_KILL_DELAY=0
+# CONFIG_FEATURE_INIT_SCTTY is not set
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+# CONFIG_FEATURE_EXTRA_QUIET is not set
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_INIT_TERMINAL_TYPE=""
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_ADD_SHELL=y
+CONFIG_REMOVE_SHELL=y
+CONFIG_FEATURE_SHADOWPASSWDS=y
+CONFIG_USE_BB_PWD_GRP=y
+CONFIG_USE_BB_SHADOW=y
+CONFIG_USE_BB_CRYPT=y
+CONFIG_USE_BB_CRYPT_SHA=y
+CONFIG_ADDUSER=y
+CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_FIRST_SYSTEM_ID=0
+CONFIG_LAST_SYSTEM_ID=0
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_GETTY=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+# CONFIG_FSCK is not set
+CONFIG_LSATTR=y
+# CONFIG_TUNE2FS is not set
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODINFO=n
+CONFIG_MODPROBE_SMALL=n
+CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=n
+CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=n
+# CONFIG_INSMOD is not set
+# CONFIG_RMMOD is not set
+# CONFIG_LSMOD is not set
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_DEPMOD is not set
+
+#
+# Options common to multiple modutils
+#
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_BLOCKDEV=y
+CONFIG_REV=y
+CONFIG_ACPID=y
+CONFIG_FEATURE_ACPID_COMPAT=y
+CONFIG_BLKID=y
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_GPT_LABEL is not set
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+CONFIG_FLOCK=y
+CONFIG_FREERAMDISK=y
+# CONFIG_FSCK_MINIX is not set
+CONFIG_MKFS_EXT2=y
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+# CONFIG_MKFS_REISER is not set
+CONFIG_MKFS_VFAT=y
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=y
+CONFIG_HEXDUMP=y
+CONFIG_FEATURE_HEXDUMP_REVERSE=y
+CONFIG_HD=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_LSPCI=y
+CONFIG_LSUSB=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_UUID=y
+CONFIG_MORE=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+CONFIG_FEATURE_MOUNT_NFS=y
+# CONFIG_FEATURE_MOUNT_CIFS is not set
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_RDEV=y
+CONFIG_READPROFILE=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SCRIPTREPLAY=y
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_PRI=y
+# CONFIG_SWITCH_ROOT is not set
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_BTRFS=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+CONFIG_FEATURE_VOLUMEID_OCFS2=y
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+CONFIG_ADJTIMEX=y
+# CONFIG_BBCONFIG is not set
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+CONFIG_BEEP=y
+CONFIG_FEATURE_BEEP_FREQ=4000
+CONFIG_FEATURE_BEEP_LENGTH_MS=30
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y
+CONFIG_FEATURE_CHAT_SEND_ESCAPES=y
+CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y
+CONFIG_FEATURE_CHAT_CLR_ABORT=y
+CONFIG_CHRT=y
+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
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_DEVMEM=y
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=n
+# CONFIG_FLASHCP is not set
+# CONFIG_FLASH_LOCK is not set
+# CONFIG_FLASH_UNLOCK is not set
+# CONFIG_FLASH_ERASEALL is not set
+CONFIG_IONICE=y
+# CONFIG_INOTIFYD is not set
+CONFIG_LAST=y
+# CONFIG_FEATURE_LAST_SMALL is not set
+CONFIG_FEATURE_LAST_FANCY=y
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_FEATURE_LESS_WINCH=y
+CONFIG_FEATURE_LESS_DASHCMD=y
+CONFIG_FEATURE_LESS_LINENUMS=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+CONFIG_MAN=y
+CONFIG_MICROCOM=y
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+# CONFIG_RFKILL is not set
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+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
+CONFIG_VOLNAME=y
+CONFIG_WALL=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_FEATURE_IPV6=y
+# CONFIG_FEATURE_UNIX_LOCAL is not set
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+CONFIG_FEATURE_BRCTL_FANCY=y
+CONFIG_FEATURE_BRCTL_SHOW=y
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+CONFIG_FTPD=y
+CONFIG_FEATURE_FTP_WRITE=y
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+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
+CONFIG_FEATURE_HTTPD_CGI=y
+CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
+CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=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 is not set
+# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+CONFIG_IFPLUGD=y
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+# CONFIG_FEATURE_IFUPDOWN_IP is not set
+# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+CONFIG_INETD=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
+CONFIG_FEATURE_INETD_RPC=y
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NAMEIF=y
+CONFIG_FEATURE_NAMEIF_EXTENDED=y
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_NTPD=y
+CONFIG_FEATURE_NTPD_SERVER=y
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+CONFIG_TCPSVD=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_FEATURE_TELNETD_INETD_WAIT=y
+CONFIG_TFTP=y
+CONFIG_TFTPD=y
+
+#
+# Common options for tftp/tftpd
+#
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
+# CONFIG_TFTP_DEBUG is not set
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=y
+CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+CONFIG_TUNCTL=y
+CONFIG_FEATURE_TUNCTL_UG=y
+CONFIG_UDHCPD=y
+CONFIG_DHCPRELAY=y
+CONFIG_DUMPLEASES=y
+CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
+CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
+CONFIG_UDHCPC=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+CONFIG_FEATURE_UDHCP_PORT=y
+CONFIG_UDHCP_DEBUG=9
+CONFIG_FEATURE_UDHCP_RFC3397=y
+CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
+CONFIG_UDPSVD=y
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+CONFIG_ZCIP=y
+
+#
+# Print Utilities
+#
+CONFIG_LPD=y
+CONFIG_LPR=y
+CONFIG_LPQ=y
+
+#
+# Mail Utilities
+#
+CONFIG_MAKEMIME=y
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
+CONFIG_POPMAILDIR=y
+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
+CONFIG_REFORMIME=y
+CONFIG_FEATURE_REFORMIME_COMPAT=y
+CONFIG_SENDMAIL=y
+
+#
+# Process Utilities
+#
+CONFIG_IOSTAT=y
+CONFIG_MPSTAT=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+CONFIG_SMEMCAP=y
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PKILL=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_FEATURE_PS_TIME=y
+CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_SMP_CPU=n
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOP_SMP_PROCESS=n
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_FEATURE_SHOW_THREADS=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+CONFIG_SV=y
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Shells
+#
+CONFIG_ASH=y
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+CONFIG_CTTYHACK=y
+CONFIG_HUSH=y
+CONFIG_HUSH_BASH_COMPAT=y
+CONFIG_HUSH_BRACE_EXPANSION=y
+CONFIG_HUSH_HELP=y
+CONFIG_HUSH_INTERACTIVE=y
+CONFIG_HUSH_SAVEHISTORY=y
+CONFIG_HUSH_JOB=y
+CONFIG_HUSH_TICK=y
+CONFIG_HUSH_IF=y
+CONFIG_HUSH_LOOPS=y
+CONFIG_HUSH_CASE=y
+CONFIG_HUSH_FUNCTIONS=y
+CONFIG_HUSH_LOCAL=y
+CONFIG_HUSH_RANDOM_SUPPORT=y
+CONFIG_HUSH_EXPORT_N=y
+CONFIG_HUSH_MODE_X=y
+# CONFIG_MSH is not set
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+# CONFIG_FEATURE_BASH_IS_ASH is not set
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
+CONFIG_FEATURE_BASH_IS_NONE=y
+CONFIG_SH_MATH_SUPPORT=y
+CONFIG_SH_MATH_SUPPORT_64=y
+# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+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
+
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..b2d60f0
--- /dev/null
@@ -0,0 +1,102 @@
+Source: busybox-power
+Priority: extra
+Section: user/utilities
+Maintainer: Dennis Groenen <dennis_groenen@hotmail.com>
+XSBC-Bugtracker: http://talk.maemo.org/showthread.php?t=72801
+XSBC-Original-Maintainer: Yauheni Kaliuta <yauheni.kaliuta@nokia.com>
+Build-Depends: debhelper (>> 5), lsb-release, python, quilt
+Standards-Version: 3.7.3
+
+Package: busybox-power
+Architecture: any
+Depends: ${shlibs:Depends}
+XB-Maemo-Display-Name: Enhanced BusyBox shell
+Description: Tiny utilities for small and embedded systems - enhanced package
+ BusyBox combines tiny versions of many common UNIX utilities into a
+ single small executable. It is the default shell used in Maemo. This
+ package overwrites the default BusyBox executable with the latest 
+ upstream version. Also, this BusyBox is built with a lot more options/
+ utilities enabled.
+ .
+ This package won't overwrite any existing symlinks and binaries providing
+ the same functionality (like GNU tar if installed/symlinked).
+ .
+ Extra utilities supported besides those which are already compiled in the
+ default BusyBox shell:
+ bunzip2 bzcat bzip2 cpio cttyhack dnsdomainname dumpkmap ed fbset
+ fdflush hush ip ipaddr iplink iproute iprule mountpoint mt nc
+ pipe_progress popmaildir pscan usleep blockdev bootchartd crond
+ fdisk ifenslave ip iptunnel klogd loadkmap logread makedevs mdev
+ nbd-client raidautorun setconsole sulogin sysctl syslogd vconfig
+ adjtimex arping base64 beep brctl cal catv chpst chrt crontab
+ cryptpw dc devmem diff dos2unix dumpleases eject envdir envuidgid
+ ether-wake fdformat fgconsole flock freeramdisk ftpget ftpput
+ hexdump ionice iostat ipcalc last length less linux32 linux64
+ loadfont lpd lpq lpr lzcat lzma lzop lzopcat makemime man microcom
+ mkpasswd mpstat nmeter patch pmap readahead reformime resize rev rpm
+ rpm2cpio rtcwake runsv runsvdir rx script scriptreplay setarch setfont
+ setuidgid showkey smemcap softlimit strings sv svlogd tcpsvd telnet
+ tftp timeout traceroute traceroute6 ttysize udhcpc udpsvd unix2dos
+ unlzma unlzop unxz unzip uudecode uuencode vlock volname wall xz xzcat
+ ar acpid add-shell addgroup adduser arp chat delgroup deluser
+ dhcprelay dnsd fakeidentd ftpd hdparm httpd ifplugd inetd lspci ntpd
+ rdate rdev readprofile remove-shell sendmail sha256sum sha512sum
+ telnetd tftpd tunctl udhcpd watchdog zcip
+XB-Maemo-Icon-26:
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
+ d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
+ 59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
+ MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
+ 96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
+ ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
+ 515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
+ SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
+ SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
+ doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
+ jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
+ OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
+ xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
+ lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
+ 1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
+ occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
+ EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
+ inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
+ 1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
+ uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
+ DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
+ QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
+ ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
+ 4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
+ Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
+ 8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
+ mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
+ kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
+ gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
+ 4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
+ 6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
+ WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
+ rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
+ orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
+ VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+ +zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
+ rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
+ GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
+ kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
+ HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
+ Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
+ jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
+ rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
+ hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
+ kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
+ LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
+ /y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+ +Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
+ DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
+ 5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
+ deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
+ mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
+ 0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
+ RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
+ X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
+ 4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
+ 5l7y6xMAAAAASUVORK5CYII=
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..ec8b1e7
--- /dev/null
@@ -0,0 +1,28 @@
+This package was debianized by Erik Andersen <andersee@debian.org> on
+Sun, 18 Jun 2000 23:31:02 -0600
+
+It was downloaded from ftp://ftp.busybox.net/busybox
+
+BusyBox is an agregate of multiple packages. These packages are copyrighted
+by their respective authors.
+
+Copyright: 1999-2005 Erik Andersen
+
+License:
+
+   This package is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This package is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this package; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+   MA 02110-1301, USA.
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL-2'.
diff --git a/debian/patches/03tar.patch b/debian/patches/03tar.patch
new file mode 100644 (file)
index 0000000..23cfd38
--- /dev/null
@@ -0,0 +1,58 @@
+Allows compatibility with tar -m / --touch command line option
+By Yauheni Kaliuta <yauheni.kaliuta@nokia.com>
+
+Ported to BusyBox 1.18.4 by Dennis Groenen <dennis_groenen@hotmail.com> - 2011-04-29  
+---
+
+--- a/archival/Config.src
++++ b/archival/Config.src
+@@ -280,6 +280,13 @@ config FEATURE_TAR_LONG_OPTIONS
+       help
+         Enable use of long options, increases size by about 400 Bytes
++config FEATURE_TAR_TOUCH
++      bool "Enable ignoring touch option"
++      default n
++      depends on TAR
++      help
++        Allows compatibility with -m / --touch command line option.
++
+ config FEATURE_TAR_TO_COMMAND
+       bool "Support for writing to an external program"
+       default y
+--- a/archival/tar.c
++++ b/archival/tar.c
+@@ -777,6 +777,7 @@ enum {
+       IF_FEATURE_TAR_TO_COMMAND(OPTBIT_2COMMAND   ,)
+       OPTBIT_NUMERIC_OWNER,
+       OPTBIT_NOPRESERVE_PERM,
++      IF_FEATURE_TAR_TOUCH(   OPTBIT_TOUCH       ,)
+       OPTBIT_OVERWRITE,
+ #endif
+       OPT_TEST         = 1 << 0, // t
+@@ -800,6 +801,7 @@ enum {
+       OPT_2COMMAND        = IF_FEATURE_TAR_TO_COMMAND(  (1 << OPTBIT_2COMMAND       )) + 0, // to-command
+       OPT_NUMERIC_OWNER   = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_NUMERIC_OWNER  )) + 0, // numeric-owner
+       OPT_NOPRESERVE_PERM = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_NOPRESERVE_PERM)) + 0, // no-same-permissions
++      OPT_TOUCH           = IF_FEATURE_TAR_TOUCH(   (1<<OPTBIT_TOUCH       )) + 0, // m
+       OPT_OVERWRITE       = IF_FEATURE_TAR_LONG_OPTIONS((1 << OPTBIT_OVERWRITE      )) + 0, // overwrite
+ };
+ #if ENABLE_FEATURE_TAR_LONG_OPTIONS
+@@ -853,6 +855,9 @@ static const char tar_longopts[] ALIGN1 
+ # if ENABLE_FEATURE_TAR_FROM
+       "exclude\0"             Required_argument "\xff"
+ # endif
++# if ENABLE_FEATURE_TAR_TOUCH
++      "touch\0"               No_argument       "m"
++# endif
+       ;
+ #endif
+@@ -929,6 +934,7 @@ int tar_main(int argc UNUSED_PARAM, char
+               IF_FEATURE_SEAMLESS_GZ(  "z"   )
+               IF_FEATURE_SEAMLESS_Z(   "Z"   )
+               IF_FEATURE_TAR_NOPRESERVE_TIME("m")
++              IF_FEATURE_TAR_TOUCH(   "m"   )
+               , &base_dir // -C dir
+               , &tar_filename // -f filename
+               IF_FEATURE_TAR_FROM(, &(tar_handle->accept)) // T
diff --git a/debian/patches/05thumb.patch b/debian/patches/05thumb.patch
new file mode 100644 (file)
index 0000000..b5e32c3
--- /dev/null
@@ -0,0 +1,17 @@
+Allow thumb flag to be passed to make (e.g. -mthumb)
+By Yauheni Kaliuta <yauheni.kaliuta@nokia.com>
+
+Ported to BusyBox 1.18.4 by Dennis Groenen <dennis_groenen@hotmail.com> - 2011-04-29  
+---
+
+--- a/Makefile.flags
++++ b/Makefile.flags
+@@ -51,7 +51,7 @@ CFLAGS += $(call cc-option,-fno-builtin-
+ # of branch probabilities (hopefully makes bloatcheck more stable):
+ CFLAGS += $(call cc-option,-fno-guess-branch-probability,)
+ CFLAGS += $(call cc-option,-funsigned-char -static-libgcc,)
+-CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,)
++CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 $(THUMB),)
+ # FIXME: These warnings are at least partially to be concerned about and should
+ # be fixed..
diff --git a/debian/patches/06ls.patch b/debian/patches/06ls.patch
new file mode 100644 (file)
index 0000000..4ae1e5c
--- /dev/null
@@ -0,0 +1,16 @@
+Flush all open files after showing files
+By Yauheni Kaliuta <yauheni.kaliuta@nokia.com>
+
+Ported to BusyBox 1.18.4 by Dennis Groenen <dennis_groenen@hotmail.com> - 2011-04-29  
+---
+
+--- a/coreutils/ls.c
++++ b/coreutils/ls.c
+@@ -784,6 +784,7 @@ static void showfiles(struct dnode **dn,
+                       }
+               }
+               putchar('\n');
++              fflush(NULL);
+               column = 0;
+       }
+ }
diff --git a/debian/patches/applets-fallback.patch b/debian/patches/applets-fallback.patch
new file mode 100644 (file)
index 0000000..9d9ec48
--- /dev/null
@@ -0,0 +1,209 @@
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -7345,25 +7345,10 @@
+ static void
+-tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char **envp)
++tryexec(char *cmd, char **argv, char **envp)
+ {
+       int repeated = 0;
+-#if ENABLE_FEATURE_SH_STANDALONE
+-      if (applet_no >= 0) {
+-              if (APPLET_IS_NOEXEC(applet_no)) {
+-                      clearenv();
+-                      while (*envp)
+-                              putenv(*envp++);
+-                      run_applet_no_and_exit(applet_no, argv);
+-              }
+-              /* re-exec ourselves with the new arguments */
+-              execve(bb_busybox_exec_path, argv, envp);
+-              /* If they called chroot or otherwise made the binary no longer
+-               * executable, fall through */
+-      }
+-#endif
+-
+  repeat:
+ #ifdef SYSV
+       do {
+@@ -7407,24 +7392,21 @@
+       int e;
+       char **envp;
+       int exerrno;
+-#if ENABLE_FEATURE_SH_STANDALONE
+-      int applet_no = -1;
+-#endif
+       clearredir(/*drop:*/ 1);
+       envp = listvars(VEXPORT, VUNSET, /*end:*/ NULL);
+-      if (strchr(argv[0], '/') != NULL
+-#if ENABLE_FEATURE_SH_STANDALONE
+-       || (applet_no = find_applet_by_name(argv[0])) >= 0
+-#endif
+-      ) {
+-              tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) argv[0], argv, envp);
++      if (strchr(argv[0], '/') != NULL) {
++              tryexec(argv[0], argv, envp);
+               e = errno;
+       } else {
++#if ENABLE_FEATURE_SH_STANDALONE
++              bb_execv_applet(argv[0], argv, envp);
++#endif
++
+               e = ENOENT;
+               while ((cmdname = path_advance(&path, argv[0])) != NULL) {
+                       if (--idx < 0 && pathopt == NULL) {
+-                              tryexec(IF_FEATURE_SH_STANDALONE(-1,) cmdname, argv, envp);
++                              tryexec(cmdname, argv, envp);
+                               if (errno != ENOENT && errno != ENOTDIR)
+                                       e = errno;
+                       }
+--- a/libbb/execable.c
++++ b/libbb/execable.c
+@@ -9,6 +9,9 @@
+ #include "libbb.h"
++#include <alloca.h>
++#include <stdarg.h>
++
+ /* check if path points to an executable file;
+  * return 1 if found;
+  * return 0 otherwise;
+@@ -68,12 +71,60 @@
+ }
+ #if ENABLE_FEATURE_PREFER_APPLETS
++int FAST_FUNC bb_execv_applet(const char *name, char *const argv[], char *const envp[])
++{
++      const char **path = bb_busybox_exec_paths;
++
++      errno = ENOENT;
++
++      if (find_applet_by_name(name) < 0)
++              return -1;
++
++      for (; *path; ++path)
++              execve(*path, argv, envp);
++
++      return -1;
++}
++
+ /* just like the real execvp, but try to launch an applet named 'file' first
+  */
+ int FAST_FUNC bb_execvp(const char *file, char *const argv[])
+ {
+-      return execvp(find_applet_by_name(file) >= 0 ? bb_busybox_exec_path : file,
+-                                      argv);
++      int ret = bb_execv_applet(file, argv, environ);
++      if (errno != ENOENT)
++              return ret;
++
++      return execvp(file, argv);
++}
++
++int FAST_FUNC bb_execlp(const char *file, const char *arg, ...)
++{
++#define INITIAL_ARGV_MAX 16
++      size_t argv_max = INITIAL_ARGV_MAX;
++      const char **argv = malloc(argv_max * sizeof (const char *));
++      va_list args;
++      unsigned int i = 0;
++      int ret;
++
++      va_start (args, arg);
++      while (argv[i++] != NULL) {
++              if (i == argv_max) {
++                      const char **nptr;
++                      argv_max *= 2;
++                      nptr = realloc (argv, argv_max * sizeof (const char *));
++                      if (nptr == NULL)
++                              return -1;
++                      argv = nptr;
++              }
++
++              argv[i] = va_arg (args, const char *);
++      }
++      va_end (args);
++
++      ret = bb_execvp(file, (char *const *)argv);
++      free(argv);
++
++      return ret;
+ }
+ #endif
+--- a/libbb/messages.c
++++ b/libbb/messages.c
+@@ -36,6 +36,15 @@
+ const char bb_hexdigits_upcase[] ALIGN1 = "0123456789ABCDEF";
+ const char bb_busybox_exec_path[] ALIGN1 = CONFIG_BUSYBOX_EXEC_PATH;
++const char *bb_busybox_exec_paths[] ALIGN1 = {
++#ifdef __linux__
++      "/proc/self/exe",
++#endif
++#ifdef CONFIG_BUSYBOX_EXEC_PATH
++      CONFIG_BUSYBOX_EXEC_PATH,
++#endif
++      NULL
++};
+ const char bb_default_login_shell[] ALIGN1 = LIBBB_DEFAULT_LOGIN_SHELL;
+ /* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin,
+  * but I want to save a few bytes here. Check libbb.h before changing! */
+--- a/include/libbb.h
++++ b/include/libbb.h
+@@ -842,11 +842,11 @@
+  * but it may exec busybox and call applet instead of searching PATH.
+  */
+ #if ENABLE_FEATURE_PREFER_APPLETS
++int bb_execv_applet(const char *name, char *const argv[], char *const envp[]) FAST_FUNC;
+ int bb_execvp(const char *file, char *const argv[]) FAST_FUNC;
+-#define BB_EXECVP(prog,cmd) bb_execvp(prog,cmd)
+-#define BB_EXECLP(prog,cmd,...) \
+-      execlp((find_applet_by_name(prog) >= 0) ? CONFIG_BUSYBOX_EXEC_PATH : prog, \
+-              cmd, __VA_ARGS__)
++int bb_execlp(const char *file, const char *arg, ...) FAST_FUNC;
++#define BB_EXECVP(prog,cmd)     bb_execvp(prog,cmd)
++#define BB_EXECLP(prog,cmd,...) bb_execlp(prog,cmd, __VA_ARGS__)
+ #else
+ #define BB_EXECVP(prog,cmd)     execvp(prog,cmd)
+ #define BB_EXECLP(prog,cmd,...) execlp(prog,cmd, __VA_ARGS__)
+@@ -1612,6 +1612,7 @@
+ #define bb_dev_null "/dev/null"
+ extern const char bb_busybox_exec_path[];
++extern const char *bb_busybox_exec_paths[];
+ /* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin,
+  * but I want to save a few bytes here */
+ extern const char bb_PATH_root_path[]; /* "PATH=/sbin:/usr/sbin:/bin:/usr/bin" */
+--- a/Config.in
++++ b/Config.in
+@@ -411,13 +411,10 @@
+ config BUSYBOX_EXEC_PATH
+       string "Path to BusyBox executable"
+-      default "/proc/self/exe"
++      default "/bin/busybox"
+       help
+         When Busybox applets need to run other busybox applets, BusyBox
+-        sometimes needs to exec() itself. When the /proc filesystem is
+-        mounted, /proc/self/exe always points to the currently running
+-        executable. If you haven't got /proc, set this to wherever you
+-        want to run BusyBox from.
++        sometimes needs to exec() itself.
+ # These are auto-selected by other options
+--- a/coreutils/chroot.c
++++ b/coreutils/chroot.c
+@@ -30,5 +30,7 @@
+               argv[1] = (char *) "-i";
+       }
+-      BB_EXECVP_or_die(argv);
++      execvp(argv[0], argv);
++      xfunc_error_retval = (errno == ENOENT) ? 127 : 126;
++      bb_perror_msg_and_die("can't execute '%s'", argv[0]);
+ }
diff --git a/debian/patches/busybox-zero-ifr.ifr_hwaddr.sa_data.patch b/debian/patches/busybox-zero-ifr.ifr_hwaddr.sa_data.patch
new file mode 100644 (file)
index 0000000..cbeb08e
--- /dev/null
@@ -0,0 +1,15 @@
+By Yauheni Kaliuta <yauheni.kaliuta@nokia.com>
+
+Ported to BusyBox 1.18.4 by Dennis Groenen <dennis_groenen@hotmail.com> - 2011-04-29  
+---
+
+--- a/networking/interface.c
++++ b/networking/interface.c
+@@ -622,6 +622,7 @@ static int if_fetch(struct interface *if
+       strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
+       memset(ife->hwaddr, 0, 32);
++      memset(ifr.ifr_hwaddr.sa_data, 0, 8);
+       if (ioctl(skfd, SIOCGIFHWADDR, &ifr) >= 0)
+               memcpy(ife->hwaddr, ifr.ifr_hwaddr.sa_data, 8);
diff --git a/debian/patches/init-console.patch b/debian/patches/init-console.patch
new file mode 100644 (file)
index 0000000..fd45cbf
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/init/init.c
++++ b/init/init.c
+@@ -562,6 +562,8 @@ static void run_actions(int action_type)
+       for (a = init_action_list; a; a = a->next) {
+               if (!(a->action_type & action_type))
+                       continue;
++              if (a->terminal[0] && access(a->terminal, R_OK | W_OK))
++                      continue;
+               if (a->action_type & (SYSINIT | WAIT | ONCE | CTRLALTDEL | SHUTDOWN)) {
+                       pid_t pid = run(a);
diff --git a/debian/patches/obselete/fsync.patch b/debian/patches/obselete/fsync.patch
new file mode 100644 (file)
index 0000000..3ec0ebf
--- /dev/null
@@ -0,0 +1,110 @@
+Index: busybox/coreutils/fsync.c
+===================================================================
+--- busybox/coreutils/fsync.c  (revision 0)
++++ busybox/coreutils/fsync.c  (revision 0)
+@@ -0,0 +1,46 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * Mini fsync implementation for busybox
++ *
++ * Copyright (C) 2008 Nokia Corporation. All rights reserved.
++ *
++ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
++ */
++
++#include "libbb.h"
++
++/* This is a NOFORK applet. Be very careful! */
++
++int fsync_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
++int fsync_main(int argc, char **argv)
++{
++      int status = EXIT_SUCCESS;
++      int flags;
++      int fd;
++      char *path;
++
++      flags = getopt32(argv, "d"); /* fdatasync */
++      argv += optind;
++
++      if (!*argv) {
++              bb_show_usage();
++      }
++
++      for (path = *argv++; path; path = *argv++) {
++              fd = open(path, O_NOATIME | O_NOCTTY | O_RDONLY);
++
++              if (fd == -1) {
++                      bb_simple_perror_msg(path);
++                      status = EXIT_FAILURE;
++                      continue;
++              }
++              
++              if ((flags ? fdatasync(fd) : fsync(fd)) == -1) {
++                      bb_simple_perror_msg(path);
++              }
++
++              close(fd);
++      }
++
++      return status;
++}
+Index: busybox/coreutils/Kbuild
+===================================================================
+--- busybox/coreutils/Kbuild   (revision 23238)
++++ busybox/coreutils/Kbuild   (working copy)
+@@ -36,6 +36,7 @@
+ lib-$(CONFIG_EXPAND)    += expand.o
+ lib-$(CONFIG_FALSE)     += false.o
+ lib-$(CONFIG_FOLD)      += fold.o
++lib-$(CONFIG_FSYNC)     += fsync.o
+ lib-$(CONFIG_HEAD)      += head.o
+ lib-$(CONFIG_HOSTID)    += hostid.o
+ lib-$(CONFIG_ID)        += id.o
+Index: busybox/coreutils/Config.in
+===================================================================
+--- busybox/coreutils/Config.in        (revision 23238)
++++ busybox/coreutils/Config.in        (working copy)
+@@ -249,6 +249,12 @@
+       help
+         Wrap text to fit a specific width.
++config FSYNC
++      bool "fsync"
++      default n
++      help
++        fsync is used to flush file-related cached blocks to disk.
++
+ config HEAD
+       bool "head"
+       default n
+Index: busybox/include/usage.h
+===================================================================
+--- busybox/include/usage.h    (revision 23238)
++++ busybox/include/usage.h    (working copy)
+@@ -3905,6 +3905,13 @@
+ #define sync_full_usage "\n\n" \
+        "Write all buffered filesystem blocks to disk"
++#define fsync_trivial_usage \
++       "[OPTION]... FILE..."
++#define fsync_full_usage \
++       "Write files' buffered blocks to disk\n" \
++     "\nOptions:" \
++     "\n        -d     Avoid syncing metadata (like access time)"
++
+ #define sysctl_trivial_usage \
+        "[OPTIONS]... [VALUE]..."
+ #define sysctl_full_usage "\n\n" \
+Index: busybox/include/applets.h
+===================================================================
+--- busybox/include/applets.h  (revision 23238)
++++ busybox/include/applets.h  (working copy)
+@@ -160,6 +160,7 @@
+ //USE_E2FSCK(APPLET_ODDNAME(fsck.ext2, e2fsck, _BB_DIR_SBIN, _BB_SUID_NEVER, fsck_ext2))
+ //USE_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, _BB_DIR_SBIN, _BB_SUID_NEVER, fsck_ext3))
+ USE_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, _BB_DIR_SBIN, _BB_SUID_NEVER, fsck_minix))
++USE_FSYNC(APPLET_NOFORK(fsync, fsync, _BB_DIR_BIN, _BB_SUID_NEVER, fsync))
+ USE_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, _BB_DIR_USR_BIN, _BB_SUID_NEVER, ftpget))
+ USE_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, _BB_DIR_USR_BIN, _BB_SUID_NEVER, ftpput))
+ USE_FUSER(APPLET(fuser, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
diff --git a/debian/patches/obselete/ls-s-dont-follow-links.patch b/debian/patches/obselete/ls-s-dont-follow-links.patch
new file mode 100644 (file)
index 0000000..1eb3de4
--- /dev/null
@@ -0,0 +1,28 @@
+From 2089b4bf5880f49e8185b2e07966714a9ce9dcd5 Mon Sep 17 00:00:00 2001
+From: Alexander Shishkin <ext-alexander.shishkin@nokia.com>
+Date: Fri, 12 Jun 2009 14:43:26 +0300
+Subject: [PATCH] Don't follow symlinks for -l or -s in ls. Fixes: NB#120999.
+
+Signed-off-by: Alexander Shishkin <ext-alexander.shishkin@nokia.com>
+---
+ coreutils/ls.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/coreutils/ls.c b/coreutils/ls.c
+index 9e5c6de..e06f0eb 100644
+--- a/coreutils/ls.c
++++ b/coreutils/ls.c
+@@ -908,8 +908,8 @@ int ls_main(int argc, char **argv)
+       /* stuff the command line file names into a dnode array */
+       dn = NULL;
+       for (oi = 0; oi < ac; oi++) {
+-              /* ls w/o -l follows links on command line */
+-              cur = my_stat(av[oi], av[oi], !(all_fmt & STYLE_LONG));
++              /* NB: follow links on command line unless -l or -s */
++              cur = my_stat(av[oi], av[oi], !(all_fmt & (STYLE_LONG|LIST_BLOCKS)));
+               if (!cur)
+                       continue;
+               cur->allocated = 0;
+-- 
+1.6.3.1
+
diff --git a/debian/patches/obselete/mount-relatime.patch b/debian/patches/obselete/mount-relatime.patch
new file mode 100644 (file)
index 0000000..5e5f899
--- /dev/null
@@ -0,0 +1,30 @@
+--- busybox.orig/util-linux/mount.c
++++ busybox/util-linux/mount.c
+@@ -26,6 +26,9 @@
+ /* For FEATURE_MOUNT_LABEL only */
+ #include "volume_id.h"
+ #endif
++#ifndef MS_RELATIME
++#define MS_RELATIME   (1 << 21)
++#endif
+ /* Needed for nfs support only */
+ #include <sys/utsname.h>
+@@ -136,6 +139,8 @@
+               /* "noatime"     */ MS_NOATIME,
+               /* "diratime"    */ ~MS_NODIRATIME,
+               /* "nodiratime"  */ MS_NODIRATIME,
++              /* "relatime"    */ MS_RELATIME,
++              /* "norelatime"  */ ~MS_RELATIME,
+               /* "loud"        */ ~MS_SILENT,
+               // action flags
+@@ -186,6 +191,8 @@
+               "noatime" "\0"
+               "diratime" "\0"
+               "nodiratime" "\0"
++              "relatime" "\0"
++              "norelatime" "\0"
+               "loud" "\0"
+               // action flags
diff --git a/debian/patches/obselete/pidof-fix.patch b/debian/patches/obselete/pidof-fix.patch
new file mode 100644 (file)
index 0000000..a4a8d25
--- /dev/null
@@ -0,0 +1,88 @@
+From 02d849739e15552046128abb8dba79c584266f61 Mon Sep 17 00:00:00 2001
+From: Alexander Shishkin <ext-alexander.shishkin@nokia.com>
+Date: Fri, 6 Mar 2009 15:24:52 +0200
+Subject: [PATCH] pidof/killall5: fix DNA problems of hald children and the like
+
+Children of hal daemon make a perfect example of why reading
+/proc/$pid/exe symlink is about the only reliable way to figure
+if the process is what we're actually looking for: they clobber
+their argv[0] and argv[1].
+
+Signed-off-by: Alexander Shishkin <ext-alexander.shishkin@nokia.com>
+---
+ include/libbb.h          |    4 +++-
+ libbb/find_pid_by_name.c |    6 +++++-
+ libbb/procps.c           |    6 ++++++
+ 3 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/include/libbb.h b/include/libbb.h
+index 859b3bc..4f75d96 100644
+--- a/include/libbb.h
++++ b/include/libbb.h
+@@ -1101,6 +1101,8 @@ typedef struct procps_status_t {
+        * (if executable is symlink or script, it is NOT replaced
+        * by link target or interpreter name) */
+       char comm[COMM_LEN];
++      /* where /proc/$PID/exe points to */
++      char *exe;
+       /* user/group? - use passwd/group parsing functions */
+ } procps_status_t;
+ enum {
+@@ -1112,7 +1114,7 @@ enum {
+       PSSCAN_COMM     = 1 << 5,
+       /* PSSCAN_CMD      = 1 << 6, - use read_cmdline instead */
+       PSSCAN_ARGV0    = 1 << 7,
+-      /* PSSCAN_EXE      = 1 << 8, - not implemented */
++      PSSCAN_EXE      = 1 << 8, /* almost implemented */
+       PSSCAN_STATE    = 1 << 9,
+       PSSCAN_VSZ      = 1 << 10,
+       PSSCAN_RSS      = 1 << 11,
+diff --git a/libbb/find_pid_by_name.c b/libbb/find_pid_by_name.c
+index 8dcdb13..832116d 100644
+--- a/libbb/find_pid_by_name.c
++++ b/libbb/find_pid_by_name.c
+@@ -55,7 +55,7 @@ pid_t* find_pid_by_name(const char* procName)
+       procps_status_t* p = NULL;
+       pidList = xmalloc(sizeof(*pidList));
+-      while ((p = procps_scan(p, PSSCAN_PID|PSSCAN_COMM|PSSCAN_ARGV0))) {
++      while ((p = procps_scan(p, PSSCAN_PID|PSSCAN_COMM|PSSCAN_ARGV0|PSSCAN_EXE))) {
+               if (
+               /* we require comm to match and to not be truncated */
+               /* in Linux, if comm is 15 chars, it may be a truncated
+@@ -63,11 +63,15 @@ pid_t* find_pid_by_name(const char* procName)
+                   (!p->comm[sizeof(p->comm)-2] && strcmp(p->comm, procName) == 0)
+               /* or we require argv0 to match (essential for matching reexeced /proc/self/exe)*/
+                || (p->argv0 && strcmp(bb_basename(p->argv0), procName) == 0)
++               || (p->exe && strcmp(bb_basename(p->exe), procName) == 0)
+               /* TOOD: we can also try /proc/NUM/exe link, do we want that? */
+               ) {
+                       pidList = xrealloc(pidList, sizeof(*pidList) * (i+2));
+                       pidList[i++] = p->pid;
+               }
++
++              if (p->exe)
++                      free(p->exe);
+       }
+       pidList[i] = 0;
+diff --git a/libbb/procps.c b/libbb/procps.c
+index 8946917..f33c64e 100644
+--- a/libbb/procps.c
++++ b/libbb/procps.c
+@@ -378,6 +378,12 @@ procps_status_t *procps_scan(procps_status_t* sp, int flags)
+                       }
+               }
+ #else
++              if (flags & (PSSCAN_EXE)) {
++                      strcpy(filename_tail, "/exe");
++
++                      sp->exe = xmalloc_readlink(filename);
++              }
++
+               if (flags & (PSSCAN_ARGV0|PSSCAN_ARGVN)) {
+                       free(sp->argv0);
+                       sp->argv0 = NULL;
+-- 
+1.6.1.3
+
diff --git a/debian/patches/obselete/upstart-support.patch b/debian/patches/obselete/upstart-support.patch
new file mode 100644 (file)
index 0000000..1a77fc2
--- /dev/null
@@ -0,0 +1,62 @@
+From 04522f492dc25d650c22e2d4a11296e72fa40e32 Mon Sep 17 00:00:00 2001
+From: Alexander Shishkin <ext-alexander.shishkin@nokia.com>
+Date: Wed, 17 Jun 2009 16:01:31 +0300
+Subject: [PATCH] Call telinit for normal reboot/shutdown.
+
+Signed-off-by: Alexander Shishkin <ext-alexander.shishkin@nokia.com>
+---
+ init/Config.in |   14 ++++++++++++++
+ init/halt.c    |   12 ++++++++++++
+ 2 files changed, 26 insertions(+), 0 deletions(-)
+
+diff --git a/init/Config.in b/init/Config.in
+index 25f4390..ea91b45 100644
+--- a/init/Config.in
++++ b/init/Config.in
+@@ -12,6 +12,20 @@ config INIT
+       help
+         init is the first program run when the system boots.
++config CALL_TELINIT
++      bool "Call telinit on shutdown and reboot"
++      help
++        What I just said
++
++config TELINIT_PATH
++      string "Path to telinit executable"
++      default "/sbin/telinit"
++      depends on CALL_TELINIT
++      help
++        When busybox halt and friends have to call external telinit
++        to facilitate proper shutdown, this path is to be used when
++        locating telinit executable.
++
+ config DEBUG_INIT
+       bool "Debugging aid"
+       default n
+diff --git a/init/halt.c b/init/halt.c
+index c14f0f2..b877be1 100644
+--- a/init/halt.c
++++ b/init/halt.c
+@@ -84,6 +84,18 @@ RB_AUTOBOOT
+               }
+               if (rc)
+                       rc = kill(1, signals[which]);
++      } else if (ENABLE_CALL_TELINIT && !(flags & 4)) {
++              /* runlevels:
++               * 0 == shutdown
++               * 6 == reboot */
++              const char *telinit_argv[] = {
++                      "telinit",
++                      which == 2 ? "6" : "0",
++                      NULL
++              };
++
++              forkexit_or_rexec();
++              execve(CONFIG_TELINIT_PATH, telinit_argv, environ);
+       } else
+               rc = reboot(magic[which]);
+-- 
+1.6.3.1
+
diff --git a/debian/patches/parse-complete-hostname.patch b/debian/patches/parse-complete-hostname.patch
new file mode 100644 (file)
index 0000000..f9c0e8b
--- /dev/null
@@ -0,0 +1,15 @@
+Parse the complete hostname when set from a file (busybox-1.10.2 behaviour)
+By Dennis Groenen <dennis_groenen@hotmail.com> - 2011-05-09
+---
+
+--- a/networking/hostname.c
++++ b/networking/hostname.c
+@@ -17,7 +17,7 @@ static void do_sethostname(char *s, int
+ //            return;
+       if (isfile) {
+               parser_t *parser = config_open2(s, xfopen_for_read);
+-              while (config_read(parser, &s, 1, 1, "# \t", PARSE_NORMAL & ~PARSE_GREEDY)) {
++              while (config_read(parser, &s, 1, 1, "# \t", PARSE_NORMAL)) {
+                       do_sethostname(s, 0);
+               }
+               if (ENABLE_FEATURE_CLEAN_UP)
diff --git a/debian/patches/ps-accept-and-ignore-missing-options.patch b/debian/patches/ps-accept-and-ignore-missing-options.patch
new file mode 100644 (file)
index 0000000..08dbc87
--- /dev/null
@@ -0,0 +1,26 @@
+Make "ps" accept (but ignore) all missing common options expected to be supported by "ps"
+This is required to not break scripts which are using these options
+
+By Dennis Groenen <dennis_groenen@hotmail.com> - 2011-05-28
+---
+
+--- a/procps/ps.c
++++ b/procps/ps.c
+@@ -559,7 +559,7 @@ int ps_main(int argc UNUSED_PARAM, char 
+       /* -w is a bit complicated */
+       int w_count = 0;
+       opt_complementary = "-:ww";
+-      opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")"w", &w_count);
++      opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")"w""ANdeagrxCGUgpstuUojOlFfsvuXVmMLScnfyH", &w_count, NULL);
+       /* if w is given once, GNU ps sets the width to 132,
+        * if w is given more than once, it is "unlimited"
+        */
+@@ -574,7 +574,7 @@ int ps_main(int argc UNUSED_PARAM, char 
+ # else
+       /* -w is not supported, only -Z and/or -T */
+       opt_complementary = "-";
+-      opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T"));
++      opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")"ANdeagrxCGUgpstuUojOlFfsvuXVmMLScnfyHw", NULL);
+ # endif
+ #endif
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644 (file)
index 0000000..c474c08
--- /dev/null
@@ -0,0 +1,24 @@
+#Updated patches from Debian Sid; these are also in Nokia's busybox sources
+#Source: http://ftp.de.debian.org/debian/pool/main/b/busybox/busybox_1.18.4-2.debian.tar.gz
+shell-ash-export-HOME.patch
+applets-fallback.patch
+init-console.patch
+version.patch
+
+#Patches ported from Nokia's busybox sources
+shell-hist.patch
+03tar.patch
+05thumb.patch
+06ls.patch
+busybox-zero-ifr.ifr_hwaddr.sa_data.patch
+top-display-rss.patch
+
+#New patches to bring back Maemo's old busybox behaviour
+supress-bad-number.patch
+parse-complete-hostname.patch
+
+#New patches as per reported issues by users
+showkey-any-stdin.patch
+showkey-default-option.patch
+ps-accept-and-ignore-missing-options.patch
+
diff --git a/debian/patches/shell-ash-export-HOME.patch b/debian/patches/shell-ash-export-HOME.patch
new file mode 100644 (file)
index 0000000..c55c92c
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -1897,7 +1897,7 @@ static const struct {
+       { VSTRFIXED|VTEXTFIXED|VUNSET, "MAIL"      , changemail      },
+       { VSTRFIXED|VTEXTFIXED|VUNSET, "MAILPATH"  , changemail      },
+ #endif
+-      { VSTRFIXED|VTEXTFIXED       , bb_PATH_root_path, changepath },
++      { VSTRFIXED|VTEXTFIXED|VEXPORT, bb_PATH_root_path, changepath },
+       { VSTRFIXED|VTEXTFIXED       , "PS1=$ "    , NULL            },
+       { VSTRFIXED|VTEXTFIXED       , "PS2=> "    , NULL            },
+       { VSTRFIXED|VTEXTFIXED       , "PS4=+ "    , NULL            },
diff --git a/debian/patches/shell-hist.patch b/debian/patches/shell-hist.patch
new file mode 100644 (file)
index 0000000..ad94b9a
--- /dev/null
@@ -0,0 +1,213 @@
+Patch to only update history upon shell exit.
+Should prevent unnecessary wear on the flash and save some power.
+By Alexander Shishkin <ext-alexander.shishkin@nokia.com>
+
+Ported to BusyBox 1.18.4 by Dennis Groenen <dennis_groenen@hotmail.com> - 2011-04-29  
+---
+
+--- a/libbb/lineedit.c
++++ b/libbb/lineedit.c
+@@ -1275,130 +1275,52 @@ static int get_next_history(void)
+ }
+ # if ENABLE_FEATURE_EDITING_SAVEHISTORY
+-/* We try to ensure that concurrent additions to the history
+- * do not overwrite each other.
+- * Otherwise shell users get unhappy.
+- *
+- * History file is trimmed lazily, when it grows several times longer
+- * than configured MAX_HISTORY lines.
+- */
+-
+-static void free_line_input_t(line_input_t *n)
+-{
+-      int i = n->cnt_history;
+-      while (i > 0)
+-              free(n->history[--i]);
+-      free(n);
+-}
+-
+ /* state->flags is already checked to be nonzero */
+-static void load_history(line_input_t *st_parm)
++static void load_history(const char *fromfile)
+ {
+-      char *temp_h[MAX_HISTORY];
+-      char *line;
+       FILE *fp;
+-      unsigned idx, i, line_len;
++      int hi = 0;
+-      /* NB: do not trash old history if file can't be opened */
++      if (!state->cnt_history) {
++              fp = fopen(fromfile, "r");
++              if (fp) {
++                      for (hi = 0; hi < MAX_HISTORY;) {
++                              char *hl = xmalloc_fgetline(fp);
++                              int l;
+-      fp = fopen_for_read(st_parm->hist_file);
+-      if (fp) {
+-              /* clean up old history */
+-              for (idx = st_parm->cnt_history; idx > 0;) {
+-                      idx--;
+-                      free(st_parm->history[idx]);
+-                      st_parm->history[idx] = NULL;
+-              }
+-
+-              /* fill temp_h[], retaining only last MAX_HISTORY lines */
+-              memset(temp_h, 0, sizeof(temp_h));
+-              st_parm->cnt_history_in_file = idx = 0;
+-              while ((line = xmalloc_fgetline(fp)) != NULL) {
+-                      if (line[0] == '\0') {
+-                              free(line);
+-                              continue;
+-                      }
+-                      free(temp_h[idx]);
+-                      temp_h[idx] = line;
+-                      st_parm->cnt_history_in_file++;
+-                      idx++;
+-                      if (idx == MAX_HISTORY)
+-                              idx = 0;
+-              }
+-              fclose(fp);
+-
+-              /* find first non-NULL temp_h[], if any */
+-              if (st_parm->cnt_history_in_file) {
+-                      while (temp_h[idx] == NULL) {
+-                              idx++;
+-                              if (idx == MAX_HISTORY)
+-                                      idx = 0;
++                              if (!hl)
++                                      break;
++                              l = strlen(hl);
++                              if (l >= MAX_LINELEN)
++                                      hl[MAX_LINELEN-1] = '\0';
++                              if (l == 0 || hl[0] == ' ') {
++                                      free(hl);
++                                      continue;
++                              }
++                              state->history[hi++] = hl;
+                       }
++                      fclose(fp);
+               }
+-
+-              /* copy temp_h[] to st_parm->history[] */
+-              for (i = 0; i < MAX_HISTORY;) {
+-                      line = temp_h[idx];
+-                      if (!line)
+-                              break;
+-                      idx++;
+-                      if (idx == MAX_HISTORY)
+-                              idx = 0;
+-                      line_len = strlen(line);
+-                      if (line_len >= MAX_LINELEN)
+-                              line[MAX_LINELEN-1] = '\0';
+-                      st_parm->history[i++] = line;
+-              }
+-              st_parm->cnt_history = i;
++              state->cur_history = state->cnt_history = hi;
+       }
+ }
+ /* state->flags is already checked to be nonzero */
+-static void save_history(char *str)
++void save_history(line_input_t *);
++void save_history(line_input_t *st)
+ {
+-      int fd;
+-      int len, len2;
++      FILE *fp;
+-      fd = open(state->hist_file, O_WRONLY | O_CREAT | O_APPEND, 0600);
+-      if (fd < 0)
+-              return;
+-      xlseek(fd, 0, SEEK_END); /* paranoia */
+-      len = strlen(str);
+-      str[len] = '\n'; /* we (try to) do atomic write */
+-      len2 = full_write(fd, str, len + 1);
+-      str[len] = '\0';
+-      close(fd);
+-      if (len2 != len + 1)
+-              return; /* "wtf?" */
+-
+-      /* did we write so much that history file needs trimming? */
+-      state->cnt_history_in_file++;
+-      if (state->cnt_history_in_file > MAX_HISTORY * 4) {
+-              char *new_name;
+-              line_input_t *st_temp;
+-
+-              /* we may have concurrently written entries from others.
+-               * load them */
+-              st_temp = new_line_input_t(state->flags);
+-              st_temp->hist_file = state->hist_file;
+-              load_history(st_temp);
+-
+-              /* write out temp file and replace hist_file atomically */
+-              new_name = xasprintf("%s.%u.new", state->hist_file, (int) getpid());
+-              fd = open(state->hist_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
+-              if (fd >= 0) {
+-                      FILE *fp;
++      if (st->cnt_history) {
++              fp = fopen(st->hist_file, "w");
++              if (fp) {
+                       int i;
+-                      fp = xfdopen_for_write(fd);
+-                      for (i = 0; i < st_temp->cnt_history; i++)
+-                              fprintf(fp, "%s\n", st_temp->history[i]);
++                      for (i = 0; i < st->cnt_history; i++) {
++                              fprintf(fp, "%s\n", st->history[i]);
++                      }
+                       fclose(fp);
+-                      if (rename(new_name, state->hist_file) == 0)
+-                              state->cnt_history_in_file = st_temp->cnt_history;
+               }
+-              free(new_name);
+-              free_line_input_t(st_temp);
+       }
+ }
+ # else
+@@ -1435,10 +1357,6 @@ static void remember_in_history(char *st
+       /* i <= MAX_HISTORY */
+       state->cur_history = i;
+       state->cnt_history = i;
+-# if MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY
+-      if ((state->flags & SAVE_HISTORY) && state->hist_file)
+-              save_history(str);
+-# endif
+       IF_FEATURE_EDITING_FANCY_PROMPT(num_ok_lines++;)
+ }
+@@ -1960,7 +1878,7 @@ int FAST_FUNC read_line_input(const char
+ # if ENABLE_FEATURE_EDITING_SAVEHISTORY
+       if ((state->flags & SAVE_HISTORY) && state->hist_file)
+               if (state->cnt_history == 0)
+-                      load_history(state);
++                      load_history(state->hist_file);
+ # endif
+       if (state->flags & DO_HISTORY)
+               state->cur_history = state->cnt_history;
+diff -urpN a/shell/ash.c b/shell/ash.c
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -51,6 +51,9 @@
+ #else
+ # define CLEAR_RANDOM_T(rnd) ((void)0)
+ #endif
++#if ENABLE_FEATURE_EDITING_SAVEHISTORY
++void save_history(line_input_t *);
++#endif
+ #include "NUM_APPLETS.h"
+ #if NUM_APPLETS == 1
+@@ -12810,6 +12813,10 @@ exitshell(void)
+       char *p;
+       int status;
++      if (iflag && (line_input_state->flags & SAVE_HISTORY)
++          && line_input_state->hist_file && !shlvl) {
++              save_history(line_input_state);
++      }
+       status = exitstatus;
+       TRACE(("pid %d, exitshell(%d)\n", getpid(), status));
+       if (setjmp(loc.loc)) {
diff --git a/debian/patches/showkey-any-stdin.patch b/debian/patches/showkey-any-stdin.patch
new file mode 100644 (file)
index 0000000..f4aca38
--- /dev/null
@@ -0,0 +1,87 @@
+Pull patch from BusyBox' git repo to make "showkey -a" work on any stdin
+Source: http://git.busybox.net/busybox/commit/?id=9beb68e3e2dc1c6f457acfb307cfed73cce65cd9
+---
+
+--- a/console-tools/showkey.c
++++ b/console-tools/showkey.c
+@@ -56,37 +56,45 @@ int showkey_main(int argc UNUSED_PARAM, 
+       // FIXME: aks are all mutually exclusive
+       getopt32(argv, "aks");
+-      // get keyboard settings
+-      xioctl(STDIN_FILENO, KDGKBMODE, &kbmode);
+-      printf("kb mode was %s\n\nPress any keys. Program terminates %s\n\n",
+-              kbmode == K_RAW ? "RAW" :
+-                      (kbmode == K_XLATE ? "XLATE" :
+-                              (kbmode == K_MEDIUMRAW ? "MEDIUMRAW" :
+-                                      (kbmode == K_UNICODE ? "UNICODE" : "UNKNOWN")))
+-              , (option_mask32 & OPT_a) ? "on EOF (ctrl-D)" : "10s after last keypress"
+-      );
+-
+       // prepare for raw mode
+       xget1(&tio, &tio0);
+       // put stdin in raw mode
+       xset1(&tio);
++#define press_keys "Press any keys, program terminates %s:\r\n\n"
++
+       if (option_mask32 & OPT_a) {
++              // just read stdin char by char
+               unsigned char c;
+-              // just read stdin char by char
++              printf(press_keys, "on EOF (ctrl-D)");
++
++              // read and show byte values
+               while (1 == read(STDIN_FILENO, &c, 1)) {
+                       printf("%3u 0%03o 0x%02x\r\n", c, c, c);
+                       if (04 /*CTRL-D*/ == c)
+                               break;
+               }
++
+       } else {
++                      // we assume a PC keyboard
++                      xioctl(STDIN_FILENO, KDGKBMODE, &kbmode);
++                      printf("Keyboard mode was %s.\r\n\n",
++                              kbmode == K_RAW ? "RAW" :
++                                      (kbmode == K_XLATE ? "XLATE" :
++                                              (kbmode == K_MEDIUMRAW ? "MEDIUMRAW" :
++                                                      (kbmode == K_UNICODE ? "UNICODE" : "UNKNOWN")))
++                      );
++
+               // set raw keyboard mode
+               xioctl(STDIN_FILENO, KDSKBMODE, (void *)(ptrdiff_t)((option_mask32 & OPT_k) ? K_MEDIUMRAW : K_RAW));
+               // we should exit on any signal; signals should interrupt read
+               bb_signals_recursive_norestart(BB_FATAL_SIGS, record_signo);
++              // inform user that program ends after time of inactivity
++              printf(press_keys, "10s after last keypress");
++
+               // read and show scancodes
+               while (!bb_got_signal) {
+                       char buf[18];
+@@ -94,6 +102,7 @@ int showkey_main(int argc UNUSED_PARAM, 
+                       // setup 10s watchdog
+                       alarm(10);
++
+                       // read scancodes
+                       n = read(STDIN_FILENO, buf, sizeof(buf));
+                       i = 0;
+@@ -121,11 +130,13 @@ int showkey_main(int argc UNUSED_PARAM, 
+                       }
+                       puts("\r");
+               }
++
++              // restore keyboard mode
++              xioctl(STDIN_FILENO, KDSKBMODE, (void *)(ptrdiff_t)kbmode);
+       }
+-      // restore keyboard and console settings
++      // restore console settings
+       xset1(&tio0);
+-      xioctl(STDIN_FILENO, KDSKBMODE, (void *)(ptrdiff_t)kbmode);
+       return EXIT_SUCCESS;
+ }
diff --git a/debian/patches/showkey-default-option.patch b/debian/patches/showkey-default-option.patch
new file mode 100644 (file)
index 0000000..492c32e
--- /dev/null
@@ -0,0 +1,73 @@
+Make the showkey's "-a" option default instead of "-k"
+
+By Dennis Groenen <dennis_groenen@hotmail.com> - 2011-05-27
+---
+
+--- a/console-tools/showkey.c
++++ b/console-tools/showkey.c
+@@ -46,8 +46,8 @@ int showkey_main(int argc, char **argv) 
+ int showkey_main(int argc UNUSED_PARAM, char **argv)
+ {
+       enum {
+-              OPT_a = (1<<0), // display the decimal/octal/hex values of the keys
+-              OPT_k = (1<<1), // display only the interpreted keycodes (default)
++              OPT_a = (1<<0), // display the decimal/octal/hex values of the keys (default)
++              OPT_k = (1<<1), // display only the interpreted keycodes
+               OPT_s = (1<<2), // display only the raw scan-codes
+       };
+@@ -63,20 +63,7 @@ int showkey_main(int argc UNUSED_PARAM, 
+ #define press_keys "Press any keys, program terminates %s:\r\n\n"
+-      if (option_mask32 & OPT_a) {
+-              // just read stdin char by char
+-              unsigned char c;
+-
+-              printf(press_keys, "on EOF (ctrl-D)");
+-
+-              // read and show byte values
+-              while (1 == read(STDIN_FILENO, &c, 1)) {
+-                      printf("%3u 0%03o 0x%02x\r\n", c, c, c);
+-                      if (04 /*CTRL-D*/ == c)
+-                              break;
+-              }
+-
+-      } else {
++      if (option_mask32 & OPT_k || option_mask32 & OPT_s) {
+                       // we assume a PC keyboard
+                       xioctl(STDIN_FILENO, KDGKBMODE, &kbmode);
+                       printf("Keyboard mode was %s.\r\n\n",
+@@ -133,6 +120,19 @@ int showkey_main(int argc UNUSED_PARAM, 
+               // restore keyboard mode
+               xioctl(STDIN_FILENO, KDSKBMODE, (void *)(ptrdiff_t)kbmode);
++
++      } else {
++              // just read stdin char by char
++              unsigned char c;
++
++              printf(press_keys, "on EOF (ctrl-D)");
++
++              // read and show byte values
++              while (1 == read(STDIN_FILENO, &c, 1)) {
++                      printf("%3u 0%03o 0x%02x\r\n", c, c, c);
++                      if (04 /*CTRL-D*/ == c)
++                              break;
++              }
+       }
+       // // restore console settings
+--- a/include/usage.src.h
++++ b/include/usage.src.h
+@@ -3488,8 +3488,8 @@ INSERT
+ #define showkey_full_usage "\n\n" \
+        "Show keys pressed\n" \
+      "\nOptions:" \
+-     "\n      -a      Display decimal/octal/hex values of the keys" \
+-     "\n      -k      Display interpreted keycodes (default)" \
++     "\n      -a      Display decimal/octal/hex values of the keys (default)" \
++     "\n      -k      Display interpreted keycodes" \
+      "\n      -s      Display raw scan-codes" \
+ #define slattach_trivial_usage \
diff --git a/debian/patches/supress-bad-number.patch b/debian/patches/supress-bad-number.patch
new file mode 100644 (file)
index 0000000..a6df6e9
--- /dev/null
@@ -0,0 +1,15 @@
+Do not show a message when testing an uninitialized variable (busybox-1.10.2 behaviour)
+By Dennis Groenen <dennis_groenen@hotmail.com> - 2011-05-02
+---
+
+--- a/coreutils/test.c
++++ b/coreutils/test.c
+@@ -413,7 +413,7 @@ static number_t getn(const char *s)
+       if (errno != 0)
+               syntax(s, "out of range");
+-      if (p == s || *(skip_whitespace(p)) != '\0')
++      if (*(skip_whitespace(p)) != '\0')
+               syntax(s, "bad number");
+       return r;
diff --git a/debian/patches/top-display-rss.patch b/debian/patches/top-display-rss.patch
new file mode 100644 (file)
index 0000000..4494a68
--- /dev/null
@@ -0,0 +1,68 @@
+Change top to display RSS instead of VSZ.
+By Alexander Shishkin <ext-alexander.shishkin@nokia.com>
+
+Ported to BusyBox 1.18.4 by Dennis Groenen <dennis_groenen@hotmail.com> - 2011-04-29  
+---
+
+--- a/procps/top.c
++++ b/procps/top.c
+@@ -35,7 +35,7 @@
+ typedef struct top_status_t {
+-      unsigned long vsz;
++      unsigned long rss;
+ #if ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+       unsigned long ticks;
+       unsigned pcpu; /* delta of ticks */
+@@ -147,8 +147,8 @@ static int pid_sort(top_status_t *P, top
+ static int mem_sort(top_status_t *P, top_status_t *Q)
+ {
+       /* We want to avoid unsigned->signed and truncation errors */
+-      if (Q->vsz < P->vsz) return -1;
+-      return Q->vsz != P->vsz; /* 0 if ==, 1 if > */
++      if (Q->rss < P->rss) return -1;
++      return Q->rss != P->rss; /* 0 if ==, 1 if > */
+ }
+@@ -519,7 +519,7 @@ static NOINLINE void display_process_lis
+       /* what info of the processes is shown */
+       printf(OPT_BATCH_MODE ? "%.*s" : "\033[7m%.*s\033[0m", scr_width,
+-              "  PID  PPID USER     STAT   VSZ %MEM"
++              "  PID  PPID USER     STAT   RSS %MEM"
+               IF_FEATURE_TOP_SMP_PROCESS(" CPU")
+               IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE(" %CPU")
+               " COMMAND");
+@@ -588,16 +588,16 @@ static NOINLINE void display_process_lis
+       s = top;
+       while (--lines_rem >= 0) {
+               unsigned col;
+-              CALC_STAT(pmem, (s->vsz*pmem_scale + pmem_half) >> pmem_shift);
++              CALC_STAT(pmem, (s->rss*pmem_scale + pmem_half) >> pmem_shift);
+ #if ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+               CALC_STAT(pcpu, (s->pcpu*pcpu_scale + pcpu_half) >> pcpu_shift);
+ #endif
+-              if (s->vsz >= 100000)
+-                      sprintf(vsz_str_buf, "%6ldm", s->vsz/1024);
++              if (s->rss >= 100000)
++                      sprintf(vsz_str_buf, "%6ldm", s->rss/1024);
+               else
+-                      sprintf(vsz_str_buf, "%7ld", s->vsz);
+-              /* PID PPID USER STAT VSZ %MEM [%CPU] COMMAND */
++                      sprintf(vsz_str_buf, "%7ld", s->rss);
++              /* PID PPID USER STAT RSS %MEM %CPU COMMAND */
+               col = snprintf(line_buf, scr_width,
+                               "\n" "%5u%6u %-8.8s %s%s" FMT
+                               IF_FEATURE_TOP_SMP_PROCESS(" %3d")
+@@ -930,7 +930,7 @@ int top_main(int argc UNUSED_PARAM, char
+                               top = xrealloc_vector(top, 6, ntop++);
+                               top[n].pid = p->pid;
+                               top[n].ppid = p->ppid;
+-                              top[n].vsz = p->vsz;
++                              top[n].rss = p->rss;
+ #if ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+                               top[n].ticks = p->stime + p->utime;
+ #endif
diff --git a/debian/patches/version.patch b/debian/patches/version.patch
new file mode 100644 (file)
index 0000000..f6596a3
--- /dev/null
@@ -0,0 +1,23 @@
+--- a/Makefile.flags
++++ b/Makefile.flags
+@@ -4,6 +4,11 @@
+ BB_VER = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
+ export BB_VER
++ifndef BB_EXTRA_VERSION
++BB_BT = AUTOCONF_TIMESTAMP
++else
++BB_BT = KBUILD_STR($(BB_EXTRA_VERSION))
++endif
+ SKIP_STRIP ?= n
+ # -std=gnu99 needed for [U]LLONG_MAX on some systems
+@@ -15,7 +20,7 @@ CPPFLAGS += \
+       -include include/autoconf.h \
+       -D_GNU_SOURCE -DNDEBUG \
+       $(if $(CONFIG_LFS),-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64) \
+-      -D"BB_VER=KBUILD_STR($(BB_VER))" -DBB_BT=AUTOCONF_TIMESTAMP
++      -D"BB_VER=KBUILD_STR($(BB_VER))" -D"BB_BT=$(BB_BT)"
+ CFLAGS += $(call cc-option,-Wall,)
+ CFLAGS += $(call cc-option,-Wshadow,)
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..da6055d
--- /dev/null
@@ -0,0 +1,111 @@
+#!/usr/bin/make -f
+
+SHELL := sh -e
+DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+SOURCE := $(shell dpkg-parsechangelog | sed -ne 's,^Source: *\(.*\)$$,\1,p')
+VERSION_DEBIAN := $(shell dpkg-parsechangelog | sed -ne 's,^Version: *\(.*\)$$,\1,p')
+VERSION := $(shell echo "$(VERSION_DEBIAN)" | sed -e 's,^[^:]*:,,' -e 's,-[^-]*$$,,')
+BUILD_DIR = debian/build
+STAMPS_DIR = debian/stamps
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+       CONFIG_DEBUG = y
+endif
+ifneq (,$(findstring thumb,$(DEB_BUILD_OPTIONS)))
+THUMB := -mthumb
+endif
+
+source: $(STAMPS_DIR)/source
+
+$(STAMPS_DIR)/source: SOURCE_FILES = $(filter-out debian, $(wildcard * .[^.]*))
+$(STAMPS_DIR)/source: DIR = $(BUILD_DIR)/source
+$(STAMPS_DIR)/source:
+       dh_testdir
+       rm -rf '$(DIR)'
+       mkdir -p $(STAMPS_DIR) '$(DIR)'
+       cp -al $(SOURCE_FILES) '$(DIR)'
+       cd $(DIR); QUILT_PATCHES=$(CURDIR)/debian/patches quilt --quiltrc /dev/null push -a || test $$? = 2
+       touch $@
+
+setup: $(STAMPS_DIR)/setup_maemo
+
+$(STAMPS_DIR)/setup_%: SOURCE_DIR=$(BUILD_DIR)/source
+$(STAMPS_DIR)/setup_%: DIR=$(BUILD_DIR)/build_$*
+$(STAMPS_DIR)/setup_%: $(STAMPS_DIR)/source
+       dh_testdir
+       rm -rf '$(DIR)'
+       cp -al '$(SOURCE_DIR)' '$(DIR)'
+       cp debian/config/config.$* '$(DIR)'/.config
+       make -C '$(DIR)' oldconfig
+       touch $@
+
+build: $(STAMPS_DIR)/build_maemo
+
+$(STAMPS_DIR)/build_%: DIR=$(BUILD_DIR)/build_$*
+$(STAMPS_DIR)/build_%: $(STAMPS_DIR)/setup_%
+       dh_testdir
+       make -C '$(DIR)' THUMB=$(THUMB) busybox docs/busybox.1 BB_EXTRA_VERSION="$(shell lsb_release -is) $(VERSION_DEBIAN)"
+       make -C '$(DIR)' busybox.links
+       touch $@
+
+$(BUILD_DIR) $(STAMPS_DIR):
+       @[ -d $@ ] || mkdir $@
+
+maintainerclean:
+       rm -rf $(filter-out .svn debian, $(wildcard * .[^.]*))
+
+clean:
+       dh_testdir
+       rm -rf $(BUILD_DIR) $(STAMPS_DIR)
+       dh_clean
+
+binary-indep:
+
+binary-arch: DIR = $(BUILD_DIR)/build_maemo
+binary-arch: DH_OPTIONS = -pbusybox-power
+binary-arch: $(STAMPS_DIR)/build_maemo
+       dh_testdir
+       dh_testroot
+       dh_clean -k -d
+       install -D -m644 debian/scripts/functions debian/busybox-power/opt/busybox-power/functions
+       install -D -m755 debian/scripts/install-binary.sh debian/busybox-power/opt/busybox-power/install-binary.sh
+       install -D -m755 debian/scripts/uninstall-binary.sh debian/busybox-power/opt/busybox-power/uninstall-binary.sh
+       install -D -m755 $(DIR)/busybox_unstripped debian/busybox-power/opt/busybox-power/busybox.power
+
+       $(MAKE) -f debian/rules binary-arch_all
+
+binary-arch_all:
+       dh_installdirs
+       dh_installdocs -pbusybox-power
+       dh_installchangelogs -pbusybox-power
+       dh_strip -pbusybox-power
+       dh_compress -pbusybox-power
+
+       dh_link
+       dh_fixperms
+       dh_installdeb
+
+       dh_shlibdeps -pbusybox-power
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+binary: binary-indep binary-arch
+
+DIR_ORIG = ../orig/$(SOURCE)-$(VERSION)
+TAR_ORIG_NAME = $(SOURCE)_$(VERSION).orig.tar.gz
+TAR_ORIG = $(firstword $(wildcard ../$(TAR_ORIG_NAME)) $(wildcard ../orig/$(TAR_ORIG_NAME)))
+
+orig: $(DIR_ORIG)
+       rsync --delete --exclude debian --exclude .svk --exclude .svn --link-dest=$(DIR_ORIG)/ -a $(DIR_ORIG)/ .
+
+$(DIR_ORIG):
+ifeq ($(TAR_ORIG),)
+       $(error Cannot find orig tarball $(TAR_ORIG_NAME))
+else
+       mkdir -p ../orig
+       tar -C ../orig -xzf $(TAR_ORIG)
+endif
+
diff --git a/debian/scripts/functions b/debian/scripts/functions
new file mode 100644 (file)
index 0000000..31e1454
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# This file contains (ideally) all functions supported by busybox sorted by
+# their respective location in a standard Debian installation.
+#
+# Please send in enhancements/corrections to my e-mail adress.
+#
+# By Dennis Groenen <dennis_groenen@hotmail.com>
+# Version 0.1 05-06-2011 (MM-DD-YYYY)
+#
+
+# Define possible destinations for the binaries
+DESTINATIONS="DEST_BIN DEST_SBIN DEST_USRBIN DEST_USRSBIN"
+
+# Define all applications per destination
+DEST_BIN="bunzip2 bzcat bzip2 cpio cttyhack dnsdomainname dumpkmap ed fbset fdflush hush ip ipaddr iplink iproute iprule mountpoint mt nc pipe_progress popmaildir pscan usleep ash cat chgrp chmod chown cp date dd df dmesg echo false hostname ln login ls mkdir mknod mktemp more mount mv pidof pwd readlink rm rmdir sed sleep stty su sync tar touch true umount uname which grep egrep fgrep run-parts zcat gunzip gzip uncompress sh fsync ping ping6 kill ps fuser netstat"
+DEST_SBIN="blkid blockdev bootchartd crond fdisk findfs ifenslave ip iptunnel klogd loadkmap logread makedevs mdev mkdosfs mke2fs mkfs.ext2 mkfs.vfat nbd-client raidautorun runlevel setconsole start-stop-daemon sulogin sysctl syslogd vconfig getty hwclock killall5 losetup mkswap swapoff swapon pivot_root halt reboot poweroff ifconfig nameif route slattach ifdown ifup zcip"
+DEST_USRBIN="adjtimex arping base64 beep brctl cal catv chattr chpst chrt chvt crontab cryptpw dc deallocvt devmem diff dos2unix dumpleases eject envdir envuidgid ether-wake fdformat fgconsole flock freeramdisk ftpget ftpput hexdump ionice iostat ipcalc kbd_mode last length less linux32 linux64 loadfont lpd lpq lpr lsattr lsusb lzcat lzma lzop lzopcat makemime man microcom mkpasswd mpstat nmeter openvt passwd patch pmap readahead reformime resize rev rpm rpm2cpio rtcwake runsv runsvdir rx script scriptreplay setarch setfont setkeycodes setlogcons setuidgid showkey smemcap softlimit strings sv svlogd tcpsvd telnet tftp timeout traceroute traceroute6 ttysize udhcpc udpsvd unix2dos unlzma unlzop unxz unzip uudecode uuencode vi vlock volname wall wget xz xzcat zcipice [ [[ awk basename cksum clear cmp comm cut dirname du env expand expr find fold getopt head hostid id install ipcrm ipcs logger logname md5sum mesg mkfifo nice nohup od printenv printf renice reset seq setsid sha1sum sort split stat sum tac tail tee test tr tty unexpand uniq wc which who whoami xargs yes ar time nslookup free pgrep pkill top uptime watch realpath killall chvt deallocvt openvt setkeycodes setlogcons kbd_mode"
+DEST_USRSBIN="acpid add-shell addgroup adduser arp chat chpasswd delgroup deluser dhcprelay dnsd fakeidentd ftpd hdparm httpd ifplugd inetd lspci ntpd rdate rdev readprofile remove-shell sendmail sha256sum sha512sum telnetd tftpd tunctl udhcpd watchdog chroot"
diff --git a/debian/scripts/install-binary.sh b/debian/scripts/install-binary.sh
new file mode 100755 (executable)
index 0000000..fda3f24
--- /dev/null
@@ -0,0 +1,200 @@
+#!/bin/sh
+# A script to replace /bin/busybox and creates symlinks to new functions.
+# The default locations of busybox' functions (applets) are defined in the file $INSTALLDIR/functions
+# It keeps track of the installed symlinks by writing them to $INSTALLDIR/installed-symlinks in
+# a similiar fashion as locations are defined in the "functions" file.
+#
+# The scripts check whether symlinks/binaries of the utilities already exist, and if not,
+# it checks whether the new busybox binary supports it. If so, it creates a symlink to /bin/busybox.
+#
+# NB The busybox binary needs to support the install applet
+
+# By Dennis Groenen <dennis_groenen@hotmail.com>
+# GPLv3 licensed
+
+# Version 0.3 06-03-2011 (MM-DD-YYYY)
+# 0.1: Initial release
+# 0.2: Use $EXECPWR to not have to rely on /bin/busybox' functions
+#      Minor clean-ups and be quieter
+# 0.3: Add support for multiple environments
+#      Make use of functions in this script
+#      Implement additional checks
+
+INSTALLDIR="/opt/busybox-power"
+EXECPWR="$INSTALLDIR/busybox.power"
+VERBOSE="0"
+
+# Print extra information in verbose mode
+if test $VERBOSE == 1; then 
+  echo "busybox-power: verbose mode" \ 
+  echo "  binary: $EXECPWR" \ 
+  echo "  version string: `$EXECPWR | $EXECPWR head -n 1`"
+fi
+
+# Detect environment
+CHECK_ENV() {
+    if test -d /scratchbox
+      then
+        ENVIRONMENT="SDK"
+      else
+        PROD=$($EXECPWR cat /proc/component_version | $EXECPWR grep product | $EXECPWR cut -d" " -f 6)
+        case $PROD in
+          RX-51)
+            ENVIRONMENT="N900"
+          ;;
+          *)
+            # Unsupported, use the least strict environment (SDK)
+            ENVIRONMENT="SDK"
+          ;;
+        esac
+    fi
+
+    if test $VERBOSE == 1; then echo "  environment: $ENVIRONMENT"; fi
+}
+
+# Environment-independent checks before continuing
+GENERIC_CHECKS() {
+    #if test -n "`pgrep dpkg`" -o "`pgrep apt`"
+    if ! lsof /var/lib/dpkg/lock >> /dev/null; then 
+      echo "error: you're running me as a stand-alone application"
+      echo "  do not do this, I will be called automatically upon"
+      echo "  installation of busybox-power"
+      exit 1
+    fi
+
+    if test ! -e $INSTALLDIR/functions; then
+      echo "error: cannot find list of defined functions"
+      exit 1
+    fi
+
+    if test -e $INSTALLDIR/busybox-power.symlinks; then
+      echo "error: symlinks already seem to be made?"
+      echo "  this script is not supposed to be ran twice"
+      exit 1
+    fi
+}
+
+# Additional checks for the N900
+E_N900_CHECKS() {
+    if test "`$EXECPWR id -u`" -ne 0; then
+      echo "error: you're not running me as root, aborting"
+      echo "  also, DO NOT run me as a stand-alone application"
+      echo "  I will be called automatically upon installation"
+      echo "  of busybox-power"
+      exit 1
+    fi
+}
+
+# N900-specific code executed prior to installing the enhanced binary
+E_N900_PREINST() {
+    md5sum $INSTALLDIR/busybox.power | $EXECPWR awk '{ print $1 }' > $INSTALLDIR/busybox.power.md5
+    md5sum /bin/busybox | $EXECPWR awk '{ print $1 }' > $INSTALLDIR/busybox.original.md5
+
+    # Check whether busybox-power isn't installed already
+    INSTBINARY_MD5=`$EXECPWR cat $INSTALLDIR/busybox.power.md5`
+    ORIGBINARY_MD5=`$EXECPWR cat $INSTALLDIR/busybox.original.md5`
+    if test "$INSTBINARY_MD5" == "$ORIGBINARY_MD5"
+      then
+        echo "warning: installed busybox binary matches the binary"
+        echo "  that is to be installed"
+        if ! test -e $INSTALLDIR/busybox.original; then 
+          $EXECPWR cp /bin/busybox $INSTALLDIR/busybox.original; fi
+      else
+        $EXECPWR cp /bin/busybox $INSTALLDIR/busybox.original
+    fi
+}
+
+# SDK-specific code executed prior to installing the enhanced binary
+E_SDK_PREINST() {
+    if test -e /bin/busybox
+      then
+        $EXECPWR cp /bin/busybox $INSTALLDIR/busybox.original
+    fi
+}
+
+# Overwrite old busybox binary with bbpower's one
+INSTALL() {
+    $EXECPWR cp -f $INSTALLDIR/busybox.power /bin/busybox
+}
+
+# Creates missing symlinks to busybox' binary
+SYMLINK() {
+    # Load defined BusyBox functions
+    source $INSTALLDIR/functions
+
+    # Get a list of supported functions by the new binary
+    if test -d /tmp/busybox-power; then $EXECPWR rm -Rf /tmp/busybox-power; fi
+    $EXECPWR mkdir -p /tmp/busybox-power
+    $INSTALLDIR/busybox.power --install -s /tmp/busybox-power
+    $EXECPWR ls /tmp/busybox-power/ > $INSTALLDIR/functions_supported
+    $EXECPWR rm -Rf /tmp/busybox-power
+
+    # Prepare file which keeps track of installed symlinks by busybox-power
+    echo "# Automatically generated by busybox-power. DO NOT EDIT" > $INSTALLDIR/busybox-power.symlinks
+    echo -e "\nDESTINATIONS=\"$DESTINATIONS\"" >> $INSTALLDIR/busybox-power.symlinks
+    echo -e "\n# Installed symlinks" >> $INSTALLDIR/busybox-power.symlinks
+
+    # Walk through all possible destinations
+    for DESTDIR in $DESTINATIONS
+      do 
+        # Enable us to see all entries in $DESTINATION as variables
+        eval "APPLICATIONS=\$$DESTDIR"
+
+        # Set destination directory accordingly
+        case $DESTDIR in
+          DEST_BIN)
+            DIR="/bin"
+          ;;
+          DEST_SBIN)
+            DIR="/sbin"
+          ;;
+          DEST_USRBIN)
+            DIR="/usr/bin"
+          ;;
+          DEST_USRSBIN)
+            DIR="/usr/sbin"
+          ;;
+        esac
+
+      # Keep track of installed symlinks per destination
+      SYMLINKS="$DESTDIR=\""
+
+      if test $VERBOSE == 1; then echo -e "\nSymlinking functions in $DIR"; fi
+      # Walk through all applications from the current destination
+      for APP in $APPLICATIONS
+        do
+          # The following code is executed for every application in the current destination
+          if test ! -e $DIR/$APP
+            then
+              # Check whether the function is supported by the busybox binary
+              if `$EXECPWR grep -Fq "$APP" $INSTALLDIR/functions_supported` 
+                then
+                  if test $VERBOSE == 1; then echo Symlinking: $DIR/$APP; fi
+                  $EXECPWR ln -s /bin/busybox $DIR/$APP
+                  SYMLINKS="$SYMLINKS $APP" 
+              fi
+          fi
+      done
+
+      # Write out installed symlinks
+      echo "$SYMLINKS\"" >> $INSTALLDIR/busybox-power.symlinks
+    done
+
+    $EXECPWR rm $INSTALLDIR/functions_supported
+}
+
+### Codepath ###
+CHECK_ENV
+GENERIC_CHECKS
+case $ENVIRONMENT in
+  SDK)
+    E_SDK_PREINST
+  ;;
+  N900)
+    E_N900_CHECKS
+    E_N900_PREINST
+  ;;
+esac
+INSTALL
+SYMLINK
+
diff --git a/debian/scripts/uninstall-binary.sh b/debian/scripts/uninstall-binary.sh
new file mode 100755 (executable)
index 0000000..263f6ba
--- /dev/null
@@ -0,0 +1,224 @@
+#!/bin/sh
+# A script to restore /bin/busybox and delete created symlinks as defined in $INSTALLDIR/installed-symlinks
+#
+# Symbolic links are only removed if they are
+# a) created by the installer script ("install-binary.sh")
+# b) not replaced by a binary (i.e. they are still a symbolic link)
+# c) pointing to a busybox binary
+
+# By Dennis Groenen <dennis_groenen@hotmail.com>
+# GPLv3 licensed
+
+# Version 0.3 06-03-2011 (MM-DD-YYYY)
+# 0.1: Initial release
+# 0.2: Minor clean-ups and be quieter
+# 0.3: Add support for multiple environments
+#      Make use of functions in this script
+#      Implement additional checks
+
+INSTALLDIR="/opt/busybox-power"
+EXECPWR="$INSTALLDIR/busybox.power"
+VERBOSE="0"
+
+# Print extra information in verbose mode
+if test $VERBOSE == 1; then 
+  echo "busybox-power: verbose mode" \ 
+  echo "  binary: $EXECPWR" \ 
+  echo "  version string: `$EXECPWR | $EXECPWR head -n 1`"
+fi
+
+# Detect environment
+CHECK_ENV() {
+    if test -d /scratchbox
+      then
+        ENVIRONMENT="SDK"
+      else
+        PROD=$(cat /proc/component_version | grep product | cut -d" " -f 6)
+        case $PROD in
+          RX-51)
+            ENVIRONMENT="N900"
+          ;;
+          *)
+            # Unsupported, use the least strict environment (SDK)
+            ENVIRONMENT="SDK"
+          ;;
+        esac
+    fi
+
+    if test $VERBOSE == 1; then echo "  environment: $ENVIRONMENT"; fi
+}
+
+# Environment-independent checks before continuing
+GENERIC_CHECKS() {
+    #if test -n "`pgrep dpkg`" -o "`pgrep apt`"
+    if ! lsof /var/lib/dpkg/lock >> /dev/null; then 
+      echo "error: you're running me as a stand-alone application"
+      echo "  do not do this, I will be called automatically upon"
+      echo "  deinstallation of busybox-power"
+      exit 1
+    fi
+
+    if test ! -e $INSTALLDIR/busybox-power.symlinks; then
+      echo -e "Error: cannot find the list of symlinks to be removed. No symlinks will be removed at all!\n" >> /tmp/busybox-power-error
+    fi
+}
+
+# Additional checks for the N900
+E_N900_CHECKS() {
+    if test "`id -u`" -ne 0; then
+      echo "error: you're not running me as root, aborting"
+      echo "  also, DO NOT run me as a stand-alone application"
+      echo "  I will be called automatically upon deinstallation"
+      echo "  of busybox-power"
+      exit 1
+    fi
+
+    if test ! -e $INSTALLDIR/busybox.original; then
+      echo -e "Error: original binary is missing! Continuing will only remove the symlinks made during installation, /bin/busybox stays untouched.\n" >> /tmp/busybox-power-error
+    fi
+}
+
+# N900-specific code executed prior to uninstalling the enhanced binary
+E_N900_PRERM() {
+    if test -e $INSTALLDIR/busybox.power.md5
+      then
+        INSTBINARY_MD5=`md5sum /bin/busybox | awk '{ print $1 }'`
+        ORIGBINARY_MD5=`cat $INSTALLDIR/busybox.power.md5`
+        if test ! "$INSTBINARY_MD5" == "$ORIGBINARY_MD5"; then
+          echo -e "Warning: /bin/busybox has been modified since installing busybox-power (invalid md5 checksum). The original BusyBox binary at the time of installation will replace it if you continue.\n"  >> /tmp/busybox-power-error
+        fi
+    fi
+
+    if test -e $INSTALLDIR/busybox.original.md5
+      then
+        INSTBINARY_MD5=`cat $INSTALLDIR/busybox.original.md5`
+        ORIGBINARY_MD5=`md5sum $INSTALLDIR/busybox.original | awk '{ print $1 }'`
+        if test ! "$INSTBINARY_MD5" == "$ORIGBINARY_MD5"; then
+          echo -e "Warning: the backed-up original binary has been modified since installing busybox-power (invalid md5 checksum). Do not continue unless you're sure $INSTALLDIR/busybox.original isn't corrupted.\n"  >> /tmp/busybox-power-error
+        fi
+      else
+        echo -e "Warning: couldn't load the saved md5 checksum of the original binary; the integrity of the backup of the original binary can not be guaranteed.\n"  >> /tmp/busybox-power-error
+    fi
+}
+
+# Display encountered errors
+DISPLAY_ERRORS() {
+      case $ENVIRONMENT in
+        SDK)
+          echo -e "\n\n-----------Attention!-----------"
+          cat /tmp/busybox-power-error
+          rm /tmp/busybox-power-error
+          echo "-> Please press [enter] to ignore the above errors/warnings. Hit [ctrl-c] to break"
+          read 
+        ;;
+        N900)
+          echo "Click \"I Agree\" to ignore the above errors/warnings. Ask for help if you don't know what to do." >> /tmp/busybox-power-error
+          maemo-confirm-text "Attention!" /tmp/busybox-power-error
+          res=$?
+          rm /tmp/busybox-power-error
+          if test ! $res == 0; then exit 1; fi
+        ;;
+      esac
+
+      touch $INSTALLDIR/busybox-power.symlinks
+}
+
+# Uninstallation of the enhanced binary on the N900
+E_N900_UNINST() {
+    if test -e $INSTALLDIR/busybox.original 
+      then
+        cp -f $INSTALLDIR/busybox.original /bin/busybox
+        if test -e /bin/busybox; then rm $INSTALLDIR/busybox.original; fi
+    fi 
+}
+
+# Uninstallation of the enhanced binary in Maemo's SDK
+E_SDK_UNINST() {
+    if test -e $INSTALLDIR/busybox.original
+      then
+       cp -f $INSTALLDIR/busybox.original /bin/busybox
+       if test -e /bin/busybox; then rm $INSTALLDIR/busybox.original; fi
+      else
+       rm /bin/busybox
+    fi
+}
+
+# Remove all symlinks that busybox-power has made
+UNSYMLINK() {
+    # Load list of installed symlinks
+    source $INSTALLDIR/busybox-power.symlinks
+
+    # Walk through all possible destinations
+    for DESTDIR in $DESTINATIONS
+      do 
+        # Enable us to see all entries in $DESTIONATION as variables
+        eval "APPLICATIONS=\$$DESTDIR"
+        # Set destination dirrectory accordingly
+        case $DESTDIR in
+          DEST_BIN)
+           DIR="/bin"
+          ;;
+          DEST_SBIN)
+           DIR="/sbin"
+          ;;
+          DEST_USRBIN)
+           DIR="/usr/bin"
+          ;;
+          DEST_USRSBIN)
+           DIR="/usr/sbin"
+          ;;
+        esac
+
+      if test $VERBOSE == 1; then echo -e "\nRemoving symlinks in $DIR"; fi
+      # Walk through all applications from the current destination
+      for APP in $APPLICATIONS
+        do
+          # The following code is executed for every application in the current destination
+          if test -h $DIR/$APP # Check if the app is a symbolic link
+           then
+             if test -n "`ls -l $DIR/$APP | grep busybox`" # Check if the symbolic link points to busybox
+               then
+                 if test $VERBOSE == 1; then echo "Removing link: $DIR/$APP"; fi
+                 rm $DIR/$APP
+             fi
+          fi
+      done
+    done
+}
+
+# Action to be performed after restoring original busybox
+POST_UNINST() {
+    OLDFILES="busybox-power.symlinks
+      busybox.power.md5
+      busybox.original.md5"
+
+    for file in $OLDFILES
+      do
+       if test -e $INSTALLDIR/$file; then
+         rm $INSTALLDIR/$file
+       fi
+      done
+}
+
+### Codepath ###
+CHECK_ENV
+GENERIC_CHECKS
+case $ENVIRONMENT in
+  SDK)
+    # Check for errors before restoring BusyBox
+    if test -e /tmp/busybox-power-error
+      then DISPLAY_ERRORS; fi
+    E_SDK_UNINST
+  ;;
+  N900)
+    E_N900_CHECKS
+    E_N900_PRERM
+    # Check for errors before restoring BusyBox
+    if test -e /tmp/busybox-power-error
+      then DISPLAY_ERRORS; fi
+    E_N900_UNINST
+  ;;
+esac
+UNSYMLINK
+POST_UNINST
+