Gratuitously changed the file "busybox.defs.h" to the more

sensible and noticable "Config.h".
 -Erik
This commit is contained in:
Eric Andersen 2000-09-25 21:28:07 +00:00
parent c5949f62e5
commit caffb6eff0
13 changed files with 38 additions and 380 deletions

View File

@ -1,33 +1,39 @@
0.47 0.47
* Tons of bugfixes.
* A bug in syslogd was fixed that allowed it to potentially fork-bomb * A bug in syslogd was fixed that allowed it to potentially fork-bomb
your system. your system.
* chroot can now call the builtin shell - Pavel Roskin <proski@gnu.org> * Renamed busybox.defs.h to the more sensible "Config.h"
* added 'renice' command, thanks to Dave Cinege <dcinege@psychosis.com> * Improved portability between different libcs.
* 'make install' now creates relative symlinks, and added a new * Many apps ported to use getopt()
'make install-hardlinks' target to (tada) install hardlinks. * Common handling of '--help'
* All usage messages centralized.
* Added a bunch of new commands:
* 'rdate' contributed by Sterling Huxley <sterling@europa.com>
* 'wget' contributed by Chip Rosenthal <chip@unicom.com>,
<crosenth@covad.com> and Covad Communications
* 'getopt' from "Alfred M. Szmidt" <ams@trillian.itslinux.org>
* dos2unix, unix2dos, reset, and unrpm.c (and lots of help
debugging) thanks to robotti@metconnect.com.
* 'renice' command, thanks to Dave Cinege <dcinege@psychosis.com>
* 'xargs' (written by me)
* 'expr' contributed by Edward Betts <edward@debian.org>, based
on GNY expr
* lsmod now uses the query_module syscall, rather then /proc (me)
* syslogd can now log messages to remote hosts -- patch thanks * syslogd can now log messages to remote hosts -- patch thanks
to Gyepi Sam <gyepi@praxis-sw.com> to Gyepi Sam <gyepi@praxis-sw.com>
* chroot can now call the builtin shell - Pavel Roskin <proski@gnu.org>
* 'make install' now creates relative symlinks, and added a new
'make install-hardlinks' target to (tada) install hardlinks.
* Rewrite of 'tail' to make it simpler, smaller, and more robust. * Rewrite of 'tail' to make it simpler, smaller, and more robust.
It now weighs only 2.25k (3k when full featured). The code is It now weighs only 2.25k (3k when full featured). The code is
cleaner too, thanks to Allen Soard <esp-software@mail.hypermart.net> cleaner too, thanks to Allen Soard <esp-software@mail.hypermart.net>
* Add optional ls file sorting, thanks to a patch from * Add optional ls file sorting, thanks to a patch from
Sterling Huxley <sterling@europa.com> Sterling Huxley <sterling@europa.com>
* Added 'rdate' command from Sterling Huxley <sterling@europa.com>
* Added 'wget' command, contributed by Chip Rosenthal <chip@unicom.com>,
<crosenth@covad.com> and Covad Communications
* Added 'getopt' from "Alfred M. Szmidt" <ams@trillian.itslinux.org>
* Added dos2unix, unix2dos, and unrpm.c thanks to robotti@metconnect.com.
* Added xargs (written by me)
* lsmod now uses the query_module syscall, rather then /proc (me)
* Fixed chmod option parsing so things like 'chmod -r /tmp/file' * Fixed chmod option parsing so things like 'chmod -r /tmp/file'
wouldn't work (since it thought -r was an option). Doh! now work (previously it thought -r was an option). Doh!
* Fixed tar handling of stdin and stdout * Fixed tar handling of stdin and stdout
* Many apps ported to use getopt() * Preliminary support for GNU HURD.
* All usage messages centralized. * Tons of other bugfixes.
* Common handling of '--help'
* Improved portability between different libcs.
-Erik Andersen -Erik Andersen

View File

@ -1,7 +1,7 @@
/* vi: set sw=4 ts=4: */ /* vi: set sw=4 ts=4: */
// NOTE: This file only defines features usefull under the Hurd, // NOTE: This file only defines features usefull under the Hurd,
// To compile for the Hurd raname this to busybox.def.h prior to make // To compile for the Hurd raname this to Config.h prior to make
// This file defines the feature set to be compiled into busybox. // This file defines the feature set to be compiled into busybox.
// When you turn things off here, they won't be compiled in at all. // When you turn things off here, they won't be compiled in at all.

View File

@ -19,7 +19,7 @@
# #
PROG := busybox PROG := busybox
VERSION := 0.47pre VERSION := 0.47
BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z") BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z")
export VERSION export VERSION
@ -173,11 +173,11 @@ busybox: $(OBJECTS)
$(CC) $(LDFLAGS) -o $@ $^ $(LIBRARIES) $(CC) $(LDFLAGS) -o $@ $^ $(LIBRARIES)
$(STRIP) $(STRIP)
busybox.links: busybox.def.h busybox.links: Config.h
- ./busybox.mkll | sort >$@ - ./busybox.mkll | sort >$@
nfsmount.o cmdedit.o: %.o: %.h nfsmount.o cmdedit.o: %.o: %.h
$(OBJECTS): %.o: busybox.def.h internal.h %.c Makefile $(OBJECTS): %.o: Config.h internal.h %.c Makefile
utility.o: loop.h utility.o: loop.h

