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 probably going to be split out some time soon into a
    separate package (named perhaps netkit-tiny?).  This would remove the
    following items from BusyBox: hostid, hostname, nc, nslookup, telnet, 
    and ping.  nfs mounting and syslogd (when it supports network logging)
    will remain in BusyBox.

 -Erik

-----------

Bugs that need fixing:

 - 'ln -n' has been disabled for this release, till we can fix a memory
    corruption bug.
 - fix 'cp' (or test suite script) so that it passes the last item in
    the test suite.
 - ps dirent race bug (need to stat the file before attempting chdir)
 - Make 'ln -s /tmp/file .' work the way GNU ln does (i.e. makes a link to 
    /tmp/file in the current directory, rather then trying and failing to create
    a symlink named "." in the current working directory).
 - Prune sfdisk, graft in std fdisk instead


We will rework these to use libc regex functions instead (as per the mailing
list discussion):
 - 'grep foo$ file' doesn't work
 - 'grep *foo file' segfaults


-----------

Linux 2.4.x kernels

BusyBox 0.45 currently will not work with the Linux 2.4.x kernels.  
I know of the following problems:

1) The sysinfo syscall has changed what it does (binary incompatable), breaking
    init and free.
2) BusyBox NFS support is broken with 2.4.x (needs to be adjusted for NFSv3 and
    kernel header changes).
3) mount,umount,and df are all broken by the "none" entries for fake filesystems
    such as the shared mem one.  Al Viro claims these will be disappearing soon...

I made a kernel patch that reverts the sysinfo changes
    http://kernelnotes.org/lnxlists/linux-kernel/lk_0006_01/msg00619.html

and I have been fighting with Alan Cox to get these changes fixed in a binary
compatable way, but Alan has so far not been very receptive.  I am planning on
appealing to Linus (when he gets back from vacation) and then going with
whatever he decides...

So my thought is, 2.4.x just isn't ready for BusyBox to target it, and even if
it was, BusyBox isn't ready yet either.  Seems to me like this will not be
ready for a while, and we should just not worry about it yet.

As long as I have BB_FEATURE_NFSMOUNT turned off, everything compiles cleanly
for me with linux2.4.0test1-ac22-riel (i.e. I don't see the freeramdisk.c
problem you reported).  I use Debian potato (gcc 2.95.2, GNU libc 2.1.3).
Of course, as noted above, compiling != working.

-----------

* Make insmod actually work
* dnsdomainname
* traceroute/netstat
* rdate
* hwclock
* stty
* expr
* wget (or whatever I call it)
* tftp
* ftp
* group/commonize strings, remove dups (for i18n, l10n)
* consider making a unified option parser (if it can be done 
    modular, small, etc.) 

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

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, and
then create a microLibc to provide these functions.  There is no good reason
for GNU libc to be so big.  I'm sure it can be a lot better.

(BTW, this is more informative if BB_FEATURE_NFSMOUNT is turned off...)

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...

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

busybox.defs.h is too big and hard to follow.

Perhaps I need to add a better build system (like the Linux kernel?)

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

Feature request:

/bin/busybox --install -s    which makes all links to commands that it
  can support (an optionnal -s should be used for symbolic links instead
  of hard links).

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


> Have you ever thought of doig network logging in busybox syslogd ? It
> would quite make sense on embedded systems... :)

