From 4aca87515a5083ae0e31ce3177189fd43b6d05ac Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 3 Jan 2015 13:58:15 +0100 Subject: patch to Vanilla Tomato 1.28 --- .../src/router/busybox/docs/busybox.net/.cvsignore | 2 - .../src/router/busybox/docs/busybox.net/FAQ.html | 1146 ++++++++ .../src/router/busybox/docs/busybox.net/about.html | 24 + .../busybox/docs/busybox.net/busybox-growth.ps | 4 +- .../router/busybox/docs/busybox.net/copyright.txt | 30 + .../router/busybox/docs/busybox.net/cvs_anon.html | 136 - .../router/busybox/docs/busybox.net/cvs_write.html | 117 - .../router/busybox/docs/busybox.net/developer.html | 69 + .../router/busybox/docs/busybox.net/download.html | 60 + .../src/router/busybox/docs/busybox.net/fix.html | 15 + .../router/busybox/docs/busybox.net/footer.html | 51 + .../router/busybox/docs/busybox.net/header.html | 91 + .../busybox/docs/busybox.net/images/back.png | Bin .../busybox/docs/busybox.net/images/busybox.jpeg | Bin .../busybox/docs/busybox.net/images/busybox.png | Bin 34015 -> 34014 bytes .../busybox/docs/busybox.net/images/busybox1.png | Bin .../busybox/docs/busybox.net/images/busybox2.jpg | Bin .../busybox/docs/busybox.net/images/busybox2.png | Bin 0 -> 71850 bytes .../busybox/docs/busybox.net/images/busybox3.jpg | Bin .../router/busybox/docs/busybox.net/images/dir.png | Bin .../busybox/docs/busybox.net/images/donate.png | Bin .../busybox/docs/busybox.net/images/fm.mini.png | Bin .../docs/busybox.net/images/gfx_by_gimp.png | Bin .../busybox/docs/busybox.net/images/ltbutton2.png | Bin 6799 -> 6798 bytes .../busybox/docs/busybox.net/images/osuosl.png | Bin 0 -> 8683 bytes .../busybox/docs/busybox.net/images/sdsmall.png | Bin .../busybox/docs/busybox.net/images/text.png | Bin .../docs/busybox.net/images/valid-html401.png | Bin 0 -> 1950 bytes .../busybox/docs/busybox.net/images/vh40.gif | Bin 0 -> 906 bytes .../docs/busybox.net/images/written.in.vi.png | Bin .../src/router/busybox/docs/busybox.net/index.html | 491 +--- .../router/busybox/docs/busybox.net/license.html | 99 + .../src/router/busybox/docs/busybox.net/links.html | 19 + .../src/router/busybox/docs/busybox.net/lists.html | 46 + .../src/router/busybox/docs/busybox.net/news.html | 504 ++++ .../router/busybox/docs/busybox.net/oldnews.html | 2964 ++++++++++++++------ .../router/busybox/docs/busybox.net/products.html | 165 ++ .../src/router/busybox/docs/busybox.net/robots.txt | 3 - .../busybox/docs/busybox.net/screenshot.html | 114 +- .../src/router/busybox/docs/busybox.net/shame.html | 82 + .../router/busybox/docs/busybox.net/sponsors.html | 56 + .../busybox/docs/busybox.net/subversion.html | 51 + .../router/busybox/docs/busybox.net/svnindex.css | 92 + .../router/busybox/docs/busybox.net/svnindex.xsl | 108 + .../router/busybox/docs/busybox.net/tinyutils.html | 86 + 45 files changed, 5033 insertions(+), 1592 deletions(-) delete mode 100755 release/src/router/busybox/docs/busybox.net/.cvsignore create mode 100644 release/src/router/busybox/docs/busybox.net/FAQ.html create mode 100644 release/src/router/busybox/docs/busybox.net/about.html mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/busybox-growth.ps create mode 100644 release/src/router/busybox/docs/busybox.net/copyright.txt delete mode 100755 release/src/router/busybox/docs/busybox.net/cvs_anon.html delete mode 100755 release/src/router/busybox/docs/busybox.net/cvs_write.html create mode 100644 release/src/router/busybox/docs/busybox.net/developer.html create mode 100644 release/src/router/busybox/docs/busybox.net/download.html create mode 100644 release/src/router/busybox/docs/busybox.net/fix.html create mode 100644 release/src/router/busybox/docs/busybox.net/footer.html create mode 100644 release/src/router/busybox/docs/busybox.net/header.html mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/back.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/busybox.jpeg mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/busybox.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/busybox1.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/busybox2.jpg create mode 100644 release/src/router/busybox/docs/busybox.net/images/busybox2.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/busybox3.jpg mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/dir.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/donate.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/fm.mini.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/gfx_by_gimp.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/ltbutton2.png create mode 100644 release/src/router/busybox/docs/busybox.net/images/osuosl.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/sdsmall.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/text.png create mode 100644 release/src/router/busybox/docs/busybox.net/images/valid-html401.png create mode 100644 release/src/router/busybox/docs/busybox.net/images/vh40.gif mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/images/written.in.vi.png mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/index.html create mode 100644 release/src/router/busybox/docs/busybox.net/license.html create mode 100644 release/src/router/busybox/docs/busybox.net/links.html create mode 100644 release/src/router/busybox/docs/busybox.net/lists.html create mode 100644 release/src/router/busybox/docs/busybox.net/news.html mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/oldnews.html create mode 100644 release/src/router/busybox/docs/busybox.net/products.html delete mode 100644 release/src/router/busybox/docs/busybox.net/robots.txt mode change 100755 => 100644 release/src/router/busybox/docs/busybox.net/screenshot.html create mode 100644 release/src/router/busybox/docs/busybox.net/shame.html create mode 100644 release/src/router/busybox/docs/busybox.net/sponsors.html create mode 100644 release/src/router/busybox/docs/busybox.net/subversion.html create mode 100644 release/src/router/busybox/docs/busybox.net/svnindex.css create mode 100644 release/src/router/busybox/docs/busybox.net/svnindex.xsl create mode 100644 release/src/router/busybox/docs/busybox.net/tinyutils.html (limited to 'release/src/router/busybox/docs/busybox.net') diff --git a/release/src/router/busybox/docs/busybox.net/.cvsignore b/release/src/router/busybox/docs/busybox.net/.cvsignore deleted file mode 100755 index 393b0021..00000000 --- a/release/src/router/busybox/docs/busybox.net/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -BusyBox.html -busybox.tar.gz diff --git a/release/src/router/busybox/docs/busybox.net/FAQ.html b/release/src/router/busybox/docs/busybox.net/FAQ.html new file mode 100644 index 00000000..7ed1394c --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/FAQ.html @@ -0,0 +1,1146 @@ + + +

Frequently Asked Questions

+ +This is a collection of some of the more frequently asked questions +about BusyBox. Some of the questions even have answers. If you +have additions to this FAQ document, we would love to add them, + +

General questions

+
    +
  1. How can I get started using BusyBox?
  2. +
  3. How do I configure busybox?
  4. +
  5. How do I build BusyBox with a cross-compiler?
  6. +
  7. How do I build a BusyBox-based system?
  8. +
  9. Which Linux kernel versions are supported?
  10. +
  11. Which architectures does BusyBox run on?
  12. +
  13. Which C libraries are supported?
  14. +
  15. Can I include BusyBox as part of the software on my device?
  16. +
  17. Where can I find other small utilities since busybox does not include the features I want?
  18. +
  19. I demand that you to add <favorite feature> right now! How come you don't answer all my questions on the mailing list instantly? I demand that you help me with all of my problems Right Now!
  20. +
  21. I need help with BusyBox! What should I do?
  22. +
  23. I need you to add <favorite feature>! Are the BusyBox developers willing to be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide support contracts?
  24. +
+ +

Troubleshooting

+
    +
  1. I think I found a bug in BusyBox! What should I do?!
  2. +
  3. I'm using an ancient version from the dawn of time and something's broken. Can you backport fixes for free?
  4. +
  5. Busybox init isn't working!
  6. +
  7. I can't configure busybox on my system.
  8. +
  9. Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?
  10. +
+ +

Misc. questions

+
    +
  1. How do I change the time zone in busybox?
  2. +
+ +

Programming questions

+
    +
  1. What are the goals of busybox?
  2. +
  3. What is the design of busybox?
  4. +
  5. How is the source code organized? + +
  6. +
  7. I want to make busybox even smaller, how do I go about it?
  8. +
  9. Adding an applet to busybox
  10. +
  11. What standards does busybox adhere to?
  12. +
  13. Portability.
  14. +
  15. Tips and tricks. + +
  16. +
  17. Who are the BusyBox developers?
  18. +
+ + +
+

General questions

+ +
+

How can I get started using BusyBox?

+ +

If you just want to try out busybox without installing it, download the + tarball, extract it, run "make defconfig", and then run "make". +

+

+ This will create a busybox binary with almost all features enabled. To try + out a busybox applet, type "./busybox [appletname] [options]", for + example "./busybox ls -l" or "./busybox cat LICENSE". Type "./busybox" + to see a command list, and "busybox appletname --help" to see a brief + usage message for a given applet. +

+

+ BusyBox uses the name it was invoked under to determine which applet is + being invoked. (Try "mv busybox ls" and then "./ls -l".) Installing + busybox consists of creating symlinks (or hardlinks) to the busybox + binary for each applet in busybox, and making sure these links are in + the shell's command $PATH. The special applet name "busybox" (or with + any optional suffix, such as "busybox-static") uses the first argument + to determine which applet to run, as shown above. +

+

+ BusyBox also has a feature called the + "standalone shell", where the busybox + shell runs any built-in applets before checking the command path. This + feature is also enabled by "make allyesconfig", and to try it out run + the command line "PATH= ./busybox ash". This will blank your command path + and run busybox as your command shell, so the only commands it can find + (without an explicit path such as /bin/ls) are the built-in busybox ones. + This is another good way to see what's built into busybox. + Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH + to be set appropriately, depending on whether or not /proc/self/exe is + available or not. If you do not have /proc, then point that config option + to the location of your busybox binary, usually /bin/busybox. + (So if you set it to /proc/self/exe, and happen to be able to chroot into + your rootfs, you must mount /proc beforehand.) +

+

+ A typical indication that you set CONFIG_BUSYBOX_EXEC_PATH to proc but + forgot to mount proc is: +

+$ /bin/echo $PATH
+/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+$ echo $PATH
+/bin/sh: echo: not found
+
+ +
+

How do I configure busybox?

+ +

Busybox is configured similarly to the linux kernel. Create a default + configuration and then run "make menuconfig" to modify it. The end + result is a .config file that tells the busybox build process what features + to include. So instead of "./configure; make; make install" the equivalent + busybox build would be "make defconfig; make; make install". +

+ +

Busybox configured with all features enabled is a little under a megabyte + dynamically linked on x86. To create a smaller busybox, configure it with + fewer features. Individual busybox applets cost anywhere from a few + hundred bytes to tens of kilobytes. Disable unneeded applets to save, + space, using menuconfig. +

+ +

The most important busybox configurators are:

+ + + +

Some other configuration options are:

+ + +

Menuconfig modifies your .config file through an interactive menu where you can enable or disable + busybox features, and get help about each feature. + +

+ To build a smaller busybox binary, run "make menuconfig" and disable the + features you don't need. (Or run "make allnoconfig" and then use + menuconfig to add just the features you need. Don't forget to recompile + with "make" once you've finished configuring.) +

+ +
+

How do I build BusyBox with a cross-compiler?

+ +

+ To build busybox with a cross-compiler, specify CROSS_COMPILE=<prefix>. +

+

+ CROSS_COMPILE specifies the prefix used for all executables used + during compilation. Only gcc and related binutils executables + are prefixed with $(CROSS_COMPILE) in the makefiles. + CROSS_COMPILE can be set on the command line: +

+
+   make CROSS_COMPILE=arm-linux-uclibcgnueabi-
+
+

+ Alternatively CROSS_COMPILE can be set in the environment. + Default value for CROSS_COMPILE is not to prefix executables. +

+

+ To store the cross-compiler in your .config, set the variable + CONFIG_CROSS_COMPILER_PREFIX accordingly in menuconfig or by + editing the .config file. +

+ +
+

How do I build a BusyBox-based system?

+ +

+ BusyBox is a package that replaces a dozen standard packages, but it is + not by itself a complete bootable system. Building an entire Linux + distribution from source is a bit beyond the scope of this FAQ, but it + understandably keeps cropping up on the mailing list, so here are some + pointers. +

+

+ Start by learning how to strip a working system down to the bare essentials + needed to run one or two commands, so you know what it is you actually + need. An excellent practical place to do + this is the Linux + BootDisk Howto, or for a more theoretical approach try + From + PowerUp to Bash Prompt. +

+

+ To learn how to build a working Linux system entirely from source code, + the place to go is the Linux + From Scratch project. They have an entire book of step-by-step + instructions you can + read online + or + download. + Be sure to check out the other sections of their main page, including + Beyond Linux From Scratch, Hardened Linux From Scratch, their Hints + directory, and their LiveCD project. (They also have mailing lists which + are better sources of answers to Linux-system building questions than + the busybox list.) +

+

+ If you want an automated yet customizable system builder which produces + a BusyBox and uClibc based system, try + buildroot, which is + another project by the maintainer of the uClibc (Erik Andersen). + Download the tarball, extract it, unset CC, make. + For more instructions, see the website. +

+ +
+

Which Linux kernel versions are supported?

+ +

+ Full functionality requires Linux 2.4.x or better. (Earlier versions may + still work, but are no longer regularly tested.) A large fraction of the + code should run on just about anything. While the current code is fairly + Linux specific, it should be fairly easy to port the majority of the code + to support, say, FreeBSD or Solaris, or Mac OS X, or even Windows (if you + are into that sort of thing). +

+ +
+

Which architectures does BusyBox run on?

+ +

+ BusyBox in general will build on any architecture supported by gcc. + Kernel module loading for 2.4 Linux kernels is currently + limited to ARM, CRIS, H8/300, x86, ia64, x86_64, m68k, MIPS, PowerPC, + S390, SH3/4/5, Sparc, v850e, and x86_64 for 2.4.x kernels. +

+

+ With 2.6.x kernels, module loading support should work on all architectures. +

+ +
+

Which C libraries are supported?

+ +

+ On Linux, BusyBox releases are tested against uClibc (0.9.27 or later) and + glibc (2.2 or later). Both should provide full functionality with busybox, + and if you find a bug we want to hear about it. +

+

+ Linux-libc5 is no longer maintained (and has no known advantages over + uClibc), dietlibc is known to have numerous unfixed bugs, and klibc is + missing too many features to build BusyBox. If you require a small C + library for Linux, the busybox developers recommend uClibc. +

+

+ Some BusyBox applets have been built and run under a combination + of newlib and libgloss (see + this thread). + This is still experimental, but may be supported in a future release. +

+ +
+

Can I include BusyBox as part of the software on my device?

+ +

+ Yes. As long as you fully comply + with the generous terms of the GPL BusyBox license you can ship BusyBox + as part of the software on your device. +

+ +
+

Where can I find other small utilities since busybox + does not include the features i want?

+ +

+ we maintain such a list on this site! +

+ +
+

I demand that you to add <favorite feature> right now! How come you don't answer all my questions on the mailing list instantly? I demand that you help me with all of my problems Right Now!

+ +

+ You have not paid us a single cent and yet you still have the product of + many years of our work. We are not your slaves! We work on BusyBox + because we find it useful and interesting. If you go off flaming us, we + will ignore you. + +


+

I need help with BusyBox! What should I do?

+ +

+ If you find that you need help with BusyBox, you can ask for help on the + BusyBox mailing list at busybox@busybox.net.

+ +

In addition to the mailing list, Erik Andersen (andersee), Manuel Nova + (mjn3), Rob Landley (landley), Mike Frysinger (SpanKY), + Bernhard Reutner-Fischer (blindvt), and other long-time BusyBox developers + are known to hang out on the uClibc IRC channel: #uclibc on + irc.freenode.net. There is a + web archive of + daily logs of the #uclibc IRC channel going back to 2002. +

+ +

+ Please do not send private email to Rob, Erik, Manuel, or the other + BusyBox contributors asking for private help unless you are planning on + paying for consulting services. +

+ +

+ When we answer questions on the BusyBox mailing list, it helps everyone + since people with similar problems in the future will be able to get help + by searching the mailing list archives. Private help is reserved as a paid + service. If you need to use private communication, or if you are serious + about getting timely assistance with BusyBox, you should seriously consider + paying for consulting services. +

+ +
+

I need you to add <favorite feature>! Are the BusyBox developers willing to be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide support contracts?

+ +

+ Yes we are. The easy way to sponsor a new feature is to post an offer on + the mailing list to see who's interested. You can also email the project's + maintainer and ask them to recommend someone. +

+ +
+

Troubleshooting

+ +
+

I think I found a bug in BusyBox! What should I do?

+ +

+ If you simply need help with using or configuring BusyBox, please submit a + detailed description of your problem to the BusyBox mailing list at busybox@busybox.net. + Please do not send email to individual developers asking + for private help unless you are planning on paying for consulting services. + When we answer questions on the BusyBox mailing list, it helps everyone, + while private answers help only you... +

+ +

+ Bug reports and new feature patches sometimes get lost when posted to the + mailing list, because the developers of BusyBox are busy people and have + only so much they can keep in their brains at a time. You can post a + polite reminder after 2-3 days without offending anybody. If that doesn't + result in a solution, please use the + BusyBox Bug + and Patch Tracking System to submit a detailed explanation and we'll + get to it as soon as we can. +

+ +

