TODO list for busybox in no particular order. Just because something
is listed here doesn't mean that it is going to be added to busybox,
or that doing so is even a good idea. It just means that I _might_ get
around to it some time. If you have any good ideas, please let me know.

* login/sulogin/passwd/getty/etc are part of tinylogin, and so are not
    needed or wanted in busybox (or else I'd have to link to libcrypt).

* Networking apps are going to be split out to a new package called netkit-tiny
    before the next release of Busybox.  This will remove the following items
    from BusyBox: hostid, hostname, nc, nslookup, telnet, and ping.  nfs
    mounting and syslogd (network logging) will remain in BusyBox.

 -Erik

-----------

Possible apps to include some time:

* hwclock
* stty
* group/commonize strings, remove dups (for i18n, l10n)

-----------------------

The Busybox lash shell needs to be taught Bourne shell grammer.  This
is planned for the next release of Busybox.  Look out ash, we are coming
for you...

-----------------------

Running the following:

    rm -f busybox && make LDFLAGS+=-nostdlib 2>&1 | \
	sed -ne 's/.*undefined reference to `\(.*\)..*/\1/gp' | sort | uniq

reveals the list of all external (i.e. libc) things that BusyBox depends on.
It would be a very nice thing to reduce this list to an absolute minimum, to
reduce the footprint of busybox when staticly linking with libraries such as
uClibc.

-----------------------

Currently, busybox bypasses libc NSS.  Some folks might want that,
so perhaps adding in the option to choose whether to go to libc for
things like getpwnam() or whether to use the busybox version might 
be nice.

-----------------------

Most wanted list:

    [andersen@slag busybox]$ grep -l getgroups *.[ch]
    test.c

Policy violation.  getgroups uses libc nss, which is unlikely
to be present in an embedded system.

-----------------------

Compile with debugging on, run 'nm --size-sort ./busybox'
and then start with the biggest things and make them smaller...

-----------------------

 du.c probably ought to have an -x switch like GNU du does...

------------------------------------------------------------------
