diff --git a/AUTHORS b/AUTHORS index c73b47abf..ab5650fb9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -14,6 +14,8 @@ Emanuele Aina Erik Andersen Tons of new stuff, major rewrite of most of the core apps, tons of new apps as noted in header files. + Lots of tedious effort writing these boring docs that + nobody is going to actually read. Laurence Anderson rpm2cpio, unzip, get_header_cpio, read_gz interface, rpm diff --git a/docs/busybox_footer.pod b/docs/busybox_footer.pod index 4f1058573..ddeef532c 100644 --- a/docs/busybox_footer.pod +++ b/docs/busybox_footer.pod @@ -6,29 +6,50 @@ Erik Andersen =head1 AUTHORS -The following people have contributed code to BusyBox whether -they know it or not. +The following people have contributed code to BusyBox whether they know it or +not. If you have written code included in BusyBox, you should probably be +listed here so you can obtain your bit of eternal glory. If you should be +listed here, or the description of what you have done needs more detail, or is +incorect, please send in an update. +=for html
+ +Emanuele Aina + run-parts + =for html
Erik Andersen Tons of new stuff, major rewrite of most of the core apps, tons of new apps as noted in header files. + Lots of tedious effort writing these boring docs that + nobody is going to actually read. =for html
-John Beppu +Laurence Anderson - du, head, nslookup, sort, tee, uniq (so Kraai could rewrite them ;-), - documentation + rpm2cpio, unzip, get_header_cpio, read_gz interface, rpm + +=for html
+ +Jeff Angielski + + ftpput, ftpget =for html
Edward Betts - expr, hostid, logname, tty, wc, whoami, yes + expr, hostid, logname, whoami + +=for html
+ +John Beppu + + du, nslookup, sort =for html
@@ -40,19 +61,45 @@ Brian Candler Randolph Chung - fbset, ping, hostname, and mkfifo + fbset, ping, hostname =for html
Dave Cinege - more(v2), makedevs, modularization, various fixes + more(v2), makedevs, dutmp, modularization, auto links file, + various fixes, Linux Router Project maintenance + +=for html
+ +Jordan Crouse + + ipcalc + +=for html
+ +Magnus Damm + + tftp client insmod powerpc support =for html
Larry Doolittle - various fixes, shell rewrite + pristine source directory compilation, lots of patches and fixes. + +=for html
+ +Glenn Engel + + httpd + +=for html
+ +Gennady Feldman + + Sysklogd (single threaded syslogd, IPC Circular buffer support, + logread), various fixes. =for html
@@ -62,39 +109,52 @@ Karl M. Hegbloom =for html
-Sterling Huxley - - vi (!!!) - -=for html
- Daniel Jacobowitz mktemp.c =for html
-Matt Kraai +Matt Kraai - documentation, bugfixes + documentation, bugfixes, test suite + +=for html
+ +Stephan Linz + + ipcalc, Red Hat equivalence =for html
John Lombardo - dirname, tr + tr =for html
-Glenn McGrath +Glenn McGrath - ar.c + ar, dpkg, dpkg-deb + +=for html
+ +Manuel Novoa III + + cat, head, mkfifo, mknod, rmdir, sleep, tee, tty, uniq, usleep, wc, yes, + mesg, vconfig, make_directory, parse_mode, dirname, mode_string, + get_last_path_component, simplify_path, and a number trivial libbb routines + + also bug fixes, partial rewrites, and size optimizations in + ash, basename, cal, cmp, cp, df, du, echo, env, ln, logname, md5sum, mkdir, + mv, realpath, rm, sort, tail, touch, uname, watch, arith, human_readable, + interface, dutmp, ifconfig, route =for html
Vladimir Oleynik - cmdedit, xargs(current), httpd(current); + cmdedit; xargs(current), httpd(current); ports: ash, crond, fdisk, inetd, stty, traceroute, top; locale, various fixes and irreconcilable critic of everything not perfect. @@ -103,7 +163,20 @@ Vladimir Oleynik Bruce Perens - Original author of BusyBox. His code is still in many apps. + Original author of BusyBox in 1995, 1996. Some of his code can + still be found hiding here and there... + +=for html
+ +Tim Riker + + bug fixes, member of fan club + +=for html
+ +Kent Robotti + + reset, tons and tons of bug reports and patches. =for html
@@ -133,7 +206,8 @@ Linus Torvalds Mark Whitley - sed remix, bug fixes, style-guide, etc. + grep, sed, cut, xargs(previous), + style-guide, new-applet-HOWTO, bug fixes, etc. =for html
@@ -149,10 +223,11 @@ Enrique Zanardi =for html
-Glenn Engel +Tito Ragusa - httpd + devfsd and size optimizations in strings, openvt and deallocvt. =cut -# $Id: busybox_footer.pod,v 1.14 2004/03/27 09:40:15 andersen Exp $ +# $Id: busybox_footer.pod,v 1.15 2004/04/06 17:52:02 andersen Exp $ + diff --git a/include/usage.h b/include/usage.h index c5f978956..4b7032308 100644 --- a/include/usage.h +++ b/include/usage.h @@ -874,46 +874,46 @@ "[options] [device] .." #define hdparm_full_usage \ "Options:" \ - " -a get/set fs readahead\n" \ - " -A set drive read-lookahead flag (0/1)\n" \ - " -b get/set bus state (0 == off, 1 == on, 2 == tristate)\n" \ - " -B set Advanced Power Management setting (1-255)\n" \ - " -c get/set IDE 32-bit IO setting\n" \ - " -C check IDE power mode status\n" \ - USAGE_GETSET_DMA(" -d get/set using_dma flag\n") \ - " -D enable/disable drive defect-mgmt\n" \ - " -f flush buffer cache for device on exit\n" \ - " -g display drive geometry\n" \ - " -h display terse usage information\n" \ - " -i display drive identification\n" \ - USAGE_HDPARM_IDENT(" -I detailed/current information directly from drive\n") \ - USAGE_HDPARM_IDENT(" -Istdin similar to -I, but wants /proc/ide/" "*" "/hd?/identify as input\n") \ - " -k get/set keep_settings_over_reset flag (0/1)\n" \ - " -K set drive keep_features_over_reset flag (0/1)\n" \ - " -L set drive doorlock (0/1) (removable harddisks only)\n" \ - " -m get/set multiple sector count\n" \ - " -n get/set ignore-write-errors flag (0/1)\n" \ - " -p set PIO mode on IDE interface chipset (0,1,2,3,4,...)\n" \ - " -P set drive prefetch count\n" \ - " -q change next setting quietly\n" \ - " -Q get/set DMA tagged-queuing depth (if supported)\n" \ - " -r get/set readonly flag (DANGEROUS to set)\n" \ - USAGE_SCAN_HWIF(" -R register an IDE interface (DANGEROUS)\n") \ - " -S set standby (spindown) timeout\n" \ - " -t perform device read timings\n" \ - " -T perform cache read timings\n" \ - " -u get/set unmaskirq flag (0/1)\n" \ - USAGE_UNREGISTER_HWIF(" -U un-register an IDE interface (DANGEROUS)\n") \ - " -v defaults; same as -mcudkrag for IDE drives\n" \ - " -V display program version and exit immediately\n" \ - USAGE_DRIVE_RESET(" -w perform device reset (DANGEROUS)\n") \ - " -W set drive write-caching flag (0/1) (DANGEROUS)\n" \ - USAGE_TRISTATE_HWIF(" -x tristate device for hotswap (0/1) (DANGEROUS)\n") \ - " -X set IDE xfer mode (DANGEROUS)\n" \ - " -y put IDE drive in standby mode\n" \ - " -Y put IDE drive to sleep\n" \ - " -Z disable Seagate auto-powersaving mode\n" \ - " -z re-read partition table" + "\t-a get/set fs readahead\n" \ + "\t-A set drive read-lookahead flag (0/1)\n" \ + "\t-b get/set bus state (0 == off, 1 == on, 2 == tristate)\n" \ + "\t-B set Advanced Power Management setting (1-255)\n" \ + "\t-c get/set IDE 32-bit IO setting\n" \ + "\t-C check IDE power mode status\n" \ + USAGE_GETSET_DMA("\t-d get/set using_dma flag\n") \ + "\t-D enable/disable drive defect-mgmt\n" \ + "\t-f flush buffer cache for device on exit\n" \ + "\t-g display drive geometry\n" \ + "\t-h display terse usage information\n" \ + "\t-i display drive identification\n" \ + USAGE_HDPARM_IDENT("\t-I detailed/current information directly from drive\n") \ + USAGE_HDPARM_IDENT("\t-Istdin similar to -I, but wants /proc/ide/" "*" "/hd?/identify as input\n") \ + "\t-k get/set keep_settings_over_reset flag (0/1)\n" \ + "\t-K set drive keep_features_over_reset flag (0/1)\n" \ + "\t-L set drive doorlock (0/1) (removable harddisks only)\n" \ + "\t-m get/set multiple sector count\n" \ + "\t-n get/set ignore-write-errors flag (0/1)\n" \ + "\t-p set PIO mode on IDE interface chipset (0,1,2,3,4,...)\n" \ + "\t-P set drive prefetch count\n" \ + "\t-q change next setting quietly\n" \ + "\t-Q get/set DMA tagged-queuing depth (if supported)\n" \ + "\t-r get/set readonly flag (DANGEROUS to set)\n" \ + USAGE_SCAN_HWIF("\t-R register an IDE interface (DANGEROUS)\n") \ + "\t-S set standby (spindown) timeout\n" \ + "\t-t perform device read timings\n" \ + "\t-T perform cache read timings\n" \ + "\t-u get/set unmaskirq flag (0/1)\n" \ + USAGE_UNREGISTER_HWIF("\t-U un-register an IDE interface (DANGEROUS)\n") \ + "\t-v defaults; same as -mcudkrag for IDE drives\n" \ + "\t-V display program version and exit immediately\n" \ + USAGE_DRIVE_RESET("\t-w perform device reset (DANGEROUS)\n") \ + "\t-W set drive write-caching flag (0/1) (DANGEROUS)\n" \ + USAGE_TRISTATE_HWIF("\t-x tristate device for hotswap (0/1) (DANGEROUS)\n") \ + "\t-X set IDE xfer mode (DANGEROUS)\n" \ + "\t-y put IDE drive in standby mode\n" \ + "\t-Y put IDE drive to sleep\n" \ + "\t-Z disable Seagate auto-powersaving mode\n" \ + "\t-z re-read partition table" #ifdef CONFIG_FEATURE_FANCY_HEAD #define USAGE_FANCY_HEAD(a) a @@ -1027,9 +1027,9 @@ "\t-l\tthe hardware clock is kept in local time" #ifdef CONFIG_SELINUX -#define USAGE_SELINUX(a, b) a + #define USAGE_SELINUX(a) a #else -#define USAGE_SELINUX(a, b) b + #define USAGE_SELINUX(a) #endif #define id_trivial_usage \ @@ -1037,11 +1037,11 @@ #define id_full_usage \ "Print information for USERNAME or the current user\n\n" \ "Options:\n" \ + USAGE_SELINUX("\t-c\tprints only the security context\n") \ "\t-g\tprints only the group ID\n" \ "\t-u\tprints only the user ID\n" \ - USAGE_SELINUX("\t-c\tprints only the security context\n", "") \ - "\t-n\tprint a name instead of a number (with for -ug)\n" \ - "\t-r\tprints the real user ID instead of the effective ID (with -ug)" + "\t-n\tprint a name instead of a number\n" \ + "\t-r\tprints the real user ID instead of the effective ID" #define id_example_usage \ "$ id\n" \ "uid=1000(andersen) gid=1000(andersen)\n" @@ -1298,11 +1298,11 @@ #define ipaddr_full_usage \ "ipaddr {add|del} IFADDR dev STRING\n" \ "ipaddr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]\n" \ - " [ to PREFIX ] [ label PATTERN ]\n" \ - "IFADDR := PREFIX | ADDR peer PREFIX\n" \ - " [ broadcast ADDR ] [ anycast ADDR ]\n" \ - " [ label STRING ] [ scope SCOPE-ID ]\n" \ - "SCOPE-ID := [ host | link | global | NUMBER ]" + "\t\t\t[ to PREFIX ] [ label PATTERN ]\n" \ + "\t\t\tIFADDR := PREFIX | ADDR peer PREFIX\n" \ + "\t\t\t[ broadcast ADDR ] [ anycast ADDR ]\n" \ + "\t\t\t[ label STRING ] [ scope SCOPE-ID ]\n" \ + "\t\t\tSCOPE-ID := [ host | link | global | NUMBER ]" #ifndef CONFIG_FEATURE_IPCALC_FANCY #define ipcalc_trivial_usage \ @@ -1332,9 +1332,9 @@ "{ set DEVICE { up | down | arp { on | off } | show [ DEVICE ] }" #define iplink_full_usage \ "iplink set DEVICE { up | down | arp { on | off } |\n" \ - " dynamic { on | off } |\n" \ - " mtu MTU }\n" \ - "iplink show [ DEVICE ]" + "\t\t\tdynamic { on | off } |\n" \ + "\t\t\tmtu MTU }\n" \ + "\tiplink show [ DEVICE ]" #define iproute_trivial_usage \ "{ list | flush | { add | del | change | append |\n" \ @@ -1342,10 +1342,10 @@ #define iproute_full_usage \ "iproute { list | flush } SELECTOR\n" \ "iproute get ADDRESS [ from ADDRESS iif STRING ]\n" \ - " [ oif STRING ] [ tos TOS ]\n" \ - "iproute { add | del | change | append | replace | monitor } ROUTE\n" \ - "SELECTOR := [ root PREFIX ] [ match PREFIX ] [ proto RTPROTO ]\n" \ - "ROUTE := [ TYPE ] PREFIX [ tos TOS ] [ proto RTPROTO ]" + "\t\t\t[ oif STRING ] [ tos TOS ]\n" \ + "\tiproute { add | del | change | append | replace | monitor } ROUTE\n" \ + "\t\t\tSELECTOR := [ root PREFIX ] [ match PREFIX ] [ proto RTPROTO ]\n" \ + "\t\t\tROUTE := [ TYPE ] PREFIX [ tos TOS ] [ proto RTPROTO ]" #define iptunnel_trivial_usage \ "{ add | change | del | show } [ NAME ]\n" \ @@ -1353,9 +1353,9 @@ "\t\t[ remote ADDR ] [ local ADDR ] [ ttl TTL ]" #define iptunnel_full_usage \ "iptunnel { add | change | del | show } [ NAME ]\n" \ - " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" \ - " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" \ - " [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]" + "\t\t\t[ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" \ + "\t\t\t[ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" \ + "\t\t\t[ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]" #define kill_trivial_usage \ "[-signal] process-id [process-id ...]" @@ -1501,8 +1501,9 @@ #else #define USAGE_AUTOWIDTH(a) #endif + #define ls_trivial_usage \ - "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h") USAGE_NOT_HUMAN_READABLE("") "k" USAGE_SELINUX("K", "") "] [filenames...]" + "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h") USAGE_NOT_HUMAN_READABLE("") "k" USAGE_SELINUX("K") "] [filenames...]" #define ls_full_usage \ "List directory contents\n\n" \ "Options:\n" \ @@ -1531,8 +1532,9 @@ "\t-x\tlist entries by lines instead of by columns\n" \ USAGE_LS_SORTFILES("\t-X\tsort the listing by extension\n") \ USAGE_HUMAN_READABLE( \ - "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ - USAGE_SELINUX("\t-k\tprint security context\n\t-K\tprint security context in long format\n", "")) + "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n") \ + USAGE_SELINUX("\t-k\tprint security context\n") \ + USAGE_SELINUX("\t-K\tprint security context in long format\n") #define lsmod_trivial_usage \ "" @@ -1944,12 +1946,18 @@ "$ printf "Val=%d\\n" 5\n" \ "Val=5\n" +#ifdef CONFIG_SELINUX +#define USAGE_NONSELINUX(a) +#else +#define USAGE_NONSELINUX(a) a +#endif + #define ps_trivial_usage \ "" #define ps_full_usage \ "Report process status\n" \ - USAGE_SELINUX("\nOptions:\n\t-c\tshow SE Linux context", \ - "\nThis version of ps accepts no options.") + USAGE_NONSELINUX("\n\tThis version of ps accepts no options.") \ + USAGE_SELINUX("\nOptions:\n\t-c\tshow SE Linux context") #define ps_example_usage \ "$ ps\n" \ @@ -2172,7 +2180,7 @@ USAGE_NOT_FANCY_SLEEP("Pause for N seconds.") \ USAGE_FANCY_SLEEP( \ "Pause for a time equal to the total of the args given, where each arg can\n" \ - "have an optional suffix of (s)econds, (m)inutes, (h)ours, or (d)ays.") + "\t\thave an optional suffix of (s)econds, (m)inutes, (h)ours, or (d)ays.") #define sleep_example_usage \ "$ sleep 2\n" \ "[2 second delay results]\n" \ @@ -2559,8 +2567,8 @@ "hello world\n" #define traceroute_trivial_usage \ - "[-dnrv] [-m max_ttl] [-p port#] [-q nqueries]\n\ - [-s src_addr] [-t tos] [-w wait] host [data size]" + "[-dnrv] [-m max_ttl] [-p port#] [-q nqueries]\n"\ + "\t[-s src_addr] [-t tos] [-w wait] host [data size]" #define traceroute_full_usage \ "trace the route ip packets follow going to \"host\"\n" \ "Options:\n" \ @@ -2803,7 +2811,7 @@ #define wget_trivial_usage \ "[-c|--continue] [-q|--quiet] [-O|--output-document file]\n" \ - "\t[--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url" + "\t\t[--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url" #define wget_full_usage \ "wget retrieves files via HTTP or FTP\n\n" \ "Options:\n" \