2
README
View File

@ -20,7 +20,7 @@ it also makes an excellent environment for any small or embedded system.
As of version 0.20 there is a version number. : ) Also as of version 0.20, As of version 0.20 there is a version number. : ) Also as of version 0.20,
BusyBox is now modularized to easily allow you to build only the components you BusyBox is now modularized to easily allow you to build only the components you
need, thereby reducing binary size. To turn off unwanted Busybox components, need, thereby reducing binary size. To turn off unwanted Busybox components,
simply edit the file busybox.def.h and comment out the components you do not simply edit the file "Config.h" and comment out the components you do not
need using C++ style (//) comments. need using C++ style (//) comments.
After the build is complete a busybox.links file is generated which is then After the build is complete a busybox.links file is generated which is then

354
TODO
View File

@ -8,9 +8,8 @@ around to it some time. If you have any good ideas, please let me know.
* Networking apps are probably going to be split out some time soon into a * Networking apps are probably going to be split out some time soon into a
separate package (named perhaps netkit-tiny?). This would remove the separate package (named perhaps netkit-tiny?). This would remove the
following items from BusyBox: hostid, hostname, nc, nslookup, telnet, following items from BusyBox: hostid, hostname, nc, nslookup, telnet, and
and ping. nfs mounting and syslogd (when it supports network logging) ping. nfs mounting and syslogd (network logging) will remain in BusyBox.
will remain in BusyBox.
-Erik -Erik
@ -53,353 +52,6 @@ and then start with the biggest things and make them smaller...
----------------------- -----------------------
du.c probably ought to have an -x switch like GNU du does...
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/

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# Make busybox links list file. # Make busybox links list file.
DF="busybox.def.h" DF="Config.h"
MF="busybox.c" MF="busybox.c"
LIST="$(gcc -E -dM $DF | sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/BB_\1/gp;' | sort)" LIST="$(gcc -E -dM $DF | sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/BB_\1/gp;' | sort)"

View File

@ -3,7 +3,7 @@
# I added in the extra "ls" so only source files that # I added in the extra "ls" so only source files that
# actually exist will show up in the compile list. # actually exist will show up in the compile list.
ls -1 ` \ ls -1 ` \
gcc -E -dM busybox.def.h | \ gcc -E -dM Config.h | \
sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/\1.c/gp;' \ sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/\1.c/gp;' \
| tr '[:upper:]' '[:lower:]' | sort | tr '[:upper:]' '[:lower:]' | sort
` 2>/dev/null | sed -e 's/\.c$/\.o/g' ` 2>/dev/null | sed -e 's/\.c$/\.o/g'

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# Make busybox links list file. # Make busybox links list file.
DF="busybox.def.h" DF="Config.h"
MF="busybox.c" MF="busybox.c"
LIST="$(gcc -E -dM $DF | sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/BB_\1/gp;' | sort)" LIST="$(gcc -E -dM $DF | sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/BB_\1/gp;' | sort)"

View File

@ -3,7 +3,7 @@
# I added in the extra "ls" so only source files that # I added in the extra "ls" so only source files that
# actually exist will show up in the compile list. # actually exist will show up in the compile list.
ls -1 ` \ ls -1 ` \
gcc -E -dM busybox.def.h | \ gcc -E -dM Config.h | \
sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/\1.c/gp;' \ sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/\1.c/gp;' \
| tr '[:upper:]' '[:lower:]' | sort | tr '[:upper:]' '[:lower:]' | sort
` 2>/dev/null | sed -e 's/\.c$/\.o/g' ` 2>/dev/null | sed -e 's/\.c$/\.o/g'

View File

@ -1,5 +1,5 @@
Name: busybox Name: busybox
Version: 0.47pre Version: 0.47
Release: 1 Release: 1
Group: System/Utilities Group: System/Utilities
Summary: BusyBox is a tiny suite of Unix utilities in a multi-call binary. Summary: BusyBox is a tiny suite of Unix utilities in a multi-call binary.

View File

@ -1,5 +1,5 @@
Name: busybox Name: busybox
Version: 0.47pre Version: 0.47
Release: 1 Release: 1
Group: System/Utilities Group: System/Utilities
Summary: BusyBox is a tiny suite of Unix utilities in a multi-call binary. Summary: BusyBox is a tiny suite of Unix utilities in a multi-call binary.

View File

@ -24,7 +24,7 @@
#ifndef _BB_INTERNAL_H_ #ifndef _BB_INTERNAL_H_
#define _BB_INTERNAL_H_ 1 #define _BB_INTERNAL_H_ 1
#include "busybox.def.h" #include "Config.h"
#ifdef DMALLOC #ifdef DMALLOC
#include "dmalloc.h" #include "dmalloc.h"