+ Note that bugs entered into the bug system without being mentioned on the + mailing list first may languish there for months before anyone even notices + them. We generally go through the bug system when preparing for new + development releases, to see what fell through the cracks while we were + off writing new features. (It's a fast/unreliable vs slow/reliable thing. + Saves retransits, but the latency sucks.) +

+ +
+

I'm using an ancient version from the dawn of time and something's broken. Can you backport fixes for free?

+ +

Variants of this one get asked a lot.

+ +

The purpose of the BusyBox mailing list is to develop and improve BusyBox, +and we're happy to respond to our users' needs. But if you're coming to the +list for free tech support we're going to ask you to upgrade to a current +version before we try to diagnose your problem.

+ +

If you're building BusyBox 0.50 with uClibc 0.9.19 and gcc 1.27 there's a +fairly large chance that whatever problem you're seeing has already been fixed. +To get that fix, all you have to do is upgrade to a newer version. If you +don't at least _try_ that, you're wasting our time.

+ +

The volunteers are happy to fix any bugs you point out in the current +versions because doing so helps everybody and makes the project better. We +want to make the current version work for you. But diagnosing, debugging, and +backporting fixes to old versions isn't something we do for free, because it +doesn't help anybody but you. The cost of volunteer tech support is using a +reasonably current version of the project.

+ +

If you don't want to upgrade, you have the complete source code and thus +the ability to fix it yourself, or hire a consultant to do it for you. If you +got your version from a vendor who still supports the older version, they can +help you. But there are limits as to what the volunteers will feel obliged to +do for you.

+ +

As a rule of thumb, volunteers will generally answer polite questions about +a given version for about three years after its release before it's so old +we don't remember the answer off the top of our head. And if you want us to +put any _effort_ into tracking it down, we want you to put in a little effort +of your own by confirming it's still a problem with the current version. It's +also hard for us to fix a problem of yours if we can't reproduce it because +we don't have any systems running an environment that old.

+ +

A consultant will happily set up a special environment just to reproduce +your problem, and you can always ask on the list if any of the developers +have consulting rates.

+ +
+

Busybox init isn't working!

+ +

+ Init is the first program that runs, so it might be that no programs are + working on your new system because of a problem with your cross-compiler, + kernel, console settings, shared libraries, root filesystem... To rule all + that out, first build a statically linked version of the following "hello + world" program with your cross compiler toolchain: +

+
+#include <stdio.h>
+
+int main(int argc, char *argv)
+{
+  printf("Hello world!\n");
+  sleep(999999999);
+}
+
+ +

+ Now try to boot your device with an "init=" argument pointing to your + hello world program. Did you see the hello world message? Until you + do, don't bother messing with busybox init. +

+ +

+ Once you've got it working statically linked, try getting it to work + dynamically linked. Then read the FAQ entry How + do I build a BusyBox-based system?, and the + documentation for BusyBox + init. +

+ +
+

I can't configure busybox on my system.

+ +

+ Configuring Busybox depends on a recent version of sed. Older + distributions (Red Hat 7.2, Debian 3.0) may not come with a + usable version. Luckily BusyBox can use its own sed to configure itself, + although this leads to a bit of a chicken and egg problem. + You can work around this by hand-configuring busybox to build with just + sed, then putting that sed in your path to configure the rest of busybox + with, like so: +

+ +
+  tar xvjf sources/busybox-x.x.x.tar.bz2
+  cd busybox-x.x.x
+  make allnoconfig
+  make include/bb_config.h
+  echo "CONFIG_SED=y" >> .config
+  echo "#undef ENABLE_SED" >> include/bb_config.h
+  echo "#define ENABLE_SED 1" >> include/bb_config.h
+  make
+  mv busybox sed
+  export PATH=`pwd`:"$PATH"
+
+ +

Then you can run "make defconfig" or "make menuconfig" normally.

+ +
+

Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?

+ +

+ Job control will be turned off since your shell can not obtain a controlling + terminal. This typically happens when you run your shell on /dev/console. + The kernel will not provide a controlling terminal on the /dev/console + device. Your should run your shell on a normal tty such as tty1 or ttyS0 + and everything will work perfectly. If you REALLY want your shell + to run on /dev/console, then you can hack your kernel (if you are into that + sortof thing) by changing drivers/char/tty_io.c to change the lines where + it sets "noctty = 1;" to instead set it to "0". I recommend you instead + run your shell on a real console... +

+ +
+

Misc. questions

+ +
+

How do I change the time zone in busybox?

+ +

Busybox has nothing to do with the timezone. Please consult your libc +documentation. (http://google.com/search?q=uclibc+glibc+timezone).

+ +
+

Development

+ +
+

What are the goals of busybox?

+ +

Busybox aims to be the smallest and simplest correct implementation of the +standard Linux command line tools. First and foremost, this means the +smallest executable size we can manage. We also want to have the simplest +and cleanest implementation we can manage, be standards +compliant, minimize run-time memory usage (heap and stack), run fast, and +take over the world.

+ +
+

What is the design of busybox?

+ +

Busybox is like a swiss army knife: one thing with many functions. +The busybox executable can act like many different programs depending on +the name used to invoke it. Normal practice is to create a bunch of symlinks +pointing to the busybox binary, each of which triggers a different busybox +function. (See getting started in the +FAQ for more information on usage, and the +busybox documentation for a list of symlink names and what they do.) + +

The "one binary to rule them all" approach is primarily for size reasons: a +single multi-purpose executable is smaller then many small files could be. +This way busybox only has one set of ELF headers, it can easily share code +between different apps even when statically linked, it has better packing +efficiency by avoding gaps between files or compression dictionary resets, +and so on.

+ +

Work is underway on new options such as "make standalone" to build separate +binaries for each applet, and a "libbb.so" to make the busybox common code +available as a shared library. Neither is ready yet at the time of this +writing.

+ + + +
+

The applet directories

+ +

The directory "applets" contains the busybox startup code (applets.c and +busybox.c), and several subdirectories containing the code for the individual +applets.

+ +

Busybox execution starts with the main() function in applets/busybox.c, +which sets the global variable applet_name to argv[0] and calls +run_applet_and_exit() in applets/applets.c. That uses the applets[] array +(defined in include/busybox.h and filled out in include/applets.h) to +transfer control to the appropriate APPLET_main() function (such as +cat_main() or sed_main()). The individual applet takes it from there.

+ +

This is why calling busybox under a different name triggers different +functionality: main() looks up argv[0] in applets[] to get a function pointer +to APPLET_main().

+ +

Busybox applets may also be invoked through the multiplexor applet +"busybox" (see busybox_main() in libbb/appletlib.c), and through the +standalone shell (grep for STANDALONE_SHELL in applets/shell/*.c). +See getting started in the +FAQ for more information on these alternate usage mechanisms, which are +just different ways to reach the relevant APPLET_main() function.

+ +

The applet subdirectories (archival, console-tools, coreutils, +debianutils, e2fsprogs, editors, findutils, init, loginutils, miscutils, +modutils, networking, procps, shell, sysklogd, and util-linux) correspond +to the configuration sub-menus in menuconfig. Each subdirectory contains the +code to implement the applets in that sub-menu, as well as a Config.in +file defining that configuration sub-menu (with dependencies and help text +for each applet), and the makefile segment (Makefile.in) for that +subdirectory.

+ +

The run-time --help is stored in usage_messages[], which is initialized at +the start of applets/applets.c and gets its help text from usage.h. During the +build this help text is also used to generate the BusyBox documentation (in +html, txt, and man page formats) in the docs directory. See +adding an applet to busybox for more +information.

+ +
+

libbb

+ +

Most non-setup code shared between busybox applets lives in the libbb +directory. It's a mess that evolved over the years without much auditing +or cleanup. For anybody looking for a great project to break into busybox +development with, documenting libbb would be both incredibly useful and good +experience.

+ +

Common themes in libbb include allocation functions that test +for failure and abort the program with an error message so the caller doesn't +have to test the return value (xmalloc(), xstrdup(), etc), wrapped versions +of open(), close(), read(), and write() that test for their own failures +and/or retry automatically, linked list management functions (llist.c), +command line argument parsing (getopt32.c), and a whole lot more.

+ +
+

I want to make busybox even smaller, how do I go about it?

+ +

+ To conserve bytes it's good to know where they're being used, and the + size of the final executable isn't always a reliable indicator of + the size of the components (since various structures are rounded up, + so a small change may not even be visible by itself, but many small + savings add up). +

+ +

The busybox Makefile builds two versions of busybox, one of which + (busybox_unstripped) has extra information that various analysis tools + can use. (This has nothing to do with CONFIG_DEBUG, leave that off + when trying to optimize for size.) +

+ +

The "make bloatcheck" option uses Matt Mackall's bloat-o-meter + script to compare two versions of busybox (busybox_unstripped vs + busybox_old), and report which symbols changed size and by how much. + To use it, first build a base version with "make baseline". + (This creates busybox_old, which should have the original sizes for + comparison purposes.) Then build the new version with your changes + and run "make bloatcheck" to see the size differences from the old + version. +

+

+ The first line of output has totals: how many symbols were added or + removed, how many symbols grew or shrank, the number of bytes added + and number of bytes removed by these changes, and finally the total + number of bytes difference between the two files. The remaining + lines show each individual symbol, the old and new sizes, and the + increase or decrease in size (which results are sorted by). +

+

+ The "make sizes" option produces raw symbol size information for + busybox_unstripped. This is the output from the "nm --size-sort" + command (see "man nm" for more information), and is the information + bloat-o-meter parses to produce the comparison report above. For + defconfig, this is a good way to find the largest symbols in the tree + (which is a good place to start when trying to shrink the code). To + take a closer look at individual applets, configure busybox with just + one applet (run "make allnoconfig" and then switch on a single applet + with menuconfig), and then use "make sizes" to see the size of that + applet's components. +

+

+ The "showasm" command (in the scripts directory) produces an assembly + dump of a function, providing a closer look at what changed. Try + "scripts/showasm busybox_unstripped" to list available symbols, and + "scripts/showasm busybox_unstripped symbolname" to see the assembly + for a sepecific symbol. +

+ +
+

Adding an applet to busybox

+ +

To add a new applet to busybox, first pick a name for the applet and +a corresponding CONFIG_NAME. Then do this:

+ + + +
+

What standards does busybox adhere to?

+ +

The standard we're paying attention to is the "Shell and Utilities" +portion of the Open +Group Base Standards (also known as the Single Unix Specification version +3 or SUSv3). Note that paying attention isn't necessarily the same thing as +following it.

+ +

SUSv3 doesn't even mention things like init, mount, tar, or losetup, nor +commonly used options like echo's '-e' and '-n', or sed's '-i'. Busybox is +driven by what real users actually need, not the fact the standard believes +we should implement ed or sccs. For size reasons, we're unlikely to include +much internationalization support beyond UTF-8, and on top of all that, our +configuration menu lets developers chop out features to produce smaller but +very non-standard utilities.

+ +

Also, Busybox is aimed primarily at Linux. Unix standards are interesting +because Linux tries to adhere to them, but portability to dozens of platforms +is only interesting in terms of offering a restricted feature set that works +everywhere, not growing dozens of platform-specific extensions. Busybox +should be portable to all hardware platforms Linux supports, and any other +similar operating systems that are easy to do and won't require much +maintenance.

+ +

In practice, standards compliance tends to be a clean-up step once an +applet is otherwise finished. When polishing and testing a busybox applet, +we ensure we have at least the option of full standards compliance, or else +document where we (intentionally) fall short.

+ +
+

Portability.

+ +

Busybox is a Linux project, but that doesn't mean we don't have to worry +about portability. First of all, there are different hardware platforms, +different C library implementations, different versions of the kernel and +build toolchain... The file "include/platform.h" exists to centralize and +encapsulate various platform-specific things in one place, so most busybox +code doesn't have to care where it's running.

+ +

To start with, Linux runs on dozens of hardware platforms. We try to test +each release on x86, x86-64, arm, power pc, and mips. (Since qemu can handle +all of these, this isn't that hard.) This means we have to care about a number +of portability issues like endianness, word size, and alignment, all of which +belong in platform.h. That header handles conditional #includes and gives +us macros we can use in the rest of our code. At some point in the future +we might grow a platform.c, possibly even a platform subdirectory. As long +as the applets themselves don't have to care.

+ +

On a related note, we made the "default signedness of char varies" problem +go away by feeding the compiler -funsigned-char. This gives us consistent +behavior on all platforms, and defaults to 8-bit clean text processing (which +gets us halfway to UTF-8 support). NOMMU support is less easily separated +(see the tips section later in this document), but we're working on it.

+ +

Another type of portability is build environments: we unapologetically use +a number of gcc and glibc extensions (as does the Linux kernel), but these have +been picked up by packages like uClibc, TCC, and Intel's C Compiler. As for +gcc, we take advantage of newer compiler optimizations to get the smallest +possible size, but we also regression test against an older build environment +using the Red Hat 9 image at "http://busybox.net/downloads/qemu". This has a +2.4 kernel, gcc 3.2, make 3.79.1, and glibc 2.3, and is the oldest +build/deployment environment we still put any effort into maintaining. (If +anyone takes an interest in older kernels you're welcome to submit patches, +but the effort would probably be better spent +trimming +down the 2.6 kernel.) Older gcc versions than that are uninteresting since +we now use c99 features, although +tcc might be worth a +look.

+ +

We also test busybox against the current release of uClibc. Older versions +of uClibc aren't very interesting (they were buggy, and uClibc wasn't really +usable as a general-purpose C library before version 0.9.26 anyway).

+ +

Other unix implementations are mostly uninteresting, since Linux binaries +have become the new standard for portable Unix programs. Specifically, +the ubiquity of Linux was cited as the main reason the Intel Binary +Compatability Standard 2 died, by the standards group organized to name a +successor to ibcs2: the 86open +project. That project disbanded in 1999 with the endorsement of an +existing standard: Linux ELF binaries. Since then, the major players at the +time (such as AIX, Solaris, and +FreeBSD) +have all either grown Linux support or folded.

+ +

The major exceptions are newcomer MacOS X, some embedded environments +(such as newlib+libgloss) which provide a posix environment but not a full +Linux environment, and environments like Cygwin that provide only partial Linux +emulation. Also, some embedded Linux systems run a Linux kernel but amputate +things like the /proc directory to save space.

+ +

Supporting these systems is largely a question of providing a clean subset +of BusyBox's functionality -- whichever applets can easily be made to +work in that environment. Annotating the configuration system to +indicate which applets require which prerequisites (such as procfs) is +also welcome. Other efforts to support these systems (swapping #include +files to build in different environments, adding adapter code to platform.h, +adding more extensive special-case supporting infrastructure such as mount's +legacy mtab support) are handled on a case-by-case basis. Support that can be +cleanly hidden in platform.h is reasonably attractive, and failing that +support that can be cleanly separated into a separate conditionally compiled +file is at least worth a look. Special-case code in the body of an applet is +something we're trying to avoid.

+ +
+

Programming tips and tricks.

+ +

Various things busybox uses that aren't particularly well documented +elsewhere.

+ +
+

Encrypted Passwords

+ +

Password fields in /etc/passwd and /etc/shadow are in a special format. +If the first character isn't '$', then it's an old DES style password. If +the first character is '$' then the password is actually three fields +separated by '$' characters:

+
+  $type$salt$encrypted_password
+
+ +

The "type" indicates which encryption algorithm to use: 1 for MD5 and 2 for SHA1.

+ +

The "salt" is a bunch of ramdom characters (generally 8) the encryption +algorithm uses to perturb the password in a known and reproducible way (such +as by appending the random data to the unencrypted password, or combining +them with exclusive or). Salt is randomly generated when setting a password, +and then the same salt value is re-used when checking the password. (Salt is +thus stored unencrypted.)

+ +

The advantage of using salt is that the same cleartext password encrypted +with a different salt value produces a different encrypted value. +If each encrypted password uses a different salt value, an attacker is forced +to do the cryptographic math all over again for each password they want to +check. Without salt, they could simply produce a big dictionary of commonly +used passwords ahead of time, and look up each password in a stolen password +file to see if it's a known value. (Even if there are billions of possible +passwords in the dictionary, checking each one is just a binary search against +a file only a few gigabytes long.) With salt they can't even tell if two +different users share the same password without guessing what that password +is and decrypting it. They also can't precompute the attack dictionary for +a specific password until they know what the salt value is.

+ +

The third field is the encrypted password (plus the salt). For md5 this +is 22 bytes.

+ +

The busybox function to handle all this is pw_encrypt(clear, salt) in +"libbb/pw_encrypt.c". The first argument is the clear text password to be +encrypted, and the second is a string in "$type$salt$password" format, from +which the "type" and "salt" fields will be extracted to produce an encrypted +value. (Only the first two fields are needed, the third $ is equivalent to +the end of the string.) The return value is an encrypted password in +/etc/passwd format, with all three $ separated fields. It's stored in +a static buffer, 128 bytes long.

+ +

So when checking an existing password, if pw_encrypt(text, +old_encrypted_password) returns a string that compares identical to +old_encrypted_password, you've got the right password. When setting a new +password, generate a random 8 character salt string, put it in the right +format with sprintf(buffer, "$%c$%s", type, salt), and feed buffer as the +second argument to pw_encrypt(text,buffer).

+ +
+

Fork and vfork

+ +

On systems that haven't got a Memory Management Unit, fork() is unreasonably +expensive to implement (and sometimes even impossible), so a less capable +function called vfork() is used instead. (Using vfork() on a system with an +MMU is like pounding a nail with a wrench. Not the best tool for the job, but +it works.)

+ +

Busybox hides the difference between fork() and vfork() in +libbb/bb_fork_exec.c. If you ever want to fork and exec, use bb_fork_exec() +(which returns a pid and takes the same arguments as execve(), although in +this case envp can be NULL) and don't worry about it. This description is +here in case you want to know why that does what it does.

+ +

Implementing fork() depends on having a Memory Management Unit. With an +MMU then you can simply set up a second set of page tables and share the +physical memory via copy-on-write. So a fork() followed quickly by exec() +only copies a few pages of the parent's memory, just the ones it changes +before freeing them.

+ +

With a very primitive MMU (using a base pointer plus length instead of page +tables, which can provide virtual addresses and protect processes from each +other, but no copy on write) you can still implement fork. But it's +unreasonably expensive, because you have to copy all the parent process' +memory into the new process (which could easily be several megabytes per fork). +And you have to do this even though that memory gets freed again as soon as the +exec happens. (This is not just slow and a waste of space but causes memory +usage spikes that can easily cause the system to run out of memory.)

+ +

Without even a primitive MMU, you have no virtual addresses. Every process +can reach out and touch any other process' memory, because all pointers are to +physical addresses with no protection. Even if you copy a process' memory to +new physical addresses, all of its pointers point to the old objects in the +old process. (Searching through the new copy's memory for pointers and +redirect them to the new locations is not an easy problem.)

+ +

So with a primitive or missing MMU, fork() is just not a good idea.

+ +

In theory, vfork() is just a fork() that writeably shares the heap and stack +rather than copying it (so what one process writes the other one sees). In +practice, vfork() has to suspend the parent process until the child does exec, +at which point the parent wakes up and resumes by returning from the call to +vfork(). All modern kernel/libc combinations implement vfork() to put the +parent to sleep until the child does its exec. There's just no other way to +make it work: the parent has to know the child has done its exec() or exit() +before it's safe to return from the function it's in, so it has to block +until that happens. In fact without suspending the parent there's no way to +even store separate copies of the return value (the pid) from the vfork() call +itself: both assignments write into the same memory location.

+ +

One way to understand (and in fact implement) vfork() is this: imagine +the parent does a setjmp and then continues on (pretending to be the child) +until the exec() comes around, then the _exec_ does the actual fork, and the +parent does a longjmp back to the original vfork call and continues on from +there. (It thus becomes obvious why the child can't return, or modify +local variables it doesn't want the parent to see changed when it resumes.) + +

Note a common mistake: the need for vfork doesn't mean you can't have two +processes running at the same time. It means you can't have two processes +sharing the same memory without stomping all over each other. As soon as +the child calls exec(), the parent resumes.

+ +

If the child's attempt to call exec() fails, the child should call _exit() +rather than a normal exit(). This avoids any atexit() code that might confuse +the parent. (The parent should never call _exit(), only a vforked child that +failed to exec.)

+ +

(Now in theory, a nommu system could just copy the _stack_ when it forks +(which presumably is much shorter than the heap), and leave the heap shared. +Even with no MMU at all +In practice, you've just wound up in a multi-threaded situation and you can't +do a malloc() or free() on your heap without freeing the other process' memory +(and if you don't have the proper locking for being threaded, corrupting the +heap if both of you try to do it at the same time and wind up stomping on +each other while traversing the free memory lists). The thing about vfork is +that it's a big red flag warning "there be dragons here" rather than +something subtle and thus even more dangerous.)

+ +
+

Short reads and writes

+ +

Busybox has special functions, bb_full_read() and bb_full_write(), to +check that all the data we asked for got read or written. Is this a real +world consideration? Try the following:

+ +
while true; do echo hello; sleep 1; done | tee out.txt
+ +

If tee is implemented with bb_full_read(), tee doesn't display output +in real time but blocks until its entire input buffer (generally a couple +kilobytes) is read, then displays it all at once. In that case, we _want_ +the short read, for user interface reasons. (Note that read() should never +return 0 unless it has hit the end of input, and an attempt to write 0 +bytes should be ignored by the OS.)

+ +

As for short writes, play around with two processes piping data to each +other on the command line (cat bigfile | gzip > out.gz) and suspend and +resume a few times (ctrl-z to suspend, "fg" to resume). The writer can +experience short writes, which are especially dangerous because if you don't +notice them you'll discard data. They can also happen when a system is under +load and a fast process is piping to a slower one. (Such as an xterm waiting +on x11 when the scheduler decides X is being a CPU hog with all that +text console scrolling...)

+ +

So will data always be read from the far end of a pipe at the +same chunk sizes it was written in? Nope. Don't rely on that. For one +counterexample, see rfc 896 +for Nagle's algorithm, which waits a fraction of a second or so before +sending out small amounts of data through a TCP/IP connection in case more +data comes in that can be merged into the same packet. (In case you were +wondering why action games that use TCP/IP set TCP_NODELAY to lower the latency +on their their sockets, now you know.)

+ +
+

Memory used by relocatable code, PIC, and static linking.

+ +

The downside of standard dynamic linking is that it results in self-modifying +code. Although each executable's pages are mmaped() into a process' address +space from the executable file and are thus naturally shared between processes +out of the page cache, the library loader (ld-linux.so.2 or ld-uClibc.so.0) +writes to these pages to supply addresses for relocatable symbols. This +dirties the pages, triggering copy-on-write allocation of new memory for each +processes' dirtied pages.

+ +

One solution to this is Position Independent Code (PIC), a way of linking +a file so all the relocations are grouped together. This dirties fewer +pages (often just a single page) for each process' relocations. The down +side is this results in larger executables, which take up more space on disk +(and a correspondingly larger space in memory). But when many copies of the +same program are running, PIC dynamic linking trades a larger disk footprint +for a smaller memory footprint, by sharing more pages.

+ +

A third solution is static linking. A statically linked program has no +relocations, and thus the entire executable is shared between all running +instances. This tends to have a significantly larger disk footprint, but +on a system with only one or two executables, shared libraries aren't much +of a win anyway.

+ +

You can tell the glibc linker to display debugging information about its +relocations with the environment variable "LD_DEBUG". Try +"LD_DEBUG=help /bin/true" for a list of commands. Learning to interpret +"LD_DEBUG=statistics cat /proc/self/statm" could be interesting.

+ +

For more on this topic, here's Rich Felker:

+
+

Dynamic linking (without fixed load addresses) fundamentally requires +at least one dirty page per dso that uses symbols. Making calls (but +never taking the address explicitly) to functions within the same dso +does not require a dirty page by itself, but will with ELF unless you +use -Bsymbolic or hidden symbols when linking.

+ +

ELF uses significant additional stack space for the kernel to pass all +the ELF data structures to the newly created process image. These are +located above the argument list and environment. This normally adds 1 +dirty page to the process size.

+ +

The ELF dynamic linker has its own data segment, adding one or more +dirty pages. I believe it also performs relocations on itself.

+ +

The ELF dynamic linker makes significant dynamic allocations to manage +the global symbol table and the loaded dso's. This data is never +freed. It will be needed again if libdl is used, so unconditionally +freeing it is not possible, but normal programs do not use libdl. Of +course with glibc all programs use libdl (due to nsswitch) so the +issue was never addressed.

+ +

ELF also has the issue that segments are not page-aligned on disk. +This saves up to 4k on disk, but at the expense of using an additional +dirty page in most cases, due to a large portion of the first data +page being filled with a duplicate copy of the last text page.

+ +

The above is just a partial list of the tiny memory penalties of ELF +dynamic linking, which eventually add up to quite a bit. The smallest +I've been able to get a process down to is 8 dirty pages, and the +above factors seem to mostly account for it (but some were difficult +to measure).

+
+ +
+

Including kernel headers

+ +

The "linux" or "asm" directories of /usr/include +contain Linux kernel +headers, so that the C library can talk directly to the Linux kernel. In +a perfect world, applications shouldn't include these headers directly, but +we don't live in a perfect world.

+ +

For example, Busybox's losetup code wants linux/loop.c because nothing else +#defines the structures to call the kernel's loopback device setup ioctls. +Attempts to cut and paste the information into a local busybox header file +proved incredibly painful, because portions of the loop_info structure vary by +architecture, namely the type __kernel_dev_t has different sizes on alpha, +arm, x86, and so on. Meaning we either #include <linux/posix_types.h> or +we hardwire #ifdefs to check what platform we're building on and define this +type appropriately for every single hardware architecture supported by +Linux, which is simply unworkable.

+ +

This is aside from the fact that the relevant type defined in +posix_types.h was renamed to __kernel_old_dev_t during the 2.5 series, so +to cut and paste the structure into our header we have to #include +<linux/version.h> to figure out which name to use. (What we actually +do is +check if we're building on 2.6, and if so just use the new 64 bit structure +instead to avoid the rename entirely.) But we still need the version +check, since 2.4 didn't have the 64 bit structure.

+ +

The BusyBox developers spent two years trying to figure +out a clean way to do all this. There isn't one. The losetup in the +util-linux package from kernel.org isn't doing it cleanly either, they just +hide the ugliness by nesting #include files. Their mount/loop.h +#includes "my_dev_t.h", which #includes <linux/posix_types.h> +and <linux/version.h> just like we do. There simply is no alternative. +

+ +

Just because directly #including kernel headers is sometimes +unavoidable doesn't me we should include them when there's a better +way to do it. However, block copying information out of the kernel headers +is not a better way.

+ +
+

Who are the BusyBox developers?

+ +

The following login accounts currently exist on busybox.net. (I.E. these +people can commit patches +into subversion for the BusyBox, uClibc, and buildroot projects.)

+ +
+aldot     :Bernhard Reutner-Fischer
+andersen  :Erik Andersen      - uClibc and BuildRoot maintainer.
+bug1      :Glenn McGrath
+davidm    :David McCullough
+gkajmowi  :Garrett Kajmowicz  - uClibc++ maintainer
+jbglaw    :Jan-Benedict Glaw
+jocke     :Joakim Tjernlund
+landley   :Rob Landley
+lethal    :Paul Mundt
+mjn3      :Manuel Novoa III
+osuadmin  :osuadmin
+pgf       :Paul Fox
+pkj       :Peter Kjellerstedt
+prpplague :David Anders
+psm       :Peter S. Mazinger
+russ      :Russ Dill
+sandman   :Robert Griebl
+sjhill    :Steven J. Hill
+solar     :Ned Ludd
+timr      :Tim Riker
+tobiasa   :Tobias Anderberg
+vapier    :Mike Frysinger
+vda       :Denys Vlasenko     - BusyBox maintainer
+
+ +

The following accounts used to exist on busybox.net, but don't anymore so +I can't ask /etc/passwd for their names. Rob Wentworth +<robwen at gmail.com> asked Google and recovered the names:

+ +
+aaronl   :Aaron Lehmann
+beppu    :John Beppu
+dwhedon  :David Whedon
+erik     :Erik Andersen
+gfeldman :Gennady Feldman
+jimg     :Jim Gleason
+kraai    :Matt Kraai
+markw    :Mark Whitley
+miles    :Miles Bader
+proski   :Pavel Roskin
+rjune    :Richard June
+tausq    :Randolph Chung
+vodz     :Vladimir N. Oleynik
+
+ + +
+
+
+ + diff --git a/release/src/router/busybox/docs/busybox.net/about.html b/release/src/router/busybox/docs/busybox.net/about.html new file mode 100644 index 00000000..35809c31 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/about.html @@ -0,0 +1,24 @@ + + +

BusyBox: The Swiss Army Knife of Embedded Linux

+ +

BusyBox combines tiny versions of many common UNIX utilities into a single +small executable. It provides replacements for most of the utilities you +usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox +generally have fewer options than their full-featured GNU cousins; however, +the options that are included provide the expected functionality and behave +very much like their GNU counterparts. BusyBox provides a fairly complete +environment for any small or embedded system.

+ +

BusyBox has been written with size-optimization and limited resources in +mind. It is also extremely modular so you can easily include or exclude +commands (or features) at compile time. This makes it easy to customize +your embedded systems. To create a working system, just add some device +nodes in /dev, a few configuration files in /etc, and a Linux kernel.

+ +

BusyBox is maintained by +Denys Vlasenko, +and licensed under the GNU GENERAL PUBLIC LICENSE +version 2.

+ + diff --git a/release/src/router/busybox/docs/busybox.net/busybox-growth.ps b/release/src/router/busybox/docs/busybox.net/busybox-growth.ps old mode 100755 new mode 100644 index 123f3811..2379defa --- a/release/src/router/busybox/docs/busybox.net/busybox-growth.ps +++ b/release/src/router/busybox/docs/busybox.net/busybox-growth.ps @@ -213,7 +213,7 @@ gnudict begin /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def -/CircE { stroke [] 0 setdash +/CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M @@ -233,7 +233,7 @@ gnudict begin /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def -/CircW { stroke [] 0 setdash +/CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def end diff --git a/release/src/router/busybox/docs/busybox.net/copyright.txt b/release/src/router/busybox/docs/busybox.net/copyright.txt new file mode 100644 index 00000000..39747563 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/copyright.txt @@ -0,0 +1,30 @@ + +The code and graphics on this website (and it's mirror sites, if any) are +Copyright (c) 1999-2004 by Erik Andersen. All rights reserved. +Copyright (c) 2005-2006 Rob Landley. + +Documents on this Web site including their graphical elements, design, and +layout are protected by trade dress and other laws and MAY BE COPIED OR +IMITATED IN WHOLE OR IN PART. THIS WEBSITE IS LICENSED FREE OF CHARGE, THERE +IS NO WARRANTY FOR THE WEBSITE TO THE EXTENT PERMITTED BY APPLICABLE LAW. +SHOULD THIS WEBSITE PROVE DEFECTIVE, YOU MAY ASSUME THAT SOMEONE MIGHT GET +AROUND TO SERVICING, REPAIRING OR CORRECTING IT SOMETIME WHEN THEY HAVE NOTHING +BETTER TO DO. REGARDLESS, YOU GET TO KEEP BOTH PIECES. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THIS +WEBSITE AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THIS WEBSITE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR +LOSS OF HAIR, LOSS OF LIFE, LOSS OF MEMORY, LOSS OF YOUR CARKEYS, MISPLACEMENT +OF YOUR PAYCHECK, OR COMMANDER DATA BEING RENDERED UNABLE TO ASSIST THE +STARFLEET OFFICERS ABORD THE STARSHIP ENTERPRISE TO RECALIBRATE THE MAIN +DEFLECTOR ARRAY, LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE +WEBSITE TO OPERATE WITH YOUR WEBBROWSER), EVEN IF SUCH HOLDER OR OTHER PARTY +HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +You have been warned. + +You can contact the webmaster at if you have some sort +of problem with this. + diff --git a/release/src/router/busybox/docs/busybox.net/cvs_anon.html b/release/src/router/busybox/docs/busybox.net/cvs_anon.html deleted file mode 100755 index c1811d48..00000000 --- a/release/src/router/busybox/docs/busybox.net/cvs_anon.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - -BusyBox Anonymous CVS Instructions - - - - - - - -

Accessing the Busybox CVS Repository

- -
- - - - -
- - B u s y B o x - -
- BusyBox
- - -
- - - - -
- - Anonymous CVS - -
- -We allow anonymous (read-only) CVS access to everyone. The first command you -need to run for anonymous CVS access is: -
-cvs -d:pserver:anonymous@busybox.net:/var/cvs login
-

-CVS will prompt you for a password. Just press the Enter key (there is no -password for anonymous access). This step only needs to be done once, the first -time you attempt to access CVS. -

-Once the login is complete, you can then check the list of available -CVS modules by running the following command (all on one line): -

-cvs -z3 -d:pserver:anonymous@busybox.net:/var/cvs co -c 
- -

-If you wish, you can then check out a local copy of any of the -available modules. The following is an example of how to grab -a copy of busybox and tinylogin: -

-    cvs -z3 -d:pserver:anonymous@busybox.net:/var/cvs co -P busybox tinylogin
-This will create a directory called busybox and a directory called -tinylogin in the current directory. These directories contain the -latest and greatest source code for busybox and tinylogin. - -

-I usually create a ~/.cvsrc file with the following things in it, and I -recommend you should use the same: -

-    -z3
-    update -dP
-    rdiff -u
-    diff -ubBwpN
-    checkout -P
- -

-Once you've checked out a copy of the source tree, you can update your -source tree at any time so it is in sync with the latest and greatest by -running the command: -

-cvs update
- -Because you've only been granted anonymous access to the tree, you won't be -able to commit any changes. Changes can be submitted for inclusion by posting -them to the appropriate mailing list. - - - - -
- - - - -
- - - - - - - - - - - - - - - -
- - Mail all comments, insults, suggestions and bribes to - Erik Andersen
- The Busybox logo is copyright 1999-2002, Erik Andersen. -
-
- This site created with the vi editor - - Graphics by GIMP - - Linux Today - -

Slashdot -

- Freshmeat -
- - - - - - diff --git a/release/src/router/busybox/docs/busybox.net/cvs_write.html b/release/src/router/busybox/docs/busybox.net/cvs_write.html deleted file mode 100755 index b4033233..00000000 --- a/release/src/router/busybox/docs/busybox.net/cvs_write.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - -BusyBox CVS Read/Write Instructions - - - - - - - -

Accessing the Busybox CVS Repository

- -
- - - - -
- - B u s y B o x - -
- BusyBox
- - -
- - - - -
- - CVS Read/Write Access - -
- - -If you want to be able to commit things to CVS, first contribute some -stuff to show you are serious. Then, very nicely ask -Erik Andersen if he will set you up with -an account. To access CVS, you will want to add the following to set up your environment: -
-$ export CVS_RSH=/usr/bin/ssh
-$ export CVSROOT='username@cvs.busybox.net:/var/cvs'
-
-It goes without saying you must change username to your own -username... -

- -To obtain commit access, you will need to demonstrate you are -serious by submitting a few good patches first. Then, you will need to -select a user-name to use when committing stuff, and finally, you will -need to send me the username you have selected, an ssh key, and the email -address where you prefer email to be sent (I will forward any email sent -to you, but not store it). - -

-Note that if you would prefer to keep your communications with me -private, you can encrypt your email using my -public key. - - - - -

- - - - -
- - - - - - - - - - - - - - - -
- - Mail all comments, insults, suggestions and bribes to - Erik Andersen
- The Busybox logo is copyright 1999-2002, Erik Andersen. -
-
- This site created with the vi editor - - Graphics by GIMP - - Linux Today - -

Slashdot -

- Freshmeat -
- - - - - - - diff --git a/release/src/router/busybox/docs/busybox.net/developer.html b/release/src/router/busybox/docs/busybox.net/developer.html new file mode 100644 index 00000000..cdb68b78 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/developer.html @@ -0,0 +1,69 @@ + + +

Morris Dancing

+ +

Subversion commit access requires an account on Morris. The server +behind busybox.net and uclibc.org. If you want to be able to commit things to +Subversion, first contribute some stuff to show you are serious, can handle +some responsibility, and that your patches don't generally need a lot of +cleanup. Then, very nicely ask one of us (Rob +Landley for BusyBox, or Erik +Andersen for uClibc) for an account.

+ +

If you're approved for an account, you'll need to send an email from your +preferred contact email address with the username you'd like to use when +committing changes to SVN, and attach a public ssh key to access your account +with.

+ +

If you don't currently have an ssh version 2 DSA key at least 1024 bits +long (the default), you can generate a key using the +command ssh-keygen -t dsa and hitting enter at the prompts. This +will create the files ~/.ssh/id_dsa and ~/.ssh/id_dsa.pub +You must then send the content of 'id_dsa.pub' to me so I can set up your +account. (The content of 'id_dsa' should of course be kept secret, anyone +who has that can access any account that's installed your public key in +its .ssh/authorized_keys file.)

+ +

Note that if you would prefer to keep your communications with us +private, you can encrypt your email using +Rob's public key or +Erik's public +key.

+ +

Once you are setup with an account, you will need to use your account to +checkout a copy of BusyBox from Subversion:

+ +

svn checkout svn+ssh://username@busybox.net/svn/trunk/busybox

+

or

+

svn checkout svn+ssh://username@uclibc.org/svn/trunk/uclibc

+ +

You must change username to your own username, or omit +it if it's the same as your local username.

+ +

You can then enter the newly checked out project directory, make changes, +check your changes, diff your changes, revert your changes, and and commit your +changes using commands such as:

+ +
+svn diff
+svn status
+svn revert
+EDITOR=vi svn commit
+svn log -v -r PREV:HEAD
+svn help
+
+ +

For additional detail on how to use Subversion, please visit the +the Subversion website. +You might also want to read online or buy a copy of the Subversion Book...

+ +

A morris account also gives you a personal web page +(http://busybox.net/~username comes from ~/public_html on morris), and of +course a shell prompt you can ssh into (as a regular user, root access is +reserved for Erik and Rob). But keep in mind an account on Morris is a +priviledge, not a requirement. Most contributors to busybox and uClibc +haven't got one, and accounts are handed out to make the project maintainers' +lives easier, not because "you deserve it".

+ + diff --git a/release/src/router/busybox/docs/busybox.net/download.html b/release/src/router/busybox/docs/busybox.net/download.html new file mode 100644 index 00000000..34195b6f --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/download.html @@ -0,0 +1,60 @@ + + + + +

Download

+ +

+Source for the latest release can always be +downloaded from http://www.busybox.net/downloads/. + +

+Each 1.x branch has bug fix releases after initial 1.x.0 release. +Also there are patches on top of latest bug fix release. +

+Latest releases and patch directories for each branch: +
+1.10.1, +patches, +
+1.9.2, +patches, +
+1.8.3, +patches, +
+1.7.5, +patches, +
+1.6.2, +patches, +
+1.5.2, +patches, +
+1.4.2, +patches, +
+1.3.2, +patches. + +

+You can also obtain Daily Snapshots of +the latest development source tree for those wishing to follow BusyBox development, +but cannot or do not wish to use Subversion (svn). + +

+ + + diff --git a/release/src/router/busybox/docs/busybox.net/fix.html b/release/src/router/busybox/docs/busybox.net/fix.html new file mode 100644 index 00000000..7bd7fe0f --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/fix.html @@ -0,0 +1,15 @@ + + +

How to get your patch added to "hot fixes"

+ +

If you found a regression or severe bug in busybox, and you have a patch + for it, and you want to see it added to "hot fixes", please rediff your + patch against corresponding unmodified busybox source and send it to + the mailing list. +

+ +
+
+
+ + diff --git a/release/src/router/busybox/docs/busybox.net/footer.html b/release/src/router/busybox/docs/busybox.net/footer.html new file mode 100644 index 00000000..06670923 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/footer.html @@ -0,0 +1,51 @@ + + + + + + + +
+ + + + + + + + + + + +
+ + + Copyright © 1999-2008 Erik Andersen +
+ Mail all comments, insults, suggestions and bribes to +
+ Denys Vlasenko vda.linux@googlemail.com
+
+ +
+ This site created with the vi editor + + This site is kindly hosted by OSL +
+ + + + diff --git a/release/src/router/busybox/docs/busybox.net/header.html b/release/src/router/busybox/docs/busybox.net/header.html new file mode 100644 index 00000000..9641d8c1 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/header.html @@ -0,0 +1,91 @@ + + + + + + BusyBox + + + + + + + + + + + + + + + +
+
+ + + + +
BUSYBOX
+
+ + BusyBox
+
+ About + + Documentation + + Get BusyBox + + Development + +

Links +

+

Developer Pages +

+
+ diff --git a/release/src/router/busybox/docs/busybox.net/images/back.png b/release/src/router/busybox/docs/busybox.net/images/back.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/busybox.jpeg b/release/src/router/busybox/docs/busybox.net/images/busybox.jpeg old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/busybox.png b/release/src/router/busybox/docs/busybox.net/images/busybox.png old mode 100755 new mode 100644 index 5c4e82a8..b1eb92f3 Binary files a/release/src/router/busybox/docs/busybox.net/images/busybox.png and b/release/src/router/busybox/docs/busybox.net/images/busybox.png differ diff --git a/release/src/router/busybox/docs/busybox.net/images/busybox1.png b/release/src/router/busybox/docs/busybox.net/images/busybox1.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/busybox2.jpg b/release/src/router/busybox/docs/busybox.net/images/busybox2.jpg old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/busybox2.png b/release/src/router/busybox/docs/busybox.net/images/busybox2.png new file mode 100644 index 00000000..a7460b67 Binary files /dev/null and b/release/src/router/busybox/docs/busybox.net/images/busybox2.png differ diff --git a/release/src/router/busybox/docs/busybox.net/images/busybox3.jpg b/release/src/router/busybox/docs/busybox.net/images/busybox3.jpg old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/dir.png b/release/src/router/busybox/docs/busybox.net/images/dir.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/donate.png b/release/src/router/busybox/docs/busybox.net/images/donate.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/fm.mini.png b/release/src/router/busybox/docs/busybox.net/images/fm.mini.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/gfx_by_gimp.png b/release/src/router/busybox/docs/busybox.net/images/gfx_by_gimp.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/ltbutton2.png b/release/src/router/busybox/docs/busybox.net/images/ltbutton2.png old mode 100755 new mode 100644 index 556f72a6..9bad9496 Binary files a/release/src/router/busybox/docs/busybox.net/images/ltbutton2.png and b/release/src/router/busybox/docs/busybox.net/images/ltbutton2.png differ diff --git a/release/src/router/busybox/docs/busybox.net/images/osuosl.png b/release/src/router/busybox/docs/busybox.net/images/osuosl.png new file mode 100644 index 00000000..b00b5007 Binary files /dev/null and b/release/src/router/busybox/docs/busybox.net/images/osuosl.png differ diff --git a/release/src/router/busybox/docs/busybox.net/images/sdsmall.png b/release/src/router/busybox/docs/busybox.net/images/sdsmall.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/text.png b/release/src/router/busybox/docs/busybox.net/images/text.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/images/valid-html401.png b/release/src/router/busybox/docs/busybox.net/images/valid-html401.png new file mode 100644 index 00000000..ec9bc0ce Binary files /dev/null and b/release/src/router/busybox/docs/busybox.net/images/valid-html401.png differ diff --git a/release/src/router/busybox/docs/busybox.net/images/vh40.gif b/release/src/router/busybox/docs/busybox.net/images/vh40.gif new file mode 100644 index 00000000..c5e9402e Binary files /dev/null and b/release/src/router/busybox/docs/busybox.net/images/vh40.gif differ diff --git a/release/src/router/busybox/docs/busybox.net/images/written.in.vi.png b/release/src/router/busybox/docs/busybox.net/images/written.in.vi.png old mode 100755 new mode 100644 diff --git a/release/src/router/busybox/docs/busybox.net/index.html b/release/src/router/busybox/docs/busybox.net/index.html old mode 100755 new mode 100644 index 552d88bf..1bab6b06 --- a/release/src/router/busybox/docs/busybox.net/index.html +++ b/release/src/router/busybox/docs/busybox.net/index.html @@ -1,490 +1 @@ - - - - - - - BusyBox - - - - - - -
- - - - -
BUSYBOX
- BusyBox
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- The Swiss Army Knife of Embedded Linux -
- BusyBox combines tiny versions of many common UNIX utilities - into a single small executable. It provides minimalist - replacements for most of the utilities you usually find in GNU - fileutils, shellutils, etc. The utilities in BusyBox generally - have fewer options than their full-featured GNU cousins; - however, the options that are included provide the expected - functionality and behave very much like their GNU counterparts. - BusyBox provides a fairly complete POSIX environment for any - small or embedded system. - -

BusyBox has been written with size-optimization and - limited resources in mind. It is also extremely modular - so you can easily include or exclude commands (or - features) at compile time. This makes it easy to - customize your embedded systems. To create a working - system, just add /dev, /etc, and a kernel.

- -

BusyBox is maintained by Erik - Andersen, and licensed under the GNU GENERAL - PUBLIC LICENSE.

- -

Screenshot

- -

Because everybody loves screenshots, a screenshot of - BusyBox is now available right here.

- -

Mailing List Information

- BusyBox has a mailing list.
- To subscribe, go and visit this page. -
- Before asking questions on the mailing list - you should probably first search the mailing list archives... -
- - - Google  ... -
- - - - -
Latest News
-
    - -

    -

  • 30 July 2003 -- BusyBox 1.0.0-pre2 released

    - - Here goes another pre release for the new BusyBox stable - series. The last prerelease (pre1) was given quite a lot of - testing (thanks everyone!) which has helped turn up a number of - bugs, and these problems have now been fixed. - -

    - - Highlights of -pre2 include updating the 'ash' shell to sync up - with the Debian 'dash' shell, a new 'hdparm' applet was added, - init again supports pivot_root, The 'reboot' 'halt' and - 'poweroff' applets can now be used without using busybox init. - an ifconfig buffer overflow was fixed, losetup now allows - read-write loop devices, uClinux daemon support was added, the - 'watchdog', 'fdisk', and 'kill' applets were rewritten, there were - tons of doc updates, and there were many other bugs fixed. -

    - - If you have submitted a patch and it is not included in this - release and Erik has not emailed you explaining why your patch - was rejected, it is safe to say that he has lost your patch. - That happens sometimes. Please re-submit your patch to the - BusyBox mailing list. -

    - - The point of the "-preX" versions is to get a larger group of - people and vendors testing, so any problems that turn up can be - fixed prior to the final 1.0.0 release. The main feature that - is still still on the TODO list before the final BusyBox 1.0.0 - release is adding module support for the new 2.6.x kernels. If - necessary, a -pre3 BusyBox release will happen on August 6th. - Hopefully (i.e. unless some horrible catastrophic problem - turns up) the final BusyBox 1.0.0 release will be ready by - then... -

    - - As usual you can download busybox here. - You don't really need to bother with the - changelog, as the changes - vs the stable version are way too extensive to easily enumerate. - But you can take a look if you really want too. - -

    Have Fun! -

    - - - -

    -

  • Old News
    - For the old news, visit the - old news page.
  • -
-
Sponsors
- Please visit our sponsors and thank them for their - support! They have provided money for equipment and - bandwidth. Next time you need help with a project, - consider these fine companies! - - -
    -
  • Penguru Consulting
    - Custom development for embedded Linux systems and multimedia platforms -
  • - -
  • opensource.se
    - Embedded open source consulting in Europe. -
  • - -
  • Codepoet Consulting
    - Custom Linux, embedded Linux, BusyBox, and uClibc - development. -
  • - -
- Several individuals have also contributed. If you have - already contributed and would like your name added - here, just let me know. If you would like to be a - BusyBox sponsor, email Erik. -
Download
- Source for the latest release can always be - downloaded from http://www.busybox.net/downloads. -

- - BusyBox now has two CVS trees. The "busybox-stable" tree - contains the older 0.60.x stable series. The "busybox" tree contains - the latest 1.0.0-preX development version of busybox.
- -

-
Documentation
- Current documentation for BusyBox includes: - -
    -
  • BusyBox.html. This is a - list of the all the available commands in BusyBox - with complete usage information and examples of how - to use each app. I have spent a lot of time - updating these docs and trying to make them fairly - comprehensive. If you find any errors (factual, - grammatical, whatever) please let me know.
  • - -
  • README. This is - the README file included in the busybox source - release.
  • - -
  • If you need more help, the BusyBox mailing list is a good place to - start.
  • -
-
Important Links
-
    -
  • Free - Software from Bruce Perens
    - The original idea for BusyBox, and all versions up - to 0.26 were written by Bruce Perens. This is - his BusyBox website.
  • - -
  • Freshmeat - AppIndex record for BusyBox
  • - -
  • TinyLogin is a - nice embedded tool for handling authentication, - changing passwords, and similar tasks which nicely - complements BusyBox.
  • - -
  • udhcp is - a tiny dhcp client and/or server which is ideal for - embedded systems.
  • - -
  • uClibc is a - C library for embedded systems. You can actually - statically link a "Hello World" application under x86 - that only takes 4k (as opposed to 200k under GNU - libc). It can do dynamic linking too and works nicely - with BusyBox to create very small embedded Linux systems. -
  • -
-
Products/Projects Using BusyBox
-

I know of the following products and/or projects - that use BusyBox -- listed in the order I happen to add - them to the web page:

- - - -

Do you use BusyBox? I'd love to know about it and - I'd be happy to link to you. -

-
- - -
- - - - - - - - - - - - - - -
Mail all comments, insults, suggestions - and bribes to Erik - Andersen
- The Busybox logo is copyright 1999-2002, Erik - Andersen.
--Linux Today - -

Slashdot -

-
Freshmeat -
-
- - - + diff --git a/release/src/router/busybox/docs/busybox.net/license.html b/release/src/router/busybox/docs/busybox.net/license.html new file mode 100644 index 00000000..2a4c51d1 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/license.html @@ -0,0 +1,99 @@ + + +

+

BusyBox is licensed under the GNU General Public License, version 2

+ +

BusyBox is licensed under the +GNU General Public License version 2, which is often abbreviated as GPLv2. +(This is the same license the Linux kernel is under, so you may be somewhat +familiar with it by now.)

+ +

A complete copy of the license text is included in the file LICENSE in +the BusyBox source code.

+ +

Anyone thinking of shipping BusyBox as part of a +product should be familiar with the licensing terms under which they are +allowed to use and distribute BusyBox. Read the full test of the GPL (either +through the above link, or in the file LICENSE in the busybox tarball), and +also read the Frequently +Asked Questions about the GPL.

+ +

Basically, if you distribute GPL software the license requires that you also +distribute the source code to that GPL-licensed software. So if you distribute +BusyBox without making the source code to the version you distribute available, +you violate the license terms, and thus infringe on the copyrights of BusyBox. +(This requirement applies whether or not you modified BusyBox; either way the +license terms still apply to you.) Read the license text for the details.

+ +

A note on GPL versions

+ +

Version 2 of the GPL is the only version of the GPL which current versions +of BusyBox may be distributed under. New code added to the tree is licensed +GPL version 2, and the project's license is GPL version 2.

+ +

Older versions of BusyBox (versions 1.2.2 and earlier, up through about svn +16112) included variants of the recommended +"GPL version 2 or (at your option) later versions" boilerplate +permission grant. Ancient versions of BusyBox +(before svn 49) did not specify any version at all, and section 9 of GPLv2 +(the most recent version at that time) says those old versions may be +redistributed under any version of GPL (including the obsolete V1). This was +conceptually similar to a dual license, except that the different licenses were +different versions of the GPL.

+ +

However, BusyBox has apparently always contained chunks of code that were +licensed under GPL version 2 only. Examples include applets written by Linus +Torvalds (util-linux/mkfs_minix.c and util_linux/mkswap.c) which stated they +"may be redistributed as per the Linux copyright" (which Linus +clarified in the +2.4.0-pre8 release announcement in 2000 was GPLv2 only), and Linux kernel code +copied into libbb/loop.c (after Linus's announcement). There are probably +more, because all we used to check was that the code was GPL, not which +version. (Before the GPLv3 draft proceedings in 2006, it was a purely +theoretical issue that didn't come up much.)

+ +

To summarize: every version of BusyBox may be distributed under the terms of +GPL version 2. New versions (after 1.2.2) may only be distributed under +GPLv2, not under other versions of the GPL. Older versions of BusyBox might +(or might not) be distributable under other versions of the GPL. If you +want to use a GPL version other than 2, you should start with one of the old +versions such as release 1.2.2 or SVN 16112, and do your own homework to +identify and remove any code that can't be licensed under the GPL version you +want to use. New development is all GPLv2.

+ +

License enforcement

+ +

BusyBox's copyrights are enforced by the Software Freedom Law Center +(you can contact them at gpl@busybox.net), which +"accepts primary responsibility for enforcement of US copyrights on the +software... and coordinates international copyright enforcement efforts for +such works as necessary." If you distribute BusyBox in a way that doesn't +comply with the terms of the license BusyBox is distributed under, expect to +hear from these guys. Their entire reason for existing is to do pro-bono +legal work for free/open source software projects. (We used to list people who +violate the BusyBox license in The Hall of Shame, +but these days we find it much more effective to hand them over to the +lawyers.)

+ +

Our enforcement efforts are aimed at bringing people into compliance with +the BusyBox license. Open source software is under a different license from +proprietary software, but if you violate that license you're still a software +pirate and the law gives the vendor (us) some big sticks to play with. We +don't want monetary awards, injunctions, or to generate bad PR for a company, +unless that's the only way to get somebody that repeatedly ignores us to comply +with the license on our code.

+ +

A Good Example

+ +

These days, Linksys is +doing a good job at complying with the GPL, they get to be an +example of how to do things right. Please take a moment and +check out what they do with + +distributing the firmware for their WRT54G Router. +Following their example would be a fine way to ensure that you +have also fulfilled your licensing obligations.

+ + + diff --git a/release/src/router/busybox/docs/busybox.net/links.html b/release/src/router/busybox/docs/busybox.net/links.html new file mode 100644 index 00000000..14ad8d12 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/links.html @@ -0,0 +1,19 @@ + + +

Related Sites

+ +
uClibc.org +
uClibc++ + +
buildroot +
Scratchbox +
OpenEmbedded +
uCdot +
LinuxDevices +
Slashdot +
Freshmeat +
Linux Today +
Linux Weekly News +
Linux HOWTOs + + diff --git a/release/src/router/busybox/docs/busybox.net/lists.html b/release/src/router/busybox/docs/busybox.net/lists.html new file mode 100644 index 00000000..29c2f747 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/lists.html @@ -0,0 +1,46 @@ + + + + + +

Mailing List Information

+BusyBox has a mailing list for discussion and +development. You can subscribe by visiting +this page. +Only subscribers to the BusyBox mailing list are allowed to post +to this list. + +

+There is also a mailing list for active developers +wishing to read the complete diff of each and every change to busybox -- not for the +faint of heart. Active developers can subscribe by visiting +this page. +The Subversion server is the only one permtted to post to this list. And yes, +this list name uses the word 'cvs' even though we don't use that anymore... + +

+ + +

Search the List Archives

+Please search the mailing list archives before asking questions on the mailing +list, since there is a good chance someone else has asked the same question +before. Checking the archives is a great way to avoid annoying everyone on the +list with frequently asked questions... +

+ +

+
+ + + +
+ +
+Google +
+
+
+ + + + diff --git a/release/src/router/busybox/docs/busybox.net/news.html b/release/src/router/busybox/docs/busybox.net/news.html new file mode 100644 index 00000000..e0a8138b --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/news.html @@ -0,0 +1,504 @@ + + +
    + +
  • +

    We want to thank the following companies which are providing support for the BusyBox project: +

    +

    +
  • + +
  • 15 April 2009 -- BusyBox 1.14.0 (unstable), BusyBox 1.13.4 (stable) +

    BusyBox 1.14.0. + (svn, + patches, + how to add a patch)

    +

    BusyBox 1.13.4. + (svn, + patches, + how to add a patch)

    + +

    Sizes of busybox-1.13.4 and busybox-1.14.0 (with equivalent config, static uclibc build):

    +   text    data     bss     dec     hex filename
    + 785501     483    7036  793020   c19bc busybox.1.13.4/busybox
    + 788380     467    6960  795807   c249f busybox.1.14.0/busybox
    +  15361       0       0   15361    3c01 busybox.1.13.4/shell/hush.o
    +  20724       0       0   20724    50f4 busybox.1.14.0/shell/hush.o
    +
    +

    Most of growth is in hush. The rest shrank a bit. + +

    New applets: +

      +
    • flash_eraseall: by Sebastian Andrzej Siewior (bigeasy AT linutronix.de)
    • +
    • acpid, mkdosfs, tunctl: by Vladimir
    • +
    • ftpd: by Adam Tkac (vonsch AT gmail.com)
    • +
    • timeout: by Roberto Foglietta
    • +
    • ionice: adapted from Linux kernel example by Walter Harms
    • +
    • mkpasswd: synonym to cryptpw. mkpasswd is in Debian, OTOH cryptpw was added to busybox earlier. Trying to make both camps happy by making those two applets just aliases. They are command-line compatible
    • +
    + +

    Changes since previous release: + +

    lash and msh are deprecated, please migrate to hush. + +

    hush had many, many fixes and features added: here documents, arithmetic evaluation, function support, and all this works on NOMMU too, safely, including 100kb-sized `command` and here documents. Here document support, arithmetic evaluation, improved ${var} operations, other fixes are by Mike Frysinger (vapier AT gentoo.org). + +

    Other changes: +

      +
    • libbb: unify concurrent-safe update of /etc/{passwd,group,[g]shadow}. By Tito (farmatito AT tiscali.it)
    • +
    • libbb/sha{1,256,512}: major code shrink
    • +
    • libbb/lineedit: make history saving/loading concurrent-safe
    • +
    • libbb: shrink linked list ops. By xmaks AT email.cz
    • +
    • libbb: str2sockaddr should accept [IPv6] addr without port - wget 'ftp://[::1]/file' needs that to work
    • +
    • libbb: make bb_info_msg do atomic, unbuffered writes
    • +
    • util-linux/volumeid: abort early on read failures. Should help with probing missing fdd's
    • +
    • util-linux/volumeid: fix bug 249 "findfs finds the wrong partition"
    • +
    • adduser: allow adding to group 0; don't _create_ /etc/shadow, only append data if it exists
    • +
    • ash: fix mishandled ^C and SIGINT (several cases)
    • +
    • ash: fix "ash -c 'exec 1>&0'" complaining that fd 0 is busy
    • +
    • ash: fix $IFS handling in read. Closes bug 235
    • +
    • ash: fix a case where we were closing wrong descriptor
    • +
    • ash: fix bad interaction between ash -c '....&' and bash compat
    • +
    • ash: fix miscalculation of memory needed for eval tree. Found by Timo Teras (timo.teras AT iki.fi)
    • +
    • ash: make dot command search current directory first, as bash does
    • +
    • ash: printf builtin with no arguments should not exit
    • +
    • awk: fix long field separators case. By Ian Wienand (ianw AT vmware.com)
    • +
    • awk: in BEGIN section $0 should be "", not "0"
    • +
    • awk: make "struct global" hack more robust wrt alignment. Closes bug 131
    • +
    • brctl: fix compilation on 2.4.x kernels
    • +
    • chat: treat timeout more correctly
    • +
    • chat: recognize RECORD directive
    • +
    • cksum, head, printenv: report errors via exitcode
    • +
    • cpio: add -p, -0 and -L options
    • +
    • crond, crontab: make cron directory location configurable
    • +
    • crond: correct more of logfile to 0666 (as usual, umask allows user to remove unwanted bits)
    • +
    • crond: put tasks in separate process groups
    • +
    • dc: fix the "base 2" patch omission of base not being set
    • +
    • depmod: accept and ignore -r. Linux kernel build needs this
    • +
    • depmod: fix -b option. By timo.teras AT iki.fi
    • +
    • udhcpc: fix a problem where we don't open listening socket fast enough
    • +
    • udhcpc: stop filtering environment passed to the script
    • +
    • udhcpd: disable option to have absolute lease times in lease file (that does not work with dumpleases)
    • +
    • udhcpd: write 64-bit current time in lease file. Without it, determination of remaining lease time is unreliable
    • +
    • udhcpd: remember hostnames of clients
    • +
    • dumpleases: fix -a option, use recorded current time in lease file, show hostnames
    • +
    • dnsd: fix a number of bugs. Ideas by Ming-Ching Tiew (mctiew AT yahoo.com)
    • +
    • dpkg: better and shorter code to compare versions. Taken from "official" dpkg by Eugene T. Bordenkircher (eugebo AT gmail.com)
    • +
    • du: fix "du /dir /dir" case
    • +
    • env: support -uVAR=VAL
    • +
    • expand, unexpand: fix incorrect expansion in some cases
    • +
    • expr: a bit more robust handling of regexps with groups. Closes bug 87
    • +
    • find: support --mindepth
    • +
    • getty: make speed 0 mean "don't change speed", stop using non-portable way of setting speeds
    • +
    • grep: support -z
    • +
    • gzip: fix gzip -dc bug caused by using stale getopt state
    • +
    • httpd: set $HOST to Host: header value. By Tobias Poschwatta (tp AT fonz.de)
    • +
    • ifupdown: allow options to udhcpc to be configurable from .config
    • +
    • init: do not eat last char in messages; do not print duplicate "init:" prefix to syslog
    • +
    • init: fix a bug where on reload order of entries might be wrong
    • +
    • init: major improvement in documentation and signal handling. Lots of nasty, but hard to trip, races are fixed
    • +
    • init: reinstate proper handling of !ENABLE_FEATURE_USE_INITTAB
    • +
    • init: remove wait loop on restart, it may be dangerous
    • +
    • init: test for vt terminal with VT_OPENQRY, assume that anything else is TERM=vt102, not TERM=linux. Closes bug 195
    • +
    • inotifyd: add x, o, and u events
    • +
    • inotifyd: fix buffer overflow and "unreaped zombies" problem
    • +
    • inotifyd: conserve resourses by closing unused inotify descriptors
    • +
    • insmod/modprobe: do not pass NULL to kernel as module parameter
    • +
    • ip: in "ip rule add from all table 1", "all" is taken as 0.0.0.0/32, whereas "any" and "default" would be 0.0.0.0/0. They must be all 0.0.0.0/0. Closes bug 57
    • +
    • iproute: fix ipXXX utilities trying to parse their applet name as their 1st parameter
    • +
    • klogctl: fix a problem where we don't terminate read data with '\0' and then misinterpret it
    • +
    • ls: do not follow links with -s. Closes bug 33
    • +
    • ls: implement -Q and -g (-g was accepted but ignored)
    • +
    • ls: make readlink error to not disrupt output (try ls -l /proc/self/fd)
    • +
    • man: better check for duplicated MANPATH
    • +
    • mdev: add support for - ("dont stop here") char
    • +
    • mdev: if /sys/class/block exists, don't scan /sys/block
    • +
    • mdev: ignore events with "$SUBSYSTEM" == "firmware" && "$ACTION" == "remove"
    • +
    • mdev: provide $SUBSYSTEM. By Vladimir
    • +
    • modprobe/insmod for 2.4: support compressed modules. By Guenter (lists AT gknw.net)
    • +
    • modprobe: rework/speedup by Timo Teras (timo.teras AT iki.fi)
    • +
    • modutils-24: fix bad interaction of xzalloc with xrealloc_vector
    • +
    • mount: support "-O option", stop trying to mount swap partitions, fix CIFS support
    • +
    • mountpoint: add -n option. By Vladimir
    • +
    • nslookup: allow usage of IPv6 addresses or hostnames for DNS server name; allow for port specification. Tested to work on uclibc svn: "nslookup google.com [::1]:5353". glibc + IPv6 address of DNS server still does not work
    • +
    • popmaildir: fix several grave bugs with using memory past end of malloc block
    • +
    • printf: fix 1.12.0 breakage (from %*d fix), it was misinterpreting "*"
    • +
    • printf: make integer format strings print long long-sized values
    • +
    • rmmod: fix bug 263 "modutils/rmmod can't remove modules with dash in name on 2.4 kernels"
    • +
    • sendmail: document and fix usage of fd #4, fix check for helper failure
    • +
    • sendmail: update by Vladimir
    • +
    • seq: add -w support. By Natanael Copa
    • +
    • seq: add support for "-s separator"
    • +
    • stat: make stat -f show filesystem "ID:" as coreutils does
    • +
    • sysctl: fix another corner case with "dots and slashes"
    • +
    • sysctl: fix broken -p [file]. Closes bug 231
    • +
    • sysctl: support recursing if name is a directory: "sysctl net.ipv4.conf". Patch by xmaks AT email.cz
    • +
    • syslogd: make signal handling syncronous
    • +
    • syslogd: create logfile with 0666 (affected by umask as usual), not 0600
    • +
    • tail: fix tail +N syntax not working. Closes bug 221
    • +
    • tar: do not change new tarfile's mode, GNU tar doesn't do it
    • +
    • tar: support GNU tar's "base256" encoding
    • +
    • telnetd: correctly output 0xff char
    • +
    • telnetd: do not advertise TELNET_LFLOW, we do not support it properly
    • +
    • tftp: when we infer local name from remote (-r [/]path/path/file), strip path. This mimics wget and is generally more intuitive
    • +
    • timeout: fix parsing of -t NUM on MMU
    • +
    • top: make it work again on 2.4 kernels. Closes bug 125
    • +
    • tr: fix overflow in expand and complement, fix stop after [:class:], fix handling of ranges and [x]'s
    • +
    • tr: support -C as synonym to -c, support [:xdigit:]
    • +
    • traceroute: rewrite. Do not emit raw IP packets, instead send UDP or ICMP packets and rely on the kernel to form IP headers, select source IP and interface
    • +
    • uname: add support for -i and -o, fix printing of unknown -p value with -a option, support long options
    • +
    • unzip: fix thinko with le/be conv and size. Closes bug 129
    • +
    • vi: fix several instances of major goof: when text grows, text[] might get reallocated! We were keeping around pointers to old place
    • +
    • vi: speedup and code shrink. By Walter Harms
    • +
    • wget: --post-data support. By Harald Kuthe (harald-tuxbox AT arcor.de)
    • +
    • wget: fix --header handling, more robust EINTR detection
    • +
    +

    + +
  • 8 March 2009 -- BusyBox 1.13.3 (stable) +

    BusyBox 1.13.3. + (svn, + patches, + how to add a patch)

    + +

    1.13.3 is a bug fix release. It has fixes for awk, depmod, init, killall, mdev, + modprobe, printf, syslogd, tar, top, unzip, wget. +

    +
  • + +
  • 31 December 2008 -- BusyBox 1.13.2 (stable), BusyBox 1.12.4 (stable) +

    BusyBox 1.13.2. + (svn, + patches, + how to add a patch)

    +

    BusyBox 1.12.4. + (svn, + patches, + how to add a patch)

    + +

    Bug fix releases. 1.13.2 has fixes for crond, dc, init, ip, printf. + 1.12.4 has fixes for ip and printf. +

    +
  • + +
  • 29 November 2008 -- BusyBox 1.13.1 (stable), BusyBox 1.12.3 (stable) +

    BusyBox 1.13.1. + (svn, + patches, + how to add a patch)

    +

    BusyBox 1.12.3. + (svn, + patches, + how to add a patch)

    + +

    Bug fix releases. 1.13.1 has fixes for ash, option parsing, id, init, + inotifyd, klogd, line editing and modprobe. 1.12.3 has fixes + for option parsing and line editing. +

    +
  • + +
  • 10 November 2008 -- BusyBox 1.13.0 (unstable), BusyBox 1.12.2 (stable) +

    BusyBox 1.13.0. + (svn, + patches, + how to add a patch)

    +

    BusyBox 1.12.2. + (svn, + patches, + how to add a patch)

    + +

    Sizes of busybox-1.12.2 and busybox-1.13.0 (with equivalent config, static uclibc build):

    +   text    data     bss     dec     hex filename
    + 778291     551    7856  786698   c010a busybox-1.12.2/busybox
    + 778981     551    7852  787384   c03b8 busybox-1.13.0/busybox
    +
    + +

    New applets: blkid, devmem + +

    Changes since previous release: +

      +
    • mail applets: total overhaul. Vladimir as usual
    • +
    • ash: fix "while kill -0 $child; do true; done" looping forever
    • +
    • ash: fix NOEXEC mode - we were forgetting to pass environment
    • +
    • ash: fix a bug in standalone mode (corrupted getopt state)
    • +
    • ash: optionally support ">&file" and "&>file" redirections
    • +
    • awk: bitwise ops cast oprands and results to unsigned long, not signed. closes bug 4774
    • +
    • awk: fix typo in atan2 code. closes bug 5594
    • +
    • awk: improve handling of negative numbers in bitwise ops; fix handling of octal costants
    • +
    • awk: support hex constants
    • +
    • basename: fix error code (again)
    • +
    • cpio: emit TRAILER even when hard links were found. By Pascal Bellard (pascal.bellard AT ads-lu.com)
    • +
    • crontab: do not destroy STDIN_FILENO, editor may need it (crontab -e)
    • +
    • dc: support for bases 2 and 8, by Nate Case (ncase AT xes-inc.com)
    • +
    • dhcpc: treat "discover...select...discover..." loop the same way as "discover...discover...discover..."
    • +
    • dpkg: add dpkg -l PACKAGE_PATTERN. By Peter Korsgaard
    • +
    • fbset: fix mode matching code: original code may trigger false positive.
    • +
    • findfs: fix LUKS and FAT detection routines; do not exit if corrupted FAT fs makes us try to seek past the end
    • +
    • grep: fix 'echo aaa | grep -o a' + ENABLE_EXTRA_COMPAT case. By Natanael Copa
    • +
    • grep: fix EXTRA_COMPAT grep to honor -E and -i
    • +
    • gunzip: restore mtime
    • +
    • halt: reinstate -w even if !FEATURE_WTMP
    • +
    • hexdump: fix SEGV in hexdump -e ""
    • +
    • httpd: pass "Accept:" and "Accept-Language:" header to CGI scripts (Alina Friedrichsen)
    • +
    • hush: fix environment and memory leaks
    • +
    • hush: fix trashing of environment by local env vars: a=a; a=b cmd; - a was unset
    • +
    • id: improve compatibility with coreutils. By Tito Ragusa
    • +
    • inetd: fix a case when we have zero services
    • +
    • inetd: use config parser. by Vladimir
    • +
    • init: set stderr to NONBLOCK
    • +
    • insmod: fix detection of open failure
    • +
    • install: support -D
    • +
    • ip: fix ip route rejecting dotted quads as prefix
    • +
    • ip: route metric support (Natanael Copa)
    • +
    • iplink: accept shorthands for "address" keyword: "ip link set address 00:11:22:33:44:55"
    • +
    • kbd_mode: support -C TTY
    • +
    • kill[all[5]]: accept -s SIG too. By Steve Bennett (steveb AT workware.net.au)
    • +
    • klogd: handle many lines at once. By Steve Bennett (steveb AT workware.net.au)
    • +
    • less: support -I to be able to search case-insensitively
    • +
    • less: add optional line number toggle and resizing on window resize
    • +
    • libbb: do not reject floating point strings like ".15"
    • +
    • lineedit: fix bug 5824 "since rev 23530 fdisk and ed don't work any more"
    • +
    • lineedit: fix problems with empty commands in history
    • +
    • login: fix /etc/nologin handling
    • +
    • man: fix inconsistencies in handling $MANPATH
    • +
    • mdev: support match by major,minor. See bug 4714
    • +
    • modprobe-small: make insmod command line compatible
    • +
    • modprobe-small: support "blacklist" keyword in /etc/modules/MODULE_NAME
    • +
    • modprobe: fix a segfault when modprobe is called with no arguments at all
    • +
    • modutils/*: rewrite by Timo Teras (timo.teras AT iki.fi)
    • +
    • mount: fix "-o parm1 -o parm2" not accumulating
    • +
    • nmeter: 4k buffers are too small for /proc files, make them dynamically sized with 16k upper limit
    • +
    • ping: SO_RCVBUF must be bigger than packet size, otherwise large ping packets might fail to be received
    • +
    • route: fix for 64-bit BE machines by Seonghun Lim (wariua AT gmail.com)
    • +
    • rpm: fix incompatibilities which prevented rpm -i foo.src.rpm
    • +
    • runsvdir: support runsvdir-as-init
    • +
    • setarch: do not try to use non-existent data in argv[]
    • +
    • setfont: support -m and -C, support -m TEXTUAL_MAP (by Vladimir)
    • +
    • setup_environment: cd $HOME regardless of clear_env value
    • +
    • slattach: preserve speed in non-raw mode. By Matthieu Castet (matthieu.castet AT parrot.com)
    • +
    • start_stop_daemon: accept (and ignore) -R PARAM
    • +
    • sv: make default service dir configurable (Vladimir wants it)
    • +
    • sysctl: fix bug 3894 (by Kryzhanovskyy Maksym)
    • +
    • tar: fix bug 3844: non-root tar does not preserve perms
    • +
    • telnetd: handle emacs M-DEL and IAC-NOP. by Jim Cathey (jcathey AT ciena.com)
    • +
    • top: fix "top -d 1" (bug 5144)
    • +
    • top: optional SMP support by Vineet Gupta (vineetg76 AT gmail.com)
    • +
    • trylink: make messages less confusing
    • +
    • unzip: handle "central directory". needed for OpenOffice, gmail attachment .zips etc
    • +
    • vi: Rob's algorithm of reading and matching ESC sequences (nice work btw!)
    • +
    • vi: deal with EOF/error on stdin and with input NULs
    • +
    • vi: fix uninitialized last_search_pattern (bug 5794)
    • +
    • vi: handle chars 0x80, 0x81 etc correctly
    • +
    • volume identification: abolish /proc/partitions and /proc/cdroms scanning. It does not catch volume managers and such. Simply scan /dev/* for any block devices
    • +
    • watchdog: WDIOC_SETTIMEOUT accepts seconds, not milliseconds
    • +
    • watchdog: add -T option
    • +
    +

    + The email address gpl@busybox.net is the recommended way to contact + the Software Freedom Law Center to report BusyBox license violations. +

    +
  • + +
  • 28 September 2008 -- BusyBox 1.12.1 (stable), BusyBox 1.11.3 (stable) +

    BusyBox 1.12.1. + (svn, + patches, + how to add a patch)

    +

    BusyBox 1.11.3. + (svn, + patches, + how to add a patch)

    +

    + Bugfix-only releases for 1.11.x and 1.12.x branches. +

    +
  • + +
  • 21 August 2008 -- BusyBox 1.12.0 (unstable), BusyBox 1.11.2 (stable) +

    BusyBox 1.12.0. + (svn, + patches, + how to add a patch)

    +

    BusyBox 1.11.2. + (svn, + patches, + how to add a patch)

    + +

    Sizes of busybox-1.11.2 and busybox-1.12.0 (with equivalent config, static uclibc build):

    +   text    data     bss     dec     hex filename
    + 829687     617    7052  837356   cc6ec busybox-1.11.2/busybox
    + 822961     594    6832  830387   cabb3 busybox-1.12.0/busybox
    +
    + +

    New applets: rdev (Grant Erickson), setfont, showkey (both by Vladimir) + +

    Most significant changes since previous release (please report any regression): +

      +
    • ash: bash compat: "shift $BIGNUM" is equivalent to "shift 1"
    • +
    • ash: dont allow e.g. exec <&10 to attach to script's fd!
    • +
    • ash: fix a bug where redirection fds were not closed afterwards. optimize close+fcntl(DUPFD) into dup2
    • +
    • ash: fix segfault in "command -v"
    • +
    • ash: fix very weak $RANDOM generator
    • +
    • ash: prevent exec NN>&- from closing fd used for script reading
    • +
    • ash: teach ash about 123>file. It could take only 0..9 before
    • +
    • hush: fix a case where "$@" must expand to no word at all
    • +
    • hush: fix mishandling of a'b'c=fff as assignments. They are not
    • +
    • hush: fix non-detection of builtins and applets in "v=break; ...; $v; ..." case
    • +
    • hush: fix "while false; ..." exitcode; add testsuites
    • +
    • hush: support "case...esac" statements (~350 bytes of code)
    • +
    • hush: support "break [N]" and "continue [N]" statements
    • +
    • hush: support "for if in do done then; do echo $if; done" case
    • +
    • hush: support "for v; do ... done" syntax (implied 'in "$@"')
    • +
    • hush: support $_NUMBERS variable names
    • +
    • libbb: unified config parser (by Vladimir). This change affected many applets
    • +
    + +

    Other changes: +

      +
    • libbb: dump: do not use uninitialized memory (closes bug 4364)
    • +
    • libbb: fix bb_strtol[l]'s check for "-" (closes bug 4174)
    • +
    • libbb: fix --help to not affect "test --help"
    • +
    • libbb: fix mishandling of "all argv are opts" in getopt32()
    • +
    • libbb: getopt32() should not ever touch argv[0] (even read)
    • +
    • libbb: introduce and use xrealloc_vector
    • +
    • libbb: [x]fopen_for_{read,write} introduced and used (by Vladimir)
    • +
    • lineedit: fix use-after-free
    • +
    • libunarchive: refactor handling of archived files. "tar f file.tar.lzma" now works too
    • +
    • bb_strtoXXX: close bug 4174 (potential use of buf[-1])
    • +
    • open_transformer: don't leak file descriptor
    • +
    • open_transformer: fix bug of calling exit instead of _exit
    • +
    • arp: without -H type, assume "ether" (closes bug 4564)
    • +
    • ar: reuse existing ar unpacking code
    • +
    • awk: fix a case with multiple -f options. Simplify -f file reading.
    • +
    • build system: introduce and use FAST_FUNC: regparm on i386, otherwise no-op
    • +
    • bunzip2: fix an uncompression error (by Rob Landley rob AT landley.net)
    • +
    • b[un]zip2, g[un]zip: unlink destination if -f is given (closes bug 3854)
    • +
    • comm: almost total rewrite
    • +
    • cpio: fix -m to actually work as expected (by Pascal Bellard)
    • +
    • cpio: internalize archive_xread_all_eof, add a few paranoia checks for corrupted cpio files
    • +
    • cpio: make long opts depend only on ENABLE_GETOPT_LONG
    • +
    • cpio: on unpack, limit filename length to 8k
    • +
    • cpio: support some long options
    • +
    • crond: use execlp instead of execl
    • +
    • cut: fix buffer overflow (closes bug 4544)
    • +
    • envdir: fix "envdir" (no params at all) and "envdir dir" cases
    • +
    • findfs: make it use setuid-ness of busybox binary
    • +
    • fsck: use getmntent_r instead of open-coded parsing (by Vladimir)
    • +
    • fuser: a bit of safety in scanf
    • +
    • grep: option to use GNU regex matching instead of POSIX one. This fixes problems with NULs in files being scanned, but costs +800 bytes
    • +
    • halt: signal init regardless of ENABLE_INIT
    • +
    • httpd: add homedir directive specially for (and by) Walter Harms wharms AT bfs.de
    • +
    • ifupdown: /etc/network/interfaces can have comments with leading blanks
    • +
    • ifupdown: fixes for custom MAC address (by Wade Berrier wberrier AT gmail.com)
    • +
    • ifupdown: fixes for shutdown of DHCP-managed interfaces (by Wade Berrier wberrier AT gmail.com)
    • +
    • inetd: do not trash errno in signal handlers; in CHLD handler, stop looping through services when pid is found
    • +
    • insmod: users report that "|| defined(__powerpc__)" is missing
    • +
    • install: do not chown intermediate directories with install -d (by Natanael Copa)
    • +
    • install: fix long option not taking params (closes bug 4584)
    • +
    • lpd,lpr: send/receive ACKs after filenames, not only after file bodies
    • +
    • ls: fix a bug where we may use uninintialized variable
    • +
    • man: add handling of "man links", by Ivana Varekova varekova AT redhat.com
    • +
    • man: fix a case when a full pathname to manpage is given
    • +
    • man: fix inverted cat/man bool variable
    • +
    • man: fix missed NULL termination of an array
    • +
    • man: mimic "no manual entry for 'bogus'" message and exitcode
    • +
    • man: support cat pages too (by Jason Curl jcurlnews AT arcor.de)
    • +
    • man: teach it to use .lzma if requested by .config
    • +
    • mdev: check for "/block/" substring for block dev detection
    • +
    • mdev: do not complain if mdev.conf does not exist
    • +
    • mdev: if device was moved at creation, at removal correctly remove it from moved location and also remove symlinks to it
    • +
    • mdev: support for serializing hotplug
    • +
    • mdev, init: use shared code for fd sanitization
    • +
    • mkdir: fix "uname 0222; mkdir -p foo/bar" case (by Doug Graham dgraham AT nortel.com)
    • +
    • modprobe: support for /etc/modprobe.d (by Timo Teras)
    • +
    • modprobe: use buffering line reads (fgets()) instead of reads()
    • +
    • modutils: optional modprobe-small (by Vladimir), 15kb smaller than standard one
    • +
    • mount: support for "-o mand" and "[no]relatime"
    • +
    • mount: support nfs mount option "nordiplus" (by Octavian Purdila opurdila AT ixiacom.com)
    • +
    • mount: support "relatime" / "norelatime"
    • +
    • mount: testsuite for "-o mand"
    • +
    • msh: fix "while... continue; ..." (closes bug 3884)
    • +
    • mv: fix a case when we move dangling symlink across mountpoints
    • +
    • netstat: optional -p support (by L. Gabriel Somlo somlo AT cmu.edu)
    • +
    • nmeter: fix read past the end of a buffer (closes bug 4594)
    • +
    • od, hexdump: fix bug where xrealloc may move pointer, leaving other pointers dangling (closes bug 4104)
    • +
    • pidof/killall: allow find_pid_by_name to find running processes started as scripts_with_name_longer_than_15_bytes.sh (closes bug 4054)
    • +
    • printf: do not print garbage on "%Ld" (closes bug 4214)
    • +
    • printf: fix %b, fix several bugs in %*.*, fix compat issues with aborting too early, support %zd; expand testsuite
    • +
    • printf: protect against bogus format specifiers (closes bug 4184)
    • +
    • sendmail: updates from Vladimir:
    • +
    • sendmail: do not discard all headers
    • +
    • sendmail: do not ignore CC; accept to: and cc: case-insensitively. +20 bytes
    • +
    • sendmail: fixed mail recipient address
    • +
    • sendmail: fixed SEGV if sender address is missed
    • +
    • sendmail: use HOSTNAME instead of HOST when no server is explicitly specified
    • +
    • sleep: if FANCY && DESKTOP, support fractional seconds, minutes, hours and so on (coreutils compat)
    • +
    • ssd: CLOSE_EXTRA_FDS in MMU case too
    • +
    • ssd: do not stat -x EXECUTABLE, it is not needed anymore
    • +
    • ssd: fix -a without -x case
    • +
    • ssd: use $PATH
    • +
    • tar: fix handling of tarballs with symlinks with size field != 0
    • +
    • tar: handle autodetection for tiny .tar.gz files too, simplify autodetection
    • +
    • taskset: fix some careless code in both fancy and non-fancy cases. -5 bytes for fancy, +5 for non-fancy
    • +
    • tee: fix infinite looping on open error (echo asd | tee "")
    • +
    • tee: "-" is a name for stdout, handle it that way
    • +
    • telnetd: fix issue file printing
    • +
    • test: fix parser to prefer binop over unop, as coreutils does
    • +
    • testsuite: uniformly use $ECHO with -n -e
    • +
    • time: don't segfault with no arguments
    • +
    • touch: support -r REF_FILE if ENABLE_DESKTOP (needed for blackfin compile)
    • +
    • tr: fix "access past the end of a string" bug 4354
    • +
    • tr: fix "tr [=" case (closes bug 4374)
    • +
    • tr: fix yet another access past the end of a string (closes bug 4374)
    • +
    • unlzma: fix memory leak (by Pascal Bellard)
    • +
    • vi: fix reversed checks for underflow
    • +
    • vi: using array data after it fell out of scope is stupid
    • +
    • xargs: fix -e default to match newer GNU xargs, add SUS mandated -E (closes bug 4414)
    • +
    • other fixes and code size reductions in many applets
    • +
    +

    + +
  • 12 July 2008 -- BusyBox 1.11.1 (stable) +

    BusyBox 1.11.1. + (svn, + patches, + how to add a patch)

    +

    + Bugfix-only release for 1.11.x branch. It contains fixes for awk, + bunzip2, cpio, ifupdown, ip, man, start-stop-daemon, uname and vi. +

    +
  • + +
  • 11 July 2008 -- HOWTO is updated +

    + + "How to build static busybox for i486-linux-uclibc" is updated + and tested on a fresh Fedora 9 install. Please report if it doesn't + work for you. +

    +
  • + + + +
  • Old News

    + Click here to read older news +

    +
  • + +
+ + + diff --git a/release/src/router/busybox/docs/busybox.net/oldnews.html b/release/src/router/busybox/docs/busybox.net/oldnews.html old mode 100755 new mode 100644 index 0dbf993a..444af74a --- a/release/src/router/busybox/docs/busybox.net/oldnews.html +++ b/release/src/router/busybox/docs/busybox.net/oldnews.html @@ -1,824 +1,2214 @@ - + - - -BusyBox - +

News archive

- +
    - +
  • 25 June 2008 -- BusyBox 1.11.0 (unstable), BusyBox 1.10.4 (stable) +

    BusyBox 1.11.0. + (svn, + patches, + how to add a patch)

    +

    BusyBox 1.10.4. + (svn, + patches, + how to add a patch)

    +

    Sizes of busybox-1.10.4 and busybox-1.11.0 (with equivalent config, static uclibc build):

    +   text    data     bss     dec     hex filename
    + 800675     636    7080  808391   c55c7 busybox-1.10.4
    + 798392     611    6900  805903   c4c0f busybox-1.11.0
    +
    +

    New applets: inotify (Vladimir Dronnikov), man (Ivana Varekova), + fbsplash (Michele Sanges), depmod (Bernhard Reutner-Fischer) + +

    Changes since previous release: +

      +
    • build system: reinstate CONFIG_CROSS_COMPILE_PREFIX
    • +
    • ash: optional bash compatibility features added; other fixes
    • +
    • hush: lots and lots of fixes
    • +
    • msh: fix the case where the file has exec bit but can't be run directly (runs "$SHELL file" instead)
    • +
    • msh: fix exit codes when command is not found or can't be execed
    • +
    • udhcpc: added workaround for buggy kernels
    • +
    • mount: fix mishandling of proto=tcp/udp
    • +
    • diff: make it work on non-seekable streams
    • +
    • openvt: made more compatible with "standard" one
    • +
    • mdev: fix block/char device detection
    • +
    • ping: add -w, -W support (James Simmons)
    • +
    • crond: add handling of "MAILTO=user" lines
    • +
    • start-stop-daemon: make --exec follow symlinks (Joakim Tjernlund)
    • +
    • date: make it accept ISO date format
    • +
    • echo: fix echo -e -n "msg\n\0" (David Pinedo)
    • +
    • httpd: fix several bugs triggered by relative path in -h DIR
    • +
    • printf: fix printf -%s- foo, printf -- -%s- foo
    • +
    • syslogd: do not error out on missing files to rotate
    • +
    • ls: support Unicode in names
    • +
    • ip: support for the LOWER_UP flag (Natanael Copa)
    • +
    • mktemp: make argument optional (coreutil 6.12 compat)
    • +
    • libiproute: fix option parsing, so that "ip -o link" works again
    • +
    • other fixes and code size reductions in many applets
    • +
    +

    + The email address gpl@busybox.net is the recommended way to contact + the Software Freedom Law Center to report BusyBox license violations. +

    +
  • + +
  • 12 June 2008 -- Sponsors! +

    We want to thank the following companies which are providing support + for the BusyBox project: +

    + +
  • + +
  • 5 June 2008 -- BusyBox 1.10.3 (stable) +

    BusyBox 1.10.3. + (svn, + patches, + how to add a patch)

    +

    + Bugfix-only release for 1.10.x branch. It contains fixes for dnsd, fuser, hush, + ip, mdev and syslogd. +

    +
  • + +
  • 8 May 2008 -- BusyBox 1.10.2 (stable) +

    BusyBox 1.10.2. + (svn, + patches, + how to add a patch)

    +

    + Bugfix-only release for 1.10.x branch. It contains fixes for echo, httpd, pidof, + start-stop-daemon, tar, taskset, tab completion in shells, build system. +

    Please note that mdev was backported from current svn trunk. Please + report if you encounter any problems with it. +

    +
  • + +
  • 19 April 2008 -- BusyBox 1.10.1 (stable) +

    BusyBox 1.10.1. + (svn, + patches, + how to add a patch)

    +

    + Bugfix-only release for 1.10.x branch. It contains fixes for + fuser, init, less, nameif, tail, taskset, tcpudp, top, udhcp. +

  • + +
  • 21 March 2008 -- BusyBox 1.10.0 (unstable) +

    BusyBox 1.10.0. + (svn, + patches, + how to add a patch)

    + +

    Sizes of busybox-1.9.2 and busybox-1.10.0 (with almost full config, static uclibc build):

    +   text    data     bss     dec     hex filename
    + 781405     679    7500  789584   c0c50 busybox-1.9.2
    + 773551     640    7372  781563   becfb busybox-1.10.0
    +
    +

    Top 10 stack users:

    +busybox-1.9.2:               busybox-1.10.0:
    +echo_dg                 4116 bb_full_fd_action       4112
    +bb_full_fd_action       4112 find_list_entry2        4096
    +discard_dg              4108 readlink_main           4096
    +discard_dg              4096 ipaddr_list_or_flush    3900
    +echo_stream             4096 iproute_list_or_flush   3680
    +discard_stream          4096 insmod_main             3152
    +find_list_entry2        4096 fallbackSort            2952
    +readlink_main           4096 do_iproute              2492
    +ipaddr_list_or_flush    3900 cal_main                2464
    +iproute_list_or_flush   3680 readhere                2308
    +
    -
    - - - - -
    - - B u s y B o x - -
    - BusyBox
    +

    New applets: brctl, chat (by Vladimir Dronnikov <dronnikov AT gmail.com>), + findfs, ifenslave (closes bug 115), lpd (by Vladimir Dronnikov <dronnikov AT gmail.com>), + lpr+lpq (by Walter Harms), script (by Pascal Bellard <pascal.bellard AT ads-lu.com>), + sendmail (Vladimir Dronnikov <dronnikov AT gmail.com>), tac, tftpd. +

    +

    Made NOMMU-compatible: crond, crontab, ifupdown, inetd, init, runsv, svlogd, tcpsvd, udpsvd. +

    +

    Changes since previous release: +

    +
      +
    • globally: add -Wunused-parameter
    • +
    • globally: add optimization barrier to all "G trick" locations
    • +
    • adduser/addgroup: check username for invalid chars (by Tito <farmatito AT tiscali.it>)
    • +
    • adduser: optional support for long options. Closes bug 2134
    • +
    • ash: handle "A=1 A=2 B=$A; echo $B". Closes bug 947
    • +
    • ash: make ash -c "if set -o barfoo 2>/dev/null; then echo foo; else echo bar; fi" work. Closes bug 1142
    • +
    • build system: don't use "gcc -o /dev/null", old gcc can delete /dev/null in this case
    • +
    • build system: fixes for cross-compiling on an OS X host
    • +
    • build system: make it do without "od -t"
    • +
    • build system: pass CFLAGS to link stage too. Closes bug 1376
    • +
    • build system: add CONFIG_NOMMU
    • +
    • cp: add ENABLE_FEATURE_VERBOSE_CP_MESSAGE. Closes bug 1470
    • +
    • crontab: almost complete rewrite
    • +
    • dnsd: properly set _src_ IP:port on outgoing UDP packets
    • +
    • dpkg: fix bug where existence check was reversed
    • +
    • eject: add -s for SCSI- and USB-devices (Nico Erfurth)
    • +
    • fdisk: fix a case where break was reached only for DOS labels
    • +
    • fsck: don't kill pid -1! (Roy Marples <roy at marples.name>)
    • +
    • fsck_minix: fix bug in map_block2: s/(blknr >= 256 * 256)/(blknr < 256 * 256)/
    • +
    • fuser: substantial rewrite
    • +
    • getopt: add support for "a+" specifier for nonnegative int parameters. By Vladimir Dronnikov <dronnikov at gmail.com>
    • +
    • getty: don't try to detect parity on local lines (Joakim Tjernlund <Joakim.Tjernlund at transmode.se>)
    • +
    • halt: write wtmp entry if wtmp support is enabled
    • +
    • httpd: "HEAD" support. Closes bug 1530
    • +
    • httpd: fix bug 2004: wrong argv when interpreter is invoked
    • +
    • httpd: fix bug where we did chdir("") if CGI path had only one "/"
    • +
    • httpd: fix for POST upload
    • +
    • httpd: support for "I:index.xml" syntax (Peter Korsgaard <jacmet AT uclibc.org>)
    • +
    • hush: fix a case where none of pipe members could be started because of fork failure
    • +
    • hush: more correct handling of piping
    • +
    • hush: reinstate `cmd` handling for NOMMU
    • +
    • hush: report [v]fork failures
    • +
    • hush: set CLOEXEC on script file being executed
    • +
    • hush: try to add a bit more of vfork-friendliness
    • +
    • inetd: make "udp nowait" work
    • +
    • inetd: make inetd IPv6-capable
    • +
    • init: add FEATURE_KILL_REMOVED (Eugene Bordenkircher <eugebo AT gmail.com>)
    • +
    • init: allow last line of config file to be not terminated by "\n"
    • +
    • init: do not die if "/dev/null" is missing
    • +
    • init: fix bug 1111: restart actions were not splitting words
    • +
    • init: wait for orphaned children too while waiting for sysinit-like processes (harald-tuxbox AT arcor.de)
    • +
    • ip route: "ip route" was misbehaving (extra argv+1 ate 1st env var)
    • +
    • last: do not go into endless loop on read error
    • +
    • less,klogd,syslogd,nc,tcpudp: exit on signal by killing itself, not exit(1)
    • +
    • less: "examine" command will not bomb out on bad file name now
    • +
    • less: fix bug where backspace wasn't actually deleting chars
    • +
    • less: make it a bit more resistant against status line corruption
    • +
    • less: improve search when data is not supplied fast enough by stdin - now will try reading for 1-2 seconds before declaring that there is no match. This fixes a very common annoyance with long manpages
    • +
    • less: update line input so that it doesn't interfere with screen update. Makes "man bash", [enter], [/], <enter search pattern>, [enter] more usable - manpage now draws even as you enter the pattern!
    • +
    • libbb: filename completion matches dangling symlinks too
    • +
    • libbb: fix getopt state corruption for NOFORK applets
    • +
    • libbb: full_read/write now will report partial data counts prior to error
    • +
    • libbb: intrduce and use safe_gethostname. By Tito <farmatito AT tiscali.it>
    • +
    • libbb: introduce and use nonblock_safe_read(). Yay! Our shells are immune from this nasty O_NONBLOCK now!
    • +
    • login,su: avoid clearing environment with some options, as was intended
    • +
    • microcom: read more than 1 byte from device, if possible
    • +
    • microcom: split -d (delay) option away from -t
    • +
    • mktemp: support -p DIR (Timo Teras <timo.teras at iki.fi>)
    • +
    • mount: #ifdef out MOUNT_LABEL code parts if it is not selected
    • +
    • mount: add another mount helper call method
    • +
    • mount: allow and ignore _netdev option
    • +
    • mount: make -f work even without mtab support (Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>)
    • +
    • mount: optional support for -vv verbosity
    • +
    • mount: plug a hole where FEATURE_MOUNT_HELPERS could allow execution of arbitrary command
    • +
    • mount: recognize "dirsync" (closes bug 835)
    • +
    • mount: sanitize environment if called by non-root
    • +
    • mount: support for mount by label. Closes bug 1143
    • +
    • mount: with -vv -f, say what mount() calls we were going to make
    • +
    • msh: create testsuite (based on hush one)
    • +
    • msh: don't use floating point in "times" builtin
    • +
    • msh: fix Ctrl-C handling with line editing
    • +
    • msh: fix for bug 846 ("break" didn't work second time)
    • +
    • msh: glob0/glob1/glob2/glob3 were just a sorting routine, removed
    • +
    • msh: instead of fixing "ls | cd", "cd | ls" etc disallow builtins in pipes. They make no sense there anyway
    • +
    • msh: stop trying to parse variables in "msh SCRIPT VAR=val param". They are passed as ordinary parameters
    • +
    • netstat: print control chars as "^C" etc
    • +
    • nmeter: fix bug where %[mf] behaves as %[mt]
    • +
    • nohup: compat patch by Christoph Gysin <mailinglist.cache at gmail.com>
    • +
    • od: handle /proc files (which have filesize 0) correctly
    • +
    • patch: don't trash permissions of patched file
    • +
    • ps: add conditional support for -o [e]time
    • +
    • ps: fix COMMAND column adjustment; overflow in USER and VSZ columns
    • +
    • reset: call "stty sane". Closes bug 1414
    • +
    • rmdir: optional long options support for Debian users. By Roberto Gordo Saez <roberto.gordo AT gmail.com>
    • +
    • run-parts: add --reverse
    • +
    • script: correctly handle buffered "tail" of output
    • +
    • sed: "n" command must reset "we had successful subst" flag. Closes bug 1214
    • +
    • sort: -z outputs NUL terminated lines. Closes bug 1591
    • +
    • stty: fix mishandling of control keywords (Ralf Friedl <Ralf.Friedl AT online.de>)
    • +
    • switch_root: stop at first non-option. Closes bug 1425
    • +
    • syslogd: avoid excessive time() system calls
    • +
    • syslogd: don't die if remote host's IP cannot be resolved. Retry resolutions every two minutes instead
    • +
    • syslogd: fix shmat error check
    • +
    • syslogd: optional support for dropping dups. Closes bug 436
    • +
    • syslogd: send "\n"-terminated messages over the network. Fully closes bug 1574
    • +
    • syslogd: tighten up hostname handling
    • +
    • tail: fix "tail -c 20 /dev/huge_disk" (was taking ages)
    • +
    • tar: compat: handle tarballs with only one zero block at the end
    • +
    • tar: autodetection of gz/bz2 compressed tarballs. Closes bug 992
    • +
    • tar: real support for -p. By Natanael Copa <natanael.copa at gmail.com>
    • +
    • tcpudp: narrow down time window where we have no wildcard socket
    • +
    • telnetd: use login always, not "sometimes login, sometimes shell"
    • +
    • test: fix mishandling of "test ! arg1 op arg2 more args"
    • +
    • trylink: instead of build error, disable --gc-sections if GLIBC and STATIC are selected
    • +
    • udhcp: make file paths configurable
    • +
    • udhcp: optional support for non-standard DHCP ports
    • +
    • udhcp: set correct op byte in the packet for DHCPDECLINE
    • +
    • udhcpc: filter unwanted packets in kernel (Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn AT axis.com>)
    • +
    • udhcpc: fix wrong options in decline and release packets (Jonas Danielsson <jonas.danielsson AT axis.com>)
    • +
    • umount: do not complain several times about the same mountpoint
    • +
    • umount: do not try to free loop device or erase mtab if remounted ro
    • +
    • umount: instead of non-standard -D, use -d with opposite meaning. Closes bug 1604
    • +
    • unlzma: shrink by Pascal Bellard <pascal.bellard AT ads-lu.com>
    • +
    • unzip: do not try to read entire compressed stream at once (it can be huge)
    • +
    • unzip: handle short reads correctly
    • +
    • vi: many fixes
    • +
    • zcip: don't chdir to root
    • +
    • zcip: open ARP socket before openlog (else we can trash syslog socket)
    • +
    +
  • + +
  • 21 March 2008 -- BusyBox old stable releases +

    + Bugfix-only releases for four past branches. Links to locations + for future hot patches are in parentheses. +

    + 1.9.2 + (patches), + 1.8.3 + (patches), + 1.7.5 + (patches), + 1.5.2 + (patches). +

    + How to add a patch. +

    + + +
  • 12 February 2008 -- BusyBox 1.9.1 (stable) +

    BusyBox 1.9.1. + (svn, + patches, + how to add a patch)

    + +

    This is a bugfix-only release, with fixes to fsck, + iproute, mdev, mkswap, msh, nameif, stty, test, zcip.

    +

    hush has `command` expansion re-enabled for NOMMU, although it is + inherently unsafe (by virtue of NOMMU's use of vfork instead of fork). + The plan is to make this less likely to bite people in future versions.

    +
  • + +
  • 24 December 2007 -- BusyBox 1.9.0 (unstable) +

    BusyBox 1.9.0. + (svn, + patches, + how to add a patch)

    + +

    Sizes of busybox-1.8.2 and busybox-1.9.0 (with almost full config, static uclibc build):

    +   text    data     bss     dec     hex filename
    + 792796     978    9724  803498   c42aa busybox-1.8.2
    + 783803     683    7508  791994   c15ba busybox-1.9.0
    +
    +

    Top 10 stack users:

    +busybox-1.8.2:               busybox-1.9.0:
    +input_tab             10428  echo_dg                4116
    +umount_main            8252  bb_full_fd_action      4112
    +rtnl_talk              8240  discard_dg             4096
    +xrtnl_dump_filter      8240  echo_stream            4096
    +sendMTFValues          5316  discard_stream         4096
    +mainSort               4700  find_list_entry2       4096
    +mkfs_minix_main        4288  readlink_main          4096
    +grave                  4260  ipaddr_list_or_flush   3900
    +unix_do_one            4156  iproute_list_or_flush  3680
    +parse_prompt           4132  insmod_main            3152
    +
    +

    lash is deleted from this release. hush can be configured down to almost + the same size, but it is significantly less buggy. It even works + on NOMMU machines (interactive mode and backticks are not working on NOMMU, + though). "lash" applet is still available, but it runs hush. + +

    init has some changes in this release, please report if it causes + problems for you. + +

    Changes since previous release: +

      +
    • Build system improvements +
    • Testsuite additions +
    • Stack size reductions, code size reductions, data/bss reductions +
    • An option to prefer IPv4 address if host has both +
    • New applets: hd, sestatus +
    • Removed applets: lash +
    • hush: fixed a few bugs, wired up echo and test to be builtins +
    • init: simplify forking of children +
    • getty: special handling of '#' and '@' is removed +
    • [su]login: sanitize environment if called by non-root +
    • udhcpc: support "bad" servers which send oversized packets + (Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>) +
    • udhcpc: -O option allows to specify which options to ask for + (Stefan Hellermann <stefan at the2masters.de>) +
    • udhcpc: optionally check whether given IP is really free (by ARP ping) + (Jonas Danielsson <jonas.danielsson at axis.com>) +
    • vi: now handles files with unlimited line length +
    • vi: speedup for huge line lengths +
    • vi: Del key works +
    • sed: support GNUism '\t' +
    • cp/mv/install: optionally use bigger buffer for bulk copying +
    • line editing: don't eat stack like crazy +
    • passwd: follows symlinked /etc/passwd +
    • renice: accepts priority with +N too +
    • netstat: wide output mode +
    • nameif: extended matching (Nico Erfurth <masta at perlgolf.de>) +
    • test: become NOFORK applet +
    • find: -iname (Alexander Griesser <alexander.griesser at lkh-vil.or.at>) +
    • df: -i option (show inode info) (Pascal Bellard <pascal.bellard at ads-lu.com>) +
    • hexdump: -R option (Pascal Bellard <pascal.bellard at ads-lu.com>) +
    +
  • + +
  • 23 November 2007 -- BusyBox 1.8.2 (stable), BusyBox 1.7.4 (stable) +

    BusyBox 1.8.2. + (svn, + patches, + how to add a patch)

    +

    BusyBox 1.7.4. + (svn, + patches, + how to add a patch)

    + +

    These are bugfix-only releases. + 1.8.2 contains fixes for inetd, lash, tar, tr, and build system. + 1.7.4 contains a fix for inetd.

    +
  • + +
  • 9 November 2007 -- BusyBox 1.8.1 (stable) +

    BusyBox 1.8.1. + (svn, + patches, + how to add a patch)

    + +

    This is a bugfix-only release, with fixes to login (PAM), modprobe, syslogd, telnetd, unzip.

    +
  • + +
  • 4 November 2007 -- BusyBox 1.8.0 (unstable) +

    BusyBox 1.8.0. + (svn, + patches, + how to add a patch)

    + +

    Note: this is probably the very last release with lash. It will be dropped. Please migrate to hush. + +

    Applets which had many changes since 1.7.x: +

    httpd: +

      +
    • does not clear environment, CGIs will see all environment variables which were set for httpd +
    • fix bug where we were trying to read more POSTDATA than content-length +
    • fix trivial bug (spotted by Alex Landau) +
    • optional support for partial downloads +
    • simplified CGI i/o loop (now it looks good to me) +
    • small auth and IPv6 fixes (Kim B. Heino <Kim.Heino at bluegiga.com>) +
    • support for proxying connection to other http server (by Alex Landau <landau_alex at yahoo.com>) +
    + +

    top: +

      +
    • TOPMEM feature - 's(how sizes)' command +
    • don't wait before final bailout (try top -b -n1) +
    • fix for command line wrapping +
    + +

    Build system improvements: libbusybox mode restored (it was lost in transition to new makefiles). + +

    Code and data size in comparison with 1.7.3:

    +Equivalent .config, i386 uclibc static builds:
    +   text    data     bss     dec     hex filename
    + 768123	   1055	  10768	 779946	  be6aa	busybox-1.7.3/busybox
    + 759693	    974	   9420	 770087	  bc027	busybox-1.8.0/busybox
    + +

    New applets: +

      +
    • microcom: new applet by Vladimir Dronnikov <dronnikov at gmail.ru> +
    • kbd_mode: new applet by Loic Grenie <loic.grenie at gmail.com> +
    • bzip2: port bzip2 1.0.4 to busybox, 9 kb of code +
    • pgrep, pkill: new applets by Loic Grenie <loic.grenie at gmail.com> +
    • setsebool: new applet (Yuichi Nakamura <ynakam at hitachisoft.jp>) +
    + +

    Other changes since previous release (abridged): +

      +
    • cp: -r and -R imply -d (coreutils compat) +
    • cp: detect and prevent infinite recursion +
    • cp: make it a bit closer to POSIX, but still refuse to open and overwrite symbolic link +
    • hdparm: reduce possibility of numeric overflow in -T +
    • hdparm: simplify timing measurement +
    • wget: -O FILE is allowed to overwrite existing file (compat) +
    • wget: allow dots in header field names +
    • telnetd: add -K option to close sessions as soon as child exits +
    • telnetd: don't SIGKILL child when closing the session, kernel will send SIGHUP for us +
    • ed: large cleanup, add line editing +
    • hush: feeble attempt at making it more NOMMU-friendly +
    • hush: fix glob() +
    • hush: stop doing manual accounting of open fd's, kernel can do it for us +
    • adduser: implement -S and fix uid selection +
    • ash: fix prompt expansion (Natanael Copa <natanael.copa at gmail.com>) +
    • ash: revert "cat | jobs" fix, it causes more problems than good +
    • find: fix -xdev behavior in the presence of two or more nested mount points +
    • grep: fix grep -F -e str1 -e str2 (was matching str2 only) +
    • grep: optimization: stop on first -e match +
    • gunzip: support concatenated gz files +
    • inetd: fix bug 1562 "inetd does not set argv[0] properly" (fix by Ilya Panfilov) +
    • install: 'support' (by ignoring) -v and -b +
    • install: fix bug in "install -c file dir" (tried to copy dir into dir too) +
    • ip: tunnel parameter parsing fix by Jean Wolter <jw5 at os.inf.tu-dresden.de> +
    • isrv: use monotonic_sec +
    • less: make 'f' key page forward +
    • libiproute: add missing break statements +
    • load_policy: update (Yuichi Nakamura <ynakam at hitachisoft.jp>) +
    • logger: fix a problem of losing all argv except first +
    • login: do reject wrong passwords with PAM auth +
    • losetup: support -f (Loic Grenie <loic.grenie at gmail.com>) +
    • fdisk: make fdisk compile on libc without llseek64 +
    • libbb: by popular request allow PATH to be customized at build time +
    • mkswap: selinux support by KaiGai Kohei <kaigai at ak.jp.nec.com> +
    • mount: allow (and ignore) -i +
    • mount: ignore NFS bg option on NOMMU machines +
    • mount: mount helpers support (by Vladimir Dronnikov <dronnikov at gmail.ru>) +
    • passwd: handle Ctrl-C, restore termios on Ctrl-C +
    • passwd: SELinux support by KaiGai Kohei <kaigai at ak.jp.nec.com> +
    • ping: make -I ethN work too (-I addr already worked) +
    • ps: fix RSS parsing (rss field in /proc/PID/stat is in pages, not bytes) +
    • read_line_input: fix it to not do any fancy editing if echoing is disabled +
    • run_parts: make it sort executables by name (required by API) +
    • runsv: do not use clock_gettime if !MONOTONIC_CLOCK +
    • runsvdir: fix "linear wait time" bug +
    • sulogin: remove alarm handling, it is redundant there +
    • svlogd: compat: svlogd -tt should timestamp stderr too +
    • syslogd: bail out if you see null read from Unix socket +
    • syslogd: do not need to poll(), we can just block in read() +
    • tail: work correctly on /proc files (Kazuo TAKADA <kztakada at sm.sony.co.jp>) +
    • tar + gzip/bzip2/etc: support NOMMU machines (by Alex Landau <landau_alex at yahoo.com>) +
    • tar: strip leading '/' BEFORE memorizing hardlink's name +
    • tftp: fix infinite retry bug +
    • umount: support (by ignoring) -i; style fixes +
    • unzip: fix endianness bugs +
    • vi: don't wait 50 ms before reading ESC sequences +
    • watchdog: allow millisecond spec (-t 250ms) +
    • zcip: fix unaligned trap on ARM +
    +
  • + +
  • 4 November 2007 -- BusyBox 1.7.3 (stable) +

    BusyBox 1.7.3. + (svn, + patches, + how to add a patch)

    + +

    This is a bugfix-only release, with fixes to ash, httpd, inetd, iptun, logger, login, tail.

    +
  • + +
  • 30 September 2007 -- BusyBox 1.7.2 (stable) +

    BusyBox 1.7.2. + (svn, + patches, + how to add a patch)

    + +

    This is a bugfix-only release, with fixes to install, find, login, httpd, runsvdir, chcon, setfiles, fdisk and line editing.

    +
  • + +
  • 16 September 2007 -- BusyBox 1.7.1 (stable) +

    BusyBox 1.7.1. + (svn, + patches, + how to add a patch)

    + +

    This is a bugfix-only release, with fixes to cp, runsv, tar, busybox --install and build system.

    +
  • + +
  • 24 August 2007 -- BusyBox 1.7.0 (unstable) +

    BusyBox 1.7.0. + (svn, + patches, + how to add a patch)

    + +

    Applets which had many changes since 1.6.x: +

    httpd: +

      +
    • works in standalone mode on NOMMU machines now (partly by Alex Landau <landau_alex at yahoo.com>) +
    • indexer example is rewritten in C +
    • optional support for error pages (by Pierre Metras <genepi at sympatico.ca>) +
    • stop reading headers using 1-byte reads +
    • new option -v[v]: prints client addresses, HTTP codes returned, URLs +
    • extended -p PORT to -p [IP[v6]:]PORT +
    • sendfile support (by Pierre Metras <genepi at sympatico.ca>) +
    • add support for Status: CGI header +
    • fix CGI handling bug (we were closing wrong fd) +
    • CGI I/O loop still doesn't look 100% ok to me... +
    + +

    udhcp[cd]: +

      +
    • add -f "foreground" and -S "syslog" options +
    • fixed "ifupdown + udhcpc_without_pidfile_creation" bug +
    • new config option "Rewrite the lease file at every new acknowledge" (Mats Erik Andersson <mats at blue2net.com> (Blue2Net AB)) +
    • consistently treat server_config.start/end IPs as host-order +
    • fix IP parsing for 64bit machines +
    • fix unsafe hton macro usage in read_opt() +
    • do not chdir to / when daemonizing +
    + +

    top, ps, killall, pidof: +

      +
    • simpler loadavg processing +
    • truncate usernames to 8 chars +
    • fix non-CONFIG_DESKTOP ps -ww (by rockeychu) +
    • improve /proc/PID/cmdinfo reading code +
    • use cmdline, not comm field (fixes problems with re-execed applets showing as processes with name "exe", and not being found by pidof/killall by applet name) +
    • reduce CPU usage in decimal conversion (optional) (corresponding speedup on kernel side is accepted in mainline Linux kernel, yay!) +
    • make percentile (0.1%) calculations configurable +
    • add config option and code for global CPU% display +
    • reorder columns, so that [P]PIDs are together and VSZ/%MEM are together - makes more sense +
    + +

    Build system improvements: doesn't link against libraries we don't need, + generates verbose link output and map file, allows for custom link + scripts (useful for removing extra padding, among other things). + +

    Code and data size in comparison with 1.6.1:

    +Equivalent .config, i386 glibc dynamic builds:
    +   text    data     bss     dec     hex filename
    + 672671    2768   16808  692247   a9017 busybox-1.6.1/busybox
    + 662948    2660   13528  679136   a5ce0 busybox-1.7.0/busybox
    + 662783    2631   13416  678830   a5bae busybox-1.7.0/busybox.customld
    +
    +Same .config built against static uclibc:
    + 765021    1059   11020  777100   bdb8c busybox-1.7.0/busybox_uc
    + +

    Code/data shrink done in applets: crond, hdparm, dd, cal, od, nc, expr, uuencode, + test, slattach, diff, ping, tr, syslogd, hwclock, zcip, find, pidof, ash, uudecode, + runit/*, in libbb. + +

    New applets: +

      +
    • pscan, expand, unexpand (from Tito <farmatito at tiscali.it>) +
    • setfiles, restorecon (by Yuichi Nakamura <ynakam at hitachisoft.jp>) +
    • chpasswd (by Alexander Shishkin <virtuoso at slind.org>) +
    • slattach, ttysize +
    + +

    Unfortunately, not much work is done on shells. This was mostly stalled + by lack of time (read: laziness) on my part to learn how to adapt existing + qemu-runnable image for a NOMMU architechture (available on qemu website) + for local testing of cross-compiled busybox on my machine. + +

    Other changes since previous release (abridged): +

      +
    • addgroup: disallow addgroup -g num user group; make -g 0 work (Tito <farmatito at tiscali.it>) +
    • adduser: close /etc/{passwd,shadow} before calling passwd etc. Spotted by Natanael Copa <natanael.copa at gmail.com> +
    • arping: -i should be -I, fixed +
    • ash: make "jobs | cat" work like in bash (was giving empty output) +
    • ash: recognize -l as --login equivalent; do not recognize +-login +
    • ash: fix buglet in DEBUG code (Nguyen Thai Ngoc Duy <pclouds at gmail.com>) +
    • ash: fix SEGV if type has zero parameters +
    • awk: fix -F 'regex' bug (miscounted fields if last field is empty) +
    • catv: catv without arguments was trying to use environ as argv (Alex Landau <landau_alex at yahoo.com>) +
    • catv: don't die on open error (emit warning) +
    • chown/chgrp: completely match coreutils 6.8 wrt symlink handling +
    • correct_password: do not print "no shadow passwd..." message +
    • crond: don't start sendmail with absolute path, don't report obsolete version (report true bbox version) +
    • dd: fix bug where we assume count=INT_MAX when count is unspecified +
    • devfsd: sanitization by Tito <farmatito at tiscali.it> +
    • echo: fix non-fancy echo +
    • fdisk: make it work with big disks (read: typical today's disks) even if CONFIG_LFS is unset +
    • find: -context support for SELinux (KaiGai Kohei <kaigai at kaigai.gr.jp>) +
    • find: add conditional support for -maxdepth and -regex, make -size match GNU find +
    • find: fix build failure on certain configs (found by Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>) +
    • fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one +
    • grep: implement -m MAX_MATCHES, fix buglets with context printing +
    • grep: fix selection done by FEATURE_GREP_EGREP_ALIAS (Maxime Bizon <mbizon at freebox.fr> (Freebox)) +
    • hush: add missing dependencies (Maxime Bizon <mbizon at freebox.fr> (Freebox)) +
    • hush: fix read builtin to not read ahead past EOL and to not use insane amounts of stack +
    • ifconfig: make it work with ifaces with interface no. > 255 +
    • ifup/ifdown: make location of ifstate configurable +
    • ifupdown: make netmask parsing smaller and more strict (was accepting 255.0.255.0, 255.1234.0.0 etc...) +
    • install: fix -s (strip) option, fix install a b /a/link/to/dir +
    • libbb: consolidate ARRAY_SIZE macro (Walter Harms <wharms at bfs.de>) +
    • libbb: make /etc/network parsing configurable. -200 bytes when off +
    • libbb: nuke BB_GETOPT_ERROR, always die if there are mutually exclusive options +
    • libbb: xioctl and friends by Tito <farmatito at tiscali.it> +
    • login: optional support for PAM +
    • login: make /etc/nologin support configurable (-240 bytes) +
    • login: ask passwords even for wrong usernames +
    • md5_sha1_sum: fix mishandling when run as /bin/md5sum +
    • mdev: add support for firmware loading +
    • mdev: work even when CONFIG_SYSFS_DEPRECATED in kernel is off +
    • modprobe: add scanning of /lib/modules/`uname -r`/modules.symbols (by Yann E. MORIN <yann.morin.1998 at anciens.enib.fr>) +
    • more: fixes by Tristan Schmelcher <tpkschme at engmail.uwaterloo.ca> +
    • nc: make connecting to IPv4 from IPv6-enabled hosts easier (was requiring -s local_addr) +
    • passwd: fix bug "updating shadow even if user's record is in passwd" +
    • patch: fix -p -1 handling +
    • patch: fix bad line ending handling (Nguyen Thai Ngoc Duy <pclouds at gmail.com>) +
    • ping: display roundtrip times with 1/1000th of ms, not 1/10 ms precision. +
    • ping: fix incorrect handling of -I (Iouri Kharon <bc-info at styx.cabel.net>) +
    • ping: fix non-fancy ping6 +
    • printenv: fix "printenv VAR1 VAR2" bug (spotted by Kalyanatejaswi Balabhadrapatruni <kalyanatejaswi at yahoo.co.in>) +
    • ps: fix -Z (by Yuichi Nakamura <ynakam at hitachisoft.jp>) +
    • rpm: add optional support for bz2 data. +50 bytes of code +
    • rpm: fix bogus "package is not installed" case +
    • sed: fix 'q' command handling (by Nguyen Thai Ngoc Duy <pclouds at gmail.com>) +
    • start_stop_daemon: NOMMU fixes by Alex Landau <landau_alex at yahoo.com> +
    • stat: fix option -Z SEGV +
    • strings: strings a b was processing a twice, fix that +
    • svlogd: fix timestamping, do not warn if config is missing +
    • syslogd, logread: get rid of head pointer, fix logread bug in the process +
    • syslogd: do not convert tabs to ^I, set syslog IPC buffer to mode 0644 +
    • tar: improve OLDGNU compat, make old SUN compat configurable +
    • test: fix testing primary expressions like '"-u" = "-u"' +
    • uudecode: fix to base64 decode by Jorgen Cederlof <jcz at google.com> +
    • vi: multiple fixes by Natanael Copa <natanael.copa at gmail.com> +
    • wget: fix bug in base64 encoding (bug 1404). +10 bytes +
    • wget: lift 256 chars limitation on terminal width +
    • wget, zcip: use monotonic_sec instead of gettimeofday +
    +
  • + +
  • 30 June 2007 -- BusyBox 1.6.1 (stable) +

    BusyBox 1.6.1. + (svn, + patches, + how to add a patch)

    + +

    This is a bugfix-only release, with fixes to echo, hush, and wget.

    +
  • + +
  • 1 June 2007 -- BusyBox 1.6.0 (unstable) +

    BusyBox 1.6.0. + (svn, + patches, + how to add a patch)

    + +

    Since this is a x.x.0 release, it probably does not deserve "stable" + label. Please help making 1.6.1 stable by testing 1.6.0.

    +

    Note that hush shell had many changes and (hopefully) is much improved now, + but there is a possibility that it regressed in some obscure cases. Please + report any such cases.

    +

    lash users please note: lash is going to be deprecated in busybox 1.7.0 + and removed in the more distant future. Please migrate to hush.

    +

    Memory usage has decreased, but we can do better still

    +

    Other changes since previous release: +

      +
    • NOFORK: audit small applets and mark some of them as NOFORK. Put big scary warnings in relevant places +
    • NOFORK: factor out NOFORK/NOEXEC code from find. Use NOFORK/NOEXEC in find and xargs +
    • NOFORK: remove potential xmalloc from NOFORK path in bb_full_fd_action +
    • NOMMU: random fixes; compressed --help now works for NOMMU +
    • SELinux: load_policy applet +
    • [u]mount: extend -t option (Roy Marples <uberlord at gentoo.org>) +
    • addgroup: clean up, fix adding users to existing groups and make it optional (Tito) +
    • adduser: don't bomb out if shadow password file doesn't exist (from Tito <farmatito at tiscali.it>) +
    • applet.c: do not even try to read config if run by real root; fix suid config handling +
    • ash: fix infinite loop on exit if tty is not there anymore +
    • ash: fix kill -l (by Mats Erik Andersson <mats.andersson64 at comhem.se>) +
    • ash: implement type -p, costs less than 10 bytes (patch by Mats Erik Andersson <mats.andersson64 at comhem.se>) +
    • awk: don't segfault on printf(%*s). Closes bug 1337 +
    • awk: guard against empty environment +
    • awk: some 'lineno' vars were shorts, made them ints (code got smaller) +
    • cat: stop using stdio.h opens +
    • config system: clarify PREFER_APPLETS/SH_STANDALONE effects in help text +
    • cryptpw: new applet (by Thomas Lundquist <lists at zelow.no>) +
    • cttyhack: new applet +
    • dd: NOEXEC fix; fix skip= parse error (spotted by Dirk Clemens <develop at cle-mens.de>) +
    • deluser: add optional support for removing users from groups (by Tito <farmatito at tiscali.it>) +
    • diff: fix SEGV (NULL deref) in diff -N +
    • diff: fix segfault on empty dirs (Peter Korsgaard <peter.korsgaard at barco.com>) +
    • dnsd: fix several buglets, make smaller; openlog(), so that applet's name is logged +
    • dpkg: run_package_script() returns 0 if all ok and non-zero if failure. The result code was checked incorrectly in two places. (from Kim B. Heino <Kim.Heino at bluegiga.com>) +
    • dpkg: use bitfields which are a bit closer to typical short/char. Code size -800 bytes +
    • dumpleases: getopt32()-ization (from Mats Erik Andersson <mats.andersson64 at comhem.se>) +
    • e2fsprogs: stop using statics in chattr. Minor code shrinkage (-130 bytes) +
    • ether-wake: close bug 1317. Reorder fuctions to avoid forward refs while at it +
    • ether-wake: save a few more bytes of code +
    • find: -group, -depth (Natanael Copa <natanael.copa at gmail.com>) +
    • find: add support for -delete, -path (by Natanael Copa) +
    • find: fix -prune. Add big comment about it +
    • find: improve usage text (Natanael Copa <natanael.copa at gmail.com>) +
    • find: missed 'static' on const data; size and prune were mixed up; use index_in_str_array +
    • find: un-DESKTOPize (Kai Schwenzfeier <niteblade at gmx.net>) +
    • find_root_device: teach to deal with /dev/ subdirs (by Kirill K. Smirnov <lich at math.spbu.ru>) +
    • find_root_device: use lstat - don't follow links +
    • getopt32: fix llist_t options ordering. llist_rev is now unused +
    • getopt: use getopt32 for option parsing - inspired by patch by Mats Erik Andersson <mats.andersson64 at comhem.se> +
    • hdparm: fix multisector mode setting (from Toni Mirabete <amirabete at catix.cat>) +
    • hdparm: make -T -t code smaller (-194 bytes), and output prettier +
    • ifupdown: make it possible to use DHCP clients different from udhcp +
    • ifupdown: reread state file before rewriting it. Fixes "ifup started another ifup" state corruption bug. Patch by Natanael Copa <natanael.copa at gmail.com> +
    • ifupdown: small optimization (avoid doing useless work if we are not going to update state file) +
    • ip: fix compilation if FEATURE_TR_CLASSES is off +
    • ip: mv ip*_main into ip.c; use a dispatcher to save on needless duplication. Saves a minor 12b +
    • ip: rewrite the ip applet to be less bloaty. Convert to index_in_(sub)str_array() +
    • ip: set the scope properly. Thanks to Jean Wolter +
    • iplink: shrink iplink; sanitize libiproute a bit (-916 bytes) +
    • iproute: shrink a bit (-200 bytes) +
    • kill: know much more signals; make code smaller; use common code for kill applet and ash kill builtin +
    • klogd: remove dependency on syslogd +
    • lash: "forking" applets are actually can be treated the same way as "non-forked". Also save a bit of space on trailing NULL array elements. +
    • lash: fix kill buglet (didn't properly recognize ESRCH) +
    • lash: make -c work; crush buffer overrun and free of non-malloced ptr (from Mats Erik Andersson <mats.andersson64 at comhem.se>) +
    • lash: recognize and use NOFORK applets +
    • less: fix case when regex search finds nothing; fix very obscure memory corruption bug; fix less <HUGEFILE + [End] busy loop +
    • libbb: add xsendto, xunlink, xpipe +
    • libbb: fix segfault in reset_ino_dev_hashtable() when *hashtable was NULL +
    • libbb: make pidfile writing configurable +
    • libbb: make xsocket die with address family printed (if VERBOSE_RESOLUTION_ERRORS=y) +
    • libbb: rework NOMMU helper API so that it makes more sense and easier to use +
    • libiproute: audit callgraph, shortcut error paths into die() functions +
    • lineedit: do not try to open NULL history file +
    • lineedit: nuke two unused variables and code which sets them +
    • login: remove setpgrp call (makes it work from shell prompt again); sanitize stdio descriptors (we are suid, need to be careful!) +
    • login: shrink login and set_environment by ~100 bytes +
    • mount: fix incorrect usage of strtok (inadvertently used NULL sometimes) +
    • mount: fix mounting of symlinks (mount from util-linux allows that) +
    • msh: data/bss reduction (more than 9k of it); fix "underscore bug" (a_b=1111 didn't work); fix obscure case with backticks and closed fd 1 +
    • nc: port nc 1.10 to busybox +
    • netstat: fix for bogus state value for raw sockets +
    • netstat: introduce -W: wide, ipv6-friendly output; shrink by ~500 bytes +
    • nmeter: should die if stdout doesn't like him anymore +
    • patch: do not try to delete same file twice +
    • ping: fix wrong sign extension of packet id (bug 1373) +
    • ps: add -o tty and -o rss support; make a bit smaller; work around libc bug: printf("%.*s\n", MAX_INT, buffer) +
    • run_parts: rewrite +
    • run_parts: do not check path portion of a name for "bad chars". Needed for ifupdown. Patch by Gabriel L. Somlo <somlo at cmu.edu> +
    • sed: fix escaped newlines in -f +
    • split: new applet +
    • stat: remove superfluous bss user (flags) and manually unswitch some areas +
    • stty: fix option parsing bug (spotted by Sascha Hauer <s.hauer at pengutronix.de>) +
    • svlogd: fix 'SEGV on uninitialized data' and make it honor TERM +
    • tail: fix SEGV on "tail -N" +
    • ipsvd: tcpsvd,udpsvd are new applets, GPL-ed 'clones' of Dan Bernstein's tcpserver. Author: Gerrit Pape <pape at smarden.org>, http://smarden.sunsite.dk/ipsvd/ +
    • test: close bug 1371; plug a memory leak; code size reduction +
    • tftp: code diet, and I think retransmits were broken +
    • tr: fix bug where we did not reject invalid classes like '[[:alpha'. debloat while at it +
    • udhcp: MAC_BCAST_ADDR and blank_chaddr are in fact constant, move to rodata; use pipe instead of socketpair +
    • udhcp[cd]: stop using atexit magic fir pidfile removal; stop deleting our own pidfile if we daemonize +
    • xargs: shrink code, ~80 bytes; simplify word list management +
    • zcip: make it work on NOMMU (+ improve NOMMU support machinery) +
    +
  • + +
  • 20 May 2007 -- BusyBox 1.5.1 (stable) +

    BusyBox 1.5.1. + (patches, + how to add a patch)

    + +

    This is a bugfix-only release, with fixes to hdparm, hush, ifupdown, ps + and sed.

    +
  • + +
  • 23 March 2007 -- BusyBox 1.5.0 (unstable) +

    BusyBox 1.5.0. + (patches, + how to add a patch)

    + +

    Since this is a x.x.0 release, it probably does not deserve "stable" + label. Please help making 1.5.1 stable by testing 1.5.0.

    +

    Notable changes since previous release: +

      +
    • find: added support for -user, -not, fixed -mtime, -mmin, -perm +
    • [de]archivers: merge common logic into one module +
    • ping[6]: unified code for both +
    • less: regex search improved +
    • ash: more readable code, testsuite added +
    • sed: several very obscure bugs fixed +
    • chown: -H, -L, -P support (required by POSIX) +
    • tar: handle (broken) checksums a-la Sun; tar restores mode again +
    • grep: implement -w, "implement" -a and -I by ignoring them +
    • cp: more sane behavior when overwriting existing files +
    • init: stop doing silly things with the console (-400 bytes) +
    • httpd: make httpd usable for NOMMU CPUs; fix POSTDATA handling bugs +
    • httpd: run interpreter for configured file extensions in any dir, + not only in /cgi-bin/ +
    • chrt: new applet +
    • SELinux: SELinux-related code and -Z option added to several applets, + new SELinux-specific applets: chcon, runcon. +
    • Build system: produces link map, uses -Wwrite-strings to catch + improper usage of string constants. +
    • Data and bss section usage audited and reduced - should help NOMMU + targets. +
    • Applets with bug fixes: gunzip, vi, syslogd, dpkg, ls, adjtimex, resize, + sv, printf, diff, awk, sort, dpkg, diff, tftp +
    • Applets with usability improvements: swapon, more, ifup/ifdown, hwclock, + udhcpd, start_stop_daemon, cmp +
    • Applets with code cleaned up: telnet, fdisk, fsck_minix, mkfs_minix, + syslogd, swapon, runsv, svlogd, klogd +
    +
  • + +
  • 18 March 2007 -- BusyBox 1.4.2 (stable) +

    BusyBox 1.4.2. +

    + +

    This release includes only trivial fixes accumulated since 1.4.1. +

    +
  • + +
  • 25 January 2007 -- BusyBox 1.4.1 (stable) +

    BusyBox 1.4.1. + (patches)

    + +

    This release includes only trivial fixes accumulated since 1.4.0. +

    +
  • + +
  • 20 January 2007 -- BusyBox 1.4.0 (stable) +

    BusyBox 1.4.0. + (patches)

    + +

    Since this is a x.x.0 release, it probably is a bit less "stable" + than usual.

    +

    Changes since previous release: +

      +
    • e2fsprogs are mostly removed from busybox. Some smaller parts remain, + the rest of it sits disabled in e2fsprogs/old_e2fsprogs/*, because + it's too bloated. Really. I'm afraid it's about the only way we can + ever get e2fsprogs cleaned up. +
    • less: many improvements. Now can display binary files + (although I expect it to have trouble with displays where 8bit chars + don't have 1-to-1 char/glyph relationship). Regexp search is not buggy + anymore. Less does not read entire input up-front. Reads input + as it appears (yay!). Works rather nice as man pager. I recommend it + for general use now. +
    • IPv6: generic support is in place, many networking applets are + upgraded to be IPv6 capable. Probably some work remains, but it is + already much better than what we had previously. +
    • arp: new applet (thanks to Eric Spakman). +
    • fakeidentd: non-forking standalone server part was taking ~90% + of the applet. Factored it out (in fact, rewrote it). +
    • syslogd: mostly rewritten. +
    • decompress_unzip, gzip: sanitized a bit. +
    • sed: better hadling of NULs +
    • httpd: stop adding our own "Content-type:" to CGI output +
    • chown: user.grp works again. +
    • minor bugfixes to: passwd, date, tftp, start_stop_daemon, tar, + ps, ifupdown, time, su, stty, awk, ping[6], sort,... +
    +
  • + +
  • 20 January 2007 -- BusyBox 1.3.2 (stable) +

    BusyBox 1.3.2.

    + +

    This release includes only one trivial fix accumulated since 1.3.1 +

    +
  • + +
  • 27 December 2006 -- BusyBox 1.3.1 (stable) +

    BusyBox 1.3.1. + (patches)

    + +

    Closing 2006 with new release. It includes only trivial fixes accumulated since 1.3.0 +

    +
  • + +
  • 14 December 2006 -- BusyBox 1.3.0 (stable) +

    BusyBox 1.3.0. + (patches)

    + +

    This release has CONFIG_DESKTOP option which enables features + needed for busybox usage on desktop machine. For example, find, chmod + and chown get several less frequently used options, od is significantly + bigger but matches GNU coreutils, etc. Intended to eventually make + busybox a viable alternative for "standard" utilities for slightly + adventurous desktop users. +

    Changes since previous release: +

      +
    • find: taking many more of standard options +
    • ps: POSIX-compliant -o implemented +
    • cp: added -s, -l +
    • grep: added -r, fixed -h +
    • watch: make it exec child like standard one does (was totally + incompatible) +
    • tar: fix limitations which were preventing bbox tar usage + on big directories: long names and linknames, pax headers + (Linux kernel tarballs have that). Fixed a number of obscure bugs. + Raised max file limit (now 64Gb). Security fixes (/../ attacks). +
    • httpd: added -i (inetd), -f (foreground), support for + directory indexer CGI (example is included), bugfixes. +
    • telnetd: fixed/improved IPv6 support, inetd+standalone support, + other fixes. Useful IPv6 stuff factored out into libbb. +
    • runit/*: new applets adapted from http://smarden.sunsite.dk/runit/ + (these are my personal favorite small-and-beautiful toys) +
    • minor bugfixes to: login, dd, mount, umount, chmod, chown, ln, udhcp, + fdisk, ifconfig, sort, tee, mkswap, wget, insmod. +
    +

    Note that GnuPG key used to sign this release is different. + 1.2.2.1 is also signed post-factum now. Sorry for the mess. +

    +
  • + +
  • 29 October 2006 -- BusyBox 1.2.2.1 (fix) +

    BusyBox 1.2.2.1.

    + +

    Added compile-time warning that static linking against glibc + produces buggy executables. +

  • + +
  • 24 October 2006 -- BusyBox 1.2.2 (stable) +

    It's a bit overdue, but + here is + BusyBox 1.2.2.

    + +

    This release has dozens of fixes backported from the ongoing development + branch. There are a couple of bugfixes to sed, two fixes to documentation + generation (BusyBox.html shouldn't have USE() macros in it anymore), fix + umount to report the right errno on failure and to umount block devices by + name with newer kernels, fix mount to handle symlinks properly, make mdev + delete device nodes when called for hotplug remove, fix a segfault + in traceroute, a minor portability fix to md5sum option parsing, a build + fix for httpd with old gccs, an options parsing tweak to hdparm, make test + fail gracefully when getgroups() returns -1, fix a race condition in + modprobe when two instances run at once (hotplug does this), make "tar xf + foo.tar dir/dir" extract all subdirectories, make our getty initialize the + terminal more like mingetty, an selinux build fix, an endianness fix in + ping6, fix for zcip defending addresses, clean up some global variables in + gzip to save memory, fix sulogin -tNNN, a help text tweak, several warning + fixes and build fixes, fixup dnsd a bit, and a partridge in a pear tree.

    + +

    As Linux Weekly News noted, + this is my (Rob's) last release of BusyBox. The new maintainer is Denis + Vlasenko, I'm off to do other things. +

    +
  • + +
  • 29 September 2006 -- New license email address. +

    The email address gpl@busybox.net is now the recommended way to contact + the Software Freedom Law Center to report BusyBox license violations.

    + +
  • 31 July 2006 -- BusyBox 1.2.1 (stable) +

    Since nobody seems to have objected too loudly over the weekend, I + might as well point you all at + Busybox + 1.2.1, a bugfix-only release with no new features.

    + +

    It has three shell fixes (two to lash: going "var=value" without + saying "export" should now work, plus a missing null pointer check, and + one to ash when redirecting output to a file that fills up.) Fix three + embarassing thinkos in the new dmesg command. Two build tweaks + (dependencies for the compressed usage messages and running make in the + libbb subdirectory). One fix to tar so it can extract git-generated + tarballs (rather than barfing on the pax extensions). And a partridge + in a pear... Ahem.

    + +

    But wait, there's more! A passwd changing fix so an empty + gecos field doesn't trigger a false objection that the new passwd contains + the gecos field. Make all our setuid() and setgid() calls check the return + value in case somebody's using per-process resource limits that prevent + a user from having too many processes (and thus prevent a process from + switching away from root, in which case the process will now _die_ rather + than continue with root privileges). A fix to adduser to make sure that + /etc/group gets updated. And a fix to modprobe to look for modules.conf + in the right place on 2.6 kernels.

    + +
  • 30 June 2006 -- BusyBox 1.2.0 +

    The -devel branch has been stabilized and the result is + Busybox + 1.2.0. Lots of stuff changed, I need to work up a decent changelog + over the weekend.

    + +

    I'm still experimenting with how long is best for the development + cycle, and since we've got some largeish projects queued up I'm going to + try a longer one. Expect 1.3.0 in December. (Expect 1.2.1 any time + we fix enough bugs. :)

    + +

    Update: Here are the first few bug fixes that will go into 1.2.1.

    + +
  • 17 May 2006 -- BusyBox 1.1.3 (stable) +

    BusyBox + 1.1.3 is another bugfix release. It makes passwd use salt, fixes a + memory freeing bug in ls, fixes "build all sources at once" mode, makes + mount -a not abort on the first failure, fixes msh so ctrl-c doesn't kill + background processes, makes patch work with patch hunks that don't have a + timestamp, make less's text search a lot more robust (the old one could + segfault), and fixes readlink -f when built against uClibc.

    + +

    Expect 1.2.0 sometime next month, which won't be a bugfix release.

    + +
  • 10 April 2006 -- BusyBox 1.1.2 (stable) +

    You can now download BusyBox 1.1.2, a bug fix release consisting of 11 patches + backported from the development branch: Some build fixes, several fixes + for mount and nfsmount, a fix for insmod on big endian systems, a fix for + find -xdev, and a fix for comm. Check the file "changelog" in the tarball + for more info.

    + +

    The next new development release (1.2.0) is slated for June. A 1.1.3 + will be released before then if more bug fixes crop up. (The new plan is + to have a 1.x.0 new development release every 3 months, with 1.x.y stable + bugfix only releases based on that as appropriate.)

    + +
  • 27 March 2006 -- Software Freedom Law Center representing BusyBox and uClibc +

    One issue Erik Andersen wanted to resolve when handing off BusyBox + maintainership to Rob Landley was license enforcement. BusyBox and + uClibc's existing license enforcement efforts (pro-bono representation + by Erik's father's law firm, and the + Hall of Shame), haven't + scaled to match the popularity of the projects. So we put our heads + together and did the obvious thing: ask Pamela Jones of + Groklaw for suggestions. She + referred us to the fine folks at softwarefreedom.org.

    + +

    As a result, we're pleased to announce that the + Software Freedom Law Center + has agreed to represent BusyBox and uClibc. We join a number of other + free and open source software projects (such as + X.org, + Wine, and + Plone + in being represented by a fairly cool bunch of lawyers, which is not a + phrase you get to use every day.

    + +
  • 22 March 2006 -- BusyBox 1.1.1 +

    The new maintainer is Rob Landley, and the new release is BusyBox 1.1.1. Expect a "what's new" document in a few days. (Also, Erik and I have have another announcement pending...)

    +

    Update: Rather than put out an endless stream of 1.1.1.x releases, + the various small fixes have been collected together into a + patch, + and new fixes will be appended to that as needed. Expect 1.1.2 around + June.

    +
  • +
  • 11 January 2006 -- 1.1.0 is out +

    The new stable release is + BusyBox + 1.1.0. It has a number of improvements, including several new applets. + (It also has a few rough spots, + but we're trying out a "release early, release often" strategy to see how + that works. Expect 1.1.1 sometime in March.)

    + +
  • 31 October 2005 -- 1.1.0-pre1 +

    The development branch of busybox is stable enough for wider testing, so + you can now + download, + the first prerelease of 1.1.0. This prerelease includes a lot of + new + functionality: new applets, new features, and extensive rewrites of + several existing applets. This prerelease should be noticeably more + standards + compliant than earlier versions of busybox, although we're + still working out the bugs.

    + +
  • 16 August 2005 -- 1.01 is out + +

    A new stable release (BusyBox + 1.01) is now available for download, containing over a hundred + small + fixes that have cropped up since the 1.00 release.

    + +
  • 13 January 2005 -- Bug and Patch Tracking

    + + Bug reports sometimes get lost when posted to the mailing list. The + developers of BusyBox are busy people, and have only so much they can keep + in their brains at a time. In my case, I'm lucky if I can remember my own + name, much less a bug report posted last week... To prevent your bug report + from getting lost, if you find a bug in BusyBox, please use the + shiny new Bug and Patch Tracking System + to post all the gory details. - +

    - + The same applies to patches... Regardless of whether your patch + is a bug fix or adds spiffy new features, please post your patch + to the Bug and Patch Tracking System to make certain it is + properly considered. -

    - - -
    - - - Older BusyBox News - - -
    -
      +

      +

    • 13 October 2004 -- BusyBox 1.00 released

      -

    • Take me back to the BusyBox web site. -
      - - -

      -

    • 15 July 2003 -- BusyBox 1.0.0-pre1 released

      - - The busybox development series has been under construction for - nearly two years now. Which is just entirely too long... So - it is with great pleasure that I announce the imminent release - of a new stable series. Due to the huge number of changes - since the last stable release (and the usual mindless version - number inflation) I am branding this new stable series verison - 1.0.x... -

      - - The point of "-preX" versions is to get a larger group of - people and vendors testing, so any problems that turn up can be - fixed prior to the magic 1.0.0 release (which should happen - later this month)... I plan to release BusyBox 1.0.0-pre2 next - Monday (July 21st), and, if necessary, -pre3 on July 28th. - Hopefully (i.e. unless some horrible catastrophic problem turns - up) the final BusyBox 1.0.0 release should be ready by the end - of July. -

      - - If you have submitted patches, and they are not in this release - and I have not emailed you explaining why your patch was - rejected, it is safe to say that I have lost your patch. That - happens sometimes. Please do NOT send all your patches, - support questions, etc, directly to Erik. I get hundreds of - emails every day (which is why I end up losing patches - sometimes in the flood)... The busybox mailing list is the - right place to send your patches, support questions, etc. -

      - - I would like to especially thank Vladimir Oleynik (vodz), Glenn - McGrath (bug1), Robert Griebl (sandman), and Manuel Novoa III - (mjn3) for their significant efforts and contributions that - have made this release possible. -

      - - As usual you can download busybox here. - You don't really need to bother with the - changelog, as the changes - vs the stable version are way too extensive to easily enumerate. - But you can take a look if you really want too. - -

      Have Fun! -

      - - - -

      -

    • 26 October 2002 -- BusyBox 0.60.5 released

      - - I am very pleased to announce that the BusyBox 0.60.5 (stable) - is now available for download. This is a bugfix release for - the stable series to address all the problems that have turned - up since the last release. Unfortunately, the previous release - had a few nasty bugs (i.e. init could deadlock, gunzip -c tried - to delete source files, cp -a wouldn't copy symlinks, and init - was not always providing controlling ttys when it should have). - I know I said that the previous release would be the end of the - 0.60.x series. Well, it turns out I'm a liar. But this time I - mean it (just like last time ;-). This will be the last - release for the 0.60.x series -- all further development work - will be done for the development busybox tree. Expect the development - version to have its first real release very very soon now... - -

      - The changelog has all - the details. As usual you can download busybox here. -

      Have Fun! -

      - -

      -

    • 18 September 2002 -- BusyBox 0.60.4 released

      - - I am very pleased to announce that the BusyBox 0.60.4 - (stable) is now available for download. This is primarily - a bugfix release for the stable series to address all - the problems that have turned up since the last - release. This will be the last release for the 0.60.x series. - I mean it this time -- all further development work will be done - on the development busybox tree, which is quite solid now and - should soon be getting its first real release. - -

      - The changelog has all - the details. As usual you can download busybox here. -

      Have Fun! -

      - - -

      -

    • 27 April 2002 -- BusyBox 0.60.3 released

      - - I am very pleased to announce that the BusyBox 0.60.3 (stable) is - now available for download. This is primarily a bugfix release - for the stable series. A number of problems have turned up since - the last release, and this should address most of those problems. - This should be the last release for the 0.60.x series. The - development busybox tree has been progressing nicely, and will - hopefully be ready to become the next stable release. - -

      - The changelog has all - the details. As usual you can download busybox here. -

      Have Fun! -

      - - -

      -

    • 6 March 2002 -- busybox.net now has mirrors!

      - - Busybox.net is now much more available, thanks to - the fine folks at http://i-netinnovations.com/ - who are providing hosting for busybox.net and - uclibc.org. In addition, we now have two mirrors: - http://busybox.linuxmagic.com/ - in Canada and - http://busybox.csservers.de/ - in Germany. I hope this makes things much more - accessible for everyone! - - -

    • - 3 January 2002 -- Welcome to busybox.net! - -

      Thanks to the generosity of a number of busybox - users, we have been able to purchase busybox.net - (which is where you are probably reading this). - Right now, busybox.net and uclibc.org are both - living on my home system (at the end of my DSL - line). I apologize for the abrupt move off of - busybox.lineo.com. Unfortunately, I no longer have - the access needed to keep that system updated (for - example, you might notice the daily snapshots there - stopped some time ago).

      - -

      Busybox.net is currently hosted on my home - server, at the end of a DSL line. Unfortunately, - the load on them is quite heavy. To address this, - I'm trying to make arrangements to get busybox.net - co-located directly at an ISP. To assist in the - co-location effort, Mark Whitley - (author of busybox sed, cut, and grep) has donated - his NetWinder computer - for hosting busybox.net and uclibc.org. Once this - system is co-located, the current speed problems - should be completely eliminated. Hopefully, too, - some of you will volunteer to set up some mirror - sites, to help to distribute the load a bit.

      - -

      - Since some people expressed concern over BusyBox - donations, let me assure you that no one is getting - rich here. All BusyBox and uClibc donations will be - spent paying for bandwidth and needed hardware - upgrades. For example, Mark's NetWinder currently - has just 64Meg of memory. As demonstrated when - google spidered the site the other day, 64 Megs in - not enough, so I'm going to be ordering 256Megs of - ram and a larger hard drive for the box today. So - far, donations received have been sufficient to - cover almost all expenses. In the future, we may - have co-location fees to worry about, but for now - we are ok. A HUGE thank-you goes out to - everyone that has contributed!
      - -Erik

      -
    • - -
    • - 20 November 2001 -- BusyBox 0.60.2 released - -

      We am very pleased to announce that the BusyBox - 0.60.2 (stable) is now released to the world. This - one is primarily a bugfix release for the stable - series, and it should take care of most everyone's - needs till we can get the nice new stuff we have - been working on in CVS ready to release (with the - wonderful new buildsystem). The biggest change in - this release (beyond bugfixes) is the fact that msh - (the minix shell) has been re-worked by Vladimir N. - Oleynik (vodz) and so it no longer crashes when - told to do complex things with backticks.

      - -

      This release has been tested on x86, ARM, and - powerpc using glibc 2.2.4, libc5, and uClibc, so it - should work with just about any Linux system you - throw it at. See the changelog for most - of the details. The last release was - very solid for people, and this one should - be even better.

      - -

      As usual BusyBox 0.60.2 can be downloaded from - http://www.busybox.net/downloads.

      - -

      Have Fun.
      - -Erik

      -
    • - -
    • 18 November 2001 -- Help us buy busybox.net! - - -
      - Click here to help buy busybox.net! -
      - - - - - - -
      -
      - - - I've contacted the current owner of busybox.net and he is willing - to sell the domain name -- for $250. He also owns busybox.org but - will not part with it... I will then need to pay the registry fee - for a couple of years and start paying for bandwidth, so this will - initially cost about $300. I would like to host busybox.net on my - home machine (codepoet.org) so I have full control over the system, - but to do that would require that I increase the level of bandwidth - I am paying for. Did you know that so far this month, there - have been over 1.4 Gigabytes of busybox ftp downloads? I don't - even know how much CVS bandwidth it requires. For the - time being, Lineo has continued to graciously provide this - bandwidth, despite the fact that I no longer work for them. If I - start running this all on my home machine, paying for the needed bandwidth - will start costing some money. -

      - - I was going to pay it all myself, but my wife didn't like that - idea at all (big surprise). It turns out <insert argument - where she wins and I don't> she has better ideas - about what we should spend our money on that don't involve - busybox. She suggested I should ask for contributions on the - mailing list and web page. So... -

      - - I am hoping that if everyone could contribute a bit, we could pick - up the busybox.net domain name and cover the bandwidth costs. I - know that busybox is being used by a lot of companies as well as - individuals -- hopefully people and companies that are willing to - contribute back a bit. So if everyone could please help out, that - would be wonderful! -

      - - -

    • 23 August 2001 -- BusyBox 0.60.1 released -
      - - This is a relatively minor bug fixing release that fixes - up the bugs that have shown up in the stable release in - the last few weeks. Fortunately, nothing too - serious has shown up. This release only fixes bugs -- no - new features, no new applets. So without further ado, - here it is. Come and get it. -

      - The - changelog has all - the details. As usual BusyBox 0.60.1 can be downloaded from - http://busybox.net/downloads. -

      Have Fun! -

      - - -

    • 2 August 2001 -- BusyBox 0.60.0 released -
      - I am very pleased to announce the immediate availability of - BusyBox 0.60.0. I have personally tested this release with libc5, glibc, - and uClibc on - x86, ARM, and powerpc using linux 2.2 and 2.4, and I know a number - of people using it on everything from ia64 to m68k with great success. - Everything seems to be working very nicely now, so getting a nice - stable bug-free(tm) release out seems to be in order. This releases fixes - a memory leak in syslogd, a number of bugs in the ash and msh shells, and - cleans up a number of things. - -

      - - Those wanting an easy way to test the 0.60.0 release with uClibc can - use User-Mode Linux - to give it a try by downloading and compiling - buildroot.tar.gz. - You don't have to be root or reboot your machine to run test this way. - Preconfigured User-Mode Linux kernel source is also on busybox.net. -

      - Another cool thing is the nifty - BusyBox Tutorial contributed by K Computing. This requires - a ShockWave plugin (or standalone viewer), so you may want to grab the - the GPLed shockwave viewer from here - to view the tutorial. -

      - - Finally, In case you didn't notice anything odd about the - version number of this release, let me point out that this release - is not 0.53, because I bumped the version number up a - bit. This reflects the fact that this release is intended to form - a new stable BusyBox release series. If you need to rely on a - stable version of BusyBox, you should plan on using the stable - 0.60.x series. If bugs show up then I will release 0.60.1, then - 0.60.2, etc... This is also intended to deal with the fact that - the BusyBox build system will be getting a major overhaul for the - next release and I don't want that to break products that people - are shipping. To avoid that, the new build system will be - released as part of a new BusyBox development series that will - have some not-yet-decided-on odd version number. Once things - stabilize and the new build system is working for everyone, then - I will release that as a new stable release series. - -

      - The - changelog has all - the details. As usual BusyBox 0.60.0 can be downloaded from - http://busybox.net/downloads. -

      Have Fun! -

      - - -

    • 7 July 2001 -- BusyBox 0.52 released -
      - - I am very pleased to announce the immediate availability of - BusyBox 0.52 (the "new-and-improved rock-solid release"). This - release is the result of many hours of work and has tons - of bugfixes, optimizations, and cleanups. This release adds - several new applets, including several new shells (such as hush, msh, - and ash). - -

      - The - changelog covers - some of the more obvious details, but there are many many things that - are not mentioned, but have been improved in subtle ways. As usual, - BusyBox 0.52 can be downloaded from - http://busybox.net/downloads. -

      Have Fun! -

      - - -

    • 10 April 2001 - Graph of Busybox Growth -
      - The illustrious Larry Doolittle has made a PostScript chart of the growth - of the Busybox tarball size over time. It is available for downloading / - viewing right here. - -

      (Note that while the number of applets in Busybox has increased, you - can still configure Busybox to be as small as you want by selectively - turning off whichever applets you don't need.) -

      - - -

    • 10 April 2001 -- BusyBox 0.51 released -
      - - BusyBox 0.51 (the "rock-solid release") is now out there. This - release adds only 2 new applets: env and vi. The vi applet, - contributed by Sterling Huxley, is very functional, and is only - 22k. This release fixes 3 critical bugs in the 0.50 release. - There were 2 potential segfaults in lash (the busybox shell) in - the 0.50 release which are now fixed. Another critical bug in - 0.50 which is now fixed: syslogd from 0.50 could potentially - deadlock the init process and thereby break your entire system. -

      - - There are a number of improvements in this release as well. For - one thing, the wget applet is greatly improved. Dmitry Zakharov - added FTP support, and Laurence Anderson make wget fully RFC - compliant for HTTP 1.1. The mechanism for including utility - functions in previous releases was clumsy and error prone. Now - all utility functions are part of a new libbb library, which makes - maintaining utility functions much simpler. And BusyBox now - compiles on itanium systems (thanks to the Debian itanium porters - for letting me use their system!). -

      - You can read the - changelog for - complete details. BusyBox 0.51 can be downloaded from - http://busybox.net/downloads. -

      Have Fun! -

      - -

    • Busybox Boot-Floppy Image - -

      Because you asked for it, we have made available a Busybox boot floppy - image. Here's how you use it: - -

        - -
      1. - Download the image - -
      2. dd it onto a floppy like so: dd if=busybox.floppy.img - of=/dev/fd0 ; sync - -
      3. Pop it in a machine and boot up. - -
      - -

      If you want to look at the contents of the initrd image, do this: - -

      -	    mount ./busybox.floppy.img /mnt -o loop -t msdos        
      -	    cp /mnt/initrd.gz /tmp                          
      -	    umount /mnt           
      -	    gunzip /tmp/initrd.gz
      -	    mount /tmp/initrd /mnt -o loop -t minix
      -    
      - - -
    • 15 March 2001 -- BusyBox 0.50 released -
      - - This release adds several new applets including ifconfig, route, pivot_root, stty, - and tftp, and also fixes tons of bugs. Tab completion in the - shell is now working very well, and the shell's environment variable - expansion was fixed. Tons of other things were fixed or made - smaller. For a fairly complete overview, see the - changelog. -

      - lash (the busybox shell) is still with us, fixed up a bit so it - now behaves itself quite nicely. It really is quite usable as - long as you don't expect it to provide Bourne shell grammer. - Standard things like pipes, redirects, command line editing, and - environment variable expansion work great. But we have found that - this shell, while very usable, does not provide an extensible - framework for adding in full Bourne shell behavior. So the first order of - business as we begin working on the next BusyBox release will be to merge in the new shell - currently in progress at - Larry Doolittle's website. -

      - - -

    • 27 January 2001 -- BusyBox 0.49 released -
      - - Several new applets, lots of bug fixes, cleanups, and many smaller - things made nicer. Several cleanups and improvements to the shell. - For a list of the most interesting changes - you might want to look at the changelog. -

      - Special thanks go out to Matt Kraai and Larry Doolittle for all their - work on this release, and for keeping on top of things while I've been - out of town. -

      - Special Note
      - - BusyBox 0.49 was supposed to have replaced lash, the BusyBox - shell, with a new shell that understands full Bourne shell/Posix shell grammer. - Well, that simply didn't happen in time for this release. A new - shell that will eventually replace lash is already under - construction. This new shell is being developed by Larry - Doolittle, and could use all of our help. Please see the work in - progress on Larry's website - and help out if you can. This shell will be included in the next - release of BusyBox. -

      - -

    • 13 December 2000 -- BusyBox 0.48 released -
      - - This release fixes lots and lots of bugs. This has had some very - rigorous testing, and looks very, very clean. The usual tar - update of course: tar no longer breaks hardlinks, tar -xzf is - optionally supported, and the LRP folks will be pleased to know - that 'tar -X' and 'tar --exclude' are both now in. Applets are - now looked up using a binary search making lash (the busybox - shell) much faster. For the new debian-installer (for Debian - woody) a .udeb can now be generated. -

      - The curious can get a list of some of the more interesting changes by reading - the changelog. -

      - Many thanks go out to the many many people that have contributed to - this release, especially Matt Kraai, Larry Doolittle, and Kent Robotti. -

      -

    • 26 September 2000 -- BusyBox 0.47 released -
      - - This release fixes lots of bugs (including an ugly bug in 0.46 - syslogd that could fork-bomb your system). Added several new - apps: rdate, wget, getopt, dos2unix, unix2dos, reset, unrpm, - renice, xargs, and expr. syslogd now supports network logging. - There are the usual tar updates. Most apps now use getopt for - more correct option parsing. - See the changelog - for complete details. - - -

    • 11 July 2000 -- BusyBox 0.46 released -
      - - This release fixes several bugs (including a ugly bug in tar, - and fixes for NFSv3 mount support). Added a dumpkmap to allow - people to dump a binary keymaps for use with 'loadkmap', and a - completely reworked 'grep' and 'sed' which should behave better. - BusyBox shell can now also be used as a login shell. - See the changelog - for complete details. - - -

    • 21 June 2000 -- BusyBox 0.45 released -
      - - This release has been slow in coming, but is very solid at this - point. BusyBox now supports libc5 as well as GNU libc. This - release provides the following new apps: cut, tr, insmod, ar, - mktemp, setkeycodes, md5sum, uuencode, uudecode, which, and - telnet. There are bug fixes for just about every app as well (see - the changelog for - details). -

      - Also, some exciting infrastructure news! Busybox now has its own - mailing list, - publically browsable - CVS tree, - anonymous - CVS access, and - for those that are actively contributing there is even - CVS write access. - I think this will be a huge help to the ongoing development of BusyBox. -

      - Also, for the curious, there is no 0.44 release. Somehow 0.44 got announced - a few weeks ago prior to its actually being released. To avoid any confusion - we are just skipping 0.44. -

      - Many thanks go out to the many people that have contributed to this release - of BusyBox (esp. Pavel Roskin)! - - -

    • 19 April 2000 -- syslogd bugfix -
      - Turns out that there was still a bug in busybox syslogd. - For example, with the following test app: -
      -	#include <syslog.h>
      -
      -	int do_log(char* msg, int delay)
      -	{
      -	    openlog("testlog", LOG_PID, LOG_DAEMON);
      -	    while(1) {
      -	        syslog(LOG_ERR, "%s: testing one, two, three\n", msg);
      -	        sleep(delay);
      -	    }
      -	    closelog();
      -	    return(0);
      -	};
      -
      -	int main(void)
      -	{
      -	    if (fork()==0)
      -	        do_log("A", 2);
      -	    do_log("B", 3);
      -	}
      -
      - it should be logging stuff from both "A" and "B". As released in 0.43 only stuff - from "A" would have been logged. This means that if init tries to log something - while say ppp has the syslog open, init would block (which is bad, bad, bad). -

      - Karl M. Hegbloom has created a fix for the problem. - Thanks Karl! - - -

    • 18 April 2000 -- BusyBox 0.43 released (finally!) -
      - I have finally gotten everything into a state where I feel pretty - good about things. This is definitely the most stable, solid release - so far. A lot of bugs have been fixed, and the following new apps - have been added: sh, basename, dirname, killall, uptime, - freeramdisk, tr, echo, test, and usleep. Tar has been completely - rewritten from scratch. Bss size has also been greatly reduced. - More details are available in the - changelog. - Oh, and as a special bonus, I wrote some fairly comprehensive - documentation, complete with examples and full usage information. - -

      - Many thanks go out to the fine people that have helped by submitting patches - and bug reports; particularly instrumental in helping for this release were - Karl Hegbloom, Pavel Roskin, Friedrich Vedder, Emanuele Caratti, - Bob Tinsley, Nicolas Pitre, Avery Pennarun, Arne Bernin, John Beppu, and Jim Gleason. - There were others so if I somehow forgot to mention you, I'm very sorry. -

      - - You can grab BusyBox 0.43 tarballs here. - -

    • 9 April 2000 -- BusyBox 0.43 pre release -
      - Unfortunately, I have not yet finished all the things I want to - do for BusyBox 0.43, so I am posting this pre-release for people - to poke at. This contains my complete rewrite of tar, which now weighs in at - 5k (7k with all options turned on) and works for reading and writing - tarballs (which it does correctly for everything I have been able to throw - at it). Tar also (optionally) supports the "--exclude" option (mainly because - the Linux Router Project folks asked for it). This also has a pre-release - of the micro shell I have been writing. This pre-release should be stable - enough for production use -- it just isn't a release since I have some structural - changes I still want to make. -

      - The pre-release can be found here. - Please let me know ASAP if you find any bugs. - -

    • 28 March 2000 -- Andersen Baby Boy release -
      - I am pleased to announce that on Tuesday March 28th at 5:48pm, weighing in at 7 - lbs. 12 oz, Micah Erik Andersen was born at LDS Hospital here in Salt Lake City. - He was born in the emergency room less then 5 minutes after we arrived -- and - it was such a relief that we even made it to the hospital at all. Despite the - fact that I was driving at an amazingly unlawful speed and honking at everybody - and thinking decidedly unkind thoughts about the people in our way, my wife - (inconsiderate of my feelings and complete lack of medical training) was lying - down in the back seat saying things like "I think I need to start pushing now" - (which she then proceeded to do despite my best encouraging statements to the - contrary). -

      - Anyway, I'm glad to note that despite the much-faster-than-we-were-expecting - labor, both Shaunalei and our new baby boy are doing wonderfully. -

      - So now that I am done with my excuse for the slow release cycle... - Progress on the next release of BusyBox has been slow but steady. I expect - to have a release sometime during the first week of April. This release will - include a number of important changes, including the addition of a shell, a - re-write of tar (to accommodate the Linux Router Project), and syslogd can now - accept multiple concurrent connections, fixing lots of unexpected blocking - problems. - - -

    • 11 February 2000 -- BusyBox 0.42 released -
      - - This is the most solid BusyBox release so far. Many, many - bugs have been fixed. See the - changelog for details. - - Of particular interest, init will now cleanly unmount - filesystems on reboot, cp and mv have been rewritten and - behave much better, and mount and umount no longer leak - loop devices. Many thanks go out to Randolph Chung, - Karl M. Hegbloom, Taketoshi Sano, and Pavel Roskin for - their hard work on this release of BusyBox. Please pound - on it and let me know if you find any bugs. - -

    • 19 January 2000 -- BusyBox 0.41 released -
      - - This release includes bugfixes to cp, mv, logger, true, false, - mkdir, syslogd, and init. New apps include wc, hostid, - logname, tty, whoami, and yes. New features include loop device - support in mount and umount, and better TERM handling by init. - The changelog can be found here. - -

    • 7 January 2000 -- BusyBox 0.40 released -
      - - This release includes bugfixes to init (now includes inittab support), - syslogd, head, logger, du, grep, cp, mv, sed, dmesg, ls, kill, gunzip, and mknod. - New apps include sort, uniq, lsmod, rmmod, fbset, and loadacm. - In particular, this release fixes an important bug in tar which - in some cases produced serious security problems. - As always, the changelog can be found here. - -

    • 11 December 1999 -- BusyBox Website -
      - I have received permission from Bruce Perens (the original author of BusyBox) - to set up this site as the new primary website for BusyBox. This website - will always contain pointers to the latest and greatest, and will also - contain the latest documentation on how to use BusyBox, what it can do, - what arguments its apps support, etc. - -

    • 10 December 1999 -- BusyBox 0.39 released -
      - This release includes fixes to init, reboot, halt, kill, and ls, and contains - the new apps ping, hostname, mkfifo, free, tail, du, tee, and head. A full - changelog can be found here. -

    • 5 December 1999 -- BusyBox 0.38 released -
      - This release includes fixes to tar, cat, ls, dd, rm, umount, find, df, - and make install, and includes new apps syslogd/klogd and logger. -
    + When you take a careful look at nearly every embedded Linux device or + software distribution shipping today, you will find a copy of BusyBox. + With countless routers, set top boxes, wireless access points, PDAs, and + who knows what else, the future for Linux and BusyBox on embedded devices + is looking very bright. +

    - + It is therefore with great satisfaction that I declare each and every + device already shipping with BusyBox is now officially out of date. + The highly anticipated release of BusyBox 1.00 has arrived! -

    - - - Important Links - - -
    +

    -

      + Over three years in development, BusyBox 1.00 represents a tremendous + improvement over the old 0.60.x stable series. Now featuring a Linux + KernelConf based configuration system (as used by the Linux kernel), + Linux 2.6 kernel support, many many new applets, and the development + work and testing of thousands of people from around the world. -
    • Take me back to http://busybox.net/.

      -

    • - Free Software from Bruce Perens
      - The original idea for BusyBox, and all versions up to 0.26 were written - by Bruce Perens. This is his BusyBox website. + If you are already using BusyBox, you are strongly encouraged to upgrade to + BusyBox 1.00. If you are considering developing an embedded Linux device + or software distribution, you may wish to investigate if using BusyBox is + right for your application. If you need help getting started using + BusyBox, if you wish to donate to help cover expenses, or if you find a bug + and need help reporting it, you are invited to visit the BusyBox FAQ. +

      -

    • - Freshmeat AppIndex record for BusyBox + As usual you can download busybox here. + +

      Have Fun! +

      +

    • Old News

      + Click here to read older news -

    +
  • 16 August 2004 -- BusyBox 1.0.0-rc3 released

    + + Here goes release candidate 3... +

    + The changelog has all the details. + And as usual you can download busybox here. + +

    Have Fun! + +

    +

  • 26 July 2004 -- BusyBox 1.0.0-rc2 released

    + + Here goes release candidate 2... +

    + The changelog has all the details. + And as usual you can download busybox here. + +

    Have Fun! + +

    +

  • 20 July 2004 -- BusyBox 1.0.0-rc1 released

    + + Here goes release candidate 1... This fixes all (most?) of the problems + that have turned up since -pre10. In particular, loading and unloading of + kernel modules with 2.6.x kernels should be working much better. +

    + + I really want to get BusyBox 1.0.0 released soon and I see no real + reason why the 1.0.0 release shouldn't happen with things pretty much as + is. BusyBox is in good shape at the moment, and it works nicely for + everything that I'm doing with it. And from the reports I've been getting, + it works nicely for what most everyone else is doing with it as well. + There will eventually be a 1.0.1 anyway, so we might as well get on with + it. No, BusyBox is not perfect. No piece of software ever is. And while + there is still plenty that can be done to improve things, most of that work + is waiting till we can get a solid 1.0.0 release out the door.... +

    + + Please do not bother to send in patches adding cool new features at this + time. Only bug-fix patches will be accepted. If you have submitted a + bug-fixing patch to the busybox mailing list and no one has emailed you + explaining why your patch was rejected, it is safe to say that your patch + has been lost or forgotten. That happens sometimes. Please re-submit your + bug-fixing patch to the BusyBox mailing list, and be sure to put "[PATCH]" + at the beginning of the email subject line! + +

    + The changelog has all the details. + And as usual you can download busybox here. + +

    Have Fun! + +

    + On a less happy note, My 92 year old grandmother (my dad's mom) passed away + yesterday (June 19th). The funeral will be Thursday in a little town about + 2 hours south of my home. I've checked and there is absolutely no way I + could be back in time for the funeral if I attend OLS and give my presentation + as scheduled. +

    + As such, it is with great reluctance and sadness that I have come + to the conclusion I will have to make my appologies and skip OLS + this year. +

    + + +

    +

  • 13 April 2004 -- BusyBox 1.0.0-pre10 released

    + + Ok, I lied. It turns out that -pre9 will not be the final BusyBox + pre-release. With any luck however -pre10 will be, since I really + want to get BusyBox 1.0.0 released very soon. As usual, please do not + bother to send in patches adding cool new features at this time. Only + bug-fix patches will be accepted. It would also be very helpful if + people could continue to review the BusyBox documentation and submit + improvements. + +

    + The changelog has all the details. + And as usual you can download busybox here. + +

    Have Fun! +

    + + +

    +

  • 6 April 2004 -- BusyBox 1.0.0-pre9 released

    + + Here goes the final BusyBox pre-release... This is your last chance for + bug fixes. With luck this will be released as BusyBox 1.0.0 later this + week. Please do not bother to send in patches adding cool new features at + this time. Only bug-fix patches will be accepted. It would also be + very helpful if people could help review the BusyBox documentation + and submit improvements. I've spent a lot of time updating the + documentation to make it better match reality, but I could really use some + assistance in checking that the features supported by the various applets + match the features listed in the documentation. + +

    + I had hoped to get this released a month ago, but + + another release on 1 March 2004 has kept me busy... + +

    + The changelog has all the details. + And as usual you can download busybox here. + +

    Have Fun! +

    + + +

    +

  • 23 February 2004 -- BusyBox 1.0.0-pre8 released

    + + Here goes yet another BusyBox pre-release... Please do not bother to send + in patches supplying new features at this time. Only bug-fix patches will + be accepted. If you have a cool new feature you would like to see + supported, or if you have an amazing new applet you would like to submit, + please wait and submit such things later. We really want to get a release + out we can all be proud of. We are still aiming to finish off the -pre + series in February and move on to the final 1.0.0 release... So if you + spot any bugs, now would be an excellent time to send in a fix to the + busybox mailing list. It would also be very helpful if people could + help review the BusyBox documentation and submit improvements. It would be + especially helpful if people could check that the features supported by the + various applets match the features listed in the documentation. + +

    + + The changelog has all the details. + And as usual you can download busybox here. + +

    Have Fun! +

    + + +

  • 4 February 2004 -- BusyBox 1.0.0-pre7 released

    + + There was a bug in -pre6 that broke argument parsing for a + number of applets, since a variable was not being zeroed out + properly. This release is primarily intended to fix that one + problem. In addition, this release fixes several other + problems, including a rewrite by mjn3 of the code for parsing + the busybox.conf file used for suid handling, some shell updates + from vodz, and a scattering of other small fixes. We are still + aiming to finish off the -pre series in February and move on to + the final 1.0.0 release... If you see any problems, of have + suggestions to make, as always, please feel free to email the + busybox mailing list. + +

    + + The changelog has all + the details. And as usual you can + download busybox here. + +

    Have Fun! +

    + + +

    +

  • 30 January 2004 -- BusyBox 1.0.0-pre6 released

    + + Here goes the next pre-release for the new BusyBox stable + series. This release adds a number of size optimizations, + updates udhcp, fixes up 2.6 modutils support, updates ash + and the shell command line editing, and the usual pile of + bug fixes both large and small. Things appear to be + settling down now, so with a bit of luck and some testing + perhaps we can finish off the -pre series in February and + move on to the final 1.0.0 release... If you see any + problems, of have suggestions to make, as always, please + feel free to email the busybox mailing list. + +

    + + People who rely on the daily BusyBox snapshots + should be aware that snapshots of the old busybox 0.60.x + series are no longer available. Daily snapshots are now + only available for the BusyBox 1.0.0 series and now use + the naming scheme "busybox-<date>.tar.bz2". Please + adjust any build scripts using the old naming scheme accordingly. + +

    + + The changelog has all + the details. And as usual you can + download busybox here. + +

    Have Fun! +

    + + +

    +

  • 23 December 2003 -- BusyBox 1.0.0-pre5 released

    + + Here goes the next pre-release for the new BusyBox stable + series. The most obvious thing in this release is a fix for + a terribly stupid bug in mount that prevented it from working + properly unless you specified the filesystem type. This + release also fixes a few compile problems, updates udhcp, + fixes a silly bug in fdisk, fixes ifup/ifdown to behave like + the Debian version, updates devfsd, updates the 2.6.x + modutils support, add a new 'rx' applet, removes the obsolete + 'loadacm' applet, fixes a few tar bugs, fixes a sed bug, and + a few other odd fixes. + +

    + + If you see any problems, of have suggestions to make, as + always, please feel free to send an email to the busybox + mailing list. + +

    + + The changelog has all + the details. And as usual you can + download busybox here. + +

    Have Fun! +

    + + + +

  • 10 December 2003 -- BusyBox 1.0.0-pre4 released

    + + Here goes the fourth pre-release for the new BusyBox stable + series. This release includes major rework to sed, lots of + rework on tar, a new tiny implementation of bunzip2, a new + devfsd applet, support for 2.6.x kernel modules, updates to + the ash shell, sha1sum and md5sum have been merged into a + common applet, the dpkg applets has been cleaned up, and tons + of random bugs have been fixed. Thanks everyone for all the + testing, bug reports, and patches! Once again, a big + thank-you goes to Glenn McGrath (bug1) for stepping in and + helping get patches merged! + +

    + + And of course, if you are reading this, you might have noticed + the busybox website has been completely reworked. Hopefully + things are now somewhat easier to navigate... If you see any + problems, of have suggestions to make, as always, please feel + free to send an email to the busybox mailing list. + +

    + + The changelog has all + the details. And as usual you can + download busybox here. + +

    Have Fun! + + + +

    +

  • 12 Sept 2003 -- BusyBox 1.0.0-pre3 released

    + + Here goes the third pre-release for the new BusyBox stable + series. The last prerelease has held up quite well under + testing, but a number of problems have turned up as the number + of people using it has increased. Thanks everyone for all + the testing, bug reports, and patches! + +

    + + If you have submitted a patch or a bug report to the busybox + mailing list and no one has emailed you explaining why your + patch was rejected, it is safe to say that your patch has + somehow gotten lost or forgotten. That happens sometimes. + Please re-submit your patch or bug report to the BusyBox + mailing list! + +

    + + The point of the "-preX" versions is to get a larger group of + people and vendors testing, so any problems that turn up can be + fixed prior to the final 1.0.0 release. The main feature + (besides additional testing) that is still still on the TODO + list before the final BusyBox 1.0.0 release is sorting out the + modutils issues. For the new 2.6.x kernels, we already have + patches adding insmod and rmmod support and those need to be + integrated. For 2.4.x kernels, for which busybox only supports + a limited number of architectures, we may want to invest a bit + more work before we cut 1.0.0. Or we may just leave 2.4.x + module loading alone. + +

    + + I had hoped this release would be out a month ago. And of + course, it wasn't since Erik became busy getting a release of + uClibc + out the door. Many thanks to Glenn McGrath (bug1) for + stepping in and helping get a bunch of patches merged! I am + not even going to state a date for releasing BusyBox 1.0.0 + -pre4 (or the final 1.0.0). We're aiming for late September... + But if this release proves as to be exceptionally stable (or + exceptionally unstable!), the next release may be very soon + indeed. + +

    + + The changelog has all + the details. And as usual you can + download busybox here. + +

    Have Fun! + + +

    +

  • 30 July 2003 -- BusyBox 1.0.0-pre2 released

    + + Here goes another pre release for the new BusyBox stable + series. The last prerelease (pre1) was given quite a lot of + testing (thanks everyone!) which has helped turn up a number of + bugs, and these problems have now been fixed. + +

    + + Highlights of -pre2 include updating the 'ash' shell to sync up + with the Debian 'dash' shell, a new 'hdparm' applet was added, + init again supports pivot_root, The 'reboot' 'halt' and + 'poweroff' applets can now be used without using busybox init. + an ifconfig buffer overflow was fixed, losetup now allows + read-write loop devices, uClinux daemon support was added, the + 'watchdog', 'fdisk', and 'kill' applets were rewritten, there were + tons of doc updates, and there were many other bugs fixed. +

    - + If you have submitted a patch and it is not included in this + release and Erik has not emailed you explaining why your patch + was rejected, it is safe to say that he has lost your patch. + That happens sometimes. Please re-submit your patch to the + BusyBox mailing list. +

    -

  • -

    + The point of the "-preX" versions is to get a larger group of + people and vendors testing, so any problems that turn up can be + fixed prior to the final 1.0.0 release. The main feature that + is still still on the TODO list before the final BusyBox 1.0.0 + release is adding module support for the new 2.6.x kernels. If + necessary, a -pre3 BusyBox release will happen on August 6th. + Hopefully (i.e. unless some horrible catastrophic problem + turns up) the final BusyBox 1.0.0 release will be ready by + then... +

    + The changelog has all + the details. As usual you can download busybox here. +

    Have Fun! +

    - -


    - - - +

    +

  • 15 July 2003 -- BusyBox 1.0.0-pre1 released

    + + The busybox development series has been under construction for + nearly two years now. Which is just entirely too long... So + it is with great pleasure that I announce the imminent release + of a new stable series. Due to the huge number of changes + since the last stable release (and the usual mindless version + number inflation) I am branding this new stable series verison + 1.0.x... +

    -

  • + The point of "-preX" versions is to get a larger group of + people and vendors testing, so any problems that turn up can be + fixed prior to the magic 1.0.0 release (which should happen + later this month)... I plan to release BusyBox 1.0.0-pre2 next + Monday (July 21st), and, if necessary, -pre3 on July 28th. + Hopefully (i.e. unless some horrible catastrophic problem turns + up) the final BusyBox 1.0.0 release should be ready by the end + of July. +

    -

    + If you have submitted patches, and they are not in this release + and I have not emailed you explaining why your patch was + rejected, it is safe to say that I have lost your patch. That + happens sometimes. Please do NOT send all your patches, + support questions, etc, directly to Erik. I get hundreds of + emails every day (which is why I end up losing patches + sometimes in the flood)... The busybox mailing list is the + right place to send your patches, support questions, etc. +

    -

    + I would like to especially thank Vladimir Oleynik (vodz), Glenn + McGrath (bug1), Robert Griebl (sandman), and Manuel Novoa III + (mjn3) for their significant efforts and contributions that + have made this release possible. +

    -

    + As usual you can download busybox here. + You don't really need to bother with the + changelog, as the changes + vs the stable version are way too extensive to easily enumerate. + But you can take a look if you really want too. - +

    Have Fun! +

    -

    -
    - - Mail all comments, insults, suggestions and bribes to - Erik Andersen
    - The Busybox logo is copyright 1999-2002, Erik Andersen. -
    -
    - This site created with the vi editor - - Graphics by GIMP - - Linux Today - -

    Slashdot -

    - Freshmeat -
    - - +

    +

  • 26 October 2002 -- BusyBox 0.60.5 released

    + + I am very pleased to announce that the BusyBox 0.60.5 (stable) + is now available for download. This is a bugfix release for + the stable series to address all the problems that have turned + up since the last release. Unfortunately, the previous release + had a few nasty bugs (i.e. init could deadlock, gunzip -c tried + to delete source files, cp -a wouldn't copy symlinks, and init + was not always providing controlling ttys when it should have). + I know I said that the previous release would be the end of the + 0.60.x series. Well, it turns out I'm a liar. But this time I + mean it (just like last time ;-). This will be the last + release for the 0.60.x series -- all further development work + will be done for the development busybox tree. Expect the development + version to have its first real release very very soon now... + +

    + The changelog has all + the details. As usual you can download busybox here. +

    Have Fun! +

    + +

    +

  • 18 September 2002 -- BusyBox 0.60.4 released

    + + I am very pleased to announce that the BusyBox 0.60.4 + (stable) is now available for download. This is primarily + a bugfix release for the stable series to address all + the problems that have turned up since the last + release. This will be the last release for the 0.60.x series. + I mean it this time -- all further development work will be done + on the development busybox tree, which is quite solid now and + should soon be getting its first real release. + +

    + The changelog has all + the details. As usual you can download busybox here. +

    Have Fun! +

    + + +

    +

  • 27 April 2002 -- BusyBox 0.60.3 released

    + + I am very pleased to announce that the BusyBox 0.60.3 (stable) is + now available for download. This is primarily a bugfix release + for the stable series. A number of problems have turned up since + the last release, and this should address most of those problems. + This should be the last release for the 0.60.x series. The + development busybox tree has been progressing nicely, and will + hopefully be ready to become the next stable release. + +

    + The changelog has all + the details. As usual you can download busybox here. +

    Have Fun! +

    + + +

    +

  • 6 March 2002 -- busybox.net now has mirrors!

    + + Busybox.net is now much more available, thanks to + the fine folks at http://i-netinnovations.com/ + who are providing hosting for busybox.net and + uclibc.org. In addition, we now have two mirrors: + http://busybox.linuxmagic.com/ + in Canada and + http://busybox.csservers.de/ + in Germany. I hope this makes things much more + accessible for everyone! + + +

  • +3 January 2002 -- Welcome to busybox.net! + +

    Thanks to the generosity of a number of busybox +users, we have been able to purchase busybox.net +(which is where you are probably reading this). +Right now, busybox.net and uclibc.org are both +living on my home system (at the end of my DSL +line). I apologize for the abrupt move off of +busybox.lineo.com. Unfortunately, I no longer have +the access needed to keep that system updated (for +example, you might notice the daily snapshots there +stopped some time ago).

    + +

    Busybox.net is currently hosted on my home +server, at the end of a DSL line. Unfortunately, +the load on them is quite heavy. To address this, +I'm trying to make arrangements to get busybox.net +co-located directly at an ISP. To assist in the +co-location effort, Mark Whitley +(author of busybox sed, cut, and grep) has donated +his NetWinder computer +for hosting busybox.net and uclibc.org. Once this +system is co-located, the current speed problems +should be completely eliminated. Hopefully, too, +some of you will volunteer to set up some mirror +sites, to help to distribute the load a bit.

    + +

    + Since some people expressed concern over BusyBox +donations, let me assure you that no one is getting +rich here. All BusyBox and uClibc donations will be +spent paying for bandwidth and needed hardware +upgrades. For example, Mark's NetWinder currently +has just 64Meg of memory. As demonstrated when +google spidered the site the other day, 64 Megs in +not enough, so I'm going to be ordering 256Megs of +ram and a larger hard drive for the box today. So +far, donations received have been sufficient to +cover almost all expenses. In the future, we may +have co-location fees to worry about, but for now +we are ok. A HUGE thank-you goes out to +everyone that has contributed!
    + -Erik

    +
  • + +
  • +20 November 2001 -- BusyBox 0.60.2 released + +

    We am very pleased to announce that the BusyBox +0.60.2 (stable) is now released to the world. This +one is primarily a bugfix release for the stable +series, and it should take care of most everyone's +needs till we can get the nice new stuff we have +been working on in CVS ready to release (with the +wonderful new buildsystem). The biggest change in +this release (beyond bugfixes) is the fact that msh +(the minix shell) has been re-worked by Vladimir N. +Oleynik (vodz) and so it no longer crashes when +told to do complex things with backticks.

    + +

    This release has been tested on x86, ARM, and +powerpc using glibc 2.2.4, libc5, and uClibc, so it +should work with just about any Linux system you +throw it at. See the changelog for most +of the details. The last release was +very solid for people, and this one should +be even better.

    + +

    As usual BusyBox 0.60.2 can be downloaded from +http://www.busybox.net/downloads.

    + +

    Have Fun.
    + -Erik

    +
  • + +
  • 18 November 2001 -- Help us buy busybox.net! + + +
    +Click here to help buy busybox.net! +
    + + + + + + +
    +
    + + +I've contacted the current owner of busybox.net and he is willing +to sell the domain name -- for $250. He also owns busybox.org but +will not part with it... I will then need to pay the registry fee +for a couple of years and start paying for bandwidth, so this will +initially cost about $300. I would like to host busybox.net on my +home machine (codepoet.org) so I have full control over the system, +but to do that would require that I increase the level of bandwidth +I am paying for. Did you know that so far this month, there +have been over 1.4 Gigabytes of busybox ftp downloads? I don't +even know how much CVS bandwidth it requires. For the +time being, Lineo has continued to graciously provide this +bandwidth, despite the fact that I no longer work for them. If I +start running this all on my home machine, paying for the needed bandwidth +will start costing some money. +

    + +I was going to pay it all myself, but my wife didn't like that +idea at all (big surprise). It turns out <insert argument +where she wins and I don't> she has better ideas +about what we should spend our money on that don't involve +busybox. She suggested I should ask for contributions on the +mailing list and web page. So... +

    + +I am hoping that if everyone could contribute a bit, we could pick +up the busybox.net domain name and cover the bandwidth costs. I +know that busybox is being used by a lot of companies as well as +individuals -- hopefully people and companies that are willing to +contribute back a bit. So if everyone could please help out, that +would be wonderful! +

    + + +

  • 23 August 2001 -- BusyBox 0.60.1 released +
    + + This is a relatively minor bug fixing release that fixes + up the bugs that have shown up in the stable release in + the last few weeks. Fortunately, nothing too + serious has shown up. This release only fixes bugs -- no + new features, no new applets. So without further ado, + here it is. Come and get it. +

    + The + changelog has all + the details. As usual BusyBox 0.60.1 can be downloaded from + http://busybox.net/downloads. +

    Have Fun! +

    + + +

  • 2 August 2001 -- BusyBox 0.60.0 released +
    + I am very pleased to announce the immediate availability of + BusyBox 0.60.0. I have personally tested this release with libc5, glibc, + and uClibc on + x86, ARM, and powerpc using linux 2.2 and 2.4, and I know a number + of people using it on everything from ia64 to m68k with great success. + Everything seems to be working very nicely now, so getting a nice + stable bug-free(tm) release out seems to be in order. This releases fixes + a memory leak in syslogd, a number of bugs in the ash and msh shells, and + cleans up a number of things. + +

    + + Those wanting an easy way to test the 0.60.0 release with uClibc can + use User-Mode Linux + to give it a try by downloading and compiling + buildroot.tar.gz. + You don't have to be root or reboot your machine to run test this way. + Preconfigured User-Mode Linux kernel source is also on busybox.net. +

    + Another cool thing is the nifty + BusyBox Tutorial contributed by K Computing. This requires + a ShockWave plugin (or standalone viewer), so you may want to grab the + the GPLed shockwave viewer from here + to view the tutorial. +

    + + Finally, In case you didn't notice anything odd about the + version number of this release, let me point out that this release + is not 0.53, because I bumped the version number up a + bit. This reflects the fact that this release is intended to form + a new stable BusyBox release series. If you need to rely on a + stable version of BusyBox, you should plan on using the stable + 0.60.x series. If bugs show up then I will release 0.60.1, then + 0.60.2, etc... This is also intended to deal with the fact that + the BusyBox build system will be getting a major overhaul for the + next release and I don't want that to break products that people + are shipping. To avoid that, the new build system will be + released as part of a new BusyBox development series that will + have some not-yet-decided-on odd version number. Once things + stabilize and the new build system is working for everyone, then + I will release that as a new stable release series. + +

    + The + changelog has all + the details. As usual BusyBox 0.60.0 can be downloaded from + http://busybox.net/downloads. +

    Have Fun! +

    + + +

  • 7 July 2001 -- BusyBox 0.52 released +
    + + I am very pleased to announce the immediate availability of + BusyBox 0.52 (the "new-and-improved rock-solid release"). This + release is the result of many hours of work and has tons + of bugfixes, optimizations, and cleanups. This release adds + several new applets, including several new shells (such as hush, msh, + and ash). + +

    + The + changelog covers + some of the more obvious details, but there are many many things that + are not mentioned, but have been improved in subtle ways. As usual, + BusyBox 0.52 can be downloaded from + http://busybox.net/downloads. +

    Have Fun! +

    + + +

  • 10 April 2001 - Graph of Busybox Growth +
    +The illustrious Larry Doolittle has made a PostScript chart of the growth +of the Busybox tarball size over time. It is available for downloading / +viewing right here. + +

    (Note that while the number of applets in Busybox has increased, you +can still configure Busybox to be as small as you want by selectively +turning off whichever applets you don't need.) +

    + + +

  • 10 April 2001 -- BusyBox 0.51 released +
    + + BusyBox 0.51 (the "rock-solid release") is now out there. This + release adds only 2 new applets: env and vi. The vi applet, + contributed by Sterling Huxley, is very functional, and is only + 22k. This release fixes 3 critical bugs in the 0.50 release. + There were 2 potential segfaults in lash (the busybox shell) in + the 0.50 release which are now fixed. Another critical bug in + 0.50 which is now fixed: syslogd from 0.50 could potentially + deadlock the init process and thereby break your entire system. +

    + + There are a number of improvements in this release as well. For + one thing, the wget applet is greatly improved. Dmitry Zakharov + added FTP support, and Laurence Anderson make wget fully RFC + compliant for HTTP 1.1. The mechanism for including utility + functions in previous releases was clumsy and error prone. Now + all utility functions are part of a new libbb library, which makes + maintaining utility functions much simpler. And BusyBox now + compiles on itanium systems (thanks to the Debian itanium porters + for letting me use their system!). +

    + You can read the + changelog for + complete details. BusyBox 0.51 can be downloaded from + http://busybox.net/downloads. +

    Have Fun! +

    + +

  • Busybox Boot-Floppy Image + +

    Because you asked for it, we have made available a Busybox boot floppy +image. Here's how you use it: + +

      + +
    1. + Download the image + +
    2. dd it onto a floppy like so: dd if=busybox.floppy.img + of=/dev/fd0 ; sync + +
    3. Pop it in a machine and boot up. + +
    + +

    If you want to look at the contents of the initrd image, do this: + +

    +    mount ./busybox.floppy.img /mnt -o loop -t msdos
    +    cp /mnt/initrd.gz /tmp
    +    umount /mnt
    +    gunzip /tmp/initrd.gz
    +    mount /tmp/initrd /mnt -o loop -t minix
    +
    + + +
  • 15 March 2001 -- BusyBox 0.50 released +
    + + This release adds several new applets including ifconfig, route, pivot_root, stty, + and tftp, and also fixes tons of bugs. Tab completion in the + shell is now working very well, and the shell's environment variable + expansion was fixed. Tons of other things were fixed or made + smaller. For a fairly complete overview, see the + changelog. +

    + lash (the busybox shell) is still with us, fixed up a bit so it + now behaves itself quite nicely. It really is quite usable as + long as you don't expect it to provide Bourne shell grammer. + Standard things like pipes, redirects, command line editing, and + environment variable expansion work great. But we have found that + this shell, while very usable, does not provide an extensible + framework for adding in full Bourne shell behavior. So the first order of + business as we begin working on the next BusyBox release will be to merge in the new shell + currently in progress at + Larry Doolittle's website. +

    + + +

  • 27 January 2001 -- BusyBox 0.49 released +
    + + Several new applets, lots of bug fixes, cleanups, and many smaller + things made nicer. Several cleanups and improvements to the shell. + For a list of the most interesting changes + you might want to look at the changelog. +

    + Special thanks go out to Matt Kraai and Larry Doolittle for all their + work on this release, and for keeping on top of things while I've been + out of town. +

    + Special Note
    + + BusyBox 0.49 was supposed to have replaced lash, the BusyBox + shell, with a new shell that understands full Bourne shell/Posix shell grammer. + Well, that simply didn't happen in time for this release. A new + shell that will eventually replace lash is already under + construction. This new shell is being developed by Larry + Doolittle, and could use all of our help. Please see the work in + progress on Larry's website + and help out if you can. This shell will be included in the next + release of BusyBox. +

    + +

  • 13 December 2000 -- BusyBox 0.48 released +
    + + This release fixes lots and lots of bugs. This has had some very + rigorous testing, and looks very, very clean. The usual tar + update of course: tar no longer breaks hardlinks, tar -xzf is + optionally supported, and the LRP folks will be pleased to know + that 'tar -X' and 'tar --exclude' are both now in. Applets are + now looked up using a binary search making lash (the busybox + shell) much faster. For the new debian-installer (for Debian + woody) a .udeb can now be generated. +

    + The curious can get a list of some of the more interesting changes by reading + the changelog. +

    + Many thanks go out to the many many people that have contributed to + this release, especially Matt Kraai, Larry Doolittle, and Kent Robotti. +

    +

  • 26 September 2000 -- BusyBox 0.47 released +
    + + This release fixes lots of bugs (including an ugly bug in 0.46 + syslogd that could fork-bomb your system). Added several new + apps: rdate, wget, getopt, dos2unix, unix2dos, reset, unrpm, + renice, xargs, and expr. syslogd now supports network logging. + There are the usual tar updates. Most apps now use getopt for + more correct option parsing. + See the changelog + for complete details. + + +

  • 11 July 2000 -- BusyBox 0.46 released +
    + + This release fixes several bugs (including a ugly bug in tar, + and fixes for NFSv3 mount support). Added a dumpkmap to allow + people to dump a binary keymaps for use with 'loadkmap', and a + completely reworked 'grep' and 'sed' which should behave better. + BusyBox shell can now also be used as a login shell. + See the changelog + for complete details. + + +

  • 21 June 2000 -- BusyBox 0.45 released +
    + + This release has been slow in coming, but is very solid at this + point. BusyBox now supports libc5 as well as GNU libc. This + release provides the following new apps: cut, tr, insmod, ar, + mktemp, setkeycodes, md5sum, uuencode, uudecode, which, and + telnet. There are bug fixes for just about every app as well (see + the changelog for + details). +

    + Also, some exciting infrastructure news! Busybox now has its own + mailing list, + publically browsable + CVS tree, + anonymous + CVS access, and + for those that are actively contributing there is even + CVS write access. + I think this will be a huge help to the ongoing development of BusyBox. +

    + Also, for the curious, there is no 0.44 release. Somehow 0.44 got announced + a few weeks ago prior to its actually being released. To avoid any confusion + we are just skipping 0.44. +

    + Many thanks go out to the many people that have contributed to this release + of BusyBox (esp. Pavel Roskin)! + + +

  • 19 April 2000 -- syslogd bugfix +
    +Turns out that there was still a bug in busybox syslogd. +For example, with the following test app: +
    +#include <syslog.h>
    +
    +int do_log(char* msg, int delay)
    +{
    +    openlog("testlog", LOG_PID, LOG_DAEMON);
    +    while(1) {
    +	syslog(LOG_ERR, "%s: testing one, two, three\n", msg);
    +	sleep(delay);
    +    }
    +    closelog();
    +    return(0);
    +};
    +
    +int main(void)
    +{
    +    if (fork()==0)
    +	do_log("A", 2);
    +    do_log("B", 3);
    +}
    +
    +it should be logging stuff from both "A" and "B". As released in 0.43 only stuff +from "A" would have been logged. This means that if init tries to log something +while say ppp has the syslog open, init would block (which is bad, bad, bad). +

    +Karl M. Hegbloom has created a fix for the problem. +Thanks Karl! + + +

  • 18 April 2000 -- BusyBox 0.43 released (finally!) +
    +I have finally gotten everything into a state where I feel pretty +good about things. This is definitely the most stable, solid release +so far. A lot of bugs have been fixed, and the following new apps +have been added: sh, basename, dirname, killall, uptime, +freeramdisk, tr, echo, test, and usleep. Tar has been completely +rewritten from scratch. Bss size has also been greatly reduced. +More details are available in the +changelog. +Oh, and as a special bonus, I wrote some fairly comprehensive +documentation, complete with examples and full usage information. + +

    +Many thanks go out to the fine people that have helped by submitting patches +and bug reports; particularly instrumental in helping for this release were +Karl Hegbloom, Pavel Roskin, Friedrich Vedder, Emanuele Caratti, +Bob Tinsley, Nicolas Pitre, Avery Pennarun, Arne Bernin, John Beppu, and Jim Gleason. +There were others so if I somehow forgot to mention you, I'm very sorry. +

    + +You can grab BusyBox 0.43 tarballs here. + +

  • 9 April 2000 -- BusyBox 0.43 pre release +
    +Unfortunately, I have not yet finished all the things I want to +do for BusyBox 0.43, so I am posting this pre-release for people +to poke at. This contains my complete rewrite of tar, which now weighs in at +5k (7k with all options turned on) and works for reading and writing +tarballs (which it does correctly for everything I have been able to throw +at it). Tar also (optionally) supports the "--exclude" option (mainly because +the Linux Router Project folks asked for it). This also has a pre-release +of the micro shell I have been writing. This pre-release should be stable +enough for production use -- it just isn't a release since I have some structural +changes I still want to make. +

    +The pre-release can be found here. +Please let me know ASAP if you find any bugs. + +

  • 28 March 2000 -- Andersen Baby Boy release +
    +I am pleased to announce that on Tuesday March 28th at 5:48pm, weighing in at 7 +lbs. 12 oz, Micah Erik Andersen was born at LDS Hospital here in Salt Lake City. +He was born in the emergency room less then 5 minutes after we arrived -- and +it was such a relief that we even made it to the hospital at all. Despite the +fact that I was driving at an amazingly unlawful speed and honking at everybody +and thinking decidedly unkind thoughts about the people in our way, my wife +(inconsiderate of my feelings and complete lack of medical training) was lying +down in the back seat saying things like "I think I need to start pushing now" +(which she then proceeded to do despite my best encouraging statements to the +contrary). +

    +Anyway, I'm glad to note that despite the much-faster-than-we-were-expecting +labor, both Shaunalei and our new baby boy are doing wonderfully. +

    +So now that I am done with my excuse for the slow release cycle... +Progress on the next release of BusyBox has been slow but steady. I expect +to have a release sometime during the first week of April. This release will +include a number of important changes, including the addition of a shell, a +re-write of tar (to accommodate the Linux Router Project), and syslogd can now +accept multiple concurrent connections, fixing lots of unexpected blocking +problems. + + +

  • 11 February 2000 -- BusyBox 0.42 released +
    + + This is the most solid BusyBox release so far. Many, many + bugs have been fixed. See the + changelog for details. + + Of particular interest, init will now cleanly unmount + filesystems on reboot, cp and mv have been rewritten and + behave much better, and mount and umount no longer leak + loop devices. Many thanks go out to Randolph Chung, + Karl M. Hegbloom, Taketoshi Sano, and Pavel Roskin for + their hard work on this release of BusyBox. Please pound + on it and let me know if you find any bugs. + +

  • 19 January 2000 -- BusyBox 0.41 released +
    + + This release includes bugfixes to cp, mv, logger, true, false, + mkdir, syslogd, and init. New apps include wc, hostid, + logname, tty, whoami, and yes. New features include loop device + support in mount and umount, and better TERM handling by init. + The changelog can be found here. + +

  • 7 January 2000 -- BusyBox 0.40 released +
    + + This release includes bugfixes to init (now includes inittab support), + syslogd, head, logger, du, grep, cp, mv, sed, dmesg, ls, kill, gunzip, and mknod. + New apps include sort, uniq, lsmod, rmmod, fbset, and loadacm. + In particular, this release fixes an important bug in tar which + in some cases produced serious security problems. + As always, the changelog can be found here. + +

  • 11 December 1999 -- BusyBox Website +
    + I have received permission from Bruce Perens (the original author of BusyBox) + to set up this site as the new primary website for BusyBox. This website + will always contain pointers to the latest and greatest, and will also + contain the latest documentation on how to use BusyBox, what it can do, + what arguments its apps support, etc. + +

  • 10 December 1999 -- BusyBox 0.39 released +
    + This release includes fixes to init, reboot, halt, kill, and ls, and contains + the new apps ping, hostname, mkfifo, free, tail, du, tee, and head. A full + changelog can be found here. +

  • 5 December 1999 -- BusyBox 0.38 released +
    + This release includes fixes to tar, cat, ls, dd, rm, umount, find, df, + and make install, and includes new apps syslogd/klogd and logger. + + +
+ + + diff --git a/release/src/router/busybox/docs/busybox.net/products.html b/release/src/router/busybox/docs/busybox.net/products.html new file mode 100644 index 00000000..7bb07f71 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/products.html @@ -0,0 +1,165 @@ + + + +

Products/Projects Using BusyBox

+ +Do you use BusyBox? I'd love to know about it and +I'd be happy to link to you. + +

+I know of the following projects that use BusyBox -- +listed in the order I happen to add them to the web page: + +

+ +

+And here are products that use BusyBox -- + +

+ + diff --git a/release/src/router/busybox/docs/busybox.net/robots.txt b/release/src/router/busybox/docs/busybox.net/robots.txt deleted file mode 100644 index 086578d0..00000000 --- a/release/src/router/busybox/docs/busybox.net/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# go away -User-agent: * -Disallow: /cgi-bin diff --git a/release/src/router/busybox/docs/busybox.net/screenshot.html b/release/src/router/busybox/docs/busybox.net/screenshot.html old mode 100755 new mode 100644 index 5a8020c0..c5ef18bc --- a/release/src/router/busybox/docs/busybox.net/screenshot.html +++ b/release/src/router/busybox/docs/busybox.net/screenshot.html @@ -1,71 +1,75 @@ - + - - Busybox Screenshot! + - - +

Busybox Screenshot!

- - - - -

Busybox Screenshot!

- - - -
+Everybody loves to look at screenshots, so here is a live action screenshot of BusyBox.
+font-family: monospace; font-size: smaller;" width="100">
 
-
-$ ./busybox 
-BusyBox v1.00-pre1 (2003.07.15-06:37+0000) multi-call binary
+$ busybox
+BusyBox v1.10.1 (2008-04-24 11:30:07 CEST) multi-call binary
+Copyright (C) 1998-2007 Erik Andersen, Rob Landley, Denys Vlasenko
+and others. Licensed under GPLv2.
+See source distribution for full notice.
 
 Usage: busybox [function] [arguments]...
-   or: [function] [arguments]...
+   or: function [arguments]...
 
-        BusyBox is a multi-call binary that combines many common Unix
-        utilities into a single executable.  Most people will create a
-        link to busybox for each function they wish to use, and BusyBox
-        will act like whatever it was invoked as.
+	BusyBox is a multi-call binary that combines many common Unix
+	utilities into a single executable.  Most people will create a
+	link to busybox for each function they wish to use and BusyBox
+	will act like whatever it was invoked as!
 
 Currently defined functions:
-        [, addgroup, adduser, adjtimex, ar, arping, ash, awk, basename,
-        bunzip2, busybox, bzcat, cal, cat, chgrp, chmod, chown, chroot,
-        chvt, clear, cmp, cp, cpio, crond, crontab, cut, date, dc, dd,
-        deallocvt, delgroup, deluser, df, dirname, dmesg, dos2unix, dpkg,
-        dpkg-deb, du, dumpkmap, dumpleases, dutmp, echo, egrep, env, expr,
-        false, fbset, fdflush, fdformat, fgrep, find, fold, free, freeramdisk,
-        fsck.minix, ftpget, ftpput, getopt, getty, grep, gunzip, gzip,
-        halt, head, hexdump, hostid, hostname, httpd, hush, hwclock, id,
-        ifconfig, ifdown, ifup, inetd, init, insmod, ip, ipcalc, iplink,
-        iproute, iptunnel, kill, killall, klogd, lash, length, linuxrc,
-        ln, loadacm, loadfont, loadkmap, logger, login, logname, logread,
-        losetup, ls, lsmod, makedevs, md5sum, mesg, minit, mkdir, mkfifo,
-        mkfs.minix, mknod, mkswap, mktemp, modprobe, more, mount, msh,
-        msvc, mt, mv, nameif, nc, netstat, nslookup, od, openvt, passwd,
-        patch, pidfilehack, pidof, ping, ping6, pivot_root, poweroff,
-        printf, ps, pwd, rdate, readlink, realpath, reboot, renice, reset,
-        rm, rmdir, rmmod, route, rpm, rpm2cpio, run-parts, sed, setkeycodes,
-        sha1sum, sleep, sort, start-stop-daemon, strings, stty, su, sulogin,
-        swapoff, swapon, sync, syslogd, tail, tar, tee, telnet, telnetd,
-        test, tftp, time, top, touch, tr, traceroute, true, tty, udhcpc,
-        udhcpd, umount, uname, uncompress, uniq, unix2dos, unzip, update,
-        uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, watch,
-        watchdog, wc, wget, which, who, whoami, xargs, yes, zcat
-
-
-$ _
+	[, [[, addgroup, adduser, adjtimex, ar, arp, arping, ash,
+	awk, basename, bbconfig, brctl, bunzip2, bzcat, bzip2,
+	cal, cat, catv, chat, chattr, chcon, chgrp, chmod, chown,
+	chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp,
+	comm, cp, cpio, crond, crontab, cryptpw, cttyhack, cut,
+	date, dc, dd, deallocvt, delgroup, deluser, devfsd, df,
+	dhcprelay, diff, dirname, dmesg, dnsd, dos2unix, dpkg,
+	dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject,
+	env, envdir, envuidgid, ether-wake, expand, expr, fakeidentd,
+	false, fbset, fdflush, fdformat, fdisk, fetchmail, fgrep,
+	find, findfs, fold, free, freeramdisk, fsck, fsck.minix,
+	ftpget, ftpput, fuser, getenforce, getopt, getsebool,
+	getty, grep, gunzip, gzip, halt, hd, hdparm, head, hexdump,
+	hostid, hostname, httpd, hush, hwclock, id, ifconfig,
+	ifdown, ifenslave, ifup, inetd, init, insmod, install,
+	ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule,
+	iptunnel, kbd_mode, kill, killall, killall5, klogd, lash,
+	last, length, less, linux32, linux64, linuxrc, ln, load_policy,
+	loadfont, loadkmap, logger, login, logname, logread, losetup,
+	lpd, lpq, lpr, ls, lsattr, lsmod, lzmacat, makedevs, matchpathcon,
+	md5sum, mdev, mesg, microcom, mkdir, mkfifo, mkfs.minix,
+	mknod, mkswap, mktemp, modprobe, more, mount, mountpoint,
+	msh, mt, mv, nameif, nc, netstat, nice, nmeter, nohup,
+	nslookup, od, openvt, passwd, patch, pgrep, pidof, ping,
+	ping6, pipe_progress, pivot_root, pkill, poweroff, printenv,
+	printf, ps, pscan, pwd, raidautorun, rdate, readahead,
+	readlink, readprofile, realpath, reboot, renice, reset,
+	resize, restorecon, rm, rmdir, rmmod, route, rpm, rpm2cpio,
+	rtcwake, run-parts, runcon, runlevel, runsv, runsvdir,
+	rx, script, sed, selinuxenabled, sendmail, seq, sestatus,
+	setarch, setconsole, setenforce, setfiles, setkeycodes,
+	setlogcons, setsebool, setsid, setuidgid, sha1sum, slattach,
+	sleep, softlimit, sort, split, start-stop-daemon, stat,
+	strings, stty, su, sulogin, sum, sv, svlogd, swapoff,
+	swapon, switch_root, sync, sysctl, syslogd, tac, tail,
+	tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp,
+	tftpd, time, top, touch, tr, traceroute, true, tty, ttysize,
+	udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand,
+	uniq, unix2dos, unlzma, unzip, uptime, usleep, uudecode,
+	uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget,
+	which, who, whoami, xargs, yes, zcat, zcip
+
+$ _
 
 
-
- - - - - + diff --git a/release/src/router/busybox/docs/busybox.net/shame.html b/release/src/router/busybox/docs/busybox.net/shame.html new file mode 100644 index 00000000..d9da44b6 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/shame.html @@ -0,0 +1,82 @@ + + + +

Hall of Shame!!!

+ +

This page is no longer updated, these days we forward this sort of +thing to the Software Freedom Law +Center instead.

+ +

The following products and/or projects appear to use BusyBox, but do not +appear to release source code as required by the BusyBox license. This is a violation of the law! +The distributors of these products are invited to contact Erik Andersen if they have any confusion +as to what is needed to bring their products into compliance, or if they have +already brought their product into compliance and wish to be removed from the +Hall of Shame. + +

+ +Here are the details of exactly how to comply +with the BusyBox license, so there should be no question as to +exactly what is expected. +Complying with the Busybox license is easy and completely free, so the +companies listed below should be ashamed of themselves. Furthermore, each +product listed here is subject to being legally ordered to cease and desist +distribution for violation of copyright law, and the distributor of each +product is subject to being sued for statutory copyright infringement damages +of up to $150,000 per work plus legal fees. Nobody wants to be sued, and Erik certainly would prefer to spend +his time doing better things than sue people. But he will sue if forced to +do so to maintain compliance. + +

+ +Do everyone a favor and don't break the law -- if you use busybox, comply with +the busybox license by releasing the source code with your product. + +

+ +

+ + + + diff --git a/release/src/router/busybox/docs/busybox.net/sponsors.html b/release/src/router/busybox/docs/busybox.net/sponsors.html new file mode 100644 index 00000000..e52adfc8 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/sponsors.html @@ -0,0 +1,56 @@ + + +

Sponsors

+ +

Please visit our sponsors and thank them for their support! They have +provided money for equipment and bandwidth. Next time you need help with a +project, consider these fine companies!

+ + + + +

If you wish to be a sponsor, or if you have already contributed and would +like your name added here, email Denys.

+ + diff --git a/release/src/router/busybox/docs/busybox.net/subversion.html b/release/src/router/busybox/docs/busybox.net/subversion.html new file mode 100644 index 00000000..2c4517a3 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/subversion.html @@ -0,0 +1,51 @@ + + +

Accessing Source

+ + + +

Patches

+ +

You can download fixes for particular releases +of busybox, e.g. downloads/fixes-major-minor-patch/ + +

Anonymous Subversion Access

+ +We allow anonymous (read-only) Subversion (svn) access to everyone. To +grab a copy of the latest version of BusyBox using anonymous svn access: + +
+svn co svn://busybox.net/trunk/busybox
+ +

+The stable branches can be obtained with +

+svn co svn://busybox.net/branches/busybox_1_NN_stable
+
+ +

+ +If you are not already familiar with using Subversion, I recommend you visit the Subversion website. You might +also want to read online or buy a copy of the Subversion Book. If you are +already comfortable with using CVS, you may want to skip ahead to the Subversion for CVS Users +part of the Subversion Book. + +

+ +Once you've checked out a copy of the source tree, you can update your source +tree at any time so it is in sync with the latest and greatest by entering your +BusyBox directory and running the command: + +

+svn update
+ +Because you've only been granted anonymous access to the tree, you won't be +able to commit any changes. Changes can be submitted for inclusion by posting +them to the BusyBox mailing list. For those that are actively contributing +Subversion commit access can be made available. + + + diff --git a/release/src/router/busybox/docs/busybox.net/svnindex.css b/release/src/router/busybox/docs/busybox.net/svnindex.css new file mode 100644 index 00000000..b1ca24a0 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/svnindex.css @@ -0,0 +1,92 @@ +/* A sample style sheet for displaying the Subversion directory listing + that is generated by mod_dav_svn and "svnindex.xsl". */ + +body{ + margin: 0; + padding: 0; +} + +a { + color: navy; +} + +.header { + padding-top: 5px; + text-align: center; +} + +.footer { + margin-top: 8em; + padding: 0.5em 1em 0.5em; + border: 1px solid; + border-width: 1px 0; + clear: both; + border-color: rgb(30%,30%,50%) navy rgb(75%,80%,85%) navy; + background: rgb(88%,90%,92%); + font-size: 80%; +} + +.svn { + margin: 3em; +} + +.rev { + margin-right: 3px; + padding-left: 3px; + text-align: left; + font-size: 120%; +} + +.dir a { + text-decoration: none; + color: black; +} + +.file a { + text-decoration: none; + color: black; +} + +.path { + margin: 3px; + padding: 3px; + background: #FFCC66; + font-size: 120%; +} + +.updir { + margin: 3px; + padding: 3px; + margin-left: 3em; + background: #FFEEAA; +} + +.file { + margin: 3px; + padding: 3px; + margin-left: 3em; + background: rgb(95%,95%,95%); +} + +.file:hover { + margin: 3px; + padding: 3px; + margin-left: 3em; + background: rgb(100%,100%,90%); +/* border: 1px black solid; */ +} + +.dir { + margin: 3px; + padding: 3px; + margin-left: 3em; + background: rgb(90%,90%,90%); +} + +.dir:hover { + margin: 3px; + padding: 3px; + margin-left: 3em; + background: rgb(100%,100%,80%); +/* border: 1px black solid; */ +} diff --git a/release/src/router/busybox/docs/busybox.net/svnindex.xsl b/release/src/router/busybox/docs/busybox.net/svnindex.xsl new file mode 100644 index 00000000..2d3297c4 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/svnindex.xsl @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + <xsl:if test="string-length(index/@name) != 0"> + <xsl:value-of select="index/@name"/> + <xsl:text>: </xsl:text> + </xsl:if> + <xsl:value-of select="index/@path"/> + + + + +
+ BUSYBOX +
+
+ +
+
+ +
+ + + +
+ + +
+ + + + + + + + + + + + Revision + + +
+
+ +
+ + + +
+ + +
+ [ + + .. + Parent Directory + + ] +
+
+ + +
+ + + + + + / + +
+
+ + +
+ + + + + + +
+
+ +
diff --git a/release/src/router/busybox/docs/busybox.net/tinyutils.html b/release/src/router/busybox/docs/busybox.net/tinyutils.html new file mode 100644 index 00000000..18313460 --- /dev/null +++ b/release/src/router/busybox/docs/busybox.net/tinyutils.html @@ -0,0 +1,86 @@ + + + +

External Tiny Utilities

+ +This is a list of tiny utilities whose functionality is not provided by +busybox. If you have additional suggestions, please send an e-mail to our +dev mailing list. + +

+ + + + + + + + + + + + + + + + + + + + +
FeatureUtilities
SSHDropbear has both an ssh server and an ssh client that together come in around 100k. It has no external +dependencies (I.E. it does not depend on OpenSSL, using a built-in copy of +LibTomCrypt instead). It's actively maintained, with a quiet but responsive +mailing list.
SMTPssmtp is an extremely simple Mail Transfer Agent.
ntpntpclient is a +tiny ntp client. BusyBox has rdate to set the date from a remote server, but +if you want a daemon to repeatedly adjust the clock over time, try that.
+ +

In a gui environment, you'll probably want a web browser. +Konqueror Embedded requires QT +(or QT Embedded), but not KDE. The Dillo +requires GTK+, but not Gnome. Or you can try the graphical +version of links.

+ +

SCRIPTING LANGUAGES

+

Although busybox has built-in support for shell scripts, plenty of other +small scripting languages are available on the net. A few examples:

+ + + + + + + + + + + + + + + + + + + + + + + + +
languagedescription
microperl A small standalone perl interpreter that can be built from the perl source +s via "make -f Makefile.micro". If you really feel the need for perl on an embe +dded system, this is where to start. +
LuaIf you just want a small embedded scripting language to write new +code in, this Brazilian import is lightweight, fairly popular, and has +a complete book about it online.
rcThe PLAN9 shell. Not compatible with conventional bourne shell syntax, +but fairly lightweight and small.
forthA well known language for fast and small programs, decades old but still +in use for everything from OpenBIOS to computer controlled engine timing.
+ +

For more information, you probably want to look at +buildroot and +TinyGentoo, which +build and use tiny utilities for all sorts of things.

+ + + -- cgit v1.2.3-54-g00ecf