So far I had not considered it.  Basically, you wish to have
messages from the embedded box logged to a remote network
syslog box, right?  I can see that this would be useful.
I'll add this to the TODO list,


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


 I think that the add_inode &c in utility.c needs to also stow the
 st_dev field, and that du.c should NOT call `reset_inode_list'
 because there can be hard links from inside one argv/ to inside
 another argv/.  du.c probably ought to have an -x switch like GNU du
 does also...


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

An interesting email listing some apps that use /proc.  BusyBox
tries to avoid /proc as mush as is possible, so this stuff is
interesting (to me at least):


Date: 	Fri, 25 Feb 2000 08:23:12 +0000 (GMT)
From: Riley Williams <rhw@MemAlpha.CX>
X-Sender: rhw@moo.cus.org.uk
To: almesber@lrc.di.epfl.ch
Cc: "Albert D. Cahalan" <acahalan@cs.uml.edu>,
	Linux Kernel <linux-kernel@vger.rutgers.edu>
Subject: Re: What /proc should contain [was: /proc/driver/microcode]
In-Reply-To: <20000224165245.A29790@lrc.di.epfl.ch>
Message-ID: <Pine.LNX.4.21.0002250806220.8741-100000@moo.cus.org.uk>
Sender: owner-linux-kernel@vger.rutgers.edu
Precedence: bulk

Hi there.

 >> Nope, most /proc access is does via programs written in C.

 > That varies a lot from file to file. E.g. I haven't seen any
 > programs that are specificly designed to read /proc/atm/* yet,
 > and I know of only one (fuser) that reads /proc/mounts,
 > extracting only partial information (just to pick two examples
 > that I'm quite familiar with).

As a point of reference, here's a slightly tweaked analysis of the
programs on the system I'm reading your mail on. Basically, I ran the
following script...

 Q> #!/bin/bash
 Q> function use() {
 Q>     for Z in $* ; do
 Q>         strings $Z | grep /proc | sed "s=^=$Z ="
 Q>     done
 Q> }
 Q> use /{,s}bin/* /usr/{,s}bin/* | sort -u | tee proc-usage

...and then went through it removing comments and print format
strings. Replace /proc with /dev and you'd soon have an equivalent
list for that - although I can report that such is MUCH larger...

There are three programs therein that refer to /proc/mounts ...

	/bin/mount
	/bin/umount
	/usr/bin/eject

...and, as you stated, none that refer to /proc/atm on this system.
However, as this is a RedHat Linux 5.0 based system, that's not
necessarily an up to date reference thereto...

Here's the list anyway...

/bin/kill /proc/%d/cmdline
/bin/kill /proc/%d/stat

/bin/mount /proc/devices
/bin/mount /proc/filesystems
/bin/mount /proc/mounts

/bin/netstat /proc/net
/bin/netstat /proc/net/appletalk
/bin/netstat /proc/net/ax25
/bin/netstat /proc/net/ax25_route
/bin/netstat /proc/net/dev
/bin/netstat /proc/net/ip_masquerade
/bin/netstat /proc/net/ipx
/bin/netstat /proc/net/ipx_route
/bin/netstat /proc/net/netstat
/bin/netstat /proc/net/nr
/bin/netstat /proc/net/nr_neigh
/bin/netstat /proc/net/nr_nodes
/bin/netstat /proc/net/raw
/bin/netstat /proc/net/route
/bin/netstat /proc/net/rt_cache
/bin/netstat /proc/net/snmp
/bin/netstat /proc/net/tcp
/bin/netstat /proc/net/udp
/bin/netstat /proc/net/unix

/bin/umount /proc/devices
/bin/umount /proc/mounts

/sbin/arp /proc/net/appletalk
/sbin/arp /proc/net/arp
/sbin/arp /proc/net/ax25
/sbin/arp /proc/net/ipx
/sbin/arp /proc/net/nr
/sbin/arp /proc/net/unix

/sbin/cardctl /proc/devices

/sbin/cardmgr /proc/devices

/sbin/fdisk /proc/ide/%s/media
/sbin/fdisk /proc/scsi/scsi

/sbin/getty /proc/version

/sbin/ifconfig /proc/net
/sbin/ifconfig /proc/net/appletalk
/sbin/ifconfig /proc/net/ax25
/sbin/ifconfig /proc/net/dev
/sbin/ifconfig /proc/net/ipx
/sbin/ifconfig /proc/net/nr
/sbin/ifconfig /proc/net/unix

/sbin/ifup /proc/sys/kernel/modprobe

/sbin/ipchains /proc/net/ip_fwchains
/sbin/ipchains /proc/net/ip_fwnames
/sbin/ipchains /proc/net/ip_masquerade
/sbin/ipchains /proc/sys/net/ipv4/ip_forward

/sbin/ipmaddr /proc/net/dev_mcast
/sbin/ipmaddr /proc/net/igmp
/sbin/ipmaddr /proc/net/igmp6

/sbin/iptunnel /proc/net/dev

/sbin/killall5 /proc/%s/cmdline
/sbin/killall5 /proc/%s/exe
/sbin/killall5 /proc/%s/stat
/sbin/killall5 /proc/version

/sbin/klogd /proc/kmsg

/sbin/lsmod /proc/modules

/sbin/modprobe /proc/modules

/sbin/pidof /proc/%s/cmdline
/sbin/pidof /proc/%s/exe
/sbin/pidof /proc/%s/stat
/sbin/pidof /proc/version

/sbin/probe /proc/pci

/sbin/rarp /proc/net/ax25
/sbin/rarp /proc/net/nr
/sbin/rarp /proc/net/rarp

/sbin/rmmod /proc/modules

/sbin/rmmod.static /proc/modules

/sbin/route /proc/net/appletalk
/sbin/route /proc/net/ax25
/sbin/route /proc/net/ax25_route
/sbin/route /proc/net/ipx
/sbin/route /proc/net/ipx_route
/sbin/route /proc/net/nr
/sbin/route /proc/net/nr_neigh
/sbin/route /proc/net/nr_nodes
/sbin/route /proc/net/route
/sbin/route /proc/net/rt_cache
/sbin/route /proc/net/unix

/sbin/scsi_info /proc/scsi
/sbin/scsi_info /proc/scsi/%s
/sbin/scsi_info /proc/scsi/scsi

/sbin/slattach /proc/net/ax25
/sbin/slattach /proc/net/nr

/sbin/swapoff /proc/swaps

/sbin/swapon /proc/swaps

/sbin/uugetty /proc/version

/usr/bin/dig /proc/
/usr/bin/dig /proc/interrupts
/usr/bin/dig /proc/meminfo
/usr/bin/dig /proc/rtc
/usr/bin/dig /proc/self/status
/usr/bin/dig /proc/stat

/usr/bin/dnsquery /proc/
/usr/bin/dnsquery /proc/interrupts
/usr/bin/dnsquery /proc/meminfo
/usr/bin/dnsquery /proc/rtc
/usr/bin/dnsquery /proc/self/status
/usr/bin/dnsquery /proc/stat

/usr/bin/eject /proc/mounts

/usr/bin/emacs /proc/loadavg

/usr/bin/fetchmail /proc/net/dev

/usr/bin/free /proc/meminfo

/usr/bin/gmake /proc/loadavg

/usr/bin/gpm-root /proc/loadavg
/usr/bin/gpm-root /proc/meminfo

/usr/bin/host /proc/
/usr/bin/host /proc/interrupts
/usr/bin/host /proc/meminfo
/usr/bin/host /proc/rtc
/usr/bin/host /proc/self/status
/usr/bin/host /proc/stat

/usr/bin/hoststat /proc/loadavg

/usr/bin/hwdiag /proc/cpuinfo
/usr/bin/hwdiag /proc/pci
/usr/bin/hwdiag /proc/scsi/scsi
/usr/bin/hwdiag /proc/version

/usr/bin/lsdev /proc/dma
/usr/bin/lsdev /proc/interrupts
/usr/bin/lsdev /proc/ioports

/usr/bin/mailq /proc/loadavg

/usr/bin/make /proc/loadavg

/usr/bin/mcookie /proc/loadavg
/usr/bin/mcookie /proc/stat

/usr/bin/newaliases /proc/loadavg

/usr/bin/nslookup /proc/
/usr/bin/nslookup /proc/interrupts
/usr/bin/nslookup /proc/meminfo
/usr/bin/nslookup /proc/rtc
/usr/bin/nslookup /proc/self/status
/usr/bin/nslookup /proc/stat

/usr/bin/nsupdate /proc/
/usr/bin/nsupdate /proc/interrupts
/usr/bin/nsupdate /proc/meminfo
/usr/bin/nsupdate /proc/rtc
/usr/bin/nsupdate /proc/self/status
/usr/bin/nsupdate /proc/stat

/usr/bin/pgp /proc/version
/usr/bin/pgpe /proc/version
/usr/bin/pgpk /proc/version
/usr/bin/pgps /proc/version
/usr/bin/pgpv /proc/version

/usr/bin/procinfo /proc/cmdline
/usr/bin/procinfo /proc/devices
/usr/bin/procinfo /proc/dma
/usr/bin/procinfo /proc/filesystems
/usr/bin/procinfo /proc/interrupts
/usr/bin/procinfo /proc/loadavg
/usr/bin/procinfo /proc/meminfo
/usr/bin/procinfo /proc/modules
/usr/bin/procinfo /proc/stat
/usr/bin/procinfo /proc/uptime
/usr/bin/procinfo /proc/version

/usr/bin/purgestat /proc/loadavg

/usr/bin/screen /proc/loadavg

/usr/bin/strace /proc/%d/stat

/usr/bin/top /proc/cpuinfo
/usr/bin/top /proc/meminfo
/usr/bin/top /proc/stat

/usr/bin/vmstat /proc/%s/stat
/usr/bin/vmstat /proc/meminfo
/usr/bin/vmstat /proc/stat

/usr/sbin/atd /proc/loadavg

/usr/sbin/dnskeygen /proc/
/usr/sbin/dnskeygen /proc/interrupts
/usr/sbin/dnskeygen /proc/meminfo
/usr/sbin/dnskeygen /proc/rtc
/usr/sbin/dnskeygen /proc/self/status
/usr/sbin/dnskeygen /proc/stat

/usr/sbin/fuser /proc/%d/stat
/usr/sbin/fuser /proc/net/%s
/usr/sbin/fuser /proc/net/unix

/usr/sbin/in.identd /proc/net/tcp

/usr/sbin/irpd /proc/
/usr/sbin/irpd /proc/interrupts
/usr/sbin/irpd /proc/meminfo
/usr/sbin/irpd /proc/rtc
/usr/sbin/irpd /proc/self/status
/usr/sbin/irpd /proc/stat

/usr/sbin/named /proc/
/usr/sbin/named /proc/interrupts
/usr/sbin/named /proc/meminfo
/usr/sbin/named /proc/rtc
/usr/sbin/named /proc/self/status
/usr/sbin/named /proc/stat

/usr/sbin/named-xfer /proc/
/usr/sbin/named-xfer /proc/interrupts
/usr/sbin/named-xfer /proc/meminfo
/usr/sbin/named-xfer /proc/rtc
/usr/sbin/named-xfer /proc/self/status
/usr/sbin/named-xfer /proc/stat

/usr/sbin/readprofile /proc/profile

/usr/sbin/rwhod /proc/loadavg
/usr/sbin/rwhod /proc/uptime

/usr/sbin/sendmail /proc/loadavg

/usr/sbin/setconsole /proc/openprom/options
/usr/sbin/setconsole /proc/openprom/options/${console}-mode
/usr/sbin/setconsole /proc/openprom/options/input-device
/usr/sbin/setconsole /proc/openprom/options/output-device

Best wishes from Riley.

 * Copyright (C) 1999, Memory Alpha Systems.
 * All rights and wrongs reserved.

+----------------------------------------------------------------------+
| There is something frustrating about the quality and speed of Linux  |
| development, ie., the quality is too high and the speed is too high, |
| in other words, I can implement this XXXX feature, but I bet someone |
| else has already done so and is just about to release their patch.   |
+----------------------------------------------------------------------+
 * http://www.memalpha.cx/Linux/Kernel/


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

